(57)【要約】【課題】最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージをネットワークノードのグループに配布できるサーバ装置を提供する。【解決手段】ソフトウェアアップデートサーバ１１０の制御部２２０は、ネットワークインターフェース２１０で受信した情報に基づいて有効ネットワークバンド幅を決定し、当該有効ネットワークバンド幅に基づいて並列処理する並列スレッドの数を決定し、この並列スレッドを介して、メモリ２３０に記憶されたソフトウェアアップデートパッケージ２６０を、ネットワークインターフェース２１０からネットワークノードであるネットワーク接続したＭＦＰに配布する。【選択図】図２
2009146403.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデートサーバ装置において、
上記ネットワークに接続するネットワークインターフェースと、
上記ソフトウェアアップデートパッケージを記憶するメモリと、
上記ネットワークインターフェースおよび上記メモリに通信可能に結合された制御部とを含み、
上記制御部は、上記ネットワークインターフェースで受信した情報に基づいて有効ネットワークバンド幅を決定し、当該有効ネットワークバンド幅に基づいて並列処理する並列スレッドの数を決定し、上記並列スレッドを介して、上記メモリに記憶されたソフトウェアアップデートパッケージを、上記ネットワークインターフェースから上記ネットワークノードに配布することを特徴とするソフトウェアアップデートサーバ装置。
【請求項２】
上記制御部は、上記決定された並列スレッドの数に基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドのセットを介して上記ネットワークノードのグループに配布するのに必要な配布時間を決定することを特徴とする請求項１に記載のソフトウェアアップデートサーバ装置。
【請求項３】
上記制御部は、上記配布時間に基づいて、上記並列スレッドのセットを介して上記ソフトウェアアップデートパッケージの配布の開始時間を決定することを特徴とする請求項２に記載のソフトウェアアップデートサーバ装置。
【請求項４】
上記制御部は、上記並列スレッドの数を、さらに、ネットワークアドミニストレータの入力によりソフトウェアのアップデートに割り当てられた有効ネットワークバンド幅の量、に基づいて決定することを特徴とする請求項１から３のいずれか１項に記載のソフトウェアアップデートサーバ装置。
【請求項５】
上記制御部は、上記並列スレッドの数を、さらに、スレッドごとに割り当てられる有効ネットワークバンド幅の量に基づいて決定することを特徴とする請求項１から３のいずれか１項に記載のソフトウェアアップデートサーバ装置。
【請求項６】
上記制御部は、上記配布時間を、さらに、上記グループ内のネットワークノードの数に基づいて決定することを特徴とする請求項２または３に記載のソフトウェアアップデートサーバ装置。
【請求項７】
上記制御部は、上記配布時間を、さらに、上記ソフトウェアアップデートパッケージのサイズに基づいて決定することを特徴とする請求項２または３に記載のソフトウェアアップデートサーバ装置。
【請求項８】
上記制御部は、上記開始時間を、さらに、ネットワークアドミニストレータにより入力された予定インストール時間に基づいて決定することを特徴とする請求項３に記載のソフトウェアアップデートサーバ装置。
【請求項９】
上記制御部は、上記開始時間が来ると、上記ソフトウェアアップデートパッケージを、上記ネットワークインターフェースによって、上記並列スレッドの第１セットを介して、上記グループ内のネットワークノードの第１サブグループに配布し、
上記並列スレッドの第１セットは、上記決定された数の並列スレッドを有していることを特徴とする請求項３または８に記載のソフトウェアアップデートサーバ装置。
【請求項１０】
上記制御部は、上記ネットワークノードの第１サブグループから配布が成功したことを表すイベント通知を受信すると、上記ソフトウェアアップデートパッケージを、上記ネットワークインターフェースによって、並列スレッドの第２セットを介して、上記グループ内のネットワークノードの第２サブグループに配布し、
上記並列スレッドの第２セットは、上記決定された数の並列スレッドを有していることを特徴とする請求項９に記載のソフトウェアアップデートサーバ装置。
【請求項１１】
上記制御部は、ネットワークアドミニストレータにより入力された予定インストール時間が来ると、インストールコマンドを、上記ネットワークインターフェースによって、並列スレッドを介して、上記グループ内のネットワークノードの少なくとも１つのサブグループに配布することを特徴とする請求項８に記載のソフトウェアアップデートサーバ装置。
【請求項１２】
上記ネットワークノードは、多機能プリンタ（ＭＦＰ）であることを特徴とする請求項１から１１に記載のソフトウェアアップデートサーバ装置。
【請求項１３】
ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデート方法において、
有効ネットワークバンド幅を決定するステップと、
上記有効ネットワークバンド幅に基づいて、上記ソフトウェアアップデートパッケージが配布される並列スレッドの数を決定するステップと、
を含むことを特徴とするソフトウェアアップデート方法。
【請求項１４】
上記決定された並列スレッドの数に基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドを介して上記ネットワークノードのグループへ配布するのに必要な配布時間を決定するステップを、さらに含むことを特徴とする請求項１３に記載のソフトウェアアップデート方法。
【請求項１５】
上記配布時間に基づいて、上記並列スレッドを介して上記ソフトウェアアップデートパッケージの配布の開始時間を決定するステップを、さらに含むことを特徴とする請求項１４に記載のソフトウェアアップデート方法。
【請求項１６】
上記開始時間を、さらに、ネットワークアドミニストレータが選択した予定インストール時間に基づいて決定することを特徴とする請求項１５に記載のソフトウェアアップデート方法。
【請求項１７】
上記ソフトウェアアップデートパッケージを、上記並列スレッドの第１セットを介して、上記グループ内のネットワークノードの第１サブグループに配布するステップをさらに含み、
上記並列スレッドの第１セットは、上記決定された数の並列スレッドを有していることを特徴とする請求項１３に記載のソフトウェアアップデート方法。
【請求項１８】
上記ネットワークノードの第１のサブグループから、配布が成功したことを表すイベント通知を受信するステップと、
上記ソフトウェアアップデートパッケージを、上記並列スレッドの第２セットを介して、上記グループ内のネットワークノードの第２サブグループに配布するステップと、をさらに含み、
上記並列スレッドの第２セットは、上記決定された数の並列スレッドを有していることを特徴とする請求項１７に記載のソフトウェアアップデート方法。
【請求項１９】
さらに、インストールコマンドを、上記並列スレッドを介して、上記グループ内のネットワークノードの少なくとも１つのグループに配布するステップをさらに含むことを特徴とする請求項１７に記載のソフトウェアアップデート方法。
【請求項２０】
ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデート方法において、
有効ネットワークバンド幅に基づいて、上記ソフトウェアアップデートパッケージが配布される並列スレッドの数を決定するステップと、
上記グループ内のネットワークノードの数、上記並列スレッドの数、および、上記ソフトウェアアップデートパッケージのサイズの少なくともいずれか１つに基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドのセットを介してネットワークノードのグループに配布するのに必要な配布時間を決定するステップと、
上記配布時間と、ネットワークアドミニストレータが選択した予定インストール時間との少なくともいずれか一方に基づいて、上記並列スレッドのセットを介して上記ネットワークノードのグループに上記ソフトウェアアップデートパッケージの配布を始めるステップと、
を含むことを特徴とするソフトウェアアップデート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、交換用ソフトウェアを用いてネットワークノードのグループをアップデートすることに関し、さらに詳しくは、交換用ソフトウェア用いて多機能プリンタ（ＭＦＰ）のグループをアップデートする装置および方法に関するものである。
【背景技術】
【０００２】
ＭＦＰなどのネットワークノードは、益々高度化しつつある。ネットワークノードが高度化しつつあることによって、より複雑なソフトウェアが必要とされている。このより複雑なソフトウェアとは、ファームウェアであることが多い。ＭＦＰソフトウェアの複雑さが増すことで、ソフトウェアバグと呼ばれるコーディングの誤りの発生率が高くなり、一連のＭＦＰの特徴を高めるソフトウェアのアップグレードがより頻繁に行われることになる。ソフトウェアバグを除去して、ソフトウェアのアップグレードを可能にするために、ソフトウェアのアップデートが定期的に配布され、ＭＦＰにインストールされる。
【０００３】
様々な仕組みが、交換用ソフトウェアを必要とする多数のＭＦＰのグループをアップデートするために用いられている。これら仕組みでは、典型的には、ＭＦＰに、そのソフトウェアをどのようにアップデートするかを指示するソフトウェアアップデートパッケージ（ソフトウェアのアップデート用データ）が、ソフトウェアアップデートサーバからネットワークを介してＭＦＰに配布され、受信後すぐインストールされる。一般的に、このソフトウェアアップデートパッケージの配布のタイミングは、ソフトウェアアップデートサーバ上で実行しているアップデート管理アプリケーションによって決定される。
【０００４】
多数のＭＦＰのグループのソフトウェアをアップデートする上で大きな技術的課題となるのは、容量以上の稼動を如何に回避するかという点である。概して、ＭＦＰソフトウェアアップデート用パッケージのサイズは、約数十メガバイトである。そのため、ソフトウェアアップデートサーバが多数のＭＦＰにソフトウェアアップデート用パッケージを同時に配布しようとすると、ネットワークは混雑し得る。混雑が生じると、配布処理の速度は落ち、ネットワークのバンド幅を競合する他のアプリケーションは停滞し得る。また、ソフトウェアアップデートサーバの処理能力（容量）以上の稼動状態となり、さらに配布を遅れさせる。極端な場合、ネットワークまたはソフトウェアアップデートサーバが機能しなくなる可能性さえある。
【０００５】
他のアプリケーションが停滞すること、および、ネットワークまたはサーバの機能が停止する危険があることに加え、多数のＭＦＰにソフトウェアアップデート用パッケージを同時に配布しようとすると、ネットワークアドミニストレータが選択するソフトウェアインストール時間が無意味になる可能性がある。多くの場合、ネットワークアドミニストレータにとっては、ＭＦＰの使用程度が最小時である「オフ時間」の間に、ソフトウェアアップデートがＭＦＰにインストールされることが望ましいため、この「オフ時間」の間にソフトウェアアップデート用パッケージの配布が開始される。例えば、特許文献１には、中央管理装置と複数の画像形成装置とを接続する通信アダプタが、中央管理装置から受信した更新制御プログラムを蓄積し、画像形成装置の動作状況に応じて画像形成装置へ転送して、その画像形成装置の制御プログラムを更新させるシステムが開示されている。また、特許文献２には、サービス拠点ごとに設置された複数のサービス提供装置の一部がサービスを提供していないときに、更新プログラムを代表取得し、同一サービス拠点に属するサービス提供装置のうちのプログラム未更新のサービス提供装置に、上記代表取得した更新プログラムを転送するシステムが開示されている。
【０００６】
しかしながら、ソフトウェアアップデートパッケージの配信が、能力以上の稼動のために大幅に遅れるならば、実際のインストールは使用のピーク時にずれ込むことがある。
【０００７】
能力を上回る稼動の問題を回避する試みの中には、ネットワークアドミニストレータがＭＦＰのグループにソフトウェアアップデートパッケージを時差的に配布することが可能なアップデート管理アプリケーションもある。これらのアプリケーションでは、ソフトウェアアップデートパッケージが「スレッド（thread）」を介して配布されインストールされ、かつネットワークアドミニストレータは、並列で稼動するスレッドの数を選択する。第１の並列スレッドのグループでインストールが完了すると、上記管理アプリケーションは、次の並列スレッドのグループで配布を開始する。ここで、スレッドとは、同時に実行できる処理の分割の単位である。
【特許文献１】特開２０００−２２２３１１号公報（平成１２年８月１１日公開）
【特許文献２】特開２００２−１３２５１１号公報（平成１４年５月１０日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のスレッドの数を選択する管理アプリケーションでは、ネットワークアドミニストレータが選択した数が多すぎるならば、アップデート処理は、能力以上の稼動によって生じる問題によって悪影響を受ける。反対にネットワークアドミニストレータが選択した数が少なすぎるならば、アップデート処理に時間がかかり過ぎ、インストールは、ＭＦＰ使用のピーク時にも及び得る。つまり、ネットワークアドミニストレータは、最適な数の並列で稼動するスレッドを選択しなければならない。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、その目的は、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージ（ソフトウェアのアップデート用データ）をネットワークノードのグループに配布できるサーバ装置および方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の基本的特徴は、交換用ソフトウェアを用いてＭＦＰのグループのようなネットワークノードのグループをアップデートする方法およびその装置を提供することである。本発明の方法および装置は、ネットワークパフォーマンスを改善すると共に、交換用ソフトウェアのインストールの完了時間に関する予測可能性を改善する。これらの改善を、ソフトウェアアップデートパッケージの配布を減速させることによって促し、配布時間を制限しながら能力以上の稼動を回避して、所定の時間までに全ネットワークノードにソフトウェアアップデートをインストールすることを可能にする。配布を減速させることは、有効ネットワークバンド幅の決定に少なくとも部分的に基づいて、ソフトウェアアップデートパッケージが配布される並列スレッドの数を自動的に決定することを含み、いくつかの実施形態では、上記並列スレッドの数に少なくとも部分的に基づいて、該並列スレッドを介してソフトウェアアップデートパッケージをネットワークノードのグループに配布するために必要とされる配布時間を決定すること、および、該配布時間に少なくとも部分的に基づいて、上記並列スレッドを介してソフトウェアアップデートパッケージを配布する開始時間を自動的に決定することを含む。本発明のいくつかの実施形態では、上記開始時間は、さらに、ネットワークアドミニストレータが選択した予定インストール時間に少なくとも部分的に基づいて自動的に決定される。これによって、ソフトウェアアップデートパッケージの配布が時差的に行われても、ネットワークノードの全グループでのソフトウェアアップデートのインストールは、予定時間（例えば「オフ時間」の間）に完了する確率が高くなる。
【００１１】
本発明に係るソフトウェアアップデートサーバ装置は、上記課題を解決するために、ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデートサーバ装置において、上記ネットワークに接続するネットワークインターフェースと、上記ソフトウェアアップデートパッケージを記憶するメモリと、上記ネットワークインターフェースおよび上記メモリに通信可能に結合された制御部とを含み、上記制御部は、上記ネットワークインターフェースで受信した情報に基づいて有効ネットワークバンド幅を決定し、当該有効ネットワークバンド幅に基づいて並列処理する並列スレッドの数を決定し、上記並列スレッドを介して、上記メモリに記憶されたソフトウェアアップデートパッケージを、上記ネットワークインターフェースから上記ネットワークノードに配布することを特徴としている。
【００１２】
上記構成によると、上記ネットワークインターフェースで受信した情報に基づいて有効ネットワークバンド幅を決定し、当該有効ネットワークバンド幅に基づいて並列処理する並列スレッドの数を決定し、上記並列スレッドを介して、上記メモリに記憶されたソフトウェアアップデートパッケージを、上記ネットワークインターフェースから上記ネットワークノードに配布する。そのため、適切な並列スレッド数を決定することができ、ソフトウェアアップデートパッケージの配布時間を制限しながら装置の能力以上の稼動を回避して、所定の時間までに全ネットワークノードにソフトウェアアップデートをインストールすることを可能にする。よって、ネットワークやソフトウェアアップデートサーバ装置のダウンを防ぐことができ、かつ、交換用ソフトウェアのインストールの完了時間に関する予測可能性を改善することができる。
【００１３】
このように、上記構成によると、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージをネットワークノードのグループに配布することが可能となる。
【００１４】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記決定された並列スレッドの数に基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドのセットを介して上記ネットワークノードのグループに配布するのに必要な配布時間を決定してもよい。
【００１５】
上記構成によると、決定された並列スレッドの数に基づいて、ソフトウェアアップデートパッケージを並列スレッドのセットを介してネットワークノードのグループへの配布時間を決定することで、無駄や不足のない配布時間を適切に求めることができる。
【００１６】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記配布時間に基づいて、上記並列スレッドのセットを介して上記ソフトウェアアップデートパッケージの配布の開始時間を決定してもよい。
【００１７】
上記構成によると、上記配布時間に基づいて、並列スレッドのセットを介してソフトウェアアップデートパッケージの配布の開始時間を決定することで、無駄や不足のない開始時間を適切に求めることができる。
【００１８】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記並列スレッドの数を、さらに、ネットワークアドミニストレータの入力によりソフトウェアのアップデートに割り当てられた有効ネットワークバンド幅の量、に基づいて決定してもよい。
【００１９】
上記構成によると、並列スレッドの数を、さらに、ネットワークアドミニストレータの入力によりソフトウェアのアップデートに割り当てられた有効ネットワークバンド幅の量に基づいて決定することで、より適切な数を決定することができる。
【００２０】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記並列スレッドの数を、さらに、スレッドごとに割り当てられる有効ネットワークバンド幅の量に基づいて決定してもよい。
【００２１】
上記構成によると、並列スレッドの数を、さらに、スレッドごとに割り当てられる有効ネットワークバンド幅の量に基づいて決定することで、さらに適切な数を決定することができる。
【００２２】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記配布時間を、さらに、上記グループ内のネットワークノードの数に基づいて決定してもよい。
【００２３】
上記構成によると、上記配布時間を上記グループ内のネットワークノードの数に基づいて決定することで、より適切に無駄や不足のない配布時間を決定することができる。
【００２４】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記配布時間を、さらに、上記ソフトウェアアップデートパッケージのサイズに基づいて決定してもよい。
【００２５】
上記構成によると、上記配布時間を、さらに、上記ソフトウェアアップデートパッケージのサイズに基づいて決定することで、さらに適切に無駄や不足のない配布時間を決定することができる。
【００２６】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記開始時間を、さらに、ネットワークアドミニストレータにより入力された予定インストール時間に基づいて決定してもよい。
【００２７】
上記構成によると、上記開始時間を、さらに、ネットワークアドミニストレータにより入力された予定インストール時間に基づいて決定することで、ソフトウェアアップデートパッケージの配布が時差的に行われても、ネットワークノードの全グループでのソフトウェアアップデートのインストールは、予定時間に完了する確率が高くなる。
【００２８】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記開始時間が来ると、上記ソフトウェアアップデートパッケージを、上記ネットワークインターフェースによって、上記並列スレッドの第１セットを介して、上記グループ内のネットワークノードの第１サブグループに配布し、上記並列スレッドの第１セットは、上記決定された数の並列スレッドを有していてもよい。
【００２９】
上記構成によると、開始時間が来ると、ソフトウェアアップデートパッケージを、並列スレッドの第１セットを介して、ネットワークノードの第１サブグループに配布する。ここで、並列スレッドの第１セットは、上記決定された数の並列スレッドを有している。そのため、適切な開始時間に、最も効率よくソフトウェアアップデートパッケージを配布することができる。
【００３０】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、上記ネットワークノードの第１サブグループから配布が成功したことを表すイベント通知を受信すると、上記ソフトウェアアップデートパッケージを、上記ネットワークインターフェースによって、並列スレッドの第２セットを介して、上記グループ内のネットワークノードの第２サブグループに配布し、上記並列スレッドの第２セットは、上記決定された数の並列スレッドを有していてもよい。
【００３１】
上記構成によると、ネットワークノードの第１サブグループへのソフトウェアアップデートパッケージの配布が成功すると、並列スレッドの第２セットを介して、ネットワークノードの第２サブグループにソフトウェアアップデートパッケージを配布する。よって、順次配布の処理が繰り返される。ここで、並列スレッドの第２セットは、上記決定された数の並列スレッドを有しているため、最も効率よくソフトウェアアップデートパッケージを配布することができる。
【００３２】
本発明に係るソフトウェアアップデートサーバ装置では、上記構成に加え、上記制御部は、ネットワークアドミニストレータにより入力された予定インストール時間が来ると、インストールコマンドを、上記ネットワークインターフェースによって、並列スレッドを介して、上記グループ内のネットワークノードの少なくとも１つのサブグループに配布してもよい。
【００３３】
上記構成によると、予定インストール時間が来ると、インストールコマンドが並列スレッドを介して、ネットワークノードの少なくとも１つのサブグループに配布され、配布されたサブグループのネットワークノードでインストールが開始される。
【００３４】
ここで、上記ネットワークノードは、多機能プリンタ（ＭＦＰ）であってもよい。このように、ネットワークノードがＭＦＰであると、ＭＦＰの有するソフトウェアのアップデートの際に、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージを配布することができる。
【００３５】
本発明に係るソフトウェアアップデート方法は、上記課題を解決するために、ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデート方法において、有効ネットワークバンド幅を決定するステップと、上記有効ネットワークバンド幅に基づいて、上記ソフトウェアアップデートパッケージが配布される並列スレッドの数を決定するステップと、を含むことを特徴としている。
【００３６】
上記方法によると、上記本発明に係るソフトウェアアップデートサーバ装置と同様の効果を奏し、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージをネットワークノードのグループに配布することができる。
【００３７】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、上記決定された並列スレッドの数に基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドを介して上記ネットワークノードのグループへ配布するのに必要な配布時間を決定するステップを、さらに含んでもよい。
【００３８】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、上記配布時間に基づいて、上記並列スレッドを介して上記ソフトウェアアップデートパッケージの配布の開始時間を決定するステップを、さらに含んでもよい。
【００３９】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、上記開始時間を、さらに、ネットワークアドミニストレータが選択した予定インストール時間に基づいて決定してもよい。
【００４０】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、上記ソフトウェアアップデートパッケージを、上記並列スレッドの第１セットを介して、上記グループ内のネットワークノードの第１サブグループに配布するステップをさらに含み、上記並列スレッドの第１セットは、上記決定された数の並列スレッドを有していてもよい。
【００４１】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、上記ネットワークノードの第１のサブグループから、配布が成功したことを表すイベント通知を受信するステップと、上記ソフトウェアアップデートパッケージを、上記並列スレッドの第２セットを介して、上記グループ内のネットワークノードの第２サブグループに配布するステップと、をさらに含み、上記並列スレッドの第２セットは、上記決定された数の並列スレッドを有していてもよい。
【００４２】
本発明に係るソフトウェアアップデート方法は、上記ステップに加え、さらに、インストールコマンドを、上記並列スレッドを介して、上記グループ内のネットワークノードの少なくとも１つのグループに配布するステップをさらに含んでいてもよい。
【００４３】
本発明に係るソフトウェアアップデート方法は、上記課題を解決するために、ネットワークに接続したネットワークノードのグループに、当該ネットワークノードの有するソフトウェアをアップデートするためのソフトウェアアップデートパッケージを配布するソフトウェアアップデート方法において、有効ネットワークバンド幅に基づいて、上記ソフトウェアアップデートパッケージが配布される並列スレッドの数を決定するステップと、上記グループ内のネットワークノードの数、上記並列スレッドの数、および、上記ソフトウェアアップデートパッケージのサイズの少なくともいずれか１つに基づいて、上記ソフトウェアアップデートパッケージを上記並列スレッドのセットを介してネットワークノードのグループに配布するのに必要な配布時間を決定するステップと、上記配布時間と、ネットワークアドミニストレータが選択した予定インストール時間との少なくともいずれか一方に基づいて、上記並列スレッドのセットを介して上記ネットワークノードのグループに上記ソフトウェアアップデートパッケージの配布を始めるステップと、を含むことを特徴としている。
【００４４】
上記方法によると、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージをネットワークノードのグループに配布することができる。
【００４５】
なお、本発明のこれら形態および他の形態については、以下の詳細な説明を図面と共に参照することによってより明らかとなるであろう。図面については、以下に簡単に説明する。当然ながら、本発明は、特許請求の範囲によって定義されるものである。
【発明の効果】
【００４６】
本発明に係るソフトウェアアップデートサーバ装置は、以上のように、上記ネットワークに接続するネットワークインターフェースと、上記ソフトウェアアップデートパッケージを記憶するメモリと、上記ネットワークインターフェースおよび上記メモリに通信可能に結合された制御部とを含み、上記制御部は、上記ネットワークインターフェースで受信した情報に基づいて有効ネットワークバンド幅を決定し、当該有効ネットワークバンド幅に基づいて並列処理する並列スレッドの数を決定し、上記並列スレッドを介して、上記メモリに記憶されたソフトウェアアップデートパッケージを、上記ネットワークインターフェースから上記ネットワークノードに配布する。
【００４７】
上記構成によると、適切な並列スレッド数を決定することができ、ソフトウェアアップデートパッケージの配布時間を制限しながら装置の能力以上の稼動を回避して、所定の時間までに全ネットワークノードにソフトウェアアップデートをインストールすることを可能にする。よって、ネットワークやソフトウェアアップデートサーバ装置のダウンを防ぐことができ、かつ、交換用ソフトウェアのインストールの完了時間に関する予測可能性を改善することができる。
【００４８】
このように、上記構成によると、最適な数の並列で稼動するスレッドを決定でき、効率よくソフトウェアアップデートパッケージをネットワークノードのグループに配布することが可能となる。
【発明を実施するための最良の形態】
【００４９】
図１は、本発明に係る一実施形態における通信システムを示す図である。この通信システムは、多数のネットワークノードを含んでいる。該ネットワークノードは、ソフトウェアアップデートサーバ（ソフトウェアアップデートサーバ装置）１１０、ＭＦＰ１２０Ａ〜１２０Ｎ（複数のＭＦＰ１２０を以下ではまとめてＭＦＰ１２０と呼ぶ。なおＭＦＰの数は限定されない。）、および、ネットワーク管理ステーション１４０を含んでいる。ソフトウェアアップデートサーバ１１０は、通信ネットワーク１３０を介して、ＭＦＰ１２０およびネットワーク管理ステーション１４０に通信可能に結合されている。通信ネットワーク１３０は、例えば、企業網またはサービスプロバイダネットワークであってもよく、ルータ、スイッチ、および、ブリッジといった多数のノードを含んでいてもよい。また、通信ネットワーク１３０は、インターネットを縦走していてもよい。ソフトウェアアップデートサーバ１１０、ＭＦＰ１２０、および、ネットワーク管理ステーション１４０は、通信ネットワーク１３０に有線接続していても、無線接続してもよい。
【００５０】
ソフトウェアアップデートサーバ１１０は、ＭＦＰ１２０上のソフトウェアへのアップデートの内容およびタイミングを制御するデータ処理素子である。このようなソフトウェアはファームウェアであってもよい。ＭＦＰ１２０同士は、例えば、共通の所有者によって、または、共通の一組のユーザによる使用によって、連携されていてもよい。ソフトウェアアップデートの種類には、例えば、修正コードを有するパッチと、新しい特徴または機能をサポートするコードを有するアップグレードとが含まれる。また、ソフトウェアアップデートサーバ１１０は、ＭＦＰ１２０に、ＭＦＰ１２０上で稼動している現状のソフトウェアのバージョンと、ＭＦＰ１２０にインストールする交換用ソフトウェアのバージョンとの間の差異を反映したデルタパッケージを準備して配布してもよい。この場合では、ソフトウェアアップデートサーバ１１０は、このＭＦＰ１２０上で稼動している現状のソフトウェアのバージョンを、ソフトウェアアップデートサーバ１１０上に記憶された交換用ソフトウェアのバージョンと比較して、アップデート経路を決定すると共に、該アップデート経路を用いてＭＦＰ１２０の配布に適したデルタパッケージを構成する。そして、ＭＦＰ１２０は、ソフトウェアアップデートサーバ１１０からデルタパッケージを受信し、ソフトウェアアップデートサーバ１１０の指示を受けるとすぐに、デルタパッケージを実行して上記交換用ソフトウェアのバージョンにアップデートするインストールを行う。なお、ソフトウェアアップデート用データ（ソフトウェアアップデートパッケージ）は、ＭＦＰ１２０からのリクエストに従って、ソフトウェアアップデートサーバ１１０から配布してもよい（プル配布）。あるいは、ソフトウェアアップデートは、如何なるリクエストにも無関係に、ソフトウェアアップデートサーバ１１０によってＭＦＰ１２０に配布してもよい（プッシュ配布）。
【００５１】
ＭＦＰ１２０は、本実施形態では、印刷、スキャン、コピー、ファックス、ファイリング、表示、および、フォーマット変換といった、多数の種類の画像サービスを提供する画像形成装置（複合機）である。各ＭＦＰ１２０は、ＭＦＰ１２０を通信ネットワーク１３０に通信可能に結合させる、イーサネット（登録商標）、広域ネットワーク（ＷＡＮ）、ユニバーサルシリアルバス（ＵＳＢ）、ブルートゥース、赤外線データ協会（ＩｒＤａ）、無線ローカルエリアネットワーク（ＬＡＮ）（例えばＷｉ−Ｆｉ）、World Interoperability for Microwave Access（ＷｉＭＡＸ）、セルラーネットワーク、または、公衆交換電話網（ＰＳＴＮ）インターフェースといった有線または無線のネットワークインターフェースを有している。各ＭＦＰ１２０は、それぞれのネットワークインターフェースで、画像ジョブをＭＦＰプリンタで印刷できるフォーマットで受信し、該画像ジョブを処理することが可能である。各ＭＦＰ１２０はまた、各ネットワークインターフェースで、ソフトウェアアップデートパッケージ（例えばデルタパッケージ）を受信するように構成されている。各ＭＦＰ１２０の内部では、プロセッサ、メモリ、ネットワークインターフェース、スキャン／コピーエンジン、および、プリントエンジンが、通信可能に連結し合っている。上記プロセッサは、画像ソフトウェア（例えば画像ファームウェア）を実行して、サポートされる画像サービスを提供する。上記プロセッサはまた、アップデートソフトウェア（例えばアップデートファームウェア）を実行して、上記ネットワークインターフェースで受信したソフトウェアアップデートパッケージの指示に従って、交換用ソフトウェアバージョンにアップデートする。上記スキャン／コピーエンジンは、１つ以上の集積回路（ＩＣ）のようなスキャナ／コピー機の論理回路と、スキャン機能およびコピー機能を実行する機構部とを含む。例えば、上記スキャン／コピーエンジンは、スキャナＩＣの制御下で原稿を光学的に走査して、走査された原稿をメモリ内に格納する線画像センサを含んでおり、この線画像センサは、可動式キャリッジ上に搭載されている。上記プリントエンジンは、１つ以上の集積回路（ＩＣ）のようなプリンタ論理回路と、可動式キャリッジ上に搭載されたカラーインクジェットヘッドのような機構部とを含んでいてもよい。該機構部は、１つ以上のプリンタＩＣの制御下で、プリントデータをハードコピーフォーマットで出力するためのものである。上記メモリは、１つ以上のランダムアクセスメモリ（ＲＡＭ）、および、１つ以上の読み出し専用メモリ（ＲＯＭ）から構成されていてもよい。本実施形態のＭＦＰ１２０は、印刷、スキャン、および、コピー、並びに、他の画像機能をサポートしているが、他の実施形態では、ＭＦＰは、画像機能の別のセットをサポートしていてもよい。
【００５２】
ネットワーク管理ステーション１４０は、人であるネットワークアドミニストレータが、ソフトウェアアップデートサーバ１１０を遠隔から設定することを可能にするデータ処理素子である。ネットワーク管理ステーション１４０は、デスクトップ型またはノードブック型パーソナルコンピュータ（ＰＣ）であるか、または、アップデート管理ソフトウェアを実行するワークステーションであってもよい。ネットワーク管理ステーション１４０は、ユーザインターフェースと、ネットワークインターフェースと、プロセッサに結合されたメモリとを有している。上記ユーザインターフェースは、ネットワークアドミニストレータからの入力を受信する、キーボード、キーパッド、または、タッチセンシティブナビゲーションツールといったデータ入力素子と、出力をネットワークアドミニストレータに表示する、発光ダイオード（ＬＥＤ）ディスプレイパネルまたは液晶ディスプレイ（ＬＥＤ）パネルといったデータ出力素子とを含む。上記ネットワークインターフェースは、ネットワーク管理ステーション１４０を通信ネットワーク１３０に通信可能に結合させる、イーサネット、ＷＡＮ、ＵＳＢ、ブルートゥース、ＩｒＤａ、Ｗｉ−Ｆｉ、ＷｉＭＡＸ、セルラー、または、ＰＳＴＮインターフェースといった、有線または無線のネットワークインターフェースである。上記メモリは、１つ以上のＲＡＭおよび１つ以上のＲＯＭを含む。上記プロセッサは、アップデート管理ソフトウェアを実行し、これによって、ネットワークアドミニストレータは、上記データ入力素子を用いて設定情報を入力でき、該設定情報を該設定情報が用いられるソフトウェアアップデートサーバ１１０に転送することができる。
【００５３】
次に図２は、ソフトウェアアップデートサーバ１１０をさらに詳細に示す図であり、該サーバは、プロセッサ（制御部）２３０と、プロセッサ２３０に接続されたネットワークインターフェース２１０と、プロセッサ２２０に接続されたメモリ２３０とを含んでいる。ネットワークインターフェース２１０は、ソフトウェアアップデートサーバ１１０を通信ネットワーク１３０に通信可能に結合させる、イーサネット、ＷＡＮ、ＵＳＢ、ブルートゥース、ＩｒＤａ、Ｗｉ−Ｆｉ、ＷｉＭＡＸ、セルラー、または、ＰＳＴＮインターフェースといった、有線または無線のネットワークインターフェースである。
【００５４】
メモリ２３０には、アップデートマネージャ２４０、ＭＦＰデータベース２５０、および、ソフトウェアアップデートパッケージ２６０が格納されている。メモリ２３０は、１つ以上のＲＡＭおよび１つ以上のＲＯＭを有していてもよい。アップデートマネージャ２４０は、サポートされるソフトウェアアップデートサービスを提供するためにプロセッサ２２０によって実行可能なソフトウェアである。ＭＦＰデータベース２５０は、サポートされるソフトウェアアップデートサービスを提供するためにアップデートマネージャ２４０によって利用される情報を格納している。この情報とは、各ＭＦＰ１２０についての、アドレス、現状のソフトウェアのバージョン、および、アップデートステータスなどである。ソフトウェアアップデートパッケージ２６０は、アップデートマネージャ２４０によって構成されると共に、ＭＦＰ１２０を交換用ソフトウェアバージョンにアップデートすることが可能な程度の情報を含む。この交換用ソフトウェアバージョンは、修正バージョン、または、新しい特徴または機能をサポートするアップグレードされたバージョンであってもよい。また、ソフトウェアアップデートパッケージ２６０は、デルタパッケージであってもよい。なお、本実施形態では、共通のソフトウェアアップデートパッケージ２６０が準備されて、全ＭＦＰ１２０に配布されるが、別の実施形態では、個々に編成されたソフトウェアアップデートパッケージが準備されており、各ＭＦＰ２１０に別々に配布されてもよい。
【００５５】
図３は、本発明に係る一実施形態における、スレッドによるソフトウェアアップデートパッケージ２６０のＭＦＰ１２０への配布を行う開始時間を決定する方法を示す図である。最初に、ソフトウェアアップデートサーバ１１０が、有効ネットワークバンド幅（Ｖ）を決定する（ステップ３１０、以下ではｓ３１０）。例えば、ソフトウェアアップデートサーバ１１０が、Absolute Futurity BBモニタ（アブソリュート・フューチャリ・ＢＢモニタ）（「http://www.absolutefuturity.com/bbmonitor.htm」参照）のような公知の接続バンド幅モニタを実行して、ネットワークインターフェース２１０でデータを転送あるいは受信することによって、有効ネットワークバンド幅を決定する。ここで、ネットワークインターフェース２１０で転送あるいは受信した上記データとは、ネットワークに接続された通信可能な機器へ転送したあるいは機器から受信したデータ（情報）であり、このデータはネットワーク上で通信され、検出されたデータのいずれであってもよい。
【００５６】
ここで、接続バンド幅モニタの実行には、アップデートマネージャのアプリケーションの外部ではあるが、同一の物質的コンピュータシステム内部に備わっていて、実行される、ネットワークバンド幅モニタを使用する。例えば、ソフトウェアアップデートサーバのアップデートマネージャのアプリケーションが、いくつかの利用可能な、市販のあるいはオープン・ソースのネットワーク・モニタリング・ツールのうちの１つを使用し、有効ネットワークバンド幅を測定する。
【００５７】
他の実施形態では、アップデートマネージャ２４０が、有効ネットワークバンド幅を決定するための接続バンド幅モニタ用のネイティブサポートを有していてもよい。これは、別途市販のあるいはオープン・ソース・アプリケーションを用いる代わりに、バンド幅モニタリング機能がアップデートマネージャのアプリケーションとして実行されてもよいということである。
【００５８】
いずれにしても、有効ネットワークバンド幅（Ｖ）が決定されると、次に、アップデートマネージャ２４０が、ソフトウェアアップデートに割り当てられる有効ネットワークバンド幅の割合（Ｐ）を決定する（ｓ３２０）。例えば、アップデートマネージャ２４０は、ネットワーク管理ステーション１４０から、設定情報として、ソフトウェアアップデートに割り当てられる有効ネットワークバンド幅の割合（Ｐ）を受信してもよい。さらに、アップデートマネージャ２４０は、スレッドごとに割り当てられる有効ネットワークバンド幅の量（Ｔ）を決定する（ｓ３３０）。該量（Ｔ）は、アップデートマネージャ２４０にて予め設定されているか、または、ネットワーク管理ステーション１４０から設定情報として受信されたものであってもよい。次に、上記有効ネットワークバンド幅（Ｖ）、ソフトウェアアップデートに割り当てられる有効ネットワークバンド幅の割合（Ｐ）、および、スレッドごとに割り当てられる有効ネットワークバンド幅の量（Ｔ）から、アップデートマネージャ２４０は、並列スレッドの最大数（ｎ）を算出する（ｓ３４０）。この最大数とはつまり、同時に処理される（同時発生の）スレッドの限定数であり、該同時発生のスレッドを介してソフトウェアアップデートパッケージ２６０が複数のＭＦＰ１２０に配布される。ここでは、アップデートマネージャ２４０は、式ｎ＝（Ｖ×Ｐ）／Ｔに従って、並列スレッドの最大数（ｎ）を算出する。上記有効ネットワークバンド幅（Ｖ）と、ソフトウェアアップデート用に確保された有効ネットワークバンド幅の割合（Ｐ）とを鑑みて、並列スレッドの最大数（ｎ）を慎重に決定することによって、ソフトウェアアップデートパッケージ２６０が、ＭＦＰ１２０のグループに配布されている間の、能力以上の稼動および他のアプリケーションの停滞を、有効に回避することが可能となる。
【００５９】
次に、アップデートマネージャ２４０は、アップデートされるＭＦＰの数（Ｎ）を決定し（ｓ３５０）、ソフトウェアアップデートパッケージ２６０のサイズ（Ｆ）を決定する（ｓ３６０）。例えば、アップデートマネージャ２４０は、ＭＦＰデータベース２５０を参照して、アップデートが必要なＭＦＰの数を決定する。この場合、このアップデートステータス（例えば、「ファームウェアアップデート要求」状態）は、ソフトウェアアップデートサーバ１１０が使用可能な、ＭＦＰ１２０を含む全ＭＦＰ用に保持される。簡潔にするために、本実施形態では、全ＭＦＰ１２０（他のＭＦＰを含まない）だけがアップデートを必要としていると仮定する。アップデートされるＭＦＰの数（Ｎ）、並列スレッドの最大数（ｎ）、および、ソフトウェアアップデートパッケージ２６０のサイズ（Ｆ）から、アップデートマネージャ２４０は、ソフトウェアアップデートパッケージ２６０を全ＭＦＰ１２０に配布するのに必要な配布時間（Ｅ）を決定する（ｓ３７０）。例えば、アップデートマネージャ２４０は、配布時間（Ｅ）を、以下の式、
Ｎ＜ｎまたはＮ＝ｎの場合：Ｅ＝Ｆ／Ｔ
Ｎ＞ｎかつＮはｎで剰余なしに割り切れる場合：Ｅ＝（Ｆ／Ｔ）×（Ｎ／ｎ）
Ｎ＞ｎかつＮはｎで割ると剰余がある場合：Ｅ＝（Ｆ／Ｔ）×{Ｑ（Ｎ／ｎ）＋１}
（ここでＱ（Ｎ／ｎ）は、Ｎ／ｎの小数点以下を省いた整数（商）である）
に従って、算出する。
【００６０】
次に、アップデートマネージャ２４０は、ＭＦＰ１２０にソフトウェアアップデートをインストールするための予定インストール時間（Ｉ）を決定する（ｓ３８０）。ここでは、アップデートマネージャ２４０は、ネットワーク管理ステーション１４０から、設定情報として、予定インストール時間（Ｉ）を受信する。予定インストール時間（Ｉ）および配布時間（Ｅ）から、アップデートマネージャ２４０は、ＭＦＰ１２０にパッケージ２６０の配布を始める開始時間（Ｓ）を算出する（ｓ３９０）。アップデートマネージャ２４０は、ソフトウェアアップデートパッケージ２６０のＭＦＰ１２０への配布が、予定インストール時間（Ｉ）の前に完了する確率の高い開始時間（Ｓ）を選択する。例えば、アップデートマネージャ２４０は、開始時間（Ｓ）を、式Ｓ＝Ｉ−（Ｅ＋Ｋ）（Ｋは、配布が予定インストール時間（Ｉ）の前に完了する確率を高めるために配布時間（Ｅ）に加える時定数である）に従って算出する。なお、ネットワークアドミニストレータが予定インストール時間（Ｉ）を特定することを可能にすることで、ソフトウェアアップデートパッケージ２６０が時差的に配布されるとしても、ＭＦＰ１２０の全グループ中のソフトウェアアップデートのインストールを、予定時間（例えば「オフ時間」中）に完了させることが可能である。
【００６１】
図４は、本発明に係る一実施形態における、ソフトウェアアップデートパッケージ２６０を、並列スレッドを介してＭＦＰ１２０に配布する方法を示す図である。ＭＦＰ１２０にソフトウェアアップデートパッケージ２６０の配布を開始する開始時間（Ｓ）が来ると、アップデートマネージャ２４０が起動し、該マネージャはＭＦＰ１２０の第１サブグループを特定する（ｓ４１０）。該第１サブグループは、対応する並列スレッドの第１セットを介してソフトウェアアップデートパッケージ２６０を受信するものである。ここでは、上記第１サブグループ内のＭＦＰの数、および、上記第１セット内の並列スレッドの数は、並列スレッドの最大数（ｎ）を超えてはいない。典型的には、上記第１サブグループ内のＭＦＰの数、および、上記第１セット内の並列スレッドの数は、並列スレッドの最大数（ｎ）と同一である。しかしながら、アップデートが必要なＭＦＰの数が並列スレッドの最大数（ｎ）よりも少ないならば、ＭＦＰおよびスレッドの数は、並列スレッドの最大数（ｎ）よりも少なくなるであろう。ここでは、アップデートマネージャ２４０は、ＭＦＰデータベース２５０内のそのＭＦＰのアップデートステータス（例えば、「ファームウェアアップデート要求」状態）を参照すると共に、ＭＦＰデータベース２５０からそのアドレス（インターネットプロトコルアドレス）を抽出することによって、上記第１サブグループのＭＦＰを特定する。一旦上記第１サブグループのものと特定されたならば、アップデートマネージャ２４０は、この特定されたＭＦＰのアップデートステータスを変更して、配布の開始（例えば、「ファームウェア配布開始」状態）を表示し（ｓ４２０）、上記特定されたＭＦＰが、プッシュ配布方法をサポートするか、プル配布方法をサポートするかを決定する（ｓ４３０）。例えば、アップデートマネージャ２４０は、ＭＦＰデータベース２５０を参照することによって、特定されたＭＦＰがサポートする配布方法を決定する。プッシュ配布方法をサポートするＭＦＰの場合には、アップデートマネージャ２４０は、パッケージ２６０を該ＭＦＰに転送し、イベント通知を待つ（ｓ４４０）。プル配布方法をサポートするＭＦＰの場合には、アップデートマネージャ２４０は、ソフトウェアアップデートパッケージ２６０をプル配布することが可能な統一資源位置指定子（ＵＲＬ）を上記ＭＦＰに転送し、イベント通知を待つ（ｓ４５０）。ＭＦＰから失敗イベントを受信したならば、設定された再トライの数が尽きていない限り、プッシュ配布またはプル配布を再トライし、設定された再トライの数が尽きた場合には、アップデートマネージャ２４０は、ＭＦＰデータベース２５０のＭＦＰのアップデートステータスを変更して、配布の失敗（例えば、「ファームウェア配布失敗」状態）を表示する（ｓ４７０）。ＭＦＰから成功イベントを受信したならば、アップデートマネージャ２４０は、ＭＦＰデータベース２５０のＭＦＰのアップデートステータスを変更して、配布の成功（例えば、「ファームウェア配布成功」状態）を表示する（ｓ４６０）。一旦上記第１サブグループ内の全特定されたＭＦＰのアップデートステータスが変更されると、アップデートマネージャ２４０は、ソフトウェアアップデートパッケージ２６０を配布する必要のある更なるＭＦＰが存在するかどうかを判断する（ｓ４８０）。配布する必要のある更なるＭＦＰが存在するならば、ｓ４１０に戻って、ＭＦＰの第２サブグループ用の配布処理を、並列スレッドの第２セットを介して繰り返し行う。配布する必要のある更なるＭＦＰが存在しないならば、終了する。
【００６２】
図５は、本発明に係る一実施形態における、ソフトウェアアップデートをＭＦＰ２１０上にインストールする方法を示す図である。上述のソフトウェアアップデートパッケージ２６０を用いて、ソフトウェアアップデートをＭＦＰ１２０上にインストールを始める予定インストール時間（Ｉ）が来ると、アップデートマネージャ２４０が起動し、ＭＦＰ１２０の第１サブグループを特定する（ｓ５１０）。該第１サブグループは、対応する並列スレッドの第１セットを用いたソフトウェアアップデートパッケージ２６０のインストールを開始するものである。ここでは、上記第１サブグループ内のＭＦＰの数、および、上記第１セット内の並列スレッドの数は、並列スレッドの最大数（ｎ）を超えていない。ここで、アップデートマネージャ２４０は、ＭＦＰデータベース２５０内のそのＭＦＰのアップデートステータス（例えば「ファームウェア配布成功」状態）を参照すると共に、ＭＦＰデータベース２５０からそのアドレスの抽出を行うことによって、上記第１サブグループ用のＭＦＰを特定する。一旦上記第１サブグループのものと特定されたならば、アップデートマネージャ２４０は、特定されたＭＦＰのアップデートステータスを変更して、インストールの開始（例えば、「ファームウェアインストール開始」状態）を表示し（ｓ５２０）、特定された各ＭＦＰにインストールステータスのイベント通知を登録する（ｓ５３０）。そして、アップデートマネージャ２４０は、登録コマンドを特定されたＭＦＰに転送することによって登録する。アップデートマネージャ２４０は、その後、インストール開始コマンドを特定された各ＭＦＰに転送し、イベント通知を待つ（ｓ５４０）。ＭＦＰから失敗イベントを受信したならば、設定された再トライの数が尽きていない限り、インストール処理は再トライされ、設定された再トライの数が尽きた場合には、アップデートマネージャ２４０は、ＭＦＰデータベース２５０内のＭＦＰのアップデートステータスを変更して、インストールの失敗（例えば、「ファームウェアインストール失敗」状態）を表示する（ｓ５６０）。ＭＦＰから成功イベントを受信したならば、アップデートマネージャ２４０は、ＭＦＰデータベース２５０内のＭＦＰのアップデートステータスを変更して、インストールの成功（例えば、「ファームウェアインストール成功」状態）を表示する（ｓ５５０）。一旦上記第１のサブグループ内の特定された全ＭＦＰのアップデートステータスが変更されると、アップデートマネージャ２４０は、ソフトウェアアップデートパッケージ２６０をインストールする必要のある更なるＭＦＰが存在するかどうかを判断する（ｓ５７０）。配布する必要のある更なるＭＦＰが存在するならば、ｓ５１０に戻って、第２ＭＦＰサブグループ用のインストール処理を、並列スレッドの第２セットを介して繰り返し行う。配布する必要のある更なるＭＦＰが存在しないならば、終了する。
【００６３】
他の実施形態では、予定インストール時間がネットワークアドミニストレータによって選択されていない状況下で、配布の減速が適用されてもよい。例えば、ソフトウェアアップデートを各ＭＦＰ上にインストールすることが、ソフトウェアアップデートパッケージを該ＭＦＰにスレッドを介して配布した直後に、他のＭＦＰの配布ステータスまたはインストールステータスとは無関係に行われてもよい。更に他の実施形態では、ソフトウェアアップデートパッケージの全ＭＦＰへのインストールが、ソフトウェアアップデートパッケージを並列スレッドのセットを介して全ＭＦＰに配布した直後に行われてもよい。
【００６４】
なお、ソフトウェアップデートサーバ１１０の特にプロセッサ２２０は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。つまり、ソフトウェアップデートサーバ１１０は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるソフトウェアップデートサーバ１１０の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記ソフトウェアップデートサーバ１１０に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【００６５】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【００６６】
また、ソフトウェアップデートサーバ１１０に、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【００６７】
本発明の一態様では、ソフトウェアアップデートサーバは、ネットワークインターフェースと、メモリと、該ネットワークインターフェースおよび該メモリに通信可能に結合されたプロセッサとを含み、該プロセッサの制御下で、該ネットワークインターフェースで受信した情報に少なくとも部分的に基づいて有効ネットワークバンド幅が決定され、該有効ネットワークバンド幅に少なくとも部分的に基づいて、上記メモリ内に記憶されたソフトウェアアップデートパッケージが該ネットワークインターフェースによって配布される並列スレッドの数が決定される。
【００６８】
いくつかの実施形態では、プロセッサの制御下で、上記並列スレッドの数に少なくとも部分的に基づいて、ソフトウェアアップデートパッケージを並列スレッドのセットを介してネットワークノードの１つのグループに配布するために必要とされる配布時間が決定される。
【００６９】
いくつかの実施形態では、プロセッサの制御下で、上記配布時間に少なくとも部分的に基づいて、ソフトウェアアップデートパッケージを並列スレッドのセットを介して配布する開始時間が決定される。
【００７０】
いくつかの実施形態では、上記並列スレッドの数はさらに、プロセッサの制御下で、ネットワークアドミニストレータがソフトウェアアップデートに割り当てた有効ネットワークバンド幅の量に少なくとも部分的に基づいて決定される。
【００７１】
いくつかの実施形態では、上記並列スレッドの数はさらに、プロセッサの制御下で、各スレッドに割り当てられる有効ネットワークバンド幅の量に少なくとも部分的に基づいてさらに決定される。
【００７２】
いくつかの実施形態では、上記配布時間はさらに、プロセッサの制御下での、グループ内のネットワークノードの数に少なくとも部分的に基づいて決定される。
【００７３】
いくつかの実施形態では、上記配布時間はさらに、プロセッサの制御下での、ソフトウェアアップデートパッケージのサイズに少なくとも部分的に基づいて決定される。
【００７４】
いくつかの実施形態では、上記開始時間はさらに、プロセッサの制御下での、ネットワークアドミニストレータが選択した予定インストール時間に少なくとも部分的に基づいて決定される。
【００７５】
いくつかの実施形態では、上記開始時間が来ると、プロセッサの制御下で、ソフトウェアアップデートパッケージが、ネットワークインターフェースによって、並列スレッドの第１のセットを介してグループ内のネットワークノードの第１のサブグループに配布される。ここでは、上記並列スレッドの第１のセットは、決定された数の並列スレッドを有している。
【００７６】
いくつかの実施形態では、ネットワークインターフェースによって、且つ、プロセッサの制御下で、ネットワークノードの第１のサブグループから受信したイベントの通知に対して、ソフトウェアアップデートパッケージが、ネットワークインターフェースによって、並列スレッドの第２のセットを介してグループ内のネットワークノードの第２のサブグループに配布される。ここでは、上記並列スレッドの第２のセットは、決定された数の並列スレッドを有している。
【００７７】
いくつかの実施形態では、ネットワークアドミニストレータが選択した予定インストール時間が来ると、プロセッサの制御下で、インストールコマンドが、ネットワークインターフェースによって、並列スレッドを介してグループ内のネットワークノードの少なくとも１つのサブグループに配布される。
【００７８】
本発明の他の一態様では、交換用ソフトウェアを用いてネットワークノードのグループをアップデートする方法は、有効ネットワークバンド幅を自動的に決定するステップと、上記有効ネットワークバンド幅に少なくとも部分的に基づいて、ソフトウェアアップデートパッケージが配布される並列スレッドの数を自動的に決定するステップとを含む。
【００７９】
いくつかの実施形態では、上記方法は、決定された並列スレッドの数に少なくとも部分的に基づいて、ソフトウェアアップデートパッケージを、並列スレッドを介してネットワークノードのグループに配布するために必要な配布時間を自動的に決定するステップをさらに含む。
【００８０】
いくつかの実施形態では、上記方法は、上記配布時間に少なくとも部分的に基づいて、並列スレッドを介してソフトウェアアップデートパッケージを配布する開始時間を自動的に決定するステップをさらに含む。
【００８１】
本発明は、他の実施の形態においても、本発明の原理または本質的な特徴から逸脱することなく実施可能であることは、当業者には明らかであろう。例えば、主としてＭＦＰのグループ上のソフトウェアをアップデートすることに関して本発明を説明してきたが、本発明は、サーバ、ルータ、スイッチ、および、クライアントといった、他のタイプのネットワークノードのグループ上のソフトウェアをアップデートすることにも適用可能である。従って、本明細書は、あらゆる点で、説明のためのものであって、決して限定するためのものであると見做されるものではない。つまり、本発明は上述した実施形態に限定されるものではなく、特許請求の範囲に示した範囲で種々の変更が可能である。すなわち、特許請求の範囲に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００８２】
本発明は、交換用ソフトウェア用いてネットワークノードのグループをアップデートするサーバ装置に利用することができる。
【図面の簡単な説明】
【００８３】
【図１】本発明に係る一実施形態における通信システムを示す図である。
【図２】図１のソフトウェアアップデートサーバをさらに詳細に示す図である。
【図３】本発明に係る一実施形態における、スレッドによるソフトウェアアップデートパッケージのＭＦＰグループへの配布を行う開始時間を決定する方法を示す図である。
【図４】本発明に係る一実施形態における、ソフトウェアアップデートパッケージをＭＦＰグループに並列スレッドを介して配布する方法を示す図である。
【図５】本発明に係る一実施形態における、ソフトウェアアップデートをＭＦＰグループにインストールする方法を示す図である。
【符号の説明】
【００８４】
１１０  ソフトウェアアップデートサーバ（ソフトウェアアップデートサーバ装置）
１２０，１２０Ａ〜１２０Ｎ  ＭＦＰ（ネットワークノード）
１３０  通信ネットワーク（ネットワーク）
１４０  ネットワーク管理ステーション
２１０  ネットワークインターフェース
２２０  プロセッサ（制御部）
２３０  メモリ
２４０  アップデートマネージャ
２５０  ＭＦＰデータベース
２６０  ソフトウェアアップデートパッケージ
【図１】
2009146403.tif 000003
【図２】
2009146403.tif 000004
【図３】
2009146403.tif 000005
【図４】
2009146403.tif 000006
【図５】
2009146403.tif 000007