(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスを含むピアにおいて実行される時、前記ピアが以下のステップを備える方法を実行するように構成するコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、前記ステップは、
前記ピアから、第１のセットのトランスポートネットワーク距離に関してオーバーレイネットワークピアグループをクエリするステップと、前記第１のセットのトランスポートネットワーク距離は、前記オーバーレイネットワークピアグループと前記オーバーレイネットワークピアグループの近隣の１つ又は複数のオーバーレイネットワークピアグループとの間のトランスポートネットワーク距離であり、前記オーバーレイネットワークピアグループは前記近隣の１つ又は複数のオーバーレイネットワークピアグループ及び前記オーバーレイネットワークピアグループ内の前記１つ又は複数のピアに関する情報を含む局所性認識を各々が有する１つ又は複数の局所性認識ピアを含み、前記オーバーレイネットワークピアグループの前記近隣の１つ又は複数のオーバーレイネットワークピアグループの各々は、前記オーバーレイネットワークピアグループへのダイレクトオーバーレイネットワーク接続を有し、
前記ピアにおいて、前記ピアから前記オーバーレイネットワークピアグループの前記近隣の１つ又は複数のオーバーレイネットワークピアグループの各々までの第２のセットのトランスポートネットワーク距離を測定するステップと、前記ピアにおいて、前記第１のセットのトランスポートネットワーク距離の中のトランスポートネットワーク距離の各々について、前記第１のセットのトランスポートネットワーク距離の中の前記トランスポートネットワーク距離と前記第２のセットのトランスポートネットワーク距離の中の対応するトランスポートネットワーク距離との間の距離の絶対値が、閾値のトランスポートネットワーク距離値よりも小さい場合、前記オーバーレイネットワークピアグループに参加することを判定するステップと、
を備える方法を実行するコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体。
【請求項２】
トランスポートネットワーク内の第１のノードと第２のノードの間のトランスポートネットワーク距離は、前記第１のノードと前記第２のノードの間のメッセージに関する往復時間を含む
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
トランスポートネットワーク内の第１のノードと第２のノードの間のトランスポートネットワーク距離は、前記第１のノードと前記第２のノードの間のトランスポートネットワーク待ち時間を含む
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
トランスポートネットワーク内の第１のノードと第２のノードの間のトランスポートネットワーク距離は、前記第１のノードと前記第２のノードの間のトランスポートネットワークルーティングホップ数のカウントを含む
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
各オーバーレイネットワークピアグループは、ピアグループリーダを含み、前記ピアとオーバーレイネットワークピアグループの間のトランスポートネットワーク距離は、前記ピアと、前記オーバーレイネットワークピアグループの前記ピアグループリーダの間のトランスポートネットワーク距離を含み、第１のオーバーレイネットワークピアグループと第２のオーバーレイネットワークピアグループの間のトランスポートネットワーク距離は、前記第１のオーバーレイネットワークピアグループのピアグループリーダと前記第２のオーバーレイネットワークピアグループのピアグループリーダの間のトランスポートネットワーク距離を含む
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
前記方法は、前記ピアが前記オーバーレイネットワークピアグループに参加しない場合、前記オーバーレイネットワークピアグループの前記近隣の少なくとも１つのオーバーレイネットワークピアグループを候補のリストに追加するステップと、
候補の前記リストの中で最も近接したオーバーレイネットワークピアグループを参加が考慮される次のピアグループとして選択するステップとをさらに備える
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
前記方法は、選択された各候補を試験した後、前記ピアが既存のオーバーレイネットワークピアグループに参加していない場合、新規のオーバーレイネットワークピアグループを確立することを判定するステップをさらに備える
ことを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
プロセッサと、前記プロセッサに接続されたメモリと、前記メモリに格納されて前記プロセッサを以下の通り構成できる参加局所性認識オーバーレイモジュールを含むコンピュータ化されたシステムであって、
第１のセットのトランスポートネットワーク距離の中のトランスポートネットワーク距離の各々について、前記第１のセットのトランスポートネットワーク距離の中の前記トランスポートネットワーク距離と第２のセットのトランスポートネットワーク距離の中の対応するトランスポートネットワーク距離との間の差の絶対値が、閾値のトランスポートネットワーク距離値よりも小さい場合、オーバーレイネットワークピアがオーバーレイネットワークピアグループに参加することを少なくとも判定し、
前記第１のセットのトランスポートネットワーク距離は、前記オーバーレイネットワークピアグループから各々が前記オーバーレイネットワークピアグループまでの直接オーバーレイネットワーク接続を有する近隣の１つ又は複数のオーバーレイネットワークピアグループまでのトランスポートネットワーク距離を含み、
前記第２のセットのトランスポートネットワーク距離は、前記オーバーレイネットワークピアから前記近隣の１つ又は複数のオーバーレイネットワークピアグループまでの測定されたトランスポートネットワーク距離を含み、前記オーバーレイネットワーク内の各ピアについての前記局所性認識は、前記近隣の１つ又は複数のオーバーレイネットワークピアグループに関する情報及び前記局所性認識オーバーレイネットワークピアグループ内の前記１つ又は複数のピアに関する情報を含む
ことを特徴とするシステム。
【請求項９】
前記参加局所性認識オーバーレイモジュールは、少なくとも、
前記第１のセットのトランスポートネットワーク距離に関して前記オーバーレイネットワークピアグループにクエリを行い、
前記第２のセットのトランスポートネットワーク距離の中の各トランスポートネットワーク距離を測定する
ようにさらに構成されていることを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１０】
前記参加局所性認識オーバーレイモジュールは、さらに
リストされた順序でオーバーレイネットワークピアグループのリーダになるオーバーレイネットワークピアグループ内の少なくとも１つのオーバーレイネットワークピアをリストアップする順序付けされたリーダシップリストを含む
ことを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１１】
オーバーレイネットワークピアグループの現在のリーダが、前記オーバーレイネットワークピアグループを離れたかどうかを少なくとも判定するように構成されたグループ内保持モジュールをさらに備えた
ことを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１２】
オーバーレイネットワークピアグループの近隣の少なくとも１つのオーバーレイネットワークピアグループのリストと、
前記リストの中の各近隣に関して、前記オーバーレイネットワークピアグループと前記近隣の間の測定されたトランスポートネットワーク距離と
を含むグループ間キャッシュをさらに備えた
ことを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１３】
オーバーレイネットワークピアグループと、前記オーバーレイネットワークピアグループの各近隣のオーバーレイネットワークピアグループの間のトランスポートネットワーク距離を少なくとも定期的に測定するように構成されたグループ間保持モジュールをさらに備えた
ことを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１４】
コンピュータによって実施される方法であって、
第１のセットのトランスポートネットワーク距離の中のトランスポートネットワーク距離の各々について、前記第１のセットのトランスポートネットワーク距離の中の前記トランスポートネットワーク距離と第２のセットのトランスポートネットワーク距離の中の対応するトランスポートネットワーク距離との間の差の絶対値が、閾値のトランスポートネットワーク距離値よりも小さい場合、オーバーレイネットワークピアグループの局所性認識を有する１つ又は複数のピアを含む局所性認識オーバーレイネットワークピアグループにピアが参加することを判定するステップを備え、
前記第１のセットのトランスポートネットワーク距離は、前記オーバーレイネットワークピアグループから各々が前記オーバーレイネットワークピアグループへの直接オーバーレイネットワーク接続を有する近隣の１つ又は複数のオーバーレイネットワークピアグループまでの間のトランスポートネットワーク距離を含み、
前記第２のセットのトランスポートネットワーク距離は、前記ピアから前記近隣の１つ又は複数のオーバーレイネットワークピアグループまでの測定されたトランスポートネットワーク距離を含み、
前記オーバーレイネットワーク内の各ピアについての前記局所性認識は、前記近隣の１つ又は複数のオーバーレイネットワークピアグループに関する情報及び前記局所性認識オーバーレイネットワークピアグループ内の前記１つ又は複数のピアに関する情報を含む
ことを特徴とする方法。
【請求項１５】
前記第１のセットのトランスポートネットワーク距離に関して前記オーバーレイネットワークピアグループにクエリを行うステップと、
前記第２のセットのトランスポートネットワーク距離の中の各トランスポートネットワーク距離を測定するステップとをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
請求項１４に記載の方法をコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
オーバーレイネットワーク内の第１のノードと第２のノードの間のトランスポートネットワーク距離は、前記第１のノードと前記第２のノードの間のメッセージに関する往復時間、前記第１のノードと前記第２のノードの間のトランスポートネットワーク待ち時間、前記第１のノードと前記第２のノードの間のトランスポートネットワークルーティングホップ数のカウント、の内の１つ又は複数を含む
ことを特徴とする請求項８に記載のコンピュータ化されたシステム。
【請求項１８】
オーバーレイネットワーク内の第１のノードと第２のノードの間のトランスポートネットワーク距離は、前記第１のノードと前記第２のノードの間のメッセージに関する往復時間、前記第１のノードと前記第２のノードの間のトランスポートネットワーク待ち時間、前記第１のノードと前記第２のノードの間のトランスポートネットワークルーティングホップ数のカウント、の内の１つ又は複数を含む
ことを特徴とする請求項１４に記載された方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、参加局所性認識オーバーレイモジュールを含むコンピュータ化されたシステム及びコンピュータによって実施される方法に関し、より詳細には、一般にコンピュータネットワークに関し、１つまたは複数のオーバーレイネットワークをサポートすることができるコンピュータネットワークに係る、参加局所性認識オーバーレイモジュールを含むコンピュータ化されたシステム、記録媒体、及びコンピュータによって実施される方法に関する。
【背景技術】
【０００２】
コンピュータネットワークによって提供されるサービスを活用するアプリケーションの数は多く、増えつづけている。そのようなアプリケーションは、対話型マルチ媒体通信、マルチ媒体ファイル取得、ストリーミング媒体配信、及び分散コンピューティングを含む。最新のコンピュータネットワークによって通常、提供される基本的なサービスは、ネットワーク内の各コンピュータが、ネットワーク内の他の任意のコンピュータと通信接続を確立する能力である。特に大型のコンピュータネットワークにおいては、このサービスが、例えば、力づくのそれぞれ互いに対する（Ｎ×Ｎ）接続ではなく、より高度なルーティングによって提供されることが普通である。少なくとも以下の説明では、この基本サービスを提供することに関わるコンピュータネットワークをトランスポートネットワークと呼ぶ。
【０００３】
様々なアプリケーションアーキテクチャが、異なる形でトランスポートネットワークを利用することが可能である。例えば、クライアント−サーバアーキテクチャが、集中サーバコンポーネント、及び、必要に応じて、サーバと程度の差はあれ一時的な通信接続を確立するトランスポートネットワーク全体に配置されたいくつかのクライアントコンポーネントを有することが可能である。別の例は、最近、普及しているピアツーピア（Ｐ２Ｐ）アーキテクチャである。ピアツーピアアーキテクチャは、通常、集中化された要素を回避し、代わりに、おおむね等価の機能を有するピア（peer）群を頼りにしてアプリケーションのバックボーンを提供する。そのような分散化の利点には、単独の障害点及び攻撃に対する脆弱点が回避されること、ならびに良好な理論上のスケーラビリティが含まれることが可能である。
【０００４】
ピア群をピアツーピアアーキテクチャに構成するための様々な従来のスキームが存在する。そのようなスキームの例には、ＣＡＮアーキテクチャ（非特許文献１参照）、Ｃｈｏｒｄアーキテクチャ（非特許文献２参照）、Ｐａｓｔｒｙアーキテクチャ（非特許文献３参照）、及びＴａｐｅｓｔｒｙアーキテクチャ（非特許文献４参照）が含まれる。一般に、ピアツーピアアーキテクチャにおけるピア群は、基礎にあるトランスポートネットワークとは独立に考えることができるオーバーレイネットワークと呼ばれるネットワークに構成される。
【０００５】
トランスポートネットワークとは独立にピアツーピアアーキテクチャのオーバーレイネットワークを構成することが抱える問題は、オーバーレイネットワークにおいて近隣であるピア群が、基礎にあるトランスポートネットワークにおいて互いに遠く離れている可能性があり、例えば、互いに通信する際に長い遅延を受ける可能性があることである。オーバーレイネットワークとトランスポートネットワークの間におけるこの不一致は、完全に望ましくないわけではない。というのは、例えば、それにより、オーバーレイネットワークが、また、したがって、オーバーレイネットワークを利用しているアプリケーションが、トランスポートネットワークにおける障害に耐えることができるようになる可能性があるからである。しかし、オーバーレイネットワークの利点が所望される多くのアプリケーション、特に高いサービス品質（ＱｏＳ）要件を有するアプリケーションは、基礎にあるトランスポートネットワークを効率的に利用するオーバーレイネットワークを構成するシステム及び方法から利益を得るであろう。
【０００６】
【非特許文献１】Ratnasamy 他, "Scalable Content-Addressable Network", Proceedings of ACM SIGCOMM, August 2001
【非特許文献２】Stoica他, "Chord: A scalable Peer-to-peer Lookup Service for Internet Applications", Proceedings of ACM SIGCOMM, August 2001
【非特許文献３】Rowstron他, "Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems", Proceedings of the 18th IFIP/ACM International Conference on Distributed Systems Platforms (Middleware 2001), November 2001
【非特許文献４】Zhao他, "Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing", Report No. UCB/CSD-01-1141, Computer Science Division, University of California, Berkeley, April 2001
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のシステムには上述したような問題があり、さらなる改善が望まれている。
【０００８】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、局所性（locality）認識オーバーレイネットワークの測定ベースの構成を実現する、参加局所性認識オーバーレイモジュールを含むコンピュータ化されたシステム及びコンピュータによって実施される方法を提供することにある。
【課題を解決するための手段】
【０００９】
このセクションでは、本発明のいくつかの実施形態の簡単な説明を提示する。この概要は、本発明の広範な全体像ではない。この簡単な説明は、本発明の重要な／不可欠な要素を特定する、または本発明の範囲を画定することを意図していない。この簡単な説明の唯一の目的は、後に提示するより詳細な説明の前置きとして、本発明のいくつかの実施形態を簡略化された形態で提示することである。
【００１０】
本発明の一実施形態では、オーバーレイネットワークピア群がグループ化され、ピアグループ内の各ピアが、他のピアグループ内のピア群と比較して同様のトランスポートネットワーク近接度を有するようになる。
【００１１】
第１のセットのトランスポートネットワーク距離には、オーバーレイネットワークピアグループと、そのオーバーレイネットワークピアグループのピアグループ近隣の間のトランスポートネットワーク距離が含まれることが可能である。第２のセットのトランスポートネットワーク距離には、ピアと、オーバーレイネットワークピアグループのピアグループ近隣の間のトランスポートネットワーク距離が含まれることが可能である。本発明の一実施形態では、ピアは、第１のセットのトランスポートネットワーク距離が、第２のセットのトランスポートネットワーク距離に近い場合、オーバーレイネットワークピアグループに参加することを決める。本発明の一実施形態では、第１のセットのトランスポートネットワーク距離が第２のセットのトランスポートネットワーク距離に近いかどうかを判定するように参加局所性認識オーバーレイモジュールが構成される。
【００１２】
本発明の一実施形態では、第１のオーバーレイネットワークピアグループが、第２のピアグループの近隣ピアグループに関する第２のオーバーレイネットワークピアグループのクエリを行う。各オーバーレイネットワークピアグループは、オーバーレイネットワークにおける第１のピアグループでない限り、少なくとも１つの近隣ピアグループを有する。第１のオーバーレイネットワークピアグループと、第２のピアグループの近隣のそれぞれの間のトランスポートネットワーク距離が測定される。第１のオーバーレイネットワークピアグループと、第２のピアグループの近隣の中で最も近接した近隣との間で少なくとも１つのオーバーレイネットワーク接続が確立される。
【００１３】
添付の特許請求の範囲が、本発明の特徴を詳細に記載しているが、本発明、及び本発明の利点は、添付の図面と併せて考慮される以下の詳細な説明からよく理解される。
【発明の効果】
【００１４】
本発明によれば、局所性認識オーバーレイネットワークの測定ベースの構成を実現できる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。本発明の様々な実施形態の説明を始める前に、本発明の様々な実施形態を実施することができるコンピュータ及びネットワーキングの環境の説明を以下に提供する。必須ではないが、本発明は、コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造などが含まれる。本明細書で使用する「プログラム」という用語は、単一のプログラムモジュール、または協調して動作する複数のプログラムモジュールを表すことが可能である。本明細書で使用する「コンピュータ」及び「コンピューティングデバイス」という用語には、パーソナルコンピュータ（ＰＣ）、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのプログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、タブレットＰＣ、ラップトップコンピュータ、マイクロプロセッサまたはマイクロコントローラを有する家庭用電気器具、ルータ、ゲートウェイ、ハブなどの１つまたは複数のプログラムを電子的に実行する任意のデバイスが含まれる。また、本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において使用してもよい。分散コンピューティング環境では、プログラムは、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することができる。
【００１６】
本発明の態様を組み込むのに適したコンピュータネットワーキング環境の例を図１を参照して説明する。典型的なコンピュータネットワーキング環境１００は、雲で表すネットワーク１０４を介して互いに通信するいくつかのコンピュータ１０２を含む。ネットワーク１０４は、ルータ群、ゲートウェイ群、ハブ群などの多くの周知のコンポーネントを含むことが可能であり、コンピュータ群１０２が、有線媒体及び／または無線媒体を介して通信することができるようにしている。ネットワーク１０４を介して互いに対話する際、コンピュータ群１０２の１つまたは複数は、他のコンピュータ群１０２に対してクライアント群、サーバ群、またはピア群として動作することができる。したがって、本発明の様々な実施形態は、クライアント上、サーバ上、ピア上、または以上の組み合わせの上で実施することができる。ただし、それでも本明細書に含まれる特定の実施形態は、それらのタイプのコンピュータ群のすべてについて述べない可能性がある。コンピュータネットワーキング環境１００は、トランスポートネットワークの例である。
【００１７】
図２を参照すると、本明細書で説明する本発明の態様を実施することができるコンピュータ１０２の基本的な構成の例が示されている。最も基本的な構成では、コンピュータ１０２は、通常、少なくとも１つのプロセッサ２０２、及びメモリ２０４を含む。プロセッサ２０２は、本発明の様々な実施形態に従ってタスクを行う命令を実行する。そのようなタスクを実行する際、プロセッサ２０２は、コンピュータ１０２の他の諸部分、及びコンピュータ１０２の外部のデバイス群に電子信号を伝送して、何らかの結果を生じさせることができる。コンピュータ１０２の正確な構成及びタイプに依存して、メモリ２０４は、揮発性である（ＲＡＭのように）、不揮発性である（ＲＯＭまたはフラッシュメモリのように）、あるいはその２つの何らかの組み合わせであることが可能である。この最も基本的な構成を図２に破線２０６で示している。
【００１８】
また、コンピュータ１０２は、追加の特徴／機能も有することが可能である。例えば、コンピュータ１０２は、磁気式または光学式のディスクまたはテープを含むが、以上には限定されない追加のストレージ（リムーバブルストレージ２０８及び／またはノンリムーバブルストレージ２１０）を含むことも可能である。コンピュータ記憶媒体には、コンピュータ実行可能命令、データ構造、プログラムモジュール、またはその他のデータを含む情報を格納するために任意の方法または技術で実装された揮発性媒体または不揮発性媒体、リムーバブル媒体またはノンリムーバブル媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ（random access memory）、ＲＯＭ（read only memory）、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、フラッシュメモリ、ＣＤ（compact disc）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータ１０２がアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。あらゆるそのようなコンピュータ記憶媒体が、コンピュータ１０２の一部であることが可能である。
【００１９】
コンピュータ１０２は、好ましくは、デバイスが、リモートコンピュータ２１４のような他のデバイス群と通信することができるようにする通信接続２１２も含む。通信接続は、通信媒体の例である。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。例として、限定としてではなく、「通信媒体」という用語には、音響媒体、ＲＦ（radio frequency）媒体、赤外線媒体、及びその他の無線媒体などの無線媒体が含まれる。本明細書で使用する「コンピュータ可読媒体」という用語には、コンピュータ記憶媒体と通信媒体がともに含まれる。
【００２０】
コンピュータ１０２は、キーボード／キーパッド、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス群２１６も有することが可能である。ディスプレイ、スピーカ、プリンタなどの他の出力デバイス群２１８も含まれることが可能である。これらすべてのデバイスは、当技術分野で周知であり、本明細書で詳細に説明することはしない。
【００２１】
以下の説明において、本発明は、特に明記しない限り、１つまたは複数のコンピューティングデバイスによって実行される動作の作用及び記号表現に関連して説明する。このため、ときとして、コンピュータによって実行されるものとして述べるそのような作用及び動作には、コンピュータのプロセッサによる構造化された形態のデータを表す電子信号の操作も含まれることを理解されたい。この操作は、データを変換するか、またはコンピュータのメモリシステム内の局所性にデータを保持し、それにより、当業者に周知の形でコンピュータの動作が再構成されるか、または別の形で変更される。データが保持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理的な局所性である。ただし、本発明を以上の状況で説明するが、以下に説明する様々な作用及び動作をハードウェアで実施してもよいことが当業者には認められるように、限定することを意図するものではない。
【００２２】
通信ネットワークにおける近接度（proximity）は、時間に関して測定することができる。適切な近接メトリック（ｍｅｔｒｉｃ）／測度には、送信−受信待ち時間、往復時間、及びネットワークルーティングホップ数が含まれ、したがって、例えば、ネットワーク内の２つのポイントは、その２つのポイント間の往復時間が短い場合、近接していると言うことができ、ホップ数が多い場合、遠く離れていると言うことができる。オーバーレイネットワーク内の各ペアのピアに関連する次の少なくとも２つのそのような距離が存在する。すなわち、オーバーレイネットワークを介して測定された第１の距離、及び基礎にあるトランスポートネットワークを介して測定された第２の距離である。これらのメトリックは、例えば、各メトリックが往復時間である場合、同一の値を有することが可能であり、あるいは、異なることが可能であり、例えば、トランスポートネットワークを介して５つのルーティングホップが要求される場合に、オーバーレイネットワーク内の２つのピア間で直接接続が存在することが可能である。特に明記しない限りまたは明らかに状況と矛盾しない限り、以下の説明における２つのピア間の距離への言及は、基礎にあるトランスポートネットワークを介して測定された距離を指す。本発明の一実施形態では、オーバーレイネットワークは、隣接するピア間の平均トランスポートネットワーク距離を最短にするように構成される。
【００２３】
図３は、基礎にあるトランスポートネットワークとは独立に構成された典型的なオーバーレイネットワーク３００を示している。したがって、図３のピア間の例示する距離は、そのピア間における基礎にあるトランスポートネットワーク距離とは独立である。そのようなオーバーレイネットワークは、当技術分野で周知であり、したがって、オーバーレイネットワークの詳細の一部だけを以下に説明する。図１に関連して説明するコンピュータネットワーキング環境１００は、適切なトランスポートネットワークの例である。トランスポートネットワークのコンピュータ群１０２は、オーバーレイネットワーク３００のピア群３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６をホストする。コンピュータ群とピア群はともに、トランスポートネットワーク内のノード群と見なすことができる。ピア（例えば、ピア３０２）とコンピュータ（例えば、コンピュータ１０２）の間の関係は、必ずしも１対１ではない。単一のコンピュータが、複数のピアをホストすることができ、例えば、ピア３０２及びピア３１６が、単一のコンピュータ１０２によってホストされることが可能である。単一のピア（例えば、ピア３０６）が、複数のコンピュータ１０２によってホストされることも可能である。
【００２４】
オーバーレイネットワーク３００のピア相互接続の詳細は、例示が、基礎にあるトランスポートネットワークとは独立に構成された任意のオーバーレイネットワークの概略であることを意図しているため、比較的重要ではないが、完全にするために以下に説明する。ピア３０２は、ピア群３０４、３０６、及び３１６に直接に接続される（そのピア群のオーバーレイネットワーク内の近隣である）。ピア３０４は、ピア３０２及び３０６に接続される。ピア３０６は、ピア３０２、３０４、３０８、及び３１０に接続される。ピア３０８は、ピア３０６及び３１０に接続される。ピア３１０は、ピア３０６、３０８、及び３１２に接続される。ピア３１２は、ピア３１０、３１４、及び３１６に接続される。ピア３１４は、ピア３１２及び３１６に接続される。ピア３１６は、ピア３０２、３１２、及び３１４に接続される。この意味で接続されるピア群は、関連するアクティブなトランスポートネットワーク通信接続（例えば、図２の通信接続２１２）を有する必要はないが、それぞれのそのような接続には、通常、何らかのトランスポートネットワーク及び／またはオーバーレイネットワークのリソースが割り当てられている。
【００２５】
図４は、図４のピア間の例示する距離が、基礎にあるトランスポートネットワーク内のピア間の距離（すなわち、近接メトリック）を表していること以外は、図３と同一のオーバーレイネットワーク３００を示している。ピア３０２、３０６、３１２、及び３１６が、トランスポートネットワーク内で互いに近接している。ピア３０２、３０６、３１２、及び３１６は、破線４０２で画定された第１のトランスポートネットワーク局所性の範囲内にあり、ピアグループＡを一緒に形成している。ピア３０４、３０８、３１０、及び３１４も、トランスポートネットワーク内で互いに近接している。ピア３０４、３０８、３１０、及び３１４は、破線４０４で画定された第２のトランスポートネットワーク局所性の範囲内にあり、ピアグループＢを形成している。ピアグループＡ及びピアグループＢは、トランスポートネットワーク内で互いから比較的遠く離れており、つまり、この例では、異なるグループ内のピア間の接続は、長距離接続であるものと想定される。
【００２６】
ピア３０２とピア３１６は、オーバーレイネットワーク３００内の近隣である。図４は、ピア３０２とピア３１６が、トランスポートネットワーク内でも互いに近接していることを示している。ピア３０４とピア３１４は、トランスポートネットワーク内で互いに近接しているが、オーバーレイネットワーク３００内の最短パス経由でルーティングされるピア３０４からピア３１４へのオーバーレイネットワークメッセージでさえ、ピア３０４からピア３０２にまず送信され、次にピア３０２からピア３１６に、最後にピア３１６からピア３１４に送信される。ピア３０４からピア３０２へのオーバーレイネットワーク３００接続、及びピア３１６からピア３１４へのオーバーレイネットワーク３００接続は、長距離接続である。ピア３０４とピア３１４は、トランスポートネットワーク内で互いに近接しているものの、それらの間でルーティングされるオーバーレイネットワークメッセージは、２つの長距離接続の費用を被る。以上が、本発明の一実施形態が標的にする非効率の例である。
【００２７】
図５は、図４と同一のピア群及びトランスポートネットワーク局所性を示しているが、図５では、基礎にあるトランスポートネットワーク局所性４０２及び４０４を認識して、典型的なピアツーピアオーバーレイネットワーク５００が構成されており、つまり、オーバーレイネットワーク５００は、本発明の一実施形態に従って局所性認識している。図３及び図４のオーバーレイネットワーク３００と比べて、オーバーレイネットワーク５００は、より少数の長距離（すなわち、グループ間）接続を有する。本発明の一実施形態では、オーバーレイネットワーク内の隣接ピア間の平均トランスポートネットワーク距離が、オーバーレイネットワークのピア群をトランスポートネットワーク局所性の中にグループ化し、グループ間接続の数を最小限に抑えることによって短縮される。
【００２８】
オーバーレイネットワークの分散された性質に沿って、本発明の一実施形態による局所性認識オーバーレイネットワークの各ピアは、トランスポートネットワーク局所性を検出し、互いに接続されたグループに自己組織化することができることが望ましい。図６は、局所性認識ピア６００の典型的なモジュール式ソフトウェアアーキテクチャを示している。局所性認識ピア６００は、局所性認識ピア６００が、自らのトランスポートネットワーク局所性の局所性認識オーバーレイネットワークピアグループに参加できるようにする参加局所性認識オーバーレイモジュール６０２を有する。グループ内保持モジュール６０４が、グループ内キャッシュ６０６を保持する。グループ内キャッシュ６０６は、局所性認識ピア６００が参加するピアグループに関する情報を含む。グループ間保持モジュール６０８は、グループ間キャッシュ６１０を保持する。グループ間キャッシュ６１０は、局所性認識ピア６００が参加しているピアグループ以外のピアグループに関する情報を含む。
【００２９】
ランデブーポイント（ｒｅｎｄｅｚｖｏｕｓ ｐｏｉｎｔ）モジュール６１２が、ブートピアキャッシュ６１４を保持し、キャッシュ６１４へのアクセスを提供する。ブートピアキャッシュ６１４は、局所性認識ピア６００が、自らのトランスポートネットワーク局所性のピアグループを探索する際の開始点として利用することができるオーバーレイネットワーク内の１つまたは複数のピアのリストを含む。破線６１６により、本発明の様々な実施形態において、ランデブーポイントモジュール６１２及びブートピアキャッシュ６１４が、局所性認識オーバーレイネットワーク内のピア群のすべて、または一部によって組み込まれる、あるいはいずれによっても組み込まれないことが可能であることが示されている。ランデブーポイントモジュール６１２及びブートピアキャッシュ６１４は、ランデブーポイント機能を提供することに専用である公知の（または容易に発見することができる）トランスポートネットワーク局所性にあるピア（必ずしも局所性認識ピア６００ではない）の中に組み込むこともできる。ＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）サーバ及びＤＨＣＰ（dynamic host configuration protocol）サーバなどを利用して、ランデブーポイント機能を実装することができる。オーバーレイネットワーク全体に複数のブートピア（すなわち、ランデブーポイントモジュール６１２及びブートピアキャッシュ６１４を組み込んだピア群）を分散させることにより、オーバーレイネットワークの堅牢性及びフォールトトレランス（ｆａｕｌｔ  ｔｏｌｅｒａｎｃｅ）を強化することができる。
【００３０】
本発明の一実施形態では、局所性認識オーバーレイネットワーク（例えば、図５の局所性認識オーバーレイネットワーク５００、または図７に関連して以下に説明する局所性認識オーバーレイネットワーク７００）に参加する局所性認識ピア６００は、ピア６００のトランスポートネットワーク局所性のピアグループに参加するか、またはピア６００が、自らの局所性でピアグループを見つけられない場合、新規のピアグループを確立する。特定のピアグループに参加する際、局所性認識ピア６００は、そのピアグループのメンバであるピア群に対するオーバーレイネットワーク接続を開始することができる。新規のピアグループを確立する際、局所性認識ピア６００は、トランスポートネットワーク内で近接している既存のピアグループ内のピア群に対するオーバーレイネットワーク接続を開始することができる。新規のピアグループの確立は、局所性認識オーバーレイネットワークがより小さい場合、つまり、局所性認識オーバーレイネットワークが、より少数の局所性認識ピア６００を組み込んでいる場合により一般的である可能性がある。
【００３１】
図７は、本発明の一実施形態による複数のピアグループを有する局所性認識オーバーレイネットワーク７００の例を示している。各ピアグループ７０２、７０４、７０６、７０８、７１０、７１２、７１４、７１６、７１８、７２０は、少なくとも１つの局所性認識ピアを含む。局所性認識オーバーレイネットワーク７００は、ランデブーポイント７２２を有する。図７の局所性認識ピア７２４は、まだオーバーレイネットワーク７００に参加していない。
【００３２】
各ピアグループは、別のピアグループに対する少なくとも１つのオーバーレイネットワーク接続を有する。つまり、各ピアグループ内のピアの少なくとも１つが、別のピアグループ内のピアに対するオーバーレイネットワーク接続を有する。オーバーレイネットワーク７００内で、各ピアグループは、トランスポートネットワーク内で近接する別のピアグループとの少なくとも１つの接続を有する。例えば、ピアグループ７０４、７０６、及び７０８は、トランスポートネットワーク内でピアグループ７０２に比較的近接しており、ピアグループ７０２は、これらのピアグループのそれぞれに対する直接オーバーレイネットワーク接続を有する。つまりピアグループ７０４、７０６、及び７０８は、ピアグループ７０２のピアグループ近隣である。これとは反対に、ピアグループ７１８は、トランスポートネットワーク内でピアグループ７０２から比較的遠く離れており、ピアグループ７０２は、ピアグループ７１８に対する直接オーバーレイネットワーク接続を有さない。ピアグループ７０２とピアグループ７１８は、オーバーレイネットワーク７００内で近隣ではない。本発明の一実施形態では、ピアグループは、例えば、局在するトランスポートネットワーク障害に起因するオーバーレイネットワーク分割のリスクを小さくするため、近接したピアグループと並んで、他のランダムなピアグループに対してもオーバーレイネットワーク接続を有することが可能である。
【００３３】
局所性認識ピア群６００を含むピアグループは、ピアグループネットワーク内のノード群と見なすことができる。図８は、従来のオーバーレイネットワークに関連するネットワークレイヤの概略図である。図８では、従来のオーバーレイネットワーク８０２が、トランスポートネットワーク８０４によってサポートされている。図９は、局所性認識オーバーレイネットワークに関連するネットワークレイヤの適切な概略図である。局所性認識オーバーレイネットワーク９０２（例えば、局所性認識オーバーレイネットワーク７００）が、トランスポートネットワーク９０４（図８のトランスポートネットワーク８０４と同一であることが可能な）によってサポートされている。本発明の一実施形態では、局所性認識オーバーレイネットワーク９０２を保持することの一環として、局所性認識オーバーレイネットワーク９０２は、ピアグループネットワーク９０６を保持する。
【００３４】
各ピアグループは、そのピアグループのリーダ（「ピアグループリーダ」）であるピアを含むことができる。新規のピアグループを確立するピアは、通常、その新規のピアグループの第１のリーダである。ピアグループ内のそれぞれの局所性認識ピア６００が、そのピアグループのリーダになることができる。本発明の一実施形態では、グループ間オーバーレイネットワーク接続は、ピアグループリーダ間で行われる。例えば、図５では、ピア３１２が、ピアグループＡのリーダであり、ピア３１４が、ピアグループＢのリーダである。図９のピアグループネットワーク９０６は、ピアグループのリーダである局所性認識オーバーレイネットワーク９０２内のピア群のネットワークであることが可能である。
【００３５】
本発明の一実施形態では、ピアグループ内の各ピアは、トランスポートネットワーク内で十分に互いに近接しているので、ピアとピアグループリーダの間のトランスポートネットワーク距離の測定値が、そのピアと、ピアグループリーダを含むピアグループ内の各ピアの間のトランスポートネットワーク距離の良好な近似値である。このピアグループの一貫性により、自らのトランスポートネットワーク局所性のピアグループを探索するピアが、トランスポートネットワーク局所性データに関してネットワークのピアグループリーダにクエリを行うことにより、局所性認識オーバーレイネットワークを迅速に走査する（例えば、ランダムな開始点から）ことができるようになることが可能である。局所性認識オーバーレイネットワーク走査をさらに強化するため、各ピアグループリーダが、隣接するピアグループ（すなわち、トランスポートネットワーク内で近接したピアグループ）のリスト、及びそれらの隣接ピアグループまでのトランスポートネットワーク距離を保持することが可能である。例えば、図７では、ピアグループ７０２のリーダが、ピアグループ７０４、７０６、及び７０８のリーダに対する参照のリスト、及びそれらのピアグループまでの測定済みのトランスポートネットワーク距離を保持する。
【００３６】
自らのトランスポートネットワーク局所性のピアグループを探索する局所性認識ピア６００は、少なくとも１つのピアグループを見つけると、候補ピアグループの隣接ピアグループに対する参照、ならびに候補ピアグループから測定されたそれらの隣接ピアグループまでのトランスポートネットワーク距離に関して候補ピアグループにクエリを行うことにより（例えば、ピアグループリーダにクエリを行うことにより）、そのピアグループが自らの局所性にあるかどうかを調べることができる。次に、ピア６００は、ピア６００自体から、候補ピアグループに隣接するピアグループまでのトランスポートネットワーク距離を測定することができる。ピア６００によって測定されたトランスポートネットワーク距離が、候補ピアグループによって与えられたトランスポートネットワーク距離と同一である（例えば、１０ミリ秒の往復時間、または１つのトランスポートネットワークホップの許容差の範囲内まで）場合は、本発明の一実施形態では、ピア６００は、自らのトランスポートネットワーク局所性のピアグループを見つけたことになる。ピアグループネットワーク内のピアグループは、探索を行うピア６００のための動的な目印（ｌａｎｄｍａｒｋ）として作用する。ピア６００は、例えば、オーバーレイネットワーク接続を確立する相手のピアグループ内のピア群のリストに関して、ピアグループのリーダにさらにクエリを行うことにより、ピアグループに参加することができる。ピア６００によって測定されたピアグループ近隣の距離が、候補ピアグループによって与えられた距離と一致しない場合、ピア６００は、検査すべき新たな候補ピアグループ（すなわち、不合格にされた候補ピアグループの近隣）のリストを有し、例えば、最短の測定されたトランスポートネットワーク距離を有する候補グループを次に試みるように選択することができる。
【００３７】
図１０は、本発明の一実施形態による局所性認識オーバーレイネットワーク７００に参加する際に以上の戦略を使用する局所性認識ピア７２４（図７）によって実行される典型的な手続きを示している。図６の参加局所性認識オーバーレイモジュール６０２が、図１０で示された手続きを実行することができる。局所性認識オーバーレイネットワーク７００に参加する局所性認識ピア７２４は、局所性認識オーバーレイネットワーク７００内の少なくとも１つのピアグループに対する第１の参照をいくつかの形で獲得することができる。コンピュータユーザが、ピアグループリーダのトランスポートネットワークアドレス、例えば、ＩＰ（Internet Protocol）アドレス、トランスポートネットワークドメイン名、またはＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を直接に入力することができる。代替として、各局所性認識ピア７２４が、例えば、ＤＨＣＰ、またはオーバーレイネットワークの類似物を介して獲得することができる局所性認識オーバーレイネットワーク７００に関するランデブーポイント（ＲＰ）（例えば、ランデブーポイント７２２）に対する参照を有していてもよい。図１０に示した例では、１つまたは複数のピアグループのブートリストが、ステップ１００２で、局所性認識オーバーレイネットワーク７００に関するランデブーポイント７２２から獲得される。
【００３８】
ステップ１００４で、ピア７２４が、ピア７２４自体と、ブートリストの中の候補ピアグループのそれぞれの間のトランスポートネットワーク距離を測定する。例えば、ピア７２４が、各ピアグループのリーダに明示的なＭｅａｓｕｒｅメッセージを送信し、Ｍｅａｓｕｒｅメッセージに対する応答を受信した後、往復時間を計算することが可能である。本発明の一実施形態では、グループ間保持モジュール６０８（図６）が、Ｍｅａｓｕｒｅメッセージなどに応答することを担う。当業者には理解されるとおり、トランスポートネットワーク距離を測定する他の適切な方法を使用してもよい。ステップ１００６で、ピア７２４からの最短の測定されたトランスポートネットワーク距離を有する現在のセットの候補ピアグループの中のピアグループが、調べられる次のピアグループとして選択される。ピア７２４が、オーバーレイネットワーク内のピアグループに対する直接の第１の参照（例えば、ランデブーポイント以外からの）を有する場合、ピア７２４は、ステップ１００２、１００４、及び１００６を迂回して、ステップ１００８から始めることができる。
【００３９】
ステップ１００８で、ピア７２４が、選択されたピアグループの隣接ピアグループに対する参照に関して、選択されたピアグループにクエリを行う。例えば、ピア７２４は、明示的なＧｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｐｕｓメッセージを選択されたピアグループのリーダに送信し、応答として隣接するピアグループに対する参照を受信することができる。例えば、ピア７２４が、Ｇｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｕｐｓメッセージをピアグループ７０２のリーダに送信した場合、本発明の一実施形態では、ピア７２４は、応答としてピアグループ７０４、７０６、及び７０８のリーダのリストを受信する。本発明の一実施形態では、グループ内保持モジュール６０８（図６）は、Ｇｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｕｐｓメッセージなどに応答することを担う。
【００４０】
ステップ１０１０で、ピア７２４は、選択されたピアグループによって測定された選択されたピアグループの隣接ピアグループまでのトランスポートネットワーク距離に関して、選択されたピアグループにクエリを行う。例えば、ピア７２４は、明示的なＧｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｕｐ  Ｄｉｓｔａｎｃｅｓメッセージを選択されたピアグループに送信し、応答としてそれぞれの隣接ピアグループに関するトランスポートネットワーク距離を受信することができる。例えば、ピア７２４が、Ｇｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｕｐ  Ｄｉｓｔａｎｃｅｓメッセージをピアグループ７０２のリーダに送信した場合、本発明の一実施形態では、ピアは、応答として、ピアグループ７０２からピアグループ７０４まで、ピアグループ７０２からピアグループ７０６まで、及びピアグループ７０２からピアグループ７０８までのトランスポートネットワーク距離を受信する。一実施形態では、グループ間保持モジュール６０８（図６）が、Ｇｅｔ  Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐｅｅｒ  Ｇｒｏｕｐ  Ｄｉｓｔａｎｃｅｓメッセージなどに応答することを担う。
【００４１】
本発明の一実施形態では、各ピアグループリーダが、自らのグループ間キャッシュ６１０（図６）の中に、隣接するピアグループ内のピアグループリーダのリスト、ならびにそれぞれの隣接ピアグループリーダまでのトランスポートネットワーク距離を保持する。隣接するピアグループのリストを確立し、保持することについて、図１１を参照して以下により詳細に説明する。グループ間保持モジュール６０８は、例えば、Ｍｅａｓｕｒｅメッセージをリストの中の各ピアグループリーダに定期的に送信することにより、トランスポートネットワーク距離を定期的に更新することができる。本発明の一実施形態では、選択されたピアグループのリーダのグループ内保持キャッシュ６１０のコピーを要求することにより、前述したステップ１００８及び１０１０のメッセージの場合と少なくとも同一の情報が提供される。オーバーレイネットワークのピア間のキャッシュ同期は、従来のオーバーレイネットワークプロトコルによってサポートすることができる。
【００４２】
ステップ１０１２で、ピア７２４が、ピア７２４自体と選択されたピアグループの中の隣接ピアグループのそれぞれとの間のトランスポートネットワーク距離を測定する。例えば、ピア７２４は、隣接するピアグループのそれぞれのリーダにＭｅａｓｕｒｅメッセージを送信することができる。例えば、ピア７２４が、図７のピアグループ７０２を考慮している場合、ピア７２４は、ピアグループ７０４、７０６、及び７０８のリーダにＭｅａｓｕｒｅメッセージを送信することができる。ステップ１０１２の完了時に、ピア７２４は、選択されたピアグループの中の隣接ピアグループのリスト、選択されたピアグループからそれらの隣接ピアグループのそれぞれまでのトランスポートネットワーク距離（提供された距離）、及びピアからそれらの隣接ピアグループのそれぞれまでのトランスポートネットワーク距離（測定された距離）を有する。
【００４３】
ステップ１０１４で、ピア７２４が、提供された距離のそれぞれをそれに対応する測定された距離と比較する。例えば、ピア７２４が、ピアグループ７０２を考慮している場合、ピア７２４はまず、ピアグループ７０２によって提供されたピアグループ７０２とピアグループ７０４の間のトランスポートネットワーク距離を、ピア７２４によって測定されたピアグループ７０２とピアグループ７０４の間のトランスポートネットワーク距離と比較する。次に、ピア７２４は、ピアグループ７０２によって提供されたピアグループ７０２とピアグループ７０６の間のトランスポートネットワーク距離を、ピア７２４が測定したピア７２４自体とピアグループ７０６の間のトランスポートネットワーク距離と比較する。次に、ピア７２４は、ピアグループ７０２によって提供されたピアグループ７０２とピアグループ７０８の間のトランスポートネットワーク距離を、ピア７２４によって測定されたピアとピアグループ７０８の間のトランスポートネットワーク距離と比較する。それぞれの比較に関して、差の絶対値（すなわち、符号を無視した値）が、閾値（例えば、１０ミリ秒）未満である場合、選択されたピアグループは、ピア７２４のトランスポートネットワーク局所性の中にあると判定され、手続きは、ステップ１０１６に進み、ピア７２４は、選択されたピアグループに参加する。閾値未満ではない場合、現在、選択されているピアグループは、ピア７２４のトランスポートネットワーク局所性の中にないと判定され、手続きは、ステップ１０１８に進む。
【００４４】
ステップ１０１８で、ピア７２４は、候補ピアグループの残りのセットを検査して、局所性試験に適したものが存在するかどうかを判定する。ピア７２４の局所性の中にピアグループが見つからずに、すべての適切な候補が既に試験済みである、あるいはあまりにも多くの（例えば、１０個の）ピアグループが既に試験済みであることがあり得る。適切な候補ピアグループが残っていない場合、手続きは、ステップ１０２０に進み、ピア７２４が、自らを第１のメンバとして新規のピアグループを確立する。候補ピアグループのセットが、それでも適切な候補を含まない場合、手続きは、ステップ１００６に戻り、ピア７２４から最短の測定されたトランスポートネットワーク距離を有する適切な候補が、次回の局所性試験のために選択される。
【００４５】
例えば、ピア７２４がオーバーレイネットワーク７００に参加することを求めており、ランデブーポイント７２２が局所性探索の開始点としてピアグループ７０２を提供する場合、ピア７２４は、ピアグループ７０２の隣接ピアグループに関してピアグループ７０２にクエリを行い、応答としてピアグループ７０４、７０６、及び７０８を受け取る。本発明の一実施形態では、これらのピアグループ７０４、７０６、及び７０８は、次回の局所性試験のための候補ピアグループのセットとなる。ピアグループ７０２が、ステップ１０１４の局所性試験に不合格であった場合、ピアグループ７２４は、ステップ１０１２でピア７２４によって測定されたトランスポートネットワーク内のそのピアに最も近接した候補ピアグループのセットの中のピアグループを選択する。
【００４６】
この例では、ピアグループ７０８が、ピアグループ７０４、７０６、及び７０８の中で最も近接している。この結果、ピア７２４は、ピアグループ７０８が試験されるように選択し、ピアグループ７０８の近隣に関してピアグループ７０８にクエリを行う。オーバーレイネットワーク７００内で、ピアグループ７０８の隣接ピアグループは、ピアグループ７０２及び７１０である。本発明の一実施形態では、ピアグループ７０２は、既に試験され、不合格にされており、したがって、適切な候補ではないが、ピアグループ７１０は、候補ピアグループのセットに追加される。ピアグループ７１０までのトランスポートネットワーク距離が、ピアグループ７０８を試験する手続きの一環として測定される。ピアグループ７０８が、ステップ１０１４の局所性試験に不合格であった場合、本発明の一実施形態では、ピア７２４は、ピアグループ７０４、７０６、及び７１０のうち最も近接したピアグループが次に試験されるように選択する。
【００４７】
ピアグループ７１０が最も近接している場合、ピアグループネットワーク探索は、ピアグループ７１０に進む。ピアグループ７１０の近隣に関してピアグループ７１０にクエリを行った際、ピアグループ７１２、７１４、及び７１６が候補ピアグループのセットに追加され、ピアグループの１つが局所性試験に合格するまで、局所性認識オーバーレイネットワーク内のピアグループのそれぞれが局所性試験に不合格になるまで、あるいはピア７２４が、時間（例えば、１０秒間）、試験されたピアグループの数（例えば、１０個）などに関してピアグループネットワーク探索限度に達するまで、以下同様に行われる。本発明の一実施形態では、既に試験済みのピアグループは、候補ピアグループのセットから除外されず、既に試験済みのピアグループの１つが最良の（すなわち、最短距離の）候補であると判定された場合、ピア７２４は、そのピアグループを新規のピアグループの第１の近隣として新規のピアグループを確立する。
【００４８】
本発明の一実施形態では、新規のピアグループを確立することは、新規ピアグループ識別子（ＩＤ）を生成すること、及びいくつかの新規ピアグループの最も近接した近隣に対するオーバーレイネットワーク接続を確立することを含む。新規のピアグループに最も近接したピアグループは、図１０に関連して前述した方法の変種を使用して見つけることができる。ピアグループネットワークの中の一巡し、既存のピアグループの１つに参加するのではなく、新規のピアグループを確立することを決定した時点で、ピア６００は、最も近接した既存のピアグループ（最後に試験されたピアグループ）に対する参照を有することが可能である。この最も近接した既存のピアグループが、新規のピアグループの第１の近隣になることが可能である。次に、新規のピアグループが、その第１の近隣の近隣（複数）に関して、その第１の近隣にクエリを行い、新規のピアグループからのその近隣の距離を測定し、それらのうち最も近接したピアグループを新規ピアグループの第２の近隣として選択することができる。次に、新規のピアグループは、その第２の近隣の近隣（複数）に関して、その第２の近隣にクエリを行い、例えば、新規のピアグループが適切な数の接続された近隣（例えば、６個の近隣）を有するまで、新規のピアグループが局所性認識オーバーレイネットワーク内のピアグループのそれぞれに接続するまで、あるいはピアグループがトランスポートネットワーク距離境界（例えば、１０００ミリ秒または７個のトランスポートネットワークホップ）内の各ピアグループに接続するまで、以下同様に行われることが可能である。
【００４９】
図１１は、本発明の一実施形態による局所性認識オーバーレイネットワーク内で新規のピアグループを確立するための典型的な手続きを示している。図６の参加局所性認識オーバーレイモジュール６０２が、図１１に示した手続きを実行することができる。ステップ１１０２で、新規のピアグループを確立するピア７２４（図７）が、ピア識別子の従来の生成と同様の方法を使用して新規ピアグループ識別子を生成し、例えば、ピアグループ識別子は、当技術分野で周知の方法を使用して生成されたＧＵＩＤ（globally unique identifier）であることが可能である。ステップ１１０４で、ピア７２４は、オーバーレイネットワーク内で最も近接した既知の既存ピアグループのリーダに対するオーバーレイネットワーク接続を確立する。例えば、ピア７２４は、図１０に関連して前述した方法を利用して、局所性認識オーバーレイネットワーク７００を走査することが可能である。ピアグループ７０２から開始して、ピア７２４は、ピアグループ７０８、７１０、７１４、７１８、及び７２０のそれぞれを順に考慮したが、それぞれのピアグループがピア７２４の局所性試験に不合格になっていた場合、ピア７２４は、自らを第１のメンバとして新規のピアグループを確立することを判定する。この例では、ピアグループ７２０が、オーバーレイネットワーク７００内で最も近接した既知の既存ピアグループであり、したがって、ピア７２４は、ピアグループ７２０に対して、例えば、ピアグループ７２０のリーダに対して自らの第１のオーバーレイネットワーク接続を確立する。
【００５０】
ステップ１１０６で、ピア７２４は、目標数のグループ間接続に達したかどうかを調べる。グループ間接続の目標数は、局所性認識オーバーレイネットワークを利用しているアプリケーションの要件に依存して異なる可能性があるが、本発明の一実施形態では、少なくとも２つであり、しばしば、より多い。目標が満たされている場合、新規のピアグループを確立するこの態様は、完了である。満たされていない場合、手続きは、ステップ１１０８に進み、候補の近隣を獲得する。将来の何らかの時点で、近隣ピアグループに対する確立済みの接続の１つまたは複数が失われた場合、ピア７２４は、グループ間接続を目標数まで復元するため、この手続きに、例えば、ステップ１１０６から再び入ることが可能である。
【００５１】
ステップ１１０８で、ピア７２４は、図１０のステップ１００８と同様の形で新たな近隣の近隣（複数）のリストに関して、新たな近隣にクエリを行う。例えば、図７のピアグループ７２０が新規のピアグループの第１の近隣である場合、新規のピアグループは、ピアグループ７２０の近隣のリストに関してピアグループ７２０にクエリを行い、応答として、ピアグループ７１８及びその新規のピアグループ自体に対する参照を受け取る。本発明の一実施形態では、第１の近隣ピアグループのそれらの近隣が、新規のピアグループに関する候補の近隣となる。後続の繰り返しの際、近隣クエリの結果が候補の近隣のリストに追加されることが可能である。ステップ１１１０で、ピア７２４は、図１０のステップ１０１２と同様の形で、ピア７２４自体から新たな候補の近隣までのトランスポートネットワーク距離を測定する。例えば、図７のピアグループ７２０に、ピアグループ７２０の近隣に関してクエリを行った後、ピア７２４は、ピアグループ７１８までのトランスポートネットワーク距離を測定する。
【００５２】
ステップ１１１２で、ピア７２４は、候補の近隣のリストを調べて、適切な候補が存在するかどうかを判定する。新規のピアグループが、目標数のグループ間接続に達することなしに、局所性認識オーバーレイネットワークのピアグループのそれぞれに対するオーバーレイネットワーク接続を確立済みであることがあり得る。新規のピアグループが、トランスポートネットワーク距離限度内のピアグループのそれぞれに対するピアグループレベルの接続を確立済みであることがあり得る。適切な近隣候補が全く存在しない場合、ピア７２４は、図１１に示した手続きを終了することができる。存在する場合、手続きは、ステップ１１０４に戻り、ピア７２４が、候補のピアグループの最も近接したピアグループを新規のピアグループの新たな近隣として選択する。手続きが、目標数のグループ間接続を確立することなしに終了した場合、新規のピアグループのリーダが、例えば、ステップ１１０４から、定期的にこの手続きに再び入って新たな近隣を探索することができる。
【００５３】
本発明の一実施形態では、新規のピアグループを確立するピアは、そのピアグループの第１のリーダになる。確立を行ったピアは、無期限にそのピアグループのリーダにとどまることができるが、確立を行ったピアが、局所性認識オーバーレイネットワークを離れた場合（例えば、トランスポートネットワークから接続解除することにより）は、本発明の一実施形態では、別のピアグループメンバが、その役割を引き受ける。他のピアグループメンバが全く存在しない場合は、ピアグループは、存在しなくなる可能性がある。
【００５４】
本発明の一実施形態では、ピアグループリーダが、リーダシップリストを確立し、保持する。リーダシップリストは、ピアグループのメンバであるピア群に対するいくつかの参照を含むことが可能である。リーダシップリストは、ピアグループの各メンバを含む必要はない。本発明の一実施形態では、リーダシップリストは、局所性認識ピア６００のグループ内キャッシュ６０６（図６）の中に格納される。ピアグループを確立するピアは、ピアグループを確立するプロセスの一環として、自らをリーダシップリストの第１のメンバとして追加することができる。
【００５５】
新たなピアがピアグループに参加することを求める場合、その新たなピアは、グループ内オーバーレイネットワーク接続を確立する相手の候補のピアのリストに関してピアグループリーダにクエリを行うか、または、候補のピア群が、接続最大数に達している場合、少なくとも追加の候補に関してクエリを行うことができる。例えば、新たなピアは、Ｇｅｔ  Ｐｅｅｒ  Ｇｒｏｕｐ  Ｍｅｍｂｅｒｓメッセージをピアグループリーダに送信し、応答として現在のリーダシップリストを受け取ることができる。本発明の一実施形態では、グループ内保持モジュール６０４が、Ｇｅｔ  Ｐｅｅｒ  Ｇｒｏｕｐ  Ｍｅｍｂｅｒｓメッセージなどに応答することを担う。オーバーレイネットワークがピアキャッシュ同期プロトコルを組み込んでいる場合、新たなピアは、自らのグループ内キャッシュ６０６をピアグループリーダのグループ内キャッシュ６０６と同期させることにより、候補グループ内ピアのリストを獲得することができる。リーダシップリストが目標数未満のピア（例えば、１０個）を含む場合、候補のグループ内ピアのリストに関してピアグループリーダにクエリを行った結果、新たなピアをリーダシップリストに追加することができる。
【００５６】
ピアグループ内の各ピアは、リーダシップリストのコピーを有することが可能である。現在のピアグループリーダがピアグループを離れた（例えば、オーバーレイネットワークを離れた）場合、本発明の一実施形態では、リーダシップリストの中で次のピアが、ピアグループリーダになる。新たなピアグループリーダは、古いピアグループリーダをリーダシップリストから削除し、新たなピアをリーダシップリストの末尾に追加することができる。本発明の一実施形態では、ピアグループリーダは、例えば、ピアグループ内で従来のオーバーレイネットワークフラッディングスタイル（ｆｌｏｏｄｉｎｇ−ｓｔｙｌｅ）のメッセージ伝搬を利用することにより、Ａｌｉｖｅメッセージをピアグループ内の各ピアに定期的に（例えば、毎５秒に）送信する。Ａｌｉｖｅメッセージがある時間（例えば、１０秒間）内に受信されなかった場合、本発明の一実施形態では、現在のグループリーダが、そのピアグループを離れたものと判定される。
【００５７】
リーダシップリストの中のピアのそれぞれが、ピアグループを離れ、したがって、ピアグループが、リーダ不在で、明確な継承のないままになることがあり得る。その状況では、ピアグループ内に残っている各ピアが、新たなピアグループリーダになろうと試みることが可能である。例えば、Ａｌｉｖｅメッセージの欠如を介してこの状況が検出されると、各ピアが、ランダムな時間量（例えば、０ないし１０秒間）待った後、Ｎｅｗ  Ｌｅａｄｅｒメッセージがピアグループ内の別のピアから既に受信されていない場合、Ｎｅｗ  Ｌｅａｄｅｒメッセージを送信することができる。本発明の一実施形態では、最も早期のタイムスタンプを有するＮｅｗ  Ｌｅａｄｅｒメッセージを送信するピアが、新たなリーダである。ピアグループ内の２つ以上のピアが、ある時間（例えば、１秒間）内にＮｅｗ  Ｌｅａｄｅｒメッセージを送信する可能性があるため、数回を要する可能性がある。本発明の一実施形態では、グループ内保持モジュール６０４が、Ａｌｉｖｅメッセージなどの処理を担う。
【００５８】
ピアグループ内の各ピアが、隣接ピアグループ内のピアグループリーダのリストのコピーを有することが可能である。新たなピアグループリーダは、そのリストの隣接ピアグループのリーダに対するグループ間オーバーレイネットワーク接続を再確立することができる。代替として、新たなピアグループリーダは、図１１に関連して前述した手続きを実行して、グループ間接続を再確立してもよい。
【００５９】
例えば、図５を参照すると、ピア３１４が、トランスポートネットワーク局所性４０４のピアグループのリーダである。ピア３１４は、ピアグループの第１のメンバであり、新規のグループを確立するプロセスの一環として、ピア３１４は、自らのグループ内キャッシュの中に格納されたリーダシップリストに自らを加えた。ピア３０８がそのピアグループに参加した際、ピア３０８は、候補のグループ内ピアのリストに関してピア３１４にクエリを行った。この結果、ピア３１４は、ピア３０８をリーダシップリストの第２位に追加し、グループ内オーバーレイネットワーク接続を確立する相手の候補のピアとしてピア３１４自体を戻した。ピア３０８は、実際、ピア３１４とオーバーレイネットワーク接続を確立した。ピア３０４が、そのピアグループに参加する次のピアであり、その次が、ピア３１０である。毎回、同様の一連の動作が行われる。ピア３１４がピアグループを離れた場合、ピア３０８が、ピアグループリーダになり、ピア３１２に対するグループ内接続を再確立する。
【００６０】
「ある（”ａ”  ａｎｄ  ”ａｎ”）」及び「その（ｔｈｅ）」という用語、ならびに本発明を説明する文脈（特に特許請求の範囲の文脈）における同様の指示詞は、本明細書で特に明記しない限り、または明らかに文脈と矛盾しない限り、単数形と複数形をともに範囲に含むものと解釈されたい。「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、及び「含む「ｃｏｎｔａｉｎｉｎｇ」」という用語は、特に明記しない限り、無制限の用語（すなわち、「含むが、以上には限定されない（ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」を意味するものと解釈されたい。本明細書における値の諸範囲の列挙は、本明細書で特に明記しない限り、単に、その範囲内に該当するそれぞれの別個の値を個々に指す略記法の役割をするものとし、それぞれの別個の値が、あたかも個々に本明細書で列挙されているかのように本明細書に組み込まれる。本明細書で説明するすべての方法は、本明細書で特に明記しない限り、または明らかに状況と矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提示するあらゆる例、または典型を示す言葉（例えば、「などの（ｓｕｃｈ  ａｓ）」）は、単に、本発明をよりよく例示することを目的としており、特に明記しない限り、本発明の範囲に限定を加えるものではない。本明細書におけるいずれの言葉も、特許請求していない要素が本発明の実施に不可欠であることを示しているものと解釈してはならない。
【００６１】
本発明を実施するための本発明者らが知る最良の形態を含め、本発明の好適実施形態を本明細書で説明している。これらの好適実施形態の変種も、以上の説明を読むことで、当業者には明白となる可能性がある。本発明者らは、当業者がそのような変種を適宜、使用することを予期しており、本発明者らは、本発明が、本明細書で具体的に説明した以外の形で実施されることも企図している。したがって、本発明は、該当する法律によって許される本明細書に添付した特許請求の範囲に記載する案件のすべての変形形態及び等価形態を含む。さらに、本明細書で特に明記しない限り、または明らかに状況と矛盾しない限り、前述した要素の任意の組み合わせが、可能なすべての変種において本発明に包含される。
【図面の簡単な説明】
【００６２】
【図１】トランスポートネットワークで接続されたコンピュータ群を示す概略図である。
【図２】本発明を適用できる実施形態の典型的なコンピュータシステムを示す概略図である。
【図３】基礎にあるトランスポートネットワークとは独立に構成された典型的なオーバーレイネットワークを示す概略図である。
【図４】ピア間の例示した距離がピア間のトランスポートネットワーク距離を表している図３の典型的なオーバーレイネットワークを示す概略図である。
【図５】本発明の一実施形態による典型的な局所性認識オーバーレイネットワークを示す概略図である。
【図６】本発明を適用できる実施形態の局所性認識ピアを実施するのに適した典型的なモジュール式ソフトウェアアーキテクチャを示すブロック図である。
【図７】本発明を適用できる実施形態の典型的な局所性認識オーバーレイネットワークのピアグループネットワークの態様を示す概略図である。
【図８】従来のオーバーレイネットワークに関連するネットワークレイヤを示す概略図である。
【図９】本発明を適用できる実施形態の局所性認識オーバーレイネットワークに関連するネットワークレイヤを示す概略図である。
【図１０】本発明の一実施形態による局所性認識オーバーレイネットワークに参加する際に局所性認識ピアによって実行される典型的なステップを示す流れ図である。
【図１１】本発明を適用できる実施形態の局所性認識オーバーレイネットワーク内で新規のピアグループを確立する際に局所性認識ピアによって実行される典型的なステップを示す流れ図である。
【符号の説明】
【００６３】
３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６、
４０２  グループＡ
４０４  グループＢ
６００  局所性認識ピア
６０２  参加局所性認識オーバーレイ
６０４  グループ内保持モジュール
６０６  グループ内キャッシュ
６０８  グループ間保持モジュール
６１０  グループ間キャッシュ
６１２  ランデブーポイント
６１４  ブートピアキャッシュ
７０２、７０４、７０６、７０８、７１０、７１２、７１４、７１６、７１８、７２０  ピアグループ
９０２  局所性認識オーバーレイネットワーク
９０４  トランスポートネットワーク
９０６  ピアグループネットワーク
【図１】
0004634108.tif 000002
【図２】
0004634108.tif 000003
【図３】
0004634108.tif 000004
【図４】
0004634108.tif 000005
【図５】
0004634108.tif 000006
【図６】
0004634108.tif 000007
【図７】
0004634108.tif 000008
【図８】
0004634108.tif 000009
【図９】
0004634108.tif 000010
【図１０】
0004634108.tif 000011
【図１１】
0004634108.tif 000012