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