(57)【要約】      （修正有）【課題】特定のサーバに依存することなく、自律的にリーダ選定を行うことが可能となる分散コンピューティングシステムを提供する。【解決手段】情報処理装置の初期総数の過半数以上と通信が確保されている場合に、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、その識別情報を送信するリーダ候補選択装置６３と、前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置６４と、を備える。【選択図】図３
2011253391.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が、一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、
自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、
自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、
前記リーダ選定が必要な状態であることを検出するリーダ選定必要性検出装置と、
前記リーダ選定が必要な場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための接続維持情報処理装置数判別装置と、
前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の前記リーダ候補情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、
前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、
を備えることを特徴とする分散コンピューティングシステム。
【請求項２】
前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作することを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項３】
前記通信データ送信装置は、
一定時間間隔で、前記各情報処理装置との間で、前記送信データを送信していることを特徴とする請求項１又は請求項２に記載の分散コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散コンピューティングシステムにおけるリーダの選定を行う技術に関する。
【背景技術】
【０００２】
近年では、通信ネットワークの発達により、クラウドコンピューティングに代表される分散コンピューティングシステムが発達している。この分散コンピューティングシステムでは、複数のサーバが、同時並行的にそれぞれの処理を実行し、ネットワークを介して互いに通信しあうことにより、その処理を行っている。
このような分散コンピューティングシステムにおいては、当該システムを構成するサーバに障害が発生した場合であっても、提供するサービスを継続することが求められているため、現行系サーバと待機系サーバ群を備える冗長構成が採用されていることが一般的である。
分散コンピューティングシステムにおいて、現行系サーバに障害が発生した場合において、待機系サーバ群の中から新たにリーダを選定する必要が生じる。従来のリーダの選定方法として、プロセッサグループのプロセッサの加入順に順序づけられたネームサーバに記憶されているメンバシップ・リストから、新しいリーダを選定する方法が存在している（特許文献１）。
【０００３】
【特許文献１】特開平１０−４０２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の方法では、ネームサーバに記憶されているメンバシップ・リストから新しいリーダを選択するため、ネームサーバが故障等で使用不能となった場合にリーダの選定ができなくなるとともに、自律的にリーダの選定ができないという問題点が存在していた。
【０００５】
本発明は、上記の問題点を解決するためになされたものであり、ネームサーバ等の特定のサーバに依存することなく、迅速かつ自律的にリーダの選定を行うことが可能となる分散コンピューティングシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の分散コンピューティングシステム（以下、「本システム」という。）は、複数の情報処理装置が、一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、前記リーダ選定が必要であることを検出するリーダ選定必要性検出装置と、前記リーダ選定が必要である場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための情報処理装置数判別装置と、前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の前記リーダ候補情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、を備えることを特徴としている。
【０００７】
また、前記分散コンピューティングシステムにおいて、前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作すること、すなわち、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の前記リーダ候補情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置を備える構成とすることもできる。
【０００８】
本発明によれば、リーダサーバ選定必要性検出装置により、リーダ選定が必要になったことを検出した場合において、情報処理装置数判別装置により、自身と通信が維持されている自身以外の各情報処理装置の数（接続維持情報処理装置数）を計数し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かを判別している。そして、リーダ候補選択装置により、当該条件を満たした場合に、自身と他の情報処理装置が認識している情報処理装置のうち、本システムに加入した時刻が最も古い（加入期間が最も長い）情報処理装置をリーダ候補情報処理装置として、他の情報処理装置として送信する。さらに、当該リーダ候補情報処理装置のデータを受け取った他の情報処理装置は、リーダ認識装置により、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在している場合に、当該情報処理装置を新たなリーダとして認識することになる。
【０００９】
本発明では、上記一連の動作により、第三者等の指示を受けることなく自律的にリーダの選定を行うことができる。
【００１０】
また、リーダ候補選択装置は、加入した時刻が最も古い情報処理装置を選択するため、後から本システムに加入したサーバによってリーダ交替が行われることがないため、頻繁なリーダ交替を抑止することができる。
【００１１】
さらに、本発明では自身と通信が維持されている自身以外の各情報処理装置の数（接続維持情報処理装置数）を算出し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かの条件を満たすこと（情報処理装置数判別装置による条件、以下「第１条件」という。）、及び、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在していること（リーダ認識装置による条件、以下「第２条件」という。）を新たなリーダの選定の条件としている。
この第１条件により、初期総数の過半数以上の情報処理装置の存在をリーダ候補の選択を開始する条件にしていることから、過半数未満の情報処理装置によるリーダ選定の攪乱を防止することができる。また、第２条件により、誤ったリーダ候補の選択を防止し、確実にリーダの選定をすることができる。
【００１２】
また、前記分散コンピューティングシステムにおいて、前記通信データ送信装置は、一定時間間隔で、前記各情報処理装置との間で、前記送信データ送信するものとすれば好適である。
【００１３】
本発明によれば、通信データ送信装置は、一定時間間隔で各情報処理装置との間で送信データを送信し、常時、各情報処理装置との通信状態を確認しているため、リーダサーバの再選定が必要となる場合を迅速に検知し、その後の処理を行うことができる。
【発明の効果】
【００１４】
本発明によれば、特定のサーバに依存することなく、自律的にリーダ選定を行うことが可能となる分散コンピューティングシステムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の分散コンピューティングシステムを示す概要図である。
【図２】本発明の分散コンピューティングシステムの一部（リーダサーバ及び２台のエージェントサーバ）を示す構成図である。
【図３】本発明の分散コンピューティングシステムの構成要素であるサーバの一部を示す構成図である。
【図４】（ａ）ＨＢ通信データの概念図である。  （ｂ）リーダサーバ候補データの概念図である。  （ｃ）リーダサーバ候補不在データの概念図である。
【図５】本発明の分散コンピューティングシステムの動作を示すフロー図である。
【図６】本実施形態における本発明の分散コンピューティングシステムのリーダサーバ選定必要時の状態を示す説明図である。
【発明を実施するための形態】
【００１６】
本発明を実施するための一形態（以下、「実施形態」という。）について、図面を参照して詳細に説明する。
本発明の分散コンピューティングシステムＳは、複数台のサーバ（情報処理装置）がインターネット等のネットワークＮ及びＬＡＮ（符号Ｌ）を介して接続されていることにより構成されている。以下、説明の便宜上、１台のリーダサーバＥ（旧リーダサーバ）と、４台のエージェントサーバＡ〜Ｄ（以下、５台のサーバを総称して「各サーバ」という場合がある。）を例として説明する。
【００１７】
なお、上記各サーバＡ〜Ｅは、名称を変えて説明しているが、その構成は同様であり、それぞれがクライアントＫの要求に応じて他のサーバの役割を担うことができる装置となっている。そのため、同一の構成要素を説明するに際し、当該構成要素を総称する場合には同一の符号を付すことを原則とするが、サーバの違いによる構成要素の違いを示す必要がある際には当該符号の末尾にさらに、Ａ〜Ｅを付して区別するものとする。
【００１８】
〔分散コンピューティングシステムＳの全体構成〕
図１及び図２に示すように、本実施形態の分散コンピューティングシステム（以下、「本システム」という。）Ｓは、５台のサーバＡ〜Ｅから構成されている。各サーバＡ〜Ｅは、互いに通信可能に接続され、それらのＩＰアドレスを把握するクライアントＫにネットワークＮを介して接続されている。各サーバＡ〜Ｅは、同一のデータベースＤＡ〜ＤＥに格納されているデータに対して、クライアントＫからの指示を受け、操作実行手段（図示せず）を介して、演算処理等の操作コマンドを実行することにより所望のタスクを行うことができるようになっている。
【００１９】
上記操作コマンドを実行するためのアプリケーションプログラム及びタスクを分散処理するための分散コンピューティング用のプログラムは、ここでは各サーバＡ〜Ｅのそれぞれにインストールされている。
各サーバＡ〜Ｅは、それぞれ汎用コンピュータであり、ＣＰＵ（図示せず）を備えているが、説明の便宜上は、図２に示すように、そのＣＰＵ、記憶装置等のプロセッサ能力、ストレージ能力を合意形成部４Ａ〜４Ｅと実行部５Ａ〜５Ｅ（サーバＡ，Ｃ，Ｅのみを図示）に分けることができるように構成されている。
【００２０】
合意形成部４Ａ〜４Ｅは、セルの内部で既知であるＰａｘｏｓにより合意を形成するためのＰａｘｏｓ装置Ｐを構成している。このＰａｘｏｓ装置Ｐは、セルを構成する各サーバがリーダサーバＥ又はエージェントサーバＡ〜Ｄとなって、本システムＳがある操作コマンドを実行する前に、過半数以上（定足数以上）のサーバがその操作コマンドを実行することに対して合意するか否かをリーダサーバＥが諮り、合意が形成されれば実行を開始するコンセンサスアルゴリズムである。このようなアルゴリズムにより、サーバ間の同期を簡易に図ることができ、高可用性を実現することができる装置となっている。
【００２１】
Ｐａｘｏｓ装置Ｐにおいては、上記分散コンピューティング用プログラムに従って、過半数以上のサーバにより合意形成されたタスクを実行することができるようになっている（この点に関しては詳述せず）。また、上記分散コンピューティング用プログラムに従って、各合意形成部４Ａ〜４Ｅ同士が所定の帯域内の通信方式（例えばＵＤＰ）によりメタデータを値渡しすることができるようになっている。
【００２２】
操作コマンドは、上記Ｐａｘｓｏｓ装置Ｐにより決定され、実行部５Ａ〜５Ｅは所定の操作コマンドを上記アプリケーションプログラムに適用することにより、本件タスクを実行することができるようになっている。
【００２３】
〔本システムＳの前提〕
上記のように、本システムを構成するＰａｘｏｓ装置Ｐにおける本件タスクの実行には、リーダサーバＥが非常に重要な役割を果たしている。
本件タスクの実行時において、クライアントＫは、各サーバＡ〜Ｅに対し、いずれのサーバがリーダサーバであるかを問い合わせることができるようになっている。クライアントＫは、各サーバＡ〜ＥのＩＰアドレスを把握しているため、それらのいずれかのサーバから、そのサーバがリーダサーバであるか否かを知得することができるようになっている。仮に、何らかの理由（リーダサーバの故障等）でリーダが不在になった場合（初期状態において、未だリーダが選出されたことがない場合も含む）には、早急に、新たなリーダサーバを選定する必要があるが、本システムＳは、そのリーダサーバの選定を実現するためのシステムである。
【００２４】
図３に示すように、本システムＳでは、リーダサーバを選定するためのシステムを構成するために、通信データ制御装置１０、通信装置３０、リーダサーバ選定装置６０等を備えている。
【００２５】
（通信データ制御装置１０）
通信データ制御装置１０は、通信装置３０であるデータ送信装置４０及びデータ受信装置５０を介して、各種データの送受信を制御するための手段であり、ＨＢ通信制御装置２０（但し、ＨＢは「ハートビート」の略である。）を備えている。このＨＢ通信制御装置２０は、各種の通信データのうち、自身以外の総てのサーバとの双方向通信を維持するためのハートビート通信を制御する装置であり、さらに、ＨＢ通信データ作成装置２１、ＨＢ通信状態確認装置２２及びＨＢ通信データ記憶装置２３を備えている。
【００２６】
ＨＢ通信データ作成装置２１は、ハートビート通信を行うためのＨＢ通信データ（特許請求の範囲の送信データ及び被送信データに相当する）を作成するための装置である。
「ＨＢ通信データ」は、予め割り当てられている送信元サーバの装置番号及び送信先サーバの装置番号、送信元サーバの計時機能に基づく送信時刻タイムスタンプ（送信時間データ）（以下、「送信時刻タイムスタンプ」という。）、送信先サーバが、後記ＨＢ通信データ記憶装置２３に記憶している、ＨＢ通信データの送信元から一時点前に送られてきた送信時刻タイムスタンプ（以下、「記憶済送信時刻タイムスタンプ」という。）（但し、初回の通信時には存在しないため「０」）（詳細は後記）及び自身が本システムＳに加入した日時及び時刻のタイムスタンプ（以下、「加入時刻タイムスタンプ」という。）のデータを少なくとも含んでいる（図４（ａ））。
【００２７】
なお、特許請求の範囲では、送信データと被送信データを区別している。しかし、各サーバＡ〜Ｅ、同一の構成を有する装置であり、各々のサーバＡ〜Ｅは相互に通信を行っていることから各ＨＢ通信データの構造は同一であり、説明の便宜上、区別して用いているにすぎないものである。
【００２８】
ＨＢ通信データ送信装置４１（通信データ送信装置）は、データ送信装置４０の一部を形成しており、ＨＢ通信データ作成装置２１により作成されたＨＢ通信データを、自身以外の各サーバに送信するための装置である。
例えば、本実施形態では、リーダサーバＥは、所定時間間隔（Δｔ）で、自身以外の各エージェントサーバＡ〜ＤにＨＢ通信データを送信し続けるようになっている。また、他のエージェントサーバＡ〜Ｄも、リーダサーバＥと同様に、自身以外の各サーバＡ〜ＥにＨＢ通信データを送信し続けるようになっている。
【００２９】
ＨＢ通信データ受信装置５１（通信データ受信装置）は、データ受信装置５０の一部を形成しており、自身以外のサーバのＨＢ通信データ送信装置４１から送信されたＨＢ通信データを受信するために、常時動作している装置である。
【００３０】
ＨＢ通信データ記憶装置２３は、送信元の各サーバＡ〜Ｅから送信されたＨＢ通信データを、ＨＢ通信データ受信装置５１を介して受信し、一時的に、かつ、読出し自在に記憶するための装置である。
各サーバＡ〜Ｅでは、ＨＢ通信データの送信元サーバの送信時刻タイムスタンプを記憶済送信時刻タイムスタンプとして記憶することができるようになっている。そして、この記憶済送信時刻タイムスタンプは、上記送信元サーバを送信先として指定してＨＢ通信データを作成するときに、読み出すことができるようになっている。
【００３１】
また、後記ＨＢ通信状態確認装置２２により、各サーバとの間で通信状態が維持されているか否かが常に監視されており、通信状態が維持されている場合には、ＨＢ通信データ記憶装置２３は、その送信元の装置番号とその加入時刻タイムスタンプを関連付けて保存することができるようになっている。
【００３２】
ＨＢ通信状態確認装置２２は、ＨＢ通信データ送信装置４１とＨＢ通信データ受信装置５１と協働して、自身と自身以外の各サーバとの間に双方向の通信が確立されているか否かを判断するための装置である。
上記の通り、例えば、リーダサーバＥのＨＢ通信データ送信装置４１Ｅは、所定時間間隔（Δｔ）で、自身以外の各エージェントサーバＡ〜ＤにＨＢ通信データを送信している。送信先のエージェントサーバＡ〜Ｄは、障害等が生じて受信不可能な状態になっていない限りは、当該ＨＢ通信データを受信し続けているとともに、自らも、送信元のリーダサーバＥに対して、同一の時間間隔（Δｔ）でＨＢ通信データを送信し続けている（但し、送信開始時刻は一致していなくてもよい）。
【００３３】
このような状況の中、ＨＢ通信状態確認装置２２は、以下の判断を行うことにより、各サーバ間において、ＨＢ通信が確立されているか否かを判断できるようになっている。
すなわち、各サーバは、同一の時間間隔（Δｔ）で通信を行っているため、予め定められている各サーバ間の通信時間（以下、「サーバ間通信時間」という。）をΔｄとすると、通信が確立されている場合には、リーダサーバＥがＨＢ通信データの送信を行った後、２Δｄ乃至Δｔ＋２Δｄの時間の間に、エージェントサーバＡ〜ＤからＨＢ通信データが送信されることになる。
【００３４】
ところで、エージェントサーバＡ〜ＤのＨＢ通信データには、当該ＨＢ通信データの送信先であるリーダサーバＥの一時点前の送信時刻である記憶済送信時刻タイムスタンプが記録されており、当該記憶済送信時刻タイムスタンプと、ＨＢ通信データの受信時刻の差を便宜上、ＨＢ応答時間と定義すると、当該ＨＢ応答時間が、Δｔ＋２Δｄ＋所定余裕時間（この値を、「ＨＢ通信状態判別基準時間値」という。）以下であるか否かにより、ＨＢ通信が確立されているか否かを判断することができる。したがって、本装置では、ＨＢ応答時間がＨＢ通信状態判別基準時間値以下であれば、各サーバ間での双方向通信が確保されていると判断し、それより大きければ双方向通信が遮断されていると判断することができるようになっている。
【００３５】
なお、記憶済送信時刻タイムスタンプと、ＨＢ通信データの受信時刻は、同一サーバの計時機能により記録されているため、両時刻の差をとることにより、容易にＨＢ応答時間を算出できるようになっている。
【００３６】
（通信装置３０）
通信装置３０は、データ送信装置４０及びデータ受信装置５０を備え、通信ネットワークＮを介して、ＨＢ通信データ、リーダサーバ候補データ等の各種データの通信を行うための装置である。
【００３７】
（リーダサーバ選定装置６０）
リーダサーバ選定装置６０は、新たなリーダサーバ（以下、「新リーダサーバ」という。）の選定が必要となった場合に、自律的に新リーダサーバの選定を行うための装置であり、リーダサーバ選定必要性検出装置６１、サーバ接続状態判別装置６２（接続維持情報処理装置数判別装置）、リーダサーバ候補選択装置６３及びリーダサーバ認識装置６４を備えている。
【００３８】
リーダサーバ選定必要性検出装置６１は、本システムＳが動作を開始した初期状態において、未だリーダサーバＥが存在していない状態であることを認識すること、及び、各サーバ間のＨＢ通信データを常時監視し、それまで自身がリーダと認識していたリーダサーバＥからのＨＢ通信データの送信が途絶えたこと、通信障害で隔離されていた旧リーダサーバが当該通信障害の復旧により本システムＳに復帰したこと等を認識することにより、新リーダサーバの選定が必要であると判断し、そのための処理を開始するための装置である。
本リーダサーバ選定必要性検出装置６１では、初期状態、以前のリーダサーバの回復状態、及び、ＨＢ通信状態確認装置２２において、これまで認識していたリーダサーバＥにおけるＨＢ応答時間が、ＨＢ通信状態判別基準時間値を超えた場合には、リーダサーバＥからのＨＢ通信が遮断されたと判断し、その場合に、接続サーバ状態判別装置６２に対して、各サーバＡ〜Ｄ間の通信状態の確認を命じることができるようになっている。
【００３９】
サーバ接続状態判別装置６２は、ＨＢ通信状態確認装置２２により通信状態が維持されていることの確認がなされているサーバ数（以下、「通信維持サーバ数」という。）を、ＨＢ通信記憶装置２３から読み出して、カウント（計数）するとともに、当該通信維持サーバ数が、本システムＳの稼働開始時点で、本システムＳに加入している総サーバ数（以下、「初期総サーバ数」という。）の過半数以上か否かを判別するための装置である。
【００４０】
サーバ接続状態判別装置６２では、上記条件を持たす場合には、リーダサーバ候補選択装置６３に、リーダサーバ候補の選択をするように命じるとともに、当該条件を満たさなかった場合には、リーダサーバ候補が不在であると判断し、リーダサーバ候補選択装置６３に対して、リーダサーバ候補が不在である旨の情報を通知することができるようになっている。
なお、初期総サーバ数は、記憶装置（図示せず）に予め記憶されている。
【００４１】
リーダサーバ候補選択装置６３は、サーバ接続状態判別装置６２からリーダサーバ候補の選択を命じられた場合に、リーダサーバ候補の選択を行い、データ送信装置４０を介して、他のサーバに対して、その情報を送信するための命令を通知するための装置である。
【００４２】
リーダサーバ候補選択装置６３では、ＨＢ通信データ記憶装置２３に記憶されている各サーバＡ〜Ｅ（自己も含む）の加入時刻タイムスタンプのうちで、最も加入時刻が古い（最も本システムＳにおける加入時間が長い）サーバ（以下、「最長老サーバ」という。）を選択し、当該最長老サーバをリーダサーバ候補として、その装置（識別）番号データを含むリーダサーバ候補データを作成し、自身以外の各サーバに送信するように、データ送信装置４０に命ずることができるように構成されている。
なお、加入時刻が同時刻のサーバが存在する場合には、予め定められた判断基準（例えば、一番最後に判断を行ったサーバを最長老サーバと判断する）に従って、最長老サーバが定められることになる。
【００４３】
一方、サーバ接続状態判別装置６２から、リーダサーバ候補が不在である旨の情報が送信された場合には、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報（たとえば、「−１」）が記録されているリーダサーバ候補不在データを作成し、データ送信装置４０を介して、自身以外の他のサーバに対して、その情報を送信するための命令を通知することができるように構成されている。
【００４４】
なお、「リーダ候補データ」及び「リーダ候補不在データ」は、送信元サーバの装置番号及び送信先サーバの装置番号、最長老サーバの装置番号又はリーダサーバ不在情報を少なくとも含んでいる（図４（ｂ），（ｃ））。
【００４５】
リーダサーバ認識装置６４は、他のエージェントサーバから受信したリーダサーバ候補データに記録されている最長老サーバの装置番号と、自身の認識している最長老サーバの装置番号を調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在している場合には、当該サーバを新たなリーダサーバ（以下、「新リーダサーバ」という。）と認識するように命令するための装置である。
一方、最長老サーバを調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新リーダサーバを認識しないようになっている。
【００４６】
なお、リーダサーバ候補を送信することにより、新リーダサーバの選定に関与した各サーバは、いずれのサーバが新リーダサーバとなったかを認識しており、エージェントサーバは、新リーダサーバからの指令をうけてタスク等を行うことになる。
また、新リーダサーバの選定に関与した各サーバは、クライアントＫから新リーダサーバに関する問い合わせがあった場合には、新リーダサーバの装置番号を送信することができるようになっている。
【００４７】
［動作］
続いて、図５を参照して、本システムＳの動作について説明する。
なお、本システムＳが動作を開始した初期状態においては、リーダサーバ選定必要性検出装置６１により、リーダサーバＥが存在していない状態であることが検知されることになり、下記とほぼ同様の動作によりリーダサーバＥが認識されることになる（Ｓ１，Ｓ２）ため、以下は、本システムＳの動作中におけるリーダ選定に関して説明する。
【００４８】
初期状態では、リーダサーバＥ及びエージェントサーバＡ〜Ｄが、クライアントＫからの要求に応じて、所定のアプリケーションに従ってタスクの実行をしている。このとき、各サーバＡ〜Ｅの間において、ＨＢ通信データの送受信が行われることにより、ＨＢ通信が維持されていることが確認されている。
なお、図６における実線は各サーバの通信が維持されていることを示しており、×印は通信が遮断されていることを示している。また、（  ）は、本システムＳへの加入時刻を示すものであり、各エージェントサーバＡ〜Ｄの加入時刻は順に１：００、２：００、３：００、４：００と一時間ずつ遅くなっている（月日は同日と仮定し、省略している）。
【００４９】
今、何らかの理由でリーダサーバＥが動作を停止し、本システムＳから離脱したとする。すると、リーダサーバＥとの間のＨＢ通信を監視していたＨＢ通信状態確認装置２２において、これまで認識していたリーダサーバＥにおけるＨＢ応答時間が、ＨＢ通信状態判別基準時間値を超えるため、同サーバＥと他のサーバＡ〜Ｄの通信が遮断されたと判断される。そのため、各エージェントサーバＡ〜Ｄのリーダサーバ選定必要性検出装置６１は、旧リーダサーバＥが消滅したとして、サーバ接続状態判別装置６２に対して、新たなリーダサーバの選定（選択）をする動作を開始させることになる（Ｓ３）。
【００５０】
まず、各サーバ接続状態判別装置６２は、通信維持サーバ数をＨＢ受信データ記憶装置２３から読み出しカウントする（Ｓ４）。本実施形態では、各エージェントサーバＡ〜Ｄの通信維持サーバ数は総て４台である。
【００５１】
そして、サーバ接続状態判別装置６２は、通信維持サーバ数が、初期総サーバ数〔５台〕の過半数〔３台〕以上か否かを判別する（Ｓ５）。本実施形態では、各エージェントサーバＡ〜Ｄはこの条件を満たすため、各エージェントサーバＡ〜Ｄのサーバ接続状態判別装置６２は、当該エージェントサーバＡ〜Ｄのリーダサーバ候補選択装置６３に対して、リーダサーバ候補の選択をするように命じる（Ｓ６）。
なお、仮に上記条件を満たすエージェントサーバが存在しなかった場合には、そのサーバ接続状態判別装置６２は、当該エージェントサーバのリーダサーバ候補選択装置６３に対して、リーダサーバ候補が不在であることを通知する（Ｓ７）。
【００５２】
サーバ接続状態判別装置６２からリーダサーバ候補の選択を命じられたエージェントサーバＡ〜Ｄのリーダサーバ候補選択装置６３は、ＨＢ通信データ記憶装置２３に記憶されている各サーバＡ〜Ｄ（自身も含む）の加入時刻タイムスタンプのうちで、最も加入時刻が古い最長老サーバを選択し、リーダサーバ候補データを作成する（Ｓ８）。本実施形態では、各エージェントサーバＡ〜Ｄともに、リーダサーバ候補は加入時刻が１：００であるエージェントサーバＡとなる。
【００５３】
なお、仮に、サーバ接続状態判別装置６２から、リーダサーバ候補が不在である旨の情報が送信された場合には、そのエージェントサーバのリーダサーバ候補選択装置６３は、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報（−１）を記録した、リーダサーバ候補不在データを作成する（Ｓ９）。
【００５４】
そして上記により作成されたリーダサーバ候補データ又はリーダサーバ候補不在データは、データ送信装置４０を介して、自身以外の各サーバに送信される。
【００５５】
各エージェントサーバＡ〜Ｄから送信されたリーダサーバ候補データは、データ受信装置４０を介して受信される。リーダサーバ認識装置６４は、他のエージェントサーバから受信したリーダサーバ候補データに記録されているリーダサーバ候補の最長老サーバの装置番号と、自身の認識している最長老サーバ（他のエージェントサーバに対して送信した最長老サーバと同じ）の装置番号を調べ、初期総サーバ数〔５台〕の過半数〔３台〕以上のエージェントサーバがリーダサーバ候補と認識している、同一のエージェントサーバが存在しているか否かを確認し（Ｓ１０）、当該条件を満たす場合には、そのエージェントサーバを新たなリーダサーバと認識することになる（Ｓ１１）。
【００５６】
本実施形態では、総てのエージェントサーバＡ〜Ｄにおいて、自己が認識している最長老サーバの装置番号がＡ、各エージェントサーバＡ〜Ｄ（但し、自身を除く）から送信される最長老サーバの装置番号もＡであるため、総てのエージェントサーバＡ〜Ｄが、エージェントサーバＡを新リーダサーバと認識することになる。
【００５７】
なお、仮に、最長老サーバを調べ、初期総サーバ数〔５台〕の過半数〔３台〕以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新たなリーダサーバを認識しないことになる（Ｓ１２）。
【００５８】
そして、新リーダサーバＡは、自らが新リーダサーバとして動作するとともに、他のエージェントサーバＢ〜Ｄは、その指令に従い、タスクを実行することになる。
また、クライアントＫは、各サーバＡ〜Ｄに対して、新リーダサーバを問い合わせることにより、いずれかのサーバが新リーダサーバＡの装置番号を送信することにより、クライアントＫは新リーダサーバを認識することができる。そして、当該新リーダサーバＡに対して以降の指示を行うことになる。
【００５９】
なお、通信障害で隔離されていた旧リーダサーバが、当該通信障害の復旧により本システムＳに復帰した場合において、当該旧リーダサーバが本システムＳにおける最長老サーバである場合には、上記と同様の動作により、自身が新リーダサーバに復帰することになる。
【００６０】
以上、本システムＳによれば、上記一連の動作により、第三者等の指示を受けることなく自律的に新たなリーダサーバの選定を行うことができる。特に、特定のサーバに依存していないため、当該特定のサーバに対する故障等を心配することなく、新たなリーダサーバの選定を行うことができる。
【００６１】
また、リーダサーバ候補選択装置６３は、本システムＳへの加入時刻を基準として、最長老サーバを選択している。したがって、新たなリーダの選択基準が明確であり、後から本システムＳに加入したサーバによってリーダ交替が行われることがないため、不必要なリーダ交替を抑止することができ、本システムＳの安定性に資することになる。
【００６２】
さらに、本システムＳでは、自身と通信が維持されている自身以外の各サーバの数を計数し、当該通信維持サーバ数が、初期総数の過半数以上か否かの条件（第１条件）を満たすこと及び、初期総数の過半数以上のサーバがリーダ候補サーバと認識している同一のサーバが存在していること（第２条件）を新たなリーダの選定の条件としている。
この第１条件により、初期総数の過半数以上のサーバの存在をリーダ候補サーバの選択を開始する条件にしていることから、過半数未満のサーバによるリーダ選定の攪乱を防止することができる。また、第２条件により、誤ったリーダ候補サーバの選択を防止し、確実にリーダサーバの選定をすることができる。
【００６３】
また、本システムＳにおいて、ＨＢ通信データ送信装置及びＨＢ通信データ受信装置が、一定時間間隔で、ＨＢ通信データを送受信し、ＨＢ通信状態確認装置２２により各サーバの通信状態を監視しているため、新たなリーダ選定が必要な場合を迅速に検知し、以降の処理を行うことができる。
【００６４】
以上、本発明について、好適な実施形態についての一例を説明したが、本発明は当該実施形態に限られず、本発明の趣旨を逸脱しない範囲で適宜設計変更が可能である。
上記実施形態では、情報処理装置は、５台のサーバの場合を例として説明したが、複数台のコンピューティングデバイスであれば、その種類や数はこれに限られるものではない。また、複数台の情報処理装置は、インターネットやＬＡＮ以外にも、どのような接続手段により接続されているものであってもよい。
【００６５】
さらに、上記実施形態では、ＨＢ通信を行うに際してＵＤＰを使用することを前提とした場合について説明したが、当該技術に限らず、ＴＣＰ等の通信方式を使用したものであってもよい。
【符号の説明】
【００６６】
Ｓ      分散コンピューティングシステム
Ｎ      ネットワーク
Ｋ      クライアント
Ａ〜Ｄ      エージェントサーバ
Ｅ      （旧）リーダサーバ
Ｐ      Ｐａｘｏｓ装置
４Ａ，４Ｃ，４Ｅ      合意形成部
５Ａ，５Ｃ，５Ｅ      実行部
Ｄ      データベース
１０    通信データ制御装置
２０    ＨＢ通信制御装置
２１    ＨＢ通信データ作成装置
２２    ＨＢ通信状態確認装置
２３    ＨＢ通信データ記憶装置
３０    通信装置
４０    データ送信装置
４１    ＨＢ通信データ送信装置（通信データ送信装置）
５０    データ受信装置
５１    ＨＢ通信データ受信装置（通信データ受信装置）
６０    リーダサーバ選定装置
６１    リーダサーバ選定必要性検出装置
６２    サーバ接続状態判別装置（接続維持情報処理装置数判別装置）
６３    リーダサーバ候補選択装置
６４    リーダサーバ認識装置
【図１】
2011253391.tif 000003
【図２】
2011253391.tif 000004
【図３】
2011253391.tif 000005
【図４】
2011253391.tif 000006
【図５】
2011253391.tif 000007
【図６】
2011253391.tif 000008