(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【請求項２】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成手段を有するアプリケーションパッケージング装置。
【請求項３】
前記アプリケーションパッケージ生成手段は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項２に記載のアプリケーションパッケージング装置。
【請求項４】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項２又は３に記載のアプリケーションパッケージング装置。
【請求項５】
前記アプリケーションパッケージ生成手段は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項４記載のアプリケーションパッケージング装置。
【請求項６】
請求項２乃至５の何れか１項に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置。
【請求項７】
請求項４又は５に記載のアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断手段とを有する装置。
【請求項８】
複数のアプリケーションの夫々を復号する復号方法と、
復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製方法と、
アプリケーションパッケージを得るために、使用許諾契約書の複製と復号前の前記複数のアプリケーションを一つにまとめる方法と、を有するアプリケーションパッケージング装置の制御方法。
【請求項９】
複数のアプリケーションの夫々を復号し、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書を、復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージを生成するアプリケーションパッケージ生成方法を有するアプリケーションパッケージング装置の制御方法。
【請求項１０】
前記アプリケーションパッケージ生成方法は、
当該復号した複数のアプリケーションの夫々が有する使用許諾契約書と、復号前の前記複数のアプリケーションとを、暗号化した上で前記アプリケーションパッケージを生成することを特徴とする請求項９に記載のアプリケーションパッケージング装置の制御方法。
【請求項１１】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義を合算し、当該合算により得られたアプリケーション定義を、前記復号前の前記複数のアプリケーションとは別の領域に含むように前記アプリケーションパッケージを生成することを特徴とする請求項９又は１０に記載のアプリケーションパッケージング装置の制御方法。
【請求項１２】
前記アプリケーションパッケージ生成方法は、
前記復号した複数のアプリケーションの夫々が有するアプリケーション定義の中の情報の種類によって、和算、積算の何れを用いるかを決定することを特徴とする請求項１１記載のアプリケーションパッケージング装置の制御方法。
【請求項１３】
請求項９乃至１２の何れか１項に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれる使用許諾契約書を取得し、
インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、前記複数のアプリケーションのインストールを行うことを特徴とする装置の制御方法。
【請求項１４】
請求項１１又は１２に記載の制御方法により制御されるアプリケーションパッケージング装置により生成されたアプリケーションパッケージから、暗号化されている複数のアプリケーションを復号する前に、前記別の領域に含まれるアプリケーションパッケージ定義を取得し、
当該取得したアプリケーションパッケージ定義に基づき、前記アプリケーションパッケージに含まれる複数のアプリケーションの全てをインストール可能であるか判断する判断する判断方法とを有する装置の制御方法。
【請求項１５】
請求項８乃至１４の何れか１項に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項１６】
複数のアプリケーションの夫々を復号する復号手段と、
復号した複数のアプリケーションの夫々が有する、インストールにあたってインターフェースを介してユーザに指示を要求することに繋がるデータを複製する複製手段と、
アプリケーションパッケージを得るために、前記データの複製と復号前の前記複数のアプリケーションを一つにまとめる手段と、を有するアプリケーションパッケージング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のアプリケーションをパッケージングするアプリケーションパッケージ装置、その制御方法、プログラムに関する。
【背景技術】
【０００２】
従来、アプリケーションの不正利用を防ぐために、ライセンスという考え方が取り入れられている。通常は、１つのアプリケーションに対して１つのライセンスが付与され、該アプリケーションのインストール処理の最初にそのライセンスを入力する事でインストールが可能になる。
【０００３】
一方、複数のアプリケーションをひとつにアーカイブしてアプリケーションパッケージとして複数のアプリケーションのインストール処理を１回で行う方法が知られている。
【０００４】
しかし、ライセンスが設定されているアプリケーションによるアプリケーションパッケージのインストール処理では、各アプリケーションのインストール処理でライセンスの入力が必要となりインストール処理が煩雑になってしまう。
【０００５】
そこで、特許文献１ではライセンスに、アプリケーションパッケージ内の複数のアプリケーションを特定させるライセンスデータとライセンスデータの正当性をアプリケーションパッケージにつき一括して証明させるデータを含ませる方法が提案されている。この方法によれば、ライセンスが設定されたアプリケーションのアプリケーションパッケージをインストールする際に、ライセンスの入力を１度で行う事が可能となる。
【特許文献１】特開２００６−１６３８９６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の方法では、アプリケーションパッケージのインストール処理は、ライセンス入力に関してはアプリケーションパッケージのインストール処理の最初に一度入力するだけとなるため簡易である。しかしながら、インストール処理中に入力が必要になる項目はライセンスだけではない。
【０００７】
例えば、使用許諾契約書（ＥＵＬＡ：Ｅｎｄ  Ｕｓｅｒ  Ｌｉｃｅｎｓｅ  Ａｇｒｅｅｍｅｎｔ）と呼ばれるものがある。これは、インストールするにあたり同意を必要とする使用許諾内容が書かれた契約書である。インストール処理を継続するためには、ユーザはこれに同意する必要がある。
【０００８】
また例えば、アプリケーション固有のインストール条件（例えば、インストール可能なプラットフォームのバージョン、最低限必要とするリソース等）が設定されている場合がある。その場合は、該アプリケーションがインストール条件不適合によりインストール出来ない旨が通知され、インストールを継続する旨が通知される場合がある。
【０００９】
特許文献１の方法では、アプリケーションパッケージは複数のアプリケーションを単にひとつにまとめているだけであり、インストールはアプリケーションごとに行われる。そのため、各アプリケーションのインストール処理が開始されるタイミングでインストール条件不適合が通知されたり、インストールを継続するかの入力を必要としたり、使用許諾内容への同意を入力したりする必要が発生しうる。結果、インストール処理が煩雑となる可能性があった。例えば、インストール処理の途中で、何度もユーザに問合せが発生してしまう可能性があった。
【００１０】
本発明の目的は、インストール処理を簡易化することが出来るアプリケーションパッケージの生成方法および、そのインストール方法を提供する事にある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明のアプリケーションパッケージング装置は以下の構成を有する。即ち、複数のアプリケーションの夫々を復号する復号手段と、復号した複数のアプリケーションの夫々が有する使用許諾契約書を複製する複製手段と、アプリケーションパッケージを得るために、使用許諾契約書の複製の夫々と復号前の前記複数のアプリケーションの夫々を一つにまとめる手段と、を有する。
【発明の効果】
【００１２】
本発明によれば、アプリケーションパッケージのインストール処理において、各アプリケーションのインストールが開始されるタイミングで発生する入力作業を、パッケージのインストール処理の最初にまとめて行う事が可能となる。なお、各アプリケーションのインストール処理が開始されるタイミングで発生する入力作業としては、使用許諾契約書への同意やインストール処理の継続の入力作業などが挙げられる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１４】
（第１の実施の形態）
「画像形成装置１の説明」
図１は本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
画像形成装置１は、印刷装置１１及び画象処理装置１２からなる。
画像処理装置は、ＣＰＵ１２１と直接記憶部１２２（例、ＲＡＭ）と間接記憶部１２３（例、ＲＯＭやＨＤＤ）とユーザインタフェース１２４と外部インタフェース１２５とからなる。
【００１５】
直接記憶部１２２は、ＣＰＵ１２１と直接データをやり取りする記憶部であり、間接記憶部１２３は直接記憶部１２２を介してＣＰＵ１２１とデータをやり取りする記憶部である。
【００１６】
直接記憶部１２２には、種々のアプリケーションプログラム及びプラットフォームプログラムが記憶されている。
【００１７】
ユーザインタフェース１２４は、キーボード、マウス、ディスプレイ等からなり、ユーザからの指示の受付け、データ（画面データ）の表示をすることが可能となっている。
【００１８】
外部インタフェース１２５は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けＨＤＤや外付けＵＳＢメモリ等の外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。
【００１９】
「プラットフォーム部１３の説明」
ＣＰＵ１２１は、間接記憶部１２３に記憶されたプラットフォームプログラムを直接記憶部１２２に移動する（記憶させる）ことができる。移動が完了すると、ＣＰＵ１２１がプラットフォームプログラムを実行することができる状態になる。
【００２０】
本実施形態では、このように「ＣＰＵ１２１がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部１３が起動すると称する。
【００２１】
なお、本実施形態では、以下の構成の組み合わせをプラットフォーム部１３と称している。ＣＰＵ１２１。直接記憶部１２２のうちのプラットフォームプログラムを記憶している領域。ＣＰＵ１２１が上記プラットフォームプログラムを処理した際に得られる情報（計算結果等）を記憶する（直接記憶部１２２及び間接記憶部１２３のうちの）領域。
【００２２】
「アプリケーションプログラムの説明」
プラットフォーム部１３は、間接記憶部１２３に記憶された第一のアプリケーションプログラムを直接記憶部１２２に移動する（記憶させる）ことができる。移動が完了すると、プラットフォーム部１３が第一のアプリケーションプログラムを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部１３が第一のアプリケーションプログラムを起動すると称する。
【００２３】
逆に、プラットフォーム部１３は、直接記憶部１２２に記憶された第一のアプリケーションプログラムを直接記憶部１２２から削除することができる。本実施形態ではこのことを、プラットフォーム部１３が第一のアプリケーションプログラムを停止すると称する。
【００２４】
プラットフォーム部１３は、外部インタフェース部１２５を介して第一のアプリケーションプログラムであるデータを受信し記憶することができる。このときプラットフォーム部１３は、第一のアプリケーションプログラムの存在を記憶し、自己の管理下に収める。本実施形態ではこのことを、プラットフォーム部１３に第一のアプリケーションプログラムをインストールすると称する。
【００２５】
逆に、プラットフォーム部１３は、（プラットフォーム部１３の内部にある）間接記憶部１２３に記憶された第一のアプリケーションプログラムを間接記憶部１２３から削除することができる。本実施形態ではこのことを、プラットフォーム部１３が第一のアプリケーションプログラムをアンインストールすると呼称する。尚、プラットフォーム部１３が第一のアプリケーションプログラムをアンインストールする際に、第一のアプリケーションプログラムが起動している場合には、これを停止した後にアンインストールを行う。
【００２６】
また、以上の説明は、第一のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム（例、第二のアプリケーションプログラム）であっても同様であることは当業者には明白であろう。
【００２７】
「パッケージング装置（アプリケーションパッケージング装置）２の説明」
図２は本発明の実施の形態に係るパッケージング装置の構成を示すブロック図である。
【００２８】
パッケージング装置２は、受信手段２１、送信手段２２、パッケージライセンス生成手段２３、アプリケーションパッケージ生成手段２４を備える。なお、パッケージライセンス生成手段２３およびアプリケーションパッケージ生成手段２４の詳細については後述する。
【００２９】
パッケージング装置２は、パーソナルコンピュータやワークステーション等のコンピュータである。コンピュータは主たる構成として、ＣＰＵ、主記憶装置、外部記憶装置、外部インタフェースを備えている。外部記憶装置にはオペレーティングシステム（ＯＳ）や各種プログラムが格納されている。主記憶装置には外部記憶装置から読み込まれたＯＳや各種プログラムが格納されており、これらがＣＰＵによって実行される。
【００３０】
なお、本明細書においては、上記各種プログラムの中にはパッケージングプログラムが含まれているものとする。そして、このパッケージングプログラムの内容に基づき、パッケージング装置が上記各手段を実現する。
【００３１】
「アプリケーション３の説明」
図３は本発明の実施の形態に係るアプリケーションの構成を示すブロック図である。
アプリケーション３は、非暗号化領域３１と暗号化領域３２から構成される。また、非暗号化領域３１内の特定のディレクトリ（ＭＡＮＩＦＥＳＴという名称のディレクトリ）には、後述するアプリケーション定義３１１が格納されている。また、暗号化領域３２内の特定のディレクトリ（ＥＵＬＡという名称のディレクトリ）には、後述する使用許諾契約書３２１および上述したアプリケーションプログラム３２２が格納されている。
【００３２】
暗号化領域３２は、後述するライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なライセンスが、暗号化領域を復号するための情報（例、鍵）を格納しているということである。
【００３３】
「アプリケーション定義３１１の説明」
図４は本発明の実施の形態に係るアプリケーション定義の構成を示すリストである。
【００３４】
アプリケーション定義３１１は、アプリケーションＩＤ４１、製品バージョン４２、アプリケーション名４３、インストール可能プラットフォーム４４、消費リソースサイズ４５で構成される。アプリケーションＩＤ４１は、アプリケーション３が複数のアプリケーションのうちの、どのアプリケーションであるかを一意に識別するための識別子である。さらに製品バージョン４２を組み合わせることで、アプリケーション３のうちの、どのバージョンのアプリケーションであるかを特定する事が可能となる。また、アプリケーション名４３はアプリケーションの呼称を示す文字列である。
【００３５】
インストール可能プラットフォーム４４は、当該アプリケーション３がインストールする事が出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム４４は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ＩＤ、プラットフォームプログラムが有すべき機能を示すＩＤ等を示す。
【００３６】
消費リソースサイズ４５は、当該アプリケーション３をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【００３７】
「ライセンス５の説明」
図５は本発明の実施の形態に係るライセンスの構成を示すブロック図である。
【００３８】
ライセンス５は、ライセンスＩＤ５１、アプリケーションＩＤ５２、ライセンス情報５３で構成される。
【００３９】
ライセンスＩＤ５１は当該ライセンス５を識別するためのユニークなＩＤである。アプリケーションＩＤ５２には、ライセンスを設定した対象であるアプリケーション３のアプリケーションＩＤ４１の情報が格納される。ライセンス情報５３には、当該ライセンス５のライセンスとしての定義（例えばライセンスの有効期限やライセンス可能な回数）や、アプリケーション３の暗号化領域３２を復号するための情報等が格納される。
【００４０】
「アプリケーションパッケージ６の説明」
図６は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【００４１】
アプリケーションパッケージ６は、後述のアプリケーションパッケージ生成手段２４によって生成されたアプリケーションパッケージである。アプリケーションパッケージ６は、複数のアプリケーション６１１〜６１３および対応する複数のアプリケーションの使用許諾契約書６２１〜６２３によって構成される。
【００４２】
アプリケーションパッケージ生成手段２４によるアプリケーションパッケージ６の生成処理は後述する。
【００４３】
「パッケージライセンス７の説明」
図７は本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【００４４】
パッケージライセンス７はパッケージライセンス生成手段２３によって生成される複数のライセンス（７１、７２、７３等）を一つにまとめて得られたパッケージライセンスである。パッケージライセンス７は、複数のライセンス７１〜７３によって構成される。
【００４５】
「アプリケーションパッケージ６の生成処理の説明」
続いて、図８のフローチャートをもとにアプリケーションパッケージ生成手段２４におけるアプリケーションパッケージ６の生成処理（Ｓ８０２〜Ｓ８０７の処理）およびＳ８０１、Ｓ８０８について説明する。なお、本実施形態においては、図８のＳ８０２からＳ８０７の処理は全て自動で行われ、ユーザからの指示は受けないものとする。即ち、Ｓ８０２の復号の処理からＳ８０７の一つにまとめてアプリケーションパッケージを得る処理までの間にユーザからの指示は受けない。このことは、他の実施形態においても同様である（図１４のＳ１４０２〜Ｓ１４１０における処理が全て自動で行われる）。
【００４６】
アプリケーションパッケージ生成手段２４は、パッケージライセンス生成手段２３よりパッケージング対象となる複数のアプリケーション３を受信する。併せて、それらのアプリケーション３の夫々に対応する各ライセンス５のパッケージライセンス７を受信する（ステップＳ８０１）。
【００４７】
次に、アプリケーションパッケージ生成手段２４は、受信した複数のアプリケーション３の夫々を復号する（ステップＳ８０２）。
【００４８】
次に、アプリケーションパッケージ生成手段２４は復号済みの複数のアプリケーション３のうちの一つを選択する。そして、当該選択された一つのアプリケーション３が使用許諾契約書３２１を保有しているかを確認し（ステップＳ８０３）、保有している場合はＳ８０４の処理を行う。なお使用許諾契約書３２１は、アプリケーション内に特定のディレクトリ（例えば、ＥＵＬＡという名称のディレクトリ）に格納されているため、上記保有しているかの確認は、アプリケーション生成手段２４が特定のディレクトリを検索する事によって実行される。また使用許諾契約書３２１のファイル名においても形式が決まっている事が好ましい。
【００４９】
次に、アプリケーションパッケージ生成手段２４は復号済みアプリケーション３が保有している使用許諾契約書３２１を複製する（ステップＳ８０４）。そして、複製した使用許諾契約書３２１のファイル名に、使用許諾契約書３２１を一意に特定する識別子としてアプリケーションＩＤ４１を付与する（ステップＳ８０５）。この付与されたアプリケーションＩＤ４１は、複製元のアプリケーション３を特定するために使用される。また、使用許諾契約書３２１は１つのアプリケーション３が複数所持している構成もありえる（例えば多種言語に対応している場合）ので、その場合は全ての使用許諾契約書３２１について複製およびＩＤの付与を実行する。
【００５０】
そして、アプリケーションパッケージ生成手段２４は、ステップＳ８０１で受信した全てのアプリケーション３に対して上記処理を行った後にＳ８０７で以下の処理を行う。即ち、ステップＳ８０２で復号を行う以前の全アプリケーション３とステップＳ８０４、ステップＳ８０５にて複製、ＩＤ付与が行われた複数の使用許諾契約書３２１をひとつにまとめる。これにより、アプリケーションパッケージ６が得られる。
【００５１】
最後に、アプリケーションパッケージ生成手段２４は、生成したアプリケーションパッケージ６とパッケージライセンス７を送信手段２２に送信する。
【００５２】
なお、Ｓ８０２とＳ８０７で、アプリケーションパッケージ生成手段２４は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。さらに、その外に出した使用許諾契約書と、各アプリケーションとを含むアプリケーションパッケージ６を得るということが行われるのである。
【００５３】
言い換えると、Ｓ８０２とＳ８０７で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段２４は生成するのである。
【００５４】
「インストール管理テーブル１０の説明」
図１０はインストール管理テーブル１０００の構成を示すリストである。
【００５５】
インストール管理テーブル１０００は、後述するプラットフォーム部１３におけるインストール処理の際に使われるテーブルであり、インストール処理終了後は破棄されるものである。インストール管理テーブル１０００は、アプリケーションＩＤ１００１、製品バージョン１００２、アプリケーション名１００３を構成として含む。これらは各アプリケーション３のアプリケーション定義３１１を元に設定される。そして、インストール管理テーブル１０００は、インストール条件確認結果１００４、使用許諾同意結果１００５を構成として含む。これらの詳細については後述する。
【００５６】
またインストール管理テーブル１０００は、アプリケーション１００６とライセンス１００７を構成として含む。これらは各アプリケーション３と対応するライセンス５への参照である。
【００５７】
「アプリケーションパッケージ６のインストール処理の説明」
次に、図９のフローチャートをもとにプラットフォーム部１３におけるアプリケーションパッケージ６のインストール処理について説明する。
【００５８】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、Ｓ９０１からＳ９１５までの処理がインストール処理であり、そのうちのＳ９１４がインストールである。即ち、Ｓ９０１からＳ９１５までのアプリケーションのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【００５９】
プラットフォーム部１３は、外部インタフェース１２５からアプリケーションパッケージ６およびパッケージライセンス７を取得する（ステップＳ９０１）。言い換えると、外部インタフェース１２５を介してアプリケーションパッケージ６およびパッケージライセンス７を受信する。この時に、外部インタフェース１２５を介して接続される装置を使用するユーザから、上記アプリケーションパッケージ６をインストール処理して欲しい旨の指示が同時に送信されてくることは言うまでもない。
【００６０】
次に、プラットフォーム部１３はステップＳ９０２において以下の処理を行う。取得したアプリケーションパッケージ６に含まれる全てのアプリケーション３から、夫々のアプリケーション定義３１１を取得する。取得したパッケージライセンス７から各アプリケーションに対応するライセンス５を取得する。そして、取得した夫々のアプリケーション３、アプリケーション定義３１１、ライセンス５の情報を元にインストール管理テーブル１０００を作成する。具体的には、インストール管理テーブル１０００のインストール条件確認結果１００４、使用許諾同意結果１００５以外の情報（アプリケーション定義３１１、ライセンス５の情報）を格納したインストール管理テーブル１０００を作成する。
【００６１】
次に、プラットフォーム部１３は、作成したインストール管理テーブル１０００の登録順に以下の処理を行う。
【００６２】
まずプラットフォーム部１３は、対象となるアプリケーションの非暗号化領域３１からアプリケーション定義３１１を、取得したライセンス５からライセンス情報５３を取得する（ステップＳ９０３）。次に、それらのアプリケーション定義３１１、ライセンス情報５３の情報を元に、ライセンス確認および後述するインストール条件の確認処理を行う（ステップＳ９０４）。その結果、インストール可能であった場合は、インストール管理テーブル１０００のインストール条件確認結果１００４を、インストール可能を示す情報で更新する（ステップＳ９０５）。また、インストール条件確認の結果がインストール不可だった場合は、外部インタフェース１２５へインストール出来ない旨を通知し、外部インターフェース１２５を介したユーザからの指示を要求する（ステップＳ９２１）。その後、外部インタフェース１２５を介したユーザからの指示を確認（インストール処理をこのまま継続するかを確認）する（ステップＳ９２１）。そして、継続する場合（継続する指示であると確認した場合）はインストール管理テーブル１０００のインストール条件確認結果１００４を、インストール不可を示す情報で更新する（ステップＳ９０５）。また、継続しない場合（継続する指示であると確認した場合）はインストール処理を中断する（ステップＳ９３１）。
【００６３】
そして、プラットフォーム部１３は、インストール管理テーブル１０００に登録されているアプリケーション３の個数分、上記処理を繰り返す（ステップＳ９０６）。
【００６４】
次に、プラットフォーム部１３は、作成したインストール管理テーブル１０００に登録されているアプリケーションのうち、インストール条件確認結果１００４がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【００６５】
プラットフォーム部１３はアプリケーションパッケージ６が、対象のアプリケーション３の使用許諾契約書３２１の複製を対象のアプリケーション３の外に保持しているかを確認し、保持している場合は取得する（ステップＳ９０７）。保持していない場合はインストール管理テーブル１０００の使用許諾同意結果１００５を、関係しない事を示す情報で更新する（ステップＳ９１０）。保持している場合は取得した使用許諾契約書３２１を、外部インタフェース１２５へ通知する（ステップＳ９０９）。そして、通知した使用許諾契約書３２１に対して同意であるか、もしくは同意しない旨を、外部インタフェース１２５を介してユーザから受信する（ステップＳ９０９）。その結果、同意の場合は、インストール管理テーブル１０００の使用許諾同意結果１００５を、同意を示す情報で更新する（ステップＳ９１０）。即ち、外部インタフェースを介して、当該取得した使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果１００５を、同意を示す情報で更新するのである。この更新により、Ｓ９１２、Ｓ９１３、Ｓ９１５を経た上で、対象とするアプリケーションがインストールされることになる。一方、使用許諾契約書３２１に同意しない場合は、インストール処理をこのまま継続するか、外部インタフェース１２５を介してユーザに確認する（ステップＳ９２２）。そして、継続する場合はインストール管理テーブル１０００の使用許諾同意結果１００５を、同意しない事を示す情報で更新する（ステップＳ９１０）。また、継続しない場合はインストール処理を中断する（ステップＳ９３１）。
【００６６】
そして、プラットフォーム部１３は、インストール管理テーブル１０００に登録されているアプリケーションのうち、「インストール条件確認結果１００４がインストール可能を示す情報となっているアプリケーション。」のみを対象として、その個数分、上記処理を繰り返す（ステップＳ９１１）。最後に、プラットフォーム部１３は、インストール管理テーブル１０００に登録されているアプリケーションのうち、「インストール条件確認結果がインストール可能を示す。」であって、かつ、「条件確認結果１００４が関係しないか、もしくは同意。」であるアプリケーションに対して以下の処理を行う。
【００６７】
まず、プラットフォーム部１３は、暗号化されているアプリケーションを復号する（ステップＳ９１３）。次に、アプリケーション３に含まれるアプリケーションプログラム３２２をインストールする（ステップＳ９１４）。対象の全てのアプリケーション３のアプリケーションプログラム３２２のインストールを実行するまで繰り返し処理を実行し（ステップＳ９１５）、インストール処理を終了する。
【００６８】
以下では、ステップＳ９１４における処理を詳細に記述する。
【００６９】
まず、ステップＳ９１４においては、「Ｓ９１０で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「Ｓ９１０で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【００７０】
加えて、ステップＳ９１３での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップＳ９１４では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にＳ９１０、Ｓ９１１で確認をしているからである。
【００７１】
「インストール条件確認方法の説明」
次に、プラットフォーム部１３のインストール処理のうち、インストール条件確認の方法について説明する。
【００７２】
プラットフォーム部１３は、アプリケーション定義３１１にて定義されている情報とプラットフォーム部１３、画像処理装置１２の情報を比較する事でインストール条件を確認する。特にアプリケーション定義３１１にて定義されている情報のうち、インストール可能プラットフォーム４４、および消費リソースサイズ４５の情報を用いる。
【００７３】
例えば、プラットフォームプログラムのバージョンが２であって、画像処理装置１２の間接記憶部１２３の残サイズが１００ＭＢ（メガバイト）の場合。そして、固有ＩＤが“＃＃＃＃＃００００００００００”であって、備える機能の固有ＩＤが“印刷機能のバージョン１かつ、ユーザインタフェース１２４のディスプレイサイズはＳＶＧＡ”を示す場合は、以下のように判断される。
【００７４】
プラットフォーム部１３は、対象のアプリケーション３のインストール可能プラットフォーム４４のプラットフォームプログラムのバージョンが１の場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【００７５】
また、プラットフォーム部１３は、対象のアプリケーション３の消費リソースサイズ４５の間接記憶の消費サイズが１２０ＭＢ（メガバイト）だった場合、インストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【００７６】
また、プラットフォーム部１３は、対象のアプリケーション３のインストール可能プラットフォーム４４の機器の固有ＩＤが“＃＃＃＃＃０００００００００１”だった場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有ＩＤを機器が保持しているか、で判断される。
【００７７】
また、プラットフォーム部１３は、対象のアプリケーション３のインストール可能プラットフォーム４４の機能の固有ＩＤが“印刷機能のバージョン２”を示す場合、インストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【００７８】
このように、プラットフォーム部１３は、アプリケーション定義３１１にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【００７９】
また、本実施の形態ではアプリケーションパッケージ６は暗号化されていないとして説明している。しかしながら、アプリケーションパッケージ内に、アプリケーション３のように暗号化領域を設け、複製により得られた複数の使用許諾契約書（６２１〜６２３）や、既に暗号化されている複数のアプリケーション（６１１〜６１３）を格納するよう構成しても良い。このような場合、複製した使用許諾契約書は、当然、アプリケーション生成手段により、Ｓ８０７とＳ８０８の間で暗号化されることになる。同様に、既に暗号化されている複数のアプリケーションも、同様に、アプリケーション生成手段により、Ｓ８０７とＳ８０８の間で暗号化されることになる。つまり、二重でアプリケーションは暗号化されることになるのである。このように、それらを暗号化領域に格納することにより、使用許諾契約書の改竄をも防ぐ事ができる。
【００８０】
なお、Ｓ８０７とＳ８０８の間で暗号化される場合は、Ｓ８０１で取得したパッケージライセンスに、復号するための情報（例、鍵）を格納する事になる。
【００８１】
このように、本実施の形態によればアプリケーションパッケージのインストール時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来る。
【００８２】
（第２の実施の形態）
第２の実施の形態においては、第１の実施の形態と同様の構成、および構成要素についての説明は省略する。なお、本実施の形態において上記第１の実施の形態と同一の構成、構成要素には同一の符号を用いて説明するものとする。
【００８３】
なお、第２の実施形態において、第１の実施形態と大きく異なっている点を以下に説明する。異なっている点は、第２の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれる点である（図１１）。第１の実施形態におけるアプリケーションパッケージには、アプリケーションパッケージ定義が含まれていない（図６）。
【００８４】
これにより、第２の実施形態では、複数のアプリケーション定義を夫々確認する（Ｓ９０４とＳ９２１の間のひし形参照）ことなしに、アプリケーションパッケージ定義のみを確認（Ｓ１５０３とＳ１５２１の間のひし形参照）すればよくなる。
【００８５】
また、第２の実施形態においては、アプリケーションパッケージ定義を含むアプリケーションパッケージを作成するにあたって、アプリケーション定義の中の情報の種類に応じた演算（和算、積算）を行っている。このような演算は、アプリケーションパッケージ定義を作らない第１の実施形態には書かれていない。
【００８６】
「アプリケーションパッケージ１１００の説明」
図１１は本発明の実施の形態に係るアプリケーションパッケージの構成を示すブロック図である。
【００８７】
アプリケーションパッケージ１１００は、後述のアプリケーションパッケージ生成手段２４によって生成されたアプリケーションパッケージである。アプリケーションパッケージ１１００は、非暗号化領域１１０１と暗号化領域１１０２から構成される。また非暗号化領域１１０１内の特定のディレクトリ（ＭＡＮＩＦＥＳＴという名称のディレクトリ）には、後述するアプリケーションパッケージ定義１１０３格納されている。また、非暗号化領域１１０２には、複数のアプリケーション１１１１〜１１１３および対応する複数のアプリケーションの使用許諾契約書１１２１〜１１２３が格納されている。
【００８８】
暗号化領域１１０２は、後述するパッケージライセンスが正当な場合のみ復号可能なよう構成されるべきであり、暗号化方式は問わない。正当なパッケージライセンスが、暗号化領域を復号するための情報（例、鍵）を格納しているということである。
【００８９】
「アプリケーションパッケージ定義１１０３の説明」
図１２は本発明の実施の形態に係るアプリケーションパッケージ定義の構成を示すリストである。
【００９０】
アプリケーションパッケージ定義１１０３は、アプリケーションパッケージＩＤ１２０１、製品バージョン１２０２、アプリケーションパッケージ名１２０３、インストール可能プラットフォーム１２０４、消費リソースサイズ１２０５で構成される。そして、アプリケーションパッケージ１１００が含む全てのアプリケーション３の夫々のアプリケーション定義３２１を、アプリケーション定義１２０６〜１２０８として含む。
【００９１】
アプリケーションパッケージＩＤ１２０１は、アプリケーションパッケージ１１００が複数のアプリケーションパッケージのうちの、どのアプリケーションパッケージであるかを一意に識別するための識別子である。さらに製品バージョン１２０２を組み合わせることで、アプリケーションパッケージ１１００のうちの、どのバージョンのアプリケーションパッケージであるかを特定する事が可能となる。また、アプリケーションパッケージ名１２０３はアプリケーションパッケージの呼称を示す文字列である。
【００９２】
インストール可能プラットフォーム１２０４は、当該アプリケーションパッケージ１１００に含まれる全てのアプリケーション３がインストール出来るプラットフォームプログラムを示す。このインストール可能プラットフォーム１２０４は、例えば、プラットフォームプログラムの種別やバージョン、機器の固有ＩＤ、プラットフォームプログラムが有すべき機能を示すＩＤ等を示す。消費リソースサイズ１２０５は、当該アプリケーションパッケージ１１００含まれる全アプリケーション３をインストールする際、もしくはインストールした後で実行する際に必要なリソースサイズが定義されている。例えば間接記憶の消費サイズや直接記憶の消費サイズが考えられる。
【００９３】
「パッケージライセンス１３００の説明」
図１３本発明の実施の形態に係るパッケージライセンスの構成を示すブロック図である。
【００９４】
パッケージライセンス１３００は、パッケージライセンス生成手段２３によって生成される複数のライセンス５（１３０４、１３０５、１３０６等）を一つにまとめて得られたパッケージライセンスである。パッケージライセンス１３００は、パッケージライセンスＩＤ１３０１、アプリケーションパッケージＩＤ１３０２、パッケージライセンス情報１３０３、および複数のライセンス１３０４〜１３０６によって構成される。
【００９５】
パッケージライセンスＩＤ１３０１は、当該パッケージライセンス１３００を識別するためのユニークなＩＤである。パッケージアプリケーションＩＤ１３０２には、ライセンスを設定した対象であるアプリケーションパッケージ１１００のアプリケーションパッケージＩＤ１２０１の情報が格納される。パッケージライセンス情報１３０３には、当該パッケージライセンス１３００のパッケージライセンスとしての定義や、アプリケーションパッケージ１１００の暗号化領域１１０２を復号するための情報等が格納される。このパッケージライセンスとしての定義には、例えば、パッケージライセンスの有効期限やライセンス可能な回数が含まれる。
【００９６】
「アプリケーションパッケージ１１００の生成処理の説明」
続いて、図１４のフローチャートをもとにアプリケーションパッケージ生成手段２４におけるアプリケーションパッケージ１１００の生成処理（Ｓ１４０２〜Ｓ１４１０）およびＳ１４０１，Ｓ１４０１１について説明する。
【００９７】
アプリケーションパッケージ生成手段２４は、パッケージライセンス生成手段２３より以下のものを受信する（ステップＳ１４０１）。即ち、パッケージング対象となる複数のアプリケーション３と、それらのアプリケーション３の夫々に対応する各ライセンス５のパッケージライセンス１３００とを受信する。
【００９８】
次に、アプリケーションパッケージ生成手段２４は、受信した複数のアプリケーション３の夫々を復号する（ステップＳ１４０２）。
【００９９】
次に、アプリケーションパッケージ生成手段２４は復号済みの複数のアプリケーション３のうちの一つを選択する。そして、当該選択された一つのアプリケーション３が使用許諾契約書３２１を保有しているかを確認し（ステップＳ１４０３）、保有している場合はＳ１４０４の処理を行う。なお使用許諾契約書３２１は、アプリケーション内に特定のディレクトリ（例えば、ＥＵＬＡという名称のディレクトリ）に格納されているため、上記保有しているかの確認は、アプリケーション生成手段２４が特定のディレクトリを検索する事によって実行される。また使用許諾契約書３２１のファイル名においても形式が決まっている事が好ましい。
【０１００】
次に、アプリケーションパッケージ生成手段２４は復号済みアプリケーション３が保有している使用許諾契約書３２１を複製する（ステップＳ１４０４）。そして、複製した使用許諾契約書３２１のファイル名に、使用許諾契約書３２１を一意に特定する識別子としてアプリケーションＩＤ４１を付与する（ステップＳ１４０５）。この付与されたアプリケーションＩＤ４１は、複製元のアプリケーション３を特定するために使用される。また、使用許諾契約書３２１は１つのアプリケーション３が複数所持している構成もありえる（例えば多種言語に対応している場合）ので、その場合は全ての使用許諾契約書３２１について複製およびＩＤの付与を実行する。
【０１０１】
続いてアプリケーションパッケージ生成手段２４は、アプリケーションが保有しているアプリケーション定義３１１を取得する（ステップＳ１４０６）。
【０１０２】
そして、アプリケーションパッケージ生成手段２４は、ステップＳ１４０１で受信した全てのアプリケーション３に対して上記処理を行う。その後に、後述する取得した全てのアプリケーション定義３１１からアプリケーションパッケージ定義１１０３を作成する（ステップＳ１４０８）。
【０１０３】
次に、アプリケーションパッケージ生成手段２４はＳ１４０９で以下の処理を行う。即ち、ステップＳ１４０２で復号を行う前の全アプリケーション３とステップＳ１４０４、ステップＳ１４０５にて複製、ＩＤ付与が行われた使用許諾契約書３２１、およびステップＳ１４０８で作成したアプリケーションパッケージ定義１１０３をひとつにまとめる。これにより、アプリケーションパッケージ１１００が得られる。
【０１０４】
最後に、アプリケーションパッケージ生成手段２４は、生成したアプリケーションパッケージ１１００とパッケージライセンス１３００を送信手段２２に送信する。
【０１０５】
なお、Ｓ１４０２とＳ１４０９で、アプリケーションパッケージ生成手段２４は、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を、当該各アプリケーションの外に出す。
【０１０６】
また、Ｓ１４０６とＳ１４０８とＳ１４０９とで、アプリケーションパッケージ生成手段２４は、夫々のアプリケーションごとに含まれていたアプリケーション定義を合算し、一つのアプリケーションパッケージ定義を生成する。
【０１０７】
さらに、その外に出した使用許諾契約書と、生成したアプリケーションパッケージ定義と、各アプリケーションとを含むアプリケーションパッケージ１１００を得るということが行われるのである。
【０１０８】
言い換えると、Ｓ１４０２とＳ１４０９で、暗号化されている各アプリケーションの中に含まれていた使用許諾契約書を復号前の前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段２４は生成する。
【０１０９】
さらに、Ｓ１４０６とＳ１４０８とＳ１４０９とで、アプリケーションパッケージ定義を、前記複数のアプリケーションとは別の領域に含むアプリケーションパッケージをアプリケーションパッケージ生成手段２４は生成するのである。なお、上述したように、アプリケーションパッケージ定義とは、夫々のアプリケーションごとに定義されていたアプリケーション定義を合算したものである。
【０１１０】
なお本実施の形態では、複製した使用許諾契約書３２１の保有元であるアプリケーション３を特定するために、使用許諾契約書３２１のファイル名に当該アプリケーション３のアプリケーションＩＤ４１を付与する方法で説明している。しかしながら、使用許諾契約書３２１の複製元のアプリケーション３が特定されるのであれば方法は問わない。例えば、アプリケーション３と、使用許諾契約書３２１の複製を対応付ける表を作成し、アプリケーションパッケージ１１００内のアプリケーションパッケージ定義１１０３に格納する方法が考えられる。
【０１１１】
「アプリケーションパッケージ定義１１０３作成方法の説明」
次に、アプリケーションパッケージ生成手段２４における、アプリケーションパッケージ定義１１０３の作成方法について説明する。
【０１１２】
アプリケーションパッケージ生成手段２４は、アプリケーション定義３１１にて定義されている情報を夫々合算することでアプリケーションパッケージ定義１１０３を作成する。特にアプリケーション定義３１１にて定義されている情報のうち、インストール可能プラットフォーム４４、および消費リソースサイズ４５の情報に関して夫々合算する。
【０１１３】
例えば、アプリケーション３Ａのアプリケーション定義３１１は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが２であって、消費する間接記憶部１２３のサイズが１００ＭＢ（メガバイト）。そして、インストール可能な機器の固有ＩＤが“＃＃＃＃＃００００００００００，＃＃＃＃０００００００００１”。必要な機能の固有ＩＤが“印刷機能のバージョン２で、かつ、ユーザインタフェース１２４のディスプレイサイズはＳＶＧＡもしくはＶＧＡ”。なお、“＃＃＃＃＃００００００００００，＃＃＃＃０００００００００１”は、“＃＃＃＃＃００００００００００、又は、＃＃＃＃０００００００００１”を示す。
【０１１４】
一方、アプリケーション３Ｂのアプリケーション定義３１１は以下のようなものであったとする。インストール可能なプラットフォームプログラムのバージョンが１もしくは２。消費する間接記憶部１２３のサイズが１２０ＭＢ（メガバイト）。そして、インストール可能な機器の固有ＩＤが“＃＃＃＃＃００００００００００”。また、必要な機能の固有ＩＤが“印刷機能のバージョン１”。
【０１１５】
このような場合は、以下のようにして、アプリケーションパッケージ定義１１０３が作成される。
【０１１６】
まず、アプリケーション定義内の情報の種類に応じて、和算、積算の何れを用いるかを決定する。そして、その上で、決定した演算を行う。
【０１１７】
具体的には、バージョン、インストール可能な間接記憶部のサイズの場合には、和算を用いると決定する。一方、インストール可能な機器の固有ＩＤや、インストールするために必要な機能の固有ＩＤの場合には、積算を用いると決定する。
【０１１８】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能なプラットフォームプログラムのバージョンは２である。これは論理積によって合算される。
【０１１９】
アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な間接記憶部１２３のサイズは２２０ＭＢ（メガバイト）以上である。これは数値の和によって合算される。なぜなら、２２０ＭＢ＝１２０ＭＢ＋１００ＭＢだからである。
【０１２０】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストール可能な機器の固有ＩＤは“＃＃＃＃＃００００００００００”である。これも論理積によって合算される。即ち、“＃＃＃＃＃００００００００００”と、“＃＃＃＃＃００００００００００，＃＃＃＃０００００００００１”との論理積（積算）により、“＃＃＃＃＃００００００００００”得られる。
【０１２１】
そして、アプリケーションパッケージに含まれる全てのアプリケーションがインストールするために必要な機能の固有ＩＤは“印刷機能のバージョン２で、かつ、ユーザインタフェース１２４のディスプレイサイズはＳＶＧＡもしくはＶＧＡ”となる。これも論理積によって合算される。
【０１２２】
このように、アプリケーションパッケージ生成手段２４は、アプリケーション定義３１１にて定義されている情報の夫々を和算、積算（論理積）により合算することでアプリケーションパッケージ定義１１０３を作成する。
【０１２３】
「アプリケーションパッケージ１１００のインストール処理の説明」
次に、図１５のフローチャートをもとにプラットフォーム部１３におけるアプリケーションパッケージ１１００のインストール処理について説明する。
【０１２４】
なお、本実施の形態において、インストール処理とは、アプリケーションプログラムのインストールと、そのインストールに伴う処理とを含む処理である。具体的には、Ｓ１５０１からＳ１５１４までの処理がインストール処理であり、そのうちのＳ１５１３がインストールである。即ち、Ｓ１５０１からＳ１５１４までのアプリケーションパッケージのインストール処理が行われる中で、アプリケーションプログラムのインストールが行われることになる。
【０１２５】
プラットフォーム部１３は、外部インタフェース１２５からインストール対象となるアプリケーションパッケージ１１００およびパッケージライセンス１３００を取得する（ステップＳ１５０１）。
【０１２６】
次に、プラットフォーム部１３はステップＳ１５０３において以下の処理を行う。取得したアプリケーションパッケージ１１００に含まれるアプリケーションパッケージ定義１１０３と、パッケージライセンス１３００に含まれるパッケージライセンス情報１３０３とを取得する。そして、取得したアプリケーションパッケージ定義１１０３およびパッケージライセンス情報１３０３の情報を元にインストール管理テーブル１０００を作成する。具体的には、インストール管理テーブル１０００のインストール条件確認結果１００４、使用許諾同意結果１００５以外の情報（アプリケーション定義３１１、ライセンス５の情報）を格納したインストール管理テーブル１０００を作成する。
【０１２７】
次に、プラットフォーム部１３は、アプリケーションパッケージ定義１１０３およびパッケージライセンス情報１３０３の情報を元に後述するパッケージライセンスおよびパッケージインストール条件確認を行う（ステップＳ１５０３）。そしてライセンスおよびインストール条件の確認の結果、インストール可能であった場合は、インストール管理テーブル１０００の全てのアプリケーションに対するインストール条件確認結果１００４を、インストール可能を示す情報で更新する（ステップＳ１５０４）。また、インストール条件確認の結果が一つでもインストール不可だった場合は、外部インタフェース１２５へインストール出来ない旨を通知し、外部インターフェース１２５を介したユーザからの指示を要求する（ステップＳ１５２１）。その後、外部インタフェース１２５を介したユーザからの指示を確認（インストール処理をこのまま継続するかを確認）する（ステップＳ１５２１）。その結果、継続する場合はインストール管理テーブル１０００のうちインストール不可のアプリケーションに対するインストール条件確認結果１００４を、インストール不可を示す情報で更新する（ステップＳ１５０４）。もちろん、インストール条件確認の結果がインストール可能であったアプリケーションがあった場合、そのアプリケーションに対するインストール条件確認結果１００４は、インストール可能を示す情報で更新する（ステップＳ１５０４）。また、継続しない場合はインストール処理を中断する（ステップＳ１５３１）。
【０１２８】
次に、プラットフォーム部１３は、アプリケーションパッケージを復号する（Ｓ１５０５）。
【０１２９】
次に、プラットフォーム部１３は、作成したインストール管理テーブル１０００に登録されているアプリケーションのうち、インストール条件確認結果１００４がインストール可能を示す情報となったアプリケーションのみを対象として以下の処理を行う。
【０１３０】
プラットフォーム部１３は、アプリケーションパッケージ１１００が、対象のアプリケーション３の使用許諾契約書３２１の複製を対象のアプリケーション３の外に保持しているかを確認し、保持している場合は取得する（ステップＳ１５０６）。保持していない場合はインストール管理テーブル１０００の使用許諾同意結果１００５を、関係しない事を示す情報で更新する（ステップＳ１５０９）。保持している場合は取得した複数の使用許諾契約書３２１を、外部インタフェース１２５へ通知する（ステップＳ１５０８）。そして、通知した複数の使用許諾契約書３２１の夫々に対して同意であるか、もしくは同意しない旨を、外部インタフェース１２５を介してユーザから受信する（ステップＳ１５０８）。受信した情報が全て同意の場合はインストール管理テーブル１０００の使用許諾同意結果１００５を、全てのアプリケーションのインストールが同意されたことを示す情報で更新する（ステップＳ１５０９）。即ち、外部インタフェースを介して、使用許諾契約書に対する同意をユーザから取り付けた場合に、使用許諾同意結果１００５を、同意がされたことを示す情報で更新するのである。このように更新することで、Ｓ１５１１、Ｓ１５１２、Ｓ１５１４を経た上で、そのアプリケーションがインストールされることになる。
【０１３１】
一方、対象とするアプリケーションの使用許諾契約書３２１に関して、同意しない旨を受信した場合はインストール処理をこのまま継続するかを、外部インタフェース１２５を介してユーザに確認する（ステップＳ１５２２）。継続する場合はインストール管理テーブル１０００の使用許諾同意結果１００５として、同意されていないことを示す情報で更新する（ステップＳ１５０９）。また、継続しない場合はインストール処理を中断する（ステップＳ１５３１）。
【０１３２】
そして、プラットフォーム部１３は、インストール管理テーブル１０００に登録されているアプリケーションのうち、「インストール条件確認結果１００４がインストール可能を示している。」アプリケーションのみを対象として、個数分上記処理を繰り返す（ステップＳ１５１０）。
【０１３３】
最後に、プラットフォーム部１３は、インストール管理テーブル１０００に登録されているアプリケーションのうち、「インストール条件確認結果が可能を示していて、かつ、条件確認結果１００４が関係しないか、もしくは同意である。」アプリケーションに対して以下の処理を行う。
【０１３４】
まず、プラットフォーム部１３は、暗号化されているアプリケーションを復号する（ステップＳ１５１２）。次に、アプリケーション３に含まれるアプリケーションプログラム３２２をインストールする（ステップＳ１５１３）。対象の全てのアプリケーション３のアプリケーションプログラム３２２のインストールを実行するまで繰り返し処理を実行し（ステップＳ１５１４）、インストール処理を終了する。
【０１３５】
以下では、ステップＳ１５１３における処理を詳細に記述する。
【０１３６】
まず、ステップＳ１５１３においては、「Ｓ１５０９で使用許諾同意結果が同意を示す情報に更新されたアプリケーション」に含まれるアプリケーションプログラムをインストールする。また、「Ｓ１５０９で使用許諾同意結果が同意を示す情報に更新されていないアプリケーション」に含まれるアプリケーションプログラムについてはインストールしない。
【０１３７】
加えて、ステップＳ１５１２での複数のアプリケーションの復号により得られる夫々の使用許諾同意書については、このステップＳ１５１３では、無視をする。なぜなら、使用許諾契約については、使用許諾契約書の複製を用いて、既にＳ１５０９、Ｓ１５１０で確認をしているからである。
【０１３８】
「パッケージインストール条件確認方法の説明」
次に、プラットフォーム部１３のインストール処理のうち、パッケージインストール条件確認の方法について説明する。
【０１３９】
プラットフォーム部１３は、アプリケーションパッケージ定義１１０３の情報とプラットフォーム部１３、画像処理装置１２の情報を比較する事でインストール条件を確認する。特にアプリケーション定義１１０３にて定義されている情報のうち、インストール可能プラットフォーム１２０４、および消費リソースサイズ１２０５を用いる。
【０１４０】
例えば、プラットフォームプログラムのバージョンが２であって、画像処理装置１２の間接記憶部１２３の残サイズが１００ＭＢ（メガバイト）の場合。そして、固有ＩＤが“＃＃＃＃＃００００００００００”であって、備える機能の固有ＩＤが“印刷機能のバージョン１かつ、スキャン機能はバージョン１もしくはバージョン２”を示す場合は、以下のように判断される。
【０１４１】
プラットフォーム部１３は、アプリケーションパッケージ１１００のインストール可能なプラットフォームプログラムのバージョンが１の場合、アプリケーションパッケージ１３００に含まれるアプリケーションの全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能なプラットフォームのバージョンを、プラットフォームプログラムが備えているか、で判断される。
【０１４２】
また、プラットフォーム部１３は、対象のアプリケーションパッケージ１１００の間接記憶の消費サイズが１２０ＭＢ（メガバイト）の場合、アプリケーションパッケージ１３００に含まれるアプリケーション３の全てはインストール出来ないと判断する。つまり、アプリケーションが消費するリソースを、機器が残リソースとして備えているか、で判断される。
【０１４３】
また、プラットフォーム部１３は、対象のアプリケーションパッケージ１１００の機器の固有ＩＤが“＃＃＃＃＃０００００００００１”の場合は、アプリケーションパッケージ１３００に含まれるアプリケーション３の全てはインストール出来ないと判断する。つまり、アプリケーションがインストール可能な機器の固有ＩＤを機器が保持しているか、で判断される。
【０１４４】
また、プラットフォーム部１３は、対象のアプリケーションパッケージ１１００の機能の固有ＩＤが“印刷機能のバージョン２”を示す場合に、アプリケーションパッケージ１３００に含まれるアプリケーション３の全てをインストールすることは出来ないと判断する。つまり、アプリケーションがインストール可能な機器の機能を、機器が備えているか、で判断される。
【０１４５】
また、プラットフォーム部１３はアプリケーションパッケージ１３００に含まれるアプリケーション３の全てをインストールする事が出来ないと判断した場合は、続けて以下の判断を行う。アプリケーションパッケージ１１００に含まれる各アプリケーションについて、アプリケーションパッケージ定義１１０３に含まれる個別アプリケーション定義３１１を用いて個別にインストール可能かを判断する。
【０１４６】
このように、プラットフォーム部１３はアプリケーションパッケージ定義１１０３にて定義されている情報と機器の情報を付き合わせる事によってインストール可能であるかを判断する。
【０１４７】
このように、本実施の形態によればアプリケーションパッケージのインストール処理の時に、全てのアプリケーションに対するインストール条件の確認やライセンスの確認、および使用許諾契約への同意等の作業を、インストール処理の最初にまとめて行う事が可能となる。さらに、アプリケーションパッケージ定義、パッケージライセンス情報を生成する事により、インストール条件の確認やライセンスの確認処理のパフォーマンスを向上することが出来る。これにより、インストール処理中に使用許諾契約書への同意やインストール処理の継続等の入力作業を行う必要が生じてインストール処理が煩雑になる事を防ぐ事が出来、インストール処理のパフォーマンスを向上する事ができる。
【０１４８】
また、上述した各実施の形態によれば、暗号化された複数のアプリケーションの中に夫々存在する使用許諾契約書を、それらのアプリケーションの外に出している。これにより、暗号化された複数のアプリケーションの復号化を待つことなく、使用許諾契約書の同意をユーザから取り付けることができる。即ち、かなり前半にて、使用許諾契約書の同意をユーザから取り付けることができ、インストール処理をスムーズに行うことができる。
【０１４９】
これにより、暗号化された複数のアプリケーションを含むアプリケーションパッケージのインストール処理中に何度も使用許諾契約書への同意の要求が発生することが無くなる。また、インストール処理の中盤（又は、後半）にかけて上記要求が発生することも無くなる。こうしたユーザオペレーションを要する要求が、中盤（又は、後半）に発生すると面倒なのである。なぜなら、インストール処理の開始から、中盤（又は、後半）まで、ユーザはオペレーションをするために待つ必要があるからである。
【０１５０】
（１）（２）についても、（３）（４）と同じ効果を奏する。従って、（１）（２）についての開示は省略するが、（１）（２）も本明細書を構成するものとする。
【０１５１】
なお、（１）は、上述した各フローチャートの各ステップをコンピュータに実行させるためのプログラムである。（２）は、そのプログラムを格納したコンピュータ読取り可能な記憶媒体である。（３）は、上述した各フローチャートの各ステップを実行する装置である。（４）は、上述した各フローチャートの各ステップを装置に実行させる方法である。
【０１５２】
また、本明細書では、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」の例として、使用許諾契約書やアプリケーション定義について取り上げた。しかし、これらはあくまで一例である。本明細書の各フローチャートは、これらに限られず、他の「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」にも適用可能である。
【０１５３】
なお、使用許諾契約書は、アプリケーション内のアプリケーションプログラムをインストールする前に、インターフェースを介してユーザに同意を要求するためのデータである。従って、使用許諾契約書は、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ。」であるといる。
【０１５４】
また、アプリケーション定義は、インストール条件確認の結果がインストール不可かどうかを判定することに用いられる。この判定結果でインストール不可となった場合には、インターフェースを介したユーザからの指示が要求される（Ｓ９２１、Ｓ１５２１）。従って、アプリケーション定義は、アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求すべきか否か、を決定する際に必要なデータである。よって、アプリケーション定義も、「アプリケーション内のアプリケーションプログラムをインストールをするにあたってインターフェースを介してユーザに指示を要求することに繋がるデータ」であるといえる。
【図面の簡単な説明】
【０１５５】
【図１】画像形成装置
【図２】パッケージング装置
【図３】アプリケーション
【図４】アプリケーション定義
【図５】ライセンス
【図６】アプリケーションパッケージ
【図７】パッケージライセンス
【図８】アプリケーションパッケージ生成処理フロー
【図９】インストール処理フロー
【図１０】インストール管理テーブル
【図１１】アプリケーションパッケージ
【図１２】アプリケーションパッケージ定義
【図１３】パッケージライセンス
【図１４】アプリケーションパッケージ生成処理フロー
【図１５】インストール処理フロー
【図１】
0005121542.tif 000002
【図２】
0005121542.tif 000003
【図３】
0005121542.tif 000004
【図４】
0005121542.tif 000005
【図５】
0005121542.tif 000006
【図６】
0005121542.tif 000007
【図７】
0005121542.tif 000008
【図８】
0005121542.tif 000009
【図９】
0005121542.tif 000010
【図１０】
0005121542.tif 000011
【図１１】
0005121542.tif 000012
【図１２】
0005121542.tif 000013
【図１３】
0005121542.tif 000014
【図１４】
0005121542.tif 000015
【図１５】
0005121542.tif 000016