(57)【特許請求の範囲】
【請求項１】
部分的に接続されたアドホック無線ネットワークにおいて１つまたは複数の分散アプリケーションの調整を可能にするミドルウェア通信空間を提供する装置であって、該装置は、コンピュータにより実施され、該装置が、
コンピュータで実施されるプロキシコンポーネントであって、前記１つまたは複数の分散アプリケーションからデータを受信するように構成された、プロキシコンポーネントと、
コンピュータで実施されるプロトコルエージェントであって、該プロトコルエージェントが、前記プロキシコンポーネントに結合され、該プロトコルエージェントが、移送のためにメタデータを監視し、前記部分的に接続されたアドホックネットワークでのメッセージの非同期移送を管理するように構成され、該プロトコルエージェントが１時に１つのネットワークに接続する、プロトコルエージェントと、
コンピュータで実施されるメタデータ記憶コンポーネントであって、該メタデータ記憶コンポーネントが、前記プロキシコンポーネントおよび前記プロトコルエージェントに結合され、該メタデータ記憶コンポーネントが、前記１つまたは複数の分散アプリケーションに従ってメッセージとして移送することができるメタデータを格納するように構成され、前記ミドルウェア通信空間が、２つ以上の部分的に接続されたネットワークの間の非同期ブリッジを提供し、前記ブリッジによって前記メッセージを一時的に格納できるようにして、２つ以上のデバイスの間の透過のメッセージングを可能にする、メタデータ記憶コンポーネント、
コンピュータで実施される発見コンポーネントであって、リスンおよびアナウンスのプロトコルに従って１つまたは複数の近隣のデバイスを決定するため前記プロトコルエージェントに結合された、発見コンポーネントと、
コンピュータで実施される選択コンポーネントであって、該選択コンポーネントが、１つまたは複数のメッセージの受信のための近隣のデバイスを選択するため前記発見コンポーネントに結合され、該選択が、
動的に変更されるトポロジの確率的モデルを導出すること、
前記確率的モデルを使用して、前記メッセージを送るためのルートを予想経路長に従って評価すること、
前記評価したルート使用から最短予想経路ルートを決定すること、
を含む、選択コンポーネントと、
を含むミドルウェア通信空間を提供する装置。
【請求項２】
前記メッセージが、ＳＯＡＰ形式およびＷＳシリーズ・プロトコル形式のうちの１つまたは複数の形式であること、を特徴とする請求項１に記載のミドルウェア通信空間を提供する装置。
【請求項３】
前記メタデータ記憶コンポーネントが、ＸＭＬで複数のメッセージを保持し、前記メッセージが階層構造であること、を特徴とする請求項１に記載のミドルウェア通信空間を提供する装置。
【請求項４】
前記メタデータが、ルーティングデータを定めるウェブサービスルーティングプロトコル（ＷＳ−Ｒｏｕｔｉｎｇ）データ、および処理情報をプロトコルエージェントに提供するための拡張プロトコルに適したデータを含むこと、を特徴とする請求項１に記載のミドルウェア通信空間を提供する装置。
【請求項５】
前記ミドルウェア通信空間が、メッセージキャッシング、転送、およびルーティングのうちの１つまたは複数を提供すること、を特徴とする請求項１に記載のミドルウェア通信空間を提供する装置。
【請求項６】
前記メッセージが複数のデータフィールドに編成され、該複数のデータフィールドは、
絶対時間でメッセージの満了を識別する満了時データフィールドであって、識別された時間の後にデータが無効になるようにする、満了時データフィールド、
前記メッセージを転送することができるホップの上限を提供するホップ制限データフィールドであって、前記上限は、転送が１つ成功した後に１つ減少する、ホップ制限データフィールド、
前記メッセージの生成時をマークする絶対時間を提供する時刻表示データフィールド、
前記メッセージが位置付けられた部分空間を識別する名前空間データフィールド、
前記メッセージを限定する領域を識別し、同じ管理特権を共有するデバイスの物理的境界を定める管理領域データフィールド、
前記メッセージが関連するトピックを指定する関連性データフィールドであって、その関連性が関連属性を提供して２つ以上のメッセージが前記トピックに関連する場合の動作を定める、関連性データフィールド、
メッセージの優先順位を定める優先順位データフィールド、および
分散アプリケーションが前記メッセージに関連したアプリケーション指定のプロパティを定めるための拡張可能なコンポーネントを提供するプロパティデータフィールド、
のうちの少なくとも１つを含むこと、を特徴とする請求項１に記載のミドルウェア通信空間を提供する装置。
【請求項７】
前記メッセージが前記データフィールドのうちの少なくとも３つに編成されること、を特徴とする請求項６に記載のミドルウェア通信空間を提供する装置。
【請求項８】
前記メッセージが前記データフィールドのうちの少なくとも６つに編成されること、を特徴とする請求項６に記載のミドルウェア通信空間を提供する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にネットワークコンピュータシステムに関し、より詳細には、部分的に接続された移動アドホックコンピュータネットワーク用通信ミドルウェアに関する。
【背景技術】
【０００２】
分散アプリケーションは効率を高めるため、コンピュータネットワークの将来に重要なものである。現在の分散システムは、高可用性（ｈｉｇｈｌｙ  ａｖａｉｌａｂｌｅ）サーバ、または高可用性ネットワーク接続とみなされている。アドホック無線システムでの分散アプリケーションの調整は、アドホックネットワーク全体の容量が制約されているために厄介である。分散アプリケーションは、センサ、コントローラ、および他の環境オブジェクトと対話することができるセルラー電話、パーソナルデジタルアシスタント（ＰＤＡｓ）、並びにラップトップなど、比較的小型であるが、いわゆる「スマートデバイス」と呼ばれるものについては特に厄介である。こうしたデバイスおよびオブジェクトの接続は、たとえばＢｌｕｅＴｏｏｔｈまたはＩＥＥＥ８０２．１１でもよい。電力の制限、無線有効範囲、および協働するノードの接続の地理的分散によって、アドホックノードの終端間の経路はしばしば妨げられる。通常、アドホックルーティング方法では、通信ノードを接続し、協働するデバイスを接続する一連の中間ノードなど既存の経路の配置を重要視した終端間の経路が取られる。実時間の通信を必要とするものなど、多くのアプリケーションは、順次のパケットを適時に転送するための完全に接続された経路を必要とする。他のアプリケーションは、完全に接続された経路を必要とせず、最終的にメッセージを転送する高度に分割されたネットワークに存在することができる。こうしたアプリケーションには、パーソナルデータ／情報の管理、ニュース情報伝播および個人的なメッセージングが含まれる。
【０００３】
【非特許文献１】A.Vahdat,D.Becker,「Epidemic Routing for Partially Connected Ad Hoc Networks」2000、Technical Report CS-200006、Duke University、2000年4月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
こうしたアプリケーションは、非同期式メッセージングサービスしか必要としない。経路が存在しない場合は、周知の方法では通信ができない。
【０００５】
アドホックネットワークで分散アプリケーションを調整するための現在の方法論は、通信ノードの終端間経路の必要性を回避することで利益が得られるであろう。
【課題を解決するための手段】
【０００６】
したがって、名称Ｍｅｔａｄａｔａ  Ｓｐａｃｅ（ＭｅｔａＳｐａｃｅ）の通信ミドルウェアを提供するシステムは、部分的に接続された移動アドホックネットワークのための非同期式メッセージ転送サービスを提供するように設計されたものである。本発明の実施形態では、移動デバイスを使用して、ネットワークの分離した島（ｉｓｌａｎｄ）に橋渡しをする。こうした移動デバイスは、メッセージを格納し伝播する搬送波として働く。
【０００７】
一実施形態は、キャッシングのメッセージング、転送、およびルーティングの方法をサポートするシステムおよびソフトウェアアーキテクチャを対象とする。より詳細には、実施形態は、通信空間の概念を分散環境にまで拡大し、それを標準ウェブサービス技法、すなわちＳＯＡＰ、およびＷｅｂ  Ｓｅｒｖｉｃｅ（ＷＳ）シリーズプロトコルと組み合わせる方法およびシステムを提供する。「ＭｅｔａＳｐａｃｅ」と呼ばれる通信空間は、ウェブサービスの拡張を移動アドホックネットワークに提供する。他の実施形態は、非同期式メッセージキャッシング、転送、およびルーティングを提供する方法を対象とする。
【０００８】
本発明の追加の特徴および利点は、添付の図を参照しながら進める例示の実施形態の以下の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【０００９】
本発明の特徴を、添付の特許請求の範囲で詳細に述べているが、本発明、並びにその目的および利点は、添付の図面と併せて以下の詳細な説明から最も良く理解することができるであろう。
【００１０】
図面に移ると、同様の参照番号は同様の要素を示しており、本発明が、適切なコンピューティング環境で実装されているところが示されている。必ずしも必要ではないが、本発明を、パーソナルコンピュータで実行されるプログラムモジュールなどコンピュータで実行可能な命令の通常のコンテキストで説明する。プログラムモジュールには通常、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、当業者には理解されるように、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ネットワークＰＣｓ、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施することもできる。本発明は、分散コンピューティング環境で実施することもでき、その場合、タスクは、通信ネットワークでリンクされた遠隔処理デバイスで実施される。分散コンピューティング環境では、プログラムモジュールを局地と遠隔の両方のメモリ記憶装置に位置付けることができる。
【００１１】
図１は、本発明を実装することができる適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能性の範囲へのいかなる限定も示唆するものではない。コンピューティング環境１００は、例示のオペレーティング環境（１００）で示した構成要素の１つまたはその組合せに関連するいかなる依存または要件も持つものではないと解釈されるべきである。
【００１２】
本発明は、多数の他の汎用または専用コンピューティングシステム環境または構成で操作可能である。本発明と共に使用するのに適した周知のコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣｓ、ミニコンピュータ、メインフレームコンピュータ、任意の上記のシステムまたはデバイスを含む分散コンピューティング環境などが含まれるが、それだけに限定されない。
【００１３】
本発明を、コンピュータで実行されるプログラムモジュールなど、コンピュータで実行可能な命令の通常のコンテキストで説明する。通常、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークでリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含む局所および／または遠隔のコンピュータ記憶媒体に位置付けることができる。
【００１４】
図１を参照すると、本発明を実装するための例示のシステムには、コンピュータ１１０の形態の汎用コンピューティングデバイスが含まれる。コンピュータ１１０の構成要素には、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、および任意の多様なバスアーキテクチャを使用するローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。一例として、こうしたアーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとしても知られているＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスが含まれるが、それだけに限定されない。
【００１５】
コンピュータ１１０は通常、多様なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０でアクセスすることができる任意の使用可能な媒体でもよく、揮発性および不揮発性媒体、並びに取外し可能および取外し不可能な媒体の両方が含まれる。一例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、それだけに限定されない。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報を記憶するための任意の方法および技法で実装される、揮発性および不揮発性、取外し可能および取外し不可能な媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技法、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶し、コンピュータ１１０によってアクセスすることができる任意の他の媒体が含まれるが、それだけに限定されない。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波または他の輸送機構など変調されたデータ信号で表し、任意の情報転送媒体を含む。用語「変調されたデータ信号」は、情報を信号に復号化する方法で設定または変更された１つまたは複数の特性を持つ信号を指す。一例として、通信媒体には、有線ネットワークまたは直接有線接続など有線媒体、および音波、ＲＦ、赤外線、および他の無線媒体など無線媒体が含まれるが、それだけに限定されない。上記の任意の組合せもコンピュータ可読媒体の範囲に含まれる。
【００１６】
システムメモリ１３０には、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体が含まれる。起動中などにコンピュータ１１０内の要素の間で情報を転送する助けをする基本ルーチンを含む、基本入出力システム１３３（ＢＩＯＳ）は、通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は通常、処理ユニット１２０に直接アクセス可能であり、かつ／または処理ユニット１２０によってその時点で作動しているデータおよび／またはプログラムモジュールを含む。一例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７を示しているが、それだけに限定されない。
【００１７】
コンピュータ１１０は、他の取外し可能／取外し不可能、揮発性／不揮発性のコンピュータ記憶媒体を含むことができる。単に一例として、図１は、取外し不可能で不揮発性の磁気媒体から読取り、それに書込むためのハードディスクドライブ１４１、取外し可能で不揮発性の磁気ディスク１５２から読取り、それに書込むための磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭ、または他の光媒体など取外し可能で不揮発性の光ディスク１５６から読取り、かつ／またはそれに書込むための光ディスクドライブ１５５を示す。例示の操作環境で使用することができる他の取外し可能／取外し不可能な、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれるが、それだけに限定されない。ハードディスドライブ１４１は通常、インターフェース１４０など取外し不可能なメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０など取外し可能なメモリインターフェースによってシステムバス１２１に接続される。
【００１８】
上記で論じ、図１で示したドライブおよびそれに関連したコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータをコンピュータ１１０に提供する。たとえば、図１では、ハードディスドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納しているところが示してある。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じもの、または異なるものでもよいことを留意されたい。本明細書では、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７に、少なくとも異なるコピーを示すように異なる番号が与えられていることに留意されたい。ユーザは、タブレット、または電子ディジタイザ１６４、マイクロフォン１６３、キーボード１６２、および通常、マウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。上記その他の入力デバイスは、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプの表示デバイスを、ビデオインターフェース１９０などインターフェースを介してシステムバス１２１に接続することもできる。モニタ１９１は、タッチスクリーンパネルなどと一体型にすることもできる。モニタおよび／またはタッチスクリーンパネルを、コンピューティングデバイス１１０がタブレットタイプのパーソナルコンピュータなどに組み込まれているハウジングに物理的に結合することができることを留意されたい。さらに、コンピューティングデバイス１１０などコンピュータは、出力周辺インターフェース１９５などを介して接続することができる、スピーカ１９７およびプリンタ１９６など他の周辺出力デバイスを含むこともできる。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通のネットワークノードでもよく、図１では１つだけのメモリ記憶装置１８１しか示していないが、通常はコンピュータ１１０に関して上記に記載した要素の多くまたは全てを含む。図１で示した論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３が含まれているが、他のネットワークを含むこともできる。こうしたネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。たとえば本発明では、コンピュータシステム１１０は、それからデータが移送されるソースマシンを備え、リモートコンピュータ１８０は宛先マシンを備えることができる。しかし、ソースおよび宛先マシンは、ネットワークまたは他のいずれかの手段で接続される必要はなく、その代わりにデータは、ソースプラットフォームによって書込み、１つまたは複数の宛先プラットフォームによって読取ることができる任意の媒体を介して移送することができることを留意されたい。
【００２０】
ＬＡＮネットワーク環境で使用する場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用される場合、コンピュータ１１０は通常、モデム１７２または他のインターネットなどＷＡＮ１７３を介した通信を確立する手段を含む。内蔵または外付けでもよいモデム１７２は、ユーザ入力インターフェース１７０または他の適した機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示したプログラムモジュール、またはその一部をリモート記憶装置に格納することができる。一例として図１は、メモリ記憶装置１８１に常駐するリモートアプリケーションプログラム１８５を示しているが、これは限定的なものではない。理解されるように、図で示したネットワーク接続は例示のものであり、コンピュータの間の通信リンクを確立する他の手段を使用することもできる。
【００２１】
以下の説明では、別に指示がなければ、本発明を、１つまたは複数のコンピュータによって実行される動作および操作の記号表示を参照して記載する。そういうものとして、理解されるように、ときにコンピュータで実行可能であると呼ばれるこうした動作および操作には、データを構造化した形で表わす電気的信号のコンピュータの処理装置による操作が含まれる。この操作でデータを変換し、またはデータをコンピュータのメモリシステムのロケーションに維持し、それによって当業者にはよく理解される方法でコンピュータの動作を構成または変更する。データが保持されるデータ構造は、データの形式によって規定された特定のプロパティを有するメモリの物理的位置である。しかし、本発明を上記のコンテキストで述べたが、それは本発明を限定するものではなく、当業者には理解されるように、以下に述べる様々な動作および操作をハードウェアで実装することもできる。
【００２２】
本発明の実施形態は、複数のプラットフォームおよび異機種デバイスにまたがる移動アドホック環境での分散アプリケーションの調整を対象とする。図２を参照すると、ブロック図は、以下で「ＭｅｔａＳｐａｃｅ」と呼ぶ、アドホック環境のためのミドルウェア環境を示す。ＭｅｔａＳｐａｃｅは、アプリケーション２０４および２０６など分散アプリケーションを調整することができる仮想データバッファ２０２を含むことができる。アプリケーション２０４がメタデータ２０８を仮想データバッファ２０２に送信し、アプリケーション２０６がメタデータ（獲得メタデータ）２１０を受信しているところが示してある。ＭｅｔａＳｐａｃｅ２００は集合的に、多様なデバイスまたはノードに常駐するアプリケーション２０４および２０６用の仮想共用通信バッファ（ｖｉｒｔｕａｌ  ｓｈａｒｅｄ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｕｆｆｅｒ）に抽象化を提供する。ＭｅｔａＳｐａｃｅ２００のノードは、ノード２１２、２１４、および２１６として示してある。
【００２３】
一実施形態では、ＭｅｔａＳｐａｃｅ２００はソフトウェアサービスを提供する。先ず１つのサービスでは、様々なノードの間のネットワーク接続の存在を事前想定せず、様々なデバイスまたはノードに位置付けられたアプリケーションの間の非同期化メッセージ通信サービスを提供することができる。他のサービスは、多くのノードに散在するアプリケーションの間でデータを共用できるようにするサービスを含むことができる。
【００２４】
周知の空間ベースのシステムと違い、ＭｅｔａＳｐａｃｅ２００は、空間全体を含む高可用性サービス、または様々なノードを接続する高可用性インフラストラクチャネットワークに依存しない。ＭｅｔａＳｐａｃｅ２００は、仮想データバッファ２０２を分散方法で共有されたバッファとして維持する。したがって、ＭｅｔａＳｐａｃｅ２００は、データ記憶装置、ルーティング、および転送にフレームワークを提供する。ＭｅｔａＳｐａｃｅ２００は、ポケットＰＣおよびスマートフォンなどリソースが限られたデバイスで稼動するように設計された軽量ミドルウェアコンポーネントとして実装することができる。
【００２５】
一実施形態では、ＭｅｔａＳｐａｃｅ２００は、ＳＯＡＰなど標準ＸＭＬ（ｅＸｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌｕｎｇｕａｇｅ）ウェブサービス技法に基づく。有利には、標準ＸＭＬウェブサービス技法はＭｅｔａＳｐａｃｅ２００の相互運用性および拡張性を助長する。たとえば、アプリケーションは同じメッセージ形式を用いて、ＭｅｔａＳｐａｃｅ２００を介してインターネット上でウェブサービスを呼び出すことができる。
【００２６】
次に図３を参照すると、ＭｅｔａＳｐａｃｅ２００のソフトウェアアーキテクチャが示してある。より詳細には、図３は、Ｂｌｕｅｔｏｏｔｈなどペアワイズ通信チャネルが確立されたときの、様々なデバイスでの２つのＭｅｔａＳｐａｃｅ環境３０６（１〜２）の間の対話を示す。こうしたペアワイズ通信チャネルの確立は、ＭｅｔａＳｐａｃｅ３０６（１、２）を保持するデバイスが同じ近辺に存在する場合に行うことができる。一実施形態では、ＭｅｔａＳｐａｃｅソフトウェアを保持するデバイスは、単一のデバイスに、メタデータ記憶装置３１２（１〜２）、ＭｅｔａＳｐａｃｅエージェント３１０（１〜２）、およびＤＬＬプロキシ３０８（１〜２）を含む３つのコンポーネントを保有する。メタデータ記憶装置３１２は、階層に構成されたＸＭＬメッセージ（ＳＯＡＰ）のコンテナとして構成することができる。ＭｅｔａＳｐａｃｅエージェント３１０は、ＭｅｔａＳｐａｃｅ２００の活動状態の部分として実装することができる。ＭｅｔａＳｐａｃｅエージェント３１０は、ＭｅｔａＳｐａｃｅプロトコル３１４を介した他のデバイスとの対話を確かに行うことができる。ＭｅｔａＳｐａｃｅプロトコル３１４は、最終的なメッセージ転送を保証することができる。ＭｅｔａＳｐａｃｅエージェント３１０は、ＭｅｔａＳｐａｃｅ２００を使用して通信し、データを共用するアプリケーションからの操作要求を処理するように構成することもできる。要求の詳細は、ＤＬＬプロキシ３０８（１〜２）を介してアプリケーション３０２（１〜２）などのアプリケーションからマスクすることができる。ＤＬＬプロキシ３０８は、リンク可能なライブラリであり、簡明なアプリケーションプログラミングインターフェース（ＡＰＩｓ）をユーザアプリケーションに提供するように構成することができる。
【００２７】
メタデータ記憶装置３１２は、メタデータをメッセージとして保留し、それをＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ  （ＳＯＡＰ）メッセージとしてラップされたＸＭＬメッセージとして構成することができる。メタデータは、ルーティング情報を定義付けるＷｅｂ  Ｓｅｒｖｉｃｅ  Ｒｏｕｔｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＷＳ−Ｒｏｕｔｉｎｇ）データ、およびＭｅｔａＳｐａｃｅエージェント３１０がメッセージを訂正して処理するのに必要な重大な情報を記述するように定義付けられた拡張プロトコルに適したデータを含むことができる。一実施形態では、拡張プロトコルデータは、ＸＭＬ入力として構成することができる。
【００２８】
ＭｅｔａＳｐａｃｅ２００に格納されるＸＭＬメッセージの一例を以下の表１で示す。
【００２９】
【表１】
0004711656.tif 000002
【００３０】
一実施形態では、ＭｅｔａＳｐａｃｅ２００は、ＭｅｔａＳｐａｃｅ名前空間の下でｍｓｐｒｏｐのタグを付けた新規のヘッダ入力を追加することによってＳＯＡＰ形式を拡張する。そのデータフィールドのためのデータ構造は、以下を含むことができる。
【００３１】
Ｅｘｐｒｉｒａｔｅ  Ｔｉｍｅ：絶対時間でのメッセージの満了時。データはその時点以降は無効になる。
【００３２】
ＨｏｐＬｉｍｉｔａｔｉｏｎ：メッセージを転送することができるホップの上限。この上限値は、転送が１つ成功した後に１つ減少する。
【００３３】
Ｔｉｍｅｓｔａｍｐ：メッセージの生成時をマークする壁時計の時刻。
【００３４】
Ｎａｍｅｓｐａｃｅ：メッセージが位置付けられる部分空間を識別する。
【００３５】
ＡｄｍｉｎＤｏｍａｉｎ：メッセージを限定する領域。このフィールドは、ＡｄｍｉｎＤｏｍａｉｎが同じ管理特権を共用するデバイスの物理的境界を規定する点でＮａｍｅｓｐａｃｅフィールドとは異なり、Ｎａｍｅｓｐａｃｅは論理的概念である。その値は、マルチキャストおよびエニーキャストメッセージに特に有用である。この場合、メッセージの伝播は、一定の組のデバイスに限定され、こうした限定により、望まれないメッセージの漏洩が防止される。
【００３６】
ＲｅｌａｔｅＴｏ：メッセージが関連するトピックを指定する。関連属性を提供して、２つのメッセージが、たとえば「置換」は最新のメッセージを以前のメッセージと差し替えることを指すという１つの特定のトピックに関連する場合の動作方法を規定する。
【００３７】
Ｐｒｉｏｒｉｔｙ：メッセージの優先順位、たとえば低い、正常な、高いことを定義付ける。
【００３８】
Ｐｒｏｐｅｒｔｙ：このフィールドはアプリケーションがメッセージに関連付けられたアプリケーション指定のプロパティ（名前値の対）を規定する拡張可能な方法である。ＭｅｔａＳｐａｃｅ２００は、プロパティを介したメッセージの内容ベースの探索をサポートするように構成することができる。
【００３９】
次に図４を参照すると、ＭｅｔａＳｐａｃｅ２００は、大量の２値データを含むメタデータを処理するように構成することができる。図４は、２値データを処理するように構成された複合オブジェクト４００を示す。この２値データは、ＸＭＬ内でもよく、ＡＳＣＩＩ形式、たとえばＢａｓｅ６４で複合化されたデータを有する。しかし、この方法はコストが高くつく。オブジェクト４００は、ＭｅｔａＳｐａｃｅ２００がＸＭＬメッセージに参照だけを格納し、記憶２値データを生形式で任意の場所に格納する代替実施形態を示す。図４は、ＳＯＡＰメッセージ部分４０６および２値オブジェクト１  ４０８を示す。メッセージ部分４０６および２値オブジェクト１  ４０８は、分離文字（ｓｅｐａｒａｔｏｒ）４１２によって分離され、２値オブジェクト１  ４０８は追加の２値オブジェクトから分離文字４１４（ｎ）によって分離される。ＳＯＡＰメッセージ４０６は、参照１  ４０２を介して２値オブジェクト４０８を指し、参照ｎ  ４０４を介して他の２値オブジェクトｎ  ４１０を指す。
【００４０】
図４は、内部参照を使用しデータ（ＸＭＬメッセージおよび２値データ）を全て、ファイルにマップすることができる複合オブジェクトに格納することによって、複数のオブジェクトを処理する負担を軽減できることを示している。
【００４１】
次に図５を参照すると、流れ図は、ＭｅｔａＳｐａｃｅ２００がデバイスの発見および近隣の保守を実行する方法を示す。一実施形態では、ＭｅｔａＳｐａｃｅ２００は、ＵＲＩｓを使用してデバイスを識別するが、ＵＲＩの特定の方式のいずれかを使用するようには制限されていない。さらに、この実施形態では、受信側を識別するために、ＭｅｔａＳｐａｃｅ２００はｍｅｔａｓｐａｃｅ：／／ｄｏｍａｉｎ／ｄｅｖｉｃｅ方式を使用する。それ以外の方式は、インターネットホストと呼ぶことができる。流れ図５００は、デバイスがリスン／アナウンスプロトコル（ｌｉｓｔｅｎ／ａｎｎｏｕｎｃｅ  ｐｒｏｔｏｃｏｌ）にもとづいてその近隣のデバイスを発見する手法を示す。ブロック５１０で、デバイス全てが周知のポートにビーコン情報をブロードキャストする。ブロック５２０で、こうしたビーコンが聴取されると、デバイスはライブの近隣の装置が存在することを学習する。各ビーコンは、可用時間の予想値を示す専用フィールドを含む。ブロック５３０で、近隣情報がソフト状態であるとみなされたため、デバイスはその状態が満了する前にその状態をリフレッシュする。ビーコンの通常の構造を表２で示す。
【００４２】
【表２】
0004711656.tif 000003
【００４３】
内部データ構造（ハッシュマップ）を構築して、デバイス名とそのデバイス上で稼動するＭｅｔａＳｐａｃｅエージェント３１０の通信アドレスの間の関連付けを維持する。
【００４４】
次に図６を参照すると、流れ図は、２つのデバイスがＭｅｔａＳｐａｃｅ２００環境で互いに関連付けられた場合に、メッセージを伝播する方法を指定する転送プロトコルを示す。図３で示したデバイス３０６など、ＭｅｔａＳｐａｃｅ２００内の各デバイスは、メタデータ３１２用記憶装置を維持する。メッセージをピアに転送する場合は、未知のメッセージだけが転送される。図６は、そのための２相転送プロトコルを示す。ブロック６１０は相１を示し、ピアどうしがインタレストおよびハンドシェークを交換することを示す。ブロック６２０は、この交換中にメッセージが転送されることを示す。
【００４５】
次に図７を参照すると、転送プロトコルのプッシュモードが示してある。より詳細には、デバイスＡ７０２は、先ずエクスポートした名前空間Ｎｓ（Ａ．ｅｘｐ）７０６をデバイスＢ７０４に通知する。デバイスＢ７０４は、デバイスＡ７０２のエクスポートした名前空間とそれ自体のインタレストの交点、Ｎｓ（Ａ．ｅｘｐ）ｎ  Ｎｓ（Ｂ．Ｉｎｔ）７０８を計算し、次いでデバイスＡ７０２にその交点、並びにデバイスＢが交差した名前空間の下で知ったというメッセージの要約を返答する。一実施形態では、要約は周知のようにブルームフィルタを使用して構成され、その実施形態を以下に記載する。デバイスＡ７０２は、応答を受信すると、メッセージ転送セッションを開始する。メッセージを要約７１０に照らして検査することによって、デバイスＢ７０４に未知のものだけが転送される。
【００４６】
ＭｅｔａＳｐａｃｅ２００は、プッシュモードと同様に、対応するプルモードをサポートする。プルモード転送プロトコル（図示せず）はプッシュモードと同様に、図７で示したモードの逆を提供し、従って、データを受信するデバイスは、そのインタレストを送信することによってセッションを開始する。
【００４７】
ブルームフィルタは、効率的な通信量測定に使用される周知のフィルタである。一実施形態では、ＭｅｔａＳｐａｃｅ２００に適したブルームフィルタは、要約ベクトル長がｍであるように構成することができる。ただし、Ｈ＝（Ｈ１、Ｈ２、Ｈ３、Ｈ４）＝ＭＤ５＿Ｈａｓｈ（ｍｓｇ＿ｉｄ）とする。各Ｈｉ（ｉ＝１、２、３、４）は倍長語である。要約ベクトルでビットＫｉ＝Ｈｉ  ｍｏｄ  ｍ  （ｉ＝１、２、３、４）を設定する。ブルームフィルタは、一定の偽陽性確率（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ  ｐｒｏｂａｂｉｌｉｔｙ）（ＦＰＰ）を有する。しかし、ＦＰＰはＰｆｐｐ〜（１−ｅ−（４ｎ／ｍ））４であるため、正常な場合はやや小さい。ＭｅｔａＳｐａｃｅ２００環境では、この偽陽性確率は、誤って転送されなかったメッセージを次のデータ転送セッションで転送することができるため、メタデータ転送に少しも害にならない。
【００４８】
次に図８を参照すると、一実施形態は、ＭｅｔａＳｐａｃｅ２００環境でのメッセージのルーティングを対象とする。より詳細には、ＭｅｔａＳｐａｃｅ２００環境は、動的に変更される接続トポロジを含むため、図８は、動的に変更されるトポロジのためのメッセージルーティング方法を示す。ルーティング方法については、たとえば、ＶａｈｄａｔおよびＢｅｃｋｅｒは、各ノードがキャッシュを割り当ててメッセージを他のノードに格納することを提供する移動デバイスの間のルーティング方法を提案している（非特許文献１参照。）２つの分離されたノードが一致する場合、伝染性（ｅｐｉｄｅｍｉｃ）のプロセスが実行され、その場合、２つのノードがそれぞれ保持するメッセージを交換し、次いで同じ組のメッセージを搬送する。この方法は、フラッディングアルゴリズムを使用し、最終的なメッセージ転送を保証する無制限のバッファサイズおよび時間が想定されている。ＶａｈｄａｔおよびＢｅｃｋｅｒの方法、並びに同様の方法は、フラッディングベースのアルゴリズムに従うものであり、それによってキャッシュメモリを占領する不必要なメッセージが生成され、そのため転送速度が遅くなる。
【００４９】
ＭｅｔａＳｐａｃｅ２００環境でメッセージを伝送するデバイスは、宛先の正確な位置を知らない可能性がある。さらに、メッセージを伝送するデバイスは、宛先までの経路を知らないこともある。図８で示した実施形態の方法によれば、部分的に接続されたネットワークでのルーティングプロトコルは、少なくとも２つの決定を行うことができる。第１に、２つのデバイスが関連付けられた場合、１つのデバイスから他方のデバイスにどのメッセージを転送するかについての決定がなされる。第２に、１つのデバイスのメタデータ記憶装置３１２が一杯である場合、新しい入力メッセージ用の空間を生成するには、どのメッセージを消去すべきかについての決定がなされる。一実施形態では、こうした決定はローカルで行われる。さらに、一実施形態によるルーティング方法では、移動アドホックネットワークのいくつかの構造情報が利用される。
【００５０】
ネットワークの構造情報を決定するため、図８は、ブロック８１０で、高度に分割されたネットワークの確率的模型が導出されることを示す。ブロック８２０で、この模型に基づいて、以下で予想経路長（ｅｘｐｅｃｔｅｄ  ｐａｔｈ  ｌｅｎｇｔｈ）と呼ぶ距離を使用して、メッセージを転送するルートを評価する。ブロック８３０で、この距離に基づいて、最短予想経路のルーティングを決定する方法が導出される。
【００５１】
次に図９を参照すると、一実施形態による確率的ネットワークモデルが示してある。このモデルでは、それぞれノード０〜６、９００〜９１２が示してある。このモデルによれば、接続確率ゼロのエッジは消去されている。ノード５  ９１０とノード６  ９１２を接続する実線は、永久的なネットワーク接続を表す。ネットワーク９００は、近接型無線ラジオを装備したノードのネットワークによって表示することができる。通信は、２つのノードが同じ近隣に存在する場合は、２つのノードの間で双方向になされる。各ノードが有限のメモリを有すると仮定すると、各ノードはＭ個までのメッセージを搬送するように構成することができる。メッセージは、任意の２つのノードの間で交換される情報ユニットである。
【００５２】
完全なグラフＧ（Ｖ、Ｅ）をアドホックネットワーク９００の確率的模型と想定する。各頂点Ｖは、１つの同一のノードＮを表す。Ｅにおける各エッジｅ  ｉ，ｊに、確率的重み（ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｗｅｉｇｈｔ）Ｐｉ、ｊ、０＝Ｐｉ＝１を割り当てる。これは、この２つのノードの間に接続が存在する確率を表す。Ｐｉ、ｊがゼロの場合、ノードｉがノードｊと直接通信できる可能性はない。Ｐｉ、ｊが１の場合、２つのノードの間に永続的な接続が存在する。
【００５３】
次に図１０を参照すると、流れ図は、最短予想経路を決定する方法を示す。より詳細には、１対のノード＜ｓ、ｄ＞を考える。ただしｓはソース、ｄは宛先である。ブロック１０１０で、ノードｓは時刻０でメッセージを送信し、ｄがそのメッセージを受信する確率の分布をПで示す。Пは、上記の確率的ネットワークモデルのトポロジによって決定することができる。ブロック１０２０で、数１で示したように、ｄがメッセージを受信する予想時間として、ｓからｄまでの予想経路長を規定する。
【００５４】
【数１】
0004711656.tif 000004
【００５５】
ＭｅｔａＳｐａｃｅ２００では、メッセージの複数のコピーを複数の経路に従って送信することができる。最短予想経路長を持つ経路を以下で主経路と呼び、ブロック１０３０で、主経路の予想経路長をＥｐａｔｈの上限として設定する。主経路の予想経路長は、数２から導出することができる。
【００５６】
【数２】
0004711656.tif 000005
【００５７】
ただし、ｐｉは主経路のリンクｉの接続確率である。ブロック１０４０で、ＥｐｒｉｍａｒｙをＥｐａｔｈの推定値として使用する。推定値を決定するには、先ず、任意のノード対＜ｓ、ｄ＞の予想経路長を、この２つのノードの間の主経路を決定することによって計算する。次に、重みｐｉを確率的ネットワークモデルのリンク上で１／ｐｉと置き換え、次いで、周知のダイスクトラ法を実施してＥｐｒｉｍａｒｙ（ｓ、ｄ）〜Ｅｐａｔｈ（ｓ、ｄ）を得る。一実施形態では、各ノードは確率的ネットワークモデルの完全なトポロジを有する必要がある。一実施形態では、トポロジの構築および維持は、１つのノードから他の全てのノードまでのコストが最低の経路を見つけるときに、ゴールを有する単一のネットワークに属するルータの間でルーティング情報を分配するＯＳＰＦ（ｏｐｅｎ  ｓｈｏｒｔｅｓｔ  ｐａｔｈ  ｆｉｒｓｔ）プロトコルなど周知のプロトコルのような、リンク状態のルーティングと同様のいくつかの方法でもよい。
【００５８】
次に図１１を参照すると、最短予想経路のルーティングを決定する方法の実施形態が流れ図で示してある。この方法は、上記の予想経路長の距離に基づいたものである。ブロック１１１０で、デバイスのメタデータ記憶装置３１２内の各メッセージに、有効経路長ＥＰＬｍが割り当てられる。ブロック１１２０で、デバイスが新しいメッセージを受信した場合に、有効経路長が無限にリセットされる。ブロック１１３０で、メッセージが他のデバイスに伝播された場合は、ＥＰＬを目標デバイスからメッセージの宛先までの予想経路長に更新する。擬似コードで、ルーティング方法を以下のように記載することができる。
【００５９】
【表３】
0004711656.tif 000006
【００６０】
この方法は、メッセージを１つのデバイスに伝播することは、そのデバイスがメッセージを宛先に転送する可能性がほとんどない場合は無用であり、新しいメッセージのためにキャッシュをパージする場合、高い確率で転送されたものが優先されることを示す。
【００６１】
ＭｅｔａＳｐａｃｅ２００にはｐｒｏｘｙ＿ｄｌｌ３０８のアプリケーションプログラミングが含まれており、これはアプリケーションとＭｅｔａＳｐａｃｅ２００ミドルウェアの間の橋渡しをするものである。一実施形態では、表４で示したように、４つの主なクラスの機能がある。
【００６２】
【表４】
0004711656.tif 000007
【００６３】
アプリケーションプログラムインターフェース（ＡＰＩｓ）でカバーされたＭｅｔａＳｐａｃｅ基本操作には、書込み、読取り、列挙、および探索が含まれる。
【００６４】
書込み機能は、アプリケーション全てが（空間ＩＤ、メタデータ）の書込みを呼び出して、メタデータをＭｅｔａＳｐａｃｅ環境に挿入することを提供する。メタデータをＳＯＡＰメッセージまたは同様のタイプのメッセージにラップすることができる。それぞれメッセージをグローバルで固有のメッセージ識別子に割り当てる。
【００６５】
読取り機能は、機能の２つの形態が、アプリケーションにＭｅｔａＳｐａｃｅのメタデータを読取ることを要求することを提供する。第１の形態の機能呼出しは、（ｍｓｇｉｄ、ＭｅｔａＤａｔａ＊メタデータ）の獲得であり、メタデータを読取り、そのデータをＭｅｔａＳｐａｃｅから消去する。第２の形態の機能は、（ｍｓｇｉｄ、ＭｅｔａＤａｔａ＊メタデータ）の読取りであり、そのデータを消去し、メタデータを変更せずそのままにする。
【００６６】
列挙および探索機能は、ｅｎｕｍ＿ｍｅｔａｄａｔａ（空間ＩＤ、テンプレート）を呼び出すことによって、ＭｅｔａＳｐａｃｅに格納されたメタデータを列挙することができ、それによって、アプリケーションが使用して列挙されたメタデータを全て読取ることができるｅｎｕｍ＿ｉｎｆｏ構造が戻されることを提供する。テンプレートは、どのメタデータを列挙すべきかを規定する選択的基準を提供する。ＮＵＬＬが提供された場合は、機能は現時点で格納されているメタデータを全て戻す。
【００６７】
ＭｅｔａＳｐａｃｅイベント登録もＡＰＩｓでカバーされる。すなわち、登録および登録抹消のためのＡＰＩｓが提供される。
【００６８】
登録機能は、アプリケーションが、一定のタイプのメッセージの到着または一定のデバイスを接続するなど一定のイベントを処理するハンドラを登録することができることを提供する。登録システム呼出しは、（空間ＩＤ、イベントのタイプ、テンプレート、ハンドラを）登録することである。テンプレートは、一定のタイプのイベントが生じた場合に選択に適用されるフィルタを指定する。たとえば、イベント「メッセージを受信する」が生じた場合、テンプレートは、一定の人物からメッセージが送信された場合にだけハンドラが呼び出されることを指定することができる。この機能は、ｒｅｇ＿ｉｄを戻し、それをさらに使用してそのイベントの登録を抹消することができる。
【００６９】
登録抹消機能は、アプリケーションが、登録抹消（ｒｅｇ＿ｉｄ）システム呼出しを呼び出すことによって、事前に登録されたイベントハンドラの登録を消去できるようにする。
【００７０】
ＭｅｔａＳｐａｃｅは、少なくとも３つの名前空間操作ＡＰＩｓも提供する。部分空間は、アプリケーションが任意の部分空間をＭｅｔａＳｐａｃｅ内に生成できるようにする機能を生成かつ消去する。システムの呼出し、（空間名の）生成は、現在のメタスペース内に部分空間を生成することである。空間名は、部分空間に固有の識別子である。（空間名）消去システムの呼出しは、部分空間を消去するために呼び出される。２つのシステムの呼出しは、特権アプリケーションだけに提供されることを留意されたい。
【００７１】
空間エクスポートおよびインポート機能は、アプリケーションが他のデバイスと共用することを求めている１つまたは複数の部分空間を設定できるようにする。アプリケーション呼出しは、インタレスト（空間ＩＤ）が、部分空間内の他のものからメッセージを受信するように設定する。アプリケーション呼出しは、アプリケーションが部分空間で他のデバイスにアプリケーションを転送する場合に、エクスポート（空間ＩＤ）の設定をする。
【００７２】
列挙部分空間機能は、ｅｎｕｍ＿ｓｐａｃｅ（テンプレート）機能を呼び出すことによって、ＭｅｔａＳｐａｃｅ内の部分空間を列挙できるようにする。テンプレートは、アプリケーションに関連付けられた部分空間が、たとえば「ｍｙ＿ｆａｍｉｌｙ」と名付けられた部分空間の部分空間全て、エクスポートされた部分空間全て、またはキーワード「ニュース」を含む部分空間全てなどの列挙を望む選択的基準を指定する。
【００７３】
本発明の原理を適用することができる可能な多くの実施形態を考慮すると、図面の図を参照して本明細書に記載した実施形態は単に例示のものであり、本発明の範囲を限定するものではないことが理解されるであろう。たとえば、当業者には理解されるように、ソフトウェアで示した例示の実施形態の要素は、ハードウェアで実施することもでき、またその逆も可能であり、本発明の精神から逸脱することなく、例示の実施形態の構成および詳細を変更することができる。したがって、本明細書で記載した本発明は、こうした実施形態が全て本発明の添付の特許請求の範囲およびその等価のものに包含されることが企図されている。
【図面の簡単な説明】
【００７４】
【図１】本発明が常駐する例示のコンピュータシステムを全般的に示すブロック図である。
【図２】本発明の一実施形態による通信空間にある仮想データバッファを示すブロック図である。
【図３】本発明の一実施形態によるミドルウェア環境、ＭｅｔａＳｐａｃｅを示すブロック図である。
【図４】本発明の一実施形態による２値オブジェクトを参照したＳＯＡＰメッセージを示すブロック図である。
【図５】移動デバイスで発見を行うための方法を示す流れ図である。
【図６】本発明の一実施形態によるピア間の対話を識別する図である。
【図７】本発明の一実施形態によるピア間の対話を示すブロック図である。
【図８】本発明の一実施形態による方法を示す流れ図である。
【図９】本発明の一実施形態による、部分的に接続された接続形態で相互接続されたノードおよびメッセージのルーティングを示すブロック図である。
【図１０】本発明の一実施形態による、部分的に接続されたネットワークのメッセージ用経路の推定値を決定する方法を示す流れ図である。
【図１１】本発明の一実施形態による、デバイスで有効な経路長を決定する方法を示す流れ図である。
【符号の説明】
【００７５】
２０２  仮想データバッファ
２０４  アプリケーション１
２０６  アプリケーション２
２０８  書込みメタデータ
２１０  獲得メタデータ
３０２（１）  アプリケーション
３０２（２）  アプリケーション
３０４  ネットワークリンク
３０８（１）  ＤＬＬプロキシ
３０８（２）  ＤＬＬプロキシ
３１０（１）  ＭｅｔａＳｐａｃｅエージェント
３１０（２）  ＭｅｔａＳｐａｃｅエージェント
３１２（１）  メタデータ記憶装置
３１２（２）  メタデータ記憶装置
３１４  ＭｅｔａＳｐａｃｅプロトコル
４０２  参照１
４０４  参照ｎ
４０６  ＳＯＡＰメッセージ部分
４０８  ２値オブジェクト１
４１０  ２値オブジェクトｎ
４１２  分離文字
４１４（ｎ）  分離文字
７０２  デバイスＡ
７０４  デバイスＢ
７０８  ［Ｎｓ（Ａ．ｅｘｐ）ｎ交差Ｎｓ（Ｂ．Ｉｎｔ）］＋要約（Ｂ）
７１２  メタデータの組み合わせ、集約
【図１】
0004711656.tif 000008
【図２】
0004711656.tif 000009
【図３】
0004711656.tif 000010
【図４】
0004711656.tif 000011
【図５】
0004711656.tif 000012
【図６】
0004711656.tif 000013
【図７】
0004711656.tif 000014
【図８】
0004711656.tif 000015
【図９】
0004711656.tif 000016
【図１０】
0004711656.tif 000017
【図１１】
0004711656.tif 000018