(57)【要約】  複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法において各ピアは、該ピア自身に属するキーワード範囲を有しており、保存したいデータリソースは、該保存したいデータリソースのキーワードがピアのキーワード範囲に存在し、該ピアに保存されているデータリソースの数がリソース限界値に達していない場合にのみ、前記ピアに保存される、ことを特徴とする方法。
2010509692.tif 000002
【特許請求の範囲】
【請求項１】
複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法において
各ピアは、該ピア自身に属するキーワード範囲を有しており、
保存したいデータリソースは、該保存したいデータリソースのキーワードがピアのキーワード範囲に存在し、該ピアに保存されているデータリソースの数がリソース限界値に達していない場合にのみ、前記ピアに保存される、
ことを特徴とする方法。
【請求項２】
リソース限界値に到達しているピアは、ピアツーピア・オーバーレイ・ネットワークにおける検索経路にて隣接しているピアを参照するよう指示をする、
ことを特徴とする請求項１記載の方法。
【請求項３】
前記キーワードから、ハッシュ値Ｈが導かれる、
ことを特徴とする請求項１記載の方法。
【請求項４】
前記隣接するピアは、ピアツーピア・オーバーレイ・ネットワークにおいて後続しているピアである、
ことを特徴とする請求項１記載の方法。
【請求項５】
ピアの前記リソース限界値は、それぞれ調節される、
ことを特徴とする請求項１記載の方法。
【請求項６】
ピアツーピア・オーバーレイ・ネットワークの他のピアに保存したいデータリソースを有するピアは、ピアツーピア・オーバーレイ・ネットワークにおいて、前記保存したいデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを選択する、
ことを特徴とする請求項１記載の方法。
【請求項７】
前記ピアは、前記保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かをチェックする、
ことを特徴とする請求項６記載の方法。
【請求項８】
前記保存したいデータリソースのキーワードが、前記発見されたフィンガーピアのキーワード範囲に存在する場合、前記発見されたフィンガーピアに保存されているデータリソースの数が、リソース限界値に到達しているか否かがチェックされる、
ことを特徴とする請求項７記載の方法。
【請求項９】
前記データリソースは、前記発見されたフィンガーピアがまだリソース限界値に到達していない場合に、前記フィンガーピアに保存される。
ことを特徴とする請求項８記載の方法。
【請求項１０】
前記発見されたフィンガーピアがリソース限界値に到達していた場合には、ピアツーピア・オーバーレイ・ネットワークにおいて前記フィンガーピアに隣接しているピアが、既にリソース限界値に到達しているか否かがチェックされる、
ことを特徴とする請求項９記載の方法。
【請求項１１】
前記保存したいデータリソースは、検索経路において隣接している前記ピアが、該ピアのリソース限界値に達していない場合に、該ピアに保存される、
ことを特徴とする請求項１０記載の方法。
【請求項１２】
前記保存したいデータリソースのキーワードが、選択されたフィンガーピアのキーワード範囲に存在しない場合、該選択されたフィンガーピア自身のフィンガーピアが選択され、
該フィンガーピアのピアＩＤは、前記保存したいデータリソースのキーワードに対する距離が最も小さい、
ことを特徴とする請求項７記載の方法。
【請求項１３】
ピアツーピア・オーバーレイ・ネットワークの他のピアに保存されているデータリソースを選択するピアは、前記ピアツーピア・オーバーレイ・ネットワークにおいて、検索されたデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを選択する、
ことを特徴とする請求項１記載の方法。
【請求項１４】
前記ピアは、前記検索されたデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かをチェックする、
ことを特徴とする請求項１３記載の方法。
【請求項１５】
前記発見されたフィンガーピアに保存されているデータリソースの数が、要求されたデータリソースの数以上であるか否かがチェックされる、
ことを特徴とする請求項１４記載の方法。
【請求項１６】
前記要求されたデータリソースの数が、前記発見されたフィンガーピアに保存されているデータリソースの数以下である場合、前記要求されたデータリソースは、前記検索しているピアに供給される、
ことを特徴とする請求項１５記載の方法。
【請求項１７】
前記要求されたデータリソースの数が、前記発見されたフィンガーピアに保存されているデータリソースの数よりも大きい場合、以下のことが繰り返しチェックされる、すなわち、
前記発見されたフィンガーピアに保存されているデータリソースの数と、前記フィンガーピアに隣接するピアに保存されているデータリソースの数との合計が、前記検索しているピアによって要求されたデータリソースの数よりも大きいか否かが、繰り返しチェックされる、
ことを特徴とする請求項１５記載の方法。
【請求項１８】
前記検索されたデータリソースのキーワードが、前記発見されたフィンガーピアのキーワード範囲に存在しない場合、該発見されたフィンガーピア自身のフィンガーピアが選択され、
該フィンガーピアのピアＩＤは、前記検索されたデータリソースのキーワードに対する距離が最も小さい、
ことを特徴とする請求項１４記載の方法。
【請求項１９】
前記ピアツーピア・オーバーレイ・ネットワークは、チェーン状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項２０】
前記ピアツーピア・オーバーレイ・ネットワークは、ツリー状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項２１】
前記ピアツーピア・オーバーレイ・ネットワークは、リング状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項２２】
前記ピアツーピア・オーバーレイ・ネットワークは、Chordネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２３】
前記ピアツーピア・オーバーレイ・ネットワークは、Gnutellaオーバーレイ・ネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２４】
前記ピアツーピア・オーバーレイ・ネットワークは、Torrentネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２５】
前記ピアツーピア・オーバーレイ・ネットワークは、CANネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２６】
複数のピアを備えるピアツーピア・ネットワークにおいて、
前記複数のピアは、各ピアに属するキーワード範囲を有しており、
保存したいデータリソースは、該保存したいデータリソースのキーワードが、ピアのキーワード範囲に存在しており、該ピアに保存されているデータリソースの数が、調節可能なリソース限界値にまだ達していない場合にのみ、前記ピア保存される、
ことを特徴とするピアツーピア・ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のピアを有するピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための方法に関する。ピアツーピア・ネットワークでは、ネットワークの全てのピアないしノードは同等の権利を有しており、サービスを利用することも提供することもできる。ピアツーピア・ネットワークにおいては、中央のデータベースは設けられておらず、ピアツーピア・ネットワークの各ピアが、自身の保持するデータの一部を提供する。すなわち、ピアツーピア・ネットワークのどのピアも、全体のデータストックを管理していないのである。それだけでなく、ピアツーピア・ネットワークにおいては、データ伝送処理ないし相互作用を制御または調整する中央局ないし中央のノードは、設けられていない。ピアツーピア・ネットワークのそれぞれのピアが、自律的に自分自身のために動作しているのである。それだけでなく、ピアツーピア・ネットワークのどのピアも、ピアツーピア・ネットワーク全体の構造に関して把握していない。それぞれのピアは、このピア自身が直接相互作用するピアしか知らないのである。
【０００２】
ピアツーピア・システムは、データを保存、発見するために効率的でスケーラブルな技術であることが判明している。ピアツーピア方式の反対は、クライアント・サーバ方式である。一般的にネットワークは、対称なデータ通信を伴うピアツーピア・ネットワークと、非対称なデータ通信を伴うクライアント・サーバ・ネットワークとに細分される。クライアント・サーバ・ネットワークにおいては、データを提供するサーバと、データを利用するクライアントとが存在する。これに対しピアツーピア・ネットワークにおいては、この役割分担が廃止されている。コンピュータ網のそれぞれのホストは、同等の権利を有するピアであり、クライアント機能とサーバ機能とを同時に担当することができる。ピアツーピア・ネットワークでは、非構造化ピアツーピア・ネットワークと、所定のトポロジーを有する構造化ピアツーピア・ネットワークとを区別することができる。とりわけ構造化ピアツーピア・システムにおいては、例えば分散ハッシュテーブルDHTが設けられており、ピアツーピア・ネットワーク上で動作するアプリケーションによって使用される。最もよく知られた従来のDHT方法の１つは、Chordである。ピアツーピア・ネットワークでは、データリソースが種々異なるピアに分散されるので、特定のデータリソースを保存するノードないしピアの場所を突き止める必要がある。Chordは、ピアツーピア・ネットワーク内のデータリソースを発見するためのピアツーピア・アルゴリズムである。このために、物理的なピアツーピア・ネットワークが、ピアツーピア・オーバーレイ・ネットワークの上にマッピングされる。Chordにおいては、ノードないしピアがリング構造でマッピングされ、このリング構造内のそれぞれのピアに対して所定のキーワード範囲が割り当てられる。ピアツーピア・ネットワーク内のデータリソースを発見するための従来の検索アルゴリズムは、キーワードを均等に分散することから出発している。リングが、ｍ個のピアおよびn個の保存したいデータリソースからなる場合、ピア１つにつき、ｎ÷ｍ個のデータリソースがファイルされる。
【０００３】
図１ａおよび１ｂは、従来技術によるピアツーピア・ネットワークのためのChordリング構造の簡単な実施例を示す。ピアは、各ピアに属するピアＩＤ、例えばピアＩＤ＝１、ピアＩＤ＝２、ピアＩＤ＝３、ピアＩＤ＝４を有する。ピアがこのChordリング内にある場合、このピアに対して所定のキーワード範囲が割り当てられる。図１ａに示した簡単な実施例では、各キーワード範囲は３ビットのみを有する。
【０００４】
図１ｂは、ピアツーピア・ネットワークのこれら４つのピアに対するキーワード範囲の割り当てを示す。第１ピアＰ１には、３つのキーワード、すなわち"０００"、"００１"、"０１０"が割り当てられている。第２ピアＰ２には、１つのキーワード"０１１"のみが割り当てられている。第３ピアＰ３には、２つのキーワード"１００"、"１０１"が割り当てられており、第４ピアＰ４は、２つのキーワード"１１０"、"１１１"を有する。実際の適用においては、キーワードは、３ビットより多くの文字列、例えば１２８ビットの文字列を含む。キーワードは有利にはハッシュ値であり、ハッシュ値は、ハッシュ関数によって、データレコード名から形成されるか、もしくはデータリソースそのものから形成される。データリソースは、任意のデータレコードないしデータとすることができ、例えば多数のビットからなる光画像とすることができる。このデータリソースから、ハッシュ関数によってハッシュ値Ｈが導かれる。このハッシュ値Ｈは、データリソースに割り当てられたキーワードないしキーによって導かれる。データリソースは、ピアツーピア・ネットワークにおける以下のようなピアにファイルされる。すなわちハッシュ値Ｈないしデータリソースのキーワードが、自身のキーワード範囲に存在するピアに、データリソースがファイルされるのである。
【０００５】
ハッシュ値Ｈないしデータリソースのキーワードが例えば"０１０"である場合、データリソースはピアＰ１にファイルされる。キーワードが例えば"１０１"であるデータリソースは、Chordリング内のピアＰ３にファイルされる。
【０００６】
図２ａおよび２ｂは、図１に示したChordリングの簡単な実施例に基づいて、ピアツーピア・ネットワーク内のデータリソースの公開ないし保存を示す。例えば、検索しているピアＰ３が、キーワード"０１０"を備えるデータリソースを保存したい場合には、図２に示す方法では、ピアＰ３はまず隣接するピアＰ４に、キーワードがこのピア４のキーワード範囲に存在するか否かを問い合わせる。図２ａに示す実施例のように、そうでない場合には、今度はこのピアＰ４が、このピアＰ４自身の隣接ピアＰ１に問い合わせる。キーワードはこのピアＰ１のキーワード範囲に存在するので、このことをピアＰ１は前のピアＰ４に通知し、これを今度はこのピアＰ４が、問い合わせてきたピアＰ３に通知する。その後ピアＰ３は、キーワード"０１０"に関するデータリソースをピアＰ１に保存する。
【０００７】
図２ｂに示す択一的方法では、問い合わせているピアＰ３は、まず隣接ピアＰ４に問い合わせ、このピア４から、隣接ピアＰ１への参照指示を受けとる。次にピアＰ３はピアＰ１に、保存したいデータリソースのキーワードが、このＰ１のキーワード範囲内に存在するか否かを確認する。この実施例のように、そのようである場合、このことをピア１がピア３に通知し、その後データリソースはピア３によって、発見されたピア１に保存される。
【０００８】
従来のピアツーピア・ネットワークの欠点および、データリソースを保存し、かつ読み出すための従来の方法の欠点は、キーワードの頻度が均等に分散されておらず、基本的にいくつかの少数のキーワードは、他のキーワードよりも格段に頻繁に出現してしまうということである。例えば電話帳における適用では、"マイヤー（Ｍａｉｅｒ）"というキーワードは、ドイツ語圏において、例えば"ゲルデス（Ｇｅｒｄｅｓ）"のような比較的珍しい名前よりも格段に頻繁に出現する。データリソースを保存したいユーザは、このデータリソースを後で再び発見できるように、名前ないしキーワードを与えることが多い。データリソースが例えば画像ないし写真である場合、ユーザはこれらに適当な名前を与える。この画像に例えば風景がマッピングされる場合、ユーザは、例えばキーワードとして、ないしはデータリソースのメタデータとして、"風景"というキーワードを割り当てることができる。このようにすると、類似したモチーフは、しばしば同一のキーワードを含む。データリソースを保存するための多くの適用において、キーワードは均等には分散せず、むしろいわゆるジップ分布が生じる。すなわち、いくつかの少数のキーワードは非常に頻繁に出現し、一方で残りの大多数のキーワードはむしろさほど出現しないのである。
【０００９】
従来のピアツーピア・ネットワークでは、このことによって個々のピアの負荷が過剰になるので、ピアツーピア・ネットワーク全体が不安定になってしまう。自身に割り当てられたキーワード範囲に、頻繁に出現するキーワードを含むピアは、自身に割り当てられたキーワードに、滅多に出現しないキーワードしか含まない別のピアよりも、格段に多いデータリソースを保存しなければならない。したがってこのピアのメモリ容量は、すぐに使い果たされてしまうのである。
【００１０】
したがって、本発明の課題は、構造化ピアツーピア・ネットワークにおける均等な負荷分散のための方法を提供することである。
【００１１】
本発明は、以下のようにして、複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法を提供する。すなわち本発明では、それぞれのピアは、該ピアに属するキーワード範囲を有しており、そして、自身のキーワードが、あるピアのキーワード範囲に存在するデータリソースは、このピアに保存されているデータリソースの数がリソース限界値に達していない場合にのみ、このピアに保存されるのである。
【００１２】
本発明の方法の１つの実施形態においては、自身のリソース限界値に達したピアは、ピアツーピア・オーバーレイ・ネットワークにおいて隣接しているピアを参照するように指示をする。
【００１３】
本発明の方法の１つの実施形態においては、キーワードはハッシュ値によって形成される。
【００１４】
本発明の方法の１つの実施形態においては、隣接するピアは、ピアツーピア・オーバーレイ・ネットワークにて、検索経路において後続しているピアである。
【００１５】
本発明の方法の１つの実施形態においては、ピアのリソース限界値は、それぞれ別個に調節される。
【００１６】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークの他のピアに保存したいデータリソースを有するピアは、このピアツーピア・オーバーレイ・ネットワークにおいて、まず、この保存したいデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピア（Finger-Peer）を選択する。
【００１７】
本発明の方法の１つの実施形態においては、ピアは、保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かをチェックする。
【００１８】
本発明の方法の１つの実施形態においては、保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在する場合、この発見されたフィンガーピアに保存されているデータリソースの数がリソース限界値に到達しているか否かがチェックされる。
【００１９】
本発明の方法の１つの実施形態においては、データリソースは、発見されたフィンガーピアがまだリソース限界値に到達していない場合に、このフィンガーピアに保存される。
【００２０】
本発明の方法の１つの実施形態においては、発見されたフィンガーピアが、リソース限界値に到達していた場合には、ピアツーピア・オーバーレイ・ネットワークにおいてこのフィンガーピアに隣接している別のピアが、既にリソース限界値に到達しているか否かが、さらにチェックされる。
【００２１】
本発明の方法の１つの実施形態においては、保存したいデータリソースは、この隣接するピアがまだ自身のリソース限界値に達していない場合には、この隣接するピアに保存される。
【００２２】
本発明の１つの実施形態においては、保存したいデータリソースのキーワードが、選択したフィンガーピアのキーワード範囲に存在しない場合には、今度はこの選択したフィンガーピア自身のフィンガーピア（このフィンガーピアのピアＩＤは、保存したいデータリソースのキーワードに対する距離が最も小さい）が選択される。
【００２３】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークの他のピアに保存されているデータリソースを選択するピアは、このピアツーピア・オーバーレイ・ネットワークにおいて、まず、検索されたデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを選択する。
【００２４】
本発明の方法の１つの実施形態においては、検索されたデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在する否かがチェックされる。
【００２５】
本発明の方法の１つの実施形態においては、発見されたフィンガーピアに保存されているデータリソースの数が、要求されたデータリソースの数以上であるか否かがチェックされる。
【００２６】
本発明の方法の１つの実施形態においては、要求されたデータリソースの数が、発見されたフィンガーピアに保存されているデータリソースの数以下である場合、この要求されたデータリソースは、検索しているピアに供給される。
【００２７】
本発明の方法の１つの実施形態においては、要求されたデータリソースの数が、発見されたフィンガーピアに保存されているデータリソースの数よりも大きい場合、以下のことが繰り返しチェックされる。すなわち、発見されたフィンガーピアに保存されているデータリソースの数と、このフィンガーピアに隣接するピアに保存されているデータリソースの数との合計が、検索しているピアによって要求されたデータリソースの数よりも大きいか否かが、繰り返しチェックされるのである。
【００２８】
本発明の１つの実施形態においては、検索されたデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在しないことが確認されると、発見されたフィンガーピアのフィンガーピア（このフィンガーピアのピアＩＤは、検索されたデータリソースのキーワードに対する距離が最も小さい）が選択される。
【００２９】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、チェーン状のトポロジーを有する。
【００３０】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、ツリー状のトポロジーを有する。
【００３１】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、リング状のトポロジーを有する。
【００３２】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、Chordネットワークによって形成される。
【００３３】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、Gnutellaオーバーレイ・ネットワークによって形成される。
【００３４】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、Torrentネットワークによって形成される。
【００３５】
本発明の方法の１つの実施形態においては、ピアツーピア・オーバーレイ・ネットワークは、CANネットワークによって形成される。
【００３６】
さらに本発明は、複数のピアを備える以下のようなピアツーピア・ネットワークを提供する。すなわちこれらのピアが、各ピアに属するキーワード範囲を有しており、そして、保存したいデータリソースは、この保存したいデータリソースのキーワードが、あるピアのキーワード範囲に存在しており、このピアに保存されているデータリソースの数が、調節可能なリソース限界値にまだ達していない場合にのみ、このピア保存される、ことを特徴とするピアツーピア・ネットワークである。
【００３７】
均等な負荷分散のための本発明の方法、および、均等な負荷分散のための本発明のネットワークの有利な実施形態を、以下、本発明の本質をなす特徴を説明するために、添付の図面を参照しながら説明する。
【図面の簡単な説明】
【００３８】
【図１】図１ａおよび１ｂは、キーワード範囲分散を備える従来のピアツーピア・オーバーレイ・ネットワークの例を示す。
【図２】図２ａおよび２ｂは、図１に示したピアツーピア・オーバーレイ・ネットワーク内のピアを発見するための従来の検索プロセスの図を示す。
【図３】図３は、ピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための本発明の方法の可能な実施形態を示すフローチャートである。
【図４】図４は、本発明の方法によるデータリソースを保存するための実施例を示す。
【図５】図５は、ピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための本発明の方法を示す別のフローチャートである。
【図６】図６は、検索プロセスの実施例を示し、この検索プロセスではデータリソースが、本発明の方法によってピアツーピア・オーバーレイ・ネットワークにおいて検索される。
【００３９】
複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための本発明の方法の基礎となる技術思想は、同一のキーワードを備えるデータリソースを、以下のようにして複数のピアに分散させることである。すなわち、第１に、ピアツーピア・オーバーレイ・ネットワークの所定のトポロジーを実施し、第２に、ピア１つあたりに保存されているデータリソースの数が制限されているようするのである。これによって、データリソースの管理ならびに発見によって生じる負荷を、複数のピアのグループに分散させることが可能となる。
【００４０】
本発明の方法によれば、データリソースの保存ないし公開が、ピアによって連続的に実施される。ピアがリソース制限ないしリソース限界値に到達すると、一杯になったこのピアは、ピアツーピア・オーバーレイ・ネットワーク内において隣接しているピアを参照するように指示をする。この参照指示をされたピア自身も最大限の負荷がかかっている場合、このピアは、隣接する次のピアを参照するよう指示する。ピアツーピア・オーバーレイ・ネットワークの全てのピアが、各自のリソース限界値に達している場合には、１つの実施形態によれば、データリソースを保存するためのピア１つ当たりのメモリ容量を高めることができるか、もしくは、データリソースの保存ないし公開が拒否される。ピアツーピアが満たされていく順序は、基礎となるピアツーピア・オーバーレイ・ネットワークのトポロジーに基づく。ピアツーピア・オーバーレイ・ネットワークのトポロジーは、チェーン状、ツリー状、またはリング状とすることができる。
【００４１】
本発明の方法の可能な１つの実施形態では、リング状のChordピアツーピア・オーバーレイ・ネットワークが使用される。
【００４２】
択一的実施形態においては、Gnutellaオーバーレイ・ネットワーク、Torrentネットワーク、またはCANピアツーピア・オーバーレイ・ネットワークを使用することができる。
【００４３】
データリソースを検索する場合、検索しているピアは、保存しているピアのグループのトポロジーを使用することができ、検索要求に応答することができるピアを効率的に発見することができる。比較的多数のデータリソースを発見すべき場合、検索するピアは、保存しているピアから、保存している複数のピアのグループ内のどのピアにおいてさらなるデータリソースを発見できるかという情報を受け取る。このとき、ピアツーピア・オーバーレイ・ネットワークのトポロジーを利用して、問い合わせ順序を定めることができる。これにより、データリソースを繰り返し検索することが可能となる。このような検索は、中央で管理するデータベースシステムでは不可能である。
【００４４】
ピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための本発明の方法では、保存したいデータリソースは、該保存したいデータリソースのキーワードが、あるピアのキーワード範囲に存在し、該ピアに保存されているデータリソースの数がリソース限界値に達していない場合にのみ、前記ピアに保存される。本発明の方法の１つの実施形態においては、リソース限界値は、それぞれのピアに対して別個に調節することができる。択一的実施形態においては、ネットワークの全てのピアは、同じリソース限界値を有する。使用されるキーワードは、有利にはハッシュ値であり、このハッシュ値は、所定のハッシュ関数によって、データリソースのデータから導かれる。
【００４５】
図３には、ピアツーピア・オーバーレイ・ネットワーク内、例えばリング状ポート・ピアツーピア・オーバーレイ・ネットワーク内のデータリソースの公開ないし保存が示されている。
【００４６】
図４は、１６個のピアＰ１〜Ｐ１６を備えるChordリングにおけるデータリソースの公開プロセスを示す。ピアＰがデータリソースを、ピアツーピア・ネットワークの別のピアＰに保存したい場合、ピアＰは、まずステップS1において、データリソースのキーワードに対する距離が最も小さいピアＩＤを備えるフィンガーピアを検索する。キーワードは例えばハッシュ値Ｈとすることができ、このハッシュ値は、データリソースに対して与えられた名前、例えば"風景"または"ミュラー（Mueller）"などから導かれているか、または、データリソースそのものである。ピアツーピア・オーバーレイ・ネットワーク内のそれぞれのピアは、一義的なピアＩＤを有しており、このピアＩＤは仮想アドレスである。図４に示された実施例におけるピアツーピア・オーバーレイ・ネットワークのリング構造では、１６個のピアＰ１〜Ｐ１６が、それぞれ一義的なピアＩＤを有する。例えばピアＩＤ＝６を備えるピアＮｏ．６が、データリソースを、オーバーレイ・ネットワークの他のピアＰに保存ないしファイルしたい場合、このピアは、データないし与えられたデータネームに基づいて、保存したいデータリソースに関するキーワードないしハッシュ値Ｈを算出する。ハッシュ値Ｈは、例えば１２８ワードを含む文字列とすることができる。
【００４７】
検索しているピア６、すなわちピアＮｏ．６を備えるピアは、まずキーワードないし算出されたハッシュ値Ｈに対する距離が最も小さいピアＩＤを有するフィンガーピアを検索する。
フィンガーピアのピアＩＤは以下のとおりである：
PeerFiriger_Peer = Peer- ＩＤ + 2K
【００４８】
図４に示す実施例においては、検索しているピアＮｏ．６のためのフィンガーピアは、ピアＩＤ７、８、１０、１４を備えるピアである。
【００４９】
データリソースを保存したいピアＰは、図３のステップＳ１において、保存したいデータリソースの、形成されたキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを検索する。次にステップＳ２において、保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かがチェックされる。例えば、ピアＩＤ１４を備えるフィンガーピアが選択され、次に、キーワードがこのフィンガーピアのキーワード範囲に存在するか否かがチェックされる。
【００５０】
そうである場合、すなわち保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在する場合、さらに以下のことがチェックされる。すなわち、発見されたフィンガーピアに保存されているデータリソースの数が、調整ないし設定されたピアのリソース限界値に既に到達しているか否かがチェックされるのである。
【００５１】
発見されたピアがまだメモリスペースを有する場合、ステップＳ７において、このピアにデータリソースが保存される。逆に、選択されたフィンガーピアのメモリ容量が使い果たされている場合、このフィンガーピアは、ピアＩＤ  Ｎｏ．６を備えた検索しているピアＰ６に対し、ピアツーピア・オーバーレイ・ネットワーク内にて前にあるピアを通知する。図４に示すリング状のChordピアツーピア・オーバーレイ・ネットワークでは、例えば発見されたフィンガーピアＰ１４が、検索しているフィンガーピアＰ６に、ピアＩＤ  Ｎｏ．Ｐ１３を備えた前のピアを通知する。
【００５２】
次に、ステップＳ５において、表示フラグＦがセットされる。
【００５３】
形成されたキーワードないし保存したいデータリソースのキーが、発見されたフィンガーピア、例えばフィンガーピアＮｏ．１４のキーワード範囲にない場合、ステップ６において、表示フラグＦがセットされているか否かがチェックされる。表示フラグＦがセットされている場合、データリソースはステップＳ７において、表示された前のピアＮｏ．１３に保存される。次に、表示フラグＦが、ステップＳ８においてリセットされ、ステップ１０においてこのプロセスが終了する。逆に、ステップ６において、表示フラグＦがセットされていないことが確認されると、発見されたフィンガーピア、例えばフィンガーピアＰ１４において、このフィンガーピアの、保存したいデータリソースのキーワードに対する距離が最も小さいフィンガーピアが検索される。このプロセスは、次にステップＳ２に戻る。このようにして、連続的に隣接する複数のピアは、ピアツーピア・オーバーレイ・ネットワークにおいて、データリソースで満たされる。図４に示す実施例においては、ピアＰ１４、Ｐ１３、Ｐ１２は、順次満たされていき、データリソースのための、同じキーワードを有するメモリグループを形成する。
【００５４】
図５は、本発明の可能な実施形態における、ピアツーピア・オーバーレイ・ネットワーク内での、データリソースを検索するための検索プロセスを示すフローチャートである。図６は、Chordリング構造を備えるピアツーピア・オーバーレイ・ネットワークの簡単な実施例を示す。
【００５５】
ステップS1では、まず、形成されたキーワードに対する距離が最も小さいピアＩＤを有するピアが検索される。
【００５６】
次にステップ２において、この形成されたキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かがチェックされる。そうである場合、ステップS3において表示フラグF’がセットされる。
【００５７】
次にステップS４において、発見されたピアＰに保存されているデータリソースの数が、検索しているピアによって要求されたデータリソースの数よりも大きいか否かがチェックされる。保存されているデータリソースの数が充分である場合、すなわち要求されたデータレコードの数よりも大きい場合、ステップS5において、要求されたデータリソースが、問い合わせてきたピアに供給される。逆に、保存されているデータリソースの数が充分でない場合には、ステップ１０において、ピアツーピア・オーバーレイ・ネットワークのすぐ隣にあるピアを参照するように指示される。次に、これまでに発見されたピアに保存されているデータリソースの数と、隣接するピアに保存されているデータリソースの数との合計が形成され、要求されているデータリソースの数と比較される。この合計値が、要求されたデータリソースの数を上回るとすぐに、要求されたデータリソースは、メモリグループの種々異なる複数のピアから、問い合わせてきたピアへと供給される。
【００５８】
検索プロセスのステップS2において、キーワードが、発見されたフィンガーピアのキーワード範囲に存在しないことが確認されると、ステップS6において、表示フラグF’がセットされているか否かがチェックされる。この表示フラグがセットされている場合、表示フラグはステップS7においてリセットされる。表示フラグがセットされていない場合にはステップS9にて、発見されたフィンガーピア自身において、検索されたデータリソースのキーワードからの距離が最も小さいピアＩＤを有するフィンガーピアが検索され、その後、ステップS2に戻る。
【００５９】
図示した実施例では、保存しているピアグループのトポロジーは、Chordリングの円形部分に相応する。保存しているピアのグループは、以下のことによって形成される。すなわち、ピアがオーバーフローしている場合には、その次に小さなインデックスを備える隣接するピアを参照するよう指示がなされ、しかもこのことが適当なピアが発見されるまでずっと続くことによって、保存しているピアのグループが形成されるのである。択一的実施形態においては、グループの外縁、すなわちリング部分の長さをバッファすることができる。このとき外側のピアの位置は、例えば複数のピアに、グループにおける種々異なる経路に沿ってファイルされ、検索ないし公開の際にアップデートされる。経路の長さはリングのサイズにより対数によって定められており、公開ないし検索しているピアはそれぞれ経路の値をアップデートするだけなので、ここではコストもまた対数である。バッファされた値がグループの外側のピアを直接示すことは比較的不可能であるが、バッファリングは、非常に良好な近似値である。この実施形態において、グループの周縁が直接に的中しない場合には、上述のように、線状のコストによって検出することもできる。
【００６０】
本発明の方法においては、検索しているピアＰは、保存されたデータリソースを発見するために、まず、保存しているグループの位置を特定しなければならない。このためにまず、キーワード範囲を担当するピアが検出される。これに加えて、各ホップ（HoＰ）ごとに、それぞれのピアＰが既にグループの一部であるか否かがチェックされる。そのグループのピアに到達するとすぐに要求が評価され、場合によっては、リソースが、検索しているピアに供給される。保存しているピアを検索するピアの経路は種々異なるので、要求の負荷は、グループ内の種々異なるピアにそれぞれ分散される。検索しているピアが、リング部分の位置をバッファされた値から取り出し、グループのうちランダムに選択されたピアへ向かう直接の経路を選択すると、分散はさらに良好となる。
【００６１】
本発明の方法において、検索する際に、個々のピアが提供できるよりも多くのデータリソースが必要とされる場合、ピアは、その次に大きいインデックスないし次に小さいインデックスを備えた、このピアに隣接するピアを参照するように指示をする。グループ内で要求を連続的に転送することによって、所定のキーワードの全てのデータリソースの量について相互的な検索が可能となる。
【００６２】
本発明の方法では、ピアツーピア・システムにおいて、リソースの検索および管理の負荷のバランスをとることができる。連続的にピアにリソースを満たすことにより、負荷分散のためのグループが形成される。この特性により、各リソースのキーワードの頻度分布とは独立していわゆるホットスポットの形成が阻止される。本発明の方法では、グループ内で要求を連続的に転送することにより、所定のキーワードを備える全てのデータリソースの量について相互的な検索が可能となる。ピア・アプリケーションは、非常に膨大なリソース量を検索するために、この特性を利用することができる。したがってユーザは、膨大な結果リストを"ブラウズ（browse）"することが可能となる。
【００６３】
複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける均等な負荷分散のための本発明の方法の使用例は、デジタルメディアの配布分野である。この際データは、Chordを基礎とするピアツーピア・オーバーレイ・ネットワークにファイルされ、例えばタイトル、俳優、ジャンル等のメタ情報に関連して発見することができる。付加的に、各メディア、例えば映画等に対して、一義的なＩＤを割り当てることができる。過剰な負荷は、とりわけジャンルに関するキーワードにおいて発生するが、有名な俳優の名前ならびに非常に人気のある映画のタイトルにおいても発生する。これに加えて大抵の家庭は、非同期性のインターネット接続、すなわち比較的高いダウンロード帯域幅を、低いアップロード帯域幅において使用している。このため、リアルタイムでの映画の伝送は、データ送信器として１つ以上のピアを必要とする。このため、データが種々異なる複数のピアに分散されるのである。したがってビデオストリームを受信するためには、複数の検索プロセスが必要である。第１の検索プロセスでは、検索される映画は、この映画のメタデータの記載に関連して発見される。第２の検索プロセスでは、送信者ピアが一義的なＩＤに関連して検索される。検索された映画を一度完全に受信したピアは、今度はこの映画を別のピアに送信することができるので、公開されたデータリソースの数は恒常的に増加する。検索された内容ないし映画の人気に応じて、１つの所定の識別名に対して非常に多くのデータリソースが存在することとなる。
【００６４】
これにより、通常のChordピアツーピア・オーバーレイ・ネットワークであれば、個々のピアの負荷が過剰になってしまうだろう。本発明の方法によれば、データリソースの負荷分散を均等にすることによって、検索および管理の負荷が分散されるので、ピアツーピア・オーバーレイ・ネットワーク内の個々のピアに対する過剰負荷が阻止される。上に述べた実施例は、他の適用分野でも簡単に転用することができる。俳優の名前によって生じるホットスポットは、例えば姓と名前の自然な非均等分散に基づく。同様の問題は、分配される住所・電話帳ならびに、イエローページなどの企業録においても生じる。これら全ての適用分野において、均等な負荷分散のための本発明の方法は、ホットスポットないし個々のピアへの過剰負荷を阻止するために適当である。
【図１】
2010509692.tif 000003
【図２Ａ】
2010509692.tif 000004
【図２Ｂ】
2010509692.tif 000005
【図３】
2010509692.tif 000006
【図４】
2010509692.tif 000007
【図５】
2010509692.tif 000008
【図６】
2010509692.tif 000009
【手続補正書】
【提出日】平成21年5月14日(2009.5.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のピアからなるピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法において
各ピアは、該ピア自身に属するキーワード範囲を有しており、
保存したいデータリソースは、該保存したいデータリソースのキーワードがピアのキーワード範囲に存在し、該ピアに保存されているデータリソースの数がリソース限界値に達していない場合にのみ、前記ピアに保存され、
ピアの前記リソース限界値は、それぞれ別個に調節される、
ことを特徴とする方法。
【請求項２】
リソース限界値に到達しているピアは、ピアツーピア・オーバーレイ・ネットワークにおける検索経路にて隣接しているピアを参照するよう指示をする、
ことを特徴とする請求項１記載の方法。
【請求項３】
前記キーワードから、ハッシュ値Ｈが導かれる、
ことを特徴とする請求項１記載の方法。
【請求項４】
前記隣接するピアは、ピアツーピア・オーバーレイ・ネットワークにおいて後続しているピアである、
ことを特徴とする請求項１記載の方法。
【請求項５】
ピアツーピア・オーバーレイ・ネットワークの他のピアに保存したいデータリソースを有するピアは、ピアツーピア・オーバーレイ・ネットワークにおいて、前記保存したいデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを選択する、
ことを特徴とする請求項１記載の方法。
【請求項６】
前記ピアは、前記保存したいデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かをチェックする、
ことを特徴とする請求項５記載の方法。
【請求項７】
前記保存したいデータリソースのキーワードが、前記発見されたフィンガーピアのキーワード範囲に存在する場合、前記発見されたフィンガーピアに保存されているデータリソースの数が、リソース限界値に到達しているか否かがチェックされる、
ことを特徴とする請求項６記載の方法。
【請求項８】
前記データリソースは、前記発見されたフィンガーピアがまだリソース限界値に到達していない場合に、前記フィンガーピアに保存される。
ことを特徴とする請求項７記載の方法。
【請求項９】
前記発見されたフィンガーピアがリソース限界値に到達していた場合には、ピアツーピア・オーバーレイ・ネットワークにおいて前記フィンガーピアに隣接しているピアが、既にリソース限界値に到達しているか否かがチェックされる、
ことを特徴とする請求項８記載の方法。
【請求項１０】
前記保存したいデータリソースは、検索経路において隣接している前記ピアが、該ピアのリソース限界値に達していない場合に、該ピアに保存される、
ことを特徴とする請求項９記載の方法。
【請求項１１】
前記保存したいデータリソースのキーワードが、選択されたフィンガーピアのキーワード範囲に存在しない場合、該選択されたフィンガーピア自身のフィンガーピアが選択され、
該フィンガーピアのピアＩＤは、前記保存したいデータリソースのキーワードに対する距離が最も小さい、
ことを特徴とする請求項６記載の方法。
【請求項１２】
ピアツーピア・オーバーレイ・ネットワークの他のピアに保存されているデータリソースを選択するピアは、前記ピアツーピア・オーバーレイ・ネットワークにおいて、検索されたデータリソースのキーワードに対する距離が最も小さいピアＩＤを有するフィンガーピアを選択する、
ことを特徴とする請求項１記載の方法。
【請求項１３】
前記ピアは、前記検索されたデータリソースのキーワードが、発見されたフィンガーピアのキーワード範囲に存在するか否かをチェックする、
ことを特徴とする請求項１２記載の方法。
【請求項１４】
前記発見されたフィンガーピアに保存されているデータリソースの数が、要求されたデータリソースの数以上であるか否かがチェックされる、
ことを特徴とする請求項１３記載の方法。
【請求項１５】
前記要求されたデータリソースの数が、前記発見されたフィンガーピアに保存されているデータリソースの数以下である場合、前記要求されたデータリソースは、前記検索しているピアに供給される、
ことを特徴とする請求項１４記載の方法。
【請求項１６】
前記要求されたデータリソースの数が、前記発見されたフィンガーピアに保存されているデータリソースの数よりも大きい場合、以下のことが繰り返しチェックされる、すなわち、
前記発見されたフィンガーピアに保存されているデータリソースの数と、前記フィンガーピアに隣接するピアに保存されているデータリソースの数との合計が、前記検索しているピアによって要求されたデータリソースの数よりも大きいか否かが、繰り返しチェックされる、
ことを特徴とする請求項１４記載の方法。
【請求項１７】
前記検索されたデータリソースのキーワードが、前記発見されたフィンガーピアのキーワード範囲に存在しない場合、該発見されたフィンガーピア自身のフィンガーピアが選択され、
該フィンガーピアのピアＩＤは、前記検索されたデータリソースのキーワードに対する距離が最も小さい、
ことを特徴とする請求項１３記載の方法。
【請求項１８】
前記ピアツーピア・オーバーレイ・ネットワークは、チェーン状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項１９】
前記ピアツーピア・オーバーレイ・ネットワークは、ツリー状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項２０】
前記ピアツーピア・オーバーレイ・ネットワークは、リング状のトポロジーを有する、
ことを特徴とする請求項１記載の方法。
【請求項２１】
前記ピアツーピア・オーバーレイ・ネットワークは、Chordネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２２】
前記ピアツーピア・オーバーレイ・ネットワークは、Gnutellaオーバーレイ・ネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２３】
前記ピアツーピア・オーバーレイ・ネットワークは、Torrentネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２４】
前記ピアツーピア・オーバーレイ・ネットワークは、CANネットワークによって形成される、
ことを特徴とする請求項１記載の方法。
【請求項２５】
複数のピアを備えるピアツーピア・ネットワークにおいて、
前記複数のピアは、各ピアに属するキーワード範囲を有しており、
保存したいデータリソースは、該保存したいデータリソースのキーワードが、ピアのキーワード範囲に存在しており、該ピアに保存されているデータリソースの数が、調節可能なリソース限界値にまだ達していない場合にのみ、前記ピア保存され、
ピアの前記リソース限界値は、それぞれ別個に調節されている、
ことを特徴とするピアツーピア・ネットワーク。
【国際調査報告】
2010509692.tif 000010
2010509692.tif 000011
2010509692.tif 000012
2010509692.tif 000013
2010509692.tif 000014
2010509692.tif 000015