(57)【要約】【課題】通信ネットワークに接続されたＰＣ等に接続されているプリンタ等の周辺機器にファームウェアの更新データを送信する場合に、パケットの衝突（コリジョン）の発生を抑制し、更新処理の実行時間を削減する方法及びコンピュータを提供すること。【解決手段】コンピュータ１１は、通信ネットワーク１４等に接続された複数の周辺機器（プリンタ１３ａ１等）を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類し、前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信し、前記更新データを送信した送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信する。【選択図】図４
2008065505.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークに接続されたコンピュータが、前記通信ネットワークに接続された複数の周辺機器のファームウェアの更新処理を実行する方法であって、
前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類するステップと、
前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信するステップと、
前記更新データを送信した送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信するステップと、を含む方法。
【請求項２】
前記コンピュータが、前記送信単位グループの一を構成する周辺機器に対して前記更新データを送信する前に、前記送信単位グループの一を構成する全ての周辺機器から、送信すべき更新データを特定するための情報を取得する前処理ステップを更に含む請求項１に記載の方法。
【請求項３】
前記コンピュータが、前記送信単位グループの一を構成する全ての周辺機器において前記更新データの書き込みが終了した後、前記送信単位グループの他の一を構成する全ての周辺機器について前記更新データの送信が完了したことを確認してから、前記送信単位グループの一を構成する全ての周辺機器から、前記更新処理の完了を確認するための情報を取得する後処理ステップを更に含む請求項２に記載の方法。
【請求項４】
前記コンピュータが、前記前処理ステップ及び前記後処理ステップをＵＤＰ通信により実行し、前記前処理ステップ又は前記後処理ステップが正常に終了しない場合には所定回数のリトライを行うステップを更に含む請求項３に記載の方法。
【請求項５】
前記後処理ステップにおいて、前記コンピュータが、前記更新処理がエラーとなった周辺機器を発見した場合に、前記エラーとなった周辺機器を、前記周辺機器の数が前記所定の数を超えないように前記送信単位グループに分類し直すステップを更に含む請求項３又は請求項４に記載の方法。
【請求項６】
通信ネットワークに接続された複数の周辺機器のファームウェアの更新処理を実行するコンピュータであって、
前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類する手段と、
前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信する手段と、
前記送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信する手段と、を含むコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの更新処理を実行する方法及びコンピュータに関する。特に、通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアの更新処理を実行する方法及びコンピュータに関する。
【背景技術】
【０００２】
従来、通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアをバージョンアップや不具合対応等のために更新する場合、当該通信ネットワークに接続されたコンピュータから、当該ファームウェアの更新データを送信することにより、当該プリンタ等の周辺機器において当該更新データを受信して更新処理を実行している。また、プリンタの製造現場においては、製造コストを抑制する観点から、標準仕様のファームウェアの基板を製造しておき、必要に応じて他国語フォントやカスタムファームへ書き換えて出荷することがある。
【０００３】
このような場合、複数台（数十台から数百台程度）の標準仕様のファームウェアのプリンタを通信ネットワークに接続し、ホストコンピュータから当該ファームウェアの更新データを同時に送信して書き換えることにより、当該ファームウェアの更新処理を実行する。
【０００４】
より具体的には、当該プリンタ等の周辺機器は、当該ファームウェアを記憶するＦｌａｓｈＲＯＭ等の記憶手段を備えている。そこで、当該ホストコンピュータから、例えば、モトローラ（登録商標）Ｓ３フォーマットで当該ＦｌａｓｈＲＯＭ等に記憶されているファームウェアの全体イメージファイルの更新データを、通信ネットワークを介して当該プリンタ等の周辺機器に送信する。
【０００５】
ところで、モトローラ（登録商標）Ｓ３フォーマットは、バイナリ形式のデータレコードに変換することができる。すなわち、図５に示すように、当該ファームウェアの更新データを最大２５０バイトずつのオブジェクトデータに分割し、分割したそれぞれのオブジェクトデータに対して、２バイトのタイプフィールド、１バイトのデータ長フィールド、及び４バイトのアドレスフィールドで構成する合計７バイトのヘッダ部、並びに１バイトのチェックサムを加えた単位データの配列として構成可能である。
【０００６】
近年のプリンタの機能向上の要請に応じて、プリンタのファームウェアも高機能化が進んでおり、ファームウェアの更新データのサイズは拡大する傾向にある。それに伴い、１回のファームウェアの更新で送信する更新データを構成する単位データの数は増大することになる。
【０００７】
上述のように送信する更新データのサイズが大きくなってきたことによって、特に通信ネットワークに接続された大量のプリンタ等の周辺機器に更新データを送信する際の送信時間が運用上の課題となってきた。具体的には、例えば、当該プリンタ等の周辺機器がＥｔｈｅｒｎｅｔ（登録商標）で接続されている場合、当該プリンタ等の周辺機器にサイズの大きな当該更新データを同時に送信すると、当該通信ネットワークに負荷がかかり、通信ネットワーク上のパケットが衝突（コリジョン）を起こして途中で消滅してしまう。
【０００８】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）通信においては、衝突（コリジョン）が起こった場合、自動的にリトライを行って再度パケットを送信するものの、このリトライの回数が多くなると、リトライに要する時間に応じて更新データの送信時間が増大することになる。また、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）通信においては、このようなリトライ処理等を行わないのでＴＣＰ通信に比べて通信効率は高いものの、パケットの衝突（コリジョン）が起こった場合には手動でリトライを行う必要があり、更に運用の手間と送信時間を増大させることになる。
【０００９】
このような状況において、特許文献１に記載の技術によれば、ネットワークで接続された多地点間で映像の送受信を行う際に、映像送信要求を所定の映像単位の送信が終了したことを検知してから次の映像送信要求を行うと共に、その映像送信要求を行う端末を所定の順番で行うように制御することによって、ネットワーク上のコリジョンの発生を減少させることができる。
【特許文献１】特開平９−２１４８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述のように、通信ネットワークに接続されたコンピュータから、当該通信ネットワークに接続されたＰＣ等に接続されているプリンタ等の周辺機器にファームウェアの更新データを送信する場合に、特許文献１の技術を応用したとしても、必ずしも有効であるとはいえない。特許文献１の技術は、多地点間で双方向の映像送信を行う場合にはパケットの衝突（コリジョン）の発生を減少させる効果を発揮するものの、原則として当該コンピュータから当該周辺機器に向かって一方的に大量のパケットを送信する場合にはそのような効果を発揮することができないからである。
【００１１】
従って、通信ネットワークに接続されたコンピュータから、当該通信ネットワークに接続されたＰＣ等に接続されているプリンタ等の周辺機器にファームウェアの更新データを送信する場合に、パケットの衝突（コリジョン）の発生を抑制し、更新処理の実行時間を削減する方法を提供することが望まれている。
【００１２】
そこで、本発明は、通信ネットワークに接続されたコンピュータから、当該通信ネットワークに接続されたＰＣ等に接続されているプリンタ等の周辺機器にファームウェアの更新データを送信する場合に、パケットの衝突（コリジョン）の発生を抑制し、更新処理の実行時間を削減する方法及びコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００１３】
そこで、上記の目的を達成するため、本発明者らが研究を重ねた結果、更新データの送信スケジュールを調整することにより、パケットの衝突（コリジョン）の発生を抑制し、当該ファームウェアの更新処理の実行時間を削減する方法を見出し、本発明を完成するに至った。本発明は、具体的には以下のようなものを提供する。
【００１４】
本発明は、通信ネットワーク（通信ネットワーク１４等）に接続されたコンピュータが、前記通信ネットワークに接続された複数の周辺機器（プリンタ１３ａ１等）のファームウェアの更新処理を実行する方法であって、
前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類するステップと、
前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信するステップと、
前記更新データを送信した送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信するステップと、を含むことを特徴とする。
【００１５】
本発明のこのような構成によれば、前記コンピュータは、前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類し、前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信し、前記更新データを送信した送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信することが可能である、という作用効果を有する。
【００１６】
このことにより、前記コンピュータは、前記更新データを前記複数の周辺機器に送信する際に、前記所定の数を最大数とする周辺機器で構成する送信単位グループ毎に送信することができる。
【００１７】
その結果、前記コンピュータは、前記所定の数を超える周辺機器の更新処理を実行する場合においても、同時に大量のパケットを送信した場合に起こり得るパケットの衝突（コリジョン）の発生を抑制し、以って前記更新処理の実行時間を削減することができる。
【００１８】
なお、前記所定の数は、前記通信ネットワークの通信速度等の通信環境に応じて適当な数を選択することができる。具体的には、例えば、１００ＭｂｐｓのＥｔｈｅｒｎｅｔ（登録商標）で接続されている場合には前記所定の数として「８」を選択してもよい。
【００１９】
また、本発明は、前記コンピュータが、前記送信単位グループの一を構成する周辺機器に対して前記更新データを送信する前に、前記送信単位グループの一を構成する全ての周辺機器から、送信すべき更新データを特定するための情報を取得する前処理ステップを含むことが更に望ましい。
【００２０】
本発明のこのような構成によれば、前記コンピュータは、前記送信単位グループの一を構成する周辺機器に対して前記更新データを送信する前に、前記送信単位グループの一を構成する全ての周辺機器から、送信すべき更新データを特定するための情報を取得することが可能である、という作用効果を有する。
【００２１】
このことにより、前記コンピュータは、前記送信単位グループの一を構成する周辺機器に対して前記更新データを送信する前に、前記送信単位グループの一を構成する全ての周辺機器から、例えば、前記周辺機器の機種名情報やファームウェアのバージョン情報等を取得することによって、それぞれの前記周辺機器に対して送信すべき更新データを特定すると共に、当該情報を取得することによるパケットの衝突（コリジョン）の発生を抑制し、以って前記更新処理の実行時間を削減することができる。
【００２２】
その結果、送信すべき更新データが異なる周辺機器が前記送信単位グループの一を構成する場合においても、前記コンピュータは、それぞれの周辺機器毎に送信すべき更新データを特定しつつ、そのための情報を取得することによるパケットの衝突（コリジョン）の発生を抑制し、以って前記更新処理の実行時間を削減することができる。
【００２３】
また、本発明は、前記コンピュータが、前記送信単位グループの一を構成する全ての周辺機器において前記更新データの書き込みが終了した後、前記送信単位グループの他の一を構成する全ての周辺機器について前記更新データの送信が完了したことを確認してから、前記送信単位グループの一を構成する全ての周辺機器から、前記更新処理の完了を確認するための情報を取得する後処理ステップを含むことが更に望ましい。
【００２４】
本発明のこのような構成によれば、前記コンピュータは、前記送信単位グループの一を構成する全ての周辺機器において前記更新データの書き込みが終了した後、前記送信単位グループの他の一を構成する全ての周辺機器について前記更新データの送信が完了したことを確認してから、前記送信単位グループの一を構成する全ての周辺機器から、前記更新処理の完了を確認するための情報を取得することが可能である、という作用効果を有する。
【００２５】
このことにより、前記コンピュータは、前記送信単位グループの一を構成する全ての周辺機器において前記更新データの書き込みが終了した後、前記送信単位グループの一を構成する全ての周辺機器における前記更新処理の完了を、例えば、前記ファームウェアのバージョン情報や復帰確認情報等を前記周辺機器から取得することにより確認しつつ、前記送信単位グループの他の一を構成する周辺機器に対する前記更新データの送信中に当該後処理ステップの実行を回避することにより、パケットの衝突（コリジョン）の発生を抑制し、以って前記更新処理の実行時間を削減することができる。
【００２６】
その結果、前記コンピュータは、前記後処理ステップの実行により前記更新処理の完了を確実に確認しつつ、パケットの衝突（コリジョン）の発生を抑制し、以って前記更新処理の実行時間を削減することができる。
【００２７】
また、本発明は、前記コンピュータが、前記前処理ステップ及び前記後処理ステップをＵＤＰ通信により実行し、前記前処理ステップ又は前記後処理ステップが正常に終了しない場合には所定回数のリトライを行うステップを含むことが更に望ましい。
【００２８】
本発明のこのような構成によれば、前記コンピュータは、前記前処理ステップ及び前記後処理ステップをＵＤＰ通信により実行し、前記前処理ステップ又は前記後処理ステップが正常に終了しない場合には所定回数のリトライを行うことが可能である、という作用効果を有する。
【００２９】
このことにより、前記コンピュータは、ＵＤＰ通信により、前記前処理ステップ及び前記後処理ステップをＴＣＰ通信に比べて効率的に実行しつつ、これらのステップが正常に終了しない場合には所定の回数（具体的には、例えば、３回）リトライを行うことにより、前記更新処理の実行時間を削減することができる。
【００３０】
また、本発明は、前記後処理ステップにおいて、前記コンピュータが、前記更新処理がエラーとなった周辺機器を発見した場合に、前記エラーとなった周辺機器を、前記周辺機器の数が前記所定の数を超えないように前記送信単位グループに分類し直すステップを含むことが更に望ましい。
【００３１】
本発明のこのような構成によれば、前記後処理ステップにおいて、前記コンピュータは、前記更新処理がエラーとなった周辺機器を発見した場合に、前記エラーとなった周辺機器を、前記周辺機器の数が前記所定の数を超えないように前記送信単位グループに分類し直すことが可能である、という作用効果を有する。
【００３２】
このことにより、前記コンピュータは、前記更新処理がエラーとなった周辺機器について再度更新処理を実行するために、前記エラーとなった周辺機器を、前記周辺機器の数が前記所定の数を超えないように前記送信単位グループに分類し直すことができる。
【００３３】
その結果、前記コンピュータは、前記更新処理がエラーとなった周辺機器が発生した場合においても、パケットの衝突（コリジョン）の発生を抑制しつつ自動的にサイド更新処理を実行し、以って前記更新処理の実行時間を削減することができる。
【００３４】
本発明は、通信ネットワーク（通信ネットワーク１４等）に接続された複数の周辺機器（プリンタ１３ａ１等）のファームウェアの更新処理を実行するコンピュータであって、
前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類する手段と、
前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信する手段と、
前記送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信する手段と、を含むことを特徴とする。
【００３５】
本発明のこのような構成によれば、前記コンピュータは、前記複数の周辺機器を、所定の数を最大数とする周辺機器で構成する送信単位グループに分類し、前記送信単位グループの一を構成する周辺機器に対して前記ファームウェアの更新データを送信し、前記送信単位グループの一を構成する周辺機器の全てについて前記更新データの送信が完了したことを確認してから、前記送信単位グループの他の一を構成する周辺機器に対して、順次前記更新データを送信することが可能である、という作用効果を有する。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して本発明の実施形態について説明する。
【００３７】
図１は、本発明の好適な実施形態の一例に係るシステムの全体構成を示すブロック図である。図２は、本発明の好適な実施形態の一例に係るコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・の構成を示すブロック図である。図３は、本発明の好適な実施形態の一例に係る周辺機器としてのプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・の構成を示すブロック図である。図４は、本発明の好適な実施形態の一例に係る更新処理を示す図である。図５は、本発明の好適な実施形態の一例に係る更新データの構成を示す図である。
［システムの全体構成］
【００３８】
図１に示すように、本発明に係る好適な実施形態の一例に係るシステム１は、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・、周辺機器としてのプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・を含んで構成されている。
【００３９】
コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・は通信ネットワーク１４を介して接続されている。更に、プリンタ１３ａ１、１３ａ２、１３ａ３はそれぞれ通信ネットワーク１５ａ１、１５ａ２、１５ａ３を介してコンピュータ１２ａに接続されている。同様に、プリンタ１３ｂはコンピュータ１２ｂに、プリンタ１３ｃは１２ｃに、それぞれ通信ネットワーク１５ｂ、１５ｃを介して接続されている。
【００４０】
図１の例において、コンピュータ１２ａ、１２ｂ、１２ｃはいわゆる汎用パーソナルコンピュータとして実現してもよいし、キャッシュレジスター等の専用情報機器として実現してもよい。
【００４１】
また、通信ネットワーク１４は、Ｅｔｈｅｒｎｅｔ（登録商標）等の構内通信網（ＬＡＮ）として実現してもよいし、専用線、インターネット、ＶＰＮ等の広域通信網（ＷＡＮ）として実現してもよい。通信ネットワーク１４がＷＡＮを含み、コンピュータ１１がコンピュータ１２ａ、１２ｂ、１２ｃ、・・・と互いに遠隔地の関係にある場合に、本発明の効果がより発揮される。
【００４２】
更に、通信ネットワーク１５ａ１、１５ａ２、１５ａ３、１５ｂ、１５ｃ、・・・はＲＳ−２３２Ｃ（最大通信速度１４．４ｋｂｐｓ）、ＵＳＢ（ＵＳＢ２．０で最大通信速度６０Ｍｂｐｓ）等のシリアルインターフェイスで実現してもよいし、ＳＣＳＩ（最大通信速度３２０Ｍｂｐｓ）等のパラレルインターフェイスで実現してもよい。
【００４３】
更に、コンピュータ１２ａ、１２ｂ、１２ｃ、・・・は、通信ネットワーク１４を介して互いに異なる通信速度でコンピュータ１１に接続されていてもよい。
【００４４】
同様に、プリンタ１３ａ１、１３ａ２、１３ａ３、・・・はそれぞれ通信ネットワーク１５ａ１、１５ａ２、１５ａ３と互いに異なる通信速度で接続されていてもよい。
［コンピュータの構成］
【００４５】
図２に示すように、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・は、制御部１１１、記憶部１１２、通信Ｉ／Ｆ部１１３、入力部１１４、表示部１１５が、バス１１６を介して接続されて構成されている。
【００４６】
制御部１１１は、情報の演算、処理を行う情報演算処理装置であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。また、制御部１１１はコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・全体の制御を行い、記憶部１１２に記憶された各種プログラムを適宜読み出して実行することにより、上述のハードウェアが協働し、本発明に係る各種機能を実現している。
【００４７】
ここで、表示部１１５は、ユーザにデータの入力を受け付ける画面を表示したり、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００４８】
ここで、入力部１１４は、ユーザによる入力の受付を行うものであり、キーボード、ポインティングデバイス等を含んでよい。入力部１１４は、直接又は介在Ｉ／Ｏコントローラを介してコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・と接続することができる。
【００４９】
ここで、通信Ｉ／Ｆ部１１３は、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信Ｉ／Ｆ部１１３は、モデム、ケーブル・モデム及びＥｔｈｅｒｎｅｔ（登録商標）・アダプタを含んでよい。
【００５０】
ここで、記憶部１１２は、制御部１１１と組み合わせてプログラムの実行に使用するローカルメモリ、大容量のバルクメモリ、及び当該バルクメモリの検索を効率的に行うために使用するキャッシュメモリを含んでよい。記憶部１１２を実現するコンピュータ可読媒体としては、電気的、磁気的、光学的、電磁的に実現するものを含んでよい。より具体的には、半導体記憶装置、磁気テープ、フレキシブルディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、ＣＤ−ＲＯＭとＣＤ−Ｒ／ＷとＤＶＤとを含む光ディスクが含まれる。
［プリンタの構成］
【００５１】
図３に示すように、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・は、ＣＰＵ１３１、ＦｌａｓｈＲＯＭ１３２、ＲＡＭ１３３、通信Ｉ／Ｆ部１３４、操作ボタン１３５、表示部１３６、プリンタユニット１３７が、バス１３８を介して接続されて構成されている。
【００５２】
ＣＰＵ１３１は、情報の演算、処理を行う情報演算処理装置であり、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・全体の制御を行い、ＦｌａｓｈＲＯＭ１３２に記憶されたファームウェア等の各種プログラムを適宜読み出して実行することにより、上述のハードウェアが協働し、本発明に係る各種機能を実現している。
【００５３】
ここで、表示部１３６は、ユーザにデータの入力を受け付ける画面を表示したり、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・による演算処理結果の画面を表示したりするものであり、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００５４】
ここで、操作ボタン１３５は、ユーザによる入力の受付を行うものであり、様々な形式のボタンその他の入力デバイスを含んでよい。操作ボタン１３５は、直接又は介在Ｉ／Ｏコントローラを介してプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・と接続することができる。
【００５５】
ここで、通信Ｉ／Ｆ部１３４は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信Ｉ／Ｆ部１３４は、ＲＳ−２３２Ｃ、ＵＳＢ等のシリアルインターフェイス・アダプタ、ＳＣＳＩ等のパラレルインターフェイス・アダプタ、Ｅｔｈｅｒｎｅｔ（登録商標）・アダプタ等を含んでよい。
【００５６】
ここで、ＦｌａｓｈＲＯＭ１３２は、本発明の更新データに係るファームウェアを記憶しており、６４ＫＢ等の所定のブロック単位で一括消去、書き換えが可能となっている。
【００５７】
また、ＲＡＭ１３３は、制御部１１１と組み合わせてプログラムの実行に使用するローカルメモリ、大容量のバルクメモリ、及び当該バルクメモリの検索を効率的に行うために使用するキャッシュメモリを含んでよい。
【００５８】
また、プリンタユニット１３７は、詳細な説明は省略するが、ＣＰＵ１３１の制御に基づいて実際に印刷を行うプリンタヘッド、用紙フィード装置等が含まれる。
［更新処理］
【００５９】
図４に示したように、本発明の好適な実施形態の一例に係るシステム１は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・のＦｌａｓｈＲＯＭ１３２に記憶されたファームウェアの更新処理を実行する。
【００６０】
まず、コンピュータ１１の制御部１１１は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・を所定の数を最大数とするプリンタで構成する送信単位グループに分類する。
【００６１】
具体的には、例えば、通信ネットワーク１４が１００ＭｂｐｓのＥｔｈｅｒｎｅｔ（登録商標）で構成されている場合には、図４に示すように、制御部１１１は、所定の数として最大「８台」のプリンタで構成する送信単位グループにプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・を分類してもよい。
【００６２】
次に、制御部１１１は、当該送信単位グループの一を構成するプリンタ（図４の例では送信単位グループとして「グループ１」に分類されたプリンタ）に対してファームウェアの更新データを送信するための前処理を行う。
【００６３】
具体的には、例えば、制御部１１１は、送信単位グループとして「グループ１」に分類されたプリンタの機種名情報やファームウェアのバージョン情報等をそれぞれのプリンタから取得することによって、当該それぞれのプリンタに対して送信すべき更新データを特定する。
【００６４】
なお、制御部１１１は、この前処理をＵＤＰ通信によって行ってもよい。このように、コマンドとそれに対する応答のような１パケットに収まるようなデータのやり取りは、ＵＤＰ通信を用いることによって、セッションを確立したり、後処理を行ったりするＴＣＰ通信を用いる場合に比較してオーバーヘッドが軽く、処理時間を削減することができる。
【００６５】
次に、制御部１１１は、「グループ１」に分類したそれぞれのプリンタに対して、上述の前処理においてそれぞれ特定したファームウェアの更新データを送信する（図４に示す「データ転送」処理）。
【００６６】
ここで、制御部１１１は、「グループ１」に分類した全てのプリンタに対する前処理が完了しない限り、当該更新データの送信は行わない。このことにより、パケットの衝突（コリジョン）の発生により、前処理におけるパケットが消失したり、或いは、更新データのパケットが消失したりすることをできるだけ回避しつつ、「グループ１」に分類したプリンタへの更新データの送信処理を効率的に実行することができる。
【００６７】
また、制御部１１１は、「グループ１」に分類された全てのプリンタに対する更新データの送信処理が完了しない限り、その他の送信単位グループ（図４の例では「グループ２」或いは「グループ３」）に分類されたプリンタに対する前処理も更新データの送信も行わない。このことにより、コンピュータ１１が通信の対象とするプリンタの数を常に送信単位グループの一を構成するプリンタの最大数に制限し、パケットの衝突（コリジョン）の発生を抑制し、以って更新処理の実行時間を削減することができる。
【００６８】
更に、制御部１１１は、「グループ１」に分類された全てのプリンタにおいて更新データの書き込みが終了した後、その他の送信単位グループ（図４の例では「グループ２」及び「グループ３」）を構成する全てのプリンタへの更新データの送信が終了してから、「グループ１」に分類されたプリンタへの後処理を実行する。
【００６９】
具体的には、例えば、制御部１１１は、送信単位グループとして「グループ１」に分類された全てのプリンタから、ファームウェアのバージョン情報や復帰確認情報等を取得することによって、更新処理の完了を確認する。
【００７０】
なお、制御部１１１は、この後処理をＵＤＰ通信によって行ってもよい。
【００７１】
上述のように、コンピュータ１１が通信するプリンタの数を、送信単位グループを構成するプリンタの最大数に制限することによって、制御部１１１は、パケットの衝突（コリジョン）の発生を抑制し、更新処理時間を削減することができる。
【００７２】
また、制御部１１１は、上述の後処理において、例えば、ファームウェアのバージョンが目的とするものと不一致であったり、更新データの書き込み後の復帰が確認できなかったりする等、何らかの原因により更新処理がエラーとなったプリンタを発見した場合には、当該エラーとなったプリンタを、前記プリンタの数が所定の最大数を超えないように他の送信単位グループに分類し直して再度更新処理を実行する。
【００７３】
具体的には、図４の例において、例えば「グループ３」を構成するプリンタの更新処理がエラーであることを発見した場合、制御部１１１は、「グループ１」乃至「グループ３」以外の送信単位グループであって、まだ更新処理を開始しておらず、構成するプリンタの数が「８」未満のグループに当該プリンタを分類し直す。そのような送信単位グループが存在しない場合には、新たに送信単位グループを構成する。
【００７４】
このことによって、更新処理でエラーが発生した場合においても、制御部１１１は、自動的に当該エラーが発生したプリンタの更新処理をやり直しつつ、コンピュータ１１が同時に通信するプリンタの数を、当該送信単位グループを構成するプリンタの最大数に制限することにより、パケットの衝突（コリジョン）の発生を抑制することができる。
【００７５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【００７６】
具体的には、例えば、本発明に係る周辺機器として、プリンタの例を挙げて説明したが、本発明の技術的範囲はこれに限られず、ビデオカードやストレージドライブなど、その他の周辺機器のファームウェアの更新処理にも適用可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明に係るシステムの全体構成を示すブロック図である。
【図２】本発明に係るコンピュータの構成を示すブロック図である。
【図３】本発明に係るプリンタの構成を示すブロック図である。
【図４】本発明に係る更新処理を示す図である。
【図５】本発明に係る更新データの構成を示す図である。
【符号の説明】
【００７８】
１  システム、１１、１２ａ、１２ｂ、１２ｃ  コンピュータ、１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ  プリンタ、１４、１５ａ１、１５ａ２、１５ａ３、１５ｂ、１５ｃ  通信ネットワーク、１１１  制御部、１１２  記憶部、１１３  通信Ｉ／Ｆ部、１１４  入力部、１１５  表示部、１１６  バス、１３１  ＣＰＵ、１３２  ＦｌａｓｈＲＯＭ、１３３  ＲＡＭ、１３４  通信Ｉ／Ｆ部、１３５  操作ボタン、１３６  表示部、１３７  プリンタユニット、１３８  バス
【図１】
2008065505.tif 000003
【図２】
2008065505.tif 000004
【図３】
2008065505.tif 000005
【図４】
2008065505.tif 000006
【図５】
2008065505.tif 000007