(57)【要約】  ピアツーピア・オーバーレイ・ネットワーク（１０２）へのデバイスの最適参加のための方法および装置。ノード（１０４、１１０）を動的に構成するための方法が、第１の参加モードを使用してオーバーレイ・ネットワークで動作することと、少なくとも１つの構成パラメータを取得することと、ローカル・ポリシーおよび上記少なくとも１つの構成パラメータに基づいて上記オーバーレイ・ネットワークの動作に第２の参加モードを選択することと、上記第２の参加モードに基づいて上記オーバーレイ・ネットワークで参加するように上記ノードを構成することとを含む。動的ノード構成用の装置が、プロセッサに結合され、かつ、第１の参加モードを使用してオーバーレイ・ネットワークで動作し、少なくとも１つの構成パラメータを取得し、ローカル・ポリシーおよび上記少なくとも１つの構成パラメータに基づいて上記オーバーレイ・ネットワークでの動作に第２の参加モードを選択し、上記第２の参加モードに基づいて上記オーバーレイ・ネットワークで参加するように上記ノードを構成するように構成されているメモリを含む。
2011527128.tif 000002
【特許請求の範囲】
【請求項１】
ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のためにノードによって実行される方法であって、
第１の参加モードを使用して前記オーバーレイ・ネットワークで動作することと、
少なくとも１つの構成パラメータを取得することと、
ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２に参加モードを選択することと、
前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成することと、を備える方法。
【請求項２】
前記少なくとも１つの構成パラメータは、電力インジケータ、メモリ・インジケータ、リソース・インジケータ、ネットワーク・インジケータおよびユーザ・インジケータのうちの少なくとも１つである、請求項１に記載の方法。
【請求項３】
前記選択ステップは、前記オーバーレイ・ネットワークで使用可能な複数の参加モードから前記第２の参加モードを選択することを備える、請求項１に記載の方法。
【請求項４】
前記複数の参加モードは、完全参加モード、部分参加モード、サービス参加モードを備える、請求項３に記載の方法。
【請求項５】
前記完全参加モードは、ルーティング・ピアとしての動作に対応する、請求項４に記載の方法。
【請求項６】
前記部分参加モードは、非ルーティング・ピアとしての動作に対応する、請求項４に記載の方法。
【請求項７】
前記サービス参加モードは、非ピアとしての動作に対応する、請求項４に記載の方法。
【請求項８】
ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のための装置であって、
第１の参加モードを使用して前記オーバーレイ・ネットワークで動作する手段と、
少なくとも１つの構成パラメータを取得する手段と、
ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択する手段と、
前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成する手段と、を備える装置。
【請求項９】
前記少なくとも１つの構成パラメータは、電力インジケータ、メモリ・インジケータ、リソース・インジケータ、ネットワーク・インジケータおよびユーザ・インジケータのうちの少なくとも１つである、請求項８に記載の装置。
【請求項１０】
前記選択手段は、前記オーバーレイ・ネットワークで使用可能な複数の参加モードから前記第２の参加モードを選択する手段を備える、請求項８に記載の装置。
【請求項１１】
前記複数の参加モードは、完全参加モード、部分参加モードおよびサービス参加モードを備える、請求項１０に記載の装置。
【請求項１２】
前記完全参加モードは、ルーティング・ピアとしての動作に対応する、請求項１１に記載の装置。
【請求項１３】
前記部分参加モードは、非ルーティング・ピアとしての動作に対応する、請求項１１に記載の装置。
【請求項１４】
前記サービス参加モードは、非ピアとしての動作に対応する、請求項１１に記載の装置。
【請求項１５】
ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のための装置であって、
メモリと、
前記メモリに結合されるプロセッサであって、
第１の参加モードを使用して前記オーバーレイ・ネットワークで動作し、
少なくとも１つの構成パラメータを取得し、
ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択し、
前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成するように構成されるプロセッサと、を備える装置。
【請求項１６】
前記少なくとも１つの構成パラメータは、電力インジケータ、メモリ・インジケータ、リソース・インジケータ、ネットワーク・インジケータおよびユーザ・インジケータのうちの少なくとも１つである、請求項１５に記載の装置。
【請求項１７】
前記プロセッサは、前記オーバーレイ・ネットワークで使用可能な複数の参加モードから前記第２の参加モードを選択するように構成される、請求項１５に記載の装置。
【請求項１８】
前記複数の参加モードは、完全参加モード、部分参加モードおよびサービス参加モードを備える、請求項１７に記載の装置。
【請求項１９】
前記完全参加モードは、ルーティング・ピアとしての動作に対応する、請求項１８に記載の装置。
【請求項２０】
前記部分参加モードは、非ルーティング・ピアとしての動作に対応する、請求項１８に記載の装置。
【請求項２１】
前記サービス参加モードは、非ピアとしての動作に対応する、請求項１８に記載の装置。
【請求項２２】
ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のためのコンピュータ・プログラム製品であって、
第１の参加モードを使用して前記オーバーレイ・ネットワークで動作し、
少なくとも１つの構成パラメータを取得し、
ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択し、
前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成する
ために実行可能なコードを具現化するコンピュータ読み取り可能な媒体を備えるコンピュータ・プログラム製品。
【請求項２３】
前記少なくとも１つの構成パラメータは、電力インジケータ、メモリ・インジケータ、リソース・インジケータ、ネットワーク・インジケータおよびユーザ・インジケータのうちの少なくとも１つである、請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２４】
前記コードは、前記オーバーレイ・ネットワークで使用可能な複数の参加モードから前記第２の参加モードを選択するように構成される、請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記複数の参加モードは、完全参加モード、部分参加モードおよびサービス参加モードを備える、請求項２４に記載のコンピュータ読み取り可能な媒体。
【請求項２６】
前記完全参加モードは、ルーティング・ピアとしての動作に対応する、請求項２５に記載のコンピュータ読み取り可能な媒体。
【請求項２７】
前記部分参加モードは、非ルーティング・ピアとしての動作に対応する、請求項２５に記載のコンピュータ読み取り可能な媒体。
【請求項２８】
前記サービス参加モードは、非ピアとしての動作に対応する、請求項２５に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、「オーバーレイネットワークへのデバイスの最適参加のための方法および装置（“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｏｐｔｉｍａｌ  Ｐａｒｔｉｃｉｐａｔｉｏｎ  ｏｆ  Ｄｅｖｉｃｅｓ  ｉｎ  ａｎ  Ｏｖｅｒｌａｙ  Ｎｅｔｗｏｒｋ”）」と題され、２００８年６月１７日に出願され、かつこの譲受人に譲渡された仮特許出願第６１／０７３，２８４号の優先権を請求するものであり、参照によってここに組み込まれている。
【０００２】
本出願は一般的にはオーバーレイ・ネットワークの動作に関し、さらに具体的には、ピアツーピア・オーバーレイ・ネットワークへのデバイスの最適参加のための方法および装置に関する。
【背景技術】
【０００３】
サーバベースインフラのない状況でメンバ・ノードがサービスを取得するネットワークは“ピアツーピア”・オーバーレイ・ネットワークと称される。ピアツーピア・オーバーレイにおいて、ピア・ノードは、サービスを提供しかつネットワークを維持するために、互いに協働する。ピアツーピア・オーバーレイ・ネットワークは、インターネット・プロトコル（ＩＰ）を利用するネットワークなどの基本ネットワーク上に構築可能である。
【０００４】
一般的に、ピアツーピア・オーバーレイ・ネットワークのノードは、ルーティングおよびメンテナンスに完全に参加する。これは、同種デバイスの環境においては良好であるが、異種デバイスのネットワークは異なるデバイス参加レベルを必要とする。例えば、オーバーレイでの参加を望むが、完全なルーティングおよびメンテナンス・サービスを提供できない小型で比較的低電力のデバイスも存在しうる。また、適切なリソースを具備するデバイスが、ネットワークのルーティングおよびメンテナンスに参加せずにオーバーレイ・ネットワークで動作することが効率的であり、費用効果が高く、かつ／または好都合な状況もある。
【０００５】
したがって、ピアツーピア・オーバーレイ・ネットワークにおけるノードがオーバーレイ・ネットワークに最も効率的に参加するように動的に構成可能な効率的な機構を有することが望ましいであろう。
【発明の概要】
【０００６】
１つまたはそれより多くの態様において、方法および装置を備え、ピアツーピア・オーバーレイ・ネットワークにおけるノードを動的に構成してネットワーク参加をコントロールするように動作するノード構成システムが提供される。
【０００７】
１つの態様では、ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のためにノードによって実行される方法が提供される。この方法は、第１の参加モードを使用してオーバーレイ・ネットワークで動作することと、少なくとも１つの構成パラメータを取得することと、ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいてオーバーレイ・ネットワークでの動作に第２の参加モードを選択することと、前記第２の参加モードに基づいてオーバーレイ・ネットワークで参加するようにノードを構成することとを備える。
【０００８】
１つの態様では、ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のための装置が提供される。前記装置は、第１の参加モードを使用してオーバーレイ・ネットワークで動作する手段と、少なくとも１つの構成パラメータを取得する手段と、ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択する手段と、前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成する手段とを備える。
【０００９】
１つの態様では、ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のための装置が提供される。前記装置は、メモリと、そのメモリに結合され、かつ第１の参加モードを使用して前記オーバーレイ・ネットワークで動作し、少なくとも１つの構成パラメータを取得し、ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択し、前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成するように構成されているプロセッサとを備えている。
【００１０】
１つの態様では、ピアツーピア・オーバーレイ・ネットワークにおける動的ノード構成のためのコンピュータ・プログラム製品が提供される。前記コンピュータ・プログラム製品は、第１の参加モードを使用して前記オーバーレイ・ネットワークで動作し、少なくとも１つの構成パラメータを取得し、ローカル・ポリシーおよび前記少なくとも１つの構成パラメータに基づいて前記オーバーレイ・ネットワークでの動作に第２の参加モードを選択し、前記第２の参加モードに基づいて前記オーバーレイ・ネットワークで参加するように前記ノードを構成するように実行可能なコードを具現化するコンピュータ読み取り可能な媒体を備える。
【００１１】
他の態様は、以下の図面の簡単な説明、詳細な説明および請求項についての検討の後で、さらに明らかとなるであろう。
【図面の簡単な説明】
【００１２】
ここに説明されている上記態様は、添付の図面と関連してなされる以下の説明を参照するとより明らかになる。
【図１】図１はノード構成システムの複数の態様を図示するネットワークを示している。
【図２】図２は、ノード構成システムにしたがって種々のネットワーク参加モードを具現化する例示的プロトコル・スタックを示している。
【図３】図３は、ノード構成システムの複数の態様で使用するオーバーレイ・ネットワーク層の例示的モジュールを示している。
【図４】図４は、ノード構成システムの複数の態様で使用する例示的構成プロセッサを示している。
【図５】図５は、ノード構成システムの複数の態様を提供するようにノードを操作するための例示的方法を示している。
【図６】図６は、ノード構成システムの複数の態様で使用する例示的構成プロセッサを示している。
【詳細な説明】
【００１３】
以下の説明は、オーバーレイ・ネットワークにおけるノードが、ピアツーピア・オーバーレイ・ネットワークへのネットワーク参加をコントロールするために動的に構成されるように動作するノード構成システムの複数の態様について記述する。
【００１４】
図１は、ノード構成システムの複数の態様を図示するネットワーク１００を示している。ネットワーク１００は、オーバーレイ・ネットワーク１０２上のノードを相互に通信させるための、インターネット・プロトコル・ネットワークなどの任意のタイプの基本ネットワークを利用するピアツーピア・オーバーレイ・ネットワーク１０２を備えている。基本ネットワークは、ＷＡＮ、ＬＡＮ、無線ネットワークまたは任意のタイプのネットワークなどの任意の数のまたはタイプのネットワークを備えてもよい。
【００１５】
種々のインプリメンテーションにおいて、ノード構成システムは、オーバーレイ・ネットワーク１０２のノードを、複数の参加モードのうちの１つにしたがってオーバーレイ・ネットワークで参加させるように動作する。この説明のために、３つの参加モードについて後述するが、システムは３つのモードだけに制限されず、事実上任意の数の参加モードでの動作に適している。
【００１６】
第１のモードでは、「ルーティング・ピア」（"Routing Peer”）（ＲＰ）としての完全参加が定義される。図１を参照すると、ＲＰｓとしてオーバーレイ・ネットワーク１０２で参加しているノードが全体として１０４で示されている。ＲＰとして参加しているノードは、オーバーレイ・ネットワーク１０２の本格的な参加者であり、オーバーレイ・ネットワークのルーティングおよびメンテナンス動作に参加する。ノードは、オーバーレイ・ネットワーク内のオーバーレイ・メンテナンス、メッセージ・ルーティングおよび記憶機能などの機能を実行する。一部のＲＰは、コンピューティング容量およびメッセージ処理速度に関して他のＲＰより優れているが、基本的には、全ＲＰはオーバーレイ・ルーティング、記憶およびオーバーレイ・メンテナンスを担っており、完全参加者として動作するとみなされる。
【００１７】
第２のモードでは、「非ルーティング・ピア」（"Non-routing peer”）（ＮＲＰ）としての部分参加が定義される。図１を参照すると、ＮＲＰとしてオーバーレイネットワーク１０２で部分的に参加するノードが１０６として示されている。ＮＲＰとして参加するノードは、オーバーレイ・ネットワークに対してサービスを提供し、かつここからサービスを受け取るが、オーバーレイ・ネットワークのルーティングおよびメンテナンス局面には参加しない。これらのノードは、サービスの観点からはＲＰと同一に見えるが、これらのノードは、オーバーレイ・ノード識別子を有しており、オーバーレイ・ネットワーク上の他のノードに露呈される。しかしながら、ＮＲＰは、オーバーレイ・ネットワークの別のピアへの単一接続のみを維持している。ＮＲＰのオーバーレイ・ネットワークのすべてが、このピアを介するルートをリクエストしており、これはオーバーレイ・アッタッチメント・ポイント（ＯＡＰ）１０８とも称される。ＮＲＰはオーバーレイ・ネットワークに参加するが、オーバーレイ・ネットワークのルーティングやメンテナンスには積極的に参加しないため、部分参加者として動作しているとみなされる。ＮＲＰはオーバーレイ・データを記憶しないが、オーバーレイ・ネットワークのデータを自身のオーバーレイ・アタッチメント・ポイントを介して記憶および検索可能である。
【００１８】
バッテリ電力で動作する非ルーティング・ピアは、アイドル状態になれるという利点を享受するが、それは、ルーティング・テーブルを維持しておらず、オーバーレイ記憶リクエストに対するデータで応答する必要もないからである。しかしながら、電力消費は、オーバーレイ・アタッチメント・ポイントとの単一接続を維持するために必要とされる。
【００１９】
第３のモードでは、非ピア（Non-Peers）（ＮＰ）としてのサービス参加が定義される。図１を参照すると、ＮＰとしてオーバーレイ・ネットワーク１０２に参加しているノードは全体として１１０で示されている。ＮＰは、オーバーレイ・ネットワークでの完全なまたは部分的な参加が不可能であるか、またはこれを望まないデバイスやサービスを備えている。例えば、制約デバイスはオーバーレイ・ネットワーク・サービスの使用を望む場合もあり、場合によっては、オーバーレイ・ネットワークのエンティティへのサービスの提供を望むこともあるが、ＲＰやＮＲＰの完全または部分参加機能をサポートすることはできない。これらのデバイスは、ＲＰやＮＲＰで稼働するオーバーレイ・プロキシ・サーバ（ＯＰＳ）と通信することによって、ＮPとしてオーバーレイ・ネットワークでのサービス参加を提供する。例えば、ＮＰ１１０は、ＮＲＰ１０６で稼働するＯＰＳを介してオーバーレイ・ネットワーク１０２に参加する。ＮＰは必ずしも制約デバイスではない点も注目されるべきである。実質的メモリおよび／または処理リソースを有するが、依然としてオーバーレイネットワークでＮＰとして機能するＮＰデバイスもある。例えば、ＮＰ１１２は、オーバーレイ・ネットワーク１０２のノードへのサービスとして使用可能な重要な記憶および処理リソースを提供可能である。
【００２０】
種々の態様において、リソースにそれほど制約のない、パソコン、ネットワーク・アクセスポイントおよび高性能モバイルフォンなどのデバイスはＲＰの一例である。リソースの制約が大きい、低性能モバイルフォンおよび電力駆動無線センサなどのデバイスはＮＲＰの一例である。時計やヘッドセットなどの、オーバーレイ・プロトコルをサポートしないデバイスはＮＰの一例である。
【００２１】
ＮＰエンティティは、この関連ＯＰＳに接続する手段を利用してもよい。ＲＰやＮＲＰのプロキシのすべては、ＮＰと関連したリクエストをオーバーレイする。したがって、ＮＰは常に、プロキシ・デバイスを介してオーバーレイ・ネットワークに添付される。ＮＰとして参加しているノードは、オーバーレイでの識別を有しておらず、実質的にオーバーレイのメンバではない。ＮＰによって提供されたサービスは、オーバーレイ・ネットワークの対応するプロキシによって提供されたサービスとしてモデリングされる。一部の例では、プロキシＲＰやＮＲＰとの不特定通信プロトコルを使用するＮＰは、他のオーバーレイ・ネットワークとのインタフェース接続に必要なバッテリ消費をさらに削減するために使用可能である。
【００２２】
プロキシ・ノードは、オーバーレイ・ネットワーク上の他のノードには、プロキシ化ＮＰへのオーバーレイ・リクエストを生成するまたは満たすエンティティとして見える。いくつかの例では、ＮＰによって実行されたポピュラーなサービスは、より良好な使用可能性のために２つ以上のプロキシを有することもある。したがって、プロキシ・ノードは、オーバーレイ・ネットワークと、これがプロキシ化するＮＰノード間の全トラヒックのトランシットおよび変換器として作用する。
【００２３】
種々の態様では、ノード構成システムは、ノードが、上記３つの参加モードのいずれかでオーバーレイ・ネットワークで参加するために動的に構成されるように動作する。例えば、ノード１０６は、ノード１０６が、この参加モードを動的にコントロールするために構成されるように動作する構成プロセッサ（ＣＰ）１１４を備える。例えば、ＣＰ１１４によってノード１０６は、完全参加（つまり、ＲＰ）、部分参加（つまり、ＮＲＰ）およびサービス参加（つまり、ＮＰ）から動的に選択する。使用可能な参加モードのうちのいずれかで参加するように動的に構成される性能を有することによって、ノードは、より効率的かつ柔軟に動作し、電力および／またはリソースを保存することができる。
【００２４】
例えば、ＣＰ１１４は、ノード１０６が、ＮＲＰとしての部分参加向けに構成され、プロキシ・サービスをＮＰ１１０に提供するように動作する。別の態様では、ノード１０６は、ＲＰ１０８によってプロキシ化されるＮＰとしてのサービス参加向けに構成されてもよい。さらに別の態様では、ノード１０６は、ＲＰとしてのオーバーレイ・ネットワーク１０２での完全参加向けに構成されてもよい。ＣＰ１１４の動作に関するより詳細な説明は以下になされる。
【００２５】
図２は、ノード構成システムにしたがって種々のノード参加モードをインプリメントする例示的プロトコル・スタック２００を示している。プロトコル・スタック２００は、ＮＲＰプロトコル・スタック２０２と、ＯＡＰプロトコル・スタック２０４と、ＲＰプロトコル・スタック２０６と、リソース・プロトコル・スタック２０８とを備えている。例えば、ＮＲＰプロトコルスタック２０２はＣＰ１１４によって提供される。
【００２６】
ＮＲＰプロトコル・スタック２０２は、ＯＡＰプロトコル・スタック２０４と機能的に類似している。両者は、サービス適合層（ＳＡＬ）２１０と、オーバーレイ・ネットワーク層（ＯＮＬ）２１２と、接続層（ＣＬ）２１４とＩＰスタック層２１６と、リンク層２１８とをインプリメントする。ＯＮＬ２１２内で、ルーティングおよび転送に対応する機能性は、ＮＲＰプロトコル・スタック２０２内にはない。ＮＲＰはオーバーレイ・アタッチメント・ポイント（ＯＡＰ）へのルートを１つ有している。ＮＲＰプロトコル・スタック２０２のＣＬ２１４内では、隣接するメンテナンス・オーバーヘッドが、ＯＡＰのみとの接続管理を維持するように削減される。ＮＲＰはまた、（接続を生かしておくための）ｐｉｎｇパケットをＯＡＰに送信することが想定されている。
【００２７】
ＣＰ１１４は、モード判断をするためのサービス適合層２１０を構成するように動作し、特定のオーバーレイへの参加をオーバーレイ・ネットワーク層２１２に要求する際のノードの参加モードを示す。ＮＲＰの参加プロセスはＲＰの参加プロセスに類似している。ＯＡＰは、認証ピア（参加時に参加エンティティの識別を有するノード）である。変形例では、ＯＡＰはオーバーレイのＲＰのいずれか１つであり、必ずしも認証ピアではない。ＯＡＰが認証ピアではない場合、ＮＲＰにメッセージ・ルーティングするために、転送状態が認証ピアで必要とされることもある。代替的に、ソース・ルーティングが、ＮＲＰにメッセージを送信するために使用されてもよい。ＮＲＰは、負荷の平衡化や一時的フェールオーバ機能（temporary failover capability）などのために複数のＯＡＰを有することもある。この場合、ソース・ルーティングが、ＮＲＰにメッセージを送信するために使用されうる。
【００２８】
ＲＰは、ＮＲＰをオーバーレイに参加させるために、ＯＡＰとして作用することが想定されている。ＯＡＰは、他の参加ピアと参加ＮＲＰ間で異なる。参加プロセス時に、ＮＲＰの場合、ＯＡＰは、ＮＲＰとの隣接関係を確立後に参加プロセスを終了する。ＮＲＰの有無に関して、オーバーレイ内では他のエンティティ（具体的にはＯＡＰの隣接ノード）との通信はない。ＯＡＰは、オーバーレイ・インプリメンテーションにしたがって、ＮＲＰが有するすべてのリソース識別子を記憶する。残りのオーバーレイに関しては、識別空間がＯＡＰによって所有されるため、識別空間への全メッセージがＯＡＰに入る。このようなメッセージの一例は、オーバーレイにデータを記憶するリクエスト（ＰＵＴリクエスト）、オーバーレイからデータを検索するリクエスト（ＧＥＴリクエスト）、および、オーバーレイにおけるノードとの接続をテストするリクエスト（ＰＩＮＧリクエスト）を含む。ＯＡＰは、ＮＲＰに割り当てられた識別空間と関連したこのようなすべてのメッセージを満たすものである。
【００２９】
図３は、ノード構成システムの複数の態様で使用するオーバーレイ・ネットワーク層３００の例示的モジュールを示している。例えば、ＯＮＬ３００は、図２に示されているＮＲＰ２０２およびＯＡＰ２０４のＯＮＬ２１２として使用するのに適している。ＯＡＰ２０４はオーバーレイ・クライアント・テーブル３０２を維持しており、ここでは、ＮＲＰとして作用する全識別子のトラックを維持し、またオーバーレイ・クライアント・ノード識別子３４６を含んでいる。オーバーレイ・クライアント・テーブル３０２のエントリに対応して、ＯＡＰ２０４は、この接続テーブル３０４におけるＮＲＰへの接続を維持する。接続テーブル３０４は、オーバーレイ識別子３３４と、ノード識別子３３６と、接続識別子３３８と、フロー識別子３４０とを備えている。
【００３０】
ＮＲＰはＯＡＰに、自身がＮＲＰとしてオーバーレイに参加していることを示し、その時認証ピア（ＡＰ）はＮＲＰのノード識別子をオーバーレイ・クライアント・テーブル３０２に記録する。非ルーティング・ピアのノード識別子のルートが（ＡＰの後継者または前任者として参加している新たなノードゆえに）変化する場合、ＯＡＰもまた変化する。ＮＲＰとＯＡＰ間の転送を容易にするために、現在のＯＡＰは、ノードのタイプを示す新たなＯＡＰゆえにＯＡＰが変化した各ＮＲＰに対応する更新メッセージを送信する。
【００３１】
オーバーレイ・ネットワーク層３００がＮＲＰ２０２の一部である場合、オーバーレイ・クライアント・テーブル３０２は存在しない。この場合、ルーティング・テーブル３０６は、ＯＡＰを示す全ルートの単一エントリを次のホップとして有することになる。例えば、ルーティング・テーブル３０６は、リソース識別子範囲プリフィックス３４２および次のホップ・ノード識別子３４４を備える。接続テーブル３０４は、ＯＡＰへの接続も示す。
【００３２】
図３はまた、システムの以下の態様を示している。オーバーレイ・コントロール・モジュール３０８は、オーバーレイの形成および維持に必要なインテリジェンスを含有している。オーバーレイＡＰＩ変換モジュール３１０は、アプリケーションからのリクエストを、特定のオーバーレイ・インプリメンテーションへのリクエストに変換する。このような特定のオーバーレイ・インプリメンテーションの例として、グヌーテラ（Gnutella）３１２およびコード（Chord）３１４などのピアツーピア・オーバーレイを含む。オーバーレイの代わりに、アプリケーションのリクエストもまた、ローカル・ブロードキャスト媒体３１６を使用して送信可能である。オーバーレイ・メトリクス・テーブル３１８は、性能、ルーティング、およびオーバーレイと関連した他のメトリクスを含有する。最終的に、記憶テーブル３２０は、どのようにデータがオーバーレイ・ノードに記憶されうるかの一例である。１つのデータが、オーバーレイの識別子空間から選択されるリソース識別子３２２；データのカテゴリを示す種類識別子３２４；データのタイプを特定するデータ・モデル３２６；データ３２８自体；データの有効期間を示す寿命パラメータ３３０；データにアクセスして修正するために異なるオーバーレイ・ノードおよびユーザが有する許可を示すアクセス・コントロール情報３３２と関連付けられる。
【００３３】
参加モード間の遷移
種々のインプリメンテーションにおいて、ＣＰ１１４は、各ノードがオーバーレイ・ネットワーク上での参加モードをＲＰ、ＮＲＰまたはＮＰとして自身で判断できるようにする。この判断は、ローカル・ポリシーと、リンク特徴、ノード内のエネルギー収支、ノードへの負荷、予想通信オーバーヘッド、電力、処理、記憶リソース、ユーザ入力、ネットワーク構成および／または他のローカルまたはネットワーク・ポリシーを備えるが、これらに制限されない１つまたは複数の構成パラメータとに基づいている。参加モードはまた、デバイス自体のタイプに基づくこともありうる。
【００３４】
例えば、ＮＲＰとして動作するノードは、ＲＰとして動的に構成可能である。ＮＲＰが完全ＲＰとして完全参加を達成するために、ＯＡＰおよびＮＲＰは参加プロセスを継続する。通常ＵＰＤＡＴＥと称されるメッセージが、ＮＲＰの存在を通知するＮＲＰの新たな隣接ノードに送信される。ＮＲＰはまた、現在所有している識別空間と関連した全データを所有する。これは、このようなデータをデータの古い所有者からＮＲＰに転送することによって達成される。別の態様では、オーバーレイ・ネットワークを現在の参加モードのままにして、上記識別された構成パラメータの１つ以上に基づいてＣＰ１１４によって判断された新たな参加モードのオーバーレイ・ネットワークに再度参加することによって、ノードはこの参加を動的に変更可能である。
【００３５】
図４は、ノード構成システムの複数の態様のノードで使用する例示的構成プロセッサ４００を示している。例えば、構成プロセッサ４００は、図１に示されている構成プロセッサ１１４としての使用に適している。構成プロセッサ４００は、データバス４０６に結合されたプロセッサ４０２およびメモリ４０４を備えている。構成プロセッサ４００は１つのインプリメンテーションにすぎず、態様の範囲内では他のインプリメンテーションが可能である点に注目すべきである。
【００３６】
メモリ４０４は、ピアツーピア・オーバーレイ・ネットワークの１つ以上のノードと関連した情報を記憶するように動作可能な任意適当な記憶デバイスを備えている。例えば、メモリ４０４は、図２に示されているプロトコル・スタック２０２などのプロトコル・スタック４０８を記憶するように動作可能である。メモリ４０４はまた、ローカル・ポリシー４１４を記憶するように動作可能であり、これはノードに動作ポリシーを提供する。メモリ４０４はまた、ここに説明されているノード構成システムの機能を提供するようにプロセッサ４０２によって実行可能なプログラム、命令、コードおよび／または他のタイプの実行可能な情報を備える構成モジュール４１０を記憶するように動作可能である。
【００３７】
１つまたはそれより多くの態様において、プロセッサ４０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、ＡＳＩＣ、メモリ要素および／またはソフトウェアを実行するハードウェアのうちの少なくとも１つを備えている。１つの態様では、プロセッサ４０２は、構成パラメータ４１２を取得し、かつローカル・ポリシー４１４およびプロトコル・スタック４０８に対して種々の動作を実行することによって、オーバーレイ・ネットワークの参加モードをノードに判断させるための、構成モジュール４１０の命令を実行するように動作する。１つの態様では、構成パラメータは、ノードの現在のリソース／性能を評価し、かつオーバーレイ・ネットワークと関連したパラメータを受信することによって、プロセッサ４０２によって取得される。例えば、以下の構成パラメータがプロセッサ４０２によって取得される。
【００３８】
１．デバイス電力リソース・パラメータ
２．デバイス処理リソース・パラメータ
３．デバイス記憶リソース・パラメータ
４．ネットワーク構成パラメータ
５．ユーザ入力
上記リストは例示的であり、ノードの参加モードを判断するために他の構成パラメータがプロセッサ４０２によって取得可能である点に注目すべきである。構成プロセッサ４００の動作に関するより詳細な説明が以下においてなされる。
【００３９】
１つの態様では、ノード構成システムは、１つ以上のプログラム命令（「命令」）や複数セットの「コード」をマシーン読み取り可能な媒体に記憶または具現化しているコンピュータ・プログラム製品を備えている。コードが少なくとも１つのプロセッサ、例えばプロセッサ４０２によって実行されると、この実行によって構成プロセッサ４００は、ここに説明されているノード構成システムの機能を提供する。例えば、マシーン読み取り可能な媒体は、フロッピー（登録商標）ディスク、ＣＤ―ＲＯＭ、メモリカード、ＦＬＡＳＨメモリ・デバイス、ＲＡＭ、ＲＯＭ、または、構成プロセッサ４００にインタフェース接続する他のタイプのメモリデ・バイスやマシーン読み取り可能な媒体を備えている。別の態様では、複数セットのコードが、外部デバイスや通信ネットワーク・リソースから構成プロセッサ４００にダウンロードされて、メモリ４０４に記憶されてもよい。複数セットのコードは、実行されると、ここに説明されているように、ノード構成システムの複数の態様を提供するように動作する。
【００４０】
図５は、ノード構成システムの複数の態様を提供するようにノードを操作する例示的方法５００を示している。明確にするために、方法５００は、図４に示されている構成プロセッサ４００を参照して後述される。例えば、構成プロセッサ４００は、ピアツーピア・オーバーレイ・ネットワークにおけるあるノードで動作可能である。１つの態様では、プロセッサ４０２は、構成モジュール４１０によって提供された１つ以上のセットのコードや命令を実行して、構成プロセッサ４００をコントロールし、後述される機能を実行する。
【００４１】
ブロック５０２において、オーバーレイ・ネットワークのノードの参加モードが設定される。１つの態様では、プロセッサ４０２は、プロトコル・スタック４０８をコントロールして参加モードを設定するように動作する。例えば、ノードは、完全参加、部分参加またはサービス参加向けに構成可能である。
【００４２】
ブロック５０４において、構成パラメータは、ローカル・ポリシーにしたがって取得および解釈される。１つの態様では、プロセッサ４０２は、ノードで動作する１つまたはそれより多くのエンティティから構成パラメータを取得する。構成パラメータは、デバイス電力と、処理および記憶パラメータと、ネットワーク構成パラメータと、ユーザ入力とを備えているが、これらに制限されない。１つの態様では、構成パラメータは、ローカル・ポリシー４１４を使用してプロセッサ４０２によって解釈される。
【００４３】
ブロック５０６において、ノードがオーバーレイ・ネットワークでの完全参加を必要とするか否かが判断される。１つの態様では、プロセッサ４０２は構成パラメータからこの判断をする。例えば、構成パラメータが電力を示し、かつリソースが完全参加に使用可能な場合、方法はブロック５１４に進む。完全参加が可能でない場合、方法はブロック５０８に進む。
【００４４】
ブロック５０８において、ノードがオーバーレイ・ネットワークでの部分参加を必要とするか否かが判断される。１つの態様では、プロセッサ４０２は構成パラメータからこの判断をする。例えば、構成パラメータが電力を示し、かつリソースが部分参加に使用可能な場合、方法はブロック５１８に進む。部分参加が可能でない場合、方法はブロック５１０に進む。
【００４５】
ブロック５１０において、ノードがオーバーレイ・ネットワークでのサービス参加向けに構成されているか否かが判断される。１つの態様では、プロセッサ４０２は構成パラメータからこの判断をする。ノードが既にサービス参加向けに構成されている場合、方法はブロック５０４に進む。ノードがサービス参加向けに構成されていない場合、方法はブロック５１２に進む。
【００４６】
ブロック５１４において、ノードがオーバーレイ・ネットワークでの完全参加向けにすでに構成されているか否かが判断される。１つの態様では、プロセッサ４０２がこの判断をする。ノードが完全参加向けにすでに構成されている場合、方法はブロック５０４に進む。ノードが完全参加向けに構成されていない場合、方法はブロック５１６に進む。
【００４７】
ブロック５１６において、ノードは完全参加について構成される。例えば、オーバーレイ・ネットワークで完全参加するために、ノードはルーティング・ピアとして構成される。１つの態様では、プロセッサ４０２がこの動作を実行する。例えば、１つのインプリメンテーションでは、ノードはオーバーレイ・ネットワークを現在の参加モードのままにし、ルーティング・ピアとして完全参加モードのオーバーレイ・ネットワークに再度参加する。方法は次いでブロック５０４に進む。
【００４８】
ブロック５１８において、ノードがオーバーレイ・ネットワークでの部分参加向けにすでに構成されているか否かが判断される。１つの態様では、プロセッサ４０２がこの判断をする。ノードが部分参加向けにすでに構成されている場合、方法はブロック５０４に進む。ノードが部分参加向けに構成されていない場合、方法はブロック５２０に進む。
【００４９】
ブロック５２０において、ノードが部分参加向けに構成される。例えば、ノードは、オーバーレイ・ネットワークにおける非ルーティング・ピアとして構成される。１つの態様では、プロセッサ４０２がこの動作を実行する。例えば、１つのインプリメンテーションにおいて、ノードはオーバーレイ・ネットワークを現在の参加モードのままにして、非ルーティング・ピアとして部分参加モードのオーバーレイ・ネットワークに再度参加する。方法は次いでブロック５０４に進む。
【００５０】
ブロック５１２において、ノードはサービス参加向けに構成される。例えば、ノードはオーバーレイ・ネットワークにおける非ピアとして構成される。１つの態様では、プロセッサ４０２がこの動作を実行する。例えば、１つのインプリメンテーションでは、ノードはオーバーレイ・ネットワークを現在の参加モードのままにし、非ピアとしてサービス参加モードのオーバーレイ・ネットワークに再度参加する。方法は次いでブロック５０４に進む。
【００５１】
したがって、方法５００は、ノード構成システムの複数の態様を提供するためにノードで動作可能である。方法５００は１つのインプリメンテーションにすぎず、方法５００の動作が種々の態様の範囲内で並べ替えまたは修正可能である点に注目すべきである。したがって、ここに説明されている種々の態様の範囲で他のインプリメンテーションが可能である。
【００５２】
図６は、ノード構成システムの複数の態様で使用する例示的構成プロセッサ６００を示している。例えば、構成プロセッサ６００は、図４に示されている構成プロセッサ４００としての使用に適している。１つの態様では、構成プロセッサ６００は、ここに説明されているようなノード構成システムの複数の態様を提供するように構成された１つ以上のモジュールを備える少なくとも１つの集積回路によってインプリメントされる。例えば、１つの態様では、各モジュールはハードウェアおよび／またはソフトウェアを実行するハードウェアを備えている。
【００５３】
構成プロセッサ６００は、第１の参加モードを使用してオーバーレイ・ネットワークで動作する手段（６０２）を備える第１のモジュールを備えており、これは、１つの態様ではプロセッサ４０２を備えている。構成プロセッサ６００はまた、少なくとも１つの構成パラメータを取得する手段（６０４）を備える第２のモジュールを備えており、これは、１つの態様ではプロセッサ４０２を備えている。構成プロセッサ６００はまた、ローカル・ポリシーおよび少なくとも１つの構成パラメータに基づいてオーバーレイ・ネットワークでの動作に第２の参加モードを選択する手段（６０６）を備える第３のモジュールを備えており、これは、１つの態様では、プロセッサ４０２を備えている。構成プロセッサ６００はまた、第２の参加モードに基づいてオーバーレイ・ネットワークで参加するようにノードを構成する手段（６０８）を備える第４のモジュールを備えており、これは、１つの態様ではプロセッサ４０２を備えている。
【００５４】
ここに開示されている実施形態と関連して説明されている種々の例示的論理回路、論理ブロック、モジュールおよび回路は、汎用プロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理回路、離散ハードウェアコンポーネント、あるいは、ここに説明されている機能を実行するように設計されているこれらの組み合わせによってインプリメントまたは実行可能である。汎用プロセッサはマイクロプロセッサであってもよいが、代替例では、このプロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えばＤＳＰおよびマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと関連した１つ以上のマイクロプロセッサ、あるいは他のこのような構成としてインプリメント可能である。
【００５５】
１つまたはそれより多くの例示的実施形態において、説明されている機能はハードウェア、ソフトウェア、ファームウェア、あるいはこれらの組み合わせでインプリメントされてもよい。ソフトウェアでインプリメントされる場合、機能は、１つ以上の命令またはコードとしてコンピュータ読み取り可能な媒体に記憶されるか、送信されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体と、コンピュータ・プログラムの順次転送を容易にする媒体を含む通信媒体とを両方を含む。記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体であってもよい。例示として、かつ非制限的に、このようなコンピュータ読み取り可能な媒体はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、あるいは、命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用可能であり、かつコンピュータによってアクセス可能な他の媒体を備えることができる。また、任意の接続が、コンピュータ読み取り可能な媒体と適宜称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、対より線、ディジタル加入者ライン（ＤＳＬ）、あるいは赤外線、無線およびマイクロ波などの無線技術を使用してウェブサイト、サーバまたは他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、対より線、ＤＳＬ、または赤外線、無線およびマイクロ波などの無線技術は媒体の定義に含まれる。ここで使用されているｄｉｓｋおよびｄｉｓｃはコンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、ディジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスクおよびブルーレイ（登録商標）を含み、ｄｉｓｋは通常データを磁気的に生成するものであり、ｄｉｓｃはデータをレーザーによって光学的に生成するものである。上記の組み合わせはまた、コンピュータ読み取り可能な媒体の範囲に含まれるべきである。
【００５６】
ここにおいて開示されている実施形態と関連して説明されている方法やアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、あるいはこれら２つの組み合わせで直接具現化可能である。ソフトウェア・モジュールはＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当業界で既知の他の形態の記憶媒体に常駐可能である。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み取り、かつこれに対して情報を書き込むことができるように、プロセッサに結合される。代替例では、記憶媒体はプロセッサに一体的であってもよい。プロセッサおよび記憶媒体はＡＳＩＣに常駐可能である。ＡＳＩＣはユーザ端末に常駐可能である。代替例では、プロセッサおよび記憶媒体は、ユーザ端末の離散コンポーネントとして常駐可能である。
【００５７】
したがって、ノード構成システムの複数の態様が図示および説明されているが、それらの精神または基本的特徴から逸脱することなくこれらの態様に種々の変更がなされてもよい点が認識される。したがって、ここにおける開示および説明は、以下の請求項で説明されている本発明の範囲を例示的に示すものであり、制限するものではない。
【図１】
2011527128.tif 000003
【図２】
2011527128.tif 000004
【図３】
2011527128.tif 000005
【図４】
2011527128.tif 000006
【図５】
2011527128.tif 000007
【図６】
2011527128.tif 000008
【国際調査報告】
2011527128.tif 000009
2011527128.tif 000010
2011527128.tif 000011