(57)【要約】本発明は、ピアツーピア・オーバーレイ・ネットワーク（Ｎ）においてルーティングのために後続リストを提供する方法、ならびにその方法を実行するためのネットワーク・ノードおよびコンピュータプログラム製品に関する。ピアツーピア・オーバーレイ・ネットワーク（Ｎ）は、複数のノード（０、２０、６０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）を備える。後続リスト（Ｌ）は、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの第１のノード（２００）に続いて後続となる少なくとも２つの後続ノード（２１１、２２３）の識別子を指定し、後続リスト（Ｌ）にリストされた少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働するかどうかが決定され、少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働する場合、ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のトポロジ構造に関して少なくとも２つの後続ノード（２１１、２２３）の後続となり少なくとも２つの後続ノード（２１１、２２３）とは異なる物理ハードウェア上で稼働する、複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの少なくとも１つの追加のノード（２４０）の識別子が後続リスト（Ｌ）に追加される。
2011525766.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）を備えるピアツーピア・オーバーレイ・ネットワーク（Ｎ）においてルーティングのために後続リスト（Ｌ）を提供する方法であって、前記後続リスト（Ｌ）は、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のトポロジ構造に関して、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの第１のノード（２００）に続いて後続となる少なくとも２つの後続ノード（２１１、２２３）の識別子を指定し、前記方法が、
前記後続リスト（Ｌ）にリストされた前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働するかどうかを決定するステップと、
前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働する場合、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）の前記トポロジ構造に関して前記少なくとも２つの後続ノード（２１１、２２３）の後続となり、前記少なくとも２つの後続ノード（２１１、２２３）とは異なる物理ハードウェア上で稼働する、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの少なくとも１つの追加のノード（２４０）の識別子を前記後続リスト（Ｌ）に追加するステップとを備える、方法。
【請求項２】
前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働する場合、前記異なる物理ハードウェア上で稼働する前記後続リスト（Ｌ）にリストされた後続ノードの合計数が事前定義された冗長因数と等しくなるように、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）の前記トポロジ構造に関して前記少なくとも２つの後続ノード（２１１、２２３）の後続となり、前記少なくとも２つの後続ノード（２１１、２２３）とは異なる物理ハードウェア上で稼働する、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）の同数の追加のノード（２４０）の識別子を前記後続リスト（Ｌ）に追加するステップをさらに備える、請求項１に記載の方法。
【請求項３】
結合ノード（２２０）が前記後続リスト（Ｌ）にリストされた前記後続ノード間の前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）を結合するとき、前記結合ノード（２２０）の前記識別子を前記後続リスト（Ｌ）に追加するステップと、
前記結合ノード（２２０）が稼働する前記物理ハードウェアを決定するステップと、
前記少なくとも１つの追加のノード（２４０）を除く、異なる物理ハードウェアで稼働する前記後続リスト（Ｌ）にリストされた後続ノードの前記合計数が、事前定義された冗長因数と等しい場合、前記少なくとも１つの追加のノード（２４０）の識別子を前記後続リスト（Ｌ）から削除するステップとをさらに備える、請求項１に記載の方法。
【請求項４】
前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）が稼働する物理ハードウェアを、それぞれ前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）のプラットフォームから情報を取り出すことによって決定するステップをさらに備える、請求項１に記載の方法。
【請求項５】
前記結合ノード（２２０）が稼働する物理ハードウェアを、前記結合ノード（２２０）のプラットフォームから情報を取り出すことによって決定するステップをさらに備える、請求項３に記載の方法。
【請求項６】
前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）が稼働する物理ハードウェアを、それぞれ前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）とリンクされた外部管理ユニットから情報を取り出すことによって決定するステップをさらに備える、請求項１に記載の方法。
【請求項７】
前記結合ノード（２２０）が稼働する物理ハードウェアを、前記結合ノード（２２０）とリンクされた外部管理ユニットから情報を取り出すことによって決定するステップをさらに備える、請求項３に記載の方法。
【請求項８】
前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）が稼働する物理ハードウェアを、それぞれ前記ピアツーピアネットワーク（Ｎ）のネットワークオペレータおよび／または前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）のユーザから対応する情報を取り出す手段を用いて決定するステップをさらに備える、請求項１に記載の方法。
【請求項９】
前記結合ノード（２２０）が稼働する物理ハードウェアを、前記ピアツーピアネットワーク（Ｎ）のネットワークオペレータおよび／または前記結合ノード（２２０）のユーザから対応する情報を取り出す手段を用いて決定するステップをさらに備える、請求項３に記載の方法。
【請求項１０】
前記少なくとも２つの後続ノード（２１１、２２３）および／または前記少なくとも１つの追加のノード（２４０）が稼働する物理ハードウェアを、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のアプリケーションレイヤの待ち時間測定を用いて決定するステップをさらに備える、請求項１に記載の方法。
【請求項１１】
前記結合ノード（２２０）が稼働する物理ハードウェアを、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のアプリケーションレイヤの待ち時間測定を用いて決定するステップをさらに備える、請求項３に記載の方法。
【請求項１２】
複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）を備えるピアツーピア・オーバーレイ・ネットワーク（Ｎ）の第１のノード（２００）であって、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）においてルーティングするために後続リスト（Ｌ）を保持し、前記後続リスト（Ｌ）は、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のトポロジ構造に関して前記第１のノード（２００）に続いて後続となる少なくとも２つの後続ノード（２１１、２２３）の識別子を指定し、前記第１のノード（２００）は、前記後続リスト（Ｌ）にリストされた前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働するかどうかを決定し、前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働する場合、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）の前記トポロジ構造に関して前記少なくとも２つの後続ノード（２１１、２２３）の後続となり、前記少なくとも２つの後続ノード（２１１、２２３）とは異なる物理ハードウェア上で稼働する、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの少なくとも１つの追加のノード（２４０）の識別子を前記後続リスト（Ｌ）に追加するように適合された制御ユニットを備える、第１のノード（２００）。
【請求項１３】
前記制御ユニットは、ルーティング・ポリシーに基づいて前記第１のノード（２００）から後続リスト（Ｌ）のノードにピアツーピア・メッセージをルーティングするようにさらに適合され、前記後続リスト（Ｌ）の前記ノードが前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）において到達可能ではない場合、前記ルーティング・ポリシーに基づいて前記ピアツーピア・メッセージを前記第１のノード（２００）から前記少なくとも１つの追加のノード（２４０）にルーティングする、請求項１２に記載の第１のノード（２００）。
【請求項１４】
複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）を備えるピアツーピア・オーバーレイ・ネットワーク（Ｎ）においてルーティングのために後続リスト（Ｌ）を提供するコンピュータプログラム製品であって、前記後続リスト（Ｌ）は、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）のトポロジ構造に関して、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの第１のノード（２００）に続いて後続となる少なくとも２つの後続ノード（２１１、２２３）の識別子を指定し、前記コンピュータプログラム製品は、前記第１のノード（２１１）によって実行されるとき、
前記後続リスト（Ｌ）にリストされた前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働するかどうかを決定するステップと、
前記少なくとも２つの後続ノード（２１１、２２３）が同一の物理ハードウェア上で稼働する場合、前記ピアツーピア・オーバーレイ・ネットワーク（Ｎ）の前記トポロジ構造に関して前記少なくとも２つの後続ノード（２１１、２２３）の後続となり、前記少なくとも２つの後続ノード（２１１、２２３）とは異なる物理ハードウェア上で稼働する、前記複数のノード（０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０）のうちの少なくとも１つの追加のノード（２４０）の識別子を前記後続リスト（Ｌ）に追加するステップとを実行する、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピアツーピア・オーバーレイ・ネットワークにおいてルーティングのために後続リスト（ｓｕｃｃｅｓｓｏｒ  ｌｉｓｔ）を提供する方法、ならびに前記方法を実行するためのネットワーク・ノードおよびコンピュータプログラム製品に関する。
【背景技術】
【０００２】
ピアツーピア（＝Ｐ２Ｐ）・オーバーレイ・ネットワークは、ＶｏＩＰ（たとえば、Ｓｋｙｐｅ）またはファイル共有（たとえば、ｅＭｕｌｅ）のような、幅広い多数のアプリケーションに使用される（ＶｏＩＰ＝Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）。高スケーラビリティ、自己組織化、および耐障害性のような特徴は、集約的に提供され使用されるリソースで分散されたアーキテクチャおよびデータストレージによって達成される。Ｐ２Ｐネットワークは、ピアとしての、つまり、以下の説明においてネットワークのクライアントおよびサーバの両方としてのノードアクションから成り、「ノード」および「ピア」という用語は同義的に使用される。ネットワークの各ノードは、オーバーレイ・アルゴリズムに関して確立され、メッセージ伝送のために使用される他のノードへの１つまたは複数の論理リンクを保持する。
【０００３】
最新技術のＰ２Ｐネットワークは、基礎となるネットワーク・インフラストラクチャが不可知のオーバーレイ固有のアルゴリズムに基づいて論理トポロジ構造を構築する。各ノードは、ブロードキャストの方法で（非構造化オーバーレイ、たとえばＧｎｕｔｅｌｌａ）、またはＩＤベースの方法で（分散ハッシュテーブル（＝ＤＨＴ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）を使用する構造化オーバーレイ、たとえばＣｈｏｒｄ）、メッセージルーティングに使用される他のノードへの１つまたは複数のリンクを保持する（ＩＤ＝ｉｄｅｎｔｉｆｉｃａｔｉｏｎ（識別）／ｉｄｅｎｔｉｆｉｅｒ（識別子））。一部のシステムは、ピアの非構造化グループとの混成アーキテクチャを使用し、それらのグループはより大規模なトポロジで構造化される（たとえば、Ｓｋｙｐｅ）。
【０００４】
Ｐ２Ｐネットワークは、全体として非集中的である。オーバーレイに参加しているピアは、不適切に、しかも不定期にネットワークを去ることもある。ノードに障害が発生した場合にＰ２Ｐネットワークのトポロジ構造を保持するために、各ノードが直接の隣接ノードへの複数のリンクを保持することが必須である。Ｃｈｏｒｄにおいて、たとえば、各ピアは、後続の隣接ピアのうちの１つまたは複数が正常終了せずにＰ２Ｐオーバーレイを去る場合にＰ２Ｐリング・トポロジを安定させる、いわゆる「冗長後続リスト」を保持する。
【０００５】
図１ａは、複数のノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０を備える従来技術の構造化Ｐ２Ｐオーバーレイ・ネットワークＮを示す。特に、図１ａはＣｈｏｒｄリングＮを表す。ノードの参照符号０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０は、ノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０のノードＩＤを表すことも意図されている。Ｃｈｏｒｄにおいて、ノードは、それらの先行ノードおよび後続ノードへの直接接続を保持し、その結果リング・トポロジが形成される。
【０００６】
Ｐ２ＰのＣｈｏｒｄリングＮにおいて、リング・トポロジ構造は、冗長後続リスト（＝ＲＳＬ：ｒｅｄｕｎｄａｎｔ  ｓｕｃｃｅｓｓｏｒ  ｌｉｓｔ）と呼ばれることもある後続リストを使用することにより安定状態が保持される。図１ａに示されるように、複数のノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０の第１のノード２００は、第１のノード２００に続いて後続となる２つの後続ノード２１１、２２３の識別子を指定する後続リストを保持する。図１ｂに示されるように、第１の後続ノード２１１がクラッシュしてリングを去る場合、第１のノード２００は引き続き、後続リストにリストされたその他の後続ノード２２３へのリンクを有している。後続リスト内の後続ノードの冗長性を用いて、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造は保持することができる。第１のノード２００に隣接する複数の次の後続ノードがクラッシュして、リングが閉じられうるように十分な後続ノードが後続リストにリストされない場合、トポロジ構造は保持することができなくなり、リングが破損する。したがって、リング・トポロジの安定性は、後続リストにリストされた後続ノードの数によって決まる、つまり後続ノードが多ければ、それに応じてリングもより安定する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、ピアツーピア・オーバーレイ・ネットワークにおいてルーティングのために後続リストを提供する改良された方法を提供することである。さらに、本発明の目的は、この改良された方法を実行するために、対応するネットワーク・ノードおよび対応するコンピュータプログラム製品を提供することである。
【０００８】
本発明の目的は、複数のノードを備えるピアツーピア・オーバーレイ・ネットワークにおいてルーティングのために後続リストを提供する方法であって、前記後続リストは、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して、複数のノードのうちの第１のノードに続いて後続となる少なくとも２つの後続ノードの識別子を指定し、後続リストにリストされた少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働するかどうかを決定するステップと、少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働する場合、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して少なくとも２つの後続ノードの後続となり、少なくとも２つの後続ノードとは異なる物理ハードウェア上で稼働する、複数のノードのうちの少なくとも１つの追加のノードの識別子を後続リストに追加するステップとを備える方法によって達成される。さらに、本発明の目的は、複数のノードを備えるピアツーピア・オーバーレイ・ネットワークの第１のノードであって、ピアツーピア・オーバーレイ・ネットワークにおいてルーティングするために後続リストを保持し、後続リストはピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して第１のノードに続いて後続となる少なくとも２つの後続ノードの識別子を指定し、第１のノードは後続リストにリストされた少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働するかどうかを決定するように適合された制御ユニットを備え、少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働する場合、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して少なくとも２つの後続ノードの後続となり、少なくとも２つの後続ノードとは異なる物理ハードウェア上で稼働する、複数のノードのうちの少なくとも１つの追加のノードの識別子を後続リストに追加する第１のノードによって達成される。また、本発明の目的は、複数のノードを備えるピアツーピア・オーバーレイ・ネットワークにおいてルーティングのために後続リストを提供するコンピュータプログラム製品であって、後続リストは、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して、複数のノードのうちの第１のノードに続いて後続となる少なくとも２つの後続ノードの識別子を指定し、コンピュータプログラム製品は、第１のノードによって実行されるとき、後続リストにリストされた少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働するかどうかを決定するステップと、少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働する場合、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して少なくとも２つの後続ノードの後続となり、少なくとも２つの後続ノードとは異なる物理ハードウェア上で稼働する、複数のノードのうちの少なくとも１つの追加のノードの識別子を後続リストに追加するステップとを実行するコンピュータプログラム製品によって達成される。
【０００９】
冗長後続リストが、従来技術によるシステムの場合のように、オーバーレイ固有のノードＩＤのみに基づく場合、すなわち、基礎となる物理ハードウェアを考慮しない場合、後続リストに従ってルーティングするノードの次に後続となる２つの後続ノードが、同一の物理マシン（たとえば、パーソナルコンピュータ）上に位置する可能性もある。この物理ハードウェアに障害が発生する場合、２つの後続ノードは同時にＤＨＴを終了し、ノードによって保持される後続リストが障害の発生したハードウェア上で稼働しているピアへのリンクしか有していない場合、Ｐ２Ｐオーバーレイ・ネットワークのトポロジ構造は破損してしまう。本発明は、従来技術において遭遇するこの問題を解決する。
【課題を解決するための手段】
【００１０】
本発明は、オーバーレイ・トポロジの特性に基づくが、同時にＰ２Ｐオーバーレイ・ネットワークの基礎となる物理ハードウェアを尊重する後続リストを提供するためのアルゴリズムを導入する。本発明は、ネットワークのノードが稼働している物理ハードウェアに関する情報を、後続リストの提示および後続リストに基づくルーティングに加えるネットワーク・ノード（＝論理ピア）を説明する。
【００１１】
（たとえば、ＸＥＮ、ＶＭｗａｒｅのような、オペレーティングシステムの仮想化を通じて）同一の物理マシン上に位置するノードがこのことを認識していない従来技術の場合とは異なり、本発明は、ネットワーク・ノードの１つまたは複数が稼働している物理ハードウェアを識別して、適切な冗長後続リストのために物理ハードウェアに関するこの情報を考慮する後続リストを提供するためのシステムを提示する。本発明によれば、後続リストが同一のハードウェアＡ上で稼働している後続ノードのみをリストする場合、後続リストもまた異なるハードウェアＢ上で稼働している１つまたは複数の後続ノードを備えるように、後続リストは修正される。
【００１２】
本発明は、後続リストを提供する確実な方法をもたらす。後続リストは、ノードに障害が発生した場合にトポロジ構造の破損を防ぐための戦略であるため、本発明による後続リストは、潜在的または実際の後続ノードの物理ハードウェアを尊重して、後続ノードが同一の物理ノード上で稼働しないようにする。これは、従来技術のＤＨＴアルゴリズムによっては考慮されない。特に、小規模な配置（最大１００ノード）においては、ノードは（たとえば、ＶＭｗａｒｅ、Ｘｅｎなどのような、仮想化環境において）同一の物理ノード上でホスティングされる。そのため、ノードの物理ハードウェアが無視される従来技術においては、複数のピアに障害が発生した場合にトポロジ構造が破損する可能性が高い。本発明は、ノードの物理ハードウェアを考慮する後続リストを提示することにより、このリスクを回避する。
【００１３】
したがって、本発明は特に、隣接ノードが同一の物理マシン上でホスティングされる可能性が高まる小規模な配置において有用である。本発明は、物理ロケーションおよびオーバーレイ・ノードＩＤのマッピングを用いてトポロジ構造の破損を回避する。
【００１４】
本発明は、仮想環境においてＰ２Ｐトポロジの冗長性を保持する。さらに、本発明は、後続リストが正しい長さを有するように自動的に最適化されるので、より高い効率をもたらす。
【００１５】
後続リストがオーバーレイの特性に基づく現在のＰ２Ｐオーバーレイとは対照的に、本発明は、Ｐ２Ｐネットワークにおいてオーバーレイ・トポロジ作成および冗長後続リストの提示のための分散された物理ハードウェア・インフラストラクチャの上部で仮想化ソリューションを考慮するソリューションを提供する。
【００１６】
さらに、本発明は、サーバ・クラスタまたは純正Ｐ２Ｐテレフォニーシステムのような、分散環境において有利に使用されうる基盤技術の改良について説明する。特にこの種の技術は、ＩＥＴＦ  Ｐ２Ｐ  ＳＩＰ（ＩＥＴＦ＝Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｎｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ、ＳＩＰ＝Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に含まれる場合もある。
【００１７】
さらなる利点は、従属請求の範囲により示される本発明の実施形態により達成される。
【００１８】
本発明の好ましい実施形態によれば、少なくとも２つの後続ノードが同一の物理ハードウェア上で稼働する場合、異なる物理ハードウェア上で稼働する後続リストにリストされた後続ノードの合計数が事前定義された冗長因数と等しくなるように、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して少なくとも２つの後続ノードの後続となり、少なくとも２つの後続ノードとは異なる物理ハードウェア上で稼働する、複数のノードの同数の追加のノードの識別子が後続リストに追加される。
【００１９】
好ましい実施形態によれば、結合ノードが後続リストにリストされた後続ノード間のピアツーピア・オーバーレイ・ネットワークを結合するとき、結合ノードの識別子は後続リストに追加される。結合ノードが稼働する物理ハードウェアが決定される。好ましくは、前記決定は、第１のノードによって実行される。異なる物理ハードウェアで稼働する後続リストにリストされた後続ノードの合計数が、事前定義された冗長因数と等しい場合、少なくとも１つの追加のノードの識別子が後続リストから削除されるが、合計数は少なくとも１つの追加のノードを除く、つまり前記合計数は少なくとも１つの追加のノードをカウントせずに決定される。
【００２０】
第１のノードが、それ自身のハードウェアに関する情報、およびネットワークのその他のノードのハードウェアに関する情報を検出することが可能である。この検出の目的は、複数のノードのうちのいずれのノードが同一の物理ハードウェア上で稼働しているかを見出すことである。物理ハードウェアを検出する可能な方法はいくつかある。
【００２１】
本発明の好ましい実施形態によれば、少なくとも２つの後続ノードが稼働する前記物理ハードウェアは、少なくとも２つの後続ノードのプラットフォームから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードが稼働する前記物理ハードウェアの決定に加えて、またはその代替として、少なくとも１つの追加のノードが稼働する物理ハードウェアは、少なくとも１つの追加のノードのプラットフォームから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードおよび少なくとも１つの追加のノードがそれぞれ稼働する前記物理ハードウェアの決定に加えて、またはその代替として、結合ノードが稼働するハードウェアは、結合ノードのプラットフォームから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。プラットフォームは、少なくとも２つの後続ノードおよび／または少なくとも１つの追加のノードおよび／または結合ノードが稼働する、たとえば、ＣＰＵ（＝Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（中央演算処理装置））、コンピュータ、ネットワークユニットなどの、物理ハードウェアであってもよい。情報は、少なくとも２つの後続ノードおよび／または少なくとも１つの追加のノードおよび／または結合ノードのプラットフォームに関連付けられている、たとえばＣＰＵ  ＩＤ、ＭＡＣアドレス、ロケーション、ＩＰアドレス、ロケーションなどであってもよい（ＭＡＣ＝Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ（メディアアクセス制御））。これは、ソフトウェア・アプリケーションが、ネットワーク・ノードのオペレーティングシステムの助けを借りて見出すことができる任意の方法を含む。たとえば、ＭＡＣアドレスは通常、物理ホストを決定する比較的確実な方法であるが、これはハードウェア仮想化技術が使用される場合には当てはまらない場合もある。
【００２２】
本発明は、Ｃｈｏｒｄピアによって実行されるレプリケーション・メソッドを変更するので、物理ノードに障害が発生した場合にデータの可用性を向上させることができる。本発明は、各ピアノードを、たとえばＣＰＵ  ＩＤ、ＭＡＣアドレスなど、ピアノードをホスティングするハードウェア・プラットフォームを識別するハードウェア識別子に関連付ける。ピアノードは、ハードウェア識別子を使用して、たとえばピアＩＤに関してなど、トポロジ構造に関して好ましくは最も近接する後続である、異なるハードウェア・プラットフォーム上で稼働している少なくとも１つのピアノードに責任を負うリソースのセットを複製する。
【００２３】
本発明のもう１つの好ましい実施形態によれば、少なくとも２つの後続ノードが稼働する前記物理ハードウェアは、少なくとも２つの後続ノードにリンクされるか、またはこれらに関連付けられている外部管理ユニットから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードが稼働する前記物理ハードウェアの決定に加えて、またはその代替として、少なくとも１つの追加のノードが稼働する物理ハードウェアは、少なくとも１つの追加のノードにリンクされるか、またはこれに関連付けられている外部管理ユニットから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードおよび少なくとも１つの追加のノードがそれぞれ稼働する前記物理ハードウェアの決定に加えて、またはその代替として、結合ノードが稼働するハードウェアは、結合ノードにリンクされるか、またはこれに関連付けられている外部管理ユニットから情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。外部管理ユニットはまた、外部クラスタ管理エンティティであってもよく、「クラスタ」という用語は、ネットワーク・ノードのクラスタとしてのＰ２Ｐオーバーレイ・ネットワークを指す。
【００２４】
たとえばノードＩＤを構成するために、外部クラスタ管理エンティティが使用可能な場合、外部クラスタ管理エンティティはまた、クラスタの物理トポロジに関する情報を提供することもできる。外部クラスタ管理エンティティは、中央登録サーバ、ブート・ストラップ・サーバ、またはネットワーク管理および監視サーバであってもよい。
【００２５】
ソフトウェア・アプリケーションが必要なハードウェア情報を検出することができない場合、ノードのマネージャによるノードの手動（事前）構成が解決策となる。好ましくは、少なくとも２つの後続ノードが稼働する前記物理ハードウェアは、ピアツーピアネットワークのネットワークオペレータから、および／または少なくとも２つの後続ノードのユーザから対応する情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードが稼働する前記物理ハードウェアの決定に加えて、またはその代替として、少なくとも１つの追加のノードが稼働する物理ハードウェアは、ピアツーピアネットワークのネットワークオペレータから、および／または少なくとも１つの追加のノードのユーザから対応する情報を取り出すことによって決定される。好ましくは、前記取り出しは、第１のノードによって実行される。少なくとも２つの後続ノードおよび少なくとも１つの追加のノードがそれぞれ稼働する前記物理ハードウェアの決定に加えて、またはその代替として、結合ノードが稼働するハードウェアは、ピアツーピアネットワークのネットワークオペレータから、および／または結合ノードのユーザから情報を取り出すことによって決定される。
【００２６】
好ましい実施形態において、少なくとも２つの後続ノードが稼働する前記物理ハードウェアは、少なくとも２つの後続ノードに関連付けられているアプリケーションレイヤの測定を用いて決定される。好ましくは、前記決定は、第１のノードによって実行される。少なくとも２つの後続ノードが稼働する前記物理ハードウェアの決定に加えて、またはその代替として、少なくとも１つの追加のノードが稼働する物理ハードウェアは、少なくとも１つの追加のノードに関連付けられているアプリケーションレイヤの測定を用いて決定される。好ましくは、前記決定は、第１のノードによって実行される。少なくとも２つの後続ノードおよび少なくとも１つの追加のノードがそれぞれ稼働する前記物理ハードウェアの決定に加えて、またはその代替として、結合ノードが稼働するハードウェアは、結合ノードに関連付けられているアプリケーションレイヤの測定を用いて決定される。好ましくは、前記決定は、第１のノードによって実行される。
【００２７】
アプリケーションレイヤの前記測定は、「ｐｉｎｇ」メッセージの交換のような、アプリケーションレベルのプローブ機構であってもよい。前記ｐｉｎｇメッセージの交換に基づいて、ノードは、その他のノードが同一のデバイス上でホスティングされる場合、接続待ち時間から推定することができる。また、ノードが同一のハードウェア上にある場合、その他の既知の方法を使用して推定することもできる。たとえば、ネットワーク調整システムは、すべてのリンクの明示的な測定を必要とすることなく、一部のノード間待ち時間を測定することによって、基礎となるネットワークに関する知識を得る。これにより、ノードが物理トポロジにおいて近接する場合、ノードを論理オーバーレイ内で互いに近づけることができる。もう１つの例は、その他のノードの待ち時間を測定することにより、位置についてそのルーティング・テーブルを継続的に調節するＰａｓｔｒｙである。
【００２８】
好ましくは、制御ユニットは、ルーティング・ポリシーに基づいて、第１のノードから後続リストのノードにピアツーピア・メッセージをルーティングするように適合される。後続リストの前記ノードが、たとえば後続リストの前記ノードが稼働している／稼働していた物理ハードウェアの障害により、ピアツーピア・オーバーレイ・ネットワークで到達可能ではない場合、制御ユニットは、ルーティング・ポリシーに基づいて第１のノードから少なくとも１つの追加のノードにピアツーピア・メッセージをルーティングするように適合される。
【００２９】
好ましくは、ピアツーピア・メッセージは、ルーティング・ポリシーに基づいて、第１のノードから少なくとも２つの後続ノードのうちの１つまたは複数のノードにルーティングされる。少なくとも２つの後続ノードのうちの前記１つまたは複数のノードが、たとえば少なくとも２つの後続ノードが稼働している／稼働していた物理ハードウェアの障害により、ピアツーピア・オーバーレイ・ネットワークで到達可能ではない場合、ピアツーピア・メッセージは、ルーティング・ポリシーに基づいて第１のノードから少なくとも１つの追加のノードにルーティングされる。
【００３０】
ルーティング・ポリシーは、後続リストのエントリを使用する順序を指定する。後続リストがノードの識別子のシーケンスを備えることは可能である。次いで、ルーティング・ポリシーは、第１のノードが最初に、識別子が後続リストの第１の識別子である後続リストの後続ノードにＰ２Ｐメッセージをルーティングしようと試みるよう規定することができる。これが成功しない場合、つまりＰ２Ｐメッセージがその宛先に到達しない場合、第１のノードは、識別子が後続リストの第２の識別子である少なくとも１つの追加のノードにＰ２Ｐメッセージをルーティングしようと試みる、というように続行する。
【００３１】
本発明によれば、２つの異なる物理ハードウェア・ユニットに同時に障害が発生する可能性は低いので、少なくとも１つの追加のノードおよび少なくとも２つの後続ノードが異なる物理ハードウェア上で稼働すれば、少なくとも２つの後続ノードが到達可能ではないときに、少なくとも１つの追加のノードは到達可能になる。しかし、さらに高度な冗長性が必要とされる場合、異なる物理ハードウェア上で稼働する後続リストにリストされた後続ノードの合計数が事前定義された冗長因数と等しくなるように、ピアツーピア・オーバーレイ・ネットワークのトポロジ構造に関して少なくとも２つの後続ノードの後続となり、少なくとも２つの後続ノードとは異なる物理ハードウェア上で稼働する、複数のノードの同数の追加のノードの識別子が、後続リストに追加される。
【００３２】
好ましくは、本発明は、同一の物理ハードウェア上で稼働している２つまたはそれ以上の次の後続ノードがオーバーレイを終了する場合に、Ｐ２Ｐオーバーレイを保持するために動的冗長後続リスト・アルゴリズムを導入する。動的冗長後続リスト・アルゴリズムは、ＲＳＬ内の１つまたは複数の後続ノードが、たとえば仮想化ソフトウェアによって、同一ハードウェア上で稼働している場合、後続ノードの識別子が冗長後続リストに追加されるよう規定する。各ピアが各自のハードウェア上で稼働する純正Ｐ２Ｐ環境の場合と同様にＣｈｏｒｄの冗長因数を仮想環境において保持するため、ピアは、純正Ｐ２Ｐ環境の場合と同数の冗長後続ノードを異なるハードウェアに対して保持する必要がある。したがって、同一の仮想プラットフォーム上で稼働しているピアの数は重要ではない。それに加えて、動的冗長後続リスト・アルゴリズムは、ＲＳＬにリストされたノードとは異なるハードウェア上で稼働している新しいピアが、Ｐ２Ｐネットワークを結合して、冗長後続リストに追加されている場合、ＲＳＬから削除されるよう規定する。
【００３３】
本発明の前述およびさらなる特徴および利点は、添付の図面と併せて現在好ましい例示の実施形態の以下の詳細な説明を読むことにより深く理解されるであろう。
【図面の簡単な説明】
【００３４】
【図１ａ】複数のノードを備える従来技術の構造化Ｐ２Ｐオーバーレイ・ネットワークを示す図である。
【図１ｂ】従来技術の、第１の後続ノードがクラッシュしてリングを去る場合を示す図である。
【図２】本発明の１つの実施形態によるＰ２Ｐオーバーレイ・ネットワークを示す図である。
【図３ａ】図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける物理ハードウェアの障害を示す図である。
【図３ｂ】図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける物理ハードウェアの障害を示す図である。
【図４ａ】本発明の１つの実施形態による図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける追加アルゴリズムを示す図である。
【図４ｂ】本発明の１つの実施形態による図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける追加アルゴリズムを示す図である。
【図５ａ】本発明の１つの実施形態による図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける削除アルゴリズムを示す図である。
【図５ｂ】本発明の１つの実施形態による図２に示されるＰ２Ｐオーバーレイ・ネットワークにおける削除アルゴリズムを示す図である。
【発明を実施するための形態】
【００３５】
図２は、本発明の１つの実施形態によるＰ２Ｐオーバーレイ・ネットワークを示す。特に、図２は、本発明の１つの実施形態によるＣｈｏｒｄリングＮを表す。ＣｈｏｒｄリングＮは、参照符号０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０が、ノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０のノードＩＤを表すことも意図される複数のノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０を備える。ノードのノードＩＤは、オーバーレイ固有のＤＨＴアルゴリズムによって割り当てられ、たとえば登録サーバに基づくか、またはノード自身によってランダムに選択されてもよい。各ノードは、ＣｈｏｒｄリングＮのピアを表す。
【００３６】
方法の第１のステップにおいて、第１のノード２００は、第１のノード２００によって保持される後続リストに含まれる後続ノードが稼働している物理ハードウェアを決定する。第１のノード２００が、２つのエントリを持つ後続リストＬを保持し、１つのエントリは、ノード２１１の、たとえばノードＩＤのような識別子であり、もう一方のエントリは、ノード２２３の、たとえばノードＩＤのような識別子であると仮定する。
【００３７】
第１のノード２００は、１つまたは複数の連結されたコンピュータ、つまり、ハードウェア・プラットフォーム、ハードウェア・プラットフォームに基づくソフトウェアプラットフォーム、ならびにソフトウェアおよびハードウェア・プラットフォームによって形成されるシステム・プラットフォームによって実行される複数のアプリケーション・プログラムから成る。第１のノード２００の機能は、それらのアプリケーション・プログラムの実行により提供される。アプリケーション・プログラムまたはそれらのアプリケーション・プログラムの選択された部分は、システム・プラットフォーム上で実行されるとき、以下に説明するようなルーティングサービスを提供するコンピュータ・ソフトウェア製品を構成する。さらに、そのようなコンピュータ・ソフトウェア製品は、それらのアプリケーション・プログラムまたはアプリケーション・プログラムの前記選択された部分を格納する記憶媒体によって構成される。
【００３８】
機能の観点からは、第１のノード２００は、第１のノードの機能の制御のための制御ユニット、データを格納するための記憶媒体、および他のノードとの情報の交換のためのインターフェイスを備える。
【００３９】
物理ハードウェアを決定するために、第１のノード２００は、後続ノード２１１、２２３が稼働している物理ハードウェアの識別に役立つ任意の使用可能な情報を使用することができる。第１のノード２００が、たとえばＣＰＵ  ＩＤ、ＭＡＣアドレス、ロケーション、ＩＰアドレスなど、後続ノード２１１、２２３のプラットフォームから情報を収集することにより、後続ノード２１１、２２３の物理ハードウェアに関する情報を取り出すことが可能である。次いで、第１のノード２００は、ＣｈｏｒｄリングＮのその他のノード０、２０、５０、８７、１１２、１４０、１７９、２４０から対応する情報を収集して、収集された情報の断片を比較することができる。
【００４０】
後続ノード２１１、２２３のプラットフォームから使用可能な情報（たとえば、ＣＰＵ  ＩＤ、ＭＡＣアドレス、ロケーション、ＩＰ、・・・）に加えて、第１のノード２１１は、アプリケーションレイヤの測定を用いて収集される、後続ノード２１１、２２３が稼働しているハードウェアのユーザによって実行された手動構成を用いて提供される、外部管理エンティティから取り出される、などした情報を使用することができる。同様に、その他の各ノード０、２０、５０、８７、１１２、１４０、１７９、２１１、２２３、２４０は、それぞれが稼働している物理ハードウェアの識別に役立つ任意の使用可能な情報を使用することができる。その他の各ノード０、２０、５０、８７、１１２、１４０、１７９、２１１、２２３、２４０が、それぞれの物理ハードウェアに関して収集された情報を第１のノード２００に伝達することが可能である。また、第１のノード２００が、その他のノード０、２０、５０、８７、１１２、１４０、１７９、２１１、２２３、２４０が稼働している物理ハードウェアにアクセスして、その他のノード０、２０、５０、８７、１１２、１４０、１７９、２１１、２２３、２４０からそれぞれの物理ハードウェアに関する情報を収集することも可能である。
【００４１】
物理ハードウェアを分類するこのステップの結果は、ハードウェアの分類を示し、それをノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０の異なるアイコン形状によって表す図２に示される。各形状は、別々の物理マシンを表す。それはつまり、ノード０、５０、１４０、２１１、および２２３が第１のマシン上で稼働するということである。ノード２０、１１２、１７９、および２４０は、第２のマシン上で稼働する。ノード８７および２００は、第３のマシン上で稼働する。
【００４２】
従来技術において遭遇し、本発明により解決される問題は、図３ａおよび図３ｂを用いて示される。（たとえば、ＸＥＮ、ＶＭｗａｒｅのような、オペレーシングシステムの仮想化を通じて）図３ａにおいて円で指示されるように、ノード２１１およびノード２２３はいずれも同一の物理ハードウェア上で稼働する。図３ｂは、後続リストＬに含まれる２つの後続ノードが稼働する物理ハードウェアの障害を示す。ノード２１１および２２３は、同一のマシン上で稼働している。図３ｂにおいて、このマシンはクラッシュして、ノード２１１および２２３はリングＮを去る。その結果、ノード２００は、リング・トポロジを保持するためのアクティブなピアへのリンクから外れる。この場合、第１のノード２００に関連付けられているＲＳＬで保持された後続ノード２１１、２２３のいずれもハードウェア障害のために到達可能ではないため、第１のノード２００は後続ノードへの接続を失う。
【００４３】
図４ａは、本発明による動的冗長後続リスト適合のための方法を示す。ノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２２３、２４０は、それぞれが稼働している物理ハードウェアを識別する。第１のノード２００は、同一の物理ハードウェア上でホスティングされる後続の隣接ピア２１１、２２３がクラッシュした場合、Ｐ２Ｐオーバーレイの安定性を維持するために動的冗長後続リスト・アルゴリズムを導入する。それにより、このアルゴリズムは、追加アルゴリズムおよび削除アルゴリズムという２つのサブアルゴリズムを備える。
【００４４】
追加アルゴリズムは、ＲＳＬにリストされた複数の後続隣接ピアが同一の物理マシン上で稼働している場合に、ピアをＲＳＬに追加する。
【００４５】
図４ａに示されるように、第１のノード２００は、第１のノード２００の後続リストＬに追加のノード２４０を追加して、後続リストＬを拡張する。これを追加する理由は、その識別子だけがこれまで第１のノード２００の後続リストＬのエントリであった２つの後続ノード２１１、２２３が、同一の物理マシン上で稼働しているからである。したがって、２つの後続ノード２１１、２２３が稼働するマシンがクラッシュする場合、第１のノード２００には引き続き第１のノード２００の後続リストＬにノード２４０が残っており、第１のノード２００がネットワークＮのリング・トポロジを閉じることができる。
【００４６】
各ピアが各自のハードウェア上で稼働する通常のＣｈｏｒｄ環境の場合と同じ冗長因数を得るため、ピアは、冗長因数が指定するピアの数と同数の、異なるハードウェア上で稼働するピアを後続リストに追加する必要がある。
【００４７】
図４ｂは、ＣｈｏｒｄリングＮが、複数のノード０、２０、５０、８７、１１２、１４０、１７９、２００、２１１、２１９、２２３、２４０、および２４９を備える状況を示す。本発明の方法により、３の冗長因数が実現される事例を仮定する。３のＣｈｏｒｄ冗長因数では、ノード２１１および２２３が同一の物理マシン上で稼働しており、ノード２１９および２４０も同一の物理マシン上で稼働しているので、５つのノード２１１、２１９、２２３、２４０、および２４９が後続リストＬに含まれることが必要となる。
【００４８】
以前追加された追加のノードが必要ではなくなる場合、削除アルゴリズムがＲＳＬからピアを削除する。これは、ノードが、ＲＳＬによってカバーされるＩＤスペースに加わるか、または去る場合である。
【００４９】
図５ａは、第１のノード２００が、２つの元の後続ノード２１１および２２３、ならびに後に追加された追加のノード２４０を含む後続リストＬを保持する状況を示す。２つの後続ノード２１１および２２３が稼働する物理ハードウェアは、同一である。追加のノード２４０が稼働する物理ハードウェアは、２つの元の後続ノード２１１および２２３が稼働する物理ハードウェア上とは異なる。
【００５０】
結合ノード２２０は、後続リストＬにリストされた後続ノード２１１と２２３の間のピアツーピア・オーバーレイ・ネットワークＮを結合する。たとえばノードＩＤ２２０のような、結合ノード２２０の識別子は、第１のノード２００の後続リストに追加される。好ましくは、第１のノード２２０は、その後続リストＬへの修正を実行する。
【００５１】
第１のノード２２０は、結合ノード２２０が稼働する物理ハードウェアを決定する。第１のノード２２０は、結合ノード２２０が稼働する物理ハードウェアが、２つの元の後続ノード２１１および２２３が稼働する物理ハードウェアとは異なり、追加のノード２４０が稼働する物理ハードウェアとは異なることを検出する。
【００５２】
ルーティング・ポリシーが、２の冗長因数が十分であることを指定するので、第１のノード２００は、追加のノード２４０の識別子を後続リストＬから削除する。次いで、識別子が後続リストＬから削除されている少なくとも１つの追加のノード２４０をカウントすることなく、異なる物理ハードウェア上で稼働する後続リストＬにリストされた後続ノード２１１、２２０の合計数は、事前定義された２の冗長因数と等しくなる。
【図１ａ】
2011525766.tif 000003
【図１ｂ】
2011525766.tif 000004
【図２】
2011525766.tif 000005
【図３ａ】
2011525766.tif 000006
【図３ｂ】
2011525766.tif 000007
【図４ａ】
2011525766.tif 000008
【図４ｂ】
2011525766.tif 000009
【図５ａ】
2011525766.tif 000010
【図５ｂ】
2011525766.tif 000011
【国際調査報告】
2011525766.tif 000012
2011525766.tif 000013