(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された情報処理装置の複数のグループのうちの任意のグループ（以下「第１のグループ」という）に属する任意の情報処理装置から、複数存在する、前記第１のグループに属するあらかじめ定められた情報処理装置（以下「代表クライアント」という）のすべてへ、前記第１のグループ以外の他のグループ（以下「第２のグループという」）に対する結合提案要求情報であって、前記第２のグループに所属する複数の情報処理装置に関する情報（以下「第２のグループ情報処理装置情報」という）を含む情報を前記ネットワークを介して送信する第１の送信工程と、
前記結合提案要求情報に対する前記代表クライアントの可否情報を当該代表クライアントから、前記第１のグループに属する他のすべての代表クライアントへそれぞれ前記ネットワークを介して送信する第２の送信工程と、
複数の前記代表クライアントがそれぞれ、自装置の可否情報および前記第２の送信工程において送信されてきた他の代表クライアントの可否情報に基づいて、両者の可の数の和が全体の過半数に達した場合に、前記第１のグループに属するすべての情報処理装置へ、前記第２のグループへ結合要求する旨の情報を前記ネットワークを介して送信するとともに、前記第２のグループ情報処理装置情報に基づいて、前記第２のグループに所属する複数の情報処理装置に対してそれぞれ結合要求情報を前記ネットワークを介して送信する第３の送信工程と、
を含んだことを特徴とする情報処理装置結合方法。
【請求項２】
複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各情報処理装置における情報処理装置結合方法において、
自己の所属するグループ（以下「第１のグループ」という）を代表する、あらかじめ定められた複数の情報処理装置（以下「代表クライアント」という）がそれぞれ、
前記第１のグループ以外の他のグループ（以下「第２のグループ」という）に対する結合の提案情報であって、前記第２のグループに所属する複数の情報処理装置に関する情報（以下「第２のグループ情報処理装置情報」という）を含む情報を、前記第１のグループ内の任意の情報処理装置から受信する提案情報受信工程と、
前記提案情報受信工程において受信された情報に対する、結合の可否情報（以下「第１の可否情報」という）を、前記第１のグループ内の自己以外のすべての代表クライアントに送信する可否情報送信工程と、
前記第１のグループ内の自己以外の代表クライアントから、当該代表クライアントの前記可否情報（以下「第２の可否情報」という）を受信する可否情報受信工程と、
前記第１の可否情報および前記第２の可否情報に基づいて、前記第１の可否情報および前記第２の可否情報の可の数の和が全体の過半数に達した場合に、前記第１のグループに属するすべての情報処理装置へ、前記第２のグループへ結合要求する旨の情報を前記ネットワークを介して送信するとともに、前記第２のグループ情報処理装置情報に基づいて、前記第２のグループに所属する複数の情報処理装置に対してそれぞれ結合要求情報を送信する結合要求送信工程と、
を実行することを特徴とする情報処理装置結合方法。
【請求項３】
請求項１または請求項２に記載された方法をコンピュータに実行させることを特徴とする情報処置装置結合プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、当該情報処理装置、情報処理装置結合方法、情報処理装置結合プログラムに関する。
【０００２】
【従来の技術】
始動を開始したデジタル放送における双方向性は、視聴者の声をリアルタイムに番組に反映できるという点で、非常に注目されている技術の一つである。ただし、現状では機器が高価であることなどから、一般への普及はまだ先のことと予想されている。
【０００３】
一方、近年急速に普及の進んだインターネットでは、マルチキャストなど大容量のコンテンツを単一のパケットで多数のユーザーに同時に配布する技術が導入されつつあり、放送機能を完全に取り込んでしまうのもそう先のことではない。もっともインターネットでは、従来はサーバーからクライアントに対する一方的な情報配信が主であったため、デジタル放送に見られるような双方向性はまだ貧弱である。
【０００４】
たとえば、インターネットで多数のユーザーが同時に参加するクイズを実施し、現時点での回答者は何人であり、うち正解者は何人であるなどといった回答状況を、随時各参加者に通知することを考える。
【０００５】
この集計結果の配信にマルチキャストを利用すると、マルチキャストに対応しているプロバイダが現時点ではまだ少数のため、サービスを受けられるユーザーが限定されてしまう。また、従来技術のブロードキャスト（指定されたネットワーク内のすべてのポイントに対して、単一のパケットを送信する情報配信方式）は、参加者が同一ネットワークに属する全ユーザーであるという特殊なケースを除いて、利用することができない。
【０００６】
そこで、この集計結果を従来技術のユニキャスト（指定された個々のポイントに対してパケットを作成・送信する情報配信方式）により全参加者に配信しようとすると、１秒で１０００件を処理したとしても参加者が１００万人いれば１６分以上となり、とてもリアルタイムとはいえなくなってしまう。そもそも回答状況の取りまとめ、すなわち１００万人単位の参加者からの回答を受け付けて、回答者数や正解者数を集計するだけでも相当の時間を要してしまう。
【０００７】
そこで本出願人は、サーバーを頂点とするツリー状にクライアントを組織化し、（ａ）下位のクライアントＡ・Ｂから上がってきたそこまでの集計結果を上位のクライアントＣが合算し、自己の回答を加算してさらにその上位のクライアントＤに上げてゆく、また（ｂ）上位のクライアントＤから配信されてきた全体の集計結果を、その下位のクライアントＣがさらにその下位のクライアントＡ・Ｂに転送してゆく、というように、従来サーバーが負担していた処理をツリーの各階層のクライアントに分散して割り当てることで、サーバーの負荷を劇的に軽減する技術をすでに提案している（特願２００１−０９４４１５号。また関連技術に特願２００１−０９４４１４号、特願２００１−０９４４１６号がある）。
【０００８】
上記技術では、コンテンツに参加しようとするクライアントは、参加ＩＤなど最小限の必要事項を取得するためにまずサーバーに接続する。このときサーバーが、すでに形成されているツリー上のいずれかのクライアント（すでに参加中のいずれかのクライアント）を指定するので、新たなクライアントはこのクライアントに接続することで、上述の集計と集計結果配信のルートに組み込まれる。このようにして、上記ツリーは徐々に成長してゆく。
【０００９】
【発明が解決しようとする課題】
ただ、上記は少数のクライアントが散発的にコンテンツに参加してきた場合であって、たとえば同じプロバイダに属する多数のクライアントが一気に参加してきたような場合には、それらだけで別途ツリーを形成したほうが効率的である。また、もともとは一本であったツリーが、一部のクライアントの参加中止や通信断絶により複数に分断されてしまうこともある。
【００１０】
ツリーが複数発生する原因はどうあれ、これらのツリーは遅くともコンテンツの開始時までには、サーバーを頂点とする一本のツリーに統合されていなければならない。そして、このツリー同士の結合作業をサーバー側でおこなうとすると、１００万単位のクライアントの接続状況などをサーバーが常時把握していなければならず、その処理負荷が大きくなってしまう。
【００１１】
そこで、ツリーの結合、さらに言えばクライアントの組織化は（前者は後者の一例にすぎない）、クライアント側で自律的におこなわせるようにしたいが、個々のクライアントが勝手に行動したのでは組織に矛盾を生ずることがある。たとえば、ツリーＡの頂点のクライアント（厳密には、当該ツリーの最上位に位置するループ内のいずれかのクライアント。後述）がツリーＢの下につくことを決めるのと同時に、ツリーＢの頂点のクライアント（同上）がツリーＡの下につくことを決める、などといったことが起こり得る。
【００１２】
また、いずれか一つのクライアント（上記の例では頂点のクライアント）に結合の意思決定を一任していると、このクライアントが参加を中止したり通信を断絶したりした場合に組織に混乱を生ずることがある。
【００１３】
この発明は上記従来技術による問題点に鑑みてなされたものであって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置結合方法、情報処理装置結合プログラムおよび情報処理装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明にかかる情報処理装置は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合提案可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信手段と、を備えたことを特徴とする。
【００１５】
この発明によれば、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行される。
【００１６】
また、この発明にかかる情報処理装置は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信手段と、前記結合要求受信手段により受信された結合要求の受け入れ可否を判定する結合可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信手段と、を備えたことを特徴とする。
【００１７】
この発明によれば、あるグループと他のグループとの結合（そのために必要な情報の共有）は、グループ内での合議により過半数で可決されて初めて実行される。
【００１８】
また、この発明にかかる情報処理方法は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合提案可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信工程と、を含んだことを特徴とする。
【００１９】
この発明によれば、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行される。
【００２０】
また、この発明にかかる情報処理方法は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信工程と、前記結合要求受信工程で受信された結合要求の受け入れ可否を判定する結合可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信工程と、を含んだことを特徴とする。
【００２１】
この発明によれば、あるグループと他のグループとの結合（そのために必要な情報の共有）は、グループ内での合議により過半数で可決されて初めて実行される。
【００２２】
また、この発明にかかるプログラムは、上記に記載された方法をコンピュータに実行させることを特徴とする。
【００２３】
この発明によれば、前記請求項３または請求項４に記載された方法がコンピュータにより実行される。
【００２４】
【発明の実施の形態】
以下に添付図面を参照して、この発明による情報処理装置結合方法、情報処理装置結合プログラムおよび情報処理装置の好適な実施の形態を詳細に説明する。
【００２５】
まず、この発明の実施の形態による情報処理装置を含む、情報処理システム（具体的には回答集計システム）の構成につき、図１および図２により説明する。図１は、本システムの物理的な構成を示す説明図である。図示するように、本システムはインターネットと、そこに設置されたサーバー、およびプロバイダやプロキシなどを介してインターネットに接続された、数千から数百万人規模の多数のクライアントから構成される。
【００２６】
つぎに、図２は本システムの構成を概念的・模式的に示す説明図である。同図は図１のように、サーバーやクライアントの物理的な接続関係を示すものではなく、上述した集計の経路、および集計結果の配信の経路を示している。図示するように、複数のクライアントによって一つのグループ（図中三角形で示される。以下では「ループ」という）が形成され、各ループがサーバーを頂点とするツリー状に配置されている。
【００２７】
なお、同図では簡略化して、各ループはそれぞれ３つのクライアントからなるように描いているが、ループの構成メンバーは実際には３〜十数個程度であり、ループごとにその数も異なる。また、各ループにはそのループの代表を務めるクライアントとして、複数（たとえば３つ）のクライアントが選定されている。この代表は、ループ内の各クライアントの処理能力や負荷状況などに応じて随時選任・解任される（通常は、最も処理の速い３つが代表に選ばれる）。
【００２８】
なお、一つのループは（１）直接通信が可能で、かつ（２）できるだけ電子的な距離の近い（通信経路の短い、あるいはアドレスの近いと言ってもよい）クライアントから構成される。
【００２９】
たとえば、ダイヤルアップＩＰ接続によりインターネットに接続しているクライアントには、通常はそれぞれのプロバイダへの接続時に、ＤＨＣＰによりグローバルＩＰアドレスが割り当てられている。そして、グローバルＩＰアドレスを有するクライアント間であれば、接続しているプロバイダの異同にかかわらず、ＵＤＰによる直接通信が可能である。
【００３０】
したがって、上記（１）の観点からはこれらのクライアントは一つのループにまとめてしまってもよいのであるが、上記（２）の観点から、通常は同じプロバイダに接続しているクライアントごとに一つのループを形成することになる。ただし、一つのループ内のメンバー数が多くなりすぎるときは、複数のループに分割・分散される。
【００３１】
他方、ＬＡＮなどからプロキシを介してインターネットに接続しているクライアントは、通常はプライベートＩＰアドレスを割り当てられており、原則として同一ＬＡＮ内のクライアントとしか通信することができない。そこで、このようなクライアントは、上記（１）の観点からも（２）の観点からもこれらのみで一つのループを形成することになる。
【００３２】
もっとも、データをエンコードしてＨＴＴＰプロトコルにより送信する、静的ＮＡＴを設定する、あるいは専用のプロキシを設置するなどの対策を講じれば、ＬＡＮの内部から外部に接続することは可能である。ただ、いずれにせよルータやプロキシサーバーに負荷がかかるので、このようなクライアントはまとめて、ツリーの末端に配置する。
【００３３】
つぎに、この発明の実施の形態による情報処理システムを構成する、個々のクライアントの構成につき図３および図４により説明する。まず図３は、本システム内の各クライアントのハードウェア構成の一例を示す説明図である。同図に示す構成は典型例であって、実際にはコンテンツに参加するクライアントの多様性を反映して、そのハードウェア構成も様々である。
【００３４】
同図において、３０１は装置全体を制御するＣＰＵを、３０２は基本入出力プログラムを記憶したＲＯＭを、３０３はＣＰＵ３０１のワークエリアとして使用されるＲＡＭを、それぞれ示している。
【００３５】
また、３０４はＣＰＵ３０１の制御にしたがってＨＤ（ハードディスク）３０５に対するデータのリード／ライトを制御するＨＤＤ（ハードディスクドライブ）を、３０５はＨＤＤ３０４の制御にしたがって書き込まれたデータを記憶するＨＤを、それぞれ示している。また、３０６はＣＰＵ３０１の制御にしたがってＦＤ（フレキシブルディスク）３０７に対するデータのリード／ライトを制御するＦＤＤ（フレキシブルディスクドライブ）を、３０７はＦＤＤ３０６の制御にしたがって書き込まれたデータを記憶する着脱自在のＦＤを、それぞれ示している。
【００３６】
また、３０８はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、３０９は公衆電話回線３１０を介してインターネットへの、またはインターネットからのデータの送受信をおこなうモデムを、それぞれ示している。また、３１１は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、３１２は各種指示の選択や実行、処理対象の選択、カーソルの移動などをおこなうマウスを、それぞれ示している。
【００３７】
また、３１３は文字や画像を光学的に読み取るスキャナを、３１４は文字や画像を用紙上に印刷するプリンタを、３１５は着脱可能な記録媒体であるＣＤ−ＲＯＭを、３１６はＣＤ−ＲＯＭ３１５に対するデータのリードを制御するＣＤ−ＲＯＭドライブを、３００は上記各部を接続するためのバスまたはケーブルを、それぞれ示している。
【００３８】
つぎに、図４は本システム内の各クライアントの機能的構成を示す説明図である。クライアントは図示する以外にも種々の機能を有するが、ここでは請求項に記載の発明を説明するために必要な機能、具体的にはクライアントの組織化（とりわけツリーの結合）に関する機能のみについて説明する。
【００３９】
図中、４００は参加部であり、サーバーに接続してコンテンツへの参加のために必要な情報（参加ＩＤ、受け入れ先のループ、後述する問い合わせ先となるクライアントのＩＰアドレスなど）を取得するとともに、受け入れ先に接続してその他の必要な情報（受け入れ先のループの代表のＩＰアドレスなど）を取得することで、このクライアントを上述のツリー内に組み込む機能部である。
【００４０】
４０１は結合位置特定部であり、後で詳細に説明する手順にしたがって、このクライアントが所属するツリーとは別のツリーとの間で結合位置を問い合わせ、両ツリーの結節点となるループを探索・特定する機能部である。
【００４１】
４０２はループ内提案部であり、同一ループ内の代表のクライアントに対して、結合位置特定部４０１により特定された相手方のツリーのループに結合を提案するよう要求する結合提案要求送信部４０２ａ、および同一ループ内のいずれかのクライアントから、上記要求を受信する結合提案要求受信部４０２ｂを含む構成である。
【００４２】
４０３は可否判断部であり、相手方のツリーのループに対して結合の提案をするかどうかを判断する結合提案可否判断部４０３ａ、および相手方のツリーのループと結合するかどうかを判断する結合可否判断部４０３ｂを含む構成である。
【００４３】
４０４は可否決定部であり、同一ループ内の他の代表のクライアントに対して、可否判断部４０３による自己の判断結果を送信する判断結果送信部４０４ａ、逆に同一ループ内の他の代表のクライアントから、各々の可否判断部４０３による判断結果を受信する判断結果受信部４０４ｂ、および可否判断部４０３による自己の判断結果と、判断結果受信部４０４ｂにより受信した他の代表の判断結果とを照合して、その過半数が「可」であった場合に相手方のツリーのループに結合を提案すること、または相手方のツリーのループと結合することを決定する可否決定部４０４ｃを含む構成である。
【００４４】
４０５は組織情報共有部であり、結合やその提案が可否決定部４０４により決定された場合に、その事実や結合に必要な情報などを同一ループ内の他のすべてのクライアントに送信する共有情報送信部４０５ａ、および同一ループ内の代表のクライアントから、上記事実や情報などを受信する共有情報受信部４０５ｂを含む構成である。
【００４５】
４０６はループ外提案部であり、結合位置特定部４０１により特定された相手方のツリーのループの代表に対して、自己の所属するループとの結合を提案する結合要求送信部４０６ａ、自己の所属するループ以外のループの代表から上記提案を受信する結合要求受信部４０６ｂ、結合要求受信部４０６ｂにより受信した提案に対する、可否判断部４０３による可または否の判断結果を提案元のループの代表に送信する判断結果送信部４０６ｃ、および提案先のループの代表から上記判断結果を受信する判断結果受信部４０６ｄを含む構成である。
【００４６】
なお、図中点線で囲んだ部分、すなわちループ内提案部４０２のうち特に結合提案要求受信部４０２ｂ、可否判断部４０３と可否決定部４０４、組織情報共有部４０５のうち特に共有情報送信部４０５ａ、およびループ外提案部４０６は、クライアントの中でも特に各ループの代表として選定されたクライアントのみに具備される（代表以外のクライアントに具備されていてもよいが、その機能はこれらのクライアントでは発揮されることがない）。
【００４７】
さて、図２に示したツリーは完成形、すなわちコンテンツ開始直前の状態であり、形成途中の複数のツリーが徐々に結合した最終結果として得られるものである。つぎに、図５に示すフローチャートにより、本システムにおけるツリーの結合の手順を詳細に説明する。
【００４８】
ツリーの結合は、形成途中のいずれかのツリーに新たなクライアントが加わったタイミング、すなわちコンテンツに新たなクライアントが参加したタイミングでおこなわれるため、同図のフローチャートには参加のフェーズも含めて示している。
【００４９】
コンテンツに参加しようとするクライアントは、まずその参加部４００によりサーバーに接続して、参加のための必要事項を取得し（図５ステップＳ５０１）、つぎにそこで指定された受け入れ先に接続して、必要な情報を取得することで、いずれかのツリーの中に組み込まれる（ステップＳ５０２）。
【００５０】
この参加に続く結合には、大きく分けて結合位置を特定するための、結合前の問い合わせのフェーズ（ステップＳ５０３）と、結合の合意および実際の結合のフェーズ（ステップＳ５０４以下）との２段階がある。以下、順次説明する。
【００５１】
１．結合前の問い合わせ（結合位置の特定）
図６は、同図に示すクライアント６００がツリーＡに新たに加わった直後の、ツリーＡと他のツリーＢとの結合位置の特定の様子を模式的に示す説明図である。同図を参照しつつ、図５のステップＳ５０３における処理を詳細に説明する。なお、この処理はもっぱら図４に示した結合位置特定部４０１により実行される。
【００５２】
上述のように、クライアント６００はコンテンツへの参加に先立って、サーバーから参加ＩＤや受け入れ先などの必要事項を入手するが、この必要事項の中には問い合わせ先として、すでに参加中のクライアントから選ばれた複数のクライアント（２つ以上であれば個数は問わない）のＩＰアドレスが含まれている。このクライアントは、クライアント６００と直接通信可能なクライアントの中からランダムに選択される。ここではそのうちの一つが、図示するクライアント６０１であったものとする。
【００５３】
クライアント６００はツリーＡに加わった後、問い合わせ先であるクライアント６０１に対して、自己の所属するツリーＡの識別情報と当該ツリー内で自己の位置する階層（同図の例ではツリーの一番下、すなわち第１階層）とを送信する（図中（１））。
【００５４】
クライアント６０１では、もし受信したツリーの識別情報が自己の所属するツリーの識別情報と同じであれば、その旨をクライアント６００に返信する。そして、この場合は新たに参加したクライアント６００と、その問い合わせ先となったクライアント６０１は同一のツリーに属していることになるので、ツリーを結合する余地がなく、この時点で問い合わせは中止される（まだ問い合わせをしていない問い合わせ先があれば、そちらへの問い合わせに移行する）。
【００５５】
一方、受信したツリーの識別情報が自己の所属するツリーの識別情報と違っている場合は、クライアント６０１はツリーＢ内で自己の位置する階層（同図の例では第１階層）と、受信したクライアント６００の位置する階層（同じく第１階層）とを比較して、自己の階層のほうが相手の階層と同じかそれより高ければ、より高い階層のクライアントに改めて問い合わせをさせるようクライアント６００に返信する（図中（２））。
【００５６】
これを受信したクライアント６００は、自己の所属するループの一つ上のループへ問い合わせの依頼を上げ（図中（３））、これを受けたループ内のクライアント６０２が、ツリーＡ内で自己の位置する階層（同図の例では第２階層）をクライアント６０１に送信する（図中（４））。
【００５７】
クライアント６０１ではクライアント６００からの問い合わせ時と同様に、自己の階層（第１階層）と相手の階層（第２階層）とを比較し、この場合自己の階層のほうが相手の階層より低いので、自己の所属するループの一つ上のループへ問い合わせの依頼を上げる（図中（５））。そして、これを受けたループ内のクライアント６０３が、ツリーＢ内で自己の位置する階層（同図の例では第２階層）をクライアント６０２に送信する（図中（６））。
【００５８】
これを受信したクライアント６０２は、同じく自己の階層（第２階層）と相手の階層（第２階層）とを比較し、この場合自己の階層が相手の階層と同じ（かそれより高い）なので、より高い階層のクライアントに改めて問い合わせをさせるようクライアント６０３に返信する（図中（７））。
【００５９】
これを受信したクライアント６０３は、自己の所属するループの一つ上のループへ問い合わせの依頼を上げ（図中（８））、これを受けたループ内のクライアント６０４が、ツリーＢ内で自己の位置する階層（同図の例では第３階層）をクライアント６０２に送信する（図中（９））。
【００６０】
これを受信したクライアント６０２は、同じく自己の階層（第２階層）と相手の階層（第３階層）とを比較し、この場合自己の階層のほうが相手の階層より低いので、自己の所属するループの一つ上のループへ問い合わせの依頼を上げる（図中（１０））。そして、これを受けたループ内のクライアント６０５が、自己の位置する階層がツリーＡ内の最上位である事実、すなわち自己の所属するループがツリーＡ内の最高位のループである事実をクライアント６０４に送信する（図中（１１））。
【００６１】
これを受信したクライアント６０４は、自己のループに所属するクライアントのうち、代表となる３つのクライアントのＩＰアドレスをクライアント６０５に返信する（図中（１２））。そして、クライアント６０４のループとクライアント６０５のループとが後述の手順により結合に合意した後、先に一番上のループに達したツリーＡがもう一方のツリーＢの下に入る形で、上記ループを結節点として両ツリーが図７のように結合する。
【００６２】
このように、お互いの位置する階層を比較して、釣り合わない相手であればより上位のクライアントに問い合わせをやり直させることで、ツリー間の通信が最終的には（すなわち、図６（１２）の時点では）、同等レベルでかつ可能な限り上位のクライアント同士でおこなわれることを担保する。
【００６３】
上記のようにすることのメリットは、新たに参加したクライアントと、サーバーが適当に指定した問い合わせ先のクライアントとの位置関係がどんなものであっても、それぞれのクライアントの属するツリーが、いわば「裾が揃った」状態で結合される点にある。
【００６４】
たとえば、新たに参加したクライアントが６００でなく６０５であり、その問い合わせ先がクライアント６０１であった場合、クライアント６０１のループの下にクライアント６０５のループがつながる形でツリーＡ・Ｂを結合することもできるが、それだと結合後のツリーでは最上位のループから最下位のループまでの経路が結合前に比べてかなり長くなってしまう（単純な加算）。
【００６５】
しかし上述の集計や集計結果配信の観点からは、経路はできるだけ短いほうがよく、また一つだけ極端に長い経路があるなどの長短のばらつきが少ないほうがよい。集計などの速度は経路の長さに依存するので、際立って長い経路があると、そこで処理が終わるのを他の短い経路のクライアントが待たなければならないためである。
【００６６】
そこで、クライアント６０５がクライアント６０１に問い合わせた時点で、両者間に２階層の格差のあることが分かれば、格下のほうのクライアント６０１に代わって、同じツリーの２階層上のクライアント６０４が最終的な問い合わせ先となるよう調整する。この結果、新たに参加したクライアントが６０５であった場合も、結合後のツリーは図７のものと同一になる。これに限らず、問い合わせ元・問い合わせ先のクライアントの組み合わせがどのようなものであっても、ツリーＡとツリーＢの結合結果は同一となる。
【００６７】
２．結合の合意および実際の結合
つぎに、図８〜図１４は上記のようにして結合位置が特定された後の、両ツリーの結節点となるループ間での結合の合意と、実際の結合との様子を模式的に示す説明図である。図中、左側がツリーＡの第３階層のループ（クライアント６０５の所属するループ。以下「ループａ」）、右側がツリーＢの第３階層のループ（クライアント６０４の所属するループ。以下「ループｂ」）である。これらの図を参照しつつ、図５のステップＳ５０４以下の処理を詳細に説明する。
【００６８】
（１）ループａで結合提案の発議・・・図８
ループａのクライアント６０５は、まずその結合提案要求送信部４０２ａにより、自己のループの代表である３つのクライアント、具体的には図８に示す８００・８０１・８０２に対してループｂに結合を提案すべき旨の要求を送信する（ステップＳ５０４）。なおこの要求には、クライアント６０５がクライアント６０４から受信した、ループｂの代表のＩＰアドレス（図６（１２）参照）が添付されている。
【００６９】
（２）ループａで結合提案の合議・・・図９
クライアント６０５からの要求を結合提案要求受信部４０２ｂで受信したクライアント８００・８０１・８０２は、各々の結合提案可否判断部４０３ａにより、それぞれ提案の可否を判断する（ステップＳ５０５）。そして、その判断結果（「可」「否」いずれか）を判断結果送信部４０４ａから残り２つの代表に送信するとともに、逆に判断結果受信部４０４ｂにより、残り２つの代表から各々の判断結果を受信して、これらの判断結果を可否決定部４０４ｃで照合する（ステップＳ５０６）。
【００７０】
（３）ループａで結合提案の決定と決定事項の周知・・・図１０
そして、自己の判断結果と他の２つの代表の判断結果のうち少なくとも２つが「可」であった場合、すなわち複数の代表のうち過半数が結合の提案を可と判断した場合に（ステップＳ５０７：Ｙｅｓ）、ループｂに結合の提案をすると決定して、共有情報送信部４０５ａによりその旨をループａ内のすべてのクライアントに通知する（ステップＳ５０８）。代表以外のクライアントでは、各々の共有情報受信部４０５ｂにより、３つの代表のうち少なくとも２つからこの通知を受けた時点で当該通知を信頼する。
【００７１】
（４）ループａからループｂに結合の提案・・・図１１
また、決定をしたループａの代表のクライアントは、それぞれ上記通知と平行して、その結合要求送信部４０６ａによりループｂの代表１１００・１１０１・１１０２に対して自ループとの結合要求を送信する（ステップＳ５０９）。２つ以上の代表が結合の提案を「可」と判断し、かつ３つの代表間の通信が正常におこなわれていれば、ループａの３つの代表がループｂの３つの代表にそれぞれ結合を提案することになるので、ループ間の通信は計９本発生する。なお、この提案には結合に必要な情報、たとえばループａの識別情報などがすべて含まれている。
【００７２】
（５）ループｂからループａに当座の回答・・・図１２
ループｂの代表１１００・１１０１・１１０２は、その結合要求受信部４０６ｂによりループａの代表８００・８０１・８０２からそれぞれ上記提案を受けた時点で、結合可否判断部４０３ｂにより個々の提案について可または否の判断を下し（ステップＳ５１０）、その結果を判断結果送信部４０６ｃから提案元に返信する（ステップＳ５１１）。
【００７３】
たとえば、ループｂの代表１１００はループａの代表８００からの提案を受信した時点で、他の代表１１０１や１１０２の意向にかかわらず、結合の可否を自己限りで判断し、その結果を代表８００に返信する。そして、ほどもなくループａの別の代表８０１から同じ提案を受信すれば、同様に自己限りの判断を下して、代表８０１に返信する。さらに、ループａの残り一つの代表８０２から同じ提案を受信したときも、同様に代表８０２に自己の判断を返信する。３つの代表が３つの代表にそれぞれ回答するので、ここでもループ間の通信は計９本発生する。
【００７４】
なお、ループｂからループａに対する返信には、判断結果が「可」の場合には結合に必要な事項、たとえばループｂの識別情報やツリーＢの識別情報などがすべて含まれている。また、判断結果が「否」の場合には、その理由などが含まれている。
【００７５】
なお、ループａからの結合提案を受けた時点で、ループｂが逆にループａに結合を提案中である場合、すなわちループａからの結合提案とループｂからの結合提案とが入れ違いになった場合には、ループｂはループａからの結合提案を無視する。
【００７６】
（６）ループｂで結合提案の受け入れの合議、ループａで結合提案の受け入れ予定の合議・・・図１３
ループａへの返信後、ループｂでは代表の１１００・１１０１・１１０２が判断結果送信部４０４ａにより、ループａの各代表に回答した自己の判断結果をそれぞれループｂ内の他の代表に送信するとともに、判断結果受信部４０４ｂにより他の代表から各々の判断結果を受信して、可否決定部４０４ｃでこれらを照合する（ステップＳ５１２）。
【００７７】
また、ループａでは代表の８００・８０１・８０２が、それぞれ判断結果受信部４０６ｄで受信した複数の返信から、結合可否判断部４０３ｂによりループｂの今後の対応、すなわちループｂが結合を決定するか否かを判断（予測）し、その判断結果を判断結果送信部４０４ａおよび判断結果受信部４０４ｂにより３者間で送受信の上、可否決定部４０４ｃで照合する（ステップＳ５１３）。
【００７８】
（７）ループｂおよびループａで結合の決定と結合情報の通知・・・図１４
そして、ループｂの各代表は少なくとも２つの判断結果が「可」であった場合（ステップＳ５１４：Ｙｅｓ）に、ループａと結合することを決定して、その旨および結合に必要な情報（結合情報）を、共有情報送信部４０５ａからループｂ内のすべてのクライアントに通知する（ステップＳ５１５）。
【００７９】
また、ループａの各代表はループｂからの返信のうち、少なくとも２つが「可」であった場合（ステップＳ５１６：Ｙｅｓ）に、ループｂはループａとの結合を決定するすなわち自己のした結合の提案は受け入れられると判断して、ループｂとの結合を決定し、その旨および結合に必要な情報（結合情報）を、共有情報送信部４０５ａからループａ内のすべてのクライアントに通知する（ステップＳ５１７）。
【００８０】
なお、代表以外のクライアントはその共有情報受信部４０５ｂにより、少なくとも２つの代表から上記通知を受けた時点で当該通知を信頼して、そこに含まれる結合情報を取り込んで適切な記憶領域に保存する。そして、ループａ・ｂのすべてのクライアントが結合を認識し、それに必要な情報を共有した時点で、２つのループひいてはそれらの含まれるツリーＡ・Ｂが論理的に結合されたことになる。
【００８１】
そして、参加時にサーバーから取得した問い合わせ先のうちまだ当たっていないクライアントがあれば（ステップＳ５１８：Ｙｅｓ）、当該クライアントとの間で結合位置の特定以下の処理を再度繰り返す（ステップＳ５０３に戻る）。
【００８２】
以上説明した実施の形態によれば、各ループに選任された複数の代表が合議の上、多数決で他ループとの結合の可否を決定してゆくので、一部の代表が何らかの原因で正常な処理ができない場合にも、他の代表によりツリーの結合が滞りなく進行してゆく。
【００８３】
たとえば、ループａの代表８０２がマシントラブルや回線トラブルなどにより通信不能となった場合も、残りの代表８００と８０１がクライアント６０５からの提案を「可」と判断すれば、これらの代表によるループｂの代表への提案が実行される（図１５。なお、図１１と対比）。
【００８４】
そしてループｂでも、仮に代表１１００が通信不能になっていた場合でも、残りの代表１１０１と１１０２とが結合を「可」と判断してループａに返信すれば（図１６。なお、図１２と対比）、これらの代表によるループｂ内への周知、および上記返信を受けた代表８００と８０１によるループａ内への周知が正常におこなわれる（図１７。なお、図１４と対比）。
【００８５】
このように、不安定な環境下でもループ内外の意見調整と、必要な情報の共有とが所定の手続にしたがって確実におこなわれるので、サーバーが関与せずクライアント側にその組織化を一任していても、組織に矛盾や混乱を生ずることがない。仮に悪意を持ったクライアントが、意図的に組織を擾乱・破壊しようとしても、その行為は多数決の中で吸収されてしまうため大勢に影響を与えない。
【００８６】
なお、上記では各ループの代表は３つとしたが、より多くの代表を選任するようにしてももちろんよい。また、特に代表を置かず、ループ内のすべてのクライアントが結合やその提案の可否を合議するようにしてもよいが（いわば全員が代表であるような扱い）、いずれにせよ人数に比例して、意見調整に時間がかかるようになるのは否めない。
【００８７】
なお図５に示した手順では、ループａから結合を提案されたループｂは、各代表の自己限りの判断をとりあえず回答してから（ステップＳ５１１）、各代表の意見を付き合わせて結合するかどうかを決定するようにしているが（ステップＳ５１２以下）、この順序は逆であってもよく、ループｂ内での合議・決定が済んでからループａにループｂとしての結合の可否（いわばループｂの統一見解）を返信するようにしてもよい。
【００８８】
上記でループｂでの意見調整の前に、ループａに各代表の意見を個別に返してしまっているのは、確実さよりも迅速さを重視しているためである。すなわち、確実性を優先すれば合議の上で統一見解を返信するのがよいのであるが、ループｂでの合議の間ループａは無駄に待たされることになる（場合によってはその間、結合要求を送信し続けなければならない）ので、他の代表の意見を聞く前に先に自分だけ回答することで、迅速性を担保している。このようにしても、ループａがループｂの各代表の意見を付き合わせれば、ループｂで平行して実施される決定と同じ結論が導き出される。
【００８９】
なお、上記ではクライアントの組織化のうち、特にツリーの結合の局面においてループ間の意見調整や情報共有の手順を説明したが、この手順はツリーの結合に限らず、たとえばループの合体（ループａがループｂの下につくといった「結合」とは異なり、ループａがループｂに吸収されるといったマージのことを指す）、ループの分割（合体の逆で、一つのループが複数のループに分かれること）などの場合にも応用可能である。
【００９０】
また、必ずしもループがツリー状に組織されている必要もなく、たとえばメッシュ状にループがつながってゆくような形態であっても、ループの結合・合体・分割などの局面において上述した合議の手順を採用することができる。さらに、組織化されたクライアントで実施される処理が、上述の集計や集計結果の配信である必要もない。
【００９１】
なお、上述した参加部４００、結合位置特定部４０１、ループ内提案部４０２、可否判断部４０３、可否決定部４０４、組織情報共有部４０５およびループ外提案部４０６は、それぞれＨＤ３０５などからＲＡＭ３０３に読み出されたプログラムの命令にしたがってＣＰＵ３０１が命令処理を実行することにより、各部の機能を実現するものである。このプログラムはＨＤ３０５のほか、ＦＤ３０７、ＣＤ−ＲＯＭ３１５あるいはＭＯなどの各種記録媒体に格納することができ、あるいはネットワークを介して配布することもできる。
【００９２】
【発明の効果】
以上説明したようにこの発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合提案可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信手段と、を備えたので、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置が得られるという効果を奏する。
【００９３】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信手段と、前記結合要求受信手段により受信された結合要求の受け入れ可否を判定する結合可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信手段と、を備えたので、あるグループと他のグループとの結合（そのために必要な情報の共有）は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置が得られるという効果を奏する。
【００９４】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合提案可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信工程と、を含んだので、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理方法が得られるという効果を奏する。
【００９５】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信工程と、前記結合要求受信工程で受信された結合要求の受け入れ可否を判定する結合可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信工程と、を含んだので、あるグループと他のグループとの結合（そのために必要な情報の共有）は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理方法が得られるという効果を奏する。
【００９６】
また、この発明によれば、上記に記載された方法をコンピュータに実行させることが可能なプログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図１】  この発明の実施の形態による情報処理装置を含む、情報処理システムの物理的な構成を示す説明図である。
【図２】  上記システムの構成を概念的・模式的に示す説明図である。
【図３】  上記システムを構成する各クライアントのハードウェア構成の一例を示す説明図である。
【図４】  上記システムを構成する各クライアントの機能的構成を示す説明図である。
【図５】  上記システムにおけるツリーの結合の手順を示すフローチャートである。
【図６】  上記システムにおけるツリーの結合位置の特定の様子を模式的に示す説明図である。
【図７】  上記システムにおける複数のツリーの結合の一例を模式的に示す説明図である。
【図８】  上記システムにおける、あるループａでの結合提案の発議の様子を模式的に示す説明図である。
【図９】  上記システムにおける、ループａでの結合提案の合議の様子を模式的に示す説明図である。
【図１０】  上記システムにおける、ループａでの結合提案の決定と決定事項の周知の様子を模式的に示す説明図である。
【図１１】  上記システムにおける、ループａから別のループｂへの結合の提案の様子を模式的に示す説明図である。
【図１２】  上記システムにおける、ループｂからループａへの回答の様子を模式的に示す説明図である。
【図１３】  上記システムにおける、ループｂでの結合提案の受け入れの合議、およびループａでの結合提案の受け入れ予定の合議の様子を模式的に示す説明図である。
【図１４】  上記システムにおける、ループｂおよびループａでの結合の決定と結合情報の周知の様子を模式的に示す説明図である。
【図１５】  上記システムにおける、ループａからループｂへの結合の提案の様子（いずれかの代表にトラブルがあった場合）を模式的に示す説明図である。
【図１６】  上記システムにおける、ループｂからループａへの回答の様子（いずれかの代表にトラブルがあった場合）を模式的に示す説明図である。
【図１７】  上記システムにおける、ループｂおよびループａでの結合の決定と結合情報の周知の様子（いずれかの代表にトラブルがあった場合）を模式的に示す説明図である。
【符号の説明】
３００  バスまたはケーブル
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  ＨＤＤ
３０５  ＨＤ
３０６  ＦＤＤ
３０７  ＦＤ
３０８  ディスプレイ
３０９  モデム
３１０  公衆電話回線
３１１  キーボード
３１２  マウス
３１３  スキャナ
３１４  プリンタ
３１５  ＣＤ−ＲＯＭ
３１６  ＣＤ−ＲＯＭドライブ
４００  参加部
４０１  結合位置特定部
４０２  ループ内提案部
４０２ａ  結合提案要求送信部
４０２ｂ  結合提案要求受信部
４０３  可否判断部
４０３ａ  結合提案可否判断部
４０３ｂ  結合可否判断部
４０４  可否決定部
４０４ａ  判断結果送信部
４０４ｂ  判断結果受信部
４０４ｃ  可否決定部
４０５  組織情報共有部
４０５ａ  共有情報送信部
４０５ｂ  共有情報受信部
４０６  ループ外提案部
４０６ａ  結合要求送信部
４０６ｂ  結合要求受信部
４０６ｃ  判断結果送信部
４０６ｄ  判断結果受信部
【図１】
0004263868.tif 000002
【図２】
0004263868.tif 000003
【図３】
0004263868.tif 000004
【図４】
0004263868.tif 000005
【図５】
0004263868.tif 000006
【図６】
0004263868.tif 000007
【図７】
0004263868.tif 000008
【図８】
0004263868.tif 000009
【図９】
0004263868.tif 000010
【図１０】
0004263868.tif 000011
【図１１】
0004263868.tif 000012
【図１２】
0004263868.tif 000013
【図１３】
0004263868.tif 000014
【図１４】
0004263868.tif 000015
【図１５】
0004263868.tif 000016
【図１６】
0004263868.tif 000017
【図１７】
0004263868.tif 000018