(57)【要約】【課題】ダウンロード操作を開始してからダウンロードされたソフトウェアを使用可能な状態にするまでの時間を短縮するとともに、操作の手間を軽減することができるソフトウェア配信システム、ソフトウェア配信方法およびプログラムを提供する。【解決手段】ソフトウェア配信サーバと、機器と、情報処理装置と、アクティベートサーバとを備えたソフトウェア配信システムであって、機能パッケージをソフトウェア配信サーバからダウンロードするダウンロード制御部１３３と、ダウンロードされた機能パッケージをインストールするインストール制御部１３４と、ダウンロードされたソフトウェアのインストールと並列に、アクティベートサーバによるライセンスの認証に従ってインストールされた機能パッケージを使用可能に処理するアクティベート制御部１３５と、を備えた。【選択図】図７
2011170465.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを配信するソフトウェア配信サーバと、画像処理装置と、前記画像処理装置にインストールされるソフトウェアの配信を要求する情報処理装置と、前記画像処理装置にインストールされたソフトウェアのライセンスを認証するアクティベートサーバとを備えたソフトウェア配信システムであって、
前記情報処理装置は、
前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、
選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、
を備え、
前記画像処理装置は、
選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御部と、
ダウンロードされた前記ソフトウェアをインストールするインストール制御部と、
ダウンロードされた前記ソフトウェアのインストールと並列に、前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能とする処理を示すアクティベートを行うアクティベート制御部と、
を備えたことを特徴とするソフトウェア配信システム。
【請求項２】
前記選択受付部は、前記画像処理装置にインストールされるソフトウェアの複数の選択を受け付け、
前記インストール制御部は、選択が受け付けられた複数の前記ソフトウェアを順次インストールし、
前記アクティベート制御部は、選択が受け付けられた複数の前記ソフトウェアを順次に前記アクティベートを行うこと、
を特徴とする請求項１に記載のソフトウェア配信システム。
【請求項３】
前記画像処理装置は、
ダウンロードされた前記ソフトウェアのインストール、およびダウンロードされた前記ソフトウェアのアクティベートの少なくともいずれか一方の処理が失敗したか否かを判断し、前記処理が失敗したと判断した場合に、前記インストールおよび前記アクティベートの両方を無効にする無効化制御部、
をさらに備えることを特徴とする請求項２に記載のソフトウェア配信システム。
【請求項４】
前記情報処理装置は、
前記インストールおよび前記アクティベートの両方を無効にする選択を受け付ける無効化受付部、
をさらに備え、
前記無効化制御部は、前記選択が受け付けられた場合に、前記インストールおよび前記アクティベートの両方を無効にすること、
を特徴とする請求項３に記載のソフトウェア配信システム。
【請求項５】
前記選択受付部は、前記画像処理装置にインストールされるソフトウェアの複数の選択を受け付け、
前記画像処理装置は、
複数の前記ソフトウェアをインストール、または前記アクティベートを行う順序を規定する順序依存関係を記憶する記憶部と、
複数の選択が受け付けられた前記ソフトウェアをインストールする順序を決定する処理順序決定部と、
をさらに備え、
前記インストール制御部は、決定された順序に従って前記ソフトウェアをインストールし、
前記アクティベート制御部は、決定された順序に従って前記ソフトウェアのインストールと並列に、前記アクティベートを行うこと、
を特徴とする請求項１に記載のソフトウェア配信システム。
【請求項６】
前記選択受付部は、前記画像処理装置にインストールされるソフトウェアの複数の選択を受け付け、
前記画像処理装置は、
前記ソフトウェアと共に他のソフトウェアがインストールおよび前記アクティベートされることを規定する機能依存関係を記憶する記憶部、
をさらに備え、
前記インストール制御部は、選択を受け付けた前記ソフトウェアを、前記機能依存関係に規定された前記他のソフトウェアとともにインストールし、
前記アクティベート制御部は、選択を受け付けた前記ソフトウェアと、前記他のソフトウェアのインストールと並列に、前記アクティベートを行うこと、
をさらに備えたことを特徴とする請求項１に記載のソフトウェア配信システム。
【請求項７】
前記アクティベートサーバは、
ダウンロードされた前記ソフトウェアがインストールされた後に、前記ソフトウェアの使用を許諾するライセンスを発行するライセンス発行部と、
発行された前記ライセンスを前記画像処理装置に送信するライセンス送信部と、
を備え、
前記画像処理装置は、
前記アクティベートサーバから前記ライセンスを受信するライセンス受信部、
をさらに備え、
前記アクティベート制御部は、受信した前記ライセンスによりダウンロードされた前記ソフトウェアを前記アクティベートを行うこと、
を特徴とする請求項１に記載のソフトウェア配信システム。
【請求項８】
ソフトウェアを配信するソフトウェア配信サーバと、画像処理装置と、前記画像処理装置にインストールされるソフトウェアの配信を要求する情報処理装置と、前記画像処理装置にインストールされたソフトウェアのライセンスを認証するアクティベートサーバとを備えたソフトウェア配信システムで実行されるライセンス管理方法であって、
前記情報処理装置が、前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、
前記情報処理装置が、選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、
前記画像処理装置が、選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御ステップと、
前記画像処理装置が、ダウンロードされた前記ソフトウェアをインストールするインストール制御ステップと、
前記画像処理装置が、ダウンロードされた前記ソフトウェアのインストールと並列に、前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能に処理することを示すアクティベートを行う制御ステップと、
を含むことを特徴とするソフトウェア配信方法。
【請求項９】
画像処理装置と、前記画像処理装置にライセンスを貸し出すライセンス管理サーバとに接続されたコンピュータを、
前記情報処理装置が、前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、
前記情報処理装置が、選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、
前記画像処理装置が、選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御ステップと、
前記画像処理装置が、ダウンロードされた前記ソフトウェアをインストールするインストール制御ステップと、
前記画像処理装置が、ダウンロードされた前記ソフトウェアのインストールと並列に、前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能に処理することを示すアクティベートを行うアクティベート制御ステップ、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア配信システム、ソフトウェア配信方法およびプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワークにより機器に機能を追加する方法が知られている。例えば、まず、機能のパッケージファイルを提供するサーバにアクセスして、ファイルを機器にダウンロードし、ダウンロードしたファイルを機器にインストールし、インストールした機能を利用可能にするためのサーバにアクセスして、利用可能とする操作（以下、アクティベートという。）を行う方法がある。
【０００３】
しかし、従来の方法では、最終的な処理であるアクティベートは、パッケージファイルのダウンロードおよびインストール処理が終了した後に行われていたため、操作の手間と時間がかかるという問題があった。
【０００４】
そこで、プログラムを追加するユーザへのサービスを向上する目的で、ユーザ端末の動作環境においてプログラムが動作可能であるか否かを判定して、動作可能と判定されたプログラムのみダウンロードのリストに表示するシステムが開示されている（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、ダウンロード後に実行されるインストールおよびアクティベート処理に必要な時間の短縮と操作の手間を軽減することができないという問題がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、ダウンロード操作を開始してからダウンロードされたソフトウェアを使用可能な状態にするまでの時間を短縮するとともに、操作の手間を軽減することができるソフトウェア配信システム、ソフトウェア配信方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかるソフトウェア配信システムは、ソフトウェアを配信するソフトウェア配信サーバと、画像処理装置と、前記画像処理装置にインストールされるソフトウェアの配信を要求する情報処理装置と、前記画像処理装置にインストールされたソフトウェアのライセンスを認証するアクティベートサーバとを備えたソフトウェア配信システムであって、前記情報処理装置は、前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、を備え、前記画像処理装置は、選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御部と、ダウンロードされた前記ソフトウェアをインストールするインストール制御部と、ダウンロードされた前記ソフトウェアのインストールと同時に前記ファイルを前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能に処理することを示すアクティベートを行うアクティベート制御部と、を備えたことを備えたことを特徴とする。
【０００８】
また、本発明にかかるソフトウェア配信方法は、ソフトウェアを配信するソフトウェア配信サーバと、画像処理装置と、前記画像処理装置にインストールされるソフトウェアの配信を要求する情報処理装置と、前記画像処理装置にインストールされたソフトウェアのライセンスを認証するアクティベートサーバとを備えたソフトウェア配信システムで実行されるライセンス管理方法であって、前記情報処理装置が、前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、前記情報処理装置が、選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、前記画像処理装置が、選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御ステップと、前記画像処理装置が、ダウンロードされた前記ソフトウェアをインストールするインストール制御ステップと、前記画像処理装置が、ダウンロードされた前記ソフトウェアのインストールと並列に、前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能に処理することを示すアクティベートを行う制御ステップと、を含むことを特徴とする。
【０００９】
また、本発明にかかるプログラムは、画像処理装置と、前記画像処理装置にライセンスを貸し出すライセンス管理サーバとに接続されたコンピュータを、前記情報処理装置が、前記画像処理装置にインストールされるソフトウェアの選択を受け付ける選択受付部と、前記情報処理装置が、選択が受け付けられた前記ソフトウェアの配信要求を前記ソフトウェア配信サーバに送信する配信要求送信部と、前記画像処理装置が、選択が受け付けられた前記ソフトウェアを前記ソフトウェア配信サーバからダウンロードするダウンロード制御ステップと、前記画像処理装置が、ダウンロードされた前記ソフトウェアをインストールするインストール制御ステップと、前記画像処理装置が、ダウンロードされた前記ソフトウェアのインストールと並列に、前記アクティベートサーバによる前記ライセンスの認証に従ってインストールされた前記ソフトウェアを使用可能に処理することを示すアクティベートを行うアクティベート制御ステップ、として機能させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ダウンロード操作を開始してからダウンロードされたソフトウェアを使用可能な状態にするまでの時間を短縮するとともに、操作の手間を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施の形態にかかるソフトウェア配信システムの構成を示すブロック図である。
【図２】図２は、情報処理装置２００の機能的構成を示すブロック図である。
【図３】図３は、アクティベートサーバ３００の機能的構成を示すブロック図である。
【図４】図４は、ソフトウェア配信サーバ４００の機能的構成を示すブロック図である。
【図５】図５は、本実施の形態にかかる機器１００のハードウェア構成図である。
【図６】図６は、本実施の形態にかかる機器１００のソフトウェア構成図である。
【図７】図７は、アプリインストール制御サービス１３１の機能的構成を示すブロック図である。
【図８】図８は、従来の使用可能化処理の流れを示す説明図である。
【図９−１】図９−１は、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理の一例を示す説明図である。
【図９−２】図９−２は、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理の一例を示す説明図である。
【図１０】図１０は、情報処理装置２００によるリスト生成処理の手順を示すフローチャートである。
【図１１】図１１は、機能パッケージを利用するための情報の入力画面の一例を示す図である。
【図１２】図１２は、機能の選択画面の一例を示す図である。
【図１３】図１３は、順序依存関係の条件の一例を示す図である。
【図１４】図１４は、処理順序決定部２０８による処理順序決定処理の一例を示す図である。
【図１５】図１５は、機器１００による使用可能化処理が失敗した場合の取消し処理の手順を示すシーケンス図である。
【図１６】図１６は、取消し処理の選択受付画面の一例を示す図である。
【図１７】図１７は、機器１００による複数順次処理の流れを説明する説明図である。
【図１８】図１８は、機器１００による複数順次処理が失敗した場合の取消し処理の説明図である。
【図１９】図１９は、取消し処理の選択受付画面の一例を示す図である。
【図２０】図２０は、アクティベートサーバ３００によるライセンス発行処理のタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかるソフトウェア配信システム、ソフトウェア配信方法およびプログラムの最良な実施の形態を詳細に説明する。以下の実施の形態においては、本発明における機器を、コピー機能、プリンタ機能、スキャナ機能、およびファクシミリ機能のうち少なくとも２つの機能を有する複合機（ＭＦＰ：Multi  Function  Peripherals）に適用した例を示すが、これに限定されない。
【００１３】
図１は、本実施の形態にかかるソフトウェア配信システムの構成を示すブロック図である。図１に示すように、ソフトウェア配信システムは、ソフトウェア配信サーバ４００と、アクティベートサーバ３００と、情報処理装置２００と、複数の機器１００ａ、１００ｂ、１００ｃ（以下、特定しない機器を単に機器１００と称する。）が、インターネットなどのネットワーク８０を介して接続されている。そして、ネットワーク８０と複数の機器１００との間には、ファイアウォール９０が設けられている。
【００１４】
ファイアウォール９０は、公衆回線やインターネットなどの外部ネットワークを通じて遠隔管理システムに侵入した第三者により不正が行われないように、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する。
【００１５】
機器１００は、コピー、ファックス、プリンタなどの複数の機能を備えた装置であって、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのローカルネットワークにより相互に接続されている。本実施の形態の遠隔管理システムでは、３台の機器１００ａ、１００ｂ、１００ｃが接続されているが、これに限定されることなく、１台、２台、または４台以上のＭＦＰを接続した構成としてもよい。
【００１６】
ソフトウェア配信サーバ４００は、機器１００において利用されるアプリケーションを保持しており、該アプリケーションを、機器１００に提供する装置である。
【００１７】
アクティベートサーバ３００は、ソフトウェア配信サーバ４００から提供され、機器１００にインストールされるアプリケーションのライセンス（利用権）を管理する装置である。
【００１８】
本実施例のソフトウェア配信システムは、遠隔管理を実現するため、各装置に、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）により、相互実装するアプリケーションのメソッドに対する処理の要求、応答を送受信する機能を有しており、また、ＲＰＣを実現するために、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等のプロトコルを利用することができる。
【００１９】
次に、情報処理装置２００の機能的構成について説明する。図２は、情報処理装置２００の機能的構成を示すブロック図である。図２に示すように、情報処理装置２００は、入力制御部２０１と、表示制御部２０２と、第１送受信部２０３と、機能依存関係判定部２０４と、追加機能決定部２０５と、リスト生成部２０６と、順序依存関係判定部２０７と、処理順序決定部２０８と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２１０とを主に備え、入力装置２２０と、表示装置２３０に接続されている。
【００２０】
表示制御部２０２は、表示装置２３０に各種表示事項を表示する。例えば、表示制御部２０２は、機器１００にインストール可能なソフトウェアの機能パッケージ（以下、機能パッケージという。）を選択可能な形式で表示したり、機器１００にインストールされたソフトウェアの動作を設定する画面を表示したりする。
【００２１】
入力制御部２０１は、入力装置２２０からユーザにより入力された入力事項を受け付ける。例えば、入力制御部２０１は、機能パッケージを利用するための情報入力を受け付ける。具体的には、表示制御部２０２により表示されたインストール可能な機能パッケージの中から、機器１００にインストールする機能パッケージや、ライセンスの種類等の選択を受け付ける。また、入力制御部２０１は、無効化処理の選択を受け付ける。ここで、無効化処理とは、複数の機能パッケージの選択を受け付けた場合に、一部の機能パッケージのインストールまたはアクティベートが失敗した場合に、全てのインストールまたはアクティベートを無効にする処理のことである。なお、入力制御部２０１は、本発明の選択受付部、無効化受付部に相当する。
【００２２】
ＨＤＤ２１０は、機能依存関係、順序依存関係等を記憶する。ここで、機能依存関係とは、複数の機能が選択された場合に、ある機能が正常に動作するために他の機能がインストールされていることを必要とする機能の依存関係のことである。また、順序依存関係とは、複数の機能が選択された場合に、ある機能が正常にインストール、またはアクティベートされるために、他の機能との関係でインストール、またはアクティベートの処理順序が規定された依存関係のことである。ＨＤＤ２１０は、機能依存関係や、順序依存関係を、これらの依存関係が規定されている機能ごとに、依存する他の機能に対応付けた条件として記憶する。なお、情報処理装置２００は、機能依存関係、および順序依存関係をソフトウェア配信サーバ４００から取得する。
【００２３】
リスト生成部２０６は、入力制御部２０１により受け付けられた機器１００にインストールされる機能パッケージに含まれる各機能のリストを生成する。また、リスト生成部２０６は、追加機能決定部２０５により追加する機能が決定された場合に、当該機能をリストに追加登録する。また、リスト生成部２０６は、処理順序決定部２０８により処理順序が決定された場合に、リストの機能の処理順序を決定された処理順序に入れ替える。
【００２４】
機能依存関係判定部２０４は、リストに登録されている機能について、ＨＤＤ２１０を参照して、機能依存関係が規定されている機能が存在するか否かを判定する。
【００２５】
追加機能決定部２０５は、機能依存関係判定部２０４により、リストの中に機能依存関係が規定されている機能が存在すると判定された場合は、ＨＤＤ２１０を参照して、追加する機能を決定する。
【００２６】
順序依存関係判定部２０７は、リストに登録されている機能について、ＨＤＤ２１０を参照し、順序依存関係が規定されている機能が存在するか否かを判定する。
【００２７】
処理順序決定部２０８は、リストの中に順序依存関係が規定されている機能が存在すると判定された場合に、ＨＤＤ２１０を参照し、リストに登録されている機能の処理順序を決定する。
【００２８】
第１送受信部２０３は、入力制御部２０１により受け付けられた入力事項を各サーバや、機器１００に送信する。例えば、第１送受信部２０３は、ソフトウェア配信サーバ４００に機能パッケージの配信要求を送信したり、機器１００にリストを送信したりする。ここで、配信要求とは、機器１００にインストールする機能パッケージを配信する要求のことであり、配信要求には、機器１００の機器ＩＤや、機器１００にインストールされる機能パッケージの機能が登録されたリスト等が含まれる。
【００２９】
次に、アクティベートサーバ３００の機能的構成について説明する。図３は、アクティベートサーバ３００の機能的構成を示すブロック図である。図３に示すように、アクティベートサーバ３００は、第２送受信部３０１と、アクティベート部３０２と、ライセンスファイル発行部３０３と、ＨＤＤ３１０とを主に備える。
【００３０】
ＨＤＤ３１０は、ライセンス情報を記憶する。ライセンス情報とは、機器１００への機能パッケージの使用許諾に関する情報であり、例えば、ライセンスに対応付けられたプロダクトキー、ライセンスの有効期限等である。
【００３１】
アクティベート部３０２は、機器１００から、アクティベーション要求を受信すると、ＨＤＤ３１０に記憶しているライセンス情報を照合し、アクティベーション要求にかかる機能パッケージをアクティベートする。ここで、アクティベーション要求とは、機能パッケージのライセンスを認証する要求のことである。
【００３２】
ライセンスファイル発行部３０３は、情報処理装置２００を介して機器１００からプロダクトキーを受信し、ＨＤＤ３１０を参照して、プロダクトキーの妥当性をチェックし、妥当であった場合にライセンスファイルを発行する。具体的には、受信したプロダクトキーを、ＨＤＤ３１０に登録されている発行済みのプロダクトキーと照合し、一致した場合に妥当であるとする。
【００３３】
第２送受信部３０１は、情報処理装置２００や、機器１００と各種情報を送受信する。例えば、第２送受信部３０１は、情報処理装置２００からアクティベート開始の指示を受信したり、機器１００からプロダクトキーを受信したりする。また、第２送受信部３０１は、ライセンスファイル発行部３０３により発行されたライセンスファイルを機器１００に送信する。
【００３４】
次に、ソフトウェア配信サーバ４００の機能的構成について説明する。図４は、ソフトウェア配信サーバ４００の機能的構成を示すブロック図である。図４に示すように、ソフトウェア配信サーバ４００は、第３送受信部４０１と、ソフトウェア配信部４０２と、ＨＤＤ４１０とを主に備える。
【００３５】
ＨＤＤ４１０は、機能パッケージ、機能依存関係、順序依存関係等を保存する。第３送受信部４０１は、情報処理装置２００から配信要求を受信する。
【００３６】
ソフトウェア配信部４０２は、情報処理装置２００から配信要求を受信した場合に、配信要求に含まれるリストに登録されている機能パッケージをＨＤＤ４１０から取得する。ソフトウェア配信部４０２は、取得した機能パッケージを第３送受信部４０１を介して、配信要求に含まれる機器１００の機器ＩＤに対応する機器１００に送信する。
【００３７】
第３送受信部４０１は、情報処理装置２００や、機器１００と各種情報を送受信する。例えば、第３送受信部４０１は、情報処理装置２００から配信要求を受信したり、ソフトウェア配信部４０２により取得された機能パッケージを機器１００に送信したりする。
【００３８】
次に、機器１００について説明する。図５は、本実施の形態にかかる機器１００のハードウェア構成図である。図５に示すように、機器１００は、コントローラ１０とエンジン部（Engine）６０とをＰＣＩ（Peripheral  Component  Interface）バスで接続した構成となる。コントローラ１０は、機器１００全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００３９】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Application  Specific  Integrated  Circuit）１６と、ハードディスクドライブ（ＨＤＤ）１０３とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Accelerated  Graphics  Port）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ１２ａと、ＲＡＭ１２ｂと、をさらに有する。
【００４０】
ＣＰＵ１１は、機器１００の全体制御を行うものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００４１】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【００４２】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００４３】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００４４】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated  Circuit）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１０３およびＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Direct  Memory  Access  controller）と、エンジン部６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Facsimile  Control  Unit）３０、ＵＳＢ（Universal  Serial  Bus）４０、ＩＥＥＥ１３９４（the  Institute  of  Electrical  and  Electronics  engineers  １３９４）インターフェース５０が接続される。操作表示部１９０はＡＳＩＣ１６に直接接続されている。
【００４５】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ２１３は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００４６】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００４７】
図６は、本実施の形態にかかる機器１００のソフトウェア構成図である。図６に示すように、機器１００は、白黒レーザプリンタ（B&W  LP）１０１と、カラーレーザプリンタ（Color  LP）１０２と、ＨＤＤ１０３と、スキャナ、ファクシミリ、メモリなどのハードウェアリソース１０４、ネットワークインターフェース（Ｉ／Ｆ）１０５を有するとともに、プラットホーム１２０と、アプリケーション１３０とから構成されるソフトウェア群１１０とを備えている。
【００４８】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有する。
【００４９】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８と、ＮＲＳ（ニューリモートサービス）１２９と、アプリインストール制御サービス１３１と、から構成される。このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００５０】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００５１】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００５２】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００５３】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００５４】
ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（B&W  LP）１０１、カラーレーザプリンタ（Color  LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０４のエンジンの制御を行う。
【００５５】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００５６】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００５７】
ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信したりする際の仲介を行う。
【００５８】
本実施の形態では、ＮＣＳ１２８のプロセスは、アプリケーションおよびライセンス情報とともに、インストール要求やアンインストール要求を受信する。また、ＮＣＳ１２８のプロセスは、インストール要求に基づくプリケーションのインストールが成功した場合は、情報処理装置２００にインストール完了情報を通知する。一方、インストール要求に基づくアプリケーションのインストールが失敗した場合は、情報処理装置２００にインストール未完了情報を通知する。また、ＮＣＳ１２８のプロセスは、アンインストール要求に基づくアプリケーションのアンインストールが成功した場合は、情報処理装置２００にアンインストール完了情報を通知する。一方、アンインストール要求に基づくアプリケーションのアンインストールが失敗した場合は、情報処理装置２００にアンインストール未完了情報を通知する。
【００５９】
ＯＣＳ１２６のプロセスは、オペレータ（利用者）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ１２６は、オペレーションパネルからキー押下（またはタッチ操作）をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【００６０】
アプリインストール制御サービス１３１は、ＮＣＳ１２８のプロセスにより受信したインストール要求に基づいて、受信したアプリケーションおよびライセンス情報により、アプリケーションのインストール処理を行う。また、アプリインストール制御サービス１３１は、ＮＣＳ１２８のプロセスにより受信したアンインストール要求に基づいて、受信したライセンス情報により、アプリケーションのアンインストール処理を行う。
【００６１】
ＮＲＳ１２９のプロセスは、ネットワークを介してデータを送受信する際のデータの変換を行う等のネットワークを介した機器遠隔管理に関する機能及びスケジューラ機能を有している。
【００６２】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６と、インターネットに接続されたＰＣ等のクライアント端末に対してＷＥＢサーバ（ｈｔｔｐサーバ）として動作し、クライアント端末上で動作するＷＥＢブラウザに各種画面を表示するＷＥＢアプリ１１７とを有している。
【００６３】
アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００６４】
このように、本実施の形態にかかる機器１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
【００６５】
また、機器１００には、機器１００の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリ１７２を開発して搭載することが可能となっている。この外部アプリ１７２は、情報処理装置２００から受信したアプリケーションであり、アプリインストール制御サービス１３１によりインストールされる。
【００６６】
なお、本実施の形態にかかる機器１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。すなわち、上述したように、外部アプリ１７２をインストール可能であり、かつアンインストールも可能となっている。
【００６７】
次に、アプリインストール制御サービス１３１の詳細について説明する。図７は、アプリインストール制御サービス１３１の機能的構成を示すブロック図である。図７に示すように、アプリインストール制御サービス１３１は、第４送受信部１３２と、ダウンロード制御部１３３と、インストール制御部１３４と、アクティベート制御部１３５と、ライセンスファイル取得部１３６と、無効化制御部１３７とを主に備える。
【００６８】
第４送受信部１３２は、情報処理装置２００、アクティベートサーバ３００、ソフトウェア配信サーバ４００と各種情報を送受信する。例えば、第４送受信部１３２は、情報処理装置２００からリストを受信したり、ソフトウェア配信サーバ４００から機能パッケージを受信したりする。また、第４送受信部１３２は、情報処理装置２００にダウンロード完了通知、インストール完了通知、アクティベート完了通知等を送信したりする。
【００６９】
ダウンロード制御部１３３は、ソフトウェア配信サーバ４００から配信される機能パッケージをダウンロードする。また、ダウンロード制御部１３３は、ダウンロードが完了した場合はダウンロード完了通知を、ダウンロードが失敗した場合はダウンロード失敗通知を、情報処理装置２００と、ソフトウェア配信サーバ４００にそれぞれ送信する。
【００７０】
インストール制御部１３４は、ダウンロード制御部１３３によりダウンロードした機能パッケージをインストールする。また、インストール制御部１３４は、インストールを完了した場合はインストール完了通知を、インストールが失敗した場合はインストール失敗通知を、情報処理装置２００に送信する。
【００７１】
アクティベート制御部１３５は、ダウンロード制御部１３３によりダウンロードした機能パッケージを、インストール制御部１３４によるインストールと並列にアクティベートする。ここで、アクティベートとは、アクティベートサーバ３００による機能パッケージのライセンス認証に従って、ダウンロードした機能パッケージを使用可能な状態に処理することである。また、アクティベート制御部１３５は、アクティベートが完了した場合はアクティベート完了通知を、アクティベートが失敗した場合はアクティベート失敗通知を、情報処理装置２００と、アクティベートサーバ３００にそれぞれ送信する。
【００７２】
ライセンスファイル取得部１３６は、アクティベート完了後に、アクティベートサーバ３００から、アクティベートした機能パッケージのライセンスファイルを取得する。
【００７３】
無効化制御部１３７は、インストール制御部１３４によるインストール、またはアクティベート制御部１３５によるアクティベートのいずれか一方が失敗した場合に、実行したインストールおよびアクティベートを取り消す。また、無効化制御部１３７は、複数の機能パッケージが順次インストールおよびアクティベートされる場合に、処理の途中で失敗が発生した場合、これまでに成功した機能についても全て無効化する。
【００７４】
次に、以上のように構成されたソフトウェア配信システムによる機能パッケージの使用可能化処理について説明する。ここで、使用可能化処理とは、機器１００が機能パッケージをダウンロードし、ダウンロードした機能パッケージのインストールおよびアクティベートの処理を経て使用可能とする一連の処理のことである。
【００７５】
まず、使用可能化処理について、従来例を説明する。図８は、従来の使用可能化処理の流れを示す説明図である。図８に示すように、従来の使用可能化処理では、機器は、ユーザによるダウンロード開始の操作１の受け付けにより機能パッケージをダウンロードし、ダウンロードした機能パッケージをインストールする。機器は、機能パッケージのインストール完了後、ユーザによるアクティベート開始の操作２の受け付けによりインストールした機能パッケージをアクティベートする。機器がアクティベートを完了し機能パッケージの使用が可能となるのは、操作１の開始からα１の時間経過後である。
【００７６】
次に、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理について説明する。図９−１は、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理の一例を示す説明図である。図９−１に示すように、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理では、機器１００は、ユーザによる使用可能化の操作の受け付けにより、機能パッケージをダウンロードし、続けて、インストールおよびアクティベートの処理を続行する。機器１００がアクティベートを完了し機能パッケージの使用が可能となるのは、操作の開始からα２の時間経過後である。ここでは、アクティベートが完了する時間の方が、インストールが完了する時間よりも遅いので、機能パッケージの使用が可能となる時間α２はアクティベートが完了する時間となる。
【００７７】
次に、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理の他の例について説明する。図９−２は、本実施の形態にかかるソフトウェア配信システムによる使用可能化処理の一例を示す説明図である。図９−２に示すように、機器１００は、図９−１で説明したと同様に、ユーザによる使用可能化の操作の受け付けにより、機能パッケージをダウンロードし、続けて、インストールおよびアクティベートの処理を続行する。機器１００がアクティベートを完了し機能パッケージの使用が可能となるのは、操作の開始からα３の時間経過後である。図９−２では、インストールが完了する時間の方が、アクティベートが完了する時間よりも遅いので、機能パッケージの使用が可能となる時間α３は、インストールが完了する時間となる。
【００７８】
図９−１および図９−２に示したように、機器１００のアクティベート開始は、インストール開始と同時であるので、操作開始から機能パッケージの使用が可能となるまでの時間は、図８に示した従来例と比較して短い。つまり、α２＜α１、α３＜α１となる。
【００７９】
次に、情報処理装置２００によるリスト生成処理の手順について説明する。図１０は、情報処理装置２００によるリスト生成処理の手順を示すフローチャートである。
【００８０】
入力制御部２０１は、機器１００にインストールする機能パッケージを利用するための情報入力を受け付けた後、機能パッケージの使用可能化の実行開始の入力を受け付ける（ステップＳ１）。図１１は、機能パッケージを利用するための情報入力画面の一例を示す図である。表示制御部２０２は、図１１に示すように、機能パッケージの種類と、対象となるＭＦＰの機器ＩＤと、ライセンスの種類と、実行開始を入力可能な入力画面を表示装置２３０に表示する。
【００８１】
また、表示制御部２０２は、図１１の入力画面で選択された機能パッケージに含まれる全ての機能を選択可能な形式で表示する。図１２は、機能の選択画面の一例を示す図である。図１２に示すように、表示制御部２０２は、機能Ａから機能Ｄまでを処理順序に従って上から順に表示する。表示制御部２０２は、ユーザによりクリックされた機能を黒く表示する。図１２では、機能Ａと機能Ｄがクリックされたことを示す。リスト生成部２０６は、ここで選択された機能をリストに登録する。
【００８２】
機能依存関係判定部２０４は、リスト生成部２０６によりリストに、機能依存関係が規定された機能パッケージがあるか否かについてＨＤＤ２１０を参照し判定する（ステップＳ２）。追加機能決定部２０５は、機能依存関係判定部２０４により、リストに機能依存関係が規定された機能があると判定された場合に（ステップＳ２：Ｙｅｓ）、依存する機能パッケージがリストにあるか否かを確認する（ステップＳ３）。
【００８３】
追加機能決定部２０５は、依存する機能パッケージがリストにあることを確認しなかった場合は（ステップＳ３：Ｎｏ）、ＨＤＤ２１０を参照し、依存する機能パッケージをリストに追加する（ステップＳ４）。一方、ステップＳ２において、機能依存関係判定部２０４により、リストに機能依存関係が規定された機能パッケージがないと判定された場合(ステップＳ２：Ｎｏ)、および、ステップＳ３において、追加機能決定部２０５により、依存する機能パッケージがリストにあることが確認された場合は（ステップＳ３：Ｙｅｓ）、ステップＳ５の処理へ進む。
【００８４】
次に、順序依存関係判定部２０７は、リストに機能が複数存在するか否かを確認する（ステップＳ５）。順序依存関係判定部２０７は、リストに機能が複数存在することを確認した場合は（ステップＳ５：Ｙｅｓ）、ＨＤＤ２１０を参照し（ステップＳ６）、順序依存関係が規定されている機能がリストにあるか否かを判定する（ステップＳ７）。
【００８５】
順序依存関係判定部２０７により、順序依存関係が規定されている機能がリストにあると判定された場合は（ステップＳ７：Ｙｅｓ）、処理順序決定部２０８は、順序依存関係に従ってリストに並べられている機能の順序を入れ替える（ステップＳ８）。
【００８６】
ここで、順序依存関係の一例を説明する。図１３は、順序依存関係の条件の一例を示す図である。図１３に示すように、ＨＤＤ２１０は、順序依存関係として「機能Ｄは、機能Ｂよりも先行する」という条件１と「機能Ｂは、機能Ａよりも先行する」という条件２とを記憶する。
【００８７】
また、図１４は、処理順序決定部２０８による処理順序決定処理の一例を示す図である。図１４に示すように、処理順序決定部２０８は、ユーザにより選択された順序が機能Ａ、機能Ｂ、機能Ｃ、機能Ｄの処理順序であった場合、まず、条件１を適用する。次に、処理順序決定部２０８は、条件１が適用された処理順序である機能Ａ、機能Ｄ、機能Ｂ、機能Ｃの処理順序に条件２を適用し、機能Ｄ、機能Ｂ、機能Ａ、機能Ｃの処理順序に入れ替える。
【００８８】
処理順序決定部２０８は、順序依存関係に従って入れ替えた順序をＨＤＤ２１０に保存する（ステップＳ９）。順序依存関係判定部２０７は、リストの機能すべてについて判定が完了したか否かを確認する（ステップＳ１０）。
【００８９】
順序依存関係判定部２０７は、リストの機能すべてについて判定が完了したことを確認した場合は（ステップＳ１０：Ｙｅｓ）、順序依存関係判定処理を終了する。一方、すべてについて判定が完了したことを確認しなかった場合は（ステップＳ１０：Ｎｏ）、ステップＳ２に戻り、すべての機能についての判定が完了するまでステップＳ２からステップＳ９までの処理を繰り返す。
【００９０】
次に、機器１００による使用可能化処理が失敗した場合の取消し処理の手順について説明する。ここで、取消し処理とは、インストールまたはアクティベートのいずれか少なくとも一方の処理が失敗した場合に、機器１００がインストールとアクティベートの両方の処理を取り消す処理のことである。図１５は、機器１００による使用可能化処理が失敗した場合の取消し処理の手順を示すシーケンス図である。なお、情報処理装置２００は、入力画面の受け付けの時点で、あらかじめ使用可能化処理が失敗した場合の取消し処理の選択を受け付けていることが前提となる。
【００９１】
例えば、情報処理装置２００は、使用可能化処理が失敗した場合の取消し処理の選択を受け付ける。図１６は、取消し処理の選択受付画面の一例を示す図である。図１６に示すように、情報処理装置２００は、「インストールとアクティベートのいずれか失敗したら両方とも取消す処理を行う？」のコメントに「する」と「しない」のプルダウンを表示する。情報処理装置２００は、ユーザによる「する」のクリックにより、取消し処理の選択を受け付ける。
【００９２】
情報処理装置２００は、ソフトウェア配信サーバ４００にダウンロード開始指示を送信する（ステップＳ１０）。機器１００は、ソフトウェア配信サーバ４００から機能パッケージをダウンロードする（ステップＳ１１）。機器１００はソフトウェア配信サーバ４００から機能パッケージのダウンロードを完了すると、情報処理装置２００およびソフトウェア配信サーバ４００にダウンロード完了通知を送信する（ステップＳ１２）。
【００９３】
情報処理装置２００は、機器１００からダウンロード完了通知を受信すると（ステップＳ１３）、アクティベートサーバ３００にアクティベート開始指示を送信する（ステップＳ１４）。アクティベートサーバ３００は、情報処理装置２００からアクティベート開始指示を受信すると、機器１００にダウンロードされた機能パッケージをアクティベートする（ステップＳ１５）。機器１００は、ソフトウェア配信サーバ４００から機能パッケージをダウンロードし、アクティベートサーバ３００によりアクティベートが開始されると、インストールおよびアクティベートを同時に実行する（ステップＳ１６）。
【００９４】
機器１００は、インストールを完了すると情報処理装置２００にインストール完了通知を送信する（ステップＳ１７）。ここで、機器１００は、インストールと同時に開始したアクティベート処理が失敗した場合、情報処理装置２００とアクティベートサーバ３００にアクティベート失敗通知を送信する（ステップＳ１８）。
【００９５】
機器１００は、インストールとアクティベート両方の取消し処理を行う（ステップＳ１９）。なお、ここでは、機器１００はアクティベートが失敗したケースを原因として、インストールとアクティベートの取消し処理が行っているが、アクティベートに先行してインストールが失敗したケースであっても同様に、両方の取消し処理を行う。この取消し通知の送信により、アクティベートサーバ３００側では、アクティベート処理を取り消し、使用可能となっていない機能に対して課金の発生を防ぐことができる。機器１００は、アクティベートサーバ３００にアクティベート取消し通知を送信する（ステップＳ２０）。
【００９６】
次に、機器１００による複数の機能パッケージの使用可能化を順次行う処理（以下、複数順次処理という。）について説明する。図１７は、機器１００による複数順次処理の流れを説明する説明図である。
【００９７】
図１７に示すように、機器１００は、パッケージ１とパッケージ２とパッケージ３の３つの機能パッケージを複数順次処理する。あらかじめ、情報処理装置２００は、使用可能化処理の対象として、パッケージ１とパッケージ２とパッケージ３の機能パッケージの入力を受け付け、これらの機能パッケージの使用可能化処理の実行開始を受け付ける。機器１００は、まず、パッケージ１をソフトウェア配信サーバ４００からダウンロードし、インストールおよびアクティベートする。次に、機器１００は、順次、パッケージ２をソフトウェア配信サーバ４００からダウンロードし、インストールおよびアクティベートする。さらに、機器１００は、順次、パッケージ３をソフトウェア配信サーバ４００からダウンロードし、インストールおよびアクティベートする。
【００９８】
次に、機器１００による複数順次処理が失敗した場合の取消し処理の手順について説明する。図１８は、図１７における機器１００による複数順次処理が失敗した場合の取消し処理の説明図である。なお、情報処理装置２００は、入力画面の入力受付時に、あらかじめ複数の機能パッケージの使用可能化処理が一部でも失敗した場合に、取消し処理を行う旨の選択を受け付けていることが前提となる。
【００９９】
例えば、情報処理装置２００は、使用可能化処理が失敗した場合の取消し処理の選択を受け付ける。図１９は、取消し処理の選択受付画面の一例を示す図である。図１９に示すように、情報処理装置２００は、「複数順次処理において、失敗が発生したら既に成功している処理も無効化？」のコメントに「する」と「しない」のプルダウンを表示する。情報処理装置２００は、ユーザによる「する」のクリックにより、複数順次処理の取消し処理の選択を受け付ける。
【０１００】
図１８に戻り、機器１００は、図１７において説明したように、パッケージ１からパッケージ３を複数順次処理する。まず、機器１００は、パッケージ１をソフトウェア配信サーバ４００からダウンロードし、インストールおよびアクティベートする。次に、機器１００は、パッケージ２をソフトウェア配信サーバ４００からダウンロードし、インストールおよびアクティベートする。さらに、機器１００は、パッケージ３をソフトウェア配信サーバ４００からダウンロードした後、インストールおよびアクティベートを開始するが、失敗が発生した場合に、それまでに完了したパッケージ１とパッケージ２を無効化する処理を行う。
【０１０１】
なお、複数順次処理が行われる場合は、選択された複数の機能パッケージは全て動作しなければ一部についても使用できない可能性が生じるため、複数順次処理において一部でも失敗が発生したら成功した処理についても全て無効化することとしたものである。
【０１０２】
次に、アクティベートサーバ３００によるライセンス発行処理について説明する。図２０は、アクティベートサーバ３００によるライセンス発行処理のタイミングチャートである。図２０に示すように、情報処理装置２００は実行開始の操作入力を受け付け。これにより、機器１００によるソフトウェア配信サーバ４００から機能パッケージのダウンロードが開始する。アクティベートサーバ３００は、機器１００による機能パッケージのインストールと同時にアクティベートを行う。アクティベートサーバ３００は、アクティベート、および機器１００によるインストール完了後に、ライセンスファイルを発行する。機器１００は、ライセンスファイルをアクティベートサーバ３００から受信した時点で機能パッケージの使用が可能となる。
【０１０３】
通常、アクティベートサーバ３００は、アクティベート後にライセンスファイルを発行する。また、通常、課金はライセンスファイルの発行時に発生することとなっている。そのため、このように、アクティベートサーバ３００によるライセンスファイルを、インストール成功後に発行することにより、インストールが失敗した場合に誤って課金が発生するという事態を防止することができる。
【０１０４】
このように、本実施の形態によれば、機器１００はダウンロード後に、インストールとアクティベートを同時に開始するので、ダウンロード操作を開始してからダウンロードされたソフトウェアを使用可能な状態にするまでの時間を短縮するとともに、操作の手間を軽減することができる。
【０１０５】
また、このように、本実施の形態によれば、機器１００は複数の機能パッケージの使用可能化処理を順次行うことで、処理時間を短縮するとともに、ユーザによる操作の手間を省くことができる。
【０１０６】
また、このように、本実施の形態によれば、単独では使用不可能な機能パッケージのインストールおよびアクティベートによる課金発生を防止することができる。また、使用不可能な機能パッケージのインストールによるメモリ使用量の浪費を防止することができる。
【０１０７】
本実施形態の機器１００で実行されるソフトウェア配信プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０８】
また、本実施形態の機器１００で実行されるソフトウェア配信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の機器１００で実行されるソフトウェア配信プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１０９】
また、本実施形態のソフトウェア配信プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１０】
本実施の形態の機器１００で実行されるソフトウェア配信プログラムは、上述した各部（機能依存関係判定部、リスト生成部、順序依存関係判定部、処理順序決定部、ダウンロード制御部、インストール制御部、アクティベート制御部、ライセンスファイル取得部、無効化部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からライセンス管理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、機能依存関係判定部、リスト生成部、順序依存関係判定部、処理順序決定部、ダウンロード制御部、インストール制御部、アクティベート制御部、ライセンスファイル取得部、無効化部が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１１１】
１００  機器
１３１  アプリインストール制御サービス
１３２  第４送受信部
１３３  ダウンロード制御部
１３４  インストール制御部
１３５  アクティベート制御部
１３６  ライセンスファイル取得部
１３７  無効化制御部
２００  情報処理装置
２０１  入力制御部
２０２  表示制御部
２０３  第１送受信部
２０４  機能依存関係判定部
２０５  追加機能決定部
２０６  リスト生成部
２０７  順序依存関係判定部
２０８  処理順序決定部
２１０、３１０、４１０  ＨＤＤ
３００  アクティベートサーバ
３０１  第２送受信部
３０２  アクティベート部
３０３  ライセンスファイル発行部
４００  ソフトウェア配信サーバ
４０１  第３送受信部
４０２  ソフトウェア配信部
【先行技術文献】
【特許文献】
【０１１２】
【特許文献１】特開２００２−０１４７８４号公報
【図１】
2011170465.tif 000003
【図２】
2011170465.tif 000004
【図３】
2011170465.tif 000005
【図４】
2011170465.tif 000006
【図５】
2011170465.tif 000007
【図６】
2011170465.tif 000008
【図７】
2011170465.tif 000009
【図８】
2011170465.tif 000010
【図９−１】
2011170465.tif 000011
【図９−２】
2011170465.tif 000012
【図１０】
2011170465.tif 000013
【図１１】
2011170465.tif 000014
【図１２】
2011170465.tif 000015
【図１３】
2011170465.tif 000016
【図１４】
2011170465.tif 000017
【図１５】
2011170465.tif 000018
【図１６】
2011170465.tif 000019
【図１７】
2011170465.tif 000020
【図１８】
2011170465.tif 000021
【図１９】
2011170465.tif 000022
【図２０】
2011170465.tif 000023