(57)【特許請求の範囲】
【請求項１】
複数のデバイスと通信する配信装置であって、
デバイスにソフトウェアを配信する第１の配信手段と、
前記第１の配信手段によりソフトウェアが配信されたデバイスから受信した情報に基づいて、前記ソフトウェアの配信が成功したことを確認する確認手段と、
前記確認手段により、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信手段と、
前記第１の配信手段によりソフトウェアが配信されるべきデバイスの選択に際して、手動選択か、自動選択かを、ユーザにより指定させる画面の表示を制御する制御手段と、
前記制御手段により表示された画面を介した自動選択の指定として、前記第１の配信手段によりソフトウェアを配信するデバイスを選択するための条件の指定を受け付ける受付手段と、
前記受付手段により受け付けられた条件に基づいて、前記第１の配信手段によりソフトウェアを配信するデバイスを決定する決定手段と、を有し、
前記第１の配信手段は、
前記制御手段により表示された画面を介して手動選択を指定された場合には、前記複数のデバイスの中から手動で選択されたデバイスに対して、ソフトウェアを配信し、
前記制御手段により表示された画面を介して自動選択を指定された場合には、前記決定手段により決定されたデバイスに、ソフトウェアを配信することを特徴とする配信装置。
【請求項２】
前記第２の配信手段は、前記第１の配信手段によりソフトウェアが配信されたデバイスに類似するものとして互いに関連付けられたデバイスに、前記ソフトウェアを配信することを特徴とする請求項１に記載の配信装置。
【請求項３】
前記複数のデバイスからデバイスに関する情報を取得する取得手段を有し、
前記受付手段は、前記取得手段により取得された情報に基づく複数の条件の中から、前記第１の配信手段によりソフトウェアを配信するデバイスを選択するための条件の指定を受け付けることを特徴とする請求項１に記載の配信装置。
【請求項４】
前記制御手段により表示された画面を介した自動選択の指定として、同一のソフトウェアを配信するデバイス群を作成するための条件の指定を受け付ける第２の受付手段と、
前記第２の受け付け手段により受け付けられた条件に基づいて、同一のソフトウェアを配信するデバイス群を作成する作成手段とを有し、
前記第２の配信手段は、前記作成手段により作成されたデバイス群のうち、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスに、前記第１の配信手段により配信されたソフトウェアと同一のソフトウェアを配信することを特徴とする請求項１乃至３の何れか１項に記載の配信装置。
【請求項５】
前記第２の受付手段は、配信対象のソフトウェアのバージョン情報に基づく複数の条件の中から、前記同一のソフトウェアを配信するデバイス群を作成するための条件の指定を受け付けることを特徴とする請求項４に記載の配信装置。
【請求項６】
前記複数のデバイスからデバイスに関する情報を取得する取得手段を有し、
前記第２の受付手段は、前記取得手段により取得された情報に基づく複数の条件の中から、前記同一のソフトウェアを配信するデバイス群を作成するための条件の指定を受け付けることを特徴とする請求項４又は５に記載の配信装置。
【請求項７】
前記第２の配信手段によりソフトウェアを配信するための条件の指定を受け付ける第３の受付手段を有し、
前記確認手段は、前記第３の受付手段により受け付けられた条件を満たしていることを、前記第１の配信手段によりソフトウェアが配信されたデバイスから受信した情報に基づいて確認することで、前記ソフトウェアの配信が成功したことを確認することを特徴とする請求項１乃至６の何れか１項に記載の配信装置。
【請求項８】
前記第１の配信手段によりソフトウェアが配信されたデバイスから、デバイスに関する情報を取得する取得手段を有し、
前記第３の受付手段は、前記取得手段により取得された情報に基づく複数の条件の中から、前記第２の配信手段によりソフトウェアを配信するための条件の指定を受け付けることを特徴とする請求項７に記載の配信装置。
【請求項９】
前記確認手段により、前記ソフトウェアの配信が成功したことが確認されなかった場合に、前記第１の配信手段によりソフトウェアが配信されたデバイスの状態を、そのソフトウェアが配信される前の状態に戻す状態変更手段を有することを特徴とする請求項１乃至８の何れか１項に記載の配信装置。
【請求項１０】
前記第２の配信手段によるデバイスへのソフトウェアの配信が成功したか否かを判定する判定手段と、
前記判定手段により、前記第２の配信手段によるデバイスへのソフトウェアの配信が成功しなかったと判定された場合、そのデバイスの状態を、そのソフトウェアが配信される前の状態に戻す第２の状態変更手段を有することを特徴とする請求項１乃至９の何れか１項に記載の配信装置。
【請求項１１】
前記第１の配信手段によるソフトウェアの配信結果、及び第２の配信手段によるソフトウェアの配信結果の少なくとも何れか一方を表示装置に表示する表示手段を有することを特徴とする請求項１乃至１０の何れか１項に記載の配信装置。
【請求項１２】
複数のデバイスと通信する配信装置であって、
所定の表示画面を介してユーザにより前記複数のデバイスの中から手動選択されたデバイスに対して、ソフトウェアを配信する第１の配信手段と、
前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスにも当該ソフトウェアを配信するための条件の指定を受け付ける受付手段と、
前記受付手段により受け付けられた条件を満たしていることを、前記第１の配信手段によりソフトウェアが配信されたデバイスから受信した情報に基づいて確認できた際に、前記ソフトウェアの配信が成功したことを確認する確認手段と、
前記確認手段により、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信手段と、を有することを特徴とする配信装置。
【請求項１３】
複数のデバイスと通信する配信装置における配信方法であって、
デバイスにソフトウェアを配信する第１の配信ステップと、
前記第１の配信ステップでソフトウェアが配信されたデバイスから受信した情報に基づいて、前記ソフトウェアの配信が成功したことを確認する確認ステップと、
前記確認ステップで前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信ステップと、
前記第１の配信ステップでソフトウェアが配信されるべきデバイスの選択に際して、手動選択か、自動選択かを、ユーザにより指定させる画面の表示を制御する制御ステップと、
前記制御ステップで表示された画面を介した自動選択の指定として、前記第１の配信ステップによりソフトウェアを配信するデバイスを選択するための条件の指定を受け付ける受付ステップと、
前記受付ステップで受け付けられた条件に基づいて、前記第１の配信ステップでソフトウェアを配信するデバイスを決定する決定ステップと、を有し、
前記第１の配信ステップにおいては、
前記制御ステップで表示された画面を介して手動選択を指定された場合には、前記複数のデバイスの中から手動で選択されたデバイスに対して、ソフトウェアを配信し、
前記制御ステップで表示された画面を介して自動選択を指定された場合には、前記決定ステップにより決定されたデバイスに、ソフトウェアを配信することを特徴とする配信方法。
【請求項１４】
複数のデバイスと通信する配信装置における配信方法であって、
所定の表示画面を介してユーザにより前記複数のデバイスの中から手動選択されたデバイスに対して、ソフトウェアを配信する第１の配信ステップと、
前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスにも当該ソフトウェアを配信するための条件の指定を受け付ける受付ステップと、
前記受付ステップで受け付けられた条件を満たしていることを、前記第１の配信ステップでソフトウェアが配信されたデバイスから受信した情報に基づいて確認できた際に、前記ソフトウェアの配信が成功したことを確認する確認ステップと、
前記確認ステップで、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信ステップと、を有することを特徴とする配信方法。
【請求項１５】
請求項１乃至１２の何れか１項に記載の配信装置の各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信装置、配信方法、及びコンピュータプログラムに関し、特に、ネットワークに接続されている１つ以上のデバイスに対して、ファームウェアに代表される各種ソフトウェアを配信するために用いて好適なものである。
【背景技術】
【０００２】
従来から、複合機、複写機、プリンタ等のデバイスの機能向上を図るために、デバイスの保守を担当する者等がファームウェアに代表される各種データ（ソフトウェア）をデバイスにダウンロードすることが行われている。
最も基本的なファームウェアの更新方法では、まず、デバイスの保守を担当する者が専用のファームウェアダウンロードツールをデバイスに接続する。そして、新しいファームウェアをファームウェアダウンロードツールからデバイスに転送させることによって、ファームウェアの更新を行う。
【０００３】
ここで、ファームウェアの更新対象のデバイスが複数台存在する場合、デバイスの保守を担当する者は全てのデバイスのファームウェアを更新せずに、一部のデバイスのファームウェアのみを更新する方法がある。
この方法は、ファームウェアの更新失敗による影響を最小限に抑えるために取られる手法である。すなわち、この方法では、ファームウェアの更新が済んだデバイスを一定期間動作させ、そのファームウェアの更新の有効性を確認してから、残りのデバイスのファームウェアを更新する。
【０００４】
一方、近年、ネットワーク環境が整備されてくるに従って、遠隔地の配信装置からデバイスに対してファームウェアに代表される各種データを配信する技術が実現されてきている（特許文献１、特許文献２を参照）。
特許文献１では、遠隔地の配信装置が、デバイスが提供するサービスの更新プログラムをデバイスに配信するプログラム更新システムを提供する。このプログラム更新システムでは、店舗(イントラネット)内にある複数のデバイスのうち、サービスを提供していない代表デバイスが前記サービスに対する更新プログラムを配信装置から代表取得し、他のデバイスに転送する。その結果、遠隔地からサービスの更新プログラムを配信した場合でも、店舗内に複数設置されているデバイスでのサービスの提供が一斉に停止してしまうことを防止できるようになる。
【０００５】
また、特許文献２では、ファームウェア管理装置が更新日時を仲介装置に送信する遠隔管理システムを提供する。この遠隔管理システムでは、更新日時になると、仲介装置は管理装置からファームウェアを取得し、それを記憶手段に書き込んだ後、画像形成装置へ送信してファームウェアを更新する。その結果、時間間隔を空けてファームウェアの更新を行うため、デバイスのファームウェアの更新による稼働率の低下を回避することができるようになる。
【０００６】
【特許文献１】特開２００２−１３２５１１号公報
【特許文献２】特開２００４−１３９５７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述した最も基本的なファームウェアの更新方法では、デバイスの保守を担当する者は２回以上ファームウェアの更新作業を行わなければならず、デバイスの保守を担当する者の負荷が大きいという課題があった。
また、特許文献１に記載のプログラム更新システムでは、更新プログラムの配信を自動で行うことができるため、デバイスの保守を担当する者の負荷は軽減する。しかしながら、配信装置から更新プログラムを受信する拠点の代表デバイスは、更新プログラムの適用対象のデバイスでなくても、配信装置から更新プログラムを受信することができる。このため、その更新プログラムの有効性は、拠点の全てのデバイスに更新プログラムを適用して、別途確かめる必要があった。尚、以下の説明では、デバイスの保守を担当する者等をユーザと総称する。
【０００８】
更に、特許文献２に記載の遠隔管理システムでは、ファームウェアを配信する時間を指定することにより、ファームウェアを段階的に配信することが可能となる。そのため、第１の指定時間に、一部のデバイスに対してファームウェアを配信し、その有効性を確認してから、第２の指定時間に、残りのデバイスに対してファームウェア配信を行うことができるようになる。ところが、第１の指定時間に配信したファームウェアに有効性が認められない場合、ユーザがファームウェア管理装置に対して第２の指定時間におけるファームウェアの配信の停止を指示しなければならなかった。
【０００９】
本発明は、このような問題点の少なくとも一つに鑑みてなされたものであり、複数のデバイスにファームウェア等のソフトウェアを配信する際にユーザにかかる負荷を低減し、且つそのソフトウェアの配信を可及的に適切に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の配信装置は、複数のデバイスと通信する配信装置であって、デバイスにソフトウェアを配信する第１の配信手段と、前記第１の配信手段によりソフトウェアが配信されたデバイスから受信した情報に基づいて、前記ソフトウェアの配信が成功したことを確認する確認手段と、前記確認手段により、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信手段と、前記第１の配信手段によりソフトウェアが配信されるべきデバイスの選択に際して、手動選択か、自動選択かを、ユーザにより指定させる画面の表示を制御する制御手段と、前記制御手段により表示された画面を介した自動選択の指定として、前記第１の配信手段によりソフトウェアを配信するデバイスを選択するための条件の指定を受け付ける受付手段と、前記受付手段により受け付けられた条件に基づいて、前記第１の配信手段によりソフトウェアを配信するデバイスを決定する決定手段と、を有し、前記第１の配信手段は、前記制御手段により表示された画面を介して手動選択を指定された場合には、前記複数のデバイスの中から手動で選択されたデバイスに対して、ソフトウェアを配信し、前記制御手段により表示された画面を介して自動選択を指定された場合には、前記決定手段により決定されたデバイスに、ソフトウェアを配信することを特徴とする。
また、本発明の配信装置の他の態様では、複数のデバイスと通信する配信装置であって、所定の表示画面を介してユーザにより前記複数のデバイスの中から手動選択されたデバイスに対して、ソフトウェアを配信する第１の配信手段と、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスにも当該ソフトウェアを配信するための条件の指定を受け付ける受付手段と、前記受付手段により受け付けられた条件を満たしていることを、前記第１の配信手段によりソフトウェアが配信されたデバイスから受信した情報に基づいて確認できた際に、前記ソフトウェアの配信が成功したことを確認する確認手段と、前記確認手段により、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信手段によりソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信手段と、を有することを特徴とする。
【００１１】
本発明の配信方法は、複数のデバイスと通信する配信装置における配信方法であって、デバイスにソフトウェアを配信する第１の配信ステップと、前記第１の配信ステップでソフトウェアが配信されたデバイスから受信した情報に基づいて、前記ソフトウェアの配信が成功したことを確認する確認ステップと、前記確認ステップで前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信ステップと、前記第１の配信ステップでソフトウェアが配信されるべきデバイスの選択に際して、手動選択か、自動選択かを、ユーザにより指定させる画面の表示を制御する制御ステップと、前記制御ステップで表示された画面を介した自動選択の指定として、前記第１の配信ステップによりソフトウェアを配信するデバイスを選択するための条件の指定を受け付ける受付ステップと、前記受付ステップで受け付けられた条件に基づいて、前記第１の配信ステップでソフトウェアを配信するデバイスを決定する決定ステップと、を有し、前記第１の配信ステップにおいては、前記制御ステップで表示された画面を介して手動選択を指定された場合には、前記複数のデバイスの中から手動で選択されたデバイスに対して、ソフトウェアを配信し、前記制御ステップで表示された画面を介して自動選択を指定された場合には、前記決定ステップにより決定されたデバイスに、ソフトウェアを配信することを特徴とする。
本発明の配信方法の他の態様では、複数のデバイスと通信する配信装置における配信方法であって、所定の表示画面を介してユーザにより前記複数のデバイスの中から手動選択されたデバイスに対して、ソフトウェアを配信する第１の配信ステップと、前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスにも当該ソフトウェアを配信するための条件の指定を受け付ける受付ステップと、前記受付ステップで受け付けられた条件を満たしていることを、前記第１の配信ステップでソフトウェアが配信されたデバイスから受信した情報に基づいて確認できた際に、前記ソフトウェアの配信が成功したことを確認する確認ステップと、前記確認ステップで、前記ソフトウェアの配信が成功したことが確認された後に、前記第１の配信ステップでソフトウェアが配信されたデバイスと異なるデバイスに、前記ソフトウェアを配信する第２の配信ステップと、を有することを特徴とする。
【００１２】
本発明のコンピュータプログラムは、前記配信装置の各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数のデバイスにファームウェア等のソフトウェアを配信する際にユーザにかかる負荷を低減し、且つそのソフトウェアの配信を可及的に適切に行うことができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態について、図面を参照して説明する。本実施形態では、ファームウェア配信装置が、複数台のデバイスに、ソフトウェアの一例であるファームウェアを配信する際の動作を例に挙げて説明する。
【００１５】
図１は、ソフトウェア配信システムの構成の一例を示す図である。
図１において、ソフトウェア配信システムは、ファームウェア配信装置１０１と、プリンタ１０２〜１０４と、複合機１０５〜１０７とが、ＬＡＮ１００によりネットワークに接続されている。本実施形態では、プリンタ１０２〜１０４と、複合機１０５〜１０７とがデバイスとして配置される。
【００１６】
図２は、ファームウェア配信装置１０１の内部構成の一例を示す図である。
ファームウェア配信装置１０１は、例えばＰＣ（Personal Computer）により実現される。ハードディスク（ＨＤ）２１１には、後述の全ての説明で動作主体となる本実施形態に係るファームウェア配信ソフトウェアのプログラムが格納される。後述する全ての説明において、特に断りのない限り、処理を実行するハードウェア上の主体は、ＣＰＵ２０１である。一方、ソフトウェア上の制御の主体は、ハードディスク（ＨＤ）２１１に格納されたファームウェア配信ソフトウェアである。
【００１７】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリや、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）２０５は、キーボード（ＫＢ）２０９やポインティングデバイス（不図示）等からの指示入力を制御する。ディスプレイコントローラ（ＤＳＰＣ）２０６は、ディスプレイ（ＤＳＰ）２１０の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７は、ＣＤ−ＲＯＭ（不図示）、ハードディスク（ＨＤ）２１１やフレキシブルディスクコントローラ２１２等の記憶装置へのアクセスを制御するものである。ハードディスク（ＨＤ）２１１及びフレキシブルディスクコントローラ２１２等には、ブートプログラム、オペレーティングシステム、ファームウェア配信アプリケーション及びそのデータ等を記憶している。インタフェースコントローラ２０８は、ＬＡＮ１００を介して他のネットワーク機器と情報を送受信する。
尚、本実施形態においては、ＯＳとして、ウィンドウズ（登録商標）を想定しているが、ＯＳはこれに限るものではない。
また、本実施形態に係るファームウェア配信プログラムは、フレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に格納された形で供給されても良い。その場合には、図２に示すフロッピー（登録商標）ディスクコントローラ（ＦＤ）２１２又は不図示のＣＤ−ＲＯＭドライブ等によって記憶媒体からプログラムが読み取られ、ハードディスク（ＨＤ）２１１にインストールされる。
【００１８】
図３は、デバイスの内部構成の一例を示した図である。ここでは、デバイスとして複合機１０５を例に挙げて説明する。尚、複合機１０６、１０７は、複合機１０５と同じ構成を有し、プリンタ１０２〜１０４は、複合機１０５におけるプリンタとしての機能のみを有するので、複合機１０６、１０７、プリンタ１０２〜１０４についての詳細な説明を省略する。
【００１９】
図３において、複合機１０５は、スキャナ、プリンタ、コピー、及びファックスの機能を一体で備えており、公衆回線網３１２を介して他のネットワーク機器（通信装置）に接続されている。具体的に、複合機１０５は、リーダ部３０１、プリンタ部３０２、画像入出力制御部３０３、及び操作部３０４を主に備えて構成されている。
【００２０】
リーダ部３０１は、スキャン機能を実現し、画像入出力制御部３０３に接続されている。リーダ部３０１は、操作部３０４からの指示に従って、原稿の画像データを読み取ると共に、読み取った画像データを画像入出力制御部３０３に出力する。
プリンタ部３０２は、プリンタ機能（印刷機能）を実現し、画像入出力制御部３０３から出力された画像データを記録紙に印刷する。
【００２１】
画像入出力制御部３０３は、ＬＡＮ１００や公衆回線網３１２と接続し、画像データの入出力を行い、更にジョブの解析や制御も行う。また、画像入出力制御部３０３はレンダリング機能も実現する。画像入出力制御部３０３の構成要素は、ファクシミリ部３０５、ファイル部３０６、外部インタフェース部３０８、ＰＤＬフォーマッタ部３０９、画像メモリ部３１０、及びコア部３１１等である。
操作部３０４は、ユーザからの入力操作を受け付ける。
【００２２】
ファクシミリ部３０５は、コア部３１１及び公衆回線網３１２に接続され、公衆回線網３１２から受信した、圧縮された画像データを伸長し、伸長した画像データをコア部３１１へ送信する。また、ファクシミリ部３０５は、コア部３１１から送信された画像データを圧縮し、圧縮した画像データを、公衆回線網３１２を介して他のネットワーク機器に送信する。
ファイル部３０６は、コア部３１１及び外部記憶装置３０７に接続され、コア部３１１から送信された画像データを、これを検索するためのキーワードと共にハードディスク等で構成可能な外部記憶装置３０７に記憶させる。また、ファイル部３０６は、コア部３１１から送信されたキーワードに基づいて外部記憶装置３０７に記憶されている画像データを読み出し、コア部３１１へ送信する。
【００２３】
外部インタフェース部３０８は、他のネットワーク機器とコア部３１１との間のインタフェースである。他のネットワーク機器からのジョブ制御データの受信や、画像データの送受信は、外部インタフェース部３０８を介して行われる。ジョブ制御データとしては、例えば、ＰＤＬデータと共に送信されるジョブ制御命令がある。このジョブ制御命令により、例えば、ＰＤＬデータを展開して画像データとして印刷した後、印刷した紙をステイプルソートして排紙させることができる。
【００２４】
フォーマッタ部３０９は、コア部３１１に接続され、例えば、他のネットワーク機器から送信されたＰＤＬデータをプリンタ部３０２でプリントできる画像データに展開する。
画像メモリ部３１０は、リーダ部３０１からの情報や、外部インタフェース部３０８を介して他のネットワーク機器から送られてきた情報を一時的に蓄積しておくためのものである。
コア部３１１は、前述したリーダ部３０１、操作部３０４、ファクシミリ部３０５、ファイル部３０６、外部インタフェース部３０８、フォーマッタ部３０９、及び画像メモリ部３１０の夫々の間を流れるデータ等の制御を行う。
【００２５】
複合機１０５は、外部記憶装置３０７に保持されているファームウェアをコア部３１１が読み出し、読み出したファームウェアをコア部３１１が実行することによって、稼動する。
複合機１０５のファームウェアを更新する場合、複合機１０５は、外部インタフェース部３０８を介してファームウェア配信装置１０１からファームウェアを受信し、コア部３１１に転送する。コア部３１１は、受信したファームウェアを、ファイル部３０６を経由して外部記憶装置３０７に格納する。
その後、操作部３０４から、又は外部インタフェース部３０８を経由して他のネットワーク機器から、コア部３１１がリブートコマンドを受信すると、更新後のファームウェアをコア部３１１が読み出して実行する。これによりファームウェアの更新が完了する。この他、更新後のファームウェアが外部記憶装置３０７に格納された後に、複合機１０５の電源がオフ／オンされることによっても、ファームウェアの更新が完了する。
尚、ファームウェアを保持することができれば、外部記憶装置３０７は、ハードディスクである必要はなく、例えば、ＥＥＰＲＯＭ等の不揮発性メモリでもよい。
【００２６】
図４は、ファームウェア配信装置１０１の機能構成の一例を示すブロック図である。図４には、複数台のデバイスにファームウェアを配信する動作を制御する際のファームウェア配信装置１０１における機能構成の一例が示されている。
図４において、デバイス集合作成条件指定機能部４０１は、デバイスの集合を作成するための条件（デバイス集合作成条件）をユーザに指定させるためのものである。
参照デバイス選択条件指定機能部４０２は、第１のファームウェア配信機会にファームウェアを配信するデバイスを選択するための条件（参照デバイス選択条件）をユーザに指定させるためのものである。尚、以下の説明では、第１のファームウェア配信機会にファームウェアを配信するデバイスを、必要に応じて参照デバイスと称する。
【００２７】
類似デバイス配信条件指定機能部４０３は、第１のファームウェア配信機会よりも後の第２のファームウェア配信機会にデバイスへ配信するファームウェアの配信条件（類似デバイス配信条件）をユーザに指定させるためのものである。尚、以下の説明では、第２のファームウェア配信機会にデバイスへ配信するファームウェアを、必要に応じて類似デバイスと称する。
尚、デバイス集合作成条件の一覧であるデバイス集合作成条件テーブル４１０ｂと、参照デバイス選択条件の一覧である参照デバイス選択条件テーブル４１０ｃは、データベース４１０に前もって格納されているものとする。更に、類似デバイス配信条件の一覧である類似デバイス配信条件テーブル４１０ｄも、データベース４１０に前もって格納されているものとする。
【００２８】
デバイス集合作成機能部４０４は、デバイス集合作成条件指定機能部４０１で指定された条件に従って、デバイスの集合を作成するものである。
参照デバイス決定機能部４０５は、参照デバイス選択条件指定機能部４０２で指定された条件に従って、参照デバイスを、ユーザに決定させるものである。
ファームウェア配信機能部４０６は、データベース入出力機能部４０９を経由して、ファームウェアとそのファームウェアを配信すべきデバイスの情報とを取得し、通信機能部４１１を経由して、デバイスにファームウェアを送信するものである。
【００２９】
デバイス情報取得機能部４０７は、前述した各機能部４０２〜４０５や類似デバイス配信判別機能部４０８で使用されるデバイス情報を、通信機能部４１１を経由してデバイス等から取得するものである。
類似デバイス配信判別機能部４０８は、類似デバイス配信条件指定機能部４０３で指定された条件と、デバイス情報取得機能部４０７で取得されたデバイス情報とを用いて、類似デバイスにファームウェアを配信すべきか否かを判別するものである。
【００３０】
データベース入出力機能部４０９は、データベース４１０へのデータの入出力を司るものである。データベース４１０は、各種データを格納するものである。
データベース４１０に格納されるデータとしては、例えば、ファームウェア４１０ａ、デバイス集合作成条件テーブル４１０ｂ、参照デバイス選択条件テーブル４１０ｃ、類似デバイス配信条件テーブル４１０ｄ、デバイス情報テーブル４１０ｅ等がある。
通信機能部４１１は、ＬＡＮ１００を経由してファームウェアをデバイスに送出したり、デバイス情報を受信したりするものである。
【００３１】
次に、データベース４１０に格納されるデータの構成について説明する。
図５は、デバイス集合作成条件テーブル４１０ｂの登録内容の一例を示す図である。
本実施形態では、デバイスの集合を作成するデバイス集合作成条件として、データベース４１０に格納されているファームウェアの情報を利用している。
図５に示すデバイス集合作成条件テーブル４１０ｂには、配信対象のファームウェアを適用可能なデバイス名５１０と、そのファームウェアのバージョン情報５２０とにより構成されるデバイス集合作成条件５０１〜５０３が登録されている。
本実施形態では、このようなデバイス集合作成条件テーブル４１０ｂを用いることにより、互いに類似する複数のデバイスが関連付けられる。尚、デバイス集合作成条件テーブル４１０ｂの構成要素は、ファームウェアを適用可能なデバイス名５１０と、ファームウェアのバージョン情報５２０に限定されるものではない。例えば、デバイスから取得したデバイスの情報（例えばデバイスの機能（スキャナの有無、フィニッシャの有無等））を条件化してもよい。
【００３２】
次に、データベース４１０に格納される参照デバイス選択条件テーブル４１０ｃについて説明する。
図６は、参照デバイス選択条件テーブル４１０ｃの一例を示す図である。
図６に示す例では、参照デバイス選択条件テーブル４１０ｃには、参照デバイス選択条件名６１０と、使用するデバイス情報６２０とにより構成される参照デバイス選択条件６０１〜６０３が登録されている。このように、参照デバイス選択条件テーブル４１０ｃには、参照デバイスを抽出するために必要なデバイス情報が列挙される。
尚、使用するデバイス情報６２０として、図４に示したデバイス情報取得機能部４０７で取得されたデバイス情報を用いることを想定しているが、必ずしもこのようにする必要はない。例えば、ユーザがデバイス毎に入力した情報をデータベースに４１０に保持しておき、それをデバイス情報として用いることも可能である。
【００３３】
次に、データベース４１０に格納される類似デバイス配信条件テーブル４１０ｄについて説明する。
図７は、類似デバイス配信条件テーブル４１０ｄの一例を示す図である。
類似デバイス配信条件テーブル４１０ｄは、参照デバイスにファームウェアが配信された後、その参照デバイスにおけるファームウェアの適用の有効性を確認するために使用される。
図７に示す例では、類似デバイス配信条件テーブル４１０ｄには、類似デバイス配信条件名７１０と、使用するデバイス情報７２０と、配信条件７３０とにより構成される類似デバイス配信条件７０１〜７０３が登録されている。ここで、配信条件７３０とは、類似デバイスにファームウェアを配信するための条件をいう。
尚、使用するデバイス情報７２０としては、図４に示したデバイス情報取得機能部４０７で取得されたデバイス情報を用いることを想定しているが、必ずしもこのようにする必要はない。例えば、ユーザがデバイス毎に入力した情報をデータベース４１０に保持しておき、それをデバイス情報として用いることも可能である。
【００３４】
次に、データベース４１０に格納されるデバイス情報テーブル４１０ｅについて説明する。
図８は、デバイス情報テーブル４１０ｅの一例を示す図である。
デバイス情報テーブル４１０ｅは、図４に示したデバイス情報取得機能部４０７で取得された情報を元に作成される。図８に示す例では、製品名８１０、ファームウェアのバージョン８２０、設置場所８３０、ＩＰアドレス８４０、エラーログ８５０、デバイスが持つ機能の一覧８６０、及びシステムログ８７０により構成されるデバイス情報８０１〜８０３が登録されている。ここで、設置場所８３０は、デバイスの設置場所を示し、ＩＰアドレス８４０は、デバイスのＩＰアドレスを示す。また、エラーログ８５０は、デバイスで発生したエラーを記録したものであり、システムログ８７０は、システムの稼動状況を記録したものである。
尚、デバイス情報テーブル４１０ｅの構成要素は、図８に示したものに限定されない。例えば、前述したものの他に、ＭＡＣアドレス、印刷速度、総印刷枚数等をデバイス情報として加えてもよい。
【００３５】
次に、図９のフローチャートを参照しながら、複数台のデバイスにファームウェアを配信する際のファームウェア配信装置１０１における動作の一例を説明する。
【００３６】
まず、図９のステップＳ９０１において、データベース入出力機能部４０９は、データベース４１０にデバイスのファームウェアを格納する。
データベース入出力機能部４０９は、ユーザの指示に基づいてファームウェアをデータベース４１０に格納してもよいし、不図示の外部のファームウェア管理装置等から供給されたファームウェアをデータベース４１０に格納してもよい。
【００３７】
また、ファームウェア管理装置からファームウェアが供給される場合、ファームウェア配信装置１０１がファームウェア管理装置に要求してファームウェアを取得し、取得したファームウェアをデータベース４１０に格納してもよい。これとは逆に、ファームウェア管理装置がファームウェア配信装置１０１に対してファームウェアを自発的に送付し、奏されたファームウェアをデータベース４１０に格納してもよい。このように、外部から、ファームウェアが供給される場合には、通信機能部４１１を経由してファームウェアが供給されることになる。また、ファームウェアは、フロッピーディスクやＣＤ−ＲＯＭ等の記憶媒体に格納された形で供給されてもよい。
【００３８】
次に、ステップＳ９０２において、データベース入出力機能部４０９は、データベース４１０に格納されている各種テーブル４１０ａ〜４１０ｅを初期化する。
次に、ステップＳ９０３において、デバイス情報取得機能部４０７は，通信機能部４１１を経由して、デバイスからデバイス情報を取得する。そして、データベース入出力機能部４０９は、デバイス情報取得機能部４０７で取得されたデバイス情報をデバイス情報テーブル４１０ｄに格納する。そして、データベース入出力機能部４０９は、デバイス情報テーブル４１０ｄの登録内容に基づいて、デバイスリストを作成する。尚、デバイスリストについては、後述する。このように、本実施形態では、ステップＳ９０３の処理を行うことにより、取得手段が実現される。
【００３９】
次に、ステップＳ９０４において、デバイス集合作成条件指定機能部４０１は、ユーザによって入力された、デバイス集合を作成するためのデバイス集合作成条件に従って、デバイス集合（デバイス群）を作成する。具体的にデバイス集合作成条件指定機能部４０１は、デバイス集合作成条件テーブル４１０ｂの登録内容に基づいてデバイス集合作成条件を作成し、作成した条件を表示装置に表示してユーザに提示する。ユーザは、デバイス集合作成条件指定機能部４０１によって提示されたデバイス集合作成条件の中から採用する条件を選択する。デバイス集合作成条件指定機能部４０１は、選択された条件を受け付ける。このように、本実施形態では、ステップＳ９０４の処理を行うことにより、第２の受付手段が実現される。
【００４０】
次に、ステップＳ９０５において、参照デバイス選択条件指定機能部４０２は、参照デバイスを選択するための参照デバイス選択条件をユーザに提示する。具体的に参照デバイス選択条件指定機能部４０２は、参照デバイス選択条件テーブル４１０ｃの登録内容に基づいて参照デバイスを選択するための参照デバイス選択条件を作成し、作成した条件を表示装置に表示してユーザに提示する。ユーザは、参照デバイス選択条件指定機能部４０２によって提示された条件の中から、採用する条件を選択する。参照デバイス選択条件指定機能部４０２は、選択された条件を受け付ける。このように、本実施形態では、ステップＳ９０５の処理を行うことにより、受付手段が実現される。
【００４１】
図１０は、ステップＳ９０３からステップＳ９０５までの処理で表示されるファームウェア配信条件選択画面の一例を示す図である。
図１０において、ファームウェア配信条件選択画面１０００には、ステップＳ９０３で作成されるデバイスリスト１０１０が表示される。デバイスリスト１０１０には、デバイス情報１００１〜１００６が列挙されている。
図１０のデバイスリスト１０１０内のデバイス情報１００１〜１００６は、デバイス情報テーブル４１０ｅに格納されているものである。ただし、ユーザが付記したコメント等、デバイス情報テーブル４１０ｅに格納されていない情報を、図１０に示すデバイス情報１００１〜１００６に併せて表示してもよい。
【００４２】
また、ファームウェア配信条件選択画面１０００には、図９のステップＳ９０４でデバイス集合を作成するために使用されるデバイス集合作成条件１０２０が表示される。図１０においては、デバイス集合作成条件テーブル４１０ｂを用いて、配信するファームウェアのデバイス名とバージョンとに着目したデバイス集合作成条件をユーザに提示している。しかしながら、ユーザに提示するデバイス集合作成条件は、このようなものに限定されない。例えば、デバイスが持つ機能に着目してデバイス集合作成条件を定めてもよい。
尚、ここでは、ユーザが入力したデバイス集合作成条件として「複合機Ａ Ｖ１．１５」、「プリンタＡ Ｖ２．３０」が例示されている。ユーザは、デバイス集合作成条件１０２０（「複合機Ａ Ｖ１．１５」、「プリンタＡ Ｖ２．３０」）の先頭に表示されているチェックボックスをチェックする。そうすると、該当するファームウェアを配信可能なデバイスを抽出すること指定したことになる。
【００４３】
また、ファームウェア配信条件選択画面１０００には、ステップＳ９０５で参照デバイスを選択するために使用される参照デバイス選択条件１０３０が表示される。図１０においては、参照デバイス選択条件テーブル４１０ｃの登録内容に基づく参照デバイス選択条件（「性能優先」、「頻度優先」、「環境優先」）をユーザに提示している。そして、図１０においては、このような参照デバイス選択条件と共に、ユーザがデバイスリスト１０１０から参照デバイスを選択できるようにするための選択肢（「デバイスリストで選択したもの」）も提示している。尚、ここでは、ユーザがデバイスリスト１０１０から参照デバイスを選択できるようにしたが、必ずしもこのようにする必要はない。例えば、ユーザが、デバイスリスト１０１０を用いずに、デバイスを識別するための情報（ＩＰアドレス、ＭＡＣアドレス、デバイスシリアル番号等）を、ファームウェア配信条件選択画面１０００に直接入力して参照デバイスを指定してもよい。
【００４４】
尚、図１０では、参照デバイス選択条件として「性能優先」がユーザによって選択された場合を例に挙げて示している。このようにして「性能優先」が選択された場合には、例えば、図６に示した使用するデバイス情報６２０に記載されている印刷速度、装備、及びカラー／白黒の条件に基づいて、相対的に性能が高いデバイスから順に参照デバイスとして選択される。
【００４５】
また、ファームウェア配信条件選択画面１０００には、選択可能参照デバイス数１０４０が表示される。選択可能参照デバイス数１０４０は、参照デバイス選択条件１０３０で選択される参照デバイスの数を、ユーザが指定するためのものである。
この他、ファームウェア配信条件選択画面１０００には、「ＯＫ」ボタン１００７と、「キャンセル」ボタン１００８とが表示される。「ＯＫ」ボタン１００７（「キャンセル」ボタン１００８）は、ユーザによるファームウェア配信条件選択画面１０００への入力を確定（破棄）する機能を有する。
【００４６】
以上のようなファームウェア配信条件選択画面１０００におけるユーザの入力を受け付け、「ＯＫ」ボタン１００７が押下されると、ファームウェア配信装置１０１はステップＳ９０６を実行する。
ステップＳ９０６において、参照デバイス決定機能部４０５は、ユーザがファームウェア配信条件選択画面１０００に入力した情報（条件）を用いて、参照デバイスを決定する。また、デバイス集合作成機能部４０４は、ユーザがファームウェア配信条件選択画面１０００に入力した情報（条件）を用いて、デバイス集合を決定（作成）する。尚、デバイス集合は、１台以上の参照デバイスと０台以上の類似デバイスとからなる。
ここで、ステップＳ９０６の動作をより具体的に説明する。
データベース入出力機能部４０９は、デバイス集合作成条件指定機能部４０１及び参照デバイス選択条件指定機能部４０２から、ファームウェア配信条件選択画面１０００に対してユーザが入力したデータを取得する。そして、データベース入出力機能部４０９は、取得したデータをデータベース４１０に一時的に格納する。
【００４７】
次に、デバイス集合作成機能部４０４は、データベース入出力機能部４０９を通して、前記一時的に格納したデータのうちのデバイス集合作成条件に関わるデータと、デバイス情報とを取得し、取得した情報に基づいて、デバイス集合を作成する。
また、デバイス集合作成機能部４０４は、作成したデバイス集合のデータを、データベース入出力機能部４０９を通してデータベース４１０に一時的に格納する。尚、この時点では、作成されたデバイス集合に含まれるデバイスは、参照デバイス・類似デバイスの区別が付けられていない。
【００４８】
同様に、参照デバイス決定機能部４０５は、データベース入出力機能部４０９を通して、前記一時的に格納したデータのうちの参照デバイス選択条件に関わるデータと、デバイス情報とを取得し、取得した情報に基づいて、参照デバイスを決定する。
尚、ここで決定される参照デバイスの数は、図１０の選択可能参照デバイス数１０４０で指定された値と等しくなる。ただし、デバイス集合の要素数が選択可能参照デバイス数１０４０で指定された値より小さい場合、ここで決定される参照デバイスの数は、デバイス集合の要素数と等しくなる。
【００４９】
以上のようにしてデバイス集合と参照デバイスとが決定された後に、ユーザにより、ファームウェア配信条件選択画面１０００の「ＯＫ」ボタン１００７が押下されると、ファームウェア配信装置１０１はステップＳ９０７を実行する。
以上のように本実施形態では、ステップＳ９０６の処理を行うことによって、決定手段及び作成手段が実現される。
ステップＳ９０７において、類似デバイス配信条件指定機能部４０３は、ユーザによって指定される類似デバイス配信条件を表示装置に表示し、類似デバイス配信条件の入力をユーザに促す。そして、類似デバイス配信条件指定機能部４０３は、ユーザが入力した類似デバイス配信条件の入力値のデータを受け付け、データベース入出力機能部４０９を通してデータベース４１０に一時的に格納する。
【００５０】
図１１は、ステップＳ９０７で表示されるデバイス集合表示画面の一例を示す図である。
図１１において、デバイス集合表示画面１１００には、デバイス集合リスト１１１０が表示される。このデバイス集合リスト１１１０は、図９のステップＳ９０６で作成（決定）されたデバイス集合を一覧表示したものである。図１１に示す例では、デバイス１１０１、１１０２からなるデバイス集合と、デバイス１１０３、１１０４、１１０５からなるデバイス集合との２つのデバイス集合が例示されている。
これらのデバイス集合は、ステップＳ９０４にてユーザによって入力されたデバイス集合作成条件に従ってデバイス集合作成機能部４０４により作成されたものである。即ち、デバイス集合作成機能部４０４は、デバイス情報テーブル４１０ｅを参照し、図１０のデバイス集合作成条件１０２０で指定された「複合機Ａ  Ｖ１．１５」又は「プリンタＡ  Ｖ２．３０」の条件に合致するデバイスを一纏めにしたデバイス集合を作成する。
【００５１】
また、図１１に示す例では、デバイス１１０１、１１０３が参照デバイスとなり、デバイス１１０２、１１０４、１１０５が類似デバイスとなっている。
参照デバイス１１０１、１１０３は、ステップＳ９０５にてユーザにより入力された参照デバイス選択条件に従って参照デバイス決定機能部４０５により選択されたものである。すなわち、参照デバイス決定機能部４０５は、参照デバイス選択条件テーブル４１０ｃ及びデバイス情報テーブル４１０ｅを参照する。そして、参照デバイス決定機能部４０５は、図１０の参照デバイス選択条件１０３０で指定された「性能優先」の条件に合致するデバイスを、参照デバイスとして、選択可能参照デバイス数１０４０で指定された値の台数分だけ選択する。
尚、図１０に示したデバイス１００６は、デバイス集合作成条件１０２０に適合しないため、図１１のデバイス集合表示画面１１００には表示されない。
【００５２】
また、デバイス集合表示画面１１００には、類似デバイス配信条件１１２０が表示される。図１１に示す例においては、類似デバイス配信条件テーブル４１０ｄの登録内容に基づく類似デバイス配信条件が提示されている。
ユーザは、自身が望む類似デバイス配信条件に従って、「エラー改善」、「機能追加確認」、又は「一定時間連続稼動」の何れかを選択し、選択した類似デバイス配信条件についての詳細な情報を入力する。図１１に示す例では、ユーザは「一定期間連続稼動」且つ「稼働時間１００時間」が、類似デバイス配信条件として選択されている。すなわち、図１１に示す例では、参照デバイスにファームウェアを配信した後、その参照デバイスが、１００時間、ダウンすることなく連続して稼動した場合に、類似デバイスにもファームウェアを配信することが、類似デバイス配信条件として選択されている。
【００５３】
類似デバイス配信条件１１２０として表示されている「エラー改善」、「機能追加確認」、及び「一定時間連続稼動」は、類似デバイス配信条件テーブル４１０ｄの類似デバイス配信条件名７１０に格納されているものと同一である。
また、デバイス集合表示画面１１００には、「ＯＫ」ボタン１１０６及び「キャンセル」ボタン１１０７が表示される。「ＯＫ」ボタン１１０６（「キャンセル」ボタン１１０７）は、ユーザによるデバイス集合表示画面１１００への入力を確定（破棄）する機能を有する。ユーザにより「ＯＫ」ボタン１１０６が押下されると、ファームウェア配信装置１０１は、参照デバイスへファームウェアを配信する。ファームウェア配信装置１０１は、ファームウェアを配信した参照デバイスから、ユーザが選択した類似デバイス配信条件に従って、類似デバイス配信条件テーブル４１０ｄの「使用するデバイス情報７２０」に登録されているデバイス情報を取得する。
以上のように本実施形態では、ステップＳ９０７の処理を行うことにより第３の受付手段が実現される。
【００５４】
図９の説明に戻り、デバイス集合表示画面１１００にてユーザの入力を受け付け、「ＯＫ」ボタン１１０６が押下されると、ファームウェア配信装置１０１はステップＳ９０８を実行する。
ステップＳ９０８において、ファームウェア配信機能部４０６は、ユーザによってデバイス集合表示画面１１００に入力された情報に基づいて、参照デバイスにファームウェアを配信することを通信機能部４１１に指示する。これにより、ファームウェアが参照デバイスに配信される。
図１０、図１１に示した例では、Ｄｅｖｉｃｅ１に対して、「複合機Ａ  Ｖ１．１５」というファームウェアを配信し、Ｄｅｖｉｃｅ４に対して、「プリンタＡ  Ｖ２．３０」というファームウェアを配信する。
以上のように本実施形態では、ステップＳ９０８の処理を行うことにより、第１の配信手段が実現される。尚、このステップＳ９０８において、ファームウェア配信装置１０１は、参照デバイスへのファームウェアの配信の結果を表示装置に表示してユーザに提示してもよい。
【００５５】
次に、ステップＳ９０９において、デバイス情報取得機能部４０７は、ファームウェアの配信が成功した参照デバイスが存在するか否かを、参照デバイスから送信された情報に基づいて判定する。この判定の結果、ファームウェアの配信が成功した参照デバイスが存在しない場合には、後述するステップＳ９１５に進む。一方、ファームウェアの配信が成功した参照デバイスが存在する場合には、ステップＳ９１０に進む。
ステップＳ９１０に進むと、デバイス情報取得機能部４０７は、ステップＳ９０７でユーザにより指定された類似デバイス配信条件の入力値を、データベース入出力機能部４０９を経由してデータベース４１０から取得する。その上で、デバイス情報取得機能部４０７は、取得した入力値が指し示す類似デバイス配信条件テーブル４１０ｄの「使用するデバイス情報７２０」を参照する。
【００５６】
図１１に示した例では、「一定期間連続稼動」且つ「稼働時間１００時間」が指定されている。よって、デバイス情報取得機能部４０７は、類似デバイス配信条件テーブル４１０ｄの「使用するデバイス情報７２０」の記述に基づき、システムログを取得する。
仮に、図１１に示したデバイス集合表示画面１１００において、ユーザにより、「エラー改善」且つ「エラー番号３００００」が選択されたとする。そうすると、デバイス情報取得機能部４０７は、類似デバイス配信条件テーブル４１０ｄの「使用するデバイス情報７２０」の記述に基づき、エラーログを取得する。また、図１１に示したデバイス集合表示画面１１００において、ユーザにより、「機能追加確認」且つ「追加機能  スキャナ」が選択されたとする。そうすると、デバイス情報取得機能部４０７は、類似デバイス配信条件テーブル４１０ｄの「使用するデバイス情報７２０」の記述に基づき、機能一覧テーブルを取得する。
【００５７】
次に、ステップＳ９１１において、類似デバイス配信判別機能部４０８は、ステップＳ９１０で取得されたデバイス情報を解析して、参照デバイスに適用したファームウェアが有効か否かを判定する。
例えば、ステップＳ９１０にて、「一定期間連続稼動」且つ「稼働時間１００時間」が選択されている場合、類似デバイス配信判別機能部４０８は、次のようにして、参照デバイスに適用したファームウェアが有効かどうかを判別する。すなわち、類似デバイス配信判別機能部４０８は、参照デバイスから定期的に取得したシステムログに基づいて、参照デバイスが１００時間、連続して稼動していることを確認して、参照デバイスに適用したファームウェアが有効かどうかを判別する。このシステムログには、デバイスで発生したイベントの発生時刻と内容とが逐一記録されている。したがって、類似デバイス配信判別機能部４０８は、デバイス起動イベントの発生時刻から１００時間の間、システムログにデバイス停止イベントが記録されていないことを確認することで、参照デバイスに適用したファームウェアが有効かどうかを判別できる。
【００５８】
また、ステップＳ９１０にて、「エラー改善」且つ「エラー番号３００００」が選択されている場合、類似デバイス配信判別機能部４０８は、定期的に取得したエラーログから、「エラー番号３００００」に関する記載を探す。このエラーログには、デバイスで発生したエラーの発生時刻と内容が逐一記録されている。したがって、類似デバイス配信判別機能部４０８は、エラーログに「エラー番号３００００」のエラーが含まれていない、或いは、前記エラーの発生頻度が低下していることを確認することで、参照デバイスに適用したファームウェアが有効かどうかを判別できる。
【００５９】
また、ステップＳ９１０にて、「機能追加確認」且つ「追加機能  スキャナ」が選択されている場合、類似デバイス配信判別機能部４０８は、定期的に取得した機能一覧テーブルから、スキャナに関する記載を探す。この機能一覧テーブルには、デバイスが持つ機能の一覧が列挙されている。
類似デバイス配信判別機能部４０８は、取得した機能一覧テーブル内に「スキャナ」が含まれていることを確認する。ここで、１つのデバイス集合に対して複数の参照デバイスが存在する場合、類似デバイス配信判別機能部４０８は、全ての参照デバイスにおいて、適用したファームウェアが有効かどうかを判別する。
【００６０】
本実施形態では、類似デバイス配信判別機能部４０８がステップＳ９１０で取得されたデバイス情報を参照デバイス毎に解析し、解析した結果に基づいて、適用したファームウェアの有効性を参照デバイス毎に判別する。そして、全ての参照デバイスにおいて、適用したファームウェアが有効であると判別された場合には、ステップＳ９１２に進む。一方、少なくとも１つの参照デバイスにおいて、適用したファームウェアが有効であると判別されなかった場合は、ステップＳ９１４に進む。
以上のように本実施形態では、ステップＳ９０９〜Ｓ９１１の処理を行うことにより確認手段が実現される。
【００６１】
ステップＳ９１２に進むとファームウェア配信機能部４０６は、適用されたファームウェアが有効であると判別された参照デバイスに紐付いている類似デバイスに、参照デバイスに配信したのと同一のファームウェアを配信することを通信機能部４１１に指示する。これにより、ファームウェアが類似デバイスに配信される。
以上のように本実施形態では、ステップＳ９１２の処理を行うことによって、第２の配信手段が実現される。
具体的にファームウェア配信機能部４０６は、ステップＳ９０６で一時的にデータベース４１０に格納したデータに基づいて、参照デバイスが所属するデバイス集合を探し出す。次に、ファームウェア配信機能部４０６は、このデバイス集合に所属する類似デバイスの情報をデータベース４１０から取得し、その類似デバイスに対して、参照デバイスに配信したのと同一のファームウェアを配信する。そして、ステップＳ９１３に進む。
次に、ステップＳ９１３において、ファームウェア配信装置１０１は、類似デバイスへのファームウェアの配信の結果を表示装置に表示してユーザに提示する。そして、後述するステップＳ９１６に進む。
【００６２】
ステップＳ９１１において、少なくとも１つの参照デバイスにおいて、適用したファームウェアが有効であると判別されなかった場合には、ステップＳ９１４に進む。ステップＳ９１４に進むと、ファームウェア配信装置１０１は、次の処理を行う。すなわち、ファームウェア配信装置１０１は、参照デバイスに対するファームウェアの適用が有効ではなかったことと、この参照デバイスに紐付いている類似デバイスにはファームウェアが配信されないこととを表示装置に表示してユーザに提示する。そして、後述するステップＳ９１６に進む。
【００６３】
ステップＳ９０９において、ファームウェアの配信が成功した参照デバイスが存在しない場合には、ステップＳ９１５に進む。ステップＳ９１５に進むと、ファームウェア配信装置１０１は、ファームウェアの配信が失敗した参照デバイスと、この参照デバイスに紐付いている類似デバイスの情報とを表示装置に表示してユーザに提示する。そして、ステップＳ９１６に進む。
以上のようにしてステップＳ９１６に進むと、ファームウェア配信機能部４０６は、ステップＳ９１３〜ステップＳ９１５でファームウェアの配信に失敗したデバイス（参照デバイス、類似デバイス）が存在するか否かを判定する。この判定の結果、ファームウェアの配信に失敗したデバイス（参照デバイス、類似デバイス）が存在する場合には、ステップＳ９１７に進む。ステップＳ９１７に進むと、ファームウェア配信機能部４０６は、ファームウェアの配信に失敗したデバイスのファームウェアを、図９のフローチャートの処理を行う前の元の状態に戻す。
【００６４】
具体的に、図９のフローチャートの処理を行う前の元の状態にファームウェアを戻す機能をデバイスが有している場合、ファームウェア配信機能部４０６は、ファームウェアを元に戻すためのコマンドをそのデバイスに送信する指示を通信機能部４１１に行う。これにより、ファームウェアを元に戻すためのコマンドが、ファームウェアの配信に失敗したデバイスに送信され、そのデバイスのファームウェアが、元の状態に戻る。
一方、図９のフローチャートの処理を行う前の元の状態にファームウェアを戻す機能を、デバイスが有していない場合、ファームウェア配信機能部４０６は、デバイス情報テーブル４１０ｄの「ファームウェアのバージョン８２０」を参照する。そして、ファームウェア配信機能部４０６は、図９のフローチャートの処理を行う前に適用されていたバージョンのファームウェアをデバイスに送信する指示を通信機能部４１１に対して行う。これにより、図９のフローチャートの処理を行う前に適用されていたバージョンのファームウェアが、ファームウェアの配信に失敗したデバイスに送信され、そのデバイスのファームウェアが、元の状態に戻る。そして、図９のフローチャートの処理を終了する。
【００６５】
尚、図９のフローチャートの処理を行う前に適用されていたバージョンのファームウェアの取得方法として、「ファームウェアのバージョン８２０」に記載されたバージョンのファームウェアを、不図示のファームウェア管理装置から取得する方法が挙げられる。また、ステップＳ９０８及びステップＳ９１２でファームウェアを配信する前に、デバイスから、ファームウェアのバックアップを取っておくことで、図９のフローチャートの処理を行う前に適用されていたバージョンのファームウェアを予め取得しておいてもよい。
以上のように本実施形態では、ステップＳ９１６の処理を行うことにより判定手段が実現され、ステップＳ９１７の処理を行うことにより状態変更手段及び第２の状態変更手段が実現される。
【００６６】
ステップＳ９１６において、ステップＳ９１３〜ステップＳ９１５でファームウェアの配信に失敗したデバイス（参照デバイス、類似デバイス）が存在しないと判定された場合には、デバイスに適用したファームウェアを元の状態に戻す必要はない。よって、ステップＳ９１７の処理を行わずに、図９のフローチャートの処理を終了する。
【００６７】
図１２は、ステップＳ９１３からステップＳ９１６までの処理で表示されるファームウェア配信結果提示画面の一例を示す図である。
図１２において、ファームウェア配信結果提示画面１２００には、デバイス集合リスト１２１０が表示される。このデバイス集合リスト１２１０は、ファームウェア配信結果表示領域１２２０が付加されている点を除き、図１１に示したデバイス集合リスト１１１０と同等のものである。すなわち、このデバイス集合リスト１２１０に登録されているデバイス１２０１〜１２０５は、図１１に示したデバイス１１０１〜１１０５と同等である。
【００６８】
ファームウェア配信結果表示領域１２２０は、ファームウェア配信結果提示画面１２００に特有のものである。本実施形態においては、ステップＳ９１３からステップＳ９１５の処理を実施することによって、ファームウェア配信結果表示領域１２２０に値が格納されていく。具体的には、以下の動作となる。
【００６９】
図１２に示す例では、参照デバイスであるＤｅｖｉｃｅ１へのファームウェアの配信に失敗したか、又はＤｅｖｉｃｅ１に適用したファームウェアが有効ではなかった。よって、参照デバイスであるＤｅｖｉｃｅ１のファームウェア配信結果表示領域１２２０は「ＮＧ」と表示される（ステップＳ９１５又はステップＳ９１４）。
類似デバイスであるＤｅｖｉｃｅ３は、参照デバイスであるＤｅｖｉｃｅ１に紐付いており、且つ、Ｄｅｉｖｃｅ１のファームウェア配信結果表示領域１２２０には「ＮＧ」が表示されている。よって、類似デバイスであるＤｅｖｉｃｅ３のファームウェア配信結果表示領域１２２０には「−」と表示される（ステップＳ９１５又はステップＳ９１４）。
【００７０】
参照デバイスであるＤｅｖｉｃｅ４へのファームウェアの配信に成功し、且つ、Ｄｅｖｉｃｅ４に適用したファームウェアも有効であった。よって、参照デバイスであるＤｅｖｉｃｅ４のファームウェア配信結果表示領域１２２０には「ＯＫ」が表示される（ステップＳ９１３）。
類似デバイスであるＤｅｖｉｃｅ２は、参照デバイスであるＤｅｖｉｃｅ４に紐付いており、且つ、Ｄｅｉｖｃｅ４のファームウェア配信結果表示領域１２２０には「ＯＫ」が表示されている。また、類似デバイスであるＤｅｖｉｃｅ２へのファームウェアの配信は成功した。よって、類似デバイスであるＤｅｖｉｃｅ２のファームウェア配信結果表示領域１２２０には「ＯＫ」と表示される（ステップＳ９１３）。
【００７１】
類似デバイスであるＤｅｖｉｃｅ５は、参照デバイスであるＤｅｖｉｃｅ４に紐付いており、且つ、Ｄｅｉｖｃｅ４のファームウェア配信結果表示領域１２２０には「ＯＫ」が表示されている。また、類似デバイスであるＤｅｖｉｃｅ５へのファームウェアの配信は失敗した。よって、類似デバイスであるＤｅｖｉｃｅ５のファームウェア配信結果表示領域１２２０には「ＮＧ」が表示される（ステップＳ９１３）。
【００７２】
この他、ファームウェア配信結果提示画面１２００には、「ロールバック」ボタン１２３０が表示される。「ロールバック」ボタン１２３０は、図９のステップＳ９１７の処理の実行をユーザが指示するためのものである。すなわち、「ロールバック」ボタン１２３０は、ファームウェア配信結果表示領域１２２０に「ＮＧ」が表示されたデバイスのファームウェアを、図９のフローチャートの処理を行う前の元の状態に戻す際に、ユーザによって押下される。
このように本実施形態では、図１２に示すファームウェア配信結果提示画面１２００を表示する処理を行うことによって表示手段が実現される。
【００７３】
以上のように本実施形態では、１台以上の参照デバイスに対してファームウェアの配信を行い、参照デバイスに対するファームウェアの有効性を判定した後に、参照デバイスに配信したファームウェアと同一のものを類似デバイスに配信するようにした。したがって、ファームウェアの更新を適切且つ確実に行うことができる。また、ユーザは、参照デバイスに配信したファームウェアの有効性のみを確認すればよいため、ファームウェアの更新の際に生じるユーザの負荷が軽減される。したがって、ユーザの負荷を低減させつつ、ファームウェアの更新を可及的に確実に行うようにすることができる。
【００７４】
尚、本実施形態におけるファームウェア配信装置１０１は、ファームウェアの配信だけでなく、ファームウェアの保管、デバイス情報の取得等の機能を担っている。これらの機能は１つの装置内で実施されている必要はなく、それぞれの機能を、ファームウェア管理装置や、デバイス情報取得装置等が分担するような構成であっても構わない。
【００７５】
また、本実施形態においては、ファームウェア配信条件選択画面１０００とデバイス集合表示画面１１００とを別画面としたが、これら２つの画面を統合して１つの画面構成としてもよい。このようにした場合、図１０の「ＯＫ」ボタン１００７及び「キャンセル」ボタン１００８と、図１１のデバイス集合リスト１１１０とは非表示となる。
【００７６】
（本発明の他の実施形態）
前述した本発明の実施形態における配信装置を構成する各手段、並びに配信方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７７】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７８】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図９に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７９】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００８２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００８３】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００８７】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施形態を示し、ソフトウェア配信システムの構成の一例を示す図である。
【図２】本発明の実施形態を示し、ファームウェア配信装置の内部構成の一例を示す図である。
【図３】本発明の実施形態を示し、デバイスの内部構成の一例を示した図である。
【図４】本発明の実施形態を示し、ファームウェア配信装置の機能構成の一例を示すブロック図である。
【図５】本発明の実施形態を示し、デバイス集合作成条件テーブルの登録内容の一例を示す図である。
【図６】本発明の実施形態を示し、参照デバイス選択条件テーブルの一例を示す図である。
【図７】本発明の実施形態を示し、類似デバイス配信条件テーブルの一例を示す図である。
【図８】本発明の実施形態を示し、デバイス情報テーブルの一例を示す図である。
【図９】本発明の実施形態を示し、複数台のデバイスにファームウェアを配信する際のファームウェア配信装置における動作の一例を説明するフローチャートである。
【図１０】本発明の実施形態を示し、ファームウェア配信条件選択画面の一例を示す図である。
【図１１】本発明の実施形態を示し、デバイス集合表示画面の一例を示す図である。
【図１２】本発明の実施形態を示し、ファームウェア配信結果提示画面の一例を示す図である。
【符号の説明】
【００８９】
１００  ＬＡＮ
１０１  ファームウェア配信装置
１０２〜１０４  プリンタ
１０５〜１０７  複合機
４０１  デバイス集合作成条件指定機能部
４０２  参照デバイス選択条件指定機能部
４０３  類似デバイス配信条件指定機能部
４０４  デバイス集合作成機能部
４０５  参照デバイス決定機能部
４０６  ファームウェア配信機能部
４０７  デバイス情報取得機能部
４０８  類似デバイス配信判別機能部
４０９  データベース入出力機能部
４１０  データベース
４１０ａ  ファームウェア
４１０ｂ  デバイス集合作成条件テーブル
４１０ｃ  参照デバイス選択条件テーブル
４１０ｄ  類似デバイス配信条件テーブル
４１０ｅ  デバイス情報テーブル
【図１】
0004958692.tif 000002
【図２】
0004958692.tif 000003
【図３】
0004958692.tif 000004
【図４】
0004958692.tif 000005
【図５】
0004958692.tif 000006
【図６】
0004958692.tif 000007
【図７】
0004958692.tif 000008
【図８】
0004958692.tif 000009
【図９】
0004958692.tif 000010
【図１０】
0004958692.tif 000011
【図１１】
0004958692.tif 000012
【図１２】
0004958692.tif 000013