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