(57)【特許請求の範囲】
【請求項１】
ピアツーピアオーバーレイネットワークを発見させるようにノードを動作させるための方法において、
前記ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出することと、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定することと、
前記少なくとも１つの通信リンクを選択することと、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わることと、
前記ユニバーサルオーバーレイネットワークとは異なる、選択したオーバーレイネットワークに到達するためのブートストラップノードとして、前記ユニバーサルオーバーレイネットワーク上のノードを識別する識別子を提供するアドバタイズを発生させることとを含み、
前記識別子は、前記ユニバーサルオーバーレイネットワークに関するユニバーサルノードロケータ（ＵＮＬ）である方法。
【請求項２】
前記決定することは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することを含む請求項１記載の方法。
【請求項３】
前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することは、オーバーレイデータベースから前記情報を取り出すことを含む請求項２記載の方法。
【請求項４】
前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行することをさらに含む請求項１記載の方法。
【請求項５】
第２の選択したオーバーレイネットワークに到達するための第２のブートストラップノードとして使用する、前記ユニバーサルオーバーレイネットワーク上の第２のノードを識別する第２の識別子を提供する第２のアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得することをさらに含む請求項１記載の方法。
【請求項６】
前記第２の識別子は、第２のユニバーサルノードロケータ（ＵＮＬ）である請求項５記載の方法。
【請求項７】
前記第２のＵＮＬを利用して、前記第２の選択したオーバーレイネットワークと通信することをさらに含む請求項６記載の方法。
【請求項８】
前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである請求項１記載の方法。
【請求項９】
前記ＵＮＬはインターネットプロトコル（ＩＰ）アドレスおよびポート番号と異なり、ディスジョイントサブネットにわたって、オーバーレイを発見および再編成できるようにする請求項１記載の方法。
【請求項１０】
前記オーバーレイデータベースは、各通信リンクタイプに対して、加わることになる複数の優先順位が付けられたネットワークを識別する情報を含む請求項３記載の方法。
【請求項１１】
ピアツーピアオーバーレイネットワークを発見するための装置において、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するように構成されているトランシーバと、
プロセッサとを具備し、前記プロセッサは、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定し、
前記少なくとも１つの通信リンクを選択し、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わり、
前記ユニバーサルオーバーレイネットワークとは異なる、選択したオーバーレイネットワークに到達するためのブートストラップノードとして、前記ユニバーサルオーバーレイネットワーク上のノードを識別する識別子を提供するアドバタイズを発生させるように構成されており、
前記識別子は、前記ユニバーサルオーバーレイネットワークに関するユニバーサルノードロケータ（ＵＮＬ）である装置。
【請求項１２】
前記プロセッサは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定するように構成されている請求項１１記載の装置。
【請求項１３】
前記プロセッサは、オーバーレイデータベースから前記情報を取り出すように構成されている請求項１２記載の装置。
【請求項１４】
前記プロセッサは、前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行するように構成されている請求項１１記載の装置。
【請求項１５】
前記プロセッサは、第２の選択したオーバーレイネットワークに到達するための第２のブートストラップノードとして使用する、前記ユニバーサルオーバーレイネットワーク上の第２のノードを識別する第２の識別子を提供する第２のアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得するように構成されている請求項１１記載の装置。
【請求項１６】
前記第２の識別子は、第２のユニバーサルノードロケータ（ＵＮＬ）である請求項１５記載の装置。
【請求項１７】
前記プロセッサは、前記第２のＵＮＬを利用して、前記第２の選択したオーバーレイネットワークと通信するように構成されている請求項１６記載の装置。
【請求項１８】
前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである請求項１１記載の装置。
【請求項１９】
前記ＵＮＬはインターネットプロトコル（ＩＰ）アドレスおよびポート番号と異なり、ディスジョイントサブネットにわたって、オーバーレイを発見および再編成できるようにする請求項１１記載の装置。
【請求項２０】
前記オーバーレイデータベースは、各通信リンクタイプに対して、加わることになる複数の優先順位が付けられたネットワークを識別する情報を含む請求項１３記載の装置。
【請求項２１】
ピアツーピアオーバーレイネットワークを発見するための装置において、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出する手段と、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定する手段と、
前記少なくとも１つの通信リンクを選択する手段と、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わる手段と、
前記ユニバーサルオーバーレイネットワークとは異なる、選択したオーバーレイネットワークに到達するためのブートストラップノードとして、前記ユニバーサルオーバーレイネットワーク上のノードを識別する識別子を提供するアドバタイズを発生させる手段とを具備し、
前記識別子は、前記ユニバーサルオーバーレイネットワークに関するユニバーサルノードロケータ（ＵＮＬ）である装置。
【請求項２２】
前記決定する手段は、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定する手段を備える請求項２１記載の装置。
【請求項２３】
前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定する手段は、オーバーレイデータベースから前記情報を取り出す手段を備える請求項２２記載の装置。
【請求項２４】
前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行する手段をさらに具備する請求項２１記載の装置。
【請求項２５】
第２の選択したオーバーレイネットワークに到達するための第２のブートストラップノードとして使用する、前記ユニバーサルオーバーレイネットワーク上の第２のノードを識別する第２の識別子を提供する第２のアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得する手段をさらに具備する請求項２１記載の装置。
【請求項２６】
前記第２の識別子は、第２のユニバーサルノードロケータ（ＵＮＬ）である請求項２５記載の装置。
【請求項２７】
前記第２のＵＮＬを利用して、前記第２の選択したオーバーレイネットワークと通信する手段をさらに具備する請求項２６記載の装置。
【請求項２８】
前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである請求項２１記載の装置。
【請求項２９】
ピアツーピアオーバーレイネットワークを発見するためのコンピュータ読取可能記憶媒体において、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するための、プロセッサにより実行可能なコードと、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定するための、前記プロセッサにより実行可能なコードと、
前記少なくとも１つの通信リンクを選択するための、前記プロセッサにより実行可能なコードと、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わるための、前記プロセッサにより実行可能なコードと、
前記ユニバーサルオーバーレイネットワークとは異なる、選択したオーバーレイネットワークに到達するためのブートストラップノードとして、前記ユニバーサルオーバーレイネットワーク上のノードを識別する識別子を提供するアドバタイズを発生させるための、前記プロセッサにより実行可能なコードとを含み、
前記識別子は、前記ユニバーサルオーバーレイネットワークに関するユニバーサルノードロケータ（ＵＮＬ）であるコンピュータ読取可能記憶媒体。
【請求項３０】
前記コードは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを前記プロセッサに決定させるように構成されている請求項２９記載のコンピュータ読取可能記憶媒体。
【請求項３１】
前記コードは、オーバーレイデータベースから前記情報を前記プロセッサに取り出させるように構成されている請求項３０記載のコンピュータ読取可能記憶媒体。
【請求項３２】
前記コードは、前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを前記プロセッサに発行させるように構成されている請求項２９記載のコンピュータ読取可能記憶媒体。
【請求項３３】
前記コードは、第２の選択したオーバーレイネットワークに到達するための第２のブートストラップノードとして使用する、前記ユニバーサルオーバーレイネットワーク上の第２のノードを識別する第２の識別子を提供する第２のアドバタイズを、前記ユニバーサルオーバーレイネットワークから前記プロセッサに取得させるように構成されている請求項２９記載のコンピュータ読取可能記憶媒体。
【請求項３４】
前記第２の識別子は、第２のユニバーサルノードロケータ（ＵＮＬ）である請求項３３記載のコンピュータ読取可能記憶媒体。
【請求項３５】
前記コードは、前記プロセッサに、前記第２のＵＮＬを利用して、前記第２の選択したオーバーレイネットワークと通信させるように構成されている請求項３４記載のコンピュータ読取可能記憶媒体。
【請求項３６】
前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである請求項２９記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【米国特許法第１１９条の下での優先権主張】
【０００１】
本特許出願は、“ピアツーピアオーバーレイネットワークの生成、アドバタイズ、および発見のための方法ならびに装置”と題し、２００９年３月１１日に出願され、本発明の譲受人に譲渡され、ここでの参照により明確にここに組み込まれている仮出願番号第６１／１５９，３８７号に対して優先権を主張する。
【０００２】
本特許出願は、“ピアツーピアオーバーレイネットワークの生成、アドバタイズ、および発見のための方法ならびに装置”と題し、２００９年６月８日に出願され、本発明の譲受人に譲渡され、ここでの参照により明確にここに組み込まれている仮出願番号第６１／１８５，１１０号に対しても優先権を主張する。
【分野】
【０００３】
本出願は、一般的に、オーバーレイネットワークの動作に関連し、さらに詳細には、ピアツーピアオーバーレイネットワークの生成、アドバタイズ、および発見のための方法ならび装置に関連している。
【背景】
【０００４】
サーバベースのインフラストラクチャなしで、メンバーノードがサービスを取得するネットワークは、“ピアツーピア”オーバーレイネットワークとして呼ばれる。ピアツーピアオーバーレイでは、ピアノードは、互いに協働して、サービスを提供し、ネットワークを維持する。ピアツーピアオーバーレイネットワークは、インターネットプロトコル（ＩＰ）を利用するネットワークのような１つ以上の基礎となるネットワークのトップ上に築くことができる。
【０００５】
オーバーレイネットワークは、典型的に、インターネットのような、複数のノードに共通の媒体上で、オーバーレイアドバタイズが行われた後に形成される。しかしながら、オーバーレイアドバタイザーとオーバーレイネットワークに加わることに関心があるノードとを結び合わせる、インターネットへのアクセスは、常に存在していないかもしれない。インターネットアクセスが利用可能ではないにもかかわらず、依然として、オーバーレイネットワークをアドバタイズする、または、形成する必要があることもあるので、この状況は、問題となるかもしれない。例えば、２つのノードは、リンクローカルブロードキャストを個々に使用し、オーバーレイネットワークを生成するように試行する。しかしながら、これは、結果として、第１のセットのノードが、ノードのうちの１つによりアドバタイズされた第１のオーバーレイネットワークに加わり、第２のセットのノードが、他のノードによりアドバタイズされた第２のオーバーレイネットワークに加わる結果になり得る。これは、結果として、接続性の島を生じさせることがある並行したオーバーレイ生成になる。この状況は、オーバーレイネットワークをアドバタイズするためにノードにより使用されるインターフェースが異なる場合にも起こり得る。
【０００６】
たとえ、インターネットが利用可能である場合でも、アドバタイズされたオーバーレイネットワークにノードが加わることが難しいことがある。例えば、オーバーレイネットワークに加わることを決定したノードは、加わるプロセスを制御するブートストラップピアにどのように到達するかを知る必要がある。典型的に、ブートストラップピアは、グローバルにルーティング可能なアドレスを持つことを必要とされており、ノードが、これらのブートストラップピアに到達することは難しいことがある。
【０００７】
したがって、オーバーレイネットワーク生成、アドバタイズ、および発見に関係する２つの課題が存在する。第１の課題は、接続性の島を生じさせる可能性がある並行したオーバーレイ生成のチャンスをどのように減少させるかである。第２の課題は、オーバーレイネットワークに加わることをより一般的で有用にすること、および、そうするために、ブートストラップピア到達可能性を簡略化する必要がある。
【０００８】
オーバーレイネットワーク発見問題を解決する１つのアプローチは、ドメインネームサービス（ＤＮＳ）インフラストラクチャを使用して、オーバーレイネットワークをアドバタイズする。例えば、各ノードは、ダイナミックＤＮＳに似たインフラストラクチャを使用して、オーバーレイネットワークをアドバタイズする。残念なことに、この技術は、非効率的であり、ノードが特定のオーバーレイネットワークを発見して加わることを難しくする。例えば、オーバーレイをアドバタイズまたは発見するのに、インターネットアクセスが常に利用可能であることを仮定するので、このアプローチは、並行したオーバーレイネットワーク生成の問題を取り扱わない。さらに、ＤＮＳインフラストラクチャにわたるサーチを実現することはスケーリングするものでないことから、発見は、さらに厳しい問題となる。
【０００９】
それゆえ、ピアツーピアオーバーレイネットワークの生成、アドバタイズ、発見を促進するように動作する、シンプルでコスト効率の良いメカニズムを有することが好ましいだろう。
【概要】
【００１０】
１つ以上の態様では、ピアツーピアオーバーレイネットワークの生成、アドバタイズ、および発見を促進するように動作する方法および装置を含む、ユニバーサル発見システムを提供する。ユニバーサル発見システムのさまざまなインプリメンテーションでは、すべてのノードは、アクセス可能な通信媒体に基づいて、識別可能なオーバーレイネットワークの一部になるように試行する。さらに、各ノードは、いつでも、ユニバーサルオーバーレイの一部になるように試行する。いったんユニバーサルオーバーレイネットワークの一部になると、発行されたオーバーレイネットワークアドバタイズは、ユニバーサルノードロケータ（ＵＮＬ）を使用して、ブートストラップピアへの簡単な接続性を促進する。
【００１１】
ある態様では、ピアツーピアオーバーレイネットワークを発見させるようにノードを動作させるための方法を提供する。方法は、ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出することと、少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定することと、少なくとも１つの通信リンクから選択される通信リンクを選択することと、選択した通信リンクを使用して、ユニバーサルオーバーレイネットワークに加わることとを含む。
【００１２】
ある態様では、ピアツーピアオーバーレイネットワークを発見するための装置を提供する。装置は、ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するように構成されているトランシーバと、少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定し、少なくとも１つの通信リンクから選択される通信リンクを選択し、選択した通信リンクを使用して、ユニバーサルオーバーレイネットワークに加わるように構成されているプロセッサとを具備する。
【００１３】
ある態様では、ピアツーピアオーバーレイネットワークを発見するための装置を提供する。装置は、ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出する手段と、少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定する手段と、少なくとも１つの通信リンクから選択される通信リンクを選択する手段と、選択した通信リンクを使用して、ユニバーサルオーバーレイネットワークに加わる手段とを具備する。
【００１４】
ある態様では、ピアツーピアオーバーレイネットワークを発見するためのコンピュータプログラムプロダクトを提供する。コンピュータプログラムプロダクトは、ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するための、プロセッサにより実行可能なコードと、少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定するための、プロセッサにより実行可能なコードと、少なくとも１つの通信リンクから選択される通信リンクを選択するための、プロセッサにより実行可能なコードと、選択した通信リンクを使用して、ユニバーサルオーバーレイネットワークに加わるための、プロセッサにより実行可能なコードとを具現化するコンピュータ読取可能媒体を含む。
【００１５】
これから述べる図面の簡単な説明、説明、および特許請求の範囲を参照した後、他の態様が明らかになるだろう。
【図面の簡単な説明】
【００１６】
ここに記述した前述の態様は、付随する図面を参照する際の下記の記述への参照により、さらに容易に明らかになるだろう。
【図１】図１は、例示的なユニバーサル発見システムを備えるネットワークを示している。
【図２】図２は、ユニバーサル発見システムにしたがった、ノードにおける使用のための例示的な発見装置を示している。
【図３】図３は、ユニバーサル発見システムにしたがった使用のための例示的なアドバタイズを示している。
【図４】図４は、ユニバーサル発見システムにしたがった使用のための例示的なオーバーレイデータベースを示している。
【図５】図５は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させる例示的な方法を示している。
【図６】図６は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させる例示的な方法を示している。
【図７】図７は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させる例示的な方法を示している。
【図８】図８は、ユニバーサル発見システムの例示的な動作を図示しているダイヤグラムを示している。
【図９】図９は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させる例示的な方法を示している。
【図１０】図１０は、ユニバーサル発見システムにしたがった、ノードにおける使用のための例示的な発見装置を示している。
【説明】
【００１７】
下記の説明は、ピアツーピアオーバーレイネットワークの生成、アドバタイズ、および発見を促進するように動作するユニバーサル発見システムの態様を記述している。
【００１８】
図１は、例示的なユニバーサル発見システムを備えるネットワーク１００を示している。ネットワーク１００は、１つのインプリメンテーションではインターネットプロトコルネットワークを含む、基礎となるネットワーク１０２を備えている。基礎となるネットワーク１０２を単一のエンティティとして示しているが、基礎となるネットワークは、ＷＡＮ、ＬＡＮ、ワイヤレスネットワークのような、任意の数および／またタイプのネットワーク、あるいは、他の何らかのタイプのネットワークを含んでいてもよい。
【００１９】
ユニバーサル発見システムの態様にしたがって、図１に示されているノードのうちのすべてまたは任意のものにおける使用のための発見装置（ＤＡ）を提供する。例えば、ＤＡは、ネットワーク１００の選択されたノードにおいて示されており、ここに記述するユニバーサル発見システムの機能を提供するように動作する。
【００２０】
接続されているユニバーサルオーバーレイネットワーク
基礎となるネットワーク１０２は、“接続されているユニバーサルオーバーレイネットワーク”１０４を備えている。接続されているユニバーサルオーバーレイネットワーク１０４は、インターネット接続されているデバイスにより生成される単一のユニバーサルオーバーレイネットワークとして規定される。接続されているユニバーサルオーバーレイネットワーク１０４は、オーバーレイノード識別子に対応して割り当てられている、基礎となるネットワーク１０２のノードのサブセットを備えている。例えば、接続されているユニバーサルオーバーレイネットワークは、初めに、ノード５０、６０、８０、および９５を備えている。ノードは、基礎となるネットワーク１０２のサービスを利用して、互いに通信する。例えば、接続されているユニバーサルオーバーレイネットワーク１０４のノードは、所望のルーティングパスを形成するために、基礎となるネットワーク１０２により提供される通信リンクにより接続されている。接続されているユニバーサルオーバーレイネットワーク１０４は、何らかのルーティングコンフィギュレーションを可能にする何らかのトポロジーまたはアーキテクチャを有し、図１中に示されているコンフィギュレーションに限定されないことにも留意すべきである。
【００２１】
接続されていないユニバーサルオーバーレイネットワーク
ネットワーク１００はまた、“接続されていないユニバーサルオーバーレイネットワーク”１０６を備えている。接続されていないユニバーサルオーバーレイネットワーク１０６は、インターネット接続されていないデバイスにより生成される単一のユニバーサルオーバーレイネットワークとして規定される。例えば、接続されていないユニバーサルオーバーレイネットワークは、初めに、ノード４、６、８、および１０を備えている。接続されていないユニバーサルオーバーレイネットワーク１０６のノードは、基礎となるネットワークのサービスを利用することなく、互いに通信する。例えば、ノードは、（ＷｉＦｉ（登録商標）技術のような）何らかの適切な送信技術を利用して、互いに通信する。１つのノードが、初めに、接続されていないオーバーレイネットワーク１０６をアドバタイズし、他のノードのそれぞれが漸進的に加わるときに、ノードは接続されていないオーバーレイネットワーク１０６を形成する。接続されていないユニバーサルオーバーレイネットワーク１０６は、ＷｉＦｉ技術を利用することに限定されず、他の何らかのタイプの通信技術を利用してもよいことに留意すべきである。さらに、ユニバーサル発見システムは、任意の数および／またはタイプの接続されていないオーバーレイネットワークとの使用に適している。接続されていないユニバーサルオーバーレイネットワーク１０６は、何らかのルーティングコンフィギュレーションを可能にする何らかのトポロジーまたはアーキテクチャを有し、図１中に示されているコンフィギュレーションに限定されないことにも留意すべきである。
【００２２】
発見装置
ＤＡは、ここに記述するユニバーサル発見システムにしたがって、下記の機能を提供するように、ノードにおいて動作する。  
１．特定のノードにおいて利用可能な通信インターフェースに関係する、オーバーレイネットワークのデータベースを維持。  
２．電源オンにおいてまたは動作の間の任意の時間において、利用可能な通信リンクを決定。  
３．利用可能な通信リンクに基づいて、加わるためのオーバーレイネットワークを選択。  
４．可能な場合、接続されているユニバーサルオーバーレイネットワークに加わる。  
５．可能な場合、接続されていないユニバーサルオーバーレイネットワークに加わる。  
６．ユニバーサル接続されているネットワークまたはユニバーサル接続されていないネットワークに加わった後に、ＵＮＬを使用してブートストラップピアにアクセスするように、何らかのオーバーレイネットワークをアドバタイズおよび発見。
【００２３】
例示的な動作
ユニバーサル発見システムの動作の間に、各ノードは、ノードに対して利用可能な通信媒体（すなわち、“リンク”）に基づいて、１つ以上のオーバーレイネットワークの一部になるように試行する。例えば、ノードは、対応する通信リンクを通した通信を可能にする１つ以上の通信インターフェースを備えている。例えば、通信インターフェースは、イーサネット（登録商標）、ＷｉＦｉ、ブルートゥース（登録商標）、および／または、他のノードと通信するために使用できる他の何らかのタイプのインターフェースを含んでいる。各ノードは、その通信インターフェースのうちの１つ以上に関係するオーバーレイネットワークを識別する情報を有するように構成されている、または、そうでなければ、この情報を取得するように構成されている。
【００２４】
ＤＡは、各インターフェースに関係する利用可能な通信リンクが存在するか否かを決定するように動作する。例えば、ノードは、ＷｉＦｉインターフェースを有しているかもしれないが、ＷｉＦｉ通信リンクを確立するための他の何らかのＷｉＦｉイネーブルされているノードの範囲内に存在していないかもしれない。いったんＤＡが利用可能な通信リンクを決定すると、ＤＡは、そのデータベースをサーチして、各リンクに関係するオーバーレイネットワークを識別する。ＤＡは、その後、各リンクに関係する識別したオーバーレイネットワークに加わるように試行する。例えば、ノードが特定の通信リンク上でインターネットへのアクセスを有している場合、ノードは、接続されているユニバーサルオーバーレイネットワークに加わるように試行する。ノードがインターネット接続性を有していない場合、ノードはそれでも、ＷｉＦｉ、ブルートゥース、または他のインターフェースのような、オーバーレイ動作に対してイネーブルされている他のインターフェース上で、オーバーレイに加わることができる。接続されていないユニバーサルオーバーレイネットワーク１０６は、利用可能なＷｉＦｉ通信リンクに基づいて、接続されていないオーバーレイネットワークを形成しているノードの例である。ノードは、各ノードに関係するポリシー情報に則って、複数のインターフェースを介して、複数のオーバーレイに加わることを選んでもよい。
【００２５】
接続されているユニバーサルオーバーレイに加わること
図１を再び参照すると、ノード１０８は、基礎となるネットワーク１０２上に位置しており、ノード１０８に位置しているＤＡは、接続されているユニバーサルオーバーレイネットワーク１０４にノード１０８が加わることを可能にする通信リンクが利用可能であることを決定する。例えば、ノードは、基礎となるネットワーク１０２上で通信することが可能なワイヤレスワイドエリアネットワーク（ＷＷＡＮ）インターフェースを含んでいてもよい。ユニバーサル発見システムの１つのインプリメンテーションでは、ノードがインターネット接続を有している場合、ノードは、接続されているユニバーサルオーバーレイネットワークに加わるように常に試行する。したがって、ノード１０８におけるＤＡは、ＷＷＡＮ通信リンクが利用可能であることを決定し、このリンクを使用して、接続されているユニバーサルオーバーレイネットワーク１０４に加わり、ノード識別子７０が割り当てられる。
【００２６】
いったん接続されているユニバーサルオーバーレイネットワーク１０４に接続されると、ノード１０８は、他の接続されているオーバーレイをアドバタイズするように、または、他の接続されているオーバーレイに加わるように動作する。例えば、ノード１０８は、接続されているオーバーレイ１１０に加わる。接続されているオーバーレイ１１０もまた、ノード５０および８０を備えている。例えば、接続されているオーバーレイ１１０は、参加者がスポーツクリップまたは他のスポーツ関連コンテンツを取得できるオーバーレイであってもよい。
【００２７】
接続されていないユニバーサルオーバーレイに加わること
図１を再び参照すると、ノード１１２は、基礎となるネットワーク１０２上に位置しておらず、ノード１１２に位置しているＤＡは、接続されていないユニバーサルオーバーレイネットワーク１０６にノード１１２が加わることを可能にする通信リンクが利用可能であることを決定する。例えば、ノードは、接続されていないユニバーサルオーバーレイネットワーク１０６上の他のノードと通信することが可能なＷｉＦｉインターフェースを含んでいてもよい。ユニバーサル発見システムの１つのインプリメンテーションでは、ノードは、接続されていないユニバーサルオーバーレイネットワークに加わるように常に試行する。したがって、ノード１１２におけるＤＡは、ＷｉＦｉ通信リンクが利用可能であることを決定し、このリンクを使用して、接続されていないユニバーサルオーバーレイネットワーク１０６に加わり、ノード識別子２が割り当てられる。
【００２８】
いったん接続されていないユニバーサルオーバーレイネットワーク１０６に加わると、ノード１１２は、他の接続されていないオーバーレイをアドバタイズするように、または、他の接続されていないオーバーレイに加わるように動作する。例えば、ノード１１２は、接続されていないオーバーレイ１１４に加わる。接続されていないオーバーレイ１１４もまた、ノード４および６を備えている。例えば、接続されていないオーバーレイ１１４は、参加者が写真共有に参加できる写真共有オーバーレイであってもよい。
【００２９】
接続されていないオーバーレイをアドバタイズすること
ユニバーサル発見システムのこの態様を図示するために、ノード１１２におけるＤＡが、リンクが存在し、それにより、接続されているユニバーサルオーバーレイネットワーク１０４にノード１１２が加わることができることを決定すると仮定する。例えば、ノード１１２は、ＷＷＡＮインターフェースを備え、ノード１１２が基礎となるネットワーク１０２と通信できるようにするＷＷＡＮリンクを検出する。そうする際に、ノード１１２は、接続されているユニバーサルオーバーレイネットワーク１０４を発見して加わる結果として、図１中に図示されているように、オーバーレイ識別子４０が割り当てられる。
【００３０】
いったん接続されているユニバーサルオーバーレイネットワーク１０４に接続されると、ノード１１２は、接続されているユニバーサルオーバーレイネットワーク１０４上で、接続されていないユニバーサルオーバーレイネットワーク１０６をアドバタイズするように動作する。例えば、接続されていないオーバーレイネットワーク１０６を識別して、接続されていないユニバーサルオーバーレイネットワーク１０６に到達するためにノード４０を使用することができることを示すアドバタイズ（Ａｄ）を、ノード１１２はノード９５において発行する。例えば、Ａｄ中で、ユニバーサルノードロケータにより、接続されているオーバーレイネットワーク１０４に関するノード４０を識別する。接続されているユニバーサルオーバーレイネットワーク１０４上の他のノードは、その後、Ａｄを発見し、（４０として識別した）ノード１１２を通して、接続されていないユニバーサルオーバーレイネットワーク１０６に到達できる。
【００３１】
このアドバタイズメカニズムは、結果として、他の特定用途向けオーバーレイネットワークのフォーメーションを生じさせることができる。さらに、このメカニズムは、接続されていないユニバーサルオーバーレイおよび接続されているユニバーサルオーバーレイの双方に適用する。ノード１１２はまた、接続されているユニバーサルオーバーレイ１０４上で、接続されていないオーバーレイネットワーク１１４をアドバタイズしてもよいことにも留意すべきである。したがって、接続されているユニバーサルオーバーレイ１０４に位置しているノードのうちの任意のものは、接続されているユニバーサルオーバーレイ１０４上で４０として識別されるノードを使用することにより、接続されていないオーバーレイネットワーク１１４に加わってもよく、および、参加してもよい。
【００３２】
ノードの移動性
ユニバーサル発見システムは、ノードが、ノードの移動の間に、互いに接続したままでいることを可能にする。例えば、接続されていないユニバーサルオーバーレイネットワーク１０６上でノード識別子４を有するノード１１６は、１１８において示しているように、接続されていないユニバーサルオーバーレイネットワーク１０６を離れる。例えば、ノード１１６は、その地理的位置を変更する移動体電話機である。ノード１１６は、オーバーレイに加わることにより、または、クライアントとしてのどちらかにより、接続されているユニバーサルオーバーレイネットワーク１０４に問い合わせることができる。この説明のために、ノード１１６は、基礎となるネットワーク１０２への通信リンクを提供し、それゆえ、接続されているユニバーサルオーバーレイネットワーク１０４にノード１１６が加わることができるようにするインターフェースを備え、ノード識別子９０が割り当てられることを仮定する。ノード１１６は、その後、ノード１１２により発行されたノード９５におけるＡｄを発見することが可能である（１２０において示されている）。パス１２２および１２４により図示されているように、接続されていないオーバーレイネットワーク１０６中にブートストラップバックするために使用できる、接続されているユニバーサルオーバーレイネットワーク１０４上のＵＮＬ４０（ノード１１２）を、Ａｄは識別する。したがって、接続されていないオーバーレイネットワーク１０６を離れたノード１１６は、接続されているユニバーサルオーバーレイネットワーク１０４の使用を通して、接続されていないオーバーレイネットワーク１０６のノードと通信することが可能である。結果として、ノード１１６は、依然として、写真共有オーバーレイ１１４上で通信してもよい。
【００３３】
ユニバーサルノードロケータ
上述したように、ユニバーサル発見システムは、ノードが、それを介して、オーバーレイアドバタイズを実施して、または、オーバーレイネットワークを発見して、その後、それらに加わることができる共通の媒体を促進する。この状況では、ユニバーサルオーバーレイネットワークの状況において、ブートストラップノードが名付けられるメカニズムを、システムは提供する。これにより、オーバーレイをアドバタイズするときに、公然とブートストラップノードに到達可能であるか否かを決定することに伴う、配備の考慮すべき事項および困難がなくなる。
【００３４】
したがって、ユニバーサル発見システムは、ブートストラップピアを指定するために、ＩＰアドレスおよびポート番号の代わりに、ユニバーサルノードロケータをオーバーレイコンフィギュレーション文書が含むことを提供する。接続されているユニバーサルオーバーレイネットワーク１０４上で、ノード識別子９５においてアドバタイズされる写真共有オーバーレイ１１４の例を考える。写真共有オーバーレイのオーバーレイコンフィギュレーション文書中では、ブートストラップピアエレメントは、以下の形態のエントリ；
overlay-node://40/;context=”universal overlay disc”
を含んでいてもよい。
【００３５】
これは、接続されていないユニバーサルオーバーレイを介して、ブートストラップピアに到達可能であることを定める。その後、何らかのノードが、接続されているユニバーサルオーバーレイネットワーク１０４上のノード識別子４０に接続でき、後に、写真共有の接続されていないオーバーレイ１１４にブートストラップされることになる。
【００３６】
それゆえ、ノードがインターネットに接続されているか、または、たとえそれらが接続されていないモードであるときでさえの、何らかのシナリオにおける、オーバーレイのアドバタイズおよび発見のためのメカニズムを、システムは提供する。これは、オーバーレイの到達可能性のために、共通の媒体を生成させることにより、ディスジョイントサブネットにわたって、オーバーレイを発見および再編成できるようにする（例えば、閉じられたホームネットワークから移動体インターネットへのノードの移動性）。ＤＡおよびユニバーサル発見システムの動作のさらに詳細な説明を下記で提供する。
【００３７】
図２は、ユニバーサル発見システムにしたがった、ノードにおける使用のための例示的な発見装置２００を示している。例えば、ＤＡ２００は、図１中に示したＤＡとしての使用に適している。ＤＡ２００は、データバス２０８上で通信するようにすべて結合されている、プロセッサ２０２と、メモリ２０４と、トランシーバ２０６とを備えている。ＤＡ２００は、１つのインプリメンテーションに過ぎず、他のインプリメンテーションも可能であることに留意すべきである。
【００３８】
ＤＡ２００が、さまざまな通信インターフェースを使用して、データまたは他の情報を他のノードと通信できるようにするように動作する、ハードウェア、および／または、ハードウェア実行ソフトウェアを、トランシーバ２０６は備えている。例えば、接続されているユニバーサルオーバーレイネットワーク上のノードとの通信リンクを確立するために、または、接続されていないオーバーレイネットワーク上のノードとの通信リンクを確立するために使用することができる、ブルートゥース２１４インターフェースと、ＷｉＦｉ２１６インターフェースと、ＷＷＡＮ２１８インターフェースとをトランシーバ２０６は備えている。３つの通信インターフェースを示しているが、トランシーバ２０６は、任意の数および／またはタイプの通信インターフェースを備えることができる。
【００３９】
メモリ２０４は、オーバーレイデータベース２１０、ユニバーサル発見モジュール２１２、アドバタイズ（ＡＤ）２２０、およびオーバーレイ（ＯＬ）ルーティングモジュール２２２を記憶するように動作可能な何らかの適切な記憶デバイスを備えている。オーバーレイデータベース２１０は、１つ以上のオーバーレイネットワークに関係する情報（すなわち、メタデータ）を備えている。例えば、オーバーレイデータベース２１０は、アクセス可能な通信リンクに基づいて、ＤＡ２００が加わるように試行すべき、接続されているユニバーサルオーバーレイネットワークおよび／または接続されていないオーバーレイネットワークを識別する。
【００４０】
ユニバーサル発見モジュール２１２は、ここで記述するユニバーサル発見システムの機能を提供するための、プロセッサ２０２により実行可能な命令またはコードを含む、１つ以上のモジュールを備えている。
【００４１】
オーバーレイネットワーク上で発行されることになる、１つ以上のオーバーレイネットワークへのアクセスを提供するピアを識別する情報を、ＡＤ２２０は含んでいる。アドバタイズされたネットワークに到達するために使用できる、ユニバーサルオーバーレイネットワークに関するノードを識別するＵＮＬを、ＡＤ２２０は含んでいる。
【００４２】
どのようにパケットをルーティングし、状態を維持し、修復するか、および／または、特定のオーバーレイネットワークに関係する他の機能を制御するための、プロセッサ２０２により実行可能な命令あるいはコードを含む１つ以上のモジュールを、オーバーレイルーティングモジュール２２４は備えている。
【００４３】
プロセッサ２０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリエレメント、および／またはハードウェア実行ソフトウェアのうちの少なくとも１つを含んでいる。ある態様では、ここに記述するユニバーサル発見システムの機能を実施するようにＤＡ２００を制御するために、ユニバーサル発見モジュール２１２の命令を実行するようにプロセッサ２０２は動作する。別のインプリメンテーションでは、１つ以上の集積回路により、ＤＡ２００の機能のすべてを実現する。
【００４４】
オーバーレイネットワークデータベース
動作の間に、プロセッサ２０２は、オーバーレイネットワークについての情報を含むオーバーレイデータベース２１０を取得するように動作する。例えば、オーバーレイデータベース２１０は、ノードコンフィギュレーションの間に、トランシーバ２０６の利用可能なインターフェースを使用して、ＤＡ２００にダウンロードされ、プロセッサ２０２によりメモリ中に記憶される。動作の間に、１つ以上のオーバーレイネットワークに関係する情報および／またはメタデータにプロセッサ２０２が気付くときに、オーバーレイデータ２１０は更新される。１つのインプリメンテーションでは、プロセッサ２０２は、各インターフェースに関係することになるオーバーレイネットワークを示すユーザ入力を受信する。プロセッサ２０２は、この情報および／またはメタデータをオーバーレイデータベース２１０中に記憶させるように動作する。例えば、オーバーレイデータベース２１０中の情報は、これらに限定されないが、下記の情報を含む。  
１．オーバーレイネットワーク名
２．ノードアドレス
３．イントロデューサーノードアドレス
４．コンテンツタイプ
５．特定のコンテンツ
６．サービス品質（ＱｏＳ）パラメータ
７．オーバーレイネットワークの動作領域
８．オーバーレイネットワークタイプ。
【００４５】
オーバーレイネットワークに加わること
プロセッサ２０２は、トランシーバ論理２０６を制御して、利用可能な通信リンクを検出するように動作する。例えば、トランシーバ論理２０６は、その通信インターフェース（２１４、２１６、２１８）を使用して、利用可能なリンクを決定するように動作する。利用可能な通信リンクに基づいて、プロセッサ２０２は、参加するためのオーバーレイネットワークをデータベース２１０から選択するように動作する。例えば、ＷＷＡＮ通信リンクが検出される場合、プロセッサ２０２は、ＷＷＡＮ通信リンクに関係するオーバーレイネットワークをオーバーレイデータベース２１０から選択する。このような選択は、接続されているユニバーサルオーバーレイネットワークであってもよく、または、接続されていないオーバーレイネットワークであってもよい。プロセッサ２０２はその後、トランシーバ２０６を制御して、選択したオーバーレイネットワークに加わる。
【００４６】
オーバーレイネットワークをアドバタイズすること
いったんノードがユニバーサルオーバーレイネットワークを加わると、ＤＡ２００は、ノードがアクセスを提供できる他のオーバーレイネットワークを発生させてアドバタイズする。アドバタイズは、ユニバーサルオーバーレイネットワークに関するノードを識別するＵＮＬを含む。例えば、プロセッサ２０２は、ＡＤ２２０として、接続されていないオーバーレイネットワークに関係するアドバタイズを発生させて、それらのアドバタイズをメモリ２０４中に記憶させるように動作する。接続されているユニバーサルネットワークに参加しているとき、プロセッサ２０２は、トランシーバ２０６の通信リンクにより、いずれの接続されていないオーバーレイネットワークにアクセス可能かを決定する。プロセッサ２０２はその後、適切なアドバタイズを選択し、トランシーバ２０６を制御して、接続されているユニバーサルオーバーレイネットワーク上でこれらのアドバタイズを発行する。それゆえ、接続されているユニバーサルオーバーレイネットワーク上の任意のノードは、アドバタイズをサーチして発見し、アドバタイズ中に含まれているＵＮＬを使用することにより識別したノードを通して、接続されていないオーバーレイネットワークへのアクセスを取得してもよい。
【００４７】
ある態様では、機械読取可能媒体上に記憶されているまたは具現化されている、１つ以上のプログラム命令（“命令”）、あるいは、コードのセット（“コード”）を有するコンピュータプログラムプロダクトを、ユニバーサル発見システムは備えている。少なくとも１つのプロセッサ、例えばプロセッサ２０２により、コードが実行されるとき、これらの実行は、ここで記述するユニバーサル発見システムの機能をＤＡ２００に提供させる。例えば、機械読取可能媒体は、フロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、または、ＤＡ２００にインターフェースする他の何らかのタイプのメモリデバイスもしくは機械読取可能媒体を含む。別の態様では、コードのセットは、外部デバイスまたは通信ネットワークリソースからＤＡ２００中にダウンロードされてもよい。コードのセットは、実行されるとき、ここに記述するようなユニバーサル発見システムの機能を提供させるように動作する。
【００４８】
図３は、ユニバーサル発見システムにしたがった使用のための例示的なアドバタイズ３００を示している。例えば、アドバタイズ３００は、図１中に示したノード９５におけるＡｄであってもよい。アドバタイズ３００は、オーバーレイ名３０２、接続パラメータ３０４、ＵＮＬ３０６、およびセキュリティ証明書３０８を含む。ＵＮＬ３０６は、アドバタイズされたオーバーレイネットワークへのアクセスを提供する、ユニバーサルオーバーレイネットワーク上のノードを識別する。アドバタイズされたネットワークを識別するために、または、それに対するアクセスを制御するために必要とされる場合、アドバタイズ３００は、より多くのパラメータを含んでいてもよいことに留意すべきである。
【００４９】
図４は、ユニバーサル発見システムにしたがった使用のための例示的なオーバーレイデータベース４００を示している。例えば、オーバーレイデータベース４００は、図２中に示したオーバーレイデータベース２１０であってもよい。
【００５０】
オーバーレイデータベース４００は、インターフェースタイプ４０２と、ネットワーク識別子４０４と、ステータス４０６とを含む。インターフェースタイプ４０２は、動作の間に、ノードに利用可能になるかもしれないインターフェースのタイプを識別する。例えば、インターフェースタイプは、ＷＷＡＮ、ＷｉＦｉ、ブルートゥースを含む。
【００５１】
ネットワーク識別子４０４は、各インターフェースタイプに対して加わるネットワークを識別する。例えば、ネットワーク識別子は、ユニバーサル接続されているオーバーレイネットワークおよびユニバーサル接続されていないオーバーレイネットワークと、スポーツクリップ、写真共有、および音楽共有のネットワークのような他のさまざまなネットワークとを含む。１つのインプリメンテーションでは、対応するインターフェースタイプが利用可能である場合に、最高の優先度を有するネットワーク識別子にシステムが初めに加わるように動作するように、ネットワーク識別子は優先度でリストされている。いくつかのケースでは、同じインターフェースタイプを使用して、複数のネットワークに加わることが可能である。例えば、接続されているユニバーサルオーバーレイネットワークとスポーツクリップオーバーレイネットワークとに加わるために、ＷＷＡＮインターフェースタイプを使用してもよい。
【００５２】
ステータス４０６は、各識別されたネットワーク４０４の現在のステータスを識別する。例えば、ＷＷＡＮインターフェース上のユニバーサル接続されているオーバーレイネットワークは、加わっていると示されている。
【００５３】
図５は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させるための例示的な方法５００を示している。明確にするために、図２中に示したＤＡ２００を参照して、方法５００を下記に記述している。１つのインプリメンテーションでは、下記に記述する機能を実施するようにＤＡ２００を制御するために、発見モジュール２１２により提供される１つ以上のセットのコードをプロセッサ２０２は実行する。
【００５４】
ブロック５０２において、オーバーレイデータベースからの情報を取得する。オーバーレイデータベースは、オーバーレイネットワークと、それらのネットワーク上に参加するために使用することになる関係する通信インターフェースとを識別する情報を含む。例えば、オーバーレイデータベースは、図４中に示したオーバーレイデータベース４００のように、フォーマット化され、オーバーレイデータベース２１０のように、メモリ２０４中に記憶される。ある態様では、オーバーレイデータベース２１０に対する情報は、ノードのコンフィギュレーションの間に、ＤＡ２００に提供され、動作の間に、ＤＡ２００にダウンロードされ、および／または、ユーザ入力により更新される。より多くのネットワークが検出されるときに、または、より多くのネットワークが利用可能になるときに、プロセッサ２０２は、オーバーレイデータベース２１０を、更新、修正、および／または、そうでなければ維持するように動作する。１つのインプリメンテーションでは、オーバーレイデータベース２１０からの情報は、プロセッサ２０２によりメモリ２０４から取り出される。
【００５５】
ブロック５０４において、利用可能な通信リンクを検出する。例えば、プロセッサ２０２は、トランシーバ論理２０６を制御して、１つ以上の通信インターフェースに関係する利用可能な通信リンクを検出する。通信インターフェースは、ＷＷＡＮ、ＷｉＦｉ、ブルートゥース、または、他の何らかの適切な通信インターフェースを含む。
【００５６】
ブロック５０６において、通信リンクが検出された場合に、接続されているユニバーサルオーバーレイネットワークにアクセス可能か否かについて、決定を行う。１つのインプリメンテーションでは、トランシーバ２０６を制御して、利用可能なインターフェースのうちの何らかのものの上で、接続されているユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することにより、プロセッサ２０２はこの決定を行う。１つ以上のインターフェース上で、接続されているユニバーサルオーバーレイにアクセス可能である場合、方法はブロック５０８に進む。接続されているユニバーサルオーバーレイにアクセス可能でない場合、方法はブロック５１２に進む。
【００５７】
ブロック５０８において、接続されているユニバーサルオーバーレイネットワークに加わるために使用することになるインターフェースを選択する。１つのインプリメンテーションでは、プロセッサ２０２は、オーバーレイデータベース２１０にアクセスして、検出されたインターフェースを相互参照して、接続されているユニバーサルオーバーレイネットワークに接続するのにいずれのインターフェースを使用するかを決定する。接続されているユニバーサルオーバーレイが、複数のインターフェース上で利用可能である場合、信号強度、周波数、データレート、スループット、あるいは、他の何らかのパラメータまたは基準に基づいて、プロセッサ２０２は使用するインターフェースを選択する。それゆえ、接続されているユニバーサルオーバーレイネットワークに対する低データレート接続は、そのような接続が利用可能である場合に、高データレート接続に置換される。
【００５８】
ブロック５１０において、接続されているユニバーサルオーバーレイネットワークに加わる。例えば、プロセッサ２０２は、トランシーバ２０６を制御し、ブロック５０８において選択したインターフェースと通信リンクとを使用して、接続されているユニバーサルオーバーレイネットワークに加わる。加わった後、プロセッサ２０２は、データベース２１０中のステータス４０６を更新する。
【００５９】
ブロック５１２において、通信リンクが検出された場合に、接続されていないオーバーレイネットワークにアクセス可能か否かについて、決定を行う。１つのインプリメンテーションでは、トランシーバ２０６を制御して、利用可能なインターフェースのうちの何らかの上で、接続されていないユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することにより、プロセッサ２０２はこの決定を行う。１つ以上のインターフェース上で、接続されていないユニバーサルオーバーレイにアクセス可能である場合、方法はブロック５１４に進む。接続されていないユニバーサルオーバーレイにアクセス可能でない場合、方法はブロック５１８に進む。
【００６０】
ブロック５１４において、接続されていないユニバーサルオーバーレイネットワークに加わるために使用することになるインターフェースを選択する。１つのインプリメンテーションでは、プロセッサ２０２は、オーバーレイデータベース２１０にアクセスして、検出されたインターフェースを相互参照して、接続されていないユニバーサルオーバーレイネットワークに接続するのにいずれのインターフェースを使用するかを決定する。接続されていないユニバーサルオーバーレイが、複数のインターフェース上で利用可能である場合、信号強度、周波数、データレート、スループット、あるいは、他の何らかのパラメータまたは基準に基づいて、プロセッサ２０２は使用するインターフェースを選択する。それゆえ、接続されていないユニバーサルオーバーレイネットワークに対する低データレート接続は、そのような接続が利用可能である場合に、高データレート接続に置換される。
【００６１】
ブロック５１６において、接続されていないユニバーサルオーバーレイネットワークに加わる。例えば、プロセッサ２０２は、トランシーバ２０６を制御し、ブロック５０８において決定した適切なインターフェースと通信リンクとを使用して、接続されていないユニバーサルオーバーレイネットワークに加わる。接続されていないオーバーレイネットワークに加わった後、プロセッサ２０２は、データベース２１０中のステータス４０６を更新する。
【００６２】
ブロック５１８において、通信リンクが検出された場合に、他の何らかのオーバーレイネットワークにアクセス可能か否かについて、決定を行う。１つのインプリメンテーションでは、トランシーバ２０６を制御して、利用可能なインターフェースのうちの何らかの上で他の何らかのオーバーレイネットワークにアクセス可能であるか否かを決定することにより、プロセッサ２０２はこの決定を行う。１つ以上のインターフェース上で、他の何らかのオーバーレイネットワークにアクセス可能である場合、方法はブロック５２０に進む。他のどのオーバーレイネットワークにもアクセス可能でない場合、方法は終了する。
【００６３】
ブロック５２０において、１つ以上の他のオーバーレイネットワークに加わるために使用することになるインターフェースを選択する。１つのインプリメンテーションでは、プロセッサ２０２は、オーバーレイデータベース２１０にアクセスして、検出されたインターフェースを相互参照して、他のオーバーレイネットワークに接続するのにいずれのインターフェースを使用するかを決定する。他のオーバーレイが、複数のインターフェース上で利用可能である場合、信号強度、周波数、データレート、スループット、あるいは、他の何らかのパラメータまたは基準に基づいて、プロセッサ２０２は使用するインターフェースを選択する。それゆえ、特定のオーバーレイネットワークに対する低データレート接続は、そのような接続が利用可能である場合に、高データレート接続に置換される。
【００６４】
ブロック５２２において、他のオーバーレイネットワークに加わる。例えば、プロセッサ２０２は、トランシーバ２０６を制御し、ブロック５２０において決定した適切なインターフェースと通信リンクとを使用して、他のオーバーレイネットワークに加わる。他のオーバーレイネットワークに加わった後、プロセッサ２０２は、データベース２１０中のステータス４０６を更新する。
【００６５】
それゆえ、方法５００は、オーバーレイネットワークを発見して加わるための、早く効率的なシステムを提供するように動作する。方法５００は、ユニバーサル発見システムにしたがった、ノードにおける発見装置により実施する。方法５００は、１つのインプリメンテーションに過ぎず、方法５００の動作は、さまざまな態様の範囲内で、再構成してもよく、または、そうでなければ、修正してもよいことに留意すべきである。したがって、他のインプリメンテーションも可能である。
【００６６】
図６は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させるための例示的な方法６００を示している。明確にするために、図２中に示したＤＡ２００を参照して、方法６００を下記に記述している。１つのインプリメンテーションでは、下記に記述する機能を実施するようにＤＡ２００を制御するために、発見モジュール２１２により提供される１つ以上のセットのコードをプロセッサ２０２は実行する。
【００６７】
ブロック６０２において、接続されているユニバーサルネットワーク上のノード識別子を確立する。例えば、既存の通信インターフェースを通して、接続されているユニバーサルオーバーレイネットワークにアクセス可能であることを、プロセッサ２０２は決定する。その後、プロセッサ２０２は、トランシーバ２０６を制御し、適切な通信インターフェースを使用して、接続されているユニバーサルオーバーレイネットワークに加わり、接続されているユニバーサルオーバーレイネットワーク上のノード識別子を取得するように動作する。
【００６８】
ブロック６０４において、１つ以上のオーバーレイネットワークに対するアドバタイズを発生させる。ある態様では、ノードが現在アクセスを有する１つ以上のオーバーレイネットワークをアドバタイズする１つ以上のアドバタイズをプロセッサ２０２は発生させる。アドバタイズは、ＡＤ２２０の一部として、メモリ中に記憶される。ある態様では、アドバタイズは、図３中で示したようにフォーマット化される。アドバタイズされたオーバーレイに対するアクセスを提供する、接続されているユニバーサルオーバーレイネットワーク上または接続されていないユニバーサルオーバーレイネットワーク上のノードを識別するＵＮＬを、アドバタイズは含む。
【００６９】
ブロック６０６において、発生させたアドバタイズを、ユニバーサルオーバーレイネットワーク上で発行する。ある態様では、プロセッサ論理２０２は、トランシーバ２０６を制御して、接続されているユニバーサルオーバーレイネットワーク上か、接続されていないユニバーサルオーバーレイネットワークのいずれかの上でアドバタイズを発行する。
【００７０】
ブロック６０８において、アドバタイズされたオーバーレイネットワークにアクセスするための要求を受信する。例えば、ユニバーサルオーバーレイネットワークへのアクセスを有する第２のノードは、アドバタイズを発見し、アドバタイズ中のＵＮＬにより識別されたカレントノードを通して、選択したオーバーレイネットワークに到達できることを決定する。第２のノードは、接続されているユニバーサルオーバーレイネットワークを使用して、選択したオーバーレイネットワークに加わるための要求をカレントノードに送る。
【００７１】
ブロック６１０において、受信されたジョイン要求は、オーバーレイネットワークに関係する識別スペース中の最も近いノードにルーティングされる。プロセッサ２０２は、要求を受信し、トランシーバ２０６を使用して、アドバタイズされたオーバーレイネットワーク上で、適切なノードに要求をルーティングする。
【００７２】
それゆえ、方法６００は、１つ以上のオーバーレイネットワークへのアクセスをアドバタイズするための、早く効率的なメカニズムを提供するように動作する。方法６００は、ユニバーサル発見システムにしたがった、ノードにおいて動作する発見装置２００により実施する。方法６００は、１つのインプリメンテーションに過ぎず、方法６００の動作は、さまざまな態様の範囲内で、再構成してもよく、または、そうでなければ、修正してもよいことに留意すべきである。したがって、方法６００の他のインプリメンテーションも可能である。
【００７３】
図７は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させるための例示的な方法７００を示している。明確にするために、図２中に示した発見装置２００を参照して、方法７００を下記に記述している。１つのインプリメンテーションでは、下記に記述する機能を実施するように発見装置２００を制御するために、発見モジュール２１２により提供される１つ以上のセットのコードをプロセッサ２０２は実行する。
【００７４】
ブロック７０２において、第１のオーバーレイネットワークとの通信を中止する。例えば、ノードは、その現在の地理的エリアを離れており、結果として、第１のネットワークへの接続を中止する移動体電話機であるかもしれない。ある態様では、プロセッサ２０２は、トランシーバ２０６を制御して、ネットワーク接続を中止する。第１のオーバーレイネットワークは、接続されていないオーバーレイネットワークであってもよい。プロセッサ２０２はまた、データベース２１０中のステータス４０６を更新する。
【００７５】
ブロック７０４において、利用可能な通信リンクを検出する。ある態様では、プロセッサ２０２は、トランシーバ２０６を制御して、１つ以上の通信インターフェースに関係する利用可能な通信リンクを検出する。
【００７６】
ブロック７０６において、接続されているユニバーサルオーバーレイネットワークにアクセス可能であるか否かについて、決定を行う。例えば、プロセッサ２０２は、検出した通信リンクに基づいて、接続されているユニバーサルオーバーレイネットワークへのアクセスが利用可能であるか否かを決定する。接続されているユニバーサルオーバーレイネットワークにアクセス可能である場合、方法はブロック７０８に進む。接続されているユニバーサルオーバーレイネットワークにアクセス可能でない場合、方法はブロック７０４に戻る。
【００７７】
ブロック７０８において、接続されているユニバーサルオーバーレイネットワークに加わる。ある態様では、プロセッサ２０２は、トランシーバ２０６を制御し、適切な通信インターフェースと対応する通信リンクとを使用して、接続されているユニバーサルオーバーレイネットワークに加わる。プロセッサ２０２はまた、データベース２１０中のステータス４０６を更新する。
【００７８】
ブロック７１０において、接続されているユニバーサルオーバーレイネットワーク上で、第１のオーバーレイネットワークに対するアドバタイズを発見する。ある態様では、プロセッサ２０２は、トランシーバ２０６を制御し、接続されているユニバーサルオーバーレイネットワークをサーチしてアドバタイズを発見する。例えば、アドバタイズは、図３中に示したアドバタイズ３００のようにフォーマット化される。
【００７９】
ブロック７１２において、第１のオーバーレイネットワークへのアクセスを提供できる、接続されているオーバーレイネットワーク上のブートストラップピアを決定する。ある態様では、プロセッサ２０２は、アドバタイズを処理して、第１のオーバーレイネットワークに到達するために使用できるブートストラップピアを決定する。例えば、ピアは、アドバタイズ中に含まれているＵＮＬにより、ユニバーサルオーバーレイネットワーク上で識別される。
【００８０】
ブロック７１４において、接続されているユニバーサルオーバーレイネットワーク上のブートストラップピアを使用して、第１のオーバーレイネットワークにトラフィックをルーティングする。ある態様では、プロセッサ２０２は、トランシーバ２０６を制御し、第１のオーバーレイネットワークに対するトラフィックをピアを使用してルーティングする。
【００８１】
それゆえ、方法７００は、デバイスが、デバイスの移動の間に、オーバーレイネットワークとの通信を維持できるようにする。ユニバーサル発見システムにしたがった、ノードにおいて動作する発見装置２００により、方法７００を実施する。方法７００は、１つのインプリメンテーションに過ぎず、方法７００の動作は、さまざまな態様の範囲内で、再構成してもよく、または、そうでなければ、修正してもよいことに留意すべきである。したがって、方法７００の他のインプリメンテーションも可能である。
【００８２】
図８は、ユニバーサル発見システムの例示的な動作を図示するダイヤグラム８００を示している。例えば、ダイヤグラム８００は、ノードに位置しているＤＡが、接続されていないユニバーサルオーバーレイネットワークをアドバタイズして形成するようにどのように動作するかを図示している。
【００８３】
ノード８０２は、発見システムにしたがって動作する発見装置を備える。ＤＡは、利用可能な通信インターフェースを検出し、接続されていないユニバーサルオーバーレイネットワークを領域８０４中の他のノードにアドバタイズするためのブルートゥース（ＢＴ）インターフェースを選択する。ノード８０６および８０８は、接続されていないオーバーレイネットワーク８１０を形成するために、アドバタイズに応答して、ノード８０２と通信する。ノード８０２、８０６、および８０８は、これらのそれぞれのオーバーレイデータベース中の情報に基づいて、接続されていないオーバーレイネットワーク８１０に加わる。
【００８４】
図９は、ユニバーサル発見システムにしたがった、ノードにおける発見装置を動作させるための例示的な方法９００を示している。方法９００は、方法７００のブロック７０６および７０８における使用に適している。明確にするために、図２中に示した発見装置２００を参照して、方法９００を下記に記述している。１つのインプリメンテーションでは、下記に記述する機能を実施するように発見装置２００を制御するために、発見モジュール２１２により提供されるコードの１つ以上のセットをプロセッサ２０２は実行する。
【００８５】
ブロック９０２において、複数の通信リンク上で、接続されているユニバーサルオーバーレイネットワークにアクセス可能であるか否かについて、決定を行う。例えば、プロセッサ２０２は、検出した通信リンクに基づいて、接続されているユニバーサルオーバーレイネットワークへのアクセスが利用可能であるか否かを決定する。複数の通信リンク上で、接続されているユニバーサルオーバーレイネットワークにアクセス可能である場合、方法はブロック９０４に進む。単一の通信リンク上で、接続されているユニバーサルオーバーレイネットワークにアクセス可能である場合、方法はブロック９０８に進む。
【００８６】
ブロック９０４において、接続されているユニバーサルオーバーレイネットワークに加わるためのリンクを、選択基準に基づいて選択する。プロセッサ２０２がこの選択を行う。選択基準は、これらには限定されないが、周波数、帯域幅、データレート、スループット、および／または、他の何らかのタイプの選択基準を含む。したがって、低データレートリンクよりも高データレートリンクが選ばれるかもしれない。
【００８７】
ブロック９０６において、何らかの選択していないリンクに基づいている、接続されているユニバーサルオーバーレイネットワークへの何らかの接続を中止する。プロセッサ２０２は、トランシーバ２０６を制御して、この機能を実施する。
【００８８】
ブロック９１２において、選択したリンクを使用して、接続ユニバーサルオーバーレイネットワークに加わる。プロセッサ２０２は、トランシーバ２０６を制御し、選択したリンクを使用して、接続されているユニバーサルオーバーレイネットワークに加わる。
【００８９】
それゆえ、方法９００は、接続されているユニバーサルオーバーレイに接続するために利用可能な最良のリンクを選択するように動作する。ユニバーサル発見システムにしたがって、ノードにおいて動作する発見装置により、方法９００を実施する。方法９００は、１つのインプリメンテーションに過ぎず、方法９００の動作は、さまざまな態様の範囲内で、再構成してもよく、または、そうでなければ、修正してもよいことに留意すべきである。したがって、方法９００の他のインプリメンテーションも可能である。
【００９０】
図１０は、ユニバーサル発見システムにしたがった、ノードにおける使用のための例示的な発見装置１０００を示している。例えば、ＤＡ１０００は、図１中に示したＤＡとしての使用に適している。ある態様では、ここに記述するようなユニバーサル発見システムの態様を提供するように構成されている１つ以上のモジュールを備える少なくとも１つの集積回路により、ＤＡ１０００を実現する。例えば、各モジュールは、ハードウェア、および／または、ハードウェア実行ソフトウェアを備える。
【００９１】
ＤＡ１０００は、ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出する手段（１００２）を含む第１のモジュールを備える。第１のモジュールは、ある態様ではトランシーバ２０６を含む。ＤＡ１０００はまた、少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定する手段（１００４）を含む第２のモジュールを備える。第２のモジュールは、ある態様ではプロセッサ２０２を含む。ＤＡ１０００はまた、少なくとも１つの通信リンクから選択される通信リンクを選択する手段（１００６）を含む第３のモジュールを備える。第３のモジュールは、ある態様ではプロセッサ２０２を含む。ＤＡ１０００はまた、選択した通信リンクを使用して、ユニバーサルオーバーレイネットワークに加わる手段（１００８）を含む第４のモジュールを備える。第４のモジュールは、ある態様ではプロセッサ２０２を含む。
【００９２】
ここに開示した態様と関連して説明したさまざまな例示的な論理、論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、現場プログラム可能ゲートアレイ（ＦＰＧＡ）または他のプログラム可能論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、ここに記述した機能を実行するように設計されているこれらの任意の組み合わせたものにより、実現または実行してもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替実施形態では、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロ制御装置、または状態機械であってもよい。プロセッサはまた、例えば、ＤＳＰおよびマイクロプロセッサを組み合わせたものや、複数のマイクロプロセッサや、ＤＳＰコアを伴う１つ以上のマイクロプロセッサや、または、任意のその他のこのようなコンフィギュレーションのような、コンピューティングデバイスを組み合わせたものとして実現してもよい。
【００９３】
ここに開示した態様と関連して記述した方法またはアルゴリズムのステップは、ハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、あるいは、双方を組み合わせたもので直接的に具現化してもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーブバルディスク、ＣＤ−ＲＯＭ、または、技術的に知られている他の何らかの形態の記憶媒体に存在していてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替実施形態では、記憶媒体は、プロセッサと一体化されていてもよい。プロセッサおよび記憶媒体は、ＡＳＩＣに存在していてもよい。ＡＳＩＣは、ワイヤレス通信デバイスに存在していてもよい。代替実施形態では、プロセッサおよび記憶媒体は、ディスクリートコンポーネントとしてワイヤレス通信デバイスに存在していてもよい。
【００９４】
開示した態様の記述は、当業者が本発明を製作または使用できるように提供した。これらの態様に対するさまざま改良は当業者に容易に明らかになり、ここに規定した一般的な原理は、例えば、インスタントメッセージングサービス中、または、任意の一般的なワイヤレスデータ通信アプリケーション中で、本発明の精神または範囲から逸脱することなく、他の態様に適用してもよい。したがって、本発明は、ここで示した態様に限定されることを意図しているものではなく、ここで開示した原理および新しい特徴と一致した最も広い範囲に一致させるべきである。 “例示的な”という用語は、“例として、インスタンスとして、あるいは例証として機能すること”を意味するように、ここでは排他的に使用している。“例示的な”としてここで記述した何らかの態様は、必ずしも、他の態様より好ましい、または、効果的であるとして解釈すべきではない。
【００９５】
したがって、ユニバーサル発見システムの態様をここに図示し、記述してきたが、それらの精神または不可欠な特性から逸脱することなく、態様に対してさまざまな変更を行うことができることを正しく認識するだろう。それゆえ、ここでの開示および記述は、これには限定されないが、下記の特許請求の範囲において述べる本発明の範囲を例示するものであることを意図している。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
［１］ピアツーピアオーバーレイネットワークを発見させるようにノードを動作させるための方法において、
前記ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出することと、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定することと、
前記少なくとも１つの通信リンクから選択される通信リンクを選択することと、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わることとを含む方法。
［２］前記決定することは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することを含む［１］記載の方法。
［３］前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定することは、オーバーレイデータベースから前記情報を取り出すことを含む［２］記載の方法。
［４］選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを発生させることをさらに含む［１］記載の方法。
［５］前記識別子は、ユニバーサルノードロケータ（ＵＮＬ）である［４］記載の方法。
［６］前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行することをさらに含む［４］記載の方法。
［７］選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得することをさらに含む［１］記載の方法。
［８］前記識別子は、ユニバーサルノードロケータ（ＵＲＬ）である［７］記載の方法。
［９］前記ＵＮＬを利用して、前記選択したオーバーレイネットワークと通信することをさらに含む［８］記載の方法。
［１０］前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである［１］記載の方法。
［１１］ピアツーピアオーバーレイネットワークを発見するための装置において、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するように構成されているトランシーバと、
プロセッサとを具備し、前記プロセッサは、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定し、
前記少なくとも１つの通信リンクから選択される通信リンクを選択し、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わるように構成されている装置。
［１２］前記プロセッサは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定するように構成されている［１１］記載の装置。
［１３］前記プロセッサは、オーバーレイデータベースから前記情報を取り出すように構成されている［１２］記載の装置。
［１４］前記プロセッサは、選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを発生させるように構成されている［１１］記載の装置。
［１５］前記識別子は、ユニバーサルノードロケータ（ＵＮＬ）である［１４］記載の装置。
［１６］前記プロセッサは、前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行するように構成されている［１４］記載の装置。
［１７］前記プロセッサは、選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得するように構成されている［１１］記載の装置。
［１８］前記識別子は、ユニバーサルノードロケータ（ＵＲＬ）である［１７］記載の装置。
［１９］前記プロセッサは、前記ＵＮＬを利用して、前記選択したオーバーレイネットワークと通信するように構成されている［１８］記載の装置。
［２０］前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである［１１］記載の装置。
［２１］ピアツーピアオーバーレイネットワークを発見するための装置において、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出する手段と、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定する手段と、
前記少なくとも１つの通信リンクから選択される通信リンクを選択する手段と、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わる手段とを具備する装置。
［２２］前記決定する手段は、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定する手段を備える［２１］記載の装置。
［２３］前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを決定する手段は、オーバーレイデータベースから前記情報を取り出す手段を備える［２２］記載の装置。
［２４］選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを発生させる手段をさらに具備する［２１］記載の装置。
［２５］前記識別子は、ユニバーサルノードロケータ（ＵＮＬ）である［２４］記載の装置。
［２６］前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを発行する手段をさらに具備する［２４］記載の装置。
［２７］選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを、前記ユニバーサルオーバーレイネットワークから取得する手段をさらに具備する［２１］記載の装置。
［２８］前記識別子は、ユニバーサルノードロケータ（ＵＲＬ）である［２７］記載の装置。
［２９］前記ＵＮＬを利用して、前記選択したオーバーレイネットワークと通信する手段をさらに具備する［２８］記載の装置。
［３０］前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである［２１］記載の装置。
［３１］ピアツーピアオーバーレイネットワークを発見するためのコンピュータプログラムプロダクトにおいて、
ノードが他のノードと通信できるようにする１つ以上の通信リンクを検出するための、プロセッサにより実行可能なコードと、
少なくとも１つの通信リンクを使用して、ユニバーサルオーバーレイネットワークにアクセス可能であることを決定するための、前記プロセッサにより実行可能なコードと、
前記少なくとも１つの通信リンクから選択される通信リンクを選択するための、前記プロセッサにより実行可能なコードと、
前記選択した通信リンクを使用して、前記ユニバーサルオーバーレイネットワークに加わるための、前記プロセッサにより実行可能なコードとを具現化するコンピュータ読取可能媒体を含むコンピュータプログラムプロダクト。
［３２］前記コードは、各リンクに関係するオーバーレイネットワークを識別する情報に基づいて、前記ユニバーサルオーバーレイネットワークにアクセス可能であるか否かを前記プロセッサに決定させるように構成されている［３１］記載のコンピュータ読取可能媒体。
［３３］前記コードは、オーバーレイデータベースから前記情報を前記プロセッサに取り出させるように構成されている［３２］記載のコンピュータ読取可能媒体。
［３４］前記コードは、選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを前記プロセッサに発生させるように構成されている［３１］記載のコンピュータ読取可能媒体。
［３５］前記識別子は、ユニバーサルノードロケータ（ＵＮＬ）である［３４］記載のコンピュータ読取可能媒体。
［３６］前記コードは、前記ユニバーサルオーバーレイネットワーク上で前記アドバタイズを前記プロセッサに発行させるように構成されている［３４］記載のコンピュータ読取可能媒体。
［３７］前記コードは、選択したオーバーレイネットワークに到達するためのブートストラップノードとして使用する、前記ユニバーサルオーバーレイ上のノードを識別する識別子を提供するアドバタイズを、前記ユニバーサルオーバーレイネットワークから前記プロセッサに取得させるように構成されている［３１］記載のコンピュータ読取可能媒体。
［３８］前記識別子は、ユニバーサルノードロケータ（ＵＲＬ）である［３７］記載のコンピュータ読取可能媒体。
［３９］前記コードは、前記プロセッサに、前記ＵＮＬを利用して、前記選択したオーバーレイネットワークと通信させるように構成されている［３８］記載のコンピュータ読取可能媒体。
［４０］前記ユニバーサルオーバーレイネットワークは、接続されているユニバーサルオーバーレイネットワークまたは接続されていないユニバーサルオーバーレイネットワークのうちの１つである［３１］記載のコンピュータ読取可能媒体。
【図１】
0005425939.tif 000002
【図２】
0005425939.tif 000003
【図３】
0005425939.tif 000004
【図４】
0005425939.tif 000005
【図５】
0005425939.tif 000006
【図６】
0005425939.tif 000007
【図７】
0005425939.tif 000008
【図８】
0005425939.tif 000009
【図９】
0005425939.tif 000010
【図１０】
0005425939.tif 000011