(57)【要約】【課題】冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現した情報処理装置を提供する。【解決手段】実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。【選択図】図２
2012138841.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置において、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、
を具備する情報処理装置。
【請求項２】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項１記載の情報処理装置。
【請求項３】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項２記載の情報処理装置。
【請求項４】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項３記載の情報処理装置。
【請求項５】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項４記載の情報処理装置。
【請求項６】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項２記載の情報処理装置。
【請求項７】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項６記載の情報処理装置。
【請求項８】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項７記載の情報処理装置。
【請求項９】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置における動作制御方法であって、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出することと、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えることと、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わることと、
を具備する動作制御方法。
【請求項１０】
前記異常を検出することは、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記冗長構成への参加要求として前記識別情報を要求し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項９記載の動作制御方法。
【請求項１１】
前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱することをさらに具備し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する情報処理装置に送信し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項１０記載の動作制御方法。
【請求項１２】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項１１記載の動作制御方法。
【請求項１３】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項１２記載の情報処理装置。
【請求項１４】
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項１０記載の動作制御方法。
【請求項１５】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項１４記載の動作制御方法。
【請求項１６】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項１５記載の動作制御方法。
【請求項１７】
ネットワークを介して接続される他のコンピュータと冗長構成を構築するコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段、
として動作させるものであるプログラム。
【請求項１８】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項１５記載のプログラム。
【請求項１９】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項１８記載のプログラム。
【請求項２０】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項１９記載のプログラム。
【請求項２１】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項２０記載のプログラム。
【請求項２２】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項１８記載のプログラム。
【請求項２３】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項２２記載のプログラム。
【請求項２４】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項２３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置に好適な動作制御技術に関する。
【背景技術】
【０００２】
耐故障性を高めるため、または、負荷分散を図るために、複数の情報処理装置を疎結合して冗長構成を構築することが広く行われている。インターネットを介して各種サービスを提供するサーバ機能は、冗長構成で構築することがもはや一般的となっている。
【０００３】
そして、この冗長構成については、例えば異常発生箇所を速やかに特定するための機構など、様々な仕組みがこれまでも提案されている。
【０００４】
なお、近年のパブリックネットワークでの技術として、クラウド技術が存在する。クラウドでは、サーバの冗長構成だけではなく、サーバシステムで提供するサービスを構成するデータベース等のアプリケーション層を含む冗長構成技術が提案されている。クラウドで実現されている冗長構成技術としては、「コンシステントハッシング」、「分散ハッシュテーブル（ＤＨＴ）」などがある。
【０００５】
コンシステントハッシングは、複数のサーバで構成されるデータベースを維持するために、データの配置とサーバの増加(または入れ替え)とを実現する手法である。整数値を取るＩＤを生成するハッシュ関数を使用した空間を設定する。ＩＤ空間は、使用するハッシュ関数により２＊＊１２８−１（ＭＤ５）や２＊＊１６０−１（ＳＨＡ−１）の規模である。格納したいデータのキーから当該ハッシュ関数によりハッシュ値を求め、そのハッシュ値の範囲を担当するサーバにデータを送信する。サーバを追加した場合、このハッシュ値の担当範囲を分割または再配置する。
【０００６】
分散ハッシュテーブルを用いた実装としては、「Windows（登録商標）AzureTable」が製品化されている。「Windows（登録商標）AzureTable」では、前述したコンシステントハッシングのアルゴリズムを使用して、入力されたデータのキーからハッシュ値を求め、データを管理するサービスインスタンス（サーバ上のソフトウェア）にデータを送信する。
【０００７】
サービスインスタンスは、受信したデータを格納するが、このとき隣接するサービスインスタンスにデータの複製を送信する。これにより、３つのサービスインスタンスでデータを保持することになる。隣接するサービスインスタンスは、プライマリでデータを管理するサービスインスタンスが消滅（サーバ障害、メンテナンスなどで停止）した場合、代替サーバとして動作することになる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−９５９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、専用サーバ機種ではないパーソナルコンピュータ（ＰＣ）等でサーバ機能の冗長構成を構築する場合、従来のサーバ機種の管理ソフトウェアのように２４時間運用が必ずしも必須要件ではないことが多い。また、環境への配慮のため、ＰＣの電源設定状態により、電源断、ハイバネーション、スリープなどのＰＣ機能の停止または制限運用状態への対応が必要である。
【００１０】
また、複数台のＰＣで構成を組む場合、従来方式のサーバ監視方式で相互間監視を実施するとなると、組み合わせ数が膨大になる虞があり（ｎＣ２の組み合わせ）、また、特定の管理サーバで管理を集中する場合、管理サーバでの問題が発生すると代替サーバに切り替える必要があるが、この代替サーバを柔軟に設定することは難しかった。
【００１１】
本発明は、このような事情を考慮してなされたものであり、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現した情報処理装置、動作制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。
【図面の簡単な説明】
【００１３】
【図１】実施形態の情報処理装置の概略的なハードウェア構成を示す図。
【図２】実施形態の情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図。
【図３】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ作成時の各ノードの動作原理を説明するための概念図。
【図４】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークＩＤ要求のメッセージフォーマットの一例を示す図。
【図５】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークＩＤ応答／ユニークＩＤ更新のメッセージフォーマットの一例を示す図。
【図６】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるライフメッセージのメッセージフォーマットの一例を示す図。
【図７】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへのノード追加時の各ノードの動作原理を説明するための概念図。
【図８】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループからのノード脱退時の各ノードの動作原理を説明するための概念図。
【図９】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられる脱退メッセージのメッセージフォーマットの一例を示す図。
【図１０】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理を説明するための概念図。
【図１１】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第１の概念図。
【図１２】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第２の概念図。
【図１３】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ノードの開始処理手順を示すタイミングチャート。
【図１４】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における参加ノードの開始処理手順を示すタイミングチャート。
【図１５】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへの参加ノードの追加処理手順を示すタイミングチャート。
【図１６】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における代替管理ノードの処理手順を示すタイミングチャート。
【発明を実施するための形態】
【００１４】
以下、実施の形態について図面を参照して説明する。
【００１５】
図１は、実施形態の情報処理装置の概略的なハードウェア構成を示す図である。
【００１６】
図１に示すように、本情報処理装置は、プロセッサ１、主メモリ２、外部記憶装置３、入力装置４、表示装置５および通信装置６を有している。
【００１７】
プロセッサ１は、外部記憶装置３から主メモリ２にロードされる各種プログラムを実行することによって本情報処理装置内の各部の動作を制御する処理装置である。主メモリ２は、プロセッサ１によって実行される各種プログラムや当該各種プログラムによって入出力される各種データを一時的に記憶する記憶装置である。外部記憶装置３は、主メモリ２の補助装置として各種プログラムおよび各種データを大量かつ恒久的に記憶する記憶装置である。
【００１８】
入力装置４は、本情報処理装置が提供するユーザインタフェースのインプット側を司る装置である。表示装置５は、本情報処理装置が提供するユーザインタフェースのアウトプット側を司る装置である。そして、通信装置５は、ネットワークを介して他の情報処理装置との間で実行されるデータ通信を制御する装置である。
【００１９】
以上のようなハードウェア構成を持つ本情報処理装置は、ネットワークを介して他の情報処理装置（クライアント）に各種サービスを提供するサーバとして動作することが可能である。そこで、本情報処理装置は、ネットワークを介して接続される他の情報処理装置とサーバ機能の冗長構成を構築するにあたって、この冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現したものであり、以下、この点について詳述する。
【００２０】
図２は、本情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図である。
【００２１】
本情報処理装置の冗長構成の運用機能は、管理ループ運用プログラム１０によって実現される。なお、この管理ループ運用プログラム１０は、冗長構成を構築する情報処理装置の追加・削除等の運用機能を実現するものであって、複数の情報処理装置間での負荷分散制御等は既知の手法で別途司られているものとしてここでは考慮しない。また、ネットワークプロトコル２０は、管理ループ運用プログラム１０を含む各種ソフトウェアがハードウェアである通信装置６を用いて他の情報処理装置上の各種ソフトウェアとの間でネットワークを介したデータ通信を行うために設けられるプログラムである。ＯＳ（Operating system）／ドライバ３０は、本情報処理装置のリソース管理やハードウェア制御を行うためのプログラムである。これら管理ループ運用プログラム１０、ネットワークプロトコル２０およびＯＳ／ドライバ３０のいずれも、外部記憶装置３から主メモリ２にロードされてプロセッサ１によって実行されることによって機能する。
【００２２】
図２に示すように、管理ループ運用プログラム１０は、ノード管理機能モジュール１１、参加ノード機能モジュール１２、管理ノード機能モジュール１３、ライフメッセージ管理機能モジュール１４、ユニークＩＤメッセージ管理機能モジュール１５、メッセージ送受信機能モジュール１６およびユーザインタフェース機能モジュール１７の処理部と、収集ノード一覧テーブル１８のデータ部とを有している。
【００２３】
本情報処理装置が他の情報処理装置と構築する冗長構成では、当該冗長構成を構築する情報処理装置間でライフメッセージを巡回させる。ライフメッセージは、冗長構成を構築する複数の情報処理装置の中のいずれかの情報処理装置に異常が発生した場合に、この異常を（異常を発生させた情報処理装置以外の）他の情報処理装置が検出するために巡回させるメッセージである。このライフメッセージの巡回ルートを、ここでは、管理ループと称する。また、冗長構成を構築する情報処理装置であって、この管理ループ上でライフメッセージの送受信を実行する情報処理装置を、ここではノードと称する。ノードは、管理ループの管理を司るマスタの役割を担う１つの管理ノードと、管理ノード（マスタ）の配下で管理ループにスレーブとして参加するその他の参加ノードとに大別される。管理ループ運用プログラム１０は、本情報処理装置を管理ノードまたは参加ノードのいずれとしても動作させることができるソフトウェアである。以下、管理ノードとして動作する情報処理装置を単に管理ノード、参加ノードとして動作する情報処理装置を単に参加ノードと称することがある。
【００２４】
参加ノード機能モジュール１２は、本情報処理装置を参加ノードとして動作させるためのモジュールである。また、管理ノード機能モジュール１３は、本情報処理装置を管理ノードとして動作させるためのモジュールである。そして、ノード管理機能モジュール１１は、参加ノード機能モジュール１２または管理ノード機能モジュール１３のいずれを稼働させるか、即ち、本情報処理装置を管理ノードまたは参加ノードのいずれとして動作させるかを決定するモジュールである。
【００２５】
管理ループ運用プログラム１０が起動した際における初期動作として、ノード管理機能モジュール１１は、本情報処理装置を参加ノードとして動作させるべく参加ノード機能モジュール１２を稼働させるための設定を実施する。また、この初期動作時に、管理者等により管理ノードとして動作すべき指示が入力された場合には、ノード管理機能モジュール１１は、本情報処理装置を管理ノードとして動作させるべく管理ノード機能モジュール１３を稼働させるための設定を実施する。ユーザインタフェース機能モジュール１７は、管理者等に対して情報の受け渡しのための仕組みを提供するモジュールである。
【００２６】
さらに、ノード管理機能モジュール１１は、本情報処理装置が参加ノードとして動作を開始した後、管理ノードとして動作する他の情報処理装置がその動作を停止した場合、代替管理ノードへの移行を決断して、参加ノード機能モジュール１２の稼働状態から管理ノード機能モジュール１３の稼働状態へと移行するための設定を実施する。
【００２７】
管理ノード機能モジュール１３は、管理ループの作成および管理を実行する。本情報処理装置が管理ノードとして動作している場合、管理ノード機能モジュール１３は、他の情報処理装置から送信されてくるユニークＩＤ要求によって、管理ループに参加ノードとして参加する当該他の情報処理装置を認識する。ユニークＩＤは、各ノードが自分の参加する管理ループを識別するための識別情報である。
【００２８】
管理ノード機能モジュール１３は、このユニークＩＤ要求に対してユニークＩＤ応答を返信し、当該他の情報処理装置を参加ノードとして管理ループに追加する。ユニークＩＤメッセージ管理機能モジュール１５は、このユニークＩＤ要求やユニークＩＤ応答、後述する管理ループからの脱退メッセージなどを作成するモジュールであり、メッセージ送受信機能モジュール１６は、このユニークＩＤ要求やユニークＩＤ応答、後述する管理ループからの脱退メッセージなどの、管理ノードおよび参加ノード間におけるメッセージの送受信を実行するモジュールである。
【００２９】
管理ノード機能モジュール１３は、例えば、本情報処理装置が管理ノードとして動作を開始した後、他の情報処理装置から最初にユニークＩＤ要求を受けた時、当該他の情報処理装置との間で管理ループを作成するためのユニークＩＤを発番し、このユニークＩＤをユニークＩＤ応答として返信する。また、この管理ループの作成後にさらに別の情報処理装置からユニークＩＤ要求を受けた場合には、管理ノード機能モジュール１３は、作成済みの管理ループへの参加が要求されたと判断する。この参加ノードの追加時、管理ノード機能モジュール１３は、当該管理ループ用のユニークＩＤを再発番して更新し、すべての参加ノードにユニークＩＤ応答として送信する。
【００３０】
また、参加ノードの追加時、管理ノード機能モジュール１３は、収集ノード一覧テーブル１８を更新する。収集ノード一覧テーブル１８は、管理ループ上の参加ノードに関する情報を保持するテーブルである。収集ノード一覧テーブル１８に保持される情報は、ライフメッセージの生成に用いられる。ライフメッセージ管理機能モジュール１４は、ライフメッセージの作成および送信を実行するモジュールであり、本情報処理装置が管理ノードとして動作している時、管理ノード機能モジュール１３は、予め定められた期間毎に、ライフメッセージ管理機能モジュールに対し、ライフメッセージの作成および送信の実行を指示する。管理ノード機能モジュール１３は、参加ノードを巡回してライフメッセージ管理機能モジュールによって回収されたライフメッセージを参照して、参加ノードの動作状況を確認する。
【００３１】
ライフメッセージが回収されなかった場合、管理ノード機能モジュール１３は、いずれかの参加ノードが停止したと判断して、（停止した参加ノード以外の）その他の参加ノードとの間で新たな管理ループを再作成する。そのために、管理ノード機能モジュール１３は、（停止した参加ノード以外の）その他の参加ノードからのユニークＩＤ要求の送信を待機する。ユニークＩＤ要求を受信したら、管理ノード機能モジュール１３は、再作成する管理ループ用のユニークＩＤを改めて発番して、このユニークＩＤをユニークＩＤ応答として返信する。また、この時、管理ノード機能モジュール１３は、収集ノード一覧テーブル１８の更新も実行する。これにより、管理ループの再作成および再作成された管理ループでのライフメッセージの巡回が実現される。
【００３２】
参加ノード機能モジュール１２は、管理ループへの参加処理を実行する。管理ループ運用プログラム１０が起動して本情報処理装置が参加ノードとして動作を開始した時、参加ノード機能モジュール１２は、参加ノードとして管理ループに参加するべく前述のユニークＩＤ要求をブロードキャスト送信する。参加ノード機能モジュール１２は、管理ノードから前述のユニークＩＤ応答が返信されたか否かによって管理ループへの参加可否を判断する。また、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４によるライフメッセージの送受信状況から自ノードが管理ループへ正しく参加できたことを確認する。
【００３３】
ライフメッセージには、ユニークＩＤのほか、管理ノードによってその巡回順位が記録されており、参加ノードとして管理ループに加わった後、参加ノード機能モジュール１２は、この巡回順位に従って、ライフメッセージ管理機能モジュール１４を介してライフメッセージの送受信を実行する。この時、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４によって送受信されるライフメッセージに、自ノードによる当該ライフメッセージの受信状況を記録する。
【００３４】
また、参加ノードとして管理ループに加わった後、ライフメッセージが予め定められた期間を越えて受信されない時、または、ライフメッセージの送信が失敗した時、参加ノード機能モジュール１２は、いずれかの参加ノードが停止したと判断して、管理ノードによって再作成されるであろう管理ループに加わるためのユニークＩＤ要求の送信を管理ノードに対して実行する。このユニークＩＤ要求に対して、ユニークＩＤ応答として新たなユニークＩＤが返信されてきたら、前述の手順で参加ノードとしての動作を再開する。
【００３５】
もし、ユニークＩＤ応答が返信されなかった場合、参加ノード機能モジュール１２は、管理ノードが停止したと判断する。この場合、参加ノード機能モジュール１２は、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。
【００３６】
自ノードでなかった場合、参加ノード機能モジュール１２は、代替管理ノードとなるべき他ノードにユニークＩＤ要求を送信する。その後は、参加ノードとしての動作を再開する。一方、自ノードであった場合には、参加ノード機能モジュール１２は、代替管理ノードへの移行指示をノード管理機能モジュール１１に通知する。この通知を受けたノード管理機能モジュール１１は、参加ノード機能モジュール１２の稼働状態から管理ノード機能モジュール１３の稼働状態へと本情報処理装置を移行させるための設定を実施する。この場合、他ノードからユニークＩＤ要求が送られてくるので、ユニークＩＤの発番やユニークＩＤ応答の返信、収集ノード一覧テーブル１８の更新、ライフメッセージの作成および送信など、管理ノードとして動作を再開する。
【００３７】
また、参加ノード機能モジュール１２は、ユニークＩＤ要求を受信すると、新たなノードが管理ループへの参加を要求していると判断し、当該新たなノードを加えた管理ループを再作成した管理ノードが送ってくるであろうユニークＩＤ応答を待機して受信する。このユニークＩＤ応答を受信すると、参加ノード機能モジュール１２は、参加ノードとしての動作を再開する。
【００３８】
管理ノードからの脱退は、脱退メーセージをブロードキャスト送信することによって実施する。管理ノードとして参加ノードから脱退メーセージを受けた場合、管理ノード機能モジュール１３は、この参加ノードに関する情報を削除すべく収集ノード一覧テーブル１８を更新し、新たなユニークＩＤを発番してその他の参加ノードに対してユニークＩＤ更新として送信する。これにより、脱退メッセージを送信してきた参加ノードを除いた管理ループが再作成される。
【００３９】
また、参加ノードとして脱退メーセージを受けた場合、参加ノード機能モジュール１２は、それが管理ノードからのものか否かを調べ、管理ノードからのものでなければ、管理ノードから送信されてくるであろうユニークＩＤ更新を待機する。一方、管理ノードからのものであった場合には、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。代替管理ノードに移行すべきノードが自ノードでなければ、代替管理ノードから送信されてくるであろうユニークＩＤ更新を待機する。
【００４０】
そして、代替管理ノードに移行すべきノードが自ノードであった場合は、代替管理ノードへの移行指示をノード管理機能モジュール１１に通知する。これに伴って稼働された管理ノード機能モジュール１３は、最後に送受信されたライフメッセージから収集ノード一覧テーブル１８を作成し、新たなユニークＩＤを発番してその他の参加ノードに対してユニークＩＤ更新として送信する。これにより、脱退メッセージを送信してきた管理ノードが除かれ、かつ、自ノードが代替管理ノードとなった管理ループが再作成される。
【００４１】
なお、前述したように、ライフメッセージの巡回が途絶えると、いずれかのノードが停止したものと各ノードが判断し、管理ループを再作成すべく各々動作するので、脱退メーセージを用いることなく、脱退させたいノードを停止させることもできる。
【００４２】
つまり、以上のような構成を持つ本情報処理装置が（同等の構成を持つ）他の情報処理装置と構築する冗長構成は、当該冗長構成を構築する複数の情報処理装置それぞれが適応的に動作することで、全体として、適切な運用機能が実現される。
【００４３】
次に、図３乃至図１２を参照して、本情報処理装置が他の情報処理装置と構築する冗長構成で実現される運用機能の基本原理の概要について説明する。
【００４４】
まず、図３乃至図６を参照して、管理ループ作成時の各ノードの動作原理について説明する。
【００４５】
ここでは、図３に示すように、ノードＡが管理ノード、ノードＢが参加ノードとして動作を開始したものとする。
【００４６】
参加ノードとして動作を開始したノードＢは、ネットワーク上に存在すると思われる管理ノードに向けてユニークＩＤ要求ａ１を送信する（図３の（Ａ））。このユニークＩＤ要求は、ブロードキャストまたはマルチキャストのネットワークプロトコル（例えばＴＣＰ／ＩＰ、ＮｅｔＢＩＯＳ、ＭＡＣなど)によって送信される。図４は、ユニークＩＤ要求のメッセージフォーマットの一例を示す図である。
【００４７】
一方、管理ノードとして動作を開始したノードＡは、このブロードキャストを受信すると、ライフメッセージの送信リスト、つまり収集ノード一覧テーブル１８にノードＢを追加し、ユニークＩＤ応答ａ２をブロードキャストまたはマルチキャストのネットワークプロトコルで返信する(図３の（Ｂ））。図５は、ユニークＩＤ応答／ユニークＩＤ更新のメッセージフォーマットの一例を示す図である。
【００４８】
参加ノードは、ユニークＩＤ応答を受信後、ライフメッセージの受信待ちに入る。管理ノードが同一ネットワークに存在する場合、参加ノードは、最初に受信したユニークＩＤ応答に含まれるユニークＩＤを識別子として、対応する管理ノードから直接送信されるか参加ノード間で転送されるライフメッセージを受信待ちする。図６は、ライフメッセージのメッセージフォーマットの一例を示す図である。
【００４９】
そして、参加ノードは、（ライフメッセージに含まれる）送信リストへの登録順位に従って、このライフメッセージの転送（ａ３）を実行する（図３の（Ｃ））。ライフメッセージを転送する際、参加ノードは、自ノード情報のシーケンス番号の更新し、前回メッセージ受信時刻からの差分時間を更新する。なお、自ノードが参加ノードとして接続直後の場合は、前回メッセージ受信時刻からの差分時間は０とする。
【００５０】
一方、管理ノードは、ライフメッセージが参加ノードを一周して最後の参加ノードから返信された時間を元にライフメッセージに記載するタイムアウト値を更新し、各ノードにライフメッセージにより通知する。
【００５１】
図７は、管理ループへのノード追加時の各ノードの動作原理について説明するための概念図である。
【００５２】
ここでは、ノードＡ（管理ノード）およびノードＢ（参加ノード）による既存の管理ループが存在し、既にライフメッセージを交換している状態で、新規の参加要求ノード（ノードＣ）が現れた場合を想定する。
【００５３】
参加要求ノードであるノードＣは、前述のように、ユニークＩＤ要求ｂ２をブロードキャスト（またはマルチキャスト）する（図７の（Ａ））。このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換（ｂ１）を停止して、管理ノードからのユニークＩＤ応答を待つ（図７の（Ｂ））。また、管理ノードは、このノードＣを追加すべく送信リストを更新し、かつ、ユニークＩＤを更新して、すべての参加ノードにユニークＩＤ応答ｂ３を送信する。
【００５４】
管理ノードより更新後のユニークＩＤが含まれるユニークＩＤ応答が送信されると、各ノードは、保持していたユニークＩＤを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークＩＤに基づくライフメッセージ送信ｂ４が再開される（図７の（Ｃ））。
【００５５】
次に、図８および図９を参照して、管理ループからのノード脱退時の各ノードの動作原理について説明する。
【００５６】
ここでは、ノードＡ（管理ノード）とノードＢおよびノードＣ（参加ノード）とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、１つの参加ノード（ノードＣ）が管理ループから脱退する場合を想定する。
【００５７】
管理ループから脱退するノードＣは、脱退メッセージｃ２をブロードキャスト(またはマルチキャスト)する（図８の（Ａ））。図９は、ユニークＩＤ要求のメッセージフォーマットの一例を示す図である。
【００５８】
このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換（ｃ１）を停止して、管理ノードからのユニークＩＤ更新ｃ３を待つ。また、管理ノードは、このノードＣを削除すべく送信リストを更新し、かつ、ユニークＩＤを更新して、残りのすべての参加ノードにユニークＩＤ更新ｃ３を送信する（図８の（Ｂ））。
【００５９】
管理ノードより更新後のユニークＩＤが含まれるユニークＩＤ応答が送信されると、各ノードは、保持していたユニークＩＤを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークＩＤに基づくライフメッセージ送信ｃ４が再開される（図８の（Ｃ））。
【００６０】
図１０は、管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【００６１】
ここでは、ノードＡ（管理ノード）とノードＢおよびノードＣ（参加ノード）とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、１つの参加ノード（ノードＣ）からのライフメッセージ送信が停止された場合を想定する。
【００６２】
管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図６に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードＣ自体の故障発生やネットワークの切断などによりライフメッセージｄ１の交換が止まった状態となると（図１０の（Ａ））、その他のすべてのノードでタイムアウトが検出されることになる。
【００６３】
そうすると、すべての参加ノードが、管理ノードに対してユニークＩＤ要求ｄ２を送信する（図１０の（Ｂ））。管理ノードは、ユニークＩＤ要求を送信してきたノードからなる送信リストを再作成し、かつ、ユニークＩＤを更新して、当該ユニークＩＤ要求を送信してきたノードにユニークＩＤ更新ｄ３を送信する（図１０の（Ｃ））。
【００６４】
管理ノードより更新後のユニークＩＤが含まれるユニークＩＤ更新が送信されると、各ノードは、保持していたユニークＩＤを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークＩＤに基づくライフメッセージ送信ｄ４が再開される（図１０の（Ｄ））。
【００６５】
また、図１１および図１２は、管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【００６６】
ここでは、ノードＡ（管理ノード）とノードＢおよびノードＣ（参加ノード）とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、管理ノードであるノードＡからのライフメッセージ送信が停止された場合を想定する。
【００６７】
前述したように、管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図６に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードＡ自体の故障発生やネットワークの切断などによりライフメッセージｅ１の交換が止まった状態となると（図１１の（Ａ））、その他のすべてのノードでタイムアウトが検出されることになる。
【００６８】
そうすると、すべての参加ノードが、管理ノードに対してユニークＩＤ要求ｅ２を送信する（図１０の（Ｂ））。しかしながら、管理ノードが存在しない状態のため、今度はユニークＩＤ要求に対するユニークＩＤ応答待ち処理がタイムアウトとなる。そこで、各参加ノードは、管理ノードが停止したものと判断する。
【００６９】
この場合、図６に示すライフメッセージの順位番号で上位の参加ノードが代替管理ノードに昇格する。代替管理ノードに昇格した参加ノード以外の参加ノードは、昇格した代替管理ノードに対してユニークＩＤ要求ｅ３を改めて送信する（図１２の（Ａ））。ここでは、ノードＣよりも先に管理ループに参加したノードＢが代替管理ノードに昇格している例を示しているが、ライフメッセージの順位番号は、管理ループへの参加順に限定されるものではない。管理ループを作成し直す都度、管理ノードが、ライフメッセージの効率的な巡回ルートを探索し、その結果に応じて決定するようにしてもよい。
【００７０】
昇格した代替管理ノードは、ユニークＩＤ要求を送信してきたノードからなる送信リストを作成し、かつ、ユニークＩＤを更新して、当該ユニークＩＤ要求を送信してきたノードにユニークＩＤ更新ｅ４を送信する（図１２の（Ｂ））。
【００７１】
昇格した代替管理ノードより更新後のユニークＩＤが含まれるユニークＩＤ更新が送信されると、各ノードは、保持していたユニークＩＤを更新して、ライフメッセージ受信待ち状態に移行する。これにより、昇格した代替管理ノードを基点とした、新たなユニークＩＤに基づくライフメッセージ送信ｅ５が再開される（図１２の（Ｃ））。
【００７２】
また、図１３乃至図１６は、本情報処理装置の冗長構成の運用機能に関わる動作手順を示すタイミングチャートである。
【００７３】
まず、図１３を参照して、管理ノードの開始処理の動作手順について説明する。
【００７４】
管理ノードの開始処理は、ノード管理機能モジュール１１によって管理ノード初期設定読込処理が実行された場合に起動する（図１３のｆ１）。この場合、ノード管理機能モジュール１１は、管理ノードを構成すべく、管理ノード機能モジュール１３に対し、初期化処理の実行を指示する（図１３のｆ２）。これにより、管理ノード機能モジュール１３の制御下で、ユニークＩＤメッセージ管理機能モジュール１５、ライフメッセージ管理機能モジュール１４、メッセージ送受信機能モジュール１６の初期化処理が実行されることになる（図１３のｆ３，ｆ４，ｆ５）。
【００７５】
この初期化処理が終了すると、管理ノード機能モジュール１３が、管理ループの構成処理を開始し（図１３のｆ６）、ユニークＩＤメッセージ管理機能モジュール１５に対し、参加ノード情報の収集処理を指示する（図１３のｆ７）。ユニークＩＤメッセージ管理機能モジュール１５は、ユニークＩＤの収集を開始し（図１３のｆ７１）、メッセージ送受信機能モジュール１６に対し、ユニークＩＤメッセージの受信要求を通知する（図１３のｆ７１１）。これにより、メッセージ送受信機能モジュール１６は、メッセージ受信待ち処理に入る（図１３のｆ７１１１）。
【００７６】
メッセージ送受信機能モジュール１６は、ユニークＩＤメッセージを受信すると、その旨をユニークＩＤメッセージ管理機能モジュール１５に通知する（図１３のｆ８）。ユニークＩＤメッセージ管理機能モジュール１５は、管理ノード機能モジュール１３に対し、参加ノードの追加を要求する（図１３のｆ８１）。管理ノード機能モジュール１３は、この要求に対する返答を行い、収集ノード一覧の更新を実行する（図１３のｆ９）。一方、管理ノード機能モジュール１３からの返答を受けたユニークＩＤメッセージ管理機能モジュール１５は、メッセージ送受信機能モジュール１６に対し、ユニークＩＤ応答メッセージの送信要求を通知する（図１３のｆ８２）。これにより、メッセージ送受信機能モジュール１６によるメッセージ送信処理が実行される（図１３のｆ８２１）。
【００７７】
また、管理ノード機能モジュール１３は、ライフメッセージ処理を起動する（図１３のｆ１０）。このライフメッセージ処理において、管理ノード機能モジュール１３は、収集ノード一覧に基づくライフメッセージ情報の作成処理を行い（図１３のｆ１０１）、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の開始を指示する（図１３のｆ１０２）。ライフメッセージ管理機能モジュール１４は、ライフメッセージ処理を起動し（図１３のｆ１０２１）、メッセージ送受信機能モジュール１６に対し、参加ノードへのライフメッセージの送信を指示する（図１３のｆ１０２１１）。これにより、メッセージ送受信機能モジュール１６による参加ノードへのライフメッセージの送信が実行される（図１３のｆ１０２１１１）。
【００７８】
次に、ライフメッセージ管理機能モジュール１４は、メッセージ送受信機能モジュール１６に対し、ライフメッセージの受信要求を通知する（図１３のｆ１１）。これにより、メッセージ送受信機能モジュール１６は、メッセージ受信待ち処理に入る（図１３のｆ１１１）。メッセージ送受信機能モジュール１６は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール１４に通知する（図１３のｆ１１２）。ライフメッセージ管理機能モジュール１４は、ライフメッセージの確認処理を行い（図１３のｆ１１２１）、問題がなければ、ライフメッセージの送信をメッセージ送受信機能モジュール１６に指示する（図１３のｆ１１２２）。以降、このライフメッセージの送信が繰り返される（図１３のｆ１１２２１，…）。
【００７９】
図１４は、参加ノードの開始処理手順を示すタイミングチャートである。
【００８０】
参加ノードの開始処理では、まず、ノード管理機能モジュール１１が、参加ノードを構成すべく、参加ノード機能モジュール１２に対し、初期化処理の実行を指示する（図１４のｇ１）。これにより、参加ノード機能モジュール１２の制御下で、ユニークＩＤメッセージ管理機能モジュール１５、ライフメッセージ管理機能モジュール１４、メッセージ送受信機能モジュール１６の初期化処理が実行されることになる（図１４のｇ２，ｇ３，ｇ４）。
【００８１】
この初期化処理が終了すると、参加ノード機能モジュール１２が、管理ループへの参加処理を開始し（図１４のｇ５）、ユニークＩＤメッセージ管理機能モジュール１５に対し、管理ループへの参加処理を指示する（図１４のｇ５１）。ユニークＩＤメッセージ管理機能モジュール１５は、メッセージ送受信機能モジュール１６に対し、ユニークＩＤ要求メッセージの送信要求を通知する（図１４のｇ５１１）。これにより、メッセージ送受信機能モジュール１６によるメッセージ送信処理が実行される（図１４のｇ５１１１）。
【００８２】
メッセージ送受信機能モジュール１６は、ユニークＩＤ応答メッセージを受信すると、その旨をユニークＩＤメッセージ管理機能モジュール１５に通知する（図１４のｇ６）。ユニークＩＤメッセージ管理機能モジュール１５は、参加ノード機能モジュール１２に対し、管理ループへの参加確認を指示する（図１４のｇ６１）。
【００８３】
また、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の開始を指示する（図１４のｇ７）。ライフメッセージ管理機能モジュール１４は、ライフメッセージ処理を起動し（図１４のｇ７１）、メッセージ送受信機能モジュール１６に対し、ライフメッセージの受信要求を通知する（図１４のｇ７１１）。これにより、メッセージ送受信機能モジュール１６は、メッセージ受信待ち処理に入る（図１４のｇ７１１１）。
【００８４】
メッセージ送受信機能モジュール１６は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール１４に通知する（図１４のｇ８）。ライフメッセージ管理機能モジュール１４は、受信されたライフメッセージの更新処理を行い（図１４のｇ８１）、メッセージ送受信機能モジュール１６に対し、更新後のライフメッセージの送信を指示する（図１４のｇ８１１）。これにより、メッセージ送受信機能モジュール１６によるライフメッセージの送信が実行される（図１４のｇ８１１１）。
【００８５】
以降、ライフメッセージ管理機能モジュール１４は、このライフメッセージの送受信を繰り返す（図１４のｇ８２，…）。
【００８６】
また、図１５は、管理ループへの参加ノードの追加処理手順を示すタイミングチャートである。
【００８７】
管理ループへの参加ノードの追加処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において（図１５のｈ１，…，ｈ１２）、新たなノード（参加要求ノード）の参加ノード機能モジュール１２が管理ループへの参加処理を開始させたことによって起動する（図１５のｈ２）。参加要求ノードの参加ノード機能モジュール１２は、ユニークＩＤメッセージ管理機能モジュール１５に対し、管理ループへの参加処理を指示する（図１５のｈ３）。これにより、参加要求ノードからユニークＩＤ要求メッセージがブロードキャストされる（図１５のｈ３１，ｈ３２）。
【００８８】
管理ノードでは、このユニークＩＤ要求メッセージを受信したユニークＩＤメッセージ管理機能モジュール１５が、管理ノード機能モジュール１３に対し、参加ノード追加要求を通知する（図１５のｈ３１１）。これに応答して、管理ノード機能モジュール１３は、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の停止を指示する（図１５のｈ３１１１）。また、ユニークＩＤ要求メッセージを受信したユニークＩＤメッセージ管理機能モジュール１５は、参加要求ノードに対し、ユニークＩＤ応答メッセージを送信する（図１５のｈ３１２）。
【００８９】
一方、参加ノードでは、ユニークＩＤ要求メッセージを受信したユニークＩＤメッセージ管理機能モジュール１５が、参加ノード機能モジュール１２に対し、（自ノードが実行するライフメッセージ送受信のための）管理ループ再構成処理を指示する（図１５のｈ３２１）。これに応答して、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の再初期化を指示する（図１５のｈ３２１１）。この初期化後、ライフメッセージ管理機能モジュール１４は、ライフメッセージの受信待ち処理に入る（図１５のｈ３２１１１）。
【００９０】
参加要求ノードのユニークＩＤメッセージ管理機能モジュール１５は、管理ノードからのユニークＩＤ応答メッセージを受けると、参加ノード機能モジュール１２に対し、管理ループ参加確認を指示する（図１５のｈ３１２１）。これに応答して、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の開始を指示する（図１５のｈ３１２１１）。これにより、ライフメッセージ管理機能モジュール１４は、ライフメッセージ受信待ち処理に入る（図１５のｈ３１２１１１）。
【００９１】
また、管理ノードでは、管理ノード機能モジュール１３が、収集ノード一覧の更新処理を実行して（図１５のｈ４）、ライフメッセージ処理を再開する（図１５のｈ５）。管理ノード機能モジュール１３は、更新後の収集ノード一覧に基づき、ライフメッセージ情報の作成処理を実行し（図１５のｈ５１）、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理開始を要求する（図１５のｈ５２）。これにより、ライフメッセージ管理機能モジュール１４によるライフメッセージの送信が実行され（図１５のｈ５２１）、以降、参加要求ノードを追加した管理ループでのライフメッセージの送受信が実行されることになる（図１５のｈ５２１１，…）。
【００９２】
図１６は、代替管理ノードの処理手順を示すタイミングチャートである。
【００９３】
代替管理ノードの処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において（図１６のｊ１，…，ｊ１２１２２１）、管理ノードによるライフメッセージの送信が停止したことによって起動する（図１６のｊ２）。各参加ノードのライフメッセージ管理機能モジュール１４は、ライフメッセージ受信タイムアウト処理を開始し（図１６のｊ３，ｊ４）、参加ノード機能モジュール１２に対し、管理ノードへの送信エラー通知処理を指示する（図１６のｊ３１，ｊ４１）。これに応答して、参加ノード機能モジュール１２は、ユニークＩＤメッセージ管理機能モジュール１５に対し、ユニークＩＤ再取得処理を指示する（図１６のｊ３１１，ｊ４１１）。
【００９４】
しかしながら、管理ノードは停止しているので、各参加ノードのユニークＩＤメッセージ管理機能モジュール１５は、ユニークＩＤ要求送信タイムアウト処理を開始することになる（図１６のｊ３１１１，ｊ４１１１）。ユニークＩＤメッセージ管理機能モジュール１５は、参加ノード機能モジュール１２に対し、ユニークＩＤ取得エラーを通知する（図１６のｊ３１１２，ｊ４１１２）。この通知を受けた参加ノード機能モジュール１２は、代替管理ノード移行判断処理を実行する（図１６のｊ３１１２１，ｊ４１１２１）。これにより、いずれか１つの参加ノードが代替管理ノードに昇格する。昇格した代替管理ノードの管理ノード機能モジュール１３は、ユニークＩＤメッセージ管理機能モジュール１５に対し、ユニークＩＤ受信処理を指示する（図１６のｊ３１１２１１）。それ以外の参加ノードの参加ノード機能モジュール１２は、ユニークＩＤ再取得処理を再度指示する（図１６のｊ４１１２１１）。
【００９５】
そうすると、ユニークＩＤ再取得処理を再度指示された参加ノードのユニークＩＤメッセージ管理機能モジュール１５と、ユニークＩＤ受信処理を指示された代替管理ノードのユニークＩＤメッセージ管理機能モジュール１５との間で、ユニークＩＤ要求が送受信され（図１６のｊ５）、代替管理ノードのユニークＩＤメッセージ管理機能モジュール１５は、管理ノード機能モジュール１３に対し、管理ループへの追加を指示する（図１６のｊ５１）。
【００９６】
これに応答して、代替管理ノードの管理ノード機能モジュール１２は、収集ノード一覧の更新処理を実行して（図１６のｊ５１１）、管理ループへの追加の完了をＩＤメッセージ管理機能モジュール１５に回答する（図１６のｊ５１２）。これを受けて、ＩＤメッセージ管理機能モジュール１５は、参加ノードのユニークＩＤメッセージ管理機能モジュール１５に対し、ユニークＩＤ応答を送信する（図１６のｊ５１２１）。
【００９７】
参加ノードのユニークＩＤメッセージ管理機能モジュール１５は、ユニークＩＤ応答を受信すると、参加ノード機能モジュール１２に対し、管理ループへの参加完了を通知する（図１６のｊ５１２１１）。これに応答して、参加ノード機能モジュール１２は、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の開始を指示する（図１６のｊ５１２１１１）。
【００９８】
一方、代替管理ノードの管理ノード機能モジュール１３も、ライフメッセージ管理機能モジュール１４に対し、ライフメッセージ処理の開始を指示する（図１６のｊ６）。これにより、新たな管理ループによるライフメッセージの送受信が開始される。
【００９９】
以上のように、本情報処理装置は、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現する。
【０１００】
なお、本実施形態の動作制御処理は、ソフトウェア（プログラム）によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、本実施形態と同様の効果を容易に実現することができる。
【０１０１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０２】
１…プロセッサ、２…主メモリ、３…外部記憶装置、４…入力装置、５…表示装置、６…通信装置、１０…管理ループ運用プログラム、１１…ノード管理機能モジュール、１２…参加ノード機能モジュール、１３…管理ノード機能モジュール、１４…ライフメッセージ管理機能モジュール、１５…ユニークＩＤメッセージ管理機能モジュール、１６…メッセージ送受信機能モジュール１６、１７…ユーザインタフェース機能モジュール、１８…収集ノード一覧テーブル、２０…ネットワークプロトコル、３０…ＯＳ（Operating system）／ドライバ。
【図１】
2012138841.tif 000003
【図２】
2012138841.tif 000004
【図３】
2012138841.tif 000005
【図４】
2012138841.tif 000006
【図５】
2012138841.tif 000007
【図６】
2012138841.tif 000008
【図７】
2012138841.tif 000009
【図８】
2012138841.tif 000010
【図９】
2012138841.tif 000011
【図１０】
2012138841.tif 000012
【図１１】
2012138841.tif 000013
【図１２】
2012138841.tif 000014
【図１３】
2012138841.tif 000015
【図１４】
2012138841.tif 000016
【図１５】
2012138841.tif 000017
【図１６】
2012138841.tif 000018