(57)【要約】【課題】複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できるオブジェクト管理システムを提供する。【解決手段】順序付きの部分空間領域に分割された仮想空間内のオブジェクトの少なくとも一部を管理の対象として、管理の対象の候補となるオブジェクトには、部分空間領域に関連する順序との関係において定められる順序キーがクライアント装置で算出され、この順序キーを利用して、管理の対象の候補となるオブジェクトのうち、管理の対象となるオブジェクトを選択的に定めるオブジェクト管理装置である。【選択図】図１
2007164252.tif 000002
【特許請求の範囲】
【請求項１】
順序が規定された複数の部分空間に分割されている仮想空間内の位置を指定して、当該指定した位置にオブジェクトを配置する要求を行う、少なくとも一つのクライアント側装置と、
前記少なくとも一つの部分空間を対象領域として、当該対象領域内のオブジェクトを管理の対象とし、管理の対象となったオブジェクトに係る処理を実行する、少なくとも一つのオブジェクト管理装置とを含むオブジェクト管理システムであって、
前記クライアント装置において、前記オブジェクト管理装置による管理の対象の候補となるオブジェクトに対して、前記部分空間の各々との順序関係を定義可能な順序キーが算出され、
前記オブジェクト管理装置は、前記クライアント装置にて算出された順序キーと、自己の対象領域に含まれる部分空間との順序関係に基づいて、クライアント装置から要求されたオブジェクトに係る処理を実行するか否かを判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴とするオブジェクト管理システム。
【請求項２】
順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置であって、
前記管理の対象の候補となるオブジェクトには、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、
前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴とするオブジェクト管理装置。
【請求項３】
請求項２に記載のオブジェクト管理装置であって、
前記部分空間の各々との順序関係を定義可能な順序キーを含む識別情報に関連づけられて、その対象領域が設定され、
前記要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断することを特徴とするオブジェクト管理装置。
【請求項４】
請求項２または３に記載のオブジェクト管理装置であって、
前記部分空間の順序は、Ｚ順序によって規定されることを特徴とするオブジェクト管理装置。
【請求項５】
請求項２から４のいずれか一項に記載のオブジェクト管理装置であって、
当該オブジェクト管理装置が、前記部分空間の各々との順序関係を定義可能な順序キーに関連づけられ、オブジェクトに係る処理を実行するか否かを判断する際に、当該関連づけられた順序キーに基づいて特定される対象領域内のオブジェクトであるか否かによって判断を行なっており、
前記特定される対象領域を、連続したＮセットの部分空間セットに分割し、当該分割に係る部分空間セットのいずれかを当該オブジェクト管理装置の対象領域とし、
他のＮ−１個の部分空間セットの各々については、他のオブジェクト管理装置の対象領域とすることを特徴とするオブジェクト管理装置。
【請求項６】
請求項２から５のいずれか一項に記載のオブジェクト管理装置であって、
前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、
前記オブジェクトに係る処理として、専らオブジェクト間のメッセージの配送処理を行い、
前記識別情報が、メッセージの配送処理以外の処理を行うオブジェクト管理装置に対する識別情報とは区別可能な識別情報として設定され、メッセージの配送処理以外の処理を行うオブジェクト管理装置のいずれかを同順オブジェクト管理装置として、当該同順オブジェクト管理装置と一致する順序キーに関連づけられており、
指定されたオブジェクトに係る処理が要求されたときに、当該指定されたオブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて、当該指定されたオブジェクトへメッセージを配送するか否かを判断し、配送すると判断したときには、前記同順オブジェクト管理装置に対してメッセージの配送を要求し、配送しないと判断したときに、前記同順オブジェクト管理装置とは異なる他のオブジェクト管理装置に対してメッセージの配送を要求することを特徴とするオブジェクト管理装置。
【請求項７】
順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置を用いて、
前記管理の対象の候補となるオブジェクトに、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、
前記オブジェクト管理装置に、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行させることを特徴とするオブジェクト管理装置の制御方法。
【請求項８】
コンピュータに、
順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行させるプログラムであって、
前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられた、前記管理の対象の候補となるオブジェクトに関する情報を取得する手順と、
前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行する手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いて、仮想空間内のオブジェクトを管理するオブジェクト管理システムに関する。
【背景技術】
【０００２】
ゲームやチャットプログラム等において、仮想的な空間を設定し、当該仮想的な空間内に配置された各種のオブジェクトを操作する等の処理が行われることがある。例えば、ネットワークゲームのように複数のプレイヤが参加するゲームでは、各プレイヤがゲーム空間として、仮想空間内の情報を共有し、このゲーム空間内に、プレイヤオブジェクトとして参加する。そして例えばある位置に配置されたアイテムのオブジェクト（アイテムオブジェクト）を取得する操作をしたり、他のプレイヤオブジェクトに対して攻撃をするなどの操作をしたり、といったことを行う。
【０００３】
この場合に、仮想空間内の各オブジェクトの位置や属性情報などは、オブジェクト管理装置として動作するコンピュータが管理している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年では、ゲーム等、仮想空間を利用するアプリケーションの内容が高度化しており、仮想空間内に配置されるオブジェクトの数も増大している。また、例えばユーザのオブジェクトがアイテムのオブジェクトの配置された位置に移動して、アイテムオブジェクトを取得するなどの制御を行う場合、ユーザのオブジェクトは近辺に存在するアイテムオブジェクトを知るために、ユーザのオブジェクトの近辺に存在するアイテムオブジェクトを仮想空間内のオブジェクトを管理するオブジェクト管理装置に問い合わせる。また、必要に応じてオブジェクト管理装置が、アイテムオブジェクトの除去やユーザオブジェクトへの属性の付与といったオブジェクト間のインタラクションの処理を行うこととなる。あるいは、仮想空間内に存在する移動オブジェクト間の衝突検出などオブジェクト管理装置が行い、衝突が検出されたオブジェクトに対して衝突通知を行う場合もある。このような処理はオブジェクトの数の増大や、管理すべき仮想空間が広がるほど、処理の機会、処理にかかる計算時間が増大し、一つのオブジェクト管理装置によって仮想空間内のオブジェクトの管理を行うことが困難になりつつある。
【０００５】
一方で、例えば複数のオブジェクト管理装置によって、それぞれ異なる種類のオブジェクトを分散して管理させる場合、上述の例のようにユーザのオブジェクトがアイテムオブジェクトを取得するという処理を行うためには、ユーザオブジェクトと、アイテムオブジェクトとをそれぞれ管理する複数のオブジェクト管理装置間でユーザオブジェクトの位置とアイテムオブジェクトの位置とを比較するための情報を相互に通信する必要があるなど、処理が一般に複雑になる。また、オブジェクトが頻繁に仮想空間内を移動するアプリケーションでは、該オブジェクトが移動するたびに、移動先の領域を管理するオブジェクト管理装置を探す必要が生じ、そのための処理が一般に複雑になる。
【０００６】
本発明は上記実情に鑑みて為されたもので、複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できるオブジェクト管理システムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するための本発明は、順序が規定された複数の部分空間に分割されている仮想空間内の位置を指定して、当該指定した位置にオブジェクトを配置する要求を行う、少なくとも一つのクライアント側装置と、前記少なくとも一つの部分空間を対象領域として、当該対象領域内のオブジェクトを管理の対象とし、管理の対象となったオブジェクトに係る処理を実行する、少なくとも一つのオブジェクト管理装置とを含むオブジェクト管理システムであって、前記クライアント装置において、前記オブジェクト管理装置による管理の対象の候補となるオブジェクトに対して、前記部分空間の各々との順序関係を定義可能な順序キーが算出され、前記クライアント装置にて算出された順序キーと、対象領域に含まれる部分空間との順序関係に基づいて、前記オブジェクト管理装置がクライアント装置から要求されたオブジェクトに係る処理を実行するか否かを判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴としている。
【０００８】
また、本発明の一態様は、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置であって、前記管理の対象の候補となるオブジェクトには、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断し、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行することを特徴としている。
【０００９】
ここで前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、前記要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断することとしてもよい。また、前記部分空間の順序は、Ｚ順序によって規定されてもよい。
【００１０】
さらに当該オブジェクト管理装置が、前記部分空間の各々との順序関係を定義可能な順序キーに関連づけられ、オブジェクトに係る処理を実行するか否かを判断する際に、当該関連づけられた順序キーに基づいて特定される対象領域内のオブジェクトであるか否かによって判断を行なっており、前記特定される対象領域を、連続したＮセットの部分空間セットに分割し、当該分割に係る部分空間セットのいずれかを当該オブジェクト管理装置の対象領域とし、他のＮ−１個の部分空間セットの各々については、他のオブジェクト管理装置の対象領域とすることとしてもよい。
【００１１】
また、前記部分空間の各々との順序関係を定義可能な順序キーと、当該順序キーを含む識別情報とに関連づけられて、その対象領域が設定され、前記オブジェクトに係る処理として、専らオブジェクト間のメッセージの配送処理を行い、前記識別情報が、メッセージの配送処理以外の処理を行うオブジェクト管理装置とに対する識別情報とは区別可能な識別情報として設定され、メッセージの配送処理以外の処理を行うオブジェクト管理装置のいずれかを同順オブジェクト管理装置として、当該同順オブジェクト管理装置と一致する順序キーに関連づけられており、指定されたオブジェクトに係るメッセージ配送処理が要求されたときに、当該指定されたオブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて、当該指定されたオブジェクトへメッセージを配送するか否かを判断し、配送すると判断したときには、前記同順オブジェクト管理装置に対してメッセージの配送を要求し、配送しないと判断したときに、前記同順オブジェクト管理装置とは異なる他のオブジェクト管理装置に対してメッセージの配送を要求することとしてもよい。
【００１２】
さらに本発明の別の態様は、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行するオブジェクト管理装置を用いて、前記管理の対象の候補となるオブジェクトに、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられ、前記オブジェクト管理装置に、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行させることを特徴としている。
【００１３】
さらに本発明の別の態様は、コンピュータに、順序が規定された複数の部分空間に分割されている仮想空間内での位置を表す位置情報に関連づけられたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る処理を実行させるプログラムであって、前記部分空間の各々との順序関係を定義可能な順序キーが関連づけられた、前記管理の対象の候補となるオブジェクトに関する情報を取得する手順と、前記部分空間の少なくとも一つを対象領域として、要求されたオブジェクトに係る処理を実行するか否かを、当該オブジェクトの順序キーと前記対象領域に含まれる部分空間との順序関係に基づいて判断させ、実行すると判断した場合に、前記要求されたオブジェクトに係る処理を実行する手順と、を実行させることを特徴としている。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るオブジェクト管理システムは、図１に示すように、複数のコンピュータ装置１０ａ，ｂ…を含んで構成されている。これら複数のコンピュータ装置１０は互いにネットワークを介して、通信可能に接続されている。また、これらのコンピュータ装置１０はそれぞれ、制御部２１、記憶部２２、及び通信部２３を含んで構成される。なお、ユーザが実際に操作を行うコンピュータ装置１０では、このほか、ゲームコントローラや、マウス、キーボードなどの操作部と、ディスプレイなどの表示部を備えて構成されていてもよい（図１）。この場合、ユーザの操作を受け入れた操作部は、その内容を制御部２１に伝達し、表示部は、制御部２１からの指示に従って、画像や文字などを表示することとなる。
【００１５】
ここで制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されているプログラムに従って動作する。本実施の形態では、コンピュータ装置１０がオブジェクトを仮想空間内に配置するよう要求し、当該オブジェクトに関する処理を要求する側（クライアント側）装置として動作するか、オブジェクトに関する処理を行う側の装置（オブジェクト管理装置）として動作するかによって、この制御部２１の行う処理の内容は異なる。この制御部２１の動作の具体例については後に詳しく述べる。
【００１６】
記憶部２２は、ＲＡＭやＲＯＭなどのメモリ素子や、ハードディスク等を含んで構成されている。この記憶部２２は、制御部２１によって実行されるプログラムを格納するコンピュータ可読な記録媒体として動作する。また、この記憶部２２は、制御部２１の動作に必要となる種々のデータを保持するワークメモリとしても動作する。
【００１７】
通信部２３は、ネットワークインタフェース等であり、制御部２１から入力される指示に従って、種々のデータをネットワークを介して他のコンピュータ装置１０に送出する。また、この通信部２３は、他のコンピュータ装置１０からネットワークを介して受信するデータを制御部２１に出力する。
【００１８】
このオブジェクト管理システムでは、仮想空間に係る情報がオブジェクト管理装置として動作するコンピュータ装置１０によって提供される。例えば、図２に示すような平面空間（Ｘ，Ｙ座標軸で張られた空間）内での、少なくとも一つのオブジェクトの配置位置に関する情報が各コンピュータ装置１０によって共有される。
【００１９】
また、各オブジェクトにはオブジェクトを識別するためにオブジェクトに固有に設定されるＩＤ情報（識別子）が関連づけられる。さらに、各オブジェクトには属性情報が関連づけられていてもよい。これらＩＤ情報や属性情報もまた、各コンピュータ装置１０によって共有される。属性情報としては例えば、オブジェクトの種類を表す情報や、外見を規定する情報、その他、オブジェクトの種類に応じた種々の情報がある。ここでオブジェクトの種類に応じた情報としては、例えばゲームのプレイヤオブジェクトであれば、持ち物（インベントリー）の情報などがある。
【００２０】
［オブジェクト管理装置］
本実施の形態においては、これらコンピュータ装置１０のうち少なくとも一つがオブジェクト管理装置として動作する。このオブジェクト管理装置として動作するコンピュータ装置１０の制御部２１は、図３に示すように、機能的には、仮想空間管理部３１と、処理実行部３２と、仮想空間分割処理部３３とを含んで構成される。
【００２１】
仮想空間管理部３１は、仮想空間を順序を規定した部分空間領域に分割して管理する。仮想空間管理部３１は、例えば図２に示したように、仮想空間全体を４×４のマトリクスに分割して、Ｚ順序（Z-Ordering、 Shashi Shekhar and Sanjay Chawla, Spatial Databases, Prentice Hall 2003を参照）で番号を割り当てる。ここでＺ順序は、図４に示すような２×２のマトリクスにおいて、左下を「０」、右下を「１」、左上を「２」、右上を「３」とする順序である。４×４のマトリクスの場合、４×４のマトリクスを４つの２×２のマトリクスに分けて、その各２×２マトリクスの部分空間領域の下一桁の順序値を上記方法で定める。次に、各２×２マトリクスを一つのブロックとして、当該ブロックが２×２に配列されていることから、各ブロックに含まれる部分空間領域の順序値の下から２桁目の値を、上記方法で定める。すると、左上の部分空間領域の順序値は、「２２」であり、以下、順次右に隣接する部分空間領域の順序値は、「２３」、「３２」、「３３」となる（図２参照）。
【００２２】
なお、対象となる仮想空間が３次元である場合には、ある平面に射影した座標を対象空間として扱うことができる。
【００２３】
また、例えば、ユーザのチャットを扱う仮想空間では、あらかじめ蓄積されたチャットで使用された単語のデータベースに基づいて、数量化III類などの方法により２次元空間に写像し、各ユーザのチャットの内容に基づいて２次元空間上の位置に変換することで対象空間として扱うことができる。
【００２４】
本実施の形態のオブジェクト管理装置は、仮想空間内に配置されたオブジェクトの少なくとも一部を管理の対象として、管理の対象となったオブジェクトに係る情報を記憶部２２内にデータベースとして保持するとともに、当該オブジェクトに関する処理を実行する。以下の説明では、オブジェクトに関する処理の一例として、オブジェクト間でのメッセージ交換の処理を行うものとする。
【００２５】
本実施形態の特徴的なことの一つは、各オブジェクト管理装置の識別情報の少なくとも一部が、該オブジェクト管理装置が処理の対象領域とする任意の大きさの部空間領域の順序値に基づいて割り当てられ、各オブジェクト管理装置は、自身の順序値と各部分空間領域の順序値との順序関係に基づいて、対象領域を定めることである。ここで順序関係とは、例えば順序値を数値とすれば、大小関係であり、また例えば順序値が次の順序へのリンク等によって定められていれば当該リンクにより定まる順序である。ここでは簡単のため順序値は数値であるとしているので、各オブジェクト管理装置は、自身の順序値から次の大きさの値を持つオブジェクト管理装置の順序値までの部分領域の集合（セット）を、対象領域として管理することになる。
【００２６】
オブジェクト管理装置は、例えば、各オブジェクトについて、オブジェクトを識別するＩＤ情報と、オブジェクトの配置位置を表す座標情報と、属性情報と、配置要求を行ったクライアント側装置を特定する情報（例えばそのコンピュータ装置１０のネットワークアドレス）とを関連づけて、オブジェクトデータベースとして記憶部２２に格納し（図５）、オブジェクトを管理する。
【００２７】
また、クライアント装置や、オブジェクト管理装置は、部分領域の順序値を宛先としてメッセージを送信してもよい。このメッセージは、宛先となった順序値に対応する部分領域を管理する（対象領域に含む）オブジェクト管理装置に配送されるよう、配送制御が行なわれる。
【００２８】
例えば、順序値「００」であらわされるオブジェクト管理装置と、順序値「１０」であらわされるオブジェクト管理装置がネットワーク上に存在した場合には、オブジェクト管理装置「００」は、部分領域「００」「０１」「０２」「０３」を管理し、オブジェクト管理装置「１０」は、部分領域「１０」「１１」「１２」「１３」「２０」「２１」「２２」「２３」「３０」「３１」「３２」「３３」を管理し、順序値「１１」を宛先としたメッセージは、オブジェクト管理装置「１０」に配送される。つまり、オブジェクト管理装置は、オブジェクトの順序値と、自己の対象領域に含まれる部分空間領域に割り当てた順序値との順序関係に基づいて、オブジェクトに係る処理を実行するか否かを判断している。
【００２９】
またオブジェクト管理装置が複数になった場合には、オブジェクト管理装置間でメッセージをルーティングして転送する必要があるので、オブジェクト管理装置として動作するコンピュータ装置１０は、そのためのルーティングテーブルを保持することになる。このルーティングテーブルも、順序値との関係で設定が行われる。このルーティングテーブルの内容例や、それを用いた処理例については、後に述べる。
【００３０】
処理実行部３２は、クライアント側装置から受信した要求に応じた処理を実行する。例えば、この処理実行部３２は、オブジェクトの配置要求に応じて、仮想空間内にオブジェクトを配置する処理を行なう。また、この処理実行部３２は、あるオブジェクトを注目オブジェクトとして、当該注目オブジェクトの周囲のオブジェクトを検索する処理や、オブジェクト間の衝突判定を行う処理を実行する。これらの処理の例については、後に述べる。
【００３１】
仮想空間分割処理部３３は、処理負荷に関する情報を所定のタイミングごとに（例えば一定の時間ごとに定期的に）取得する。そして当該処理負荷に関する情報が、所定の処理負荷を越えることを表すものとなったときに、クライアント側装置の一つに対して、オブジェクト管理装置として動作をするよう要求する処理（仮想空間分割処理）を実行する。
【００３２】
ここで処理負荷に関する情報としては例えば、管理の対象となっているオブジェクトの数であってもよい。オブジェクトの数による場合、管理の対象となっているオブジェクトの数が、予め定めたしきい値を越えたときに、仮想空間分割処理を実行することとなる。この仮想空間分割処理についても後に述べる。
【００３３】
［クライアント側装置］
一方、クライアント側装置として動作するコンピュータ装置１０の制御部２１は、機能的には、図６に示すように、オブジェクト配置要求部４１と、オブジェクト処理部４２と、転換部４３と、を含んで構成される。また、このクライアント側装置として動作するコンピュータ装置１０の記憶部２２には、少なくとも一つのネットワーク上のオブジェクト管理装置のアドレスの値が格納されている。
【００３４】
オブジェクト配置要求部４１は、オブジェクト管理装置に対して、オブジェクトの配置要求を行って仮想空間内にオブジェクトを配置させる。クライアント側装置は、仮想空間領域内でのオブジェクトの位置（座標情報）に基づき、オブジェクトが存在する部分領域の順序値を算出する。そしてオブジェクトの仮想空間の位置から算出された順序値を宛先として、オブジェクト管理装置への配置要求を送信する。
【００３５】
また、このオブジェクト配置要求部４１は、オブジェクトが仮想空間内を移動するなどして、配置位置が変化した場合、すなわち仮想空間内の位置から算出される順序値が変化した場合には、移動前の以前の順序値を宛先としてオブジェクトの移動通知を行い、移動後の新たな順序値を宛先としてオブジェクトの配置要求を行う。
【００３６】
オブジェクト処理部４２は、例えば利用者の指示によって、配置したオブジェクトからのメッセージとして、オブジェクトの周囲に存在する他のオブジェクトを検索するべき旨の指示を受けて、当該指示に基づいて、その要求元のオブジェクトの存在する部分領域の順序値と、当該順序値の部分領域に隣接する部分領域の順序値とを演算して、当該演算によって得た各順序値を宛先として、当該部分領域内に存在するオブジェクトの一覧を要求するメッセージを送信するなど、オブジェクトに関する処理を実行する。
【００３７】
転換部４３は、オブジェクト管理装置として動作するべき旨の要求を受信して、オブジェクト管理装置としての処理を起動する。この結果、コンピュータ装置１０は、クライアント側装置としての処理と併せて、オブジェクト管理装置としての処理の実行を開始する。
【００３８】
なお、ここまでの説明において、宛先としては、順序値だけでなく、所定の方法で定められる識別キーを併せて利用することとしてもよい。識別キーを利用することで、後述するメッセージ配送において、特定のオブジェクト管理装置（あるいは後述のメッセージ転送装置）にメッセージが集中することを防ぐことが可能になる。この識別キーには、オブジェクトの情報から生成される識別キーを用いてもよく、あるいは、オブジェクトの配置要求を行なったクライアントの識別キーを用いてもよい。
【００３９】
以下、本実施の形態のシステムの動作について、実際の動作例を用いて説明をする。ここではオブジェクトが配置される仮想空間は、図２に示したように４×４の部分空間領域に分割され、図２に示したように順序値が割り当てられているものとする。なお、ここではメッセージの配送要求は、オブジェクト管理装置に割り当てられている識別情報を宛先として行う。つまり、オブジェクト管理装置は、それぞれに割り当てられている識別情報宛てのメッセージが到来したときに、当該到来したメッセージを受信する。また、クライアント側装置には、少なくとも一つのネットワーク上のオブジェクト管理装置のアドレスの値が予め設定されている。
【００４０】
処理開始の時点では、オブジェクト管理装置として動作するコンピュータ装置１０は、一つで構わない。この場合、当該オブジェクト管理装置は、すべての部分空間領域のオブジェクトを管理することとなる。ここではオブジェクト管理装置の識別情報としては、オブジェクト管理装置が管理する部分空間領域の順序値のうち、最小の順序値を関連づけておくものとする。つまり、当初、すべての部分空間領域のオブジェクトを管理するオブジェクト管理装置には、識別情報の順序キーとして順序値「００」が割り当てられる。また、識別キーとして順序値とは関わりのない固有の値を発行して割り当てる。ここでは識別キーとして「００」が割り当てられるものとする。この識別キーはオブジェクト管理装置のネットワークの位置情報（例えば、ＩＰアドレス）に基づいて生成することもできる。このようにすると、後述するルーティングテーブル作成時に識別キーを利用することでネットワーク距離に基づいたメッセージ配送の最適化が可能となる。以下、識別情報を、順序値と識別キーとをこの順でコロン（：）によって区切って、「００：００」と記述することとする。
【００４１】
以下、このオブジェクト管理装置は、クライアント側装置として動作するコンピュータ装置１０からのオブジェクト配置要求や、オブジェクトの周囲のオブジェクトを検索する処理や、オブジェクト間の衝突判定を行う処理を実行する。
【００４２】
クライアント側装置は、オブジェクトの仮想空間の位置から算出された順序値を宛先として、任意のオブジェクト管理装置に配置要求を送信する。既に述べたように、ここでの宛先の情報としては、順序値だけでなく識別キーを含む。すなわち、クライアント側装置は、予め保持している任意のオブジェクト管理装置のアドレスを送信先として、宛先としての識別情報を含むオブジェクトの配置要求を送信することとなる。そして、この要求を受け取ったオブジェクト管理装置は、配置要求に含まれる宛先に基づいて配置要求を処理すべきオブジェクト管理装置を判断し、該当するオブジェクト管理装置に転送する。なお、オブジェクト管理装置は、宛先が自己を示すと判断した場合、自己で配置要求を処理することとなる。
【００４３】
この時点では、オブジェクト管理装置は一つだけなので、識別情報「００」の順序値のオブジェクト管理装置が当該配置要求に応答する。配置要求を行う時点では、クライアント側装置は、当該配置要求にかかわるオブジェクトの管理を行うオブジェクト管理装置を識別できない。しかし、配置すべき仮想空間情報から算出された順序値を用いることで、後述するルーティングテーブルに基づいたメッセージ配送方法に従い、当該オブジェクトが存在する領域を管理するオブジェクト管理装置にメッセージが配送される。
【００４４】
また、オブジェクト管理装置は、オブジェクトのＩＤ情報と、配置位置を表す座標情報と、属性情報と、配置要求を行ったクライアント側装置を特定する情報（例えばそのコンピュータ装置１０のネットワークアドレス）とを関連づけて、オブジェクトデータベースとして記憶部２２に格納する（図５）。
【００４５】
こうして、例えば図７に示すように、順序値「０３」に対応するオブジェクトα、β、及びγ、順序値「１２」に対応するオブジェクトθ、順序値「３０」に対応するオブジェクトδが配置され、順序値「００」をもつオブジェクト管理装置Ａがオブジェクトα、β、γを管理し、順序値「１２」をもつオブジェクト管理装置Ｄがオブジェクトθを管理し、順序値「２２」をもつオブジェクト管理装置Ｃがオブジェクトδを管理することとなる。
【００４６】
次にここで、オブジェクトθが、図７に示すように、オブジェクトθの近辺として、オブジェクトθの位置から一定の距離ｒ内の領域（図７において破線の円で示された領域Ｘ）にいるオブジェクトとのメッセージ交換を要求する場合、オブジェクトθの配置要求をしたクライアント側装置では、上記領域Ｘを含む部分領域の順序値「０３」、「１２」、「２１」、「３０」を算出する。そして予め格納されているオブジェクト管理装置のアドレスに対して、領域Ｘ内にあるオブジェクトの情報を要求するメッセージを送信する。ここでは、オブジェクト管理装置Ａがメッセージを受信し、各順序値に対応するオブジェクト管理装置に対してメッセージが配送される。
【００４７】
ここではメッセージは、順序値「０３」の部分領域についてはオブジェクト管理装置Ａ自身へ、順序値「１２」，「２１」の部分領域についてはオブジェクト管理装置Ｄへ、「３０」の部分領域についてはオブジェクト管理装置Ｃへそれぞれ配送される。それぞれのオブジェクト管理装置Ａ，Ｃ，Ｄは、受信したメッセージに基づいて、該当領域にいるオブジェクトを自身のデータベースから検索し、該当するオブジェクトの情報（例えばオブジェクトのＩＤ情報や配置位置の情報等）を要求元のクライアント装置へ送信する。クライアント装置では、この送信された情報をオブジェクトθに通知する。
【００４８】
これにより、３次元仮想空間アプリケーションにおける、いわゆるインタレストマネージメント処理を実現できる。これによりオブジェクトθがユーザオブジェクトである場合には、その視界を描画するために、その視界にあるオブジェクトの情報を取得することができる。また、チャットアプリケーションでは、ユーザが入力した現在のチャット内容に近い他のユーザを探すことができる。
【００４９】
また、仮想空間内でのオブジェクトの衝突判定を行いたい場合には、各オブジェクト管理装置において、各オブジェクト管理装置のデータベースに登録されているオブジェクトの位置情報から衝突判定を行い、衝突が発生している場合には、各オブジェクトに衝突通知を行う。
【００５０】
さらに、例えばオブジェクトθが、順序値「１２」の部分領域から、順序値「０３」の部分領域へ移動する場合、当該オブジェクトθを管理するクライアント側装置では、移動前の順序値「１２」を宛先としてオブジェクトθの移動通知を送信する（図８のＳ１１）。この移動通知は、順序値「１２」の部分領域を管理するオブジェクト管理装置Ｄによって受信される。オブジェクト管理装置Ｄでは、オブジェクトθの移動通知を受けて、データベースを参照し、オブジェクトθに関するエントリーを削除する（Ｓ１２）。
【００５１】
また、クライアント側装置は、移動後の順序値「０３」を宛先としてオブジェクトθの配置要求を行なう（Ｓ１３）。この配置要求は、順序値「０３」の部分領域を管理するオブジェクト管理装置Ａによって受信される。オブジェクト管理装置Ａでは、オブジェクトθの配置要求を受けて、データベースに、オブジェクトθに関するエントリーを追記する（Ｓ１４）。これにより、オブジェクトの移動が実現される。なお、移動通知と配置要求の順序は、どちらを先としてもよい。
【００５２】
［仮想空間分割処理］
ここで、オブジェクト管理装置における仮想空間分割処理について述べる。仮想空間分割処理は、次のようにして行われる。オブジェクト管理装置は、現在（仮想空間分割処理の開始時点で）管理しているオブジェクトを、配置位置の順に並べ替える。この並べ替えの結果は、模式的には、図９に示すように、数直線上にオブジェクトを配列する処理に相当する。オブジェクト管理装置は、現在管理している部分空間領域の順序値を小さいものから大きいものへと昇順に並べ替えた数直線上で、各部分空間領域に所在しているオブジェクトを配置する。そして、この数直線上、つまり、現在管理している部分空間領域の順序値の小さいものから順に、昇順に、注目領域として選択しつつ、注目領域に属しているオブジェクトの数を累算する。そして、オブジェクトの総数Ｎに対して、この累算値がＮ／２を越えた時点での注目領域の順序値を分割ポイントとして取得する。
【００５３】
具体例として図９に示す場合、仮想空間分割処理の開始時点で管理しているオブジェクトの総数が１２であるとする。この場合、累算値が１２／２＝６を越える順序値を探索することになる。この例では、部分空間領域の順序値「００」から昇順に、順序値「０３」に関連づけられた部分空間領域までオブジェクトの数を累算したときに「６」を越えるので、順序値「０３」が分割ポイントとなる。
【００５４】
オブジェクト管理装置は、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトの配置要求を行なったクライアント装置としてのコンピュータ装置１０の一つに対して、オブジェクト管理装置として動作するよう要求する。ここでオブジェクト管理装置となるよう要求する相手となるコンピュータ装置１０の選択は、例えば、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトに係るクライアント装置としてのコンピュータ装置１０のすべてに対してオブジェクト管理装置となるよう要求し、最も早く応答したコンピュータ装置１０を選択することで行ってもよいし、分割ポイントよりも順序値の大きい部分空間領域に属しているオブジェクトのうち、順序値が最も小さい部分空間に属しているオブジェクト（それが複数あれば、例えば配置位置が所定の原点に最も近いもの）の配置要求を行なったクライアント装置としてのコンピュータ装置１０を選択することで行ってもよい。
【００５５】
このとき、オブジェクト管理装置となるべき旨の要求には、新たなオブジェクト管理装置に割り当てられるべき順序値の情報を含む。ここで新たなオブジェクト管理装置に割り当てられるべき順序値は、オブジェクト管理装置となるべき旨の要求を行ったオブジェクト管理装置が管理していた部分空間領域に割り当てられている順序値のうち、分割ポイントの順序値を超える最小の順序値に基づいて（例えば当該順序値そのものに）定める。
【００５６】
ここでの例では、分割ポイントの順序値が「０３」であり、識別情報に含まれる順序キーが順序値「００」であるオブジェクト管理装置の対象領域に含まれる部分空間領域の順序値のうち、この順序値「０３」を超える最小の順序値が「１０」であるので、新たなオブジェクト管理装置に割り当てられるべき順序キーは「１０」となる。
【００５７】
各オブジェクト管理装置は、オブジェクト管理装置に割り当てられている順序値以上の順序値に対応する部分空間領域であって、他のオブジェクト管理装置によって管理されていない部分空間領域を管理対象とする。つまり、順序値「００」のオブジェクト管理装置は、「００」、「０１」、「０２」、「０３」の４つの部分空間からなる部分空間セットＡを対象領域とし、この対象領域内のオブジェクトを管理の対象とし、新たな順序キー「１０」のオブジェクト管理装置は、「１０」以上の順序値に関連づけられている１２の部分空間領域からなる部分空間セットＢを対象領域とし、当該対象領域内のオブジェクトを管理対象とする（図１０（ａ），（ｂ））。
【００５８】
これにより、各オブジェクト管理装置は、６ずつのオブジェクトに係る処理を行うようになり、各オブジェクト管理装置の処理負荷が軽減される。また、互いに異なるオブジェクト管理装置によって管理されるオブジェクト間のメッセージの送受を実現するため、各オブジェクト管理装置は、メッセージの配送先を特定するためのルーティングテーブルを設定して保持する。
【００５９】
以下、例えば、負荷増大に伴う分割ポイントとして順序値「２１」が決定されると、順序値「２２」以上の部分空間領域内Ｃのオブジェクトを管理するオブジェクト管理装置が設定され（図１０（ｃ））、さらにその後、分割ポイントとして順序値「１１」が決定されると、「１２」から「２１」までの部分空間領域内Ｄのオブジェクトを管理するオブジェクト管理装置が設定される（図１０（ｄ））。こうして、当初のオブジェクト管理装置の対象領域が、連続した２つの部分空間セットに分割され、そのうちの一つが当初のオブジェクト管理装置の対象領域となり、他方が他の（新たな）オブジェクト管理装置の対象領域となる。
【００６０】
なお、ここでは対象領域を連続する２つの部分空間セットに分割する例について述べたが、分割ポイントを複数設定して、Ｎ個の部分空間セットに分割してもよい。この場合は、（Ｎ−１）個の新たなオブジェクト管理装置に各部分空間セットが割り当てられる。
【００６１】
［ルーティングテーブルの設定］
ここでルーティングテーブルの設定例について、順序キー「１０」のオブジェクト管理装置を設定した時点での処理を例として説明する。ルーティングテーブルは、各オブジェクト管理装置に割り当てられた順序値と識別キーとを用いて設定される。すなわち、例えば順序キー「Ｘ」のオブジェクト管理装置のルーティングテーブルにおいては、この順序値に前方一致（上位桁側が一致）する順序値のうち、最長一致する順序値が割り当てられている他のオブジェクト管理装置であって、識別情報（順序値と識別キーとを組とした値）同士の差が最も小さいオブジェクト管理装置へメッセージを配送することを定める。
【００６２】
上述のように、順序値「００」のオブジェクト管理装置と、順序値「１０」のオブジェクト管理装置とがある場合、それぞれに設定されるルーティングテーブルは、図１１（ａ），（ｂ）に示すようなものようになる。ここでのルーティングテーブルは、縦軸方向に、前方一致する桁数を表し、横軸方向に一致しない最初の桁の数値を表したテーブルとする。従って、順序値「００」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「０」、一致しない値が「１」である欄に、順序値「１０」のオブジェクト管理装置を特定する情報（識別情報）が設定されたものとなる。
【００６３】
また、順序キー「１０」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「０」、一致しない値が「０」である欄に、順序キー「００」のオブジェクト管理装置を特定する情報（識別情報）が設定されたものとなる。
【００６４】
各オブジェクト管理装置は、メッセージの配送が要求されたときに、当該要求に係るメッセージの宛先より小さい順序キーに関連するオブジェクト管理装置のうち、順序キーが最大の値となっているオブジェクト管理装置に対してメッセージを配送する。すなわち、メッセージの配送要求を受けたオブジェクト管理装置は、当該オブジェクト管理装置の順序キーＫ０と、ルーティングテーブルに設定されている他のオブジェクト管理装置の順序キーＫ１，…Ｋｎとを取得する。そして、取得した順序キーＫ０，Ｋ１…Ｋｎと、要求に係るメッセージの宛先の順序キーＫｍとを比較し、Ｋｉ＜Ｋｍである順序キーを選択する。さらに、選択した順序キーのうち、最大の値である順序キーＫｍａｘを選択して、当該選択した順序キーＫｍａｘがＫ０、つまりメッセージの配送要求を受けたオブジェクト管理装置自身に割り当てられている順序キーに等しいか否かを調べる。ここで、Ｋｍａｘ＝Ｋ０であれば、オブジェクト管理装置は、当該配送要求に係るメッセージを指定された宛先のオブジェクトに関連づけて記憶している、コンピュータ装置１０を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置１０へ、メッセージを送信する。
【００６５】
また、ＫｍａｘとＫ０とが等しくなければ、順序キーＫｍａｘに対応するオブジェクト管理装置として動作しているコンピュータ装置１０を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置１０へ、配送要求とともに、メッセージを送信する。
【００６６】
また、この図１１に示した例において、仮想空間分割処理によって順序値「１１」に新たなオブジェクト管理装置が設定されると、これに伴って図１２（ａ）から（ｃ）に示すように、ルーティングテーブルが変更される。
【００６７】
すなわち、順序値「００」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「０」、一致しない値が「１」である欄に、順序値「１０」のオブジェクト管理装置を特定する情報が設定され、同じく前方一致する桁数が「０」、不一致の値が「１」である欄に順序値「１１」のオブジェクト管理装置を特定する情報が設定される（図１２（ａ））ようになる。
【００６８】
また、順序値「１０」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「０」、一致しない値が「０」である欄に、順序値「００」のオブジェクト管理装置を特定する情報（識別情報）が設定され、さらに、前方一致する桁数が「１」、一致しない値が「１」である欄に順序値「１１」のオブジェクト管理装置を特定する情報が設定される（図１２（ｂ））ようになる。
【００６９】
さらに、順序値「１１」のオブジェクト管理装置に設定されるルーティングテーブルは、前方一致する桁数が「０」、一致しない値が「０」である欄に、順序値「００」のオブジェクト管理装置を特定する情報（識別情報）が設定され、さらに、前方一致する桁数が「１」、一致しない値が「０」である欄に順序値「１０」のオブジェクト管理装置を特定する情報が設定される（図１２（ｃ））ようになる。
【００７０】
［メッセージ転送装置］
なお、ここまでの説明では、オブジェクト管理装置が、メッセージの転送を実行する例について説明したが、オブジェクト管理装置は、メッセージの転送だけでなく、管理の対象となっているオブジェクトに係るクライアント側装置からの要求を受けて、オブジェクトの配置位置の変更（すなわちオブジェクトの移動）や、オブジェクトの取得（オブジェクトの消去と属性情報の変更）など、種々の処理を行っており、ゲームやチャットの内容によっては、その処理負荷が高くなる場合もある。
【００７１】
そこで専らメッセージの転送を行うコンピュータ装置１０（メッセージ転送装置）を、オブジェクト管理装置とは別に、仮想空間内に設定してもよい。
【００７２】
このメッセージ転送装置は、オブジェクト管理装置と略同様のものであるが、専らメッセージの転送に関する処理を実行するものであり、機能的には、図１３に示すように、処理実行部５１を含んで構成され、ルーティングテーブルを用いたメッセージの転送処理を実行する。
【００７３】
このメッセージ転送装置もまたオブジェクト管理装置と同様に、仮想空間内のいずれかの部分空間領域の順序値に関連づけられている。つまり、当該関連づけられた順序値の部分空間領域を管理するオブジェクト管理装置が、メッセージ転送装置となったコンピュータ装置１０を特定する情報と、順序値とを関連づけて記憶している。
【００７４】
また、メッセージ転送装置となったコンピュータ装置１０も、自己に割り当てられている順序値を記憶している。そしてメッセージ転送装置にも、ルーティングテーブルが設定され、このルーティングテーブルを参照して、メッセージの配送処理を行う。ここでのルーティングテーブルには、オブジェクト管理装置の識別情報の代りに、メッセージ転送装置の識別情報が含められる。
【００７５】
一方で、このメッセージ転送装置は、オブジェクトの移動や、消去、属性情報の変更などといったメッセージ転送以外の処理は行わない。
【００７６】
また、このメッセージ転送装置は、オブジェクト管理装置とペアとなって動作してもよい。このようにペアとなって動作する場合は、仮想空間内に配置されたオブジェクト管理装置の各々について、同一の順序値を識別情報に含むメッセージ転送装置が少なくとも一つ設定される。
【００７７】
この場合も、各メッセージ転送装置は、メッセージの配送が要求されたときに、当該要求に係るメッセージの宛先より小さい順序値に関連するメッセージ転送装置のうち、順序値が最大の値となっているメッセージ転送装置に対してメッセージを配送する。すなわち、メッセージの配送要求を受けたメッセージ転送装置は、当該メッセージ転送装置の順序値Ｋ０と、ルーティングテーブルに設定されている他のメッセージ転送装置の順序値Ｋ１，…Ｋｎとを取得する。そして、取得した順序値Ｋ０，Ｋ１…Ｋｎと、要求に係るメッセージの宛先の順序値Ｋｍとを比較し、Ｋｉ＜Ｋｍである順序値を選択する。さらに、選択した順序値のうち、最大の値である順序値Ｋｍａｘを選択して、当該選択した順序値ＫｍａｘがＫ０、つまりメッセージの配送要求を受けたメッセージ転送装置自身に割り当てられている順序値に等しいか否かを調べる。ここで、Ｋｍａｘ＝Ｋ０であれば、メッセージ転送装置は、順序値が共通している（同じ順序値を識別情報に含む）オブジェクト管理装置（同順オブジェクト管理装置）に、メッセージを転送する。そして当該転送を受けたオブジェクト管理装置が、当該配送要求に係るメッセージを指定された宛先のオブジェクトに関連づけて記憶している、コンピュータ装置１０を特定する情報を取得し、当該取得した情報で特定されるコンピュータ装置１０へ、メッセージを送信する。
【００７８】
また、メッセージ転送装置は、上記の判断においてＫｍａｘとＫ０とが等しくなければ、ルーティングテーブルの設定に従い、配送要求に係るメッセージの宛先に含まれる順序値に前方一致する順序値のうち、最長一致する順序値が割り当てられている他のメッセージ転送装置であって、識別情報（順序値と識別キーとを組とした値）同士の差が最も小さいメッセージ転送装置へメッセージを配送する。また、識別キーを用いないで、順序値のみで識別情報を構成することもできる。この場合には、例えば、メッセージテーブルにおいて、メッセージ転送装置あるいはオブジェクト管理装置とのネットワーク距離が最小となるもののみをルーティングテーブルに登録し、順序値に基づく処理でメッセージの配送を行う。
【００７９】
例えば、図１４に示すように、順序値「１０」に対応する領域に、オブジェクト管理装置（識別情報１０：００）と、２つのメッセージ転送装置（識別情報１０：１１と、１０：２２と）が設定されている場合であって、識別情報１０：１２のオブジェクト宛のメッセージが、他の順序値に係るメッセージ転送装置に送信された場合（Ｓ２１）、当該メッセージは、メッセージ転送装置１０：１１に転送され（Ｓ２２）、さらにオブジェクト管理装置１０：００へ送信される（Ｓ２３）。そして、オブジェクト管理装置が識別情報１０：１２のオブジェクトに係るコンピュータ装置１０へとメッセージを送信する（Ｓ２４）。
【００８０】
このようにメッセージ転送装置を用いると、管理対象外のオブジェクトへのメッセージ転送がメッセージ転送装置によって行われることとなって、オブジェクト管理装置は管理対象のオブジェクトに係るメッセージを取り扱うだけで済む。これによりオブジェクト管理装置の処理負荷をより軽減できる。
【００８１】
なお、図１４では、Ｚ順序の順序空間を表す数直線の端部同士を結合して無端状（ループ状）に図示している。
【００８２】
このようにメッセージ転送装置が設定される場合において、オブジェクト管理装置が、仮想空間分割処理を行うにあたり、新たなオブジェクト管理装置を設定する場合は、メッセージ転送装置の一つに対してオブジェクト管理装置となるよう要求することとしてもよい。
【００８３】
この際、仮想空間分割処理を行うオブジェクト管理装置は、同じ順序値に関連づけられている複数のメッセージ転送装置があるか否か（複数のメッセージ転送装置が設定されている部分空間領域があるか否か）を調べ、同じ順序値に関連づけられている複数のメッセージ転送装置がある場合に、当該複数のメッセージ転送装置のいずれか一つに対してオブジェクト管理装置となるよう要求する。これにより、メッセージ転送装置の設定のない部分空間領域ができないようにする。すなわちこの場合は、メッセージ転送装置の識別情報に含まれる順序値とは異なる順序値に関連づけられたオブジェクト管理装置となるよう指示してもよい。
【００８４】
この要求を受けたメッセージ転送装置（コンピュータ装置１０）は、まず、要求を受けた時点での位置から退去する旨の通知を、オブジェクト管理装置に対して送信する。オブジェクト管理装置は、この通知を受けて、当該要求元となったメッセージ転送装置を仮想空間から除去する（識別情報を削除する）。次に、メッセージ転送装置として動作していたコンピュータ装置１０は、要求に含まれていた順序値に対応する順序値の位置にオブジェクト管理装置として配置するべき旨の要求を、当該順序値に対応する順序値の領域を管理しているオブジェクト管理装置（オブジェクト管理装置となるべき旨の要求の送信元であるオブジェクト管理装置）に送信する。そして、これらのオブジェクト管理装置が、分割された各部分空間領域を、それぞれ管理するようになる。
【００８５】
また、仮想空間分割処理を行うオブジェクト管理装置は、分割ポイントが属している部分空間領域（例えば図１０（ｂ）の状態にあるとき、分割ポイント「２１」は順序値「１０」以上の領域に属している）に、複数のメッセージ転送装置が設定され、かつ、当該複数のメッセージ転送装置の一部が分割ポイントとなった順序値未満（又は以下）の順序値に関連づけられ、他の一部が分割ポイントとなった順序値以上の（又は順序値より大きい）順序値に関連づけられていることを条件として、つまり、分割ポイントで分割した後の各部分空間領域にそれぞれ少なくとも一つのメッセージ転送装置が設定されることとなることを条件として、仮想空間分割処理を実行することとしてもよい。そして、この条件が満足されない場合は、オブジェクト管理装置は、仮想空間分割処理を中断してもよい。
【００８６】
なお、メッセージ転送装置や、オブジェクト管理装置として動作するコンピュータ装置１０が、当該動作を停止したか、ネットワークから接続を解除した場合は、一部の部分空間領域にメッセージが到達しなくなる。そこで、各コンピュータ装置１０は、メッセージを受信したときには、その旨（ＡＣＫ）を、メッセージの送信元へ返信するものとし、メッセージの送信後、所定の時間（タイムアウト）までにＡＣＫが受信されない場合は、再度メッセージの送信を行い、この再度の送信後、タイムアウトまでにＡＣＫが受信されない場合は、ルーティング情報を更新するべき旨の要求を、各オブジェクト管理装置へ一斉に（またはネットワーク上の各コンピュータ装置１０へ一斉に）送信するようにしてもよい。各オブジェクト管理装置では、そのうちの一つが初期的に識別情報「００：００」となって、仮想空間全体を管理することとなり、以降、仮想空間分割処理を順次実行しつつ、ルーティングテーブルや、部分空間領域の再構成を行う。
【００８７】
このように本実施の形態によると、オブジェクト管理装置が、仮想的な空間上に割り当てられた順序値に基づいて、管理対象の領域を画定する。これによって、複数のオブジェクト管理装置によって、仮想空間内のオブジェクトを分散管理させる際に、注目オブジェクトがどのオブジェクト管理装置によって管理されているかを簡便な処理によって特定でき、処理負荷を軽減できる。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施の形態に係るオブジェクト管理システムの構成例を表すブロック図である。
【図２】本発明の実施の形態に係るオブジェクト管理システムによって管理される仮想空間の例を表す説明図である。
【図３】本発明の実施の形態に係るオブジェクト管理装置として動作するコンピュータ装置の機能ブロック図である。
【図４】Ｚ順序の例を表す説明図である。
【図５】本発明の実施の形態に係るオブジェクト管理装置が保持するオブジェクトデータベースの内容例を表す説明図である。
【図６】本発明の実施の形態に係るクライアント側装置として動作するコンピュータ装置の機能ブロック図である。
【図７】本発明の実施の形態に係るオブジェクト管理システムにおいて、オブジェクトが近傍のオブジェクトを探索する際の状態例を表す説明図である。
【図８】本発明の実施の形態に係るオブジェクト管理システムにおいて、オブジェクトが移動したときの処理の例を表すフロー図である。
【図９】本発明の実施の形態に係るオブジェクト管理装置が管理しているオブジェクトの配置例を表す説明図である。
【図１０】本発明の実施の形態に係るオブジェクト管理装置による仮想空間分割処理の動作概要を表す説明図である。
【図１１】本発明の実施の形態に係るオブジェクト管理システムで利用されるルーティングテーブルの例を表す説明図である。
【図１２】本発明の実施の形態に係るオブジェクト管理システムで利用されるルーティングテーブルの変化例を表す説明図である。
【図１３】本発明の実施の形態に係るメッセージ転送装置として動作するコンピュータ装置の機能ブロック図である。
【図１４】本発明の実施の形態に係るオブジェクト管理システムにおけるメッセージのルーティングの例を表す説明図である。
【符号の説明】
【００８９】
１０  コンピュータ装置、２１  制御部、２２  記憶部、２３  通信部、３１  仮想空間管理部、３２，５１  処理実行部、３３  仮想空間分割処理部、４１  オブジェクト配置要求部、４２  オブジェクト処理部、４３  転換部。
【図１】
2007164252.tif 000003
【図２】
2007164252.tif 000004
【図３】
2007164252.tif 000005
【図４】
2007164252.tif 000006
【図５】
2007164252.tif 000007
【図６】
2007164252.tif 000008
【図７】
2007164252.tif 000009
【図８】
2007164252.tif 000010
【図９】
2007164252.tif 000011
【図１０】
2007164252.tif 000012
【図１１】
2007164252.tif 000013
【図１２】
2007164252.tif 000014
【図１３】
2007164252.tif 000015
【図１４】
2007164252.tif 000016