(57)【特許請求の範囲】
【請求項１】
ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続された情報処理装置であって、
前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶する記憶部と、
前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信部と、
前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、
前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
機器と、情報処理装置と、前記機器にソフトウェアを配信するソフトウェア配信サーバと、前記情報処理装置と前記ソフトウェア配信サーバとにネットワークで接続され、前記ソフトウェアのインストールを管理するソフトウェア管理装置とを備えたソフトウェア配信システムであって、
前記機器は、前記機器にインストール済みのソフトウェアを識別する第１識別情報を前記情報処理装置に送信し、
前記情報処理装置は、
前記機器において前記インストール済みのソフトウェアが変更された場合に、変更後の前記第１識別情報を前記機器から受信する第４受信部と、
を備え、
前記ソフトウェア管理装置は、
インストールの対象となる対象ソフトウェアのインストールが要求された場合に、前記第１識別情報を、前記情報処理装置から受信する第１受信部と、
前記対象ソフトウェアをインストールする前にインストールが必要な依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報とを前記ソフトウェア配信サーバから受信する第２受信部と、
前記第１識別情報と前記第２識別情報とを比較して、前記機器にインストールされていない前記依存ソフトウェアを抽出するソフトウェア情報抽出部と、
抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を前記情報処理装置に送信する第１送信部と、
を備え、
前記情報処理装置は、さらに、
前記ソフトウェア管理装置から、前記第１識別情報の取得要求があった場合に、前記第１識別情報を前記ソフトウェア管理装置に送信する第２送信部と、
前記ソフトウェア管理装置から、抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を受信する要求受信部と、
前記ソフトウェア管理装置から、抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を受信した場合に、前記ソフトウェア配信サーバに前記要求に含まれる抽出された前記依存ソフトウェアと前記対象ソフトウェアとの取得要求を送信し、抽出された前記依存ソフトウェアと前記対象ソフトウェアとを受信する第３受信部と、
取得された抽出された前記依存ソフトウェアと前記対象ソフトウェアとともに当該ソフトウェアをインストールする指示を前記機器に送信するインストール要求部と、
を備え、
前記ソフトウェア配信サーバは、
ソフトウェアの識別情報および前記ソフトウェアを記憶するソフトウェア記憶部と、
前記ソフトウェア管理装置からの要求に応じて、前記第２識別情報と前記第３識別情報とを前記ソフトウェア記憶部から取得して、取得した前記第２識別情報と前記第３識別情報とを前記ソフトウェア管理装置に送信するソフトウェア情報送信部と、
前記情報処理装置からの前記取得要求に応じて、抽出された前記依存ソフトウェアと前記対象ソフトウェアとを前記ソフトウェア記憶部から取得して、取得した抽出された前記依存ソフトウェアと前記対象ソフトウェアとを前記情報処理装置に送信するソフトウェア送信部と、
を備えたことを特徴とするソフトウェア配信システム。
【請求項３】
機器と、情報処理装置と、前記機器にソフトウェアを配信するソフトウェア配信サーバと、前記情報処理装置と前記ソフトウェア配信サーバとにネットワークで接続され、前記ソフトウェアのインストールを管理するソフトウェア管理装置とを備えたソフトウェア配信システムであって、
前記ソフトウェア管理装置は、
前記機器にインストール済みのソフトウェアを識別する第１識別情報を記憶する第１記憶部と、
インストールの対象となる対象ソフトウェアのインストールが要求された場合に、前記対象ソフトウェアをインストールする前にインストールが必要な依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報とを前記ソフトウェア配信サーバから受信する第２受信部と、
前記第１識別情報と前記第２識別情報とを比較して、前記機器にインストールされていない前記依存ソフトウェアを抽出するソフトウェア情報抽出部と、
前記第２識別情報と、前記第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記情報処理装置に送信する第１送信部と、
を備え、
前記機器は、前記第１識別情報を前記情報処理装置に送信し、
前記情報処理装置は、
前記ソフトウェア管理装置から前記要求を受信する要求受信部と、
前記第１識別情報と、前記インストール済みのソフトウェア、および前記機器へのインストール履歴を記憶する第２記憶部と、
前記ソフトウェア管理装置から前記要求を受信した場合に、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、
前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部と、
取得された前記第３識別情報および前記第４識別情報により識別されるソフトウェアとともに当該ソフトウェアをインストールする指示を前記機器に送信するインストール要求部と、
を備えたことを特徴とするソフトウェア配信システム。
【請求項４】
ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続された情報処理装置で実行されるインストール方法であって、
前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶部に保存する保存ステップと、
前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信ステップと、
前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求ステップと、
前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信ステップと、
を含むことを特徴とするインストール方法。
【請求項５】
ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続されたコンピュータで実行されるコンピュータ読み取り可能なプログラムであって、
前記コンピュータを、
前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶部に保存する保存部と、
前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信部と、
前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、
前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ソフトウェア配信システム、インストール方法およびプログラムに関する。
【背景技術】
【０００２】
近年の画像処理装置では、出荷後において、利用者もしくは第三者であるサードベンダがアプリケーションのソフトウェアとして新規な外部アプリケーションを開発して画像処理装置にインストール可能となっている。このようなアプリケーション等のプログラムを、機器の出荷後にインストールする技術としては種々の技術が提供されている（例えば、特許文献１参照）。
【０００３】
また、遠隔で画像処理装置を管理する管理センター側で画像処理装置の機器状態を把握し、もしくは画像処理装置から管理センターに機器状態を通知することにより、機器の情報を用いたサービス提供を可能にする遠隔管理システムについても既に知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の遠隔管理システムでは、管理センター側に蓄積された顧客の機器のソフトウェア構成情報を元に最適なインストール構成が見積もられていた。しかし、蓄積されたデータが常に最新の情報とは限らず、インストール直前に顧客環境が変更された場合、実際のソフトウェア構成と管理センター側に蓄積された古いソフトウェア構成との差異がインストール構成の妥当性を低下させ、インストールが失敗することとなる。
【０００５】
本発明は、上記に鑑みてなされたものであって、遠隔操作によりソフトウェアを的確にインストールすることができる情報処理装置、ソフトウェア配信システム、インストール方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる情報処理装置は、ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続された情報処理装置であって、前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶する記憶部と、前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信部と、前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部と、を備えたことを特徴とする。
【０００８】
また、本発明にかかるソフトウェア配信システムは、機器と、情報処理装置と、前記機器にソフトウェアを配信するソフトウェア配信サーバと、前記情報処理装置と前記ソフトウェア配信サーバとにネットワークで接続され、前記ソフトウェアのインストールを管理するソフトウェア管理装置とを備えたソフトウェア配信システムであって、前記機器は、前記機器にインストール済みのソフトウェアを識別する第１識別情報を前記情報処理装置に送信し、前記情報処理装置は、前記機器において前記インストール済みのソフトウェアが変更された場合に、変更後の前記第１識別情報を前記機器から受信する第４受信部と、
を備え、前記ソフトウェア管理装置は、インストールの対象となる対象ソフトウェアのインストールが要求された場合に、前記第１識別情報を、前記情報処理装置から受信する第１受信部と、前記対象ソフトウェアをインストールする前にインストールが必要な依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報とを前記ソフトウェア配信サーバから受信する第２受信部と、前記第１識別情報と前記第２識別情報とを比較して、前記機器にインストールされていない前記依存ソフトウェアを抽出するソフトウェア情報抽出部と、抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を前記情報処理装置に送信する第１送信部と、を備え、前記情報処理装置は、さらに、前記ソフトウェア管理装置から、前記第１識別情報の取得要求があった場合に、前記第１識別情報を前記ソフトウェア管理装置に送信する第２送信部と、前記ソフトウェア管理装置から、抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を受信する要求受信部と、前記ソフトウェア管理装置から、抽出された前記依存ソフトウェアと前記対象ソフトウェアとをインストールする要求を受信した場合に、前記ソフトウェア配信サーバに前記要求に含まれる抽出された前記依存ソフトウェアと前記対象ソフトウェアとの取得要求を送信し、抽出された前記依存ソフトウェアと前記対象ソフトウェアとを受信する第３受信部と、取得された抽出された前記依存ソフトウェアと前記対象ソフトウェアとともに当該ソフトウェアをインストールする指示を前記機器に送信するインストール要求部と、を備え、前記ソフトウェア配信サーバは、ソフトウェアの識別情報および前記ソフトウェアを記憶するソフトウェア記憶部と、前記ソフトウェア管理装置からの要求に応じて、前記第２識別情報と前記第３識別情報とを前記ソフトウェア記憶部から取得して、取得した前記第２識別情報と前記第３識別情報とを前記ソフトウェア管理装置に送信するソフトウェア情報送信部と、前記情報処理装置からの前記取得要求に応じて、抽出された前記依存ソフトウェアと前記対象ソフトウェアとを前記ソフトウェア記憶部から取得して、取得した抽出された前記依存ソフトウェアと前記対象ソフトウェアとを前記情報処理装置に送信するソフトウェア送信部と、を備えたことを特徴とする。
【０００９】
また、本発明にかかるソフトウェア配信システムは、機器と、情報処理装置と、前記機器にソフトウェアを配信するソフトウェア配信サーバと、前記情報処理装置と前記ソフトウェア配信サーバとにネットワークで接続され、前記ソフトウェアのインストールを管理するソフトウェア管理装置とを備えたソフトウェア配信システムであって、前記ソフトウェア管理装置は、前記機器にインストール済みのソフトウェアを識別する第１識別情報を記憶する第１記憶部と、インストールの対象となる対象ソフトウェアのインストールが要求された場合に、前記対象ソフトウェアをインストールする前にインストールが必要な依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報とを前記ソフトウェア配信サーバから受信する第２受信部と、前記第１識別情報と前記第２識別情報とを比較して、前記機器にインストールされていない前記依存ソフトウェアを抽出するソフトウェア情報抽出部と、前記第２識別情報と、前記第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記情報処理装置に送信する第１送信部と、を備え、前記機器は、前記第１識別情報を前記情報処理装置に送信し、前記情報処理装置は、前記ソフトウェア管理装置から前記要求を受信する要求受信部と、前記第１識別情報と、前記インストール済みのソフトウェア、および前記機器へのインストール履歴を記憶する第２記憶部と、前記ソフトウェア管理装置から前記要求を受信した場合に、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部と、取得された前記第３識別情報および前記第４識別情報により識別されるソフトウェアとともに当該ソフトウェアをインストールする指示を前記機器に送信するインストール要求部と、を備えたことを特徴とする。
【００１１】
また、本発明にかかるインストール方法は、ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続された情報処理装置で実行されるインストール方法であって、前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶部に保存する保存ステップと、前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信ステップと、前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求ステップと、前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信ステップと、を含むことを特徴とする。
【００１３】
また、本発明にかかるプログラムは、ソフトウェアを配信するソフトウェア配信サーバ、機器、およびインストールの対象となる対象ソフトウェアと、前記対象ソフトウェアをインストールする前に前記機器にインストールが必要な依存ソフトウェアとをインストールする要求を送信するソフトウェア管理装置とにネットワークで接続されたコンピュータで実行されるコンピュータ読み取り可能なプログラムであって、前記コンピュータを、前記機器にインストール済みのソフトウェアを識別する第１識別情報と、前記第１識別情報により識別されるソフトウェア、および前記機器へのインストール履歴を記憶部に保存する保存部と、前記依存ソフトウェアを識別する第２識別情報と、前記対象ソフトウェアを識別する第３識別情報と、前記第２識別情報のうち、前記機器にインストールされていない前記依存ソフトウェアを識別する第４識別情報とを含む前記機器にソフトウェアをインストールする要求を前記ソフトウェア管理装置から受信する要求受信部と、前記機器にソフトウェアをインストールする要求があった場合に、受信した前記機器にソフトウェアをインストールする要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在するか否かを判定し、受信した前記要求に含まれる前記第２識別情報の中に、前記第１識別情報および前記第４識別情報に含まれず、かつ、前記インストール履歴に存在するソフトウェアの識別情報が存在すると判定した場合に、前記機器に当該ソフトウェアを再インストールすることにより修復させる修復要求部と、前記ソフトウェアの再インストール後に、前記第３識別情報および前記第４識別情報により識別されるソフトウェアを前記ソフトウェア配信サーバから受信する第３受信部、として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、遠隔操作によるソフトウェアの的確にインストールすることができるという効果を奏する。また、本発明によれば、ネットワークトラフィックを軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態１にかかるソフトウェア配信システムのネットワーク構成図である。
【図２】図２は、管理装置５００の機能的構成を示すブロック図である。
【図３】図３は、機器情報のデータ構造の一例を示す説明図である。
【図４】図４は、ソフトウェア情報のデータ構造の一例を示す説明図である。
【図５】図５は、インストール要求のデータ構造の一例を示す説明図である。
【図６】図６は、ソフトウェア配信サーバ４００の機能的構成を示すブロック図である。
【図７】図７は、仲介装置２００の機能的構成を示すブロック図である。
【図８】図８は、機器１００の機能的構成を示すブロック図である。
【図９】図９は、機器情報の送受信の手順を示すシーケンス図である。
【図１０】図１０は、実施の形態１のインストール処理の流れを示すシーケンス図である。
【図１１】図１１は、管理装置１２００の機能的構成を示すブロック図である。
【図１２】図１２は、仲介装置１３００の機能的構成を示すブロック図である。
【図１３】図１３は、実施の形態２のインストール処理の流れを示すシーケンス図である。
【図１４】図１４は、機器１００のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、この発明にかかる情報処理装置、ソフトウェア配信システム、インストール方法およびプログラムの一実施の形態を詳細に説明する。以下の実施の形態においては、本発明における機器を、コピー機能、プリンタ機能、スキャナ機能、およびファクシミリ機能のうち少なくとも２つの機能を有する複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌｓ）に適用した例を示すが、これに限定されることなく、複写機、プリンタ、ファクシミリ装置、スキャナ装置等の機器であればいずれにも適用することができる。なお、本実施の形態では、これらを総称して機器とする。
【００１７】
（実施の形態１）
図１は、本実施の形態にかかるソフトウェア配信システムのネットワーク構成図である。図１に示すように、ソフトウェア配信システムは、情報処理装置としての仲介装置２００と、ライセンス管理サーバ３００と、ソフトウェア配信サーバ４００と、ソフトウェア管理装置としての管理装置５００と、ＷＥＢサーバ６００が、インターネットなどのネットワーク８０を介して接続されている。そして、仲介装置２００とネットワーク８０との間には、ファイアウォール９０が設けられている。また、仲介装置２００は、複数の機器１００ａ、１００ｂ、１００ｃ（以下、特定しない機器を単に機器１００と称する。）が接続されている。
【００１８】
ファイアウォール９０は、公衆回線やインターネットなどの外部ネットワークを通じて仲介装置２００に侵入した第三者により不正が行われないように、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する。
【００１９】
ソフトウェア配信サーバ４００は、機器１００において実行される各種アプリケーションのソフトウェアのパッケージであるソフトウェアコンポーネントを記憶しており、このソフトウェアコンポーネントを、仲介装置２００を介して機器１００に配信するサーバ装置である。
【００２０】
ライセンス管理サーバ３００は、ソフトウェア配信サーバ４００から提供され、機器１００にインストールされるアプリケーションのソフトウェアコンポーネントのライセンス（利用権）や、機器１００において実行される機能のライセンス（利用権）を、仲介装置２００を介して管理する装置である。
【００２１】
Ｗｅｂサーバ６００は、アプリケーション等のソフトウェアのポータル販売サイトを有するサーバ装置である。ユーザが不図示のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や機器１００等からこのＷｅｂサーバ２００のポータル販売サイトにアクセスして、所望のアプリケーションソフトウェアを購入する。ここで、購入されたアプリケーションソフトウェアを機器１００へのインストール対象となる対象ソフトウェア（以下、対象ソフトウェアという。）とする。そして、ユーザがこのＷｅｂサーバ６００からソフトウェアを購入した場合、インストール対象として指定された機器１００の機器ＩＤと購入したソフトウェアのプロダクト名とプロダクトキーとともにインストール要求がＷｅｂサーバ２００から管理装置５００に送信される。
【００２２】
管理装置５００は、仲介装置２００を介して機器１００を遠隔管理する装置である。具体的には、管理装置５００は、機器１００に管理装置５００は、機器のメーカやサービス提供会社等のサービスセンタ等に設置されたサーバ装置である。管理装置５００は、Ｗｅｂサーバ６００からインストール要求を受信すると、ソフトウェア配信サーバ４００から対象ソフトウェアの取得先ＵＲＬや依存ソフトウェアの取得先ＵＲＬ等を受信し、インストール先として指定された機器１００にインストールされているソフトウェアの状況である機器情報を参照して、対象ソフトウェアと機器１００に必要な依存ソフトウェアを決定してインストール要求を仲介装置２００に送信する。
【００２３】
仲介装置２００は、ソフトウェア配信サーバ４００およびライセンス管理サーバ３００と、機器１００との間で行われる処理を仲介する装置である。具体的には、仲介装置２００は、機器１００から各機器にインストールされているソフトウェアの状況である機器情報を一定期間ごとに収集し、この機器ごとの機器情報を管理装置５００に送信する。
【００２４】
また、仲介装置２００は、対象ソフトウェアのコンポーネントをソフトウェア配信サーバ４００に要求して受信し、また対象ソフトウェアのライセンスをライセンス管理サーバ３００に要求して受信する。また、仲介装置２００は、これらのソフトウェアコンポーネントとライセンスとともに、ソフトウェアのインストール要求を機器１００に送信して、機器１００に当該ソフトウェアをインストールさせる。
【００２５】
機器１００は、コピー、ファックス、プリンタなどの複数の機能を備えた装置であって、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのローカルネットワークにより仲介装置２００に接続されている。図１では、３台の機器１００ａ、１００ｂ、１００ｃがネットワークに接続されているが、これに限定されることなく、１台、２台、または４台以上の機器を接続した構成としてもよい。機器１００は、仲介装置２００から、ソフトウェアコンポーネントおよびライセンスとともにインストール要求を受信すると、インストール要求で指定されたソフトウェアのインストールを実行するアプリインストール制御部を備えている。
【００２６】
次に、管理装置５００の詳細について説明する。図２は、管理装置５００の機能的構成を示すブロック図である。図２に示すように、管理装置５００は、通信部５０１と、ソフトウェア情報抽出部５０２と、必須ソフトウェア情報生成部５０３と、ハードディスクドライブ装置（以下、「ＨＤＤ」という。）５１０とを主に備えている。
【００２７】
通信部５０１は、Ｗｅｂサーバ６００から、ユーザによってインストール先として指定された機器１００の機器ＩＤと、対象ソフトウェアのプロダクト名、プロダクトＩＤおよびプロダクトキーとを含むインストール要求を受信する。
【００２８】
また、通信部５０１は、仲介装置２００から機器１００にインストールされている機器情報を受信してＨＤＤ５１０に保存する第１受信部の機能を有する。ここで、通信部５０１は、機器情報を一定のタイミングで仲介装置から受信するが、インストール要求を受信した場合は、一定のタイミングにかかわらず新たな機器情報を受信する。
【００２９】
ここで、機器情報は、機器１００を一意に識別するための機器ＩＤと、機器１００の種類を示す機器システム情報と、インストール済情報としての、機器１００に既にインストール済みのソフトウェアのソフトウェア情報を示すソフトウェア設定情報とを含んでいる。例えば、インストール済みのソフトウェアのソフトウェア情報として、インストール済みのソフトウェアのプロダクトＩＤがある。なお、インストール済みのソフトウェアのプロダクトＩＤは、本発明の第１識別情報の一例である。
【００３０】
図３は、機器情報のデータ構造の一例を示す説明図である。図３に示すように、機器情報の機器システム情報は、さらに詳細情報のテーブルをリンクし、ソフトウェア設定情報はさらにその詳細情報のテーブルをリンクした構造となっている。また、ソフトウェア設定情報は機器１００にインストールされているソフトウェアごとに存在して、それぞれ詳細情報をリンクしている。すなわち、インストール済みのソフトウェアが複数存在する場合には、機器情報には複数のソフトウェア設定情報が設定され、かつそれぞれのソフトウェア設定情報に詳細情報のテーブルがリンクした構造となる。
【００３１】
機器システム情報の詳細情報としては、図３に示すように、機器コード、シリアル番号、モデル名、言語、機器１００の設置場所等が含まれる。ソフトウェア設定情報の詳細情報としては、図３に示すように、ソフトウェアのカテゴリと、ソフトウェアを一意に識別するためのプロダクトＩＤと、プロダクト名と、バージョン、有効期限、ライセンスＩＤ等の情報が含まれる。このような機器情報は、機器１００ごと、すなわち機器ＩＤごとにＨＤＤ５１０に保存される。
【００３２】
図２に戻り、通信部５０１はさらに、第２受信部の機能を有する。具体的には、通信部５０１は、Ｗｅｂサーバ６００から受信したインストール要求に含まれる対象ソフトウェアのプロダクトＩＤを指定して、ソフトウェア配信サーバ４００に対してソフトウェア情報の取得要求を送信し、ソフトウェア配信サーバ４００からこのソフトウェア情報を受信する。なお、対象ソフトウェアのプロダクトＩＤは、本発明の第３識別情報の一例である。
【００３３】
図４は、ソフトウェア情報のデータ構造の一例を示す説明図である。ソフトウェア情報は、図４に示すように、対象ソフトウェアのプロダクトＩＤおよび取得先ＵＲＬと、依存情報として、対象ソフトウェアをインストールする前にインストールしておくべきソフトウェアである依存ソフトウェアのソフトウェア情報およびその取得先とを含んでいる。依存ソフトウェアは複数存在する場合もある。例えば、依存ソフトウェアのソフトウェア情報として、依存ソフトウェアのプロダクトＩＤがある。また、図４に示す情報の他、ソフトウェア情報には、対象ソフトウェアおよび依存ソフトウェアそれぞれのカテゴリ、プロダクトキー、有効化の必要性等も含まれている。なお、依存ソフトウェアのプロダクトＩＤは、本発明の第２識別情報の一例である。
【００３４】
図２に戻り、通信部５０１は、また、仲介装置２００に、必須ソフトウェア情報と、インストール先の機器１００の機器ＩＤとを含むインストール要求を仲介装置２００に送信する第１送信部としての機能を有する。ここで、必須ソフトウェア情報とは、対象ソフトウェアをインストール先の機器１００に正常にインストールするために必須となるソフトウェアのソフトウェア情報である。具体的には、対象ソフトウェアと、対象ソフトウェアの依存ソフトウェアのうちインストール先の機器１００にインストールされていない依存ソフトウェアのプロダクトＩＤのことである。なお、対象ソフトウェアの依存ソフトウェアのうちインストール先の機器１００にインストールされていない依存ソフトウェアのプロダクトＩＤは、本発明の第４識別情報の一例である。
【００３５】
ソフトウェア情報抽出部５０２は、ＨＤＤ５１０に保存されたインストール先の機器１００の機器情報のインストール済み情報であるソフトウェア設定情報のプロダクトＩＤと、受信したソフトウェア情報の対象ソフトウェアとその依存ソフトウェアのそれぞれのプロダクトＩＤとを比較して、インストール先の機器１００にインストールされていない依存ソフトウェアの構成情報を抽出する。これにより、一度インストールされた依存ソフトウェアが削除されたことによりインストールが失敗する事態を防止することができる。
【００３６】
必須ソフトウェア情報生成部５０３は、ソフトウェア情報抽出部５０２により抽出されたインストール先の機器１００にインストールされていない依存ソフトウェアのプロダクトＩＤと対象ソフトウェアのプロダクトＩＤとを合せて必須ソフトウェア情報を生成する。
【００３７】
図５は、インストール要求のデータ構造の一例を示す説明図である。図５に示すように、インストール先の機器ＩＤと、対象ソフトウェアのカテゴリ、プロダクトＩＤ、プロダクトキー、取得先ＵＲＬ等、および対象ソフトウェアの依存ソフトウェアのうち、ソフトウェア情報抽出部５０２で抽出された依存ソフトウェアのカテゴリ、プロダクトＩＤ、プロダクトキー、取得先ＵＲＬ等が設定される。
【００３８】
次に、ソフトウェア配信サーバ４００の詳細について説明する。図６は、ソフトウェア配信サーバ４００の機能的構成を示すブロック図である。ソフトウェア配信サーバ４００は、図６に示すように、通信部４０１と、ＨＤＤ４１０とを主に備えている。
【００３９】
ＨＤＤ４１０には、ソフトウェアのインストールパッケージであるソフトウェアコンポーネントと、ソフトウェアコンポーネントに対応して、図４に示したソフトウェア情報が記憶されている。
【００４０】
通信部４０１は、ソフトウェア情報送信部およびソフトウェア送信部の機能を有する。例えば、通信部４０１は、管理装置５００からソフトウェア情報の取得要求を受信し、取得要求で指定されたプロダクトＩＤのソフトウェア情報をＨＤＤから取得して、取得したソフトウェア情報を管理装置５００に送信する。また、通信部４０１は、仲介装置２００からのソフトウェア要求を受けて、指定されたソフトウェアコンポーネントをＨＤＤ５１０から取得して、仲介装置２００に配信する。
【００４１】
次に、仲介装置２００の詳細について説明する。図７は、仲介装置２００の機能的構成を示すブロック図である。仲介装置２００は、図７に示すように、通信部２０１と、インストール要求部２０２と、ライセンス取得部２０３と、ＨＤＤ２１０とを主に備えている。
【００４２】
通信部２０１は、機器１００から、所定のタイミングとして一定期間ごとに、および機器１００の機器情報が変更される度に機器情報を受信する第４受信部の機能、および、機器情報を管理装置５００に送信する第２送信部としての機能を有する。
【００４３】
通信部２０１は、さらに、管理装置５００から、必須ソフトウェア情報とインストール先の機器ＩＤが含まれたインストール要求を受信するインストール要求受信部としての機能を有する。また、通信部２０１は、管理装置５００からのインストール要求に応じて、インストール要求に含まれる必須ソフトウェア情報の取得要求をソフトウェア配信サーバ４００に送信し、ソフトウェア配信サーバ４００から必須ソフトウェア情報を受信する第３受信部としての機能を有する。
【００４４】
ＨＤＤ２１０は、機器１００から受信した最新のソフトウェア設定情報を含む機器情報、およびソフトウェア配信サーバ４００から受信したソフトウェアを保存する。
【００４５】
ライセンス取得部２０３は、管理装置５００からインストール要求を受信した場合、インストール要求で指定された対象ソフトウェアおよび依存ソフトウェアのライセンスの要求をライセンス管理３００に送信し、ライセンス管理サーバ３００から、要求したソフトウェアのライセンスを受信する。
【００４６】
インストール要求部２０２は、取得したソフトウェアコンポーネントとライセンスとともに、インストール先の機器１００にインストール要求を送信する。これにより、インストール要求を受信した機器１００ではインストールが開始されることになる。
【００４７】
次に、機器１００について説明する。図８は、実施の形態１にかかる機器１００の機能的構成を示すブロック図である。図８に示すように、機器１００は、白黒レーザプリンタ（Ｂ＆Ｗ  ＬＰ）１０１と、カラーレーザプリンタ（Ｃｏｌｏｒ  ＬＰ）１０２と、ＨＤＤ１０３と、スキャナ、ファクシミリ、メモリなどのハードウェアリソース１０４、通信Ｉ／Ｆ（インターフェース）１０５を有するとともに、プラットホーム１２０と、アプリケーション１３０とから構成されるソフトウェア群１１０とを備えている。
【００４８】
本実施の形態の機器１００では、ＨＤＤ１０３に、機器情報や、ソフトウェア配信サーバ４００からダウンロードしたアプリケーションのソフトウェアパッケージ、ファームウェアパッケージ、パッケージ情報、インストール処理の動作指示を示す指示情報、およびライセンス管理サーバ３００からダウンロードアプリケーションのライセンスファイルが保存される。また、このＨＤＤ１０３に、インストール処理の進行状態が記録される。
【００４９】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有する。
【００５０】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８と、ＮＲＳ（ニューリモートサービス）１２９と、アプリインストール制御サービス１３１と、から構成される。このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００５１】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００５２】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００５３】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００５４】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００５５】
ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（Ｂ＆Ｗ  ＬＰ）１０１、カラーレーザプリンタ（Ｃｏｌｏｒ  ＬＰ）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０４のエンジンの制御を行う。
【００５６】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００５７】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００５８】
ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。
【００５９】
ＯＣＳ１２６のプロセスは、オペレータ（利用者）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ１２６は、オペレーションパネルからキー押下（またはタッチ操作）をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【００６０】
アプリインストール制御サービス１３１のプロセスは、機器１００にインストールされているアプリケーション等のソフトウェアのソフトウェア情報や機器の情報を機器情報として一定期間ごとに管理装置５００に送信する。アプリインストール制御サービス１３１のプロセスは、管理装置５００からインストール要求を受信した場合、ソフトウェア配信サーバ４００に対して、インストール要求で指定されたプロダクトＩＤのソフトウェアの配信要求を行って、ソフトウェア配信サーバ４００から対象ソフトウェアを受信し、インストールする。また、アプリインストール制御サービス１３１のプロセスは、管理装置５００からインストール要求を受信した場合、ライセンス管理サーバ３００に対して、インストール要求で指定されたプロダクトＩＤのソフトウェアのライセンスを要求し、ライセンス管理サーバ３００からライセンスを取得する。
【００６１】
ＮＲＳ１２９のプロセスは、ネットワークを介してデータを送受信する際のデータの変換を行う等のネットワークを介した機器遠隔管理に関する機能及びスケジューラ機能を有している。
【００６２】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６と、インターネットに接続されたＰＣ等のクライアント端末に対してＷＥＢサーバ（ｈｔｔｐサーバ）として動作し、クライアント端末上で動作するＷＥＢブラウザに各種画面を表示するＷＥＢアプリ１１７とを有している。
【００６３】
アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００６４】
このように、実施の形態３にかかる機器１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
【００６５】
また、機器１００には、機器１００の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリ１７２を開発して搭載することが可能となっている。この外部アプリ１７２は、アプリインストール制御サービス１３１によりソフトウェア配信サーバ４００からダウンロードしてインストールされたアプリケーションであり、図８は、アプリケーションが実行されている状態を示している。
【００６６】
なお、実施の形態３にかかる機器１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスとがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。すなわち、上述したように、外部アプリ１７２をインストール可能であり、かつアンインストールも可能となっている。
【００６７】
次に、以上のように構成された管理装置５００と仲介装置２００と機器１００との間におけるソフトウェア設定情報の送受信処理の流れについて説明する。図９は、管理装置５００と仲介装置２００と機器１００との間におけるソフトウェア設定情報の送受信処理の流れを示すシーケンス図である。
【００６８】
インストール先の機器１００は、ユーザによりプラグインの削除操作を受け付けると、削除操作を受け付けたプラグインを削除する（ステップＳ１）。機器１００はプラグインを削除すると、仲介装置２００に削除を反映した最新のソフトウェア設定情報を通知する（ステップＳ２）。仲介装置２００は、機器１００から最新のソフトウェア設定情報の通知を受信すると、ＨＤＤ２１０に保存している機器１００の機器情報のソフトウェア設定情報を受信したソフトウェア設定情報に更新する（ステップＳ３）。
【００６９】
また、インストール先の機器１００は、ユーザにより新たなプラグインの追加操作を受け付けると、追加操作を受け付けたプラグインを追加する（ステップＳ４）。機器１００はプラグインを追加すると、仲介装置２００に追加を反映した再審のソフトウェア設定情報を通知する（ステップＳ５）。仲介装置２００は、機器１００から最新のソフトウェア設定情報の通知を受信すると、ＨＤＤ２１０に保存している機器１００の機器情報のソフトウェア設定情報を受信したソフトウェア設定情報に更新する（ステップＳ６）。このように、仲介装置２００は、機器１００のソフトウェア設定情報が更新される度に更新後のソフトウェア設定情報を受信するので、機器１００の最新のソフトウェア設定情報を保存する。
【００７０】
仲介装置２００は、ステップＳ３およびステップＳ６において更新したソフトウェア設定情報を含む機器情報を一定のタイミングで管理装置５００に通知する（ステップＳ７）。管理装置５００は、ＨＤＤ５１０に保存している機器１００の機器情報を、更新されたソフトウェア設定情報を含む機器情報に更新する（ステップＳ８）。このように、管理装置５００は、機器１００のソフトウェア設定情報が更新される度に最新の機器１００のソフトウェア設定情報を受信するのではないため、ＨＤＤ５１０に保存されている機器情報に含まれるソフトウェア設定情報と最新の機器１００のソフトウェア設定情報とが異なるケースが生じる。
【００７１】
次に、以上のように構成された本実施の形態のソフトウェア配信システムによるインストール処理について説明する。図１０は、実施の形態１のインストール処理の流れを示すシーケンス図である。
【００７２】
Ｗｅｂサーバ６００は、インストール対象のプラグインＡおよびプラグインＢのプロダクトＩＤと、機器ＩＤとを含むインストール要求を管理装置５００に送信する（ステップＳ１１）。管理装置５００はＷｅｂサーバ６００から受信した当該インストール要求を仲介装置２００に送信する（ステップＳ１２）。
【００７３】
仲介装置２００は、管理装置５００からインストール要求を受信すると、インストール要求に含まれるインストール先の機器の機器ＩＤにより識別される機器１００から最新のソフトウェア設定情報を含む機器情報を取得する（ステップＳ１３）。仲介装置２００は機器１００から最新のソフトウェア設定情報を含む機器情報を取得すると、取得した最新のソフトウェア設定情報と、インストール対象のプラグインＡとプラグインＢのプロダクトＩＤを含む必須ソフトウェア情報の取得要求を管理装置５００に送信する（ステップＳ１４）。
【００７４】
管理装置５００は、必須ソフトウェア情報の取得要求を仲介装置２００から受信すると、必須ソフトウェア情報に含まれるプラグインＡのプロダクトＩＤにより識別されるソフトウェアのソフトウェア情報の取得要求をソフトウェア配信サーバ４００に送信する（ステップＳ１５）。ソフトウェア配信サーバ４００は、これに応答して、指定されたソフトウェアのソフトウェア情報を管理装置５００に送信する（ステップＳ１６）。続いて、管理装置５００は、必須ソフトウェア情報の取得要求に含まれるプラグインＢのプロダクトＩＤにより識別されるソフトウェアのソフトウェア情報の取得要求をソフトウェア配信サーバ４００に送信する（ステップＳ１７）。ソフトウェア配信サーバ４００は、これに応答して、指定されたソフトウェアのソフトウェア情報を管理装置５００に送信する（ステップＳ１８）。
【００７５】
管理装置５００は、ソフトウェア配信サーバ４００からプラグインＡおよびプラグインＢのソフトウェア情報を取得すると、必須ソフトウェア情報を生成する（ステップＳ１９）。例えば、管理装置５００は、仲介装置２００から受信したソフトウェア設定情報を参照し、取得したソフトウェア情報の中からインストール先の機器１００にインストールされていない依存ソフトウェア情報を抽出し、抽出した依存ソフトウェア情報とインストール対象のプラグインＡおよびプラグインＢのソフトウェア情報を合せて必須ソフトウェア情報として生成する。
【００７６】
管理装置５００は生成した必須ソフトウェア情報を仲介装置２００に送信する（ステップＳ２０）。仲介装置２００は必須ソフトウェア情報を受信すると、ソフトウェア配信サーバ４００に必須ソフトウェア情報が示すソフトウェアの送信要求を送信する（ステップＳ２１）。ソフトウェア配信サーバ４００はこれに応答して、指定された必須ソフトウェアのソフトウェア情報を仲介装置２００に送信する（ステップＳ２２）。
【００７７】
仲介装置２００はソフトウェア配信サーバ４００から必須ソフトウェアを受信すると、受信した必須ソフトウェアを含むインストール指示を機器１００に送信する（ステップＳ２３）。これにより、機器１００では、インストール指示で指定されたソフトウェアのインストールが行われる。
【００７８】
このように、本実施の形態によれば、管理装置５００はインストール要求があった場合に、仲介装置２００によりインストール先の機器１００から最新のソフトウェア設定情報を取得し、インストール対象となるソフトウェアの依存ソフトウェアであって、機器１００のソフトウェア設定情報に含まれないソフトウェアを必須ソフトウェア情報に含めるので、依存ソフトウェアの削除等によるインストールの失敗を防止することができる。つまり、本実施の形態によれば、遠隔操作によりソフトウェアを的確にインストールすることができる。
【００７９】
（実施の形態２）
実施の形態１では、管理装置５００はプラグインのインストール要求があった場合に、仲介装置２００を介して取得したインストール先の機器１００の最新のソフトウェア設定情報をもとに必須ソフトウェア情報を生成した。これに対して、本実施の形態では、仲介装置が、管理装置により管理装置が保存しているインストール先の機器のソフトウェア設定情報をもとに生成された必須ソフトウェア情報と、インストール先の機器１００の最新のソフトウェア設定情報とを比較して、修復すべきソフトウェアの有無を判断する。
【００８０】
本実施の形態のソフトウェア配信システムのネットワーク構成は実施の形態１と同様である。本実施の形態では、管理装置とソフトウェア配信サーバの構成が実施の形態１と異なっている。
【００８１】
まず、管理装置１２００の詳細について説明する。図１１は、実施の形態２の管理装置１２００の機能的構成を示すブロック図である。実施の形態２の管理装置１２００は、通信部１２０１と、ソフトウェア情報抽出部１２０２と、必須ソフトウェア情報生成部５０３と、ＨＤＤ５１０とを主に備える。なお、通信部１２０１と、ソフトウェア情報抽出部１２０１以外の各部の機能および構成は実施の形態１と同様である。
【００８２】
通信部１２０１は、実施の形態１と同様であるが、仲介装置１３００からの機器情報の受信については一定のタイミングで行われる。また、通信部１２０１は、インストール要求送信部としての機能において、実施の形態１と異なり、必須ソフトウェア情報と、インストール先の機器１００の機器ＩＤに加えて依存ソフトウェア情報を含むインストール要求を仲介装置１３００に送信する。
【００８３】
ソフトウェア情報抽出部１２０２は、ＨＤＤ５１０に保存されたインストール先の機器１００の機器情報のソフトウェア設定情報のプロダクトＩＤと、対象ソフトウェアのプロダクトＩＤと、対象ソフトウェアの依存ソフトウェアのプロダクトＩＤとを比較して、インストール先の機器１００にインストールされていない依存ソフトウェアの構成情報を抽出する。なお、ここでＨＤＤ５１０に保存されたインストール先機器１００の機器情報は仲介装置１３００から一定のタイミングで受信したものであるため、最新の機器１００の機器情報とは限らない。
【００８４】
次に、仲介装置１３００の詳細について説明する。図１２は、仲介装置１３００の機能的構成を示すブロック図である。仲介装置１３００は、図１２に示すように、通信部１３０１と、修復要求部１３０４と、インストール要求部２０２と、ライセンス取得部２０３と、ＨＤＤ１３１０とを主に備えている。なお、ＨＤＤ１３１０と、ソフトウェア取得部１３０３と、修復要求部１３０４以外の各部の機能および構成は実施の形態１と同様である。
【００８５】
ＨＤＤ１３１０は、実施の形態１と同様であるが、さらに、機器１００から受信した最新のソフトウェア設定情報を含む機器情報、ソフトウェア配信サーバ４００から受信したソフトウェア、および機器１００にソフトウェアをインストールした日時とインストールしたソフトウェアのプロダクトＩＤを対応付けた更新履歴を保存する。
【００８６】
修復要求部１３０４は、通信部２０１により必須ソフトウェア情報と、インストール先の機器１００の機器ＩＤと、依存ソフトウェア情報とを含むインストール要求を受信した場合に、機器１００に修復すべきソフトウェア（以下、修復ソフトウェアという。）のソフトウェア情報（以下、修復ソフトウェア情報という。）が存在するか否かを判断する。
【００８７】
例えば、修復要求部１３０４は、依存ソフトウェア情報と、必須ソフトウェア情報と、機器１００のインストール済みソフトウェア情報とを比較し、依存ソフトウェア情報の中に、必須ソフトウェア情報およびインストール済みソフトウェア情報に含まれないソフトウェア情報が存在するか否かを判断する。次に、修復要求部１３０４は、依存ソフトウェア情報の中に、必須ソフトウェア情報およびインストール済みソフトウェア情報に含まれないソフトウェア情報が存在すると判断した場合に、さらに、当該ソフトウェア情報がインストール履歴に存在するか否かを確認する。つまり、当該ソフトウェアが一度機器１００にインストールされた後に削除されたことにより、現在のソフトウェア設定情報に含まれないこととなった修復ソフトウェアであるか否かを確認する。
【００８８】
修復要求部１３０４は、インストール履歴があることを確認すると、修復ソフトウェアをＨＤＤ１３１０から取得して機器１００に送信し、修復を要求する。ここで、必須ソフトウェア情報に含まれるソフトウェア情報は、管理装置１２００により、機器１００の最新のソフトウェア設定情報とは限らない機器情報に基づいて生成されたものであるため、依存ソフトウェア情報が欠落している可能性がある。このため、修復要求部１３０４が、ＨＤＤ１３１０に保存している機器１００の最新のソフトウェア設定情報を確認することにより必須ソフトウェア情報に含まれない依存ソフトウェアを修復することによりインストールの失敗を防止することができる。
【００８９】
次に、以上のように構成された本実施の形態のソフトウェア配信システムによるインストール処理について説明する。図１３は、実施の形態２のインストール処理の流れを示すシーケンス図である。
【００９０】
Ｗｅｂサーバ６００は、インストール対象のプラグインＡと、プラグインＢと、機器ＩＤとを含むインストール要求を管理装置５００に送信する（ステップＳ３１）。管理装置１２００はＷｅｂサーバ６００から当該インストール要求を受信すると、ＨＤＤ５１０に保存されているインストール要求に含まれる機器ＩＤの機器情報からソフトウェア設定情報を取得する（ステップＳ３２）。なお、ここで管理装置１２００に保存されている機器情報は２日前に仲介装置１３００から受信した機器情報であり、機器情報にプラグインＣが含まれているとする。
【００９１】
ステップＳ３３からステップＳ３７までの処理については、実施の形態１で説明した図１０のフローチャートのステップＳ１５からステップＳ１９と同様である。ステップＳ３８において、管理装置１２００は、仲介装置１３００に必須ソフトウェア情報と、インストール先の機器の機器ＩＤを含むインストール要求を送信する（ステップＳ３８）。
【００９２】
仲介装置１３００は、管理装置１２００からインストール要求を受信すると、ＨＤＤ１２１０に保存している機器１００の機器情報から最新のソフトウェア設定情報を取得する（ステップＳ３９）。仲介装置１３００は、インストール要求に含まれる依存ソフトウェア情報と、必須ソフトウェア情報と、取得した最新のソフトウェア設定情報と、ＨＤＤ１２１０に保存されている更新履歴とから、修復ソフトウェアの有無を判断する（ステップＳ４０）。例えば、１日前に機器１００にインストールされていたプラグインＣが削除されていた場合、ステップＳ３７において管理装置１２００により生成された必須ソフトウェア情報にはプラグインＣが含まれないこととなる。つまり、管理装置１２００により生成された必須ソフトウェア情報のもととなった機器１００のソフトウェア設定情報は、２日前のプラグインＣが含まれる機器情報であるため、プラグインＣは必須ソフトウェア情報に含まれていない。
【００９３】
そこで、仲介装置１３００は、修復ソフトウェアとしてプラグインＣがあると判断し、修復ソフトウェアであるプラグインＣをＨＤＤ１３１０から取得し、修復ソフトウェアであるプラグインＣを含む更新指示を機器１００に送信する（ステップＳ４１）。仲介装置１３００は、機器１００が更新、すなわち修復ソフトウェアであるプラグインＣが機器１００に再インストールされた後に、必須ソフトウェア情報が示す必須ソフトウェアの送信要求をソフトウェア配信サーバ４００に送信する（ステップＳ４２）。ソフトウェア配信サーバ４００はこれに応答して、指定された必須ソフトウェアを仲介装置１２００に送信する（ステップＳ４３）。
【００９４】
仲介装置１３００は、ソフトウェア配信サーバ４００から受信した必須ソフトウェアを含むインストール指示を機器１００に送信する（ステップＳ４４）。これにより、機器１００では、インストール指示で指定されたソフトウェアのインストールが行われる。
【００９５】
このように、本実施の形態によれば、仲介装置１３００が機器１００の最新のソフトウェア設定情報をもとに管理装置１２００から受信した必須ソフトウェア情報に含まれないソフトウェアを修復した上で、新たにソフトウェアをインストールするので、機器１００に一度インストールされたソフトウェアが削除されたことにより新たなインストールが失敗する事態を防止することができる。つまり、本実施の形態によれば、遠隔操作によりソフトウェアを的確にインストールすることができる。
【００９６】
図１４は、実施の形態１および２にかかる機器１００のハードウェア構成を示すブロック図である。本図に示すように、この機器１００は、コントローラ１０とエンジン部（Ｅｎｇｉｎｅ）６０とをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）バスで接続した構成となる。コントローラ１０は、機器１００全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００９７】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１６と、ハードディスクドライブ（ＨＤＤ）１０３とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２ａと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)１２ｂと、をさらに有する。
【００９８】
ＣＰＵ１１は、機器１００の全体制御をおこなうものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００９９】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【０１００】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【０１０１】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【０１０２】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１０３およびＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、エンジン部６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Ｆａｃｓｉｍｉｌｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）３０、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）４０、ＩＥＥＥ１３９４（ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ  １３９４）インターフェース５０が接続される。操作表示部２０はＡＳＩＣ１６に直接接続されている。
【０１０３】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０３は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【０１０４】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【０１０５】
なお、機器１００で実行されるインストールプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１０６】
上記実施の形態の機器１００で実行されるインストールプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１０７】
さらに、上記実施の形態の機器１００で実行されるインストールプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記実施の形態の機器１００で実行されるインストールプログラムをインターネット等のネットワーク経由で提供または配信するように構成しても良い。
【０１０８】
上記実施の形態の機器１００で実行されるインストールプログラムは、上述した各部（ソフトウェア情報抽出プログラム、必須ソフトウェア情報生成プログラム）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭからソフトウェア配信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ソフトウェア情報抽出プログラム、必須ソフトウェア情報生成プログラムが主記憶装置上に生成されるようになっている。
【０１０９】
なお、上記実施の形態は、機器１００のアプリケーションのソフトウェアのインストールについて説明したが、アプリケーション以外のソフトウェアにも適用可能である。
【０１１０】
また、上記実施の形態の管理装置５００、ソフトウェア配信サーバ４００、ライセンス管理サーバ３００およびＷｅｂサーバ６００は、ＣＰＵなどの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１１１】
また、上記実施の形態の管理装置で実行されるソフトウェア情報プログラム、インストール要求生成プログラム、ソフトウェア配信サーバで実行されるソフトウェア情報抽出プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１１２】
また、上記実施の形態の管理装置で実行されるソフトウェア情報プログラム、インストール要求生成プログラム、ソフトウェア配信サーバで実行されるソフトウェア情報抽出プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記実施の形態の管理装置で実行されるソフトウェア情報プログラム、インストール要求生成プログラム、ソフトウェア配信サーバで実行されるソフトウェア情報抽出プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１１３】
また、上記実施の形態の管理装置で実行されるソフトウェア情報抽出プログラム、必須ソフトウェア情報生成プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１４】
上記実施の形態の管理装置で実行されるソフトウェア情報抽出プログラム、必須ソフトウェア情報生成プログラムは、上述した機能的構成の各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からソフトウェア配信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１１５】
８０  ネットワーク
９０  ファイアウォール
１００  機器
１０１  白黒レーザプリンタ
１０２  カラーレーザプリンタ
１０３  ＨＤＤ
１０４  その他ハードウェアリソース
１０５  通信Ｉ／Ｆ
１１０  ソフトウェア群
１１２  コピーアプリ
１１３  ファックスアプリ
１１４  スキャナアプリ
１１５  ネットファイルアプリ
１１６  工程検査アプリ
１１７  ＷＥＢアプリ
１７２  外部アプリ
１２０  プラットホーム
１２１  汎用ＯＳ
１２２  ＳＣＳ
１２３  ＳＲＭ
１２４  ＥＣＳ
１２５  ＭＣＳ
１２６  ＯＣＳ
１２７  ＦＣＳ
１２８  ＮＣＳ
１２９  ＮＲＳ
１３０  アプリケーション
１３１  アプリインストール制御サービス
２００、１３００  仲介装置
２０１、４０１、５０１  通信部
２０２、１３０５  インストール要求部
２０３  ライセンス取得部
２１０、４１０、５１０、１３１０  ＨＤＤ
３００  ライセンス管理サーバ
４００  ソフトウェア配信サーバ
５００、１２００  管理装置
５０２  ソフトウェア情報抽出部
５０３、１２０２  必須ソフトウェア情報生成部
６００  Ｗｅｂサーバ
１３０４  修復要求部
【先行技術文献】
【特許文献】
【０１１６】
【特許文献１】特許第３６０２０３６号公報
【図１】
0005581856.tif 000002
【図２】
0005581856.tif 000003
【図３】
0005581856.tif 000004
【図４】
0005581856.tif 000005
【図５】
0005581856.tif 000006
【図６】
0005581856.tif 000007
【図７】
0005581856.tif 000008
【図８】
0005581856.tif 000009
【図９】
0005581856.tif 000010
【図１０】
0005581856.tif 000011
【図１１】
0005581856.tif 000012
【図１２】
0005581856.tif 000013
【図１３】
0005581856.tif 000014
【図１４】
0005581856.tif 000015