JP2006033384A - メッセージ配送方法、計算機及びプログラム - Google Patents
メッセージ配送方法、計算機及びプログラム Download PDFInfo
- Publication number
- JP2006033384A JP2006033384A JP2004208884A JP2004208884A JP2006033384A JP 2006033384 A JP2006033384 A JP 2006033384A JP 2004208884 A JP2004208884 A JP 2004208884A JP 2004208884 A JP2004208884 A JP 2004208884A JP 2006033384 A JP2006033384 A JP 2006033384A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- message
- virtual space
- area
- adjacent
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Abstract
【課題】 距離測定用の通信量を低減させつつ、P2P方式における各計算機間のデータ配送の遠回りや遅延を解消し、データ更新を迅速に実行する。
【解決手段】 仮想空間を分割してなる仮想空間単位領域を代表計算機が接続する仮想トポロジと、仮想空間単位領域内で代表計算機及び残りの計算機を接続する物理トポロジとからなる接続形態を用いる。各計算機間では、仮想空間単位領域内の場合、物理ネットワークを元にした物理トポロジにてメッセージを配送するので、仮想空間上で相手との関係動作が遅延する問題が無く、また、物理ネットワーク上でデータを遠回りして配送する問題が無い。一方、仮想空間単位領域外の場合、仮想空間を元にした仮想トポロジにてメッセージを配送するので、物理トポロジを形成する計算機を仮想空間単位領域内の計算機に限定でき、物理ネットワーク距離測定用の通信量を低減できる。
【選択図】 図1
【解決手段】 仮想空間を分割してなる仮想空間単位領域を代表計算機が接続する仮想トポロジと、仮想空間単位領域内で代表計算機及び残りの計算機を接続する物理トポロジとからなる接続形態を用いる。各計算機間では、仮想空間単位領域内の場合、物理ネットワークを元にした物理トポロジにてメッセージを配送するので、仮想空間上で相手との関係動作が遅延する問題が無く、また、物理ネットワーク上でデータを遠回りして配送する問題が無い。一方、仮想空間単位領域外の場合、仮想空間を元にした仮想トポロジにてメッセージを配送するので、物理トポロジを形成する計算機を仮想空間単位領域内の計算機に限定でき、物理ネットワーク距離測定用の通信量を低減できる。
【選択図】 図1
Description
本発明は、仮想空間を分散管理する各計算機が互いにメッセージを配送するメッセージ配送方法、計算機及びプログラムに係り、データ配送の遠回りや遅延を解消でき、データ更新を迅速に実行し得るメッセージ配送方法、計算機及びプログラムに関する。
ロールプレイングゲーム、軍事シミュレータ、3Dチャット等は、計算機上に論理的な空間を生成し、その空間内で様々なオブジェクトを行動させるアプリケーションである。この種のアプリケーションが提供する論理的な空間は、一般に「仮想空間」と呼ばれる。
ここで、仮想空間は、近年のADSL(Asymmetric Digital Subscriber),FTTH(Fiber To The Home)などの通信基盤の発展に伴い、ネットワークを通じて複数台の計算機で共有可能となっている。
仮想空間の共有手法としては、例えば、複数台の計算機で仮想空間を分散管理するP2P(Peer to Peer / Personal to Personal)方式が知られている。P2P方式では、仮想空間上の様々なオブジェクトの状態を示すデータを集中的に管理する計算機が無く、複数台の計算機がデータの一部、もしくは全部のコピーを持っている。各計算機は、仮想空間の処理中にデータを変更すると、変更内容をメッセージ通信により他の計算機に伝える。
このとき、理想的には全ての計算機同士を直接接続した形態が好ましいが、この形態は、計算機の台数に応じて各計算機が管理する接続数が増大し、管理の負荷が膨大になる。よって現実的には、幾つかの計算機が直接接続され、残りの計算機が他の計算機を介して間接接続されるネットワーク接続形態が使用される。なお、ネットワーク接続形態は一般に「トポロジ」と呼ばれる。このため、以下、ネットワーク接続形態をトポロジと呼ぶ。
トポロジを構成する手法としては、第1及び第2の手法が知られている。第1の手法は、各計算機に対応づけられた仮想空間上の座標値を元にトポロジを構成する方式である(例えば、非特許文献1参照。)。なお、仮想空間上の座標値は、通常の場合、計算機が仮想空間上で制御するオブジェクト(アバター)の座標値が用いられる。
第1の手法は、仮想空間上のアバター間の距離が近いほど、アバター同士が相互作用する可能性が高いという性質を利用する。例えば、互いに近くに配置されたアバターa,bと、両アバターa,bから遠くに配置されたアバターcとがあるとする。
アバターbを制御する計算機は、アバターaが手を挙げると、アバターaを制御する計算機から「手を挙げた」というデータ更新のメッセージを可能な限り早く受信し、アバターaのデータを更新及び描画表示する必要がある。一方、遠くのアバターcを制御する計算機は、アバターaのデータを早く更新する必要がなく、アプリケーションによってはアバターaのデータすら持っていない場合もある。
ここで、第1の手法は、仮想空間上の座標値を元にトポロジを構成するので、近接しているアバターa,b間のデータ更新に有効である。また、第1の手法は、データ配送を近傍領域のみに限定し、遠方領域にはデータ配送をしないことにより、データ転送量及び処理量を低減可能となっている。
しかしながら、第1の手法は、1ホップの範囲へのデータ送信は早いが、2ホップ以上の範囲へのデータ送信が遅くなる状況が多々ある。この状況は、仮想空間上で近いアバター同士を制御する各計算機が、物理ネットワーク上では遠く離れるときに生じる。このとき、第1の手法では、近いアバターを介してデータを配送するものの、物理ネットワーク上では遠回りをするので、2ホップ以上の範囲へのデータ送信が遅くなる。
この種の遠回りは、メッセージの伝搬範囲が広くなると生じ易くなり、物理ネットワーク上の総トラフィック量を増大させる問題がある。
一方、第2の手法は、物理ネットワーク上の位置を元に効率の良いトポロジを構成する方式である(例えば、非特許文献2参照。)。第2の手法は、実際に相手の計算機に対してデータを送信し、その返信により物理ネットワーク上の距離を測定し、距離が近い計算機と接続してトポロジを構成する。しかしながら、第2の手法は、多数の計算機からなるP2P方式に適用する場合、各計算機間の距離を測定するための通信量が膨大になる。
また、第2の手法は、仮想空間上で近いアバターを管理する計算機同士がトポロジ上で遠く離れる場合がある。そのため、第2の手法は、第1の手法とは異なり、仮想空間上では近い距離にも関わらず、相手の動作に関係した動作が遅延し易い問題がある。
川原圭博、松本延孝、森川博之、青山友紀、「ネットワーク型仮想環境のための分散型通信アーキテクチャ」、信学会技報,IN−2001−229,(2002,3) C−K.トー(C−K.Toh)著、構造計画研究所訳、「アドホックモバイルワイヤレスネットワーク」、共立出版
川原圭博、松本延孝、森川博之、青山友紀、「ネットワーク型仮想環境のための分散型通信アーキテクチャ」、信学会技報,IN−2001−229,(2002,3) C−K.トー(C−K.Toh)著、構造計画研究所訳、「アドホックモバイルワイヤレスネットワーク」、共立出版
以上説明したように、トポロジを構成するための第1の手法は、仮想空間上の座標値を元にトポロジを構成することから、物理ネットワーク上でデータを遠回りして配送する問題がある。一方、第2の手法は、物理ネットワーク上の距離を元にトポロジを構成することから、仮想空間上で相手との関係動作が遅延する問題がある。すなわち、第1及び第2の手法は、互いに逆の関係の問題がある。これに加え、第2の手法は、距離を測定するための通信量が膨大になるので、適用が困難である。
本発明は上記実情を考慮してなされたもので、距離測定用の通信量を低減させつつ、P2P方式における各計算機間のデータ配送の遠回りや遅延を解消でき、データ更新を迅速に実行し得るメッセージ配送方法、計算機及びプログラムを提供することを目的とする。
第1の発明は、仮想空間を部分的に生成する複数台の計算機が互いに接続され、ある計算機が仮想空間の状態を更新する際に、前記更新のためのメッセージを他の計算機に配送するメッセージ配送方法であって、前記各計算機の接続形態としては、前記仮想空間が分割されてなる複数個の仮想空間単位領域に関し、前記各計算機の仮想空間上の座標値に基づいて、前記各仮想空間単位領域のうちの隣合う仮想空間単位領域を個別に代表する計算機同士を接続して形成した仮想トポロジと、前記各仮想空間単位領域毎に、当該仮想空間単位領域に含まれる計算機同士を当該計算機間の物理ネットワーク上の距離に基づいて接続して形成した物理トポロジと、からなる形態であり、前記各計算機としては、予め前記仮想トポロジ上で隣に接続された隣接計算機のアドレス情報をメモリに記憶する工程と、予め前記物理トポロジ上で隣に接続された隣接計算機のアドレス情報をメモリに記憶する工程と、前記更新のためのメッセージを受信する工程と、前記受信の後、前記メモリから隣接計算機のアドレス情報を読出す工程と、前記読出したアドレス情報に向けて前記メッセージを配送する工程とを備えたメッセージ配送方法である。
第2の発明は、仮想空間を部分的に生成する複数台の計算機が互いに接続され、ある計算機が仮想空間の状態を更新する際に、前記更新のためのメッセージを他の計算機に配送するメッセージ配送方法に用いられる各々の計算機であって、前記各計算機の接続形態としては、前記仮想空間が分割されてなる複数個の仮想空間単位領域に関し、前記各計算機の仮想空間上の座標値に基づいて、前記各仮想空間単位領域のうちの隣合う仮想空間単位領域を個別に代表する計算機同士を接続して形成した仮想トポロジと、前記各仮想空間単位領域毎に、当該仮想空間単位領域に含まれる計算機同士を当該計算機間の物理ネットワーク上の距離に基づいて接続して形成した物理トポロジと、からなる形態であり、前記各計算機としては、予め前記仮想トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される仮想トポロジ隣接計算機記憶手段と、予め前記物理トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される物理トポロジ隣接計算機記憶手段と、前記更新のためのメッセージを受信する手段と、前記受信の後、前記各記憶手段から隣接計算機のアドレス情報を読出す手段と、前記読出したアドレス情報に向けて前記メッセージを配送する手段とを備えた計算機である。
(作用)
第1及び第2の発明は、仮想空間を分割してなる仮想空間単位領域を代表の計算機が接続する仮想トポロジと、仮想空間単位領域内で代表の計算機及び残りの計算機を接続する物理トポロジとからなる接続形態をとっている。
第1及び第2の発明は、仮想空間を分割してなる仮想空間単位領域を代表の計算機が接続する仮想トポロジと、仮想空間単位領域内で代表の計算機及び残りの計算機を接続する物理トポロジとからなる接続形態をとっている。
これにより、更新のためのメッセージを全ての計算機に伝搬させる際に、各計算機は、仮想空間単位領域内の近くの隣接計算機には、物理ネットワークを元にした物理トポロジにてメッセージを配送するので、従来とは異なり、仮想空間上で相手との関係動作が遅延する問題が無く、また、物理ネットワーク上でデータを遠回りして配送する問題が無い。
一方、仮想空間単位領域外の遠くの隣接計算機には、仮想空間を元にした仮想トポロジにてメッセージを配送するので、物理トポロジを形成する計算機を仮想空間単位領域内の計算機のみに限定でき、従来とは異なり、物理ネットワーク距離を測定するための通信量を著しく低減させることができる。
このように第1及び第2の発明は、物理トポロジ及び仮想トポロジを組合せて用いる構成により、距離測定用の通信量を低減しつつ、P2P方式における各計算機間のデータ配送の遠回りや遅延を解消でき、データ更新を迅速に実行することができる。
以上説明したように本発明によれば、距離測定用の通信量を低減しつつ、P2P方式における各計算機間のデータ配送の遠回りや遅延を解消でき、データ更新を迅速に実行できる。
以下、本発明に係る各実施形態について図面を参照しながら説明するが、その前に各実施形態に共通するトポロジについて図1を用いて述べる。
図1(a)は仮想空間に複数のアバターが存在する状況を示している。仮想空間を区切る矩形は仮想空間単位領域を示し、丸印は仮想空間上の座標値に位置するアバターを示している。アバターとは、計算機に対して一対一に対応した仮想空間上の一つの座標を用いるオブジェクトの具体例である。計算機に対して一対一に対応する仮想空間上の座標のことを「仮想空間座標」とも呼ぶ。
図1(b)はアバターを制御する計算機とそのトポロジを示している。図1(b)中、アバターaを制御する計算機を符号Aで示し,アバターbを制御する計算機を符号Bで示す。以下同様に、アバタと計算機とを同一アルファベットの小文字と大文字とで表している。
同一の仮想空間単位領域にアバターがいる計算機は同一の仮想空間単位領域を管理する。例えば計算機A,B,Cはアバターa,b,cがいる仮想空間単位領域を管理し、計算機D,E,Fはアバターd,e,fがいる仮想空間単位領域を管理する。以下同様に、計算機O,Pはアバターo,pがいる仮想空間単位領域を管理する。
図1(b)から分かるように、トポロジを構成するリンクは、(1)隣接した2つの仮想空間単位領域をまたがるリンクと、(2)仮想空間単位領域の中に閉じたリンクと、の二種類がある。
(1)のリンクは、互いに隣接する仮想空間単位領域に関し、各仮想空間単位領域を個別に代表する計算機同士をリンクしている。(1)のリンクは、仮想空間単位領域に基づくトポロジを構成することから、「仮想トポロジ」と呼ぶ。
(2)のリンクは、各計算機間の物理ネットワークの距離に基づいたトポロジを構成することから、「物理トポロジ」と呼ぶ。
計算機Aが属する仮想空間単位領域を計算機Aの「仮想トポロジ担当領域」と呼ぶ。
P2P方式の仮想空間アプリケーションは、仮想空間内の複数の領域のうち、どの領域のシミュレーションをどの計算機が担当するかを決定しなければならない。ここで、決定された担当領域を「シミュレーション担当領域」と呼ぶ。なお、以下の第1及び第2の実施形態は、ある計算機の「仮想トポロジ担当領域」と「シミュレーション担当領域」とが同じである。第3の実施形態は、ある計算機の「仮想トポロジ担当領域」と「シミュレーション担当領域」とが異なっている。
(第1の実施形態)
図2は本発明の第1の実施形態に係る計算機群を構成する各計算機の構成を示す模式図である。各計算機10は、仮想空間を分散管理するものであり、メッセージ受信部11、メッセージ送信部12、仮想トポロジ隣接計算機管理部13、物理トポロジ隣接計算機管理部14、仮想トポロジ担当領域内全計算機管理部15、配送先決定部16、仮想トポロジ担当領域管理部17、物理ネットワーク距離測定部18、ランデブー計算機リスト19、仮想空間座標管理部20、メッセージ生成部21、仮想空間シミュレータ22、シミュレーション担当領域管理部23、オブジェクト管理部24を備えている。
図2は本発明の第1の実施形態に係る計算機群を構成する各計算機の構成を示す模式図である。各計算機10は、仮想空間を分散管理するものであり、メッセージ受信部11、メッセージ送信部12、仮想トポロジ隣接計算機管理部13、物理トポロジ隣接計算機管理部14、仮想トポロジ担当領域内全計算機管理部15、配送先決定部16、仮想トポロジ担当領域管理部17、物理ネットワーク距離測定部18、ランデブー計算機リスト19、仮想空間座標管理部20、メッセージ生成部21、仮想空間シミュレータ22、シミュレーション担当領域管理部23、オブジェクト管理部24を備えている。
ここで、メッセージ受信部11は、他の計算機から送信されたメッセージを受信する機能と、メッセージを解析する機能と、解析結果に基づいて各管理部13,14,17を参照しながら、配送先決定部16、物理ネットワーク距離測定部18、メッセージ生成部21又はオブジェクト管理部24に対し、メッセージの送出や処理の依頼を実行する機能とをもっている。また、メッセージ受信部11は、メッセージID記録部を有し、処理したメッセージのIDを記録して同一メッセージを再処理することを防いでいる。
詳しくはメッセージ受信部11は、図3に示すように、受信に関する処理機能(f11-1)〜(f11-5)と、受信メッセージの処理機能(f11-11)〜(f11-102)とを有している。
受信に関する処理機能(f11-1)〜(f11-5)は、次の内容である。
受信に関する処理機能(f11-1)〜(f11-5)は、次の内容である。
(f11-1) メッセージを受信すると、メッセージIDを取り出す。
(f11-2) メッセージID記録部に同一メッセージIDが記録済みか否かを判定する。
(f11-2) メッセージID記録部に同一メッセージIDが記録済みか否かを判定する。
(f11-3) 記録済みの場合、以前に同一メッセージの処理をしたのでこのメッセージに対する処理を終了する。
(f11-4) 記録済みでない場合、メッセージIDをメッセージID記録部に記録する。
(f11-4) 記録済みでない場合、メッセージIDをメッセージID記録部に記録する。
(f11-5) 記録の後、このメッセージからメッセージタイプ(種類)を取り出す。
受信メッセージの処理機能(f11-11)〜(f11-102)は、メッセージタイプにより、10通りに分かれる。
受信メッセージの処理機能(f11-11)〜(f11-102)は、メッセージタイプにより、10通りに分かれる。
(f11-11) メッセージタイプが、“オブジェクトのデータ変更”、“オブジェクトのデータ追加”、“オブジェクトのデータ削除”、のいずれかの場合、メッセージをオブジェクト管理部24と配送先決定部16へ送る。
(f11-21) メッセージタイプが“計算機検索要求”の場合、メッセージを配送先決定部16へ送る。
(f11-31)〜(f11-33) メッセージタイプが“物理ネットワーク距離測定要求”の場合、メッセージからメッセージ送信計算機IDとメッセージIDを取り出し(f11-31)、メッセージ生成部21に“物理ネットワーク距離測定要求返信”メッセージの生成を要求する(f11-32)。メッセージ送信部12に対して、生成したメッセージをメッセージ送信計算機IDに向けて送信するよう依頼する(f11-33)。
(f11-41) メッセージタイプが、“物理ネットワーク距離測定要求返信”の場合、そのメッセージを物理ネットワーク距離測定部18へ送る。
(f11-51)〜(f11-55) メッセージタイプが、“計算機検索要求返信(なし)”の場合、仮想トポロジ担当領域管理部17に新しい領域を担当するように依頼する(f11-51)。次に、メッセージ中からメッセージ送信計算機IDを取り出す(f11-52)。次に、仮想トポロジ隣接計算機管理部13に、メッセージ送信計算機IDの登録を依頼する(f11-53)。次に、“仮想トポロジ登録要求”メッセージの作成をメッセージ生成部21に依頼する(f11-54)。次に、生成したメッセージをメッセージ送信計算機IDに向けて送信するための送信をメッセージ送信部12に依頼する(f11-55)。
(f11-61)〜(f11-62) メッセージタイプが、“計算機検索要求返信(あり)”の場合、メッセージコンテンツから計算機IDを取り出す(f11-61)。次に、物理ネットワーク距離測定部18に各計算機IDに対して物理ネットワーク距離を測定するように依頼する(f11-62)。
(f11-71)〜(f11-72) メッセージタイプが、“仮想トポロジ登録要求”の場合、メッセージからメッセージ送信計算機IDを取り出す(f11-71)。次にメッセージ送信計算機IDを仮想トポロジ隣接計算機管理部13に登録を依頼する(f11-72)。
(f11-81)〜(f11-82) メッセージタイプが“物理トポロジ登録要求”の場合、メッセージからメッセージ送信計算機IDを取り出す(f11-81)。次にメッセージ送信計算機IDを物理トポロジ隣接計算機管理部14に登録を依頼する(f11-82)。
(f11-91)〜(f11-94) メッセージタイプが、“仮想トポロジ担当領域情報取得要求”の場合、メッセージ中からメッセージ送信計算機IDを取り出す(f11-91)。次に、仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報を取得する(f11-92)。次に、メッセージ生成部21に“仮想トポロジ担当領域情報取得要求返信”メッセージの作成を依頼する(f11-93)。次に、生成したメッセージをメッセージ送信計算機IDに向けて送信するようにメッセージ送信部12に依頼する(f11-94)。
(f11-101)〜(f11-102) メッセージタイプが、“仮想トポロジ担当領域情報取得要求返信”の場合、メッセージコンテンツから仮想トポロジ担当領域情報を取得する(f11-101)。次に、仮想トポロジ担当領域情報の登録を仮想トポロジ隣接管理部13に依頼する(f11-102)。
メッセージ送信部12は、メッセージ受信部11、配送先決定部16、物理ネットワーク距離測定部18又はメッセージ生成部21からメッセージと送信先計算機IDを受取り、指定された送信先へメッセージを送信する機能を持つ。
仮想トポロジ隣接計算機管理部13は、仮想トポロジで隣接している計算機の計算機IDを管理するものであり、メッセージ受信部11及び配送先決定部16からアクセス可能となっている。ここで、計算機IDとは、例えば相手の計算機とのTCPのコネクションや、相手の計算機のIPアドレスなどの隣接計算機を特定するものがある。ここでは、計算機IDとしては、IPアドレス情報を用いている。
詳しくは仮想トポロジ隣接計算機管理部13は、図4に示すように、隣接計算機管理テーブル13T、隣接計算機追加部13a、隣接計算機変更部13b及び隣接計算機削除部13cを備えている。
隣接計算機管理テーブル13Tは、各部13a〜13cによりアクセス可能となっており、仮想トポロジ上で隣に接続された隣接計算機の計算機ID及びその隣接計算機の仮想トポロジ担当領域が登録されている。なお、隣接計算機管理テーブル13Tの仮想トポロジ担当領域の列は省略可能である。仮想トポロジ担当領域の情報は、必要に応じて“仮想トポロジ担当領域情報取得要求”メッセージを隣接計算機に送信し、得られる“仮想トポロジ担当領域情報取得要求返信”メッセージから取出してもよいからである。
隣接計算機追加部13aは、隣接計算機の計算機IDを隣接計算機管理テーブル13Tに追加する部分であり、追加を頼まれた際に、すでに多くの隣接計算機が登録済みの場合には追加を拒否する機能をもっている。
隣接計算機変更部13bは、隣接計算機管理テーブル13Tの登録内容を変更する機能をもっている。
隣接計算機削除部13cは、隣接計算機管理テーブル13Tの登録内容を削除する機能をもっている。
物理トポロジ隣接計算機管理部14は、物理トポロジで隣接している計算機の計算機IDを管理するものであり、メッセージ受信部11及び配送先決定部16からアクセス可能となっている。計算機IDは、前述した通りであり、仮想トポロジ隣接計算機管理部13と同様にIPアドレス情報を用いている。
詳しくは物理トポロジ隣接計算機管理部14は、図5に示すように、隣接計算機管理テーブル14T、隣接計算機追加部14a、隣接計算機変更部14b及び隣接計算機削除部14cを備えている。
隣接計算機管理テーブル14Tは、各部14a〜14cからアクセス可能に計算機IDが登録されている。
隣接計算機追加部14aは、隣接計算機の計算機IDを隣接計算機管理テーブル14Tに追加する機能と、追加を頼まれた際に、すでに多くの隣接計算機が登録済みの場合には追加を拒否する機能とをもっている。
隣接計算機変更部14bは、隣接計算機管理テーブル14Tの登録内容を変更する機能をもっている。
隣接計算機削除部14cは、隣接計算機管理テーブル14Tの登録内容を削除する機能をもっている。
仮想トポロジ担当領域内全計算機管理部15は、配送先決定部16からアクセス可能となっており、仮想トポロジ担当領域内に仮想空間座標をもつ全ての計算機の計算機IDを管理している。
配送先決定部16は、受け取ったメッセージの配送先の計算機を決定する機能を有し、詳しくは図6に示すように、受取りに関する処理機能(f16-1)〜(f16-2)と、配送先の決定に関する機能(f16-11)〜(f16-36)とをもっている。
受取りに関する処理機能(f16-2)〜(f16-2)は、次の内容である。
メッセージを受け取ると(f16-1)、メッセージタイプを取り出して解析する(f16-2)。
配送先の決定に関する機能(f16-11)〜(f16-36)は、メッセージタイプにより、機能(f16-11)〜(f16-12)と、機能(f16-21)〜(f16-36)との2通りに分かれる。
(f16-11)〜(f16-12) メッセージタイプが“オブジェクトのデータ変更”、“オブジェクトのデータ追加”、“オブジェクトのデータ削除”の場合、仮想トポロジ隣接計算機管理部13と物理トポロジ隣接計算機管理部14から隣接計算機IDを取り出す(f16-11)。取り出した隣接計算機IDに対してメッセージを送信するようにメッセージ送信部12に依頼する(f16-12)。
(f16-21)〜(f16-36) メッセージタイプが“計算機検索要求”の場合、仮想トポロジ隣接計算機管理部13が管理している隣接計算機が存在するか否かを調べる(f16-21)。
隣接計算機が存在しない場合(f16-21; NO)、物理トポロジ隣接計算機管理部14から隣接計算機IDを取り出し(f16-22)、その隣接計算機IDに向けてデータを送信する(f16-23)。
隣接計算機が存在する場合は(f16-21; YES)、仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報を取り出す(f16-24)。メッセージ中の仮想空間座標と仮想トポロジ担当領域情報を比較し、同領域情報内に仮想空間座標があるか否かを判定する(f16-25)。
仮想トポロジ担当領域内に仮想空間座標が存在する場合(f16-25; YES)、メッセージから送信計算機IDを取り出し(f16-26)、仮想トポロジ担当領域内全計算機管理部15から全計算機IDを取り出す(f16-27)。
取り出した全計算機IDと、自分の計算機IDとをメッセージコンテンツとする“計算機検索要求(あり)”メッセージの作成をメッセージ生成部21に依頼する(f16-28)。
生成したメッセージを送信計算機IDに向けて送信するようにメッセージ送信部12に依頼する(f16-29)。
送信計算機IDを仮想トポロジ担当領域内全計算機管理部15に登録する(f16-30)。
一方、仮想トポロジ担当領域内に仮想空間座標が存在しない場合(f16-25; NO)、仮想トポロジ隣接計算機管理部13が管理する計算機のうち、担当する仮想トポロジ担当領域が自己の管理する仮想トポロジ担当領域よりも仮想空間座標に近い隣接計算機が存在するか否かを判定する(f16-31)。
存在する場合(f16-31; YES)、隣接計算機のうち、仮想空間座標に近い仮想トポロジ担当領域を持つ隣接計算機の計算機IDを求める(f16-32)。ここで、計算機IDを求める方法は、二種類ある。
一つは、毎回、隣接計算機に“仮想トポロジ担当領域情報取得要求”メッセージを送信し、得られた“仮想トポロジ担当領域情報取得要求返信”メッセージから計算機IDを取出す方法である。
もう一つは、一度、“仮想トポロジ担当領域情報取得要求”メッセージを送信し、得られた“仮想トポロジ担当領域情報取得要求返信”メッセージの内容を、仮想トポロジ隣接計算機管理部13の隣接計算機管理テーブルに記録しておく方法である。
計算機IDを求める二種類の手法はいずれを用いても良い。求める計算機IDの数は、1つ以上であれば、ユーザの設定次第である。計算機IDを求めた後、生成したメッセージをその計算機IDに向けて送信するようにメッセージ送信部12に依頼する(f16-33)。
存在しない場合(f16-31; NO)、メッセージ中からメッセージを送信した計算機IDを取り出し(f16-34)、“計算機検索要求返信(なし)”メッセージの生成を依頼する(f16-35)。生成したメッセージを上記送信計算機IDに向けて送信するようにメッセージ送信部12に依頼する(f16-36)。
仮想トポロジ担当領域管理部17は、メッセージ受信部11、配送先決定部16及び仮想空間座標管理部20からアクセス可能となっており、仮想トポロジ担当領域保持部と単位領域指定情報管理部から構成されている。
仮想トポロジ担当領域保持部は、自計算機の仮想空間座標が属している仮想トポロジ担当領域を示すものである。示す方法は、例えばID又は座標による方式などが適用可能となっている。IDによる方式では、図7に一例を示すように、全ての仮想トポロジ担当領域に予め領域ID1〜ID12を割当てておき、その領域ID6を保持することで、仮想トポロジ担当領域を示している。IDによる方式は、指定対象が領域に限らず、仮想空間上の建物や任意形状の草原など、任意の指定対象を指定可能である。座標による方式では、図8に一例を示すように、仮想トポロジ担当領域の境界となる座標{(10,10), (10,20), (20,10), (20,20)}を保持し、仮想トポロジ担当領域を示している。
仮想トポロジ担当領域保持部は、仮想トポロジ担当領域情報要求を受けると、保持している仮想トポロジ担当領域情報を返す。また、仮想トポロジ担当領域は新規に指定してもよい。新規に仮想トポロジ担当領域を指定する場合、仮想トポロジ担当領域保持部は、仮想空間座標を単位領域指定情報管理部に入力し、得られた単位領域の境界情報を仮想トポロジ担当領域に設定する。第1及び第2の実施形態では、境界情報を仮想トポロジ担当領域に設定した後に、仮想空間シミュレータ22のシミュレーション担当領域管理部23にて同じ領域を設定する。
単位領域指定情報管理部は、仮想空間の単位領域分割方法を記述したものである。分割方法は幾つかあり、例えば仮想空間を2次元で表現した場合、図9〜図12に示す方式などが考えられる。図9はメッシュ状に区切る方式を示しており、図10は隣接するメッシュがずれている方式を示している。図11は六角形で区切る方式を示しており、図12は原則としてメッシュ状に区切り、場所によっては原則とは異なる図形で区切る方式を示している。なお、図9〜図12以外にも、仮想空間を隙間と重複が無く区切る方式であれば適用可能であることは言うまでもない。
単位領域指定情報管理部は、図9〜図12等に示すように、仮想空間単位領域を個別に指定する境界情報を管理する機能と、仮想トポロジ担当領域保持部から入力された仮想空間座標に基づいて、この座標を含む単位領域の境界情報を割り出す機能と、得られた境界情報を仮想トポロジ担当領域保持部に返す機能とをもっている。
物理ネットワーク距離測定部18は、メッセージ受信部11から受けた計算機検索要求(あり)メッセージ内に含まれる全計算機IDに基づいて、自分と相手の計算機との間の物理ネットワーク上の距離を測定するものである。
また、物理ネットワーク距離測定部18は、メッセージ送信部12にメッセージの送信を依頼する機能と、メッセージ送信時からの経過時間を物理ネットワーク距離として測定する時刻計測部(図示せず)と、測定結果のうち、最短の物理ネットワーク距離をもつ計算機の計算機IDを物理トポロジ隣接計算機管理部14に書込む機能とをもっている。
詳しくは物理ネットワーク距離測定部18は、図13に示すように、処理機能(f18-1)〜(f18-7)を有している。すなわち、物理ネットワーク距離測定部18は、メッセージ生成部21に“物理ネットワーク距離測定要求”メッセージの生成を依頼する(f18-1)。作成されたメッセージからメッセージIDを取り出し、メッセージIDを記録し、時刻の計測を開始する(f18-2)。
次に、物理ネットワーク距離測定対象の計算機に向けて“物理ネットワーク距離測定要求”メッセージの送信をメッセージ送信部12に依頼する(f18-3)。
“物理ネットワーク距離測定要求返信”メッセージを受けると(f18-4)、メッセージIDを取り出し(f18-5)、得られたメッセージIDが、記録済のメッセージIDと同一である旨を確認する(f18-6)。同一のメッセージIDの場合(f18-6; YES)、時刻の計測を終了して経過時間を算出し、この経過時間を物理ネットワーク距離として算出する(f18-7)。この算出方式は、ラウンド・トリップ・タイム(round−trip time)による。物理ネットワーク距離の算出方式は、他に、現在の空き帯域幅、ホップ数などを用いる方法がある。
ランデブー計算機リスト19は、新規の計算機をトポロジに参加させるとき、最初に接続する計算機IDを管理するものであり、メッセージ生成部21から参照可能となっている。ランデブー計算機リスト19は、予め計算機に記述されていてもよく、接続時に外部から読み込んでもよい。
仮想空間座標管理部20は、計算機と一対一に対応する仮想空間上での座標を管理するものであり、オブジェクト管理部24及びメッセージ生成部21からアクセス可能となっている。オンラインゲームなどの場合、計算機のユーザが動作を制御するアバターの座標が管理される。
メッセージ生成部21は、ランデブー計算機リスト19、仮想空間座標管理部20又はオブジェクト管理部24を参照しつつ、各部11,16,18,21等から要求されたメッセージを生成し、得られたメッセージをメッセージ送信部12又は配送先決定部16に送出する機能をもっている。
ここでは、生成可能なメッセージの種類として、“オブジェクトのデータ変更”、“オブジェクトのデータ追加”、“オブジェクトのデータ削除”、“物理ネットワーク距離測定要求”、“物理ネットワーク距離測定要求返信”、“計算機検索要求”、“計算機検索要求返信(あり)”、“計算機検索要求返信(なし)”、“仮想トポロジ担当領域内全計算機検索要求”、“仮想トポロジ担当領域内全計算機検索要求返信”、“物理トポロジ登録要求”、“仮想トポロジ登録要求”、“仮想トポロジ担当領域情報取得要求”、“仮想トポロジ担当領域情報取得要求返信”を想定している。各メッセージの詳細は後述する。
仮想空間シミュレータ22は、仮想空間の物理演算、仮想空間内のオブジェクト管理を行う部分であり、シミュレーション担当領域管理部23及びオブジェクト管理部24を備えている。シミュレーション担当領域管理部23は、シミュレーション担当領域を示す情報を管理している。
オブジェクト管理部24は、仮想空間上に存在する様々なオブジェクトのデータを管理するものであり、オブジェクトのデータがメッセージ受信部11から入力可能であり、仮想空間座標管理部20及びメッセージ生成部21に出力可能となっている。オブジェクト管理部24は、図14に示すように、オブジェクト管理テーブル24T、オブジェクト作成部24a、オブジェクト変更部24b及びオブジェクト削除部24cを備えている。
オブジェクト管理テーブル24Tは、オブジェクトを一意に識別するオブジェクトID毎に、オブジェクトの状態を保持するものであり、各部24a〜24cから読出/書込可能となっている。ここで、オブジェクトIDは十分に長い数値であるとする。オブジェクトの状態は、例えばオブジェクトの仮想空間上の座標、オブジェクトの重さなどがある。
オブジェクト作成部24aは、オブジェクトID毎のオブジェクトの状態を作成し、オブジェクト管理テーブル24Tに書込むものである。
オブジェクト変更部24bは、オブジェクト管理テーブル24T内のオブジェクトの状態を変更するものである。
オブジェクト削除部24cは、オブジェクト管理テーブル24T内のオブジェクトID毎のオブジェクトの状態を削除するものである。
仮想空間シミュレータ22は、“オブジェクトのデータ変更”メッセージを受けると、メッセージ中で指定されたオブジェクトのデータを変更し、“オブジェクトのデータ作成”メッセージを受けると、メッセージ中で指定されたオブジェクトのデータを作成し、“オブジェクトのデータ削除”メッセージを受けると、メッセージ中で指定されたオブジェクトのデータを削除する。
仮想空間シミュレータ22は、これらのデータ操作(変更、作成、削除)の前に、担当するシミュレーション担当領域とオブジェクトの座標とを比較し、シミュレーション担当領域内にオブジェクトの座標があり、かつ仮想トポロジ隣接計算機管理部13にて隣接計算機を管理している場合のみデータ操作を実行する構成としてもよい。この構成の場合、仮想トポロジがつながっている計算機であり、かつ、ターゲットとなるオブジェクトが自分のシミュレーション担当領域内であるような計算機しかオブジェクトのデータを変更できない。
次に、各メッセージについて説明する。メッセージは、図15に示すように、メッセージヘッダ部分とメッセージコンテンツ部分に分類される。メッセージヘッダ部分は、どのメッセージも必ず持つ。メッセージヘッダ部分は、メッセージID(メッセージを識別するID)、メッセージタイプ(メッセージの種類を示す値)、送信計算機ID(メッセージを送信した計算機を示すID)を持つ。
メッセージIDは、一意性を維持する観点から、十分な長さのランダムな数値が使用可能となっている。他には、メッセージIDの一意性を維持する観点から、メッセージ生成部21内にカウンタを設け、メッセージを生成する毎にカウンタを1増やし、計算機IDとカウンタの値を直列化してメッセージIDを構成しても良い。
次に、メッセージコンテンツ部分について説明する。メッセージコンテンツは、メッセージタイプに応じて、記述される情報が異なる。
メッセージタイプが“オブジェクトのデータ変更”のメッセージは、オブジェクトのデータ変更を要求するメッセージで用いられる。メッセージコンテンツは、変更対象オブジェクトを識別するオブジェクトIDと、変更内容が記述される。変更内容は、例えば「座標値」、「重さ」といったオブジェクトの属性の種類の名称と、「(100,200)」、「60kg」といった属性の変更後の値とである。
メッセージタイプが“オブジェクトのデータ追加”のメッセージは、オブジェクトの新規作成を要求するメッセージで用いられる。メッセージコンテンツは、追加対象オブジェクトを識別するオブジェクトIDと、そのオブジェクトの属性を示す内容とが記述される。属性を示す内容は、“オブジェクトのデータ変更”の例の変更内容と同様である。
メッセージタイプが“オブジェクトのデータ削除”のメッセージは、オブジェクトの削除を要求するメッセージで用いられる。メッセージコンテンツは、削除対象のオブジェクトを識別するオブジェクトIDである。
メッセージタイプが“物理ネットワーク距離測定要求”のメッセージは、物理ネットワークの距離を測定する際に用いられる。メッセージコンテンツは、メッセージを発信した計算機を識別するID(IPアドレス等)が記述される。
メッセージタイプが“物理ネットワーク距離測定要求返信”のメッセージは、物理ネットワーク距離測定要求メッセージを受信した計算機により、そのメッセージに対する返信用のメッセージとして用いられる。メッセージコンテンツは、対応する“物理ネットワーク距離測定要求”メッセージのメッセージIDが記述される。
メッセージタイプが“計算機検索要求”のメッセージは、新規の計算機がトポロジに参加するときに用いる。メッセージコンテンツには、仮想空間座標が記述される。
メッセージタイプが“計算機検索要求返信(あり)”のメッセージは、計算機検索要求メッセージに記述された仮想空間座標が、自己が管理する仮想トポロジ担当領域内に含まれるとき、当該仮想トポロジ担当領域内の全ての計算機を識別する全ての計算機IDをメッセージの送信者に伝えるために用いられる。メッセージコンテンツには、対応する“計算機検索要求”メッセージのメッセージIDと、仮想トポロジ担当領域にある全計算機のIDとが入っている。
メッセージタイプが“計算機検索要求返信(なし)”のメッセージは、計算機検索要求メッセージに記述された仮想空間座標が、自己が管理する仮想トポロジ担当領域内に含まれず、且つ、自己の仮想トポロジの隣接計算機中に自己よりも仮想空間座標に近い仮想トポロジ担当領域を管理する計算機が無い場合、その旨をメッセージ送信者に知らせるために用いられる。メッセージコンテンツには、対応する“計算機検索要求”メッセージのメッセージIDが入っている。
次に、以上のように構成された計算機群の動作を図16乃至図19を用いて説明する。
(新規に計算機が参加する場合)
始めに、新規に計算機がトポロジに参加するときの動作を図16のフローチャートを用いて述べる。新規にトポロジに参加する計算機(以下、新規参加計算機という)は、仮想空間座標を初期値に設定する(ST1)。この初期値は、ユーザが指定してもよいし、計算機にて予め決まっている値や、外部の仮想空間座標初期値設定用のアプリケーションから読み込んだ値でもよい。設定した初期値は、仮想空間座標管理部20にて保持される。
始めに、新規に計算機がトポロジに参加するときの動作を図16のフローチャートを用いて述べる。新規にトポロジに参加する計算機(以下、新規参加計算機という)は、仮想空間座標を初期値に設定する(ST1)。この初期値は、ユーザが指定してもよいし、計算機にて予め決まっている値や、外部の仮想空間座標初期値設定用のアプリケーションから読み込んだ値でもよい。設定した初期値は、仮想空間座標管理部20にて保持される。
新規参加計算機は、仮想空間上の自己の座標値を含む計算機検索要求メッセージをメッセージ生成部21にて生成する(ST2)。
新規参加計算機は、ランデブー計算機リスト19で管理される計算機IDに向けて計算機検索要求メッセージをメッセージ送信部12から送信する(ST3)。
新規参加計算機は、座標値を含む仮想空間単位領域における仮想トポロジ上の計算機、又は座標値を含む仮想空間単位領域に最も近い仮想空間単位領域における仮想トポロジ上の計算機からメッセージ受信部11にてメッセージを受信する(ST4)。その後、このメッセージを解析して計算機検索要求(あり)か計算機検索要求(なし)かを識別する。
ステップST4にて計算機検索要求(あり)の場合を述べる。
計算機検索要求(あり)メッセージは、新規参加計算機の座標値を含む仮想空間単位領域を担当する全ての計算機の計算機IDを含むものである。
新規参加計算機は、このメッセージコンテンツから該当する全ての計算機IDを取り出す(ST5)。新規参加計算機は、いずれかの計算機IDで示す計算機に対し、担当する仮想空間単位領域の境界情報を要求し、得られた境界情報を仮想トポロジ担当領域管理部17にて管理する(ST6)。
取り出した計算機ID全てに対して物理ネットワーク距離測定部18にて距離を測定する(ST7)。しかる後、全ての測定結果のうち、最短の物理ネットワーク距離をもつ計算機の計算機IDを物理トポロジ隣接計算機管理部14にて隣接計算機として登録し、登録した計算機に対して物理トポロジ登録要求を送信する。
一方、ステップST4にて計算機検索要求(なし)の場合を述べる。
計算機検索要求(無し)メッセージは、新規参加計算機の座標値を含む仮想空間単位領域に最も近い仮想空間単位領域における仮想トポロジ上の隣接計算機から送信され、当該隣接計算機の計算機IDを含むものである。
新規参加計算機は、仮想トポロジ担当領域管理部17で仮想空間座標を含む単位領域を仮想トポロジ担当領域として設定する(ST8)。
新規参加計算機は、仮想トポロジ隣接計算機管理部13にて、受信メッセージを送信した計算機を隣接計算機として登録する(ST9)。
新規参加計算機は、“仮想トポロジ登録要求”メッセージをメッセージ生成部21にて生成し、得られた“仮想トポロジ登録要求”メッセージを、ステップST4のメッセージを送信してきた計算機にメッセージ送信部12を介して送信する。
以上により、計算機が新規参加する場合の動作を終了する。続いて、具体例1,2を述べる。
(具体例1)
始めに、具体例の状況を述べる。図17(a)は2次元の仮想空間にアバターa〜eがいる状況を示している。枠線は仮想空間を分割した単位領域を示している。
始めに、具体例の状況を述べる。図17(a)は2次元の仮想空間にアバターa〜eがいる状況を示している。枠線は仮想空間を分割した単位領域を示している。
アバターaは計算機Aに管理され、アバターbは計算機Bに管理され、...、アバターgは計算機Gに管理される。計算機A〜Gのトポロジは図17(b)に示している。
計算機B−C,C−F,F−B間は仮想トポロジで結ばれており、計算機A−B,C−D,D−E,F−G間は物理トポロジで結ばれている。
この状態で、新規の計算機Pが制御するアバターpが仮想空間上の座標位置(420,230)に新たに出現したとする。計算機Pのランデブー計算機リスト19には計算機Aが設定されていたとする。
計算機Pは、ランデブー計算機リスト19を参照し、計算機Aに計算機検索要求メッセージを送信する。ここで、計算機検索要求メッセージは、計算機Pにおける仮想空間上の座標値と計算機ID(物理ネットワーク上の送信元アドレス情報)とを含んでいる。
計算機Aは、計算機検索要求メッセージを受信すると、仮想トポロジ隣接計算機管理部13に隣接計算機IDが無いので、メッセージ受信部11の処理(f11-1〜f11-5,f11-21)及び配送先決定部16の処理(f16-1,f16-2,f16-21〜f16-23)により、物理トポロジ隣接計算機の計算機Bにメッセージを配送する。
計算機Bは計算機検索要求メッセージを受信する。このとき、計算機Bは、仮想トポロジ隣接計算機管理部13に隣接計算機IDがあるので、仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報である境界座標(200,200),(400,200),(400,0),(200,0)を取り出す。このとき、境界座標は左上、右上、右下、左下の順で表記するものとする。
計算機Bは、計算機検索要求メッセージ中の仮想空間座標(420,230)がこの仮想トポロジ担当領域の範囲内に含まれるか否かを判定し、含まれないので、仮想トポロジ隣接計算機の中で、仮想空間座標(420,230)に最も近い領域を管理している計算機を判定する。
計算機Bの仮想トポロジの隣接計算機は、計算機C,Fであり、仮想空間座標(420,230)により近い領域を持つのは計算機Cである。そのため、計算機Bは、計算機Cに向けて計算機検索要求メッセージを送信する。
計算機Cは、計算機検索要求メッセージを受信する。計算機Cは、仮想トポロジ隣接計算機管理部13中に隣接計算機IDを持つため、仮想トポロジ担当領域部から仮想トポロジ担当領域座標(300,400),(500,400),(500,200),(300,200)を取り出す。計算機検索要求メッセージ中の仮想空間座標(420,230)はこの領域内に含まれる。
従って、計算機Cは、仮想トポロジ担当領域内全計算機管理部15に管理された計算機D,Eの各計算機IDと自己の計算機IDとをメッセージコンテンツとした計算機検索要求(あり)メッセージを作成し、計算機Pに送信する。計算機Cは計算機Pを仮想トポロジ担当領域内全計算機管理部15に追加登録する。
計算機Pは、計算機Cから計算機検索要求(あり)メッセージを受信する。しかる後、計算機Pは、このメッセージのメッセージコンテンツから計算機C,D,Eの計算機IDを取得し、各々に対して物理ネットワーク距離測定部18にてP−C間,P−D間及びP−E間の物理ネットワーク距離を測定する。この結果、P−D間の物理ネットワーク距離が最も短いとする。
計算機Pは、最短の物理ネットワーク距離の計算機Dを物理トポロジ隣接計算機として登録し、計算機Dへ物理トポロジ登録要求メッセージを送信する。計算機Dは、物理トポロジ登録要求メッセージを受信し、物理トポロジ隣接計算機管理部14にて計算機Pを登録する。以上が、計算機Pが参加した場合の具体例1である。
(具体例2)
次に、図17の状況において、新規の計算機Qが制御するアバターqが仮想空間上の座標値(550,330)に新たに出現したとする。新規の計算機Qによるトポロジへの参加の処理を述べる。計算機Qのランデブー計算機リスト19には計算機Aが設定されていたとする。
次に、図17の状況において、新規の計算機Qが制御するアバターqが仮想空間上の座標値(550,330)に新たに出現したとする。新規の計算機Qによるトポロジへの参加の処理を述べる。計算機Qのランデブー計算機リスト19には計算機Aが設定されていたとする。
計算機Qでは、ランデブー計算機リスト19を参照し、計算機Aに計算機検索要求メッセージを送信する。計算機Aは、計算機検索要求メッセージを受信する。受信した計算機Aは仮想トポロジ隣接計算機管理部13中の隣接計算機を持たないため、物理トポロジ隣接計算機である計算機Bでメッセージを配送する。
計算機Bは計算機検索要求メッセージを受信する。計算機Bは仮想トポロジ隣接計算機管理部13中に隣接計算機を持つため、仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報である境界座標(200,200),(400,200),(400,0),(200,0)を取り出す。
計算機検索要求メッセージ中の仮想空間座標(550,330)はこの仮想トポロジ担当領域内ではないので、仮想トポロジ隣接計算機の中から、仮想空間座標(550,330)に最も近い領域を管理している計算機を探す。
計算機Bの仮想トポロジの隣接計算機は、計算機C,Fであり、仮想空間座標(550,330)により近い領域を持つのは計算機Cである。よって、計算機Bは計算機検索要求メッセージを計算機Cに送信する。
計算機Cは計算機検索要求メッセージを受信する。計算機Cは仮想トポロジ隣接計算機管理部13中に隣接計算機を持つため、仮想トポロジ担当領域部から仮想トポロジ担当領域座標(300,400),(500,400),(500,200),(300,200)を取り出す。計算機検索要求メッセージ中の仮想空間座標(550,330)はこの領域内に含まれない。そのため、計算機Cは、仮想トポロジ計算機の中で仮想空間座標(550,330)に最も近い領域を管理している計算機を判定する。
計算機Cの仮想トポロジの隣接計算機は計算機B,Fである。しかし、計算機C,B,Fの中で仮想空間座標に最も近い領域を管理するのは計算機Cである。
そこで計算機Cは、自己の計算機IDを含む計算機検索要求返信(なし)メッセージを作成し、計算機Qに送信する。
計算機Qは、計算機検索要求返信(なし)メッセージを受信すると、仮想トポロジ担当領域管理部17に新しい領域を担当するように依頼する。
仮想トポロジ担当領域管理部17はアバターqが存在する仮想空間単位領域の境界情報を単位領域指定情報管理部から取り出し、仮想トポロジ担当領域管理部17で保持する。
次に、計算機Qは、計算機検索要求返信(なし)メッセージを送信した計算機Cを仮想トポロジ隣接計算機管理部13にて登録し、計算機Cに向けて隣接トポロジ登録要求メッセージを送信する。
計算機Cは、隣接トポロジ登録要求メッセージを受信し、計算機Qを仮想トポロジ隣接計算機管理部13にて登録する。
以上が、計算機Qが参加した場合の具体例2である。以上により、計算機が新規参加した場合の説明を終了する。次に、オブジェクトを新規作成した場合の動作を説明する。
(オブジェクトを新規作成した場合)
次に、“オブジェクトのデータ追加”メッセージを送信する処理の過程を説明する。
次に、“オブジェクトのデータ追加”メッセージを送信する処理の過程を説明する。
オブジェクトを新規作成した計算機は、オブジェクト管理部24に新規にオブジェクトのデータを追加した後、トポロジ全体にメッセージを伝搬させる。図18にオブジェクトを新規作成した場合のフローチャートを示す。
計算機では、仮想空間シミュレータ22がオブジェクトを新規作成する(ST21)。新規作成されたオブジェクトは、オブジェクト管理部24の中のオブジェクト作成部24aにてオブジェクト管理テーブル24Tに登録される。
計算機は“オブジェクトのデータ追加”メッセージをメッセージ生成部21にて作成する(ST22)。メッセージコンテンツは、新規作成されたオブジェクトの状態が記述される。
計算機は、作成したメッセージのメッセージIDをメッセージ受信部11のメッセージID記録部にて記録する(ST23)。
計算機は、仮想トポロジ隣接計算機管理部13が管理する隣接計算機の計算機IDを配送先決定部16が読出すと共に、この読出した計算機IDに向けて、メッセージ送信部12が“オブジェクトのデータ追加”メッセージを送信する(ST24)。
計算機は、物理トポロジ隣接計算機管理部14が管理する隣接計算機の計算機IDを配送先決定部16が読出すと共に、この読出した計算機IDに向けて、メッセージ送信部12が“オブジェクトのデータ追加”メッセージを送信する(ST25)。
以上により、オブジェクトを新規作成した場合の処理を終了する。なお、オブジェクトの変更、オブジェクトの削除が行われた場合は、作成されるメッセージが異なるだけで、それ以外の処理内容は同じである。
(オブジェクトのデータ追加メッセージを配送する場合)
次に、“オブジェクトのデータ追加”メッセージを配送する処理の流れを図19を用いて述べる。
次に、“オブジェクトのデータ追加”メッセージを配送する処理の流れを図19を用いて述べる。
計算機は、“オブジェクトのデータ追加”メッセージをメッセージ受信部11が受信する(ST31)。
計算機は、メッセージのメッセージIDを取り出し(ST32)、メッセージID記録部に同一のメッセージIDが記録されているか否かを判定する(ST33)。
ステップST33の判定の結果、すでに記録されている場合、配送処理を終了する(ST34)。
一方、ステップST33の判定の結果、まだ記録されていない場合、メッセージID記録部にて受信したメッセージ内のメッセージIDを記録する(ST35)。
しかる後、計算機では、オブジェクト管理部24のオブジェクト作成部24aにてメッセージのメッセージコンテンツ部分で指定されたオブジェクトを作成する(ST36)。
また、計算機では、配送先決定部16にて、仮想トポロジ隣接計算機管理部13と物理トポロジ隣接計算機管理部14が管理している隣接計算機の計算機IDを示す隣接計算機リストを取り出す(ST37)。
計算機では、メッセージ送信部12にて、先ほど取り出した隣接計算機リストの計算機IDへメッセージを送信する(ST38)。
以上により、オブジェクトのデータ追加メッセージの配送処理が完了する。
上述したように第1の実施形態によれば、仮想空間座標だけでなく、物理ネットワーク距離も想定してトポロジを構成する。具体的には図1に示したように、仮想空間を分割してなる仮想空間単位領域を代表の計算機が接続する仮想トポロジと、仮想空間単位領域内で代表の計算機及び残りの計算機を接続する物理トポロジとからなる接続形態をとっている。
これにより、更新(新規作成、追加、変更、削除等)のためのメッセージを全ての計算機に伝搬させる際に、各計算機間では、仮想空間上の座標値がある閾値未満に収まる仮想空間単位領域内の場合、ステップST25に述べたように、物理ネットワークを元にした物理トポロジにてメッセージを配送するので、従来とは異なり、仮想空間上で相手との関係動作が遅延する問題が無く、また、物理ネットワーク上でデータを遠回りして配送する問題が無い。また、遠回りしないことに伴い、ネットワーク上の通信量を低減することができる。
一方、仮想空間上の座標位置がある閾値を越える仮想空間単位領域外の場合、ステップST24に述べたように、仮想空間を元にした仮想トポロジにてメッセージを配送するので、物理トポロジを形成する計算機を仮想空間単位領域内の計算機のみに限定でき、従来とは異なり、物理ネットワーク距離を測定するための通信量を著しく低減させることができる。また、物理トポロジの構築対象を仮想空間単位領域内の計算機のみに限定するので、低いコストでトポロジを構築できる。
このように本実施形態は、物理トポロジ及び仮想トポロジを組合せて用いる構成により、距離測定用の通信量を低減しつつ、P2P方式における各計算機間のデータ配送の遠回りや遅延を解消でき、データ更新を迅速に実行することができる。
例えば、草原などの視野が開けた場所に多数のアバターがいる状況を考える。あるアバターが「手を挙げる」という動作を反映させる場合、視界の中にいるアバター群に対しては、距離の小さいアバターから順にデータを反映させるよりも、視界の中にいるアバター群全体に迅速にデータを送信する方が好ましい。つまり、ある閾値以下の距離の場合、仮想空間上の近いアバターから順次、迅速にデータを送ることよりも、閾値以下の距離のアバター全体に迅速にデータを送ることが重要である。
本実施形態では、ある閾値以下では物理ネットワークを元にしたトポロジ、ある閾値以上では仮想空間を元にしたトポロジにてデータを配送するので、このような状況でも、視界の中にいるアバター群全体に迅速にデータを送信することができる。
また、本実施形態によれば、ステップST1〜ST9や具体例1,2に示すように、新規参加計算機がトポロジに参加することができる。本実施形態によれば、ステップST21〜ST25に示すように、オブジェクトを更新するためのメッセージをトポロジ全体に伝搬させることができる。本実施形態によれば、ステップST31〜ST38に示すように、オブジェクトのデータ追加のメッセージを伝搬させることができる。
なお、第1の実施形態を変形し、物理トポロジ隣接計算機管理部14を省略することが可能である。この変形例は、物理トポロジ隣接計算機管理部14が管理する隣接計算機が無く、また、“物理トポロジ登録要求”メッセージに対して何も処理をしないという点以外は第1の実施形態と同じものである。
また同様に、第1の実施形態を変形し、仮想トポロジ隣接計算機管理部13を省略することも可能である。この変形例は、仮想トポロジ隣接計算機管理部13が管理している隣接計算機が無く、また、“物理トポロジ登録要求”メッセージに対して何も処理をしないという点以外は第1の実施形態と同じものである。
また、本実施形態は、仮想空間上にアバターが存在しない、つまり、管理する計算機が一つも存在しない仮想空間単位領域を想定して説明を行ってきたが、全ての単位領域に必ずアバターが存在する、すなわち、全ての仮想空間単位領域に対して必ず管理している計算機が存在する実施形態も可能である。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態は、第1の実施形態の変形例であり、対象領域が指定されているメッセージを伝搬させるものである。
次に、本発明の第2の実施形態について説明する。本実施形態は、第1の実施形態の変形例であり、対象領域が指定されているメッセージを伝搬させるものである。
詳しくは、仮想空間を扱うアプリケーションでは、仮想空間の都合上、オブジェクトのデータ変更、追加、削除のメッセージが仮想空間内の一部しか必要のない場合がある。この場合、メッセージの配送先を仮想空間の一部に限定する方が全体のメッセージのトラフィック量を低減できる利点がある。本実施形態はこのような場合を説明する。
具体的には第2の実施形態では、第1の実施形態とほぼ同等の仕組みを有し、次の2点で異なる。
1)データ変更/追加/削除メッセージのメッセージコンテンツに配送領域情報が含まれる点。
2)配送先決定部16がデータ変更/追加/削除メッセージを受けたとき、配送領域情報に基づいて配送先を決定する点。
以下、この2点を主に説明する。
上記1)に関し、“オブジェクトのデータ変更”メッセージのメッセージコンテンツは、変更するオブジェクトを識別するオブジェクトIDと、オブジェクトの変更内容と、メッセージの配送領域情報である。
“オブジェクトのデータ追加”メッセージのメッセージコンテンツは、追加するオブジェクトを識別するオブジェクトIDと、追加するオブジェクトの内容と、メッセージの配送領域情報である。
“オブジェクトのデータ削除”メッセージのメッセージコンテンツは、削除対象のオブジェクトを識別するオブジェクトIDと、メッセージの配送領域情報である。
ここで、配送領域情報は仮想空間上の領域を指示する情報であり、指示する方法は任意である。例えば、中心座標と半径を指定する方法、領域の矩形の四隅の座標値を列挙する方法、単位領域の領域IDを指定する方法などがある。
次に、配送先決定部16がオブジェクトのデータ変更/追加/削除メッセージを受けたときの処理を述べる。
配送先決定部16は、メッセージ受信部11により受信されたメッセージに含まれる配送領域情報に基づいて仮想トポロジ隣接計算機管理部13及び物理トポロジ隣接計算機管理部14を参照し、当該配送領域情報に対応する境界情報を持つ仮想空間単位領域内の隣接計算機の計算機IDを仮想トポロジ隣接計算機管理部13又は物理トポロジ隣接計算機管理部14から読出す機能と、読出した計算機IDに向けてメッセージを配送するようにメッセージ送信部12に依頼する機能とをもっている。
詳しくは配送先決定部16は、図20に示すように、機能(f16-41)〜(f16-47)の部分が図6と異なる。この異なる部分を主に述べる。
(f16-41) メッセージから配送領域情報を取り出す。
(f16-42) 仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報を取り出す。
(f16-43) 仮想トポロジ担当領域が配送領域を含むか否かを判別する。
(f16-42) 仮想トポロジ担当領域管理部17から仮想トポロジ担当領域情報を取り出す。
(f16-43) 仮想トポロジ担当領域が配送領域を含むか否かを判別する。
(f16-43; YES) 含んでいる場合
(f16-44) 物理トポロジ隣接計算機管理部14から隣接計算機IDを取り出す。
(f16-45) 隣接計算機IDにメッセージを送信するようにメッセージ送信部12に依頼し、機能(f16-46)に進む。
(f16-44) 物理トポロジ隣接計算機管理部14から隣接計算機IDを取り出す。
(f16-45) 隣接計算機IDにメッセージを送信するようにメッセージ送信部12に依頼し、機能(f16-46)に進む。
(f16-43; NO) 含んでいない場合
(f16-46) 仮想トポロジ隣接計算機管理部13から隣接計算機IDと領域情報を取得する。
(f16-47) 配送領域を含んでいる、もしくは、配送領域に最も近い隣接計算機IDを求め、その隣接計算機IDにメッセージを配送するようにメッセージ送信部12に依頼する。
(f16-46) 仮想トポロジ隣接計算機管理部13から隣接計算機IDと領域情報を取得する。
(f16-47) 配送領域を含んでいる、もしくは、配送領域に最も近い隣接計算機IDを求め、その隣接計算機IDにメッセージを配送するようにメッセージ送信部12に依頼する。
(具体例)
図17の状況(アバターp,qは参加していない状態)において、アバターaを管理している計算機Aがトポロジにメッセージを送信した場合を述べる。
図17の状況(アバターp,qは参加していない状態)において、アバターaを管理している計算機Aがトポロジにメッセージを送信した場合を述べる。
計算機Aは、図15に示した如き、オブジェクトのデータ追加メッセージを生成したとする。このデータ追加メッセージは、オブジェクトIDが102であり、オブジェクトの状態が位置(400,300)及び重さ50gであり、配送領域が(300,400),(500,400),(500,200),(300,200)であるオブジェクトを追加する内容である。
計算機Aの隣接計算機としては、物理トポロジ隣接計算機が計算機Bであり、仮想トポロジ隣接計算機が無い。このため、計算機Aは、データ追加メッセージを計算機Bに送信する。
計算機Bは、メッセージ受信部11にてこのメッセージを受信する。計算機Bは、自分の仮想トポロジ担当領域が配送領域に含まれていないので、仮想トポロジ隣接計算機である計算機C,計算機Fの仮想トポロジ担当領域を取り出す。
計算機Cの仮想トポロジ担当領域は(300,400),(500,400),(500,200),(300,200)である。計算機Fの仮想トポロジ担当領域は(100,400),(300,400),(300,200),(100,200)である。計算機Fよりも計算機Cの方が配送領域に近いので、計算機Bはメッセージを計算機Cに送信する。
計算機Cは自分の仮想トポロジ担当領域が配送領域を含むので、物理トポロジ隣接計算機である計算機Dにメッセージを送信する。計算機Dは、自分の仮想トポロジ担当領域が配送領域を含むので計算機Eにメッセージを送信する。
以上により、配送領域情報を含むメッセージの配送処理が完了する。
以上により、配送領域情報を含むメッセージの配送処理が完了する。
上述したように本実施形態によれば、第1の実施形態の作用効果に加え、メッセージが仮想空間内の一部しか必要のない場合、メッセージの配送先を仮想空間の一部に限定するので、通信量を低減させることができる。
また、配送領域が指定されたメッセージを配送する際に、メッセージの発信計算機から配送領域にたどり着くまでは仮想トポロジ上を配送し、配送領域に着くと、物理トポロジ上で配信を行うので、効率よくメッセージを配送領域に伝搬させることができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。本実施形態は、第1の実施形態の変形例であり、シミュレーション担当領域を動的に変更させるものである。
次に、本発明の第3の実施形態について説明する。本実施形態は、第1の実施形態の変形例であり、シミュレーション担当領域を動的に変更させるものである。
詳しくは、第1の実施形態は、各計算機のシミュレーション担当領域に変更が無い。これに対し、第3の実施形態はシミュレーション担当領域を動的に変更させる。但し、仮想トポロジ担当領域には変更が無い。
始めに概要を図21に示す例により述べる。図21(a)は、計算機a〜fが各々のシミュレーション担当領域を管理している際に、計算機pが計算機dの管理下のシミュレーション担当領域に参加してきた状況を示している。
計算機dは、計算機pの参加により、図21(b)に示すように、自己が担当するシミュレーション担当領域を二分割し、得られた領域のうち、計算機pが属する領域を計算機pの管理にし、残りの領域を自己が管理する。
このように第3の実施形態は、新たに計算機がシミュレーション担当領域に入ると、シミュレーション担当領域を分割し、新たな計算機が属する方のシミュレーション領域を新たな計算機に担当させる形態である。
かかる第3の実施形態は、次の2点で第1及び第2の実施形態と異なる。
1)メッセージ生成部21は“シミュレーション担当領域取得要求”メッセージと、“シミュレーション担当領域取得要求返信”メッセージを生成する点。
2)配送先決定部16は、“計算機検索要求”メッセージを受けたときの図6に示す機能(f16-26),(f16-27)の間に図22に示す機能(f16-26-1)〜(f16-26-5)を有する点。
以下、この2点を主に説明する。
1)“シミュレーション担当領域取得要求”メッセージ及び“シミュレーション担当領域取得要求返信”メッセージは、他のメッセージと同様に、メッセージヘッダ部分とメッセージコンテンツ部分からなる。
1)“シミュレーション担当領域取得要求”メッセージ及び“シミュレーション担当領域取得要求返信”メッセージは、他のメッセージと同様に、メッセージヘッダ部分とメッセージコンテンツ部分からなる。
メッセージヘッダ部分は、他のメッセージと同様に、メッセージID、メッセージタイプ、メッセージ送信計算機ID、を持つ。メッセージタイプは、それぞれ“シミュレーション担当領域取得要求”、“シミュレーション担当領域取得要求返信”である。
“シミュレーション担当領域取得要求”のメッセージコンテンツは空である。
“シミュレーション担当領域取得要求返信”のメッセージコンテンツは、シミュレーション担当領域情報である。例えば、シミュレーション担当領域が矩形である場合は、その四隅の座標値が入っている。
2)配送先決定部16は、前述した機能に加え、メッセージに含まれる座標値が、担当している仮想空間単位領域に含まれるとき、仮想トポロジ担当領域内全計算機管理部15内の各計算機IDに向けて、仮想空間上のシミュレーション担当領域情報を要求し、各シミュレーション担当領域情報を受信する機能と、各シミュレーション担当領域情報のうち、メッセージに含まれる座標値を含むシミュレーション担当領域情報を選択する機能と、選択したシミュレーション担当領域情報が示すシミュレーション担当領域を、メッセージに含まれる座標値に基づいて二分割し、この座標値を含む第1シミュレーション担当領域と、残りの第2シミュレーション担当領域とを得る機能と、第1シミュレーション担当領域を示す第1シミュレーション担当領域情報をメッセージの送信元に返信するようにメッセージ送信部12に依頼する機能と、第2シミュレーション担当領域を示す第2シミュレーション担当領域情報を、選択されたシミュレーション領域情報の送信元に返信するようにメッセージ送信部12に依頼する機能とをもっている。
詳しくは配送先決定部16は、図22に示すように、図6の破線矢印部分に追加する機能をもっている。すなわち、図22は、配送先決定部16が計算機検索要求のメッセージを受けた際に、仮想トポロジ隣接計算機管理部13が管理している隣接計算機が存在し、かつ、仮想トポロジ担当領域内にメッセージ中に示された仮想空間座標が存在する場合の処理に対して追加する処理を示している。
(f16-26-1) 仮想トポロジ担当領域内全計算機管理部15から自分が管理している計算機IDを取り出す。
(f16-26-2) 取り出した全計算機IDが示す計算機群から各計算機が持つシミュレーション担当領域の情報を取得する。取得方法は、例えば、対象計算機に対して、シミュレーション担当領域の取得要求を送信し、その返信により取得する方式がある。
(f16-26-3) 仮想空間座標が、取得したシミュレーション担当領域のどれに含まれているかを検索する。そして、含まれていたシミュレーション担当領域を管理している計算機を計算機Xとする。
(f16-26-4) 計算機Xが管理するシミュレーション担当領域を二分する。このとき、二分する方法としては、例えば次の方法がある。
計算機Xの仮想空間座標と、メッセージを送信してきた計算機の仮想空間座標との中点を求める。計算機Xの持つシミュレーション担当領域の示す図形に関し、図形に含まれる線分のうちで、最も長く、かつ、中点を通る線分を求める。その線分に対して、垂直に交わる線分を求め、その線分にて、図形を二分する。
(f16-26-5) 二分した領域の内、送信計算機IDを持つ計算機の仮想空間座標を含む方の領域を、送信計算機のシミュレーション担当領域として設定する。そして、含まない方の領域を、計算機Xのシミュレーション担当領域として設定する。
以上のような構成によれば、第1の実施形態の作用効果に加え、新規参加計算機Xに既存のシミュレーション担当領域の一部を分担させることができる。
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
10…計算機、11…メッセージ受信部、12…メッセージ送信部、13…仮想トポロジ隣接計算機管理部、13T,14T…隣接計算機管理テーブル、13a,14a…隣接計算機追加部、13b,14b…隣接計算機変更部、13c,14c…隣接計算機削除部、14…物理トポロジ隣接計算機管理部、15…仮想トポロジ担当領域内全計算機管理部、16…配送先決定部、17…仮想トポロジ担当領域管理部、18…物理ネットワーク距離測定部、19…ランデブー計算機リスト、20…仮想空間座標管理部、21…メッセージ生成部、22…仮想空間シミュレータ、23…シミュレーション担当領域管理部、24…オブジェクト管理部、24T…オブジェクト管理テーブル、24a…オブジェクト作成部、24b…オブジェクト変更部、24c…オブジェクト削除部。
Claims (11)
- 仮想空間を部分的に生成する複数台の計算機が互いに接続され、ある計算機が仮想空間の状態を更新する際に、前記更新のためのメッセージを他の計算機に配送するメッセージ配送方法であって、
前記各計算機の接続形態は、
前記仮想空間が分割されてなる複数個の仮想空間単位領域に関し、前記各計算機の仮想空間上の座標値に基づいて、前記各仮想空間単位領域のうちの隣合う仮想空間単位領域を個別に代表する計算機同士を接続して形成した仮想トポロジと、
前記各仮想空間単位領域毎に、当該仮想空間単位領域に含まれる計算機同士を当該計算機間の物理ネットワーク上の距離に基づいて接続して形成した物理トポロジと、からなる形態であり、
前記各計算機は、
予め前記仮想トポロジ上で隣に接続された隣接計算機のアドレス情報をメモリに記憶する工程と、
予め前記物理トポロジ上で隣に接続された隣接計算機のアドレス情報をメモリに記憶する工程と、
前記更新のためのメッセージを受信する工程と、
前記受信の後、前記メモリから隣接計算機のアドレス情報を読出す工程と、
前記読出したアドレス情報に向けて前記メッセージを配送する工程と
を備えたことを特徴とするメッセージ配送方法。 - 仮想空間を部分的に生成する複数台の計算機が互いに接続され、ある計算機が仮想空間の状態を更新する際に、前記更新のためのメッセージを他の計算機に配送するメッセージ配送方法に用いられる各々の計算機であって、
前記各計算機の接続形態は、
前記仮想空間が分割されてなる複数個の仮想空間単位領域に関し、前記各計算機の仮想空間上の座標値に基づいて、前記各仮想空間単位領域のうちの隣合う仮想空間単位領域を個別に代表する計算機同士を接続して形成した仮想トポロジと、
前記各仮想空間単位領域毎に、当該仮想空間単位領域に含まれる計算機同士を当該計算機間の物理ネットワーク上の距離に基づいて接続して形成した物理トポロジと、からなる形態であり、
前記各計算機は、
予め前記仮想トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される仮想トポロジ隣接計算機記憶手段と、
予め前記物理トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される物理トポロジ隣接計算機記憶手段と、
前記更新のためのメッセージを受信する手段と、
前記受信の後、前記各記憶手段から隣接計算機のアドレス情報を読出す手段と、
前記読出したアドレス情報に向けて前記メッセージを配送する手段と
を備えたことを特徴とする計算機。 - 請求項2に記載の計算機において、
担当する仮想空間単位領域の境界情報が記憶される担当領域記憶手段と、
前記接続形態に新規加入する際に、仮想空間上の自己の座標値を含む計算機検索要求メッセージを生成する手段と、
前記計算機検索要求メッセージを送信する手段と、
前記送信の後、前記座標値を含む仮想空間単位領域を代表する計算機から、この仮想空間単位領域を担当する全ての計算機のアドレス情報を含む検索結果“あり”メッセージを受信する手段と、
前記検索結果“あり”メッセージ内のいずれかのアドレス情報が示す計算機に対し、担当する仮想空間単位領域の境界情報を要求し、得られた境界情報を前記担当領域記憶手段に書込む手段と、
前記検索結果“あり”メッセージ内の全てのアドレス情報が示す全ての計算機との間の物理ネットワーク距離を測定する手段と、
この測定結果のうち、最短の物理ネットワーク距離をもつ計算機のアドレス情報を前記物理トポロジ隣接計算機記憶手段に書込む手段と、
前記計算機検索要求メッセージの送信の後、前記仮想トポロジ上の隣接計算機から当該隣接計算機のアドレス情報を含む検索結果“無し”メッセージを受信する手段と、
前記検索結果“無し”メッセージ内の隣接計算機のアドレス情報を前記仮想トポロジ隣接計算機記憶手段に書込む手段と
を備えたことを特徴とする計算機。 - 請求項3に記載の計算機において、
予め前記担当する仮想空間単位領域内の全ての計算機のアドレス情報が記憶される担当領域内全計算機記憶手段と、
他の計算機から送信された当該他の計算機における仮想空間上の座標値と物理ネットワーク上の送信元アドレス情報とを含む計算機検索要求メッセージを受信する手段と、
この計算機検索要求メッセージ内の座標値が、担当している仮想空間単位領域に含まれるか否かを判定する担当領域判定手段と、
前記担当領域判定手段による判定の結果、座標値が含まれる場合、前記担当領域内全計算機記憶手段に記憶された全てのアドレス情報を含む検索結果“あり”メッセージを前記送信元アドレス情報に向けて返信する手段と、
前記担当領域判定手段による判定の結果、座標値が含まれない場合、担当する仮想空間単位領域よりも当該座標値に近い仮想空間単位領域を担当する隣接計算機があるか否かを判定する隣接領域判定手段と、
前記隣接領域判定手段による判定の結果、隣接計算機がある場合、この隣接計算機に計算機検索要求メッセージを配送する手段と、
前記隣接領域判定手段による判定の結果、隣接計算機が無い場合、自己のアドレス情報を含む検索結果“無し”メッセージを前記送信元アドレス情報に向けて返信する手段と
を備えたことを特徴とする計算機。 - 請求項2に記載の計算機であって、
前記仮想空間の配送領域情報を含むメッセージを受信する手段と、
前記メッセージに含まれる配送領域情報に基づいて前記各記憶手段を参照し、当該配送領域情報に対応する境界情報を持つ仮想空間単位領域内の隣接計算機のアドレス情報を前記仮想トポロジ隣接記憶手段又は前記物理トポロジ隣接計算機記憶手段から読出す手段と、
前記読出したアドレス情報に向けて前記メッセージを配送する手段と
を備えたことを特徴とする計算機。 - 請求項3又は請求項4に記載の計算機において、
予め担当する仮想空間単位領域内の全ての計算機のアドレス情報が記憶される担当領域内全計算機記憶手段と、
前記メッセージに含まれる座標値が、担当している仮想空間単位領域に含まれるとき、前記担当領域内全計算機記憶手段内の各アドレス情報に向けて、前記仮想空間上のシミュレーション担当領域情報を要求し、各シミュレーション担当領域情報を受信する手段と、
前記各シミュレーション担当領域情報のうち、前記メッセージに含まれる座標値を含むシミュレーション担当領域情報を選択する手段と、
前記選択したシミュレーション担当領域情報が示すシミュレーション担当領域を、前記メッセージに含まれる座標値に基づいて二分割し、この座標値を含む第1シミュレーション担当領域と、残りの第2シミュレーション担当領域とを得る手段と、
前記第1シミュレーション担当領域を示す第1シミュレーション担当領域情報を前記メッセージの送信元に返信する手段と、
前記第2シミュレーション担当領域を示す第2シミュレーション担当領域情報を、前記選択されたシミュレーション領域情報の送信元に返信する手段と
を備えたことを特徴とする計算機。 - 仮想空間を部分的に生成する複数台の計算機が互いに接続され、ある計算機が仮想空間の状態を更新する際に、前記更新のためのメッセージを他の計算機に配送するメッセージ配送方法に用いられる各々の計算機にインストールされるプログラムであって、
前記各計算機の接続形態は、
前記仮想空間が分割されてなる複数個の仮想空間単位領域に関し、前記各計算機の仮想空間上の座標値に基づいて、前記各仮想空間単位領域のうちの隣合う仮想空間単位領域を個別に代表する計算機同士を接続して形成した仮想トポロジと、
前記各仮想空間単位領域毎に、当該仮想空間単位領域に含まれる計算機同士を当該計算機間の物理ネットワーク上の距離に基づいて接続して形成した物理トポロジと、からなる形態であり、
前記プログラムは前記インストールした計算機を、
予め前記仮想トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される仮想トポロジ隣接計算機記憶手段を形成する手段、
予め前記物理トポロジ上で隣に接続された隣接計算機のアドレス情報が記憶される物理トポロジ隣接計算機記憶手段を形成する手段、
前記更新のためのメッセージを受信する手段、
前記受信の後、前記各記憶手段から隣接計算機のアドレス情報を読出す手段、
前記読出したアドレス情報に向けて前記メッセージを配送する手段、
として機能させるためのプログラム。 - 請求項7に記載のプログラムにおいて、
前記インストールした計算機を、
担当する仮想空間単位領域の境界情報が記憶される担当領域記憶手段を形成する手段、
前記接続形態に新規加入する際に、仮想空間上の自己の座標値を含む計算機検索要求メッセージを生成する手段、
前記計算機検索要求メッセージを送信する手段、
前記送信の後、前記座標値を含む仮想空間単位領域を代表する計算機から、この仮想空間単位領域を担当する全ての計算機のアドレス情報を含む検索結果“あり”メッセージを受信する手段、
前記検索結果“あり”メッセージ内のいずれかのアドレス情報が示す計算機に対し、担当する仮想空間単位領域の境界情報を要求し、得られた境界情報を前記担当領域記憶手段に書込む手段、
前記検索結果“あり”メッセージ内の全てのアドレス情報が示す全ての計算機との間の物理ネットワーク距離を測定する手段、
この測定結果のうち、最短の物理ネットワーク距離をもつ計算機のアドレス情報を前記物理トポロジ隣接計算機記憶手段に書込む手段、
前記計算機検索要求メッセージの送信の後、前記仮想トポロジ上の隣接計算機から当該隣接計算機のアドレス情報を含む検索結果“無し”メッセージを受信する手段、
前記検索結果“無し”メッセージ内の隣接計算機のアドレス情報を前記仮想トポロジ隣接計算機記憶手段に書込む手段、
として機能させるためのプログラム。 - 請求項8に記載のプログラムにおいて、
前記インストールした計算機を、
予め前記担当する仮想空間単位領域内の全ての計算機のアドレス情報が記憶される担当領域内全計算機記憶手段を形成する手段、
他の計算機から送信された当該他の計算機における仮想空間上の座標値と物理ネットワーク上の送信元アドレス情報とを含む計算機検索要求メッセージを受信する手段、
この計算機検索要求メッセージ内の座標値が、担当している仮想空間単位領域に含まれるか否かを判定する担当領域判定手段、
前記担当領域判定手段による判定の結果、座標値が含まれる場合、前記担当領域内全計算機記憶手段に記憶された全てのアドレス情報を含む検索結果“あり”メッセージを前記送信元アドレス情報に向けて返信する手段、
前記担当領域判定手段による判定の結果、座標値が含まれない場合、担当する仮想空間単位領域よりも当該座標値に近い仮想空間単位領域を担当する隣接計算機があるか否かを判定する隣接領域判定手段、
前記隣接領域判定手段による判定の結果、隣接計算機がある場合、この隣接計算機に計算機検索要求メッセージを配送する手段、
前記隣接領域判定手段による判定の結果、隣接計算機が無い場合、自己のアドレス情報を含む検索結果“無し”メッセージを前記送信元アドレス情報に向けて返信する手段、
として機能させるためのプログラム。 - 請求項7に記載のプログラムであって、
前記インストールした計算機を、
前記仮想空間の配送領域情報を含むメッセージを受信する手段、
前記メッセージに含まれる配送領域情報に基づいて前記各記憶手段を参照し、当該配送領域情報に対応する境界情報を持つ仮想空間単位領域内の隣接計算機のアドレス情報を前記仮想トポロジ隣接記憶手段又は前記物理トポロジ隣接計算機記憶手段から読出す手段、
前記読出したアドレス情報に向けて前記メッセージを配送する手段、
として機能させるためのプログラム。 - 請求項8又は請求項9に記載のプログラムにおいて、
前記インストールした計算機を、
予め担当する仮想空間単位領域内の全ての計算機のアドレス情報が記憶される担当領域内全計算機記憶手段を形成する手段、
前記メッセージに含まれる座標値が、担当している仮想空間単位領域に含まれるとき、前記担当領域内全計算機記憶手段内の各アドレス情報に向けて、前記仮想空間上のシミュレーション担当領域情報を要求し、各シミュレーション担当領域情報を受信する手段、
前記各シミュレーション担当領域情報のうち、前記メッセージに含まれる座標値を含むシミュレーション担当領域情報を選択する手段、
前記選択したシミュレーション担当領域情報が示すシミュレーション担当領域を、前記メッセージに含まれる座標値に基づいて二分割し、この座標値を含む第1シミュレーション担当領域と、残りの第2シミュレーション担当領域とを得る手段、
前記第1シミュレーション担当領域を示す第1シミュレーション担当領域情報を前記メッセージの送信元に返信する手段、
前記第2シミュレーション担当領域を示す第2シミュレーション担当領域情報を、前記選択されたシミュレーション領域情報の送信元に返信する手段、
として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004208884A JP3987512B2 (ja) | 2004-07-15 | 2004-07-15 | メッセージ配送方法、計算機及びプログラム |
US11/151,408 US20070013701A1 (en) | 2004-07-15 | 2005-06-14 | Method for distributing messages, computer, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004208884A JP3987512B2 (ja) | 2004-07-15 | 2004-07-15 | メッセージ配送方法、計算機及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006033384A true JP2006033384A (ja) | 2006-02-02 |
JP3987512B2 JP3987512B2 (ja) | 2007-10-10 |
Family
ID=35899205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004208884A Active JP3987512B2 (ja) | 2004-07-15 | 2004-07-15 | メッセージ配送方法、計算機及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070013701A1 (ja) |
JP (1) | JP3987512B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015290B2 (en) * | 2005-04-22 | 2011-09-06 | Broadcom Corporation | Group driver |
JP2012049966A (ja) * | 2010-08-30 | 2012-03-08 | Brother Ind Ltd | 分散保存システム、代表ノード装置、通知方法及びプログラム |
JP2018523226A (ja) * | 2015-06-30 | 2018-08-16 | ▲隣▼元科技(北京)有限公司 | 分布式計算ネットワークシステムおよび当該システムに用いられる計算ノード |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7779004B1 (en) | 2006-02-22 | 2010-08-17 | Qurio Holdings, Inc. | Methods, systems, and products for characterizing target systems |
JP4281925B2 (ja) * | 2006-06-19 | 2009-06-17 | 株式会社スクウェア・エニックス | ネットワークシステム |
US7849420B1 (en) * | 2007-02-26 | 2010-12-07 | Qurio Holdings, Inc. | Interactive content representations enabling content sharing |
US9098167B1 (en) * | 2007-02-26 | 2015-08-04 | Qurio Holdings, Inc. | Layered visualization of content representations |
US7840903B1 (en) | 2007-02-26 | 2010-11-23 | Qurio Holdings, Inc. | Group content representations |
JP4898529B2 (ja) * | 2007-04-06 | 2012-03-14 | 株式会社エヌ・ティ・ティ・ドコモ | エリア案内装置およびプログラム |
US8260266B1 (en) | 2007-06-26 | 2012-09-04 | Qurio Holdings, Inc. | Method and system for third-party discovery of proximity-based services |
US7836217B2 (en) * | 2007-07-13 | 2010-11-16 | Invensys Systems, Inc. | Associating and evaluating status information for a primary input parameter value from a Profibus device |
US9111285B2 (en) | 2007-08-27 | 2015-08-18 | Qurio Holdings, Inc. | System and method for representing content, user presence and interaction within virtual world advertising environments |
US8261307B1 (en) | 2007-10-25 | 2012-09-04 | Qurio Holdings, Inc. | Wireless multimedia content brokerage service for real time selective content provisioning |
TW201036455A (en) * | 2009-03-20 | 2010-10-01 | Tatung Co | System and method for fully automatically aligning quality of image |
AU2011217741B2 (en) * | 2010-02-18 | 2016-10-20 | Isee Vc Pty Ltd | A system, method and software application for the dissemination of data across a plurality of computing systems |
US10257269B2 (en) * | 2015-06-23 | 2019-04-09 | Intel Corporation | Selectively disabling operation of hardware components based on network changes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174382B2 (en) * | 2002-04-09 | 2007-02-06 | Hewlett-Packard Development Company, L.P. | Interest-based connections in peer-to-peer networks |
US7468982B2 (en) * | 2002-07-02 | 2008-12-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for cluster interconnection using multi-port nodes and multiple routing fabrics |
US7613796B2 (en) * | 2002-09-11 | 2009-11-03 | Microsoft Corporation | System and method for creating improved overlay network with an efficient distributed data structure |
-
2004
- 2004-07-15 JP JP2004208884A patent/JP3987512B2/ja active Active
-
2005
- 2005-06-14 US US11/151,408 patent/US20070013701A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015290B2 (en) * | 2005-04-22 | 2011-09-06 | Broadcom Corporation | Group driver |
JP2012049966A (ja) * | 2010-08-30 | 2012-03-08 | Brother Ind Ltd | 分散保存システム、代表ノード装置、通知方法及びプログラム |
JP2018523226A (ja) * | 2015-06-30 | 2018-08-16 | ▲隣▼元科技(北京)有限公司 | 分布式計算ネットワークシステムおよび当該システムに用いられる計算ノード |
US10732588B2 (en) | 2015-06-30 | 2020-08-04 | Lynkros Technology (Beijing) Co., Ltd. | Decentralized computing network system and computing processing node used for the same |
Also Published As
Publication number | Publication date |
---|---|
US20070013701A1 (en) | 2007-01-18 |
JP3987512B2 (ja) | 2007-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3987512B2 (ja) | メッセージ配送方法、計算機及びプログラム | |
US20170161282A1 (en) | Methods and systems for graph-based publication - subscription | |
JP4670604B2 (ja) | 情報配信システム、情報処理装置、情報処理プログラム及び情報処理方法 | |
US8750313B1 (en) | Message propagation in a distributed virtual world | |
US20090113314A1 (en) | Location and placement of avatars in virtual worlds | |
KR20200004444A (ko) | 네트워크 내의 분산 데이터베이스를 위한 방법 및 장치 | |
Chi et al. | Ad-hoc cloudlet based cooperative cloud gaming | |
WO2018153292A1 (zh) | 社交圈子的生成方法、装置及存储介质 | |
US7533100B2 (en) | Network system, element thereof and context management method | |
JP2005234633A (ja) | サービスの拡張方法 | |
US20090157853A1 (en) | Systems, methods and computer program products for capacity on-demand server mechanism for seamless 3d virtual worlds | |
Wang et al. | Interest‐driven avatar neighbor‐organizing for P2P transmission in distributed virtual worlds | |
US20060190454A1 (en) | Network system, element thereof and network visualization method | |
JP7462197B2 (ja) | 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置 | |
JP2005258942A (ja) | 情報処理装置、システム、方法及びプログラム | |
Ghaffari et al. | A dynamic networking substrate for distributed MMOGs | |
CN114470746A (zh) | 服务器系统、数据传输方法、装置、设备及存储介质 | |
JP3947018B2 (ja) | オブジェクト発見ネットワーク、ネットワークの構築方法、オブジェクト発見方法、ノード、オブジェクトのクエリメッセージ転送方法、プログラム、および記録媒体 | |
KR102596700B1 (ko) | 블록체인 네트워크에서 인터샤드 트랜잭션 시스템 및 방법 | |
KR101447850B1 (ko) | 실시간 대전 게임을 위한 게임 제공 방법 및 그 시스템 | |
Masa et al. | Generalized interest management in virtual environments | |
JP4782581B2 (ja) | ネットワークシステム及びその構成品、ネットワークの視覚化方法 | |
Diaconu | Scalability for virtual worlds | |
KR20230171628A (ko) | 블록체인 네트워크에서 어카운트의 워킹샤드 변경 시스템 및 방법 | |
CN117459360A (zh) | 一种数据处理方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070710 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070712 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100720 Year of fee payment: 3 |