JP4682139B2 - プログラム実行機器およびそのプログラム実行方法 - Google Patents

プログラム実行機器およびそのプログラム実行方法 Download PDF

Info

Publication number
JP4682139B2
JP4682139B2 JP2006528683A JP2006528683A JP4682139B2 JP 4682139 B2 JP4682139 B2 JP 4682139B2 JP 2006528683 A JP2006528683 A JP 2006528683A JP 2006528683 A JP2006528683 A JP 2006528683A JP 4682139 B2 JP4682139 B2 JP 4682139B2
Authority
JP
Japan
Prior art keywords
program
permission information
information
permission
recorded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006528683A
Other languages
English (en)
Other versions
JPWO2006003875A1 (ja
Inventor
智一 金丸
雅弘 大蘆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006003875A1 publication Critical patent/JPWO2006003875A1/ja
Application granted granted Critical
Publication of JP4682139B2 publication Critical patent/JP4682139B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Description

本発明は、プログラムを実行する機器におけるパーミッション(リソースに対するアクセス権限あるいは実行権限)を管理するプログラム実行機器に関する。
近年、出荷後の家電機器に対して、プログラムを後から追加し、そのプログラムを動作させることによって機器に機能を追加する、という仕組みが普及しつつある。
家電機器上でプログラムを動作させるプログラム実行系の代表的な技術としては、JAVA(登録商標)や、ドットNET(登録商標)などがある。
これらの技術は仮想マシンの仕組みを備え、ネットワーク家電のCPUなど、ハードウェアに依存せずに同一のプログラムを動作させることが可能なことから、サービスの実施のための共通プラットフォームとなることが期待されている。
機器に追加されるプログラムには、そのプログラムに許可される動作を示したパーミッション情報が付随される場合が多い。パーミッション情報を適切に設定することによって、例えば追加されたプログラムが、機器に存在するユーザの個人情報を改竄・破壊する、あるいはネットワーク機能を利用して勝手に機器上のデータを外部に流出する、といった勝手な振る舞いを行う危険性を未然に防止することができる。例えばJAVA(登録商標)では、プログラムのアクセス権限を適切にコントロールするために、セキュリティマネージャやアクセスコントローラといった仕組みが用意されている。この仕組みは非特許文献1に記載されている。
機器に追加するためのプログラムの流通の方法として代表的なものは、ネットワークを通じてこれを行なう方法である。例えば携帯電話などのモバイル機器においては、無線通信によって機器にプログラムを後から配信し、これを実行する、というサービスが既に実現されている。
これ以外にも、可搬性の記録(または記憶)媒体(以下、単に「可搬媒体」という)を通じてプログラムを流通する、という方法が、近年クローズアップされつつある。ここでの可搬媒体とは、光ディスクや、シリコンデバイス、メモリカード、その他データを記録可能で可搬可能なさまざまな媒体を含む。
この場合、家電機器は可搬媒体を着脱することができる機構を備える。着脱の形態は、可搬媒体の種類によって様々である。以降の説明では、可搬媒体が機器に装着されて、可搬媒体に記録されたデータを機器が読み取ることができる状態になっていることを、可搬媒体が機器に「挿入された」状態、あるいは機器に可搬媒体を「挿入した」状態と呼ぶことにする。それ以外の状態を可搬媒体が機器から「排出された」状態、あるいは機器が可搬媒体を「排出した」状態と呼ぶことにする。
家電機器は、挿入された状態の可搬媒体から、プログラムを直接読み込んで実行する、あるいは可搬媒体に記録されたプログラムを一旦機器が具備する独自の記憶装置に複製した後に実行する、などの方法を選択して、そのプログラムを実行することができる。
可搬媒体の着脱機構を備えた機器の中には、プログラムの動作と、可搬媒体の着脱の状態が何らかの形で関連付けされたものがある。従来例としては、例えば特許文献1に示されている。
また、機器がプログラムのデータを可搬媒体から機器に複製する際に、単純なデータコピー以外の何らかの処理を行う技術が例えば特許文献2に開示されている。
可搬媒体の着脱機構を備えた機器においては、可搬媒体に記録されたプログラムを実行する形態として、2種類のものが考えられる。
1つは、機器の持つプログラム実行系が、可搬媒体に記録されたプログラムを直接読み取り実行する方式である。この場合、可搬媒体が、機器に挿入された状態であることが不可欠の条件である。
もう1つは、可搬媒体に記録されたプログラムが、ハードディスクなど一旦機器内の記憶装置に複製(インストール)された後、機器の持つプログラム実行系が、この複製されたデータを読み取り実行する方式である。この場合は、プログラムの実行時に、可搬媒体自体は必ずしも機器に挿入された状態でなくとも構わない。
後者の方式は、プログラムを動作させる際に、可搬媒体が機器に挿入された状態になっていることが必須にはならないため、機器のユーザにとっては利用の際の自由度が大きく増す。
しかしその一方で、後者の方式は、可搬媒体を保持するユーザが一旦可搬媒体上のプログラムを機器内の記憶装置に複製してしまえば、自由にその可搬媒体の2次流通(例えば他のユーザに可搬媒体を譲渡・売却するなど)を可能にするのを許す方式でもある。そのため、可搬媒体の作成者や提供者の立場から見た場合、この方式によりプログラムの実行を許すことは好ましくないケースも多い。
特許文献1には、機器に当該プログラムが記録された可搬媒体が挿入されている状況にある場合のみ、記憶装置に複製されたプログラムの実行を許可し、それ以外の場合にはプログラムの実行を禁止する、という方式が提示されている。この方式の場合、プログラムを動作させるためには常に可搬媒体の機器への挿入が必要となるため、可搬媒体の作成者や提供者が意図しない、可搬媒体の2次流通などをユーザが行なうのを防ぐことはできる。
しかしながら、プログラムを動作させる際に常に可搬媒体の挿入を求めるという方式は、新たに以下のような問題を生じさせるものである。
(1)可搬媒体の破損などが発生した場合、プログラムを実行させることが不可能になってしまう。
(2)同一のユーザが保持する2つ以上の機器で、同時にプログラムを動作させることができなくなる。
(3)可搬媒体の2次流通などを考えない、正当な利用方法に従ってプログラムの実行を行なわせているユーザにとっても、プログラムを実行させるたびごとに「ユーザが手元に可搬媒体を保持していることを証明するために」可搬媒体の挿入が必要となり、プログラムの利用の際の利便性を損ねている。
なお、機器がプログラムを可搬媒体から機器に複製する際に、最適化などを適用してプログラムの高速化を図った例は存在するものの、従来の技術では、プログラム(アプリとも呼ぶ)に許可されるパーミッション情報というものは、実行されるプログラムの記録位置等によって変化することはなく、ほぼ一つのものに定められており、これが変更されることは、考えられていない(特許文献2)。
特開2004−46801号公報 特表2002−511615号公報 「JAVA(登録商標) Security」Scott Oaks著、O’Reilly発行、 May 2001、ISBN0−596−00157−6
本発明は、可搬媒体で提供されるプログラムを実行させる際、そのプログラムの取得経路に応じてパーミッション情報を設定することのできるプログラム実行機器を提供することを目的とする。
上記課題を解決するために本発明は、 プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が付加されたプログラムを取得して実行するプログラム実行機器であって、前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第1のパーミッション情報又は第1のパーミッション情報と異なる第2のパーミッション情報を設定するパーミッション情報設定手段と、前記パーミッション情報設定手段で設定された第1又は第2のパーミッション情報に従い、前記プログラムを実行する実行手段とを備えることとしている。
上述のような構成によって、プログラムの取得経路に応じて、第1のパーミッション情報と、それと異なる第2のパーミッション情報が設定されるので、その利用形態に応じたパーミッション情報をプログラムに適用して動作させることができる。
また、前記プログラムを記録した可搬性記録媒体を装着する装着手段と、装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複製して記憶するプログラム記憶手段とを更に備え、前記パーミッション情報設定手段は、前記プログラムの取得経路が前記装着手段に装着された可搬性記録媒体から前記プログラムを読み込むものであるとき、前記第1のパーミッション情報を設定する第1設定部と、前記プログラムの取得経路が、前記プログラム記憶手段から前記プログラムを読み込むものであるとき、前記第2のパーミッション情報を設定する第2設定部とを有することとしている。
このような構成により、可搬性記録媒体に記録されたプログラムが直接実行される場合と、一旦プログラム記録用のプログラム記憶手段に複製されたプログラムが実行される場合とによって、異なるパーミッション情報をプログラムに適用し動作させ、ユーザにサービスを提供することができる。
例えば、同一のプログラムを動作させる場合であっても、可搬性記録媒体を機器に装着して利用しているユーザには、機器の保持するローカルリソースをフルに利用して動作するプログラムを提供し、可搬性記録媒体を機器に装着して利用していないユーザには、一部の機能(例えば、機器外へのネットワークアクセス機能)を使用不能にした状態で動作するプログラムを提供する、などのように、プログラムの取得経路に応じて適切なパーミッション情報を設定することができる。本発明を用いることで、従来に存在していた仕組みよりもさらに柔軟性の高いサービスの形態を、ユーザに提供することが可能になる。
また、前記可搬性記録媒体に記録されたパーミッション情報には、第1のパーミッション情報と第2のパーミッション情報とが含まれており、前記プログラム記憶手段には、前記プログラムとともに第1のパーミッション情報と第2のパーミッション情報とが記憶されており、前記第1設定部は、前記可搬性記録媒体に記録された第1のパーミッション情報を設定し、前記第2設定部は、前記プログラム記憶手段に記録された第2のパーミッション情報を設定することとしている。
このような構成により、2種類のパーミッション情報が、可搬性記録媒体に記録されたプログラムに付加されているので、そのまま利用することができる。
また、前記可搬性記録媒体に記録されたパーミッション情報には、第1のパーミッション情報が含まれており、第1のパーミッション情報を変換ルールに従い第2のパーミッション情報に変換する変換手段を更に備えることとしている。
このような構成により、可搬性記録媒体に記録されたプログラムに付加されているパーミッション情報をそのまま第1のパーミッション情報として利用でき、また第1のパーミッション情報を変換して第2パーミッション情報として利用することができる。
また、前記装着手段に装着された可搬性記録媒体を検出する検出手段を更に備え、前記パーミッション情報設定手段は、前記検出手段が可搬性記録媒体を検出しているときは、前記取得経路に拘らず、第1のパーミッション情報を設定することとしている。
このような構成によって、可搬性記録媒体が装着されている場合には、プログラム記憶手段からプログラムを読み込んでプログラムを実行するときにも、そのプログラムの取得経路に拘らず、第1のパーミッション情報に従いプログラムを実行させることができる。
また、前記プログラムに関連付けられた追加プログラム情報を取得する取得手段を更に備え、前記追加プログラム情報は、前記プログラムの機能の追加または更新をするための追加プログラムと第2のパーミッション情報とを含み、前記パーミッション情報設定手段は、前記追加プログラム情報を使用して前記プログラムを起動するとき、第2のパーミッション情報を設定することとしている。
このような構成によって、可搬性記録媒体に記録されたプログラムに関連づけられた追加プログラム情報が取得手段によって取得され、追加プログラムが実行されるときは、追加プログラム情報に含まれる第2のパーミッション情報に従い、プログラムを実行させることができる。
また、前記プログラムを記録した可搬性記録媒体を装着する装着手段と、装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複製して記憶するプログラム記憶手段とを更に備え、前記取得手段は、外部のサーバから前記追加プログラム情報を通信回線を介してダウンロードするダウンロード部と、ダウンロードした追加プログラム情報を前記プログラム記憶手段に追加記憶させる追加部とを有することとしている。
このような構成によって、プログラム著作者が用意した追加プログラムをユーザーは容易に取得し、利用することができる。
また、本発明は、プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が付加されたプログラムを取得して実行するプログラム実行機器のプログラム実行方法であって、前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第1のパーミッション情報又は第1のパーミッション情報と異なる第2のパーミッション情報を設定するパーミッション情報設定ステップと、前記パーミッション情報設定ステップで設定された第1又は第2のパーミッション情報に従い、前記プログラムを実行する実行ステップとを有することとしている。
このような方法により、プログラムが実行される場合にプログラムの取得経路に応じて、異なるパーミッション情報をプログラムに適用し、動作させることができる。
本発明に係るプログラム実行機器は、可搬媒体を装着する装着部を有し、記録されたプログラムを読み取り実行する機器であって、そのためのプログラム実行部を備える。また、本発明の機器は、可搬媒体に記録されたプログラムを複製し、蓄積するプログラム蓄積部を備える。
このプログラム実行部は、以下の2種類の利用形態(プログラムの取得経路)でプログラムの実行に対応する。
(実行方法A)可搬媒体に記録されたプログラムのデータだけを用いて、これを直接読み取り実行する。
(実行方法B)プログラム蓄積部に記録されたプログラムのデータを読み取り実行する。
ここでプログラムのデータとは、プログラムの実行形式のことを指す。例えばJAVA(登録商標)プログラムで言えば、JAVA(登録商標)クラスファイルや、そのアーカイブ形式であるJARファイルのことを指す。
実行方法Aと実行方法Bとの違いについてさらに詳細に述べる。
実行方法Bで指すところのプログラム蓄積部が有する記憶装置(記憶手段)は、ハードディスクや不揮発性のメモリなど、機器の電源を切断してもその記録内容が保持される長期記憶装置(NON−VOLATILE STORAGE SYSTEM)である。揮発性のRAM(ランダム・アクセス・メモリ)など、電力の供給が途切れることで記録内容が消えてしまう短期記憶装置(VOLATILE STORAGE SYSTEM)は、プログラム蓄積部が有する記憶装置として対象に入らない。
実行方法Aでプログラムが実行される場合は、可搬媒体に記録されたプログラムが、直接機器のRAMなどの短期記憶装置に読み込まれて実行される方式が殆どであるが、上述の通り、この場合の短期記憶装置はプログラム蓄積部を意味していない。従って実行方法Bとは明確に区別される。
また近年では、可搬媒体に記録されたプログラムであっても、そのプログラムの機能を更新・追加するプログラムやデータを、ネットワークからダウンロードするなどしてプログラムを実行機器内に取得できる場合がある。このプログラムやデータのことを、追加プログラム情報と呼ぶ。
追加プログラム情報が長期記憶装置に格納され、プログラムの実行の際にこのデータが用いられる場合は、実行方法Bに該当するものとする。
実行方法Aとは長期記憶装置に格納されたプログラムのデータを一切使用せずに、可搬
媒体に記録されたプログラムのデータだけを用いて、実行が行なわれる方法である。
以下、「プログラム蓄積部」と記述したものは、上述した通り、ハードディスクや不揮発性メモリなど、長期記憶装置によってデータの記録が実現されるもののことを意味する。
可搬媒体に記録されたプログラムには、そのプログラムに許可される利用の範囲を記載したパーミッション情報が付加されている。
プログラム実行部は、プログラムを実行する際に、そのプログラムに付加されたパーミッション情報を読み取り、プログラム実行中の動作に反映させる。この際、プログラム実行部は、利用形態の種類によって異なるパーミッション情報を使用してプログラムを実行する。すなわち、実行方法Aによりプログラムを実行する場合には、第1のパーミッション情報を用いてプログラムを実行し、実行方法Bによりプログラムを実行する場合には、第2のパーミッション情報を用いてプログラムを実行する。
本発明は、プログラムの取得経路に応じて異なるパーミッション情報を準備するにあたり、以下の3種類の仕組みを想定している。
(a)可搬媒体に記録されたプログラムには、実行方法Aと実行方法Bとのそれぞれに対応した、2つのパーミッション情報を付加している。
(b)機器は、可搬媒体に記録されたプログラムを実行方法Bで実行するためにプログラムを複製した場合に、プログラムに付加された第1のパーミッション情報を書き換え、第2のパーミッション情報を生成する。
ここでいう可搬媒体に記録されたプログラムの複製とは可搬媒体に記録されたプログラムを実行するときのパーミッション情報とプログラム蓄積部に蓄積されたプログラムを実行するときのパーミッション情報とが実質的に同一のパーミッション情報であれば、可搬媒体に含まれるプログラムによる実行と可搬媒体からプログラム蓄積部に蓄積されたプログラムによる実行とが同一の機能を実現するように可搬媒体に含まれるプログラムをプログラム蓄積部へと蓄積する動作である。
この場合において、可搬媒体に記録されたプログラムの一部をプログラム蓄積部へ蓄積したときに上述のパーミッション情報の同一性が保証されるのであれば一部のプログラムの蓄積も複製ということにする。
この複製の具体例としては可搬媒体のプログラムに含まれるファイルとの同一のファイルをプログラム蓄積部に蓄積するとか、可搬媒体に含まれるプログラムのデータを圧縮したものをプログラム蓄積部に蓄積する(ただしこの場合はプログラム蓄積部に蓄積されたプログラムを実行するときに圧縮したファイルを元に戻した後実行するようにする必要がある)、または可搬媒体に含まれる圧縮されたプログラムのデータを展開したものをプログラム蓄積部に蓄積する等がある。
(c)機器は、可搬媒体に記録されたプログラムに関連付けられたプログラム情報を、ダウンロードによって取得し、その追加プログラム情報の中に含まれる第2のパーミッション情報を取得する。
下記のいずれか仕組みを使用することで、プログラムの取得経路に応じ異なるパーミッション情報を使用してのプログラムの実行が可能となる。
さらに、本発明の機器は、実行方法Bによりプログラムを実行する場合に、プログラムが記録された可搬媒体が機器に挿入されているかどうかを区別する。
(実行方法B−1)可搬媒体が機器に挿入されている状態で、プログラム蓄積部に記録されたプログラムのデータを読み取り実行する。
(実行方法B−2)可搬媒体が機器に挿入されていない状態で、プログラム蓄積部に記録されたプログラムのデータを読み取り実行する。
本発明の機器は、これらの利用形態も区別し、これに応じ異なるパーミッション情報を使用してプログラムを実行する。
(実施の形態1)
図1は、本発明に係るプログラム実行機器100実施の形態1の構成図である。図2は、実施の形態1の変形例の構成図であり、同一の構成要素には、同一の参照符号を付している。
プログラム実行機器100(以下、単に「機器100」という)は、可搬媒体120の着脱が可能な装着機構(図示せず)を備える。図1は、可搬媒体120にはプログラムは2つのパーミッション情報、つまり第1のパーミッション情報と、第2のパーミッション情報とを付加している場合を示し、また、図2は、可搬媒体120のプログラムがパーミッション情報をひとつ、つまり第1のパーミッション情報だけを付加している場合を示している。
なお、図1と図2とのプログラム及びパーミッション情報は、異なるものであるが、それぞれには説明の便宜上、同じ番号を付している。
可搬媒体120にはプログラム121が記録されている。プログラム等の可搬媒体120に記録されたデータを機器100が読み取ることができれば、可搬媒体120の種類および、可搬媒体120の機器に対する挿入・排出(着脱)の装着機構は何であっても良い。
ここでの可搬媒体とは光ディスクや、メモリカード、シリコンデバイス、その他データを記録可能なさまざまな物体を含む。例えばメモリカードなどの記憶デバイスは、専用の端子を機器が備え、その端子に可搬媒体を直接差し込んだり抜き取ったりすることで、機器と可搬媒体の着脱を実現する。その他の光ディスクなどの可搬媒体は、トレイ等を用いたディスクローディング機構、および光ディスク読み取り装置(ピックアップ)等を備えることで、機器と可搬媒体の着脱を実現しているものもある。
JAVA(登録商標)実行形式でプログラム121が書かれ、プログラム実行部107がJAVA(登録商標)仮想マシンで実現されている場合を例に説明を行なう。もちろんプログラム121は他の形式であっても、後述のプログラム実行部107によって動作可能なものであれば何でも良い。例えばここでのプログラムがドットNET(登録商標)の実行形式であり、プログラム実行部107がドットNET(登録商標)仮想マシンであってもよい。あるいはプログラムは機種依存のネイティブコードであって、プログラム実行部107が、機器が備えるプロセッサと主メモリ(主記憶)であってもよい。
JAVA(登録商標)プログラムとそれに伴うメタ情報等を記録したファイルを単一のファイルで記録するための形式としてJARという記録形式が規定されている。ここでは実施の例として、このJAR形式で可搬媒体120上にプログラムが記録されているものとする。
可搬媒体120に記録されるプログラム121は複数であってもよいが、説明の便宜上一つだけ記録されているものとする。
可搬媒体120に記録されるプログラム121には、プログラムの識別記号であるプログラムIDとパーミッション情報123とが付加されている。
ここで、パーミッション情報と、それにより規定される、プログラムに許可される動作について詳しく説明する。
パーミッション情報とは、プログラムを動作させる機器における、そのプログラムに許可される挙動の範囲、つまり機器リソースに対するアクセス実行権限を示した情報のことである。
個々の機器リソース毎のパーミッションを記述したものを、パーミッション項目と呼び、一つ以上のパーミッション項目が、テーブル形式または言語形式で記述され、パーミッションファイルと呼ぶファイルに格納される。
図1と図2とに示す第1のパーミッション情報123A、あるいは、第2のパーミッション情報123B、あるいはプログラム蓄積部101の第1のパーミッション情報103A、第2のパーミッション情報103Bは、いずれもがそれぞれ一つ以上のパーミッションファイルで構成される。
パーミッション項目の内容は、プログラムを実行する機器がどのような機能を有しているかに依存する。例えば、DVD(デジタル・バーサタイル・ディスク)やBD(ブルーレイ・ディスク)に代表される、高密度の記録媒体を再生する装置の場合、具体的なパーミッション項目として以下のものが考えられる。
(パーミッション項目例1)プログラムが、機器が有する長期記憶装置(ストレージ)にアクセスして、リードやライトを行なっても良いか。
(パーミッション項目例2)プログラムが、機器が有する特定のファイルをアクセスして、リードやライトを行なっても良いか。
(パーミッション項目例3)プログラムが、機器が有する特定の情報をアクセスして、リードやライトを行なっても良いか。ここでの特定の情報とは、例えば、時計の時刻、録画予約情報、チャンネル設定、機器のユーザの名前など個人情報、機器の使用履歴などの各種の設定をいう。
(パーミッション項目例4)プログラムが、他のコンテンツ(例えば、可搬媒体120に記録された映像など)をアクセスして、リードやライトを行なっても良いか。
(パーミッション項目例5)プログラムが、機器が有するネットワーク機能を使用して通信を行なっても良いか。
(パーミッション項目例6)プログラムが、特定のプロトコルを使用してもよいか。
(パーミッション項目例7)プログラムが、ある特定の通信相手(例えばURLで指定されるサイト)と通信を行なっても良いか。
(パーミッション項目例8)プログラムが、特定の実行処理を行なっても良いか。例えばスレッド操作、シリアライズ、デシリアライズ、リフレクションなどである。
(パーミッション項目例9)プログラムが、機器が有する出力装置を使用して、なんらかの出力を行なってもよいか。出力資源とは、例えば、ディスプレイ、特定のウィンドウ、音源、LEDランプ、バイブレータなどをいう。
(パーミッション項目例10)プログラムが、機器が有する入力資源からの入力を受け付けてもよいか。入力資源とは、例えば、電源スイッチ、各種スイッチ、チューナー、リモコン、ジョイスティック、タッチパネルなどをいう。
(パーミッション項目例11)プログラムが、他のプログラムと通信を行なってもよいか。
(パーミッション項目例12)プログラムが、他のプログラムの実行を制御してもよいか。例えば実行を開始する、一時中断する、終了するなどである。
(パーミッション項目例13)プログラムが使用するデータや、プログラムによって生成されたデータが、他のプログラムにアクセスされ、リードやライトが行なわれても良いか。
(パーミッション項目例14)プログラムが使用するデータや、プログラムによって生成されたデータが、機器の外に取り出され、エクスポートされてもよいか。例えば可搬媒体120に記録されて持ち出される、通信によって送信されるなどである。
(パーミッション項目例15)プログラムが、追加プログラム情報を利用しても良いかどうか。すなわち、可搬媒体120以外の媒体を通じて(例えばネットワークを通じたダウンロードによって)取得された、プログラムの機能を更新・追加するためのプログラムやデータを使用してもよいかどうかなどである。
図3は、パーミッション情報の一例をテーブル形式で示した図であり、この図をもとにパーミッション情報で指定される情報の種類の実例について述べる。
パーミッション情報テーブル301のパーミッション項目で指定する細目には、リソースの種類とパラメータとの2つがあり、リソースの種類311はパーミッションで許可される挙動(アクセスする機器リソース)の種類を、パラメータ312は当該リソースに関する許可の範囲を示す。それぞれのパーミッション項目のエントリは、示した符号に対応して、以下のようなパーミッションを示している。
(301A)機器に存在するファイル全般、または特定のファイルへの参照・更新の許可を示している。
(301B)機器や、機器が有する各種のプロパティに対する参照・更新の許可を示している。
(301C)ネットワーク機能(ネットワークソケット、ポート番号の利用、特定の通信プロトコルの利用、特定の通信先とのアクセスなど)の使用の許可を示している。
(301D)プログラム実行における特定の動作(スレッド操作、シリアライズ、デシリアライズ、リフレクションなど)の使用許可を示している。
(301E)機器の有する出力資源(ディスプレイ、特定のウィンドウ、音源、LEDランプ、バイブレータなど)の使用許可を示している。
(301F)機器の有する入力資源(電源スイッチ、各種スイッチ、チューナー、リモコン、ジョイスティック、タッチパネル等)の使用許可を示している。
(301G)プログラムが、他のプログラムと通信を行なってよいかどうか、の許可を示している。
(301H)プログラムが使用するデータや、プログラムによって生成されるデータが、他の機器にエクスポートされてもよいか否かの許可を示している。
(301I)プログラムが、追加プログラム情報を利用しても良いか否かの許可を示して
いる。
パーミッション情報には、プログラムが実行される際に、これらの使用が許可されるか否か、また許可される場合にはその制限(どこまでの動作が許可されるか)の情報が記録される。パーミッション情報で示される許可の種類は、上記に示したものであっても、もちろん他のものであってもよい。
パーミッション情報の記録形式は、プログラム実行系がプログラムを実行する際に解読できる形式であれば何でも良い。例えば、JAVA(登録商標)プログラムのパーミッションを記録するための形式として、”JAVA(登録商標).POLICY”ファイルというものが設定されていてもよい。また、同様の情報が記述されていれば他の形式であってもよい。
図4は、XML言語形式にてパーミッション情報を記述した一例を示す。
図4において、XML形式パーミッション情報401のうち、例えば機器リソースの1
種であるプロパティのユーザ名“user name"411は、リード(Read)もライト(Write)も不可(False)とされている。
次に、再び図1と図2とを参照して、機器100の構成各部について説明する。
本実施の形態の機器100は、プログラム蓄積部101、読込部105、インストール部104、選択部106、プログラム実行部107、パーミッション設定部108、検出部109、機器リソース110から構成される。なお、変形例では、パーミッション変換部115を更に備えている。
プログラム蓄積部101は、可搬媒体120に記録されたプログラムをインストール部104により複製し記録されている。このプログラム蓄積部101は、ハードディスクや不揮発性のメモリなど、機器の電源を切断してもその記録内容が保持される長期記憶装置によって実現することができる。

図1に示した構成では、可搬媒体120に記録されたプログラム121、およびこれに付加されたパーミッション情報123は全て、機器のプログラム蓄積部101に複製される。
図2に示した構成においては、可搬媒体120に記録されたプログラム121は、プログラム蓄積部101にインストール部104によってそのまま複製される。可搬媒体120に記録されたパーミッション情報123は、第1のパーミッション情報123Aをプログラム蓄積部101にインストール部104によってそのまま複製される。可搬媒体120からプログラム蓄積部101に記録される過程において、もしくは、プログラム蓄積部101に蓄積された状態からプログラム実行部107によって使用される過程において、第1のパーミッション情報123Aがパーミッション変換部115によって変換され、第2のパーミッション情報103Bとしてプログラム蓄積部101に記録される。
プログラム実行部107はプログラム(121または102)を実行する。プログラムがJAVA(登録商標)によって提供される場合、プログラムの実行自体はJAVA(登録商標)仮想マシンを使用することによって実現することができる。
インストール部104は、可搬媒体120のプログラム121とパーミッション情報123Aをインストールする。そして、インストールした内容を管理するため、可搬媒体120の記憶媒体IDと、プログラム121のプログラムID、および第1のパーミッション情報123Aのファイル名とを読み込み、後述のインストール情報テーブル114に記録する。
さらに、図1に示すように、第2のパーミッション情報123Bがあれば、それもインストールし、図2に示すように、第2のパーミッション情報123Bがなければ、パーミッション変換部115に第1のパーミッション情報123Aを伝達して、第2のパーミッション情報を変換・生成するように指示する。そして、パーミッション変換部115から、生成された第2のパーミッション情報を受け取り、プログラム蓄積部101にインストールする。
読込部105は、可搬媒体120の記憶媒体IDと、プログラム121とそのプログラムID、および第1のパーミッション情報123Aとを読み込み、さらに、図1に示すように、第2のパーミッション情報123Bがあればそれも読み込み、選択部106に伝達する。
また、図2に示すように第2のパーミッション情報123Bがなければ、パーミッション変換部115に第1のパーミッション情報123Aを伝達して、第2のパーミッション情報を変換・生成するように指示する。そして、パーミッション変換部115から、生成された第2のパーミッション情報103Bを受け取り、選択部106に伝達する。
選択部106は、プログラム蓄積部101にインストールされたプログラム102、または可搬媒体120に記録されたプログラム121のいずれのプログラムを実行するかをユーザに問い合わせ、前者の場合、プログラム蓄積部101にインストールされたプログラム102を読み出し、プログラム実行部107の主メモリ(不図示)に書き込む。
同時に、プログラム蓄積部101から、当該プログラムの第1と第2のパーミッション情報を読み出し、また後述のインストール情報テーブル114から、可搬媒体120の記憶媒体IDとプログラムIDとを読み出し、それらをパーミッション設定部108に通知する。
また選択部106は、後者の場合、読込部105に可搬媒体120からの読込を指示する。そして、可搬媒体120に記録されたプログラムを読込部105から受け取り、主メモリに書き込む。
同様に、可搬媒体120の記憶媒体IDと、主メモリに書き込んだプログラムのプログラムIDと第1と第2のパーミッション情報とを読込部105から受け取り、パーミッション設定部108に伝達する。
ここで、記憶媒体IDは、当該プログラムがプログラム蓄積部101にあるときは、インストール情報テーブル114の記憶媒体ID欄715のエントリから、また可搬媒体120にあるときは読込部105から得る。
なお、選択部106は、問い合わせのとき、不図示の表示装置と、キーボードまたはマウス(不図示)とを使用する。なお、明示的にユーザに問い合わせを示さない場合のデフォルトでの選択が定義されていても良い。すなわち、機器に予め設定を行なっておくことによって、いずれの選択をするかのユーザへの問い合わせを省略する実施形態であっても良い。
プログラム実行部107は、プログラムに付加されたパーミッション情報を解析し、プログラムの実行を適切に制御(コントロール)する。このための仕組みとして、JAVA(登録商標)仮想マシンには、セキュリティマネージャとアクセスコントローラという機構が用意されている。
JAVA(登録商標)仮想マシンは、JAVA(登録商標)プログラムに付加されたパーミッション情報を解析し、セキュアローダという仕組みを用いてプログラムを仮想マシンにロードする。この手続きをとることで、セキュアマネージャとアクセスコントローラは、プログラムを実行させる際の挙動がパーミッション情報に示された許可範囲を守るように、プログラムの実行を適切にコントロールする。この仕組みの詳細に関しては非特許文献1に示されている。
パーミッション設定部108は、JAVA(登録商標)仮想マシンにて実現され、プログラム実行部107により実行されるプログラムのパーミッション情報の設定を行う。パーミッション設定部108は、実行されるプログラムを記録した可搬媒体120の記憶媒体IDと、実行されるプログラムのプログラムIDと、第1および第2のパーミッション情報とを選択部106から受けとり、実行されるプログラムに対して第1のパーミッション情報または第2のパーミッション情報のいずれか適当なパーミッション情報をプログラム実行部108の主メモリ(不図示)に設定する。
パーミッション設定部108は、実行されるプログラムが可搬媒体120から読み出されたときには、第1のパーミッション情報の設定を行う。また、実行されるプログラムがプログラム蓄積部101から読み出されたときであっても、実行されるプログラムが記録された可搬媒体120が挿入されているときは、第1パーミッション情報の設定を行う。
それ以外のときは第2パーミッション情報の設定を行う。
パーミッション設定部108は、実行されるプログラムが記録された可搬媒体120が挿入されているか否かを知るため、検出部109に対して、可搬媒体120の記憶媒体IDとプログラムIDとを伝達し、装着機構(不図示)に可搬媒体120が挿入されているかどうかの判定をおこなうよう指示する。
検出部109による可搬媒体120の挿入、排出の状態の判定結果をもとに、挿入、排出の状態変化があれば、パーミッション設定部108は、それぞれ第1のパーミッション情報、第2のパーミッション情報に設定変更する。
検出部109は、パーミッション設定部108から記憶媒体IDとプログラムIDとを受け取り、機器に可搬媒体120が挿入されているとき、受け取った記憶媒体ID、プログラムIDが、挿入された可搬媒体120の記憶媒体ID、及び記録されたプログラムのプログラムIDとそれぞれ一致するかどうかを判定し、一致するときはパーミッション設定部108に、挿入状態である旨を通知する。また、一致しないときは、挿入されていない(排出)旨を同じくパーミッション設定部108に通知する。
検出部109は、可搬媒体120の認識装置、および可搬媒体120からのデータ読み取りの仕組みと、これをアクセスするソフトウェアプログラムによって実現することができる。
機器リソース110は、プログラム実行部107がプログラムを実行することでアクセスが可能な、機器が有する各種のデバイスの機能、機器内に格納されたデータへのアクセスの機能等として実現される。プログラム実行部107がJAVA(登録商標)仮想マシンにて実現される場合、機器リソース110へのアクセスは、JAVA(登録商標)プログラムから呼び出される各種のJAVA(登録商標)ライブラリを備えることによって実現できる
機器リソース110には、通信機能111、入出力機能112、ストレージアクセス機能113があるが、もちろん他のものであっても良い。
パーミッション変換部115は、インストール部104または選択部106からの指示により、可搬媒体120のプログラム121に付加されて記録されているパーミッション情報が第1のパーミッション情報だけのとき、それを変換して第2のパーミッション情報を生成し、プログラム蓄積部101に記録し、インストール情報テーブル114の当該プログラムの第2のパーミッション情報欄713のエントリにファイル名を記録する。
パーミッション変換部115は、例えば、パーミッション情報123を変更するためのルール(パーミッション変更ポリシー)の定義と、それに従って、入力されたパーミッション情報を変更し、新たなパーミッション情報を生成するソフトウェアプログラムによって実現することができる。パーミッション変換部115の詳細については、後に説明する。なお、プログラム蓄積部101に蓄積されるパーミッション情報は、セキュリティ上の観点から、本発明の装置以外の手段によって盗難や改変がされないような、耐タンパ性を保持していることが望ましい。
次に、本実施の形態における動作について説明する。
図5は、インストールの処理、およびプログラムの起動の処理の流れをそれぞれ示す図である。
先ず、インストールの動作について図5(a)を参照して説明する。
インストールは、可搬媒体120が機器101に挿入され、ユーザからインストールの指示があったとき、インストール部104によって実行される。例えば機器100を使用するユーザに、プログラムを機器100にインストールするか否かの問い合わせを行ない、その回答結果を得ることによって実現できる。もしくは、ユーザに問いあわせを行なう以外の実現方法としては、インストール部104が機器内の長期記憶装置の空き容量の情報を有しており、プログラムを蓄積可能なだけの容量を保持していれば、自動的に複製の処理を行なうことにする、などの実現形態をとっても良い。
インストール部104は、機器100に挿入された可搬媒体120に記録されたプログラム121を、プログラム蓄積部101へ複製する(S504)。
プログラム蓄積部101は、機器の持つ長期記憶装置の使用可能な容量の情報を保持している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂行に問題が発生した場合には、インストール不可として終了する。
なお、可搬媒体120の記録が書き換え可能な場合には、プログラムの複製処理を行なうと同時に可搬媒体120から元のプログラムの記録を消去する(プログラムを移動する)ようにしてもよい。
S505では、複製対象のプログラムに付加されたパーミッション情報を、プログラム蓄積部101に蓄積する際に、変更を加えるか否かをインストール部103は判定する。
この判定は、図1のように記録媒体に記録されたプログラムに、直接実行された時に使用される第1のパーミッション情報以外に、一旦機器内にプログラムがインストールされた後で実行される時に使用される第2のパーミッション情報が付加されている場合には、否と判定しS506に移行する。一方、記録媒体に記録されたプログラムが図2のような場合、機器内にプログラムが複製された後で実行される時のための第2のパーミッション情報を、パーミッション変換部115によって新たに生成する必要がある。この生成処理のタイミングについては、以下の2つのケースでの実現が考えられる。
(ケース1)プログラムが、可搬媒体120からプログラム蓄積部101に複製される過程において生成する。
(ケース2)プログラム蓄積部101に記録されたプログラムが、プログラム実行部107によって実行される時点において生成する。このときは、第1のパーミッション情報がプログラム蓄積部101に必要となる。
どちらのケースでもよいが、本実施の形態では、ケース1を選択し、S507に移行す
る。
なお、実施の形態の変形例で、ケース2を選択しているとき、この時点ではパーミッション変換部115による変換処理は行なわれず、S506に移行する。
S506では、可搬媒体120に記録されたプログラムのパーミッション情報を、プロ
グラム蓄積部101へ複製する処理が行なわれる。
プログラム蓄積部101は、機器の持つ長期記憶装置の使用可能な容量の情報を保持している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂行に問題が発生した場合には、S506を取りやめ、プログラムの起動は、可搬媒体120に記録さ
れたプログラムを、プログラム実行部107によって直接起動することにする(S503
を行なう)ことにしてもよい。
S507では、インストール部104が、パーミッション変換部115に指示して、可
搬媒体120に記録されたプログラムのパーミッション情報を変換し、新たに第2のパー
ミッション情報を生成させる。そして、生成された第2のパーミッション情報をパーミッ
ション変換部115から受け取り、プログラム蓄積部101に記録するとともに、インストール情報テーブル114の第2のパーミッション情報欄713にそのID又はファイル名を記載する。
パーミッション変換部115は、例えば、変更前のパーミッション情報を読み込んで、特定のルールによって書き換えられたパーミッション情報を出力するソフトウェアプログラムとして実装することができる。
図6は、パーミッション変換部115による変換の一例を示す図である。図6(a)は変更前のパーミッション情報、すなわち可搬媒体120に記録されたプログラムに付加されたパーミッション情報の例である。この図ではXML形式にて情報を実現した例である。
この例では、パーミッション変更ポリシーによって定義されるルールの例として以下の4つを定義する。
(1)機器に存在するファイル全般に対するデフォルトのアクセス権として、”read”権限のみを許可し、”write”権限を許可しないものとする。
(2)機器が有する”user name”プロパティに対するアクセス権として、”read”権限のみを許可し、”write”権限を許可しないものとする。
(3)ネットワーク機能について、”http://terminalmaker.com”というURLへのアクセスに対して、”connect”権限を許可する。
(4)上記3つのルール以外のパーミッション情報に関しては、何ら変更を加えない。
パーミッション変換部115は、図6(a)に示すパーミッション情報を読み込んで、上述のルールに従い、新たなパーミッション情報を生成する。図6(b)は、S507により生成される新たなパーミッション情報の例である。
この処理において、変更後の第2のパーミッション情報がプログラム蓄積部101に記録される。
プログラムおよびパーミッション情報が、プログラム蓄積部101に複製された後に、S508の処理が行なわれる。S508では、インストール部104は、複製されたプログラムに関する管理情報を作成する。この情報のことを本実施の形態ではインストール情報と呼ぶことにする。
インストール情報の一例を図7に示す。図7においてインストール情報は、テーブル形式でインストール情報テーブル701に記録される。プログラムがプログラム蓄積部101に複製されると、インストール情報のテーブルには、そのプログラムが新たなエントリとして追加される。
インストール情報テーブル701は、プログラム711、第1のパーミッション情報712、第2のパーミッション情報713、プログラムID714、可搬媒体ID715の各項目欄から構成されている。
プログラム欄711には、対象となるプログラムを特定するための情報が記載される。例えば、プログラム蓄積部101内のファイルシステムにおけるファイル名が記載される。
第1のパーミッション情報と第2のパーミッション情報との各項目欄712、713には、プログラムに対応したパーミッション情報を特定するための情報が記載される。例えば、プログラム蓄積部101内のファイルシステムにおけるパーミッションファイル名が記載される。
第1のパーミッション情報欄712には、可搬媒体からのプログラムを取得して実行するとき、プログラム蓄積部101にインストールされたプログラムを取得し、その際可搬媒体が装着した状態で実行するときに使用されるパーミッション情報のファイル名が記載される。また、第2のパーミッション情報欄713には、プログラム蓄積部101にインストールされたプログラムを取得して可搬媒体を排出した状態で実行するときに使用されるパーミッション情報のファイル名が記載される。
1つのプログラムに対して、パーミッション情報は第1と第2の2つ(2種類)が存在する。
第1のパーミッション情報欄712および第2のパーミッション情報欄713のエントリには、パーミッション情報を識別するパーミッションファイル名(それぞれ複数指定可)が記載される。
即ち、可搬媒体120が挿入された状態の実行で使用される第1のパーミッション情
報712の“prog1A.prf"、"withdisk"という識別情報と可搬媒体120が挿入されていない状態での実行で使用される第2のパーミッション情報欄713、“prog1A.prf"、"nodisk"という識別情報とが記載されている。
プログラムID欄715には、複製元の可搬媒体120に記載されたプログラムを識別するための識別情報が記録される。例えば可搬媒体120でのプログラムを識別するファイル名がここに記録される。プログラムIDの情報の使われ方は後述するが、実現形態によっては存在していなくともよい。
可搬媒体ID欄715には、複製元となった可搬媒体120を識別するための識別情報が記録される。例えば可搬媒体120が個々に保持するシリアルナンバーがここには記録される。可搬媒体IDの情報の使われ方は後述するが、実現形態によっては存在していなくともよい。
次に、プログラムの起動の動作について図5(b)を参照して述べる。
選択部106は、プログラム蓄積部101にインストールされたプログラムまたは可搬媒体120に記録されたプログラムのいずれのプログラムを実行するかをユーザに問い合わせ(S510)、前者の場合は、プログラム蓄積部101にインストールされたプログラム102を、選択部106が主メモリに書き込み、パーミッション設定部108が第2のパーミッション情報103Bを主メモリに設定をした後、プログラム実行部107が当該プログラムを起動する(S511)。
また、後者の場合は、可搬媒体120に記録されたプログラムを、読込部105を介し選択部106が主メモリに書き込み、パーミッション設定部108が第1のパーミッショ
ン情報123Aを主メモリに設定をした後、プログラム実行部107が当該プログラムを起動する(S512)。
この際に、どのパーミッション情報が選択されるかという情報は、可搬媒体120に記録されていてもよいし、また機器側が適切なルールによって(例えば、可搬媒体120のデータの並びで先に記録されているものを選択する、など)決定付けても良い。
プログラム蓄積部101に記録されたプログラムが起動される場合の処理(S511)
の詳細を、図8に示す。
プログラム蓄積部101に記録されたプログラム102が実行される場合、本実施の形態では、プログラムの複製元となった可搬媒体が機器に挿入された状態であるか否かを判定し、それをもとに前回の判定時から挿入・排出の状態変化があったか否かを検出する。判定のタイミングについては、以下の2種類の判定処理が考えられる。
(タイミング1)プログラムが起動した直後に、可搬媒体120の挿入の有無を判定する。
(タイミング2)プログラムの実行中に、可搬媒体120の挿入の有無を定期的に判定する。
これらの2種類の判定処理は、どちらか片方だけが行なわれても良いし、または両方とも行なわれても良い。図8の処理の流れでは両方の判定処理を行なう場合を想定して説明する。
まず、プログラム蓄積部101に記録されたプログラムの実行が、プログラム実行部107によって開始される。ここで、プログラム実行部107がJAVA(登録商標)仮想マシンによって実現される場合には、プログラムの実行を開始するための仮想マシンの初期化が行なわれる(S801)。
上記(タイミング1)で述べた、プログラム起動直後における可搬媒体120の挿入の有無を判定する(S804)。
この判定は、検出部109により行われる。
検出部109は、単純に何らかの可搬媒体120の挿入状態を判定するのみならず、可搬媒体120の種類を判別して、起動するプログラムに応じて「正しい」可搬媒体120が挿入されているか否かを判定する。この可搬媒体120の挿入・排出の判定の処理の流れを図9に示し、次に説明する。
先ず、単純に何らかの可搬媒体120が機器100に挿入されているか否かを判断する(S901)。可搬媒体120の挿入が確認される場合には、S902に、可搬媒体120が機器100に挿入されていない場合には、S907に移行する。
プログラム実行部107にて起動が指示されたプログラムの可搬媒体120のIDを取得する。これは前述した、プログラム蓄積部101のインストール情報テーブル114の記憶媒体ID欄715を参照することによって取得することができる(S902)。
機器に挿入された可搬媒体120の記録内容を読み取り可搬媒体120のIDを取得し、S902で取得した起動対象のプログラムが持つ可搬媒体120IDとの同一性を確認
する(S903)。具体的な可搬媒体120IDとしては、例えば可搬媒体120が個々
に保持するシリアルナンバーなどを用いて同一性の確認ができる。もちろん他の、プログラム蓄積部101に記録されたプログラムの複製元の可搬媒体120と、機器に挿入された可搬媒体120との同一性が確認できる情報があれば、それを用いても構わない。
同一性が確認できた場合にはS904に、確認できなかった場合にはS907に移行する。
プログラム実行部107にて起動が指示されたプログラムのプログラムIDを、検出部109はパーミッション設定部108から取得する(S904)。
機器100に挿入された可搬媒体120の記録内容を読み取り、記録されたプログラムのIDを取得し、S904で取得した起動対象のプログラムが持つプログラムIDとの同
一性を確認する(S905)。具体的なプログラムIDとしては、例えば可搬媒体でのプログラムを識別するファイル名などを用いて同一性確認ができる。もちろんプログラムIDに限らず、プログラム蓄積部101に記録されたプログラムと、機器に挿入された可搬媒体120に記録されたプログラムとの同一性が確認できる情報があれば、それを用いても構わない。
同一性が確認できた場合にはS906に、確認できなかった場合にはS907に移行する。
処理が、S906に到達した場合は、正しい可搬媒体120が機器に挿入された状態にあると判定する。また、処理が、S907に到達した場合は、正しい可搬媒体120が機器に挿入されていない(排出された)状態にあると判定する。
本実施の形態では、可搬媒体IDとプログラムIDの2種類の情報を用いて判定を行なったが、どちらかの情報のみを使うことにしてもよい。また、2種類の情報を使う場合でも、どちらかの情報さえ合致していれば、正しい可搬媒体が機器に挿入されているものと判定することにしてもよい。
再び図8に戻り、S804では、以上に述べた検出部109による、「正しい」可搬媒
体120が機器100に挿入された状態にあるかどうかの判定を行なう。挿入された状態にあると判定される場合にはS805Aに、そうでない場合にはS805Bに移行する。
「正しい」可搬媒体120が機器100に挿入された状態にあると判定される場合、またはS806Bで正しい可搬媒体120が機器に挿入された状態にあるという判定がされた場合、パーミッション設定部108は、第1のパーミッション情報、例えば図7で示したインストール情報テーブル114では、”withdisk”という識別情報で識別される第1のパーミッション情報のファイル(複数可)の設定を行い、プログラム実行部107によって、プログラムの実行が行なわれる(S805A)。
プログラム実行中における可搬媒体120が排出状態か否か判定する(S806A)。
パーミッション設定部108は、プログラム実行部107からの指示をうけ、検出部109に、機器100が「正しい」可搬媒体が挿入されている状態にあるかどうかを問い合わせる。可搬媒体の挿入・排出判定の処理の流れは、図9にて示したものと同様である。
正しい可搬媒体120が機器に挿入されていない(排出された)状態にあるという判定がされた場合、挿入状態から排出状態に状態変化が起きたため、S805Bに移行する。また、正しい可搬媒体120が機器に挿入された状態にあるという判断が下された場合、状態変化はないので、S805Aで選択された第1パーミッション情報を使用したままでプログラムの実行を続行する。
プログラムの実行の終了判定が行なわれる(S807A)。プログラムが終了する具体
的なケースとしては、プログラムが処理の終わりまで実行を終えた、ユーザにより実行を停止させられた、などの理由が考えられる。プログラムの実行が継続される場合には、S805Aに戻って処理を続行する。
S804で「正しい」可搬媒体120が機器100に挿入されていない状態にあると判
定された場合、またはS806Aでプログラム実行中における可搬媒体120が排出状態と判定された場合、パーミッション設定部108は、第2のパーミッション情報に切り替えてパーミッション設定を行う(S805B)。
S806Aのときと同様に、検出部109により上記(タイミング2)で述べた、プロ
グラム実行中における可搬媒体120の挿入の有無を判定する(S806B)。正しい可
搬媒体120が機器100に挿入された状態にあるという判定がされた場合、S805A
に移行する。
正しい可搬媒体120が機器に挿入されていない状態にあるという判断が下された場合、S805Bで選択された第2のパーミッション情報を使用してのプログラムの実行を続行する。
S807Aと同様に、プログラムの実行の終了判定が行なわれる(S807B)。プログラムの実行が継続される場合には、S805Bに戻って処理を続行する。
(実施の形態2)
実施の形態2の構成は実施の形態1と同様である。
本実施の形態のプログラムを説明する。
プログラムは、例えばユーザの入力を受け付けて遊ぶことができるゲーム等のアプリケーションプログラムといったものがあるがこれに限定されるものではない。
第1のパーミッション情報では、プログラムに、例えば以下の2つの機能項目を使用することを許可しているものとする。
(パーミッション項目1)機器が有する長期記憶装置(ストレージ)へのデータ(例えばゲームを行ったときの得点情報に関するデータなど)のリード許可およびライト許可である。
(パーミッション項目2)ゲームアプリケーションの作成者が運営する、サーバサイトのURLへのネットワークアクセス機能である。
また、第2のパーミッション情報では、実行方法Bにより実行するプログラムに、上記2つのパーミッション項目を使用することを禁止しているものとする。
プログラムは、プログラム実行環境を備えた(つまり本実施の形態のプログラム実行装置を備えた)、光ディスク再生機器(または記録機能を備えた光ディスク記録再生機器であってもよい)で動作させることができる。
プログラムは、第1のパーミッション情報に基づいて動作する場合は、パーミッション項目1で示された機能を用いることで、ゲームのハイスコアの記録、および、ゲームを遊んだユーザの名前の登録を行うことができる。また、パーミッション項目2で示された機能を用いることで、サーバサイトのURLにアクセスし、ゲームに登場する追加キャラクターのデータや、ゲームの追加ステージのデータなど、ゲームに関連する新たなデータを取得し、そのデータを用いてゲームを遊ぶことができる。
プログラムが、第2のパーミッション情報に基づいて動作する場合は、パーミッション項目例1で示された機能を用いることはできないため、ゲームのハイスコアの記録や、ゲームを遊んだユーザの名前の登録を行わない。同様にして、パーミッション項目例2で示された機能を用いることはできないため、ゲームに関連する新たなデータをネットワークを通じて取得することはできない。
この場合、ゲームアプリケーションのプログラムは、機器が有する長期記憶装置(ストレージ)へのデータのリード・ライト処理を指定する記述、および、サーバサイトのURLへのネットワークアクセス処理を指定する記述を有しているが、プログラム実行部107は、第2のパーミッション情報に基づき、これらの処理を無効にしてプログラムの実行を行う。
処理を無効にされた場合、その処理内容は実現されないまま、プログラムに記述された後続の処理の実行が進められる。例えばゲームアプリケーションのプログラムがJAVA(登録商標)で記述されており、プログラム実行部107がJAVA(登録商標)仮想マシンで実現されている場合、JAVA(登録商標)仮想マシンは、プログラムに記述された長期記憶装置(ストレージ)へのデータのリード・ライト処理を実現しない。同じく、サーバサイトのURLへのネットワークアクセス処理を実現しない。代わりにJAVA(登録商標)仮想マシンは、記述の示す処理が無効にされたことを示す例外発生情報(エクセプション)を発行する。その後、後続して記述されたプログラムの実行が進められる。
(実施の形態3)
図10は、実施の形態3のプログラム実行機器100の構成図である
プログラム実行機器100(以下、単に「機器100」という)は、可搬媒体120の着脱が可能な機構を備える。
図10は、可搬媒体120のプログラムがパーミッション情報をひとつ、つまり第1のパーミッション情報だけを付加する場合を示している。
図10のプログラム及び第1のパーミッション情報には、説明の便宜上、図1と図2で示したプログラム及び第1のパーミッション情報と同じ番号を付している。
可搬媒体120にはプログラム121が記録されている。プログラム等の可搬媒体120に記録されたデータを機器100が読み取ることができれば、可搬媒体120の種類および、可搬媒体120の機器に対する挿入・排出(着脱)の形態は何であっても良い。
ここでの可搬媒体とは光ディスクや、メモリカード、シリコンデバイス、その他データを記録可能なさまざまな媒体を含む。例えばメモリカードなどの記憶デバイスは、専用の端子を機器が備え、その端子に可搬媒体を直接差し込んだり抜き取ったりすることで、機器と可搬媒体の着脱を実現する。その他の光ディスクなどの可搬媒体は、トレイ等を用いたディスクローディング機構、および光ディスク読み取り装置(ピックアップ)等を備えることで、機器と可搬媒体の着脱を実現しているものもある。
さらに、機器100は、追加プログラム情報を供給する機器130(以下、機器130と示す)と接続し、機器130に格納されたデータを取得することが可能な機構を備えている。機器130は、機器100と通信接続されるサーバ機器である。その他、機器130がデータを記録する能力を有し、機器130に記録されたプログラム等のデータを機器100が読み取ることができれば、機器130の種類および、接続の形態、データを通信する形態は何であってもよい。機器130は、光ディスクや、メモリカード、シリコンデバイス、その他データを記録可能なさまざまな可搬媒体であってもよい。
機器130には追加プログラム情報131が記録されている。追加プログラム情報131は、例えばプログラム121のプログラムID情報を有しているなど、プログラム121あるいはプログラム102との関連付けを示す情報を保持している。さらに、追加プログラム情報131は、プログラム121に付加される第2のパーミッション情報を有している。
追加プログラム情報131はこれ以外にも、プログラム121が有する機能を更新・追加するためのデータを保持していて良い。このデータは、プログラム121の一部もしくは全てを更新した新しいプログラムを含んでいても良い。あるいはプログラム121が機器100上で実行される際に使用される、画像などのメディアデータや、情報や文書等を記録したメタデータや、その他の種類のデータを含んでいても良い。
本実施の形態では、追加プログラム情報131は、プログラム121の一部に置き換えられる新しいプログラムを有しているものとする。対応するプログラム(プログラム121あるいはプログラム102)と共に、追加プログラム情報131がプログラム実行部107の持つ主メモリ(不図示)に書き込まれることで、機能が更新・追加されたプログラムが実行できるものとする。このとき、対応するプログラムの一部は追加プログラム情報に置き換えられるものであるため、対応するプログラムは必ずしも全ての部分が主メモリ(不図示)に書き込まれる必要はなく、プログラム実行部107で必要であるとされた部分が選択的に書き込まれればよい。
JAVA(登録商標)実行形式でプログラム121が書かれ、プログラム実行部107がJAVA(登録商標)仮想マシンで実現されている場合を例に説明を行なう。もちろんプログラム121は他の形式であっても、後述のプログラム実行部107によって動作可能なものであれば何でも良い。例えばここでのプログラムが.NET(ドットネット)(登録商標)の実行形式であり、プログラム実行部107が.NET(ドットネット)(登録商標)仮想マシンであってもよい。あるいはプログラムは機種依存のネイティブコードであって、プログラム実行部107が、機器が有するプロセッサと主メモリ(主記憶)であってもよい。
JAVA(登録商標)プログラムとそれに伴うメタ情報等を記録したファイルを単一のファイルで記録するための形式としてJARという記録形式が規定されている。ここでは実施の形態として、このJAR形式で可搬媒体120上にプログラムが記録されているものとする。
可搬媒体120に記録されるプログラム121は複数であってもよいが、説明の便宜上一つだけ記録されているものとする。
また、追加プログラム情報131は、プログラム121を更新し性能を高めた新しいプログラムを含んでいるものとする。ここでは実施の例として、同じくJAR形式で機器130に追加プログラム情報が記録されているものとする。
可搬媒体120に記録されるプログラム121には、プログラムの識別記号であるプログラムIDとパーミッション情報123とが付加されている。
また、機器130に記録される追加プログラム情報131には、追加プログラム情報の識別記号である追加プログラム情報IDと、パーミッション情報133とが付加されている。
パーミッション情報と、それにより規定される、プログラムに許可される動作については、上述の実施の形態で述べたものと同じであるため説明は省略する。パーミッション情報の一例をテーブル形式で示したものが図3であり、XML言語形式にてパーミッション情報を記述した例を示したものが図4である。これらに関しても、上述の実施の形態で述べたものと同じであるため説明は省略する。
図10を参照して、機器100の構成各部について説明する。
本実施の形態の機器100は、プログラム蓄積部101、読込部105、インストール部104、選択部106、プログラム実行部107、パーミッション設定部108、機器リソース110から構成される。
プログラム蓄積部101は、可搬媒体120に記録されたプログラム、および、機器130に記録された追加プログラム情報をインストール部104により複製し記録されている。このプログラム蓄積部101は、ハードディスクや不揮発性のメモリなど、機器の電源を切断してもその記録内容が保持される長期記憶装置で実現することができる。
図10に示した構成では、可搬媒体120に記録されたプログラム121、およびこれに付加されたパーミッション情報123は、機器100のプログラム蓄積部101に複製される。また、機器130に記録された追加プログラム情報131、およびこれに付加されたパーミッション情報133は、機器100のプログラム蓄積部101に複製される。
プログラム実行部107はプログラム121を実行する。また、追加プログラム情報131にプログラムが含まれる場合、プログラム107は追加プログラム情報131も実行する。プログラムがJAVA(登録商標)によって提供される場合、プログラムの実行自体はJAVA(登録商標)仮想マシンを使用することによって実現することができる。
インストール部104は、可搬媒体120のプログラム121とパーミッション情報123Aをインストールする。つまり、可搬媒体120の記憶媒体IDと、プログラム121とそのプログラムID、および第1のパーミッション情報123Aとを読み込み、プログラム蓄積部101に複製し、後述の拡張インストール情報テーブル117のエントリにに複製したプログラムのファイル名等を記載する。
また、インストール部104は、プログラム121に関連付けられた、機器130の追加プログラム情報131の存在が確認されれば、第2のパーミッション情報133Bを含む追加プログラム情報131をインストールする。つまり、機器130を識別するための情報である機器IDと、追加プログラム情報131と、その追加プログラム情報ID、およびプログラム121に与えられる第2のパーミッション情報133Bとを読み込み、プログラム蓄積部101に複製し、後述の拡張インストール情報テーブル117のエントリに複製した追加プログラム情報の取得元の機器ID等をプログラム121のファイル名等に関連付けて記載する。
読込部105は、可搬媒体120の記憶媒体IDと、プログラム121とそのプログラムID、および第1のパーミッション情報123Aとを読み込み、選択部106に伝達する。
また、読込部105は、プログラム蓄積部101を参照し、プログラム121に関連付けられた追加プログラム情報131が存在し、第2のパーミッション情報103Bが記録されているかどうかを確認する。記録されていれば、第2のパーミッション情報を受け取り、選択部106に伝達する。
選択部106は、以下の2つに関して、機器のユーザに問い合わせを行ない、いずれかを選択する。
(選択1)プログラム蓄積部101にインストールされたプログラム102を実行するか、または可搬媒体120に記録されたプログラム121を実行するか。
(選択2)追加プログラム情報116を使用して実行を行なうか否か。
選択部106は、問い合わせのとき、不図示の表示装置と、キーボードまたはマウス(不図示)とを使用する。
なお、この選択部106は、明示的にユーザに問い合わせを行なわない実施形態になっていてもよい。機器100には、デフォルトでどちらを選択するかが予め定義されていてもよい。いずれの選択を選ぶかユーザに問い合わせる処理を省略して、どちらを選択するかを切り替える別の手段を備える実施形態であってもよい。
ユーザへの問い合わせを行なわずに選択の切り替えを行う手段の実現例としては、例えば、プログラム実行部107で実行されるプログラムに切り替えを行わせるという方法がある。すなわち、選択部106は、選択の切り替えを行うための、プログラムから呼び出すことのできるAPI(アプリケーション・プログラミング・インタフェース)として実現される、という実施形態が考えられる。

まず(選択1)に関して、前者が選択された場合の動作について述べる。この場合、プログラム蓄積部101にインストールされたプログラム102を、選択部106がプログラム実行部107の主メモリ(不図示)に書き込む。同時に、選択部106は、後述の拡張インストール情報テーブル117から、当該プログラムのプログラムIDを読み出し、それらを(選択2)の選択結果の情報とともに、パーミッション設定部108に通知する。
このとき、(選択2)によって、追加プログラム情報116を使用して実行を行なうことが指定されていた場合、選択部106は追加プログラム情報116もまたプログラム実行部107の主メモリ(不図示)に書き込む。先の追加プログラム情報131の説明で述べた通り、プログラム102は、必ずしも全ての情報が主メモリ(不図示)に書き込まれる必要はなく、プログラム実行部107で必要であるとされた部分が選択的に書き込まれればよい。
(選択2)によって、追加プログラム情報116を使用して実行を行なうことが指定されていない場合は、選択部106は追加プログラム情報116をプログラム実行部107に書き込むことはしない。

次に(選択1)に関して、後者が選択された場合の動作について述べる。この場合、選択部106は、読込部105に可搬媒体120からの読込を指示する。そして、可搬媒体120に記録されたプログラム121を読込部105から受け取り、プログラム実行部107の主メモリ(不図示)に書き込む。同時に、選択部106はプログラム121のプログラムIDを読み出し、それらを(選択2)の選択結果の情報とともに、パーミッション設定部108に通知する。
このとき、(選択2)によって、追加プログラム情報116を使用して実行を行なうことが指定されていた場合、選択部106は追加プログラム情報116もまたプログラム実行部107の主メモリ(不図示)に書き込む。先の追加プログラム情報131の説明で述べた通り、プログラム121は、必ずしも全ての情報が主メモリ(不図示)に書き込まれる必要はなく、プログラム実行部107で必要であるとされた部分が選択的に書き込まれればよい。
(選択2)によって、追加プログラム情報116を使用して実行を行なうことが指定されていない場合は、選択部106は追加プログラム情報116をプログラム実行部107に書き込むことはしない。
プログラム実行部107は、プログラムに付加されたパーミッション情報を解析し、プログラムの実行を適切に制御(コントロール)する。このための仕組みとして、JAVA(登録商標)仮想マシンには、セキュリティマネージャとアクセスコントローラという機構が用意されている。
JAVA(登録商標)仮想マシンは、JAVA(登録商標)プログラムに付随したパーミッション情報を解析し、セキュアローダという仕組みを用いてプログラムを仮想マシンにロードする。この手続きをとることで、セキュアマネージャとアクセスコントローラは、プログラムを実行させる際の挙動がパーミッション情報に示された許可範囲を守るように、プログラムの実行を適切にコントロールする。この仕組みの詳細に関しては非特許文献1に示されている。
パーミッション設定部108は、JAVA(登録商標)仮想マシンにて実現され、プログラム実行部107により実行されるプログラムのパーミッションの設定を行う。パーミッション設定部108は、実行されるプログラムのプログラムIDと、上記選択部106で行なわれた(選択2)の選択結果の情報とを選択部106から受けとる。
パーミッション設定部108は、(選択2)にて、追加プログラム情報116を使用して実行が行なわれると選択された場合には、追加プログラム情報116に含まれる第2のパーミッション情報の設定を行なう。そうではない場合、すなわち(選択2)にて、追加プログラム情報116を使用して実行が行なわれないと選択された場合には、実行されるプログラムに付加された第1のパーミッション情報の設定を行なう。
機器リソース110は、プログラム実行部107がプログラムを実行することでアクセスが可能な、機器100が有する各種のデバイスの機能、機器100に格納されたデータへのアクセスの機能等として実現される。プログラム実行部107がJAVA(登録商標)仮想マシンにて実現される場合、機器リソース110へのアクセスは、JAVA(登録商標)プログラムから呼び出される各種のJAVA(登録商標)ライブラリを備えることによって実現できる。
機器リソース110には、通信機能111、入出力機能112、ストレージアクセス機能113があるが、もちろん他のものであっても良い。
なお、プログラム蓄積部101に蓄積されるパーミッション情報は、セキュリティ上の観点から、本発明の装置以外の手段によって盗難や改変がされないような、耐タンパ性を保持していることが望ましい。
次に、本実施の形態における動作について説明する。
図12は、プログラムのインストールの処理の流れを示す図である。
プログラムのインストールは、可搬媒体120が機器101に挿入され、ユーザからインストールの指示があったとき、インストール部104によって実行される。例えば機器100を使用するユーザに、プログラムを機器100にインストールするか否かの問い合わせを行ない、その回答結果を得ることによって実現できる。もしくは、ユーザに問いあわせを行なう以外の実現方法としては、プログラム蓄積部101が機器内の長期記憶装置の空き容量の情報を保持しており、プログラムを蓄積可能なだけの容量を保持していれば、自動的に複製の処理を行なうことにする、などの実現形態をとっても良い。
インストール部104は、機器100に挿入された可搬媒体120に記録されたプログラム121を、プログラム蓄積部101へ複製する(S1201)。
プログラム蓄積部101は、機器の持つ長期記憶装置の使用可能な容量の情報を有している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂行に問題が発生した場合には、インストール不可として終了する。
なお、可搬媒体120の記録が書き換え可能な場合には、プログラムの複製処理を行なうと同時に可搬媒体120から元のプログラムの記録を消去する(プログラムを移動する)ようにしてもよい。
S1202では、拡張インストール情報テーブル117を参照し、プログラム121に対応するエントリが既に存在しているかどうかを確認する。ここで、既にエントリが存在している場合というのは、すなわちプログラム121に関連付けられた追加プログラム情報が先にインストールされている状態のことを指している。
S1202でエントリが存在していないと確認された場合は、S1203の処理を行なう。S1203は、複製されたプログラムに関する管理情報であるインストール情報を新たに作成し、エントリとして追加する。ここで作成されるインストール情報は、プログラムのファイル名、当該プログラムの第1のパーミッション情報、プログラムID、可搬媒体ID(本実施の形態では任意)等である。それぞれの情報の詳細については拡張インストール情報テーブル117の説明にて後述する。
S1202でエントリが既に存在すると確認された場合には、S1204の処理を行なう。S1204は、複製されたプログラムに関する管理情報であるインストール情報を、既に存在する対応するエントリに追記する。
図13は、追加プログラム情報のインストールの処理の流れを示す図である。
追加プログラム情報のインストールは、機器100と機器130が接続され、ユーザからインストールの指示があったとき、インストール部104によって実行される。例えば機器100を使用するユーザに、追加プログラム情報を機器100にインストールするか否かの問い合わせを行ない、その回答結果を得ることによって実現できる。もしくは、ユーザに問いあわせを行う以外の実現方法としては、インストール部104がプログラム蓄積部101の長期記憶装置の空き容量の情報を保持しており、プログラムを蓄積可能なだけの容量を保持していれば、自動的に複製の処理を行なうことにする、などの実現形態をとっても良い。
インストール部104は、機器100と接続された機器130に記録された追加プログラム情報131を、プログラム蓄積部101へ複製する(S1301)。
インストール部104は、機器の持つ長期記憶装置の使用可能な容量の情報を保持している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂行に問題が発生した場合には、インストール不可として終了する。
S1302では、拡張インストール情報テーブル117を参照し、追加プログラム情報131に関連付けられたプログラム121に対応するエントリが既に存在しているかどうかを確認する。ここで、既にエントリが存在している場合というのは、すなわちプログラム121が先にインストールされている状態のことを指している。
S1302でエントリが存在していないと確認された場合は、S1303の処理を行なう。S1303は、追加プログラム情報に関する管理情報であるインストール情報を新たに作成し、エントリとして追加する。ここで作成されるインストール情報は、追加プログラム情報、当該プログラムの第2のパーミッション情報、追加プログラム情報ID、機器ID等である。それぞれの情報の詳細については拡張インストール情報テーブル117の説明にて後述する。
S1302でエントリが既に存在すると確認された場合には、S1304の処理を行なう。S1304は、追加プログラム情報に関する管理情報であるインストール情報を、既に存在する対応するエントリに追記する。
拡張インストール情報テーブル117の一例を図11に示す。
拡張インストール情報テーブル117には、プログラム1171、第1のパーミッション情報1172、第2のパーミッション情報1173、プログラムID1174、可搬媒体ID1175、追加プログラム情報1176、追加プログラム情報ID1177、機器ID1178の各項目欄が設けられている。
プログラム欄1171のエントリには、対象となるプログラムを特定するための情報が記載される。例えば、プログラム蓄積部101内のファイルシステムにおけるファイル名が記載される。
第1のパーミッション情報と第2のパーミッション情報の各項目欄のエントリには、プログラムに対応したパーミッション情報を特定するための情報が記載される。例えば、プログラム蓄積部101内のファイルシステムにおけるパーミッション情報のファイル名が記載される。
例えば、第1のパーミッション情報1172のパーミッションファイル“prog1A.prf“は、”diskonly”という識別情報を付加されており、追加プログラム情報116を使用せずにプログラムを実行する場合に使用される。また、例えば、第2のパーミッション情報1173のパーミッションファイル“prog1B.prf“は、”addition”という識別情報を付加されており、追加プログラム情報116を使用してプログラムを実行する場合に使用される。
プログラムID欄1174のエントリには、可搬媒体120上でプログラム121を識別するための識別情報が記録される。このプログラムIDの情報は、可搬媒体120からプログラム蓄積部101にプログラムがインストールされる際に記録される場合と、追加プログラム情報131が関連付けられたプログラムの情報として保持していて、追加プログラム情報131がプログラム蓄積部101にインストールされる際に記録される場合とがある。
可搬媒体ID欄1175のエントリには、複製元となった可搬媒体120を識別するための識別情報が記録される。例えば可搬媒体120が個々に有するシリアルナンバーがここに記録される。可搬媒体ID欄は、本実施の形態においては存在していなくともよい。
追加プログラム情報欄1176のエントリには、対象となる追加プログラム情報を特定するための情報が記載される。例えば、プログラム蓄積部101のファイルシステムにおけるファイル名が記載される。
追加プログラム情報ID欄1177のエントリには、追加プログラム情報を識別するための情報が記録される。追加プログラム情報ID欄は、実施の形態によっては存在していなくともよい。
機器ID欄1178のエントリには、複製元となった機器130を識別するための識別情報が記録される。例えば機器130が個々に有するシリアルナンバー、IPアドレスやURLなど、データ通信において機器を特定するための位置情報などが識別情報として使用できる。機器ID欄は、実施の形態によっては存在していなくともよい。
次に、プログラムの起動の動作について、図14を参照して述べる。
選択部106は、追加プログラム情報を使用してプログラムを起動するか否かをユーザに対して問い合わせを行なう(S1401)。また、プログラム蓄積部101にインストールされたプログラムまたは可搬媒体120に記録されたプログラムのいずれのプログラムを実行するかをユーザに対して問い合わせを行なう(S1405)。これらの結果を用いて、プログラムの起動の処理は行なわれる。
パーミッション設定部108は、S1401で、追加プログラム情報を使用してプログラムを起動すると選択された場合、プログラムを実行させる際のパーミッション情報として、第2のパーミッション情報を設定する(S1402)。さらに、選択部106は、プログラム蓄積部の追加プログラム情報を読み出し、プログラム実行部の主メモリに書き込む。
ここで、追加プログラム情報116を使用して、機能の追加・更新が行なわれたプログラム121またはプログラム102を起動するための実現形態について記載する。
プログラム実行部107がJAVA(登録商標)仮想マシンにて実現されている場合、追加プログラム情報116に相当するJAR形式のファイルと、プログラム121またはプログラム102に相当するJAR形式のファイルとが、JAVA(登録商標)仮想マシンに書き込まれることによって、機能の追加・更新が行なわれたプログラムを動作させることができる。
追加プログラム情報116が別のプログラムを含んでおり、その別のプログラムが、プログラム121またはプログラム102の一部または全てに置き換えられる場合には、後に発生する、プログラム121またはプログラム102の主メモリへの書き込み(S1406又はS1407)において、これら全ての情報を書き込む必要はなく、プログラム121またはプログラム102の持つ一部の情報を書き込むだけで充分である場合もある。
この、置き換えられるファイルの検出を行なうために、選択部106は、ファイル名を比較する機能と、ファイルのタイムスタンプを検出する機能を備える。
選択部106は、追加プログラム情報116のJARファイル中に含まれる全てのファイル名と、プログラム121(プログラム102)のJARファイル中に含まれる全てのファイル名の比較を行ない、同名のファイルを検出した場合には、それらのファイルのタイムスタンプの比較を行なう。その結果、より新しいファイルと思われるものだけをプログラム実行部107の主メモリに書き込むことにし、古いと判断されたファイルは主メモリに書き込まない、という実装にすることができる。
また、プログラムと追加プログラム情報の主メモリへの書き込みのための正しい順序関係が規定されている場合がある。そのような場合のために、S1403はS1406の後に行なわれる実現形態になっていても良い。
S1405では、プログラム蓄積部101にインストールされたプログラム121または可搬媒体120に記録されたプログラム102のいずれのプログラムを実行するかをユーザに問い合わせる。
前者が選択された場合には、プログラム蓄積部101にインストールされたプログラム121の一部もしくは全ての情報がプログラム実行部107の主メモリに書き込まれ、プログラムが起動される(S1406)。
後者が選択された場合には、可搬媒体120に記録されたプログラム102の一部もしくは全ての情報がプログラム実行部107の主メモリに書き込まれ、プログラムが起動される(S1407)。
以上がプログラム起動の際に行なわれる処理の流れである。
(実施の形態4)
実施の形態4の構成は、実施の形態3と同様である。
本実施の形態のプログラムを説明する。
プログラムは、例えばユーザの入力を受け付けて遊ぶことができるゲーム等のアプリケーションプログラムといったものがあるがこれに限定されるものではない。可搬媒体120に記録されたプログラムは、第1のパーミッション情報123Aのみを保持する。このパーミッション情報は、以下の2つの機能項目が設定されている。
(パーミッション項目1)機器が有する長期記憶装置(ストレージ)へのデータ(例えばゲームを行ったときの得点情報に関するデータなど)へのリード許可およびライト許可である。
(パーミッション項目2)ゲームアプリケーションの作成者が運営するサーバのURLへのネットワークアクセス機能である。
第1のパーミッション情報は、(パーミッション項目1)の機能の使用を禁止し、(パーミッション項目2)の使用を許可しているものとする。本プログラムはプログラム実行環境を備えた、光ディスク再生機器上で動作させることができる。ここでは、プログラムは光ディスク再生機器のプログラム蓄積部101にインストールされず、可搬媒体から直接プログラムの起動がされるものとする。
一方、光ディスク再生機器と接続可能な、ゲームアプリケーションの作成者が設置するサーバからは、追加プログラム情報が提供される。インストール部104は、サーバから追加プログラム情報を取得し、プログラム蓄積部101にインストールする。
追加プログラム情報には、上記プログラムの更新版、および、第2のパーミッション情報が含まれるものとする。
また、第2のパーミッション情報では、上記2つのパーミッション項目の両方について、使用が許可されているものとする。
追加プログラム情報を使用して起動することが選択されなかった場合には、可搬媒体に記録されたプログラムのみがプログラム実行部に書き込まれる。この場合、プログラムの機能には第1のパーミッション情報に定められた範囲で許可が与えられる。すなわち、(パーミッション項目1)で定められた、機器が保持する長期記憶装置(ストレージ)へのデータへのリード・ライトの動作を行うことができない。この場合、可搬媒体に記録されたプログラムとデータのみが用いられて、ネットワークから何ら情報を得ていないのと同じ状態でプログラムを動作させていることになる。
追加プログラム情報を使用して起動することが選択された場合には、プログラム蓄積部101にインストールされた追加プログラム情報、および、可搬媒体に記録されたプログラムがプログラム実行部に書き込まれる。
追加プログラム情報には、上記プログラムの更新版が含まれるため、ここでプログラムの更新版と、元の可搬媒体に記録されたプログラムとが、同一のファイルや情報を有している場合が考えられる。ここでは両者の比較を行い、選択的に書き込みを行う処理にしても良い。すなわち追加プログラム情報と可搬媒体に記録されたプログラムとで、両方の全てのデータをプログラム実行部に書き込ませる必要はなく、更新版のプログラムが有するファイルと重複しているファイルなど、プログラムの実行に不要であると判断される部分は、部分的に書き込みを行わないようにしても良い。
この場合、プログラムの機能には第2のパーミッション情報に定められた範囲で許可が与えられる。すなわち、(パーミッション項目1)で定められた、機器が有する長期記憶装置(ストレージ)へのデータへのリード・ライトの動作を行うことができるようになる。この場合、記録媒体に記録されたプログラムと、ネットワークを通じてサーバから提供された追加プログラム情報のデータが用いられて、新たなプログラムを新たなパーミッション情報の元で動作させることができるようになる。
本発明は、プログラムの動作を適切にコントロールすることにより、セキュリティにおけるアクセス保護・アクセス管理技術として利用することが可能である。プログラム(コンテンツ)の作成者が、ユーザのプログラムの取得経路に応じて適切な範囲のサービスを提供する著作権管理、著作物配信管理技術として応用することができる。
本発明に係るプログラム実行機器の実施の形態1の構成図である。 上記実施の形態の変形例の構成図である。 上記実施の形態のパーミッション情報の一例を示す図である。 上記実施の形態のパーミッション情報の一例を示す図である。 上記実施の形態のプログラムのインストール処理、および実行までの処理の流れを示す図である。 上記実施の形態のプログラム蓄積部のパーミッション変更ポリシーの一例を示す図である。 上記実施の形態のプログラム蓄積部のインストール情報テーブルの一例を示す図である。 上記実施の形態のプログラム蓄積部に記録されたプログラムが起動される場合の処理の流れを示す図である。 上記実施の形態の可搬性記憶媒体の検出(挿入・排出)の処理の流れを示す図である。 本発明に係るプログラム実行機器の実施の形態3の構成図である。 上記実施の形態のプログラム蓄積部の拡張インストール情報テーブルの一例を示す図である。 上記実施の形態のプログラムのインストール処理の流れを示す図である。 上記実施の形態の追加プログラム情報のインストール処理の流れを示す図である。 上記実施の形態のプログラムの実行までの処理の流れを示す図である。
符号の説明
100 プログラム実行機器
101 プログラム蓄積部
102 プログラム(プログラム蓄積部内)
103A 第1のパーミッション情報(プログラム蓄積部内)
103B 第2のパーミッション情報(プログラム蓄積部内)
104 インストール部
105 読込部
106 選択部
107 プログラム実行部
108 パーミッション設定部
109 検出部
110 機器リソース
114 インストール情報テーブル
115 パーミッション変換部
117 拡張インストール情報テーブル
120 可搬媒体
121 プログラム(可搬媒体上)
123 パーミッション情報(可搬媒体上)
123A 第1のパーミッション情報(可搬媒体上)
123B 第2のパーミッション情報(可搬媒体上)
130 追加プログラム情報を供給する機器
131 追加プログラム情報
133 パーミッション情報(追加プログラム情報内)
133B 第2のパーミッション情報(追加プログラム情報内)
301 パーミッション情報テーブル
401 XML形式パーミッション情報

Claims (7)

  1. プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が付加されたプログラムを取得して実行するプログラム実行機器であって、
    前記プログラムを記録した可搬性記録媒体を装着する装着手段と、
    装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複製して記憶するプログラム記憶手段と、
    前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第1のパーミッション情報又は第1のパーミッション情報と異なる第2のパーミッション情報を設定するパーミッション情報設定手段と、
    前記パーミッション情報設定手段で設定された第1又は第2のパーミッション情報に従い、前記プログラムを実行する実行手段とを備え
    前記パーミッション情報設定手段は、
    前記プログラムの取得経路が、前記装着手段に装着された可搬性記録媒体から前記プログラムを読み込むものであるとき、前記第1のパーミッション情報を設定する第1設定部と、
    前記プログラムの取得経路が、前記プログラム記憶手段から前記プログラムを読み込むものであるとき、前記第2のパーミッション情報を設定する第2設定部とを有する
    ことを特徴とするプログラム実行機器。
  2. 前記可搬性記録媒体に記録されたパーミッション情報には、第1のパーミッション情報と第2のパーミッション情報とが含まれており、
    前記プログラム記憶手段には、前記プログラムとともに第1のパーミッション情報と第2のパーミッション情報とが記憶されており、
    前記第1設定部は、前記可搬性記録媒体に記録された第1のパーミッション情報を設定し、
    前記第2設定部は、前記プログラム記憶手段に記録された第2のパーミッション情報を設定することを特徴とする請求項記載のプログラム実行機器。
  3. 前記可搬性記録媒体に記録されたパーミッション情報には、第1のパーミッション情報が含まれており、
    第1のパーミッション情報を変換ルールに従い第2のパーミッション情報に変換する変換手段を更に備えることを特徴とする請求項記載のプログラム実行機器。
  4. 前記装着手段に装着された可搬性記録媒体を検出する検出手段を更に備え、
    前記パーミッション情報設定手段は、前記検出手段が可搬性記録媒体を検出しているときは、前記取得経路に拘らず、第1のパーミッション情報を設定することを特徴とする請求項記載のプログラム実行機器。
  5. 前記プログラムに関連付けられた追加プログラム情報を取得する取得手段を更に備え、
    前記追加プログラム情報は、前記プログラムの機能の追加または更新をするための追加プログラムと第2のパーミッション情報とを含み、
    前記パーミッション情報設定手段は、前記追加プログラム情報を使用して前記プログラムを起動するとき、第2のパーミッション情報を設定することを特徴とする請求項1記載のプログラム実行機器。
  6. 記取得手段は、
    外部のサーバから前記追加プログラム情報を通信回線を介してダウンロードするダウンロード部と、
    ダウンロードした追加プログラム情報を前記プログラム記憶手段に追加記憶させる追加部とを有することを特徴とする請求項記載のプログラム実行機器。
  7. プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が付加されたプログラムを取得して実行するプログラム実行機器のプログラム実行方法であって、
    前記プログラム実行機器は、
    前記プログラムを記録した可搬性記録媒体を装着する装着手段と、
    装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複製して記憶するプログラム記憶手段とを備え、
    前記プログラム実行方法は、
    前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第1のパーミッション情報又は第1のパーミッション情報と異なる第2のパーミッション情報を設定するパーミッション情報設定ステップと、
    前記パーミッション情報設定ステップで設定された第1又は第2のパーミッション情報に従い、前記プログラムを実行する実行ステップとを有し、
    前記パーミッション情報設定ステップは、
    前記プログラムの取得経路が、前記装着手段に装着された可搬性記録媒体から前記プログラムを読み込むものであるとき、前記第1のパーミッション情報を設定する第1設定サブステップと、
    前記プログラムの取得経路が、前記プログラム記憶手段から前記プログラムを読み込むものであるとき、前記第2のパーミッション情報を設定する第2設定サブステップとを有する
    ことを特徴とするプログラム実行方法。
JP2006528683A 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法 Expired - Fee Related JP4682139B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2004194889 2004-06-30
JP2004194889 2004-06-30
JP2004314664 2004-10-28
JP2004314664 2004-10-28
PCT/JP2005/011792 WO2006003875A1 (ja) 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法

Publications (2)

Publication Number Publication Date
JPWO2006003875A1 JPWO2006003875A1 (ja) 2008-04-17
JP4682139B2 true JP4682139B2 (ja) 2011-05-11

Family

ID=35782683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006528683A Expired - Fee Related JP4682139B2 (ja) 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法

Country Status (5)

Country Link
US (1) US7823197B2 (ja)
EP (1) EP1783581A4 (ja)
JP (1) JP4682139B2 (ja)
CN (1) CN100580611C (ja)
WO (1) WO2006003875A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271446A1 (en) * 2004-07-16 2007-11-22 Tomonori Nakamura Application Execution Device and Application Execution Device Application Execution Method
CN101789065B (zh) * 2005-02-14 2012-05-09 松下电器产业株式会社 应用程序执行装置、应用程序执行方法和程序
US20090238545A1 (en) * 2005-11-22 2009-09-24 Matsushita Electric Industrial Co., Ltd. Reproducing device and program
JP2008293378A (ja) * 2007-05-25 2008-12-04 Panasonic Corp プログラム書き換え装置
EP2169549A4 (en) * 2007-07-05 2012-08-29 Panasonic Corp DATA PROCESSING DEVICE, DATA PROCESSING METHOD, DATA PROCESSING PROGRAM, RECORDING MEDIA AND INTEGRATED CIRCUIT
JP4932033B2 (ja) * 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
US8600896B2 (en) * 2008-03-28 2013-12-03 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
EP2273407A1 (fr) * 2009-07-06 2011-01-12 Gemalto SA Sécurisation de localisation d'un code distant à travers l'empreinte du destinataire
JP5515904B2 (ja) * 2010-03-17 2014-06-11 株式会社リコー 情報処理システム、管理装置、情報処理装置、インストール処理方法、プログラム及び記憶媒体
JP5584548B2 (ja) * 2010-07-30 2014-09-03 株式会社日本デジタル研究所 プログラムおよびライセンス管理用の記憶媒体、サーバおよびコンピュータシステム
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US8959577B2 (en) 2012-04-13 2015-02-17 Cisco Technology, Inc. Automatic curation and modification of virtualized computer programs
US10356204B2 (en) * 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9449187B2 (en) * 2014-08-11 2016-09-20 Document Dynamics, Llc Environment-aware security tokens
US10387368B2 (en) * 2015-10-23 2019-08-20 International Business Machines Corporation Ideal age vector based file retention in a software testing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117769A (ja) * 1999-10-20 2001-04-27 Matsushita Electric Ind Co Ltd プログラム実行装置
US6526513B1 (en) * 1999-08-03 2003-02-25 International Business Machines Corporation Architecture for dynamic permissions in java
WO2003083646A1 (fr) * 2002-04-03 2003-10-09 Ntt Docomo, Inc. Procede et systeme de distribution, et terminal

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634012A (en) * 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
JP2000503154A (ja) 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6317742B1 (en) * 1997-01-09 2001-11-13 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
US6202121B1 (en) * 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time
JP2001092721A (ja) * 1999-09-17 2001-04-06 Fujitsu Ltd コンテンツ利用制御装置、コンテンツ利用制御システムおよびコンテンツ利用制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001312374A (ja) * 2000-04-28 2001-11-09 Fujitsu Ltd 記憶装置及びアクセス制御方法
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US20030046578A1 (en) * 2001-09-05 2003-03-06 International Business Machines Incorporation Apparatus and method for providing access rights information in metadata of a file
JP2003271458A (ja) * 2002-03-12 2003-09-26 Tdk Corp コンテンツ配信システムおよび、これに用いるコンピュータプログラム、記録媒体、端末装置、およびサーバ
US20030231343A1 (en) * 2002-05-08 2003-12-18 Ayako Kobayashi Image forming apparatus, program adding method, and a recording medium
JP4037315B2 (ja) 2002-05-08 2008-01-23 株式会社リコー 画像形成装置およびプログラム停止方法
KR20050059215A (ko) * 2002-09-30 2005-06-17 코닌클리케 필립스 일렉트로닉스 엔.브이. 다수의 결합 소자들을 갖는 레코드 캐리어

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526513B1 (en) * 1999-08-03 2003-02-25 International Business Machines Corporation Architecture for dynamic permissions in java
JP2001117769A (ja) * 1999-10-20 2001-04-27 Matsushita Electric Ind Co Ltd プログラム実行装置
WO2003083646A1 (fr) * 2002-04-03 2003-10-09 Ntt Docomo, Inc. Procede et systeme de distribution, et terminal

Also Published As

Publication number Publication date
EP1783581A4 (en) 2010-08-25
US20080047000A1 (en) 2008-02-21
WO2006003875A1 (ja) 2006-01-12
EP1783581A1 (en) 2007-05-09
CN100580611C (zh) 2010-01-13
JPWO2006003875A1 (ja) 2008-04-17
CN1977229A (zh) 2007-06-06
US7823197B2 (en) 2010-10-26

Similar Documents

Publication Publication Date Title
JP4682139B2 (ja) プログラム実行機器およびそのプログラム実行方法
US9854131B2 (en) Image forming apparatus with personal setting synchronization and method for controlling same
JP4633735B2 (ja) 情報処理装置、集積回路、データ転送制御方法、データ転送制御用プログラム、プログラム記録媒体、プログラム伝送媒体、及びデータ記録媒体
US9354784B2 (en) Method and device for composing a menu
JP4270252B2 (ja) 情報処理装置、ダウンロード方法、ダウンロード中断方法、ダウンロード再開方法及びプログラム
RU2498518C2 (ru) Приложение для обеспечения готовности к первому запуску после извлечения из упаковки, предназначенное для сбора данных для нового компьютера, и способ изготовления
JP4671198B2 (ja) 情報処理装置
JP2009543217A (ja) 無線記憶デバイスに関する電力管理のためのシステムおよび方法
JP2008123139A (ja) ゲーム装置および情報処理装置
EP2243083A2 (en) Storage device having direct user access
EP2350860A2 (en) Methods, systems and apparatuses for use in updating a portable storage medium
US20080114693A1 (en) Method for allowing content protected by a first DRM system to be accessed by a second DRM system
JP2009031851A (ja) ライセンス管理装置、ライセンス管理方法、及びコンピュータプログラム
US11298613B2 (en) Information processing device, data acquisition method, and program
EP2101329B1 (en) Video and audio reproducing device
US20080114692A1 (en) System for allowing content protected by a first DRM system to be accessed by a second DRM system
JP2005228293A (ja) 情報処理装置、およびプログラム
US20120221318A1 (en) Information processing device
JP2007220062A (ja) 制御プログラム及びプログラム提供システム並びにプログラム提供方法
EP3462363B1 (en) Image forming apparatus and control method therefor
JP2015060276A (ja) プログラム、情報処理装置及び情報処理システム
JP2009163760A (ja) 情報処理装置とその方法及びプログラム
KR101985524B1 (ko) 주문형 리소스
JPWO2007049654A1 (ja) データ処理装置
JP2010191531A (ja) ネットワーク接続ストレージ装置及びその設定方法、並びにネットワーク接続ストレージ設定システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110207

R150 Certificate of patent or registration of utility model

Ref document number: 4682139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees