(57)【特許請求の範囲】
【請求項１】
自計算機の状態情報を他計算機にメッセージとして送信するメッセージ手段と、前記メッセージに対して他計算機から前記状態情報に応じた同期準備の情報を得て同期を開始する同期手段と、前記同期手段の指示に基づいて前記状態情報に応じて動作を変更する同期実行プログラムとを有し、前記状態情報は状態管理手段に保持され、前記メッセージ手段は、メッセージ管理手段と、前記メッセージ管理手段から通知のメッセージを記録する共に、ハードウエアからの状態変更に係る情報を受けるログメッセージ管理手段と、を含んでなることを特徴とする計算機システム。
【請求項２】
前記メッセージ管理手段は、前記ログメッセージ管理手段から通知されたメッセージについて他計算機へ伝達し、同期手段から通知されたタイミングでログメッセージ管理手段と前記状態管理手段へ出力するメッセージ選択することを特徴とする請求項１記載の計算機システム。
【請求項３】
状態情報に関する情報を管理する状態管理テーブルを有することを特徴とする請求項２記載の計算機システム。
【請求項４】
前記同期実行プログラムは、同期手段よりプログラムの開始を同期して実行され、前記状態管理テーブルを参照し、プログラムの挙動が変化することを特徴とする請求項３記載の計算機システム。
【請求項５】
状態変更を管理する状態変更管理テーブルを有し、前記状態管理手段は、前記メッセージ管理手段より通知されたメッセージに対して、前記状態変更管理テーブルを参照し、状態管理テーブルの変更の有無を決定することを特徴とする請求項３記載の計算機システム。
【請求項６】
状態変更を管理する状態変更管理テーブルを有し、前記状態管理手段は、前記メッセージ管理手段より通知されたメッセージに対して状態管理テーブルの変更が必要であるとき、状態変更管理テーブルを元に状態管理テーブルを変更することを特徴とする請求項３記載の計算機システム。
【請求項７】
前記メッセージ管理手段は、前記ログメッセージ管理手段から通知されたメッセージを元に通知メッセージデータを作成し、他の計算機へ転送することを特徴とする請求項３記載の計算機システム。
【請求項８】
前記メッセージ管理手段は、他の計算機から通知された通知メッセージデータを受信し、メッセージ管理テーブルに受信した通知メッセージデータを格納することを特徴とする請求項３記載の計算機システム。
【請求項９】
前記メッセージ管理手段は、前記同期手段から通知を受信したタイミングでメッセージ管理テーブルを参照し、前記メッセージ管理テーブルに通知メッセージデータが存在した際には出力するメッセージを選択することを特徴とする請求項３記載の計算機システム。
【請求項１０】
前記メッセージ管理手段は、前記ログメッセージ管理手段と状態管理手段へ選択されたメッセージを通知し、前記同期手段へメッセージの出力と計算機の状態変更が終了したことを通知することを特徴とする請求項３記載の計算機システム。
【請求項１１】
プログラムの開始と状態情報一致化のタイミングを同期する同期手段と、前記同期手段より計算機においてプログラムの開始を同期して実行され計算機の状態情報を参照し、計算機の状態情報を元に動作を変更する同期実行プログラムと、計算機の状態情報の変更および状態情報を保持する状態管理手段と、メッセージを管理するメッセージ管理手段と、前記同期実行プログラムおよびハードウエア装置から出力されるメッセージを記録および前記メッセージ管理手段へ通知し、メッセージ管理手段から通知のメッセージを記録するログメッセージ管理手段と、前記ログメッセージ管理手段から通知されたメッセージについて他の計算機へ伝達し、前記同期手段から通知されたタイミングで前記ログメッセージ管理手段と前記状態管理手段へ出力するメッセージ選択し、計算機の状態情報を一致化およびメッセージの出力が完了したことを同期手段へ通知するメッセージ管理手段を備えることを特徴とする計算機システム。
【請求項１２】
他の計算機と通信可能に接続され、同期実行を行うための処理部よりプログラムの開始を同期して実行され計算機の状態情報を参照することで動作を変更する同期実行プログラムと、各計算機の状態情報を保持する状態管理処理部と、プログラムまたはハードウエア装置が出力するメッセージを記録するログメッセージ管理処理部，自計算機内部からログメッセージ管理処理部へ出力されたメッセージについて他の計算機へ伝達し、同期実行をおこなうための処理部より通知があったタイミングで出力するメッセージを選択し、状態管理処理部へ選択されたメッセージを通知し、選択されたメッセージが自計算機より出力
したメッセージではない場合は、ログメッセージ管理処理部へメッセージを通知するメッセージ管理処理部を有することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムおよび計算機の管理方法に関するものである。
【背景技術】
【０００２】
計算機システムにおいて計算機を多重化することで、ハードウエアの故障に対しても、システム内の処理を継続することができるようにして、システム稼働時間を長時間化する技術が存在する。
【０００３】
例えば、システムの停止時間を最小化するための計算機としてフォールトトレラントコンピュータ（Fault Tolerant Computer）がある。この技術では、複数の計算機にて同じ処理を行い、切り替わる際には処理結果などを他の計算機に引き継ぐ処理をなくし、計算機が切り替わる際の時間を短縮しつつ、ＣＰＵの障害時にも処理の継続可能とする（特許文献１参照）。
【０００４】
また、例えば、互いに独立して同一処理を実行する２つの装置を備え、一方の装置においてステータスを取得し、取得されたステータスに応じた共通のイベントを、両方の装置において発生させる技術が知らされている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−３１４７４４号公報
【特許文献２】特開２００６−２０９５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１に記載されている技術においては、専用のハードウエアによって各計算機が同一クロックが供給されるように接続されているので、各計算機のメモリ，キャッシュのリソース状況が一致しないことより、各計算機においてプログラムの処理時間に差が生じる。また、一般的なネットワークを使用するには、同一クロックを供給することができないためプログラム開始と終了のタイミングを各計算機であわせることができず、各計算機において同期がとれない。
【０００７】
上述した特許文献２に記載の技術においては、計算機の状態情報を取得し、不一致のときいずれかの状態情報を選択しているところ、各計算機で発生するハードウエア異常が同一クロックを供給することができないため非同期で発生するが、計算機の状態変化が同期すること前提としているため計算機個別で非同期に発生する計算機の状態変化において状態情報が不一致であるために各計算機で異なる動作をする。
【０００８】
本発明の目的は、各計算機が同じ処理を行いつつ、同期実行を継続することが可能な計算機システム及び計算機の管理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明では、自計算機の状態情報を他計算機にメッセージとして送信するメッセージ手段と、前記メッセージに対して他計算機から前記状態情報に応じた同期準備の情報を得て同期を開始する同期手段と、前記同期手段の指示に基づいて前記状態情報を応じて動作を変更する同期実行プログラムとを有することを特徴とする計算機システム。
【発明の効果】
【００１０】
本発明によれば、各計算機が同じ処理を行い、同期実行を継続することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の計算機システム構成例を示す図である。
【図２】本実施形態の各計算機の機能を示すブロック図である。
【図３】同期機構の動作を示すフローチャートである。
【図４】同期プログラムの動作を示すフローチャートである。
【図５】ログメッセージ管理機構の動作を示すフローチャートである。
【図６】メッセージ管理機構のメッセージ送信の動作のフローチャートを示す図である。
【図７】メッセージ管理機構の通知メッセージのデータ構成を示す図である。
【図８】メッセージ管理機構のメッセージ受信の動作のフローチャートを示す図である。
【図９】メッセージ管理機構のメッセージ管理テーブルのデータ構成を示す図である。
【図１０】メッセージ管理機構の出力メッセージ選択の動作のフローチャートを示す図である。
【図１１】状態管理機構の状態変更の動作のフローチャートを示す図である。
【図１２】状態管理機構の状態変更管理テーブルのデータ構造を示す図である。
【図１３】状態管理機構の状態管理テーブルのデータ構造を示す図である。
【図１４】各計算機の状態情報を一致化する処理の例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下に実施形態について図面を用いて詳細に説明する。なお、各機能をブロックで表し、「…機構」と名付けるか、これは、「…手段」と称しても良く、例えば、全体を計算機（１つまたは複数）で実現したとき各機能はソフトウエアでも、また別構成のハードウエアでも実現できるものである。
【００１３】
図１は本実施形態の計算機システム１０は、演算処理を行う計算機１１〜１３と、演算処理の結果を照合する照合ノード２１〜２６を備えている。
【００１４】
ｎ（ｎは２以上の自然数）台からなる複数の計算機１１〜１３は、それぞれ多重化ネットワーク１に接続し、ｍ（ｍは２以上の自然数）台からなる複数の照合ノード２１〜２６は、それぞれ多重化ネットワーク１と外部ネットワーク２に接続している。
【００１５】
計算機１１〜１３および照合ノード２１〜２６は、“計算機１”〜“計算機ｎ”および“照合ノード１”〜“照合ノードｍ”はシステム全体でユニークとなる番号が割り振られており、同じ番号は存在しないものとする。
【００１６】
なお、多重化ネットワーク１は、ＬＡＮ１系３，ＬＡＮ２系４を有する２重化以上の多重化ネットワークであり、外部ネットワーク２は２重化以上の多重化ネットワーク１でも可能とする。また、この２つのネットワークはネットワークに限定しない。すなわちバス状でもスター状であってもよい。
【００１７】
各照合ノード２１〜２６は２台のノードで１つの対として構成されており、図１においてはｍ組みの照合ノードペア３１〜３３として構成されている。照合ノードペア３１〜３３のうち、１組のペアが主系となる。このように、照合ノードペア間において主従を構成する。
【００１８】
主系ペア３１には、“主系”が割り振られており、各従系ペアには３２，３３にはそれぞれ“従系１”〜“従系ｍ−１”が割り振られている。システム全体においては同じペア番号は存在しないものとする。
【００１９】
主系ペア３１は計算機１１〜１３から出力された送信データを比較照合し、計算機システム１０から外部ネットワーク２へ出力する。
【００２０】
また、主系ペア３１は外部から受信するデータは、多重化ネットワーク１を介して計算機１１〜１３へブロードキャスト通信をする。
【００２１】
図１に記載の計算機システム１０は、複数の計算機１１〜１３を多重化ネットワーク１で接続し、計算機１１〜１３でプログラムの同期を取りながら実行する。さらに、計算機１１〜１３から出力されるデータを主系ペア３１において比較照合し、外部ネットワーク１へ出力することで、フォールトトレラントシステムを構成する計算機システムである。
【００２２】
図２は計算機１１〜１３内の構成を詳細に示す図である。
【００２３】
図１の計算機は、図２の計算機１（１００）および計算機２（１０１）に対応する。また、図１の多重化ネットワーク１は、多重化ネットワーク１１０に対応するものである。
【００２４】
図２は、少なくとも２台の計算機１（１００）と計算機２（１０１）が多重化ネットワーク１１０によって接続されている。
【００２５】
計算機１（１００）と計算機２（１０１）は同一の構成を有しており、以下、詳細な構造については計算機１（１００）についてのみ説明する。
【００２６】
本発明における計算機１（１００）は、後述する同期実行プログラム１３０が同期待ちに到達し、各計算機のメッセージ管理機構がメッセージを送信および受信が完了したことを示す通知を受信したとき、後述するメッセージ管理機構１６０へ起動の通知およびメッセージ管理機構の処理が終了したことを示す通知を受信することで各計算機の状態情報の一致化を行い、各計算機で同期をとって実行するために後述する同期実行プログラム１３０の起動タイミングを制御する同期機構１２０と、
同期機構１２０より起動タイミングを制御され、後述する状態管理機構１７０の状態管理テーブルの内容によって挙動が変化し、プログラムに障害が発生した際には後述するログメッセージ管理機構１５０へメッセージを出力する同時実行プログラム１３０と、
障害または障害から回復した際に発生する状態変更のメッセージを後述するログメッセージ管理機構１５０へ出力するハードウエア装置１４０と、
同期実行プログラム１３０およびハードウエア装置１４０から出力されたメッセージを記録する。
【００２７】
また、後述するメッセージ管理機構１６０へメッセージの内容を通知し、後述するメッセージ管理機構１６０から通知されたメッセージを記録するログメッセージ管理機構１５０と、
ログメッセージ管理機構１５０から通知されたメッセージに対して、後述する通知メッセージデータを作成し、自計算機の後述するメッセージ管理機構が有するメッセージ管理テーブルへ通知メッセージデータを格納し、通知メッセージデータを後述する多重化ネットワーク１１０を介して他の計算機へ転送し、メッセージを転送中であることを示す通知を同期機構へ通知する。
【００２８】
また、他の計算機から後述する通知メッセージデータの受信があった場合には、後述するメッセージ管理機構が有するメッセージ管理テーブルに後述する通知メッセージデータの元に転送該当計算機の通知メッセージデータを扱うテーブルへ格納し、メッセージを受信したことを同期機構へ通知する。
【００２９】
また、同期機構１２０より同期実行プログラム１３０が同期待ちに入ったことを示す通知を受信すると状態変更の順番を一致化するために出力するメッセージを後述するメッセージ管理テーブルの通知メッセージデータを比較することで決定し、後述する状態管理機構１７０へ通知し、状態管理機構の処理が完了したことを待ち合わせる。また、メッセージが自計算機より出力されたものでない場合は、ログメッセージ管理機構１５０へ通知し、メッセージ管理機構の処理が終了した場合には、同期機構へ処理が終了したことを通知するメッセージ管理機構１６０と、
メッセージ管理機構１６０から通知があったメッセージに対する状態変更を行うか後述する状態管理機構が有する状態変更管理テーブルを元に判断し、後述する状態管理機構が有する状態管理テーブルの変更が必要である場合には後述する状態管理機構が有する状態管理テーブルを変更し、処理が終了したことをメッセージ管理機構へ通知する状態管理機構１７０を備える。
【００３０】
図３は同期機構１２０の動作のフローチャートを示す。
【００３１】
図３において、同期機構１２０は、同期実行プログラムが同期待ちになったことを示す通知を受信し、各計算機の同期実行プログラムが同期待ちになったことと後述するメッセージ管理機構のメッセージ転送および受信が完了したことを待ち合わせると（Ｓ１）、メッセージ管理機構へ各計算機の状態を一致化するための通知を送信する（Ｓ２）。また、メッセージ管理機構から状態が一致化されたことを示す通知の受信を全計算機で待ち合わせると（Ｓ３）、同期実行プログラムへ起動の通知をする（Ｓ４）。
【００３２】
図４は同期実行プログラム１３０動作のフローチャートを示す。
【００３３】
図４において、同期実行プログラム１３０は、同期機構１２０に対して同期起動待ちであることを通知する（Ｓ１１）。
【００３４】
同期機構１２０より起動されると、後述する状態管理機構１７０が有する状態管理テーブルから状態を読み込み（Ｓ１２）、状態管理テーブルの内容に変更が生じたか判断し（Ｓ１３）、変更が生じた場合には状態変更に伴う動作を行う（Ｓ１４）。
【００３５】
図５はログメッセージ管理機構１５０の動作フローチャートを示す。
【００３６】
図５において、ログメッセージ管理機構１５０は、本機構へのメッセージを受信すると（Ｓ２１）、メッセージを本機構の有するバッファへ書き込み（Ｓ２２）、メッセージをメッセージ管理機構へ通知する（Ｓ２３）。
【００３７】
図６はメッセージ管理機構１６０が他の計算機へ通知メッセージデータを転送する動作のフローチャートを示す。
【００３８】
図６において、通知メッセージデータ転送は、状態変更が発生したハードウエア装置１４０または同期実行プログラム１３０からログメッセージ管理機構１６０へ出力されたメッセージを受信と（Ｓ３１）、同期機構へ通知メッセージデータを送信中であることを示す通知を送信する（Ｓ３２）。
【００３９】
また、後述する通知メッセージデータを作成し（Ｓ３３）、後述するメッセージ管理テーブルに存在する該当計算機の通知メッセージデータを扱うテーブルへ通知メッセージデータを格納し（Ｓ３４）、図２に記載の多重化ネットワーク１１０へ接続されている全計算機へ通知メッセージデータの転送を行う（Ｓ３５）。
【００４０】
図７はメッセージ管理機構１６０が扱う通知メッセージデータのデータ構造について示す。
【００４１】
図７において、通知メッセージデータ３１０は、メッセージが出力された計算機を示す識別番号である計算機番号３１１と、ログメッセージ管理機構１５０へ通知されたメッセージ３１２と、状態変更が発生したハードウエア装置１４０または同期実行プログラム１３０からメッセージが出力された時間を示すメッセージ出力時間３１３と、メッセージ３１２に対するＣＲＣ値のデータ３１４によって構成される。
【００４２】
図８においてメッセージ管理機構１６０の他の計算機から通知メッセージデータ３１０を受信する動作のフローチャートを示す。
【００４３】
図８において、通知メッセージデータ受信は、通知メッセージデータ３１０を他の計算機から受信すると（Ｓ４１）、後述するメッセージ管理機構１６０が有するメッセージ管理テーブルに通知メッセージデータの計算機番号３１１を元に転送該当計算機の通知メッセージデータ３１０を扱うテーブルへ格納する（Ｓ４２）。また、同期機構へ通知メッセージデータを受信したことを示す通知を送信する（Ｓ４３）。
【００４４】
図９において、メッセージ管理機構１６０が有するメッセージ管理テーブルのデータ構造について示す。
【００４５】
図９において、メッセージ管理テーブル３２０は、図１に記載の計算機１１〜１３の通知メッセージデータ３１０を格納するテーブル３２１〜３２３を持ち、通知メッセージデータ３１０を先頭から保持するデータ構造で構成される。
【００４６】
図１０においてメッセージ管理機構１６０の出力メッセージ選択の動作のフローチャートを示す。
【００４７】
図１０において、出力メッセージ選択は、同期機構１２０より同期実行プログラム１３０が同期待ちに遷移したことを示す通知を受信すると（Ｓ５１）、メッセージ管理機構１６０のメッセージ管理テーブル３２０に通知メッセージデータ３１０が存在するか判断する（Ｓ５２）。
【００４８】
メッセージ管理テーブル３２０に通知メッセージデータ３１０が存在しないときは、各計算機において同期機構１２０へメッセージ管理機構１６０の処理が終了したことを通知する（Ｓ５３）。
【００４９】
また、メッセージ管理テーブル３２０に通知メッセージデータ３１０が存在するときは、メッセージ管理テーブル３２０の各計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３から通知メッセージデータ３１０を参照し、各計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３に存在する通知メッセージデータ３１０においてメッセージ出力時間３１３とメッセージのＣＲＣ３１４を比較する（Ｓ５４）。メッセージ管理テーブル３２０の各計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３においてメッセージ出力時間３１３とメッセージのＣＲＣ３１４が一致している通知メッセージデータ３１０が存在するときは一致している通知メッセージデータのなかでメッセージ出力時間３１３が最も古い通知メッセージデータ３１０を選択する（Ｓ５５）。
【００５０】
また、メッセージ管理テーブルの各計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３においてメッセージ出力時間３１３とメッセージのＣＲＣ３１４が一致している通知メッセージデータ３１０が存在しないときは、メッセージ出力時間３１３が最も古い通知メッセージデータ３１０を出力メッセージとして選択する。また、このとき各計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３においてメッセージ出力時間３１３が同じものが複数存在したときは計算機番号３１１が小さい通知メッセージデータを選択する（Ｓ５６）。
【００５１】
また、選択された通知メッセージデータ３１０から後述する状態管理機構１７０へメッセージ３１２を通知する（Ｓ５７）。
【００５２】
また、後述する状態管理機構の状態変化の処理が終了したことを示す通知を受信するまで待ち合わせる（Ｓ５８）。
【００５３】
また、選択された通知メッセージデータ３１０の計算機番号３１１が自計算機の番号でなかった場合には、ログメッセージ管理機構へ通知メッセージデータのメッセージ３１２を通知する（Ｓ５９）。
【００５４】
また、メッセージ管理テーブル３２０の計算機の通知メッセージデータ３１０を格納するテーブル３２１〜３２３から選択された通知メッセージデータ３１０を削除する（Ｓ６０）。
【００５５】
図１１において状態管理機構１７０の状態変更の動作のフローチャートを示す。
【００５６】
図１１において、状態変更は、メッセージ管理機構１６０より通知されたメッセージ３１２を受信すると（Ｓ７１）、後述する状態管理機構１７０が有する状態変更管理テーブルに存在するメッセージであるか判断し（Ｓ７２）、状態変更管理テーブルに存在するメッセージである場合には、状態変更管理テーブルの内容において状態が変更となる後述する状態管理機構が有する状態管理テーブルの状態遷移を行う（Ｓ７３）。また、状態管理機構の処理が終了したことをメッセージ管理機構へ通知する（Ｓ７４）。
【００５７】
図１２において状態管理機構１７０が有する状態変更管理テーブルのデータ構造について記載する。
【００５８】
図１２において、状態変更管理テーブル４１０は、メッセージ４１１に対して後述する状態管理テーブルの状態遷移が必要な計算機４１２，ハードウエア装置４１３，後述する状態管理テーブルの状態遷移を定義した４１４のデータテーブルによって構成される。
【００５９】
図１３において状態管理機構が有する状態管理テーブルのデータ構造について記載する。
【００６０】
図１３において、状態管理テーブル４２０は、多重化ネットワーク１で接続されている各計算機４２１〜４２３を構成するハードウエア装置４２４，４２６および４２８と、ハードウエア装置の状態４２５，４２７および４２９を表すデータテーブルで構成される。
【００６１】
図１４において、タイミングチャートを示す。
【００６２】
図１４の計算機５００では、同期実行プログラム５１０と、同期機構５２０と、ログメッセージ管理機構５３０と、メッセージ管理機構５４０と、ステータス管理機構５５０を示している。
【００６３】
また、計算機５０１では同期実行プログラム５１１と、同期機構５２１と、ログメッセージ管理機構５３１と、メッセージ管理機構５４１と、ステータス管理機構５５１を示している。
【００６４】
計算機５００においてハードウエア装置から状態変更メッセージが出力されるとａ１、
また、ログメッセージ管理機構５３０がメッセージを記録し、メッセージ管理機構５４０へメッセージを通知するａ２と、
また、メッセージ管理機構５４０が通知メッセージデータを送信中であることを示す通知を同期機構５２０へ通知するａ３と、
また、メッセージ管理機構５４０がメッセージ受信すると通知メッセージデータを作成し、多重化ネットワークで接続されている全計算機へ通知メッセージデータを転送するａ４と、
また、メッセージ管理機構５４１が通知メッセージデータを受信したことを同期機構５２１へ通知するｂ５と、
また、同期機構５２１が同期機構５２０へ通知メッセージを受信したことを通知するｂ６と、
また、同期実行している同期実行プログラム５１０および５１１が同期待ち合わせに遷移するａ７，ｂ７と、
また、各計算機の同期機構５２０および５２１が各計算機の同期実行プログラムが同期待ちになっていることと通知メッセージデータの送受信が完了していることを確認するｃ１と、
また、同期機構５２０および５２１はメッセージ管理機構５４０および５４１へメッセージの出力と各計算機の状態を一致化するために通知するａ８，ｂ８と、
また、メッセージ管理機構５４０，５４１は状態変化の順番を一致化するために出力する通知メッセージデータ３１０を選択し、状態管理機構５５０，５５１へ通知メッセージデータ３１０のメッセージ３１２通知するａ９，ｂ９と、
また、状態管理機構５５０および５５１において状態情報の更新が終了したことを通知するａ１０，ｂ１０と、
また、メッセージ管理機構５４１からログメッセージ管理機構５３１へメッセージを出力し、ログメッセージ管理機構５３１がメッセージを記録するｂ１１と、
また、メッセージ管理機構５４０および５４１から処理が終了したことを同期機構５２０および５２１へ通知するａ１２，ｂ１２と、
また、各計算機の同期機構５２０および５２１がメッセージ管理機構５４０および５４１から処理が終了したことを待ち合わせるｃ２と、
また、同期機構５２０および５２１が同期実行プログラム５１０および５１１を起動するａ１３，ｂ１３タイミングチャートで処理を行う。
【００６５】
このように、複数の計算機を一般的なネットワークで接続した計算機システムにおいて、計算機が持つ状態情報を一致化することで、計算機の状態情報を参照し、計算機の状態情報によってプログラムの挙動が変化する同期実行プログラムにおいても同期実行することを可能とする。
【００６６】
以上説明の実施例の特徴を要約すると、一般的なネットワークに接続され同一時刻に同一プログラムを実行することでフォールトトレラントシステムを実現する各計算機は、プログラムの開始と状態情報一致化のタイミングを同期する同期機構１２１より実行され状態管理機構１７１が保持する状態管理テーブルを参照し、計算機の状態情報を元に動作を変更する同期実行プログラム１３０を備えている。
【００６７】
また、同期実行プログラム１３０およびハードウエア装置１４０より出力される状態変更を通知するメッセージを受け取りメッセージ管理機構１６１へ通知し、メッセージ管理機構１６１が保持するメッセージ管理テーブルから状態変更の順番を一致化するために選択されたメッセージを受け取るログメッセージ管理機構１５１を備えている。
【００６８】
また、ログメッセージ管理機構１５１から受け取ったメッセージについて情報を付加し作成した通知メッセージデータを自計算機のメッセージ管理テーブルに格納および他の計算機へ伝達する。
【００６９】
また、同期機構１２１から状態情報一致化の通知を受信したタイミングでメッセージ管理テーブルに格納されている通知メッセージデータに対して各計算機で状態変更の順番を一致化するために出力する順序を決定し、状態管理機構１７１へ選択されたメッセージを通知し、メッセージが自計算機より出力されたものでない場合は、ログメッセージ管理機構１５１へメッセージを通知するメッセージ管理機構１６１を備えている。
【００７０】
また、一般的なネットワークに接続された計算機の各計算機の状態を表す状態情報を保持する状態管理テーブルを有し、メッセージ管理機構１６１から通知があったメッセージに対して状態情報の変更が必要な場合には、状態変更テーブルを元に状態管理テーブルの内容を変更する状態管理機構１７１を備える。
【００７１】
これにより各計算機の状態情報を一致化する機能を実現し、複数台の計算機に非同期に発生する状態変化が発生しても各計算機において状態が一致化しているため同期実行プログラムの挙動を一致することが可能となり同時実行プログラムの実行を継続することが可能となる。
【００７２】
このように、複数の計算機を一般的なネットワークで接続し、同一時刻に同一プログラムを実行する計算機システムにおいて、各計算機で同期および非同期に計算機の状態変更が発生した場合においても各計算機間で状態情報を一致化することが可能であり、各計算機が保持する状態情報を参照するプログラムにおいても各計算機が同じ処理を行い、同期実行を継続することが可能となり、また各計算機は自計算機が持つ状態情報を参照することでネットワークで接続された全計算機の状態情報を知ることができる。
【００７３】
なお、上述した本実施の形態例に限らず、特許請求の範囲に記載された本発明の要旨を逸脱しない限り、適宜変更しうることは言うまでもない。
【符号の説明】
【００７４】
１００  計算機１
１０１  計算機２
１１０  多重化ネットワーク
１２０，１２１  同期機構
１３０，１３１  同期実行プログラム
１４０，１４１  ハードウエア装置
１５０，１５１  ログメッセージ管理機構
１６０，１６１  メッセージ管理機構
１７０，１７１  状態管理機構
【図１】
0005560113.tif 000002
【図２】
0005560113.tif 000003
【図３】
0005560113.tif 000004
【図４】
0005560113.tif 000005
【図５】
0005560113.tif 000006
【図６】
0005560113.tif 000007
【図７】
0005560113.tif 000008
【図８】
0005560113.tif 000009
【図９】
0005560113.tif 000010
【図１０】
0005560113.tif 000011
【図１１】
0005560113.tif 000012
【図１２】
0005560113.tif 000013
【図１３】
0005560113.tif 000014
【図１４】
0005560113.tif 000015