アプリケーションパッケジング装置、その制御方法、プログラム
【課題】 暗号化された複数のアプリケーションを含むアプリケーションパッケージのインストール処理中に何度も使用許諾契約書への同意の要求が発生するのは、ユーザにとって面倒である。また、インストール処理の中盤(又は、後半)にかけて上記要求が発生するのもユーザにとって面倒である。インストール処理の開始から、中盤(又は、後半)までユーザは待つ必要があるからである。
【解決手段】 暗号化された複数のアプリケーションの中に夫々存在する使用許諾契約書を、それらのアプリケーションの外に出す。これにより、暗号化された複数のアプリケーションの復号化を待つことなく、使用許諾契約書の同意をユーザから取り付けることができる。
【解決手段】 暗号化された複数のアプリケーションの中に夫々存在する使用許諾契約書を、それらのアプリケーションの外に出す。これにより、暗号化された複数のアプリケーションの復号化を待つことなく、使用許諾契約書の同意をユーザから取り付けることができる。
【発明の詳細な説明】
【技術分野】
【0001】
複数のアプリケーションをパッケージングするアプリケーションパッケージ装置、その制御方法、プログラムに関する。
【背景技術】
【0002】
従来、アプリケーションの不正利用を防ぐために、ライセンスという考え方が取り入れられている。通常は、1つのアプリケーションに対して1つのライセンスが付与され、該アプリケーションのインストール処理の最初にそのライセンスを入力する事でインストールが可能になる。
【0003】
一方、複数のアプリケーションをひとつにアーカイブしてアプリケーションパッケージとして複数のアプリケーションのインストール処理を1回で行う方法が知られている。
【0004】
しかし、ライセンスが設定されているアプリケーションによるアプリケーションパッケージのインストール処理では、各アプリケーションのインストール処理でライセンスの入力が必要となりインストール処理が煩雑になってしまう。
【0005】
そこで、特許文献1ではライセンスに、アプリケーションパッケージ内の複数のアプリケーションを特定させるライセンスデータとライセンスデータの正当性をアプリケーションパッケージにつき一括して証明させるデータを含ませる方法が提案されている。この方法によれば、ライセンスが設定されたアプリケーションのアプリケーションパッケージをインストールする際に、ライセンスの入力を1度で行う事が可能となる。
【特許文献1】特開2006−163896
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1の方法では、アプリケーションパッケージのインストール処理は、ライセンス入力に関してはアプリケーションパッケージのインストール処理の最初に一度入力するだけとなるため簡易である。しかしながら、インストール処理中に入力が必要になる項目はライセンスだけではない。
【0007】
例えば、使用許諾契約書(EULA:End User License Agreement)と呼ばれるものがある。これは、インストールするにあたり同意を必要とする使用許諾内容が書かれた契約書である。インストール処理を継続するためには、ユーザはこれに同意する必要がある。
【0008】
また例えば、アプリケーション固有のインストール条件(例えば、インストール可能なプラットフォームのバージョン、最低限必要とするリソース等)が設定されている場合がある。その場合は、該アプリケーションがインストール条件不適合によりインストール出来ない旨が通知され、インストールを継続する旨が通知される場合がある。
【0009】
特許文献1の方法では、アプリケーションパッケージは複数のアプリケーションを単にひとつにまとめているだけであり、インストールはアプリケーションごとに行われる。そのため、各アプリケーションのインストール処理が開始されるタイミングでインストール条件不適合が通知されたり、インストールを継続するかの入力を必要としたり、使用許諾内容への同意を入力したりする必要が発生しうる。結果、インストール処理が煩雑となる可能性があった。例えば、インストール処理の途中で、何度もユーザに問合せが発生してしまう可能性があった。
【0010】
本発明の目的は、インストール処理を簡易化することが出来るアプリケーションパッケージの生成方法および、そのインストール方法を提供する事にある。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明のアプリケーションパッケージング装置は以下の構成を有する。即ち、複数のアプリケーションの夫々を復号する復号手段と、復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、アプリケーションパッケージを得るために、使用許諾契約書の複製の夫々と復号前の前記複数のアプリケーションの夫々を一つにまとめる手段と、を有する。
【発明の効果】
【0012】
本発明によれば、アプリケーションパッケージのインストール処理において、各アプリケーションのインストールが開始されるタイミングで発生する入力作業を、パッケージのインストール処理の最初にまとめて行う事が可能となる。なお、各アプリケーションのインストール処理が開始されるタイミングで発生する入力作業としては、使用許諾契約書への同意やインストール処理の継続の入力作業などが挙げられる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0014】
(第1の実施の形態)
「画像形成装置1の説明」
図1は本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
画像形成装置1は、印刷装置11及び画象処理装置12からなる。
画像処理装置は、CPU121と直接記憶部122(例、RAM)と間接記憶部123(例、ROMやHDD)とユーザインタフェース124と外部インタフェース125とからなる。
【0015】
直接記憶部122は、CPU121と直接データをやり取りする記憶部であり、間接記憶部123は直接記憶部122を介してCPU121とデータをやり取りする記憶部である。
【0016】
直接記憶部122には、種々のアプリケーションプログラム及びプラットフォームプログラムが記憶されている。
【0017】
ユーザインタフェース124は、キーボード、マウス、ディスプレイ等からなり、ユーザからの指示の受付け、データ(画面データ)の表示をすることが可能となっている。
【0018】
外部インタフェース125は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。
【0019】
「プラットフォーム部13の説明」
CPU121は、間接記憶部123に記憶されたプラットフォームプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、CPU121がプラットフォームプログラムを実行することができる状態になる。
【0020】
本実施形態では、このように「CPU121がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部13が起動すると称する。
【0021】
なお、本実施形態では、以下の構成の組み合わせをプラットフォーム部13と称している。CPU121。直接記憶部122のうちのプラットフォームプログラムを記憶している領域。CPU121が上記プラットフォームプログラムを処理した際に得られる情報(計算結果等)を記憶する(直接記憶部122及び間接記憶部123のうちの)領域。
【0022】
「アプリケーションプログラムの説明」
プラットフォーム部13は、間接記憶部123に記憶された第一のアプリケーションプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、プラットフォーム部13が第一のアプリケーションプログラムを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムを起動すると称する。
【0023】
逆に、プラットフォーム部13は、直接記憶部122に記憶された第一のアプリケーションプログラムを直接記憶部122から削除することができる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムを停止すると称する。
【0024】
プラットフォーム部13は、外部インタフェース部125を介して第一のアプリケーションプログラムであるデータを受信し記憶することができる。このときプラットフォーム部13は、第一のアプリケーションプログラムの存在を記憶し、自己の管理下に収める。本実施形態ではこのことを、プラットフォーム部13に第一のアプリケーションプログラムをインストールすると称する。
【0025】
逆に、プラットフォーム部13は、(プラットフォーム部13の内部にある)間接記憶部123に記憶された第一のアプリケーションプログラムを間接記憶部123から削除することができる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムをアンインストールすると呼称する。尚、プラットフォーム部13が第一のアプリケーションプログラムをアンインストールする際に、第一のアプリケーションプログラムが起動している場合には、これを停止した後にアンインストールを行う。
【0026】
また、以上の説明は、第一のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム(例、第二のアプリケーションプログラム)であっても同様であることは当業者には明白であろう。
【0027】
「パッケージング装置(アプリケーションパッケージング装置)2の説明」
図2は本発明の実施の形態に係るパッケージング装置の構成を示すブロック図である。
【0028】
パッケージング装置2は、受信手段21、送信手段22、パッケージライセンス生成手段23、アプリケーションパッケージ生成手段24を備える。なお、パッケージライセンス生成手段23およびアプリケーションパッケージ生成手段24の詳細については後述する。
【0029】
パッケージング装置2は、パーソナルコンピュータやワークステーション等のコンピュータである。コンピュータは主たる構成として、CPU、主記憶装置、外部記憶装置、外部インタフェースを備えている。外部記憶装置にはオペレーティングシステム(OS)や各種プログラムが格納されている。主記憶装置には外部記憶装置から読み込まれたOSや各種プログラムが格納されており、これらがCPUによって実行される。
【0030】
なお、本明細書においては、上記各種プログラムの中にはパッケージングプログラムが含まれているものとする。そして、このパッケージングプログラムの内容に基づき、パッケージング装置が上記各手段を実現する。
【0031】
「アプリケーション3の説明」
図3は本発明の実施の形態に係るアプリケーションの構成を示すブロック図である。
アプリケーション3は、非暗号化領域31と暗号化領域32から構成される。また、非暗号化領域31内の特定のディレクトリ(MANIFESTという名称のディレクトリ)には、後述するアプリケーション定義311が格納されている。また、暗号化領域32内の特定のディレクトリ(EULAという名称のディレクトリ)には、後述する使用許諾契約書321および上述したアプリケーションプログラム322が格納されている。
【0032】
暗号化領域32は、後述するライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なライセンスが、暗号化領域を復号するための情報(例、鍵)を格納しているということである。
【0033】
「アプリケーション定義311の説明」
図4は本発明の実施の形態に係るアプリケーション定義の構成を示すリストである。
【0034】
アプリケーション定義311は、アプリケーションID41、製品バージョン42、アプリケーション名43、インストール可能プラットフォーム44、消費リソースサイズ45で構成される。アプリケーションID41は、アプリケーション3が複数のアプリケーションのうちの、どのアプリケーションであるかを一意に識別するための識別子である。さらに製品バージョン42を組み合わせることで、アプリケーション3のうちの、どのバージョンのアプリケーションであるかを特定する事が可能となる。また、アプリケーション名43はアプリケーションの呼称を示す文字列である。
【0035】
インストール可能プラットフォーム44は、当該アプリケーション3がインストールする事が出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム44は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ID、プラットフォームプログラムが有すべき機能を示すID等を示す。
【0036】
消費リソースサイズ45は、当該アプリケーション3をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【0037】
「ライセンス5の説明」
図5は本発明の実施の形態に係るライセンスの構成を示すブロック図である。
【0038】
ライセンス5は、ライセンスID51、アプリケーションID52、ライセンス情報53で構成される。
【0039】
ライセンスID51は当該ライセンス5を識別するためのユニークなIDである。アプリケーションID52には、ライセンスを設定した対象であるアプリケーション3のアプリケーションID41の情報が格納される。ライセンス情報53には、当該ライセンス5のライセンスとしての定義(例えばライセンスの有効期限やライセンス可能な回数)や、アプリケーション3の暗号化領域32を復号するための情報等が格納される。
【0040】
「アプリケーションパッケージ6の説明」
図6は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【0041】
アプリケーションパッケージ6は、後述のアプリケーションパッケージ生成手段24によって生成されたアプリケーションパッケージである。アプリケーションパッケージ6は、複数のアプリケーション611〜613および対応する複数のアプリケーションの使用許諾契約書621〜623によって構成される。
【0042】
アプリケーションパッケージ生成手段24によるアプリケーションパッケージ6の生成処理は後述する。
【0043】
「パッケージライセンス7の説明」
図7は本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【0044】
パッケージライセンス7はパッケージライセンス生成手段23によって生成される複数のライセンス(71、72、73等)を一つにまとめて得られたパッケージライセンスである。パッケージライセンス7は、複数のライセンス71〜73によって構成される。
【0045】
「アプリケーションパッケージ6の生成処理の説明」
続いて、図8のフローチャートをもとにアプリケーションパッケージ生成手段24におけるアプリケーションパッケージ6の生成処理(S802〜S807の処理)およびS801、S808について説明する。なお、本実施形態においては、図8のS802からS807の処理は全て自動で行われ、ユーザからの指示は受けないものとする。即ち、S802の復号の処理からS807の一つにまとめてアプリケーションパッケージを得る処理までの間にユーザからの指示は受けない。このことは、他の実施形態においても同様である(図14のS1402〜S1410における処理が全て自動で行われる)。
【0046】
アプリケーションパッケージ生成手段24は、パッケージライセンス生成手段23よりパッケージング対象となる複数のアプリケーション3を受信する。併せて、それらのアプリケーション3の夫々に対応する各ライセンス5のパッケージライセンス7を受信する(ステップS801)。
【0047】
次に、アプリケーションパッケージ生成手段24は、受信した複数のアプリケーション3の夫々を復号する(ステップS802)。
【0048】
次に、アプリケーションパッケージ生成手段24は復号済みの複数のアプリケーション3のうちの一つを選択する。そして、当該選択された一つのアプリケーション3が使用許諾契約書321を保有しているかを確認し(ステップS803)、保有している場合はS804の処理を行う。なお使用許諾契約書321は、アプリケーション内に特定のディレクトリ(例えば、EULAという名称のディレクトリ)に格納されているため、上記保有しているかの確認は、アプリケーション生成手段24が特定のディレクトリを検索する事によって実行される。また使用許諾契約書321のファイル名においても形式が決まっている事が好ましい。
【0049】
次に、アプリケーションパッケージ生成手段24は復号済みアプリケーション3が保有している使用許諾契約書321を複製する(ステップS804)。そして、複製した使用許諾契約書321のファイル名に、使用許諾契約書321を一意に特定する識別子としてアプリケーションID41を付与する(ステップS805)。この付与されたアプリケーションID41は、複製元のアプリケーション3を特定するために使用される。また、使用許諾契約書321は1つのアプリケーション3が複数所持している構成もありえる(例えば多種言語に対応している場合)ので、その場合は全ての使用許諾契約書321について複製およびIDの付与を実行する。
【0050】
そして、アプリケーションパッケージ生成手段24は、ステップS801で受信した全てのアプリケーション3に対して上記処理を行った後にS807で以下の処理を行う。即ち、ステップS802で復号を行う以前の全アプリケーション3とステップS804、ステップS805にて複製、ID付与が行われた複数の使用許諾契約書321をひとつにまとめる。これにより、アプリケーションパッケージ6が得られる。
【0051】
最後に、アプリケーションパッケージ生成手段24は、生成したアプリケーションパッケージ6とパッケージライセンス7を送信手段22に送信する。
【0052】
なお、S802とS807で、アプリケーションパッケージ生成手段24は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。さらに、その外に出した使用許諾契約書と、各アプリケーションとを含むアプリケーションパッケージ6を得るということが行われるのである。
【0053】
言い換えると、S802とS807で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成するのである。
【0054】
「インストール管理テーブル10の説明」
図10はインストール管理テーブル1000の構成を示すリストである。
【0055】
インストール管理テーブル1000は、後述するプラットフォーム部13におけるインストール処理の際に使われるテーブルであり、インストール処理終了後は破棄されるものである。インストール管理テーブル1000は、アプリケーションID1001、製品バージョン1002、アプリケーション名1003を構成として含む。これらは各アプリケーション3のアプリケーション定義311を元に設定される。そして、インストール管理テーブル1000は、インストール条件確認結果1004、使用許諾同意結果1005を構成として含む。これらの詳細については後述する。
【0056】
またインストール管理テーブル1000は、アプリケーション1006とライセンス1007を構成として含む。これらは各アプリケーション3と対応するライセンス5への参照である。
【0057】
「アプリケーションパッケージ6のインストール処理の説明」
次に、図9のフローチャートをもとにプラットフォーム部13におけるアプリケーションパッケージ6のインストール処理について説明する。
【0058】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、S901からS915までの処理がインストール処理であり、そのうちのS914がインストールである。即ち、S901からS915までのアプリケーションのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【0059】
プラットフォーム部13は、外部インタフェース125からアプリケーションパッケージ6およびパッケージライセンス7を取得する(ステップS901)。言い換えると、外部インタフェース125を介してアプリケーションパッケージ6およびパッケージライセンス7を受信する。この時に、外部インタフェース125を介して接続される装置を使用するユーザから、上記アプリケーションパッケージ6をインストール処理して欲しい旨の指示が同時に送信されてくることは言うまでもない。
【0060】
次に、プラットフォーム部13はステップS902において以下の処理を行う。取得したアプリケーションパッケージ6に含まれる全てのアプリケーション3から、夫々のアプリケーション定義311を取得する。取得したパッケージライセンス7から各アプリケーションに対応するライセンス5を取得する。そして、取得した夫々のアプリケーション3、アプリケーション定義311、ライセンス5の情報を元にインストール管理テーブル1000を作成する。具体的には、インストール管理テーブル1000のインストール条件確認結果1004、使用許諾同意結果1005以外の情報(アプリケーション定義311、ライセンス5の情報)を格納したインストール管理テーブル1000を作成する。
【0061】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000の登録順に以下の処理を行う。
【0062】
まずプラットフォーム部13は、対象となるアプリケーションの非暗号化領域31からアプリケーション定義311を、取得したライセンス5からライセンス情報53を取得する(ステップS903)。次に、それらのアプリケーション定義311、ライセンス情報53の情報を元に、ライセンス確認および後述するインストール条件の確認処理を行う(ステップS904)。その結果、インストール可能であった場合は、インストール管理テーブル1000のインストール条件確認結果1004を、インストール可能を示す情報で更新する(ステップS905)。また、インストール条件確認の結果がインストール不可だった場合は、外部インタフェース125へインストール出来ない旨を通知し、外部インターフェース125を介したユーザからの指示を要求する(ステップS921)。その後、外部インタフェース125を介したユーザからの指示を確認(インストール処理をこのまま継続するかを確認)する(ステップS921)。そして、継続する場合(継続する指示であると確認した場合)はインストール管理テーブル1000のインストール条件確認結果1004を、インストール不可を示す情報で更新する(ステップS905)。また、継続しない場合(継続する指示であると確認した場合)はインストール処理を中断する(ステップS931)。
【0063】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーション3の個数分、上記処理を繰り返す(ステップS906)。
【0064】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000に登録されているアプリケーションのうち、インストール条件確認結果1004がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【0065】
プラットフォーム部13はアプリケーションパッケージ6が、対象のアプリケーション3の使用許諾契約書321の複製を対象のアプリケーション3の外に保持しているかを確認し、保持している場合は取得する(ステップS907)。保持していない場合はインストール管理テーブル1000の使用許諾同意結果1005を、関係しない事を示す情報で更新する(ステップS910)。保持している場合は取得した使用許諾契約書321を、外部インタフェース125へ通知する(ステップS909)。そして、通知した使用許諾契約書321に対して同意であるか、もしくは同意しない旨を、外部インタフェース125を介してユーザから受信する(ステップS909)。その結果、同意の場合は、インストール管理テーブル1000の使用許諾同意結果1005を、同意を示す情報で更新する(ステップS910)。即ち、外部インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果1005を、同意を示す情報で更新するのである。この更新により、S912、S913、S915を経た上で、対象とするアプリケーションがインストールされることになる。一方、使用許諾契約書321に同意しない場合は、インストール処理をこのまま継続するか、外部インタフェース125を介してユーザに確認する(ステップS922)。そして、継続する場合はインストール管理テーブル1000の使用許諾同意結果1005を、同意しない事を示す情報で更新する(ステップS910)。また、継続しない場合はインストール処理を中断する(ステップS931)。
【0066】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果1004がインストール可能を示す情報となっているアプリケーション。」のみを対象として、その個数分、上記処理を繰り返す(ステップS911)。最後に、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果がインストール可能を示す。」であって、かつ、「条件確認結果1004が関係しないか、もしくは同意。」であるアプリケーションに対して以下の処理を行う。
【0067】
まず、プラットフォーム部13は、暗号化されているアプリケーションを復号する(ステップS913)。次に、アプリケーション3に含まれるアプリケーションプログラム322をインストールする(ステップS914)。対象の全てのアプリケーション3のアプリケーションプログラム322のインストールを実行するまで繰り返し処理を実行し(ステップS915)、インストール処理を終了する。
【0068】
以下では、ステップS914における処理を詳細に記述する。
【0069】
まず、ステップS914においては、「S910で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「S910で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【0070】
加えて、ステップS913での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップS914では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にS910、S911で確認をしているからである。
【0071】
「インストール条件確認方法の説明」
次に、プラットフォーム部13のインストール処理のうち、インストール条件確認の方法について説明する。
【0072】
プラットフォーム部13は、アプリケーション定義311にて定義されている情報とプラットフォーム部13、画像処理装置12の情報を比較する事でインストール条件を確認する。特にアプリケーション定義311にて定義されている情報のうち、インストール可能プラットフォーム44、および消費リソースサイズ45の情報を用いる。
【0073】
例えば、プラットフォームプログラムのバージョンが2であって、画像処理装置12の間接記憶部123の残サイズが100MB(メガバイト)の場合。そして、固有IDが“#####0000000000”であって、備える機能の固有IDが“印刷機能のバージョン1かつ、ユーザインタフェース124のディスプレイサイズはSVGA”を示す場合は、以下のように判断される。
【0074】
プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44のプラットフォームプログラムのバージョンが1の場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【0075】
また、プラットフォーム部13は、対象のアプリケーション3の消費リソースサイズ45の間接記憶の消費サイズが120MB(メガバイト)だった場合、インストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【0076】
また、プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44の機器の固有IDが“#####0000000001”だった場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有IDを機器が保持しているか、で判断される。
【0077】
また、プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44の機能の固有IDが“印刷機能のバージョン2”を示す場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【0078】
このように、プラットフォーム部13は、アプリケーション定義311にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【0079】
また、本実施の形態ではアプリケーションパッケージ6は暗号化されていないとして説明している。しかしながら、アプリケーションパッケージ内に、アプリケーション3のように暗号化領域を設け、複製により得られた複数の使用許諾契約書(621〜623)や、既に暗号化されている複数のアプリケーション(611〜613)を格納するよう構成しても良い。このような場合、複製した使用許諾契約書は、当然、アプリケーション生成手段により、S807とS808の間で暗号化されることになる。同様に、既に暗号化されている複数のアプリケーションも、同様に、アプリケーション生成手段により、S807とS808の間で暗号化されることになる。つまり、二重でアプリケーションは暗号化されることになるのである。このように、それらを暗号化領域に格納することにより、使用許諾契約書の改竄をも防ぐ事ができる。
【0080】
なお、S807とS808の間で暗号化される場合は、S801で取得したパッケージライセンスに、復号するための情報(例、鍵)を格納する事になる。
【0081】
このように、本実施の形態によればアプリケーションパッケージのインストール時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来る。
【0082】
(第2の実施の形態)
第2の実施の形態においては、第1の実施の形態と同様の構成、および構成要素についての説明は省略する。なお、本実施の形態において上記第1の実施の形態と同一の構成、構成要素には同一の符号を用いて説明するものとする。
【0083】
なお、第2の実施形態において、第1の実施形態と大きく異なっている点を以下に説明する。異なっている点は、第2の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれる点である(図11)。第1の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれていない(図6)。
【0084】
これにより、第2の実施形態では、複数のアプリケーション定義を夫々確認する(S904とS921の間のひし形参照)ことなしに、アプリケーションパッケージ定義のみを確認(S1503とS1521の間のひし形参照)すればよくなる。
【0085】
また、第2の実施形態においては、アプリケーションパッケージ定義を含むアプリケーションパッケージを作成するにあたって、アプリケーション定義の中の情報の種類に応じた演算(和算、積算)を行っている。このような演算は、アプリケーションパッケージ定義を作らない第1の実施形態には書かれていない。
【0086】
「アプリケーションパッケージ1100の説明」
図11は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【0087】
アプリケーションパッケージ1100は、後述のアプリケーションパッケージ生成手段24によって生成されたアプリケーションパッケージである。アプリケーションパッケージ1100は、非暗号化領域1101と暗号化領域1102から構成される。また非暗号化領域1101内の特定のディレクトリ(MANIFESTという名称のディレクトリ)には、後述するアプリケーションパッケージ定義1103格納されている。また、非暗号化領域1102には、複数のアプリケーション1111〜1113および対応する複数のアプリケーションの使用許諾契約書1121〜1123が格納されている。
【0088】
暗号化領域1102は、後述するパッケージライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なパッケージライセンスが、暗号化領域を復号するための情報(例、鍵)を格納しているということである。
【0089】
「アプリケーションパッケージ定義1103の説明」
図12は本発明の実施の形態に係るアプリケーションパッケージ定義の構成を示すリストである。
【0090】
アプリケーションパッケージ定義1103は、アプリケーションパッケージID1201、製品バージョン1202、アプリケーションパッケージ名1203、インストール可能プラットフォーム1204、消費リソースサイズ1205で構成される。そして、アプリケーションパッケージ1100が含む全てのアプリケーション3の夫々のアプリケーション定義321を、アプリケーション定義1206〜1208として含む。
【0091】
アプリケーションパッケージID1201は、アプリケーションパッケージ1100が複数のアプリケーションパッケージのうちの、どのアプリケーションパッケージであるかを一意に識別するための識別子である。さらに製品バージョン1202を組み合わせることで、アプリケーションパッケージ1100のうちの、どのバージョンのアプリケーションパッケージであるかを特定する事が可能となる。また、アプリケーションパッケージ名1203はアプリケーションパッケージの呼称を示す文字列である。
【0092】
インストール可能プラットフォーム1204は、当該アプリケーションパッケージ1100に含まれる全てのアプリケーション3がインストール出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム1204は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ID、プラットフォームプログラムが有すべき機能を示すID等を示す。消費リソースサイズ1205は、当該アプリケーションパッケージ1100含まれる全アプリケーション3をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【0093】
「パッケージライセンス1300の説明」
図13本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【0094】
パッケージライセンス1300は、パッケージライセンス生成手段23によって生成される複数のライセンス5(1304、1305、1306等)を一つにまとめて得られたパッケージライセンスである。パッケージライセンス1300は、パッケージライセンスID1301、アプリケーションパッケージID1302、パッケージライセンス情報1303、および複数のライセンス1304〜1306によって構成される。
【0095】
パッケージライセンスID1301は、当該パッケージライセンス1300を識別するためのユニークなIDである。パッケージアプリケーションID1302には、ライセンスを設定した対象であるアプリケーションパッケージ1100のアプリケーションパッケージID1201の情報が格納される。パッケージライセンス情報1303には、当該パッケージライセンス1300のパッケージライセンスとしての定義や、アプリケーションパッケージ1100の暗号化領域1102を復号するための情報等が格納される。このパッケージライセンスとしての定義には、例えば、パッケージライセンスの有効期限やライセンス可能な回数が含まれる。
【0096】
「アプリケーションパッケージ1100の生成処理の説明」
続いて、図14のフローチャートをもとにアプリケーションパッケージ生成手段24におけるアプリケーションパッケージ1100の生成処理(S1402〜S1410)およびS1401,S14011について説明する。
【0097】
アプリケーションパッケージ生成手段24は、パッケージライセンス生成手段23より以下のものを受信する(ステップS1401)。即ち、パッケージング対象となる複数のアプリケーション3と、それらのアプリケーション3の夫々に対応する各ライセンス5のパッケージライセンス1300とを受信する。
【0098】
次に、アプリケーションパッケージ生成手段24は、受信した複数のアプリケーション3の夫々を復号する(ステップS1402)。
【0099】
次に、アプリケーションパッケージ生成手段24は復号済みの複数のアプリケーション3のうちの一つを選択する。そして、当該選択された一つのアプリケーション3が使用許諾契約書321を保有しているかを確認し(ステップS1403)、保有している場合はS1404の処理を行う。なお使用許諾契約書321は、アプリケーション内に特定のディレクトリ(例えば、EULAという名称のディレクトリ)に格納されているため、上記保有しているかの確認は、アプリケーション生成手段24が特定のディレクトリを検索する事によって実行される。また使用許諾契約書321のファイル名においても形式が決まっている事が好ましい。
【0100】
次に、アプリケーションパッケージ生成手段24は復号済みアプリケーション3が保有している使用許諾契約書321を複製する(ステップS1404)。そして、複製した使用許諾契約書321のファイル名に、使用許諾契約書321を一意に特定する識別子としてアプリケーションID41を付与する(ステップS1405)。この付与されたアプリケーションID41は、複製元のアプリケーション3を特定するために使用される。また、使用許諾契約書321は1つのアプリケーション3が複数所持している構成もありえる(例えば多種言語に対応している場合)ので、その場合は全ての使用許諾契約書321について複製およびIDの付与を実行する。
【0101】
続いてアプリケーションパッケージ生成手段24は、アプリケーションが保有しているアプリケーション定義311を取得する(ステップS1406)。
【0102】
そして、アプリケーションパッケージ生成手段24は、ステップS1401で受信した全てのアプリケーション3に対して上記処理を行う。その後に、後述する取得した全てのアプリケーション定義311からアプリケーションパッケージ定義1103を作成する(ステップS1408)。
【0103】
次に、アプリケーションパッケージ生成手段24はS1409で以下の処理を行う。即ち、ステップS1402で復号を行う前の全アプリケーション3とステップS1404、ステップS1405にて複製、ID付与が行われた使用許諾契約書321、およびステップS1408で作成したアプリケーションパッケージ定義1103をひとつにまとめる。これにより、アプリケーションパッケージ1100が得られる。
【0104】
最後に、アプリケーションパッケージ生成手段24は、生成したアプリケーションパッケージ1100とパッケージライセンス1300を送信手段22に送信する。
【0105】
なお、S1402とS1409で、アプリケーションパッケージ生成手段24は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。
【0106】
また、S1406とS1408とS1409とで、アプリケーションパッケージ生成手段24は、夫々のアプリケーションごとに含まれていたアプリケーション定義を合算し、一つのアプリケーションパッケージ定義を生成する。
【0107】
さらに、その外に出した使用許諾契約書と、生成したアプリケーションパッケージ定義と、各アプリケーションとを含むアプリケーションパッケージ1100を得るということが行われるのである。
【0108】
言い換えると、S1402とS1409で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成する。
【0109】
さらに、S1406とS1408とS1409とで、アプリケーションパッケージ定義を、前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成するのである。なお、上述したように、アプリケーションパッケージ定義とは、夫々のアプリケーションごとに定義されていたアプリケーション定義を合算したものである。
【0110】
なお本実施の形態では、複製した使用許諾契約書321の保有元であるアプリケーション3を特定するために、使用許諾契約書321のファイル名に当該アプリケーション3のアプリケーションID41を付与する方法で説明している。しかしながら、使用許諾契約書321の複製元のアプリケーション3が特定されるのであれば方法は問わない。例えば、アプリケーション3と、使用許諾契約書321の複製を対応付ける表を作成し、アプリケーションパッケージ1100内のアプリケーションパッケージ定義1103に格納する方法が考えられる。
【0111】
「アプリケーションパッケージ定義1103作成方法の説明」
次に、アプリケーションパッケージ生成手段24における、アプリケーションパッケージ定義1103の作成方法について説明する。
【0112】
アプリケーションパッケージ生成手段24は、アプリケーション定義311にて定義されている情報を夫々合算することでアプリケーションパッケージ定義1103を作成する。特にアプリケーション定義311にて定義されている情報のうち、インストール可能プラットフォーム44、および消費リソースサイズ45の情報に関して夫々合算する。
【0113】
例えば、アプリケーション3Aのアプリケーション定義311は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが2であって、消費する間接記憶部123のサイズが100MB(メガバイト)。そして、インストール可能な機器の固有IDが“#####0000000000,####0000000001”。必要な機能の固有IDが“印刷機能のバージョン2で、かつ、ユーザインタフェース124のディスプレイサイズはSVGAもしくはVGA”。なお、“#####0000000000,####0000000001”は、“#####0000000000、又は、####0000000001”を示す。
【0114】
一方、アプリケーション3Bのアプリケーション定義311は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが1もしくは2。消費する間接記憶部123のサイズが120MB(メガバイト)。そして、インストール可能な機器の固有IDが“#####0000000000”。また、必要な機能の固有IDが“印刷機能のバージョン1”。
【0115】
このような場合は、以下のようにして、アプリケーションパッケージ定義1103が作成される。
【0116】
まず、アプリケーション定義内の情報の種類に応じて、和算、積算の何れを用いるかを決定する。そして、その上で、決定した演算を行う。
【0117】
具体的には、バージョン、インストール可能な間接記憶部のサイズの場合には、和算を用いると決定する。一方、インストール可能な機器の固有IDや、インストールするために必要な機能の固有IDの場合には、積算を用いると決定する。
【0118】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能なプラットフォームプログラムのバージョンは2である。これは論理積によって合算される。
【0119】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な間接記憶部123のサイズは220MB(メガバイト)以上である。これは数値の和によって合算される。なぜなら、220MB=120MB+100MBだからである。
【0120】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な機器の固有IDは“#####0000000000”である。これも論理積によって合算される。即ち、“#####0000000000”と、“#####0000000000,####0000000001”との論理積(積算)により、“#####0000000000”得られる。
【0121】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストールするために必要な機能の固有IDは“印刷機能のバージョン2で、かつ、ユーザインタフェース124のディスプレイサイズはSVGAもしくはVGA”となる。これも論理積によって合算される。
【0122】
このように、アプリケーションパッケージ生成手段24は、アプリケーション定義311にて定義されている情報の夫々を和算、積算(論理積)により合算することでアプリケーションパッケージ定義1103を作成する。
【0123】
「アプリケーションパッケージ1100のインストール処理の説明」
次に、図15のフローチャートをもとにプラットフォーム部13におけるアプリケーションパッケージ1100のインストール処理について説明する。
【0124】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、S1501からS1514までの処理がインストール処理であり、そのうちのS1513がインストールである。即ち、S1501からS1514までのアプリケーションパッケージのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【0125】
プラットフォーム部13は、外部インタフェース125からインストール対象となるアプリケーションパッケージ1100およびパッケージライセンス1300を取得する(ステップS1501)。
【0126】
次に、プラットフォーム部13はステップS1503において以下の処理を行う。取得したアプリケーションパッケージ1100に含まれるアプリケーションパッケージ定義1103と、パッケージライセンス1300に含まれるパッケージライセンス情報1303とを取得する。そして、取得したアプリケーションパッケージ定義1103およびパッケージライセンス情報1303の情報を元にインストール管理テーブル1000を作成する。具体的には、インストール管理テーブル1000のインストール条件確認結果1004、使用許諾同意結果1005以外の情報(アプリケーション定義311、ライセンス5の情報)を格納したインストール管理テーブル1000を作成する。
【0127】
次に、プラットフォーム部13は、アプリケーションパッケージ定義1103およびパッケージライセンス情報1303の情報を元に後述するパッケージライセンスおよびパッケージインストール条件確認を行う(ステップS1503)。そしてライセンスおよびインストール条件の確認の結果、インストール可能であった場合は、インストール管理テーブル1000の全てのアプリケーションに対するインストール条件確認結果1004を、インストール可能を示す情報で更新する(ステップS1504)。また、インストール条件確認の結果が一つでもインストール不可だった場合は、外部インタフェース125へインストール出来ない旨を通知し、外部インターフェース125を介したユーザからの指示を要求する(ステップS1521)。その後、外部インタフェース125を介したユーザからの指示を確認(インストール処理をこのまま継続するかを確認)する(ステップS1521)。その結果、継続する場合はインストール管理テーブル1000のうちインストール不可のアプリケーションに対するインストール条件確認結果1004を、インストール不可を示す情報で更新する(ステップS1504)。もちろん、インストール条件確認の結果がインストール可能であったアプリケーションがあった場合、そのアプリケーションに対するインストール条件確認結果1004は、インストール可能を示す情報で更新する(ステップS1504)。また、継続しない場合はインストール処理を中断する(ステップS1531)。
【0128】
次に、プラットフォーム部13は、アプリケーションパッケージを復号する(S1505)。
【0129】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000に登録されているアプリケーションのうち、インストール条件確認結果1004がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【0130】
プラットフォーム部13は、アプリケーションパッケージ1100が、対象のアプリケーション3の使用許諾契約書321の複製を対象のアプリケーション3の外に保持しているかを確認し、保持している場合は取得する(ステップS1506)。保持していない場合はインストール管理テーブル1000の使用許諾同意結果1005を、関係しない事を示す情報で更新する(ステップS1509)。保持している場合は取得した複数の使用許諾契約書321を、外部インタフェース125へ通知する(ステップS1508)。そして、通知した複数の使用許諾契約書321の夫々に対して同意であるか、もしくは同意しない旨を、外部インタフェース125を介してユーザから受信する(ステップS1508)。受信した情報が全て同意の場合はインストール管理テーブル1000の使用許諾同意結果1005を、全てのアプリケーションのインストールが同意されたことを示す情報で更新する(ステップS1509)。即ち、外部インタフェースを介して、使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果1005を、同意がされたことを示す情報で更新するのである。このように更新することで、S1511、S1512、S1514を経た上で、そのアプリケーションがインストールされることになる。
【0131】
一方、対象とするアプリケーションの使用許諾契約書321に関して、同意しない旨を受信した場合はインストール処理をこのまま継続するかを、外部インタフェース125を介してユーザに確認する(ステップS1522)。継続する場合はインストール管理テーブル1000の使用許諾同意結果1005として、同意されていないことを示す情報で更新する(ステップS1509)。また、継続しない場合はインストール処理を中断する(ステップS1531)。
【0132】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果1004がインストール可能を示している。」アプリケーションのみを対象として、個数分上記処理を繰り返す(ステップS1510)。
【0133】
最後に、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果が可能を示していて、かつ、条件確認結果1004が関係しないか、もしくは同意である。」アプリケーションに対して以下の処理を行う。
【0134】
まず、プラットフォーム部13は、暗号化されているアプリケーションを復号する(ステップS1512)。次に、アプリケーション3に含まれるアプリケーションプログラム322をインストールする(ステップS1513)。対象の全てのアプリケーション3のアプリケーションプログラム322のインストールを実行するまで繰り返し処理を実行し(ステップS1514)、インストール処理を終了する。
【0135】
以下では、ステップS1513における処理を詳細に記述する。
【0136】
まず、ステップS1513においては、「S1509で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「S1509で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【0137】
加えて、ステップS1512での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップS1513では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にS1509、S1510で確認をしているからである。
【0138】
「パッケージインストール条件確認方法の説明」
次に、プラットフォーム部13のインストール処理のうち、パッケージインストール条件確認の方法について説明する。
【0139】
プラットフォーム部13は、アプリケーションパッケージ定義1103の情報とプラットフォーム部13、画像処理装置12の情報を比較する事でインストール条件を確認する。特にアプリケーション定義1103にて定義されている情報のうち、インストール可能プラットフォーム1204、および消費リソースサイズ1205を用いる。
【0140】
例えば、プラットフォームプログラムのバージョンが2であって、画像処理装置12の間接記憶部123の残サイズが100MB(メガバイト)の場合。そして、固有IDが“#####0000000000”であって、備える機能の固有IDが“印刷機能のバージョン1かつ、スキャン機能はバージョン1もしくはバージョン2”を示す場合は、以下のように判断される。
【0141】
プラットフォーム部13は、アプリケーションパッケージ1100のインストール可能なプラットフォームプログラムのバージョンが1の場合、アプリケーションパッケージ1300に含まれるアプリケーションの全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【0142】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の間接記憶の消費サイズが120MB(メガバイト)の場合、アプリケーションパッケージ1300に含まれるアプリケーション3の全てはインストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【0143】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の機器の固有IDが“#####0000000001”の場合は、アプリケーションパッケージ1300に含まれるアプリケーション3の全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有IDを機器が保持しているか、で判断される。
【0144】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の機能の固有IDが“印刷機能のバージョン2”を示す場合に、アプリケーションパッケージ1300に含まれるアプリケーション3の全てをインストールすることは出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【0145】
また、プラットフォーム部13はアプリケーションパッケージ1300に含まれるアプリケーション3の全てをインストールする事が出来ないと判断した場合は、続けて以下の判断を行う。アプリケーションパッケージ1100に含まれる各アプリケーションについて、アプリケーションパッケージ定義1103に含まれる個別アプリケーション定義311を用いて個別にインストール可能かを判断する。
【0146】
このように、プラットフォーム部13はアプリケーションパッケージ定義1103にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【0147】
このように、本実施の形態によればアプリケーションパッケージのインストール処理の時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。さらに、アプリケーションパッケージ定義、パッケージライセンス情報を生成する事により、インストール条件の確認やライセンスの確認処理のパフォーマンスを向上することが出来る。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来、インストール処理のパフォーマンスを向上する事ができる。
【0148】
また、上述した各実施の形態によれば、暗号化された複数のアプリケーションの中に夫々存在する使用許諾契約書を、それらのアプリケーションの外に出している。これにより、暗号化された複数のアプリケーションの復号化を待つことなく、使用許諾契約書の同意をユーザから取り付けることができる。即ち、かなり前半にて、使用許諾契約書の同意をユーザから取り付けることができ、インストール処理をスムーズに行うことができる。
【0149】
これにより、暗号化された複数のアプリケーションを含むアプリケーションパッケージのインストール処理中に何度も使用許諾契約書への同意の要求が発生することが無くなる。また、インストール処理の中盤(又は、後半)にかけて上記要求が発生することも無くなる。こうしたユーザオペレーションを要する要求が、中盤(又は、後半)に発生すると面倒なのである。なぜなら、インストール処理の開始から、中盤(又は、後半)まで、ユーザはオペレーションをするために待つ必要があるからである。
【0150】
(1)(2)についても、(3)(4)と同じ効果を奏する。従って、(1)(2)についての開示は省略するが、(1)(2)も本明細書を構成するものとする。
【0151】
なお、(1)は、上述した各フローチャートの各ステップをコンピュータに実行させるためのプログラムである。(2)は、そのプログラムを格納したコンピュータ読取り可能な記憶媒体である。(3)は、上述した各フローチャートの各ステップを実行する装置である。(4)は、上述した各フローチャートの各ステップを装置に実行させる方法である。
【0152】
また、本明細書では、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」の例として、使用許諾契約書やアプリケーション定義について取り上げた。しかし、これらはあくまで一例である。本明細書の各フローチャートは、これらに限られず、他の「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」にも適用可能である。
【0153】
なお、使用許諾契約書は、アプリケーション内のアプリケーションプログラムをインストールする前に、インターフェースを介してユーザに同意を要求するためのデータである。従って、使用許諾契約書は、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」であるといる。
【0154】
また、アプリケーション定義は、インストール条件確認の結果がインストール不可かどうかを判定することに用いられる。この判定結果でインストール不可となった場合には、インターフェースを介したユーザからの指示が要求される(S921、S1521)。従って、アプリケーション定義は、アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求すべきか否か、を決定する際に必要なデータである。よって、アプリケーション定義も、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ」であるといえる。
【図面の簡単な説明】
【0155】
【図1】画像形成装置
【図2】パッケージング装置
【図3】アプリケーション
【図4】アプリケーション定義
【図5】ライセンス
【図6】アプリケーションパッケージ
【図7】パッケージライセンス
【図8】アプリケーションパッケージ生成処理フロー
【図9】インストール処理フロー
【図10】インストール管理テーブル
【図11】アプリケーションパッケージ
【図12】アプリケーションパッケージ定義
【図13】パッケージライセンス
【図14】アプリケーションパッケージ生成処理フロー
【図15】インストール処理フロー
【技術分野】
【0001】
複数のアプリケーションをパッケージングするアプリケーションパッケージ装置、その制御方法、プログラムに関する。
【背景技術】
【0002】
従来、アプリケーションの不正利用を防ぐために、ライセンスという考え方が取り入れられている。通常は、1つのアプリケーションに対して1つのライセンスが付与され、該アプリケーションのインストール処理の最初にそのライセンスを入力する事でインストールが可能になる。
【0003】
一方、複数のアプリケーションをひとつにアーカイブしてアプリケーションパッケージとして複数のアプリケーションのインストール処理を1回で行う方法が知られている。
【0004】
しかし、ライセンスが設定されているアプリケーションによるアプリケーションパッケージのインストール処理では、各アプリケーションのインストール処理でライセンスの入力が必要となりインストール処理が煩雑になってしまう。
【0005】
そこで、特許文献1ではライセンスに、アプリケーションパッケージ内の複数のアプリケーションを特定させるライセンスデータとライセンスデータの正当性をアプリケーションパッケージにつき一括して証明させるデータを含ませる方法が提案されている。この方法によれば、ライセンスが設定されたアプリケーションのアプリケーションパッケージをインストールする際に、ライセンスの入力を1度で行う事が可能となる。
【特許文献1】特開2006−163896
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1の方法では、アプリケーションパッケージのインストール処理は、ライセンス入力に関してはアプリケーションパッケージのインストール処理の最初に一度入力するだけとなるため簡易である。しかしながら、インストール処理中に入力が必要になる項目はライセンスだけではない。
【0007】
例えば、使用許諾契約書(EULA:End User License Agreement)と呼ばれるものがある。これは、インストールするにあたり同意を必要とする使用許諾内容が書かれた契約書である。インストール処理を継続するためには、ユーザはこれに同意する必要がある。
【0008】
また例えば、アプリケーション固有のインストール条件(例えば、インストール可能なプラットフォームのバージョン、最低限必要とするリソース等)が設定されている場合がある。その場合は、該アプリケーションがインストール条件不適合によりインストール出来ない旨が通知され、インストールを継続する旨が通知される場合がある。
【0009】
特許文献1の方法では、アプリケーションパッケージは複数のアプリケーションを単にひとつにまとめているだけであり、インストールはアプリケーションごとに行われる。そのため、各アプリケーションのインストール処理が開始されるタイミングでインストール条件不適合が通知されたり、インストールを継続するかの入力を必要としたり、使用許諾内容への同意を入力したりする必要が発生しうる。結果、インストール処理が煩雑となる可能性があった。例えば、インストール処理の途中で、何度もユーザに問合せが発生してしまう可能性があった。
【0010】
本発明の目的は、インストール処理を簡易化することが出来るアプリケーションパッケージの生成方法および、そのインストール方法を提供する事にある。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明のアプリケーションパッケージング装置は以下の構成を有する。即ち、複数のアプリケーションの夫々を復号する復号手段と、復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、アプリケーションパッケージを得るために、使用許諾契約書の複製の夫々と復号前の前記複数のアプリケーションの夫々を一つにまとめる手段と、を有する。
【発明の効果】
【0012】
本発明によれば、アプリケーションパッケージのインストール処理において、各アプリケーションのインストールが開始されるタイミングで発生する入力作業を、パッケージのインストール処理の最初にまとめて行う事が可能となる。なお、各アプリケーションのインストール処理が開始されるタイミングで発生する入力作業としては、使用許諾契約書への同意やインストール処理の継続の入力作業などが挙げられる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0014】
(第1の実施の形態)
「画像形成装置1の説明」
図1は本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
画像形成装置1は、印刷装置11及び画象処理装置12からなる。
画像処理装置は、CPU121と直接記憶部122(例、RAM)と間接記憶部123(例、ROMやHDD)とユーザインタフェース124と外部インタフェース125とからなる。
【0015】
直接記憶部122は、CPU121と直接データをやり取りする記憶部であり、間接記憶部123は直接記憶部122を介してCPU121とデータをやり取りする記憶部である。
【0016】
直接記憶部122には、種々のアプリケーションプログラム及びプラットフォームプログラムが記憶されている。
【0017】
ユーザインタフェース124は、キーボード、マウス、ディスプレイ等からなり、ユーザからの指示の受付け、データ(画面データ)の表示をすることが可能となっている。
【0018】
外部インタフェース125は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。
【0019】
「プラットフォーム部13の説明」
CPU121は、間接記憶部123に記憶されたプラットフォームプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、CPU121がプラットフォームプログラムを実行することができる状態になる。
【0020】
本実施形態では、このように「CPU121がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部13が起動すると称する。
【0021】
なお、本実施形態では、以下の構成の組み合わせをプラットフォーム部13と称している。CPU121。直接記憶部122のうちのプラットフォームプログラムを記憶している領域。CPU121が上記プラットフォームプログラムを処理した際に得られる情報(計算結果等)を記憶する(直接記憶部122及び間接記憶部123のうちの)領域。
【0022】
「アプリケーションプログラムの説明」
プラットフォーム部13は、間接記憶部123に記憶された第一のアプリケーションプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、プラットフォーム部13が第一のアプリケーションプログラムを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムを起動すると称する。
【0023】
逆に、プラットフォーム部13は、直接記憶部122に記憶された第一のアプリケーションプログラムを直接記憶部122から削除することができる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムを停止すると称する。
【0024】
プラットフォーム部13は、外部インタフェース部125を介して第一のアプリケーションプログラムであるデータを受信し記憶することができる。このときプラットフォーム部13は、第一のアプリケーションプログラムの存在を記憶し、自己の管理下に収める。本実施形態ではこのことを、プラットフォーム部13に第一のアプリケーションプログラムをインストールすると称する。
【0025】
逆に、プラットフォーム部13は、(プラットフォーム部13の内部にある)間接記憶部123に記憶された第一のアプリケーションプログラムを間接記憶部123から削除することができる。本実施形態ではこのことを、プラットフォーム部13が第一のアプリケーションプログラムをアンインストールすると呼称する。尚、プラットフォーム部13が第一のアプリケーションプログラムをアンインストールする際に、第一のアプリケーションプログラムが起動している場合には、これを停止した後にアンインストールを行う。
【0026】
また、以上の説明は、第一のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム(例、第二のアプリケーションプログラム)であっても同様であることは当業者には明白であろう。
【0027】
「パッケージング装置(アプリケーションパッケージング装置)2の説明」
図2は本発明の実施の形態に係るパッケージング装置の構成を示すブロック図である。
【0028】
パッケージング装置2は、受信手段21、送信手段22、パッケージライセンス生成手段23、アプリケーションパッケージ生成手段24を備える。なお、パッケージライセンス生成手段23およびアプリケーションパッケージ生成手段24の詳細については後述する。
【0029】
パッケージング装置2は、パーソナルコンピュータやワークステーション等のコンピュータである。コンピュータは主たる構成として、CPU、主記憶装置、外部記憶装置、外部インタフェースを備えている。外部記憶装置にはオペレーティングシステム(OS)や各種プログラムが格納されている。主記憶装置には外部記憶装置から読み込まれたOSや各種プログラムが格納されており、これらがCPUによって実行される。
【0030】
なお、本明細書においては、上記各種プログラムの中にはパッケージングプログラムが含まれているものとする。そして、このパッケージングプログラムの内容に基づき、パッケージング装置が上記各手段を実現する。
【0031】
「アプリケーション3の説明」
図3は本発明の実施の形態に係るアプリケーションの構成を示すブロック図である。
アプリケーション3は、非暗号化領域31と暗号化領域32から構成される。また、非暗号化領域31内の特定のディレクトリ(MANIFESTという名称のディレクトリ)には、後述するアプリケーション定義311が格納されている。また、暗号化領域32内の特定のディレクトリ(EULAという名称のディレクトリ)には、後述する使用許諾契約書321および上述したアプリケーションプログラム322が格納されている。
【0032】
暗号化領域32は、後述するライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なライセンスが、暗号化領域を復号するための情報(例、鍵)を格納しているということである。
【0033】
「アプリケーション定義311の説明」
図4は本発明の実施の形態に係るアプリケーション定義の構成を示すリストである。
【0034】
アプリケーション定義311は、アプリケーションID41、製品バージョン42、アプリケーション名43、インストール可能プラットフォーム44、消費リソースサイズ45で構成される。アプリケーションID41は、アプリケーション3が複数のアプリケーションのうちの、どのアプリケーションであるかを一意に識別するための識別子である。さらに製品バージョン42を組み合わせることで、アプリケーション3のうちの、どのバージョンのアプリケーションであるかを特定する事が可能となる。また、アプリケーション名43はアプリケーションの呼称を示す文字列である。
【0035】
インストール可能プラットフォーム44は、当該アプリケーション3がインストールする事が出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム44は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ID、プラットフォームプログラムが有すべき機能を示すID等を示す。
【0036】
消費リソースサイズ45は、当該アプリケーション3をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【0037】
「ライセンス5の説明」
図5は本発明の実施の形態に係るライセンスの構成を示すブロック図である。
【0038】
ライセンス5は、ライセンスID51、アプリケーションID52、ライセンス情報53で構成される。
【0039】
ライセンスID51は当該ライセンス5を識別するためのユニークなIDである。アプリケーションID52には、ライセンスを設定した対象であるアプリケーション3のアプリケーションID41の情報が格納される。ライセンス情報53には、当該ライセンス5のライセンスとしての定義(例えばライセンスの有効期限やライセンス可能な回数)や、アプリケーション3の暗号化領域32を復号するための情報等が格納される。
【0040】
「アプリケーションパッケージ6の説明」
図6は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【0041】
アプリケーションパッケージ6は、後述のアプリケーションパッケージ生成手段24によって生成されたアプリケーションパッケージである。アプリケーションパッケージ6は、複数のアプリケーション611〜613および対応する複数のアプリケーションの使用許諾契約書621〜623によって構成される。
【0042】
アプリケーションパッケージ生成手段24によるアプリケーションパッケージ6の生成処理は後述する。
【0043】
「パッケージライセンス7の説明」
図7は本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【0044】
パッケージライセンス7はパッケージライセンス生成手段23によって生成される複数のライセンス(71、72、73等)を一つにまとめて得られたパッケージライセンスである。パッケージライセンス7は、複数のライセンス71〜73によって構成される。
【0045】
「アプリケーションパッケージ6の生成処理の説明」
続いて、図8のフローチャートをもとにアプリケーションパッケージ生成手段24におけるアプリケーションパッケージ6の生成処理(S802〜S807の処理)およびS801、S808について説明する。なお、本実施形態においては、図8のS802からS807の処理は全て自動で行われ、ユーザからの指示は受けないものとする。即ち、S802の復号の処理からS807の一つにまとめてアプリケーションパッケージを得る処理までの間にユーザからの指示は受けない。このことは、他の実施形態においても同様である(図14のS1402〜S1410における処理が全て自動で行われる)。
【0046】
アプリケーションパッケージ生成手段24は、パッケージライセンス生成手段23よりパッケージング対象となる複数のアプリケーション3を受信する。併せて、それらのアプリケーション3の夫々に対応する各ライセンス5のパッケージライセンス7を受信する(ステップS801)。
【0047】
次に、アプリケーションパッケージ生成手段24は、受信した複数のアプリケーション3の夫々を復号する(ステップS802)。
【0048】
次に、アプリケーションパッケージ生成手段24は復号済みの複数のアプリケーション3のうちの一つを選択する。そして、当該選択された一つのアプリケーション3が使用許諾契約書321を保有しているかを確認し(ステップS803)、保有している場合はS804の処理を行う。なお使用許諾契約書321は、アプリケーション内に特定のディレクトリ(例えば、EULAという名称のディレクトリ)に格納されているため、上記保有しているかの確認は、アプリケーション生成手段24が特定のディレクトリを検索する事によって実行される。また使用許諾契約書321のファイル名においても形式が決まっている事が好ましい。
【0049】
次に、アプリケーションパッケージ生成手段24は復号済みアプリケーション3が保有している使用許諾契約書321を複製する(ステップS804)。そして、複製した使用許諾契約書321のファイル名に、使用許諾契約書321を一意に特定する識別子としてアプリケーションID41を付与する(ステップS805)。この付与されたアプリケーションID41は、複製元のアプリケーション3を特定するために使用される。また、使用許諾契約書321は1つのアプリケーション3が複数所持している構成もありえる(例えば多種言語に対応している場合)ので、その場合は全ての使用許諾契約書321について複製およびIDの付与を実行する。
【0050】
そして、アプリケーションパッケージ生成手段24は、ステップS801で受信した全てのアプリケーション3に対して上記処理を行った後にS807で以下の処理を行う。即ち、ステップS802で復号を行う以前の全アプリケーション3とステップS804、ステップS805にて複製、ID付与が行われた複数の使用許諾契約書321をひとつにまとめる。これにより、アプリケーションパッケージ6が得られる。
【0051】
最後に、アプリケーションパッケージ生成手段24は、生成したアプリケーションパッケージ6とパッケージライセンス7を送信手段22に送信する。
【0052】
なお、S802とS807で、アプリケーションパッケージ生成手段24は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。さらに、その外に出した使用許諾契約書と、各アプリケーションとを含むアプリケーションパッケージ6を得るということが行われるのである。
【0053】
言い換えると、S802とS807で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成するのである。
【0054】
「インストール管理テーブル10の説明」
図10はインストール管理テーブル1000の構成を示すリストである。
【0055】
インストール管理テーブル1000は、後述するプラットフォーム部13におけるインストール処理の際に使われるテーブルであり、インストール処理終了後は破棄されるものである。インストール管理テーブル1000は、アプリケーションID1001、製品バージョン1002、アプリケーション名1003を構成として含む。これらは各アプリケーション3のアプリケーション定義311を元に設定される。そして、インストール管理テーブル1000は、インストール条件確認結果1004、使用許諾同意結果1005を構成として含む。これらの詳細については後述する。
【0056】
またインストール管理テーブル1000は、アプリケーション1006とライセンス1007を構成として含む。これらは各アプリケーション3と対応するライセンス5への参照である。
【0057】
「アプリケーションパッケージ6のインストール処理の説明」
次に、図9のフローチャートをもとにプラットフォーム部13におけるアプリケーションパッケージ6のインストール処理について説明する。
【0058】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、S901からS915までの処理がインストール処理であり、そのうちのS914がインストールである。即ち、S901からS915までのアプリケーションのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【0059】
プラットフォーム部13は、外部インタフェース125からアプリケーションパッケージ6およびパッケージライセンス7を取得する(ステップS901)。言い換えると、外部インタフェース125を介してアプリケーションパッケージ6およびパッケージライセンス7を受信する。この時に、外部インタフェース125を介して接続される装置を使用するユーザから、上記アプリケーションパッケージ6をインストール処理して欲しい旨の指示が同時に送信されてくることは言うまでもない。
【0060】
次に、プラットフォーム部13はステップS902において以下の処理を行う。取得したアプリケーションパッケージ6に含まれる全てのアプリケーション3から、夫々のアプリケーション定義311を取得する。取得したパッケージライセンス7から各アプリケーションに対応するライセンス5を取得する。そして、取得した夫々のアプリケーション3、アプリケーション定義311、ライセンス5の情報を元にインストール管理テーブル1000を作成する。具体的には、インストール管理テーブル1000のインストール条件確認結果1004、使用許諾同意結果1005以外の情報(アプリケーション定義311、ライセンス5の情報)を格納したインストール管理テーブル1000を作成する。
【0061】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000の登録順に以下の処理を行う。
【0062】
まずプラットフォーム部13は、対象となるアプリケーションの非暗号化領域31からアプリケーション定義311を、取得したライセンス5からライセンス情報53を取得する(ステップS903)。次に、それらのアプリケーション定義311、ライセンス情報53の情報を元に、ライセンス確認および後述するインストール条件の確認処理を行う(ステップS904)。その結果、インストール可能であった場合は、インストール管理テーブル1000のインストール条件確認結果1004を、インストール可能を示す情報で更新する(ステップS905)。また、インストール条件確認の結果がインストール不可だった場合は、外部インタフェース125へインストール出来ない旨を通知し、外部インターフェース125を介したユーザからの指示を要求する(ステップS921)。その後、外部インタフェース125を介したユーザからの指示を確認(インストール処理をこのまま継続するかを確認)する(ステップS921)。そして、継続する場合(継続する指示であると確認した場合)はインストール管理テーブル1000のインストール条件確認結果1004を、インストール不可を示す情報で更新する(ステップS905)。また、継続しない場合(継続する指示であると確認した場合)はインストール処理を中断する(ステップS931)。
【0063】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーション3の個数分、上記処理を繰り返す(ステップS906)。
【0064】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000に登録されているアプリケーションのうち、インストール条件確認結果1004がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【0065】
プラットフォーム部13はアプリケーションパッケージ6が、対象のアプリケーション3の使用許諾契約書321の複製を対象のアプリケーション3の外に保持しているかを確認し、保持している場合は取得する(ステップS907)。保持していない場合はインストール管理テーブル1000の使用許諾同意結果1005を、関係しない事を示す情報で更新する(ステップS910)。保持している場合は取得した使用許諾契約書321を、外部インタフェース125へ通知する(ステップS909)。そして、通知した使用許諾契約書321に対して同意であるか、もしくは同意しない旨を、外部インタフェース125を介してユーザから受信する(ステップS909)。その結果、同意の場合は、インストール管理テーブル1000の使用許諾同意結果1005を、同意を示す情報で更新する(ステップS910)。即ち、外部インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果1005を、同意を示す情報で更新するのである。この更新により、S912、S913、S915を経た上で、対象とするアプリケーションがインストールされることになる。一方、使用許諾契約書321に同意しない場合は、インストール処理をこのまま継続するか、外部インタフェース125を介してユーザに確認する(ステップS922)。そして、継続する場合はインストール管理テーブル1000の使用許諾同意結果1005を、同意しない事を示す情報で更新する(ステップS910)。また、継続しない場合はインストール処理を中断する(ステップS931)。
【0066】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果1004がインストール可能を示す情報となっているアプリケーション。」のみを対象として、その個数分、上記処理を繰り返す(ステップS911)。最後に、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果がインストール可能を示す。」であって、かつ、「条件確認結果1004が関係しないか、もしくは同意。」であるアプリケーションに対して以下の処理を行う。
【0067】
まず、プラットフォーム部13は、暗号化されているアプリケーションを復号する(ステップS913)。次に、アプリケーション3に含まれるアプリケーションプログラム322をインストールする(ステップS914)。対象の全てのアプリケーション3のアプリケーションプログラム322のインストールを実行するまで繰り返し処理を実行し(ステップS915)、インストール処理を終了する。
【0068】
以下では、ステップS914における処理を詳細に記述する。
【0069】
まず、ステップS914においては、「S910で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「S910で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【0070】
加えて、ステップS913での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップS914では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にS910、S911で確認をしているからである。
【0071】
「インストール条件確認方法の説明」
次に、プラットフォーム部13のインストール処理のうち、インストール条件確認の方法について説明する。
【0072】
プラットフォーム部13は、アプリケーション定義311にて定義されている情報とプラットフォーム部13、画像処理装置12の情報を比較する事でインストール条件を確認する。特にアプリケーション定義311にて定義されている情報のうち、インストール可能プラットフォーム44、および消費リソースサイズ45の情報を用いる。
【0073】
例えば、プラットフォームプログラムのバージョンが2であって、画像処理装置12の間接記憶部123の残サイズが100MB(メガバイト)の場合。そして、固有IDが“#####0000000000”であって、備える機能の固有IDが“印刷機能のバージョン1かつ、ユーザインタフェース124のディスプレイサイズはSVGA”を示す場合は、以下のように判断される。
【0074】
プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44のプラットフォームプログラムのバージョンが1の場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【0075】
また、プラットフォーム部13は、対象のアプリケーション3の消費リソースサイズ45の間接記憶の消費サイズが120MB(メガバイト)だった場合、インストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【0076】
また、プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44の機器の固有IDが“#####0000000001”だった場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有IDを機器が保持しているか、で判断される。
【0077】
また、プラットフォーム部13は、対象のアプリケーション3のインストール可能プラットフォーム44の機能の固有IDが“印刷機能のバージョン2”を示す場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【0078】
このように、プラットフォーム部13は、アプリケーション定義311にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【0079】
また、本実施の形態ではアプリケーションパッケージ6は暗号化されていないとして説明している。しかしながら、アプリケーションパッケージ内に、アプリケーション3のように暗号化領域を設け、複製により得られた複数の使用許諾契約書(621〜623)や、既に暗号化されている複数のアプリケーション(611〜613)を格納するよう構成しても良い。このような場合、複製した使用許諾契約書は、当然、アプリケーション生成手段により、S807とS808の間で暗号化されることになる。同様に、既に暗号化されている複数のアプリケーションも、同様に、アプリケーション生成手段により、S807とS808の間で暗号化されることになる。つまり、二重でアプリケーションは暗号化されることになるのである。このように、それらを暗号化領域に格納することにより、使用許諾契約書の改竄をも防ぐ事ができる。
【0080】
なお、S807とS808の間で暗号化される場合は、S801で取得したパッケージライセンスに、復号するための情報(例、鍵)を格納する事になる。
【0081】
このように、本実施の形態によればアプリケーションパッケージのインストール時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来る。
【0082】
(第2の実施の形態)
第2の実施の形態においては、第1の実施の形態と同様の構成、および構成要素についての説明は省略する。なお、本実施の形態において上記第1の実施の形態と同一の構成、構成要素には同一の符号を用いて説明するものとする。
【0083】
なお、第2の実施形態において、第1の実施形態と大きく異なっている点を以下に説明する。異なっている点は、第2の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれる点である(図11)。第1の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれていない(図6)。
【0084】
これにより、第2の実施形態では、複数のアプリケーション定義を夫々確認する(S904とS921の間のひし形参照)ことなしに、アプリケーションパッケージ定義のみを確認(S1503とS1521の間のひし形参照)すればよくなる。
【0085】
また、第2の実施形態においては、アプリケーションパッケージ定義を含むアプリケーションパッケージを作成するにあたって、アプリケーション定義の中の情報の種類に応じた演算(和算、積算)を行っている。このような演算は、アプリケーションパッケージ定義を作らない第1の実施形態には書かれていない。
【0086】
「アプリケーションパッケージ1100の説明」
図11は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【0087】
アプリケーションパッケージ1100は、後述のアプリケーションパッケージ生成手段24によって生成されたアプリケーションパッケージである。アプリケーションパッケージ1100は、非暗号化領域1101と暗号化領域1102から構成される。また非暗号化領域1101内の特定のディレクトリ(MANIFESTという名称のディレクトリ)には、後述するアプリケーションパッケージ定義1103格納されている。また、非暗号化領域1102には、複数のアプリケーション1111〜1113および対応する複数のアプリケーションの使用許諾契約書1121〜1123が格納されている。
【0088】
暗号化領域1102は、後述するパッケージライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なパッケージライセンスが、暗号化領域を復号するための情報(例、鍵)を格納しているということである。
【0089】
「アプリケーションパッケージ定義1103の説明」
図12は本発明の実施の形態に係るアプリケーションパッケージ定義の構成を示すリストである。
【0090】
アプリケーションパッケージ定義1103は、アプリケーションパッケージID1201、製品バージョン1202、アプリケーションパッケージ名1203、インストール可能プラットフォーム1204、消費リソースサイズ1205で構成される。そして、アプリケーションパッケージ1100が含む全てのアプリケーション3の夫々のアプリケーション定義321を、アプリケーション定義1206〜1208として含む。
【0091】
アプリケーションパッケージID1201は、アプリケーションパッケージ1100が複数のアプリケーションパッケージのうちの、どのアプリケーションパッケージであるかを一意に識別するための識別子である。さらに製品バージョン1202を組み合わせることで、アプリケーションパッケージ1100のうちの、どのバージョンのアプリケーションパッケージであるかを特定する事が可能となる。また、アプリケーションパッケージ名1203はアプリケーションパッケージの呼称を示す文字列である。
【0092】
インストール可能プラットフォーム1204は、当該アプリケーションパッケージ1100に含まれる全てのアプリケーション3がインストール出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム1204は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ID、プラットフォームプログラムが有すべき機能を示すID等を示す。消費リソースサイズ1205は、当該アプリケーションパッケージ1100含まれる全アプリケーション3をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【0093】
「パッケージライセンス1300の説明」
図13本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【0094】
パッケージライセンス1300は、パッケージライセンス生成手段23によって生成される複数のライセンス5(1304、1305、1306等)を一つにまとめて得られたパッケージライセンスである。パッケージライセンス1300は、パッケージライセンスID1301、アプリケーションパッケージID1302、パッケージライセンス情報1303、および複数のライセンス1304〜1306によって構成される。
【0095】
パッケージライセンスID1301は、当該パッケージライセンス1300を識別するためのユニークなIDである。パッケージアプリケーションID1302には、ライセンスを設定した対象であるアプリケーションパッケージ1100のアプリケーションパッケージID1201の情報が格納される。パッケージライセンス情報1303には、当該パッケージライセンス1300のパッケージライセンスとしての定義や、アプリケーションパッケージ1100の暗号化領域1102を復号するための情報等が格納される。このパッケージライセンスとしての定義には、例えば、パッケージライセンスの有効期限やライセンス可能な回数が含まれる。
【0096】
「アプリケーションパッケージ1100の生成処理の説明」
続いて、図14のフローチャートをもとにアプリケーションパッケージ生成手段24におけるアプリケーションパッケージ1100の生成処理(S1402〜S1410)およびS1401,S14011について説明する。
【0097】
アプリケーションパッケージ生成手段24は、パッケージライセンス生成手段23より以下のものを受信する(ステップS1401)。即ち、パッケージング対象となる複数のアプリケーション3と、それらのアプリケーション3の夫々に対応する各ライセンス5のパッケージライセンス1300とを受信する。
【0098】
次に、アプリケーションパッケージ生成手段24は、受信した複数のアプリケーション3の夫々を復号する(ステップS1402)。
【0099】
次に、アプリケーションパッケージ生成手段24は復号済みの複数のアプリケーション3のうちの一つを選択する。そして、当該選択された一つのアプリケーション3が使用許諾契約書321を保有しているかを確認し(ステップS1403)、保有している場合はS1404の処理を行う。なお使用許諾契約書321は、アプリケーション内に特定のディレクトリ(例えば、EULAという名称のディレクトリ)に格納されているため、上記保有しているかの確認は、アプリケーション生成手段24が特定のディレクトリを検索する事によって実行される。また使用許諾契約書321のファイル名においても形式が決まっている事が好ましい。
【0100】
次に、アプリケーションパッケージ生成手段24は復号済みアプリケーション3が保有している使用許諾契約書321を複製する(ステップS1404)。そして、複製した使用許諾契約書321のファイル名に、使用許諾契約書321を一意に特定する識別子としてアプリケーションID41を付与する(ステップS1405)。この付与されたアプリケーションID41は、複製元のアプリケーション3を特定するために使用される。また、使用許諾契約書321は1つのアプリケーション3が複数所持している構成もありえる(例えば多種言語に対応している場合)ので、その場合は全ての使用許諾契約書321について複製およびIDの付与を実行する。
【0101】
続いてアプリケーションパッケージ生成手段24は、アプリケーションが保有しているアプリケーション定義311を取得する(ステップS1406)。
【0102】
そして、アプリケーションパッケージ生成手段24は、ステップS1401で受信した全てのアプリケーション3に対して上記処理を行う。その後に、後述する取得した全てのアプリケーション定義311からアプリケーションパッケージ定義1103を作成する(ステップS1408)。
【0103】
次に、アプリケーションパッケージ生成手段24はS1409で以下の処理を行う。即ち、ステップS1402で復号を行う前の全アプリケーション3とステップS1404、ステップS1405にて複製、ID付与が行われた使用許諾契約書321、およびステップS1408で作成したアプリケーションパッケージ定義1103をひとつにまとめる。これにより、アプリケーションパッケージ1100が得られる。
【0104】
最後に、アプリケーションパッケージ生成手段24は、生成したアプリケーションパッケージ1100とパッケージライセンス1300を送信手段22に送信する。
【0105】
なお、S1402とS1409で、アプリケーションパッケージ生成手段24は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。
【0106】
また、S1406とS1408とS1409とで、アプリケーションパッケージ生成手段24は、夫々のアプリケーションごとに含まれていたアプリケーション定義を合算し、一つのアプリケーションパッケージ定義を生成する。
【0107】
さらに、その外に出した使用許諾契約書と、生成したアプリケーションパッケージ定義と、各アプリケーションとを含むアプリケーションパッケージ1100を得るということが行われるのである。
【0108】
言い換えると、S1402とS1409で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成する。
【0109】
さらに、S1406とS1408とS1409とで、アプリケーションパッケージ定義を、前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段24は生成するのである。なお、上述したように、アプリケーションパッケージ定義とは、夫々のアプリケーションごとに定義されていたアプリケーション定義を合算したものである。
【0110】
なお本実施の形態では、複製した使用許諾契約書321の保有元であるアプリケーション3を特定するために、使用許諾契約書321のファイル名に当該アプリケーション3のアプリケーションID41を付与する方法で説明している。しかしながら、使用許諾契約書321の複製元のアプリケーション3が特定されるのであれば方法は問わない。例えば、アプリケーション3と、使用許諾契約書321の複製を対応付ける表を作成し、アプリケーションパッケージ1100内のアプリケーションパッケージ定義1103に格納する方法が考えられる。
【0111】
「アプリケーションパッケージ定義1103作成方法の説明」
次に、アプリケーションパッケージ生成手段24における、アプリケーションパッケージ定義1103の作成方法について説明する。
【0112】
アプリケーションパッケージ生成手段24は、アプリケーション定義311にて定義されている情報を夫々合算することでアプリケーションパッケージ定義1103を作成する。特にアプリケーション定義311にて定義されている情報のうち、インストール可能プラットフォーム44、および消費リソースサイズ45の情報に関して夫々合算する。
【0113】
例えば、アプリケーション3Aのアプリケーション定義311は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが2であって、消費する間接記憶部123のサイズが100MB(メガバイト)。そして、インストール可能な機器の固有IDが“#####0000000000,####0000000001”。必要な機能の固有IDが“印刷機能のバージョン2で、かつ、ユーザインタフェース124のディスプレイサイズはSVGAもしくはVGA”。なお、“#####0000000000,####0000000001”は、“#####0000000000、又は、####0000000001”を示す。
【0114】
一方、アプリケーション3Bのアプリケーション定義311は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが1もしくは2。消費する間接記憶部123のサイズが120MB(メガバイト)。そして、インストール可能な機器の固有IDが“#####0000000000”。また、必要な機能の固有IDが“印刷機能のバージョン1”。
【0115】
このような場合は、以下のようにして、アプリケーションパッケージ定義1103が作成される。
【0116】
まず、アプリケーション定義内の情報の種類に応じて、和算、積算の何れを用いるかを決定する。そして、その上で、決定した演算を行う。
【0117】
具体的には、バージョン、インストール可能な間接記憶部のサイズの場合には、和算を用いると決定する。一方、インストール可能な機器の固有IDや、インストールするために必要な機能の固有IDの場合には、積算を用いると決定する。
【0118】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能なプラットフォームプログラムのバージョンは2である。これは論理積によって合算される。
【0119】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な間接記憶部123のサイズは220MB(メガバイト)以上である。これは数値の和によって合算される。なぜなら、220MB=120MB+100MBだからである。
【0120】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な機器の固有IDは“#####0000000000”である。これも論理積によって合算される。即ち、“#####0000000000”と、“#####0000000000,####0000000001”との論理積(積算)により、“#####0000000000”得られる。
【0121】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストールするために必要な機能の固有IDは“印刷機能のバージョン2で、かつ、ユーザインタフェース124のディスプレイサイズはSVGAもしくはVGA”となる。これも論理積によって合算される。
【0122】
このように、アプリケーションパッケージ生成手段24は、アプリケーション定義311にて定義されている情報の夫々を和算、積算(論理積)により合算することでアプリケーションパッケージ定義1103を作成する。
【0123】
「アプリケーションパッケージ1100のインストール処理の説明」
次に、図15のフローチャートをもとにプラットフォーム部13におけるアプリケーションパッケージ1100のインストール処理について説明する。
【0124】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、S1501からS1514までの処理がインストール処理であり、そのうちのS1513がインストールである。即ち、S1501からS1514までのアプリケーションパッケージのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【0125】
プラットフォーム部13は、外部インタフェース125からインストール対象となるアプリケーションパッケージ1100およびパッケージライセンス1300を取得する(ステップS1501)。
【0126】
次に、プラットフォーム部13はステップS1503において以下の処理を行う。取得したアプリケーションパッケージ1100に含まれるアプリケーションパッケージ定義1103と、パッケージライセンス1300に含まれるパッケージライセンス情報1303とを取得する。そして、取得したアプリケーションパッケージ定義1103およびパッケージライセンス情報1303の情報を元にインストール管理テーブル1000を作成する。具体的には、インストール管理テーブル1000のインストール条件確認結果1004、使用許諾同意結果1005以外の情報(アプリケーション定義311、ライセンス5の情報)を格納したインストール管理テーブル1000を作成する。
【0127】
次に、プラットフォーム部13は、アプリケーションパッケージ定義1103およびパッケージライセンス情報1303の情報を元に後述するパッケージライセンスおよびパッケージインストール条件確認を行う(ステップS1503)。そしてライセンスおよびインストール条件の確認の結果、インストール可能であった場合は、インストール管理テーブル1000の全てのアプリケーションに対するインストール条件確認結果1004を、インストール可能を示す情報で更新する(ステップS1504)。また、インストール条件確認の結果が一つでもインストール不可だった場合は、外部インタフェース125へインストール出来ない旨を通知し、外部インターフェース125を介したユーザからの指示を要求する(ステップS1521)。その後、外部インタフェース125を介したユーザからの指示を確認(インストール処理をこのまま継続するかを確認)する(ステップS1521)。その結果、継続する場合はインストール管理テーブル1000のうちインストール不可のアプリケーションに対するインストール条件確認結果1004を、インストール不可を示す情報で更新する(ステップS1504)。もちろん、インストール条件確認の結果がインストール可能であったアプリケーションがあった場合、そのアプリケーションに対するインストール条件確認結果1004は、インストール可能を示す情報で更新する(ステップS1504)。また、継続しない場合はインストール処理を中断する(ステップS1531)。
【0128】
次に、プラットフォーム部13は、アプリケーションパッケージを復号する(S1505)。
【0129】
次に、プラットフォーム部13は、作成したインストール管理テーブル1000に登録されているアプリケーションのうち、インストール条件確認結果1004がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【0130】
プラットフォーム部13は、アプリケーションパッケージ1100が、対象のアプリケーション3の使用許諾契約書321の複製を対象のアプリケーション3の外に保持しているかを確認し、保持している場合は取得する(ステップS1506)。保持していない場合はインストール管理テーブル1000の使用許諾同意結果1005を、関係しない事を示す情報で更新する(ステップS1509)。保持している場合は取得した複数の使用許諾契約書321を、外部インタフェース125へ通知する(ステップS1508)。そして、通知した複数の使用許諾契約書321の夫々に対して同意であるか、もしくは同意しない旨を、外部インタフェース125を介してユーザから受信する(ステップS1508)。受信した情報が全て同意の場合はインストール管理テーブル1000の使用許諾同意結果1005を、全てのアプリケーションのインストールが同意されたことを示す情報で更新する(ステップS1509)。即ち、外部インタフェースを介して、使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果1005を、同意がされたことを示す情報で更新するのである。このように更新することで、S1511、S1512、S1514を経た上で、そのアプリケーションがインストールされることになる。
【0131】
一方、対象とするアプリケーションの使用許諾契約書321に関して、同意しない旨を受信した場合はインストール処理をこのまま継続するかを、外部インタフェース125を介してユーザに確認する(ステップS1522)。継続する場合はインストール管理テーブル1000の使用許諾同意結果1005として、同意されていないことを示す情報で更新する(ステップS1509)。また、継続しない場合はインストール処理を中断する(ステップS1531)。
【0132】
そして、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果1004がインストール可能を示している。」アプリケーションのみを対象として、個数分上記処理を繰り返す(ステップS1510)。
【0133】
最後に、プラットフォーム部13は、インストール管理テーブル1000に登録されているアプリケーションのうち、「インストール条件確認結果が可能を示していて、かつ、条件確認結果1004が関係しないか、もしくは同意である。」アプリケーションに対して以下の処理を行う。
【0134】
まず、プラットフォーム部13は、暗号化されているアプリケーションを復号する(ステップS1512)。次に、アプリケーション3に含まれるアプリケーションプログラム322をインストールする(ステップS1513)。対象の全てのアプリケーション3のアプリケーションプログラム322のインストールを実行するまで繰り返し処理を実行し(ステップS1514)、インストール処理を終了する。
【0135】
以下では、ステップS1513における処理を詳細に記述する。
【0136】
まず、ステップS1513においては、「S1509で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「S1509で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【0137】
加えて、ステップS1512での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップS1513では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にS1509、S1510で確認をしているからである。
【0138】
「パッケージインストール条件確認方法の説明」
次に、プラットフォーム部13のインストール処理のうち、パッケージインストール条件確認の方法について説明する。
【0139】
プラットフォーム部13は、アプリケーションパッケージ定義1103の情報とプラットフォーム部13、画像処理装置12の情報を比較する事でインストール条件を確認する。特にアプリケーション定義1103にて定義されている情報のうち、インストール可能プラットフォーム1204、および消費リソースサイズ1205を用いる。
【0140】
例えば、プラットフォームプログラムのバージョンが2であって、画像処理装置12の間接記憶部123の残サイズが100MB(メガバイト)の場合。そして、固有IDが“#####0000000000”であって、備える機能の固有IDが“印刷機能のバージョン1かつ、スキャン機能はバージョン1もしくはバージョン2”を示す場合は、以下のように判断される。
【0141】
プラットフォーム部13は、アプリケーションパッケージ1100のインストール可能なプラットフォームプログラムのバージョンが1の場合、アプリケーションパッケージ1300に含まれるアプリケーションの全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【0142】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の間接記憶の消費サイズが120MB(メガバイト)の場合、アプリケーションパッケージ1300に含まれるアプリケーション3の全てはインストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【0143】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の機器の固有IDが“#####0000000001”の場合は、アプリケーションパッケージ1300に含まれるアプリケーション3の全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有IDを機器が保持しているか、で判断される。
【0144】
また、プラットフォーム部13は、対象のアプリケーションパッケージ1100の機能の固有IDが“印刷機能のバージョン2”を示す場合に、アプリケーションパッケージ1300に含まれるアプリケーション3の全てをインストールすることは出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【0145】
また、プラットフォーム部13はアプリケーションパッケージ1300に含まれるアプリケーション3の全てをインストールする事が出来ないと判断した場合は、続けて以下の判断を行う。アプリケーションパッケージ1100に含まれる各アプリケーションについて、アプリケーションパッケージ定義1103に含まれる個別アプリケーション定義311を用いて個別にインストール可能かを判断する。
【0146】
このように、プラットフォーム部13はアプリケーションパッケージ定義1103にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【0147】
このように、本実施の形態によればアプリケーションパッケージのインストール処理の時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。さらに、アプリケーションパッケージ定義、パッケージライセンス情報を生成する事により、インストール条件の確認やライセンスの確認処理のパフォーマンスを向上することが出来る。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来、インストール処理のパフォーマンスを向上する事ができる。
【0148】
また、上述した各実施の形態によれば、暗号化された複数のアプリケーションの中に夫々存在する使用許諾契約書を、それらのアプリケーションの外に出している。これにより、暗号化された複数のアプリケーションの復号化を待つことなく、使用許諾契約書の同意をユーザから取り付けることができる。即ち、かなり前半にて、使用許諾契約書の同意をユーザから取り付けることができ、インストール処理をスムーズに行うことができる。
【0149】
これにより、暗号化された複数のアプリケーションを含むアプリケーションパッケージのインストール処理中に何度も使用許諾契約書への同意の要求が発生することが無くなる。また、インストール処理の中盤(又は、後半)にかけて上記要求が発生することも無くなる。こうしたユーザオペレーションを要する要求が、中盤(又は、後半)に発生すると面倒なのである。なぜなら、インストール処理の開始から、中盤(又は、後半)まで、ユーザはオペレーションをするために待つ必要があるからである。
【0150】
(1)(2)についても、(3)(4)と同じ効果を奏する。従って、(1)(2)についての開示は省略するが、(1)(2)も本明細書を構成するものとする。
【0151】
なお、(1)は、上述した各フローチャートの各ステップをコンピュータに実行させるためのプログラムである。(2)は、そのプログラムを格納したコンピュータ読取り可能な記憶媒体である。(3)は、上述した各フローチャートの各ステップを実行する装置である。(4)は、上述した各フローチャートの各ステップを装置に実行させる方法である。
【0152】
また、本明細書では、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」の例として、使用許諾契約書やアプリケーション定義について取り上げた。しかし、これらはあくまで一例である。本明細書の各フローチャートは、これらに限られず、他の「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」にも適用可能である。
【0153】
なお、使用許諾契約書は、アプリケーション内のアプリケーションプログラムをインストールする前に、インターフェースを介してユーザに同意を要求するためのデータである。従って、使用許諾契約書は、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」であるといる。
【0154】
また、アプリケーション定義は、インストール条件確認の結果がインストール不可かどうかを判定することに用いられる。この判定結果でインストール不可となった場合には、インターフェースを介したユーザからの指示が要求される(S921、S1521)。従って、アプリケーション定義は、アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求すべきか否か、を決定する際に必要なデータである。よって、アプリケーション定義も、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ」であるといえる。
【図面の簡単な説明】
【0155】
【図1】画像形成装置
【図2】パッケージング装置
【図3】アプリケーション
【図4】アプリケーション定義
【図5】ライセンス
【図6】アプリケーションパッケージ
【図7】パッケージライセンス
【図8】アプリケーションパッケージ生成処理フロー
【図9】インストール処理フロー
【図10】インストール管理テーブル
【図11】アプリケーションパッケージ
【図12】アプリケーションパッケージ定義
【図13】パッケージライセンス
【図14】アプリケーションパッケージ生成処理フロー
【図15】インストール処理フロー
【特許請求の範囲】
【請求項1】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【請求項2】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成手段を有するアプリケーションパッケージング装置。
【請求項3】
前記アプリケーションパッケージ生成手段は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項2に記載のアプリケーションパッケージング装置。
【請求項4】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項2又は3に記載のアプリケーションパッケージング装置。
【請求項5】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項4記載のアプリケーションパッケージング装置。
【請求項6】
請求項2乃至5の何れか1項に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置。
【請求項7】
請求項4又は5に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断手段とを有する装置。
【請求項8】
複数のアプリケーションの夫々を復号する復号方法と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製方法と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる方法と、を有するアプリケーションパッケージング装置の制御方法。
【請求項9】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成方法を有するアプリケーションパッケージング装置の制御方法。
【請求項10】
前記アプリケーションパッケージ生成方法は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項9に記載のアプリケーションパッケージング装置の制御方法。
【請求項11】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項9又は10に記載のアプリケーションパッケージング装置の制御方法。
【請求項12】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項11記載のアプリケーションパッケージング装置の制御方法。
【請求項13】
請求項9乃至12の何れか1項に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置の制御方法。
【請求項14】
請求項11又は12に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断方法とを有する装置の制御方法。
【請求項15】
請求項8乃至14の何れか1項に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項16】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する、インストールにあたってインターフェースを介してユーザに指示を要求することに繋がるデータを複製する複製手段と、
アプリケーションパッケージを得るために、前記データの複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【請求項1】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【請求項2】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成手段を有するアプリケーションパッケージング装置。
【請求項3】
前記アプリケーションパッケージ生成手段は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項2に記載のアプリケーションパッケージング装置。
【請求項4】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項2又は3に記載のアプリケーションパッケージング装置。
【請求項5】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項4記載のアプリケーションパッケージング装置。
【請求項6】
請求項2乃至5の何れか1項に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置。
【請求項7】
請求項4又は5に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断手段とを有する装置。
【請求項8】
複数のアプリケーションの夫々を復号する復号方法と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製方法と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる方法と、を有するアプリケーションパッケージング装置の制御方法。
【請求項9】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成方法を有するアプリケーションパッケージング装置の制御方法。
【請求項10】
前記アプリケーションパッケージ生成方法は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項9に記載のアプリケーションパッケージング装置の制御方法。
【請求項11】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項9又は10に記載のアプリケーションパッケージング装置の制御方法。
【請求項12】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項11記載のアプリケーションパッケージング装置の制御方法。
【請求項13】
請求項9乃至12の何れか1項に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置の制御方法。
【請求項14】
請求項11又は12に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断方法とを有する装置の制御方法。
【請求項15】
請求項8乃至14の何れか1項に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項16】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する、インストールにあたってインターフェースを介してユーザに指示を要求することに繋がるデータを複製する複製手段と、
アプリケーションパッケージを得るために、前記データの複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−252091(P2009−252091A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−101530(P2008−101530)
【出願日】平成20年4月9日(2008.4.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願日】平成20年4月9日(2008.4.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]