(57)【要約】  ピアツーピアオーバーレイネットワークをマージする方法および装置である。方法は、第２のオーバーレイネットワークからアドバタイズを受信することと、第２のオーバーレイネットワークのサイズを決定することと、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行することと、永続的ノード識別子が第２のオーバーレイネットワークの一部でない場合に、第２のオーバーレイネットワークに加わることとを含む。【選択図】    図４
2012520623.tif 000002
【特許請求の範囲】
【請求項１】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信することと、
前記第２のオーバーレイネットワークのサイズを決定することと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行することと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わることとを含む方法。
【請求項２】
信頼できるソースから前記永続的ノード識別子を取得することをさらに含む請求項１記載の方法。
【請求項３】
前記加わることは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信することを含み、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項１記載の方法。
【請求項４】
前記加わることは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わることを含む請求項１記載の方法。
【請求項５】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定することをさらに含む請求項１記載の方法。
【請求項６】
前記決定することは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得することを含む請求項１記載の方法。
【請求項７】
前記実行することは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することを含む請求項１記載の方法。
【請求項８】
前記第１のノードは、ポータブルデバイスである請求項１記載の方法。
【請求項９】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するように構成されているトランシーバと、
前記トランシーバに結合され、
前記第２のオーバーレイネットワークのサイズを決定するようにと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するようにと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
【請求項１０】
前記プロセッサは、信頼できるソースから前記永続的ノード識別子を取得するように構成されている請求項９記載の装置。
【請求項１１】
前記プロセッサは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信するように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項９記載の装置。
【請求項１２】
前記プロセッサは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わるように構成されている請求項９記載の装置。
【請求項１３】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定するように構成されているタイマーをさらに具備する請求項９記載の装置。
【請求項１４】
前記プロセッサは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得するように構成されている請求項９記載の装置。
【請求項１５】
前記プロセッサは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを実行するように構成されている請求項９記載の装置。
【請求項１６】
前記第１のノードは、ポータブルデバイスである請求項９記載の装置。
【請求項１７】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信する手段と、
前記第２のオーバーレイネットワークのサイズを決定する手段と、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行する手段と、
前記永続的ノード識別子が、前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
【請求項１８】
信頼できるソースから前記永続的ノード識別子を取得する手段をさらに具備する請求項１７記載の装置。
【請求項１９】
前記加わる手段は、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信する手段を備え、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項１７記載の装置。
【請求項２０】
前記加わる手段は、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わる手段を備える請求項１７記載の装置。
【請求項２１】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定する手段をさらに具備する請求項１７記載の装置。
【請求項２２】
前記決定する手段は、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得する手段を備える請求項１７記載の装置。
【請求項２３】
前記実行する手段は、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行する手段を備える請求項１７記載の装置。
【請求項２４】
前記第１のノードは、ポータブルデバイスである請求項１７記載の装置。
【請求項２５】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトは、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズを決定するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するための、プロセッサによって実行可能なコードと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを具現化するコンピュータ読み取り可能媒体を具備するコンピュータプログラムプロダクト。
【請求項２６】
前記コードは、信頼できるソースから前記永続的ノード識別子を前記プロセッサに取得させるように構成されている請求項２５記載のコンピュータ読み取り可能媒体。
【請求項２７】
前記コードは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを前記プロセッサに送信させるように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項２５記載のコンピュータ読み取り可能媒体。
【請求項２８】
前記コードは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記プロセッサに、前記第２のオーバーレイに加わえさせるように構成されている請求項２５記載のコンピュータ読み取り可能媒体。
【請求項２９】
前記コードは、振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を前記プロセッサに測定させるように構成されている請求項２５記載のコンピュータ読み取り可能媒体。
【請求項３０】
前記コードは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから前記プロセッサに取得させるように構成されている請求項２５記載のコンピュータ読み取り可能媒体。
【請求項３１】
前記コードは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを前記プロセッサに実行させるように構成されている請求項２５記載のコンピュータ読み取り可能媒体。
【請求項３２】
前記第１のノードは、ポータブルデバイスである請求項２５記載のコンピュータ読み取り可能媒体。
【請求項３３】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信することと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信することと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わることとを含む方法。
【請求項３４】
前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定することをさらに含む請求項９記載の方法。
【請求項３５】
前記加わることは、前記第１のオーバーレイネットワーク上で第２のリーブメッセージを送信することを含み、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項９記載の方法。
【請求項３６】
前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信することをさらに含む請求項９記載の方法。
【請求項３７】
前記第１のノードは、ポータブルデバイスである請求項９記載の方法。
【請求項３８】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するようにと、第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するように構成されているトランシーバと、
前記トランシーバに結合され、前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
【請求項３９】
前記プロセッサは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定するように構成されている請求項３８記載の装置。
【請求項４０】
前記プロセッサは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信するように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項３８記載の装置。
【請求項４１】
前記プロセッサは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信するように構成されている請求項３８記載の装置。
【請求項４２】
前記第１のノードは、ポータブルデバイスである請求項３８記載の装置。
【請求項４３】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信する手段と、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信する手段と、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
【請求項４４】
前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定する手段をさらに具備する請求項４３記載の装置。
【請求項４５】
前記加わる手段は、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信する手段を備え、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項４３記載の装置。
【請求項４６】
前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信する手段をさらに具備する請求項４３記載の装置。
【請求項４７】
前記第１のノードは、ポータブルデバイスである請求項４３記載の装置。
【請求項４８】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトは、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するための、プロセッサによって実行可能なコードと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するための、プロセッサによって実行可能なコードと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを具現化するコンピュータ読み取り可能媒体を具備するコンピュータプログラムプロダクト。
【請求項４９】
前記コードは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと前記プロセッサに決定させるように構成されている請求項４８記載のコンピュータ読み取り可能媒体。
【請求項５０】
前記コードは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で前記プロセッサに送信させるように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項４８記載のコンピュータ読み取り可能媒体。
【請求項５１】
前記コードは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから、前記プロセッサに送信させるように構成されている請求項４８記載のコンピュータ読み取り可能媒体。
【請求項５２】
前記第１のノードは、ポータブルデバイスである請求項４８記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【米国特許法第１１９条の下での優先権の主張】
【０００１】
本特許出願は、「構成されているピアツーピアオーバーレイネットワークをマージする方法および装置」と題し、２００９年３月１１日に出願された仮出願番号第６１／１５９，３７１号に対して優先権を主張し、この出願は、本発明の譲受人に譲渡され、ここでの参照によりここに明確に組み込まれている。
【背景】
【０００２】
分野
本出願は、一般的に、オーバーレイネットワークの動作に関連し、さらに詳細には、ピアツーピアオーバーレイネットワークをマージする方法および装置に関連している。
【０００３】
背景
サーバベースのインフラストラクチャが欠けた状態で、メンバーノードがサービスを取得するネットワークを、ここでは、「ピアツーピアオーバーレイネットワーク」（または、「ｐ２ｐオーバーレイネットワーク」または「オーバーレイネットワーク」または単に「オーバーレイ」）と呼ぶ。ピアツーピアオーバーレイネットワークは、インターネットプロトコル（ＩＰ）を利用するネットワークのような基礎となるネットワークのトップ上に築くことができる。オーバーレイネットワークは、論理ルーティング構造中にともに加わる、数ノードから数千ノードまでからなることができる。個々のノードは、オーバーレイの、ルーティング態様および維持態様に参加することが多い。
【０００４】
典型的に、オーバーレイネットワークは、オーバーレイプロトコルによって規定されているような登録およびジョイニングプロセスを通して形成される。いったん、ノードがオーバーレイに加わると、オーバーレイ中のノードの可能なすべてのペアの間で通信できるようにするために、ノードは、ルーティング空間のある部分の所有権を仮定し、ルーティング機能を実行する。特に、構成されているＤＨＴ（分散ハッシュテーブル）に基づくオーバーレイネットワークでは、ノードは、オーバーレイ中に記憶されているデータ項目のある部分の所有権も仮定する。
【０００５】
しかしながら、このようなネットワークに対するアドバタイズの限定された範囲が原因で、オーバーレイネットワークは、ときには、ディスジョイントな様態で形成するときもある。このようなシチュエーションでは、それぞれのディスジョイントオーバーレイネットワーク中の参加ノードが、より完全なセットのノードのリソースおよびサービスに対するアクセスを持つことができるように、このようなオーバーレイネットワークを１つのより大きいオーバーレイネットワークにマージすることが重要である。残念なことに、従来システムは、オーバーレイネットワークをマージするための効率的なメカニズムを提供しない。例えば、ノードが、第１のオーバーレイネットワークから第２のオーバーレイネットワークにマージされたとき、従来システムは、典型的に、新しいノード識別子を割り当てる。データ所有権は、ノード識別子に依存しており、マージングの際に変わるので、これは、結果的に、大量のオーバーヘッドメッセージングおよびデータ項目の移動を招く。
【０００６】
したがって、オーバーレイネットワークが、マージして、それゆえ、従来のシステムに関係する問題を防ぐことを可能にするように動作するシンプルで効率的なメカニズムを有することが好ましいだろう。
【概要】
【０００７】
１つ以上のインプリメンテーションでは、オーバーレイネットワークがマージすることを可能にするように動作し、これにより、より完全なセットのノードのリソースおよびサービスへのアクセスを参加ノードに提供する方法および装置を含むオーバーレイマージング（ＯＭ）システムを提供する。
【０００８】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法を提供する。方法は、第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信することと、第２のオーバーレイネットワークのサイズを決定することと、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、第１のノードに関係する永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行することと、永続的ノード識別子が第２のオーバーレイネットワークの一部でないとセルフサーチが決定した場合に、第２のオーバーレイネットワークに加わることとを含む。
【０００９】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置を提供する。装置は、第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するように構成されているトランシーバと、トランシーバに結合され、第２のオーバーレイネットワークのサイズを決定するようにと、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、第１のノードに関係する永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行するようにと、永続的ノード識別子が第２のオーバーレイネットワークの一部でないとセルフサーチが決定した場合に、第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する。
【００１０】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置を提供する。装置は、第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信する手段と、第２のオーバーレイネットワークのサイズを決定する手段と、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、第１のノードに関係する永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行する手段と、永続的ノード識別子が、第２のオーバーレイネットワークの一部でないとセルフサーチが決定した場合に、第２のオーバーレイネットワークに加わる手段とを具備する。
【００１１】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータプログラムプロダクトを提供する。コンピュータプログラムプロダクトは、第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するための、プロセッサによって実行可能なコードと、第２のオーバーレイネットワークのサイズを決定するための、プロセッサによって実行可能なコードと、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、第１のノードに関係する永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行するための、プロセッサによって実行可能なコードと、永続的ノード識別子が第２のオーバーレイネットワークの一部でないとセルフサーチが決定した場合に、第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを具現化するコンピュータ読み取り可能媒体を具備する。
【００１２】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法を提供する。方法は、第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信することと、第２のオーバーレイネットワークに対する第１のアドバタイズを第２のノードから受信することと、第２のノードを利用して、第２のオーバーレイネットワークに加わることとを含む。
【００１３】
態様では、第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置を提供する。装置は、第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するようにと、第２のオーバーレイネットワークに対する第１のアドバタイズを第２のノードから受信するように構成されているトランシーバと、トランシーバに結合され、第２のノードを利用して、第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する。
【００１４】
他の態様は、以下で述べた、図面の簡単な説明、説明、特許請求の範囲のレビューの後に明らかになるだろう。
【図面の簡単な説明】
【００１５】
ここに記述した前述の態様は、付随する図面とともに考慮するとき下記の記述への参照により、さらに容易に明らかになるだろう。  
【図１】図１は、オーバーレイマージングシステムの動作を図示するネットワークを示している。
【図２】図２は、オーバーレイマージングシステムによってマージング動作が実行された後の、図１のネットワークを示している。
【図３】図３は、オーバーレイマージングシステムにしたがって構築した例示的なＯＭ装置を示している。
【図４】図４は、オーバーレイマージングシステムにしたがった、オーバーレイネットワークをマージする例示的な方法を示している。
【図５】図５は、オーバーレイマージングシステムにしたがって構築した例示的なオーバーレイマージング装置を示している。
【図６】図６は、オーバーレイマージングシステムにしたがって構築した例示的なＯＭ装置を示している。
【図７】図７は、オーバーレイマージングシステムにしたがって構築した例示的なＯＭ装置を示している。
【説明】
【００１６】
下記の説明は、オーバーレイマージングシステムの、態様およびインプリメンテーションを記述している。オーバーレイマージングシステムは、オーバーレイネットワークが、マージすることを可能にするように動作し、これにより、より完全なセットのノードのリソースおよびサービスへのアクセスを参加ノードに提供する。
【００１７】
図１は、オーバーレイマージングシステムの動作を図示するネットワーク１００を示している。ネットワーク１００は、インターネットプロトコルネットワークのような何らかのタイプのネットワークを含む基礎となるネットワーク１０２を含む。インターネットプロトコルネットワークは、そのネットワーク中で潜在的にルーティング可能なホスト間でのホストツーホスト通信を可能にする。基礎となるネットワーク１０２を、単一のエンティティとして示しているが、基礎となるネットワークは、ＷＡＮ、ＬＡＮ、ワイヤレスネットワーク、および／または他の何らかのタイプのネットワークのような、任意の数のネットワークまたは任意のタイプのネットワークを含んでいてもよい。２つのオーバーレイネットワーク間に接続性のポイントが存在する限りは、異なる基礎となるネットワーク上に２つのオーバーレイネットワークが存在する場合にでさえ、マージングシステムが２つのオーバーレイネットワークをマージするように動作可能であることにも留意すべきである。
【００１８】
第１のピアツーピアオーバーレイネットワーク１０４は、基礎となるネットワーク１０２のノードのサブセットを含み、基礎となるネットワーク１０２のサービスを利用して、それらのノードが通信することを可能にするように動作する。ノードは、デスクトップコンピュータ、ノートブックコンピュータ、移動体電話機、または、ノードが他のノードと通信することを可能にする通信インターフェースを持つ他の何らかのデバイスのような任意のタイプのワイヤードまたはワイヤレスデバイスを含む。ピアツーピアオーバーレイネットワーク１０４では、ノードは、通信リンクにより接続され、構成されているＤＨＴによって形成されているもののような論理的円形ルーティングパスを形成している。また、通信リンクは、基礎となるネットワーク１０２により提供される安全なトンネルであってもよい。ピアツーピアオーバーレイネットワーク１０４は、基礎となるネットワーク１０２のものとは異なる、許可および対話のセットにより動作する。ピアツーピアオーバーレイネットワーク１０４は、任意のルーティングパターンを可能にする何らかのトポロジーまたはアーキテクチャを有していることがあり、この何らかのルーティングパターンは、図１中に示しているルーティングに限定されないことにも留意すべきである。
【００１９】
第２のピアツーピアオーバーレイネットワーク１０６は、基礎となるネットワーク１０２のノードのサブセットを含み、基礎となるネットワーク１０２のサービスを利用して、それらのノードが通信することを可能にするように動作する。ピアツーピアオーバーレイネットワーク１０６は、基礎となるネットワーク１０２のものとは異なる、許可および対話のセットにより動作する。ピアツーピアオーバーレイネットワーク１０６は、何らかのルーティングパターンを可能にする何らかのトポロジーまたはアーキテクチャを有していてもよく、この何らかのルーティングパターンは、図１中に示しているルーティングに限定されないことにも留意すべきである。
【００２０】
この記述のために、オーバーレイネットワーク１０４および１０６は、同じ名前を持つと、および／または、同じ意図または目的のために生成されると、仮定する。例えば、ビデオクリップ、トラベル情報、ピクチャを参加ノードが交換することを可能にするために、または、他の何らかの目的のために、オーバーレイ１０４および１０６は生成されている。オーバーレイ生成プロセスは、結果的に、２つの別個のオーバーレイを生成させることになる。より多くの完全なセットのノードのリソースおよびサービスに参加ノードがアクセスできるように、これらのオーバーレイがマージすることが好ましいだろう。以下で記述するように、オーバーレイマージングシステムのインプリメンテーションは、オーバーレイネットワーク１０４および１０６が、シンプルであるが効率的な方法でマージすることを可能にする。
【００２１】
永続的ノード識別子
オーバーレイネットワーク１０４および１０６中のノードのそれぞれに、永続的ノード識別子が割り当てられる。例えば、オーバーレイネットワーク１０４のノードに対する永続的ノード識別子は、（４、７、１０、および２０）であり、オーバーレイネットワーク１０６のノードに対する永続的ノード識別子は、（２２、３０、３２、３５、３８、および４０）である。信頼できるソースによって、永続的ノード識別子がそれぞれのノードに割り当てられる。例えば、最初にノードがアクティブ化されたとき、識別子はノードの製造業者によって割り当てられてもよく、または、信頼できる第三者が永続的ノード識別子を割り当ててもよい。それぞれのノードは、その永続的ノード識別子を使用して、任意のオーバーレイネットワーク上に加わったり参加したりする。
【００２２】
したがって、経時的にノードが一部となり得るオーバーレイの異なるインスタンスにわたって、永続的ノード識別子は有効である。マージの間に、ノード識別子を変えることが必要である場合、大量のデータを移動させる必要があるであろうことは、ほぼ確実であることに留意されたい。オーバーレイの特定のインスタンスにもかかわらず、オーバーレイに対するノード識別子が有効のままであることを確実にすることによって；マージプロセスの間のデータの移動を減少させることができる。
【００２３】
マージングを促進するために、それぞれのノードにおいて、オーバーレイマージング装置を提供する。説明を簡潔かつ簡単にするために、ノード４においてのみＯＭ装置１０８を示している。しかしながら、オーバーレイネットワーク１０４および１０６のそれぞれのノードが、ＯＭ装置を具備し得ることに留意すべきである。動作の間、ＯＭ装置１０８は、マージングシステムにしたがった以下の機能のうちの１つ以上を提供するように動作する。
【００２４】
１．アドバタイズを受信  −  オーバーレイ１０６のアドバタイズを含むリンクローカルブロードキャストを、ノード４がノード２２から受信する。例えば、それぞれのノードが、その現在のオーバーレイネットワークのオーバーレイアドバタイズを周期的に（約６０秒ごとに）送り出す。アドバタイズは、オーバーレイを識別し、アドバタイズされたオーバーレイネットワークのサイズのノードの推定値を含む。
【００２５】
２．ルーティング状態をチェック  −  ノード４に関係するルーティング状態情報中に、送信ノード（すなわち、ノード２２）があるか否かを決定するチェックを実行する。そうでない場合に、サイズ比較を実行する。
【００２６】
３．サイズ比較  −  アドバタイズされたオーバーレイのサイズが現在のオーバーレイのサイズよりも大きいか否かを決定するために、サイズ比較を実行する。例えば、ＯＭ装置１０８が、任意の適切なアルゴリズムを利用して、ノード４に現在関係するオーバーレイのネットワークサイズを推定する。アドバタイズされたオーバーレイが現在のオーバーレイよりも大きい場合に、セルフサーチを実行する。
【００２７】
４．セルフサーチ  −  アドバタイズされたオーバーレイ上で、ノード４によってセルフサーチを開始する。例えば、アドバタイズされたオーバーレイ上での、ノード４に対するルックアップをノード２２を使用して実行する。これは、ノード４が、メッセージをノード４自体にルーティングし、このメッセージがオーバーレイからノード４に戻るか否かを確かめることによって達成される。これは、ノード４がノード２２と同じオーバーレイ上に存在するか否かを決定する効果がある。アドバタイズされたオーバーレイネットワーク上でノード４が利用可能でないとセルフサーチが決定した場合、ノード２２によって示しているアドバタイズされたオーバーレイネットワークは、ノード４に関係する現在のオーバーレイネットワークと異なることをＯＭ装置１０８は知る。
【００２８】
５．フラグを有するリーブメッセージを送信  −  １つのインプリメンテーションでは、ノード４がオーバーレイ１０４を離れていることを示すために、リーブメッセージ１１２を、ノード４からオーバーレイ１０４中のノードに送信する。リーブメッセージ１１２は、離れる理由を示しているフラグを含む。このメッセージは、ノード４によって、オーバーレイ１０４中の複数ノードに送信できることに留意されたい。例えば、１０２がＩＰネットワークであるケースでは、ＩＰアドレスマッピングに対するノード識別子を使用するなどによって、例えば、ノード４は、ノード４がルーティング状態を維持している、オーバーレイ１０４中のその直近の論理的に隣接しているものにリーブを送ることができる。別のインプリメンテーションでは、ノード４は、ネットワーク識別子マッピングに対するノード識別子を知っている、オーバーレイ１０２中の他のノードにもメッセージを送ることができる。典型的に、これは、オーバーレイネットワークサイズの増大に伴ってスケーラブルでないので、オーバーレイネットワーク中のノードは、どのように、オーバーレイ中の他のすべてのノードと直接的に通信するのか知らない。１つのインプリメンテーションでは、別のオーバーレイネットワークとマージするためにノード４がオーバーレイ１０４を離れていることを、フラグは示している。オーバーレイ１０４上の他のノードによってこの情報を使用して、オーバーレイ１０４上の他のノードも、アドバタイズされたオーバーレイネットワークとマージして、セルフサーチのオーバーヘッドを防ぐか否かを決定することができる。本文書の別のセクションにおいて、リーブメッセージ処理のより詳細な記述を提供する。
【００２９】
６．アドバタイズされたネットワークとのマージ  −  ノード４が、アドバタイズされたオーバーレイネットワークに加わる。したがって、上記で実行したサイズ比較は、より小さいオーバーレイネットワークからのノードが、より大きいオーバーレイネットワークに加わることが確実になるように動作する。より数少ないノードをマージして、単一のオーバーレイネットワークを形成して、このようなマージング動作が、データ移動のオーバーヘッドを減少させる。特定のジョイニンングアルゴリズムは、オーバーレイネットワーク中で使用している特定のルーティングアルゴリズムに依存する。ノード４は、例えば、（数字の識別子空間中で次に大きいノードとして後継を規定する）後継ノードにジョインメッセージをルーティングしてもよい。
【００３０】
７．ネットワークをアドバタイズ  −  加わった後に、ノードによって、ネットワーク１０６がアドバタイズされる。例えば、マージが完了した後、ノード４がネットワーク１０６をアドバタイズする。
【００３１】
したがって、オーバーレイマージングシステムは、第１のオーバーレイネットワークのノードが、第２のより大きなオーバーレイネットワークとマージすることを可能にするように動作する。ノード４を参照して記述したが、これらのノードすべてがオーバーレイネットワーク１０６とマージして、単一のオーバーレイネットワークを形成するように、上記の動作は、オーバーレイネットワーク１０４中のすべてのノードによって実行できる。より小さいオーバーレイネットワークのノードをより大きいオーバーレイネットワークにマージすることから、データ移動のオーバーヘッドが減少する。
【００３２】
図２は、図１を参照して記述したような、オーバーレイマージングシステムの動作の後のネットワーク１００を示している。現在、ノード４が、オーバーレイネットワーク１０６中にマージされている。現在、オーバーレイネットワーク１０４は、サイズが減少している。永続的ノード識別子を使用することから、ノード４によって所有されるデータの一部が、すなわち、この特定の例では数字の識別子４０と数字の識別子４との間で名付けられるデータが、新しいオーバーレイ中のノードに残るので、マージングプロセスに必要とされる、データ移動のオーバーヘッド量は最小限に抑えられている。
【００３３】
１つのインプリメンテーションでは、オーバーレイネットワーク１０４中でノード４によって送信されたリーブメッセージ１１２は、ノード２０によって受信される。ノード２０は、ＯＭ装置２０２を備えている。ノード２０におけるＯＭ装置２０２は、以下の動作のうちの１つ以上を実行する。
【００３４】
１．リーブメッセージを受信する  −  ノード４から送信されたリーブメッセージ１１２を、ノード２０が受信する。別のオーバーレイネットワークとマージするためにオーバーレイネットワーク１０４をノード４が離れたことを示しているフラグを、リーブメッセージ１１２は含む。
【００３５】
２．アドバタイズを受信する  −  オーバーレイネットワーク１０６をアドバタイズするアドバタイズを、ノード２０がノード４から受信する。例えば、ノード４がオーバーレイネットワーク１０６に加わった後、ノード４は、周期的に（約６０秒ごとに）オーバーレイネットワーク１０６をアドバタイズするオーバーレイアドバタイズを送り出す。アドバタイズは、オーバーレイネットワーク１０６を識別し、オーバーレイネットワーク１０６のサイズの推定値を含む。アドバタイズは、ノード４と以前に確立した通信リンクを利用して、ノード２０によって受信することができる。典型的に、このようなアドバタイズは、ブロードキャストされるので、アドバタイズを受信することは、典型的に、ノードに物理的に近接していることを必然的に伴うであろうことに留意されたい。
【００３６】
３．フラグを有するリーブメッセージを送信  −  １つのインプリメンテーションでは、ＯＭ装置２０２は、オーバーレイ１０６とマージするためにノード４がオーバーレイ１０４を離れたことを決定するように動作する。オーバーレイネットワーク１０６が、オーバーレイ１０４から離れており、オーバーレイ１０４と異なっていることをノード４は既に決定しているので、ＯＭ装置２０２は、オーバーレイネットワーク１０６上での、ノード２０によるセルフサーチを実行する必要はないと決定する。したがって、ノード２０もオーバーレイネットワーク１０６とマージすべきであると、ＯＭ装置２０２は決定する。ＯＭ装置２０２は、リーブメッセージ２０６を発生させる。リーブメッセージ２０６は、ノード２０がオーバーレイ１０４を離れていることを示すために、ノード２０からオーバーレイ１０４中のノードに対して送信される。リーブメッセージ２０６は、離れる理由を示すフラグを含む。１つのインプリメンテーションでは、フラグは、別のオーバーレイネットワークとマージするために、ノード２０がオーバーレイ１０４を離れていることを示す。リーブメッセージは、ノード２０のオーバーレイネットワークが他のオーバーレイネットワークよりも小さく、リーブメッセージ中にサイズ推定値を含ませる必要がない事実を意味している。リーブメッセージは、ノード４が加わる新しいオーバーレイのコンフィギュレーションデータも含む。オーバーレイコンフィギュレーションデータは、例えば、オーバーレイの名前を含むことができる。
【００３７】
４．アドバタイズされたネットワークとのマージ  −  ノード２０は、ノード４へのその接続を利用して、アドバタイズされたオーバーレイネットワーク１０６に加わる。
【００３８】
５．ネットワークをアドバタイズ  −  加わった後に、ノード２０によって、オーバーレイネットワーク１０６がアドバタイズされる。例えば、マージが完了した後、ノード２０がネットワーク１０６をアドバタイズする。
【００３９】
ノード２０が、オーバーレイネットワーク１０６中のノード２２からアドバタイズ２０６を直接的に受信することがあることにも留意すべきである。ノード２０におけるＯＭ装置２０２は、オーバーレイネットワーク１０６に加わるために、上述したノード４によって実行される動作に類似した動作も実行することができる。ノード２０が（加わるオーバーレイとしてオーバーレイ１０６を指定している）リーブをノード４から受信し、セルフサーチを実行せずに、ノード２２を通してオーバーレイ１０６に加わるであろう事実を、ノード２０が利用するだろうことに留意されたい。
【００４０】
図３は、オーバーレイマージングシステムにしたがって構築された例示的なＯＭ装置３００を示している。例えば、ＯＭ装置３００は、図１中で示しているＯＭ装置１０８または図２中で示している２０２のように使用するのに適している。ＯＭ装置３００は、データバス３１０を使用して通信するようにすべて結合されている、プロセッサ３０２と、メモリ３０４と、トランシーバ３０６と、タイマー３０８とを具備している。ＯＭ装置３００は、１つのインプリメンテーション過ぎず、他のインプリメンテーションも可能性があることに留意すべきである。
【００４１】
トランシーバ３０６は、ハードウェアおよび／またはハードウェア実行ソフトウェアを備えており、ハードウェアおよび／またはハードウェア実行ソフトウェアは、ＯＭ装置３００が、データまたは他の情報を第１のピアツーピアオーバーレイネットワーク上のノードと通信することを可能にするように動作する。トランシーバ３０６は、１つ以上の通信リンク３１０を通して通信するための送信論理および受信論理を備えている。トランシーバ３０６は、１つ以上の通信リンクを使用して、第２のピアツーピアオーバーレイネットワーク上のノードに対して／第２のピアツーピアオーバーレイネットワーク上のノードから、アドバタイズおよび／または他の情報を送信または受信するようにも動作可能である。例えば、通信リンクは、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または、他の何らかのタイプの通信リンクのようなワイヤードまたはワイヤレスリンクを含む。
【００４２】
メモリ３０４は、マージングシステムの動作中に情報の記憶および取出を可能にするように動作可能な何らかの適切な記憶デバイスを含んでいる。メモリ３０４は、永続的ノード識別子３１２を記憶するように動作し、永続的ノード識別子３１２は、１つ以上のオーバーレイネットワークに加わったり参加したりするノードによって使用される。１つのインプリメンテーションでは、永続的ノード識別子３１２は、製造の間で、または、信頼できる第三者によって提供される。例えば、１つのインプリメンテーションでは、プロセッサが、信頼できるソースからまたは信頼できる第三者から、永続的ノード識別子を取得する。
【００４３】
メモリ３０４は、現在のオーバーレイサイズパラメータ３１４も備えている。何らかの適切な方法またはアルゴリズムを使用して、現在のオーバーレイサイズを決定し、メモリ３０４中に結果を記憶する。アルゴリズムを周期的に反復し、それにしたがって、メモリ中の結果を更新してもよい。
【００４４】
メモリ３０４は、マージングアルゴリズム３１６を記憶するようにも動作し、マージングアルゴリズム３１６は、ここで記述したオーバーレイマージングシステムの機能を提供するために、プロセッサ３０２によって実行可能な命令またはコードを含む。
【００４５】
タイマー３０８は、ハードウェアおよび／またはハードウェア実行ソフトウェアを備え、ハードウェアおよび／またはハードウェア実行ソフトウェアは、プロセッサ３０２から受け取った時間パラメータに基づいて、バックオフ時間間隔を測定するように動作する。例えば、時間パラメータは、カウンタを初期化するために使用するカウントダウン値を含む。カウントダウン値は、タイマー３０８によって測定されることになる特定のバックオフ時間間隔に対応する。したがって、プロセッサ３０２が、タイマー３０８を設定して、何らかの所望のバックオフ時間間隔を測定させてもよい。１つのインプリメンテーションでは、プロセッサ３０２は、バックオフ時間間隔がランダムになるように構成するための時間パラメータを発生させる。バックオフ時間間隔を測定したとき、タイマー３０８は、プロセッサ３０２に対してタイマーの満了を示す。例えば、タイマー３０８は、特定のバックオフ時間間隔を測定し、その終わりにおいて、プロセッサ３０２は、その終わりが知らされて、この後、オーバーレイマージングシステムにしたがって、他の動作を実行するように動作する。バックオフ時間間隔の使用のさらなる説明を、以下で提供する。
【００４６】
プロセッサ３０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリエレメント、および／またはハードウェア実行ソフトウェアのうちの少なくとも１つを含む。プロセッサ３０２は、アドバタイズを受信および送信し、リーブメッセージを送信し、永続的ノード識別子３１２を使用して、オーバーレイネットワーク上に加わったり、オーバーレイネットワークに参加したりするように動作する。１つのインプリメンテーションでは、プロセッサ３０２は、ＯＭ装置３００のエレメントを制御するために、マージングアルゴリズム３１６のコードを実行して、ここで記述したようなオーバーレイマージングシステムの機能を実行する。
【００４７】
１つのインプリメンテーションでは、オーバーレイマージングシステムは、１つ以上のプログラム命令（「命令」）、あるいは、コンピュータ読み取り可能媒体上に記憶されている、または、コンピュータ読み取り可能媒体上に具現化されている「コード」のセットを有する、コンピュータプログラムプロダクトを含む。少なくとも１つのプロセッサ、例えば、プロセッサ２０２によりコードが実行されるとき、これらのプロセッサの実行は、ＯＭ装置３００に、ここで記述するオーバーレイマージングシステムの機能を提供させる。例えば、コンピュータ読み取り可能媒体は、フロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、あるいは、ＯＭ装置３００にインターフェースする他の何らかのタイプのメモリデバイスまたはコンピュータ読み取り可能媒体を含む。別の態様では、外部デバイスまたは通信ネットワークリソースから、ＯＭ装置３００中にコードのセットをダウンロードしてもよい。コードのセットは、実行されるとき、ここで記述するような、オーバーレイマージングシステムの態様を提供するように動作する。
【００４８】
図４は、オーバーレイマージングシステムにしたがった、オーバーレイネットワークをマージングする例示的な方法４００を示している。明確にするために、図３中で示しているＯＭ装置３００を参照して、以下で方法４００を記述する。例えば、ＯＭ装置３００は、第１のオーバーレイネットワーク中のノードにおいて位置付けられており、第２のオーバーレイネットワークとマージするために以下の機能を実行する。１つのインプリメンテーションでは、プロセッサ３０２は、ＯＭ装置３００を制御するために、１つ以上のセットのコードを実行し、以下で記述した機能を実行する。
【００４９】
ブロック４０２では、第２のオーバーレイネットワーク中のノードからアドバタイズを受信する。１つのインプリメンテーションでは、トランシーバ３０６が、アドバタイズを受信するように動作する。
【００５０】
ブロック４０４では、アドバタイズを送信するノードが、第１のオーバーレイネットワークに関係するルーティング状態にあるか否かについて決定を行う。１つのインプリメンテーションでは、プロセッサ３０２が、ルーティング状態を維持し、アドバタイズを送信するノードが第１のオーバーレイネットワークに関係するルーティング状態にあるか否かを決定する。ノードがルーティング状態にある場合に、方法は終了する。ノードがルーティング状態にない場合に、方法は、ブロック４０６に進む。
【００５１】
ブロック４０６では、バックオフ時間間隔を測定する。バックオフ時間間隔は、ランダムな時間間隔とすることができる。このランダムな時間間隔は、さらなる処理の前に遅延を提供するために測定され、これにより、マージング機能を同時に試行している可能性があるノード間の衝突を防ぐ。例えば、異なるオーバーレイネットワーク上の２つのノードが、互いのアドバタイズをほぼ同時に受信し、同時に互いのオーバーレイネットワークにマージするか否かを決定しようと試行するかもしれない。したがって、振動するマージングの動きが生じる可能性がある。この潜在的な衝突を防ぐために、それぞれのノードでは、ランダム化されたバックオフ時間間隔が使用され、これにより、それぞれのノードは、マージング動作を試行する前に、選択された時間間隔を待つことになる。したがって、１つのノードは、他のものより前に動作する機会があるだろう。振動する動きをなくすために、これは、マージングオーバーレイネットワークがサイズの面で近いときに動作する。１つのインプリメンテーションでは、プロセッサ３０２が、タイマー３０８を制御して、バックオフ時間間隔を測定する。
【００５２】
ブロック４０８では、第１のオーバーレイネットワークのサイズを決定するために、サイズ決定を実行する。例えば、プロセッサ３０２が、第１のオーバーレイネットワークのサイズを決定するための任意の所望のアルゴリズムを実行するように動作する。
【００５３】
ブロック４１０では、アドバタイズされた（すなわち、第２の）オーバーレイネットワークが第１のオーバーレイネットワークよりも大きいか否かについて決定を行う。例えば、プロセッサ３０２が、第１のオーバーレイネットワークのサイズ決定を、受信したアドバタイズから取得した、アドバタイズされたオーバーレイネットワークのサイズと比較する。アドバタイズされたオーバーレイネットワークが第１のオーバーレイネットワークよりも大きくない場合に、方法は、ブロック４１２に進む。アドバタイズされたオーバーレイネットワークが第１のオーバーレイネットワークよりも大きい場合に、方法は、ブロック４１４に進む。
【００５４】
ブロック４１２では、アドバタイズされたオーバーレイネットワークが、サイズの面で第１のオーバーレイネットワークと実質的に等しいか否かについて決定を行う。プロセッサ３０２が、この決定を行う。アドバタイズされたオーバーレイネットワークが、サイズの面で第１のオーバーレイネットワークと実質的に等しい場合、方法は、ブロック４１６に進む。アドバタイズされたオーバーレイネットワークが、サイズの面で第１のオーバーレイネットワークと実質的に等しくない場合に、方法は終了する。
【００５５】
ブロック４１６では、確率基準を満たしているか否かについて決定を行う。１つのインプリメンテーションでは、第１のオーバーレイネットワークのサイズが、アドバタイズされたオーバーレイネットワークのサイズとほぼ同じである場合に、マージングが行われるか否かを制御するために、選択された確率基準を確立する。任意の適切な確率基準を確立してもよい。プロセッサ３０２が、確率基準を維持し、この決定を行うように動作する。確率基準を満たしている場合に、方法は、ブロック４１４に進む。確率基準を満たしていない場合に、方法は、終了する。
【００５６】
ブロック４１４では、永続的ノード識別子にアクセス可能か否かを決定するために、アドバタイズされたネットワーク上でセルフサーチを実行する。１つのインプリメンテーションでは、プロセッサ３０２は、第１のオーバーレイネットワーク中のノードの永続的ノード識別子を使用して、アドバタイズされたオーバーレイネットワーク上のそのノードにアクセスしようと試行する。アドバタイズされたネットワーク上で、永続的ノード識別子にアクセス可能である場合に、プロセッサ３０２によってアクセス試行を受け取るだろう。
【００５７】
ブロック４１８では、永続的ノード識別子にアクセス可能か否かについて決定を行う。アドバタイズされたネットワーク上で永続的ノード識別子が位置付けれらている場合に、プロセッサ３０２によってアクセス試行を受け取るだろう。永続的ノード識別子にアクセス可能である場合に、方法は、終了する。永続的ノード識別子にアクセス可能でない場合に、方法は、ブロック４２０に進む。
【００５８】
ブロック４２０では、第１のオーバーレイネットワーク上でリーブメッセージを送信する。１つのインプリメンテーションでは、プロセッサ３０２が、トランシーバ３０６を制御して、リーブメッセージを送信する。リーブメッセージは、ノードが離れている理由が別のオーバーレイネットワークとマージするためであることを示しているフラグを含む。このリーブメッセージは、より小さいオーバーレイネットワーク中の他のノードが、より大きいオーバーレイネットワークに加わるのを開始するためのトリガとして機能する。２つのオーバーレイネットワークがマージされるまで、このプロセスは続く。
【００５９】
ブロック４２２では、アドバタイズされたオーバーレイネットワークに加わる。１つのインプリメンテーションでは、第１のオーバーレイネットワーク中のノードが、アドバタイズされたオーバーレイネットワークに加わることができるように、プロセッサ３０２は、トランシーバ３０６を制御して、アドバタイズを送信するノードと通信する。
【００６０】
ブロック４２４では、加わったオーバーレイネットワークをアドバタイズする。１つのインプリメンテーションでは、プロセッサ３０２が、トランシーバ３０８を制御して、新しく加わったオーバーレイネットワークをアドバタイズするアドバタイズを送信する。
【００６１】
したがって、ノードが、第２のオーバーレイネットワークとマージできるようにするために、第１のオーバーレイネットワーク中のノードにおいて位置付けられているＯＭ装置によって、方法４００を実行することができる。方法４００は、１つのインプリメンテーションに過ぎず、方法４００の動作を再構成できること、またはそうでなければ、さまざまなインプリメンテーションの範囲内で修正できることに留意すべきである。したがって、他のインプリメンテーションも可能性がある。
【００６２】
図５は、オーバーレイマージングシステムにしたがった、オーバーレイネットワークをマージングする例示的な方法５００を示している。明確にするために、図３中で示しているＯＭ装置３００を参照して、方法５００を以下で記述する。例えば、ＯＭ装置３００は、第１のオーバーレイネットワーク中の第１のノードにおいて位置付けられており、第２のオーバーレイネットワークに加わるように以下の機能を実行する。１つのインプリメンテーションでは、プロセッサ３０２が、ＯＭ装置３００を制御するために、１つ以上のセットのコードを実行して、以下で記述した機能を実行する。
【００６３】
ブロック５０２では、第１のオーバーレイネットワーク中の第２のノードからリーブメッセージを受信する。１つのインプリメンテーションでは、トランシーバ３０６が、リーブメッセージを受信し、そのリーブメッセージをプロセッサ３０２に渡す。
【００６４】
ブロック５０４では、第２のオーバーレイネットワークをアドバタイズするアドバタイズを、第２のノードから受信する。１つのインプリメンテーションでは、トランシーバ３０６がリーブメッセージを受信し、そのリーブメッセージをプロセッサ３０２に渡す。
【００６５】
ブロック５０６では、受信したアドバタイズに基づいて、第２のオーバーレイネットワークが第１のオーバーレイネットワークよりも大きいという決定を行う。例えば、第２のノードは、第１のオーバーレイネットワークを離れて、現在、第２のオーバーレイネットワークをアドバタイズしているので、第２のオーバーレイネットワークが、第１のオーバーレイネットワークよりも大きいことを第２のノードが決定し、第２のノードが第２のオーバーレイネットワークに加わったことが決定される。プロセッサ３０２が、この決定を行う。
【００６６】
ブロック５０８では、第１のオーバーレイネットワーク上で、第２のリーブメッセージを送信する。例えば、第１のオーバーレイネットワーク上の第１のノードが、離れる理由を示しているフラグを含む第２のリーブメッセージを送信する。１つのインプリメンテーションでは、プロセッサ３０２が、リーブメッセージを発生させ、そしてトランシーバ３０６を制御して、第１のオーバーレイネットワーク上でリーブメッセージを送信する。
【００６７】
ブロック５１０では、第１のノードが、第２のノードを利用して、第２のオーバーレイネットワークに加わる。１つのインプリメンテーションでは、第２のオーバーレイネットワークに加わるために、プロセッサ３０２が、トランシーバ３０６を制御して、第２のノードと通信する。
【００６８】
ブロック５１２では、第１のノードによって、第２のオーバーレイネットワークに対するアドバタイズを送信する。１つのインプリメンテーションでは、プロセッサ３０２が、トランシーバ３０６を制御して、第２のオーバーレイネットワークをアドバタイズするアドバタイズを送信する。
【００６９】
したがって、第２のノードを利用して、第２のオーバーレイネットワークにノードが加わることができるように、第１のオーバーレイネットワーク中の第１のノードにおいて位置付けられているＯＭ装置によって、方法５００を実行することができる。方法５００は、１つのインプリメンテーションに過ぎず、方法５００の動作を再構成できること、またはそうでなければ、さまざまなインプリメンテーションの範囲内で修正できることに留意すべきである。したがって、他のインプリメンテーションも可能性がある。
【００７０】
図６は、オーバーレイマージングシステムにしたがって構築された例示的なＯＭ装置６００を示している。例えば、図３中で示しているＯＭ装置３００のように使用するのに、ＯＭ装置６００は適している。態様では、ここで記述したようなオーバーレイマージングシステムの態様を提供するように構成されている１つ以上のモジュールを具備する少なくとも１つの集積回路によって、ＯＭ装置６００を実現する。例えば、１つのインプリメンテーションでは、それぞれのモジュールは、ハードウェアおよび／またはハードウェア実行ソフトウェアを含む。
【００７１】
ＯＭ装置６００は、第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信する手段（６０２）を備える第１のモジュールを備え、第１のモジュールは、この態様では、トランシーバ３０６を含む。ＯＭ装置６００は、第２のオーバーレイネットワークのサイズを決定する手段（６０４）を備える第２のモジュールも備え、第２のモジュールは、この態様では、プロセッサ３０２を含む。ＯＭ装置６００は、第２のオーバーレイネットワークのサイズが第１のオーバーレイネットワークのサイズよりも大きい場合に、第１のノードに関係する永続的ノード識別子に基づいて、第２のオーバーレイネットワーク上でセルフサーチを実行する手段（６０６）を備える第３のモジュールも備え、第３のモジュールは、この態様では、プロセッサ３０２を含む。ＯＭ装置６００は、永続的ノード識別子が第２のオーバーレイネットワークの一部でないとセルフサーチが決定した場合に第２のオーバーレイネットワークに加わる手段（６０８）を備える第４のモジュールも備え、第４のモジュールは、この態様では、プロセッサ３０２を含む。
【００７２】
図７は、オーバーレイマージングシステムにしたがって構築された例示的なＯＭ装置７００を示している。例えば、図３中で示しているＯＭ装置３００のように使用するのに、ＯＭ装置７００は適している。態様では、ここで記述したようなオーバーレイマージングシステムの態様を提供するように構成されている１つ以上のモジュールを備える少なくとも１つの集積回路によって、ＯＭ装置７００を実現する。例えば、１つのインプリメンテーションでは、それぞれのモジュールは、ハードウェアおよび／またはハードウェア実行ソフトウェアを含む。
【００７３】
ＯＭ装置７００は、第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信する手段（７０２）を備える第１のモジュールを備え、第１のモジュールは、この態様では、トランシーバ３０６を含む。ＯＭ装置７００は、第２のオーバーレイネットワークに対する第１のアドバタイズを第２のノードから受信する手段（７０４）を備える第２のモジュールも備え、第２のモジュールは、この態様では、トランシーバ３０６を含む。ＯＭ装置７００は、第２のノードを利用して、第２のオーバーレイネットワークに加わる手段（７０６）を備える第３のモジュールも備え、第３のモジュールは、この態様では、プロセッサ３０２を含む。
【００７４】
ここに開示した態様と関連して説明した、さまざまな例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、ここに記述した機能を実行するように設計されているこれらの任意の組み合わせたものにより、実現または実行してもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替実施形態では、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロ制御装置、または状態機械であってもよい。プロセッサはまた、例えば、ＤＳＰおよびマイクロプロセッサを組み合わせたもの、複数のマイクロプロセッサ、ＤＳＰコアを伴う１つ以上のマイクロプロセッサ、または任意のその他のこのようなコンフィギュレーションのような、コンピューティングデバイスを組み合わせたものとして実現してもよい。
【００７５】
ここに開示した態様と関連して記述した方法またはアルゴリズムのステップは、ハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、あるいは、双方を組み合わせたもので直接的に具現化してもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーブバルディスク、ＣＤ−ＲＯＭ、または、技術的に知られている他の何らかの形態の記憶媒体に存在していてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合されていてもよい。代替実施形態では、記憶媒体は、プロセッサと一体化されていてもよい。プロセッサおよび記憶媒体は、ＡＳＩＣに存在していてもよい。ＡＳＩＣは、ワイヤレス通信デバイスに存在していてもよい。代替実施形態では、プロセッサおよび記憶媒体は、ディスクリートコンポーネントとしてワイヤレス通信デバイスに存在していてもよい。
【００７６】
開示した態様の記述は、当業者が本発明を製作または使用できるように提供した。これらの態様に対するさまざま改良は当業者に容易に明らかになり、ここに規定した一般的な原理は、例えば、インスタントメッセージングサービス中で、または、任意の一般的なワイヤレスデータ通信アプリケーション中で、本発明の精神または範囲から逸脱することなく、他の態様に適用してもよい。したがって、本発明は、ここで示した態様に限定されることを意図しているものではなく、ここで開示した原理および新しい特徴と一致した最も広い範囲に一致させるべきである。「例示的な」という用語は、「例として、インスタンスとして、あるいは例証として機能すること」を意味するように、ここでは排他的に使用している。「例示的な」としてここで記述した何らかの態様は、必ずしも、他の態様と比較して、好ましいものとして、または、効果的であるとして解釈すべきではない。
【００７７】
したがって、オーバーレイマージングシステムの態様をここに図示し、記述してきたが、それらの精神または不可欠な特性から逸脱することなく、態様に対してさまざまな変更を行うことができることを正しく認識するだろう。それゆえ、ここでの開示および記述は、これには限定されないが、以下の特許請求の範囲において述べる本発明の範囲を例示するものであることを意図している。
【図１】
2012520623.tif 000003
【図２】
2012520623.tif 000004
【図３】
2012520623.tif 000005
【図４】
2012520623.tif 000006
【図５】
2012520623.tif 000007
【図６】
2012520623.tif 000008
【図７】
2012520623.tif 000009
【手続補正書】
【提出日】平成24年1月24日(2012.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信することと、
前記第２のオーバーレイネットワークのサイズを決定することと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行することと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わることとを含む方法。
【請求項２】
信頼できるソースから前記永続的ノード識別子を取得することをさらに含む請求項１記載の方法。
【請求項３】
前記加わることは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信することを含み、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項１記載の方法。
【請求項４】
前記加わることは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わることを含む請求項１記載の方法。
【請求項５】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定することをさらに含む請求項１記載の方法。
【請求項６】
前記決定することは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得することを含む請求項１記載の方法。
【請求項７】
前記実行することは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することを含む請求項１記載の方法。
【請求項８】
前記第１のノードは、ポータブルデバイスである請求項１記載の方法。
【請求項９】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するように構成されているトランシーバと、
前記トランシーバに結合され、
前記第２のオーバーレイネットワークのサイズを決定するようにと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するようにと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
【請求項１０】
前記プロセッサは、信頼できるソースから前記永続的ノード識別子を取得するように構成されている請求項９記載の装置。
【請求項１１】
前記プロセッサは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信するように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項９記載の装置。
【請求項１２】
前記プロセッサは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わるように構成されている請求項９記載の装置。
【請求項１３】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定するように構成されているタイマーをさらに具備する請求項９記載の装置。
【請求項１４】
前記プロセッサは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得するように構成されている請求項９記載の装置。
【請求項１５】
前記プロセッサは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを実行するように構成されている請求項９記載の装置。
【請求項１６】
前記第１のノードは、ポータブルデバイスである請求項９記載の装置。
【請求項１７】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信する手段と、
前記第２のオーバーレイネットワークのサイズを決定する手段と、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行する手段と、
前記永続的ノード識別子が、前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
【請求項１８】
信頼できるソースから前記永続的ノード識別子を取得する手段をさらに具備する請求項１７記載の装置。
【請求項１９】
前記加わる手段は、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信する手段を備え、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項１７記載の装置。
【請求項２０】
前記加わる手段は、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わる手段を備える請求項１７記載の装置。
【請求項２１】
振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定する手段をさらに具備する請求項１７記載の装置。
【請求項２２】
前記決定する手段は、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得する手段を備える請求項１７記載の装置。
【請求項２３】
前記実行する手段は、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行する手段を備える請求項１７記載の装置。
【請求項２４】
前記第１のノードは、ポータブルデバイスである請求項１７記載の装置。
【請求項２５】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータ読み取り可能記憶媒体において、
前記コンピュータ読み取り可能記憶媒体は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズを決定するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するための、プロセッサによって実行可能なコードと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを含むコンピュータ読み取り可能記憶媒体。
【請求項２６】
前記コードは、信頼できるソースから前記永続的ノード識別子を前記プロセッサに取得させるように構成されている請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項２７】
前記コードは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを前記プロセッサに送信させるように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項２８】
前記コードは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記プロセッサに、前記第２のオーバーレイに加えさせるように構成されている請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項２９】
前記コードは、振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を前記プロセッサに測定させるように構成されている請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項３０】
前記コードは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから前記プロセッサに取得させるように構成されている請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項３１】
前記コードは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを前記プロセッサに実行させるように構成されている請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項３２】
前記第１のノードは、ポータブルデバイスである請求項２５記載のコンピュータ読み取り可能記憶媒体。
【請求項３３】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信することと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信することと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わることとを含む方法。
【請求項３４】
前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定することをさらに含む請求項３３記載の方法。
【請求項３５】
前記加わることは、前記第１のオーバーレイネットワーク上で第２のリーブメッセージを送信することを含み、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項３３記載の方法。
【請求項３６】
前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信することをさらに含む請求項３３記載の方法。
【請求項３７】
前記第１のノードは、ポータブルデバイスである請求項３３記載の方法。
【請求項３８】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するようにと、第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するように構成されているトランシーバと、
前記トランシーバに結合され、前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
【請求項３９】
前記プロセッサは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定するように構成されている請求項３８記載の装置。
【請求項４０】
前記プロセッサは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信するように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項３８記載の装置。
【請求項４１】
前記プロセッサは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信するように構成されている請求項３８記載の装置。
【請求項４２】
前記第１のノードは、ポータブルデバイスである請求項３８記載の装置。
【請求項４３】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信する手段と、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信する手段と、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
【請求項４４】
前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定する手段をさらに具備する請求項４３記載の装置。
【請求項４５】
前記加わる手段は、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信する手段を備え、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項４３記載の装置。
【請求項４６】
前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信する手段をさらに具備する請求項４３記載の装置。
【請求項４７】
前記第１のノードは、ポータブルデバイスである請求項４３記載の装置。
【請求項４８】
第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータ読み取り可能記憶媒体において、
前記コンピュータ読み取り可能記憶媒体は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するための、プロセッサによって実行可能なコードと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するための、プロセッサによって実行可能なコードと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを含むコンピュータ読み取り可能記憶媒体。
【請求項４９】
前記コードは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと前記プロセッサに決定させるように構成されている請求項４８記載のコンピュータ読み取り可能記憶媒体。
【請求項５０】
前記コードは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で前記プロセッサに送信させるように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む請求項４８記載のコンピュータ読み取り可能記憶媒体。
【請求項５１】
前記コードは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから、前記プロセッサに送信させるように構成されている請求項４８記載のコンピュータ読み取り可能記憶媒体。
【請求項５２】
前記第１のノードは、ポータブルデバイスである請求項４８記載のコンピュータ読み取り可能記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
したがって、オーバーレイマージングシステムの態様をここに図示し、記述してきたが、それらの精神または不可欠な特性から逸脱することなく、態様に対してさまざまな変更を行うことができることを正しく認識するだろう。それゆえ、ここでの開示および記述は、これには限定されないが、以下の特許請求の範囲において述べる本発明の範囲を例示するものであることを意図している。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
〔１〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信することと、
前記第２のオーバーレイネットワークのサイズを決定することと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行することと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わることとを含む方法。
〔２〕信頼できるソースから前記永続的ノード識別子を取得することをさらに含む〔１〕記載の方法。
〔３〕前記加わることは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信することを含み、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔１〕記載の方法。
〔４〕前記加わることは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わることを含む〔１〕記載の方法。
〔５〕振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定することをさらに含む〔１〕記載の方法。
〔６〕前記決定することは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得することを含む〔１〕記載の方法。
〔７〕前記実行することは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することを含む〔１〕記載の方法。
〔８〕前記第１のノードは、ポータブルデバイスである〔１〕記載の方法。
〔９〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するように構成されているトランシーバと、
前記トランシーバに結合され、
前記第２のオーバーレイネットワークのサイズを決定するようにと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するようにと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
〔１０〕前記プロセッサは、信頼できるソースから前記永続的ノード識別子を取得するように構成されている〔９〕記載の装置。
〔１１〕前記プロセッサは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信するように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔９〕記載の装置。
〔１２〕前記プロセッサは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わるように構成されている〔９〕記載の装置。
〔１３〕振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定するように構成されているタイマーをさらに具備する〔９〕記載の装置。
〔１４〕前記プロセッサは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得するように構成されている〔９〕記載の装置。
〔１５〕前記プロセッサは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを実行するように構成されている〔９〕記載の装置。
〔１６〕前記第１のノードは、ポータブルデバイスである〔９〕記載の装置。
〔１７〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信する手段と、
前記第２のオーバーレイネットワークのサイズを決定する手段と、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行する手段と、
前記永続的ノード識別子が、前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
〔１８〕信頼できるソースから前記永続的ノード識別子を取得する手段をさらに具備する〔１７〕記載の装置。
〔１９〕前記加わる手段は、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを送信する手段を備え、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔１７〕記載の装置。
〔２０〕前記加わる手段は、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記第２のオーバーレイに加わる手段を備える〔１７〕記載の装置。
〔２１〕振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を測定する手段をさらに具備する〔１７〕記載の装置。
〔２２〕前記決定する手段は、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから取得する手段を備える〔１７〕記載の装置。
〔２３〕前記実行する手段は、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行する手段を備える〔１７〕記載の装置。
〔２４〕前記第１のノードは、ポータブルデバイスである〔１７〕記載の装置。
〔２５〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトは、
前記第２のオーバーレイネットワーク中の選択されたノードからアドバタイズを受信するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズを決定するための、プロセッサによって実行可能なコードと、
前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズよりも大きい場合に、前記第１のノードに関係する永続的ノード識別子に基づいて、前記第２のオーバーレイネットワーク上でセルフサーチを実行するための、プロセッサによって実行可能なコードと、
前記永続的ノード識別子が前記第２のオーバーレイネットワークの一部でないと前記セルフサーチが決定した場合に、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを具現化するコンピュータ読み取り可能媒体を具備するコンピュータプログラムプロダクト。
〔２６〕前記コードは、信頼できるソースから前記永続的ノード識別子を前記プロセッサに取得させるように構成されている〔２５〕記載のコンピュータ読み取り可能媒体。
〔２７〕前記コードは、前記第１のオーバーレイネットワーク上のノードに対してリーブメッセージを前記プロセッサに送信させるように構成され、前記リーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔２５〕記載のコンピュータ読み取り可能媒体。
〔２８〕前記コードは、前記第２のオーバーレイネットワークのサイズが前記第１のオーバーレイネットワークのサイズにほぼ等しい場合に、確率基準に基づいて、前記プロセッサに、前記第２のオーバーレイに加えさせるように構成されている〔２５〕記載のコンピュータ読み取り可能媒体。
〔２９〕前記コードは、振動するマージングの動きを防ぐために、前記実行する動作より前に、バックオフ時間間隔を前記プロセッサに測定させるように構成されている〔２５〕記載のコンピュータ読み取り可能媒体。
〔３０〕前記コードは、前記第２のオーバーレイネットワークのサイズを前記アドバタイズから前記プロセッサに取得させるように構成されている〔２５〕記載のコンピュータ読み取り可能媒体。
〔３１〕前記コードは、前記第２のオーバーレイネットワーク上で、前記永続的ノード識別子にアクセスしようと試行することによって前記セルフサーチを前記プロセッサに実行させるように構成されている〔２５〕記載のコンピュータ読み取り可能媒体。
〔３２〕前記第１のノードは、ポータブルデバイスである〔２５〕記載のコンピュータ読み取り可能媒体。
〔３３〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする方法において、
前記方法は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信することと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信することと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わることとを含む方法。
〔３４〕前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定することをさらに含む〔９〕記載の方法。
〔３５〕前記加わることは、前記第１のオーバーレイネットワーク上で第２のリーブメッセージを送信することを含み、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔９〕記載の方法。
〔３６〕前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信することをさらに含む〔９〕記載の方法。
〔３７〕前記第１のノードは、ポータブルデバイスである〔９〕記載の方法。
〔３８〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するようにと、第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するように構成されているトランシーバと、
前記トランシーバに結合され、前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるように構成されているプロセッサとを具備する装置。
〔３９〕前記プロセッサは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定するように構成されている〔３８〕記載の装置。
〔４０〕前記プロセッサは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信するように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔３８〕記載の装置。
〔４１〕前記プロセッサは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信するように構成されている〔３８〕記載の装置。
〔４２〕前記第１のノードは、ポータブルデバイスである〔３８〕記載の装置。
〔４３〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージする装置において、
前記装置は、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信する手段と、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信する手段と、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わる手段とを具備する装置。
〔４４〕前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと決定する手段をさらに具備する〔４３〕記載の装置。
〔４５〕前記加わる手段は、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で送信する手段を備え、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔４３〕記載の装置。
〔４６〕前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから送信する手段をさらに具備する〔４３〕記載の装置。
〔４７〕前記第１のノードは、ポータブルデバイスである〔４３〕記載の装置。
〔４８〕第１のピアツーピアオーバーレイネットワーク中の第１のノードを、第２のピアツーピアオーバーレイネットワークとマージするコンピュータプログラムプロダクトにおいて、
前記コンピュータプログラムプロダクトは、
前記第１のオーバーレイネットワーク中の第２のノードから第１のリーブメッセージを受信するための、プロセッサによって実行可能なコードと、
第２のオーバーレイネットワークに対する第１のアドバタイズを前記第２のノードから受信するための、プロセッサによって実行可能なコードと、
前記第２のノードを利用して、前記第２のオーバーレイネットワークに加わるための、プロセッサによって実行可能なコードとを具現化するコンピュータ読み取り可能媒体を具備するコンピュータプログラムプロダクト。
〔４９〕前記コードは、前記第１のアドバタイズに基づいて、前記第２のオーバーレイネットワークが前記第１のオーバーレイネットワークよりも大きいと前記プロセッサに決定させるように構成されている〔４８〕記載のコンピュータ読み取り可能媒体。
〔５０〕前記コードは、第２のリーブメッセージを前記第１のオーバーレイネットワーク上で前記プロセッサに送信させるように構成され、前記第２のリーブメッセージは、離れる理由と、加わるオーバーレイを識別するオーバーレイ名とを示しているマージフラグを含む〔４８〕記載のコンピュータ読み取り可能媒体。
〔５１〕前記コードは、前記第２のオーバーレイネットワークに対する第２のアドバタイズを前記第１のノードから、前記プロセッサに送信させるように構成されている〔４８〕記載のコンピュータ読み取り可能媒体。
〔５２〕前記第１のノードは、ポータブルデバイスである〔４８〕記載のコンピュータ読み取り可能媒体。
【国際調査報告】
2012520623.tif 000010
2012520623.tif 000011
2012520623.tif 000012
2012520623.tif 000013
2012520623.tif 000014