(57)【特許請求の範囲】
【請求項１】
ピアツーピアネットワークで通信を行うための相互接続フレームワークシステムであって、前記相互接続フレームワークシステムのピアは、
前記ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うピアライブラリと、
前記ピアにおいて実行されるアプリケーションの要件に応じてコンポーネントブロックを管理するためのテレスペースフレームワークシステムと、を有し、前記ピアライブラリによって送られてくる前記コンポーネントブロックは、前記要件に応じて、前記ピアにおいて前記アプリケーションの実行を可能にするものであり、
前記ピアライブラリは、前記ピアが、前記ピアツーピアネットワークの選択したグリッドのピアとの通信を可能にするネットワーカーコンポーネントを含み、
前記ネットワーカーコンポーネントはさらに、
前記ピアのリソースを前記ピアツーピアネットワークのその他のピアへパブリッシュし、前記ピアツーピアネットワークのその他のピアからオブジェクトを取得するためのリソースマネージャと、
前記ピアツーピアネットワークの特定のグリッドを生成もしくは特定のグリッドを接続するとともに、特定のピアにより特定のグリッドがアクセス可能となるようにグリッドのフィルタリングを行うグリッドマネージャと、
前記ピアツーピアネットワークから前記ピアにおいてメッセージを受信するためのディスパッチャと、を含む、ピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項２】
１つまたはそれ以上のコンポーネントブロックによりオブジェクトが構成される、請求項１記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項３】
集合コンポーネントブロックによりエンティティが構成される、請求項１記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項４】
前記テレスペースフレームワークシステムはさらに、
パブリッシュ及びサブスクライブコンポーネントを有し、前記パブリッシュ及びサブスクライブコンポーネントは前記ピアにおいて、あるオブジェクトが利用できるかを前記ピアツーピアグリッドのピアに通知し、かつ、前記グリッド上のその他のピアのオブジェクトからステータス通知を要求するように構成されている、請求項２記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項５】
前記ディスパッチャは、前記受信したメッセージを前記アプリケーションへ伝達する、もしくは前記メッセージを別のピアへ送るように構成されている、請求項１記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項６】
前記ネットワーカーコンポーネントはさらに、ダイナミックオーバーレイオブジェクトコンポーネントを含む、請求項１記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項７】
前記ダイナミックオーバーレイオブジェクトコンポーネントは前記ピアツーピアネットワークにおいてグリッドオーバーレイを確立するためのコードコンポーネント及びフル接続グラフコンポーネントを含む、請求項６記載のピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項８】
ピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置であって、前記ネットワーカーコンポーネント装置は、
前記ピアのリソースを前記ピアツーピアネットワークのその他のピアへパブリッシュし、かつ、アプリケーションに対する前記ピアツーピアネットワークの前記その他のピアからオブジェクトを取得するためのリソースマネージャと、
前記ピアツーピアネットワークの特定のピアを生成する、もしくは特定のピアを接続するとともに、特定のピアにより特定のグリッドがアクセス可能となるようにグリッドのフィルタリングを行うグリッドマネージャと、
前記ピアツーピアネットワークから、前記ピアにおいてメッセージを受信するためのディスパッチャと、
前記グリッドマネージャからの命令に応じて、前記特定のグリッドを生成するためのダイナミックオーバーレイオブジェクト（ＤＯＯ）を含み、
前記ダイナミックオーバーレイオブジェクトコンポーネントは前記ピアツーピアネットワークにおいてグリッドオーバーレイを確立するためのコードコンポーネント及びフル接続グラフコンポーネントを備えている、ピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置。
【請求項９】
前記ディスパッチャは前記受信したメッセージを前記アプリケーションへ伝達する、もしくは前記メッセージを別のピアへ送るように構成されている、請求項８記載のピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）をのためのネットワーカーコンポーネント装置。
【請求項１０】
前記アプリケーションは前記アプリケーションの完全な機能のために要求される特定のオブジェクトを命令する属性を識別し、前記アプリケーションは前記ピアツーピアネットワーク上で前記アプリケーションを実行するオブジェクトを操作できる、請求項８記載のピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置。
【請求項１１】
前記オブジェクトは１つまたはそれ以上のコンポーネントブロックによって構成され、かつ、集合コンポーネントブロックは前記ピアの前記アプリケーションによって利用されるエンティティを構成する、請求項１０記載のピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置。
【請求項１２】
前記ネットワーカーコンポーネント装置は前記ピアのオペレーティングシステムのソケットＡＰＩと通信する、請求項８記載のピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置。
【請求項１３】
前記アプリケーションはピアに対する興味空間を確立するフィルタリングを定義し、前記ピアに対する前記興味空間は前記アプリケーションに関連するメッセージ、もしくはコンポーネントブロックとメッセージの両方を共有もしくは交換するピアのサブセットを含む、請求項８記載のピアツーピアネットワークにおいてピアのアプリケーションプログラミングインターフェース（ＡＰＩ）のためのネットワーカーコンポーネント装置。
【請求項１４】
ピアツーピアネットワークに接続されたテレスペースフレームワークを有するピアにおいてアプリケーションを実行する方法であって、
前記ピアが、
前記ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うピアライブラリを定義するステップと、
前記ピアが、
前記ピアにおいて実行されるアプリケーションの要件に応じてコンポーネントブロックを管理するためのテレスペースフレームワークを定義するステップとを有し、前記コンポーネントブロックは、前記ピアライブラリによって取得され、前記要件に応じて、前記ピアにおいて前記アプリケーションの実行を可能にし、
前記ピアライブラリは、前記ピアが前記ピアツーピアネットワークの選択されたグリッドのピアとの通信を可能にするためのネットワーカーコンポーネントを含み、
前記ネットワーカーコンポーネントは、
前記ピアのリソースを前記ピアツーピアネットワークのその他のピアへパブリッシュし、かつ前記ピアツーピアネットワークの前記その他のピアからオブジェクトを取得するためのリソースマネージャと、
前記ピアツーピアネットワークの特定のグリッドを生成もしくは特定のグリッドに接続するとともに、特定のピアにより特定のグリッドがアクセス可能となるようにグリッドのフィルタリングを行うグリッドマネージャと、
前記ピアツーピアネットワークから前記ピアにおいてメッセージを受信するためのディスパッチャと、を含む、ピアツーピアネットワークに接続されたテレスペースフレームワークを有すピアにおいてアプリケーションを実行する方法。
【請求項１５】
前記アプリケーションの前記要件は、アプリケーションのタイプを定義する、請求項１４記載のピアツーピアネットワークに接続されたテレスペースフレームワークを有すピアにおいてアプリケーションを実行する方法。
【請求項１６】
パブリッシュ及びサブスクライブコンポーネントを実行するステップを更に含み、前記パブリッシュ及びサブスクライブコンポーネントは前記ピアにおいて、あるオブジェクトが利用可能であるかを前記ピアツーピアグリッドのピアに通知し、かつ、前記グリッド上のその他のピアのオブジェクトからステータス通知を要求するように構成されている、請求項１４記載のピアツーピアネットワークに接続されたテレスペースフレームワークを有すピアにおいてアプリケーションを実行する方法。
【請求項１７】
ピアツーピアネットワークに接続されたテレスペースフレームワークを備えたピアにおいてアプリケーションを実行するためのプログラム命令を含むコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
前記ピアツーピアネットワーク上でブロックコンポーネントのパブリッシング、メッセージング、及びロケーティングを行うためのピアライブラリを定義するためのプログラム命令と、
前記ピアにおいて実行されるアプリケーションの要件に応じてコンポーネントブロックを管理するためのテレスペースフレームワークを定義するためのプログラム命令と、を含み、前記コンポーネントブロックは、前記ピアライブラリによって取得され、前記要件に応じて、前記ピアにおいて前記アプリケーションの実行を可能にするものであり、
前記ピアライブラリを定義するためのプログラム命令には、前記ピアが前記ピアツーピアネットワークの選択したグリッドのピアと通信することを可能にするネットワーカーコンポーネントを含み、
前記ネットワーカーコンポーネントはさらに、
前記ピアのリソースを前記ピアツーピアネットワークのその他のピアへパブリッシュし、前記ピアツーピアネットワークのその他のピアからオブジェクトを取得するためのリソースマネージャと、
前記ピアツーピアネットワークの特定のグリッドを生成もしくは特定のグリッドを接続するとともに、特定のピアにより特定のグリッドがアクセス可能となるようにグリッドのフィルタリングを行うグリッドマネージャと、を含むものである、ピアツーピアネットワークに接続されたテレスペースフレームワークを備えたピアにおいてアプリケーションを実行するためのプログラム命令を含むコンピュータ可読媒体。
【請求項１８】
前記アプリケーションの前記要件はアプリケーションのタイプを定義する、請求項１７記載のコンピュータ可読媒体。
【請求項１９】
前記コンピュータ可読媒体はさらに、
パブリッシュ及びサブスクライブコンポーネントを実行するためのプログラム命令を含み、前記パブリッシュ及びサブスクライブコンポーネントは前記ピアにおいて、あるオブジェクトが利用可能であるかを前記ピアツーピアグリッドのピアに通知し、かつ、前記グリッド上のその他のピアのオブジェクトからステータス通知を要求するように構成されている、請求項１７記載のコンピュータ可読媒体。
【請求項２０】
ピアツーピアネットワークで通信を行うための相互接続フレームワークシステムであって、前記相互接続フレームワークシステムのピアは、
前記ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うピアライブラリ手段、及び
前記ピアにおいて実行されるアプリケーションの要件に応じてコンポーネントブロックを管理するためのフレームワーク手段を含み、前記コンポーネントブロックは前記ピアライブラリ手段によって送られており、前記要件に応じて、前記ピアにおいて前記アプリケーションの実行を可能にし、
前記ピアライブラリ手段は、前記ピアが前記ピアツーピアネットワークの選択したグリッドのピアとの通信を可能にするネットワーカー手段を含み、
前記ネットワーカー手段はさらに、
前記ピアのリソースを前記ピアツーピアネットワークのその他のピアへパブリッシュし、かつ前記ピアツーピアネットワークの前記その他のピアからオブジェクトを取得するためのリソースマネージング手段、
前記ピアツーピアネットワークの特定のグリッドを生成し、もしくは特定のグリッドに接続するとともに、特定のピアにより特定のグリッドがアクセス可能となるようにグリッドのフィルタリングを行うためのグリッドマネージング手段、及び、
前記ピアツーピアネットワークから前記ピアにおいてメッセージを受信するためのディスパッチ手段、を含む、ピアツーピアネットワークで通信を行うための相互接続フレームワークシステム。
【請求項２１】
１つまたはそれ以上のコンポーネントブロックによりオブジェクトが構成される、請求項２０記載の相互接続フレームワークシステム。
【請求項２２】
集合コンポーネントブロックによりエンティティが構成され、請求項２０記載の相互接続フレームワークシステム。
【請求項２３】
前記フレームワーク手段はさらに、
前記ピアにおいて、あるオブジェクトが利用可能であるかを前記ピアツーピアグリッドのピアに通知し、かつ、前記グリッドのその他のピアのオブジェクトからステータス通知を要求するためのパブリッシング及びサブスクライビング手段を含む、請求項２１記載の相互接続フレームワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はピアツーピアネットワークに関し、より具体的には、仮想／現実世界に接続した環境において、ピアがデータへアクセスし、アプリケーションとインタラクトし、またコンテンツを検索することができるフレームワークインフラストラクチャに関する。
【背景技術】
【０００２】
分散型コンピューティング環境は相互に通信するように相互接続された多数のコンピューティングシステムによって定義され、各コンピューティングシステムはクライアントとサーバ両方の機能を果たすことができる。ピアツーピア（Ｐ２Ｐ）ネットワークは分散型コンピューティング環境を表し、Ｐ２Ｐネットワーク内の各コンピューティングシステムはネットワーク内の全てのその他のコンピューティングシステムのピアとして定義される。本文では、Ｐ２Ｐネットワーク内の各ピアのコンピューティングシステムはノードと呼ばれる。さらに、Ｐ２Ｐネットワーク内の各ノードは実質的に等価の機能を有するソフトウェアを実行するように構成されている。従って、各ノードはＰ２Ｐネットワークを通じて、データのプロバイダ及びユーザの双方として機能することが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ピアツーピアネットワーキングは長年にわたり改良され、新たな用法がそのようなネットワーキングを利用し続けているが、ピアツーピアネットワーキングの主な機能はあまり変わっていない。一般にネットワークの各ピアは１つ又はそれ以上のアプリケーションを有し、そのようなアプリケーションはその他のピアのその他のアプリケーションとの通信を行う。いくつかのピアはリクエストピアへデータを送り、その他のピアはその他のピアに対してデータを処理する。そのような機器構成では、ネットワークのアクティブメンバーになるために各ピアが要求する投資額は多大となる。ピアコンピュータにピアネットワーキングアプリケーションをロードする必要があり、あるアプリケーションにアクセスするためにはドライバをインストールする必要があり得、また、他のピアとの通信は接続を必要とするネットワークのピアプロトコルが命令する。
【０００４】
前述の点を鑑みて、接続したピアツーピアネットワーク上でフレキシブルな通信と、アプリケーション及びデータとのインターフェース接続を可能にするフレームワークが求められている。
【課題を解決するための手段】
【０００５】
概して、本発明はアーキテクチャ、方法、及びコンピュータ可読媒体を提供する。アーキテクチャ及びコンピュータに実装された方法は、ピアツーピアネットワークのグリッド上にコンポーネント形式でアプリケーションを実行するためのフレームワークを定義する。テレスペースフレームワークは特定のタイプのアプリケーションを実行するために必要なコンポーネントを定義するための、もしくはメッセージを伝達するためのアプリケーションを使用可能にする。このテレスペースフレームワークはピアライブラリ（ＰｅｅｒＬｉｂ）を含み、これはピアツーピアネットワークの特定のグリッドに接続したピアとの通信機能を使用可能にする。本発明は様々な方法で、例えば、コンピュータ可読媒体上の方法、デバイス、システム、装置、もしくはプロセスなど、で実装され得る。本発明の様々な独創的実施形態が以下に説明されている。
【０００６】
ピアツーピアネットワークで通信を行うための相互接続フレームワークが開示されている。相互接続フレームワークのピアは、ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うためのピアライブラリと、そのピアにおいて実行されるアプリケーションの要件に応じて、コンポーネントブロックを管理するためのテレスペースフレームワークを備えている。ピアライブラリによって送られてくるコンポーネントブロックは、その要件に応じて、ピアにおいてアプリケーションの実行を可能にする。
【０００７】
ピアツーピアネットワークのアプリケーションプログラミングインターフェース（ＡＰＩ）を促進するためのネットワーカーコンポーネントが開示されている。このネットワーカーコンポーネントはピアのリソースをピアツーピアネットワークのその他のピアへパブリッシュし、アプリケーションに対するオブジェクトを、ピアツーピアネットワークのその他のピアから取得するためのリソースマネージャを備えている。さらに、ピアツーピアネットワークの特定のグリッドを生成もしくは特定のグリッドに接続するために、グリッドマネージャを備えている。また、ピアにおいてピアツーピアネットワークからメッセージを受信するためのディスパッチャも備えている。さらに、グリッドマネージャからの命令に応じて特定のグリッドを生成するためのネットワーカーの一部として、ダイナミックオーバーレイオブジェクト（ＤＯＯ）コンポーネントが提供される。
【０００８】
ピアツーピアネットワークに接続されたテレスペースフレームワークを備えたピアにおいてアプリケーションを実行するための方法が開示されている。方法はまず、ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うためのピアライブラリを定義する。次いで、方法はピアにおいて実行されるアプリケーションの要件に応じてコンポーネントブロックを管理するためのテレスペースフレームワークを定義する。このコンポーネントブロックはピアライブラリにより送られ、要件に応じてピアにおいてアプリケーションの実行を可能にする。
【０００９】
ピアツーピアネットワークに接続されたテレスペースフレームワークを備えたピアにおいてアプリケーションを実行するためのプログラム命令を含むコンピュータ可読媒体が開示されている。このコンピュータ可読媒体は、ピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うためのピアライブラリを定義するプログラム命令を含む。コンピュータ可読媒体はさらに、ピアにおいて実行されるアプリケーションの要件に応じて、コンポーネントブロックを管理するためのテレスペースフレームワークを定義する。ピアライブラリにより送られてくるコンポーネントブロックは、要件に応じて、ピアにおいてアプリケーションの実行を可能にする。
【００１０】
ピアツーピアネットワークにおいて通信を行うための相互接続フレームワークが提供されている。相互接続フレームワークのピアはピアツーピアネットワーク上でコンポーネントブロックのパブリッシング、メッセージング、及びロケーティングを行うためのピアライブラリ手段を備えている。この相互接続フレームワークはさらに、ピアで実行されるアプリケーションの要件に応じて、コンポーネントブロックを管理するためのフレーム手段を備えている。このコンポーネントブロックはピアライブラリ手段により送られ、要件に応じて、ピアにおいてアプリケーションの実行を可能にする。
【００１１】
本発明のその他の形態は、本発明の原理の一例によって例示されている添付の図面と併せて以下の説明を読めば明らかであろう。
本発明の実施形態は添付の図面と併せて以下の説明を参照すれば、最も良く理解できる。
【発明を実施するための最良の形態】
【００１２】
図１はピアツーピアネットワークの一部であるピアのオペレーティングシステム１１４上で機能するテレスペースコンポーネント１００を例示している。一実施形態では、テレスペースコンポーネント１００はアプリケーションを含み得る。本例では、アプリケーションは仮想世界アプリケーション１０２である。仮想世界アプリケーション１０２は、どのアプリケーションのコンピューティング機能に対してもユーザがアクセスできるようにするためのアプリケーションである。このアプリケーションはいずれのタイプであることができ、与えられている機能には、現実世界のオブジェクトをシミュレートするコンポーネント及び形態とのインタラクティビティを含む。例えば、現実世界では、人々は一般的な現代生活において機能するように多くのリソースを使用する。
【００１３】
そのようなリソースには、コンピュータ、電話、セルラー通信機器、ゲームプログラム、ビデオ及びオーディオエンターテインメント、新聞、個人対個人のコミュニケーション、が挙げられる。人がいる場所に応じて、現実世界は様々な経験とアクセスを提供し、特定のリソースとインタラクトできる。例えば、ある人物がオフィスにいる間に利用可能なリソースは、その人物が自宅やレストランにいる間に利用可能なリソースとは異なり得る。多くの場合、リソース、例えば歌のオーディオライブラリ、は、その人物の自宅のコンピュータ上のみで利用可能であり、オフィスでは利用できない。別の例では、通りを歩いているある人物は自宅では利用できない多くのリソースに遭遇する。そのようなリソースとしては、例えば、店頭、気象条件、銀行、他の人物、ポスター、レストラン、自動車など、が挙げられる。つまり、多くの場合、人々は自分たちの物理的な場所に応じて、自分たちが利用できるリソースを知ったうえで、現実世界で機能する傾向があることは良く知られているであろう。仮想世界アプリケーション１０２は、その人物がどこに旅行したいか、あるいはインタラクトしたいかに基づいて、現実世界の模倣を試みており、どのようなタイプのリソースやコンテンツに遭遇するかに関しては、仮想的には無制限となっている。
【００１４】
その結果、仮想世界アプリケーション１０２により、ユーザは、利用可能な“インタレストスペース(興味空間)”のメニューを提供する環境に入ることができ、ユーザの選択結果に応じて、仮想世界で利用可能なオプションの更に下の階層が表示される。例えば、ユーザがゲーム部屋に入ることを希望する場合、興味空間には、現在進行しているか、あるいはユーザが利用可能であるゲームセッションが含まれる。興味空間の一部として、同じ興味空間を選択した他のユーザ達は既に相互接続され得、また、情報、プログラムコンポーネント、データ、及び通信メッセージを相互に共有することができる。基本的なピアツーピアネットワークの相互接続性は、本文中では多くの同義語によって呼ばれ、そのような同義語には“ピアツーピアオーバーレイ”、“グリッド”、“ネットワークグリッド”または、“グリッドオーバーレイ”が挙げられる。ピアツーピアネットワーキングはネットワーク通信形式を意味し、全てのノードはデータの送受信を行うための略等価の機能を有す。従って、仮想世界アプリケーション１０２は単なる一例であって、ピアが興味空間に入ることを選択すると、そのネットワークグリッド（ピアはそのネットワークグリッドの一部である）も変わるであろう。興味空間でユーザ（つまり、接続したピア）がやりたいことに基づいて、そのピアはその他の利用可能なアプリケーションを選択することができる、以下に説明しているように、アプリケーションは実質的に変化する。また、ピア上で実行中のアプリケーションは分散型のコンポーネントアーキテクチャに基づき動作する。
【００１５】
興味空間マネージメントでは、フィルタリングが実行される。このフィルタリングにより特定のピアによりアクセスされる特定のグリッドが使用可能にされる。このフィルタリングは、タスク依存、プライオリティ依存、エンティティ依存、インタラクティブ／リアルタイム評価、データ収集とキャッシング、及び要求駆動型実行(lazy evaluation)と拡張可能な興味区域のフィルタリング、としてもよい。まず、あるピアに対する開始地点は“ホームスペース”であり、これはピアユーザが最も興味のあるグリッドオーバーレイを定義する。ホームスペースへのアクセスはサブスクリプションベース、もしくは実生活のように中央集権型に組織化したものとしてもよい。ローカルスペースｖｓ．共有スペースもまたフィルタリングを決定する要因であり得る。あるいは、フィルタリングを物理的ベース（つまり、バーチャルロケーションマッピングに対するＧＰＳ）のものとすることもできる。
【００１６】
従って、ピア上で実行中のアプリケーションはコンポーネントブロック（オブジェクト）によって定義される。これらはテレスペースフレームワーク１０４のコンポーネントアーキテクチャ１０６の一部である。テレスペースフレームワーク１０４はさらに、パブリッシュ及びサブスクライブ（Ｐ＆Ｓ）コンポーネント１０７、ビアライブラリ（ＰｅｅｒＬｉｂ）１０８、及び、ＰｅｅｒＬｉｂ１０８の一部であるＰ２Ｐ  ＡＰＩ１１０を備えている。その結果、ピアツーピアネットワークの各ピアのテレスペースコンポーネント１００は自身のオペレーティングシステム１１４上で実行する。
【００１７】
ここでは、用語“テレスペース”は、スペースのタイプを識別するものであり、ピアツーピアネットワークのピアがそのスペースにおいて、その他のピアまたはピアグループに接続する、あるいはその他のピアまたはピアグループに入る、その他のピアまたはピアグループから出る、その他のピアまたはピアグループにインタラクトする、その他のピアまたはピアグループを通じて通信する、及び、単にその他のピアまたはピアグループと通信する、というタイプのものである、ということを識別するものである。従って、特定のテレスペースのスペースは、特定のグリッドに接続済みのあるピアが相互にインタラクトし、データを共有し（例えば、ファイルデータ、コンポーネントデータ、オーディオ及び／またはビデオデータ、ゲームデータ、マルチメディアデータ、など）、コンポーネントもしくはオブジェクトを共有し、１つまたはそれ以上のピアとのリンクセッションを確立できる多数のグリッドもしくは定義された対象となる特定のグリッドを含み得る。従って、用語“テレスペース”には、特定のスペースに対する説明した構造及び／または機能に対するコンテキストを提供する広い定義が与えられるべきである。しかしながら、これにより請求項を限定することを意図するものではない。
【００１８】
上述の定義を念頭において、テレスペースフレームワークＡＰＩ１０４はアプリケーションに応じて様々な機能を提供する。図２の単純な例では、アプリケーションは制限された単純な例として、接続性アプリケーション１０２ａ、ゲームアプリケーション１０２ｂ、ゲームアプリケーション１０２ｃ、及びより広範囲を包含する仮想世界アプリケーション１０２を含み得る。仮想世界アプリケーション１０２に関連して、仮想世界アプリケーション１０２を定義するアプリケーションはこのアプリケーションを定義するためにあるコンポーネントブロックを要求する。このコンポーネントブロックはテレスペースフレームワークＡＰＩのコンポーネントアーキテクチャ１０６によって管理される。コンポーネントアーキテクチャ１０６のコンポーネントブロックはデータ及び／または方法周辺のラッパー（wrapper）を定義するオブジェクトである。本アプリケーションで使用されているように、オブジェクトとコンポーネントブロックはインターチェンジャブルで、相互に置き換えが可能である。しかし、いくつかのオブジェクトは１つ以上のコンポーネントブロックから構成されている。これらの集団となったブロックはエンティティと呼ばれる。
【００１９】
テレスペースコンポーネント１００のピアツーピア環境では、アプリケーションはコンポーネントアーキテクチャ１０６のコンポーネントブロックによって定義される。アプリケーションに応じて、あるコンポーネントブロックはアプリケーションの機能を定義するために、ピアツーピアグリッドのピアから要求される。テレスペースフレームワークＡＰＩ１０４はさらに、パブリッシュ及びサブスクライブ（Ｐ＆Ｓ）コンポーネント１０７を備えている。このＰ＆Ｓコンポーネント１０７はピアライブラリ（ＰｅｅｒＬｉｂ）コンポーネント１０８と通信する。ＰｅｅｒＬｉｂコンポーネント１０８はパブリッシュ／メッセージ／ロケート（ＰＭＬ）コンポーネント１１１と、ピアツーピア（Ｐ２Ｐ）ＡＰＩ１１０を備えている。このＰ２Ｐ  ＡＰＩ１１０の詳細は以下に説明されており、これはネットワーカー３０２と定義される。
【００２０】
Ｐ＆Ｓコンポーネント１０７はコンポーネントアーキテクチャ１０６の一部であるコンポーネントブロック（つまり、オブジェクト）の属性をパブリッシュする。このようにして、グリッドオーバーレイに接続した他のピアは、コンポーネントブロックのどの属性が共有可能であるかが分かる。このＰ＆Ｓコンポーネント１０７はまた、サブスクライブを行う。このサブスクライブ機能によってグリッドオーバーレイ上のその他のパブリッシュ済みのオブジェクトへメッセージが送信される。従って、ピアは、これらのピアがグリッドオーバーレイ上のその他のピアと共有できるオブジェクトを保持していることをパブリッシュし、また、ピアがグリッドオーバーレイ上にある既にパブリッシュ済みのオブジェクトから情報とステータスのサブスクライブを行う。その結果、コンポーネントアーキテクチャ１０６のコンポーネントブロックは、Ｐ＆Ｓコンポーネント１０７を使用して属性をパブリッシュし、グリッドオーバーレイ上のコンポーネントの属性をサブスクライブする。
【００２１】
Ｐ＆Ｓコンポーネント１０７はメッセージベース（例えば、階層的ＡＳＣＩＩ、バイナリ、ＸＭＬのような、など）である。物理的表現（physical representation）はコンポーネント間通信のためのデータ転送ソリューションには依存しない。そのため、Ｐ＆Ｓ機構１０７は所定のコンピュータアーキテクチャに対して最適化され、また、ネットワーク転送に対して最適化される。従って、一実施形態では、サブスクライブされた場合だけデータが送信される。そのため、Ｐ＆Ｓコンポーネント１０７はソースコンポーネントからの命令に基づき（例えば、実行後、フラッグの変更、など）、及び遠隔複製コンポーネントを含むその他のコンポーネントからのリクエストに基づき、サブスクリプションリクエストのトラッキングとパブリッシュ可能な属性を送る。このＰ＆Ｓコンポーネント１０７はさらに、サブスクライブしたデータを送信する。例としては、メッセージキューハンドリング、ペアレントコーリング（例えば、次のメッセージを受取る）、自動データプレースメント（通知あり、通知なしで）、半自動データプレースメント、などが挙げられる。
【００２２】
一方で、ＰＭＬコンポーネント１１１はグリッドオーバーレイとのオブジェクトのパブリッシング、メッセージング、及びオブジェクトのロケーティングを行う。ＰＭＬコンポーネント１１１のパブリッシュコードは、オブジェクトをパブリッシュするだけでなく、Ｐ＆Ｓコンポーネント１０７に対する属性もパブリッシュする。従って、ＰｅｅｒＬｉｂコンポーネント１０８はアプリケーションの必要性に応じて、Ｐ２Ｐ  ＡＰＩ１１０を通じてコンポーネントブロック（つまり、オブジェクト）を取得する必要がある。上述のように、特定のピア上で実行中のアプリケーションはコンポーネントアーキテクチャ１０６が管理するコンポーネントブロックから構成される。次いでアプリケーションはコンポーネントブロックへアクセスし、ファンクショナルアプリケーションを形成する。従って、所望のアプリケーションに応じて、コンポーネントブロックはＰｅｅｒＬｉｂ  １０８のＰＭＬコンポーネント１１１によって、グリッドオーバーレイ上に送られる。
【００２３】
これらのコンポーネントブロックはグリッドオーバーレイ上に共有されているので、ピアがグリッドオーバーレイに接続し、もしくはグリッドオーバーレイを離れる場合は、コンポーネントブロックはその他の接続したピアへ移動する。このようにして、特定のコンポーネントのブロックの機能を必要とするピアはコンポーネントブロックを取得することができ、もしくは、コンポーネントの可用性あるいはコンポーネントが利用可能であるか否かをパブリッシュする別のピアからコンポーネントブロックにアクセスすることができる。
【００２４】
図２を参照すると、アプリケーション１０２ａと１０２ｂはコンポーネントアーキテクチャ１０６を必要としないアプリケーションを利用する。例えば、接続性アプリケーション１０２ａはＰ２Ｐ  ＡＰＩ１００を通じて、グリッドとのメッセージ（例えば、単純なデータもしくはファイルを含む）を簡単に交換できる。従って、電話会議もしくはファイルを共有するために使用され得る接続性アプリケーション１０２ａの動作においては、コンポーネント必要ではない。メッセージ通信を使用するだけでピアツーピアのオンラインゲームとインタラクトできるゲームアプリケーション１０２ｂに対して、アーキテクチャ１０６のコンポーネントブロックは必要としない。しかしゲームアプリケーション１０２ｃでは、このゲームアプリケーションはローカルピア上の機能を使用可能にするために、あるコンポーネントを必要とする。従って、コンポーネントアーキテクチャ１０６はファンクショナルゲームアプリケーション１０２ｃを動作させるのに要求される、必要なコンポーネントブロックをリクエストし取得する。その結果、テレスコープを形成するグリッドによって定義されたピアツーピア環境において、どのタイプのアプリケーションも処理することができることは理解されよう。その結果、テレスペースは仮想世界の点から、及び選択された興味空間のより具体的なサブセットの点から、広い意味に定義される。
【００２５】
図３はテレスペース２００のグラフィカル表示であり、ピアコンピュータ上で実行中の仮想世界アプリケーション１０２‘に接続されている。この仮想世界アプリケーション１０２’は市街道路の一例の画像を示している。この市街道路はピアユーザの故郷の道路とすることもでき、その市街道路では、ユーザはあるソースへアクセスする必要があり得る。このテレスペース２００を通じて、ピアユーザは様々なデバイスと通信もしくはアクセスでき、それらは例えば、携帯電話２０２、媒体２０４、遠隔制御（例えば、８０２．１１）デバイス２０６、カメラ２０８、ＰＤＡデバイス２１０、ＩＰ電話、などである。ソースがグリッドで利用可能である限り、異なるタイプのソースに対する競合は事実上無制限である。しかしながら、特定のグリッドオーバーレイで利用可能なソースのタイプは、グリッドオーバーレイに含まれる興味空間のタイプに対応するであろう。
【００２６】
図４はネットワーカーコンポーネント３０２を例示しており、これは上記の図１及び図２のＰ２Ｐ  ＡＰＩ１１０に類似している。ネットワーカーコンポーネント３０２はアプリケーションプログラミングインターフェース（ＡＰＩ）であり、本発明のＰ２Ｐネットワークにおいて、ピアに対するグリッドオーバーレイとの通信を行う。ネットワークコンポーネント３０２はリソースマネージャ３０４、グリッドマネージャ３０６、ディスパッチャ３０８、及びダイナミックオーバーレイオブジェクト（dynamic overlay object:ＤＯＯ）３１０を含む。ＤＯＯはフル接続グラフ（fully connected graph:ＦＣＧ）３１２コンポーネントとＣｈｏｒｄ３１４コンポーネントを備えている。ＦＣＧ３１２とＣｈｏｒｄ３１４の基本的機能は当業者には周知である。しかし、ネットワーカーコンポーネント３０２の一部として配置される方法はＰｅｅｒＬｉｂ１０８内に実効性と包括的統合性を提供する。明確にするために、ネットワーカーコンポーネント３０２は図１及び２で示しているように、ＰｅｅｒＬｉｂ１０８の一部であるＰ２Ｐ  ＡＰＩ１１２として識別される機能を提供することは理解されよう。
【００２７】
リソースマネージャ３０４は,グリッドオーバーレイネットワークのピア上のパブリッシュ済みオブジェクトとのアクセス可能性を管理するように構成されている。例えば、ピアは,リソースに対するグリッドへリクエストを送信することができる。１つまたはそれ以上のピアのグリッド上でリソースが検知されると、リクエストピアはそのリソースをダウンロードするか、そのソースがリクエストピアへ流れるようにリクエストする。従って、ピアは共有可能なリソースをパブリッシュするためにリソースマネージャ３０４を使用し、また、ピアは後続のアクセスに対してリソースのロケーションをリクエストできる。
【００２８】
グリッドマネージャ３０６はＤＯＯ３１０と通信するように構成されている。ＤＯＯ３１０は適切なグリッド相互接続トポロジーへリクエストピアを接続するサービスを提供する。従って、ピア上で実行中のアプリケーションが接続もしくは生成を要求するグリッドに応じて、グリッドマネージャ３０６はＤＯＯ３１０を使用して適切なオーバーレイを選択しロードする。ピアがグリッドオーバーレイに接続もしくはグリッドオーバーレイを生成すると、ピアはグリッドに接続されたその他のピアとのメッセージを受信し、伝達できる。
【００２９】
ディスパッチャ３０８はメッセージの受信を希望するパブリッシュオブジェクトに対してメッセージをディスパッチする。メッセージの受信を希望するパブリッシュオブジェクトはメッセージハンドラでパブリッシュされる。従って、メッセージがグリッドから入り、ピアに到達すると、メッセージはディスパッチャ３０８へ入る。そのメッセージが受信ピアに対するものでない場合は、ディスパッチャはそのメッセージをＣｈｏｒｄ３１４もしくはＦＣＧ３１２へ送り、そのメッセージを順に別のピアへ送る。ピアツーピアネットワークはグリッドのパティシパントのグループによって定義されているので、メッセージは目的のピアに到達するまでチェーンを通じて送られる。メッセージをすぐ隣のピアに送るだけではなく、ＦＣＧ接続を通じ、エントリポイントを使用してメッセージをその他のピアへ送ることができる。しかし、そのメッセージがそのピアに対するものである場合は、別のピアにメッセージを送るのではなく、メッセージはそのピアのアプリケーションへ送られる。
【００３０】
テレスペースにおいてエントリポイントを検知する機構は、例えば、ハブピア（所定のエントリポイントサーバに対して）、多層ブロードキャスト／ホップリングマルチキャスト、マニュアル仕様書、ランダムテイル(random tail)、などである。
【００３１】
図４を参照すると、ネットワーカーコンポーネント３０２はソケットＡＰＩ４００にも接続されている。ソケットＡＰＩ４００は上記の図１及び２のオペレーティングシステム１１４の一部である。従って、ネットワーカーコンポーネント３０２はピアに対するグリッドへインターフェース接続し、これによりピアはピア（及び、ピアの共有リソース）が定義する仮想世界アプリケーションで機能することができる。その結果、アプリケーションのコンポーネント化によってグリッド内に共有の実効的リソースが使用可能になり、また、ネットワーカーコンポーネント３０２は本発明の接続グリッドで機能するために必要な、パブリッシング、サブスクライビング、メッセージング、及びロケーティングを行うために求められる実効的通信パワーを提供する。
【００３２】
図５から図７はグリッドオーバーレイに接続した多数のピア５０２の例を例示している。図５のグリッド５００ａでは、ピア５０２は本発明の“Ｃｈｏｒｄ”定義によるリンク５０４によって接続されている。従って、時計回りのリンク５０４はピア５０２とピア５０２間の後続の接続を定義し、また、反時計回りのリンク５０４は前の接続を定義する。中心のリンク５０４はフィンガーテーブル接続を定義する。本例では、ピアはその他のピアを配置し、グリッドから必要なリソースをフェッチすることができる。各ピアに対して、１６進法のデバイスＩｄは個々のピアを定義し、また、１６進数は時計回り方向に増加する。
【００３３】
図６のグリッド５００ｂでは、ピア５０２は上記に定義しているように、引き続きコードによって相互接続されるが、さらにフル接続グリッド（ＦＣＧ）接続が追加される。ＦＣＧ接続５０６ａはグリッド５００ｂのピア５０２が使用する接続を定義し、ゲーム（つまり、Ｐ２Ｐゲーム）をプレイすることができる。実効的プレイとインタラクションを可能にするためにゲームは短いレイテンシを要求するため、ＦＣＧ接続は図４のＤＯＯ３１０によって提供される付加的オーバーレイを提供する。
【００３４】
図７のグリッド５００ｃでは、ピア５０２はコードに接続されたままであるが、いくつかのその他のＦＣＧ接続も含まれる。この例では、テレビ電話会議に対して低レイテンシを要求する接続が示されており、接続５０６ｂにより定義される。さらに追加されているのは、インスタントメッセージチャットセッション（例えば、ＹａｈｏｏのＩＲＣ  ＡＩＭ）である。従ってこのグリッド５００ｃでは、ピアはグリッドと特定の他のピアとの接続、その他のピアとの共有コンポーネント、及びその他のピアとのメッセージ、を確立することができる。
【００３５】
概要として、ピアツーピアグリッドの接続プラットフォーム間に制御されたデータを交換することができるように、仮想世界アプリケーションが提供されている。この仮想世界アプリケーションは“ＴｅｌｅＳｐａｃｅ（テレスペース）”とも呼ばれる。一例として、仮想世界アプリエーションは一般のインターフェースとオペレーティング規約（operating convention）を提供する。一実施形態では、一般のインターフェースとオペレーティング規約により、ＡＰＩに対して、接続プラットフォーム間でのデータ交換の制御が与えられる。このＡＰＩと関連のフレームワークは、分散型シーングラフタイプのアプリケーションを生成することができる。この仮想世界アプリケーションは、コンポーネントベースのインターネットワークアプリケーションで使用するとともに通信を行うために、必要に応じて適用可能で、かつすぐに変更できるソフトウエアインフラストラクチャに基づいている。この仮想世界アプリケーションは、様々なアプリケーション、プラットフォーム、ユーザ、エンティティ、及びデータベースに高性能とスケーラビリティを提供するように設計される。
【００３６】
ピアツーピアネットワークは、ネットワークのノードを定義するピアで構成された、分散型コンピューティングシステムである。いくつかの一般的な実施形態では、ピアはいずれのコンピューティングデバイス、例えば、デスクトップクラスコンピュータ、サーバクラスコンピュータ、携帯機器、携帯端末、携帯電話、ＰＤＡ、ゲーム機、ゲーム機器、などを含み得る。しかし、別の実施形態では、ピアはコンピューティングデバイスがＰ２Ｐネットワークに接続されている限り、別のコンピューティングデバイスとの通信を確立できるコンピューティングデバイスであり得る。
【００３７】
本発明の実施形態は、様々なコンピュータシステム構造で実行することができ、それらには携帯端末、マイクロプロセッサシステム、マイクロプロセッサベースの、もしくはプログラム可能な消費家電、ミニコンピュータ、メインフレームコンピュータなど、を含む。本発明はまた、ワイヤベースもしくはワイヤレスネットワークを通じて接続された遠隔処理デバイスによってタスクが実施される分散型コンピューティング環境で実行することもできる。
【００３８】
上述の実施形態を念頭において、本発明はコンピュータシステムに格納されるデータを含む、様々なコンピュータ実装オペレーションで使用できることを理解されたい。これらのオペレーションは、物理的品質の物理的操作を必要とするものである。絶対的ではないが通常は、これらの品質は格納、転送、結合、比較、もしくは操作が可能な電気もしくは磁気信号形式である。
【００３９】
本発明の一部を形成する、本明細書に説明したいずれのオペレーションも、有益なマシンオペレーションである。本発明はまた、これらのオペレーションを実施するためのデバイスもしくは装置にも関する。本装置は所要の目的のために特別に構成されている。あるいは、本装置はコンピュータに格納されたコンピュータプログラムによって選択的に起動する、もしくは構成される多目的コンピュータであり得る。特に、様々な多目的マシンが本文中の教示に従い書かれたコンピュータプログラムとともに使用され得る。もしくは、所望のオペレーションを実施するために、より具体的な装置を構成すればさらに便利である。
【００４０】
本発明はコンピュータ可読媒体にコンピュータ可読コードとして組み込まれることもできる。このコンピュータ可読媒体は、コンピュータシステムによって後で読み出しされ得る、データの格納が可能ないずれのデータストレージデバイスである。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ（network attached storage:ＮＡＳ）、ＲＯＭ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、及びその他の光学及び非光学データストレージデバイス、が挙げられる。コンピュータ可読媒体はまた、コンピュータ可読コードが分散形式で格納されて実行されるように、ネットワーク結合されたコンピュータシステム上に分散されている。
【００４１】
前述の発明は本発明を明確に理解するためにいくつかの詳細が説明されているが、添付の請求の範囲内で一定の変更及び修正が可能なことは明らかであろう。従って、本実施形態は例示的なものであって制限的なものではないと考えられ、また本発明は本文中に与えられている詳細に制限されずに、添付の請求項と等価の範囲内で修正され得る。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態によるピアツーピアネットワークにおけるピアのテレスペースフレームワークを定義した説明図。
【図２】アプリケーションがコンポーネントを利用してアプリケーションを定義し、ＰｅｅｒＬｉｂが本発明のピアツーピアネットワークのグリッドとの通信を可能にする、テレスペースフレームワークの例の説明図。
【図３】本発明の一実施形態による、ピアコンピュータ上で実行中の仮想世界アプリケーションに接続されたテレスペースの説明図。
【図４】本発明の一実施形態による、ＰｅｅｒＬｉｂのネットワーカーコンポーネントの説明図。
【図５】本発明の一実施形態による、グリッドオーバーレイに接続された多数のピアの例の説明図。
【図６】本発明の一実施形態による、グリッドオーバーレイに接続された多数のピアの例の説明図。
【図７】本発明の一実施形態による、グリッドオーバーレイに接続された多数のピアの例の説明図。
【図１】
0004499716.tif 000002
【図２】
0004499716.tif 000003
【図４】
0004499716.tif 000004
【図５】
0004499716.tif 000005
【図６】
0004499716.tif 000006
【図７】
0004499716.tif 000007
【図３】
0004499716.tif 000008