(57)【要約】【課題】画像形成装置に適用されるソフトウェアを異なる配信システムが配信する際に、一方の配信システムが配信するソフトウェアに対応するソフトウェアを、他方の配信システムが適用時間を重ねないように配信する仕組みを提供すること。【解決手段】画像形成装置１３１の第１のコントローラに係るソフトウェアを管理する第１の配信システム１３３は、画像形成装置１３１の第２のコントローラに係るソフトウェアを管理する第２の配信システム１４３から、当該第２のコントローラに係るソフトウェアの配信予約を受信し、当該受信した配信予約に伴い、配信すべき第１のコントローラに係るソフトウェアを検索し、見つかったソフトウェアの配信のための設定を行う。画像形成装置１３１がこの設定を取得することで、見つかったソフトウェアが前記画像形成装置に適用される。【選択図】図１
2015118621.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置の第１のコントローラに係るソフトウェアを管理する第１の配信システムであって、
画像形成装置の第２のコントローラに係るソフトウェアを管理する第２の配信システムから、当該第２のコントローラに係るソフトウェアの配信予約を受信する受信手段と、
当該受信した配信予約に伴い、配信すべき前記第１のコントローラに係るソフトウェアを検索する検索手段と、
前記検索手段により見つかったソフトウェアの配信のための設定を行う設定手段と、を有し、
前記画像形成装置による前記設定の取得に従い、前記見つかったソフトウェアが前記画像形成装置に適用される
ことを特徴とする第１の配信システム。
【請求項２】
前記設定手段は、前記第２のコントローラに係るソフトウェアの配信予約に含まれるファイルサイズから、前記第２の配信システムによる配信終了時間を計算し、当該配信終了時間の後に前記見つかったソフトウェアを配信するように配信時間を設定する
ことを特徴とする請求項１に記載の第１の配信システム。
【請求項３】
前記画像形成装置では、前記受信した第２のコントローラに係るソフトウェアが適用された後に、前記見つかったソフトウェアが適用される
ことを特徴とする請求項１または２に記載の第１の配信システム。
【請求項４】
前記第２の配信システムによる前記第２のコントローラに係るソフトウェアの配信開始から配信終了までの時間は、前記画像形成装置が前記第２のコントローラに係るソフトウェアを前記第２の配信システムからダウンロードする時間とダウンロードした該ソフトウェアの適用に要する時間を含む
ことを特徴とする請求項２または３に記載の第１の配信システム。
【請求項５】
前記検索手段により見つかった前記ソフトウェアの配信のための設定は、前記画像形成装置の監視モジュールがポーリングする監視センタホストに対して行われ、前記画像形成装置は当該ポーリングにより前記ソフトウェアの配信のための設定を取得する
ことを特徴とする請求項１乃至４のいずれか一項に記載の第１の配信システム。
【請求項６】
前記受信した配信予約に伴い、前記検索手段が検索した前記配信すべき第１のコントローラに係るソフトウェアのバージョンの組合せは、前記第２のコントローラに係るソフトウェアのバージョンの組合せと整合する
ことを特徴とする請求項１乃至５のいずれか一項に記載の第１の配信システム。
【請求項７】
画像形成装置の第１のコントローラに係るソフトウェアを管理する第１の配信システムにおける制御方法であって、
画像形成装置の第２のコントローラに係るソフトウェアを管理する第２の配信システムから、当該第２のコントローラに係るソフトウェアの配信予約を受信する受信工程と、
当該受信した配信予約に伴い、配信すべき前記第１のコントローラに係るソフトウェアを検索する検索工程と、
前記検索工程で見つかったソフトウェアの配信のための設定を行う設定工程と、を有し、
前記画像形成装置による前記設定の取得に従い、前記見つかったソフトウェアが前記画像形成装置に適用される
ことを特徴とする制御方法。
【請求項８】
第１のコントローラに係るソフトウェアを管理する第１の配信システムと、第２のコントローラに係るソフトウェアを管理する第２の配信システムと、前記第１および第２の配信システムから配信対象のソフトウェアを受信する画像形成装置とを備えるネットワークシステムであって、
前記第２の配信システムは、配信対象の第２のコントローラに係るソフトウェアを検索し、見つかった該第２のコントローラに係るソフトウェアの配信予約を前記第１の配信システムに送信する送信手段を有し、
前記第１の配信システムは、受信した前記配信予約に伴い、配信すべき前記第１のコントローラに係るソフトウェアを検索する検索手段と、
前記検索手段により見つかったソフトウェアの配信のための設定を行う設定手段と、を有し、
前記画像形成装置は、前記配信対象の第２のコントローラに係るソフトウェアを受信した後に、前記設定の取得に従い、前記見つかったソフトウェアを適用する
ことを特徴とするネットワークシステム。
【請求項９】
第１のコントローラに係るソフトウェアを管理する第１の配信システムと、第２のコントローラに係るソフトウェアを管理する第２の配信システム、前記第１および第２の配信システムから配信対象のソフトウェアを受信する画像形成装置とを備えるネットワークシステムにおける制御方法であって、
前記第２の配信システムが、配信対象の第２のコントローラに係るソフトウェアを検索し、見つかった該第２のコントローラに係るソフトウェアの配信予約を前記第１の配信システムに送信する送信工程と、
前記第１の配信システムが、受信した前記配信予約に伴い、配信すべき前記第１のコントローラに係るソフトウェアを検索する検索工程と、
前記第１の配信システムが、前記検索工程で見つかったソフトウェアの配信のための設定を行う設定手段と、
前記画像形成装置が、前記配信対象の第２のコントローラに係るソフトウェアを受信した後に、前記設定の取得に従い、前記見つかったソフトウェアを適用する工程と、を有する
ことを特徴とする制御方法。
【請求項１０】
請求項１乃至６のいずれか１項に記載の手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置などのネットワークデバイスに対してソフトウェアを配信する技術に関する。
【背景技術】
【０００２】
画像処理などの機能を提供するデバイスは、画像処理機能の向上や、障害が生じた場合に、デバイスに搭載されたコントローラが使用する、ファームウェアを含むソフトウェアのアップデートを行う。アップデート方法としては、インターネット経由で配信サーバが配信を行う方法、ＵＳＢやイントラネットを介してアップデートツールを使用する方法などが挙げられる。配信サーバを利用する場合は、画像形成装置の管理者やソフトウェアを配信するサービスマンがＷｅｂ画面で配信対象の画像形成装置を指定し、配信日時を設定して、インターネット経由で配信を行う。配信サーバは、数万台の画像形成装置に対してリモートでソフトウェアを配信したり、週一回の頻度で定期的にソフトウェアをアップデートする場合もある。
【０００３】
上述のように、配信サーバが数万台もの画像形成装置に対してソフトウェアを配信する場合、１台の配信サーバでは、全ての画像形成装置に対し、同時にソフトウェアを配信できない場合がある。特許文献１は、複数の配信サーバを用意することにより、１台の配信サーバが同時に配信できるクライアント端末装置の台数を超える場合に、別の配信サーバがソフトウェアを配信するシステムを開示している。このシステムによれば、ソフトウェアの配信待ち時間が短縮される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１８６７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像形成装置が提供する機能を拡大するため、画像形成装置に予め搭載された第１のコントローラとは別に、第２のコントローラが接続されることを想定する。第２のコントローラは、例えば画像形成装置に搭載された第１のコントローラとは製造元が異なる。製造元が異なることにより、例えば製造社毎に特色のある高度な画像処理機能を提供することが可能となる。例えば、コントローラの性能に応じて、用紙坪量や用紙サイズ、後処理方法などを考慮して、印刷時間のほか用紙補給や消耗品交換などのタイミングを予測することが可能となるので、印刷ジョブを効率よく処理し、ダウンタイムの最少化を図ることができる。また、デバイスの立面操作部に大きく操作しやすいディスプレイなどを接続できる。
【０００６】
また、従来の配信サーバが管理する画像形成装置のソフトウェアは、第１のコントローラのソフトウェアとアクセサリのソフトウェアである。第２のコントローラは、第２のコントローラのソフトウェアと、第２のコントローラのソフトウェアを実行するためのＯＳをＰＣにインストールし、画像形成装置と接続することにより使用可能となる。従って、第２のコントローラのモジュールは配信サーバのサポート対象外である。つまり、それぞれのコントローラに対応するソフトウェアは、それぞれ異なる配信サーバによりサポートされることが多い。
【０００７】
第２のコントローラが画像形成装置に接続されることで、画像形成装置全体のモジュール数が増えるため、第１のコントローラ、第２のコントローラそれぞれのソフトウェアのバージョンの整合性を取る必要がある。当然ながら、ソフトウェアの組み合わせによっては、画像形成装置として正常に動作しないリスクがある。
【０００８】
また、複数の配信サーバを連携させて、それぞれのサーバがソフトウェアを一括配信してしまうと、画像形成装置側のアップデート処理におけるリブート処理が重なってしまい、アップデート処理が失敗する場合も考えられる。
【０００９】
本発明は、画像形成装置に適用されるソフトウェアを異なる配信システムが配信する際に、一方の配信システムが配信するソフトウェアに対応するソフトウェアを、他方の配信システムが適用時間を重ねないように配信する仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態の配信システムは、画像形成装置の第１のコントローラに係るソフトウェアを管理する第１の配信システムである。前記第１の配信システムは、画像形成装置の第２のコントローラに係るソフトウェアを管理する第２の配信システムから、当該第２のコントローラに係るソフトウェアの配信予約を受信する受信手段と、当該受信した配信予約に伴い、配信すべき前記第１のコントローラに係るソフトウェアを検索する検索手段と、前記検索手段により見つかったソフトウェアの配信のための設定を行う設定手段と、を有する。前記画像形成装置による前記設定の取得に従い、前記見つかったソフトウェアが前記画像形成装置に適用される。
【発明の効果】
【００１１】
本発明によれば、画像形成装置に適用されるソフトウェアを異なる配信システムが配信する際に、一方の配信システムが配信するソフトウェアに対応するソフトウェアを、他方の配信システムが適用時間を重ねないように配信することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の全体構成例を示す図である。
【図２】監視センタホスト、配信サーバ、ホスト、監視装置、ＰＣのハードウェア構成例を示す図を示す。
【図３】各デバイスのハードウェア構成例を示す図である。
【図４】監視センタホスト、配信サーバの通信部分のソフトウェア構成例を示す。
【図５】監視装置、各デバイスの通信部分のソフトウェア構成例を示す。
【図６】メモリマップの構造を示す図である。
【図７】本発明に関わるソフトウェアのソフトウェア構成図を示す。
【図８】配信サーバのＷｅｂ画面である配信予約画面を示す。
【図９】第２の配信サーバの配信情報テーブルを示す。
【図１０】バージョン管理テーブルを示す。
【図１１】第２の配信サーバの情報テーブルを示す。
【図１２】第１の配信サーバの配信情報テーブルを示す。
【図１３】ファームウェア配信処理の流れを示すシーケンス図である。
【図１４】ファームウェア配信処理の流れを示すシーケンス図である。
【図１５】配信サーバの予約受付フローを示す。
【図１６】監視センタホストのフローを示す。
【図１７】監視装置のポーリング処理フローを示す。
【図１８】第１のクライアントモジュールが行うインストールフローを示す。
【図１９】第２のクライアントモジュールが行うインストールフローを示す。
【発明を実施するための形態】
【００１３】
図１は、本実施形態のネットワークシステムの全体構成図の一例を示す図である。図１に示すネットワークシステムは、操作システム１０１、外部サーバ１０６、第１の配信サーバ１３３、監視センタホスト１１１、第２の配信サーバ１４３、顧客システム１１４、１１９、１２９を備える。操作システム１０１は、データベース１０３と、データベース１０３にデータ登録や修正などの制御を行なうＰＣ１０４を備える。ＰＣ１０４は、監視センタホスト１１１、配信サーバ１３３が提供するＷｅｂサイトへアクセスしてデータの閲覧や、ファームウェアの配信予約等を行う。ホスト１０２、データベース１０３、ＰＣ１０４はＬＡＮ１０５を介して接続されている。
【００１４】
尚、図１に示すネットワークシステムは、複数の装置から構成され示されているが、同等の機能を達成できれば同一の構成でなくてもよい。例えば、データベース１０３は物理的にホスト１０２内に存在してもよい。さらに、ホスト１０２からアクセス可能であれば、インターネット１３２を経由した別の場所に存在しても構わない。つまり、複数の装置から構成されるようにしてもよいし、１つの装置から構成するようにしても良い。
【００１５】
外部サーバ１０６は、ホスト１０７、データベース１０８、ＰＣ１０９を備える。各装置は、ＬＡＮ１１０を介して接続されている。外部サーバ１０６は、配信サーバ１３３のファームウェアを高速に配信するためサービスを提供する機能を有する。外部サーバ１０６は、第１の配信サーバにアクセスしてＵＲＬを取得したデバイスが、当該ＵＲＬに基づいて外部サーバ１０６にアクセスした際に、配信対象のソフトウェアをアクセス元のデバイスに配信する。
【００１６】
次に、監視センタホスト１１１を説明する。監視センタホスト１１１は、データベース１１２を有する、デバイス監視システムである。データベース１１２は、デバイス監視のための情報や、デバイスの稼働状態などを蓄積する履歴記憶手段として機能するデータベースである。監視センタホスト１１１とデータベース１１２はＬＡＮ１１３で接続されており、ＬＡＮ１１３はインターネット１３２に接続されている。なおデータベース１１２は、物理的に監視センタホスト１１１内に存在してもよい。さらに、監視センタホスト１１１からアクセス可能であれば、インターネット１３２を経由した別の場所に存在しても構わない。監視センタホスト１１１は、監視装置１１７、１２２、１２３やデバイス１３１から監視対象としてのデバイスの情報、稼働状態を示す情報を収集、蓄積、加工し、警告等を外部に提供する機能を有する。
【００１７】
次に、第１の配信サーバ１３３を説明する。配信サーバ１３３は、デバイスに第１のコントローラのためのファームウェアを配信する配信システムである。詳細は後述するが、配信サーバ１３３は、ソフトウェアの配信指示を行ったデバイスに対し、配信対象のソフトウェアがあれば当該配信対象のソフトウェアをダウンロードするためのＵＲＬをデバイスに渡す。データベース１３４は、デバイスに適用するためのファームウェアを蓄積する記憶手段としてのデータベースである。配信サーバ１３３とデータベース１３４はＬＡＮ１３５で接続されており、ＬＡＮ１３５はインターネット１３２に接続されている。なお、データベース１３４は物理的に配信サーバ１３３内に存在してもよい。さらに、配信サーバ１３３からアクセス可能であれば、インターネット１３２を経由した別の場所に存在しても構わない。なお、ＬＡＮ１１３とＬＡＮ１３５は同一としてもよく、データベース１３４とデータベース１１２はデータを送受信しても構わない。
【００１８】
図１には、監視センタホスト１１１およびデータベース１１２と、配信サーバ１３３とデータベース１３４が１つずつしか示されていない。しかし、実際には、多くのデバイスおよび監視装置からの情報収集や、ファームウェア配信の負荷分散を行なうために、複数の監視センタホスト１１１、データベースに分散処理をさせるケースもある。
【００１９】
次に、第２の配信サーバ１４３を説明する。第２の配信サーバ１４３は、デバイスに第２のコントローラのためのファームウェアを配信する配信システムである。第２の配信サーバ１４３は、ＰＣ１３９、ホスト１４０、データベース１４１を備える。ＰＣ１３９は、例えば、第２のソフトウェアの配信予約の設定画面を提供する。データベース１４１は、デバイスに適用するためのファームウェアを蓄積する記憶手段としてのデータベースである。ＰＣ１３９、ホスト１４０、データベース１４１は、ＬＡＮ１４２で接続されており、ＬＡＮ１４２はインターネット１３２に接続されている。
【００２０】
次に、顧客側のシステム構成について説明する。顧客側のシステムは、顧客により構成が異なる。図１では、顧客システム１１４、１１９、１２９が示されている。顧客システム１１４（Ａ社Ｘ事業所）においては、インターネット１３２に接続されたＬＡＮ１１８に接続されたデバイス１１５、１１６が監視装置１１７により監視され、監視装置１１７は、インターネット１３２経由で監視センタホスト１１１と通信している。一方、顧客システム１１９（Ａ社Ｙ事業所）においては、監視装置１２２、１２３によってＬＡＮ１２８上のデバイスが管理されている。監視装置１２２により、デバイス１２０、１２１、１２４、１２５が、監視装置１２３によりデバイス１２６、１２７が夫々管理されている。なお、デバイスはプリンタや複合機などの画像形成装置であり、以下では単にデバイスまたはネットワークデバイスと呼称する。
【００２１】
顧客１２９システム（Ｂ社）においては、インターネット１３２に接続されたＬＡＮ１３０に接続されたデバイス１３１自身が、直接インターネット１３２経由で監視センタホスト１１１と通信している。デバイス１３１は、監視装置１１７、１２２、１２３と同等の機能を有しており、自身の稼働情報を監視センタホスト１１１に送信している。本実施例では、デバイス１３１には、デバイスにインストールされている第１のコントローラと異なる第２のコントローラがインストールされているＰＣ１３６が接続され、ディスプレイ１３７が接続されている。
【００２２】
ネットワークデバイス１３１には、第２のコントローラが別体、または内蔵した形態で搭載されており、また、ディスプレイ１３７が接続されている。第２のコントローラには監視装置の機能も搭載されている。ネットワークデバイス１３１には、他の顧客システムに設置されたネットワークデバイスと同様に第１のコントローラも搭載されている。ネットワークデバイス１３１は、第１のコントローラのみの制御のもとで単独で使用してもよいし、第２のコントローラを使用して、ディスプレイ１３７を併用して利用することも可能である。
【００２３】
例えば、画像形成装置においては、第１のコントローラを備える通常の画像処理などの制御機能に加え、高度なプリントジョブの管理を行うためにもう１つのコントローラとして第２のコントローラを搭載する。ここで、高度なプリントジョブの管理とは、用紙坪量や用紙サイズ、後処理方法などを考慮して、印刷時間のほか用紙補給や消耗品交換などのタイミングを予測する機能を備え、プリントジョブを管理することをいう。この機能により、印刷ジョブを効率よく処理し、ダウンタイムの最少化を図ることができる。また、第２のコントローラを用いることで、ネットワークデバイスの立面操作部に大きく操作しやすいディスプレイなどを接続できる場合もある。
【００２４】
第２の配信サーバ１４３には、ホスト１４０、データベース１４１が、ＬＡＮ１４２で接続されている。第２の配信サーバ１４３は、第２のコントローラ用のソフトウェアを配信するためサービスを持つ。
【００２５】
ネットワークデバイス１３１と第２のコントローラを備える別の機器を接続することで、第２のコントローラを用いてネットワークデバイス１３１の制御を行う形態について更に説明する。この場合は、第２のコントローラのモジュールと、第２のコントローラのモジュールを実行するためのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のソフトウェアを該別の機器にインストールし、ネットワークデバイス１３１と接続して使用する。第２のコントローラに対応するソフトウェアは、第１の配信サーバでは配信対象外なので、第２のコントローラに対応するソフトウェアをサポート対象とする第２の配信サーバ１４３によりソフトウェア更新などのサービスがサポートされる。
【００２６】
図２は、監視センタホスト１１１のハードウェア構成図を示す。また、配信サーバ１３３、ホスト１０２、１０７、１４０、監視装置１１７、１２２、１２３、ＰＣ１０４、１０９、１３６、１３９のハードウェア構成図も同一である。図２に示すように、監視センタホスト１１１は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、操作部２０５、表示部２０６、外部機器Ｉ／Ｆ２０７、ＮｅｔｗｏｒｋＩ／Ｆ２０８を備える。なお、ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
【００２７】
ＣＰＵ２０１は、本装置上の各処理部を制御する。書換え不可能なＲＯＭ２０２は、本装置の各処理に関わるプログラムやデータを記憶する。ＲＡＭ２０３は、本装置の各処理に関わる一時的なデータを電気的に記憶でき、かつ書き換え可能である。ＨＤＤ２０４は、本装置の各処理に関わるプログラムやデータ、および一時的なデータ、監視対象のデバイスに関する情報、およびデバイスから収集した情報などを記憶する。たとえば、ＨＤＤ２０４は、稼働情報などを保存する。監視センタホスト１１１、配信サーバ１３３の場合、ＰＣ１０４が、後述する図４の処理を行うプログラムをＨＤＤ２０４に記憶している。このプログラムは、ＲＡＭ２０３を一時保存領域として使用し、ＣＰＵ２０１によって呼び出され実行される。
【００２８】
操作部２０５は、本装置への指示入力を受け付けるキーボードである。表示部２０６は、本装置の動作状況や、本装置上で動作する各プログラムが出力する情報を表示する。ＮｅｔｗｏｒｋＩ／Ｆ２０８は、ネットワーク経由でＬＡＮおよびインターネット１３２に接続し、外部と情報交換を行う。外部機器Ｉ／Ｆ２０７は外部記憶機器等を接続する。これらの要素がシステムバス２０９により結び付き、データをやりとりしている。
【００２９】
図３は、本実施形態の画像形成装置として機能するデバイス１１５、１１６、１２０、１２１、１２４、１２５、１２６、１２７、１３１におけるハードウェア構成図を示す。デバイスとしては、具体的には、プリンタ及びファクシミリ機能が統合的に設けられた複合機、ＰＣなどからデータを受信し印刷するプリンタ（電子写真方式及びインクジェット方式を含む）や、スキャナーや、ファクシミリなどが挙げられる。本図では、デバイスの一例として複合機の構成を示している。
【００３０】
イメージリーダ３０２は、原稿給送部３０１で原稿を読み込む。画像形成部３０３は、イメージリーダ３０２で読み込んだ原稿やＮｏｔｗｏｒｋＩ／Ｆ３０５からネットワーク経由で受信したデータを印刷画像に変換・印刷出力する。排紙部３０４は印刷出力した紙を排出し、ソートやステイプルといった処理を施す。ＮｅｔｗｏｒｋＩ／Ｆ３０５はネットワーク経由でＬＡＮおよびインターネット１３２に接続し、外部と情報交換を行う。ＣＰＵ３０６は本装置上の各処理部を制御する。ＣＰＵ３０６は、デバイスの動作状態を監視し、障害等の特定のイベントが発生した場合には、その状態を示す状態情報を、あらかじめ定めた宛先へと送信する。宛先はたとえば、監視センタホスト１１１や監視装置などである。
【００３１】
書換え不可能なＲＯＭ３０７は、本装置の各処理に関わるプログラムやデータを記憶する。ＲＡＭ３０８は、本装置の各処理に関わる一時的なデータを電気的に記憶でき、かつ書き換え可能である。ＨＤＤ３０９は本装置の各処理に関わるプログラムやデータ、および一時的なデータ、本装置へ送信されてきたユーザデータなどを記憶する。各デバイスは、後述する図５の処理を行うプログラムをＨＤＤ３０９に記憶している。このプログラムは、ＲＡＭ３０８を一時保存領域として使用し、ＣＰＵ３０６によって呼び出され実行される。
【００３２】
操作部３１０は、本装置への指示入力を受け付ける。表示部３１１は本装置の動作状況および操作部３１０に対する操作に関わる情報を表示する。そしてこれらの要素がシステムバス３１２により結び付き、データをやりとりしている。なお、デバイス自身が監視のための情報を送信する機能を持つデバイス１３１は、ＲＯＭ３０７またはＨＤＤ３０９内に、前記監視データ送出処理にかかわるプログラムやデータを保持している。
【００３３】
図４は、監視センタホスト１１１、配信サーバ１３３における通信部分のソフトウェア構成図を示す。ＳＯＡＰ通信部４０１は、監視装置１１７、１２２、１２３またはデバイス１３１よりＮｅｔｗｏｒｋＩ／Ｆ２０８を介して受信したＳＯＡＰデータをＳＯＡＰメッセージ解析部４０２に渡す。また、ＳＯＡＰメッセージ作成部４０３が作成したＳＯＡＰデータをＮｅｔｗｏｒｋＩ／Ｆ２０８を介して監視装置１１７、１２２、１２３またはデバイス１３１に送信する。
【００３４】
収集情報処理部４０４では、監視装置１１７、１２２、１２３またはデバイス１３１から受信した情報をそのまま、または加工し、データベースアクセス部４０６を介してデータベース１１２、あるいはデータベース１３４に格納する。監視センタホスト１１１の場合、監視制御部４０５は、監視装置１１７、１２２、１２３またはデバイス１３１のスケジュール管理などの制御を行なう。配信サーバ１３３の場合、監視制御部４０５は、監視装置１１７、１２２、１２３またはデバイス１３１のポーリング処理などの制御を行う。
【００３５】
図５は、監視装置１１７、１２２、１２３またはデバイス１３１における通信部分のソフトウェア構成図を示す。ＳＯＡＰ通信部５０１は、監視センタホスト１１１または配信サーバ１３３によりＮｅｔｗｏｒｋＩ／Ｆ２０８を介して受信したＳＯＡＰデータを、ＳＯＡＰメッセージ解析部５０３に渡す。また、ＳＯＡＰメッセージ作成部５０２が作成したＳＯＡＰデータをＮｅｔｗｏｒｋＩ／Ｆ２０８を介して監視センタホスト１１１、配信サーバ１３３に送信する。
【００３６】
監視制御部５０４は、情報蓄積部５０６に保持する監視対象のデバイス情報の更新や、デバイス１１５、１１６の情報取得を行なう。デバイス情報処理部５０５は、デバイスの稼働情報を、情報蓄積部５０６に蓄積する。情報蓄積部５０６に蓄積したデータは、デバイス情報処理部５０５を介してそのままＳＯＡＰメッセージ作成部５０２に渡され、監視センタホスト１１１へ送信される。
【００３７】
図６は、監視センタホスト１１１、配信サーバ１３３、監視装置１１７、１２２、１２３、または各デバイスにおいてプログラムがロードされた際のメモリマップの構造を示す図である。本発明に係る処理プログラムを実行する際、監視センタホスト１１１、監視装置１１７、１２２、１２３ではＲＡＭ２０３上に、各デバイスではＲＡＭ３０８上にプログラムがロードされる。
【００３８】
メモリマップは、基本Ｉ／Ｏプログラム６０１、システム・プログラム６０２、本実施例の処理プログラムを初めとする各種処理プログラム６０３、関連データを格納するエリア６０４、プログラムのワークエリア６０５で構成されている。基本Ｉ／Ｏプログラム６０１は、本装置上の入出力を司る。システム・プログラム６０２は、各処理プログラムに動作環境を提供する。
【００３９】
図７は、本発明に係るネットワークシステムを実現する各ソフトウェアのブロック図を示す。図７に示すデバイス１３１は、デバイス内の第１のコントローラ７４０を備え、かつＰＣ１３６にインストールされた第２のコントローラ７４１が接続された状態を示す。第１のコントローラ７４０は、第１の通信Ｉ／Ｆ部７０２、通信データ制御部７０３、第２の通信Ｉ／Ｆ部７０４、第１のクライアントモジュール７０５、エンジン制御部７０６、アクセサリ制御部７０７、データ記憶部７０８を備える。
【００４０】
第１の通信Ｉ／Ｆ部７０２は、第１の配信サーバ１３３、及び外部サーバ１０６との通信を司る。通信データ制御部７０３は、第１の通信Ｉ／Ｆ部７０２、及び第２の通信Ｉ／Ｆ部７０４から受信した通信データを制御する。第２の通信Ｉ／Ｆ部７０４は、第１のコントローラ７４０と第２のコントローラ７４１との通信を司る。第１のクライアントモジュール７０５は、第１の配信サーバ１３３から受信したＵＲＬ情報を元に、外部サーバ１０６からソフトウェアを受信し、エンジン制御部７０６や、アクセサリ制御部７０７にインストールする役割を持つ。データ記憶部７０８は、第１のコントローラ内のソフトウェアデータの記憶や、一時記憶領域として使用する。
【００４１】
第２のコントローラ７４１は、第１の通信Ｉ／Ｆ部７０９、通信データ制御部７１０、第２の通信Ｉ／Ｆ部７１１、第２のクライアントモジュール７１２、画像形成部７１３、ＯＳ７１４、データ記憶部７１５を備える。第１の通信Ｉ／Ｆ部７０９は、第２のコントローラと第２の配信サーバ１４３との通信を司る。通信データ制御部７１０は、第１の通信Ｉ／Ｆ部７０９、及び第２の通信Ｉ／Ｆ部７１１から受信した通信データを制御する。第２の通信Ｉ／Ｆ部７１１は、第１のコントローラ７４０と第２のコントローラ７４１との通信を司る。第２のクライアントモジュール７１２は、第２の配信サーバ１４３からソフトウェアを受信し、画像形成部７１３やＯＳ７１４にインストールする役割を持つ。データ記憶部７１５は、第２のコントローラ内のソフトウェアデータの記憶や一時記憶領域として使用する。
【００４２】
第１の配信サーバ１３３は、通信Ｉ／Ｆ部７１６、通信データ制御部７１７、データ制御部７１８、ファームデータ登録部７１９、ファームデータ検索部７２０、ファームデータ記憶部７２１を備える。通信Ｉ／Ｆ部７１６は、ネットワークデバイスの第１のコントローラ７４０と第１の配信サーバ１３３との通信を司る。通信データ制御部７１７は、通信Ｉ／Ｆ部７１６から受信した通信データを制御する。データ制御部７１８は、第１の配信サーバ内のデータの制御を司る。ファームデータ登録部７１９は、ソフトウェアの情報をファームデータ記憶部７２１に登録する。ファームデータ検索部７２０は、ソフトウェアの検索をファームデータ記憶部７２１より行う。ファームデータ記憶部７２１は、第１の配信サーバ内に配信用のファームデータを記憶する。ファームデータ記憶部に記憶されているソフトウェアは、エンジン制御部７０６と、アクセサリ制御部７０７のソフトウェアを対象とする。
【００４３】
外部サーバ１０６は、データ受信部７２２、配信部７２３、データ管理部７２４、データ記憶部７２５を備える。外部サーバ１０６は、第１の配信サーバ１３３のソフトウェアを高速に配信するためサービスを持ち、第１の配信サーバより定期的にソフトウェアデータが転送されている。データ受信部７２２は、第１の配信サーバから転送されたソフトウェアデータを受信する。配信部７２３は、データ記憶部７２５に登録されているデータを第１のコントローラ７４０に高速に配信する。データ管理部７２４は、データ受信部７２２から受信したデータをデータ記憶部７２５に記憶させる。また、配信部７２３に配信用のデータを供給する。データ記憶部７２５は、データ管理部７２４から指示を受け各種データを記憶する。
【００４４】
第２の配信サーバ１４３は、通信Ｉ／Ｆ部７２６、通信データ制御部７２７、データ制御部７２８、ファームデータ登録部７２９、ファームデータ検索部７３０、ファームデータ記憶部７３１を備える。通信Ｉ／Ｆ部７２６は、ネットワークデバイスの第２のコントローラと第２の配信サーバとの通信を司る。通信データ制御部７２７は、通信Ｉ／Ｆ部７２６から受信した通信データを制御する。データ制御部７２８は、第２の配信サーバ内のデータの制御を司る。ファームデータ登録部７２９は、ソフトウェアの情報をファームデータ記憶部７３１に登録する。ファームデータ検索部７３０は、ソフトウェアの検索をファームデータ記憶部７３１より行う。ファームデータ記憶部７３１は、第２の配信サーバ内に配信用のファームデータを記憶する。ファームデータ記憶部７３１に記憶されているソフトウェアは、画像形成部７１３とＯＳ７１４を対象とする。
【００４５】
図８は、第２の配信サーバ１４３のＰＣ１３９がＷｅｂ画面として提供する配信予約画面９０１を示している。ユーザはこのＷｅｂ画面を使用して配信予約を行う。デバイスＩＤ９０２は、配信予約対象であるネットワークデバイスのネットワークデバイスＩＤを示す。現在のグループバージョン９０３は、ネットワークデバイスに現在適用されているグループバージョンを示す。グループバージョンとは、全てのモジュールのバージョンの組み合わせを統合し、一つのバージョンで表したバージョンである。配信日９０４、配信時刻９０５はそれぞれ、ネットワークデバイスにソフトウェアを配信する配信日と配信時刻を指定するための項目である。
【００４６】
配信対象のグループバージョン９０６は、ユーザから配信予約を受け付けた際に配信対象のデバイスに配信可能なグループバージョンを示す。通常は、最新のソフトウェアバージョンを指定するが、任意のグループバージョンも指定可能である。ＯＫボタン９０７は、配信予約の内容を適用するためのボタンである。キャンセルボタン９０８は、配信予約の内容をキャンセルするためのボタンである。この例では、第２の配信サーバ１４３が提供する画面として説明したが、第１のＰＣ（不図示）がこの配信予約画面９０１を提供することも可能である。
【００４７】
図９は、第２の配信サーバ１４３の配信情報テーブル１００１を示す。第２の配信サーバ１４３は、ユーザが配信予約画面９０１で予約した内容に基づいて配信情報テーブル１００１を作成し、ＤＢ１４１に保持させる。デバイスＩＤ１００２は、配信予約対象であるネットワークデバイスのネットワークデバイスＩＤを示す。配信開始時刻１００３は、配信予約画面９０１でユーザが予約した配信開始時刻を示す。配信対象グループバージョン１００４は、配信予約画面９０１でユーザが予約したグループバージョンを示す。配信対象モジュール名１００５は、配信対象グループバージョン１００４に対応する配信対象モジュールとそれらのバージョンを示す。第２の配信サーバ１４３は、図９のバージョン管理テーブルを参照し、自身が配信するモジュールを判断する。ファイルサイズ１００６には、配信対象モジュールのファイルサイズの合算値が格納される。各モジュールのファイルサイズはバージョン管理テーブル１１０１に登録されている。
【００４８】
図１０は、バージョン管理テーブル１１０１を示す。バージョン管理テーブル１１０１は、第１の配信サーバ１３３、第２の配信サーバ１４３の双方に登録されている適切なバージョンの組み合わせであるバージョン管理テーブルを示す。このテーブルは配信サーバ１３３，１４３のＤＢ１３４，１４１に記憶されている。本テーブルでは、１１０２に示すように、行にグループバージョンが示され、列に各モジュールが示される。この例では、グループバージョン１１０３乃至１１０６が示される。各グループバージョンの列には、対応するモジュールのバージョンとファイルサイズが登録されている。尚、バージョン管理テーブル１１０１は、第１の配信サーバ１３３、第２の配信サーバ１４３で同様の情報を共有しており、定期的に双方の配信サーバより更新される。
【００４９】
図１１は、第２の配信サーバ１４３の情報テーブル１２０１を示す。対象配信サーバ１２０２には、配信を担うサーバ名が格納される。本テーブルは、第１の配信サーバ１３３が参照するため、対象は第２の配信サーバ１４３となる。平均通信速度１２０３は、第２の配信サーバ１４３がソフトウェアを配信する際の平均通信速度をMbps(bits per second)で示している。本実施例では、第２の配信サーバ１４３は、１０Mbpsの平均通信速度を持つ。インストール所要時間１２０４は、画像形成装置が第２の配信サーバにより配信されたソフトウェアをインストールする際の所要時間を示す。本実施例では、デバイスは、一分あたり、１００ＭＢのソフトウェアをインストールする。
【００５０】
図１２は、第１の配信サーバ１３３のＤＢ１３４が備える配信情報テーブル１３０１を示す。第１の配信サーバ１３３は、第２の配信サーバ１４３から配信情報を通知されると、通知された配信情報をＤＢ１３４に保持する。デバイスＩＤ１３０２は、配信予約対象であるネットワークデバイスのデバイスＩＤを示す。配信開始時刻１３０３は、第１のコントローラ７４０に係るソフトウェアの配信開始時刻を示す。配信対象グループバージョン１３０４は、デバイスに配信するグループバージョンを示す。配信対象モジュール１３０５には、配信対象グループバージョン１３０４に対応する配信対象モジュールとバージョンが格納される。第１の配信サーバ１３３は、図９のバージョン管理テーブルを参照し、自身が配信するモジュールと配信開示時刻を判断する。
【００５１】
図１３は、本発明におけるソフトウェア配信処理のシーケンス図を示す。本シーケンスでは、ネットワークデバイスに第２のコントローラ７４１が接続され、第１のコントローラ７４０と第２のコントローラ７４１の両方にソフトウェアが配信される例を示す。第２のコントローラがネットワークデバイスとは別の機器として接続されることで該ネットワークデバイスに搭載された際には、当該別の機器を第２の監視装置としている。尚、処理の詳細については、図１５乃至図１９のフローチャートで説明するため、本シーケンスでは概要説明を行う。以下で説明するシーケンスは、各処理を行う各装置のＣＰＵ２０１，３０６が、ＲＯＭ２０２，３０７、またはＨＤＤ２０４，３０９に格納されたプログラムをＲＡＭ２０３，３０８にロードし実行することで実現される。また、以下の説明では、顧客側のＢ社のシステムと通信するものとする。
【００５２】
Ｓ８０１において、第２の配信サーバ１４３は、ユーザから配信予約９０１を受け付ける。Ｓ８０２において、第２の配信サーバ１４３は、バージョン管理テーブル１１０１を参照し、第２の配信サーバ１４３で配信するソフトウェアを検索する。Ｓ８０３において、第２の配信サーバ１４３は、配信予約を図９で説明した配信情報テーブル１００１に設定する。Ｓ８０４において、第２の配信サーバ１４３は、配信情報テーブル１００１に設定された配信情報と、図１１に示す情報テーブル１２０１を第１の配信サーバ１３３に送信する。
【００５３】
Ｓ８０５において、第１の配信サーバ１３３は、バージョン管理テーブル１１０１を参照し、Ｓ８０４で通知された配信情報を元に、第１の配信サーバ１３３が配信するソフトウェアを検索する。Ｓ８０６において、第１の配信サーバ１３３は、情報テーブル１２０１を参照し、配信情報の合算ファイルサイズから、第２の配信サーバ１４３側の配信が終了する時間を計算する。Ｓ８０７において、第１の配信サーバ１３３は、配信予約として第１の配信サーバの配信情報テーブル１３０１(図１２)を設定する。
【００５４】
Ｓ８０８において、第１の配信サーバ１３３は、配信対象ネットワークデバイスのネットワークデバイスＩＤを配信ネットワークデバイスとして設定するように監視センタホスト１１１に指示する。これにより、配信のための設定が、画像形成装置の監視モジュールとして機能する第１の監視装置１３１がポーリングする第１の監視装置１３１に対して行われる。具体的には、Ｓ８０９において、監視センタホスト１１１は、第１の監視装置１３１のレスポンス用に配信フラグを設定する。配信フラグとは、配信用の情報があることを示すためのフラグである。画像第１の監視装置１３１は、配信フラグが設定されていれば、第１のクライアントモジュール７０５に配信サーバに問い合わせを行うように指示を行う。
【００５５】
Ｓ８１０において、第１の監視装置１３１は、監視センタホスト１１１に配信フラグの確認を行う。Ｓ８１１において、監視センタホスト１１１は、第１の監視装置１３１に配信フラグを返答する。Ｓ８１２において、第１の監視装置１３１は、第１のクライアントモジュール７０５に配信予約の取得を指示する。
【００５６】
次に、図１４のＳ８１３において、第２の監視装置１３６は、第２の配信サーバ１４３に配信フラグの確認を行う。Ｓ８１４において、第２の配信サーバ１４３は、第２の監視装置１３６に配信フラグをレスポンスとして返す。Ｓ８１５において、第２の監視装置１３６は、第２のクライアントモジュール７１２に配信予約の取得を指示する。Ｓ８１６において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３に配信情報を問い合わせる。
【００５７】
Ｓ８１７において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３から配信情報をダウンロードして設定する。Ｓ８１８において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３にソフトウェア配信指示を行う。Ｓ８１９において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３から配信対象ソフトウェアのＵＲＬを受信する。Ｓ８２０において、第２のクライアントモジュール７１２は、ＵＲＬを参照し、第２の配信サーバ１４３からソフトウェアをダウンロードする。Ｓ８２１において、第２のクライアントモジュール７１２は、ダウンロードしたソフトウェアをインストールする。Ｓ８２２において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３に配信結果を送信する。
【００５８】
一方、Ｓ８２３において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３にソフトウェア配信指示を行う。Ｓ８２４において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３から配信対象ソフトウェアのＵＲＬを受信する。Ｓ８２５において、第１のクライアントモジュール７０５は、ＵＲＬを参照し、外部サーバ１０６からソフトウェアをHDDにダウンロードする。
【００５９】
Ｓ８２６において、第１のクライアントモジュール７０５は、第２のクライアントモジュール７１２に配信処理が完了したか問い合わせを行う。Ｓ８２７において、Ｓ８２６の問い合わせの結果が配信完了を示すなら、第１のクライアントモジュール７０５は、ソフトウェアをインストールする。Ｓ８２８において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３に配信結果を送信する。
【００６０】
図１５は、配信サーバの予約受付フローを示す。Ｓ１４０１乃至Ｓ１４０８は、第２の配信サーバ１４３が行う処理のフローを示す。Ｓ１４０１において、第２の配信サーバ１４３は、ユーザから配信予約を受け付ける。ユーザは第２の配信サーバ１４３が提供する配信予約画面９０１を用いて配信予約を行い、配信対象のデバイスＩＤ、配信日、配信時刻、配信するソフトウェアのグループバージョンを指定する。
【００６１】
Ｓ１４０２において、第２の配信サーバ１４３は、配信予約画面９０１で指定されたグループバージョンを元に、バージョン管理テーブル１１０１を参照して、配信するソフトウェアを検索する。検索した結果、配信対象モジュールは、グループバージョンＶ３．１に紐づく、ＢＯＯＴ(第２のコントローラ)のＶ２．１と、Ｍ−ＣＯＮ(第２のコントローラ)のＶ３．１となる。その結果、第２の配信サーバ１４３は、以下のような配信情報を決定し、配信情報テーブル１００１に登録する。ここでは、下記の配信予約を実行した例を示す。
＜配信情報＞
配信日：２０１３／１０／１
配信時刻：９：００
配信するソフトウェアのグループバージョン：３．１
配信対象モジュール：ＢＯＯＴ(第２のコントローラ)  Ｖ２．１、Ｍ−ＣＯＮ(第２のコントローラ)   Ｖ３．１
【００６２】
Ｓ１４０３において、第２の配信サーバ１４３は、Ｓ１４０２で決定した情報に基づき、配信予約を設定する。この内容は、第２の配信サーバの配信情報テーブル１００１に反映される。なお、設定が完了した時点で、第２の配信サーバ１４３は配信フラグを立てる。Ｓ１４０４において、第２の配信サーバ１４３は、第２の配信サーバの配信情報テーブル１００１に登録された配信情報を第１の配信サーバ１３３に送信する。
【００６３】
Ｓ１４０５において、第２の配信サーバ１４３は、第２の監視装置１３６からポーリング通信を受信する。Ｓ１４０６において、第２の配信サーバ１４３は、第２の監視装置１３６に配信フラグをレスポンスとして返す。Ｓ１４０７において、第２の配信サーバ１４３は、第２のクライアントモジュール７１２から配信要求を受信する。Ｓ１４０８において、第２の配信サーバ１４３は、第２のクライアントモジュール７１２に配信ソフトウェアを提供する。
【００６４】
Ｓ１４０９乃至Ｓ１４１６は、第１の配信サーバが行う処理のフローを示す。Ｓ１４０９において、第１の配信サーバ１３３は、第２の配信サーバ１４３からの配信情報を受信する。Ｓ１４１０において、第１の配信サーバ１３３は配信情報で指定されたグループバージョンを元に、バージョン管理テーブル１１０１を参照し、第１の配信サーバ１３３が配信するソフトウェアを検索する。第１の配信サーバ１３３は、第２の配信サーバ１４３が配信するソフトウェアの組合せと整合するソフトウェアの組合せを検索する。具体的には、本実施例の場合、配信対象グループバージョンは、３．１である。従って、Ｓ１４１０で検索した結果、配信対象モジュールは、ＢＯＯＴ(第１のコントローラ)  Ｖ２．１、Ｍ−ＣＯＮ(第１のコントローラ)  Ｖ３．１、ＡＣＣＯＮ(アクセサリ)  Ｖ１．４と判定される。
【００６５】
Ｓ１４１１において、第１の配信サーバ１３３は、第１の配信サーバ１３３で配信可能なソフトウェアがあると判断した場合、Ｓ１４１２に進み、ないと判断した場合は処理を終了する。Ｓ１４１２において、第１の配信サーバ１３３は、受信した情報テーブル１２０１と配信情報のファイルサイズを用いて、第２の配信サーバ１４３の配信が終了する時間を計算する。
【００６６】
第１の配信サーバ１３３は、受信した情報テーブル１２０１を参照し、第２の配信サーバ１４３の平均通信速度と、ファイルサイズから、以下の式により配信所要時間を計算する。
（式１）
配信ファイルサイズ（ＭＢ）／（第２の配信サーバの平均通信速度（Mbps）/８）＝配信所要時間（ｓ）
従って、第２の配信サーバの平均通信速度：１０Mbps、配信ファイルサイズ：５００ＭＢなので、配信所要時間は４００秒≒６．７分という結果になる。
【００６７】
次に、配信後にネットワークデバイスがインストールにかかる時間を第２の配信サーバ情報テーブル１２０１から計算する。インストール所要時間１２０４を参照すると、１００ＭＢあたり、２分を要するので、５００ＭＢのソフトウェアのインストール所要時間は、１０分と計算できる。従って、６．７分＋１０分＝１６．７分が、配信所要時間となる。
【００６８】
Ｓ１４１３において、第１の配信サーバ１３３は、Ｓ１４１２の結果を踏まえ、配信予約を設定する。この内容は、第１の配信サーバの配信情報テーブル１３０１に反映される。
＜配信情報＞
配信日：２０１３／１０／１
配信時刻：９：１６．７
配信するソフトウェアのグループバージョン：３．１
配信対象モジュール：ＢＯＯＴ(第１のコントローラ)  Ｖ２．１、Ｍ−ＣＯＮ(第１のコントローラ)  Ｖ３．１、ＡＣＣＯＮ(アクセサリ)  Ｖ１．４
【００６９】
Ｓ１４１４において、第１の配信サーバ１３３は、配信対象のネットワークデバイスのデバイスＩＤ１３０２を配信予約対象ネットワークデバイスとして設定するように、監視センタホスト１１１に指示する。Ｓ１４１５において、第１の配信サーバ１３３は、第１のクライアントモジュール７０５から配信要求を受信する。Ｓ１４１６において、第１の配信サーバ１３３は、第１のクライアントモジュール７０５に配信用のＵＲＬを提供する。
【００７０】
図１６は、監視センタホスト１１１による処理フローを示す。Ｓ１５０１において、監視センタホスト１１１は、第１の配信サーバ１３３から配信対象のデバイスＩＤ１３０２を受信する。Ｓ１５０２において、監視センタホスト１１１は、第１の監視装置１３１のレスポンス用に配信フラグを設定する。配信フラグとは、配信用の情報があることを示すためのフラグである。Ｓ１５０３において、監視センタホスト１１１は、第１の監視装置１３１からポーリング通信を受信する。Ｓ１５０４において、監視センタホスト１１１は、第１の監視装置１３１に設定した配信フラグを返答する。
【００７１】
図１６は、監視装置のポーリング処理フローを示す。監視装置は、監視センタホスト１１１または第２の配信サーバ１４３に一定間隔でポーリング確認を行う。Ｓ１６０１乃至１６０４は、第１の監視装置１３１による処理フローである。Ｓ１６０１において、第１の監視装置１３１は、ポーリングの確認時刻になったかどうかを判断する。確認時刻になった場合はＳ１６０２に進み、そうでない場合は待機する。Ｓ１６０２において、第１の監視装置１３１は、監視センタホスト１１１に配信フラグの確認を行う。Ｓ１６０３において、第１の監視装置１３１は、監視センタホスト１１１の返答として、配信フラグの設定を受け取った場合はＳ１６０４に進み、受け取っていない場合は、処理を終了する。Ｓ１６０４において、第１の監視装置１３１は、第１のクライアントモジュール７０５に配信予約の取得を指示する。
【００７２】
Ｓ１６０５乃至Ｓ１６０８は、第２の配信サーバ１４３による処理フローである。Ｓ１６０５において、第２の監視装置１３６は、ポーリングの確認時刻になったかどうかを判断する。確認時刻になった場合は、Ｓ１６０６に進み、そうでない場合は待機する。Ｓ１６０６において、第２の監視装置１３６は、第２の配信サーバ１４３に配信フラグの確認を行う。Ｓ１６０７において、第２の監視装置１３６は、第２の配信サーバ１４３の返答として、配信フラグ設定を受け取った場合は、処理はＳ１６０８に進み、受け取っていない場合は処理を終了する。Ｓ１６０８において、第２の監視装置１３６は、第２のクライアントモジュール７１２に配信予約の取得を指示する。
【００７３】
図１８は、第２のクライアントモジュールによるソフトウェアのインストールフローを示す。Ｓ１７０１において、第２のクライアントモジュール７１２は、第２の監視装置１３６から配信予約の取得指示を受信する。Ｓ１７０２において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３に配信予約情報を問い合わせする。Ｓ１７０３において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３から配信予約情報をダウンロードして設定する。Ｓ１７０４において、第２のクライアントモジュール７１２は、配信時刻になったかを確認する。
【００７４】
Ｓ１７０５において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３にソフトウェア配信指示を行う。Ｓ１７０６において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３から配信対象ソフトウェアのＵＲＬを受信する。Ｓ１７０７において、第２のクライアントモジュール７１２は、ＵＲＬを参照し、第２の配信サーバ１４３からソフトウェアをダウンロードする。Ｓ１７０８において、第２のクライアントモジュール７１２は、ＵＲＬの参照を完了する。Ｓ１７０９において、第２のクライアントモジュール７１２は、ソフトウェアをインストールする。
【００７５】
Ｓ１７１０において、第２のクライアントモジュール７１２は、ソフトウェアのバージョンチェックを行う。Ｓ１７１１において、第２のクライアントモジュール７１２は、第２の配信サーバ１４３に配信結果を送信する。Ｓ１７１２において、第２のクライアントモジュール７１２は、第１のクライアントモジュール７０５からの配信完了問い合わせを受信する。Ｓ１７１３において、第２のクライアントモジュール７１２は、適用完了と返答する。
【００７６】
図１９は、第１のクライアントモジュールによるソフトウェアのインストールフローを示す。Ｓ１７１４において、第１のクライアントモジュール７０５は、第１の監視装置１３１から配信予約の取得指示を受信する。Ｓ１７１５において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３に配信予約情報の問い合わせを行う。Ｓ１７１６において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３から配信予約情報をダウンロードして設定する。Ｓ１７１７において、第１のクライアントモジュール７０５は、配信時刻になったかを判断する。配信時刻になった場合、処理はＳ１７１８に進み、そうでない場合は待機する。
【００７７】
Ｓ１７１８において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３にソフトウェア配信指示を行う。Ｓ１７１９において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３から配信対象ソフトウェアのＵＲＬを受信する。Ｓ１７２０において、第１のクライアントモジュール７０５はＵＲＬを参照し、外部サーバ１０６からソフトウェアをＨＤＤにダウンロードする。Ｓ１７２１において、ＵＲＬ参照が完了していれば、処理はＳ１７２２に進み、完了していない場合は処理はＳ１７２０に戻る。
【００７８】
Ｓ１７２２において、第１のクライアントモジュール７０５は、第２のクライアントモジュール７１２に配信処理が完了したか問い合わせを行う。Ｓ１７２３において、第１のクライアントモジュール７０５は、第２のクライアントモジュール７１２の配信処理が完了したか判断し、完了したと判断した場合は、処理はＳ１７２４に進み、完了していない場合は、処理はＳ１７２７に進む。Ｓ１７２４において、第１のクライアントモジュール７０５はソフトウェアをインストールする。
【００７９】
Ｓ１７２５において、第１のクライアントモジュール７０５は、ソフトウェアのバージョンチェックを行う。Ｓ１７２６において、第１のクライアントモジュール７０５は、第１の配信サーバ１３３に配信結果を送信する。Ｓ１７２７において、第１のクライアントモジュール７０５は、タイムアウトかどうかを判断し、タイムアウトの場合処理を終了する。そうでない場合は、処理はＳ１７２３に戻る。
【００８０】
以上、本発明によれば、画像形成装置に適用されるソフトウェアを異なる配信システムが配信する際に、一方の配信システムが配信するソフトウェアに対応するソフトウェアを、他方の配信システムが適用時間を重ねないように配信することが可能となる。第２のコントローラに係るソフトウェアが配信された後に、適切な時間で、第１のコントローラに係るソフトウェアの配信が行われるため、リブート処理が重なることを防止することができる。
【００８１】
なお、上述の実施形態では、第２の配信サーバ１４３においてユーザから配信予約を受け付ける例を説明した。当然のことながら、図８に示した画面を用いて、第１の配信サーバ１３３においてユーザから配信予約を受け付けることも可能である。この場合、第１の配信サーバ１３３は、予約を受け付けたソフトウェアのファイルサイズから、第１の配信サーバによる配信終了時間を計算する。そして、計算された配信時間に基づいて第２の配信サーバ１４３が対応するソフトウェアを配信する配信時間を設定し、該設定情報を第２の配信サーバ１４３に送信する構成としてもよい。第１の配信サーバ１３３が配信終了した後に第２の配信サーバ１４３に配信を開始させる場合、Ｓ８２６の処理では、第２の配信サーバ１４３が第１の配信サーバ１３３に対しソフトウェアのインストールが終了したかを問い合わせることになる。
【００８２】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2015118621.tif 000003
【図２】
2015118621.tif 000004
【図３】
2015118621.tif 000005
【図４】
2015118621.tif 000006
【図５】
2015118621.tif 000007
【図６】
2015118621.tif 000008
【図７】
2015118621.tif 000009
【図８】
2015118621.tif 000010
【図９】
2015118621.tif 000011
【図１０】
2015118621.tif 000012
【図１１】
2015118621.tif 000013
【図１２】
2015118621.tif 000014
【図１３】
2015118621.tif 000015
【図１４】
2015118621.tif 000016
【図１５】
2015118621.tif 000017
【図１６】
2015118621.tif 000018
【図１７】
2015118621.tif 000019
【図１８】
2015118621.tif 000020
【図１９】
2015118621.tif 000021