(57)【特許請求の範囲】
【請求項１】
少なくとも第１のコンピュータおよび第２のコンピュータを含む情報システムのそれぞれのコンピュータの実行が制御プログラムにしたがって制御され、前記それぞれのコンピュータは、前記制御プログラムを複数格納できる容量の格納部を有し、前記第１のコンピュータは各コンピュータの制御プログラムの更新を制御し、前記第２のコンピュータは、前記第１のコンピュータが実行を停止するときに前記第１のコンピュータに代わって各コンピュータの制御プログラムの更新を制御する情報システムにおいて、
前記第１のコンピュータは、
前記制御プログラムの更新処理の計画と更新処理の進捗とを含む更新管理情報を保存する記憶部と、
前記記憶部に保存されている更新管理情報を各コンピュータに配信して制御プログラムの更新を指示し、前記更新管理情報にしたがって前記格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して、前記更新管理情報中の更新処理の進捗を記録するとともに、更新処理の進捗を前記第２のコンピュータに通知し、再起動することによって、前記格納部の第２の領域に格納された、前記更新された制御プログラムを実行して前記格納部の第１の領域に格納された制御プログラムの更新を可能とするプロセッサと、を有し、
前記第２のコンピュータは、
前記第１のコンピュータから配信された更新管理情報を保存する記憶部と、
前記更新管理情報にしたがって前記第２のコンピュータの格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の第２のコンピュータの処理の進捗を記録するとともに、前記第１のコンピュータから受信した更新処理の進捗によって前記更新管理情報中の前記第１のコンピュータの更新処理の進捗を記録し、前記第１のコンピュータが再起動するときには、各コンピュータの制御プログラムの更新を制御し、さらに、前記第１のコンピュータが異常であることを検知したときに、前記第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を制御するプロセッサと、を有する情報システム。
【請求項２】
前記第２のコンピュータのプロセッサは、前記第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動後に前記第１のコンピュータが異常であることを検知したときに、前記第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続する請求項１に記載の情報システム。
【請求項３】
前記第２のコンピュータのプロセッサは、前記第１のコンピュータの制御プログラムの更新に伴う再起動後に前記第１のコンピュータが異常であることを検知したときに、前記第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続する請求項１または２に記載の情報システム。
【請求項４】
前記第２のコンピュータのプロセッサは、前記第１のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前、かつ、前記第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前に前記第１のコンピュータが異常であることを検知したときに、前記第２のコンピュータの記憶部に保存されている更新管理情報中の前記第２のコンピュータによる再起動を伴う処理を削除して前記更新計画を再設定し、前記再設定された更新計画にしたがって各コンピュータの制御プログラムの更新を継続する請求項１から３のいずれか１項に記載の情報システム。
【請求項５】
前記第２のコンピュータのプロセッサは、前記第１のコンピュータが異常であることを
検知した後、前記第１のコンピュータが再起動したときには、前記第１のコンピュータの再起動後の処理として前記第２のコンピュータによる再起動を伴う処理を前記更新計画に設定する請求項４に記載の情報システム。
【請求項６】
前記第２のコンピュータのプロセッサは、前記第１のコンピュータの異常を検知した後、所定期間内に前記第１のコンピュータの再起動を検知できないときに、前記第１のコンピュータ以外の各コンピュータからの制御プログラムの更新完了を待つ処理を第２のコンピュータの更新計画の末尾に設定する請求項４または５に記載の情報システム。
【請求項７】
前記第１のコンピュータが再起動したときには、前記第２のコンピュータのプロセッサは、前記第１のコンピュータの更新工程の進捗が記録された前記更新管理情報を前記第１のコンピュータに引き渡す請求項１から６のいずれか１項に記載の情報システム。
【請求項８】
前記情報システムは、前記第２のコンピュータを複数有し、前記第１のコンピュータ停止するときに、前記複数の第２のコンピュータのプロセッサは、所定の優先順で各コンピュータの制御プログラムの更新を継続する請求項１から７のいずれか１項に記載の情報システム。
【請求項９】
少なくとも第１のコンピュータおよび第２のコンピュータを含むコンピュータシステムのそれぞれのコンピュータの実行が制御プログラムにしたがって制御され、前記それぞれのコンピュータは、前記制御プログラムを複数格納できる容量の格納部を有し、前記第１のコンピュータは各コンピュータの制御プログラムの更新を制御し、前記第２のコンピュータは、前記第１のコンピュータが実行を停止したときに前記第１のコンピュータに代わって各コンピュータの制御プログラムの更新を制御する情報システムにおいて実行される方法であって、
前記第１のコンピュータは、
前記制御プログラムの更新処理の計画と更新処理の進捗とを含む更新管理情報を記憶部に保存し、
前記記憶部に保存されている更新管理情報を各コンピュータに配信して制御プログラムの更新を指示し、
前記更新管理情報にしたがって前記格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して、前記更新管理情報中の更新処理の進捗を記録し、
更新処理の進捗を前記第２のコンピュータに通知し、
再起動することによって、前記格納部の第２の領域に格納された、前記更新された制御プログラムを実行して前記格納部の第１の領域に格納された制御プログラムの更新を可能とし、
前記第２のコンピュータは、
前記第１のコンピュータから配信された更新管理情報を記憶部に保存し、
前記更新管理情報にしたがって前記第２のコンピュータの格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の第２のコンピュータの処理の進捗を記録し、
前記第１のコンピュータから受信した更新処理の進捗によって前記更新管理情報中の前記第１のコンピュータの更新処理の進捗を記録し、
前記第１のコンピュータが再起動するときには、各コンピュータの制御プログラムの更新を制御し、
さらに、前記第１のコンピュータが異常であることを検知したときに、前記第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を制御する方法。
【請求項１０】
情報システムに含まれるコンピュータであって、
前記情報システムの各コンピュータの制御プログラムの更新を制御する第１のコンピュータから配信された更新管理情報を保存する記憶部と、
前記更新管理情報にしたがって自コンピュータの格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の前記自コンピュータの処理の進捗を記録するとともに、前記第１のコンピュータから受信した更新処理の進捗によって前記更新管理情報中の前記第１のコンピュータの更新処理の進捗を記録し、前記第１のコンピュータが再起動するときには、前記情報システムの各コンピュータの制御プログラムの更新を制御し、さらに、前記第１のコンピュータが異常であることを検知したときに、前記自コンピュータの記憶部に保存されている更新管理情報に基づいて前記情報システムの各コンピュータの制御プログラムの更新を制御するプロセッサと、を有するコンピュータ。
【請求項１１】
コンピュータに、
情報システムの各コンピュータの制御プログラムの更新を制御する第１のコンピュータから配信された更新管理情報を記憶部に保存し、
前記更新管理情報にしたがって自コンピュータの格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の前記自コンピュータの処理の進捗を記録し、
前記第１のコンピュータから受信した更新処理の進捗によって前記更新管理情報中の前記第１のコンピュータの更新処理の進捗を記録し、
前記第１のコンピュータが再起動するときには、前記情報システムの各コンピュータの制御プログラムの更新を制御し、
さらに、前記第１のコンピュータが異常であることを検知したときに、前記自コンピュータの記憶部に保存されている更新管理情報に基づいて前記情報システムの各コンピュータの制御プログラムの更新を制御することを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システム、コンピュータ、方法、およびプログラムに関する。
【背景技術】
【０００２】
複数の筐体を有する情報システムが様々な処理を実行し、サービスを提供している。ここで、筐体は、プロセッサを有しており、コンピュータ、情報処理装置、あるいは単に装置と呼ぶこともできる。このような情報システムでは、各装置の起動および起動後の制御を各プロセッサに実行させる制御プログラムが各装置にインストールされている。制御プログラムによる起動および制御を前提として、情報システムが稼働し、処理を実行し、サービスを提供する。このような制御プログラムとしてはファームウェアと呼ばれるものが例示できる。
【０００３】
各装置内には制御プログラムを格納する格納部、例えば、書き込み可能な不揮発性メモリが設けられる。各装置の不揮発性メモリには、制御プログラムを格納する領域が２面分存在する。各装置は、格納部の一方の領域に格納された制御プログラムを実行中に、格納部の他方の領域に格納された制御プログラムを更新する。そして、各装置が再起動することにより、更新された制御プログラムが他方領域から起動され、各装置は更新された制御プログラムの制御下で処理を実行する。
【０００４】
ところで、このような情報システムにおいて、ファームウェア等の制御プログラムの更新は、マスタとなる装置（以下、第１の装置）が主導して実行される。第１の装置が主導して、情報システムに含まれる各装置の制御プログラムを更新することによって、一括して複数の装置の複数の制御プログラムを更新できるからである。各装置において、更新された制御プログラムを実行するため、再起動が実行される。ただし、第１の装置が再起動されている間も、第１の装置に代わって情報システム内に制御プログラムの更新を主導するスタンバイマスタ装置（以下第２の装置）が設けられる。すなわち、このような情報システムの制御プログラムの更新では、マスタ装置である第１の装置またはスタンバイマスタ装置である第２の装置のいずれかが主導して制御プログラムの更新を制御する。
【０００５】
第１の装置は他の装置に対し、制御プログラムの更新開始を指示し、他の装置からの完了の待ち合わせを行う。また、第１の装置は、更新された制御プログラムを他の装置に実行させるため、他装置へ再起動を指示し、他の装置からの再起動完了の待ち合わせも行う。
【０００６】
第１の装置が更新後の制御プログラムを実行するために再起動する場合は、更新を主導する処理を第２の装置に移行する。すなわち、第１の装置が第２の装置に更新処理の引き継ぎを通知し、以降第２の装置が更新処理を引き継ぎ、システムの更新処理を主導する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５２３９７１５号公報
【特許文献２】特開２０１０−７９４４０号公報
【特許文献３】特開平７−２４８９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
情報システムの第１の装置が更新処理を制御して、複数の装置のそれぞれの制御プログ
ラムを更新し、第１の装置が再起動する場合は、第１の装置の処理を第２の装置に移行するシステムにおいては次の問題が生じ得る。すなわち、第１の装置から第２の装置への処理の移行を行わずに第１の装置に異常が発生すると、システムの更新処理が中断することが生じ得る。第２の装置は処理の移行を通知されず、更新処理のシーケンスを引き継いで制御することができないからである。そこで、実施形態では、各装置の制御プログラムの更新処理中に、第１の装置から第２の装置への処理の移行を実行しないで第１の装置が異常状態となった場合も、システム内で従来よりも多くの装置に対する制御プログラムの更新処理が継続されることを可能にすることを課題とする。
【課題を解決するための手段】
【０００９】
開示の技術の一側面は、情報システムによって例示される。本情報システムは、少なくとも第１のコンピュータおよび第２のコンピュータを含み、情報システムのそれぞれのコンピュータの実行が制御プログラムにしたがって制御される。情報システムのそれぞれのコンピュータは、制御プログラムを複数格納できる容量の格納部を有する。各コンピュータのうち、第１のコンピュータは各コンピュータの制御プログラムの更新を制御する。また、第２のコンピュータは、第１のコンピュータが実行を停止するときに第１のコンピュータに代わって各コンピュータの制御プログラムの更新を制御する。
【００１０】
第１のコンピュータは、制御プログラムの更新処理の計画と更新処理の進捗とを含む更新管理情報を保存する記憶部と、プロセッサとを有する。このプロセッサは、記憶部に保存されている更新管理情報を各コンピュータに配信して制御プログラムの更新を指示する。そして、前記プロセッサは、更新管理情報にしたがって前記格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して、前記更新管理情報中の更新処理の進捗を記録する。さらに、プロセッサは、前記更新処理の進捗を第２のコンピュータに通知し、再起動することによって、前記格納部の第２の領域に格納された、更新された制御プログラムを実行して前記格納部の第１の領域に格納された制御プログラムの更新を可能とする。
【００１１】
第２のコンピュータは、第１のコンピュータから配信された更新管理情報を保存する記憶部と、プロセッサとを有する。この第２のコンピュータのプロセッサは、前記更新管理情報にしたがって第２のコンピュータの格納部の第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の第２のコンピュータの処理の進捗を記録する。また、第２のコンピュータのプロセッサは、第１のコンピュータから受信した更新処理の進捗によって前記更新管理情報中の第１のコンピュータの更新処理の進捗を記録する。そして、第２のコンピュータのプロセッサは、第１のコンピュータが再起動するときには、情報システムの各コンピュータの制御プログラムの更新を制御する。さらに、第２のコンピュータのプロセッサは、第１のコンピュータが異常であることを検知したときに、第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を制御する。
【発明の効果】
【００１２】
本システムによれば、制御プログラムが更新される装置を複数有するシステムにおいて、更新処理中に、第１の装置から第２の装置への処理の移行を経ずに第１の装置が異常状態となった場合も、システム内で従来よりも多くの装置に対する制御プログラムの更新処理が継続される。
【図面の簡単な説明】
【００１３】
【図１】比較例に係る情報システムの構成を例示する図である。
【図２】比較例に係る情報システムのファームアップ処理を例示する図である。
【図３】実施形態１の情報システムの構成を例示する図である。
【図４】実施形態１のマスタ装置のハードウェア構成を例示する図である。
【図５】実施形態１の情報処理システムのファームアップ処理を例示するフローチャートである。
【図６】マスタ装置において異常が発生しない場合の詳細処理を例示する図である。
【図７】マスタ切り替え前にマスタ装置で異常が発生した場合の詳細処理を例示する図である。
【図８】マスタ切り替え後にマスタ装置で異常が発生した場合の処理を例示する。
【図９】アクション定義テーブルを例示する表である。
【図１０】再プランニング条件表を例示する図である。
【図１１】デフォルトのファームアッププランを例示する図である。
【図１２】再プランニング処理の手順を例示するフローチャートである。
【図１３】完了記録領域を設けたファームアッププランを例示する図である。
【図１４Ａ】正常にファームアップが完了する処理を例示するである。
【図１４Ｂ】正常にファームアップが完了する処理を例示するである。
【図１４Ｃ】正常にファームアップが完了する処理を例示するである。
【図１５】筐体１に故障が発生した場合の完了記録領域を含むファームアッププランを例示する図である。
【図１６】処理例２のフローチャートである。
【図１７】ファームアッププランの実行順序１のアクションの完了が記録された後、筐体１、２のファームアッププランが再プランニングされた例である。
【図１８】処理例３のフローチャートである。
【図１９】処理例３のフローチャートである。
【図２０】実施形態２に係る情報システムを例示する図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、一実施形態に係る情報システムについて説明する。以下の実施形態の構成は例示であり、本情報システムは実施形態の構成には限定されない。
［比較例］
図１に、比較例に係る情報システムの構成を例示する。図１の情報システムは、マスタ装置３１０、スタンバイマスタ装置３２０、およびスレーブ装置３３０を有する。マスタ装置３１０、スタンバイマスタ装置３２０、およびスレーブ装置３３０は、相互にネットワーク、例えば、ＬＡＮ（Local Area Network）、InfiniBandで例示されるインターコネクト等で接続される。
【００１５】
マスタ装置３１０は、処理停止あるいはリブート等の通常処理を実行できない期間以外は、情報システム全体を制御する。マスタ装置３１０は、マスタ装置３１０の起動および制御のためのファーム３１８を不揮発性のメモリに格納している。マスタ装置３１０は、ファームウェア３１８を実行することで、起動され、アプリケーションプログラムを実行し、様々な情報処理を利用者に提供する。マスタ装置３１０は、揮発性のＲＡＭ（Radom Access Memory）３１２を有し、様々なアプリケーションプログラムをロードする。また
、マスタ装置３１０は、ＲＡＭ３１２にファームウェア３１８の更新を実行するプログラム（以下ファームアップ部３１７）を有する。以下、ファームウェアの更新処理をファームアップと呼ぶ。マスタ装置３１０は、ファームアップ部３１７によって、自身のファームウェア３１８を更新する他、スタンバイマスタ装置３２０、スレーブ装置３３０の更新を制御する。
【００１６】
スタンバイマスタ装置３２０は、マスタ装置３１０がリブート等で処理を実行できない期間、マスタ装置３１０に代わって情報システムを制御する。スタンバイマスタ装置３２０は、マスタ装置３１０の指示にしたがって、自身のＲＡＭ上のファームアップ部によりファームウェアを更新する。スレーブ装置３３０は、マスタ装置３１０またはマスタ装置
３１０の停止期間等においてはスタンバイマスタ装置３２０からの指示にしたがって、自身のＲＡＭ上のファームアップ部によりファームウェアを更新する。ただし、スタンバイマスタ装置３２０およびスレーブ装置３１０の構成は、マスタ装置３１０と同様であるので、その説明を省略する。なお、マスタ装置３１０、スタンバイマスタ装置３２０およびスレーブ装置３３０をそれぞれ筐体とも呼ぶ。以下、コンピュータ、情報処理装置等を筐体、あるいは装置と呼ぶ。
【００１７】
筺体内にはファームウェアを格納する領域が２面存在する。２面とは、ファームウェアの複製を２個格納できる領域という意味である。ファームウェアを格納する領域は、例えば、書き込み可能なＲＯＭ（Read Only Memory）である。
【００１８】
上述のように、マスタ装置３１０は他筐体に対し各部品のファームウェアの更新の開始を指示し、各筐体での更新完了の待ち合わせを行う。また、マスタ装置３１０は更新されたファームウェアを実行するため、各筐体の再起動を指示し、再起動完了の待ち合わせを実行する。マスタ装置３１０が更新されたファームウェアを実行する場合は、マスタ装置３１０が「処理制御移行処理」を行い、スタンバイマスタ装置３２０にファームアップの処理情報を通知する。この通知以降、スタンバイマスタ装置３２０がファームアップ処理を引き継ぎ、情報システムとしてのファームアップを主導する。
【００１９】
図１に例示したようなマスタ装置３１０が処理シーケンスを制御して、情報システムのファームアップを行う方式において、マスタ装置３１０からスタンバイマスタ装置３２０への処理制御移行処理を行わずにマスタ装置３１０に異常と異常からの回復処理が発生することがあり得る。ここで、マスタ装置３１０で発生する異常と回復処理としては、ソフト的な要因による筐体再起動があり、例えばメモリコレクタブルエラー多発による異常からのリカバリの為のリブートが例示される。このような異常が発生すると、マスタ装置３１０は、スタンバイマスタ装置３２０に対しファームアップの処理情報を通知できず、ファームアップ時の処理シーケンスをスタンバイマスタ装置３２０に引き継ぎことができない場合が生じ得る。したがって、情報システムは、ファームアップを制御することができず、情報システムのファームアップが中断してしまうという問題が生じ得る。
【００２０】
図２に、比較例に係る情報システムのファームアップ処理を例示する。図２では、マスタと記載されたマスタ装置３１０の処理と、スレーブと記載されたスタンバイマスタ装置３２０の処理が例示され、スレーブ装置３３０の処理は省略されている。まず、図２を参照して、マスタ装置３１０に異常が発生しない場合のファームアップ処理を説明する。ファームアップ処理では、マスタ装置３１０は、自身が有するファームウェアを格納する領域２面のうち、片面をファームアップする（Ｃ１）。次に、マスタ装置３１０は、スタンバイマスタ装置３２０（以下、図２でスレーブという）に片面のファームアップを指示する。すると、スレーブは片面をファームアップする（Ｃ３）。ここで、片面とは、現在マスタを制御するファームウェアが格納されている領域あるいはスレーブを制御するファームウェアが格納されている領域以外の他方の格納領域をいい、裏面とも呼ばれる。スレーブは片面のファームアップを完了し、さらに、自身をリブートする。すると、スレーブは更新されたファームウェアにより起動され、処理を実行する。そして、スレーブはレスポンスをマスタ装置３１０に返す。
【００２１】
マスタ装置３１０はスレーブからのレスポンスを待っている（Ｃ４）。マスタ装置３１０は、スレーブからレスポンスが返ると、マスタ装置３１０は、マスタ切り替えをスレーブに指示するとともに、自身をリブートする（Ｃ５）。マスタ装置３１０からの指示により、スタンバイマスタ装置３２０であるスレーブはマスタ装置に切り替る。以降、スレーブは、マスタ装置としての制御を実行する。すなわち、マスタ装置として処理を実行するスレーブは、スレーブ側で、マスタ装置３１０で実行されたＣ１−Ｃ５と同様の処理を実
行する（Ｃ７−Ｃ１１）。すなわち、スレーブは、マスタ装置として、自身のファームウェア格納領域のうち、ファームアップを完了していない片面のファームアップを実行する（Ｃ７）。さらに、スレーブは、マスタ装置として、現在、スレーブとなっているマスタ装置３１０に対して、片面のファームアップを指示する（Ｃ８）。
【００２２】
すると、現在、スレーブとなっているマスタ装置３１０は、ファームアップを完了していない片面のファームアップを実行し（Ｃ９）、レスポンスをマスタ装置となっているスレーブに返す。スレーブは、マスタ装置として、レスポンスを待ち（Ｃ１０）、レスポンスと受けると、ファームアップ完了をマスタ装置３１０に返す（Ｃ１１）。マスタ装置３１０は、スレーブからのファームアップ完了通知を待っており（Ｃ１２）、ファームアップ完了通知を受けると、スレーブからマスタ装置３１０への処理移行制御処理が実行される（Ｃ１３）。すなわち、マスタ装置３１０が再度マスタとして情報システムを制御する。
【００２３】
図２の処理の途中で、マスタ装置３１０に異常が発生すると、図２の処理が継続されず、途中で中断することがある。例えば、Ｃ５、Ｃ６によるマスタ切り替え前にマスタ装置３１０に異常が発生すると、マスタ装置３１０は、スレーブにマスタ装置の処理を引き継がせることができない。
【００２４】
また、異常となったマスタ装置３１０がリブートにより復旧する場合もあり得る。ただし、一度中断したファームアップを再開するためには、単純な処理を採用する場合には、異常となったマスタ装置３１０が起動完了してから、再度ファームアップ処理開始を指示し、初めからファームアップ処理を実施する。
【００２５】
そこで、以下の実施形態の情報システムは、比較例と同様に、複数筐体を有する情報システムにおいて、ファームアップ処理中に、マスタ装置３１０からスタンバイマスタ装置３２０への処理移行制御処理を経ずにマスタ装置３１０が異常状態となっても、情報システムのファームアップ処理を可能な範囲まで継続する。
【００２６】
また、複数の筐体を有する情報システムにおいて、ファームアップを制御する筐体がファームアップ中に異常状態となっても、マスタ切り替え済みかどうか、あるいはリブート前後のどちらか等の更新の実行状態に基づいて、スタンバイマスタ装置３２０等の他の筐体がマスタ装置３１０の処理を可能な限り引き継げるようにする。その結果、情報システムとしてのファームアップの無駄を低減して、可能な限りファームアップを続行できるようにする。
【００２７】
［実施形態１］
以下、実施形態１の情報システムにおけるファームアップ処理を例示する。
【００２８】
＜情報システムのファームアップ処理例＞
本情報システムは、ファームアップ処理において、ファームアッププランと呼ばれる、ファームアップの実施手順を示す情報を利用する。情報システム内の各筐体は、デフォルトのファームアッププランを保持する。例えば、マスタとなる筐体がデフォルトのファームアッププランを保持しており、他の筐体に配信する。各筐体は、配信されたデフォルトのファームアッププランにしたがって、自筐体および他の筐体のファームアップの進捗状況を把握する。
【００２９】
そして、例えば、マスタとなる筐体に異常が発生してもファームアップ処理が継続できるよう、マスタに代わるスタンバイマスタの筐体が情報システム内の各筐体のファームアッププランを再設定する。ファームアッププランの再設定は、再プランニングと呼ばれる
。再プランニングにおいて、スタンバイマスタは、マスタ切り替え済みかどうか(あるい
はリブート前後のどちらか)に基づいて、スタンバイマスタがスタンバイマスタのみファ
ームアッププランの再プランニングをすればいいか、スタンバイマスタ以外のスレーブのファームアッププランの再プランニングをすればいいかを決定する。より具体的には、スタンバイマスタとなる筐体は、以下に示す処理を実行する。
【００３０】
（１）スタンバイマスタとなる筐体およびスレーブ筐体は、ファームアップ処理において、新規にファームアッププラン格納領域を新設する。
【００３１】
（２）スタンバイマスタとなる筐体は、新設した格納領域にファームアッププランを設定する。処理開始時は予め決定済であるマスタ筐体にはデフォルトとなるファームアッププランが保存されている。また、マスタ筐体は、予め決定済であるスタンバイマスタ筐体、スレーブ筐体に、デフォルトのファームアッププランを配信する。デフォルトのファームアッププランは、初期値とも呼ばれ、典型的なファームアップ処理を記述した情報である。デフォルトのファームアッププランは、例えば、システム管理者が設定すればよい。また、デフォルトのファームアッププランは、例えば、情報システムの設置時に設置者（システムベンダ等）が設定すればよい。例えば、ファームアップ開始前、あるいは開始時、マスタ筐体は保存しているデフォルトのファームアッププランをスタンバイマスタ筐体、およびスレーブ筐体にも送付する。
【００３２】
（３）ファームアッププランを受領したスタンバイマスタ筐体、およびスレーブ筐体は、受領したファームアッププランをファームアッププラン格納領域に保存する。その後マスタ筐体からのファームアップ開始指示を受け、スタンバイマスタ筐体、およびスレーブ筐体は受領したファームアッププランに従ってファームアップを実施する。
【００３３】
ファームアッププランは、ファームアップアップで実行される複数のアクションを定義している。アクションは、例えば、ファームアップアップで実行される処理である。ファームアッププランには、アクションの具体的処理が設定された命令列を格納するＲＡＭ上の命令列の先頭アドレスの形式で列記される。各筐体は、ファームアッププランで定義されたアクションを順次実行することで、ファームアップを実行する。
【００３４】
ファームアップ実行中、各筐体はどのアクションを実行しているかを自身のファームアッププラン格納領域に記憶する。各筐体はアクションの実行進捗についてはマスタ筐体に通知する。マスタ筐体は、通知にしたがって、各筐体の実行進捗をファームアッププラン格納領域に保存する。一方、マスタ筐体は、マスタ筐体自身で実行したアクション実行進捗をスタンバイマスタ筐体に通知する。スタンバイマスタ筐体は、通知を受けたマスタ筐体での実行進捗をスタンバイマスタ筐体内のマスタ筐体用のファームアッププラン格納領域に保存する。
【００３５】
（４）スタンバイマスタ筐体はマスタ筐体の異常によるマスタ切り替えが発生した時点で、自身のファームアッププラン格納領域に記録してある実行進捗を参照する。そして、スタンバイマスタ筐体は参照した実行進捗にしたがい、例えば、自筺体に対するファームアッププランを再プランニングする。再プランニングにおいて、スタンバイマスタ筐体は、参照した実行進捗を基に、自筺体において、リブートが実行済みか否かを確認する。
【００３６】
（例１）スタンバイマスタ筐体はリブートが未実行の場合で、マスタ筐体が故障停止していれば、マスタ筐体に依存しないファームアッププランを再設定する。例えば、マスタ筐体停止中は、スタンバイマスタ以外にはマスタになることができる筐体が情報システムに存在しない。したがって、スタンバイマスタ筐体は自身がリブートしない範囲でファームアッププランを再設定する。
【００３７】
（例２）自筐体でリブートが実行済みの場合は、自筐体の再プランニングはせず、マスタ筐体から配布されたデフォルトのファームアッププランをそのまま継続する。ただし、スタンバイマスタ筐体はスレーブ筺体が更新完了を報告する通知先を自筐体とするように、スレーブ筐体に通知する。
【００３８】
（例３）マスタ筐体が異常後に自動復旧した場合も、スタンバイマスタ筐体は再プランニングを実施する。再プランニングでは、スタンバイマスタ筐体は、ファームアッププラン格納領域に保存された、マスタ筐体のファームアッププランのアクション実行進捗を参照する。そして、スタンバイマスタ筐体は、実行進捗を基に所定の再プランニング条件表（図１０参照）にしたがって、実行可能なアクションを選択し、マスタ筐体の更新されたファームアッププランを設定する。この場合、典型的には、スタンバイマスタ筐体はマスタ筐体の再起動を待って、処理を継続するように再プランニングする。
【００３９】
スタンバイマスタ筐体は、作成したファームアッププランにしたがってアクションを実行する。マスタ筐体に対しては、マスタ筐体の再起動を待ち、マスタの再起動完了を確認してからマスタ筐体のファームアッププランを配信する。マスタ筐体は、スタンバイマスタ筐体によって更新されたファームアッププランにしたがって、マスタ筐体自身のファームアップを実行する。
【００４０】
以上の仕組みを新たに設けることで、ファームアップ中にマスタ筐体が異常となっても情報システムのファームアップ処理が可能な範囲で実施できるようになる。その結果、比較例のように、ファームアップが中断してしまう事態の発生を低減できる。
【００４１】
＜システム構成＞
図３は、本実施形態の情報システムの構成を例示する図である。本情報システムは、マスタ装置１１０と、スタンバイマスタ装置１２０と、スレーブ装置１３０とを有する。マスタ装置１１０と、スタンバイマスタ装置１２０と、スレーブ装置１３０とは、比較例の情報システムと同様のネットワークで相互に接続される。図３では、スタンバイマスタ装置１２０と、スレーブ装置１３０とは、それぞれ１台ずつ例示されている。ただし、スタンバイマスタ装置１２０が複数設けられてもよいし、スレーブ装置１３０が複数設けられてもよい。マスタ装置１１０は第１のコンピュータの一例である。スタンバイマスタ装置１２０は第２のコンピュータの一例である。マスタ装置１１０、スタンバイマスタ装置１２０、スレーブ装置１３０は、各コンピュータの一例である。
【００４２】
マスタ装置１１０は、ＲＡＭ１１２を有する。また、ＲＡＭ１１２には、コンピュータプログラムであるファームアップ部１１２Ａが格納される。また、ＲＡＭ１１２には、定義テーブル領域１１２Ｂおよびファームアッププラン格納領域１１２Ｃが設けられる。定義テーブル領域１１２Ｂには、アクション定義テーブル（図９参照）、再プランニング条件表（図１０参照）が格納される。また、ファームアッププラン格納領域１１２Ｃには、ファームアッププラン（図１１参照）等が格納される。ＲＡＭ１１２、ＲＡＭ１２２、ＲＡＭ１３２は、記憶部の一例である。
【００４３】
さらに、マスタ装置１１０は、ファームウェア１１８を格納する格納部１１８Ａを有する。格納部１１８Ａは、例えば、ＲＯＭである。ＲＯＭは、例えば、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等である。格
納部１１８Ａは、ファームウェア１１８を少なくとも２回格納する容量、すなわち、ファームウェア１１８の２面分以上の容量を有する。なお、スタンバイマスタ装置１２０も、マスタ装置１１０と同様、ファームアップ部１２２Ａ、定義テーブル領域１２２Ｂ、ファームアッププラン格納領域１２２Ｃを含むＲＡＭ１２２、およびファームウェア１２８を
格納する格納部１２８Ａを有する。また、格納部１２８Ａは、ファームウェア１２８を少なくとも２回格納する容量、すなわち、ファームウェア１２８の２面分以上の容量を有する。
【００４４】
さらに、スレーブ装置１３０は、マスタ装置１１０、スタンバイマスタ装置１２０と同様、ファームアップ部１３２Ａ、定義テーブル領域１３２Ｂ、ファームアッププラン格納領域１３２Ｃを含むＲＡＭ１３２、およびファームウェア１３８を格納する格納部１３８Ａを有する。ファームウェア１１８、１２８、１３８は制御プログラムの一例である。格納部１１８Ａ、１２８Ａ、１３８Ａは、それぞれ格納部の一例である。
【００４５】
図４は、本実施形態におけるマスタ装置１１０のハードウェア構成を例示する図である。なお、本情報システムに含まれる各筐体、すなわち、スタンバイマスタ装置１２０およびスレーブ装置１３０は、いずれも、図４と同様の構成を有する。マスタ装置１１０はＣＰＵ１１と、主記憶部１２と、インターフェース（Ｉ／Ｆ）を通じて接続される外部機器を有し、プログラムにより情報処理を実行する。ＣＰＵ１１はプロセッサの一例である。主記憶部１２はＲＡＭ１１２、ＲＡＭ１２２、ＲＡＭ１３２の一例である。外部機器としては、外部記憶部１３、表示部１４、操作部１５、および通信部１６を例示できる。
【００４６】
ＣＰＵ１１は、主記憶部１２において実行可能に展開されたコンピュータプログラムを実行し、コンピュータの様々な機能を提供する。主記憶部１２は、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。主記憶部１２は、Dynamic Random Access Memory（ＤＲＡＭ）、Static Random Access Memory（ＳＲＡＭ
）、Read Only Memory（ＲＯＭ）等である。なお、図３のマスタ装置１１０のＲＡＭ１１２およびファームウェア１１８を格納する格納部１１８Ａは、主記憶装置１２に含まれる。スタンバイマスタ装置１２０のＲＡＭ１２２、格納部１２８Ａ、スレーブ装置１３０のＲＡＭ１３２、格納部１３８Ａについても、図４の構成と対応関係は、マスタ装置１１０と同様である。
【００４７】
さらに、外部記憶部１３は、例えば、主記憶部１２を補助する記憶領域として使用され、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。外部記憶部１３は、ハードディスクドライブ、Solid State Disk（ＳＳＤ）等である。さらに、情報処理装置１０には、着脱可能記憶媒体の駆動装置を設けてもよい。着脱可能記憶媒体は、例えば、ブルーレイディスク、Digital Versatile Disk（ＤＶＤ）、Compact Disc（ＣＤ）、フラッシュメモリカード等である。
【００４８】
また、情報処理装置は、表示部１４、操作部１５、通信部１６を有する。表示部１４は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。操作部１５は、例えば、キーボード、ポインティングデバイス等である。本実施形態では、ポインティングデバイスとしてマウスが例示される。通信部１６は、ネットワーク上の他の装置とデータを授受する。例えば、ＣＰＵ１１は、通信部１６を通じて、監視対象システムからメッセージログを取得する。通信部１６は、ＮＩＣ（Network Interface Card）、InfiniBandのチャンネルアダプタ等である。
【００４９】
＜全体処理フロー＞
図５は、本情報処理システムのファームアップ処理を例示するフローチャートである。図５では、マスタ装置１１０、スタンバイマスタ装置１２０、およびスレーブ装置１３０の処理が例示される。スタンバイマスタ装置１２０はスレーブ装置１と呼ぶことができ、スレーブ装置１３０はスレーブ装置２と呼ぶことができる。ただし、スレーブ装置１３０は複数台設けられてもよいので、図５では、スレーブ２−Ｎとして示されている。
【００５０】
本情報システムのファームアップ処理では、マスタ装置１１０がデフォルトのファームアッププランを作成し、スタンバイマスタ装置１２０およびスレーブ装置１３０に配布する（Ｇ１）。Ｇ１の配布処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。例えば、マスタ装置１１０は、情報システムの管理者の操作部１５からの入力にしたがって、デフォルトのファームアッププランを作成してもよい。また、デフォルトのファームアッププランは、情報処理システムのベンダから提供されてもよい。
【００５１】
次に、マスタ装置１１０は、自身のファームアップを実行後、スタンバイマスタ装置１２０、スレーブ装置１３０等にファームアップ開始を指示する（Ｇ２）。Ｇ２のファームアップ開始の指示は、制御プログラムの更新を指示することの一例である。また、マスタ装置１１０に異常が発生した場合には、例外処理等を介して、マスタ装置１１０が異常を検知する（Ｇ３）。また、スタンバイマスタ装置１２０、スレーブ装置１３０等の各情報処理装置は、情報システム内の他の情報処理装置の異常を監視ている。したがって、マスタ装置１１０に異常が発生した場合には、スタンバイマスタ装置１２０、スレーブ装置１３０は、それぞれマスタ装置１１０の異常を検知する（Ｇ７、Ｇ１５）。Ｇ７でマスタ装置１１０の異常を検知することは、第１のコンピュータが異常であることを検知することの一例である。Ｇ７の処理は、第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動後に第１のコンピュータが異常であることを検知することの一例でもある。Ｇ７の処理は、第１のコンピュータの制御プログラムの更新に伴う再起動後に第１のコンピュータが異常であることを検知することの一例でもある。Ｇ７の処理は、第１のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前に第１のコンピュータが異常であることを検知することの一例でもある。
【００５２】
マスタ装置１１０に異常が発生しなかった場合には、マスタ装置１１０は、通常の処理を実行する（Ｇ４）。Ｇ４の処理では、図２で異常が発生しなかった場合と同様に、情報システムのファームアップが実行される。また、マスタ装置１１０に異常が発生した場合、マスタ装置１１０は、そのまま故障停止する場合（Ｇ５）と、故障発生後再起動する場合（Ｇ６）とがある。マスタ装置１１０が故障停止する場合については、処理例２において、詳細が説明される（図１５、図１６参照）。また、マスタ装置１１０が故障発生後再起動する場合は、処理例３において、詳細が説明される（図１７から図１９参照）。Ｇ６の処理は、第１のコンピュータが異常であることを検知した後、第１のコンピュータが再起動したときの処理の一例である。
【００５３】
スタンバイマスタ装置１２０は、マスタ装置１１０の異常を検知すると、マスタ切り替え済みか否かを判定する（Ｇ８）。マスタ切り替え済みとは、マスタとしての制御が、スタンバイマスタ装置１２０に引き渡されていることをいう。マスタ切り替え済みの場合、スタンバイマスタ装置１２０は、スタンバイマスタ装置１２０自身のファームアッププランを再プランニングし、スレーブ装置１３０のファームアッププランを再プランニングしない。すなわち、マスタ切り替え済みの場合、スレーブ装置１３０には影響がないので、スタンバイマスタ装置１２０およびスレーブ装置１３０は、マスタ装置１１０から配布されたスレーブ装置１３０のファームアッププランを引き続き保持する。ただし、この場合、スタンバイマスタ装置１２０は、スレーブ装置１３０からのアクションの実行完了を待つように自身のファームアッププランを再プランニングするとともに、スレーブ装置１３０に、実行完了をスタンバイマスタ装置１２０に通知するように指示する。
【００５４】
一方、Ｇ８の判定で、マスタ切り替え前にマスタ装置１１０に異常が発生した場合、スタンバイマスタ装置１２０は、マスタとスタンバイマスタの切り替えを実行し、マスタ装
置１１０の代わりに、情報システムのファームアップを主導する制御を開始する（Ｇ１０）。また、マスタ切り替え前にマスタ装置１１０に異常が発生した場合には、マスタ装置１１０の主導によるファームアップ実行中に、マスタ装置１１０に異常が発生している。そこで、スタンバイマスタ装置１２０は、マスタ装置１１０の主導によるファームアップのためのファームアッププランを再プランニングすることになる。すなわち、スタンバイマスタ装置１２０は、情報システムのすべてのスレーブ装置１３０に対するファームアッププランを再プランニングする（Ｇ１１）。そして、スタンバイマスタ装置１２０は、再プランニングしたファームアッププランをスレーブ装置１３０に再配布する（Ｇ１２）。
【００５５】
さらに、スタンバイマスタ装置１２０は、スタンバイマスタ装置１２０自身、すなわちスレーブ１のファームアッププランをファームアッププラン格納領域１２２Ｃに再設定する（Ｇ１３）。そして、スタンバイマスタ装置１２０は、スレーブ装置１３０にファームアップ再開を指示する（Ｇ１４）。そして、スタンバイマスタ装置１２０は、自身のファームアップを再開する（Ｇ１８）。なお、Ｇ６のように、マスタ装置が故障後再起動される場合、スタンバイマスタ装置１２０は、マスタ装置の再起動を待ってファームアップを主導する処理をマスタ装置１１０に戻し、Ｇ１１において、他のスレーブへの再プランニングは実施せず、Ｇ１２において、再プランニングされたファームアッププランの他のスレーブへの再配布は実施しない。この場合の詳細は、処理例３で説明される。
【００５６】
スレーブ装置１３０は、マスタ装置１１０の異常を検知すると（Ｇ１５）、ファームアップを保留する（Ｇ１６）。そして、スレーブ装置１３０は、スタンバイマスタ装置１２０から再プランニングされたファームアッププランを受領すると（Ｇ１７）、ファームアップを再開する（Ｇ１８）。なお、スタンバイマスタ装置１２０が再プランニングを実施しない場合には、スレーブ装置１３０は、マスタ装置１１０から配布されたファームアッププランにしたがって、スタンバイマスタ装置１２０の指示にしたがってファームアップを実行する。そして、情報システムにおいて、実行可能な範囲でファームアッププランが完了すると、それぞれの筐体、すなわち、スタンバイマスタ装置１２０、スレーブ装置１３０は、ファームアップ処理を完了する。なお、マスタ装置１１０は、故障後再起動した場合（Ｇ６）には、ファームアップ処理を完了する（Ｇ１９）。Ｇ８からＧ１９の処理は、第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を制御することの一例である。
【００５７】
図６に、ファームアップ処理の間、マスタ装置１１０において異常が発生しない場合の詳細処理を例示する。上述のように、マスタ装置１１０は、ファームアッププランを作成し、スタンバイマスタ装置１２０およびスレーブ装置１３０に配布する（Ｍ１）。Ｍ１の配布処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。スタンバイマスタ装置１２０およびスレーブ装置１３０は、ファームアッププランをマスタ装置１１０から受領する（Ｓ１１、Ｓ２１）。
【００５８】
次に、マスタ装置１１０は、スタンバイマスタ装置１２０およびスレーブ装置１３０に、ファームアップ開始を指示する（Ｍ２）。Ｍ２のファームアップ開始の指示は、制御プログラムの更新を指示することの一例である。また、マスタ装置１１０は、片面ファームアップを実行する（Ｍ３）。ここで、片面ファームアップとは、ファームウェア１１８等を格納する格納部１１８Ａの一方の領域にファームウェアを書き込むことをいう。Ｍ３の片面ファームアップは、格納部の第１の領域に格納された制御プログラムの実行中に格納部の第２の領域に格納された制御プログラムを更新することの一例である。そして、マスタ装置１１０は、処理待ちの状態となる（Ｍ４）。なお、Ｍ２とＭ３の順序が逆でもよい。
【００５９】
すると、スタンバイマスタ装置１２０およびスレーブ装置１３０は、マスタ装置１１０
から指示を受け、ファームアッププランに沿ってファームアップを開始し（Ｓ１１、Ｓ１２、Ｓ２１、Ｓ２２）、片面ファームアップを実行する（Ｓ１３、Ｓ２３）。ファームアップ実行中、スタンバイマスタ装置１２０およびスレーブ装置１３０は、マスタ装置１１０にファームアッププランの進捗を通知する（Ｓ１４、Ｓ２４）。さらに、スタンバイマスタ装置１２０およびスレーブ装置１３０は、ファームアップのうち、残りの処理を実行するとともに（Ｓ１５、Ｓ２５）、ファームアッププランの進捗をマスタ装置１１０に通知する（Ｓ１６、Ｓ２６）。Ｓ１３の片面ファームアップは、格納部の第１の領域に格納された制御プログラムの実行中に格納部の第２の領域に格納された制御プログラムを更新して更新管理情報中の第２のコンピュータの処理の進捗を記録することの一例である。
【００６０】
マスタ装置１１０は、リブート前のファームアッププランがスタンバイマスタ装置１２０およびスレーブ装置１３０で完了済みか否かを判定する（Ｍ５）。そして、リブート前のファームアッププランがスタンバイマスタ装置１２０およびスレーブ装置１３０で完了済みの場合、マスタ切り替えをスタンバイマスタ装置１２０およびスレーブ装置１３０に通知し（Ｍ６）、自身をリブートする（Ｍ７）。Ｍ７のリブートすることは、再起動することによって更新された格納部の第２の領域に格納された制御プログラムを実行することの一例である。すなわち、本情報システムでは、マスタ装置１１０またはマスタとなっているスタンバイマスタ装置１２０が正常にリブートする場合には、リブート前に、次にマスタとなる装置、およびスレーブ装置にマスタ交代を通知する。この通知によって、マスタ交代が実行される。リブート完了後、マスタ装置１１０は、Ｍ３でファームアップしたファームウェアで起動するとともに、スタンバイマスタとなる。そして、マスタ装置１１０は、スタンバイマスタとしてファームアッププランの進捗をマスタとなったスタンバイマスタ装置１２０に通知する（Ｍ８）。なお、スタンバイマスタとして動作するマスタ装置１１０は、Ｍ８の処理とともに、ファームウェア１１８を格納する残りの片面をファームアップすればよい。Ｍ１からＭ６の処理は、第１のコンピュータによって、各コンピュータの制御プログラムの更新を制御すること一例である。
【００６１】
一方、マスタ装置１１０からマスタ切り替えの通知を受領したスタンバイマスタ装置１２０は、マスタとしての動作を開始する（Ｓ１７）。また、スレーブ装置１３０は、マスタ装置１１０からマスタ切り替えの通知を受信し（Ｓ２７）、通知先をスタンバイマスタ装置１２０に変更する。スレーブ装置１３０は、マスタとしての動作するスタンバイマスタ装置１２０に、ファームアッププランの進捗を通知する（Ｓ２８）。
【００６２】
マスタとして動作するスタンバイマスタ装置１２０は、マスタ装置１１０およびスレーブ装置１３０でファームアッププランが完了済みであるか否かを判定する（Ｓ１８）。そして、マスタ装置１１０およびスレーブ装置１３０でファームアッププランが完了済みになると、マスタとして動作するスタンバイマスタ装置１２０は、マスタの切り替えをマスタ装置１１０およびスレーブ装置１３０に通知する（Ｓ１９）。このとき、スタンバイマスタ装置１２０は、マスタの動作を停止し、本来のスタンバイマスタの処理に戻る。Ｓ１８、Ｓ１９の処理は、第１のコンピュータが実行を停止するときに第１のコンピュータに代わって各コンピュータの制御プログラムの更新を制御することの一例ある。Ｍ６の通知により実行されるＳ１７からＳ１９の処理は、第１のコンピュータが再起動するときに、各コンピュータの制御プログラムの更新を制御することの一例でもある。
【００６３】
マスタ装置１１０は、マスタとしての動作するスタンバイマスタ装置１２０からマスタの切り替えを受領すると、マスタとしての動作に復帰する（Ｍ９）。また、スレーブ装置１３０は、マスタとしての動作するスタンバイマスタ装置１２０からマスタの切り替えを受信し（Ｓ２９）、マスタ変更を認識する（Ｓ２Ａ）。以降、スレーブ装置１３０の通知先は、マスタ装置１１０となる。
【００６４】
さらに、スタンバイマスタ装置１２０およびスレーブ装置１３０は、ファームアッププランのすべての工程の実行を認識し、マスタ装置１１０に完了を通知し（Ｓ１Ａ、
Ｓ２Ａ）、処理を終了する。最後に、マスタ装置１１０は、スタンバイマスタ装置１２０およびスレーブ装置１３０からの全ファームアッププラン完了済みの報告を待ち（Ｍ１０）、処理を終了する。なお、スタンバイマスタ装置１２０は、Ｓ１３からＳ１６のいずれかでリブートすることで、Ｓ１３でファームアップされたファームウェアで起動すればよい。また、スレーブ装置１３０は、Ｓ２３からＳ２Ａのいずれかでリブートすることで、Ｓ１３でファームアップされたファームウェアで起動し、さらに、残りの片面をファームアップすればよい。
【００６５】
図７は、マスタ切り替え前にマスタ装置１１０で異常が発生した場合の詳細処理を例示する。この処理では、マスタ装置１１０が、リブート前のファームアッププランの完了を待っているときに、すなわちＭ５の処理中に異常が発生したとする。また、マスタ装置１１０は故障によって停止し、再起動できなかったとする。図７において、マスタ装置１１０のＭ１からＭ４の処理、スタンバイマスタ装置１２０のＳ１１からＳ１４の処理、およびスレーブ装置１３０のＳ２１からＳ２５の処理は図６と同様である。
【００６６】
マスタ装置１１０に異常が発生すると、スタンバイマスタ装置１２０は、マスタ装置１１０の監視によって異常を検知し、自身をマスタに切り替える（Ｔ１１）。すなわち、スタンバイマスタ装置１２０は、マスタとして動作を開始する。Ｔ１１の処理は、第１のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前に第１のコンピュータが異常であることを検知することの一例である。また、スレーブ装置は、マスタ装置１１０の監視によって異常を検知し、ファームアップを保留する（Ｔ２１）。
【００６７】
そして、マスタとして動作するスタンバイマスタ装置１２０は、ファームアッププランを再プランニングする（Ｔ１２）。再プランニングの手順は、図１２に例示されているので、別途図１２にしたがって後述する。Ｔ１２（および図１２のＰ１０からＰ１２）の処理は、第２のコンピュータの記憶部に保存されている更新管理情報中の第２のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。
【００６８】
そして、スタンバイマスタ装置１２０は、再プランニングしたファームアッププランを自身に設定するとともに、スレーブ装置１３０（スレーブ装置２−Ｎ）に配布する（Ｔ１３）。そして、マスタとして動作するスタンバイマスタ装置１２０は、再プランニングされたファームアッププランにしたがって続きの処理を実施する（Ｔ１４）。
【００６９】
スレーブ装置１３０は、マスタとして動作するスタンバイマスタ装置１２０からファームアッププランを受領し、保留していたファームアップを再開する（Ｔ２２）。そして、スレーブ装置１３０は、スタンバイマスタ装置１２０に進捗を通知する（Ｔ２３）。そして、スレーブ装置１３０は、ファームアッププランの全工程の実行を認識し、マスタとして動作するスタンバイマスタ装置１２０に完了を通知する（Ｔ２４）。そして、スレーブ装置１３０はファームアップ処理を終了する。
【００７０】
マスタとして動作するスタンバイマスタ装置１２０は、スレーブ装置１３０からの完了の通知を待っている。スタンバイマスタ装置１２０は、すべてのスレーブ装置１３０から、完了を受領すると（Ｔ１５でＹＥＳ）、処理を終了する。Ｔ１３からＴ１５は、再設定された更新計画にしたがって各コンピュータの制御プログラムの更新を継続することの一例ある。
【００７１】
図８は、マスタ切り替え後に、マスタ装置１１０で異常が発生した場合の処理を例示する。この処理では、マスタ装置１１０が、リブート（Ｍ７）後に異常が発生したとする。また、マスタ装置１１０は故障によって停止し、再起動できなかったとする。図８において、マスタ装置１１０のＭ１からＭ７の処理、スタンバイマスタ装置１２０のＳ１１からＳ１７の処理、およびスレーブ装置１３０のＳ２１からＳ２７の処理は図６と同様である。
【００７２】
図７の場合と同様、マスタ装置１１０に異常が発生すると、スタンバイマスタ装置１２０は、マスタ装置１１０の監視によって異常を検知する（Ｕ１１）。ただし、すでに、マスタ装置１１０がマスタ切り替えを通知し（Ｍ６）、スタンバイマスタ装置１２０は、マスタとして動作している。また、すでに、マスタ装置１１０はリブートを完了している（Ｍ７）。すなわち、マスタ装置１１０によって制御されるファームアップの工程は正常に終了している。したがって、スレーブ装置１３０は、マスタの異常検知によってファームアップを保留するが（Ｕ２１）、スレーブ装置１３０のファームアッププランはそのまま継続でき、再プランニングされなくてもよい。そこで、スタンバイマスタ装置１２０は、自身の再プランニングを実施するが、スレーブ装置１３０（スレーブ２−Ｎ）の再プランニングを実施しない。再プランニング処理例は、図１２にしたがって後述する。Ｕ１１の処理は、第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動後に第１のコンピュータが異常であることを検知することの一例である。Ｕ１１の処理は、第１のコンピュータの制御プログラムの更新に伴う再起動後に第１のコンピュータが異常であることを検知することの一例でもある。
【００７３】
さらに、スタンバイマスタ装置１２０は、再プランニングしたファームアッププランを自身のファームアッププラン格納領域１２２Ｃに再設定する（Ｕ１２）。なお、図１２にしたがって別途詳述するように、マスタ装置１１０のリブート後、または、スタンバイマスタ装置１２０のリブート後は、スタンバイマスタ装置１２０は、デフォルトのファームアッププランの最後にスレーブ装置１３０からの完了待ちを追加する。したがって、デフォルトのファームアッププランに基づく更新は継続される。
【００７４】
また、スタンバイマスタ装置１２０は、スレーブ装置１３０にファームアップの再開を指示する（Ｕ１３）。そして、スタンバイマスタ装置１２０は、再プランニングしたファームアッププランにしたがって続きの処理を実施する（Ｕ１４）。スタンバイマスタ装置１２０から再開の指示を受けたスレーブ装置１３０は、ファームアップを再開する（Ｕ２２）。そして、スレーブ装置１３０は、ファームアッププランの全工程の実行を認識し、マスタとして動作するスタンバイマスタ装置１２０に完了を通知する（Ｕ２３）。そして、スレーブ装置１３０はファームアップ処理を終了する。
【００７５】
マスタとして動作するスタンバイマスタ装置１２０は、スレーブ装置１３０からの完了の通知を待っている（Ｕ１５）。スタンバイマスタ装置１２０は、すべてのスレーブ装置１３０から、完了を受領すると（Ｕ１５でＹＥＳ）、処理を終了する。Ｕ１２からＵ１５の処理は、第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。なお、スタンバイマスタ装置１２０は、Ｕ１２で、デフォルトのファームアッププランの最後にスレーブ装置１３０からの完了待ちのアクションを追加する。しかし、追加されるアクション以外は、デフォルトのファームアッププランのアクションが残されるため、スタンバイマスタ装置１２０は、デフォルトのファームアッププランに基づいて更新を継続するということができる。
【００７６】
＜定義テーブルおよびファームアッププランの構造＞
図９は、アクション定義テーブルを例示する表である。アクション定義テーブルは、フ
ァームアッププランに設定されるアクションと、各アクションの実行条件を関係づける。ファームアップを実行する各装置は、ファームアッププランに規定された各アクションについて、図９のアクション定義テーブルで規定された実行条件が充足されたか否かを判定する。実行条件が充足された場合には、各装置は、ファームアップに規定されたアクションを実行する。すなわち、本情報システム内の各装置は、ファームアッププランとアクション定義テーブルとを参照し、ファームアッププランの先頭のアクションから順次、実行条件を判定し、実行条件が充足されたときにアクションを実行していく。
【００７７】
図９の例では、Ｎｏ．１のアクションとして、SCM Firm Write（１面）が定義され、実行条件はなしに設定されている。したがって、SCM Firm Write（１面）は、無条件に実行できるアクションである。ここで、SCMは、装置内の基板名の一例で有り、”SCM Firm Write”は特定の基板にファームウェアを書き込む処理の一例である。ただし、本実施形態
の処理が特定の基板のファームに対する処理に限定される訳ではない。
【００７８】
Ｎｏ．２のアクションとして、Bank切り替えが定義され、実行条件は「自身がマスタの場合、他に正常なマスタ候補の筐体が必要」とされている。すなわち、Bank切り替えは、情報システムがマスタ切り替え可能な状態にあるという条件で、実行できるアクションである。例えば、マスタ装置１１０が１台、スタンバイマスタ装置１２０が１台存在し、他にマスタ候補が存在しない情報システムで、マスタ装置１１０が故障した場合には、Bank切り替えは、実行できない。アクション定義テーブルのＮｏ．３のアクションとして、リブートが定義され、Ｎｏ．２と同様に、「実行条件は自身がマスタの場合、他に正常なマスタ候補の筐体が必要」とされている。したがって、リブートはBank切り替えと同様、マスタ装置１１０が１台、スタンバイマスタ装置１２０が１台存在し、他にマスタ候補が存在しない情報システムで、マスタ装置１１０が故障した場合には、実行できない。
【００７９】
Ｎｏ．４のアクションとして、SCM Firm Write（２面）が定義され、実行条件は、Ｎｏ．２、Ｎｏ．３実行後でないと不可とされている。したがって、例えば、マスタとして動作するスタンバイマスタ装置１２０は、リブートしていないときには、SCM Firm Write（２面）を実行できない。
【００８０】
Ｎｏ．５のアクションとして、準備完了待ちが定義され、実行条件は、相手筐体の起動完了を待つ、とされる。相手筐体の起動完了を待つため、実行条件には、相手筐体の起動完了の通知の宛て先、例えば、メッセージキュー等が指定される。したがって、ファームアッププランには、準備完了待ちのアクションとともに、相手筐体の起動完了が通知されるメッセージキュー等の通知先、通知先となるレジスタ、共有メモリ等が指定設定される。
【００８１】
Ｎｏ６．のアクションとして、処理待ちが定義され、実行条件は、相手筐体のアクション実行完了を待つ、とされる。相手筐体の相手筐体のアクション実行完了を待つため、実行条件には、相手筐体の相手筐体のアクション実行完了の通知の宛て先、例えば、メッセージキュー等が指定される。したがって、ファームアッププランには、処理待ちのアクションとともに、相手筐体のアクション実行完了が通知されるメッセージキュー等の通知先が指定設定される。
【００８２】
Ｎｏ．７のアクションとして、完了待ちが定義され、実行条件は、マスタ筐体での完了待ち、とされる。この場合の実行条件は、マスタ筐体で実行であり、スレーブとして動作する筐体からの完了を待つという意味である。したがって、実行条件には、スレーブとして動作する筐体からの完了通知の宛先、例えば、メッセージキュー等が指定される。
【００８３】
なお、図９の実行条件は、自然言語で記述されているが、実行条件の判定は、図９の自
然言語をコンピュータが解釈しなくてもよい。例えば、図９の実行条件を判定する論理がコンピュータプログラムとして記述されていればよい。各装置は、コンピュータプログラムが判定する論理値にしたがって、実行条件が充足されたか否かを判定すればよい。
【００８４】
図１０は、再プランニング条件表を例示する。再プランニング条件表は、実行順序と、アクションと、マスタに異常が発生した場合の次のアクションとの関係が定義される。スタンバイマスタ装置１２０は、図１０のアクション実行中に、マスタ装置１１０の異常を検知すると、図９の「マスタに異常が発生した場合の次のアクション」で定義された処理実施するように、再プランニングを実行する。
【００８５】
例えば、マスタに異常が発生した場合、実行順序１のSCM Firm Write（１面）のアクションの次のアクションには、実行順序２（Bank切り替え）、実行順序３（リブート）、実行順序４（SCM Firm Write（２面））が、旧マスタの再起動完了した後に、再プランニングに組み込まれる。
【００８６】
また、例えば、実行順序２のBank切り替えの次のアクションには、実行順序３（リブート）、実行順序４（SCM Firm Write（２面））が、旧マスタの再起動完了した後に、再プランニングに組み込まれる。一方、実行順序３（リブート）、実行順序４（SCM Firm Write（２面））は、マスタに異常が発生した場合でもファームアッププランが変更されない。
【００８７】
なお、図１０の再プランニング条件表は、図９の実行条件と同様に、自然言語で記述されているが、再プランニング条件の解釈では、図１０の自然言語をコンピュータが解釈しなくてもよい。例えば、図１０の再プランニング条件を判定し、可能なアクションを設定する論理がコンピュータプログラムとして記述されていればよい。スタンバイマスタ装置１２０は、コンピュータプログラムが判定する論理と、設定にしたがって、再プランニングを実行すればよい。
【００８８】
図１１は、デフォルトのファームアッププランを例示する。デフォルトのファームアッププランは、初期値ということができ、ファームアップ時のアクションが典型的な順に列記された表である。マスタ装置１１０に異常が発生しなければ、情報システムは、図１１のファームアッププランにしたがって、図９のアクション定義テーブルの実行条件を判定しつつ、ファームアップを実行する。図１１のファームアッププランは、例えば、情報システムのベンダから提供される。一方、ファームアップ途中でマスタ装置１１０が異常になると、図１２の再プランニングの処理例にしたがって、スタンバイマスタ装置１２０がファームアッププランを再プラニングする。
【００８９】
図１１のデフォルトのファームアッププランの例では、マスタ装置１１０は、実行順序１：SCM Firm Write（１面）、実行順序２：処理待ち、実行順序３：準備完了待ち、実行順序４：Bank切り替え、実行順序５：リブート、実行順序６：SCM Firm Write（２面）、実行順序７：完了待ちの順にファームアップを実行する。なお、図面では、リブートは”Reboot”のように記述する。
【００９０】
また、スタンバイマスタ装置１２０およびスレーブ装置１３０は、実行順序１：SCM Firm Write（１面）、実行順序２：Bank切り替え、実行順序３：リブート、実行順序４：SCM Firm Write（２面）の順にファームアップを実行する。
【００９１】
＜再プランニングの処理例＞
図１２は、スタンバイマスタ装置１２０が、マスタ装置１１０の異常を検知したときに実行する再プランニング処理の手順を例示するフローチャートである。再プランニング処
理において、まず、スタンバイマスタ装置１２０は、マスタ装置１１０がリブートを実行前か否かを判定する（Ｐ１）。ここで、マスタ装置１１０は、以降旧マスタ装置と呼ばれる。スタンバイマスタ装置１２０が旧マスタ装置１１０の処理を実行するからである。旧マスタ装置がリブートを実行前のとき、スタンバイマスタ装置１２０は、スタンバイマスタ装置１２０自身がリブートを実行前か否かを判定する（Ｐ２）。スタンバイマスタ装置１２０自身がリブートを実行前である場合、スタンバイマスタ装置１２０は、旧マスタ装置１１０が起動中か否かを判定する（Ｐ３）。旧マスタ装置１１０が起動中になるのは、例えば、旧マスタ装置１１０がコンピュータプログラムのエラー、主記憶装置のエラー等で例外処理あるいはリセットにより再起動される場合である。スタンバイマスタ装置１２０は、所定のタイミングで旧マスタ装置１１０を監視しているので、旧マスタ装置１１０が起動中か否かを判定できる。具体的には、スタンバイマスタ装置１２０は、Ｐ３の判定のため、所定時間旧マスタ装置を監視すればよい。
【００９２】
Ｐ３の判定で、旧マスタ装置が起動中の場合、スタンバイマスタ装置１２０は、新ファームアッププランＡを設定する（Ｐ４）。以下、新ファームアッププランを単に新プランともいう。
【表１】
0006451522.tif 000002
新プランＡは、図１１に例示したスレーブ１のデフォルトのファームアッププランに対して、実行順序Ｎｏ．３のリブートの前に、図９（アクション定義テーブル）に例示したアクションＮｏ．５（準備完了待ち）を設定するものである。図９の実行条件から明らかなように、アクションＮｏ．５（準備完了待ち）は、相手筐体の起動完了を待つというアクションである。
【００９３】
なお、本実施形態の処理では、新ファームアッププランＡは、新規なファームアッププランとして実行順序１から３の処理を設定するものとして説明する。ただし、例えば、新ファームアッププランＡとしては、図１１に例示したスレーブ１のデフォルトのファームアッププランに対して、アクションＮｏ．５（準備完了待ち）を挿入するものであってもよい。この場合には、Ｐ４の処理において、実行順序４、５が、図１１に例示したスレーブ１のデフォルトのプランの実行順序Ｎｏ．３、Ｎｏ．４から繰り下げられて設定される。したがって、旧マスタ装置１１０が起動中の場合には、スタンバイマスタ装置１２０は、旧マスタ装置１１０の起動完了を待って、デフォルトのプランを継続することになる。なお、Ｐ３の判定で、旧マスタ装置１１０が起動中でない場合、スタンバイマスタ装置１２０は、Ｐ４の処理を実行しないで、Ｐ５に制御を移す。
【００９４】
次に、スタンバイマスタ装置１２０は、スタンバイマスタ装置１２０以外にスレーブが存在するか否かを判定する（Ｐ５）。本実施形態では、マスタ装置１１０、スタンバイマスタ装置１２０、スレーブマスタ装置１３０は、情報システムに含まれる装置の構成情報を相互に授受しているものと想定する。スタンバイマスタ装置１２０以外にスレーブが存在する場合、スタンバイマスタ装置１２０は、旧マスタ装置１１０の起動が完了したか否かを判定する（Ｐ６）。スタンバイマスタ装置１２０は、所定のタイミングで旧マスタ装
置１１０を監視しているので、旧マスタ装置が起動を完了したか否かを判定できる。ただし、旧マスタ装置１１０が起動を完了すると、旧マスタ装置１１０がスタンバイマスタ装置１２０、スレーブ装置１３０に割り込み、ネットワークを介した通信等で通知するようにしてもよい。いずれにしても、スタンバイマスタ装置１２０は、所定時間待ってＰ６の判定を実行すればよい。
【００９５】
Ｐ６の判定で、旧マスタ装置が起動を完了すると、スタンバイマスタ装置１２０は、新プランＢを設定する（Ｐ７）。Ｐ６、Ｐ７の処理は、第１のコンピュータが異常であることを検知した後、前記第１のコンピュータが再起動したときに、第１のコンピュータの再起動後の処理として第２のコンピュータによる再起動を伴う処理を更新計画に設定することの一例である。
【表２】
0006451522.tif 000003
新プランＢは、アクションＮｏ．３（リブート）、Ｎｏ．４（SCM Firm Write（２面））を新プランＡの実行順序Ｎｏ．３（準備完了待ち）の後に設定するものである。ただし、上述したように、Ｐ４の処理で、新プランＡとして、図１１に例示したスレーブ１のデフォルトのプランに対して、アクションＮｏ．５（準備完了待ち）を挿入した場合には、実行順序４、５は設定済みであるので、Ｐ７の処理は不要となる。
【００９６】
次に、スタンバイマスタ装置１２０は、旧マスタ装置１１０のプランを生成する（Ｐ８）。この場合、旧マスタ装置１１０は、再起動により復旧しているため、旧マスタ装置１１０のプランは、図１１のマスタ装置１１０のプランから変更はない。
【００９７】
Ｐ６の判定で、旧マスタ装置が起動を完了しなかった場合、スタンバイマスタ装置１２０は、スタンバイマスタ装置１２０以外にスレーブが存在するか否かを判定する（Ｐ９）。スタンバイマスタ装置１２０以外にスレーブが存在する場合、スタンバイマスタ装置１２０は、自身の新プランＣを設定する（Ｐ１０）。
【表３】
0006451522.tif 000004
新プランＣは、アクションＮｏ．５（準備完了待ち）、Ｎｏ．６（処理待ち）を図１１に例示したスレーブ１のデフォルトのプランの実行順序Ｎｏ．１（SCM Firm Write（１面））の後に設定し、最後に、アクションＮｏ．７（完了待ち）を設定したものである。つま
り、新プランＣは、図９（アクション定義テーブル）で、他に正常なマスタ候補の存在が実行条件とされるアクションＮｏ．２（Bank切り替え）、Ｎｏ．３（リブート）をスレーブ１のデフォルトのプランから除外し、旧マスタの処理を継続するものである。すなわち、新プランＣによって、スタンバイマスタ装置１２０は、可能な範囲で極力ファームアップを継続できる。なお、図９（アクション定義テーブル）において、スレーブ１のデフォルトのプランＮｏ．４（SCM Firm Write（２面））の実行条件は、アクションＮｏ．２（Bank切り替え）、Ｎｏ．３（リブート）の実行である。このため、スレーブ１のデフォルトのプランＮｏ．４（SCM Firm Write（２面））は、新プランＣから除外される。
【００９８】
次に、スタンバイマスタ装置は、他装置の新プランを生成する（Ｐ１１）。ただし、他装置のプランは、図１１のスレーブ２のプランから変更はない。なお、他の装置（スレーブ）の通知先は旧マスタからスタンバイマスタ装置１２０に変更される。つまり、Ｐ１１では、ファームアッププラン字体の変更はなく、通知先が変更される。
【００９９】
また、Ｐ５の判定で、スタンバイマスタ装置自身以外にスレーブ装置が存在しない場合、スタンバイマスタ装置は、新プランＤを設定する（Ｐ１２）。Ｐ１０からＰ１２の処理は、第２のコンピュータの記憶部に保存されている更新管理情報中の第２のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。Ｐ１０、Ｐ１１の処理は、所定期間内に前記第１のコンピュータの再起動を検知できないときに、第１のコンピュータ以外の各コンピュータからの制御プログラムの更新完了を待つ処理を第２のコンピュータの更新計画の末尾に設定する処理の一例でもある。
【表４】
0006451522.tif 000005
新プランＤは、図１１に例示したスレーブ１のデフォルトのプランから実行順序Ｎｏ．２（Bank切り替え）、Ｎｏ．３（リブート）、Ｎｏ．４（SCM Firm Write（２面））を削除したものである。すなわち、旧マスタが再起動せず、他にスレーブ装置が存在しないので、スタンバイマスタ装置は、片面のファームアップを実行して処理を終了することになる。
【０１００】
さらに、Ｐ２の判定で、スタンバイマスタ装置１２０自身がリブート実行済みである場合、スタンバイマスタ装置は、スタンバイマスタ装置１２０以外にスレーブ装置が存在するか否かを判定する（Ｐ１３）。スタンバイマスタ装置１２０以外にスレーブ装置が存在する場合、スタンバイマスタ装置は、新プランＥを設定する（Ｐ１４）。
【表５】
0006451522.tif 000006
新プランＥは、図９（アクション定義テーブル）に例示したアクションＮｏ．７（完了待ち）を図１１に例示したスレーブ１のデフォルトのプランの最後に設定するものである。つまり、スタンバイマスタ装置１２０自身がリブート後である場合、すでに、スタンバイマスタ装置１２０は、旧マスタ装置に代わって、マスタ装置の処理を実行中である。このため、デフォルトのプランに対して、他のスレーブからの完了を待てばよいからである。
【０１０１】
また、他のスレーブ装置については、プランの変更はない（Ｐ１５）。本情報システムでは、スタンバイマスタがリブート済みであり、スレーブ装置１３０の宛先においてもすでに通知先が変更されている可能性がある。しかし、本情報システムでは、念のため、スタンバイマスタ装置１２０は、通知先がスタンバイマスタ装置１２０となるようにスレーブ装置１３０に通知する（Ｐ１５）。また、Ｐ１３の判定で、スタンバイマスタ装置１２０以外にスレーブ装置が存在しない場合、スタンバイマスタ装置１２０は、プラン変更せず（Ｐ１６）そのまま処理を終了する。Ｐ１４からＰ１６の処理は、第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。なお、スタンバイマスタ装置１２０は、Ｐ１４で、アクションＮｏ．７（完了待ち）をデフォルトのファームアッププランの最後に設定する。しかし、アクションＮｏ．１からＮｏ．４に変更がないため、スタンバイマスタ装置１２０は、デフォルトのファームアッププランに基づいて更新を継続するということができる。すなわち、Ｐ１４で、アクションＮｏ．７（完了待ち）をデフォルトのファームアッププランの最後に設定することは、第２のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。
【０１０２】
さらにまた、Ｐ１の判定で、マスタ装置１１０がリブート実行済みのとき、スタンバイマスタ装置１２０は、Ｐ１３以下の処理を実行する。マスタ装置１１０がすでにリブート実行済みの場合には、すでに、スタンバイマスタ装置１２０は、マスタ装置１１０に代わって、マスタ装置１１０の処理を実行中である。したがって、スタンバイマスタ装置１２０は、Ｐ２の判定で自身がリブートを実行後のときと同様の処理を実行すればよい。
【０１０３】
＜処理例１＞
処理例１において、デフォルトのファームアッププランは、図１１と同様である。ただし、処理例１では、筐体１がマスタであり、筐体２がスタンバイマスタであり、筐体３がスレーブであるとする。また、本情報システムでは、ファームアッププランには、筐体間で授受する完了通知を記録する完了記録領域を設ける。
【０１０４】
図１３に、完了記録領域を設けたファームアッププランを例示する。なお、この完了記録領域の初期値は“未完了”である。図１３の例では、図１１のファームアッププランに対して、筐体１から筐体３の実行順序１（SCM Firm Write（１面））が完了し、実行順序２以下が未完了となっている。完了記録領域を設けたファームアッププランが更新管理情報の一例である。また、完了記録領域を除くファームアッププランが更新処理の計画の一例である。さらに、完了記録領域に記録される情報（未完了、完了等）が更新処理の進捗の一例である。
【０１０５】
図１４Ａ、図１４Ｂ、図１４Ｃに、図１１（あるいは図１３）のデフォルトのファームアッププランにしたがって、正常にファームアップが完了する処理を例示する。
【０１０６】
（１）筐体１は、マスタとして、管理者等のオペレーションにしたがって、情報システムのファームアッププランを作成する（Ｍ１０１）。ただし、筐体１は、ファームアッププランとしては、情報システムのベンダから提供されるデフォルトのファームアッププランをそのまま流用してもよい。
【０１０７】
（２）筐体１はファームアッププランをスレーブである筐体２、３に送信する（Ｍ１０２）。Ｍ１０２のファームアッププランをスレーブに送信する処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。Ｍ１０２では、筐体１は、それぞれの宛先となる筐体自体のファームアッププランだけではなく、情報システム内のすべての筐体のファームアッププランを各筐体に送信する。一方、筐体２、３は、筐体１からファームアッププランを受領する（Ｓ１０１、Ｓ２０１）。
【０１０８】
（３）ファームアッププランの送信が完了すると、筐体１は、ファームアップを自筺体（筐体1）と、筐体２、３に対して指示する（Ｍ１０３）。Ｍ１０３のファームアップの指
示は、制御プログラムの更新を指示することの一例である。そして、筐体１は、ファームアップを開始する（Ｍ１０４）。一方、筐体２、３は、筐体１からファームアッププランの指示を受領すると、ファームアッププランに沿って、ファームアップを開始する（Ｓ１０２、Ｓ２０２）。
【０１０９】
（４）各筐体では配信されたファームアッププランのアクションを実行順序に沿って実行し、完了する。各筐体で最初に実行するアクションはSCF Firm Write(１面)である（Ｍ１０４、Ｍ１０５、Ｓ１０３、Ｓ１０４、Ｓ１０５、Ｓ２０３、Ｓ２０４、Ｓ２０５）。ただし、図１４Ａから１４Ｃでは、” SCF Firm Write”を”SCFファームアップ”と称する。Ｍ１０４のファームアップ開始、Ｍ１０５のファームアップの完了は、格納部の第１の領域に格納された制御プログラムの実行中に格納部の第２の領域に格納された制御プログラムを更新することの一例である。
【０１１０】
（５）各筐体は、各アクションを終了すると、ネットワークで接続されているマスタである筐体１およびスタンバイマスタである筐体２に、実行順序の番号とそのアクション” 
”SCFファームアップ”の完了を通知する（Ｓ１０５、Ｓ２０５、Ｍ１０７）。また、筐
体１、２は、それぞれの筺体から完了通知を受信すると、アクション”SCFファームアッ
プ”の完了をファームアッププランの完了記録領域に記録する（Ｍ１０６、Ｓ１０６）。Ｍ１０６のアクション”SCFファームアップ”の完了をファームアッププランの完了記録
領域に記録することは、更新管理情報中の更新処理の進捗を記録することの一例である。また、Ｍ１０７のスタンバイマスタである筐体２に、実行順序の番号とそのアクション”SCFファームアップ”の完了を通知することは、更新処理の進捗を前記第２のコンピュー
タに通知することの一例である。Ｓ１０３のファームアップ開始、Ｓ１０４のファームアップの完了、およびＳ１０６の完了記録領域への記録は第１の領域に格納された制御プログラムの実行中に前記格納部の第２の領域に格納された制御プログラムを更新して前記更新管理情報中の第２のコンピュータの処理の進捗を記録することの一例である。Ｓ１０６の完了記録領域への記録は、第１のコンピュータから受信した更新処理の進捗によって更新管理情報中の第１のコンピュータの更新処理の進捗を記録することの一例でもある。
【０１１１】
ただし、本情報システムの処理は、Ｓ１０５、Ｓ２０５、Ｍ１０７、Ｍ１０６、Ｓ１０６の処理に限定される訳ではない。例えば、各筐体は、各アクションが終了したら、ネットワークで接続されているすべての筐体に、実行順序の番号とそのアクションの完了を通知してもよい。そして、通知を受けた各筐体はすべての筐体の通知にしたがって、すべての筐体での完了を各筐体のファームアッププランに記録してもよい。
【０１１２】
（６）各筐体はファームアッププランに記載されている実行アクションを実行する際は、図９のアクション定義テーブルに記載してある実行条件に従って実行する。図１３の例では、筺体1が実行すべき実行順序２のアクションは“処理待ち”であり、図９のアクショ
ン定義テーブルで、“処理待ち”の実行条件は“相手筺体のアクション実行完了を待つ”である。このため、筐体１は、筺体２の実行順序２のアクションである”Bank切り替え”の完了通知を待つ（Ｍ１０８）。
【０１１３】
一方、筐体２、３は、ファームアッププランとアックション定義テーブルの実行条件にしたがい、アクション”Bank切り替え“を実行し（Ｓ１０７、Ｓ２０７）、筐体１にアクション完了を通知する（Ｓ１０８、Ｓ２０８）。筐体１は、”Bank切り替え“アクション実行完了を受け、アックション定義テーブルの実行条件にしたがい、処理待ちを終了する。そして、筐体１はファームアッププランの”処理待ち“完了記録領域に“完了”を設定する（Ｍ１０９）。
【０１１４】
（７）筐体２の実行順序の番号とそのアクション完了通知を受領後、筺体1は次のアクシ
ョンを実行する。
【０１１５】
（８）筺体１の次の処理は、“準備完了待ち”である。また、図９のアクション定義テーブルにおいて、“準備完了待ち”アクションの実行条件は、”相手筐体の起動完了を待つ”である。ファームアッププランの次の実行順序３で筐体２、３がリブートすることになる。そこで、筺体２がリブートを完了し、筐体１に対して、実行順序の番号とそのアクション完了通知を通知してくるまで、筐体１は待ち合わせを行う（Ｍ１１０）。なお、この待ち合わせにタイムアウト値を設定し、規定値までにスレーブ筐体が通知をしてこなかった場合は、タイムアウト発生としてファームアップを異常終了する。
【０１１６】
筐体２、３はファームアッププランおよびアクション定義テーブルにしたがい、リブートを実行する（Ｓ１０９、Ｓ２０９）。筐体２は、筐体１にアクション完了を通知する（Ｓ１１０）。また、図１４Ｂの処理では、筐体３は、筐体１、２にアクション完了を通知する（Ｓ２１０）。Ｓ１１０およびＳ２１０の処理は、”リブート”アクションが開始したことの通知である。筐体１は、ファームアッププランの筐体２、３の完了記録領域に“完了”を設定する（Ｍ１１１）。さらに、再起動後に筐体２、３は起動完了を筐体１に通知する（Ｓ１１１、Ｓ２１１）。筐体１は、筐体２、３からの起動完了を受信し、ファームアッププランの“準備完了待ち”アクションの完了記録領域に“完了”を設定する（Ｍ１１２）。なお、変形例として、Ｓ２１１、Ｓ１１１で再起動後に筐体３が起動完了を筐体１、２に通知するようにし、筐体２が筐体３からの起動完了を待つようにしてもよい。筐体２、３のファームアッププランがこの変形例にしたがって設定されていればよい。
【０１１７】
（９）筺体１は筐体２、３の起動を確認後、自身が持つシステムのファームアッププランを配信する（Ｍ１１３）。筐体２がＳ１０９で再起動された結果、再起動前のファームアッププランがＲＡＭ１２２から消失している。そこで、Ｍ１１３の処理によって、筐体２、３は再度デフォルトのファームアッププランを復旧する。
【０１１８】
（１０）筺体２、３は配信されたファームアッププランを検索し、未完了のアクションから実行する（Ｓ１１２、Ｓ２１２）。図１３のファームアッププランの例では、SCF Firm
Write(2面)である。ただし、図１４Ｂでは、“SCFファームアップ”として示されている（Ｓ１１３、Ｓ２１３）。
【０１１９】
（１１）筺体１に筐体２からリブートの完了通知（実行順序の番号とそのアクション完了通知）が行われると、筺体1は次のアクションである“Bank切り替え”を実行する（Ｍ１
１４）。 “Bank切り替え”の実行条件に、”自身がマスタの場合、他に正常なマスタ候
補の筐体が必要”とあり、筐体２がリブート完了によって、正常なマスタ候補となったからである。
【０１２０】
次に、筐体１は筐体２に、“Bank切り替え”アクションの完了を通知し（Ｍ１１５）、筐体２は、アクションの完了記録領域に“完了”を設定する（Ｓ１１４）。なお、筐体３は、”SCMファームアップ”アクション完了後に、完了を筐体１、２に通知し（Ｓ２１４
）、処理を終了する。
【０１２１】
（１２）筺体1は“Bank切り替え”完了後、“リブート”アクションを実行する（Ｍ１１
６）。図１４Ｂでは省略されているが、正常処理では、筺体1のリブート前に、筐体１か
ら筐体２にマスタ切り替えが通知される。Ｍ１１６の“リブート”アクションを実行することは、再起動することによって更新された格納部の第２の領域に格納された制御プログラムを実行することの一例である。
【０１２２】
（１３）筺体1が“リブート”アクションを実行することで、筺体1がリブートする（Ｍ１１６）。次に、筐体１はリブート時に、筐体２に“リブート”アクション完了を通知し（Ｍ１１７）、筐体２は、アクションの完了記録領域に“完了”を設定する（Ｓ１１５）。
【０１２３】
また、筐体１のリブートにより筐体２は、”SCMファームアップ”アクション完了を筐
体１に通知せず、筐体２のファームアッププランの完了記録領域に、自身の”SCM Firm Write(２面)”アクション完了を記録する（Ｓ１１６）。なお、筐体１から筐体２へのマスタ切り替えの通知により筺体２がマスタ筐体となる（Ｍ１１８、Ｓ１１７）。Ｍ１０１からＭ１１８の処理は、第１のコンピュータによって、各コンピュータの制御プログラムの更新を制御することの一例である。
【０１２４】
（１４）筐体１はリブート完了後、筺体２に対し、起動完了通知を行う（Ｍ１１９）。Ｓ１１７からＳ１１９の処理は、第１のコンピュータが再起動するときに、各コンピュータの制御プログラムの更新を制御することの一例である。
【０１２５】
（１５）正常なマスタ切り替え後、筺体２では筐体1の起動を待つ“準備完了アクション
”がないため、通知を受領するがファームアッププランへの反映はしない（Ｓ１１８）。
【０１２６】
（１６）筺体２は筐体１の起動を確認すると、筺体２が持つ完了記録領域が更新されたデフォルトのファームアッププランを筐体1に配信する（Ｓ１１９）。筐体1は配信されたファームアッププランにおいて、未完了のアクションから実行する（Ｍ１２０）。ここでは、筐体１はリブートまで完了しているため、未完了アクションはSCF Firm Write(２面)である。ただし、図１４Ｃでは、“SCFファームアップ”として例示されている。Ｓ１１９
の配信は、第１のコンピュータが再起動したときに、第２のコンピュータのプロセッサが第１のコンピュータの更新工程の進捗が更新された更新管理情報を第１のコンピュータに引き渡す処理の一例である。
【０１２７】
（１７）筺体1はファームアップを実行する（Ｍ１２１）。すなわち、Ｍ１１６のリブー
トによって、筺体1は第２面のファームアップが可能となったのである。
【０１２８】
（１８）筺体1はファームアップ完了後、筺体２に対し、実行順序の番号とそのアクショ
ン完了通知を通知する（Ｍ１２２）。筐体２は、アクション完了を受領すると”処理完了待ち”アクションを完了に設定する（Ｓ１２０）。
【０１２９】
（１９）筺体２は自筺体内に保持するファームアッププランがすべて完了したと認識し、マスタ筐体の切り替えを筐体１に通知し、筐体１と筐体２はマスタ切り替えを実施する（Ｓ１２１、Ｍ１２３）。Ｓ１１７からＳ１２１の処理は、第１のコンピュータが実行を停止するときに第１のコンピュータに代わって各コンピュータの制御プログラムの更新を制御することの一例である。
【０１３０】
（２０）ファームアップ処理が完了となる（Ｍ１２４）。
【０１３１】
＜処理例２＞
処理例２では、処理例１に対して、筐体１が筐体２、３からの“バンク切り替え”アクション実行完了を待つ“処理待ち”（図１４ＢのＭ１０８）において、筐体１の異常が発生した場合の情報システムの処理を説明する。したがって、筐体１のＭ１０１からＭ１０８の処理、筐体２のＳ１０１からＳ１０８の処理、および筐体３のＳ２０１からＳ２０８の処理は、処理例１の図１４Ａ、図１４Ｂと同様である。したがって、処理例１の（１）から（６）は、処理例２においても、同様に実施されたものとし、その説明を省略する。
【０１３２】
図１５は、筐体１に故障が発生した場合の完了記録領域を含むファームアッププランを例示する。筐体１、２については、実行順序２以降が、故障停止によりアクションが破棄される。一方、筐体３については、実行順序２においてファームアップが保留され、未完了となっている。
【０１３３】
図１６は、筐体１での“処理待ち”（Ｍ１０８）以降の処理、筐体２、３での“バンク切り替え”（Ｓ１０７、Ｓ２０７）以降の処理を例示する処理例２のフローチャートである。
【０１３４】
（７）筐体１が“処理待ち”（Ｍ１０８）の状態で筐体1に異常が発生し、再起動を実施
する（ＭＴ１０９）。しかし、筐体1は復旧せず、そのまま故障停止する（ＭＴ１１１）
。システム内にマスタ筐体が不在となったため、筺体２がマスタとなる（ＭＴ１１０、ＳＴ１０９、ＳＴ２０９）。ＳＴ１０９の処理は、第１のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第２のコンピュータの格納部の第２の領域に格納された制御プログラムの更新に伴う再起動前に第１のコンピュータが異常であることを検知することの一例でもある。
【０１３５】
（８）筺体２はマスタの異常を検知したので、再プランニングの要否を図１２に従ってチェックする（ＳＴ１１０）。この例では、筺体２に配信されたファームアッププランの実行順序３”リブート”アクションが実行前であり（図１１参照）、かつ筐体１が故障停止し、再起動しないケースとなる。よって、筺体２は、自筐体の残りアクションを破棄し、筺体３の再プランニングを実施する（ＳＴ１１１）。ＳＴ１１およびＰ１０からＳＴ１１１の処理は、第２のコンピュータの記憶部に保存されている更新管理情報中の第２のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。
【０１３６】
（９）筺体３はマスタ異常を検出したため、新マスタから指示を受けるまで処理を停止する（ＳＴ２０９）。
【０１３７】
（１０）筺体２は再プランニングしたプランを筐体３に通知する（ＳＴ１１２）。
【０１３８】
（１１）筐体３は受領したプランに従い、ファームアップを続行する（ＳＴ２１０）。
【０１３９】
（１２）筺体３はリブートアクションを実施する（ＳＴ２１１）。
【０１４０】
（１３）筺体３はリブートアクション完了を筐体2に通知する（ＳＴ２１２）。
【０１４１】
（１４）筺体２は筐体3からのアクション完了通知を受け、自身が持つファームアッププ
ランの完了記録を更新する（ＳＴ１１３）。
【０１４２】
（１５）筺体３はSCF Firm Write（２面）アクションに従い、SCFファームアップを実施
する（ＳＴ２１４）。
【０１４３】
（１６）筺体３は筐体2にアクション完了を通知する（ＳＴ２１５）。
【０１４４】
（１７）筺体３はすべてのプランの実行が完了したことを検知し、筺体2に完了通知を行
う（ＳＴ２１６）。
【０１４５】
（１８）筺体２は筐体３の完了通知を受け、システム内のファームアッププランがすべて完了したと認識し、ファームアップを終了させる（ＳＴ１１５）。ＳＴ１１３からＳＴ１１５の処理は、再設定された更新計画にしたがって各コンピュータの制御プログラムの更新を継続することの一例である。
【０１４６】
＜処理例３＞
処理例３は、処理２と同様に、筐体１が筐体２、３からの“バンク切り替え”アクション実行完了を待つ“処理待ち”（図１４ＢのＭ１０８）において、筐体１の異常が発生した場合の例である。ただし、処理例３では、処理例２と異なり、筐体１が再起動される場合の処理を説明する。したがって、筐体１のＭ１０１からＭ１０８の処理、筐体２のＳ１０１からＳ１０８の処理、および筐体３のＳ２０１からＳ２０８の処理は、処理例１の図１４Ａ、図１４Ｂと同様である。したがって、処理例１の（１）から（６）は、処理例3
においても、同様に実施されたものとし、その説明を省略する。また、処理例３では、筐体３の処理は省略する。
【０１４７】
図１７は、ファームアッププランの実行順序１のアクションの完了が記録された後、筐体１、２のファームアッププランが再プランニングされた例である。再プランニング後、筐体２は、筐体１の起動完了を待つための“準備完了待ち”アクションが設定され、その後、デフォルトのファームアッププランに戻っている。一方、筐体１は、実行順序２以降のアクションが実行順序４以降にずれて設定されている。ただし、実行順序２の“処理待ち”アクションは、再プランニング前は筐体２の“バンク切り替え”アクションを待つものであっったが、再プランニングの結果、実行順序２の“処理待ち”アクションは、筐体２の”リブート”の開始を待つアクションとなっている。
【０１４８】
図１８、図１９は、処理例３のフローチャートである。処理例３では、筐体１が“処理待ち”（Ｍ１０８）、筐体２、３が“バンク切り替え”（Ｓ１０７、Ｓ２０７）以降の処理が例示される。
【０１４９】
（７）筐体１が“処理待ち”（Ｍ１０８）の状態で筐体1に異常が発生し、再起動を実施
する（ＭＲ１０９）。処理例３では、筐体1はリブートを実行する（ＭＲ１１１）。シス
テム内にマスタ筐体が不在となったため、筺体２がマスタとなる（ＭＲ１１０、ＭＣ１０９）。
【０１５０】
（８）筺体２はマスタ切り替えの条件である筐体１の異常を検出したので、再プランニングを実行するか否かを図１２に従ってチェックを行う（ＭＣ１１０）。この例では、筺体２に配信されたファームアッププランの実行順序３が実行前であったため、自筺体の再プランニングを行う。スタンバイマスタの筐体２は、マスタ筐体が起動中かをチェックし、起動中であれば“準備完了待ち”アクションを設置する（ＭＣ１１１）。そして、筐体２は、再プランニングしたファームアッププランにしたがってアクションを実行する（ＭＣ１１２）。
【０１５１】
（９）筐体２はファームアッププランを再プランニング後、未完了のアクションから実行する。この例ででは、筐体２は”準備完了待ち”アクションを実行する（ＭＣ１１３）。この処理において、筺体１が故障等により起動してこなかった場合、筺体２が準備完了待ちのままにならないようにタイムアウト値を設ける。タイムアウトが発生したことで、筺
体1が異常となったことを検出し、ファームアップ処理を異常終了させる。
【０１５２】
（１０）筺体１は起動を完了すると、起動完了を筐体２に通知する（ＭＲ１１２、ＭＲ１１３）。筐体２は準備完了待ちアクションを完了に設定する（ＭＣ１１４）。
【０１５３】
（１１）筺体２は筐体1に再プランニングしたファームアッププランを配信する（ＭＣ１
１５）。筐体1は筐体２から再プランニングしたファームアッププランを受信し、未完了
のアクションを実行する（ＭＲ１１４）。ＭＣ１１５の配信は、第１のコンピュータが再起動したときに、第２のコンピュータのプロセッサが第１のコンピュータの更新工程の進捗が更新された更新管理情報を第１のコンピュータに引き渡す処理の一例である。
【０１５４】
（１２）筺体２が”リブート”アクションを実行し（ＭＣ１１６）、アクション完了（"
リブート開始”）を筺体1に通知する。さらに、起動完了後、筐体２は筐体１に起動完了
を通知する（ＭＣ１１７）。筐体１は、アクション完了を受信すると、ファームアッププランの完了記録領域に完了を設定する（ＭＲ１１５）。
【０１５５】
さらに、筐体１は、ファームアッププランの“準備完了待ち”アクションにより、筺体２の起動を待ち合わせる（ＭＲ１１６）。
【０１５６】
（１３）筺体２は筐体１にマスタ切り替えを通知し、筐体１、２はマスタ切り替えを実行する（ＭＲ１１７、ＭＣ１１８）。正常なマスタ切り替えの通知によるマスタ切り替えであるため、筐体1は再プランニングを実施しない。筐体１は“正常な処理として、準備完
了待ち”アクション実行する。なお、ＭＣ１１８の通知によるマスタ切り替えは、ＭＣ１１６のリブートと並行に実行すればよい。
【０１５７】
（１４）筺体２のリブートが完了すると、筺体２から筐体１に対し、起動完了通知を送信する（ＭＣ１１９）。筐体1は筐体２からの起動完了通知を受けて、準備完了待ちアクシ
ョンを完了に設定し（ＭＲ１１８）、次のBank切り替えアクションを実行する（ＭＲ１１９）。
【０１５８】
（１５）筺体２は起動完了したため、次の実行アクションである”SCF Firm Write（２面）”、すなわち、SCFファーム書き込みを実行する（ＭＣ１２０）。
【０１５９】
（１６）筺体２は”SCF Firm Write（２面）”を完了したら筐体1にアクション完了をフ
ァームアッププランの完了記録領域に設定するとともに（ＭＣ１２１）、筐体１に通知する（ＭＣ１２２）。これにより、筺体2のファームアッププランはすべて完了となる（Ｍ
Ｃ１２３）。
【０１６０】
（１７）その後筐体1は”リブート”アクションを実行する（ＭＲ１２２）。筐体1は筐体２に”リブート”アクションの完了を通知し（ＭＲ１２３）、筐体２は、完了記録領域に完了を設定する（ＭＣ１２３）。
【０１６１】
（１８）筺体１は筐体２にマスタ切り替えを通知し、筐体１、２はマスタ切り替えを実行する（ＭＲ１２４、ＭＣ１２４）。筐体２はマスタ切り替えの通知を受信する。筐体２は、既にファームアッププランが完了し、正常なマスタ切り替えの通知を受信したため、何もしない。ただし、ＭＲ１２４の通知によるマスタ切り替えは、ＭＲ１２２のリブートと並行に実行すればよい。
【０１６２】
（１９）リブートにより筐体1が起動完了すると、筺体２に対し起動完了を通知する（Ｍ
Ｒ１２５）。
【０１６３】
（２０）筺体２は筐体１の起動完了を受領後、保持しているファームアッププランを配信する（ＭＣ１２６）。ファームアッププランを受領した筐体1は、未完了のアクションを
実行する（ＭＲ１２６）。ＭＣ１２６の配信は、第１のコンピュータが再起動したときに、第２のコンピュータのプロセッサが第１のコンピュータの更新工程の進捗が更新された更新管理情報を第１のコンピュータに引き渡す処理の一例である。
【０１６４】
（２１）筐体１は、SCF Firm Write（2面）を実行する（ＭＲ１２７）。
【０１６５】
（２２）筐体１は、SCF Firm Write(2面)完了後、筺体２に対し、完了を通知する（ＭＲ
１２８）。
【０１６６】
（２３）筺体２はシステムですべてのプランが完了したことを検出し、マスタ筐体の切り替えを実施する（ＭＣ１２８、ＭＲ１２９）。
【０１６７】
（２４）筺体1は情報システムでのファームアップ完了を認識し、ファームアップ完了と
する（ＭＲ１３０）。
【０１６８】
＜実施形態１の効果＞
実施形態１の情報システムによれば、マスタ装置１１０が異常であることを検知したときでも（Ｇ７）、スタンバイマスタ装置１２０は、ファームアッププラン格納領域１２２Ｂに格納されたファームアッププランにしたがってファームアップを可能な範囲で継続できる。また、スレーブ装置１３０は、スタンバイマスタ装置１２０の指示でファームアップを可能な範囲で継続できる（Ｇ８からＧ１９，Ｕ１２からＵ１５）。
【０１６９】
また、スタンバイマスタ装置１２０のファームアップアップに伴うリブート後にマスタ装置１１０が異常であることを検知したときも（Ｇ７、Ｕ１１）も同様である。すなわち、スタンバイマスタ装置１２０はファームアッププラン格納領域１２２Ｂに格納されたファームアッププランにしたがって（Ｐ１４からＰ１６）、自身およびスレーブ装置１３０に対してファームアップを可能な範囲で継続させることがきる（Ｇ８からＧ１９，Ｕ１２からＵ１５）。
【０１７０】
また、マスタ装置１１０のファームアップアップに伴うリブート後にマスタ装置１１０が異常であることを検知したとき（Ｇ７、Ｕ１１）も同様である。すなわち、スタンバイマスタ装置１２０は、ファームアッププラン格納領域１２２Ｂに格納されたファームアッププランにしたがって（Ｐ１４からＰ１６）、自身およびスレーブ装置１３０にファームアップを可能な範囲で継続させることができる（Ｇ８からＧ１９，Ｕ１２からＵ１５）。
【０１７１】
また、マスタ装置１１０のファームアップアップに伴うリブート前、かつ、スタンバイマスタ装置１２０のファームアップに伴うリブート前にマスタ装置１１０の異常を検知したとき（Ｇ７、Ｔ１１、ＳＴ１０９）も同様である。すなわち、スタンバイマスタ装置１２０は、ファームアッププラン格納領域１２２Ｂに格納されたファームアッププランのうち、リブートを伴う処理を削除して、ファームアッププランを再プランニングする（Ｐ１０、Ｔ１２、ＳＴ１１０、ＳＴ１１１、Ｐ１０〜Ｐ１２）。その結果、スタンバイマスタ装置１２０は自身およびスレーブ装置１３０に制御プログラムの更新を継続させることができる（Ｔ１３〜Ｔ１５、ＳＴ１１３からＳＴ１１５）。
【０１７２】
また、スタンバイマスタ装置１２０は、マスタ装置１１０が異常であることを検知した後マスタ装置１１０が再起動したときにも（Ｇ６、Ｐ６でＹＥＳ、ＭＲ１１１）、ファームアップを継続できる。すなわち、マスタ装置１１０の再起動後の処理として、スタンバ
イマスタ装置１２０自身のリブートを伴う処理（ＭＣ１１３〜ＭＣ１１８）をファームアッププランに設定するからである（Ｐ７）。
【０１７３】
一方、スタンバイマスタ装置１２０は、所定期間内にマスタ装置１１０の再起動を検知できないときに（Ｐ９でＮＯ）、マスタ装置１１０以外のスレーブ装置１３０等のファームアップの完了を待つ処理をスタンバイマスタ装置１２０のファームアッププランの末尾に設定する（Ｐ１０）。したがって、この場合も、スタンバイマスタ装置１２０は、ファームアップを継続できる。
【０１７４】
また、マスタ装置１１０がリブートしたときには、スタンバイマスタ装置１２０は、マスタ装置１１０の完了記録領域が記録されたファームアッププランをマスタ装置１１０に引き渡す。したがって、マスタ装置１１０はリブート後に完了記録領域が記録されたファームアッププランを復元できる。
【０１７５】
［実施形態２］
図２０は、実施形態２に係る情報システムを例示する図である。図２０の情報システムは、マスタ装置１１０と、スレーブ装置２２０、２３０を有している。ただし、実施形態２おいて、スレーブ装置の数が２台に限定される訳ではない。したがって、情報システムはスレーブ装置を３台以上有してもよい。
【０１７６】
上記実施形態１では、マスタ装置１１０とスタンバイマスタ装置１２０を含む情報処理装置の処理を例示した。すなわち、実施形態１では、スタンバイマスタ装置１２０は１台設けられた。一方、実施形態２では、スレーブ装置２２０、２３０は、いずれもスタンバイマスタとなることができる。
【０１７７】
例えば、情報システム内の各筐体、各装置は相互に識別可能な識別番号を付与されるものとする。スレーブ装置２２０、２３０は、識別番号順の優先順位で、スタンバイマスタになるとものすることができる。すなわち、スレーブ装置２２０、２３０の若番装置がスタンバイマスタの役割を肩代わりすることで機能実現が可能である。
【０１７８】
また、例えば、情報システム内の各装置は、スタンバイマスタの候補となるスレーブ装置を定義したリストを相互に交換することもできる。リストの先頭から順にスタンバイマスタとなる優先順位が高いものとして、スレーブ装置からスタンバイマスタを選定する優先順位を規定すればよい。このような識別番号による優先順位、スタンバイマスタの候補のリスト等は、マスタ装置１１０、スレーブ装置２２０、２３０それぞれの定義テーブル等に格納しておけばよい。図２０に例示したスレーブ装置１２０、１３０の処理は、複数の第２のコンピュータのプロセッサは、所定の優先順で各コンピュータの制御プログラムの更新を継続することの一例である。
【０１７９】
マスタ装置１１０が故障した場合、スレーブ装置２２０がスタンバイマスタとなり、スレーブ装置２３０に対して再プランニングを行う役割を担う。また、マスタ装置１１０およびスレーブ装置２２０が故障した場合には、スレーブ装置２３０が他のスレーブ装置に対して再プランニングを行う役割を担う。この構成により、スレーブ装置を複数有する情報システムは、マスタ・スタンバイマスタの両方が故障した場合でも、再プランニングによりファームアップを継続させることができる。
【０１８０】
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させること
により、その機能を提供させることができる。
【０１８１】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（リードオンリーメモリ）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ
等に固定された記録媒体としても利用可能である。
【符号の説明】
【０１８２】
１１    ＣＰＵ 
１２    主記憶部
１３    外部記憶部
１６    通信部
１１０    マスタ装置
１１２、１２２、１３２  ＲＡＭ
１１２Ａ、１２２Ａ、１３２Ａ  ファームアップ部
１１２Ｂ、１２２Ｂ、１３２Ｂ  定義テーブル領域
１１２Ｃ、１２２Ｃ、１３２Ｃ  ファームアッププラン格納領域
１１８、１２８、１３８  ファームウェア
１１８Ａ、１２８Ａ、１３８Ａ  記憶部
１２０    スタンバイマスタ装置
１３０    スレーブ装置
【図１】
0006451522.tif 000007
【図２】
0006451522.tif 000008
【図３】
0006451522.tif 000009
【図４】
0006451522.tif 000010
【図５】
0006451522.tif 000011
【図６】
0006451522.tif 000012
【図７】
0006451522.tif 000013
【図８】
0006451522.tif 000014
【図９】
0006451522.tif 000015
【図１０】
0006451522.tif 000016
【図１１】
0006451522.tif 000017
【図１２】
0006451522.tif 000018
【図１３】
0006451522.tif 000019
【図１４Ａ】
0006451522.tif 000020
【図１４Ｂ】
0006451522.tif 000021
【図１４Ｃ】
0006451522.tif 000022
【図１５】
0006451522.tif 000023
【図１６】
0006451522.tif 000024
【図１７】
0006451522.tif 000025
【図１８】
0006451522.tif 000026
【図１９】
0006451522.tif 000027
【図２０】
0006451522.tif 000028