(57)【特許請求の範囲】
【請求項１】
更新対象となるプログラムを記憶した第１の記憶部と、
前記第１の記憶部に記憶されている前記プログラムとの組み合わせで実行される他のプログラムを記憶した第２の記憶部と、
前記第１の記憶部に記憶されている前記プログラムの版別に、前記版のプログラムと動作保証されている前記他のプログラムの版を表す動作保証情報を記憶した第３の記憶部と、
前記第１の記憶部に記憶されている前記プログラムの更新用データを保持している情報処理装置から該更新用データを取得して前記第１の記憶部に記憶されている前記プログラムを更新する更新部と、
前記更新部が前記第１の記憶部に記憶されている前記プログラムを更新した場合に、前記動作保証情報を参照して、前記更新部による更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されているか否か判定する判定部と、
前記更新部による更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されていないと前記判定部が判定した場合に、該他のプログラムの更新用データを保持している情報処理装置から該他のプログラムの更新用データを取得して該他のプログラムを更新する他の更新部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の記憶部には、プログラムを格納するための領域が複数、確保され、
前記更新部は、前記第１の記憶部における、現在、前記更新対象となるプログラムが記憶されている領域とは異なる領域に前記更新部による更新後のプログラムを格納する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１の記憶部に記憶されているプログラムの更新用データを保持している前記情報処理装置から取得される更新管理情報であって前記第１の記憶部に記憶されているプログラムの版を表す該更新管理情報に基づいて行われる、前記第１の記憶部に記憶されているプログラムを更新すべきか否かの判定において、更新すべきと判定された場合に、前記更新部は、前記第１の記憶部に記憶されているプログラムの更新を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
他の情報処理装置と通信を行うための通信部と、
前記更新部が前記第１の記憶部に記憶されているプログラムを更新した場合に、前記通信部に前記更新管理情報を送信させ、送信させた前記更新管理情報を受信した他の情報処理装置からの要求に応じ、前記第１の記憶部に記憶されているプログラムの更新用データを前記通信部に送信させる更新管理部と、
を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１の記憶部に記憶されているプログラムの更新が有効か否かを表す設定情報を記憶した第４の記憶部を更に有し、
前記更新部は、前記第１の記憶部に記憶されているプログラムの更新が有効であることを前記設定情報が表している場合に、前記第１の記憶部に記憶されているプログラムの更新を行う、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
第１の記憶部に記憶されているプログラムであって更新対象である該プログラムの更新用データを保持している情報処理装置から該更新用データを取得して該更新対象である該プログラムを更新し、
前記第１の記憶部に記憶されている前記プログラムを更新した場合に、更新後のプログラムの版が、第２の記憶部に記憶されている他のプログラムであって前記第１の記憶部に記憶されている前記プログラムとの組み合わせで実行される該他のプログラムと動作保証されているか否かの判定を、前記第１の記憶部に記憶されている前記プログラムの版別に、前記版のプログラムと動作保証されている該他のプログラムの版を表す動作保証情報であって第３の記憶部に記憶されている該動作保証情報を参照して行い、
前記判定において前記更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されていないと判定された場合に、該他のプログラムの更新用データを保持している情報処理装置から該他のプログラムの更新用データを取得して該他のプログラムを更新する、
ことを特徴とする、情報処理装置が行うプログラム更新方法。
【請求項７】
第１の記憶部に記憶されているプログラムであって更新対象である該プログラムの更新用データを保持している情報処理装置から該更新用データを取得して該更新対象である該プログラムを更新し、
前記第１の記憶部に記憶されている前記プログラムを更新した場合に、更新後のプログラムの版が、第２の記憶部に記憶されている他のプログラムであって前記第１の記憶部に記憶されている前記プログラムとの組み合わせで実行される該他のプログラムと動作保証されているか否かの判定を、前記第１の記憶部に記憶されている前記プログラムの版別に、前記版のプログラムと動作保証されている該他のプログラムの版を表す動作保証情報であって第３の記憶部に記憶されている該動作保証情報を参照して行い、
前記判定において前記更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されていないと判定された場合に、該他のプログラムの更新用データを保持している情報処理装置から該他のプログラムの更新用データを取得して該他のプログラムを更新する、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、情報処理装置間の通信により、各情報処理装置にプログラムの更新を行わせるための技術に関する。
【背景技術】
【０００２】
情報処理装置（コンピュータ）に実行させるプログラムの大部分は、機能の追加、不具合の修正、等のために随時、更新される。更新が行われるプログラムは、版（バージョン）で管理され、更新されたプログラムには、識別情報として版番（バージョン番号）が割り当てられる。それにより、プログラムは、版番により、更新内容、及び版間の新旧、等を特定できるようになっている。以降、版番は「版数」と表記する。【０００３】
プログラムの更新により、情報処理装置が実行する同じプログラムが更新の対象となる。情報処理装置が実行するプログラムの更新には、最近ではネットワークを用いることが増えている。プログラムの更新は、それまでのプログラム全体を更新後のプログラム全体と置き換えるか、或いはそれまでのプログラムのなかで置き換えるべき一部分（差分）を置き換えることで行われる。【０００４】
更新するプログラムによっては、多くの情報処理装置でプログラムを迅速に更新させなければならない場合がある。そのプログラムとは、例えばサーバとして用いられる情報処理装置に実行させるプログラムである。【０００５】
プログラムを更新すべき情報処理装置が多い場合、管理者が個別に情報処理装置のプログラムを更新することは、負担が大きく、且つ時間がかかる。このことから、従来の情報処理装置のなかには、ネットワークを介した通信により、プログラムの更新を自律的に行えるものがある。【０００６】
この従来の情報処理装置は、自身がプログラムを更新した場合、ネットワークを介して、更新後のプログラムの版数を不特定の情報処理装置を対象に通知する。この通知を受信した他の従来の情報処理装置は、通知された版数が、現在、使用しているプログラムの版数より新しい場合、版数を通知した従来の情報処理装置に対し、更新後のプログラムのダウンロードを要求して、プログラムを更新する。そのようにしてプログラムを更新した他の従来の情報処理装置は、プログラムをダウンロードした従来の情報処理装置と同様に、更新後のプログラムの版数を不特定の情報処理装置を対象に通知する。この結果、従来の情報処理装置を複数台ネットワークに接続したシステムでは、１台の従来の情報処理装置でプログラムを更新すると、他の全ての従来の情報処理装置がプログラムを更新する。【０００７】
サーバに実行させるアプリケーション・プログラム（以降「アプリケーション」と略記）は、そのサーバを利用するユーザによって異なる。また、プログラムの更新に対する考え方もユーザによって異なるのが普通である。例えばファームウェアに存在する不具合が判明し、その不具合を修正した版のファームウェアを新たに配布されたとしても、その不具合を問題としないユーザはファームウェアの更新を望むとは限らない。新しい版のファームウェアに何らかの影響を及ぼす不具合の存在を恐れるユーザは、そのファームウェアの更新を望まない可能性が高い。このようなユーザの存在を考慮する場合、プログラムを更新すべきでない情報処理装置のプログラムの更新は行わないようにすることも重要と思われる。【０００８】
情報処理装置の多くは、ファームウェア、及びＯＳ（Operating System）が実行される。文書の作成、或いは数値計算、等の或る特定の目的のために設計されたアプリケーション・ソフトウェアは、ファームウェア上、或いはＯＳ上で動作する。このことから、プログラムの更新は、情報処理装置で実行されている他のプログラムを考慮して、各プログラムが動作保証される組み合わせとなるように行う必要がある。このことから、従来の情報処理装置のなかには、ネットワークを介して接続された他の情報処理装置における何れかのプログラムの更新により、各プログラムが動作保証されない組み合わせとなるように支援するものがある。【０００９】
そのような支援が可能な従来の情報処理装置は、サーバとして設置され、各プログラムの動作保証される組み合わせを表すテーブルを格納している。それにより、接続されたパーソナルコンピュータ（ＰＣ）で何れかのプログラムが更新される場合、そのテーブルが表す組み合わせとなるように、必要に応じて他のプログラムも更新させるようになっている。【００１０】
この従来の情報処理装置に制御されるプログラムの更新を行わせる場合、ＰＣのユーザは、更新のための専用のソフトウェアをダウンロードし、そのソフトウェアによる問い合わせに回答しなければならない。そのため、プログラムを更新すべきＰＣの台数が多い場合、ユーザが行う操作は非常に面倒なものとなる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−９５９５０号公報
【特許文献２】特開２００９−２３０３９８号公報
【特許文献３】特開平８−２４９１６３号公報
【特許文献４】特開平８−８３２２９号公報
【特許文献５】特開２００１−１０９６１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
１側面では、本発明は、プログラムを更新すべき情報処理装置のみに、そのプログラムの更新を自律的に行わせるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明を適用した１システムは、更新対象となるプログラムを記憶した第１の記憶部と、前記第１の記憶部に記憶されている前記プログラムとの組み合わせで実行される他のプログラムを記憶した第２の記憶部と、前記第１の記憶部に記憶されている前記プログラムの版別に、前記版のプログラムと動作保証されている前記他のプログラムの版を表す動作保証情報を記憶した第３の記憶部と、前記第１の記憶部に記憶されている前記プログラムの更新用データを保持している情報処理装置から該更新用データを取得して前記第１の記憶部に記憶されている前記プログラムを更新する更新部と、前記更新部が前記第１の記憶部に記憶されている前記プログラムを更新した場合に、前記動作保証情報を参照して、前記更新部による更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されているか否か判定する判定部と、前記更新部による更新後のプログラムの版が前記第２の記憶部に記憶されている前記他のプログラムと動作保証されていないと前記判定部が判定した場合に、該他のプログラムの更新用データを保持している情報処理装置から該他のプログラムの更新用データを取得して該他のプログラムを更新する他の更新部と、を有する。
【発明の効果】
【００１４】
本発明を適用した１システムでは、ＣＰＵパッケージ（演算処理装置）に障害が発生したとしても、その障害に伴う運用状態の低下をより抑えることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態による情報処理装置の構成例、及びその情報処理装置を採用したネットワークシステムの構成例を説明する図である。
【図２】システム管理ボードの構成例を説明する図である。
【図３】システムボードの構成例を説明する図である。
【図４】保証ファーム版数互換性テーブルの構成例を説明する図である。
【図５】本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの更新例を説明する図である。
【図６】プログラムを更新したサーバ、及びプログラムを更新するサーバ別に、システム管理ボード、及びシステムボードが実行する処理を表す図である。
【図７】更新管理処理のフローチャートである。
【図８】更新管理処理のフローチャートである（続き）。
【図９】ＭＭＢ更新処理のフローチャートである。
【図１０】ＭＭＢ更新処理のフローチャートである（続き）。
【図１１】ＳＢ更新処理のフローチャートである。
【図１２】ＳＢ更新処理のフローチャートである（続き）。
【図１３】プログラムを更新したサーバ、及びプログラムを更新するサーバの間で行われるデータの送受信例を表すシーケンス図である。
【図１４】本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの他の更新例を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理装置の構成例、及びその情報処理装置を採用したネットワークシステムの構成例を説明する図である。
【００１７】
本実施形態による情報処理装置は、サーバ１（１−０〜１−３）として実現されている。ネットワークシステムは、図１に表すように、各サーバ１を２つのネットワーク３、４にそれぞれ接続させた構成となっている。ネットワーク３には、各サーバ１の他に、管理者が使用する管理端末装置２が接続されている。ネットワーク３は、主に管理用に使用され、ネットワーク４は、サーバ１が本来の処理を実行するために使用される。
【００１８】
各サーバ１は、２つのシステム管理ボード（ＭＭＢ：ManageMent Board）１１と、複数のシステムボード（ＳＢ）１２と、各システム管理ボード１１と各システムボード１２間を接続するネットワーク１３とを備えている。
【００１９】
システム管理ボード１１は、サーバ１全体を管理するための処理モジュールであり、各システムボード１２を制御する。障害への高い耐性を実現するために、システム管理ボード１１は２重化されている。
【００２０】
システム管理ボード１１は、図１に表すように、外部通信部１１１、制御部１１２、内部通信部１１３、及び記憶部１１４を備えている。
【００２１】
外部通信部１１１は、ネットワーク３を介した通信を可能にする。内部通信部１１３は、ネットワーク１３を介した通信を可能にする。制御部１１２は、記憶部１１４に記憶されたファームウェアを実行することにより、外部通信部１１１、或いは内部通信部１１３を介したデータの送受信を必要に応じて行い、状況に応じた制御を行う。
【００２２】
記憶部１１４には、制御部１１２が実行するファームウェアを格納する領域であるＭＭＢ保存領域１１５が２つ確保されている。制御部１１２は、２つのＭＭＢ保存領域１１５（１１５−１、１１５−２）のうちの何れかに格納されているファームウェアを実行する。また、記憶部１１４には、ファームウェア版数互換テーブル１１６を最大２つ記憶されると共に、更新フラグ１１７が記憶されている。更新フラグ１１７、及びファームウェア版数互換テーブル１１６についての詳細は後述する。
【００２３】
図２は、システム管理ボードの構成例を説明する図である。図２に表すように、システム管理ボード１１は、ＣＰＵ（Central Processing Unit）２０１、複数のメインメモリ２０２、２つのＬＡＮ（Local Area Network）インタフェース２１０、２２０、２つのスイッチングハブ２１１、２２１、及び２つの不揮発性のメモリ２３１（２３１−１、２３１−２）を備えている。
【００２４】
２つのメモリ２３１は、図１に表す記憶部１１４の構成要素である。各メモリ２３１には、ファームウェア２４０が格納されるＭＭＢ保存領域１１５が確保され、保証ファーム互換性テーブル１１６が格納される。更新フラグ１１７は、２つのメモリ２３１のうちの一方にのみ、格納されるか、或いは２つのメモリ２３１に格納される。
【００２５】
図１に表す制御部１１２は、ＣＰＵ２０１、及び複数のメインメモリ２０２が構成要素となっている。ＣＰＵ２０１は、２つのメモリ２３１のうちの一方に格納されたファームウェア２４０をメインメモリ２０２に読み出して実行することにより、サーバ１全体の管理を行う。
【００２６】
ＬＡＮインタフェース２１０、及びスイッチングハブ２１１は、外部通信部１１１の構成要素である。ＬＡＮインタフェース２２０、及びスイッチングハブ２２１は、内部通信部１１３の構成要素である。ＣＰＵ２０１は、スイッチングハブ２１１、及び２２１を介してＬＡＮインタフェース２１１、及び２２１を制御し、ネットワーク３、及び１３を介した通信を行う。
【００２７】
各メモリ２３１に格納されたファームウェア２４０は、更新対象となるプログラムである。本実施形態では、ファームウェア２４０の実行中もファームウェア２４０の更新が行えるように、ファームウェア２４０を格納するＭＭＢ保存領域１１５を２つ確保している。それにより、例えばＣＰＵ２０１がメモリ２３１−１に格納されたファームウェア２４０を実行している場合、新しいファームウェア２４０はメモリ２３１−２に格納させる。逆にＣＰＵ２０１がメモリ２３１−２に格納されたファームウェア２４０を実行している場合、新しいファームウェア２４０はメモリ２３１−１に格納させる。起動の際にＣＰＵ２０１が読み出すのは、最新のファームウェア２４０である。
【００２８】
一方、システムボード１２は、サーバ１によるサービスを提供するための処理モジュールである。システムボード１２は、図１に表すように、制御部１２２、内部通信部１２３、及び記憶部１２４を備えている。
【００２９】
内部通信部１２３は、ネットワーク１３を介した通信を可能にする。制御部１２２は、記憶部１２４に確保された２つのＢＩＯＳ（Basic Input/Output System）保存領域１２５（１２５−１、１２５−２）のうちの一方に格納されているＢＩＯＳ、及びファームウェアを実行する。
【００３０】
図３は、システムボードの構成例を説明する図である。図３に表すように、システムボード１２は、ＣＰＵ３０１、複数のメインメモリ３０２、ノースブリッジチップ３０３、サウスブリッジチップ３０４、ＭＰＵ（Micro-Processing Unit）３０５、メインメモリ３０６、ＬＡＮインタフェース３１０、及び２つの不揮発性のメモリ３２１（３２１−１、３２１−２）を備えている。
このＬＡＮインタフェース３１０は、図１に表す内部通信部１２３の構成要素である。
【００３１】
２つのメモリ３２１は、図１に表す記憶部１２４の構成要素である。各メモリ３２１には、ＢＩＯＳ３３１、及びファームウェア３３２が格納される。それにより、各メモリ３２１は、それぞれＢＩＯＳ保存領域１２５となっている。
【００３２】
図１に表す制御部１２２は、ＣＰＵ３０１、複数のメインメモリ３０２、ノースブリッジチップ３０３、サウスブリッジチップ３０４、ＭＰＵ３０５、及びメインメモリ３０６が構成要素となっている。ＣＰＵ３０１は、２つのメモリ３２１のうちの何れかに格納されているＢＩＯＳ３３１を実行し、ＭＰＵ３０５は、ＣＰＵ３０１が実行するＢＩＯＳ３３１が格納されているメモリ３２１からファームウェア３３２を読み出して実行する。このことから、制御部１２２は、ＢＩＯＳ３３１、及びファームウェア３３２を実行するようになっている。
【００３３】
ＣＰＵ３０１は、ＢＩＯＳ３３１を起動した後、更にＯＳ（Operating System）、及びアプリケーションを起動させる。ＯＳ、及びアプリケーションを格納したストレージは、システムボード１２に搭載されていても良いが、別の処理モジュールに搭載されていても良い。そのようにストレージの搭載場所は特に限定されるものではないことから、ここでは図示していない。ＯＳ、アプリケーションも共に、本実施形態を説明するうえで重要ではない。
【００３４】
ＣＰＵ３０１は、アプリケーションを実行することにより、サーバ１によるサービスの提供を実現させる。一方、ＭＰＵ３０５は、ファームウェア３３２の実行により、システムボード１２の管理に係わる処理を実行する。このことから、ＭＰＵ３０５は、例えばＢＭＣ（Baseboard Management Controller）の構成要素である。
【００３５】
本実施形態では、システムボード１２で実行されるＢＩＯＳ３３１、及びファームウェア３３２も共に更新対象となっている。そのため、上記システム管理ボード１１と同様に、各ＢＩＯＳ保存領域１２５として各メモリ３２１を設け、各メモリ３２１にＢＩＯＳ３３１、及びファームウェア３３２を格納している。
【００３６】
システム管理ボード１１は、通信を行い、各システムボード１２を制御する。そのため、システム管理ボード１１で実行されるファームウェア２４０と、システムボード１２で実行されるＢＩＯＳ３３１，及びファームウェア３３２とは、動作保証された組み合わせとする必要がある。上記保証ファーム版数互換性テーブル１１６は、ファームウェア２４０、ＢＩＯＳ３３１，及びファームウェア３３２が動作保証の組み合わせか否か否かを確認するための情報である。
【００３７】
図４は、保証ファーム版数互換テーブルの構成例を説明する図である。図４に表すように、保証ファーム版数互換テーブル１１６には、エントリ毎に、保証組合せ番号、システム管理ボード１１のファームウェア２４０の版数、システムボード１２のＢＩＯＳ３３１、及びファームウェア３３２の各版数が格納される。
【００３８】
本実施形態では、プログラムの更新は、システム管理ボード１１のファームウェア２４０→システムボード１２のＢＩＯＳ３３１、及びファームウェア３３２、の順序で行うようにしている。更新フラグ１１７は、プログラムの更新が有効か否かを表す設定情報である。本実施形態では、プログラムの更新の有効を更新フラグ１１７が表している場合に、ファームウェア２４０の更新を必要に応じて行うようにしている。それにより、本実施形態では、サーバ１のなかでプログラムの更新の対象としないサーバ１を個別に指定できるようにしている。
【００３９】
図１に表すサーバ１がそれぞれ異なるユーザ（クライアント）が利用するような場合、各サーバ１にはそれぞれ異なるアプリケーションが実行されるのが普通である。例え同じアプリケーションが複数台のサーバ１で実行されるとしても、版数、或いは仕様が異なることも多い。版数、或いは仕様が異なることによって、例え不具合が存在している同じＢＩＯＳ３３１を実行していたとしても、その不具合が表面化しない可能性がある。不具合が表面化していないユーザは、不具合を修正した版のＢＩＯＳ３３１への更新により、別の不具合が表面化する危険性を重視する場合がある。このようなことから、判明した不具合を修正した版のＢＩＯＳ３３１が配布されたとしても、全てのユーザがＢＩＯＳ３３１の更新を望むとは限らない。それにより、本実施形態では、プログラムの更新対象とするサーバ１を更新フラグ１１７により予め設定するようにして、望まれない更新を行わないようにしている。
【００４０】
プログラムの更新が望まれない理由は、上記のようなものに限定されない。主な理由としては、他に、新たに配布された版のプログラムの信頼性が確認されるまで、そのプログラムの更新を行わないというものがある。
【００４１】
上記更新フラグ１１７の各サーバ１への格納（更新を含む）は、管理端末装置２を用いて行うようにしても良い。或いはサーバ１毎に、更新フラグ１１７の内容を切り換え可能なスイッチ等を設け、そのスイッチへの操作により、所望の内容の更新フラグ１１７を格納させるようにしても良い。
【００４２】
管理端末装置２を操作する管理者は、各サーバ１に設定すべき更新フラグ１１７を設定した後、システム管理ボード１１のファームウェア２４０、必要に応じて更にシステムボード１２のＢＩＯＳ３３１，及びファームウェア３３２のうちの少なくとも一方を更新する。この更新を行う方法は、特に限定されない。ここでは説明上、便宜的に、システムボード１２のＢＩＯＳ３３１、及びファームウェア３３２も共に更新されたと想定する。
【００４３】
ファームウェア２４０の更新により、サーバ１はシステム管理ボード１１を含め再起動される。再起動したシステム管理ボード１１は、更新されたファームウェア２４０の版数を表すＭＭＢファーム情報を格納したメッセージをブロードキャストすることにより、他のサーバ１に対し、ＭＭＢファーム情報を通知する。
【００４４】
メッセージを受信したサーバ１のシステム管理ボード１１は、そのメッセージ中のＭＭＢファーム情報が表す版数が現在、実行中のファームウェア２４０の版数より新しく、且つ更新フラグ１１７が更新の有効を表していた場合、応答としてファームウェア２４０の更新用データを要求する。それにより、メッセージを受信したサーバ１のシステム管理ボード１１は、ファームウェア２４０を更新する。
【００４５】
ファームウェア２４０の更新は、上記のように、現在、実行中のファームウェア２４０が格納されていないメモリ２３１に、更新用データから得られるファームウェア２４０を格納することで行われる。ここでは、更新用データは、ファームウェア２４０全体の圧縮データと想定する。その圧縮データは以降「ファームウェアデータ」或いは単に「データ」と表記する。これは、ＢＩＯＳ３３１、及びファームウェア３３２でも同様とする。
【００４６】
メッセージ中のＭＭＢファーム情報が表す版数が現在、実行中のファームウェア２４０の版数より新しくない、或いは更新フラグ１１７が更新の有効を表していない場合、サーバ１のシステム管理ボード１１は応答を送信しない。それにより、ファームウェア２４０を更新する必要がないか、或いはファームウェア２４０を更新すべきでないサーバ１では、ファームウェア２４０は更新されない。
【００４７】
ファームウェア２４０を更新したシステム管理ボード１１は、配下の何れかのシステムボード１２に対し、ＢＩＯＳ３３１、及びファームウェア３３２の各版数を確認し、保証ファーム版数互換性テーブル１１６を参照する。それにより、更新後のファームウェア２４０、ＢＩＯＳ３３１、及びファームウェア３３２が動作保証されている組合せか否か確認する。その結果、動作保証されていない組合せであることが判明した場合、システム管理ボード１１は、ファームウェアデータを要求したサーバ１に対し、ＢＩＯＳ３３１、及びファームウェア３３２の各データを要求する。システム管理ボード１１は、その要求により受信したＢＩＯＳ３３１、及びファームウェア３３２の各データを、各システムボード１２に送信することで、各システムボード１２にＢＩＯＳ３３１、及びファームウェア３３２を更新させる。
【００４８】
そのようにしてファームウェア２４０、ＢＩＯＳ３３１、及びファームウェア３３２を更新したサーバ１のシステム管理ボード１１は、再起動の後、更新されたファームウェア２４０の版数を表すＭＭＢファーム情報を格納したメッセージをブロードキャストする。それにより、１台のサーバ１でプログラムを更新すると、その更新は直接的、或いは間接的に、他のサーバ１に反映される。この結果、プログラムを更新すべき全てのサーバ１に必要なプログラムの更新を行わせることができる。管理者は、各サーバ１に対する更新フラグ１１７の設定、及び１台のサーバ１に対するプログラムの更新を行えば良いことから、各サーバ１に対する必要なプログラムの更新を容易に行わせることができる。
【００４９】
本実施形態では、ファームウェア２４０のデータの送信時に、最新の保証ファーム版数互換性テーブル１１６を共に送信するようにしている。それにより、ファームウェア２４０のデータを受信したサーバ１のシステム管理ボード１１は、そのデータと共に送信された保証ファーム版数互換性テーブル１１６を参照する。
【００５０】
最新の版数のプログラムと動作保証される他のプログラムの版数を予め予想するのは困難であることから、保証ファーム版数互換性テーブル１１６は、何れかの１つのプログラムの更新により、更新対象とするサーバ１に格納させる必要がある。しかし、保証ファーム版数互換性テーブル１１６をファームウェアデータと共にサーバ１に送信させることで、管理者が各サーバ１に保証ファーム版数互換性テーブル１１６を予め格納させる必要性が回避される。保証ファーム版数互換性テーブル１１６は、直接、プログラムを更新する１台のサーバ１に格納させれば良い。そのため、保証ファーム版数互換性テーブル１１６をファームウェアデータと共にサーバ１に送信させることで、管理者の負担をより軽減させることができる。
【００５１】
図５は、本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの更新例を説明する図である。
【００５２】
図５に表す２つのクローズドネット５０（５０−１、５０−２）は、例えばデータセンターであり、多くのサーバ１が設置されている。この２つのクローズドネット５０は、例えば不図示のＷＡＮ（Wide Area Network）によって接続される。図５に表す例は、管理者によってサーバ１−１１のプログラムが更新され、その更新によって、クローズドネット５０−１では２台のサーバ１−１２及び１−１３のプログラムが更新され、クローズドネット５０−２では、１台のサーバ１−２１のプログラムが更新された状態を表している。
【００５３】
クローズドネット５０−１のサーバ１−１４〜１−１７の更新フラグ１１７が更新の有効を表していた場合、これらサーバ１−１４〜１−１７のプログラムも随時、更新されることとなる。同様に、クローズドネット５０−２のサーバ１−２２〜１−２７の更新フラグ１１７が更新の有効を表していた場合、これらサーバ１−２２〜１−２７のプログラムも随時、更新されることとなる。
【００５４】
図６は、プログラムを更新したサーバ、及びプログラムを更新するサーバ別に、システム管理ボード、及びシステムボードが実行する処理を表す図である。次に図６、更には図７〜図１３を参照し、プログラムを更新したサーバ１−１、及びそのサーバ１−１によってプログラムを更新するサーバ１−２の動作について詳細に説明する。図６では、システム管理ボード１１は「ＭＭＢ」、システムボード１２は「ＳＢ」と表記している。
【００５５】
サーバ１−１のシステム管理ボード１１は、起動、或いは再起動により、他のサーバ１にプログラムを更新させるための更新管理処理を実行する（ＳＭ１）。この更新管理処理の実行時、サーバ１−１の一つのシステムボード１２は、システム管理ボード１１からの要求に対応するための処理を行う（ＳＳ１）。
【００５６】
一方、サーバ１−２のシステム管理ボード１１は、サーバ１−１のシステム管理ボード１１による更新管理処理の実行に対応して、プログラムの更新を必要に応じて行うためのＭＭＢ更新処理を実行する（ＳＭ２）。このＭＭＢ更新処理の実行時、サーバ１−２の１つのシステムボード１２は、ＢＩＯＳ３３１、及びファームウェア３３２を必要に応じて更新するためのＳＢ更新処理を実行する（ＳＳ２）。
【００５７】
サーバ１間のデータの送受信は、システム管理ボード１１間で行われる。システムボード１２から他のサーバ１に送信すべきデータは、システム管理ボード１１、及びネットワーク３を介して行われる。ＳＭ１の更新管理処理、及びＳＭ２のＭＭＢ更新処理は、共に、システム管理ボード１１のＣＰＵ２０１が、ファームウェア２４０を実行することで実現される。ＳＳ１の対応する処理、及びＳＳ２のＳＢ更新処理は、共に、例えばＭＰＵ３０５がファームウェア３３２を実行することで実現される。
【００５８】
以降は、図７〜図１３を参照して、プログラムを更新したサーバ、及びプログラムを更新するサーバの動作について詳細に説明する。
【００５９】
図１３は、プログラムを更新したサーバ、及びプログラムを更新するサーバの間で行われるデータの送受信例を表すシーケンス図である。図１３は、図７〜図１２の説明と併せて説明する。
【００６０】
図７及び図８は、ＳＭ１として実行される更新管理処理のフローチャートである。
次に図７及び図８を参照し、この更新管理処理について詳細に説明する。
【００６１】
この更新管理処理は、上記のように、他のサーバ１にプログラムを更新させるために実行される処理である。プログラムを更新する対象となるサーバ１の台数は、０〜メッセージを受信可能なサーバ１の台数の間である。図７及び図８では、理解を容易とするために、１台のサーバ１のプログラムを更新する場合を想定し、実行する処理の流れを表している。
【００６２】
先ず、ＣＰＵ２０１は、更新したファームウェア２４０の版数等を表すＭＭＢファーム情報を格納したメッセージを作成し、作成したメッセージをＬＡＮインタフェース２１０によりブロードキャストさせる（ＳＭ１１、図１３のシーケンスＳ１）。その後、ＣＰＵ２０１は、ＬＡＮインタフェース２１０による応答の受信を監視し、何れかのサーバ１から応答を受信したか否か判定する（ＳＭ１２）。何れかのサーバ１が応答を送信した場合、ＳＭ１２の判定はＹｅｓとなってＳＭ１３に移行する。何れのサーバ１も応答を送信していない場合、ＳＭ１２の判定はＮｏとなってＳＭ１９に移行する。
【００６３】
ＳＭ１９では、ＣＰＵ２０１は、規定時間を超えたか否か判定する。この規定時間は、他のサーバ１のプログラムの更新に限られた期間、対応するために設定された時間である。最初にＭＭＢファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間を超えていない場合、ＳＭ１９の判定はＮｏとなり、上記ＳＭ１１に戻る。それにより、ＣＰＵ２０１は、再度メッセージの送信を行う。一方、最初にＭＭＢファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間を超えている場合、ＳＭ１９の判定はＹｅｓとなり、ここで更新管理処理が終了する。
【００６４】
上記のように、応答を受信したサーバ１に対し、ファームウェア２４０のデータを送信する。ＳＭ１３では、ＣＰＵ２０１は、応答を受信したサーバ１にファームウェア２４０のデータを送信した実行回数が規定回数以下か否か判定する。その実行回数が規定回数以下であった場合、ＳＭ１３の判定はｙｅｓとなってＳＭ１４に移行する。その実行回数が規定回数を超えていた場合、ＳＭ１３の判定はＮｏとなり、ここで更新管理処理が終了する。その規定回数は、ファームウェア２４０の送信を無制限に行わないために設定された閾値である。
【００６５】
ＳＭ１４では、ＣＰＵ２０１は、応答を受信したサーバ１にファームウェア２４０のデータを送信させる（図１３のシーケンスＳ３）。次にＣＰＵ２０１は、ファームウェア２４０のデータの送信先のサーバ１から受信が正常終了した旨のメッセージを受信したか否か判定する（ＳＭ１５）。正常終了した旨のメッセージを受信した場合、ＳＭ１５の判定はＹｅｓとなって図８のＳＭ２１に移行する。正常終了した旨のメッセージを受信しなかった場合、ＳＭ１５の判定はＮｏとなってＳＭ１６に移行する。
【００６６】
ＳＭ１６では、ＣＰＵ２０１は、再送信を要求するメッセージを受信したか否か判定する。再送信を要求するメッセージを受信した場合、ＳＭ１６の判定はＹｅｓとなってＳＭ１７に移行する。再送信を要求するメッセージを受信しなかった場合、ＳＭ１６の判定はＮｏとなって上記ＳＭ１４に戻る。それにより、ＣＰＵ２０１は、ファームウェア２４０のデータを再度、送信させる。
【００６７】
ＳＭ１７では、ＣＰＵ２０１は、再送信を要求する旨のメッセージを同一のサーバ１（図７中「同一ＩＰ」と表記。ＩＰは、Internet Protocolの略記である）から規定回数以上、受信したか否か判定する。再送信を要求する旨のメッセージを同一のサーバ１から規定回数以上、受信した場合、ＳＭ１７の判定はＹｅｓとなり、次にＣＰＵ２０１は、再送信を要求する旨のメッセージを送信したサーバ１へのファームウェア２４０のデータの送信を停止させる（ＳＭ１８）。その後、上記ＳＭ１１に戻る。再送信を要求する旨のメッセージを同一のサーバ１から規定回数以上、受信していない場合、ＳＭ１７の判定はＮｏとなり、上記ＳＭ１４に戻る。
【００６８】
図８のＳＭ２１では、ＣＰＵ２０１は、サーバ１からＢＩＯＳ３３１、ファームウェア３３２の各データを要求するメッセージを受信したか否か判定する。そのメッセージを受信した場合、ＳＭ２１の判定はＹｅｓとなってＳＭ２２に移行する。そのメッセージを受信しなかった場合、ＳＭ２１の判定はＮｏとなって、図７のＳＭ１１に戻る。
【００６９】
ＳＭ２２では、ＣＰＵ２０１は、ＬＡＮインタフェース２２０を介して、１つのシステムボード１２にＢＩＯＳ３３１、及びファームウェア３３２の各データを要求して取得し、取得した各データをＬＡＮインタフェース２１０から送信する（図１３のシーケンスＳ６）。次にＣＰＵ２０１は、サーバ１から正常終了を表すメッセージを受信したか否か判定する（ＳＭ２３）。正常終了を表すメッセージを受信した場合、ＳＭ２３の判定はＹｅｓとなってＳＭ２４に移行する。正常終了を表すメッセージを受信しなかった場合、ＳＭ２３の判定はＮｏとなってＳＭ２５に移行する。
【００７０】
ＳＭ２４では、ＣＰＵ２０１は、規定時間に到達したか否か判定する。最初にＭＭＢファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間に到達していた場合、ＳＭ２４の判定はＹｅｓとなり、ここで更新管理処理が終了する。最初にＭＭＢファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間に到達していない場合、ＳＭ２４の判定はＮｏとなって図７のＳＭ１１に戻る。
【００７１】
ＳＭ２５では、ＣＰＵ２０１は、再送信を要求するメッセージを受信したか否か判定する。再送信を要求するメッセージを受信した場合、ＳＭ２５の判定はＹｅｓとなってＳＭ２６に移行する。再送信を要求するメッセージを受信しなかった場合、ＳＭ２５の判定はＮｏとなって上記ＳＭ２２に戻る。それにより、ＣＰＵ２０１は、ＢＩＯＳ３３１、及びファームウェア３３２の各データを再度、送信させる。
【００７２】
ＳＭ２６では、ＣＰＵ２０１は、再送信を要求する旨のメッセージを同一のサーバ１から規定回数以上、受信したか否か判定する。再送信を要求する旨のメッセージを同一のサーバ１から規定回数以上、受信した場合、ＳＭ２６の判定はＹｅｓとなり、次にＣＰＵ２０１は、再送信を要求する旨のメッセージを送信したサーバ１へのＢＩＯＳ３３１、及びファームウェア３３２の各データの送信を停止させる（ＳＭ２７）。その後、図７のＳＭ１１に戻る。再送信を要求する旨のメッセージを同一のサーバ１から規定回数以上、受信していない場合、ＳＭ２６の判定はＮｏとなり、上記ＳＭ２２に戻る。
【００７３】
上記ＳＭ２２では、ＣＰＵ２０１は、１つのシステムボード１２に対し、ＢＩＯＳ３３１、及びファームウェア３３２の各データを要求する。その要求を受信したシステムボード１２のＭＰＵ３０５は、実行中のファームウェア３３２を格納したメモリ３２１から、ファームウェア３３２、及びＢＩＯＳ３３１の各データを読み出し、読み出した各データをＬＡＮインタフェース３１０に送信させる。図６に表すＳＳ１の対応する処理では、システム管理ボード１１からの要求に従い、ＢＩＯＳ３３１、及びファームウェア３３２の各データをシステム管理ボード１１に送信する処理が行われる。
【００７４】
図９及び図１０は、ＳＭ２として実行されるＭＭＢ更新処理のフローチャートである。次に図９及び図１０を参照し、このＭＭＢ更新処理について詳細に説明する。
【００７５】
上記更新管理処理を実行するシステム管理ボード１１上のＣＰＵ２０１は、ＳＭ１でＭＭＢファーム情報を格納したメッセージをブロードキャストする。ＭＭＢ更新処理は、そのメッセージの受信を契機に実行される。
【００７６】
先ず、ＣＰＵ２０１は、受信したメッセージ中のＭＭＢファーム情報が表すサーバ１のモデルが同じ種類のプログラムを実行するモデルか否か判定する（ＳＭ５１）。メッセージを送信したサーバ１と更新対象とするプログラムの種類が一致する場合、ＳＭ５１の判定はＹｅｓとなってＳＭ５２に移行する。メッセージを送信したサーバ１と更新対象とするプログラムの種類が一致しない場合、ＳＭ５１の判定はＮｏとなり、ここでＭＭＢ更新処理が終了する。
【００７７】
ＳＭ５２では、ＣＰＵ２０１は、受信したメッセージ中のＭＭＢファーム情報が表すファームウェア２４０の版数が現在、実行中のファームウェア２４０の版数より新しいか否か判定する。メッセージを送信したサーバ１がより新しい版数のファームウェア２４０に更新していた場合、ＳＭ５２の判定はＹｅｓとなってＳＭ５３に移行する。メッセージを送信したサーバ１がより新しい版数のファームウェア２４０に更新していない場合、ＳＭ５２の判定はＮｏとなり、ここでＭＭＢ更新処理が終了する。
【００７８】
ＳＭ５３では、ＣＰＵ２０１は、更新設定は有効か否か判定する。更新フラグ１１７が更新の有効を表していた場合、ＳＭ５３の判定はＹｅｓとなってＳＭ５４に移行する。更新フラグ１１７が更新の有効を表していない場合、ＳＭ５３の判定はＮｏとなり、ここでＭＭＢ更新処理が終了する。
【００７９】
ＳＭ５４では、ＣＰＵ２０１は、メッセージを受信したサーバ１に対し、ＬＡＮインタフェース２１０を介して、ファームウェア２４０のデータを要求するメッセージを送信することで（図１３のシーケンスＳ２）、要求したデータを取得する。次にＣＰＵ２０１は、取得したデータから計算したチェックサムが、取得したデータ中のチェックサムと一致するか否か判定する（ＳＭ５５）。データを取得するまでの間にエラーが発生した場合、それらのチェックサムは不一致となることから、ＳＭ５５の判定はＮｏとなってＳＭ５６に移行する。データを取得するまでの間にエラーが発生していなかった場合、ＳＭ５５の判定はＹｅｓとなってＳＭ５７に移行する。
【００８０】
ＳＭ５６では、ＣＰＵ２０１は、チェックサムの不一致は規定回数以下か否か判定する。規定回数、ファームウェア２４０のデータを受信してもチェックサムが一致しなかった場合、ＳＭ５６の判定はＮｏとなり、ここでＭＭＢ更新処理が終了する。規定回数、ファームウェア２４０のデータを受信していない場合、ＳＭ５６の判定はＹｅｓとなって上記ＳＭ５４に戻る。それにより、ＣＰＵ２０１は、再度、ファームウェア２４０のデータの送信を要求する。
【００８１】
ＳＭ５７では、ＣＰＵ２０１は、受信したデータの展開を行い、ファームウェア２４０を復元し、復元したファームウェア２４０を、実行していないファームウェア２４０が格納されているメモリ２３１に書き込み、保証ファーム版数互換性テーブル１１６も同じメモリ２３１に書き込む。次にＣＰＵ２０１は、データの展開が正常に終了したか否か判定する（ＳＭ５８）。ファームウェア２４０を正常にメモリ２３１に書き込めた場合、ＳＭ５８の判定はＹｅｓとなって図１０のＳＭ５９に移行する。ファームウェア２４０を正常にメモリ２３１に書き込めなかった場合、ＳＭ５８の判定はＮｏとなって図１０のＳＭ６５に移行する。
【００８２】
ＳＭ５９では、ＣＰＵ２０１は、ＬＡＮインタフェース２１０に指示して、ファームウェア２４０のデータを送信したサーバ１に対し、更新成功を表すメッセージを送信させる（図１３のシーケンスＳ４）。次にＣＰＵ２０１は、ＬＡＮインタフェース２１０に指示して、管理端末装置２宛に、ファームウェア２４０の更新が成功した旨を通知させる（ＳＭ６０）。更新が成功した旨の通知は、例えばメールにより行うことができる。
【００８３】
次にＣＰＵ２０１は、１つのシステムボード１２に対し、ＬＡＮインタフェース２２０を用いて、ＢＩＯＳ３３１、及びファームウェア３３２の各版数の通知を要求し、その要求により通知される各版数を確認する（ＳＭ６１）。その確認後、ＣＰＵ２０１は、メモリ２３１に格納した保証ファーム版数互換性テーブル１１６を参照し、更新したファームウェア２４０、並びにシステムボード１２が実行するＢＩＯＳ３３１、及びファームウェア３３２の組合せが動作保証されているか否か判定する（ＳＭ６２）。ファームウェア２４０、ＢＩＯＳ３３１、及びファームウェア３３２が動作保証されていない組合せであった場合、ＳＭ６２の判定はＮｏとなってＳＭ６３に移行する。それらが動作保証されている組合せであった場合、ＳＭ６２の判定はＹｅｓとなり、ここでＭＭＢ更新処理が終了する。
【００８４】
ＳＭ６３では、ＣＰＵ２０１は、ＬＡＮインタフェース２１０を用いて、ファームウェア２４０のデータを受信したサーバ１に対し、ＢＩＯＳ３３１，及びファームウェア３３２の各データを要求するメッセージを送信させる（図１３のシーケンスＳ５）。そのメッセージを受信したサーバ１からＢＩＯＳ３３１、ファームウェア３３２の各データを受信すると、ＣＰＵ２０１は、ＬＡＮインタフェース２２０を用いて、受信した各データを各システムボード１２に送信させ、更新を指示する。更新を指示した後、ＣＰＵ２０１は、何れかのシステムボード１２からＢＩＯＳ３３１、及びファームウェア３３２の各データの送信が要求されたか否か判定する（ＳＭ６４）。
【００８５】
各システムボード１２のＭＰＵ３０５は、送信されたＢＩＯＳ３３１，及びファームウェア３３２の各データから復元したＢＩＯＳ３３１、及びファームウェア３３２を、実行していないファームウェア３３２が格納されているメモリ３２１に書き込む。ＭＰＵ３０５は、ＬＡＮインタフェース３１０を用いて、そのようにして行ったＢＩＯＳ３３１，及びファームウェア３３２の更新結果をシステム管理ボード１１に通知する。ＢＩＯＳ３３１、及びファームウェア３３２のうちの少なくとも一方を正常にメモリ３２１に格納できなかったＭＰＵ３０５は、ＢＩＯＳ３３１、及びファームウェア３３２の各データの送信をシステム管理ボード１１に要求する。ＢＩＯＳ３３１、及びファームウェア３３２を正常にメモリ３２１に格納できたＭＰＵ３０５は、更新成功をシステム管理ボード１１に通知する。
【００８６】
このようなことから、何れかのシステムボード１２がＢＩＯＳ３３１、或いはファームウェア３３２を適切に更新できなかった場合、ＳＭ６４の判定はＹｅｓとなって上記ＳＭ６３に戻る。その場合、ＣＰＵ２０１は、ＢＩＯＳ３３１、或いはファームウェア３３２を適切に更新できなかったシステムボード１２にのみ、ＢＩＯＳ３３１、及びファームウェア３３２の各データを送信する。ＢＩＯＳ３３１、及びファームウェア３３２を適切に更新できなかったシステムボード１２が存在しない場合、ＳＭ６４の判定はＮｏとなり、ＢＩＯＳ３３１、及びファームウェア３３２の更新成功を表すメッセージをサーバ１に送信した(図１３のシーケンスＳ７)後、ＭＭＢ更新処理が終了する。
【００８７】
図９のＳＭ５８の判定がＮｏとなって移行する図１０のＳＭ６５では、ＣＰＵ２０１は、展開異常が規定回数以上となったか否か判定する。規定回数以上、展開異常が継続して発生した場合、ＳＭ６５の判定はＹｅｓとなってＳＭ６６に移行する。規定回数以上、展開異常が継続して発生していない場合、ＳＭ６５の判定はＮｏとなって図９のＳＭ５７に戻る。
【００８８】
ＳＭ６６では、ＣＰＵ２０１は、ＬＡＮインタフェース２１０を用いて、管理端末装置２宛に、ファームウェア２４０の更新が成功しない異常が発生している旨を通知させる。更新が成功しない異常が発生している旨の通知は、例えばメールにより行うことができる。そのような通知を行った後、ＭＭＢ更新処理が終了する。
【００８９】
上記ＳＭ６２の判定がＹｅｓとなった場合、ＢＩＯＳ３３１、及びファームウェア３３２の各版数の通知を要求したシステムボード１２に対し、ＢＩＯＳ３３１、及びファームウェア３３２の更新が必要でない旨が通知される。ＳＭ６２の判定がＮｏとなった場合、各システムボード１２に対し、ＢＩＯＳ３３１、及びファームウェア３３２の更新が必要な旨が通知される。それにより、  ＳＭ６３でのＢＩＯＳ３３１，及びファームウェア３３２の各データの要求は、何れかのシステムボード１２からの要求によって行われる。
【００９０】
図１１及び図１２は、ＳＳ２として実行されるＳＢ更新処理のフローチャートである。最後に図１１及び図１２を参照し、このＳＢ更新処理について詳細に説明する。
【００９１】
図１０のＳＭ６１では、ＢＩＯＳ３３１、及びファームウェア３３２の各版数の通知の要求が１つのシステムボード１２に対して行われる。図１１及び図１２に表すＳＢ更新処理は、その通知の要求を契機に、ＭＰＵ３０５が実行する処理である。
【００９２】
先ず、ＭＰＵ３０５は、システム管理ボード１１から、ＢＩＯＳ３３１、及びファームウェア３３２の各版数の通知が要求されたか否か判定する（ＳＳ１１）。各版数の通知がシステム管理ボード１１から要求された場合、ＳＳ１１の判定はＹｅｓとなってＳＳ１２に移行する。各版数の通知がシステム管理ボード１１から要求されていない場合、ＳＳ１１の判定はＮｏとなり、ここでＳＢ更新処理が終了する。
【００９３】
ＳＳ１２では、ＭＰＵ３０５は、ＬＡＮインタフェース３１０を用いて、要求された各版数を表す情報をシステム管理ボード１１に送信する。次にＭＰＵ３０５は、その後にシステム管理ボード１１から、ＢＩＯＳ３３１、及びファームウェア３３２の更新が必要な旨を表すメッセージを受信したか否か判定する（ＳＳ１３）。図１０のＳＭ６２の判定がＮｏとなった場合、更新が必要な旨を表すメッセージをシステム管理ボード１１は各システムボード１２に送信することから、ＳＳ１３の判定はＹｅｓとなってＳＳ１４に移行する。図１０のＳＭ６２の判定がＹｅｓとなった場合、更新が必要でない旨を表すメッセージをシステムボード１２は自システム管理ボード１１宛に送信することから、ＳＳ１３の判定はＮｏとなり、ここでＳＢ更新処理が終了する。
【００９４】
ＳＳ１４では、ＭＰＵ３０５は、ＬＡＮインタフェース３１０を用いて、システム管理ボード１１にＢＩＯＳ３３１、及びファームウェア３３２の各データの送信を要求する。次のＳＳ１５では、ＭＰＵ３０５は、システム管理ボード１１からＢＩＯＳ３３１、及びファームウェア３３２の各データを受信するのを待って、受信した各データから計算したチェックサムが、取得したデータ中のチェックサムと一致するか否か判定する。データを取得するまでの間にエラーが発生した場合、それらのチェックサムは不一致となることから、ＳＳ１５の判定はＮｏとなってＳＳ１６に移行する。データを取得するまでの間にエラーが発生していなかった場合、ＳＳ１５の判定はＹｅｓとなってＳＳ１７に移行する。
【００９５】
ＳＳ１６では、ＭＰＵ３０５は、チェックサムの不一致は規定回数以下か否か判定する。規定回数、ＢＩＯＳ３３１、及びファームウェア３３２の各データを受信してもチェックサムが一致しなかった場合、ＳＳ１６の判定はＮｏとなり、ここでＳＢ更新処理が終了する。規定回数、ＢＩＯＳ３３１、及びファームウェア３３２の各データを受信していない場合、ＳＳ１６の判定はＹｅｓとなって上記ＳＳ１４に戻る。それにより、ＭＰＵ３０５は、再度、ＢＩＯＳ３３１、及びファームウェア３３２の各データの送信を要求する。
【００９６】
ＳＳ１７では、ＭＰＵ３０５は、受信した各データの展開を行い、復元したＢＩＯＳ３３１、及びファームウェア３３２ファームウェア２４０を、実行していないファームウェア３３２が格納されているメモリ３２１に書き込む。次にＭＰＵ３０５は、データの展開が正常に終了したか否か判定する（ＳＳ１８）。ＢＩＯＳ３３１、及びファームウェア３３２を正常にメモリ２３１に書き込めた場合、ＳＳ１８の判定はＹｅｓとなって図１２のＳＳ１９に移行する。ＢＩＯＳ３３１，或いはファームウェア３３２を正常にメモリ３２１に書き込めなかった場合、ＳＳ１８の判定はＮｏとなって図１２のＳＳ２１に移行する。
【００９７】
ＳＳ１９では、ＭＰＵ３０６は、ＬＡＮインタフェース３１０を用いて、システム管理ボード１１に対し、ＢＩＯＳ３３１、及びファームウェア３３２の更新成功を表すメッセージを送信する。次にＭＰＵ３０５は、ＬＡＮインタフェース３１０を用いて、システム管理ボード１１に対し、管理端末装置２宛の更新成功の通知を依頼する（ＳＳ２０）。その後、ＳＢ更新処理が終了する。
【００９８】
図１１のＳＳ１８の判定がＮｏとなって移行する図１２のＳＳ２１では、ＭＰＵ３０５は、展開異常が規定回数以上となったか否か判定する。規定回数以上、展開異常が継続して発生した場合、ＳＳ２１の判定はＹｅｓとなってＳＳ２２に移行する。規定回数以上、展開異常が継続して発生していない場合、ＳＳ２１の判定はＮｏとなって図１１のＳＳ１７に戻る。
【００９９】
ＳＳ２２では、ＭＰＵ３０５は、ＬＡＮインタフェース３１０を用いて、ＢＩＯＳ３３１、及びファームウェア３３２の更新が成功しない異常が発生している旨の管理端末装置２宛への通知をシステム管理ボード１１に依頼する。その後、ＳＢ更新処理が終了する。
【０１００】
なお、本実施形態では、各サーバ１に予め格納させる更新フラグ１１７により、プログラムの更新を行うか否かを制御するようにしているが、更新フラグ１１７のような制御情報は、ＭＭＢファーム情報、或いはファームウェア２４０のデータと共に送信させるようにしても良い。また、本実施形態では、プログラムの更新は、ファームウェア２４０→ＢＩＯＳ３３１及びファームウェア３３２、の順序で行うようになっているが、その順序で行わなくとも良い。ファームウェア２４０、ＢＩＯＳ３３１及びファームウェア３３２のなかで更新対象とすべきプログラムを任意に選択できるようにしても良い。動作保証させるプログラムの組合せは、ファームウェア２４０、ＢＩＯＳ３３１及びファームウェア３３２の組合せに限定されない。動作保証させるプログラムの組合せは、管理者が必要に応じて設定すれば良い。
【０１０１】
また、本実施形態では、プログラムはより新しい版に更新（アップデート）することを想定としているが、より新しい版への更新を前提としなくとも良い。つまり、プログラムをより古い版に戻す更新を想定しても良い。図１４に表すように、プログラムをより古い版に戻す更新でも、プログラムをより新しい版に更新する場合と同様に、各サーバ１にプログラムの更新を行わせることができる。プログラムのより新しい版への更新を有効とするか否か、及びプログラムのより古い版への更新を有効とするか否かは、例えば、それぞれ専用の更新フラグ１１７を用意することで制御することができる。
【図１】
0006028851.tif 000002
【図２】
0006028851.tif 000003
【図３】
0006028851.tif 000004
【図４】
0006028851.tif 000005
【図５】
0006028851.tif 000006
【図６】
0006028851.tif 000007
【図７】
0006028851.tif 000008
【図８】
0006028851.tif 000009
【図９】
0006028851.tif 000010
【図１０】
0006028851.tif 000011
【図１１】
0006028851.tif 000012
【図１２】
0006028851.tif 000013
【図１３】
0006028851.tif 000014
【図１４】
0006028851.tif 000015