JP4750457B2 - データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング - Google Patents

データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング Download PDF

Info

Publication number
JP4750457B2
JP4750457B2 JP2005119800A JP2005119800A JP4750457B2 JP 4750457 B2 JP4750457 B2 JP 4750457B2 JP 2005119800 A JP2005119800 A JP 2005119800A JP 2005119800 A JP2005119800 A JP 2005119800A JP 4750457 B2 JP4750457 B2 JP 4750457B2
Authority
JP
Japan
Prior art keywords
node
tree
dht
data
tree node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005119800A
Other languages
English (en)
Other versions
JP2005353039A (ja
JP2005353039A5 (ja
Inventor
リン シディング
シエ シン
チェン ユー
チャン チェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005353039A publication Critical patent/JP2005353039A/ja
Publication of JP2005353039A5 publication Critical patent/JP2005353039A5/ja
Application granted granted Critical
Publication of JP4750457B2 publication Critical patent/JP4750457B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、分散データ構造、および、データ構造を利用してピアツーピアシステムと対話するための技術、ならびに、アプリケーションレベルマルチキャスティングを有する技術を使用することに関する。
ピアツーピア(P2P)システムは、等しいまたは類似の能力および責任を有する参加マシンを接続するネットワークを使用する。これらのシステムは、従来のサーバの調整なしに(または、サーバによる最小限のセットアップ調整を有して)タスクを実行する。例えば、図1は、P2Pシステム100の高レベルの図である。システム100には、等しいまたは類似の能力および責任を有するピアエンティティ(102〜112)の集まりが含まれる。一例では、ピアエンティティ(102〜112)は、インターネットまたはイントラネットを介して共に結合された、独立したパーソナルコンピュータデバイスに対応する場合がある。ピアエンティティ(102〜112)は、ファイルまたは他の情報をそれらの間で直接(例示的通信パス114によって示すように)、サーバの助けなしに転送することができる。P2Pシステムの概略紹介を見つけることができる(例えば、非特許文献1参照)。
P2Pシステムは一般に分散ハッシュテーブル(DHT)を使用して、システム内で参加するピアエンティティからのオブジェクトの格納および検索を実施する。その名が示唆するように、分散ハッシュテーブル(DHT)は、異なるコンピュータデバイスに関連付けられた複数のストアに渡って分散されるなど、複数のロケーションに渡って分散されるハッシュテーブルを指す。分散ハッシュテーブルは、それぞれ割り当てられたIDを有する複数のDHTノードを規定する。DHTノードは集合的に、抽象DHT論理空間を定義する。オブジェクトにハッシング関数を受けさせてキーを作成することによって、オブジェクトをこのDHT論理空間に挿入し、そこから検索することができる。次いで、このキーが使用されて、DHT論理空間内でオブジェクトを受信するようになるか、あるいはそこからオブジェクトを検索することができる、特定のターゲットノードIDが探し出される。すなわち、各DHTノードはキーの範囲に関連付けられ、オブジェクトのキーが特定のDHTノードに関連付けられたキーの範囲内に入るかどうかに応じて、オブジェクトはその特定のDHTノードに追加され、あるいはその特定のDHTノードから検索される。非分散ハッシュテーブルの実施とは異なり、DHTノードは自由にDHT論理空間に結合し、そこから離れることができ(例えば、コンピュータデバイスがP2Pシステムに結合すること、およびそこから離れることにそれぞれ対応する)、そのため、これらのイベントに対処するための機能性が提供されなければならない。
様々なDHT方法が、P2Pシステム内のオブジェクトの格納および検索を管理するために開発されている。図2は、Content Addressable Network(CAN)方法を示し、例えば説明されている(例えば、非特許文献2参照)。この方法はDHT論理空間をD次元デカルト空間200としてモデリングする。CAN方法は、ノードがDHT空間200に結合する場合、空間200をパーティション化する。例えば、ノードn1が結合する場合、CAN方法は空間200全体をこのノードに割り振る。ノードn2が結合する場合、CAN方法は空間200を半分に分割し、各半分をノードn1およびn2にそれぞれ割り振る。ノードn3が結合する場合、CAN方法は右半分を上下の4分の1に分割し、上の4分の1をノードn2へ、下の4分の1をn3に割り当てる。ノードn4が結合する場合、CAN方法は右下の4分の1を、左の8分の1(ノードn3に割り当てられる)および右の8分の1(ノードn4に割り当てられる)に分割する。この手順は、ノードが追加および除去されることを動的に計上するために必要な回数で繰り返される。結果して生じるパーティションは、オブジェクトを分散ハッシュテーブルに挿入し、そこから検索するために使用される論理空間を定義する。ノードはその空間にマップするオブジェクトを「所有」する、ということができる。
図3は、CHORD(例えば、非特許文献3参照)と呼ばれるもう1つの方法を示す。この方法では、DHT論理空間は円形空間300として構築される。DHTノードにはIDが割り当てられ、それらの割り当てられたIDに基づいて、円形のDHT論理空間300に追加される。例えば、図3に示す例示的DHTノードn1、n2、n3、n4およびn5には、円形DHT論理空間300上のそれらの「配置」を管理するIDが割り当てられている。図2の場合のように、DHTノードは、追加される場合にDHT論理空間300をパーティション化し、複数の部分空間またはゾーンを定義する。これらのゾーンは、各ノードが「所有」するオブジェクトを定義する。例えば、オブジェクトを、図3に示すDHT方法によって管理される分散ハッシュテーブルに挿入するために、オブジェクトはハッシング関数を受けてキーが作成される。オブジェクトは次いで、そのキーに割り当てられたゾーンを有するDHTノードで(例えば、オブジェクトのキーを含むキーの範囲を包含するDHTノードで)格納される。図2および図3の場合の両方で、様々なルックアップ方法を使用して、P2Pシステム内で特定のノードを高速に発見することができる。一般に、ルックアップ方法は、所望のターゲットDHTノードに狭めるために、いくつかの「ホップ」をDHT論理空間内で作成することを含む。この探索を促進するために、様々なメカニズムが一般に提供される。例えば、CHORD方法内の各DHTノードは、他のDHTノードのセットのIDを格納する。これらの他のIDは指数関数的な方法で増す可能性があり、論理空間300を精査する、いわゆる「フィンガー」を確立する可能性がある。これにより、ルックアップ手順は、少数のホップにより所望のDHTノードを高速に探し出すことができる。
図2および3は単に、2つの例示的な知られているDHTルーティング方法の高レベルの概観を提供する。多数の他の方法がある。例えば、別のよく知られているルーティング方法はPASTRYルーティング方法であり、説明されている(例えば、非特許文献4参照)。
D. S. Milojicic, V. Kalogeraki, R. Lukose, K. Nagaraja, J. Pruyne, B. Richard, S. Rollins, and Z. Xu., "Peer-To-Peer Computing," Technical Report HPL-2002-57, HP Lab, 2002 S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Shenker, "A Scalable Content-Addressable Network," ACM SigComm 2001, San Diego, CA, USA, Aug. 2001 I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan, "Chord: a Scalable Peer-To-Peer Lookup Service for Internet Applications," ACM SigComm 2001, San Diego, CA, USA, Aug. 2001 A. Rowstron and P. Druschel, "Pastry: Scalable, Distributed Object Location and Routing for Large-Scale Peer-To-Peer Systems," 18th FIFP/ACM International Conference on Distributed Systems Platforms (Middleware), Heidelberg, Germany, Nov. 2001
P2Pシステムは、従来のクライアント−サーバ方法に勝る多数の利点を提供する。例えば、P2Pシステムは、中央の調整なしに自動的および自由に拡張および縮小する能力を有する。しかし、この監視的調整の欠如はまた様々な課題をもたらす。例えば、P2Pシステムを、あるグローバル関数を実行するために一斉に動作させることが望ましい場合がある。様々な場合に、P2Pシステムの参加者からデータを収集することが望ましい場合がある。または、情報をP2Pシステム内の参加者に配布することが望ましい場合がある。サーバ−クライアントの手法では、サーバは単にそのクライアントをポーリングして、そのクライアントから情報を収集することができ、あるいは、情報をそのクライアントにブロードキャストして、情報をそのクライアントに配布することができる。しかし、データの収集および配布はP2Pシステムにおいてより問題になり、これは、P2Pシステムが、自由に出入りすることができる相互接続されたピアの緩い連合によって形成されるからである。集中型の従来のレポーティング機能の追加は、P2Pシステムを複雑にし、したがってその柔軟性および有用性を低減する影響を有する場合がある。
したがって、当技術分野では、例えば、その参加者からのデータの収集、および、その参加者への情報の配布を可能にする、P2P DHTと対話するための効率的な方法のための例示的必要性がある。また、P2P DHTを効率的に編成し、アプリケーションレベルマルチキャスティングオペレーションにおけるように、その効率から利益を得るようになるオペレーションにおいてP2P DHTと対話することが望ましい。
1つの例示的実施態様によれば、データオーバーレイを構築するための方法が説明される。
この方法は、分散ハッシュテーブル(DHT)を提供することを含み、分散ハッシュテーブルは、ピアツーピアシステムへのオブジェクトの挿入、およびピアツーピアシステムからのオブジェクトの検索を管理し、分散ハッシュテーブルは、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含む、論理空間を含む。この方法はまた、データオーバーレイをデータ構造として分散ハッシュテーブルの論理空間の上に構築することをも含み、この構築は、データ構造内のオブジェクトをDHTノードに関連付けることによって、および、データ構造内のオブジェクトの間でリンクを確立することによって行う。データオーバーレイはツリーのトポロジを有し、ツリーは、各DHTノードに関連付けられたツリーノードを有する。各ツリーノードは、それに関連付けられた各ツリーノードゾーンを有し、各ツリーノードゾーンは、分散ハッシュテーブルの論理空間の一部に対応する。
マシンはDHTの論理空間にマップされる。各マシンは、1つまたは複数のツリーノードゾーンに対応する。各マシンはその代表ノードとして、それに対応する1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応するツリーノードを選択する。各代表ノードはその親ノードとして、より大きいサイズを有する隣接ツリーノードゾーンのための代表ノードである、もう1つの代表ノードを選択する。
マシンがDHTの論理空間にマップされた後、メタデータを、各マシンでのメタデータの収集にすることができる。収集されたメタデータを各マシンからその代表ノードに送信することができ、それらの代表ノードは、そのように受信されたメタデータをそれらの各親ノードに送信することができる。ツリー内の最高ノード(例えば、ルートノード)で受信されたメタデータを処理して、各親および代表ノードを介して各マシンに送信することができる。メタデータを、例えば、各マシンのオペレーションに関する情報にすることができ、処理されたメタデータを、各マシンのオペレーションを管理することができる命令にすることができる。
追加の実施態様および特徴を以下で説明する。
実施態様のより完全な理解は、以下の詳細な説明が添付の図面と共に解釈される場合、これを参照することによって有することができる。
同じ番号は、本開示および図面の全体に渡って、類似のコンポーネントまたは特徴を参照するために使用される。100からの一連の番号は、最初に図1で発見される特徴を指し、200からの一連の番号は、最初に図2で発見される特徴を指し、300からの一連の番号は、最初に図3で発見される特徴を指す、などとなる。
本明細書で説明する方法は、ピアツーピア(P2P)システムで使用される分散ハッシュテーブル(DHT)の「上に」構築されたデータ構造に関する。ピアツーピア(P2P)システムという用語は、図1の相互接続ネットワーク100など、参加者が他者と直接対話することができる、参加者のいかなる相互接続をも表すことができる。一実施態様では、P2Pシステムは、いかなるサーバタイプのエンティティの支援をも必要としない。参加者にはいかなる種類のエンティティもが含まれる可能性があり、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末、アプリケーションに特化したコンピューティングデバイスなどが含まれる。参加者は、ハードワイヤードおよび/または無線通信ルーティングメカニズム、様々なルータ、ゲートウェイなど、いずれかの組合せのルーティングインフラストラクチャを介して互いに通信することができる。さらに、参加者は、TCP/IP(例えば、インターネットまたはイントラネットによって提供される)など、いずれかの組合せのネットワークプロトコルを通じて互いに通信することができる。
より一般には、本明細書で説明するファンクションのいずれも、ソフトウェア、ファームウェア(例えば、固定ロジック回路)、手動処理、またはこれらの実施態様の組合せを使用して実施することができる。「ロジック」または「モジュール」という用語は、本明細書で使用される場合、一般に、ソフトウェア、ファームウェア、または、ソフトウェアおよびファームウェアの組合せを表す。例えば、ソフトウェア実施態様の場合、「ロジック」または「モジュール」という用語は、処理デバイス(例えば、CPU)上で実行される場合に、規定されたタスクを実行するプログラムコードを表す。プログラムコードを、1つまたは複数のコンピュータ可読メモリデバイス内に格納することができる。
本開示は以下を含み、すなわち、セクションAは、P2P DHTの「上に」構築することができる汎用データオーバーレイ構造を説明し、セクションBは、自己編成メタデータオーバーレイまたは「SOMO」を説明し、セクションCは、P2Pシステム内の情報の収集および配布のためのSOMOの適用を説明し、セクションDは、P2P DHTを使用したアプリケーションレベルマルチキャスティング(ALM)を説明し、セクションEは、セクションA〜Dで説明するALMによるP2P DHTシステムのタイプで使用することができる例示的P2P参加者の使用を説明する。
A.P2P DHT上のデータオーバーレイ
データオーバーレイは、オブジェクトからなるデータ構造である。データ構造は、分散ハッシュテーブルの「上に」実装される。背景として、DHTは、P2Pシステムによって提供された分散ストアにオブジェクトを挿入するため、およびそこからオブジェクトを検索するための技術を提供する。DHTはこのタスクを、論理DHT空間内でDHTノードの集まりを定義することによって実行する。すなわち、DHT技術は各DHTノードをDHT論理空間の所定の部分に割り当て、この部分をDHTノードの「ゾーン」と称する。例えば、CHORD技術では、特定のDHTノードのゾーンを、円形のDHT論理空間(例えば、図3に示す)内のその特定のDHTノードとその隣接ノードの間で定義された範囲として解釈することができる。オブジェクトは、オブジェクトをハッシングしてキーを作成すること、および、次いでこのキーを使用してこのオブジェクトをDHT論理空間内の特定のノードIDに関連付けることによって、格納される。オブジェクトはDHT論理空間から、関連した方法で検索される。関連付けられたゾーンは最終的に実際のマシン(例えば、コンピューティングデバイスおよび関連付けられたファイルストレージシステム)にマップするが、ノードとマシンの間で1対1の関係がある必要はない。
そのオブジェクトがDHT論理空間内のノードに関連付けられるという意味で、データオーバーレイはDHTの「上に」実装される。さらに、アプリケーションは、データオーバーレイのデータ構造内であるオブジェクトから別のオブジェクトへ、P2P DHTの基礎となるプロトコルおよびサービスを使用してトラバース(またはルーティング)する。具体的には、参照のフレームについては、図4の単一マシン環境402の従来の場合を考察されたい。この環境402では、データ構造には2つのオブジェクト、a404およびb406が含まれ、これらのオブジェクトは、単一のマシンによって提供されたストレージ内で実装される。オブジェクトは、従来の場合、いかなるタイプの情報のいかなる単位をも幅広く表し、例えば、オブジェクトはデータベースレコード、例えばドキュメントに対応する場合がある。図4の例では、オブジェクトa404は、オブジェクトb406を参照するポインタ408を含む。
対照的に、図5は、P2P DHT環境502のコンテキストにおけるデータオーバーレイの実装を示す。この環境502では、オブジェクトは、DHTによってすでに提供されたDHTノードフレームワークの「上に」構築されるので、DHT論理空間内の個々のノードはデータオーバーレイ内のオブジェクトを「ホスト」する。例えば、DHTノードx504はオブジェクトa506をホストし、DHTノードy508はオブジェクトb510をホストする。この例では、オブジェクトa506はオブジェクトb510を参照する。一般に、オブジェクトa506はオブジェクトb510に、オブジェクトb510にアクセスするために使用されるキーを格納することによって、リンクすることができる。このキーは、オブジェクトb510が作成される場合に確立される。しかし、図5の場合、参照スキームには2つのフィールドが含まれる。第1のフィールド512は、オブジェクトa506からオブジェクトb510へポイントするハードワイヤードアドレスを含む。このフィールドはa.foo.keyと呼ばれる。第2のフィールド514は、オブジェクトb510をホストする最新の既知のDHTノード(例えば、ノードy508)を識別する、ソフトステート参照を含む。このフィールドはa.foo.hostと呼ばれる。第2のフィールド514はこのように、オブジェクトb510にアクセスするためのルーティングショートカットとしての機能を果たす。
データオーバーレイのノードを複数のDHTノードに渡って分散させることができるので、データオーバーレイ自体を分散データ構造と見なすことができる。データ構造は分散されるが、そのオブジェクトが過度に幅広く地理的に分散されないような方法で、データ構造を格納することが望ましい場合がある。これは、a506およびb510のキーを、互いに近くなるように生成することによって、達成することができる。これにより、P2P DHTシステムはこれらのキーをP2Pシステム内の同じノードに関連付けるようになり、あるいは、P2P DHTシステム内で密接に関係付けられたノード内で関連付けるようになる可能性がより高くなる。
データオーバーレイはまた、そのデータ構造内のポインタおよびオブジェクトを操作するために使用されたプリミティブの集まりをも提供する。具体的には、これらのプリミティブには、オブジェクトaから別のオブジェクトbへの参照を確立するためのプロシージャ(setref)、オブジェクトaによってポイントされたオブジェクトを戻すためのプロシージャ(deref)、および、オブジェクトaによってポイントされたオブジェクトを削除するためのプロシージャ(delete)が含まれる。
データオーバーレイはDHTシステムの上に実装されるので、そのプリミティブはDHTのサービスを使用する。例えば、プリミティブは、オブジェクトをDHT論理空間に挿入するためのDHT_insertサービスを使用することができる。プリミティブは、所定のDHTルーティングプロシージャを使用して、DHT論理空間内のそのキーに基づいてオブジェクトを発見するためのDHT_lookupサービスを使用することができる(CHORDによって使用された指数関数的フィンガー(exponential finger)ルックアップ構造など)。プリミティブはまた、オブジェクトを格納するDHTノードが前もって知られている場合にオブジェクトに直接アクセスするための、DHT_directプロシージャをも使用することができる。すなわち、DHT_directは、通常のDHT_lookupルーティンブプロシージャをバイパスし、そのキーが与えられたオブジェクトをホストするノードを直接シークする。DHT_lookupおよびDHT_insertは、副次的効果として、DHT内でターゲットオブジェクトを現在ホストするDHTノードを戻す。
データオーバーレイを、その基礎となるDHTサービスを使用して実装することができ、この実装は、それらのルーチンもまた上述のポインタをオブジェクトの属性として確立するようにオブジェクトを作成するために、何のライブラリルーチンが使用されるかを修正することによって行われる。ライブラリルーチンはまた、参照を設定するため、参照によってポイントされたオブジェクトを戻すため、および、参照によってポイントされたオブジェクトを削除するための、上述のプリミティブを収容するように修正されるべきでもある。
データオーバーレイをDHTの上に構築することで、いくつかの利点がある。例えば、DHTは、DHTノードがDHT論理空間に追加され、そこから削除される(実際のマシンがP2Pシステムに結合すること、およびそこから離れることにそれぞれ関する)場合に、自己編成するように設計される。DHTはまた、DHTノードがDHT論理空間に追加され、そこから削除されることに応答して、それ自体を自動的に「修復」するようにも設計される(複数のノードの間でリンクを再確立すること、オブジェクトを複数のノードの間で転送することなどによるなど)。DHTの上に実装されるおかげで、データオーバーレイはまた、自己編成および自己修復の機能を採用することもできる。具体的には、データオーバーレイを、基礎となるDHTと同じスケールで自己編成および自己修復するように構成することができる。
さらに、様々なアプリケーションをP2P DHTの上で実行するように移植し、これらのアプリケーションに、無限のストレージ空間の錯覚を与えることができる(例えば、DHT論理空間のノードを包含する大きいサイズを有する、単一のリソースプールの印象を与える)。このストレージ空間は、P2P DHTシステム内で参加中のマシンのメモリヒープを幅広く含むことができる。ホストルーティングショートカット(例えば、a.foo.host)は、データオーバーレイを利用するアプリケーションのパフォーマンスを、基礎となるDHTシステムから独立させる。
DHTでは、大変大きい論理空間(例えば、160ビット)が仮定される。ノードはこの空間にランダムIDにより結合し、したがって、この空間を一様にパーティション化する。IDを、例えば、ノードのIPアドレス上のMD5ハッシュにすることができる。ノードの順序付きセットにより、ノードが担うゾーンを厳密に定義することができる。pおよびqを、それぞれノードxの先行物および後続物とする。ノードのゾーンの1つの定義は単に、その直接の先行ID(非包含的)のIDとそれ自体のIDの間の空間である。すなわち、zone(x)=(ID(p),ID(x))である。
図6は、DHTを論理空間として見る方法を示し、各ノードは論理空間内の論理位置を占有し、論理空間は分割される。したがって、各ノードは、論理空間をコヒーレントにするために、その隣接する近隣物の少数を覚えている必要がある。新しいマシンはランダムIDを選択し、DHTに結合する。新しいマシンは、ノードのいずれかに接触し、シークして位置を発見し、次いで論理空間をそれ自体のためにパーティション化し、ツリーが自己編成および自己修復するようにする。自己修復の態様は、マシンが離脱する場合に発生し、これは、マシンが離れることがその隣接した近隣マシンによって監視されるからであり、その離脱は、離脱するマシンがもはやその存在を示すための「ハートビート」通信を送信しない場合に検出される。新しい近隣マシンを次いで受け入れることができる。
図6をまた、ハッシングがどの程度一貫してゾーンをDHTノードに割り当てるかを本質的に示す物として見なすこともでき、リング、ゾーンおよび基本ルーティングテーブルが使用される。リングをシステムのダイナミズムに対して強健にするために、各ノードは、一般にリーフセットとして知られる基礎的ルーティングテーブル内の両側に、r個の近隣物を記録する。近隣物は、周期的通信を交換してそれらの存在を示し(例えば「ハートビート」)、ならびに、ノードが結合/離脱する場合、またはイベントが発生する場合にそれらのルーティングテーブルを更新する。図6で見られるこのベースリンクは、単純なP2P DHTである。ゾーンが通常のハッシュテーブル内のハッシュバケットであると想像する場合、リングはDHTである。キーが空間内に与えられると、どのノードが担っているかを常に解決することができる。ルックアップパフォーマンスは、この単純なリング構造ではO(N)であり、Nはシステム内のノードの数である。
上記の概念に基づいて構築されたアルゴリズムは、いずれかのO(logN)または一定状態(すなわち、ルーティングテーブルエントリ)にもより、O(logN)パフォーマンスを達成する。代表的なシステムには、CANパーティション化スキーム、CHORDパーティション化スキームなどが含まれる。DHTのシステム全体は、通常はほぼO(logN)程度のオーバーヘッドにより自己編成する。また、DHTは、リソースおよび他のエンティティ(DHT内に格納されたドキュメントなど)が共に存在する空間の視覚化でもある。
B.SOMOツリー構造、データオーバーレイのインスタンス
上述のデータオーバーレイは、任意のデータ構造をDHTの上に構築するためのフレームワークを提供する。データ構造には、ノードをデータ構造内で構成する複数のオブジェクトが含まれる。このデータ構造は、複数のノードを異なる方法で共にリンクすることによって、いかなる種類のトポロジを仮定することもできる。さらに、データ構造は、その個々のノードに割り当てられたオペレーションに応じて、異なるファンクションを実装することができる。以下のセクションでは、自己編成メタデータオーバーレイ、または略して「SOMO」と呼ばれるデータオーバーレイの例示的な例を説明した。
SOMOデータ構造は、ツリー構造のトポロジを仮定するように構築される。SOMOツリー構造はルートノードを有する。ルートノードは1つまたは複数の子を有することができ、これらの子は、それら自体のそれぞれの子を有することができる。SOMOツリー構造の終端ノードは、リーフノードと呼ばれる。リーフノードは、P2P DHTシステムのDHT論理空間内の各DHTノードに関連付けられる。
以下でより詳細に説明するように、SOMOツリー構造の1つのファンクションは、メタデータをDHTノードから抽出すること(最終的には、P2Pシステムを実装するマシンからデータを抽出することを含む)、および、このメタデータを、SOMOツリーを通じてSOMOツリー構造のルートノードへ渡すことである。アプリケーションは次いでこのメタデータを読み取り、あるアクションを、このメタデータに基づいて実行することができる。(メタデータは一般に、P2Pシステムを備えるマシンのパフォーマンスに関する情報など、オペレーションがP2Pシステム内で実行されることに関連付けられたいかなる種類の情報をも指す)。SOMOツリー構造を使用して、情報をSOMOツリー構造のルートノードからDHTノード、およびP2Pシステム内の関連付けられたマシンへと配布することもできる。したがって、一般的に言えば、SOMOツリー構造は、データ収集(例えば、集約)およびデータのブロードキャストの役割を果たすことができる。
図7は、基礎となるDHT論理空間704の上に構築される、例示的SOMOツリー構造702を例示する。DHT論理空間704は、例示的ゾーン706および例示的ゾーン708など、いくつかのゾーンにパーティション化される。各ゾーンには、例示的DHTノード710など、そのゾーンに関連付けられたDHTノードが含まれる。DHTは、CANパーティション化スキーム、CHORDパーティション化スキーム、PASTRYパーティション化スキーム、または他のいかなる種類のDHTパーティション化スキームによっても提供される例示的技術など、いずれかの技術に従ってDHT論理空間704をゾーンにパーティション化することができる。例えば、CHORDパーティション化スキームを使用して、DHT論理空間704を、その周囲の様々なロケーションに分散された複数のノードを有するリングとして定義することができ、ゾーンは、リング上の近隣の隣接DHTノードを分離する範囲に対応することができる。
SOMOツリー構造702には1つまたは複数のノードが含まれ、これらのノードはここで「SOMOノード」と称されて、DHTノードとは区別される。各SOMOノードは記号sによって表される。図7の例示的SOMOツリー構造702には、SOMOノードs712〜726が含まれる。ノードs712〜726は、逆のツリー形状を形成する。すなわち、ルートノード712は子ノード714および子ノード716に分岐する。これらの子ノードはそれら自体のそれぞれの子ノードを有することができ、例えば、子ノード714は子ノード718および子ノード720を含む。例示および考察を実施するために、例示的SOMOツリー構造702の構造全体を図7で簡略するが、SOMOツリー構造702は最終的には、DHT論理空間704内で対応するDHTノード内に置かれたリーフノード(例えば、リーフノード722、724、726)で終端する。一般に、SOMOツリー構造702内の複数のSOMOノードの間のリンクを図7で、SOMOノードを共に接続する点線によって例示し、これらのリンクを、上記の「データオーバーレイ」のセクションで説明した参照スキームを使用して実施することができる。
各SOMOノードsは、それに関連付けられたゾーンを有する。例えば、ルートのSOMOノード712には、DHT論理空間704全体に及ぶゾーン728が含まれる。子ノード716には、ルートノード712のゾーン728の半分に及ぶゾーン730が含まれる。SOMOツリー構造702内でより深いもう1つの子ノード720は、ルートノード712のゾーン728の4分の1であるゾーン732を有する。したがって、SOMOツリー構造702の階層に追加された連続するノードsは結果として、ルートノード712のゾーン728の進行的なより細かいパーティション化を生じる。また、SOMOツリー構造702の階層は、空間704のより細かい(すなわち、より密度の高い)パーティション化を示す、DHT論理空間704のこれらの領域について「より高く」増大する。一般に、図7は、SOMOノードの各ゾーンの長さに及ぶ水平の矢印によって、個々のSOMOノードに関連付けられたゾーンを表す。特定のSOMOノードsをホストするDHTノードは、DHT_host(s)と表現される。
上述のように、P2Pリソースプールを完成するために、DHTはシステム内モニタリングインフラストラクチャにより増補されるべきであり、これは、大規模システムでは外部モニタリングサービスに依拠することが非実用的であるからである。このようなインフラストラクチャは少数の重要なプロパティを満たさなければならず、すなわち、(1)ホスト側DHTと同じスケールで自己編成であること、(2)完全に分散され、自己修復であること、および(3)収集および配布されたメタデータに関して可能な限り正確であることである。本明細書で提案するSOMOは、後述のようにボトムアップから構築される。
モニタリングインフラストラクチャは、いくつかのトポロジを取ることができる。リソースプールのために、最も重要な機能性の1つは集約である。したがって、SOMOは、そのリーフが各DHTノード内に置かれるkの次数(degree)のツリーである。情報は底部から収集され、ルートに向かって伝搬する。したがって、SOMOを、リーフからルートへの「収束キャスト(converge cast)」を行うこと、および次いで(オプショナルで)リーフに再度戻るように下がってブロードキャストすることとして考えることができる。収集および配布段階は、O(logN)が境界であり、Nはオブジェクトの総数である。SOMOの各オペレーションはわずかk+1個の対話を含み、これを完全に分散させる。ソフトステートの原理を使用することによって、データをO(logN)時間内で再生成することができる。SOMOツリーは、同じ時間境界内で自己編成および自己修復する。ある意味では、SOMOを、反応的な「ニュース放送」と考えることができ、その構成および処理はすべてのノードによって共有される。オンラインのグローバルな「ニュース」は、リソースプールの錯覚を作成する物である。
B.1 SOMOの構築
SOMOの中心の考えは、複数の個々のマシンの各々と連携してそれらを階層に構成するのではなく、ツリーが論理空間内で最初に「描かれ」、次いで論理ツリーから実際のマシンへのマップが作成されることである。
上述のように、データオーバーレイは、基礎となるDHTで行われた動的で監視されていない修正に応じて増大および縮小することができる。SOMOツリー構造702はデータオーバーレイのインスタンスであるので、これは、SOMOツリー構造702もまた、基礎となるDHTに行われた修正に応答して増大および縮小する能力を有することを意味する。また、SOMOツリー構造は、その基礎となるDHTと同様に、基礎となるDHTの修正に対抗するようにそれ自体を修復する能力を有する。以下のサブセクションでは、SOMOツリー構造702がその基礎となるDHTにおける変更に応答して発展する方法を説明する。
B.2 論理ツリーの構築
論理ツリーは、P2Pプール内のすべてのマシンが完全に分散および自動の方法で階層に編成することを助ける、参照フレームワークの機能を果たす。論理ツリーは仮想ノードのセットから構成され、各仮想ノードは図8aのようなキーを有し、これもまた、1次元のDHT論理空間内のその位置を決定する。
ツリーを構築する第1の不変条件は、各仮想ノードが空間の一部を所有することであり、仮想ノードのキーは、それが所有する部分空間の中心である。DHT論理空間が[0,1]であると仮定すると、ルート仮想ノードのキーは0.5である。次いで、ルート仮想ノードの空間(この時点で論理空間全体)はk個の部分空間に均等に分割され、各部分空間はレベル1で仮想ノードによってカバーされる。この分割プロセスを再帰的に適用して、論理ツリーが構築される。したがって、レベルiは合計k個の仮想ノードを含み、各仮想ノードは1/kのサイズの部分空間を所有する。具体的には、レベルiのj番目(0≦j<2)の仮想ノードは、[j/k,(j+1)/k]の空間を所有し、(2j+1)/2kでキーとされ/位置付けられ、「k」は次数であり、「i」はレベルである。したがって、ボトムアップSOMOツリー構造を構築するための例示的プロシージャが図8a〜8cで見られる。
B.3 物理ツリーへのマッピング
物理ツリーは、P2P環境内の各マシンがその親マシンを発見する場合に構築される。これを、上記で構築された論理ツリーを活用することによって、完全に分散された方法で実施することができる。すべてのマシンが論理ツリーの知識全体を有するので、レベル順ツリートラバーサルアルゴリズムを使用して、各マシンはそのゾーンに入る最高の仮想ノードを選択する。この仮想ノードは、最終物理ツリー内でこのマシンを表現し、したがってこの仮想ノードを、マシンxのための代表ノードまたはrepre(x)と呼ぶことができる。論理ツリーの決定性は、xがrepre(x)の親仮想ノードのキーを計算することができることを意味する。DHTルックアップを使用して、xは、図8bに示すように、そのキーをホストするマシンyを発見し、yへの接続を確立する。あらゆるマシンは同じプロシージャを、純粋にローカルの知識(ゾーンおよび決定論的論理ツリートポロジ)により実行する。すべての子と親の接続は、論理キーのペアによって識別され、すなわち、子マシンに位置する代表仮想ノード、および、親マシンに位置する対応する親仮想ノードである。この接続はハートビートを使用して維持され、上記の不変条件は常に保たれる。例えば、新しい近隣物が結合するためにxのゾーンが分割する場合、xは、その親側のポイントがもはやそのゾーンに属さないすべての接続を切るようになる。このポイントで、接続の他方の側のマシンは、以前に概説した同じプロシージャの実行によってそれらの親マシンを再確立するようになり、それによりトポロジは自己修復し、この一実施例は、図9a〜9cに示す例示的プロシージャによって見られる。
前述のプロシージャを、DHTの論理空間へのマシンのマッピングとして理解することができる。各マシンは、1つまたは複数のツリーノードゾーンに対応する。各マシンはその代表ノードとして、それに対応する1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応するツリーノードを選択する。各代表ノードはその親ノードとして、より大きいサイズを有する隣接ツリーノードゾーンのための代表ノードである、もう1つの代表ノードを選択する。ルートノードを含む、代表および親ノードの選択のための例示的プロシージャは、図8a〜8cで見られる。図7のように、ツリーノードゾーンのサイズは、ツリーのレベルが増すことにより減少し、第1のレベルは、DHTの論理空間の全体の範囲に対応するツリーノードゾーンを有するルートノードのレベルである。
前述のプロシージャは、完全に分散された方法で、物理マシンをツリーに編成する。さらに、高い確率で、ツリーはk次数および平衡である。代表仮想ノードの定義は、マシンのゾーンに入る最高仮想ノードであることである。親仮想ノードがある他のマシン上に存在するので、あらゆるマシンが接続される。結果として生じるグラフはいかなるループも有しておらず、これは、ループが代表仮想ノードの定義に違反するようになるからである。したがって、このグラフはツリーでなければならない。論理ツリートポロジは決定論的であり、マシンが必要とする他の入力は、DHT空間内のそれ自体のゾーンのみである。このように、ツリー構築は完全に分散される。論理ツリーはk次数の平衡ツリーである。物理ツリーもまたk次数および平衡であるかどうかは、主として、ゾーン分布によって決定される。DHT内のマシンのIDはランダムに生成されるので、高い確率で、結果として生じるツリーはk次数および平衡である。
SOMOはメンバシップの変化に自動的に、最小限のオーバーヘッドにより対処することができ、これは、各接続が論理ポイントのペア、すなわち、代表仮想ノードでありそのDHTゾーンによって決定される第1のポイント、および、第1のポイントが与えられると同じく決定的である第2のポイントによって、決定されるからである。したがって、この不変条件が保たれる限り、メンバシップ変更がある場合は常にトポロジを再確立することができる。結果として、図9a〜9cのように、SOMOツリーは、新しいメンバがプールに結合する場合に増大し、ピアが離脱する場合に縮小する。したがって、図9a〜9cでは、ボトムアップSOMOツリー構造を修復するための例示的プロシージャが見られる。
大部分の機能を有するマシンを論理ツリーの上に配置することが望ましい場合、ノードIDを、ランダムに生成される以外となるように変更することができる。次いで、上向きのマージ−ソートがSOMOを通じて行われて、最も能力のあるノードが識別される。このノードは次いでそのIDを、SOMOのルート論理ポイント(すなわち、空間全体[0,1]の0.5)を現在所有するノードと交換し、これは効果的に、他のいかなるピアをも妨げることなく、ルートの機能を果たすマシンを変更する。この自己最適化プロパティは、論理空間内で最初に動作することによって可能にされる。
C.メタデータ集約および配布
SOMOは、インフラストラクチャとして、どのデータが収集されるべきであるかにおいて強要せず、収集されたデータを処理するために呼び出されるオペレーションにおいても強要しない。リソースプールを構築するために、各マシンは単にそのリソースメトリックスを収集し、そのリソースメトリックスを、その子ノードから受信した物と組み合わせ、次いでこれらをその親ノードにマージする。渡されるデータはソフトステートであるべきである。また、最適化として、レポートを連続レポートの「差分」の方法にすることができる。
SOMOのパフォーマンスは物理ツリーの高さによって決定され、物理ツリーの高さは、論理ツリーのパラメータ(すなわち、k)および論理空間内のDHTノードの分散によって決定される。ノードIDはランダムなので、物理ツリーの高さはO(log/N)である。したがって、データレポート間隔Tが与えられると、情報はSOMOから収集され、logN・Tの最大遅延により、そのルートを離れ、そのルートへ流れる。この境界は、SOMOの階層の間の流れが完全に非同期である場合に導出される。上方のSOMOノードによるレポートのためのコールが即時に、それらの子の類似のアクションをトリガする場合、レイテンシをT+thop・logNに低減することができ、thopは、ホスト側DHT内のトリップの平均レイテンシである。非同期の流れはlogN・Tのレイテンシ境界を有するのに対して、同期バージョンは実際にはT(例えば、5分)によって境界されるようになる。O(thop・logN)は、絶対下界であることに留意されたい。2M個のノードおよびk=8およびDHTホップにつき200msの通常レイテンシでは、SOMOルートは、1.6sのラグを有するグローバルビューを有するようになる。
C.1 SOMOツリー構造の適用
上述のように、SOMOツリー構造702の1つの例示的使用は、P2Pシステム内で、DHT論理空間704によって表現される物理マシンから情報を収集することである。SOMOツリー構造702のもう1つの例示的使用は、情報をこれらの物理マシンに配布することである。集められた情報はメタデータである可能性がある。メタデータは、その物理マシンのビヘイビアを反映する情報など、P2Pシステムのオペレーションに関する情報を記述する。物理マシンに配布される情報は、物理マシンのオペレーションを管理することができる命令を表すことができる。したがって、SOMOメカニズムを、SOMOリーフノードからSOMOルートノードへの収束キャストを実行して、データ収集を提供し、次いで、マルチキャストをSOMOリーフノードかへ戻るように下がって実行して、データ配布を提供することとして解釈することができる。
図10aは、リソースをプールするDHTの能力をSOMOと組み合わせることにより、集合的に、DHTおよびSOMOからなるP2Pリソースプールを作成することを示す。要約として、DHTは、コンテンツを共有する意味で使用されないが、管理オーバーヘッドがほとんどまたはまったくなく、スケーラビリティのボトルネックもなく、大量のリソースを共にプールする効率的な方法として使用される。SOMOは、DHT上で階層化された自己編成「ニュース放送」階層である。O(logN)時間におけるリソース状況の集約は次いで、単一のリソースプールの錯覚を作成する。図10aで見られるプロシージャは、リソースペアワイズの登録、統計の収集、収集された統計をスナップショットに集約すること、および、結果として生じる動的データベースをアプリケーションによってクエリすることができることを保証することを示す。P2Pリソースのスケールおよび構成は、あらゆる層が完全に自己編成、自己スケーリングおよび自己修復であり、管理オーバーヘッドがほとんどなくなるようにすることを必要とする。
例えば、図10bは、SOMOツリー構造1004が、P2Pシステム内の物理マシン1006から、DHT論理空間1008を介して情報を収集するために使用されている、シナリオ1002を表す。具体的には、リーフSOMOノードは、必要とされた情報をそれらのホスト側DHTノードから検索する。(副次的効果として、このプロシージャはまた、そのホスト側DHTノードがクラッシュしているために子SOMOノードが消えている場合、子SOMOノードを再起動することもできる)。1つまたは複数のアプリケーション1010は、この収集オペレーションを、いずれかの定義された目的のために(パフォーマンスのモニタリング、すなわちP2Pシステムを備える物理インフラストラクチャの様々な負荷および能力に関する情報を収集するためなど)呼び出すことができる。
具体的には、図10bは、情報を収集するためのSOMOツリー構造1004の構成を、各SOMOノードからその対応する親SOMOノードへと上方を指す矢印を有する線を示すことによって示す。このように、情報は、SOMOツリー構造1004をそのリーフSOMOノードからそのルートSOMOノードへと上に向かって通り抜ける。アプリケーション1010は、P2Pシステム全体からの情報を選び取る、ルートSOMOノードからの完全レポートを抽出することができる。このレポートは、生の編成されていないデータを含むことができる。代替として、SOMOノードがそれらの対応する親SOMOノード上へ収集する情報を渡す前にこのファンクションを実行するように構成されているならば、このレポートは、マージおよびソートされたデータを含むことができる。マージおよびソートを実行するように「op」メンバを構成することによって、このタスクを実行するように、SOMOノードを構成することができる。例えば、メンバopは、特定のSOMOノードが(データ収集またはデータ配布モードのいずれかで)それを通過する情報において実行することができる、オペレーションを定義することができる。例えば図7を参照することにより、opは、マージ−ソートオペレーションが、SOMOツリー構造702を使用して情報を収集する過程で実行されるべきであると、規定することができる。opメンバの包含に基づいて、SOMOツリー構造702はいかなる機能性をも分散および並列の方法で実行することができる。したがって、SOMOツリー構造702をまた、分散並列処理フレームワークを提供していかなる種類の機能性をも実装するためのメカニズムと見なすこともできる。これは単に1つの例示的実施例である。SOMOノードは、様々な算術演算など、他のオペレーションを、情報がルートSOMOノードに行く途中でSOMOノードを通過する場合にこの情報において実行することができる。
以下の擬似コードは、SOMOツリー構造1004を使用して情報を収集するための1つの技術、すなわち、擬似コード:SOMO収集プロシージャを提供する。
Figure 0004750457
システムメタデータを収集するために、SOMOノードは、それらの各子からのレポートを要求することによって、周期的に上記のプロシージャを実行することができる。収集プロシージャを、SOMOツリー構造1004から特定の情報を抽出するように調整することができる。具体的には、SOMOツリー構造1004の階層的特性は、所与の論理DHT空間領域に関連する情報を発見するために複合範囲クエリの使用を実施する。例えば、kが2であり、DHT論理空間の最初の4分の1の状況レポートを検索することが望まれる場合、アプリケーション1010は、第2のレベルのSOMOツリー構造1004の左の子SOMOノード1012からレポートを得ることのみが必要である。もう1つの有用な実施態様は、SOMOノードでクエリを登録することを含み、これはSOMOメカニズムをパブリッシュ−サブスクライブ(「pub−sub」)インフラストラクチャに本質的に変換する。
図10bはまた、SOMOツリー構造1004が、P2Pシステム内の物理マシン1006へ、DHT論理空間1008を介して情報を配布するために使用されている、シナリオ1002をも示す。1つまたは複数のアプリケーション1010は、この配布オペレーションを、いかなる定義された目的のため(命令を物理マシン1006に配布するためなど)にも呼び出すことができる。情報を配布するためのSOMOツリー構造1004の構成は、図10bにおいて、親SOMOノードからそれらの各子SOMOノードへと下方を指す矢印を有する線を示すことによって表される。このように、情報は、SOMOツリー構造1004をそのルートSOMOノードからそのリーフSOMOノードへと下に伝搬する。情報は、SOMOノードによる修正なしに、SOMOツリー構造1004のブランチを通じて伝播されることが可能である。代替として、それらのopメンバに基づいて、SOMOノードは、情報がそれらの関連付けられた子SOMOノードに渡される前に、いかなる種類のオペレーションをもその情報において実行することができる。また、データ収集の場合について説明したように、SOMOツリー構造1004の選択されたブランチのみを含むことによって、DHT論理空間1008の部分のみに情報を配布することが可能である。
D.アプリケーションレベルマルチキャスティング(ALM)
データオーバーレイおよびSOMOツリー構造の追加の応用例および変形形態を実施することができる。例えば、1つの例示的実施態様では、SOMOツリー構造から収集されるメタデータに作用するアルゴリズム、または、SOMOツリー構造を通じて下方に伝搬される情報を生成するアルゴリズムを提供することによって、SOMOメカニズムをアプリケーションレベルマルチキャスティング(ALM)と共に使用することができる。適切な機能性を、図10bに示すアプリケーション1010において提供することによって、ALM技術を実施することができる。例として、図11a〜11bは、ALMのための概略的配置を示す。
P2Pリソースプールの可用性は、最適化の可能性を提供する。図11a〜11bに示すように、そうでない場合はアイドルであるが適切なヘルプ側ピアが識別される場合、最適化を行うことができる。適切なピアが識別された後、このピアを、よりよいパフォーマンスを有するトポロジに統合することができる。このように、図11bは、図11aで見られた配置の改良を示す。改良は、ヘルパーノードをリソースプールで使用することによって行われる。図11a〜11bでは、円は、アプリケーションレベルマルチキャスティングセッションのオリジナルメンバを表し、四角は、大きい次数を有する使用可能なピアを表す。最適化をマーケット需要システムに向けて、最もリソースを必要とするタスクが、ピアツーピアシステム内で最もリソースを利用可能なマシンによって実行されるようにすることができる。
D.1 ALMのためのリソースメトリックスの生成
多数のP2Pアプリケーションでは、リソース統計には、CPU負荷およびネットワークアクティビティのみではなく、マシンからローカルで導出することができないより複雑なリソース統計もが含まれる。その一例は、ALMである。セッションをスケジュールすることが望ましく、潜在的なヘルプ側ピアの大きいリストが、SOMOをクエリすることによって獲得されていると仮定すると、すぐ近くであり、適切な帯域幅をも有する、1つのピアが選択されなければならない。ピアのIPアドレスのみが与えられる場合、これらに渡ってpingしてそれらの近接を発見するプロセスは、時間がかかり、間違いが発生しやすい。以下の考察では、この問題を緩和する物として、IPアドレスおよび帯域幅のメトリックスに焦点を合わせる。論理空間の完全性を維持する複数のDHTノードの間の対話を活用することによって、これらの属性をどのように生成することができるかを説明する。
D.2 ノード座標推定
座標ベースのレイテンシ推定値latency(x,y)を発見するために、distance(coord(x),coord(y))を計算することは十分であり、coordはd次元のユークリッド空間内のネットワーク座標である。各ノードは、DHT空間を集合的に維持するために、そのリーフセットノードとのそのハートビートを提供しなければならない。各ノードがランダムに、そのリーフセット内のノードからのハートビートメッセージに肯定応答することを選択する場合、経時的に各ノードは、そのリーフセット近隣物への測定遅延ベクトルdを有するようになる。ハートビートメッセージでは、各ノードはまたその現在座標をもレポートする。したがって、予測遅延ベクトルdもローカルで入手可能である。ノードxはそれ自体の座標を、滑降シンプレックスアルゴリズムを実行すること、および、関数
Figure 0004750457
を最小化することによって、更新する。この最適化はローカルで行われ、x自体の座標を更新するだけであり、これは後続のハートビートにおいてxのリーフセット近隣物に分散されるようになる。このプロシージャはすべてのノードによって周期的に実行され、ノード座標、ならびに測定および予測遅延ベクトルは、継続的に更新されている。
D.3 ボトルネック帯域幅推定
ピアのネットワーク帯域幅は、ボトルネック帯域幅とスループットの間に相関がある点において、P2Pリソースプールの上で実行する多数のアプリケーションにとってもう1つの重要なメトリックである。したがって、ボトルネック帯域幅は、スループットのための予測子としての機能を果たすことができる。ボトルネックリンクが最後のホップ内にあると仮定することができる。各ノードについて、そのアップストリームボトルネック帯域幅は、ノードからそのリーフセットメンバへの測定ボトルネック帯域幅の最大値として推定され、ノードのアップリンク帯域幅、およびリーフセットノードのダウンリンク帯域幅によって制限される。基本的な考えは、ノードのアップリンク帯域幅より大きいダウンリンク帯域幅を有する1つの近隣物がある場合、この推定値は正確であるということである。そのため、より多くのリーフセットノードでは、正確な推定値を得る可能性はよりよくなる。同じ理由のため、ノードのダウンストリームボトルネック帯域幅は、そのリーフセットノードからノード自体への測定ボトルネック帯域幅の最大値として推定される。
ボトルネック帯域幅の測定は、よく理解されている。例えば、パケットペア技術では、サイズSの2つのパケットが連続してソースノードから送信される。受信側は、中間における時間分散Tを測定し、ソースからのボトルネック帯域幅をS/Tとして推定する。
ハートビートを介したリーフセットノードの協調は、パケットペア技術が自然に配置されることを可能にする。周期的に、ノードxは、近隣物yに2つの連続ハートビートメッセージを連続して送信して、それらのサイズが十分に大きい(例えば1.5KB)であるように各々を埋め込むように選択する。「y」はここで、xからy自体へのパス上のボトルネック帯域幅の推定値を有する。この値は、次のハートビートにおいてxに結合されるようになる。同様に、yはxと同じプロービングを行う。xが十分な測定帯域幅をそのリーフセットメンバから収集した後、xはここでそれ自体のボトルネック帯域幅を上記のように推定することができる。
D.4 P2Pリソースプール内のALMセッションのスケジューリング
ここで、P2Pリソースプールを複数の同時ALMセッションのために最適に利用する方法を明示する。最終目標は、アクティブセッションが、リソースプール内のすべての使用可能で適切なピアにより最適なパフォーマンスを達成することである。セッションのパフォーマンスメトリックスは、あるQoS定義によって決定される。また、より高い優先順位のセッションは比例的に、プールされたリソースのより大きいシェアを獲得するべきである。ここで、QoSがしばしば要件(例えば、ビデオ会議)であると考えられる、小規模から中規模のセッションサイズに重要性が置かれる。また、静的なメンバシップがあり、参加者の元のセットが所与のセッション「s」についてMとして示されるとも仮定されるが、アルゴリズムを、動的なメンバシップにも対処するように拡張することができる。
セッションのタスクマネージャは、ALMのトポロジをプランニングするための、修正された発見的アルゴリズムを実行することを担う。プール内の予備リソースを利用するために、タスクマネージャはSOMOをクエリして、候補のリストを得る。このリストの項目には、リソース可用性のみが含まれるのではなく、そのネットワーク座標およびその帯域幅もが含まれる。プランが出される場合、タスクマネージャは外部に出て、ヘルプ側ピアに接触してそれらの使用を予約する。競合するタスクは、純粋にそれらの各プロパティによってそれらの競合を解決するようになる。
ALMでは、帯域幅ボトルネック、最大レイテンシ、またはレイテンシの変化のような、最適化のためのいくつかの異なる基準が存在する。すべてのメンバの最大レイテンシは本明細書で、ツリー構築アルゴリズムの主な目的として使用され、これは、最大レイテンシがエンドユーザの知覚に大きく影響を与える可能性があるからである。各ノードは、処理することができる通信セッションの数における境界を有し、この境界は本明細書で「次数」と呼ばれる。これは、エンドシステムの制限されたアクセス帯域幅または作業負荷による可能性がある。最適化は、最もリソースを必要とするタスクがピアツーピアシステム内で最もリソースを利用可能なマシンによってサービスされるように、実行される。
1つの所与のセッションのためのQoSのための定義を、以下のように形式的に述べることができる。
定義1.次数有界最小高ツリー問題(Degree−bounded,minimal height tree problem)(DB−MHT)。無向完全グラフG(V,E)、各v∈Vについての次数境界dbound(v)、各エッジe∈Eについてのレイテンシ関数l(e)が与えられる。各v∈Tについてvの次数がd(v)≦dbound(v)を満たし、Tの高さ(ルートからの集約されたレイテンシとして測定される)が最小化されるように、GのスパニングツリーTを発見する。
リソースプールを使用すると、QoSのための上記の定義を拡張することができる。ヘルパーノードHの拡張セットがグラフに追加され、この目的は、最小量のヘルパーノードを追加することによって、Hを使用することなく導出された最適のプランに対して最適な解を達成することである。
D.5 単一のALMセッションのスケジューリング
単一のALMセッションをスケジューリングするための方法を、リソースプールを利用する場合に単一のALMセッションを最適化するためのアルゴリズムとして考察する。このアルゴリズムはO(N)パフォーマンス境界を有し、何百ものノードのための解を1秒未満で生成することができる。例として、破線のボックス内のコードなしで、以下の表Aを参照されたい。このアルゴリズムは本明細書で「AMCast」と呼ばれ、最初にルートで開始して、これを現在の解のセットに追加する。次に、ノードの残りの最小高が、次数制約を受ける、解のセット内でそれらの最も近い潜在的な親を発見することによって、計算される。これは、最低高を有するノードを解に吸収することによって、ループバックする。すべてのノードが最終的に、結果として生じるツリーに含まれるまで、このプロセスは継続する。それにより開始するべき最良の可能なツリーが得られることを保証するために、アルゴリズムを、さらなる調節または調整手段のセットにより増補することができる。例えば、グローバルに最適なアルゴリズムに近づけるための調節または調整手段には、発見的移動(heuristic moves)のセットによりツリーを調節することが含まれる場合がある。これらの移動には、(a)最高ノードのための新しい親を発見すること、(b)別のリーフノードを有する最高ノードをスワップすること、および(c)そのルートが別のサブツリーを有する最高ノードの親である、サブツリーをスワップすることが含まれる。
有益なヘルパーノードの探索において、アルゴリズムには2つの考慮事項が含まれ、すなわち、(1)探索をトリガするための時間、および(2)追加を判断するための基準である。全体的なメカニズムは、以下の表Aにおいて「Section A」のラベルが付けられたボックス内の擬似コードによって記述される。
表A:
Figure 0004750457
uを、AMCastアルゴリズムがまさに解に追加しようとしているノードとし、parent(u)をその親とする。parent(u)の空き次数が1に減らされる場合、追加のノードhについての探索がトリガされる。このようなhがリソースプール内に存在する場合、hはその代わりにuの親となり、uを、元のparent(u)の子になるように置き換える。異なるバージョンは、hの選択基準によってのみ変わるが、このクラスの最適化をクリティカルノードアルゴリズムと称することができる。「クリティカル」はここで、特定のノードについて、これが元のアルゴリズムを改良するための最後の機会であることを意味する。
異なるアルゴリズムを使用してhを探索することができる。アルゴリズムの最初の変形形態は、親ノードに最も近く、適切な次数(例えば、「4」を使用することができる)を有する追加のノードを発見することである。l(a,b)を、2つの任意のノードaおよびbの間のレイテンシとする。以下のヒューリスティックは、表Bに示すようなさらによい結果を生じる。
表B:
Figure 0004750457
ここで、vをuの兄弟の1つにすることができる。この考えは、すべてのこのようなvが潜在的にhの将来の子となるので、l(h,parent(u))+max(l(h,v))は、hの結合の後に潜在的なツリーの高さに影響を及ぼす可能性が最も高いということである(条件1)。このようなヘルパーノードは適切な次数を有するべきである(条件2)。最後に、それらの次数が高いとしても遠く離れている「ジャンク」ノードを回避するために、半径Rを課し、hはparent(u)から離れてR以内に位置しなければならない(条件3)。このプロシージャを実行するために必要な入力パラメータには、任意のペアの間のレイテンシ、ならびに各ノードの次数を計算することができるようなネットワーク座標が含まれる。これは、図12のように、各ノードにそれらのネットワーク座標ならびに帯域幅制約をそれらのレポートにおいてSOMOにパブリッシュさせることによって、使用可能にされ、これは、スケジューラが使用中であるSOMOレポートの視覚化である。このように、各ノードは特定の負荷(使用可能なCPUサイクル)、特定のメモリ能力(RAM、ディスクスペース、キャッシュ)を有し、また、ノードがどこにあるか(IPアドレス)、および、ノードが有する使用可能な帯域幅の量のような、あるネットワーク情報をも有する。図10aは、図12のようなレポートなど、SOMOレポートにおいて使用するためのデータの集まりを示す。
D.6 複数のALMセッションの最適化
前のセクションでは、1つのALMセッションのためのスタンドアロンのスケジューリングアルゴリズムを説明したが、このセクションでは、複数のアクティブセッションにどのように対処するかを論じ、より高い優先順位のセッションに比例的により多いリソースが割り当てられ、リソースプールの利用は全体として最大化される。
すべてのセッションは、ランダムな時間に開始および終了する可能性がある。各セッションは、1と3の間の整数値の優先順位を有する。優先順位1のセッションは最高のクラスである。最大同時セッションの数は10から60までで変わり、各セッションは、サイズ20の非重複メンバセットを有する。したがって、60ものアクティブセッションがある場合、すべてのノードは少なくとも1つのセッションに属するようになる。すなわち、アクティブセッションの元のメンバの部分は、17%から100%に変わる。ヘルパーノードを考慮すると、セッションは通常、元のメンバより多くを使用する。また、より大きい次数を有するノードを、複数のセッションに含めることができる。
複数のALMセッションを最適化するためのこの手法の基礎となる原理は、よく組織化された社会に多少類似しており、グローバルでオンタイムの信頼された知識が使用可能である限り、それら自体のクレデンシャル(すなわち、それらの各優先順位)によりリソースを争うための各タスクから離れることが最善である場合がある。この純粋にマーケット主導型のモデルにより、いかなる種類のグローバルスケジューラの必要性もなしに、目的を実施することができる。
セッション内に含まれたノードで適切な優先順位を設定することは、特別な考慮事項を取る。協調P2P環境では、ノードが、それ自体をメンバとして含むジョブを実行する必要がある場合、そのジョブをそのノード内の最高優先順位にすることが公正である。したがって、優先順位Lを有するセッションsでは、M内のノードのための最高優先順位(すなわち、1番目の優先順位)を有し、Lは他の場所にある(すなわち、Mの外側に位置するいずれかのヘルパーノードのため)。これは、各セッションを、AMCast+adjuアルゴリズムに対応する下界を有して、実行することができることを保証する。上界は、sがシステム内の唯一のセッションであると仮定して得られる(すなわち、Leafset+adju)。
前述のように、ALMセッションのルートはタスクマネージャであり、ツリートポロジのプランニングおよびスケジューリングを実行する。各セッションはLeafset−adjustmentアルゴリズムを使用して、それ自体で、SOMOによって提供されたシステムリソース情報に基づいて、完全にスケジューリングする。優先順位Lを有するセッションでは、Lより低い優先順位を有するタスクによって占有されるいかなるリソースも、使用可能と見なされる。同様に、アクティブセッションがその現在のプランにおいてリソースを失う場合、スケジューリングを再度実行することが必要となる。各セッションはまた、スケジューリングを周期的に再実行して、最近解放されたリソースを使用したよりよいプランが現在のプランよりよいかどうかを検討し、そうである場合はよりよいプランに切り替えるようになる。
SOMOがリソース情報を収集および配布して、各タスクマネージャのプランニングを助けるようにすることを実施するために、前述のように各ノードは、ネットワーク座標など、その情報をそのレポートにおいてSOMOにパブリッシュする。しかし、その次数は、アクティブセッションによって取られる優先順位に分割される。これは、以下の次数表Cにおける2つの例において要約される。
次数表C:
Figure 0004750457
次数表Cで、2つのノードの次数表が示される。xの合計次数は4であり、セッションs4によって2つの次数が取られ、s12はもう1つの次数を取り、xには1つの空き次数が残る。他方ではyは2つの次数のみを有し、その両方がセッションs5によって取られる。次数表は、ノードの次数のパーティションに影響を及ぼすスケジューリングが発生する場合は常に更新される。次数表は、前述のように、SOMOを通じて収集され、いかなる実行中タスクにとってもクエリするために使用可能にされる。次数表Cは、マシンがそれ自体をALMセッションの異なるストリームの間でパーティション化して、帯域幅を分割することによっていくつかのことを同時に実行できるようにすることが、可能であることを示す。したがって、次数表Cは、いくつの合計次数を有することが可能であるか、および、異なるジョブの間で機能を分割して、異なる優先順位セッションとしてスケジュールすることができるようにすることによって、いくつの合計機能を有する場合があるかを示す。
アプリケーションレベルマルチキャスティング内により多くのセッションがあり、全体的なリソースが乏しくなる場合、パフォーマンスが低下する。しかし、より高い優先順位のタスクは、より低い優先順位のタスクよりもはるかによいパフォーマンスを維持することができる。また、より低い優先順位のタスクは、リソースが激しい競争下にある場合、より多くのヘルパーノードを失う。
D.7 ALMセッションを有するリソースプール
リソースプールを作成するために、適時の集約を保証するように階層構造が採用されることは必然的である。例えば、2レベルのアーキテクチャでは、IPレベルのマルチキャスティングが使用されて1つのロケーション内で統計が収集され、次いで結果を中央サイトに集約することができる。本明細書で、ワイドエリアリソースプールを実現可能にするための要素を論じ、すなわち、(1)P2P DHTの自己編成能力の組合せ、および(2)システム内の自己スケーリングモニタリングインフラストラクチャである。
D.8 リソースプールを使用したALMの最適化
ALMは、P2P DHTのための有利なアプリケーションである。しかし、ALMを最適化するには、リソースプールが利用されるべきである。リソースプールが与えられると、最適化は、1つの単一のALMセッション、ならびに、無干渉のマーケット主導型の手法においては複数の同時ALMセッションの最適化からなることができる。しかし、ALMは、P2Pリソースプールのためのアプリケーションの1つでしかないことに留意されたい。それにもかかわらず、集中マッチメイキングメカニズムよりも分散される方法では、2ステップの手法が支持され、すなわち、(1)アプリケーションに特化したタスク毎のスケジューリング、および(2)複数のタスクの間で調整することによってマーケット主導型の公正競争と結合されることである。
E.1つのP2P参加者を実装するための例示的コンピュータ環境
上記のセクションAで説明したデータオーバーレイは、複数のマシンに渡って、また場合によってはP2Pシステム内の他のインフラストラクチャに渡って広げることができる、データ構造である。したがって、P2Pシステム内の各参加者を、データオーバーレイの一部を実装することと見なすことができる。この効果を達成するために、各参加者は、データオーバーレイを作成するため、および、データオーバーレイと対話するために必要なコードおよびデータを格納することができる。このコードおよびデータを、各参加者の揮発性および/または不揮発性メモリ内に格納することができる(以下で説明する)。
例えば、図13は、コンピュータ1342としての1つの例示的P2P参加者の高レベル図を示す。このコンピュータ1342は、汎用コンピュータまたはサーバタイプのコンピュータ、および関連付けられた表示デバイス1384に対応する。しかし、コンピュータ1342を、他の種類のコンピューティング機器を使用して実施することができる。例えば、図示しないが、コンピュータ1342には、ハンドヘルドまたはラップトップデバイス、セットトップボックス、メインフレームコンピュータなどが含まれる場合がある。
例示的コンピュータ1342を使用して、本明細書で説明したプロセスを実施することができる。コンピュータ1342には、1つまたは複数のプロセッサまたは処理装置1344、システムメモリ1346、および、システムメモリ1346を含む様々なシステムコンポーネントをプロセッサ1344に結合するバス1348が含まれる。コンピュータ1342内の1つまたは複数のストアを使用して、SOMOツリー構造の一部など、データオーバーレイの一部を実装するために使用される、コードおよびデータを格納することができる。
バス1348は、いくつかのタイプのバス構造のいずれかの1つまたは複数を表し、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、AGP、およびプロセッサまたはローカルバスが含まれる。システムメモリ1346には、読み取り専用メモリ(ROM)1350およびランダムアクセスメモリ(RAM)1352が含まれる。基本入出力システム(BIOS)1354は、起動中など、コンピュータ1342内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ROM1350に格納される。
コンピュータ1342にはさらに、ハードディスク(図示せず)に対する読み書きを行うためのハードディスクドライブ1356、リムーバブル磁気ディスク1360に対する読み書きを行うための磁気ディスクドライブ1358、および、CD−ROMまたは他の光メディアなど、リムーバブル光ディスク1364に対する読み書きを行うための光ディスクドライブ1362が含まれる。ハードディスクドライブ1356、磁気ディスクドライブ1358、および光ディスクドライブ1362はバス1348に、SCSIインターフェース1366またはある他の適切なインターフェースによって接続される。これらのドライブおよびそれらの関連付けられたコンピュータ可読メディアは、コンピュータ1342のためのコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書で説明した例示的環境は、ハードディスク、リムーバブル磁気ディスク1360およびリムーバブル光ディスク1364を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)など、コンピュータによってアクセス可能であるデータを格納することができる他のタイプのコンピュータ可読メディアもまた例示的オペレーティング環境内で使用することができることは、当業者には理解されよう。
いくつかのプログラムモジュールをハードディスク1356、磁気ディスク1360、光ディスク1364、ROM1350またはRAM1352上で格納することができ、これらのプログラムモジュールには、オペレーティングシステム1370、1つまたは複数のアプリケーションプログラム1372(ウェブ要求トレースアプリケーション140など)、キャッシュ/他のプログラムモジュール1374およびプログラムデータ1376が含まれる。オペレーティングシステム1370には、本明細書で説明したウェブ要求イベントトレーシングツール(トレースインフラストラクチャ144など)が含まれる可能性がある。ユーザはコマンドおよび情報をコンピュータ1342へ、キーボード1378およびポインティングデバイス1380など、入力デバイスを通じて入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスは処理装置1344へ、バス1348に結合されるインターフェース1382を通じて接続される。モニタ1384または他のタイプの表示デバイスもまたバス1348へ、ビデオアダプタ1386などのインターフェースを介して接続される。モニタに加えて、パーソナルコンピュータには通常、スピーカおよびプリンタなど、他の周辺出力デバイス(図示せず)が含まれる。
コンピュータ1342は一般にネットワーク環境において、リモートコンピュータ1388など、1つまたは複数のリモートコンピュータへの論理接続を使用して動作する。リモートコンピュータ1388は、パーソナルコンピュータ、別のサーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ1342に関連して上述した要素の多数またはすべてを含む。図13に示す論理接続には、ローカルエリアネットワーク(LAN)1390およびワイドエリアネットワーク(WAN)1392が含まれる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーキング環境において使用する場合、コンピュータ1342はローカルネットワークへ、ネットワークインターフェースまたはアダプタ1394を通じて接続される。WANネットワーキング環境において使用する場合、コンピュータ1342には通常、モデム1396、または、インターネットなどのワイドエリアネットワーク1392を介して通信を確立するための他の手段が含まれる。モデム1396は内部であっても外部であってもよく、バス1348へ、シリアルポートインターフェース1368を介して接続される。ネットワーク環境では、パーソナルコンピュータ1342に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。図示のネットワーク接続は例示的であり、複数のコンピュータの間で通信リンクを確立する他の手段を使用することができることは理解されよう。
一般に、コンピュータ1342のデータプロセッサは、コンピュータの様々なコンピュータ可読ストレージメディア内で異なる時間に格納された命令を用いてプログラムされる。プログラムおよびオペレーティングシステムは通常、例えばフロッピー(登録商標)ディスクまたはCD−ROM上に分散される。そこから、プログラムおよびオペレーティングシステムは、コンピュータの2次メモリにインストールまたはロードされる。実行において、プログラムおよびオペレーティングシステムは、少なくとも部分的にはコンピュータの1次電子メモリにロードされる。本明細書で説明した本発明には、これらおよび他の様々なタイプのコンピュータ可読ストレージメディアが、マイクロプロセッサまたは他のデータプロセッサと共に後述のブロックを実装するための命令またはプログラムを含む場合、このようなメディアが含まれる。本発明にはまた、本明細書で説明した方法および技術に従ってプログラムされる場合、コンピュータ自体もが含まれる。
例示のため、オペレーティングシステムなど、プログラムおよび他の実行可能プログラムコンポーネントを本明細書で離散ブロックとして例示するが、このようなプログラムおよびコンポーネントは様々な時間にコンピュータの異なるストレージコンポーネント内に存在し、コンピュータのデータプロセッサによって実行されることは理解されよう。本明細書で説明したファンクションのいずれも、ソフトウェア、ファームウェア(例えば、固定ロジック回路)、手動処理、またはこれらの実施態様の組合せを使用して実施することができる。「ロジック」または「モジュール」という用語は、本明細書で使用される場合、一般に、ソフトウェア、ファームウェア、または、ソフトウェアおよびファームウェアの組合せを表す。例えば、ソフトウェア実施態様の場合、「ロジック」または「モジュール」という用語は、処理デバイス(例えば、CPU)上で実行される場合に、規定されたタスクを実行するプログラムコードを表す。プログラムコードを、1つまたは複数のコンピュータ可読メモリデバイス内に格納することができる。例示した、異なるユニットへのロジックおよびモジュールの分離は、このようなソフトウェアおよび/またはハードウェアの実際の物理的グループ化および割振りを反映する場合があり、または、単一のソフトウェアプログラムおよび/またはハードウェアユニットによって実行される異なるタスクの概念的割振りに対応することが可能である。例示のロジックおよびモジュールを単一のサイトに位置付けることができ(単一の処理デバイスによって実装されるなど)、または、複数のロケーションに渡って分散させることができる。
H.結論
P2Pリソースプールを作成するために、P2P DHTの自己編成能力は、自己スケーリングで階層的なシステム内モニタリングインフラストラクチャと組み合わせられる。自己スケーリングおよび頑強性を達成するため、このインフラストラクチャは、DHTによって作成された仮想空間内で確立され、次いで参加者上にマップされた、論理階層でなければならない。本明細書で、DHTと効果的に組み合わせられたSOMOがどのようにリソースプールを作成するかを説明した。
リソースプールの力を利用して、SOMOを介したオンタイムの正確なニュース放送をうまく利用し、アプリケーションに特化したスケジューラをタスク毎にインストールし、次いで、公正競争によりタスクの間で調整するための無干渉のマーケット主導型の手法を取ることができる。
P2Pシステム内でDHTの上にデータ構造を構築するための実施態様を説明した。情報をP2Pシステムに配布するため、および、情報をP2Pシステムから収集するための、特定の階層ツリー構造を具体的に説明した。
あるオペレーションを、ある順序で実行される異なるステップを構成することとして説明した。このような実施態様は例示的であり、非限定的である。本明細書で説明したあるステップを共にグループ化し、単一のオペレーション内で実行することができ、また、あるステップを、本開示で示した実施例で使用した順序とは異なる順序で実行することができる。
さらに、いくつかの実施例は、本開示で代替物において提示される(例えば、Aの場合またはBの場合)。加えて、本開示は、代替物を単一の実施態様内で結合する場合(例えば、Aの場合およびBの場合)を、本開示があらゆる場合にこれらの接続的場合について明示的に述べない場合があるとしても、包含する。
本発明を、その精神または本質的特性から逸脱することなく、他の特定の形態で実施することができる。上述の実施形態は、あらゆる点で限定的ではなく例示的としてのみ見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
従来のピアツーピア(P2P)システムを示す図である。 従来のCANルーティング方法を示す図である。 従来のCHORDルーティング方法を示す図である。 ローカルマシン環境のコンテキストにおいてデータ構造の2つのオブジェクトをリンクするための従来の技術を示す図である。 P2P分散ハッシュテーブル(DHT)環境内のデータ構造の2つのオブジェクトをリンクするための例示的技術を示し、2つのオブジェクトはP2P DHT環境内の2つの異なるノードに関連付けられ、リンクする技術は、DHTの「上に」配置されたデータオーバーレイの基礎を形成する図である。 リング、ゾーン、および、両側にr個の近隣物を記録する基本ルーティングテーブルを含む、単純なP2P DHTを示し、ハッシングはゾーンをDHTノードに割り当てる図である。 図5に示すデータオーバーレイの概念を使用して構築された例示的ツリー構造を示し、ツリー構造は自己編成メタデータオーバーレイ(SOMO)と呼ばれる図である。 (a)は、SOMOをボトムアップから構築するためのプロセスの進行概略図を示し、参照のフレームとしての論理ツリーの構築を示す図である。(b)は、SOMOをボトムアップから構築するためのプロセスの進行概略図を示し、代表仮想ノードの発見を示す図である。(c)は、SOMOをボトムアップから構築するためのプロセスの進行概略図を示し、物理マシンへの論理ツリーのマッピングを示す図である。 (a)は、図8cに示すボトムアップSOMOを修復するための自己スケーリングプロセスの進行概略図を示し、図8cに示すボトムアップSOMOを示す図である。(b)は、図8cに示すボトムアップSOMOを修復するための自己スケーリングプロセスの進行概略図を示し、物理マシンの追加を示し、そのための対応する代表仮想ノードが論理ツリー内で発見される図である。(c)は、図8cに示すボトムアップSOMOを修復するための自己スケーリングプロセスの進行概略図を示し、物理マシンのすべてへの、訂正された論理ツリーのマッピングを示す図である。 集合的にリソースプールを作成するための、リソースをプールするためのDHTの能力およびボトムアップSOMOの組合せを示す図である。 P2Pシステムの参加者からの情報の収集、および、P2Pシステムの参加者への情報の配布への、図7のSOMOツリー構造の例示的応用例を示す図である。 アプリケーションレベルマルチキャスティングのための概略的配置を示し、円はアプリケーションレベルマルチキャスティングセッションの元のメンバを表し、四角は大きい次数を有する使用可能なピアを表す図である。 リソースプール内のヘルパーノードの使用による、図11aで見られた配置の改良を示し、円はアプリケーションレベルマルチキャスティングセッションの元のメンバを表し、四角は大きい次数を有する使用可能なピアを表す図である。 単一のアプリケーションレベルマルチキャスティングセッションをスケジューリングするためのSOMOレポート構造を示し、各ノードは、それらのネットワーク座標ならびに帯域幅制約を、それらのレポートにおいてSOMOにパブリッシュする図である。 P2Pシステムの参加者を実装するために使用される例示的コンピュータを示し、P2PはそのDHTの上に構築されたデータオーバーレイを含む図である。
符号の説明
102〜112 ピア
402 ローカルマシン環境
502 P2P DHT環境
504 ノードx
508 ノードy
1344 処理装置
1346 システムメモリ
1348 バス
1366 SCSIインターフェース
1368 シリアルポート
1370 オペレーティングシステム
1372 アプリケーションプログラム
1374 キャッシュ
1374 他のモジュール
1376 プログラムデータ
1378 キーボード
1382 キーボード/マウスインターフェース
1386 ビデオアダプタ
1390 ローカルエリアネットワーク
1392 ワイドエリアネットワーク
1394 ネットワークインターフェース
1396 モデム

Claims (42)

  1. データオーバーレイをデータ構造として、ピアツーピアシステムのための分散ハッシュテーブルDHT内に含まれた論理空間の上に構築するステップであって、前記論理空間は、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含むステップと、
    前記データオーバーレイ内で、各前記DHTノードに関連付けられた1つまたは複数のツリーノードをそれぞれ含む、複数のレベルを有するツリーのトポロジを構築するステップであって、
    前記ツリーの第1のレベルは、前記DHTの前記論理空間の全体の範囲に対応し、複数のツリーノードゾーンに論理的に分割される、単一のツリーノードゾーンを有する単一のツリーノードを含み、複数の前記ツリーノードゾーンはそれぞれ、
    前記ツリーの各レベルの前記ツリーノードと、
    前記DHTの前記論理空間の部分と
    に対応し、
    各前記ツリーノードは、その各ツリーノードゾーンに関連付けられたキーを識別するキーメンバを含むステップと、
    複数のマシンを前記DHTの前記論理空間にマップするステップであって、各マシンは、1つまたは複数の前記ツリーノードゾーンに対応し、各マシンはその代表ノードとして、それに対応する前記1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応する前記ツリーノードを選択し、各前記代表ノードはその親ノードとして、より大きいサイズを有する隣接した前記ツリーノードゾーンのための前記代表ノードである、もう1つの前記代表ノードを選択するステップと
    を備えることを特徴とする各マシンが実行する方法。
  2. メタデータを各前記マシンで収集するステップと、
    前記マシンで収集された前記メタデータを、対応する代表ノードに送信するステップと、
    各前記代表ノードによって受信された前記メタデータを収集し、各前記代表ノードによって収集された前記メタデータを、対応する親ノードに送信するステップと、
    前記ツリーの第1のレベルの前記単一のツリーノードで受信されたメタデータを収集するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記ツリーの第1のレベルの前記単一のツリーノードで収集されたメタデータを処理するステップと、
    処理されたメタデータを、前記ツリーの第1のレベルの前記単一のツリーノードから、各前記マシンへ、各親および代表ノードを介して送信するステップと
    をさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記メタデータは、各前記マシンのオペレーションに関する情報を備え、
    前記処理されたメタデータは、各前記マシンのオペレーションを管理することができる命令を備えることを特徴とする請求項3に記載の方法。
  5. 前記DHTの前記論理空間の全体の範囲に対応する前記単一のツリーノードゾーンは、k個のツリーノードゾーンに均等に分割され、
    kは、前記ツリーの第1のレベルのツリーノードの数であり、
    前記ツリーのレベルiのj番目のツリーノードは、
    [j/k,(j+1)/k]のサイズと、
    (2j+1)/2kであって、(0≦j<2)であるキーと
    を有するツリーノードゾーンを有することを特徴とする請求項1に記載の方法。
  6. 各前記キーは、各ツリーノードゾーンの中心を識別する座標の関数である値を有し、
    前記ツリーのi番目のレベルは、k個のツリーノードを含み、
    各ツリーノードの前記ツリーノードゾーンは1/kのサイズを有する
    ことを特徴とする請求項5に記載の方法。
  7. 各前記マシンについて、前記マシンのための各代表および親ノードの各キーを計算するステップをさらに備えることを特徴とする請求項1に記載の方法。
  8. 各キーを計算する前記ステップは、前記マシンにより、ルックアップを前記DHT内で使用して情報を得るステップをさらに備え、前記マシンは前記情報を、対応する前記代表ノードの前記キーにより使用して、前記代表ノードに対応する前記マシンとの通信を確立することを特徴とする請求項7に記載の方法。
  9. 各前記マシンで、ハートビート送信を、隣接する前記ツリーノードゾーン内の各前記マシンから受信するステップと、
    いずれかの前記ハートビート送信がタイムリーに受信されない場合、前記隣接する前記ツリーノードゾーン内の対応する前記マシンの不在を、
    前記DHTの提供を繰り返すことと、
    前記データオーバーレイを前記データ構造として、前記DHTの前記論理空間の上に構築する前記ステップを繰り返すことと、
    マルチレベルツリーを、再構築されたデータオーバーレイ内で構築するステップを繰り返すことと、
    前記複数のマシンを前記DHTの前記論理空間にマップする前記ステップを繰り返すこと
    を行うことによって、計上するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  10. 各前記代表ノードおよび各前記親ノードは、リソースの可用性の最適化関数として選択されることを特徴とする請求項1に記載の方法。
  11. 前記最適化関数は、ネットワーク座標、帯域幅ボトルネック、最大レイテンシ、およびレイテンシの変化からなる1つのグループから選択された基準に基づき、それにより、最もリソースを必要とするタスクは、前記ピアツーピアシステム内で最もリソースを利用可能なマシンによって実行されることを特徴とする請求項10に記載の方法。
  12. 前記DHTは、前記ピアツーピアシステムへのオブジェクトの挿入、および前記ピアツーピアシステムからのオブジェクトの検索を管理し、
    前記論理空間は、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含み、
    前記DHTの前記データオーバーレイは、
    前記データ構造内のオブジェクトを前記DHTノードに関連付けるステップと、
    前記データ構造内の前記オブジェクトの間でリンクを確立するステップと
    によって構築されることを特徴とする請求項1に記載の方法。
  13. 各リンクは、
    第1のオブジェクトから第2のオブジェクトへポイントする、ハードワイヤードポインタを提供する第1のフィールドと、
    前記第1のオブジェクトから、前記第2のオブジェクトをホストするDHTノードへポイントする、ソフトステートポインタを提供する第2のフィールドと
    を含むことを特徴とする請求項12に記載の方法。
  14. 前記データオーバーレイを構築する前記ステップは、
    前記DHT内のオブジェクトへのポインタを確立する参照を設定するための第1のプリミティブと、
    ポインタによって参照されたオブジェクトを戻すための第2のプリミティブと、
    ポインタによって参照されたオブジェクトを削除するための第3のプリミティブと
    を使用することを特徴とする請求項12に記載の方法。
  15. 前記データオーバーレイ内の各ツリーノードは、前記ツリーノードを通過させられるデータ上で実行されるオペレーションを定義する、オペレーションメンバを含むことを特徴とする請求項1に記載の方法。
  16. 前記データオーバーレイ内の各ツリーノードは、前記ツリーノードを使用して生成されるレポートタイプを定義する、レポートメンバを含むことを特徴とする請求項1に記載の方法。
  17. 前記ツリーの第1のレベルは、前記ツリーのためのルートノードである前記ツリーノードを含み、
    前記ルートノードは、前記DHTの前記論理空間の全体の範囲に対応する前記ツリーノードゾーンに対応する
    ことを特徴とする請求項1に記載の方法。
  18. 請求項12に記載の方法による、前記データオーバーレイ内のオブジェクトの構築を実施するためのプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
  19. 請求項1に記載の方法により作成されたデータオーバーレイを格ることを特徴とするコンピュータ可読な記憶媒体。
  20. データオーバーレイを、ピアツーピアシステムのための分散ハッシュテーブルDHT内に含まれた論理空間の上のデータ構造として備えるプログラム記憶したコンピュータ可読な記憶媒体であって、
    前記DHTは、ピアツーピアシステムへのオブジェクトの挿入、およびピアツーピアシステムからのオブジェクトの検索を管理し、
    前記論理空間は、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含み、
    前記DHTの前記データオーバーレイは、
    前記データ構造内のオブジェクトを前記DHTノードに関連付けるステップと、
    前記データ構造内の前記オブジェクトの間でリンクを確立するステップと
    によって構築され、
    前記データオーバーレイは、複数のレベルを有するツリーのトポロジを有し、
    前記ツリーは、各前記DHTノードに関連付けられた複数のツリーノードを含み、
    前記ツリーノードは、前記DHTの前記論理空間に対応するツリーノードゾーンを有するルートノードを含み、
    前記ルートノードの前記ツリーノードゾーンは、複数のツリーノードゾーンに論理的に分割され、前記複数のツリーノードゾーンはそれぞれ、
    前記ツリーの各レベルのツリーノードの数と、
    分散ハッシュテーブルの前記論理空間の部分と
    に対応し、
    各前記ツリーノードは、その各ツリーノードゾーンに関連付けられたキーを識別するキーメンバを含み、
    前記DHTの前記論理空間は複数のマシンにマップされ、
    各マシンは、1つまたは複数の前記ツリーノードゾーンに対応し、各マシンその代表ノードとして、それに対応する前記1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応する前記ツリーノードを選択させ、各前記代表ノードその親ノードとして、より大きいサイズを有する隣接した前記ツリーノードゾーンのための前記代表ノードである、もう1つの前記代表ノードを選択させる機能を実現させるためのプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
  21. 前記ルートノードの前記ツリーノードゾーンは、k個のツリーノードゾーンに均等に分割され、kは、前記ツリーの第1のレベルのツリーノードの数であり、
    前記ツリーのレベルiのj番目のツリーノードは、
    [j/k,(j+1)/k]のサイズと、
    (2j+1)/2kであって、(0≦j<2)であるキーと
    を有するツリーノードゾーンを有することを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  22. 各前記キーは、各ツリーノードゾーンの中心を識別する座標の関数である値を有し、
    前記ツリーのi番目のレベルは、k個のツリーノードを含み、
    各ツリーノードの前記ツリーノードゾーンは1/kのサイズを有することを特徴とする請求項21に記載のコンピュータ可読な記憶媒体。
  23. 前記DHTは、前記ピアツーピアシステムへのオブジェクトの挿入、および前記ピアツーピアシステムからのオブジェクトの検索を管理し、
    前記論理空間は、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含み、
    前記DHTの前記データオーバーレイは、
    前記DHTに関連付けられた、前記データ構造内のオブジェクトを有し、
    前記データ構造内の前記オブジェクトの間で確立されたリンクを有する
    ことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  24. 各リンクは、
    第1のオブジェクトから第2のオブジェクトへポイントする、ハードワイヤードポインタを提供する第1のフィールドと、
    前記第1のオブジェクトから、前記第2のオブジェクトをホストするDHTノードへポイントする、ソフトステートポインタを提供する第2のフィールドと
    を含むことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  25. 第1のプリミティブは、前記DHT内のオブジェクトへのポインタを確立する参照を設定し、
    第2のプリミティブは、ポインタによって参照されたオブジェクトを戻し、
    第3のプリミティブは、ポインタによって参照されたオブジェクトを削除する
    ことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  26. 前記データオーバーレイ内の各ツリーノードは、前記ツリーノードを通過させられるデータ上で実行することができるオペレーションを定義する、オペレーションメンバを含むことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  27. 前記データオーバーレイ内の各ツリーノードは、前記ツリーノードを使用して生成されるレポートタイプを定義する、レポートメンバを含むことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  28. 前記ツリーの第1のレベルは、前記ツリーのためのルートノードである前記ツリーノードを含み、
    前記ルートノードは、前記DHTの前記論理空間の全体の範囲に対応する前記ツリーノードゾーンに対応する
    ことを特徴とする請求項20に記載のコンピュータ可読な記憶媒体。
  29. ピアツーピア方法で対話する複数のマシンを含むピアツーピアシステムであって、
    複数の関連付けられたDHTゾーンを有する複数のDHTノードを含む分散ハッシュテーブルDHTの論理空間と、
    なお、前記DHTは、前記ピアツーピアシステムへのオブジェクトの挿入、および前記ピアツーピアシステムからのオブジェクトの検索を管理し、
    前記DHTの前記論理空間の上のデータ構造としてのデータオーバーレイを構築する手段と、
    なお、前記DHTの前記データオーバーレイは、
    前記DHTノードに関連付けられた前記データ構造内のオブジェクトを有し、
    前記データ構造内の前記オブジェクトの間で確立されたリンクを有し、
    前記データオーバーレイにおけるツリーのトポロジを構築する手段であって、前記ツリーは複数のレベルおよび各前記DHTノードに関連付けられた複数のツリーノードを含む手段と、
    なお、前記ツリーノードは、前記DHTの前記論理空間全体に対応するツリーノードゾーンを有するルートノードを含み、
    前記ルートノードの前記ツリーノードゾーンは、複数のツリーノードゾーンに論理的に分割され、前記複数のツリーノードゾーンはそれぞれ、
    前記ツリーの各レベルのツリーノードの数と、
    分散ハッシュテーブルの前記論理空間の部分と
    に対応し、
    各前記ツリーノードは、その各ツリーノードゾーンに関連付けられたキーを識別するキーメンバを含み、
    前記DHTの前記論理空間を前記複数のマシンにマップする手段と
    を有し、各マシンは、1つまたは複数の前記ツリーノードゾーンに対応し、各マシンはその代表ノードとして、それに対応する前記1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応する前記ツリーノードを選択するように構成され、各前記代表ノードはその親ノードとして、より大きいサイズを有する隣接した前記ツリーノードゾーンのための前記代表ノードである、もう1つの前記代表ノードを選択するように構成されていることを特徴とするピアツーピアシステム。
  30. データを前記ツリーノード中に通過させることによって、前記データオーバーレイを通じて前記データをルーティングするように構成されたルーティングロジックをさらに備えることを特徴とする請求項29に記載のシステム。
  31. 前記ルーティングロジックは、データをDHTノードから収集すること、および、前記データを前記ツリーの前記ルートノードへと前記ツリーノード中に通過させることによって、前記データオーバーレイを通じて前記データをルーティングするように構成されることを特徴とする請求項30に記載のシステム。
  32. 前記ルーティングロジックは、前記ツリーの前記ルートノードから、前記ツリーノードを通じて、前記DHTノードへデータを配布することによって、前記データオーバーレイを通じてデータをルーティングするように構成されることを特徴とする請求項30に記載のシステム。
  33. 複数のマシンを含むピアツーピアシステムを構築するための装置であって、
    データオーバーレイをデータ構造として、ピアツーピアシステムのための分散ハッシュテーブルDHT内に含まれた論理空間の上に構築する手段と、
    なお、前記DHTは、ピアツーピアシステムへのオブジェクトの挿入、およびピアツーピアシステムからのオブジェクトの検索を管理し、
    前記論理空間は、関連付けられた複数のDHTゾーンを有する複数のDHTノードを含み、
    前記DHTの前記データオーバーレイは、
    前記データ構造内のオブジェクトを前記DHTノードに関連付けること、および
    前記データ構造内の前記オブジェクトの間でリンクを確立すること
    によって構築され、
    前記データオーバーレイ内でツリーのトポロジを構築する手段と、
    なお、前記ツリーは複数のレベルを有し、各前記DHTノードに関連付けられた複数のツリーノードを含み、
    前記ツリーノードは、前記DHTの前記論理空間に対応するツリーノードゾーンを有するルートノードを含み、
    前記ルートノードの前記ツリーノードゾーンは、複数のツリーノードゾーンに論理的に分割され、前記複数のツリーノードゾーンはそれぞれ、
    前記ツリーの各レベルのツリーノードの数と、
    前記分散ハッシュテーブルの前記論理空間の部分と
    に対応し、
    各前記ツリーノードは、その各ツリーノードゾーンに関連付けられたキーを識別するキーメンバを含み、
    各マシンが1つまたは複数の前記ツリーノードゾーンに対応する前記複数のマシンを前記DHTの前記論理空間にマップする手段と
    各マシンにその代表ノードとして、それに対応する前記1つまたは複数のツリーノードゾーンから、最大サイズのツリーノードゾーンに対応する前記ツリーノードを選択させるための手段と、
    各前記代表ノードにその親ノードとして、より大きいサイズを有する隣接した前記ツリーノードゾーンのための前記代表ノードである、もう1つの前記代表ノードを選択させるための手段と
    を備えることを特徴とする装置。
  34. メタデータを各前記マシンで収集する手段と、
    前記マシンで収集された前記メタデータを、対応する代表ノードに送信する手段と、
    各前記代表ノードによって受信された前記メタデータを収集する手段と、
    各前記代表ノードによって収集された前記メタデータを、対応する親ノードに送信する手段と、
    前記ツリーの第1のレベルの単一のツリーノードで受信されたメタデータを収集する手段と
    をさらに備えることを特徴とする請求項33に記載の装置。
  35. 前記ツリーの第1のレベルの単一のツリーノードで収集されたメタデータを処理する手段と、
    処理されたメタデータを、前記ツリーの第1のレベルの単一のツリーノードから、各前記マシンへ、各親および代表ノードを介して送信する手段と
    をさらに備えることを特徴とする請求項34に記載の装置。
  36. 前記メタデータは、各前記マシンのオペレーションに関する情報を備え、
    前記処理されたメタデータは、各前記マシンのオペレーションを管理することができる命令を備える
    ことを特徴とする請求項35に記載の装置。
  37. 各前記マシンで、ハートビート送信を、隣接する前記ツリーノードゾーン内の各前記マシンから受信する手段と、
    いずれかの前記ハートビート送信がタイムリーに受信されない場合、前記隣接する前記ツリーノードゾーン内の対応する前記マシンの不在を、
    前記DHTの提供を繰り返すこと、
    前記データオーバーレイを前記データ構造として、前記DHTの前記論理空間の上に構築することを繰り返すこと、および
    マルチレベルツリーを、再構築されたデータオーバーレイ内で構築することを繰り返すこと
    によって、計上する手段と
    をさらに備えることを特徴とする請求項33に記載の装置。
  38. 前記計上する手段は、前記複数のマシンを前記DHTの前記論理空間にマップすることを繰り返す手段をさらに備え、
    各前記代表ノードおよび各前記親ノードを、対応するマシンのリソースの可用性の最適化関数として選択する手段をさらに備える
    ことを特徴とする請求項37に記載の装置。
  39. 前記最適化関数は、ネットワーク座標、帯域幅ボトルネック、最大レイテンシ、およびレイテンシの変化からなるグループから選択された基準に基づき、それにより、最もリソースを必要とするタスクは、前記ピアツーピアシステム内で最もリソースを利用可能なマシンによって実行されることを特徴とする請求項38に記載の装置。
  40. データを前記ツリーノード中に通過させることによって、前記データオーバーレイを通じて前記データをルーティングする手段をさらに備えることを特徴とする請求項33に記載の装置。
  41. 前記ルーティングする手段は、データをDHTノードから収集すること、および、前記データを前記ツリーの前記ルートノードへと前記ツリーノード中に通過させることによって、前記データオーバーレイを通じて前記データをルーティングする手段を含むことを特徴とする請求項40に記載の装置。
  42. 前記ルーティングする手段は、前記ツリーの前記ルートノードから、前記ツリーノードを通じて、前記DHTノードへデータを配布することによって、前記データオーバーレイを通じてデータをルーティングする手段を含むことを特徴とする請求項40に記載の装置。
JP2005119800A 2004-04-16 2005-04-18 データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング Expired - Fee Related JP4750457B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/826,674 2004-04-16
US10/826,674 US7418454B2 (en) 2004-04-16 2004-04-16 Data overlay, self-organized metadata overlay, and application level multicasting

Publications (3)

Publication Number Publication Date
JP2005353039A JP2005353039A (ja) 2005-12-22
JP2005353039A5 JP2005353039A5 (ja) 2008-06-05
JP4750457B2 true JP4750457B2 (ja) 2011-08-17

Family

ID=34939303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005119800A Expired - Fee Related JP4750457B2 (ja) 2004-04-16 2005-04-18 データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング

Country Status (7)

Country Link
US (1) US7418454B2 (ja)
EP (1) EP1587282B1 (ja)
JP (1) JP4750457B2 (ja)
KR (1) KR101120847B1 (ja)
CN (1) CN1708026B (ja)
AT (1) ATE369693T1 (ja)
DE (1) DE602005001883T2 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
JP4506387B2 (ja) * 2004-09-30 2010-07-21 ブラザー工業株式会社 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等
FR2878673B1 (fr) * 2004-11-26 2007-02-09 Univ Picardie Jules Verne Etab Systeme et procede de sauvegarde distribuee perenne
WO2006068365A1 (en) * 2004-12-21 2006-06-29 Electronics And Telecommunications Research Institute P2p overlay network construction method and apparatus
US7428220B1 (en) * 2005-02-10 2008-09-23 Sun Microsystems, Inc. Method and apparatus for data aggregation in a distributed system
US7895270B2 (en) * 2005-04-21 2011-02-22 Microsoft Corporation Transport abstraction for multiparty replication
US20070011171A1 (en) * 2005-07-08 2007-01-11 Nurminen Jukka K System and method for operation control functionality
JP4544072B2 (ja) * 2005-07-20 2010-09-15 ブラザー工業株式会社 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
US7489689B2 (en) * 2005-10-26 2009-02-10 Cisco Technology, Inc. Method, system and apparatus for scheduling a large pool of resources
JP2007235243A (ja) * 2006-02-27 2007-09-13 Brother Ind Ltd 情報通信システム、情報収集方法、ノード装置、及びノード処理プログラム
JP4692355B2 (ja) * 2006-03-30 2011-06-01 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
US7516116B2 (en) * 2006-04-07 2009-04-07 Microsoft Corporation Range and cover queries in overlay networks
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
JP4862463B2 (ja) * 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4655986B2 (ja) * 2006-04-12 2011-03-23 ブラザー工業株式会社 ノード装置、記憶制御プログラム及び情報記憶方法
JP4539603B2 (ja) * 2006-04-13 2010-09-08 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
TW200741493A (en) * 2006-04-18 2007-11-01 Benq Corp Systems and methods for discovering frequently accessed subtrees
JP4670726B2 (ja) * 2006-04-28 2011-04-13 ブラザー工業株式会社 ノード装置、情報処理方法及びノード装置用プログラム
US7523340B2 (en) 2006-05-31 2009-04-21 Microsoft Corporation Support self-heal tool
US7643459B2 (en) * 2006-06-16 2010-01-05 Alcatel-Lucent Usa Inc. Methods, devices and architectures for establishing peer-to-peer sessions
CN100525210C (zh) * 2006-06-26 2009-08-05 华为技术有限公司 域管理器系统、获知相邻域管理器及进行更新的方法
US8375141B2 (en) * 2006-09-29 2013-02-12 Microsoft Corporation Infrastructure to disseminate queries and provide query results
WO2008041173A2 (en) * 2006-10-02 2008-04-10 Nokia Corporation Method system and devices for network sharing or searching of resources
US7684352B2 (en) * 2006-11-02 2010-03-23 Nortel Networks Ltd Distributed storage of routing information in a link state protocol controlled network
CN101193032B (zh) * 2006-11-29 2012-03-21 曲锐 基于分布式哈希表的数据处理方法和网络
GB2446200A (en) * 2006-12-01 2008-08-06 David Irvine Encryption system for peer-to-peer networks which relies on hash based self-encryption and mapping
CN101005606B (zh) * 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
US8018453B2 (en) * 2007-02-09 2011-09-13 International Business Machines Corporation Deferred acceleration data structure optimization for improved performance
US8140625B2 (en) * 2007-02-20 2012-03-20 Nec Laboratories America, Inc. Method for operating a fixed prefix peer to peer network
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
WO2008102195A1 (en) * 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
US7630370B2 (en) * 2007-02-28 2009-12-08 Sharp Laboratories Of America, Inc. Overlay join latency reduction using preferred peer list
EP2122905A2 (en) * 2007-03-09 2009-11-25 Telefonaktiebolaget LM Ericsson (PUBL) Dissemination of network management tasks in a distributed communication network
US20080225780A1 (en) * 2007-03-13 2008-09-18 Nortel Networks Limited Use of distributed hashtables for wireless access mobility management
JP4172522B1 (ja) * 2007-04-12 2008-10-29 ヤマハ株式会社 マルチキャスト配信システム及びマルチキャスト配信方法
CN101291321B (zh) * 2007-04-19 2012-10-03 华为技术有限公司 发布内容的方法及系统、查找内容的方法及系统
US20080276091A1 (en) * 2007-05-04 2008-11-06 Annikki Welin Mobile Device File Sharing Method and Apparatus
JP4389964B2 (ja) * 2007-05-15 2009-12-24 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム
CN101350807B (zh) * 2007-07-20 2012-04-04 华为技术有限公司 多地址空间移动网络架构、主机信息注册及数据发送方法
US7970916B2 (en) * 2007-07-25 2011-06-28 Cisco Technology, Inc. Register clustering in a sip-based network
CN101399746B (zh) * 2007-09-26 2011-03-16 华为技术有限公司 报文路由方法、系统、设备和选择备份资源的方法、系统
US8582469B2 (en) * 2007-11-14 2013-11-12 Cisco Technology, Inc. Peer-to-peer network including routing protocol enhancement
JP4863973B2 (ja) * 2007-11-26 2012-01-25 日本電信電話株式会社 オーバーレイマルチキャスト配信ネットワーク構成方法とシステムおよびプログラム
CN101465796B (zh) * 2007-12-19 2012-10-31 中国移动通信集团公司 P2p系统元数据收集、分发方法及其装置和系统
JP5029373B2 (ja) * 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
JP5151511B2 (ja) * 2008-01-30 2013-02-27 ソニー株式会社 検索サービス提供システム及び検索サービス提供方法
JP5058135B2 (ja) * 2008-02-08 2012-10-24 パナソニック株式会社 端末装置
US20090213754A1 (en) * 2008-02-26 2009-08-27 Roie Melamed Device, System, and Method of Group Communication
US8610673B2 (en) 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US8264988B2 (en) * 2009-01-30 2012-09-11 Nec Laboratories America, Inc. Method for inferring physical network topology from end-to-end measurement
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8019862B2 (en) 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
JP5026601B2 (ja) * 2009-03-18 2012-09-12 パナソニック株式会社 データを複数のノード間でネットワークを介して受信および転送するマルチキャスト通信方法および装置
US7957385B2 (en) 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Method and apparatus for packet routing
US7957400B2 (en) 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Hierarchical network topology
CN101534309B (zh) 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
JP4818396B2 (ja) * 2009-05-22 2011-11-16 株式会社東芝 オーバーレイネットワークシステム及び同システムにおけるオブジェクト登録方法
CN101938509B (zh) * 2009-06-29 2015-11-25 日电(中国)有限公司 为p2p网络提供节点信息的服务器、方法及系统
CN101635645B (zh) * 2009-08-28 2012-01-11 中兴通讯股份有限公司 一种网络拓扑的管理方法及装置
CN101656618B (zh) * 2009-09-11 2012-09-05 中兴通讯股份有限公司 一种基于结构化对等网络的多媒体消息广播方法及系统
US9357001B2 (en) * 2009-10-01 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Location aware mass information distribution system and method
US7716179B1 (en) * 2009-10-29 2010-05-11 Wowd, Inc. DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
US9922331B2 (en) * 2009-11-04 2018-03-20 Blue Kai, Inc. Filter for user information based on enablement of persistent identification
DE102010006991A1 (de) * 2010-02-05 2011-08-11 Siemens Aktiengesellschaft, 80333 Verfahren und System zum Verwalten von verteilt in einem Rechnernetz gespeicherten Informationen
US9767475B2 (en) * 2010-08-20 2017-09-19 Blue Kai, Inc. Real time audience forecasting
JP5500257B2 (ja) * 2010-09-30 2014-05-21 日本電気株式会社 ストレージシステム
KR20120071576A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템
EP2477377A1 (en) * 2011-01-14 2012-07-18 Alcatel Lucent Peer node and method for improved peer node selection
JP5943430B2 (ja) * 2011-03-16 2016-07-05 日本電気株式会社 分散記憶システムおよび分散記憶方法
CN102185935B (zh) * 2011-04-27 2013-07-31 北京交通大学 一种面向资源的分层名字解析系统
WO2013046667A1 (ja) * 2011-09-27 2013-04-04 日本電気株式会社 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
JP6094487B2 (ja) * 2011-09-27 2017-03-15 日本電気株式会社 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体
CA2897118A1 (en) * 2012-01-04 2013-07-11 Hongbing Fan System and method for providing p2p based reconfigurable computing and structured data distribution
US20150019574A1 (en) * 2012-03-09 2015-01-15 Nec Corporation Object placement device and method, and computer program
JP5818263B2 (ja) * 2012-05-10 2015-11-18 日本電信電話株式会社 データの分散管理システム及び装置及び方法及びプログラム
EP2875440A4 (en) 2012-07-20 2016-05-25 Hewlett Packard Development Co POLICY-BASED SCALING OF NETWORK RESOURCES
US10740797B2 (en) * 2012-07-30 2020-08-11 Oath Inc. Systems and methods for implementing a mobile application based online advertising system
JP6182861B2 (ja) * 2012-12-28 2017-08-23 富士通株式会社 情報処理装置、情報処理端末、情報検索プログラム及び情報検索方法
CN104063420B (zh) * 2014-03-25 2015-08-26 深圳市挪亚物联信息技术有限公司 一种统一动态数据模型实现的方法及系统
US9805392B2 (en) * 2014-07-02 2017-10-31 Oracle International Corporation Simulating online user activity to generate an advertising campaign target audience list
CN105488088B (zh) * 2014-12-31 2019-05-07 哈尔滨安天科技股份有限公司 基于树形结构的二维网络角度分配布局方法
US10652322B2 (en) * 2015-03-09 2020-05-12 International Business Machines Corporation Scalable parallel messaging process
EP3304303B1 (en) * 2015-06-03 2021-06-09 Telefonaktiebolaget LM Ericsson (PUBL) Allocating or announcing availability of a software container
CN105573836B (zh) * 2016-02-23 2018-12-28 中国农业银行股份有限公司 数据处理方法及装置
SG10201912412PA (en) * 2016-03-07 2020-02-27 Agency Science Tech & Res Method of facilitating distributed data search in a federated cloud and system thereof
WO2017201027A2 (en) * 2016-05-16 2017-11-23 Interdigital Patent Holdings, Inc. Enhancements for ieee 802.11ah relays
CN107453994A (zh) * 2016-05-30 2017-12-08 北京信威通信技术股份有限公司 基于dht网络的数据传输方法及装置
KR102603069B1 (ko) * 2016-11-19 2023-11-15 디피니티 스티프텅 시스템 아키텍쳐 및 시스템 아키텍쳐에서의 데이터 처리 방법
CN109962942B (zh) * 2017-12-22 2022-06-07 天翼云科技有限公司 副本更新方法和装置以及计算机可读存储介质
WO2020010270A1 (en) * 2018-07-04 2020-01-09 Neji, Inc. Dynamic routing using a distributed hash table
CN109274759A (zh) * 2018-10-19 2019-01-25 杭州和利时自动化有限公司 一种集散控制系统及其节点间的通信方法和装置
CN112216375B (zh) * 2020-09-03 2023-05-09 南京信息工程大学 一种自主构建医疗监测系统的方法
CN112187912B (zh) * 2020-09-24 2023-12-19 宜宾三江电子信息产业有限公司 一种基于分布式网络的数据漫游方法与装置
CN117785391B (zh) * 2024-02-28 2024-05-10 成都索贝视频云计算有限公司 一种服务操作逻辑结构化装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
US7644182B2 (en) * 2004-03-11 2010-01-05 Hewlett-Packard Development Company, L.P. Reconfiguring a multicast tree
US7730207B2 (en) * 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing

Also Published As

Publication number Publication date
DE602005001883D1 (de) 2007-09-20
JP2005353039A (ja) 2005-12-22
US7418454B2 (en) 2008-08-26
EP1587282A2 (en) 2005-10-19
EP1587282A3 (en) 2006-05-24
US20050243740A1 (en) 2005-11-03
CN1708026A (zh) 2005-12-14
CN1708026B (zh) 2011-07-27
EP1587282B1 (en) 2007-08-08
DE602005001883T2 (de) 2007-12-20
ATE369693T1 (de) 2007-08-15
KR101120847B1 (ko) 2012-03-16
KR20060045788A (ko) 2006-05-17

Similar Documents

Publication Publication Date Title
JP4750457B2 (ja) データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング
Mastroianni et al. A super-peer model for resource discovery services in large-scale grids
Biskupski et al. Properties and mechanisms of self-organizing MANET and P2P systems
Korzun et al. Structured peer-to-peer systems: fundamentals of hierarchical organization, routing, scaling, and security
Zarrin et al. Resource discovery for distributed computing systems: A comprehensive survey
Mastroianni et al. Designing an information system for Grids: Comparing hierarchical, decentralized P2P and super-peer models
Forestiero et al. So-grid: A self-organizing grid featuring bio-inspired algorithms
Costa et al. Autonomous resource selection for decentralized utility computing
Demirci et al. A hierarchical P2P clustering framework for video streaming systems
Kokkinos et al. Scheduling efficiency of resource information aggregation in grid networks
Fadaie et al. A new replica placement algorithm in data grid
van Renesse et al. Autonomic computing: A system-wide perspective
Han et al. A lightweight personal grid using a supernode network
Fiscato et al. On the feasibility of decentralized grid scheduling
Celaya et al. YA: Fast and Scalable Discovery of Idle CPUs in a P2P network.
Kwan et al. Resource discovery and scheduling in unstructured peer-to-peer desktop grids
Celaya et al. Scalable architecture for allocation of idle CPUs in a P2P network
Yang et al. Automatic clustering for self-organizing grids
Sentís et al. Discop2p: an efficient p2p computing overlay
Song et al. QSON: QoS-aware service overlay network
Bejan et al. Self-optimizing DHTs using request profiling
Qi et al. Toward Distributively Build Time-Sensitive-Service Coverage in Compute First Networking
Zhang et al. P2P resource pool and its application to optimize wide-area application level multicasting
Gandhi On the coverage of grid information dissemination protocols
Alnoshan Microeconomic Approach to P2P Resource Allocation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110513

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110519

R150 Certificate of patent or registration of utility model

Ref document number: 4750457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees