JP4263868B2 - Information processing apparatus coupling method and information processing apparatus coupling program - Google Patents

Information processing apparatus coupling method and information processing apparatus coupling program Download PDF

Info

Publication number
JP4263868B2
JP4263868B2 JP2002042248A JP2002042248A JP4263868B2 JP 4263868 B2 JP4263868 B2 JP 4263868B2 JP 2002042248 A JP2002042248 A JP 2002042248A JP 2002042248 A JP2002042248 A JP 2002042248A JP 4263868 B2 JP4263868 B2 JP 4263868B2
Authority
JP
Japan
Prior art keywords
information
group
information processing
loop
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002042248A
Other languages
Japanese (ja)
Other versions
JP2003242298A (en
Inventor
智光 浜崎
Original Assignee
株式会社ジャストシステム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Priority to JP2002042248A priority Critical patent/JP4263868B2/en
Publication of JP2003242298A publication Critical patent/JP2003242298A/en
Application granted granted Critical
Publication of JP4263868B2 publication Critical patent/JP4263868B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、当該情報処理装置、情報処理装置結合方法、情報処理装置結合プログラムに関する。
【0002】
【従来の技術】
始動を開始したデジタル放送における双方向性は、視聴者の声をリアルタイムに番組に反映できるという点で、非常に注目されている技術の一つである。ただし、現状では機器が高価であることなどから、一般への普及はまだ先のことと予想されている。
【0003】
一方、近年急速に普及の進んだインターネットでは、マルチキャストなど大容量のコンテンツを単一のパケットで多数のユーザーに同時に配布する技術が導入されつつあり、放送機能を完全に取り込んでしまうのもそう先のことではない。もっともインターネットでは、従来はサーバーからクライアントに対する一方的な情報配信が主であったため、デジタル放送に見られるような双方向性はまだ貧弱である。
【0004】
たとえば、インターネットで多数のユーザーが同時に参加するクイズを実施し、現時点での回答者は何人であり、うち正解者は何人であるなどといった回答状況を、随時各参加者に通知することを考える。
【0005】
この集計結果の配信にマルチキャストを利用すると、マルチキャストに対応しているプロバイダが現時点ではまだ少数のため、サービスを受けられるユーザーが限定されてしまう。また、従来技術のブロードキャスト(指定されたネットワーク内のすべてのポイントに対して、単一のパケットを送信する情報配信方式)は、参加者が同一ネットワークに属する全ユーザーであるという特殊なケースを除いて、利用することができない。
【0006】
そこで、この集計結果を従来技術のユニキャスト(指定された個々のポイントに対してパケットを作成・送信する情報配信方式)により全参加者に配信しようとすると、1秒で1000件を処理したとしても参加者が100万人いれば16分以上となり、とてもリアルタイムとはいえなくなってしまう。そもそも回答状況の取りまとめ、すなわち100万人単位の参加者からの回答を受け付けて、回答者数や正解者数を集計するだけでも相当の時間を要してしまう。
【0007】
そこで本出願人は、サーバーを頂点とするツリー状にクライアントを組織化し、(a)下位のクライアントA・Bから上がってきたそこまでの集計結果を上位のクライアントCが合算し、自己の回答を加算してさらにその上位のクライアントDに上げてゆく、また(b)上位のクライアントDから配信されてきた全体の集計結果を、その下位のクライアントCがさらにその下位のクライアントA・Bに転送してゆく、というように、従来サーバーが負担していた処理をツリーの各階層のクライアントに分散して割り当てることで、サーバーの負荷を劇的に軽減する技術をすでに提案している(特願2001−094415号。また関連技術に特願2001−094414号、特願2001−094416号がある)。
【0008】
上記技術では、コンテンツに参加しようとするクライアントは、参加IDなど最小限の必要事項を取得するためにまずサーバーに接続する。このときサーバーが、すでに形成されているツリー上のいずれかのクライアント(すでに参加中のいずれかのクライアント)を指定するので、新たなクライアントはこのクライアントに接続することで、上述の集計と集計結果配信のルートに組み込まれる。このようにして、上記ツリーは徐々に成長してゆく。
【0009】
【発明が解決しようとする課題】
ただ、上記は少数のクライアントが散発的にコンテンツに参加してきた場合であって、たとえば同じプロバイダに属する多数のクライアントが一気に参加してきたような場合には、それらだけで別途ツリーを形成したほうが効率的である。また、もともとは一本であったツリーが、一部のクライアントの参加中止や通信断絶により複数に分断されてしまうこともある。
【0010】
ツリーが複数発生する原因はどうあれ、これらのツリーは遅くともコンテンツの開始時までには、サーバーを頂点とする一本のツリーに統合されていなければならない。そして、このツリー同士の結合作業をサーバー側でおこなうとすると、100万単位のクライアントの接続状況などをサーバーが常時把握していなければならず、その処理負荷が大きくなってしまう。
【0011】
そこで、ツリーの結合、さらに言えばクライアントの組織化は(前者は後者の一例にすぎない)、クライアント側で自律的におこなわせるようにしたいが、個々のクライアントが勝手に行動したのでは組織に矛盾を生ずることがある。たとえば、ツリーAの頂点のクライアント(厳密には、当該ツリーの最上位に位置するループ内のいずれかのクライアント。後述)がツリーBの下につくことを決めるのと同時に、ツリーBの頂点のクライアント(同上)がツリーAの下につくことを決める、などといったことが起こり得る。
【0012】
また、いずれか一つのクライアント(上記の例では頂点のクライアント)に結合の意思決定を一任していると、このクライアントが参加を中止したり通信を断絶したりした場合に組織に混乱を生ずることがある。
【0013】
この発明は上記従来技術による問題点に鑑みてなされたものであって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置結合方法、情報処理装置結合プログラムおよび情報処理装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明にかかる情報処理装置は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合提案可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信手段と、を備えたことを特徴とする。
【0015】
の発明によれば、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行される。
【0016】
また、この発明にかかる情報処理装置は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信手段と、前記結合要求受信手段により受信された結合要求の受け入れ可否を判定する結合可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信手段と、を備えたことを特徴とする。
【0017】
この発明によれば、あるグループと他のグループとの結合(そのために必要な情報の共有)は、グループ内での合議により過半数で可決されて初めて実行される。
【0018】
また、この発明にかかる情報処理方法は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合提案可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信工程と、を含んだことを特徴とする。
【0019】
この発明によれば、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行される。
【0020】
また、この発明にかかる情報処理方法は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信工程と、前記結合要求受信工程で受信された結合要求の受け入れ可否を判定する結合可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信工程と、を含んだことを特徴とする。
【0021】
この発明によれば、あるグループと他のグループとの結合(そのために必要な情報の共有)は、グループ内での合議により過半数で可決されて初めて実行される。
【0022】
また、この発明にかかるプログラムは、上記に記載された方法をコンピュータに実行させることを特徴とする。
【0023】
この発明によれば、前記請求項3または請求項4に記載された方法がコンピュータにより実行される。
【0024】
【発明の実施の形態】
以下に添付図面を参照して、この発明による情報処理装置結合方法、情報処理装置結合プログラムおよび情報処理装置の好適な実施の形態を詳細に説明する。
【0025】
まず、この発明の実施の形態による情報処理装置を含む、情報処理システム(具体的には回答集計システム)の構成につき、図1および図2により説明する。図1は、本システムの物理的な構成を示す説明図である。図示するように、本システムはインターネットと、そこに設置されたサーバー、およびプロバイダやプロキシなどを介してインターネットに接続された、数千から数百万人規模の多数のクライアントから構成される。
【0026】
つぎに、図2は本システムの構成を概念的・模式的に示す説明図である。同図は図1のように、サーバーやクライアントの物理的な接続関係を示すものではなく、上述した集計の経路、および集計結果の配信の経路を示している。図示するように、複数のクライアントによって一つのグループ(図中三角形で示される。以下では「ループ」という)が形成され、各ループがサーバーを頂点とするツリー状に配置されている。
【0027】
なお、同図では簡略化して、各ループはそれぞれ3つのクライアントからなるように描いているが、ループの構成メンバーは実際には3〜十数個程度であり、ループごとにその数も異なる。また、各ループにはそのループの代表を務めるクライアントとして、複数(たとえば3つ)のクライアントが選定されている。この代表は、ループ内の各クライアントの処理能力や負荷状況などに応じて随時選任・解任される(通常は、最も処理の速い3つが代表に選ばれる)。
【0028】
なお、一つのループは(1)直接通信が可能で、かつ(2)できるだけ電子的な距離の近い(通信経路の短い、あるいはアドレスの近いと言ってもよい)クライアントから構成される。
【0029】
たとえば、ダイヤルアップIP接続によりインターネットに接続しているクライアントには、通常はそれぞれのプロバイダへの接続時に、DHCPによりグローバルIPアドレスが割り当てられている。そして、グローバルIPアドレスを有するクライアント間であれば、接続しているプロバイダの異同にかかわらず、UDPによる直接通信が可能である。
【0030】
したがって、上記(1)の観点からはこれらのクライアントは一つのループにまとめてしまってもよいのであるが、上記(2)の観点から、通常は同じプロバイダに接続しているクライアントごとに一つのループを形成することになる。ただし、一つのループ内のメンバー数が多くなりすぎるときは、複数のループに分割・分散される。
【0031】
他方、LANなどからプロキシを介してインターネットに接続しているクライアントは、通常はプライベートIPアドレスを割り当てられており、原則として同一LAN内のクライアントとしか通信することができない。そこで、このようなクライアントは、上記(1)の観点からも(2)の観点からもこれらのみで一つのループを形成することになる。
【0032】
もっとも、データをエンコードしてHTTPプロトコルにより送信する、静的NATを設定する、あるいは専用のプロキシを設置するなどの対策を講じれば、LANの内部から外部に接続することは可能である。ただ、いずれにせよルータやプロキシサーバーに負荷がかかるので、このようなクライアントはまとめて、ツリーの末端に配置する。
【0033】
つぎに、この発明の実施の形態による情報処理システムを構成する、個々のクライアントの構成につき図3および図4により説明する。まず図3は、本システム内の各クライアントのハードウェア構成の一例を示す説明図である。同図に示す構成は典型例であって、実際にはコンテンツに参加するクライアントの多様性を反映して、そのハードウェア構成も様々である。
【0034】
同図において、301は装置全体を制御するCPUを、302は基本入出力プログラムを記憶したROMを、303はCPU301のワークエリアとして使用されるRAMを、それぞれ示している。
【0035】
また、304はCPU301の制御にしたがってHD(ハードディスク)305に対するデータのリード/ライトを制御するHDD(ハードディスクドライブ)を、305はHDD304の制御にしたがって書き込まれたデータを記憶するHDを、それぞれ示している。また、306はCPU301の制御にしたがってFD(フレキシブルディスク)307に対するデータのリード/ライトを制御するFDD(フレキシブルディスクドライブ)を、307はFDD306の制御にしたがって書き込まれたデータを記憶する着脱自在のFDを、それぞれ示している。
【0036】
また、308はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、309は公衆電話回線310を介してインターネットへの、またはインターネットからのデータの送受信をおこなうモデムを、それぞれ示している。また、311は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、312は各種指示の選択や実行、処理対象の選択、カーソルの移動などをおこなうマウスを、それぞれ示している。
【0037】
また、313は文字や画像を光学的に読み取るスキャナを、314は文字や画像を用紙上に印刷するプリンタを、315は着脱可能な記録媒体であるCD−ROMを、316はCD−ROM315に対するデータのリードを制御するCD−ROMドライブを、300は上記各部を接続するためのバスまたはケーブルを、それぞれ示している。
【0038】
つぎに、図4は本システム内の各クライアントの機能的構成を示す説明図である。クライアントは図示する以外にも種々の機能を有するが、ここでは請求項に記載の発明を説明するために必要な機能、具体的にはクライアントの組織化(とりわけツリーの結合)に関する機能のみについて説明する。
【0039】
図中、400は参加部であり、サーバーに接続してコンテンツへの参加のために必要な情報(参加ID、受け入れ先のループ、後述する問い合わせ先となるクライアントのIPアドレスなど)を取得するとともに、受け入れ先に接続してその他の必要な情報(受け入れ先のループの代表のIPアドレスなど)を取得することで、このクライアントを上述のツリー内に組み込む機能部である。
【0040】
401は結合位置特定部であり、後で詳細に説明する手順にしたがって、このクライアントが所属するツリーとは別のツリーとの間で結合位置を問い合わせ、両ツリーの結節点となるループを探索・特定する機能部である。
【0041】
402はループ内提案部であり、同一ループ内の代表のクライアントに対して、結合位置特定部401により特定された相手方のツリーのループに結合を提案するよう要求する結合提案要求送信部402a、および同一ループ内のいずれかのクライアントから、上記要求を受信する結合提案要求受信部402bを含む構成である。
【0042】
403は可否判断部であり、相手方のツリーのループに対して結合の提案をするかどうかを判断する結合提案可否判断部403a、および相手方のツリーのループと結合するかどうかを判断する結合可否判断部403bを含む構成である。
【0043】
404は可否決定部であり、同一ループ内の他の代表のクライアントに対して、可否判断部403による自己の判断結果を送信する判断結果送信部404a、逆に同一ループ内の他の代表のクライアントから、各々の可否判断部403による判断結果を受信する判断結果受信部404b、および可否判断部403による自己の判断結果と、判断結果受信部404bにより受信した他の代表の判断結果とを照合して、その過半数が「可」であった場合に相手方のツリーのループに結合を提案すること、または相手方のツリーのループと結合することを決定する可否決定部404cを含む構成である。
【0044】
405は組織情報共有部であり、結合やその提案が可否決定部404により決定された場合に、その事実や結合に必要な情報などを同一ループ内の他のすべてのクライアントに送信する共有情報送信部405a、および同一ループ内の代表のクライアントから、上記事実や情報などを受信する共有情報受信部405bを含む構成である。
【0045】
406はループ外提案部であり、結合位置特定部401により特定された相手方のツリーのループの代表に対して、自己の所属するループとの結合を提案する結合要求送信部406a、自己の所属するループ以外のループの代表から上記提案を受信する結合要求受信部406b、結合要求受信部406bにより受信した提案に対する、可否判断部403による可または否の判断結果を提案元のループの代表に送信する判断結果送信部406c、および提案先のループの代表から上記判断結果を受信する判断結果受信部406dを含む構成である。
【0046】
なお、図中点線で囲んだ部分、すなわちループ内提案部402のうち特に結合提案要求受信部402b、可否判断部403と可否決定部404、組織情報共有部405のうち特に共有情報送信部405a、およびループ外提案部406は、クライアントの中でも特に各ループの代表として選定されたクライアントのみに具備される(代表以外のクライアントに具備されていてもよいが、その機能はこれらのクライアントでは発揮されることがない)。
【0047】
さて、図2に示したツリーは完成形、すなわちコンテンツ開始直前の状態であり、形成途中の複数のツリーが徐々に結合した最終結果として得られるものである。つぎに、図5に示すフローチャートにより、本システムにおけるツリーの結合の手順を詳細に説明する。
【0048】
ツリーの結合は、形成途中のいずれかのツリーに新たなクライアントが加わったタイミング、すなわちコンテンツに新たなクライアントが参加したタイミングでおこなわれるため、同図のフローチャートには参加のフェーズも含めて示している。
【0049】
コンテンツに参加しようとするクライアントは、まずその参加部400によりサーバーに接続して、参加のための必要事項を取得し(図5ステップS501)、つぎにそこで指定された受け入れ先に接続して、必要な情報を取得することで、いずれかのツリーの中に組み込まれる(ステップS502)。
【0050】
この参加に続く結合には、大きく分けて結合位置を特定するための、結合前の問い合わせのフェーズ(ステップS503)と、結合の合意および実際の結合のフェーズ(ステップS504以下)との2段階がある。以下、順次説明する。
【0051】
1.結合前の問い合わせ(結合位置の特定)
図6は、同図に示すクライアント600がツリーAに新たに加わった直後の、ツリーAと他のツリーBとの結合位置の特定の様子を模式的に示す説明図である。同図を参照しつつ、図5のステップS503における処理を詳細に説明する。なお、この処理はもっぱら図4に示した結合位置特定部401により実行される。
【0052】
上述のように、クライアント600はコンテンツへの参加に先立って、サーバーから参加IDや受け入れ先などの必要事項を入手するが、この必要事項の中には問い合わせ先として、すでに参加中のクライアントから選ばれた複数のクライアント(2つ以上であれば個数は問わない)のIPアドレスが含まれている。このクライアントは、クライアント600と直接通信可能なクライアントの中からランダムに選択される。ここではそのうちの一つが、図示するクライアント601であったものとする。
【0053】
クライアント600はツリーAに加わった後、問い合わせ先であるクライアント601に対して、自己の所属するツリーAの識別情報と当該ツリー内で自己の位置する階層(同図の例ではツリーの一番下、すなわち第1階層)とを送信する(図中(1))。
【0054】
クライアント601では、もし受信したツリーの識別情報が自己の所属するツリーの識別情報と同じであれば、その旨をクライアント600に返信する。そして、この場合は新たに参加したクライアント600と、その問い合わせ先となったクライアント601は同一のツリーに属していることになるので、ツリーを結合する余地がなく、この時点で問い合わせは中止される(まだ問い合わせをしていない問い合わせ先があれば、そちらへの問い合わせに移行する)。
【0055】
一方、受信したツリーの識別情報が自己の所属するツリーの識別情報と違っている場合は、クライアント601はツリーB内で自己の位置する階層(同図の例では第1階層)と、受信したクライアント600の位置する階層(同じく第1階層)とを比較して、自己の階層のほうが相手の階層と同じかそれより高ければ、より高い階層のクライアントに改めて問い合わせをさせるようクライアント600に返信する(図中(2))。
【0056】
これを受信したクライアント600は、自己の所属するループの一つ上のループへ問い合わせの依頼を上げ(図中(3))、これを受けたループ内のクライアント602が、ツリーA内で自己の位置する階層(同図の例では第2階層)をクライアント601に送信する(図中(4))。
【0057】
クライアント601ではクライアント600からの問い合わせ時と同様に、自己の階層(第1階層)と相手の階層(第2階層)とを比較し、この場合自己の階層のほうが相手の階層より低いので、自己の所属するループの一つ上のループへ問い合わせの依頼を上げる(図中(5))。そして、これを受けたループ内のクライアント603が、ツリーB内で自己の位置する階層(同図の例では第2階層)をクライアント602に送信する(図中(6))。
【0058】
これを受信したクライアント602は、同じく自己の階層(第2階層)と相手の階層(第2階層)とを比較し、この場合自己の階層が相手の階層と同じ(かそれより高い)なので、より高い階層のクライアントに改めて問い合わせをさせるようクライアント603に返信する(図中(7))。
【0059】
これを受信したクライアント603は、自己の所属するループの一つ上のループへ問い合わせの依頼を上げ(図中(8))、これを受けたループ内のクライアント604が、ツリーB内で自己の位置する階層(同図の例では第3階層)をクライアント602に送信する(図中(9))。
【0060】
これを受信したクライアント602は、同じく自己の階層(第2階層)と相手の階層(第3階層)とを比較し、この場合自己の階層のほうが相手の階層より低いので、自己の所属するループの一つ上のループへ問い合わせの依頼を上げる(図中(10))。そして、これを受けたループ内のクライアント605が、自己の位置する階層がツリーA内の最上位である事実、すなわち自己の所属するループがツリーA内の最高位のループである事実をクライアント604に送信する(図中(11))。
【0061】
これを受信したクライアント604は、自己のループに所属するクライアントのうち、代表となる3つのクライアントのIPアドレスをクライアント605に返信する(図中(12))。そして、クライアント604のループとクライアント605のループとが後述の手順により結合に合意した後、先に一番上のループに達したツリーAがもう一方のツリーBの下に入る形で、上記ループを結節点として両ツリーが図7のように結合する。
【0062】
このように、お互いの位置する階層を比較して、釣り合わない相手であればより上位のクライアントに問い合わせをやり直させることで、ツリー間の通信が最終的には(すなわち、図6(12)の時点では)、同等レベルでかつ可能な限り上位のクライアント同士でおこなわれることを担保する。
【0063】
上記のようにすることのメリットは、新たに参加したクライアントと、サーバーが適当に指定した問い合わせ先のクライアントとの位置関係がどんなものであっても、それぞれのクライアントの属するツリーが、いわば「裾が揃った」状態で結合される点にある。
【0064】
たとえば、新たに参加したクライアントが600でなく605であり、その問い合わせ先がクライアント601であった場合、クライアント601のループの下にクライアント605のループがつながる形でツリーA・Bを結合することもできるが、それだと結合後のツリーでは最上位のループから最下位のループまでの経路が結合前に比べてかなり長くなってしまう(単純な加算)。
【0065】
しかし上述の集計や集計結果配信の観点からは、経路はできるだけ短いほうがよく、また一つだけ極端に長い経路があるなどの長短のばらつきが少ないほうがよい。集計などの速度は経路の長さに依存するので、際立って長い経路があると、そこで処理が終わるのを他の短い経路のクライアントが待たなければならないためである。
【0066】
そこで、クライアント605がクライアント601に問い合わせた時点で、両者間に2階層の格差のあることが分かれば、格下のほうのクライアント601に代わって、同じツリーの2階層上のクライアント604が最終的な問い合わせ先となるよう調整する。この結果、新たに参加したクライアントが605であった場合も、結合後のツリーは図7のものと同一になる。これに限らず、問い合わせ元・問い合わせ先のクライアントの組み合わせがどのようなものであっても、ツリーAとツリーBの結合結果は同一となる。
【0067】
2.結合の合意および実際の結合
つぎに、図8〜図14は上記のようにして結合位置が特定された後の、両ツリーの結節点となるループ間での結合の合意と、実際の結合との様子を模式的に示す説明図である。図中、左側がツリーAの第3階層のループ(クライアント605の所属するループ。以下「ループa」)、右側がツリーBの第3階層のループ(クライアント604の所属するループ。以下「ループb」)である。これらの図を参照しつつ、図5のステップS504以下の処理を詳細に説明する。
【0068】
(1)ループaで結合提案の発議・・・図8
ループaのクライアント605は、まずその結合提案要求送信部402aにより、自己のループの代表である3つのクライアント、具体的には図8に示す800・801・802に対してループbに結合を提案すべき旨の要求を送信する(ステップS504)。なおこの要求には、クライアント605がクライアント604から受信した、ループbの代表のIPアドレス(図6(12)参照)が添付されている。
【0069】
(2)ループaで結合提案の合議・・・図9
クライアント605からの要求を結合提案要求受信部402bで受信したクライアント800・801・802は、各々の結合提案可否判断部403aにより、それぞれ提案の可否を判断する(ステップS505)。そして、その判断結果(「可」「否」いずれか)を判断結果送信部404aから残り2つの代表に送信するとともに、逆に判断結果受信部404bにより、残り2つの代表から各々の判断結果を受信して、これらの判断結果を可否決定部404cで照合する(ステップS506)。
【0070】
(3)ループaで結合提案の決定と決定事項の周知・・・図10
そして、自己の判断結果と他の2つの代表の判断結果のうち少なくとも2つが「可」であった場合、すなわち複数の代表のうち過半数が結合の提案を可と判断した場合に(ステップS507:Yes)、ループbに結合の提案をすると決定して、共有情報送信部405aによりその旨をループa内のすべてのクライアントに通知する(ステップS508)。代表以外のクライアントでは、各々の共有情報受信部405bにより、3つの代表のうち少なくとも2つからこの通知を受けた時点で当該通知を信頼する。
【0071】
(4)ループaからループbに結合の提案・・・図11
また、決定をしたループaの代表のクライアントは、それぞれ上記通知と平行して、その結合要求送信部406aによりループbの代表1100・1101・1102に対して自ループとの結合要求を送信する(ステップS509)。2つ以上の代表が結合の提案を「可」と判断し、かつ3つの代表間の通信が正常におこなわれていれば、ループaの3つの代表がループbの3つの代表にそれぞれ結合を提案することになるので、ループ間の通信は計9本発生する。なお、この提案には結合に必要な情報、たとえばループaの識別情報などがすべて含まれている。
【0072】
(5)ループbからループaに当座の回答・・・図12
ループbの代表1100・1101・1102は、その結合要求受信部406bによりループaの代表800・801・802からそれぞれ上記提案を受けた時点で、結合可否判断部403bにより個々の提案について可または否の判断を下し(ステップS510)、その結果を判断結果送信部406cから提案元に返信する(ステップS511)。
【0073】
たとえば、ループbの代表1100はループaの代表800からの提案を受信した時点で、他の代表1101や1102の意向にかかわらず、結合の可否を自己限りで判断し、その結果を代表800に返信する。そして、ほどもなくループaの別の代表801から同じ提案を受信すれば、同様に自己限りの判断を下して、代表801に返信する。さらに、ループaの残り一つの代表802から同じ提案を受信したときも、同様に代表802に自己の判断を返信する。3つの代表が3つの代表にそれぞれ回答するので、ここでもループ間の通信は計9本発生する。
【0074】
なお、ループbからループaに対する返信には、判断結果が「可」の場合には結合に必要な事項、たとえばループbの識別情報やツリーBの識別情報などがすべて含まれている。また、判断結果が「否」の場合には、その理由などが含まれている。
【0075】
なお、ループaからの結合提案を受けた時点で、ループbが逆にループaに結合を提案中である場合、すなわちループaからの結合提案とループbからの結合提案とが入れ違いになった場合には、ループbはループaからの結合提案を無視する。
【0076】
(6)ループbで結合提案の受け入れの合議、ループaで結合提案の受け入れ予定の合議・・・図13
ループaへの返信後、ループbでは代表の1100・1101・1102が判断結果送信部404aにより、ループaの各代表に回答した自己の判断結果をそれぞれループb内の他の代表に送信するとともに、判断結果受信部404bにより他の代表から各々の判断結果を受信して、可否決定部404cでこれらを照合する(ステップS512)。
【0077】
また、ループaでは代表の800・801・802が、それぞれ判断結果受信部406dで受信した複数の返信から、結合可否判断部403bによりループbの今後の対応、すなわちループbが結合を決定するか否かを判断(予測)し、その判断結果を判断結果送信部404aおよび判断結果受信部404bにより3者間で送受信の上、可否決定部404cで照合する(ステップS513)。
【0078】
(7)ループbおよびループaで結合の決定と結合情報の通知・・・図14
そして、ループbの各代表は少なくとも2つの判断結果が「可」であった場合(ステップS514:Yes)に、ループaと結合することを決定して、その旨および結合に必要な情報(結合情報)を、共有情報送信部405aからループb内のすべてのクライアントに通知する(ステップS515)。
【0079】
また、ループaの各代表はループbからの返信のうち、少なくとも2つが「可」であった場合(ステップS516:Yes)に、ループbはループaとの結合を決定するすなわち自己のした結合の提案は受け入れられると判断して、ループbとの結合を決定し、その旨および結合に必要な情報(結合情報)を、共有情報送信部405aからループa内のすべてのクライアントに通知する(ステップS517)。
【0080】
なお、代表以外のクライアントはその共有情報受信部405bにより、少なくとも2つの代表から上記通知を受けた時点で当該通知を信頼して、そこに含まれる結合情報を取り込んで適切な記憶領域に保存する。そして、ループa・bのすべてのクライアントが結合を認識し、それに必要な情報を共有した時点で、2つのループひいてはそれらの含まれるツリーA・Bが論理的に結合されたことになる。
【0081】
そして、参加時にサーバーから取得した問い合わせ先のうちまだ当たっていないクライアントがあれば(ステップS518:Yes)、当該クライアントとの間で結合位置の特定以下の処理を再度繰り返す(ステップS503に戻る)。
【0082】
以上説明した実施の形態によれば、各ループに選任された複数の代表が合議の上、多数決で他ループとの結合の可否を決定してゆくので、一部の代表が何らかの原因で正常な処理ができない場合にも、他の代表によりツリーの結合が滞りなく進行してゆく。
【0083】
たとえば、ループaの代表802がマシントラブルや回線トラブルなどにより通信不能となった場合も、残りの代表800と801がクライアント605からの提案を「可」と判断すれば、これらの代表によるループbの代表への提案が実行される(図15。なお、図11と対比)。
【0084】
そしてループbでも、仮に代表1100が通信不能になっていた場合でも、残りの代表1101と1102とが結合を「可」と判断してループaに返信すれば(図16。なお、図12と対比)、これらの代表によるループb内への周知、および上記返信を受けた代表800と801によるループa内への周知が正常におこなわれる(図17。なお、図14と対比)。
【0085】
このように、不安定な環境下でもループ内外の意見調整と、必要な情報の共有とが所定の手続にしたがって確実におこなわれるので、サーバーが関与せずクライアント側にその組織化を一任していても、組織に矛盾や混乱を生ずることがない。仮に悪意を持ったクライアントが、意図的に組織を擾乱・破壊しようとしても、その行為は多数決の中で吸収されてしまうため大勢に影響を与えない。
【0086】
なお、上記では各ループの代表は3つとしたが、より多くの代表を選任するようにしてももちろんよい。また、特に代表を置かず、ループ内のすべてのクライアントが結合やその提案の可否を合議するようにしてもよいが(いわば全員が代表であるような扱い)、いずれにせよ人数に比例して、意見調整に時間がかかるようになるのは否めない。
【0087】
なお図5に示した手順では、ループaから結合を提案されたループbは、各代表の自己限りの判断をとりあえず回答してから(ステップS511)、各代表の意見を付き合わせて結合するかどうかを決定するようにしているが(ステップS512以下)、この順序は逆であってもよく、ループb内での合議・決定が済んでからループaにループbとしての結合の可否(いわばループbの統一見解)を返信するようにしてもよい。
【0088】
上記でループbでの意見調整の前に、ループaに各代表の意見を個別に返してしまっているのは、確実さよりも迅速さを重視しているためである。すなわち、確実性を優先すれば合議の上で統一見解を返信するのがよいのであるが、ループbでの合議の間ループaは無駄に待たされることになる(場合によってはその間、結合要求を送信し続けなければならない)ので、他の代表の意見を聞く前に先に自分だけ回答することで、迅速性を担保している。このようにしても、ループaがループbの各代表の意見を付き合わせれば、ループbで平行して実施される決定と同じ結論が導き出される。
【0089】
なお、上記ではクライアントの組織化のうち、特にツリーの結合の局面においてループ間の意見調整や情報共有の手順を説明したが、この手順はツリーの結合に限らず、たとえばループの合体(ループaがループbの下につくといった「結合」とは異なり、ループaがループbに吸収されるといったマージのことを指す)、ループの分割(合体の逆で、一つのループが複数のループに分かれること)などの場合にも応用可能である。
【0090】
また、必ずしもループがツリー状に組織されている必要もなく、たとえばメッシュ状にループがつながってゆくような形態であっても、ループの結合・合体・分割などの局面において上述した合議の手順を採用することができる。さらに、組織化されたクライアントで実施される処理が、上述の集計や集計結果の配信である必要もない。
【0091】
なお、上述した参加部400、結合位置特定部401、ループ内提案部402、可否判断部403、可否決定部404、組織情報共有部405およびループ外提案部406は、それぞれHD305などからRAM303に読み出されたプログラムの命令にしたがってCPU301が命令処理を実行することにより、各部の機能を実現するものである。このプログラムはHD305のほか、FD307、CD−ROM315あるいはMOなどの各種記録媒体に格納することができ、あるいはネットワークを介して配布することもできる。
【0092】
【発明の効果】
以上説明したようにこの発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合提案可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信手段と、を備えたので、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置が得られるという効果を奏する。
【0093】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の情報処理装置において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信手段と、前記結合要求受信手段により受信された結合要求の受け入れ可否を判定する結合可否判定手段と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定手段による判定結果を送信する判定結果送信手段と、自己の所属するグループ内の自己以外の情報処理装置から、当該装置の前記結合可否判定手段による判定結果を受信する判定結果受信手段と、前記判定結果送信手段により送信された判定結果と前記判定結果受信手段により受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信手段と、を備えたので、あるグループと他のグループとの結合(そのために必要な情報の共有)は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理装置が得られるという効果を奏する。
【0094】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループに対する結合の提案の可否を判定する結合提案可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合提案可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合提案可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループに対して結合要求を送信する結合要求送信工程と、を含んだので、あるグループから他のグループに対する結合の提案は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理方法が得られるという効果を奏する。
【0095】
また、この発明は、複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各装置における情報処理方法において、自己の所属するグループ以外の他のグループから結合要求を受信する結合要求受信工程と、前記結合要求受信工程で受信された結合要求の受け入れ可否を判定する結合可否判定工程と、自己の所属するグループ内の自己以外の情報処理装置に、前記結合可否判定工程における判定結果を送信する判定結果送信工程と、自己の所属するグループ内の自己以外の情報処理装置から、前記結合可否判定工程における当該装置の判定結果を受信する判定結果受信工程と、前記判定結果送信工程で送信された判定結果と前記判定結果受信工程で受信された判定結果のうち過半数が可であった場合に、前記他のグループと結合するために必要な情報を自己の所属するグループ内の自己以外の情報処理装置に通知する共有情報送信工程と、を含んだので、あるグループと他のグループとの結合(そのために必要な情報の共有)は、グループ内での合議により過半数で可決されて初めて実行され、これによって、グルーピングされた多数の情報処理装置を組織上の矛盾や混乱を生ずることなく自律的に組織化することが可能な情報処理方法が得られるという効果を奏する。
【0096】
また、この発明によれば、上記に記載された方法をコンピュータに実行させることが可能なプログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態による情報処理装置を含む、情報処理システムの物理的な構成を示す説明図である。
【図2】 上記システムの構成を概念的・模式的に示す説明図である。
【図3】 上記システムを構成する各クライアントのハードウェア構成の一例を示す説明図である。
【図4】 上記システムを構成する各クライアントの機能的構成を示す説明図である。
【図5】 上記システムにおけるツリーの結合の手順を示すフローチャートである。
【図6】 上記システムにおけるツリーの結合位置の特定の様子を模式的に示す説明図である。
【図7】 上記システムにおける複数のツリーの結合の一例を模式的に示す説明図である。
【図8】 上記システムにおける、あるループaでの結合提案の発議の様子を模式的に示す説明図である。
【図9】 上記システムにおける、ループaでの結合提案の合議の様子を模式的に示す説明図である。
【図10】 上記システムにおける、ループaでの結合提案の決定と決定事項の周知の様子を模式的に示す説明図である。
【図11】 上記システムにおける、ループaから別のループbへの結合の提案の様子を模式的に示す説明図である。
【図12】 上記システムにおける、ループbからループaへの回答の様子を模式的に示す説明図である。
【図13】 上記システムにおける、ループbでの結合提案の受け入れの合議、およびループaでの結合提案の受け入れ予定の合議の様子を模式的に示す説明図である。
【図14】 上記システムにおける、ループbおよびループaでの結合の決定と結合情報の周知の様子を模式的に示す説明図である。
【図15】 上記システムにおける、ループaからループbへの結合の提案の様子(いずれかの代表にトラブルがあった場合)を模式的に示す説明図である。
【図16】 上記システムにおける、ループbからループaへの回答の様子(いずれかの代表にトラブルがあった場合)を模式的に示す説明図である。
【図17】 上記システムにおける、ループbおよびループaでの結合の決定と結合情報の周知の様子(いずれかの代表にトラブルがあった場合)を模式的に示す説明図である。
【符号の説明】
300 バスまたはケーブル
301 CPU
302 ROM
303 RAM
304 HDD
305 HD
306 FDD
307 FD
308 ディスプレイ
309 モデム
310 公衆電話回線
311 キーボード
312 マウス
313 スキャナ
314 プリンタ
315 CD−ROM
316 CD−ROMドライブ
400 参加部
401 結合位置特定部
402 ループ内提案部
402a 結合提案要求送信部
402b 結合提案要求受信部
403 可否判断部
403a 結合提案可否判断部
403b 結合可否判断部
404 可否決定部
404a 判断結果送信部
404b 判断結果受信部
404c 可否決定部
405 組織情報共有部
405a 共有情報送信部
405b 共有情報受信部
406 ループ外提案部
406a 結合要求送信部
406b 結合要求受信部
406c 判断結果送信部
406d 判断結果受信部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus in an information processing system including a plurality of information processing apparatuses divided into a plurality of groups, Information processing apparatus coupling method and information processing apparatus coupling program About.
[0002]
[Prior art]
Interactivity in digital broadcasting that has started is one of the technologies that have attracted a great deal of attention in that the voice of the viewer can be reflected in the program in real time. However, due to the fact that the equipment is expensive at present, it is expected that it will spread to the general public.
[0003]
On the other hand, in the Internet, which has been rapidly spreading in recent years, a technology for simultaneously distributing a large amount of content such as multicast to a large number of users in a single packet is being introduced. Not that. However, on the Internet, conventionally, unilateral information distribution from the server to the client has been the main, so the interactivity as seen in digital broadcasting is still poor.
[0004]
For example, suppose that a user performs a quiz in which a large number of users participate at the same time, and notifies each participant of the answer status such as how many respondents are present and how many are correct ones at any time.
[0005]
If multicast is used for distribution of the total results, the number of providers who can receive the service is limited because there are still a few providers that support multicast. Also, the prior art broadcast (information distribution method that sends a single packet to all points in a specified network), except in special cases where the participants are all users belonging to the same network. And cannot be used.
[0006]
Therefore, if we try to distribute this total result to all participants by unicast in the prior art (information distribution method that creates and transmits packets to specified individual points), 1000 cases are processed in one second. However, if there are 1 million participants, it will take more than 16 minutes and it will not be very real-time. In the first place, it takes a considerable amount of time just to summarize the answer status, that is, to accept answers from 1 million participants and to count the number of respondents and correct answers.
[0007]
Therefore, the applicant organizes the clients in a tree shape with the server at the top, and (a) the upper client C adds up the total results up to that point from the lower clients A and B, and gives his answer. (B) The lower-level client C forwards the total result distributed from the higher-level client D to the lower-level clients A and B. A technology has been proposed that dramatically reduces the load on the server by distributing and allocating processing conventionally burdened by the server to the clients of each hierarchy of the tree (Japanese Patent Application 2001). No. 094415 and related technologies include Japanese Patent Application No. 2001-094414 and Japanese Patent Application No. 2001-094416).
[0008]
In the above technique, a client who wants to participate in the content first connects to the server in order to acquire minimum necessary items such as a participation ID. At this time, the server designates one of the clients on the tree that has already been formed (one of the clients that are already participating). Built into the delivery route. In this way, the tree grows gradually.
[0009]
[Problems to be solved by the invention]
However, the above is a case where a small number of clients are sporadically participating in the content. For example, when a large number of clients belonging to the same provider are participating at once, it is more efficient to form a separate tree with them alone. Is. In addition, a tree that was originally a single tree may be divided into a plurality of parts due to cancellation of participation or communication interruption of some clients.
[0010]
Whatever the cause of multiple trees, these trees must be merged into a single tree at the top of the server by the start of the content at the latest. Then, if this tree-joining operation is performed on the server side, the server must always know the connection status of one million units of clients, which increases the processing load.
[0011]
Therefore, we want to let the client side autonomously join the trees, and more specifically, organize the clients (the former is just one example of the latter), but if the individual clients act on their own, May cause contradiction. For example, at the same time that a client at the top of tree A (specifically, one of the clients in the loop at the top of the tree, described below) decides to fall under tree B, It can happen that the client (same as above) decides to go under the tree A.
[0012]
In addition, if one of the clients (the top client in the above example) is left to make a decision to join, the organization will be confused if this client stops participating or loses communication. There is.
[0013]
The present invention has been made in view of the above-described problems of the prior art, and is capable of autonomously organizing a large number of grouped information processing apparatuses without causing any inconsistency or confusion on the organization. Information processing apparatus coupling method, information processing apparatus coupling program, and information processing apparatus The purpose is to provide.
[0014]
[Means for Solving the Problems]
In order to solve the above-mentioned problems and achieve the purpose, This invention The information processing apparatus according to the present invention determines whether or not it is possible to propose a combination to a group other than the group to which the group belongs in the information processing apparatus in the information processing system including a plurality of information processing apparatuses divided into a plurality of groups. A combination proposal availability determination unit; a determination result transmission unit that transmits a determination result by the combination proposal availability determination unit to an information processing apparatus other than the self in the group to which the group belongs; and a group other than the self in the group to which the group belongs. A determination result receiving means for receiving a determination result by the combination proposal availability determination means of the apparatus, a determination result transmitted by the determination result transmitting means, and a determination result received by the determination result receiving means from the information processing apparatus; And a joining request transmission means for sending a joining request to the other group when a majority is acceptable. And butterflies.
[0015]
This Departure According to Ming, a proposal for a combination from one group to another will only be executed after a majority vote in the group.
[0016]
Also, This invention The information processing apparatus according to the present invention is an information processing apparatus in an information processing system including a plurality of information processing apparatuses divided into a plurality of groups, and receives a join request from a group other than the group to which the information belongs. Means for determining whether to accept the join request received by the join request receiving means, and the result of determination by the join permission determining means to an information processing apparatus other than the self in the group to which the user belongs. Transmitted by a determination result transmitting means for transmitting, a determination result receiving means for receiving a determination result by the joining possibility determining means of the device from information processing apparatuses other than the self in the group to which the apparatus belongs, and transmitted by the determination result transmitting means If a majority of the judgment results received and the judgment results received by the judgment result receiving means are acceptable, the other group Characterized in that and a shared information transmission means for notifying the information processing apparatus other than the own group to own affiliation information required for binding to flop.
[0017]
This invention According to the above, the combination of one group with another group (sharing of information necessary for this) is executed only after a majority decision is made by a group discussion.
[0018]
Also, This invention In the information processing method in each of the information processing systems in the information processing system composed of a plurality of information processing devices divided into a plurality of groups, the information processing method according to the present invention proposes a connection to a group other than the group to which the user belongs. A combined proposal propriety determining step for determining whether or not a combination is possible, a determination result transmitting step for transmitting a determination result in the combined proposal propriety determining step to an information processing apparatus other than the self in a group to which the group belongs, and a group to which the self belongs A determination result receiving step for receiving the determination result of the device in the combination proposal availability determination step, a determination result transmitted in the determination result transmission step, and a reception in the determination result reception step A joining request transmission step of sending a joining request to the other group when a majority of the determination results obtained is acceptable; Characterized in that it contains.
[0019]
This invention According to the above, a proposal for a combination from one group to another group is not executed until it is approved by a majority in the group.
[0020]
Also, This invention In the information processing method in each of the information processing systems in the information processing system composed of a plurality of information processing devices divided into a plurality of groups, a join request is issued from a group other than the group to which the user belongs. A joining request receiving step for receiving, a joining availability judging step for judging acceptance / rejection of the joining request received in the joining request receiving step, and a judgment on whether or not to join the information processing apparatus other than the self in the group to which the device belongs. A determination result transmitting step for transmitting a determination result in the step; a determination result receiving step for receiving the determination result of the device in the combination availability determination step from an information processing device other than the self in the group to which the device belongs; and the determination When a majority of the determination results transmitted in the result transmission step and the determination results received in the determination result reception step are acceptable, And shared information transmitting step for notifying information required for binding to serial other groups to an information processing apparatus other than the self in the group of self belongs, characterized in that it contains.
[0021]
This invention According to the above, the combination of one group with another group (sharing of information necessary for this) is executed only after a majority decision is made by a group discussion.
[0022]
Also, This invention The program related to the above The computer is caused to execute the method described in (1).
[0023]
This invention According to claim 3, the method according to claim 3 or 4 is executed by a computer.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
DETAILED DESCRIPTION OF THE INVENTION Information processing apparatus coupling method, information processing apparatus coupling program, and information processing apparatus The preferred embodiment will be described in detail.
[0025]
First, the configuration of an information processing system (specifically, an answer counting system) including an information processing apparatus according to an embodiment of the present invention will be described with reference to FIGS. FIG. 1 is an explanatory diagram showing the physical configuration of this system. As shown in the figure, this system is composed of the Internet, a server installed there, and a large number of clients of thousands to millions connected to the Internet through providers, proxies, and the like.
[0026]
Next, FIG. 2 is an explanatory diagram conceptually and schematically showing the configuration of the present system. This figure does not show the physical connection relationship between the server and the client as shown in FIG. 1, but shows the above-mentioned totaling route and the totaling result distribution route. As shown in the figure, a plurality of clients form one group (indicated by a triangle in the figure, hereinafter referred to as a “loop”), and each loop is arranged in a tree shape with a server at the top.
[0027]
Note that, in the same drawing, each loop is drawn so as to be composed of three clients, but the number of loop members is actually about three to ten and more, and the number of loops is different for each loop. In addition, a plurality of (for example, three) clients are selected for each loop as clients representing the loop. This representative is appointed and dismissed as needed according to the processing capability and load status of each client in the loop (usually, the three whose processing is the fastest are selected as representatives).
[0028]
One loop is composed of clients that are (1) directly communicable and (2) as close as possible to the electronic distance (it may be said that the communication path is short or the address is close).
[0029]
For example, a client connected to the Internet by dial-up IP connection is usually assigned a global IP address by DHCP when connecting to each provider. And, between clients having a global IP address, direct communication by UDP is possible regardless of the connected provider.
[0030]
Therefore, from the viewpoint of (1), these clients may be combined into one loop, but from the viewpoint of (2), one client is usually connected to the same provider. A loop will be formed. However, when the number of members in one loop becomes too large, it is divided and distributed into a plurality of loops.
[0031]
On the other hand, a client connected to the Internet via a proxy from a LAN or the like is normally assigned a private IP address, and can in principle communicate only with a client in the same LAN. Therefore, such a client forms a loop only from these viewpoints (1) and (2).
[0032]
Of course, it is possible to connect from the inside of the LAN to the outside by taking measures such as encoding data and transmitting it using the HTTP protocol, setting static NAT, or installing a dedicated proxy. However, in any case, it puts a load on the router and proxy server, so such clients are put together at the end of the tree.
[0033]
Next, the configuration of each client constituting the information processing system according to the embodiment of the present invention will be described with reference to FIGS. FIG. 3 is an explanatory diagram showing an example of the hardware configuration of each client in the system. The configuration shown in the figure is a typical example, and actually, the hardware configuration varies depending on the variety of clients participating in the content.
[0034]
In the figure, reference numeral 301 denotes a CPU that controls the entire apparatus, 302 denotes a ROM that stores basic input / output programs, and 303 denotes a RAM that is used as a work area of the CPU 301.
[0035]
Reference numeral 304 denotes an HDD (hard disk drive) that controls reading / writing of data with respect to the HD (hard disk) 305 according to the control of the CPU 301, and 305 denotes an HD that stores data written according to the control of the HDD 304. Yes. Reference numeral 306 denotes an FDD (flexible disk drive) that controls reading / writing of data with respect to the FD (flexible disk) 307 according to the control of the CPU 301, and reference numeral 307 denotes a removable FD that stores data written according to the control of the FDD 306. Respectively.
[0036]
Reference numeral 308 denotes a cursor, menu, window, or display for displaying various data such as characters and images, and reference numeral 309 denotes a modem for transmitting / receiving data to / from the Internet via the public telephone line 310. Show. Reference numeral 311 denotes a keyboard having a plurality of keys for inputting characters, numerical values, and various instructions. Reference numeral 312 denotes a mouse for selecting and executing various instructions, selecting a processing target, moving a cursor, and the like. ing.
[0037]
Reference numeral 313 denotes a scanner that optically reads characters and images, 314 denotes a printer that prints characters and images on paper, 315 denotes a CD-ROM that is a removable recording medium, and 316 denotes data for the CD-ROM 315. Reference numeral 300 denotes a CD-ROM drive for controlling the leads, and reference numeral 300 denotes a bus or cable for connecting the above-mentioned parts.
[0038]
Next, FIG. 4 is an explanatory diagram showing a functional configuration of each client in the system. Although the client has various functions other than those shown in the figure, only functions necessary for explaining the invention described in the claims, specifically, functions related to client organization (particularly, tree connection) will be described. To do.
[0039]
In the figure, reference numeral 400 denotes a participation unit that acquires information necessary for participation in the content by connecting to the server (participation ID, acceptance destination loop, client IP address to be inquired later), and the like. This is a functional unit that connects to the receiving destination and obtains other necessary information (such as a representative IP address of the receiving destination loop) to incorporate this client into the above-described tree.
[0040]
Reference numeral 401 denotes a connection position specifying unit, which inquires a connection position between a tree different from the tree to which the client belongs and searches for a loop serving as a node between both trees according to a procedure described in detail later. It is a functional part to identify.
[0041]
Reference numeral 402 denotes an in-loop proposal unit that requests a representative client in the same loop to propose a connection to the loop of the other party tree specified by the connection position specifying unit 401, and The configuration includes a combination proposal request receiving unit 402b that receives the request from any client in the same loop.
[0042]
Reference numeral 403 denotes an admissibility determination unit, which includes an adjoining tree propriety determination unit 403a that determines whether or not to propose an adjoining tree loop, and an admissibility determination that determines whether or not to combine with an opponent tree loop. The configuration includes the unit 403b.
[0043]
Reference numeral 404 denotes an availability determination unit, which is a determination result transmission unit 404a that transmits its own determination result by the availability determination unit 403 to other representative clients in the same loop, and conversely, other representative clients in the same loop. From the determination result receiving unit 404b that receives the determination result by each of the determination unit 403, the own determination result by the determination unit 403 and the determination results of other representatives received by the determination result reception unit 404b are collated. Thus, when the majority is “permitted”, it is configured to include a permission / rejection determination unit 404c that determines to propose a connection to a loop of a counterpart tree or to join a loop of a counterpart tree.
[0044]
Reference numeral 405 denotes an organization information sharing unit. When the combination or proposal is determined by the permission determination unit 404, shared information transmission is performed to transmit the fact, information necessary for the combination, and the like to all other clients in the same loop. And a shared information receiving unit 405b that receives the above facts and information from a representative client in the same loop.
[0045]
406 is an out-of-loop proposing unit, and a coupling request transmitting unit 406a that proposes coupling with a loop to which the self belongs to a representative of the loop of the other party tree identified by the coupling position identifying unit 401. A join request receiving unit 406b that receives the above proposal from a representative of a loop other than the loop, and sends a decision result by the acceptability judging unit 403 to the representative of the proposal source loop for the proposal received by the join request receiving unit 406b. The configuration includes a determination result transmission unit 406c and a determination result reception unit 406d that receives the determination result from the representative of the loop of the proposal destination.
[0046]
It should be noted that the portion surrounded by a dotted line in the drawing, that is, the combined proposal request receiving unit 402b among the in-loop proposal unit 402, the availability determination unit 403 and the availability determination unit 404, and the shared information transmission unit 405a among the organization information sharing unit 405, The out-of-loop proposal unit 406 is provided only for clients selected as representatives of each loop among the clients (the client other than the representative may be provided, but the function is exhibited by these clients. There is nothing.)
[0047]
Now, the tree shown in FIG. 2 is a completed form, that is, a state immediately before the start of the content, and is obtained as a final result in which a plurality of trees being formed are gradually combined. Next, with reference to the flowchart shown in FIG. 5, a procedure for joining trees in this system will be described in detail.
[0048]
The tree is joined at the timing when a new client joins one of the trees being formed, that is, when a new client joins the content, so the flowchart in the figure also includes the participation phase. Yes.
[0049]
The client who wants to participate in the content first connects to the server by the participation unit 400 to acquire the necessary items for participation (step S501 in FIG. 5), and then connects to the reception destination designated there, By acquiring necessary information, it is incorporated into one of the trees (step S502).
[0050]
The join following this participation is divided into two stages: a query phase before join (step S503) and a join agreement and actual join phase (step S504 and subsequent steps) for broadly specifying the join position. is there. Hereinafter, description will be made sequentially.
[0051]
1. Inquiry before join (identification of join position)
FIG. 6 is an explanatory diagram schematically showing a specific state of the coupling position between the tree A and another tree B immediately after the client 600 shown in FIG. The process in step S503 in FIG. 5 will be described in detail with reference to FIG. This process is executed exclusively by the coupling position specifying unit 401 shown in FIG.
[0052]
As described above, the client 600 obtains necessary items such as a participation ID and an accepting destination from the server prior to participation in the content. Among these necessary items, the client 600 is selected as an inquiry destination from already participating clients. IP addresses of a plurality of clients (the number is not limited as long as it is two or more) are included. This client is randomly selected from clients that can directly communicate with the client 600. Here, it is assumed that one of them is the client 601 shown in the figure.
[0053]
After the client 600 joins the tree A, it identifies the identification information of the tree A to which the client 600 belongs, and the hierarchy in which the client 600 is located (in the example of FIG. That is, the first hierarchy) is transmitted ((1) in the figure).
[0054]
If the received tree identification information is the same as the identification information of the tree to which the client 601 belongs, the client 601 returns a message to that effect to the client 600. In this case, since the newly joined client 600 and the client 601 that is the inquiry destination belong to the same tree, there is no room for joining the trees, and the inquiry is canceled at this point. (If there is a contact that has not yet been contacted, move to that contact).
[0055]
On the other hand, if the received tree identification information is different from the identification information of the tree to which the client belongs, the client 601 receives the hierarchy in which the client 601 is located in the tree B (the first hierarchy in the example in the figure) Comparing the hierarchy in which the client 600 is located (also the first hierarchy), if the own hierarchy is equal to or higher than the other hierarchy, the client 600 is replied to the client 600 to make an inquiry again. ((2) in the figure).
[0056]
Upon receiving this, the client 600 raises a request for an inquiry to the loop one above the loop to which the client 600 belongs ((3) in the figure), and the client 602 in the loop that has received the request requests its own in the tree A. The positioned hierarchy (second hierarchy in the example in the figure) is transmitted to the client 601 ((4) in the figure).
[0057]
Similarly to the inquiry from the client 600, the client 601 compares its own hierarchy (first hierarchy) with the other party's hierarchy (second hierarchy). In this case, the own hierarchy is lower than the other party's hierarchy. A request for an inquiry is raised to the loop one above the loop to which the group belongs ((5) in the figure). In response to this, the client 603 in the loop transmits the hierarchy in which the client 603 is located in the tree B (second hierarchy in the example in the figure) to the client 602 ((6) in the figure).
[0058]
The client 602 that has received this also compares its own layer (second layer) with the partner's layer (second layer). In this case, the own layer is the same as (or higher than) the partner's layer. The client 603 is returned to the client 603 to make an inquiry again to the higher-level client ((7) in the figure).
[0059]
Upon receiving this, the client 603 raises a request for an inquiry to the loop one level above the loop to which it belongs ((8) in the figure), and the client 604 in the loop that has received this requests its own in the tree B. The positioned hierarchy (third hierarchy in the example in the figure) is transmitted to the client 602 ((9) in the figure).
[0060]
The client 602 that has received the same compares the own layer (second layer) with the partner layer (third layer). In this case, the own layer is lower than the partner layer, so the loop to which the client belongs The inquiry request is raised to the loop one above ((10) in the figure). In response to this, the client 605 in the loop receives the fact that the hierarchy in which the client 605 is located is the highest in the tree A, that is, the fact that the loop to which the client 605 belongs is the highest loop in the tree A. ((11) in the figure).
[0061]
Upon receiving this, the client 604 returns the IP addresses of three representative clients among the clients belonging to its own loop to the client 605 ((12) in the figure). Then, after the loop of the client 604 and the loop of the client 605 agree to join by the procedure described later, the tree A that has reached the top loop first falls under the other tree B, and the loop 7 are connected as shown in FIG.
[0062]
In this way, by comparing the hierarchies where each other is located and reciprocally inquiring to a higher-order client if it is a disagreeable partner, communication between trees is finally achieved (that is, in FIG. 6 (12)). At that time) to ensure that it is done between clients at the same level and as much as possible.
[0063]
The merit of doing the above is that, regardless of the positional relationship between the newly joined client and the inquiry destination client appropriately designated by the server, the tree to which each client belongs is It is in the point of being combined in a state of “equal”.
[0064]
For example, when the newly joined client is 605 instead of 600, and the inquiry destination is the client 601, the trees A and B may be joined in such a manner that the client 605 loop is connected to the client 601 loop. Yes, but in the combined tree, the path from the highest loop to the lowest loop becomes considerably longer than before the connection (simple addition).
[0065]
However, from the viewpoint of the above-mentioned totalization and totalization result distribution, it is better that the route is as short as possible, and that there is less variation in length such as only one extremely long route. This is because the speed of aggregation or the like depends on the length of the route, so that if there is a noticeably long route, another short route client must wait for the processing to end there.
[0066]
Therefore, when the client 605 makes an inquiry to the client 601, if it is found that there is a difference of two layers between the two, the client 604 on the second layer of the same tree is finally replaced with the client 601 of the lower rank. Adjust to be a contact. As a result, even when the newly joined client is 605, the combined tree is the same as that in FIG. However, the combination result of the tree A and the tree B is the same regardless of the combination of the inquiry source and inquiry destination clients.
[0067]
2. Join agreement and actual join
Next, FIG. 8 to FIG. 14 schematically show the state of the connection agreement between the loops that are the nodes of both trees and the actual connection after the connection position is specified as described above. It is explanatory drawing. In the figure, the left side is the loop of the third hierarchy of the tree A (the loop to which the client 605 belongs; hereinafter “loop a”), and the right side is the loop of the third hierarchy of the tree B (the loop to which the client 604 belongs. ]). The processes after step S504 in FIG. 5 will be described in detail with reference to these drawings.
[0068]
(1) Joining proposal in loop a ... Fig. 8
First, the client 605 in the loop a proposes to join the loop b to the three clients that are representative of its own loop, specifically, 800, 801, and 802 shown in FIG. A request to do so is transmitted (step S504). The request is attached with the representative IP address of loop b (see FIG. 6 (12)) received by the client 605 from the client 604.
[0069]
(2) Joint proposal discussion in loop a ... Fig. 9
The clients 800, 801, and 802 that have received the request from the client 605 by the combined proposal request receiving unit 402b determine whether or not a proposal can be made by each combined proposal determination unit 403a (step S505). Then, the determination result (either “Yes” or “No”) is transmitted from the determination result transmission unit 404a to the remaining two representatives, and conversely, each determination result is received from the remaining two representatives by the determination result receiving unit 404b. The determination result 404 is received and collated with the determination result (step S506).
[0070]
(3) Determination of combination proposal in loop a and well-known matter of determination ... FIG.
Then, when at least two of the judgment results of the self and the judgment results of the other two representatives are “Yes”, that is, when a majority of the representatives judges that the proposal of the combination is possible (Step S507: Yes), it is decided to propose to join the loop b, and the shared information transmission unit 405a notifies that to all clients in the loop a (step S508). The client other than the representative trusts the notification when the shared information receiving unit 405b receives the notification from at least two of the three representatives.
[0071]
(4) Proposal of coupling from loop a to loop b ... FIG.
Further, the representative client of the loop a that has made the decision transmits a request for combining with its own loop to the representatives 1100, 1101, and 1102 of the loop b by the connection request transmission unit 406a in parallel with the above notification ( Step S509). If two or more representatives decide that the proposal for joining is “OK” and communication between the three representatives is successful, the three representatives of loop a join the three representatives of loop b respectively. Since this is a proposal, a total of nine communications between loops occur. This proposal includes all information necessary for combining, for example, identification information of loop a.
[0072]
(5) Current answer from loop b to loop a ... Fig. 12
The representatives 1100, 1101, and 1102 of the loop b can accept or reject individual proposals by the combination determination unit 403b when the combination request receiving unit 406b receives the proposals from the representatives 800, 801, and 802 of the loop a. (Step S510), and returns the result from the determination result transmission unit 406c to the proposal source (step S511).
[0073]
For example, when the representative 1100 of the loop b receives the proposal from the representative 800 of the loop a, regardless of the intentions of the other representatives 1101 and 1102, whether or not it can be combined is determined by itself, and the result is given to the representative 800. Send back. If the same proposal is received soon from another representative 801 in loop a, the same decision is made in the same manner, and the reply is sent to the representative 801. Further, when the same proposal is received from the remaining one representative 802 in the loop a, its own determination is returned to the representative 802 in the same manner. Since the three representatives answer to the three representatives respectively, a total of nine communications between the loops occur again here.
[0074]
The reply from the loop b to the loop a includes all items necessary for combining when the determination result is “Yes”, for example, the identification information of the loop b and the identification information of the tree B. If the determination result is “No”, the reason is included.
[0075]
In addition, when receiving a connection proposal from the loop a, when the loop b is proposing a connection to the loop a, that is, the connection proposal from the loop a and the connection proposal from the loop b are mixed. In that case, loop b ignores the join proposal from loop a.
[0076]
(6) A proposal for accepting a combined proposal in loop b, a proposal for accepting a combined proposal in loop a, FIG.
After replying to loop a, representatives 1100, 1101 and 1102 in loop b send their own judgment results answered to each representative of loop a to the other representatives in loop b by judgment result transmission unit 404a. Each determination result is received from the other representative by the determination result receiving unit 404b, and these are collated by the availability determining unit 404c (step S512).
[0077]
In loop a, representatives 800, 801, and 802 respectively determine whether the loop b determines the future correspondence of the loop b, that is, the loop b determines the combination from the plurality of replies received by the determination result receiving unit 406d. The decision result is judged (predicted), and the decision result is transmitted / received between the three parties by the decision result transmission unit 404a and the decision result reception unit 404b and collated by the decision unit 404c (step S513).
[0078]
(7) Determination of coupling and notification of coupling information in loop b and loop a FIG.
Then, each representative of the loop b decides to combine with the loop a when at least two determination results are “OK” (step S514: Yes), and to that effect and information necessary for the combination (combination) Information) is notified from the shared information transmission unit 405a to all clients in the loop b (step S515).
[0079]
In addition, each representative of the loop a decides the coupling with the loop a when at least two of the replies from the loop b are “Yes” (step S516: Yes), that is, the coupling performed by itself. Is determined to be accepted, the connection with the loop b is determined, and the information (connection information) necessary for the connection is notified from the shared information transmission unit 405a to all the clients in the loop a ( Step S517).
[0080]
When a client other than the representative receives the above notification from at least two representatives by the shared information receiving unit 405b, the client trusts the notification, captures the combined information contained therein, and stores it in an appropriate storage area. . When all the clients in the loops a and b recognize the connection and share necessary information, the two loops and the trees A and B included in them are logically combined.
[0081]
If there is a client that has not yet been contacted among the inquiry destinations acquired from the server at the time of participation (step S518: Yes), the processing after specifying the coupling position with the client is repeated again (return to step S503).
[0082]
According to the embodiment described above, a plurality of representatives appointed for each loop decide on whether or not to join with other loops by a majority decision, and some representatives are normal for some reason. Even when processing cannot be performed, the joining of trees proceeds without delay by other representatives.
[0083]
For example, even if the representative 802 of loop a becomes unable to communicate due to machine trouble or line trouble, if the remaining representatives 800 and 801 determine that the proposal from the client 605 is “possible”, the loop b by these representatives The proposal to the representative is executed (FIG. 15, compared with FIG. 11).
[0084]
Even in the loop b, even if the representative 1100 is unable to communicate, the remaining representatives 1101 and 1102 determine that the connection is possible and return it to the loop a (FIG. 16; FIG. 12). In contrast, the representatives in the loop b by the representatives and the representatives 800 and 801 receiving the reply are normally notified in the loop a (FIG. 17; in contrast to FIG. 14).
[0085]
In this way, even in an unstable environment, opinion adjustment inside and outside the loop and sharing of necessary information is performed reliably according to a predetermined procedure, so the server is not involved and it is left up to the client to organize it. However, there is no contradiction or confusion in the organization. Even if a malicious client intentionally disturbs or destroys an organization, the act will be absorbed in the majority vote, so it will not affect many people.
[0086]
In the above description, the number of representatives of each loop is three. Of course, more representatives may be selected. In addition, there may be no particular representative, and all clients in the loop may discuss whether or not to join or propose (so to speak, everyone is representative), but in any case proportional to the number of people. I cannot deny that it takes time to adjust opinions.
[0087]
In the procedure shown in FIG. 5, the loop b proposed to be combined from the loop a responds for the time being by each representative's own judgment (step S511), and then combines the opinions of the representatives together. This order may be reversed (step S512 and subsequent steps), but this order may be reversed, and whether or not the loop a can be combined with the loop b after the discussion / determination in the loop b is completed (in other words, the loop) b's unified view) may be returned.
[0088]
The reason why the opinions of the representatives are individually returned to the loop a before the opinion adjustment in the loop b is because speed is more important than certainty. That is, if priority is given to certainty, it is better to return a unified view after discussion, but loop a waits wastefully during the discussion in loop b. Therefore, before you hear the opinions of other representatives, you can answer them first to ensure speed. Even in this way, if the loop a associates the opinions of the representatives of the loop b, the same conclusion as the decision made in parallel with the loop b is drawn.
[0089]
In the above, the procedure for adjusting opinions and sharing information between loops has been described in the client organization, particularly in the aspect of the tree combination. However, this procedure is not limited to the tree combination. Is different from “joining” in which loop b is placed under loop b, which means a merge in which loop a is absorbed by loop b), and loop division (the reverse of coalescence, one loop is divided into multiple loops) It can also be applied to cases such as
[0090]
In addition, it is not always necessary that the loops are organized in a tree shape. For example, even if the loops are connected in a mesh shape, the above-described procedure for conferencing in the aspect of joining, merging, and dividing the loops is performed. Can be adopted. Furthermore, the processing performed by the organized client does not have to be the above-described aggregation or distribution of the aggregation results.
[0091]
Note that the participation unit 400, the coupling position specifying unit 401, the in-loop proposal unit 402, the availability determination unit 403, the availability determination unit 404, the organization information sharing unit 405, and the outside loop proposal unit 406 described above are read from the HD 305 or the like into the RAM 303. The function of each unit is realized by the CPU 301 executing instruction processing according to the instructions of the issued program. In addition to HD 305, this program can be stored in various recording media such as FD 307, CD-ROM 315, or MO, or can be distributed via a network.
[0092]
【The invention's effect】
As explained above This invention Is a combined proposal propriety judging means for judging whether or not a joint proposal for a group other than the group to which the group belongs can be made in an information processing apparatus in an information processing system composed of a plurality of information processing apparatuses divided into a plurality of groups. And from the information processing apparatus other than the self in the group to which the self belongs, the determination result transmission means for transmitting the determination result by the combination proposal availability determination means to the information processing apparatus other than the self in the group to which the self belongs, A determination result receiving unit that receives a determination result by the combination proposal availability determination unit of the apparatus, a determination result transmitted by the determination result transmitting unit, and a determination result received by the determination result receiving unit can be a majority. And a joining request transmission means for sending a joining request to the other group when there is, so that from one group to another Proposals for joining loops are only executed after a majority vote in the group, thereby autonomously organizing a large number of grouped information processing devices without causing organizational contradiction or confusion. There is an effect that an information processing apparatus that can be used is obtained.
[0093]
Also, This invention In the information processing apparatus in the information processing system including a plurality of information processing apparatuses divided into a plurality of groups, a combination request receiving unit that receives a combination request from a group other than the group to which the user belongs, and the combination A joinability determination unit that determines whether or not to accept a join request received by the request receiving unit, and a determination result transmission that transmits a determination result by the joinability determination unit to an information processing apparatus other than the self in a group to which the request belongs. Means, a determination result receiving means for receiving a determination result by the combining possibility determining means of the device from an information processing apparatus other than the self in the group to which the apparatus belongs, and a determination result transmitted by the determination result transmitting means; In order to combine with the other group when a majority of the determination results received by the determination result receiving means is acceptable A shared information transmission means for notifying information processing devices other than the self in the group to which the user belongs, so that a combination between a group and another group (sharing of information necessary for that) Information processing that is executed only after a majority decision is made by group counseling, and can thereby autonomously organize a large number of grouped information processing devices without causing organizational contradiction or confusion. There exists an effect that an apparatus is obtained.
[0094]
Also, This invention In the information processing method in each of the devices in the information processing system composed of a plurality of information processing devices divided into a plurality of groups, it is determined whether or not it is possible to propose a combination to a group other than the group to which the device belongs. A combination proposal availability determination step, a determination result transmission step of transmitting a determination result in the combination proposal availability determination step to an information processing apparatus other than the self in the group to which the user belongs, and a non-self in the group to which the user belongs From the information processing device, a determination result receiving step for receiving the determination result of the device in the combination proposal availability determination step, a determination result transmitted in the determination result transmission step, and a determination result received in the determination result reception step And a joining request transmission step of sending a joining request to the other group when a majority is possible. Proposals for joining the loop to other groups are only executed after a majority vote in the group, thereby allowing a large number of grouped information processing devices to operate autonomously without causing organizational contradiction or confusion. There is an effect that an information processing method that can be organized is obtained.
[0095]
Also, This invention In the information processing method in each of the devices in the information processing system composed of a plurality of information processing devices divided into a plurality of groups, a join request reception for receiving a join request from a group other than the group to which the device belongs A determination result in the combination determination step, and a combination determination step for determining whether to accept the combination request received in the combination request reception step, and an information processing apparatus other than the self in the group to which the group belongs A determination result transmission step of transmitting, a determination result reception step of receiving the determination result of the device in the combination possibility determination step from information processing devices other than the self in the group to which the device belongs, and transmission in the determination result transmission step When a majority of the determination results received and the determination results received in the determination result receiving step are acceptable, the connection with the other group is established. And a shared information transmission step for notifying information processing devices other than the self in the group to which the user belongs to a group that belongs to the group. Sharing) is executed only after being approved by a majority in the group, and it is possible to autonomously organize a large number of grouped information processing devices without causing inconsistencies and confusion in the organization. The effect that a simple information processing method is obtained is produced.
[0096]
Also, This invention According to the above It is possible to obtain a program capable of causing a computer to execute the method described in 1).
[Brief description of the drawings]
FIG. 1 is an explanatory diagram showing a physical configuration of an information processing system including an information processing apparatus according to an embodiment of the present invention;
FIG. 2 is an explanatory diagram conceptually and schematically showing the configuration of the system.
FIG. 3 is an explanatory diagram showing an example of a hardware configuration of each client constituting the system.
FIG. 4 is an explanatory diagram showing a functional configuration of each client constituting the system.
FIG. 5 is a flowchart showing a procedure for combining trees in the system.
FIG. 6 is an explanatory diagram schematically showing a specific state of a tree coupling position in the system.
FIG. 7 is an explanatory diagram schematically showing an example of a combination of a plurality of trees in the system.
FIG. 8 is an explanatory diagram schematically showing a state of proposal of a joint proposal in a certain loop a in the system.
FIG. 9 is an explanatory diagram schematically showing a state of a joint proposal in loop a in the system.
FIG. 10 is an explanatory diagram schematically showing a determination of a combination proposal in loop a and a well-known state of matters to be determined in the system.
FIG. 11 is an explanatory diagram schematically showing a state of proposal of coupling from loop a to another loop b in the system.
FIG. 12 is an explanatory diagram schematically showing a state of an answer from loop b to loop a in the system.
FIG. 13 is an explanatory view schematically showing a state of a joint proposal acceptance in loop b and a joint proposal acceptance plan in loop a in the system.
FIG. 14 is an explanatory diagram schematically showing the determination of coupling in loop b and loop a and the well-known state of coupling information in the system.
FIG. 15 is an explanatory diagram schematically showing a state of proposal of coupling from loop a to loop b (when any representative has trouble) in the system.
FIG. 16 is an explanatory diagram schematically showing a state of reply from loop b to loop a (when any representative has a trouble) in the system.
FIG. 17 is an explanatory diagram schematically showing determination of coupling in loop b and loop a and a known state of coupling information (when any representative has a trouble) in the system.
[Explanation of symbols]
300 bus or cable
301 CPU
302 ROM
303 RAM
304 HDD
305 HD
306 FDD
307 FD
308 display
309 modem
310 Public telephone line
311 keyboard
312 mouse
313 Scanner
314 Printer
315 CD-ROM
316 CD-ROM drive
400 Participants
401 Coupling position specifying unit
402 Proposal part in the loop
402a Join proposal request transmitter
402b Join proposal request receiver
403 availability determination unit
403a Join proposal availability determination unit
403b Joinability determination unit
404 Acceptability decision section
404a Judgment result transmitter
404b Judgment result receiver
404c availability determination unit
405 Organization Information Sharing Department
405a Shared information transmission unit
405b Shared information receiver
406 Outside Loop Proposal Department
406a Join request transmitter
406b Binding request receiver
406c Determination result transmission unit
406d Judgment result receiver

Claims (3)

ネットワークに接続された情報処理装置の複数のグループのうちの任意のグループ(以下「第1のグループ」という)に属する任意の情報処理装置から、複数存在する、前記第1のグループに属するあらかじめ定められた情報処理装置(以下「代表クライアント」という)のすべてへ、前記第1のグループ以外の他のグループ(以下「第2のグループという」)に対する結合提案要求情報であって、前記第2のグループに所属する複数の情報処理装置に関する情報(以下「第2のグループ情報処理装置情報」という)を含む情報を前記ネットワークを介して送信する第1の送信工程と、
前記結合提案要求情報に対する前記代表クライアントの可否情報を当該代表クライアントから、前記第1のグループに属する他のすべての代表クライアントへそれぞれ前記ネットワークを介して送信する第2の送信工程と、
複数の前記代表クライアントがそれぞれ、自装置の可否情報および前記第2の送信工程において送信されてきた他の代表クライアントの可否情報に基づいて、両者の可の数の和が全体の過半数に達した場合に、前記第1のグループに属するすべての情報処理装置へ、前記第2のグループへ結合要求する旨の情報を前記ネットワークを介して送信するとともに、前記第2のグループ情報処理装置情報に基づいて、前記第2のグループに所属する複数の情報処理装置に対してそれぞれ結合要求情報を前記ネットワークを介して送信する第3の送信工程と、
を含んだことを特徴とする情報処理装置結合方法。
A plurality of information processing apparatuses belonging to an arbitrary group (hereinafter referred to as “first group”) among a plurality of groups of information processing apparatuses connected to the network, and a predetermined number belonging to the first group. Information to the information processing apparatus (hereinafter referred to as “representative client”) to the other group (hereinafter referred to as “second group”) other than the first group, A first transmission step of transmitting information including information on a plurality of information processing devices belonging to a group (hereinafter referred to as “second group information processing device information”) via the network;
A second transmission step of transmitting information indicating whether or not the representative client with respect to the combination proposal request information is transmitted from the representative client to all other representative clients belonging to the first group via the network;
Based on the availability information of the plurality of representative clients and the availability information of the other representative clients transmitted in the second transmission step, the sum of the number of the representative clients has reached the majority of the whole. In this case, information indicating that a connection request is made to the second group is transmitted to all the information processing apparatuses belonging to the first group via the network, and based on the second group information processing apparatus information. A third transmission step of transmitting coupling request information to the plurality of information processing apparatuses belonging to the second group, respectively, via the network;
An information processing apparatus combining method comprising:
複数のグループに分けられた複数の情報処理装置からなる情報処理システム中の、前記各情報処理装置における情報処理装置結合方法において、
己の所属するグループ(以下「第1のグループ」という)を代表する、あらかじめ定められた複数の情報処理装置(以下「代表クライアント」という)がそれぞれ、
前記第1のグループ以外の他のグループ(以下「第2のグループ」という)に対する結合の提案情報であって、前記第2のグループに所属する複数の情報処理装置に関する情報(以下「第2のグループ情報処理装置情報」という)を含む情報を、前記第1のグループ内の任意の情報処理装置から受信する提案情報受信工程と、
前記提案情報受信工程において受信された情報に対する、結合の可否情報(以下「第1の可否情報」という)を、前記第1のグループ内の自己以外のすべての代表クライアントに送信する可否情報送信工程と、
前記第1のグループ内の自己以外の代表クライアントから、当該代表クライアントの前記可否情報(以下「第2の可否情報」という)を受信する可否情報受信工程と、
前記第1の可否情報および前記第2の可否情報に基づいて、前記第1の可否情報および前記第2の可否情報の可の数の和が全体の過半数に達した場合に、前記第1のグループに属するすべての情報処理装置へ、前記第2のグループへ結合要求する旨の情報を前記ネットワークを介して送信するとともに、前記第2のグループ情報処理装置情報に基づいて、前記第2のグループに所属する複数の情報処理装置に対してそれぞれ結合要求情報を送信する結合要求送信工程と、
実行することを特徴とする情報処理装置結合方法。
In the information processing apparatus combining method in each information processing apparatus in the information processing system composed of a plurality of information processing apparatuses divided into a plurality of groups,
Self of representative Member (hereinafter referred to as "first group"), a plurality of information processing apparatuses predetermined (hereinafter referred to as "representative client"), respectively,
Information for combining with another group other than the first group (hereinafter referred to as “second group”), which is information regarding a plurality of information processing devices belonging to the second group (hereinafter referred to as “second group”). Proposal information receiving step for receiving information including “group information processing device information” from any information processing device in the first group;
Promissibility information transmission step of transmitting information on whether or not to combine information received in the proposal information reception step (hereinafter referred to as “first availability information”) to all representative clients other than the self in the first group. When,
A permission information receiving step of receiving the permission information of the representative client (hereinafter referred to as “second permission information”) from a representative client other than the self in the first group;
Based on the first availability information and the second availability information, when the sum of possible numbers of the first availability information and the second availability information reaches a majority of the first, Information indicating that a request to join to the second group is transmitted to all information processing devices belonging to the group via the network, and the second group is based on the second group information processing device information. A coupling request transmission step of transmitting coupling request information to each of a plurality of information processing devices belonging to
An information processing apparatus combining method characterized in that:
求項1または請求項2に記載された方法をコンピュータに実行させることを特徴とする情報処置装置結合プログラム。 Motomeko 1 or information treatment device coupled program characterized by executing the method of the computer according to claim 2.
JP2002042248A 2002-02-19 2002-02-19 Information processing apparatus coupling method and information processing apparatus coupling program Expired - Fee Related JP4263868B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002042248A JP4263868B2 (en) 2002-02-19 2002-02-19 Information processing apparatus coupling method and information processing apparatus coupling program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002042248A JP4263868B2 (en) 2002-02-19 2002-02-19 Information processing apparatus coupling method and information processing apparatus coupling program

Publications (2)

Publication Number Publication Date
JP2003242298A JP2003242298A (en) 2003-08-29
JP4263868B2 true JP4263868B2 (en) 2009-05-13

Family

ID=27782423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002042248A Expired - Fee Related JP4263868B2 (en) 2002-02-19 2002-02-19 Information processing apparatus coupling method and information processing apparatus coupling program

Country Status (1)

Country Link
JP (1) JP4263868B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5260864B2 (en) 2006-12-07 2013-08-14 Necディスプレイソリューションズ株式会社 Projector, terminal, conference system, tree structure switching method and program

Also Published As

Publication number Publication date
JP2003242298A (en) 2003-08-29

Similar Documents

Publication Publication Date Title
US6438111B1 (en) Dynamically scaleable conference system
US7797375B2 (en) System and method for responding to resource requests in distributed computer networks
US7783762B2 (en) Scalable resource discovery and reconfiguration for distributed computer networks
US6011782A (en) Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network
US8725865B2 (en) Method for context based discovery and filtering of portable collaborative networks
US6529941B2 (en) Extensible information distribution mechanism for session management
US6529882B1 (en) Method for managing group membership in internet multicast applications
US7181526B1 (en) Announced session description
US20040039781A1 (en) Peer-to-peer content sharing method and system
AU756725B2 (en) Announced session control
US20060285670A1 (en) Method and apparatus for providing conference call services
CA2371078A1 (en) A distributed system to intelligently establish sessions between anonymous users over various networks
US20080034078A1 (en) Presence information management system, presence server device, gateway device and client device
US7280492B2 (en) Videoconferencing system
US7457288B2 (en) Relay multicast system and method for providing efficient group communication service
US7274675B2 (en) Dynamic distribution of participants in a centralized telephone conference
US7478172B1 (en) Supporting communication applications between enterprises in a secure manner
JP4263868B2 (en) Information processing apparatus coupling method and information processing apparatus coupling program
US20090043858A1 (en) Method and system for providing instant messenger based personal broadcasting service
Radenkovic et al. Deployment issues for multi-user audio support in CVEs
JP4485035B2 (en) Virtual space security methods
JP4538498B2 (en) Method and system for information distribution
Aguirre et al. Darkcube: A k-Hypercube based P2P VoIP protocol
JP2005244526A (en) Network node device, server device, multicast tree construction method, and program
KR20000037590A (en) Method for managing session membership in internet multicast application

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050912

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050915

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090213

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150220

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees