(57)【要約】      （修正有）【課題】ネットワーク上の機器へ配信すべきファームウェアの管理システムにおいて、ファームウェアの記憶領域を削減する。【解決手段】配信サーバ１３３は、新たにファームウェアグループをデバイス商品コードに関連付けて登録する場合、該ファームウェアグループに含まれるファームウェアをファイルストレージ１３５に記憶すべきか否か判定する。この際、新たなファームウェアグループのデバイス商品コードと一致する登録済のファームウェアグループに含まれるファームウェアのいずれかが、新たなファームウェアグループに含まれるファームウェアと同じである場合には、ファイルストレージ１３５に記憶すべきでないと判定する。そして、記憶すべきでないと判定されたファームウェアについては、ファイルストレージ１３５に既に記憶されているファームウェアを共有するよう管理する。【選択図】図７Ｂ
2015225564.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の機器へ配信すべきファームウェアを管理する管理システムであって、
データベースに対して、複数のファームウェアを含むファームウェアグループを、対象の機種及び仕向けの少なくとも何れかに応じて割り当てられるコードに関連付けて登録する登録手段と、
前記登録手段により登録されたファームウェアグループに含まれる複数のファームウェアを記憶装置に記憶する記憶手段と、
新たにファームウェアグループを登録するに際して、前記記憶手段により当該ファームウェアグループに含まれるファームウェアを記憶装置に記憶すべきかどうかを判定する判定手段と、
前記登録手段により前記新たにファームウェアグループが登録される場合に、前記判定手段により記憶すべきでないと判定されたファームウェアについては、前記記憶装置に既に記憶されているファームウェアを共有するよう管理する管理手段と、を有し、
前記判定手段は、前記新たなファームウェアグループのコードと一致するコードに関連付けて前記登録手段により既に登録されているファームウェアグループに含まれる複数のファームウェアのいずれかが、前記新たなファームウェアグループに含まれるファームウェアと同じである場合には、前記新たに登録するファームウェアグループに含まれる当該同じファームウェアを前記記憶装置に記憶すべきでないと判定することを特徴とする管理システム。
【請求項２】
前記データベースに登録されているファームウェアグループを削除するに際して、当該ファームウェアグループに含まれるファームウェアが共有されている場合には、当該共有されているファームウェア以外の当該ファームウェアグループに含まれるファームウェアを削除する削除手段を有することを特徴とする請求項１に記載の管理システム。
【請求項３】
前記登録手段は、前記登録手段により既に登録されているファームウェアグループに含まれる既存のファームウェアを、新たなファームウェアで更新するため登録モードを有し、
前記管理手段は、前記登録手段により前記登録モードで前記既存のファームウェアが新たなファームウェアで更新された場合、前記既存のファームウェアが共有されていた場合には、前記既存のファームウェアに代わって前記新たなファームウェアを共有するよう管理することを特徴とする請求項１又は２に記載の管理システム。
【請求項４】
前記管理手段は、前記ファームウェアを更新したファームウェアグループの前記ネットワーク上の機器への配信を可能にする公開指示があった場合に、前記既存のファームウェアに代わって前記新たなファームウェアを共有するよう管理することを特徴とする請求項３に記載の管理システム。
【請求項５】
前記記憶手段は、前記公開指示があった場合に、前記既存のファームウェアに代わって前記新たなファームウェアを前記記憶装置に記憶することを特徴とする請求項４に記載の管理システム。
【請求項６】
前記管理手段は、前記登録手段により前記登録モードで、既に登録されている複数のファームウェアグループで共有されている既存のファームウェアが、前記複数のファームウェアグループで別々に新たなファームウェアに更新された場合、前記公開指示が有るごとに、共有されているファームウェアに代わって、該公開指示のあったファームウェアグループのファームウェアを共有するよう管理することを特徴とする請求項４又は５に記載の管理システム。
【請求項７】
前記管理手段は、前記登録手段により前記データベースに登録されているファームウェアグループに関連付けされている前記コードが変更される場合、当該ファームウェアグループに含まれるファームウェアが共有されている場合には、当該共有されているファームウェアを、前記コードが変更されるファームウェアグループ以外のファームウェアグループで共有するように管理することを特徴とする請求項１乃至６のいずれか１項に記載の管理システム。
【請求項８】
前記記憶手段は、前記登録手段により前記データベースに登録されているファームウェアグループに関連付けされている前記コードが変更される場合、当該ファームウェアグループに含まれるファームウェアが共有されている場合には、当該共有されているファームウェアから複製したファームウェアを、当該ファームウェアグループのファームウェアとして、前記記憶装置に記憶することを特徴とする請求項１乃至７のいずれか１項に記載の管理システム。
【請求項９】
ネットワーク上の機器へ配信すべきファームウェアを管理する管理システムの制御方法であって、
データベースに対して、複数のファームウェアを含むファームウェアグループを、対象の機種及び仕向けの少なくとも何れかに応じて割り当てられるコードに関連付けて登録する登録ステップと、
前記登録ステップにより登録されたファームウェアグループに含まれる複数のファームウェアを記憶装置に記憶する記憶ステップと、
新たにファームウェアグループを登録するに際して、前記記憶ステップで当該ファームウェアグループに含まれるファームウェアを記憶装置に記憶すべきかどうかを判定する判定ステップと、
前記登録ステップにより前記新たにファームウェアグループが登録される場合に、前記判定ステップにより記憶すべきでないと判定されたファームウェアについては、前記記憶装置に既に記憶されているファームウェアを共有するよう管理する管理ステップと、を有し、
前記判定ステップでは、前記新たなファームウェアグループのコードと一致するコードに関連付けて既に登録されているファームウェアグループに含まれる複数のファームウェアのいずれかが、前記新たなファームウェアグループに含まれるファームウェアと同じである場合には、前記新たに登録するファームウェアグループに含まれる当該同じファームウェアを前記記憶装置に記憶すべきでないと判定することを特徴とする管理システムの制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載される手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置などのネットワークデバイスに対してソフトウェアを配信する技術に関する。
【背景技術】
【０００２】
従来、プリンタや複写機などの画像形成装置をはじめとするネットワークデバイスのファームウェアを含むソフトウェアのアップデートは、機能アップもしくは障害等の理由により更新する必要が生じた場合に行われていた。ソフトウェアのアップデート方法としては、インターネット経由で所定の配信サーバから配信を行うか、ＵＳＢ経由／イントラネット経由のアップデートツールを使用する。従来、配信サーバでネットワークデバイスのソフトウェアのアップデートを行う場合、Ｗｅｂ画面で配信対象のネットワークデバイスを指定し、配信日時を設定する等して、インターネット経由で配信を行っていた。なお、配信サーバは、ソフトウェアを高速に配信するため、インターネットに接続された外部のストレージにソフトウェアを転送して、外部サーバから配信する機能を持つものもあった。
【０００３】
特許文献１には、システムで、管理するファイルの過去のバージョン毎の差分ファイルを保持し、ダウンロード要求のあったクライアントが有するバージョンとの差分ファイルをクライアントに配信することで、ファイルのダウンロード時間を短縮するファイル版管理システムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６０２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
配信サーバに登録されるネットワークデバイス用のファームウェアは、機能アップ、バグ修正、仕向け追加などの理由から、新しいファームウェアがバージョンアップ版として登録される。例えば、デバイスの構成や仕向けなどのさまざまな条件ごとに、適合するファームウェアのセットとして、バージョンの異なる複数のセットのファームウェアが登録される。しかし、登録される新しいバージョンには、過去に登録されたバージョンと同じファームウェアモジュールが存在する場合がある。
【０００６】
なお、整合性や安全面などを考慮すると、ファームウェアは差分ではなく、必要十分な状態のセットで管理、配信されることが理想である。このため、各セットには、重複するファームウェアモジュールが含まれることになる。このように重複して登録されるファームウェアにより、配信サーバや外部サーバの記憶領域が無駄に使用されてしまい、結果として、配信サーバや外部サーバに多くの記憶領域を確保することが必要となった。このため、システムの運用コストが増加する懸念があった。また近年、ハードウェアの進歩により、ファームウェアの容量が増大する傾向もあり、このような懸念が一層大きくなってきた。
【０００７】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ファームウェアの整合性や安全面を犠牲にすることなく、ネットワーク上の機器へ配信すべきファームウェアを記憶するために管理システムに確保する記憶領域を削減することができる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、ネットワーク上の機器へ配信すべきファームウェアを管理する管理システムであって、データベースに対して、複数のファームウェアを含むファームウェアグループを、対象の機種及び仕向けの少なくとも何れかに応じて割り当てられるコードに関連付けて登録する登録手段と、前記登録手段により登録されたファームウェアグループに含まれる複数のファームウェアを記憶装置に記憶する記憶手段と、新たにファームウェアグループを登録するに際して、前記記憶手段により当該ファームウェアグループに含まれるファームウェアを記憶装置に記憶すべきかどうかを判定する判定手段と、前記登録手段により前記新たにファームウェアグループが登録される場合に、前記判定手段により記憶すべきでないと判定されたファームウェアについては、前記記憶装置に既に記憶されているファームウェアを共有するよう管理する管理手段と、を有し、前記判定手段は、前記新たなファームウェアグループのコードと一致するコードに関連付けて前記登録手段により既に登録されているファームウェアグループに含まれる複数のファームウェアのいずれかが、前記新たなファームウェアグループに含まれるファームウェアと同じである場合には、前記新たに登録するファームウェアグループに含まれる当該同じファームウェアを前記記憶装置に記憶すべきでないと判定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ファームウェアの整合性や安全面を犠牲にすることなく、ネットワーク上の機器へ配信すべきファームウェアを記憶するために管理システムに確保する記憶領域を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の管理システムを説明するための図
【図２】監視センタホスト等のハードウェア構成を例示する図
【図３】ネットワークデバイスのハードウェア構成を例示する図
【図４】配信サーバ等における通信機能のソフトウェア構成を例示する図
【図５】監視装置等における通信機能のソフトウェア構成を例示する図
【図６】本発明に関わるソフトウェア構成を例示する図
【図７Ａ】配信サーバにファームウェアを登録する際の構成を説明する図
【図７Ｂ】配信サーバにファームウェアを登録する際の構成を説明する図
【図８】配信サーバに登録される情報を例示する図
【図９】登録情報の共有化方法についての説明する図
【図１０Ａ】共有ファイルの条件変更時の共有化方法についての説明する図
【図１０Ｂ】共有ファイルの条件変更時の共有化方法についての説明する図
【図１１】強制上書きモードでのファームウェア登録を説明する図
【図１２Ａ】強制上書きモードでのファームウェア登録の特殊ケース説明する図
【図１２Ｂ】強制上書きモードでのファームウェア登録の特殊ケース説明する図
【図１３】ファームウェア登録時のファイル共有化処理を例示するフローチャート
【図１４】商品コード構成を変更する場合の処理を例示するフローチャート
【図１５】共有ファイル条件を変更する場合の処理を例示するフローチャート
【図１６】強制上書きモードで登録を行う場合の処理を例示するフローチャート
【発明を実施するための形態】
【００１１】
以下、本発明の発明を実施するための形態について図面を用いて説明する。
図１は、本発明の一実施例を示す管理システムを説明するための図である。
図１は、複数のシステムが接続されている場合を示している。なお、図１と同等機能を達成できれば同一の構成でなくても本発明を実施可能である。また、本実施例では、プリンタや複写機など画像形成装置をはじめとするネットワーク上の機器を、ネットワークデバイスと呼ぶ。
【００１２】
販売会社システム１０１には、パーソナルコンピュータ（ＰＣ）１０２、１０３、１０４が含まれる。ＰＣ１０２、１０３、１０４は、監視センタホスト１１１、配信サーバ１３３が提供するＷｅｂサイトへアクセスしてデータの閲覧及び、ソフトウェアの配信予約等を行う。ＰＣ１０２、１０３、１０４はＬＡＮ１０５で接続されている。
外部サーバ１０６には、ホスト１０７、ファイルストレージ１０８、ＰＣ１０９が、ＬＡＮ１１０で接続されている。外部サーバ１０６は、配信サーバ１３３のソフトウェアを高速に配信するためサービスを提供する機能を有する。
【００１３】
次に、監視センタホスト１１１を説明する。
監視センタホスト１１１は、データベース１１２を持つ、ネットワークデバイス監視システムである。データベース１１２は、監視のための情報や、ネットワークデバイスの稼働状態などを蓄積する履歴記憶部としてのデータベースである。監視センタホスト１１１とデータベース１１２はＬＡＮ１１３で接続されており、ＬＡＮ１１３はインターネット１３２に接続されている。なお、データベース１１２は、物理的に監視センタホスト１１１内に存在してもよい。さらに、監視センタホスト１１１からアクセス可能であれば、インターネット１３２を経由した別の場所に存在しても構わない。監視センタホスト１１１は、監視装置１１７、１２２、１２３やネットワークデバイス１３１から監視対象としてのネットワークデバイスの情報、稼働状態を示す情報等を収集、蓄積、加工し、警告等を外部に提供する機能を有する。
【００１４】
次に、配信サーバ１３３を説明する。
配信サーバ１３３は、データベース１３４、ファイルストレージ１３５を有する。データベース１３４は、ネットワークデバイスに適用するためのソフトウェアを蓄積する記憶部としてのデータベースである。ファイルストレージ１３５は、ファイルを蓄積するためのディレクトリ構成を持つ。配信サーバ１３３とデータベース１３４とファイルストレージ１３５はＬＡＮ１３６で接続されており、ＬＡＮ１３６は、インターネット１３２に接続されている。なお、データベース１３４は、物理的に配信サーバ１３３内に存在してもよいし、配信サーバ１３３からアクセス可能であれば、インターネット１３２を経由した別の場所に存在しても構わない。なお、ＬＡＮ１１３とＬＡＮ１３６は同一としてもよく、データベース１３４とデータベース１１２はデータを送受信しても構わない。
【００１５】
配信サーバ１３３には、配信用のファームウェアが登録され、販売会社システム１０１向けに公開処理される。公開処理されたファームウェアは、販売会社システム１０１のＰＣ１０２、１０３、１０４及び、販売会社システムが管轄するネットワークデバイス１１５、１１６、１２０、１２１、１２４、１２５、１２６、１２７、１３１からダウンロードが可能となる。
【００１６】
図１には、監視センタホスト１１１およびデータベース１１２と、配信サーバ１３３、データベース１３４およびファイルストレージ１３５が１つずつしか示されていない。しかし、実際には、多くのネットワークデバイスおよび監視装置からの情報収集や、ソフトウェア配信の負荷分散を行なうために、監視センタホスト１１１およびデータベース１１２と、配信サーバ１３３、データベース１３４およびファイルストレージ１３５が複数設けられて分散処理をさせるケースもある。
【００１７】
以上示したように、配信サーバ１３３、データベース１３４、ファイルストレージ１３５、及び外部サーバ１０６のファイルストレージ１０８等は、ネットワーク上の機器（ネットワークデバイス１１５、１１６、１２０、１２１、１２４、１２５、１２６、１２７、１３１等）へ配信すべきファームウェアを管理する管理システムを構成する。
【００１８】
次に、顧客側のシステム構成について説明する。顧客側のシステムは、顧客により構成が異なる。図１では、顧客システム１１４、１１９、１２９が示されている。
顧客システム１１４（Ａ社Ｘ事業所）においては、インターネット１３２に接続されたＬＡＮ１１８に接続されたネットワークデバイス１１５、１１６が監視装置１１７により監視されている。監視装置１１７は、インターネット１３２経由で監視センタホスト１１１と通信し、ネットワークデバイス１１５、１１６の稼働情報を送信している。
【００１９】
また、顧客システム１１９（Ａ社Ｙ事業所）においては、監視装置１２２、１２３によってＬＡＮ１２８上のネットワークデバイスが管理されている。監視装置１２２は、インターネット１３２経由で監視センタホスト１１１と通信し、ネットワークデバイス１２０、１２１、１２４、１２５の稼働情報を送信している。また、監視装置１２３は、インターネット１３２経由で監視センタホスト１１１と通信し、ネットワークデバイス１２６、１２７の稼働情報を送信している。
【００２０】
また、顧客１２９システム（Ｂ社）においては、インターネット１３２に接続されたＬＡＮ１３０に接続されたネットワークデバイス１３１自身が、直接インターネット１３２経由で監視センタホスト１１１と通信している。ネットワークデバイス１３１は、監視装置１１７、１２２、１２３と同等の機能を有しており、自身の稼働情報を監視センタホスト１１１に送信している。また、ネットワークデバイス１３１は、配信サーバ１３３からダウンロードしたファームウェアを適用するためのコントローラ（後述する図６に示す１３１ａ）を持つ。
【００２１】
図２は、配信サーバ１３３のハードウェア構成を例示する図である。また、監視センタホスト１１１、ホスト１０７、監視装置１１７、１２２、１２３、ＰＣ１０２、１０３、１０４、１０９のハードウェア構成図も同様である。
【００２２】
図２において、ＣＰＵ２０１は本装置上の各処理を司る。ＲＯＭ２０２は、本装置の各処理に関わるプログラムやデータを記憶する。ＲＡＭ２０３は、本装置の各処理に関わる一時的なデータを電気的に記憶するワークエリアとして使用される。ＨＤＤ２０４は、本装置の各処理に関わるプログラムやデータ、および一時的なデータ、監視対象のネットワークデバイスに関する情報、およびネットワークデバイスから収集した情報などを記憶するハードディスクである。例えば、稼働情報などがＨＤＤ２０４に保存される。配信サーバ１３３や監視センタホスト１１１の場合、後述する図４に示す機能を実現するためのプログラムをＨＤＤ２０４に記憶している。このプログラムは、ＲＡＭ２０３を一時保存領域として使用し、ＣＰＵ２０１によって呼び出され実行される。なお、ＨＤＤ２０４の代わりに、ＳＳＤ（Solid State Drive）を備えていてもよい。
【００２３】
操作部２０５は、本装置への指示入力を受け付けるキーボードである。表示部２０６は、本装置の動作状況や、本装置上で動作する各プログラムが出力する情報を表示する。ネットワークインタフェース（Ｎｅｔｗｏｒｋ Ｉ／Ｆ）２０８は、ネットワーク経由でＬＡＮおよびインターネット１３２に接続し、外部と情報交換を行う。外部機器インタフェース（外部機器Ｉ／Ｆ）２０７は、外部記憶機器等を接続する。それら要素がシステムバス２０９により結び付き、データをやりとりしている。
【００２４】
図３は、ネットワークデバイス１１５、１１６、１２０、１２１、１２４、１２５、１２６、１２７、１３１のハードウェア構成を例示する図である。
ネットワークデバイスとしては、具体的には、プリンタ及びファクシミリ機能が統合的に設けられた複合機、ＰＣなどからデータを受信し印刷するプリンタ（電子写真方式及びインクジェット方式を含む）や、スキャナや、ファクシミリなどが挙げられる。本図では、ネットワークデバイスの一例として複合機（ＭＦＰ；Multifunction Peripheral）の構成を示している。
【００２５】
イメージリーダ３０２は、原稿給送部３０１から給送された原稿を読み込む。画像形成部３０３は、イメージリーダ３０２で読み込んだ原稿やＮｅｔｗｏｒｋ Ｉ／Ｆ３０５からネットワーク経由で受信したデータを印刷画像に変換・印刷出力する。排紙部３０４は、印刷出力した紙を排出し、ソートやステイプルといった処理を施す。Ｎｅｔｗｏｒｋ Ｉ／Ｆ３０５は、ネットワーク経由でＬＡＮおよびインターネット１３２に接続し、外部と情報交換を行う。
【００２６】
ＣＰＵ３０６は、本装置上の各処理を司る。ＣＰＵ３０６は、ネットワークデバイスの動作状態を監視し、障害等の特定のイベントが発生した場合には、その状態を示す状態情報を、あらかじめ定めた宛先へと送信する。宛先は例えば、監視センタホスト１１１や監視装置などである。ＲＯＭ３０７は、本装置の各処理に関わるプログラムやデータを記憶する。ＲＡＭ３０８は、本装置の各処理に関わる一時的なデータを電気的に記憶するワークメモリとして使用される。
【００２７】
ＨＤＤ３０９は、本装置の各処理に関わるプログラムやデータ、および一時的なデータ、本装置へ送信されてきたユーザデータなどを記憶する。ネットワークデバイスは、後述する図５に示す機能を実現するためのプログラムをＨＤＤ３０９に記憶している。このプログラムは、ＲＡＭ３０８を一時保存領域として使用し、ＣＰＵ３０６によって呼び出され実行される。なお、ＨＤＤ３０９の代わりにＳＳＤを備えていてもよい。
【００２８】
操作部３１０は、本装置への指示入力を受け付ける。表示部３１１は、本装置の動作状況および操作部３１０に対する操作に関わる情報を表示する。操作部３１０と表示部３１１は、システムバス３１２により結び付き、データをやりとりしている。
【００２９】
なお、ネットワークデバイス自身が監視のための情報を送信する機能を持つネットワークデバイス１３１では、ＲＯＭ３０７或いはＨＤＤ３０９内に、上述の監視データ送出処理にかかわるプログラムやデータを保持している。このプログラムをＣＰＵ３０６がＲＯＭ３０７或いはＨＤＤ３０９から読み出して実行することにより、上述の監視データ送出処理を実行することができる。
【００３０】
図４は、配信サーバ１３３、監視センタホスト１１１における通信機能のソフトウェア構成を例示する図である。
ＳＯＡＰ通信部４０１は、監視装置１１７、１２２、１２３またはネットワークデバイス１３１よりＮｅｔｗｏｒｋ Ｉ／Ｆ２０８を介して受信したＳＯＡＰデータをＳＯＡＰメッセージ解析部４０２に渡す。また、ＳＯＡＰ通信部４０１は、ＳＯＡＰメッセージ作成部４０３により作成したＳＯＡＰデータをＮｅｔｗｏｒｋ Ｉ／Ｆ２０８を介して監視装置１１７、１２２、１２３またはネットワークデバイス１３１に送信する。ＳＯＡＰメッセージ解析部４０２は、ＳＯＡＰ通信部４０１より渡されたＳＯＡＰデータを解析する。ＳＯＡＰメッセージ作成部４０３は、ＳＯＡＰデータを作成し、ＳＯＡＰ通信部４０１に渡す。
【００３１】
収集情報処理部４０４では、監視装置１１７、１２２、１２３またはネットワークデバイス１３１から受信した情報をそのまま、または加工し、データベースアクセス部４０６を介してデータベース１１２、あるいはデータベース１３４に格納する。監視制御部４０５は、監視センタホスト１１１においては、監視装置１１７、１２２、１２３またはネットワークデバイス１３１のスケジュール管理などの制御を行なう。配信サーバ１３３においては、監視制御部４０５は、監視装置１１７、１２２、１２３またはネットワークデバイス１３１のポーリング処理などの制御を行う。
【００３２】
図５は、監視装置１１７、１２２、１２３またはネットワークデバイス１３１における通信機能のソフトウェア構成を例示する図である。
ＳＯＡＰ通信部５０１は、監視センタホスト１１１もしくは、配信サーバ１３３によりＮｅｔｗｏｒｋ Ｉ／Ｆ２０８を介して受信したＳＯＡＰデータを、ＳＯＡＰメッセージ解析部５０３に渡す。また、ＳＯＡＰメッセージ作成部５０２により作成したＳＯＡＰデータをＮｅｔｗｏｒｋ Ｉ／Ｆ２０８を介して監視センタホスト１１１、配信サーバ１３３に送信する。ＳＯＡＰメッセージ解析部５０３は、ＳＯＡＰ通信部５０１より渡されたＳＯＡＰデータを解析する。ＳＯＡＰメッセージ作成部５０２は、ＳＯＡＰデータを作成し、ＳＯＡＰ通信部５０１に渡す。
【００３３】
監視制御部５０４は、情報蓄積部５０６に保持する監視対象のネットワークデバイス情報の更新や、ネットワークデバイス１１５、１１６の情報取得を行なう。ネットワークデバイス情報処理部５０５は、ネットワークデバイスの稼働情報を、情報蓄積部５０６に蓄積する。情報蓄積部５０６に蓄積したデータは、ネットワークデバイス情報処理部５０５を介してそのままＳＯＡＰメッセージ作成部５０２に渡され監視センタホスト１１１へ送信される。
【００３４】
図６は、本発明に関わるソフトウェア構成を例示する図である。
図６において、７０１は、ネットワークデバイス１３１のように、配信サーバ１３３からダウンロードしたファームウェアを適用するためのコントローラ１３１ａを持つネットワークデバイスのソフトウェアの構成を示す。コントローラ１３１ａは、上述したように、ネットワークデバイス７０１のＣＰＵ３０６がＲＯＭ３０７或いはＨＤＤ３０９に格納されたプログラムを読み出して実行することにより実現されるものである。
【００３５】
７０２〜７０７は、コントローラ１３１ａに含まれるソフトウェアの構成を表している。７０２は通信Ｉ／Ｆ部である。通信Ｉ／Ｆ部７０２は、コントローラ１３１ａと配信サーバ１３３、外部サーバ１０６との通信を司る。７０３はコントローラ１３１ａの通信データ制御部である。通信データ制御部７０３は、通信Ｉ／Ｆ部７０２から受信した通信データを制御する。７０４はソフトウェア管理部である。ソフトウェア管理部７０４は、配信サーバ１３３から受信したＵＲＬ情報を元に、外部サーバ１０６からソフトウェアを受信し、エンジン制御部７０５や、アクセサリ制御部７０６にインストールする役割を持つ。７０７はデータ記憶部である。データ記憶部７０７は、コントローラ１３１ａ内のソフトウェアデータの記憶や、一時記憶領域として使用する。
【００３６】
７０８〜７１３は、配信サーバ１３３に含まれるソフトウェアの構成を表している。なお、７０８〜７１３は、配信サーバ１３３のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【００３７】
７０８は配信サーバ１３３の通信Ｉ／Ｆである。通信Ｉ／Ｆ部７０８は、ネットワークデバイスのコントローラと配信サーバ１３３との通信を司る。７０９は配信サーバ１３３の通信データ制御部である。通信データ制御部７０９は、通信Ｉ／Ｆ部７０８から受信した通信データを制御する。７１０はデータ制御部である。データ制御部７１０は、配信サーバ１３３内のデータの制御を司る。
【００３８】
７１１はファームデータ登録部である。ファームデータ登録部７１１は、ソフトウェアの情報をデータ記憶部７１３やファイルストレージ１０８に登録する。７１２はファームデータ検索部である。ファームデータ検索部７１２は、ソフトウェアの検索をデータ記憶部７１３より行う。７１３はデータ記憶部である。データ記憶部７１３は、配信サーバ１３３内に配信用のファームデータの情報を記憶するデータベース１３４や、中間バッファ８１７（後述する図７Ａ（ｂ）に示す）のデータが記憶される。
【００３９】
７１４〜７１７は、外部サーバ１０６に含まれるソフトウェアの構成を表している。なお、７１４〜７１７は、外部サーバ１０６のホスト１０７のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【００４０】
前述したように、外部サーバ１０６は、配信サーバ１３３のソフトウェアを高速に配信するためのサービスを提供する機能を有し、配信サーバ１３３より定期的にソフトウェアデータが転送される。７１４はデータ受信部である。データ受信部７１４は、配信サーバ１３３により転送されるソフトウェアデータを受信する。７１５は配信部である。配信部７１５は、データ記憶部７１７に登録されているデータをコントローラ１３１ａに高速に配信する。７１６はデータ管理部７１６である。データ管理部７１６は、データ受信部７１４から受信したデータをデータ記憶部７１７に記憶させる。また、データ管理部７１６は、データ記憶部７１７から配信部７１５に配信用のデータを供給する。７１７はデータ記憶部を示す。
【００４１】
なお、ここでは、自身の稼働情報を監視センタホスト１１１に送信する機能を備えるネットワークデバイス１３１が、図６に示したコントローラ１３１ａを有し、配信サーバ１３３からダウンロードしたファームウェアを適用する例について説明した。しかし、自身の稼働情報を監視センタホスト１１１に送信する機能を備えていない他のネットワークデバイス（例えば１２０、１２１等）にも、コントローラ１３１ａの機能を設け、配信サーバ１３３からダウンロードしたファームウェアを適用可能に構成してもよい。
【００４２】
以下、図７Ａ、図７Ｂ、図８を用いて、配信サーバ１３３にファームウェアを登録する際の構成を説明する。
図７Ａ、図７Ｂは、配信サーバ１３３にファームウェアを登録する際の構成を説明するための図である。
図８は、配信サーバ１３３に登録される情報を例示する図である。
【００４３】
図７Ａ（ａ）は、ファームウェアの情報に関する図である。
図７Ａ（ａ）において、配信サーバ１３３にファームウェアを登録する際は、ＰＣ１０２、１０３、１０４等から、配信サーバ１３３に登録する情報のファイル８０１を登録し（登録依頼）、加えて、配信サーバ１３３に設定する情報８０９を配信サーバ１３３に設定する（設定依頼）。以下に詳細に説明する。
【００４４】
配信サーバ１３３に登録する情報のファイル８０１には、実体ファイル８０２と構成ファイル８０３とが含まれる。実体ファイル８０２は、８０４及び図８（ａ）に示すように複数のファームファイルからなり、それぞれファームウェアに含まれる複数のモジュールに対応する。図８（ａ）及び８０４に示すモジュールは、ネットワークデバイスのソフトウェアを構成するモジュールの例である。
【００４５】
構成ファイル８０３とは、図８（ａ）に示した実体ファイル８０２の構成情報を記載したメタファイルである。構成ファイル８０３の例を図８（ｂ）及び８０５に示す。
構成ファイル８０３は、例えばcsv形式のファイルであり、図８（ｂ）に示すように、１行目に各データの種別を示すヘッダー、２行目以降にファームウェアに関する情報が入る。１列目はファームタイプ８０６、２列目はファームファイル名８０７、３列目はファームバージョン８０８を記載する。ファームタイプ８０６は、ファームウェアのモジュールの種類を特定するための識別子である。ファームファイル名８０７は、各モジュールに対応するファイルのファイル名を示す。ファームバージョン８０８は、各モジュールのバージョンを示す。
【００４６】
次に、配信サーバ１３３に設定する情報８０９を説明する。
配信サーバ１３３に設定する情報８０９には、ファームグループバージョン８１０、デバイス商品コード８１１が含まれる。
配信サーバ１３３に登録するファームウェアのモジュールの１組の組み合わせをファームグループ（又はファームウェアグループ）と呼ぶ。ファームグループを配信サーバ１３３に登録する際にはバージョンを付与する。このバージョンをファームグループバージョン（又はファームウェアグループバージョン）と呼ぶ。図７Ａ（ａ）の例では、ファームグループバージョンを「３．０」と設定している。ファームウェアグループバージョンの採番方法としては、各ファームウェアグループにユニークなＩＤを割り当てる。ファームグループバージョン８１０の例を図８（ｃ）に示す。
【００４７】
デバイス商品コード８１１は、ネットワークデバイスの機種、及び、仕向け毎に異なるように割り当てられたコードである。デバイス商品コード８１１の例を図８（ｄ）に示す。
【００４８】
次に、図７Ａ（ｂ）を用いて、配信サーバ１３３に、配信サーバ１３３に登録する情報のファイル８０１と、配信サーバ１３３に設定する情報８０９が登録された場合の、配信サーバ１３３及び、外部サーバ１０６のデータ構成について説明する。ここではファームグループバージョン１．０のファームウェアが登録されたものとする。
【００４９】
ＰＣ１０２、１０３、１０４（図１）からの登録依頼に応じて配信サーバ１３３で実行される登録処理において、配信サーバ１３３に登録する情報のファイル８０１と、配信サーバ１３３に設定する情報８０９が、配信サーバ１３３に登録される。該登録処理では、構成ファイル８０３、ファームグループバージョン８１０、及びデバイス商品コード８１１の内容（ファームグループの情報）が、データベース１３４で保持するファームグループバージョンのテーブル８１２に登録される。即ち、登録処理では、データベース１３４に対して、複数のファームウェアを含むファームウェアグループの情報が、該ファームウェアグループの対象の機種及び仕向けの少なくとも何れかに応じて割り当てられるデバイス商品コードに関連付けて登録される
【００５０】
８１３は、テーブル８１２に登録されているファームグループの情報を示す。８１４は、実体ファイルとしてのファームファイルの保存先であるファイルストレージ１３５内のディレクトリの所在を示している。
【００５１】
ファイルストレージ１３５は、配信サーバ１３３が内部に保持するファイルを格納するためのストレージ領域である。即ち、上記登録処理により登録されたファームウェアグループに含まれる複数のファームウェアがファイルストレージ１３５に記憶される。なお、配信サーバ１３３がファイルストレージ１３５にファームウェア（ファームファイル）を登録（格納）した際に、そのディレクトリをテーブル８１２のディレクトリ領域８１４に登録する。新規にファームグループバージョン１．０を配信サーバ１３３に登録すると、配信サーバ１３３は、ファイルストレージ１３５にディレクトリＡＡＡを作成し、そのディレクトリに「ＭＮ．ｄａｔ」、「Ａ−ＣＯＮ．ｄａｔ」などのファームファイルを格納する。その状態を図７Ａ（ｂ）は示している。また、ファイルストレージ１３５に保存されたデータは、同一のディレクトリ構成で、速やかに、外部サーバ１０６のファイルストレージ１０８に転送される。
【００５２】
８１５は、外部サーバ１０６のファイルストレージ１０８に登録されているディレクトリ構成を示している。配信サーバ１３３のファイルストレージ１３５にも、同じ構成のディレクトリが存在する。８１６は、前記ファームウェア登録処理において、ファイルストレージ１０８に登録された情報（ファームファイル）を示す。
８１７は、後述する強制上書きモードでのファームウェア登録に使用するための、中間バッファ領域である。詳細は後述する。
【００５３】
次に、図７Ｂ（ｃ）を用いて、本発明におけるファイル共有化について説明する。
本実施例では、新たなファームウェアを配信サーバ１３３に登録する際に、以下の条件に合致したファイルであれば共有化を行う。
【００５４】
＜条件＞
新規登録ファームウェアと、既存登録ファームウェアのファームウェアグループを比較し、デバイス商品コードが一致し、且つ、構成ファイルに記載されたファームタイプ、ファームファイル名、及びファームバージョンが全て一致する。
【００５５】
新規登録時の配信サーバ１３３の動作としては、まず、配信サーバ１３３は、これから登録するファームグループに含まれる各モジュールに対し、下記の処理を行う。
配信サーバ１３３は、対象モジュールが上記条件に合致するものがあるかどうかを、テーブル８１２を用いて検索する。次に、配信サーバ１３３は、上記条件に合致した場合は、テーブル８１２に新規フィールドを作成し、そこに対象モジュールが含まれるファームグループバージョン８１０、デバイス商品コード８１１、ファームタイプ８０６、ファームファイル名８０７、ファームバージョン８０８を登録し、ディレクトリには、前記検索で一致したフィールドのディレクトリ情報をコピーする。
【００５６】
図７Ｂ（ｃ）の場合、８１８のデータが、８１９からコピーされている。８１８のデータは、ファームグループバージョン３．０、デバイス商品コード０００Ａ０００１、０００Ｂ０００１、ファームタイプＡ−ＣＯＮ、ファームファイル名Ａ−ＣＯＮ．ｄａｔ、ファームバージョン５．０１である。このデータと一致するデータは、ファームグループバージョン１．０に存在し、上記条件を満たしている。このように、ファイルストレージ上の既存ファイルを参照することを「共有」と呼ぶ。
【００５７】
なお、上記条件に合致しない場合、配信サーバ１３３は、テーブル８１２に新規フィールドを作成し、そこに対象モジュールが含まれるファームグループバージョン８１０、デバイス商品コード８１１、ファームタイプ８０６、ファームファイル名８０７、ファームバージョン８０８を登録する。さらに、配信サーバ１３３は、ファイルストレージ１３５にディレクトリを作成してファームファイルを格納し、テーブル８１２のディレクトリ情報に、ファームファイルの保存先であるファイルストレージ１３５内のディレクトリの所在を登録する。また、配信サーバ１３３は、外部サーバ１０６のファイルストレージ１０８にも、ファイルストレージ１３５から、同じディレクトリ構成で転送する。
【００５８】
以下、図９、図１０を用いて、デバイス商品コードと共有化の有無の関係を示す。
図９は、ファームウェアを登録する場合におけるデバイス商品コードと共有化の有無の関係を説明するための図である。なお、ここでは、ファームタイプ、ファームファイル名、ファームバージョンが同一であるファイル「ＡＡＡ．ｄａｔ」の共有化について示す。
【００５９】
図９（ａ）において、本実施例の共有化処理について説明する。
なお、図９〜図１２において、「ＡＡＡ．ｄａｔ」は、ファームグループに含まれるファームの実体ファイル（ファームファイル）を表している。９０１のファームグループ１．０は、既存登録されたファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。９０２のファームグループ２．０は、新規登録するファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。
【００６０】
９０３は、９０１のファームグループ１．０、及び９０２のファームグループ２．０において、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。９０１と９０２のデバイス商品コード構成は完全に一致するので、配信サーバ１３３は、ファームウェア登録を行う処理で、該当ファイルである９０３の「ＡＡＡ．ｄａｔ」の共有ファイル化を行う。
【００６１】
配信サーバ１３３の動作としては、配信サーバ１３３は、９０２のファームグループ２．０のファーム登録時に、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、９０１のファームグループ１．０が検索結果として抽出される。
【００６２】
次に、配信サーバ１３３は、９０２のファームグループ２．０の構成ファイル８０３と、上記抽出した９０１のファームグループ１．０の構成を比較し、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。
【００６３】
配信サーバ１３３は、上記抽出した「ＡＡＡ.ｄａｔ」を共有ファイルとして認識するので、ファームグループバージョンのテーブル８１２を参照し、９０１のファームグループ１．０の「ＡＡＡ.ｄａｔ」のフィールドのディレクトリ情報を、ファームグループ２．０の「ＡＡＡ.ｄａｔ」のフィールドのディレクトリ情報にコピーする（例えば、図７Ｂ（ｃ）の８１８）。
【００６４】
次に、図９（ｂ）を用いて、デバイス商品構成が完全に一致しない場合に、共有ファイル化を行われない場合について説明する。
９０４のファームグループ１．０は、既存登録されたファームグループであり、デバイス商品コードＡが設定されている。９０５のファームグループ２．０は、新規登録するファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。９０６は、ファームグループ１．０、ファームグループ２．０で、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。
【００６５】
しかし、この場合、９０４と９０５のデバイス商品コードは完全に一致しないので、ファームウェア登録処理の際に、該当ファイルである９０６の「ＡＡＡ．ｄａｔ」の共有ファイル化は行わない。
【００６６】
配信サーバ１３３の動作としては、配信サーバ１３３は、９０５のファームグループ２．０のファーム登録時に、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、該当するファームグループが見つからないため、配信サーバ１３３は共有化を行わないと判断する。共有化を行わないので、配信サーバ１３３は、９０５のファームグループ２．０のデータに対し、８１２に新規フィールドを作成し、そこに対象モジュールが含まれるファームグループバージョン８１０、デバイス商品コード８１１、ファームタイプ８０６、ファームファイル名８０７、ファームバージョン８０８を登録する。また、配信サーバ１３３は、ファイルストレージ１３５に新たなディレクトリを作成し、ファイル「ＡＡＡ.ｄａｔ」の書き込みを行う。さらに、配信サーバ１３３は、ファームグループ２．０の「ＡＡＡ.ｄａｔ」のフィールドのディレクトリ情報に前記作成したディレクトリの情報を登録する。
【００６７】
以上示したように、配信サーバ１３３は、新たにファームウェアグループを登録するに際して、当該ファームウェアグループに含まれるファームウェアをファイルストレージ１３５に記憶すべきかどうかを判定する。なお、この判定では、新たなファームウェアグループのデバイス商品コードと一致するデバイス商品コードに関連付けて、既に登録されているファームウェアグループに含まれる複数のファームウェアのいずれかが、新たなファームウェアグループに含まれるファームウェアと同じである場合には、前記新たに登録するファームウェアグループに含まれる当該同じファームウェアをファイルストレージ１３５に記憶すべきでないと判定する。さらに、配信サーバ１３３は、ファイルストレージ１３５に記憶すべきでないと判定したファームウェアについては、既に記憶されているファームウェアを共有するよう管理する。
【００６８】
図１０Ａ、図１０Ｂは、ファームウェアに対する設定内容が変更となった場合におけるデバイス商品コードと共有化の有無の関係を説明するための図である。
配信サーバ１３３は、登録されているファームウェアグループに対して、共有ファイル条件に影響する設定内容の変更要求があると、該変更要求に対応するファームウェアグループを検索し、共有ファイルの見直しを行う。共有ファイル条件に影響する設定内容の変更を下記に示す。
【００６９】
＜共有ファイルに影響する変更＞
・ファームグループの削除。
・ファームウェアグループのデバイス商品コード構成の修正追加、削除。
共有ファイルの見直しは、ファームウェア登録時と同じ条件で実行する。その際、共有ファイル条件から外れ、共有ファイルではなくなる場合、参照していた共有ファイルをコピーする。
【００７０】
図１０Ａ（ａ）は、共有元のファームウェアグループを削除する場合の例を示す。
１００１のファームグループ１．０は、共有元のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００２のファームグループ２．０は、共有先のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００３は、ファームグループ１．０、ファームグループ２．０で、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。なお、共有元のファームウェアグループと、供給先のファームウェアグループの識別については、これを識別するための情報をデータベース１３４等に保持するようにしてもよい。また、デバイス商品コードが一致し、且つ、構成ファイルに記載されたファームタイプ、ファームファイル名、及びファームバージョンが全て一致するファームウェアグループのうち、テーブル８１２への登録が最も古いものを共有元、それ以外を共有先としてもよい。この場合、データベース１３４では、ファームウェアグループの登録日時を示す情報等を保持しているものとする。
【００７１】
この状況において、１００１のファームグループを削除する場合、ファームウェアグループ１．０は削除されるが、実ファイル１００３は削除されず、共有先の１００２のファームグループ２．０は、ファームグループ１．０のファイルを参照し続ける。
【００７２】
配信サーバ１３３の動作としては、配信サーバ１３３は、１００１のファームグループ１．０を削除する場合に、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コードの構成が同じファームグループを検索する。その結果、１００２のファームグループ２．０が検索結果として抽出される。
【００７３】
次に、配信サーバ１３３は、削除する１００１のファームグループ１．０と、１００２のファームグループ２．０の構成ファイル８０３を比較し、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。配信サーバ１３３は、抽出された「ＡＡＡ.ｄａｔ」を共有ファイルとして認識する。よって、配信サーバ１３３は、テーブル８１２から１００１のファームグループ１．０の情報は削除するが、１００１のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているディレクトリ領域は削除せずに保持する。そして、１００２のファームグループ２．０は、削除した１００１のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているディレクトリ領域を参照し続ける。
【００７４】
なお、配信サーバ１３３は、データベース１３４に登録されているファームウェアグループを削除するに際して、当該ファームウェアグループに含まれるファームウェアが共有されている場合には、当該共有されているファームウェア以外の当該ファームウェアグループに含まれるファームウェアを削除する。例えば、１００１のファームグループ１．０に含まれる複数のファイルのうち、上記「ＡＡＡ．ｄａ」以外のファイルは共有されていないとすると、１００１のファームグループ１．０に含まれる上記「ＡＡＡ．ｄａ」以外のファイルを削除する。
【００７５】
図１０Ａ（ｂ）は、共有元のデバイス商品構成の変更により共有ファイルから外れる場合の例を示す。
１００４のファームグループ１．０は、共有元のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００５のファームグループ２．０は、共有先のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００６は、ファームグループ１．０、ファームグループ２．０で、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。
【００７６】
この状況において、共有元である１００４のファームグループ１．０を、デバイス商品コードＡ、デバイス商品コードＢが設定されていた状況から、デバイス商品コードＡのみのデバイス商品構成に変更する場合、共有元は自身のファイル１００６を新規ディレクトリ領域にコピーして保持する。そして、該コピーしたファイルを参照するようにテーブル８１２の情報を変更する。なお、１００５のファームグループ２．０は、共有設定を変更せず、コピー前の１００４ファームグループ１．０のファイル１００６を参照し続ける。
【００７７】
配信サーバ１３３の動作としては、配信サーバ１３３は、１００４のファームグループ１．０のデバイス商品コード構成を変更する場合、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、１００５のファームグループ２．０が検索結果として抽出される。
【００７８】
次に、配信サーバ１３３は、１００４のファームグループ１．０と、上記抽出された１００５のファームグループ２．０の構成ファイルを比較し、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。
【００７９】
配信サーバ１３３は、上記抽出された「ＡＡＡ.ｄａｔ」を共有ファイルとして認識する。よって、配信サーバ１３３は、１００４のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているディレクトリ領域を、新規ディレクトリ領域にコピーする。さらに、配信サーバ１３３は、１００４のファームグループ１．０の参照先を、上記ファイルストレージ１３５の新規ディレクトリにコピーしたファイルとするように、テーブル８１２のディレクトリ情報を更新する。なお、１００５のファームグループ２．０は、元の１００４のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているデータベース１３４のディレクトリ領域を参照し続ける。
【００８０】
即ち、配信サーバ１３３は、データベース１３４に登録されているファームウェアグループに関連付けされているデバイス商品コードが変更される場合、当該ファームウェアグループに含まれるファームウェアが共有されている場合には、当該共有されているファームウェアを、デバイス商品コードが変更されるファームウェアグループ以外のファームウェアグループで共有するように管理する。なお、配信サーバ１３３は、上記共有されているファームウェアから複製したファームウェアを、デバイス商品コードが変更されるファームウェアグループのファームウェアとして、ファイルストレージ１３５に格納し、データベース１３４で管理する。
【００８１】
図１０Ｂ（ｃ）は、共有先のファームウェアグループを削除する場合を示す。
１００７のファームグループ１．０は、共有元のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００８のファームグループ２．０は、共有先のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１００９は、ファームグループ１．０、ファームグループ２．０で、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。この状況において、共有先である１００８のファームグループ２．０を削除する場合、１００７のファームウェアグループ１．０と、１００８のファームウェアグループ２．０の共有関係を解除する。
【００８２】
配信サーバ１３３の動作としては、配信サーバ１３３は、１００８のファームグループ２．０を削除する場合、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、１００７のファームグループ１．０が検索結果として抽出される。次に、抽出された１００７のファームグループ１．０と、１００８のファームグループ２．０の構成ファイル３を比較し、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。
【００８３】
配信サーバ１３３は、上記抽出された「ＡＡＡ.ｄａｔ」を共有ファイルとして認識するので、１００７のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているディレクトリ領域はそのまま保持し続ける。そして、配信サーバ１３３は、１００８のファームグループ２．０の情報をテーブル８１２から削除する。これにより、１００８のファームグループ２．０の共有関係が解除される。
【００８４】
図１０Ｂ（ｄ）は、共有先のデバイス商品構成の変更により共有ファイルから外れる場合を示す。
１０１０のファームグループ１．０は、共有元のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１０１１のファームグループ２．０は、共有先のファームグループであり、デバイス商品コードＡ、デバイス商品コードＢが設定されている。１０１２は、ファームグループ１．０、ファームグループ２．０で、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルである「ＡＡＡ．ｄａｔ」を示す。
【００８５】
この状況において、共有先である１０１１のファームグループ２．０のデバイス商品構成を変更する場合、１０１１のファームグループ２．０の共有元である１０１０のファームグループ１．０のファイルを新規ディレクトリにコピーして保持する。そして、１０１１のファームグループ２．０の参照先を、上記ファイルストレージ１３５の新規ディレクトリにコピーしたファイルとするように、テーブル８１２のディレクトリ情報を更新する。これにより、１００８のファームグループ２．０の共有関係が解除される。
【００８６】
配信サーバ１３３の動作としては、配信サーバ１３３は、１０１１のファームグループ２．０のデバイス商品コード構成を変更する場合に、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、１０１０のファームグループ１．０が検索結果として抽出される。
【００８７】
次に、配信サーバ１３３は、１０１０のファームグループ１．０と、１０１１のファームグループ２．０の構成ファイル８０３を比較し、ファームタイプ、ファームバージョン、ファームファイル名がすべて一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。
【００８８】
配信サーバ１３３は、上記抽出された「ＡＡＡ.ｄａｔ」を共有ファイルとして認識するので、１０１０のファームグループ１．０の「ＡＡＡ.ｄａｔ」が記憶されているディレクトリ領域を、新規ディレクトリ領域にコピーする。さらに、配信サーバ１３３は、１０１１のファームグループ２．０の参照先を、上記ファイルストレージ１３５の新規ディレクトリにコピーしたファイルとするように、テーブル８１２のディレクトリ情報を更新する。
【００８９】
以下、強制上書きモードについて説明する。
図１１は、強制上書きモードでのファームウェア登録を説明するための図である。
本実施例での共有ファイル化を行った後に、該当ファイルに不備があった場合、差し替えが必要となる。その差し替え処理のため、配信サーバ１３３では「強制上書きモード」という登録方式（登録モード）を持つ。強制上書きモードは、既に登録されているファームウェアグループに含まれる既存のファームウェア（ファームファイル）を、新たなファームウェアで更新するための登録モードである。
【００９０】
配信サーバ１３３では、ファームウェア登録処理の際に、強制上書きモードを指定してファームウェア登録を行った場合は、ファイルを中間バッファ８１７に保持する。強制上書きモードを指定してファームウェア登録を行った場合は、該ファームウェアが公開処理するタイミング（即ち公開指示があったタイミング）で、正規の登録処理を行う。公開処理とは、ファームウェアを登録した後に、販売会社向けに公開する手段であり、この操作を行うことで、販売会社が管理するネットワークデバイスが配信サーバ１３３からファームウェアをダウンロード可能となる。
【００９１】
図１１（ａ）は、強制上書きモードでのファームウェア登録処理を示す。
１１０１のファームグループ１．０は、既存登録されたファームグループであり、既に１００２のファームグループ２．０、１００３のファームグループ３．０から参照されている１１０４の共有化ファイル「ＡＡＡ.ｄａｔ」を持つ。
【００９２】
１１０２のファームグループ２．０は、既存登録されたファームグループであり、共有化ファイル１１０４を参照している。１１０３のファームグループ３．０は、既存登録されたファームグループであり、共有化ファイル１１０４を参照している。この状態において、１１０３のファームグループ３．０のファームファイルとして１１０５の「ファイルＡＡＡ.ｄａｔ」を、強制上書きモードで登録する。
【００９３】
配信サーバ１３３の動作としては、配信サーバ１３３は、１１０５の「ファイルＡＡＡ.ｄａｔ」を、１１０３のファームグループ３．０に強制上書きモードで登録する場合、共有化設定は行わず、中間バッファ８１７に一時保存する。その際、配信サーバ１３３は、ファームグループバージョンのテーブル８１２に、上記１１０５のファイルを格納した中間バッファ８１７のディレクトリ情報をフィールドに追加する。
【００９４】
図１１（ｂ）は、図１１（ａ）でファームグループ３．０のファイルを強制上書きモードで登録した後に、ファームグループ３．０を公開処理した場合を示す。この場合、１１０１のファームグループ１．０は、共有化ファイルの設定が解除され、強制上書きモードで登録された１１０５のファイルを参照するようになる。１１０２のファームグループ２．０は、共有化ファイルの設定が変更され、強制上書きモードで登録された１１０５のファイルを参照するようになる。また、新たに登録されたファームグループである１１０６のファームグループ４．０は、共有化ファイルである強制上書きモードで登録された１１０５のファイルを参照するようになる。
【００９５】
配信サーバ１３３の動作としては、配信サーバ１３３は、強制上書きモードで登録されたファイル１１０５が存在するファームグループ３．０が公開処理された場合、ファームグループバージョンのテーブル８１２を参照し、デバイス商品コード８１１の構成が同じファームグループを検索する。その結果、１１０１、１１０２、１１０６のファームグループが検索結果として抽出される。次に、１１０１、１１０２、１１０３、１１０６のファームグループの構成ファイルを比較し、ファームタイプ、ファームバージョン、ファームファイル名が全て一致するファイルを検索する。その結果、「ＡＡＡ．ｄａｔ」が検索結果として抽出される。
【００９６】
配信サーバ１３３は、上記抽出された「ＡＡＡ.ｄａｔ」を共有ファイルとして認識し、１１０１に関連づけられていた１１０４のファイル「ＡＡＡ．ｄａｔ」をファイルストレージ１３５から削除する。また、配信サーバ１３３は、公開処理されたファームグループ３．０に強制上書きモードで登録された１１０５のファイル「ＡＡＡ．ｄａｔ」を、ファイルストレージ１３５に移動させる。さらに、配信サーバ１３３は、１１０１、１１０２、１１０３、１１０６のファームグループの参照先を、公開処理された１１０５のファイル「ＡＡＡ．ｄａｔ」とするようにテーブル８１２の情報を変更する。
【００９７】
以上のように、配信サーバ１３３は、強制上書きモードで、既に登録されているファームウェアグループに含まれる既存のファームウェアを新たなファームウェアに更新する登録処理が行われた場合、ファームウェアを更新したファームウェアグループについて公開指示があったタイミングで、既存のファームウェアに代わって、新たなファームウェアを、ファイルストレージ１３５に格納する。また、配信サーバ１３３は、既存のファームウェアが共有されていた場合には、既存のファームウェアに代わって、新たなファームウェアを共有するよう管理する。
【００９８】
図１２Ａ、図１２Ｂは、強制上書きモードでのファームウェア登録における特殊ケースを示す図である。
図１２Ａ（ａ）は、強制上書きモードで、複数のファームグループが同時に登録された場合を示す。
【００９９】
１２０１のファームグループ１．０は、既に１２０２、１２０３から参照されている共有化ファイル「ＡＡＡ.ｄａｔ」１２０４を持つ。１２０２のファームグループ２．０は、既存登録されたファームグループであり、共有化ファイル１２０４を参照している。１２０３のファームグループ３．０は、既存登録されたファームグループであり、共有化ファイル１２０４を参照している。
【０１００】
この状態において、強制上書きモードで、１２０２のファームグループ２．０に対して１２０５のファイル、１２０３のファームグループ３．０に対して１２０６のファイルを、更新すべく登録する。この時、強制上書きモードで登録されたファイルは中間バッファ８１７に一旦保存される。よって、この状態では、ファームグループ２．０のファイルとファームグループ３．０のファイルが同時に中間バッファ８１７に存在することになる。
【０１０１】
次に、図１２Ａ（ｂ）を用いて、図１２Ａ（ａ）の状態から１２０３のファームグループ３．０が公開処理された場合の例を示す。
図１２Ａ（ａ）の状態の後に、１２０３のファームグループ３．０が公開処理されたタイミングで正規の登録処理が行われる。この結果、中間バッファ８１７から取りだされてファイルストレージ１３５に登録されたファイル１２０６が共有対象となり、１２０３ファームグループ３．０は１２０６を参照するようになる。また、１２０１のファームグループ１．０については、共有化ファイルの設定が解除され、強制上書きモードで登録された１２０６のファイルを参照するようになる。また、１２０２のファームグループ２．０についても、共有化ファイルの設定が変更され、強制上書きモードで登録された１２０６のファイルを参照するようになる。なお、１２０５のファイルは、ファームグループ２．０に対して強制上書きモードで登録されたファイルなので、この時点では、１２０２のファームグループ２．０の別ファイルとして、中間バッファ８１７に保持され続ける。
【０１０２】
次に、図１２Ｂ（ｃ）を用いて、図１２Ａ（ｂ）の処理の後に、１２０２のファームグループ２．０が公開処理された状態を示す。
図１２Ａ（ｂ）の状態の後に、１２０２のファームグループ２．０が公開処理されたタイミングで正規の登録処理が行われる。この結果、中間バッファ８１７から取りだされてファイルストレージ１３５に登録されたファイル１２０５が共有対象となり、１２０２のファームグループ２．０は１２０５を参照するようになる。また、１２０１のファームグループ１．０は、１２０６の共有化ファイルの設定が変更され、強制上書きモードで登録された１２０５のファイルを参照するようになる。また、１２０３のファームグループ３．０は、共有化ファイルの設定が解除され、強制上書きモードで登録された１２０５のファイルを参照するようになる。
【０１０３】
以上のように、配信サーバ１３３は、強制上書きモードで、既に登録されている複数のファームウェアグループで共有されている既存のファームウェアが、複数のファームウェアグループで別々に新たなファームウェアに更新された場合、公開指示が有るごとに、共有されているファームウェアに代わって、該公開指示のあったファームウェアグループのファームウェアを共有するよう管理する。即ち、複数の強制上書きモードで登録されたファイルがある場合には、後に公開処理されたファイルを優先し、共有化を行う。なお、共有ファイルとして参照されていたファームウェアグループと共有ファイルを参照していた他のファームウェアグループについて、配信サーバ１３３からファームウェアをダウンロードする場合、再登録したファームウェアグループが公開処理されるまで、旧共有ファイルがダウンロードされる。
【０１０４】
図１３は、配信サーバ１３３によるファームウェア登録時のファイル共有化処理を例示するフローチャートである。なお、このフローチャートの処理は、配信サーバ１３３のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【０１０５】
１０２、１０３又は１０４等のＰＣから通常モードで登録情報８０１、設定情報８０９の登録処理が行われると、登録情報８０１、設定情報８０９が配信サーバ１３３に送信される。配信サーバ１３３は、ＰＣから登録情報８０１、設定情報８０９を受信すると（Ｓ１３０１、Ｓ１３０２）、Ｓ１３０３に処理を進める。なお、Ｓ１３０１、Ｓ１３０２の順序は逆であってもよいし、同時であってもよい。
【０１０６】
Ｓ１３０３において、配信サーバ１３３は、上記Ｓ１３０１で受信した登録情報８０１のファームグループ内のファームファイル（以下、ファイル）から未処理のファイルを１つ選択し、Ｓ１３０３に処理を進める。
【０１０７】
Ｓ１３０４において、配信サーバ１３３は、上記Ｓ１３０１及び上記Ｓ１３０２で登録要求されたファームウェアグループと、デバイス商品コード構成が同じファームウェアグループを、データベース１３４から検索する。
【０１０８】
次に、Ｓ１３０５において、配信サーバ１３３は、デバイス商品コード構成が同じファームウェアグループがデータベース１３４に存在するか否かを判定する。そして、デバイス商品コード構成が同じファームウェアグループが存在すると判定した場合（Ｓ１３０５でＹｅｓの場合）、配信サーバ１３３は、Ｓ１３０６に処理を進める。
【０１０９】
Ｓ１３０６において、配信サーバ１３３は、上記Ｓ１３０４で検索されたファームウェアグループに含まれるファイルのうち、ファームタイプ、ファームバージョン、ファームファイル名が、上記Ｓ１３０３で選択したファイルと全て一致するファイル（即ち、同じファイル）を、データベース１３４から検索する。
【０１１０】
次に、Ｓ１３０７において、配信サーバ１３３は、該当ファイルがデータベース１３４に存在するか否かを判定する。そして、該当ファイルがデータベース１３４に存在すると判定した場合（Ｓ１３０７でＹｅｓの場合）、配信サーバ１３３は、Ｓ１３０８に処理を進める。
Ｓ１３０８において、配信サーバ１３３は、上記Ｓ１３０６で検索されたファイルのファームタイプ、ファームバージョン、ファームファイル名、ディレクトリ情報をデータベース１３４から取得し、Ｓ１３１０に処理を進める。
【０１１１】
なお、上記Ｓ１３０５において、デバイス商品コード構成が同じファームウェアグループがデータベース１３４に存在しないと判定した場合（Ｓ１３０５でＮｏの場合）、配信サーバ１３３は、Ｓ１３０９に処理を進める。
また、上記Ｓ１３０７において、上記Ｓ１３０４で検索されたファームウェアグループに含まれるファイルのうち、ファームタイプ、ファームバージョン、ファームファイル名が上記Ｓ１３０３で選択したファイルと全て一致するファイルがデータベース１３４に存在しないと判定した場合（Ｓ１３０７でＮｏの場合）にも、配信サーバ１３３は、Ｓ１３０９に処理を進める。
【０１１２】
Ｓ１３０９において、配信サーバ１３３は、上記Ｓ１３０３で選択したファイルをファイルストレージ１３５に書き込み、そのディレクトリ情報と、ファームタイプ、ファームバージョン、ファームファイル名をＲＡＭ２０３等に記憶し、Ｓ１３１０に処理を進める。
【０１１３】
Ｓ１３１０において、配信サーバ１３３は、上記Ｓ１３０８或いは上記Ｓ１３０９で取得或いは記憶したファームタイプ、ファームバージョン、ファームファイル名、ディレクトリ情報を、データベース１３４の新規フィールドに書きこむ（ファイルの共有化）。
【０１１４】
次に、Ｓ１３１１において、配信サーバ１３３は、上記Ｓ１３０１で受信したファームグループに含まれる全てのファイルの処理が終了したか否かを判定する。そして、まだ終了していないと判定した場合（Ｓ１３１１でＮｏの場合）、配信サーバ１３３は、次のファイルの処理を行うべくＳ１３０３に処理を戻す。一方、全てのファイルの処理が終了したと判定した場合（Ｓ１３１１でＹｅｓの場合）、配信サーバ１３３は、本フローチャートの処理を終了する。
【０１１５】
図１４は、ファームグループに設定されているデバイス商品コード構成を変更する場合の配信サーバ１３３の処理を例示するフローチャートである。なお、このフローチャートの処理は、配信サーバ１３３のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【０１１６】
配信サーバ１３３は、１０２、１０３又は１０４等のＰＣからファームグループのデバイス商品コード構成の変更要求を受信すると（Ｓ１４０１）、Ｓ１４０２に処理を進める。Ｓ１４０２において、配信サーバ１３３は、上記Ｓ１４０１で受信した変更要求により変更するファームグループ内に共有化対象ファイルが存在するかをチェックする。なお、該ファームグループのファームファイルが、他のファームグループから参照されている場合、共有化対象ファイルが存在すると判断する。
【０１１７】
次に、Ｓ１４０３において、配信サーバ１３３は、共有化対象ファイルが存在しないと判定した場合（Ｓ１４０３でＮｏの場合）、本フローチャートの処理を終了する。一方、共有化対象ファイルが存在すると判定した場合（Ｓ１４０３でＹｅｓの場合）、配信サーバ１３３は、Ｓ１４０４に処理を進める。
【０１１８】
Ｓ１４０４において、配信サーバ１３３は、上記変更するファームグループと、デバイス商品コード構成が同じファームウェアグループを、データベース１３４から検索する。
【０１１９】
次に、Ｓ１４０５において、配信サーバ１３３は、デバイス商品コード構成が同じファームウェアグループがデータベース１３４に存在するか否かを判定する。そして、デバイス商品コード構成が同じファームウェアグループが存在しないと判定した場合（Ｓ１４０５でＮｏの場合）、配信サーバ１３３は、本フローチャートの処理を終了する。
【０１２０】
一方、Ｓ１４０５において、デバイス商品コード構成が同じファームウェアグループがデータベース１３４に存在すると判定した場合（Ｓ１４０５でＹｅｓの場合）、配信サーバ１３３は、Ｓ１４０６に処理を進める。
Ｓ１４０６において、配信サーバ１３３は、上記Ｓ１４０４で検索されたファームウェアグループにおいて、共有化設定を更新する。なお、Ｓ１４０６の詳細は、後述する図１５のＳ１５０５に示す。
【０１２１】
なお、図１４には図示しないが、配信サーバ１３３は、上記Ｓ１４０３及びＳ１４０５の判定に関わらず、上記Ｓ１４０１で受信した変更要求に基づいて、データベース１３４に登録されているファームグループのデバイス商品コード構成を変更する。
【０１２２】
図１５は、ファームグループに設定されている共有ファイル条件を変更する場合の配信サーバ１３３の処理を例示するフローチャートである。なお、このフローチャートの処理は、配信サーバ１３３のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【０１２３】
配信サーバ１３３は、１０２、１０３又は１０４等のＰＣからファームグループの共有ファイル条件の変更要求を受信すると（Ｓ１５０１）、該変更要求された共有化ファイルの条件を判定する（Ｓ１５０２、Ｓ１５０４、Ｓ１５０６、Ｓ１５０８）。
【０１２４】
Ｓ１５０２において、配信サーバ１３３は、上記変更要求が共有元のファームグループの削除か否かを判定する。そして、共有元のファームウェアグループの削除と判定した場合（Ｓ１５０２でＹｅｓの場合）、配信サーバ１３３は、Ｓ１５０３に処理を進める。Ｓ１５０３において、配信サーバ１３３は、共有元の実体ファイルは残し、データベース１３４から削除要求されたファームグループの構成情報を削除する。そして、本フローチャートの処理を終了する。
【０１２５】
一方、上記Ｓ１５０２において、上記変更要求が共有元のファームグループの削除でないと判定した場合（Ｓ１５０２でＮｏの場合）、配信サーバ１３３は、Ｓ１５０４に処理を進める。
【０１２６】
Ｓ１５０４において、配信サーバ１３３は、上記変更要求が共有元のデバイス商品構成の変更であるか否かを判定する。そして、上記変更要求が共有元のデバイス商品構成の変更であると判定した場合（Ｓ１５０４でＹｅｓの場合）、Ｓ１５０５に処理を進める。Ｓ１５０５において、配信サーバ１３３は、共有元のファームファイルをファイルストレージ１３５上の新規のディレクトリにコピーする。さらに、配信サーバ１３３は、該新規のディレクトリを参照するように、データベース１３４のテーブル８１２の共有元のディレクトリ情報８１４を更新する。また、図示しないが、配信サーバ１３３は、変更要求に基づいて、データベース１３４のテーブル８１２の共有元のデバイス商品構成を変更する。そして、本フローチャートの処理を終了する。
【０１２７】
一方、Ｓ１５０４において、上記変更要求が共有元のデバイス商品構成の変更でないと判定した場合（Ｓ１５０４でＮｏの場合）、Ｓ１５０６に処理を進める。
【０１２８】
Ｓ１５０６において、配信サーバ１３３は、上記変更要求が共有先のファームグループの削除か否かを判定する。そして、共有先のファームウェアグループの削除と判定した場合（Ｓ１５０６でＹｅｓの場合）、配信サーバ１３３は、Ｓ１５０７に処理を進める。Ｓ１５０７において、配信サーバ１３３は、ディレクトリ８１４上の共有先の情報が含まれるレコードを削除する。そして、本フローチャートの処理を終了する。
【０１２９】
一方、上記Ｓ１５０６において、上記変更要求が共有先のファームグループの削除でないと判定した場合（Ｓ１５０６でＮｏの場合）、Ｓ１５０８に処理を進める。
【０１３０】
Ｓ１５０８において、配信サーバ１３３は、上記変更要求が共有先のデバイス商品構成の変更か否かを判定する。そして、上記変更要求が共有先のデバイス商品構成の変更であると判定した場合（Ｓ１５０８でＹｅｓの場合）、配信サーバ１３３は、Ｓ１５０９に処理を進める。
【０１３１】
Ｓ１５０９において、配信サーバ１３３は、ファイルストレージ１３５上の新規のディレクトリに、上記共有先が参照する共有元のファイルをファイルストレージ１３５上の新規のディレクトリにコピーする。さらに、Ｓ１５１０において、配信サーバ１３３は、上記共有先が上記Ｓ１５０９でコピーした新規のディレクトリを参照するように、データベース１３４のテーブル８１２の共有先のディレクトリ情報８１４を更新する。また、図示しないが、配信サーバ１３３は、変更要求に基づいて、データベース１３４のテーブル８１２の共有先のデバイス商品構成を変更する。そして、本フローチャートの処理を終了する。
【０１３２】
一方、上記Ｓ１５０８において、上記変更要求が共有先のデバイス商品構成の変更でないと判定した場合（Ｓ１５０８でＮｏの場合）、配信サーバ１３３は、そのまま本フローチャートの処理を終了する。
【０１３３】
なお、Ｓ１５０８でＹｅｓの場合、配信サーバ１３３は、以下のように動作してもよい。配信サーバ１３３は、商品構成の変更により共有先が、既存の他のファームグループと商品構成と一致し、且つ、共有先のファイルが該他のファームグループのファイルと、ファームタイプ、ファームファイル名、ファームバージョンが全て一致するものとなるか否かを判定する。そして、全て一致するものとなる場合、共有先が該一致したファームグループのファイルを参照するように、データベース１３４のテーブル８１２の共有先のディレクトリ情報８１４を更新する。一方、全て一致するものとならない場合、上述したＳ１５０９、Ｓ１５１０の処理を行うようにする。
【０１３４】
図１６は、強制上書きモードで登録を行う場合の配信サーバ１３３の処理を例示するフローチャートである。なお、このフローチャートの処理は、配信サーバ１３３のＣＰＵ２０１がＨＤＤ２０４に格納されたプログラムを読み出して実行することにより実現されるものである。
【０１３５】
まず、強制上書きモードでの登録処理について説明する。
１０２、１０３又は１０４等のＰＣから強制上書きモードでファームグループの登録の要求（強制上書きで利用するファイルを含む）を受信すると、配信サーバ１３３は、Ｓ１６０１に処理を進める。
【０１３６】
Ｓ１６０１において、配信サーバ１３３は、中間バッファ８１７に、強制上書きで利用するファイルを保持する。また、図示しないが、配信サーバ１３３は、上記ファームグループのテーブル８１２の対応するファイルのディレクトリ情報に、上記強制上書きで利用するファイルを保存した中間バッファ内のディレクトリ情報を追加する。
【０１３７】
次に、強制上書きモードで登録されたファームウェアグループを公開する場合の処理について説明する。
１０２、１０３又は１０４等のＰＣからファームウェアグループの公開要求を受信すると、配信サーバ１３３は、Ｓ１６０２に処理を進める。
【０１３８】
Ｓ１６０２において、配信サーバ１３３は、上記公開要求されたファームグループ内に強制上書きモードで登録されたファイルが存在するかどうかを判断するために、中間バッファ８１７に上記公開要求されたファームグループに紐付けられたファイルが存在するかどうかを確認する。
【０１３９】
次に、Ｓ１６０３において、配信サーバ１３３は、上記Ｓ１６０３における確認結果、中間バッファ８１７に上記強制上書きモードで登録されたファイルが存在しないと判定した場合（Ｓ１６０３でＮｏの場合）、本フローチャートの処理を終了する。
一方、中間バッファ８１７に上記強制上書きモードで登録されたファイルが存在すると判定した場合（Ｓ１６０３でＹｅｓの場合）、配信サーバ１３３は、Ｓ１６０４に処理を進める。
【０１４０】
Ｓ１６０４において、配信サーバ１３３は、上記強制上書きモードで登録されたファイルと、デバイス商品コード構成が同じファームグループをデータベース１３４から検索する。
【０１４１】
次に、Ｓ１６０５において、配信サーバ１３３は、上記Ｓ１６０４における検索の結果、上記強制上書きモードで登録されたファイルと、デバイス商品コード構成が同じファームグループがデータベース１３４に存在するか否かを判定する。そして、上記強制上書きモードで登録されたファイルとデバイス商品コード構成が同じファームグループが存在すると判定した場合（Ｓ１６０５でＹｅｓの場合）、配信サーバ１３３は、Ｓ１６０６に処理を進める。
【０１４２】
Ｓ１６０６において、配信サーバ１３３は、上記Ｓ１６０４で検索されたファームグループ内に、上記強制上書きモードで登録されたファイルと、ファームタイプ、ファームバージョン、ファームファイル名が同じもの（即ち、同じファイル）が存在するかをチェックする。
【０１４３】
次に、Ｓ１６０７において、配信サーバ１３３は、上記Ｓ１６０６のチェックの結果、上記強制上書きモードで登録されたファイルと、ファームタイプ、ファームバージョン、ファームファイル名が同じものが存在するか否かを判定する。そして、上記強制上書きモードで登録されたファイルと、ファームタイプ、ファームバージョン、ファームファイル名が同じものが存在すると判定した場合（Ｓ１６０７でＹｅｓの場合）、配信サーバ１３３は、１６０８に処理を進める。
【０１４４】
Ｓ１６０８において、配信サーバ１３３は、上記強制上書きモードで登録されたファイルを、中間バッファ８１７からファイルストレージ１３５の該当ファームグループのディレクトリにファイルをコピーする。次に、Ｓ１６０９において、配信サーバ１３３は、データベース１３４上の上記Ｓ１６０６で検索されたファームグループの該当ファイルのディレクトリ情報を、上記強制上書きモードで登録されたファイルをコピーしたファイルストレージ１３５内のディレクトリの情報で更新する。そして、本フローチャートの処理を終了する。
【０１４５】
また、上記Ｓ１６０５において、上記強制上書きモードで登録されたファイルとデバイス商品コード構成が同じファームグループが存在しないと判定した場合（Ｓ１６０５でＮｏの場合）、配信サーバ１３３は、不図示コピー処理を行う。該コピー処理では、配信サーバ１３３は、上記Ｓ１６０８と同様に、上記強制上書きモードで登録されたファイルを、中間バッファ８１７からファイルストレージ１３５の該当ファームグループのディレクトリにファイルをコピーするものとする。そして、本フローチャートの処理を終了する。
【０１４６】
また、上記Ｓ１６０７において、配信サーバ１３３は、上記Ｓ１６０６のチェックの結果、上記強制上書きモードで登録されたファイルと、ファームタイプ、ファームバージョン、ファームファイル名が同じものが存在しないと判定した場合（Ｓ１６０７でＮｏの場合）、上記不図示コピー処理を行い、本フローチャートの処理を終了する。
【０１４７】
以上、本発明によれば、配信サーバ１３３、データベース１３４、ファイルストレージ１３５、及び外部サーバ１０６のファイルストレージ１０８等を含む管理システムに登録されるファームウェア（実体ファイル）の重複を避けることが可能となる。よって、配信サーバ１３３のファイルストレージ１３５に格納するファームウェア容量を削減可能となる。並びに、外部サーバ１０６に転送及び、外部サーバ１０６のファイルストレージ１０８に格納するファームウェア容量も削減可能となる。このため、ファームウェアの整合性や安全面を犠牲にすることなく、ネットワーク上の機器へ配信すべきファームウェアを記憶するために管理システムに確保する記憶領域を削減することができる。
【０１４８】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１４９】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図１】
2015225564.tif 000003
【図２】
2015225564.tif 000004
【図３】
2015225564.tif 000005
【図４】
2015225564.tif 000006
【図５】
2015225564.tif 000007
【図６】
2015225564.tif 000008
【図７Ａ】
2015225564.tif 000009
【図７Ｂ】
2015225564.tif 000010
【図８】
2015225564.tif 000011
【図９】
2015225564.tif 000012
【図１０Ａ】
2015225564.tif 000013
【図１０Ｂ】
2015225564.tif 000014
【図１１】
2015225564.tif 000015
【図１２Ａ】
2015225564.tif 000016
【図１２Ｂ】
2015225564.tif 000017
【図１３】
2015225564.tif 000018
【図１４】
2015225564.tif 000019
【図１５】
2015225564.tif 000020
【図１６】
2015225564.tif 000021