JP2010505196A - 効率的に拡張可能なコンピューティングのための複数のピアグループ - Google Patents

効率的に拡張可能なコンピューティングのための複数のピアグループ Download PDF

Info

Publication number
JP2010505196A
JP2010505196A JP2009530493A JP2009530493A JP2010505196A JP 2010505196 A JP2010505196 A JP 2010505196A JP 2009530493 A JP2009530493 A JP 2009530493A JP 2009530493 A JP2009530493 A JP 2009530493A JP 2010505196 A JP2010505196 A JP 2010505196A
Authority
JP
Japan
Prior art keywords
peer
peer group
group
groups
communication
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.)
Withdrawn
Application number
JP2009530493A
Other languages
English (en)
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 JP2010505196A publication Critical patent/JP2010505196A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

計算、通信、及び/又は記憶タスクを実行する複数のピアグループ。方法は、例えば、互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。上記方法は、2つ又はそれ以上の別個のピアグループを用いて、エージェントにデータを提供するステップを含んでいる。ピアグループは、複数のエージェントの中から選んだメンバを含む。上記方法は、各ピアグループでデータ上のオペレーションを実行するステップをさらに含む。各ピアグループは、特定のオペレーションを実行できる。上記方法は、共通の計算、通信及び/又は記憶タスクが各ピアグループでのオペレーションを統合することによって達成されるように、各ピアグループでのオペレーションを適合するステップも含んでいる。

Description

本発明は、効率的に拡張可能なコンピューティングのための複数のピアグループに関する。
現在のコンピュータは、別のコンピュータに接続する機能を大抵有している。例えば、現在の家庭用コンピュータは、インターネットサービスプロバイダサーバ、Eメールサーバ等へのダイアルアップ接続、別のコンピュータ等への直接のダイアルアップ接続のためのモデムを含むことができる。さらに、ほぼ全ての家庭用コンピュータは、IEE802.3規格に準拠したRJ−45イーサネット(登録商標)ポートのようなネットワークインターフェイスポートを備えている。このネットワークポートと同様に、様々な無線及び有線接続部等の別の接続部が用いられることができ、複数のコンピュータを相互接続する。
複数のコンピュータは、様々なトポロジで相互接続することができる。例えば、あるトポロジは、クライアントサーバトポロジである。クライアントサーバトポロジにおいて、中央権限部は、ネットワーク組織に対して制御を維持している。中央権限部は、ネットワークにおけるクライアントにネットワークアドレスを提供することにより、ルーティング機能を備えることができる。中央権限部が機能を停止する、又は機能しないと、ネットワーク通信を妨害し、又は完全に停止することができる。
別の種類のトポロジは、ピアツーピアネットワークである。ピアツーピアネットワークは、所定の目的のために集められた自己選択グループとして形成される。ピアツーピアネットワークにおけるピアは、トークンを提供すること及びトークンを検査すること、共通の暗号又は鍵を共有すること、共通のアプリケーションを実行すること等により、ネットワークメンバを識別することができる。
ピアグループ通信のある例において、ピアグループにおける各々のピアは、ピアグループにおける全てのピアのサブセットを認識している。ピアがメッセージを送信することを決定すると、ピアは、ピアが認識しているピアの全てにメッセージを送信することができる。これらのピアの各々は、これらのピアが認識しているピアにメッセージを送信することができる。このように、メッセージはピアグループに大量に送られる。
本明細書で特許請求の範囲に記載された主題は、例えば上述した環境だけにおいて、任意の欠点を解決する、又は機能する実施形態に制限されない。むしろ、この背景技術は、ある例示的な技術分野を説明するために提供されているだけであり、本明細書で説明される一部の実施形態を実施することができる。
ある実施形態において、計算、通信、及び/又は記憶タスクを実行する方法が例示される。その方法は、例えば、互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。その方法は、2つ又はそれ以上の別個のピアグループを用いてエージェントにデータを提供するステップを含む。ピアグループは複数のエージェントの中から選んだメンバを含む。その方法は、各ピアグループにおいてデータ上のオペレーションを実行するステップをさらに含んでいる。各ピアグループは特定のオペレーションを実行する。上記方法は、共通の計算、通信、及び/又は記憶タスクが各ピアグループでのオペレーションを統合することにより達成されるように、各ピアグループにおけるオペレーションを適合するステップを含んでいる。
別の実施形態において、計算、通信、及び/又は記憶タスクを実行する別の方法が例示される。この実施形態は、例えば、互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において実施されることができる。上記方法は2つ又はそれ以上のピアグループにおけるメンバーシップを得るステップを含んでいる。上記方法は、第1のオペレーションを実行するために第1のピアグループを使用するステップをさらに含んでいる。第1のオペレーションは、第1のピアグループに特有のオペレーションである。第2のピアグループは、第2のオペレーションを実行するために用いられる。第2のオペレーションは、第2のピアグループに特有のオペレーションである。上記実施形態は、共通の計算、通信、及び/又は記憶タスクがオペレーションを統合することにより達成されるように、第1のピアグループ第2のピアグループにおいて実行される第1のオペレーション及び第2のオペレーションを適合するステップをさらに含んでいる。
第3の実施形態において、コンピューティング環境における使用のためのシステムが開示される。コンピューティング環境は、互いにネットワーク接続された1つ又は複数のエージェントを含み、計算、通信、及び/又は記憶タスクを実行する。上記システムは、第1のピアグループにおけるメンバーシップを含んでいる。第1のピアグループは、第1のオペレーションのために構成される。上記システムは、第2のピアグループにおけるメンバーシップをさらに含んでいる。第2のピアグループは、第2のオペレーションのために構成される。上記システムは、共通の計算、通信、及び/又は記憶タスクがオペレーションを統合することにより達成されるように、第1のオペレーション及び第2のオペレーションを適合するモジュールをさらに含んでいる。
この発明の概要は、概念の選択を簡略的な形態で説明するために与えられ、以下の発明を実施するための形態においてさらに説明される。この発明の概要は、特許請求の範囲に記載された主題の鍵となる特徴又は必須の特徴を明らかにすることを意図しておらず、特許請求の範囲に記載された主題の範囲を決定する補助として使用されることを目的としていない。
さらなる特徴及び利点は、以下において説明され、以下の説明から一部が明らかにされる、又は、本明細書の教示内容を実施することにより理解されることができる。本発明の特徴及び利点は、添付の特許請求の範囲において特に指摘された装置の及び組み合わせの手段により実現され、得られることができる。本発明の特徴は、以下の説明及び添付の特許請求の範囲から十分に明確になる、又は以降に説明される本発明を実践により理解されることができる。
上述された利点及び別の利点及び特徴が得られることができる主題を説明するために、上で簡単に記載された本主題の説明のより詳細な説明が、添付図面において例示された特定の実施形態の参照によって提供されるであろう。これらの図面は発明の典型的な実施形態を示しているだけであり、それゆえに本発明の範囲を限定していると考えられるべきではないことを理解する一方で、本発明は添付図面を使用することにより、さらに明確且つ詳細に記載されて説明されるであろう。
複数のピアグループを示すトポロジを例示する図である。 ピアグループ通信を利用するアプリケーションを例示する図である。 グリッドコンピューティングにおいて使用されるピアグループを例示する図である。 グリッドコンピューティングにおいて使用されるピアグループをさらに例示する図である。 並列アプリケーション形態において使用されるピアグループを例示する図である。 多数のチャネル及び送信手段を例示する図である。 複数のピアグループを使用する方法を例示する図である。 複数のピアグループを使用する別の方法を例示する図である。
本明細書における実施形態は、以下においてより詳しく論じられるように、様々なコンピュータハードウェアを有する専用コンピュータ又は汎用コンピュータを備えることができる。
ある実施形態は、多数の相互接続されたエージェントを有するトポロジを含んでいる。エージェントは、例えば、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、及び専用ハードウェア等を含むことができる。トポロジは、1組のピアグループをさらに含んでいる。1組のピアグループは、多数の異なるピアグループを含み、各ピアグループは、メンバとしてエージェントの一部又は全てを含んでいる。各ピアグループは、特定のコンピューティング記憶又は通信オペレーションを設計する。本明細書で使用されるようなピアグループは、物理的なマルチキャスティングを超える通信メカニズムを使用することができるアプリケーションレベルの構成物である。例えば、ピアグループは、複数のピアへの接続のために複数のアプリケーションレベルピアチャネルを使用することができ、及び/又は異なるレベルの項目について複数のチャネルを使用することができる。一部の実施形態は、外部フィードバック及び/又は通信された情報を利用することができ、最適な及び/又は適切な通信メカニズムを選択し、使用する。以下の例示及び図5に例示した実施形態を参照すると、これらの実施形態の一部は、特定のタスクを達成するプロセスの間の通信メカニズムを変更することができる。1組のピアグループ内のピアグループによって実行されるオペレーションの統合により、コンピューティング記憶又は通信タスクが得られる。オペレーションは、1つ又は複数の適合サービスを用いて統合されることができる。
ここで図1を参照すると、トポロジ100が例示される。トポロジ100は、1組のピアグループ102を含んでいる。1組のピアグループ102は、多数のピアグループA、B、C、及びDを含んでいる。エージェント104−114がピアグループA−Dに組織化されており、各エージェントは1つ又は複数のピアグループに属することができる。例えば、エージェント104は、ピアグループA、B、C、及びDに属している。エージェント106は、ピアグループA、B、及びCに属している。エージェント108は、ピアグループAに属している。エージェント110は、ピアグループA及びBに属している。エージェント112は、ピアグループA、B、及びCに属している。エージェント114は、ピアグループB及びCに属している。実施形態は、オペレーションを実行するピアグループA−Dを利用し、オペレーションが統合されると、特定のコンピューティングタスクを達成する。
例えば、ある実施形態において、要求は、あるピアグループにより扱われることができ、一方で、応答は、別のピアグループにより扱われる。複数のピアグループを利用することにより、幾つかの最適化が達成されることができる。例えば、所定の通信に参加することを必要とするパーティが制限されることができ、通信最適化、ネットワークトラフィックの局在化、ネットワークトラフィックの全体的な低減等が得られる。再び図1を参照すると、要求は、ピアグループAにより扱われることができる一方で、応答は、ピアグループBにより扱われる。図1は、ピアグループAを用いて、エージェント104から、エージェント106、エージェント108、及びエージェント110に送信され、最終的にエージェント112に送信される要求を示す。 エージェント112は、ピアグループBを用いて、エージェント110、114、及びエージェント106を経て、最終的にエージェント104へ応答を送信する。
別の実施形態は、キャッシング及び検索タスクを達成するためにピアグループを使用することができる。例えば、ある実施形態において、検索要求は、図1におけるピアグループAのようなピアグループを用いて送信されることができる。検索要求は、検索結果を通信するために使用されることができる別のピアグループの表示を含むことができる。例えば、検索要求は、ピアグループBが検索結果を返送するために用いられることを示すことができる。ある実施形態において、検索結果はメタデータを返送し、使用されるリソースの量を制限する。メタデータは、実際のオブジェクトを要求するために用いられることができる。実際のオブジェクトを要求すること及び受信することは、要求ピアグループA及び応答ピアグループBを使用すること、又はオブジェクト検索のために専用に形成された別のピアグループを使用することによって実行されることができる。例えば、図1は、ピアグループC上で実行する双方向通信を示している。この双方向通信は、エージェント112からエージェント104にオブジェクトを送信するために用いられることができる。このように、実施形態が実装されることができ、検索は第1のピアグループ上で公表され、検索結果は第2のピアグループにおいて通信されることができ、オブジェクトを引き出すことを、別の第3のピアグループにおいて実行することができる。特に、所望の独立性の度合、又はコンピューティングリソースを分散する必要性にしたがって、ピアグループは、小さい粒度のデータでさえ使用することができる。例えば、ピアグループは、検索の種類、データの種類、応答の種類、又は別の小さい粒度のデータハンドリングに特有であることができる。
上述した検索の実施形態を使用すると、エージェントは、要求に応じてローカルキャッシュを作成することができる。例えば、図1において、エージェント110が、エージェント112上のオブジェクトのメタデータ又は実際のオブジェクトとすることができるキャッシュを有する場合、エージェント112を、オリジナル検索要求において問い合わせることを不要にすることができる。むしろ、エージェント110が、ピアグループBを直接用いて検索結果を提供することができる。その後、ピアグループCは、エージェント112からオブジェクトをダウンロードするために用いられることができる。ある実施形態は、特定の検索トピックのための分散ハッシュテーブル(DHT)型検索を用いることができる。
上述した実施形態は、ピアグループA、B、C、及びDの使用を例示する。特に、ピアグループは、論理的ピアグループ又は物理的ピアグループとすることができる。論理的ピアグループは、アプリケーションにより認知されるピアグループであるが、1つ又は複数の物理的ピアグループを用いることができる。ここでの実施形態は、論理的ピアグループと物理的ピアグループとの両方の任意の組み合わせを用いることができ、例えば、全て論理的ピアグループ、又は全て物理的ピアグループ、又は論理的ピアグループと物理的ピアグループとを組み合わせたピアグループを有する実施形態を含んでいる。
ワークスペースフレームワーク
ある例示的な実施形態は、複数のピアグループを1つのデスクトップに組み入れるために用いられることができる。図2は、そのような実施形態の一例を例示する。図2は、ワークスペースフレームワーク202を例示する。ワークスペースフレームワーク202は 、存在に関するプロキシサーバ及びピアアプリケーション204のための起動パッドとして機能することができる。例えば、ワークスペースフレームワーク202は、ピアアプリケーション204に向けられたピア通信層208からのメッセージを受信することができる。ワークスペースフレームワーク202は、存在情報を提供することができ、ワークスペースフレームワーク202は、ピアアプリケーション204を使用するピアが存在し、ピアグループにおいて通信することができることを示している。ワークスペースフレームワーク202は、メッセージがピアアプリケーション204のために受信されると、例えば、アプリケーションコンポーネントを実行すること、又は既に実行しているコンポーネントに接続すること等によって、ピアアプリケーション204を起動することもできる。
ピアアプリケーション204は、別のクラスとして起動することができるが、ワークスペースフレームワーク202によって収容され、管理されるウィンドウ206を使用することができる。ワークスペースフレームワーク202は、ある例において、論理的に別のピアグループを各ピアアプリケーション204に提供する。例えば、ピア通信層208は、図1に示したピアグループのような多数のピアグループを備えている。ピアグループ上の通信は、ワークスペースフレームワーク202によって適合及び統合されることができる。特に、ピアアプリケーション204は、物理的なピアグループを適合及び共有することができ、又はピアグループ動作を適合することができる。
ワークスペースフレームワーク202は、複数のサービスをさらに提供することができる。これらのサービスの一部は、例えばロギングのような局所的なものとすることができる。別のサービスは、複数の別のピアグループを用いて分散されることができる。例えば、ワークスペースフレームワーク202により提供される1つのサービスは、様々なサービスを提供するマスタを構築するサービスとすることができる。サービスは、システム故障又は破損の場合にマスタを置き換えるために利用可能なマスタに対するバックアップを構築することができる。
媒体共有アプリケーション
ある実施形態は、メディア共有アプリケーションを作成するために用いられることができる。メディア共有アプリケーションにおいて、複数のカテゴリをメディアのために作成する。各カテゴリは別のピアグループを使用する。上述したように、各ピアグループは、論理的又は物理的とすることができる。ユーザがメディアを共有することを望むと、メディアファイルは、所定のカテゴリに関するピアグループに設置されることができる。ある実施形態において、各エージェントは、各ピアグループに対応するフォルダを含んでいる。ユーザがメディアを共有することを望むと、そのメディアは、フォルダ内に設置されることができ、そのフォルダに対応するピアグループの全てのメンバによって共有されることができる。ユーザは、ユーザが鑑賞することを望むカテゴリを選択することができる。これは所定のカテゴリのためのピアグループに加入することによってなされることができる。データは、時間をかけて、又はピアグループにおけるピアに対する複数のパラメータに基づいて複製されることができる。複製は、ある実施形態において、様々なルールに基づいて生じることができる。例えば、ルールは、複製する時間、保持する量等を指定することができる。
共有されたメディアは局所的に用いられることができる。例えば、メディアが例えば画像又はビデオ等の視覚メディアであると、そのメディアはスクリーンセーバに組み込まれることができる。ルールは各カテゴリに割り当てられることができ、どのように媒体が用いられるかを制御する。例えば、スクリーンセーバの実施形態において、パーセンテージルールが各カテゴリに適用されることができる。この形態において、あるカテゴリにおける画像は、別のカテゴリにおける画像よりも、より頻繁に表示されることができる。各ユーザは、例えばパーセンテージルール等のルールを指定することができる。特に、ルールは同様に別の種類のメディアに用いられることができる。例えば、メディアが、例えば音楽等の音声メディアであると、あるカテゴリの音楽は、別のカテゴリの音楽よりも、より頻繁に再生されることができる。
上記説明に示唆されたように、示された実施形態において集中型サーバを使用する必要はなく、メディアは自動的に又は1組のルールに基づいて複製される。
メディアは、多数のメディアから選択するのではなく、カテゴリを選択することにより選択されることができる。各ピアグループは、カテゴリとしてデータを組織化し、ピアグループのカテゴリに基づいて文脈アクセス及び複製を可能にする。
ある例示的な実施形態において、個々のグループは画像を共有することを要求することができる。ピアグループは個々のピアについて構築されることができ、個々のピアの画像を複製する。他のグループは、対象を有する個々の画像に対応するピアグループに加入することができる。ユーザは、重要性又は頻度のパーセンテージを指定することができ、個々の画像が加入している全てのピアグループからどうやって画像を表示するべきかを順番に決定する。
ある実施形態において、複数のピアグループを、加入者の局在性を用いて最適化された分散を可能にする発行/申し込みポイントとして用いることができる。これらのピアグループチャネル上では、完全な複製が存在する。すなわち、ピアグループチャネルは、異なるレベルの詳細又は大きな全体の一部を提供するために用いられない。オブジェクトは全体で共有される。
マルチストリーム応答
ある実施形態は、単一の要求を有する複数のピアグループを使用し、オブジェクトの並列ダウンロード及び大きなオブジェクトの一部の並列ダウンロードを確立する。ピアグループ上で聞く複数のピアは、データを有することができ、データを必要とすることができる別のピアにデータを提供する機能を有することができる。この例では、複数のピアグループは、トラフィックを局在化して最適化するために用いられる。近接ルーティングは、ネットワークトラフィックを最適化するために用いられることができる。
ある実施形態において、2つのピアグループが用いられ、特定のトピックに関係するファイルのダウンロードを支援する。第1のピアグループは、例えば「ReqAddr」等の第1のアドレスを参照することによりアドレス指定されることができる。ReqAddrピアグループにおけるピアの第1のクラスは、ダウンロードを要求するピアのクラスである。ReqAddrピアグループにおけるピアの第2のクラスは、ダウンロードを申し出るリスナのクラスである。ピアがデータを供給することができると、第1のクラスからの任意のピアは、ピア自身を第2のクラスに加えることを選択することができる。
第2のピアグループは、例えば、「DownAddr」等の第2のアドレスを参照することによりアドレス指定することができる。DownAddrピアグループは、ダウンロードされたデータが送信されるピアグループである。DownAddrピアグループにおいて、リスナはデータを受信することを要求するピアのクラスに属し、送信者は利用可能なデータを有するピアのクラスに属する。DownAddrピアグループは、実質的にReqAddrピアグループの逆と見なされることができる。
ピアが特定のファイルをダウンロードすることを要求すると、ReqAddrピアグループに対するGET要求を作成し、当該GET要求は、一回だけの応答が必要とされる表示を有している。GET要求は、任意のノードにルーティングされ、ある実施形態において、このグループ上で聞く最も近接したピアにルーティングされる。結果は、DownAddrピアグループに送信され、結果に興味のある任意のピアが結果を受信する。
キャッシングピア
ある実施形態において、2つのクラスのキャッシングピアを実装することができ、当該2つのクラスのキャッシングは、ピュアキャッシュ及びキャッシングクライアントである。ピュアキャッシュは、ネットワークにおけるピアを含み、当該ピアのジョブは、データをキャッシュすること及び提供することである。第2のクラスは、ダウンロードするピアを表している。なぜなら、当該ピアがデータを欲し、他のピアにデータを送信しようとするからである。
ピュアキャッシュピアは、DownAddrピアグループにレシーバとして登録され、当該ピュアキャッシュピアが送信すべきデータを有すると、当該ピュアキャッシュピアは、リスナとして当該ピュアキャッシュピアをReqAddrピアグループに加えることができる。他のアクティビティがないと、上記ピュアキャッシュピアは、ReqAddrの要求を能動的に作成し、データを得る。
キャッシングクライアントピアは、要求をReqAddrピアグループに送信し、DownAddrピアグループ上の結果を聞く。キャッシングクライアントピアがデータを有すると、その後、キャッシングクライアントが要求を処理するために利用できる間、当該キャッシングクライアントは、ReqAddrピアグループ上のリスナとして加えられる。
コレクションをダウンロードすること
実施形態は、コレクションをダウンロードする機能も有している。コレクションは、例えば、1組のトラック、チャプタ、作品、及び記事等とすることができる。コレクションが要求されると、マニフェストがダウンロードされる。その後、要求は、マニフェストにおける情報に基づいてコレクションにおける各項目に関してなされる。各項目についての要求は、上述したようになされることができる。最適化として、項目が全てのリスニングピアに送信されるため、コレクションの項目は、同時に要求する他のピアが他の項目を要求することができ、システムにおける全体の要求を低減することができたとき、ランダムに要求されることができる。さらに、一部の実施形態は、機能性を有し、別のピアグループがコレクションの各部分又はコレクションの幾つかのサブセットについて識別される。
部分ファイル
同様の実施形態において、大きなオブジェクトを、部分セグメントマニフェストを使用することによって要求することができる。部分セグメントマニフェストをダウンロードすることができる。その後、要求は、大きなオブジェクトの各部分セグメントについてなされる。部分セグメントが受信されると、当該部分セグメントを再結合することができる。コレクションを用いるように、 部分セグメントは上述した最適化の理由と同様の理由のためにランダムな順番で要求されることができる。さらに、別のピアグループが大きなオブジェクトの一部について識別される。
部分結果を有するキャッシュ
細分化されたコレクション又は大きなオブジェクトについて、ダウンロードを提供するピアは、大きなオブジェクトの部分セグメントのコレクションにおける項目がダウンロードを提供するピアで利用可能となるまで待機することができる。代替の実施形態において、ダウンロードを提供するピアが部分結果を送信することができると、よりよい負荷平衡を達成することができる。特に、近傍を用いることによって、負荷平衡はより効率的になされることができる。この代替の実施形態において、ダウンロードを提供するピアは、項目又は部分セグメントを有していない要求について選択されることができる。この状態は、オリジナルの要求を発し、他のピアに選択されたダウンロードを提供させることにより解決される。
最適な処理を確保にするために、2つ又はそれ以上の要求を発することができる。第1の要求は、要求を送信するピアではなく、ダウンロード提供する任意のランダムなピアに与えられ、要求を送信するピアの内部の近傍にあり、データを迅速に供給することを可能にする。第2の要求は、外側の近傍に与えられ、要求されたデータが近傍のピアに無い場合に、当該データは別のピアから得られることができる。ある実施形態において、要求は除外リスト選択を用いてランダムでピアに送信されることができ、低い効率性、近傍でない、又は別のピアを排除する。
負荷平衡
マルチストリーム応答に対する1つの懸念は、負荷平衡である。例えば、ファイルを供給することができる50個のピアが存在し、1つのピアが不相応な数の要求を得る場合、一部の実施形態において、最適なレベルで利用することができない。しかしながら、一部の実施形態では、ピアは不相応なトラフィックを効率的に使用できるようにすることができることに着目できる。要求がダウンロードを提供する任意の単一のピアに送信され、ダウンロードを提供する利用可能なピアに亘って負荷を統計的に平均化するときに、負荷平衡を実行するある実施形態が達成される。
さらに、メッセージが「グループにおける任意の1つのピアに送信せよ」と送信されると、メッセージはさらなるパラメータを与えられることができる。説明したように、メッセージは、ピアが最も近接している近傍内又は次の外側の近傍からランダムに選択されるべきであることを表示することができる。ダウンロードシステムは、外側の近傍がさらなるヒントを使用及び提供するために適切であり、多数に影響を与えることを認識することができる。本明細書で説明された他の実施形態を用いるように、負荷平衡の実施形態は、機能性を含むことができ、複数のピアグループがオブジェクト及びコレクション等の一部を得るために使用でき、ネットワーク上の負荷をより良く平均化する。
セキュリティモデル
データは多数の手法で保護されることができる。第1の例において、ピアグループ上のセキュリティは制限され、信頼できるパーティだけがデータを送信することができる。第2の例において、各メッセージは、当該メッセージが変えられないことを保証するように保護されることができる。別の例において、すべてのマニフェストは、期待された部分の認証された要約値を識別することができ、部分結果及び再申し込みアタックが起きることができないことを保証する。さらに別の例において、マニフェストは受信者によって認証されることができるか、又は確保されることができる。
実施形態は、複数のピアグループが異なるレベルのセキュリティを可能にするように用いられるときに実装されることができる。例えば、あるピアグループが低いレベルのセキュリティクライアントに用いられることができ、別のピアグループが中間セキュリティレベルのセキュリティクライアント又はその他に用いられることができる。ピアグループについて特定のセキュリティのレベルが、例えば、当該ピアグループを使用するクライアントに要望されるセキュリティに基づいて選択されることができる。代替として、ピアグループの特定のレベルは、送信されるデータの感度に基づいて選択されることができる。
WS送信使用
ある実施形態において、送信はウェブサービスを用いて実装されることができる。例えば、要求は、WS送信GET方法を用いてなされることができる。単純なデータについては、結果を応答で返送することができる。コレクションについては、専用化されたマニフェスト要素を応答で返送ことができる。リクエスタは、当該リクエスタがコレクションを求めていることを知っていると仮定されるため、この種類が予想される。リクエスタが知らない場合、応答における特定のヘッダが用いられることができ、当該特定のヘッダは、マニフェストが返送されるかどうかを表示し、及び次のダウンロードが要求されることを表示する。
分割される大きなファイルについては、専用化されたマニフェスト要素が応答で返送されることができる。クライアントは、当該クライアントが要求されたオブジェクトのサイズを知ることができないため、この種類が予想されることができない。この場合、特定のヘッダが応答に含まれることができ、次のダウンロードが要求されることを表示する。特定のヘッダは、例えば、本明細書で前述されたマニフェストを含むことができる。
大きなオブジェクトが自動的に分割されないある代替の実施形態において、範囲ヘッダがGET要求に含まれることができ、要望されているオブジェクトの部分を示す。
グリッドコンピューティング
複数のピアグループを使用するある実施形態は、グリッド型コンピューティングを実行する機能を有している。各ピアグループは、チャネルとして用いられることができる。1つ又は複数のチャネルは、要求を通信するように用いられることができる。1つ又は複数の別のチャネルは、応答を通信するように用いられることができる。さらに別のチャネルは、データをダウンロードするように用いられることができる。さらに別のチャネルは、計算エージェント又はワーカーと通信するように用いられることができる。ある実施形態において、計算エージェントワーカーとの通信は、フェイルオーバの利点を提供する。
図3Aを参照すると、トポロジ300が例示され、当該トポロジ300は、グリッドコンピューティングを容易にするために用いられることができる通常のアーキテクチャを示している。図3Aは、ピアグループ304の要求セットに繋げられたクライアント302を示し、当該ピアグループ304の要求セットは、図1に示したピアグループA、B、C、及びD等の多数のピアグループチャネルを含むことができる。クライアント302は、要求をピアグループ304の要求セットに送信することによって、グリッドコンピューティングトポロジ300により実行されるコンピューティングタスクについての要求を送信する。例えば、一次スケジューラサービス306及びホットスタンバイスケジューラサービス308等のスケジューラエージェントは、ピアグループ304の要求セット上のチャネルからの要求を受信する。ある実施形態において、異なるチャネルが、冗長フェイルオーバ構成を作成するように一次スケジューラサービス306及びホットスタンバイスケジューラ308のために用いられる。ホットスタンバイスケジューラ308は、一次スケジューラサービス306をシャットダウンする又はオフラインにする必要がある場合に、一次スケジューラサービス306の責務を引き受けることができる。ある実施形態において、別個のピアグループは、一次スケジューラサービス306とホットスタンバイスケジューラ308との間の通信に用いられることができる。これにより、一次スケジューラサービス306がシャットダウンされるか、又は除去されるときに、一次スケジューラの責務を途切れなく引き受けるように、ホットスタンバイスケジューラ308は一次スケジューラ306からの情報を受信することができる。
一次スケジューラサービス306及びホットスタンバイスケジューラ308は、計算エージェント312が登録するピアグループのグリッドワーカーセットと通信する。計算エージェント312は、スケジューラ306及び308に登録するあるピアグループ、スケジューラ306及び308に対する結果を通信する別のグループ、及び要求しているクライアント302に対して結果を通信するさらに別のグループを用いることができる。別の代替の実施形態において、別の複数のピアグループは、要求を提出するために用いられることができる。ここで、各ピアグループは、特定のクライアント302を表している。これは、別のクライアントが特定のクライアントに向けられたデータへアクセスすることを防止することにより、クライアント302に更なるセキュリティを提供するために用いられることができる。
図3Aは、1組のピアグループ304及び310とともにグループ化されたピアグループを例示する一方で、図3Bは、どのようにピアグループが1組のピアグループ304及び310から切り離されるのかを示す一例を例示する。例えば、図3Bは、要求ピアグループ314上の要求を一次スケジューラサービス306に送信するクライアント302を例示する。一次スケジューラサービス306は、要求についての情報をエージェント間ピアグループ316を介して、ホットスタンバイスケジューラ308に通信することができる。これにより、ホットスタンバイスケジューラ308は、一次スケジューラサービス306が機能停止した場合に、フェイルオーババックアップとして機能する。計算エージェント312は、ジョブ登録ピアグループ318を介して一次スケジューラサービス306に登録することができ、一次スケジューラサービス306に計算エージェント312がグリッドコンピューティングタスクを実行可能であることを知らせる。一次スケジューラサービス306は、ジョブ要求ピアグループ320を用いてクライアント302からの要求を送信することができ、要求を計算エージェント312に送信する。特に、フェイルオーバ性能のための冗長システムに影響を及ぼすように特定のジョブ要求が1つ以上の計算エージェント312に送信されることができる。このように、スケジューラサービスがピアグループを用いることができ、ホットスタンバイを可能にしているのと同時に、計算エージェント312等のワーカーが冗長性を有し、ホットスタンバイを可能にしている。計算エージェント312がタスクを完了すると、応答をジョブ応答ピアグループ322上の一次スケジューラサービス306に送信することができる。これのいくつかの代替の実施形態を実装することができる。例えば、1つのピアグループは、スケジューラサービス306及び計算エージェント312と、及び、から通信するために使用されることができる。代替として、計算エージェント312と通信するために、計算エージェント312毎にピアグループが存在することができる。この実施形態は、共通のピアグループをさらに含むことができ、スケジューラサービス306に返送するように通信する。 これらの代替の実施形態により、異なる最適化及びモニタリングがそれぞれ可能になる。例えば、別のピアチャネルが各計算エージェント312に使用されると、セキュリティは、特定の計算エージェント312に向けられたデータが異なる計算エージェントによって入手されることを防止することにより向上されることができる。
さらに、計算エージェント312は、1つ又は複数の要求及び応答データピアグループ324を介してクライアント302と直接通信することができる。例えば、ワーク要求は、ピアグループを識別することができ、ワークデータを引き込み、スケジューラサービス306の外に戻すように専用化された要求を押し出すために使用される。これにより、より局在化された少数のデータコピーを用いることによる最適化が可能になる。一次スケジューラサービス306は、応答ピアグループ326上の応答を通信することができる。上記の実施形態は、ある特定の実施形態を示し、ピアグループは組み合わされることができるか、または、別のピアグループが小さな粒度のデータハンドリングに使用できることを着目すべきである。
図4を参照すると、複数のピアグループを利用する別のアプリケーションが示されている。図4は、タスク404、406の並列処理を実行するアプリケーション402を例示する。タスク404、406は、スレーブシステムによりそれぞれ処理されることができ、当該タスクが複数のピアグループに送信される。例えば、図4は、第1のピアグループ上のスレーブA1 408及びスレーブA2 410に送信されるタスクA404を例示する。タスクB406は、スレーブB1 412及びスレーブB2 414に送信される。タスクA及びBはメインアプリケーション402により統合されることができる。この実施形態における処理は、上で説明したグリッドコンピューティングアプリケーションと同様とすることができる。示した例において、別のピアグループがスレーブシステムのグループに用いられることができる。例えば、識別コードAにより識別されるスレーブシステム408、410のグループは、1つのピアグループと通信することができる一方で、識別コードBにより識別されるスレーブシステムのグループは、別のピアグループと通信することができる。
分割されたターゲットとされたデータ
ピアネットワーキングの幾つかの実施形態に提供することができる1つの態様は、ピアネットワークが自己選択基準を含み、ピアグループを形成することである。このように、ターゲットとされたデータの大規模な分散は、メーリングリストと同様の形態で達成されることができる。チャネル又はチャネルの階層として機能するピアグループは、注目している情報を自己選択コミュニティに分配するために用いられることができる。例えば、「ニュースピアグループ」は、異なるニューストピックについてのグループの階層を含むことができる。ピアは、興味に基づいて特定のグループに加わる。その後、データは、適切なピアグループに送信される。別個であるが、関連付けられたグループの分割により、細かい散布が可能になる。例えば、グループが階層的に組織化されると、メッセージは任意のレベルにおいて送信されることができ、階層の上又は下のグループに複製されることができる
図5を参照すると、1つ又は複数の相互接続されたエージェントの間のネットワークにメッセージを送信するシステム500が示されている。エージェントは、例えば、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、専用ハードウェア等とすることができるが、これらだけに限定されない。システム500は、出力チャネル502を含み、当該出力チャネル502は、当該アプリケーションからのメッセージを受信するアプリケーションに接続するように構成されることができる。特に、入力チャネルは、例えば、既に見られたメッセージをフィルタリングすること等により、選択的に加わることができる。アプリケーションは、メッセージを出力チャネル502に送信し、他のエージェントに送信する。システム500は、1つ又は複数の通信メカニズムをさらに備える。通信メカニズムは、ルータ504を含むことができる。図5に示した例示的なルータは、ダイレクトフラッディング506、ピアルーティング508、中継クライアント510、ファイヤーウォールプロキシ512、マルチキャスティング514、又は共有されたメモリ516を含んでいる。図5に示した例は、ルータの単なる例示であり、使用されることができる全てのルータではない。特に、ピアツーピアエージェントは図5に示したシステム500を利用することができる。図5に示したように、1つのルータは、ダイレクトフラッディング506である。ダイレクトフラッディング506は、メッセージをピアグループに大量に送信されることを可能にし、メッセージがピアグループのメンバである別のピアに到達することを可能にする。さらに別のピアルーティング508が図5に例示される。特に、ピアツーピア構造が用いられるときでさえも、別のルーティングメカニズムが用いられることができる。以下においてより詳しく説明するように、1つ又は複数のルータ504は、アプリケーションからのメッセージを送信するために用いられることができる。効率的である場合、又は他の理由のため、メッセージは2つ以上のルータを用いて送信されることができ、メッセージの向けられた受信者に到達する。
通信メカニズムは、チャネル520をさらに含むこともできる。1つ又は複数のルータ504が選択された後に、ルータ504は順番に1つ又は複数のチャネル520を用いて、メッセージを送信する。例示的なチャネルは、TCP、http、UDP、SMTP、POP等とすることができる。システム500は、ピアツーピア環境において用いられることができる。このように、ある例示的な実施形態において、チャネル520はピアグループとすることができる。システム500を用いるエージェントは、1つ又は複数のピアグループに属することができ、エージェントは、チャネル520として機能するピアグループを用いてメッセージを送信する。
システム500は、ネットワーク、ネットワークにおけるメッセージ、ネットワークにおける参加者等についての情報を提供するように構成されたフィードバック管理部522を含む。ネットワークについての情報は、例えば、ネットワーク構成及び状態、失敗/成功接続、隣接しているもの等を有するルータ504に関係する情報を含むことができる。ネットワークについて情報は、上記したものの代替又は追加の、チャネル520についての情報を含むことができる。例えば、この情報は、参加者の場所、チャネル上の知られた又は推定された参加者の数、セキュリティ動作、サービス要求の質、時刻、ネットワークの混雑、メッセージのサイズ、メッセージの頻度、チャネルポリシー等に関係する情報を含むことができる。
図5に示したシステム500は、フィードバック管理部520からのネットワークについての情報を受信するように構成されたルーティングポリシー管理部522をさらに含む。1組のポリシールール524は、ルーティングポリシー管理部522に結合される。ポリシールール524は、フィードバック管理部520からのネットワークについての情報を考慮する論理を含むことができる。ポリシールール524は、どのようにメッセージがフィードバック管理部520からのネットワークについての情報を考慮する論理に基づいて送信されるべきかについての情報を含むことができる。1つ又は複数の通信メカニズムはルーティングポリシー管理部522により選択され、フィードバック情報に適用するようなポリシールールに従って、メッセージを送信する。ポリシールール524は、例えば、専用コード、CLR/Java(登録商標)オブジェクト又はスクリプトとして表される。
図5に示した例は、ルータ504及びチャネル520を含む全ての通信メカニズムにメッセージを向けるように用いられるルーティングポリシー管理部524、フィードバック管理部522、及びルール526を示しているが、他の代替の実施形態は、ルーティンポリシ管理及びフィードバック管理の小さな粒度を実装することができる。例えば、チャネルフィードバック管理部522aがチャネルルーティングポリシー管理部524a及びチャネルポリシールール526aと共に用いられることができる。別のルータポリシーフィードバック管理部522b、ルータルーティングポリシー管理部524b、及びルータポリシールール526bがメッセージ送信を容易にするように用いられることができる。例えば、ルータルーティングポリシー管理部524bは、ルータポリシールール526b及びルータフィードバック管理部522bと共に用いられることができ、ルータ504を適切に選択する。同様に、チャネルルーティングポリシー管理部524aはチャネルポリシールール526a及びチャネルフィードバック管理部522aと共に用いられることができ、1つ又は複数の適切なチャネル520を選択する。
前述したように、及び図5を参照すると、ネットワーク上で利用可能なチャネル520は、例えば、TCP、http、UDP、SMPTP、及びPOPプロトコルとすることができる。さらに、上述したように、ピアグループがチャネル520として使用される実施形態を用いることができる。エージェントは、ピアツーピアネットワーキングのための1つ又は複数のピアグループに属することができる。エージェントが属している各ピアグループは、メッセージを送信するチャネル520として用いられることができる。特に、ある実施形態では、1つ又は複数のチャネルがメッセージを送信するように用いられることができる。メッセージが多数の異なる受信者に向けられる場合、異なるチャネルが異なる受信者への送信を最適化するように用いられることができる。その後、本明細書における実施形態は、異なる受信者について異なるチャネルを使用して、メッセージ送信を最適化する能力を意図している。言い換えれば、1つ又は複数のチャネルがメッセージを送信するように用いられることができる。
ネットワークにおいて使用可能なルータ504は、例えば、1つ又は複数のダイレクトフラッディング506、ピアルーティング508、中継クライアント510、ファイヤーウォールプロキシ512、マルチキャスティング514、又は共有されたメモリ516とすることができる。前述したように、ある実施形態がピアツーピア通信により用いられることができる。これらの実施形態及び他の実施形態において、ダイレクトフラッディング506及び/又はピアルーティング508が、送信されるメッセージのためのルータ504として用いられることができる。特に、実施形態は、相互接続されたエージェントが同一のホストマシンに備わっている構成を含むことができる。このように、メッセージを送信することは、共有されたメモリであるリレーを用いることにより達成されることができる。この場合、メモリポインタが、メッセージを送信するためにエージェント同士の間で送信されることができる。
1つ又は複数のルータ504は、使用のために選択されることができる。例えば、効率性が、異なる受信者に向けられたメッセージについて異なるルータ504を使用することにより得られることができると、その後、メッセージは同じメッセージについて異なるルータ504を用いることにより別の受信者に送信されることができる。特に、ダイレクトフラッディング506は、共通のハブで接続されたエージェントにメッセージを送信するために使用されることができる一方で、 同一のメッセージは、ファイヤーウォールプロキシ512によるファイヤーウォールを介してエージェントに送信されることができる。
タスクを実施する方法
図6を参照すると、計算、通信、及び/又は記憶タスクを実行する方法600が例示される。当該方法600は、例えば、互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。その方法は、2つ又はそれ以上の別個のピアグループを用いてエージェントにデータを提供するステップ(ステップ602)を含んでいる。ピアグループは、複数のエージェントの中から選んだメンバを含んでいる。エージェントにデータを提供するステップ(ステップ602)は、ある実施形態において、1組のピアグループに対する媒体を検査することを含むことができる。メディアは、メディアのカテゴリに従って2つ又はそれ以上の別個のピアグループの中で分散されることができる。ある実施形態において、メディアは画像を含んでいる。別の実施形態において、メディアは、オーディオ、ビデオ、又は任意の他の適切なメディアを含むことができる。
方法600は、各ピアグループにおいて、データ上のオペレーションを実行するステップ(ステップ604)をさらに含んでいる。各ピアグループは、特定のオペレーションを実行する。上述したように、各ピアグループは、当該各ピアグループが実行するタスクを有している。このステップは、1つのピアグループだけによるタスクの実行を制限するようには意図されていない。言い換えれば、2つ以上のピアグループが所定のタスクを実行することができる。この制限は、単に、各ピアグループが、当該ピアグループが実行するために呼び出されることができる特定のタスクを有することを示すために意図されたものである。ある実施形態において、各ピアグループは、異なるアプリケーションについてのオペレーションを実行する。
各ピアグループにおいて、データ上のオペレーションを実行するステップ(ステップ604)は、例えば、第1のピアグループを用いて検索要求を送信するステップを含むことができる。検索要求は第2のピアグループの表示を含み、当該第2のピアにおいて、検索に検索結果が送信される。さらに、各ピアグループにおいて、データ上のオペレーションを実行するステップ(ステップ604)は、第2のピアグループにおける検索要求の結果として検索結果を受信するステップを含むことができる。上記したように、検索結果を受信するステップは、実際の内容を識別するメタデータを受信するステップを含むことができ、ネットワーク帯域幅を保護する。別の実施形態において、方法600は、第3のピアグループを用いて実際の内容をフェッチするステップをさらに含むことができる。
各ピアグループにおいてデータ上のオペレーションを実行するステップ(ステップ604)は、各ピアグループに異なるカテゴリのデータを記憶させることをさらに含むことができる。例えば、一つのピアグループがメディア、他のドキュメント、他のログファイル等を記憶することができる。さらに、粒度は、必要とされるより細かく又は広くすることができる。例えば、細かい粒度カテゴリの中において、ピアグループは、各ピアグループに所定の種類の画像を記憶することができる。別の実施形態において、各ピアグループにおいてデータ上のオペレーションを実行するステップ(ステップ604)は、各ピアグループに大きなオブジェクトの異なる一部を送信させることを含むことができる。
図6に示した方法600は、共通の計算、通信、及び/又は記憶タスクが各ピアグループでのオペレーションを統合することによって達成されるように、各ピアグループでのオペレーションを適合するステップ(ステップ606)をさらに含んでいる。適合するステップ(ステップ606)は、ある実施形態では、1つのアプリケーションにより実行されることができる。
ある実施形態において、図6に例示した方法600は、要求が第1のピアグループを用いて送信され、当該要求に対する応答が第2のピアグループを用いて受信されるように実行されることができる。
ある実施形態において、方法600は、要求を送信するクライアント、要求を受信するスケジューラサービス、及びコンピューティングオペレーションを実行するコンピュータエージェントを含むグリッドコンピューティング環境において実行されることができる。各ピアグループにおいてデータ上のオペレーションを実行するステップ(ステップ604)は、この実施形態において、クライアントに第1のピアグループにおけるスケジューラサービスと通信すること及びスケジューラサービスに第2のピアグループにおけるコンピュータエージェントと通信することを含んでいる。
同様の実施形態において、方法600は、並列処理環境において実施されることができ、当該並列処理環境において、2つ又はそれ以上の別個のピアグループのそれぞれは、1つ又は複数のスレーブエージェントを含んでいる。スレーブエージェントは、ピアグループからのタスクを受信する。
図7を参照すると、計算、通信、及び/又は記憶タスクを実行する方法700の別の実施形態が示されている。方法700は、例えば、互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。方法700は、2つ又はそれ以上のピアグループにおけるメンバーシップを得るステップ(ステップ702)を含んでいる。例えば、図1に示したように、エージェント104は、ピアグループA、B、C、及びDにおけるメンバーシップを有している。
方法700は、第1のオペエーションを実行するために第1のピアグループを用いるステップ(ステップ704)をさらに含んでいる。第1のオペレーションは、第1のピアグループに特有のオペレーションである。例えば、図1に示したように、ピアグループAは、メッセージを送信するために用いられることができる。よって、メッセージを送信するオペレーションは、第1のピアグループに特有のオペレーションである。
方法700は、第2のオペレーションを実行するために第2のピアグループを用いるステップ(ステップ706)をさらに含んでいる。第2のオペエーションは、第2のピアグループに特有のオペレーションである。例えば、図1に示したように、ピアグループBは、メッセージを受信するために用いられることができる。よって、メッセージを受信することは、第2のピアグループに特有のオペレーションである。
図7に示した方法700は、共通の計算タスクがオペレーションを統合することによって達成されるように、第1のピアグループ及び第2のピアグループにおいて実行される第1のオペレーション及び第2のオペレーションを適合するステップ(ステップ708)をさらに含むことができる。例えば、図2は、ピアアプリケーション204を例示し、当該ピアアプリケーション204は、コンピューティングモジュール等において、実行される共通の計算、通信、及び/又は記憶タスクを達成するために、ピアグループにおいて実行されるオペレーションを適合する機能を有することができる。
方法700は、グリッドコンピューティング環境において実行されることができる。このような一実施形態において、第1のピアグループを用いるステップ(ステップ704)は、クライアントから計算エージェントへのタスクを適合するスケジューラサービスとして、スケジューラサービスを選択するステップを含む。ある実施形態において、スケジューラサービスを選択するステップは、グリッドコンピューティング環境から除去されるべき一次スケジューラサービスを置き換える二次スケジューラサービスを選択するステップを含んでいる。ピアグループは、スケジューラサービスを選択するために用いられる特定のタスクを有することができる。
実施形態は、コンピュータ可読媒体を含むこともでき、当該コンピュータ可読媒体は、コンピュータ実行可能命令又はデータ構造を運搬する、又は有している。このようなコンピュータ可読媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされることができる任意の利用可能なメディアとすることができる。例示の目的として、及び限定でなく、このようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMとすることができる。又は、コンピュータ実行可能命令もしくはデータ構造の形式で所望のプログラムコード手段を運搬するか、もしくは記憶するために用いられることができ、及び汎用コンピュータ又は専用コンピュータによりアクセスされることができる別の光ディスク記憶手段、磁気ディスク記憶手段もしくは別の磁気記憶デバイス、又は任意の他のメディアとすることができる。情報が、ネットワーク又は別の通信接続手段(有線、無線、又は有線若しくは無線の組み合わせ)を介してコンピュータに送信されるか、又は提供されると、当該コンピュータは接続手段をコンピュータ可読媒体として適切にみなす。よって、任意のこのような接続手段は、コンピュータ可読媒体と称される。上記したものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、専用処理装置に所定の機能又は機能のグループを実行させる指示及びデータを含んでいる。本発明の内容を、構造的な特徴及び/又は方法のステップについて説明したが、特許請求の範囲に記載された本発明の内容を、上記した特定の特徴又はステップに限定する必要はない。むしろ、上記した特徴及びステップは、請求の範囲の実装の例示的な形態として説明されている。
本発明は、本発明の精神又は本質的な特徴から逸脱することなく、別の特定の形態で具現されることができる。上述した実施形態は、単に例示目的であると考えられるべきであり、限定するものと考えられるべきではない。よって、本発明の範囲は、上述した説明ではなく、特許請求の範囲により示される。特許請求の範囲の均等な意味及び範囲内にある全ての変更本発明の範囲内に含まれるべきである。

Claims (20)

  1. 互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において、計算、通信、及び/又は記憶タスクを実行する方法であって、前記方法は、
    前記エージェントの中から選んだメンバを有する2つ又はそれ以上の別個のピアグループを用いて前記エージェントにデータを提供するステップと、
    各々が特定のオペレーションを実行するように構成される前記ピアグループで前記データ上のオペレーションを実行するステップと、
    前記ピアグループのそれぞれでの前記オペレーションを統合することによって共通の計算、通信及び/又は記憶タスクが達成されるように、前記ピアグループのそれぞれでの前記オペレーションを適合するステップと
    を備えることを特徴とする方法。
  2. 前記エージェントは、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、又は専用ハードウェアの少なくとも1つを備えることを特徴とする請求項1に記載の方法。
  3. 前記ピアグループは、論理的ピアグループ又は物理的ピアグループの少なくとも1つであることを特徴とする請求項1に記載の方法。
  4. 前記ピアグループのそれぞれで前記データ上のオペレーションを実行するステップは、通信メカニズムを選択するために、外部フィードバック又は通信された情報の少なくとも1つを用いるステップを備えることを特徴とする請求項1に記載の方法。
  5. 要求は、第1のピアグループを用いて送信され、前記要求に対する応答は、第2のピアグループを用いて受信されることを特徴とする請求項1に記載の方法。
  6. 前記適合するステップは、単一のアプリケーションによって実行されることを特徴とする請求項1に記載の方法。
  7. エージェント間の通信は、ウェブサービスメッセージを含むことを特徴とする請求項1に記載の方法。
  8. 前記方法は、単一のデスクトップにより実行され、2つ又はそれ以上の別個のピアグループを用いて前記エージェントにデータを提供するステップは、各ピアアプリケーションについての別個のピアグループを用いて、データを別のピアアプリケーションに提供するステップを含むことを特徴とする請求項1に記載の方法。
  9. 前記エージェントにデータを提供するステップは、アプリケーションコンポーネントを実行することによってピアアプリケーションを起動するステップを含むことを特徴とする請求項8に記載の方法。
  10. 前記エージェントにデータを提供するステップは、実行しているアプリケーションコンポーネントに接続することによってピアアプリケーションを起動するステップを含むことを特徴とする請求項8に記載の方法。
  11. 1つ又は複数の前記別のピアアプリケーションは、別のクラスとして起動することを特徴とする請求項8に記載の方法。
  12. 前記ピアアプリケーションは、ローカルサービスを提供することを特徴とする請求項8に記載の方法。
  13. 前記ピアアプリケーションは、分散サービスを提供することを特徴とする請求項8に記載の方法。
  14. 前記ピアグループのそれぞれで前記データ上のオペレーションを実行するステップは、タスクの並列処理を実行するステップを含み、各ピアグループは特定のオペレーションを実行するように構成されることを特徴とする請求項1に記載の方法。
  15. 異なるピアグループは、異なるレベルのセキュリティを容易にするために用いられることを特徴とする請求項1に記載の方法。
  16. ピアグループは階層的に配置され、メッセージが任意のレベルで送信されることができ、階層において所定のピアグループの上又は下の少なくとも1つの前記グループに対して複製されることを特徴とする請求項1に記載の方法。
  17. 要求は第1のピアグループを用いて送信され、前記要求に対する応答は複数の第2のピアグループを用いて受信されることを特徴とする請求項1に記載の方法。
  18. 前記方法は、複数のデスクトップ又は仮想デスクトップの少なくとも一方を用いて実施されることを特徴とする請求項1に記載の方法。
  19. 互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において、計算、通信及び/又は記憶タスクを実行する方法であって、前記方法は、
    2つ又はそれ以上のピアグループにおけるメンバシップを得るステップと、
    第1のピアグループに特有のオペレーションである第1のオペレーションを実行するために前記第1のピアグループを使用するステップと、
    して、第2のピアグループに特有のオペレーションである第2のオペレーションを実行するために前記第2のピアグループを使用するステップと、
    共通の計算、通信及び/又は記憶タスクが前記オペレーションを統合することによって達成されるように、前記第1のピアグループ及び前記第2のピアグループで実行される前記第1のオペレーション及び前記第2のオペレーションを適合するステップと
    を備えることを特徴とする方法。
  20. 互いにネットワーク接続された1つ又は複数のエージェントを含むコンピューティング環境において使用され、計算、通信、及び/又は記憶タスクを実行するシステムであって、前記システムは、
    第1のオペレーションのために構成された第1のピアグループにおけるメンバシップと、
    第2のオペレーションのために構成された第2のピアグループにおけるメンバシップと、
    共通の計算、通信及び/又は記憶タスクが前記オペレーションを統合することによって達成されるように、前記第1のオペレーション及び前記第2のオペレーションを適合するモジュールと
    を含むことを特徴とするシステム。
JP2009530493A 2006-09-29 2007-07-24 効率的に拡張可能なコンピューティングのための複数のピアグループ Withdrawn JP2010505196A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/536,944 US7881316B2 (en) 2006-09-29 2006-09-29 Multiple peer groups for efficient scalable computing
PCT/US2007/074250 WO2008147423A1 (en) 2006-09-29 2007-07-24 Multiple peer groups for efficient scalable computing

Publications (1)

Publication Number Publication Date
JP2010505196A true JP2010505196A (ja) 2010-02-18

Family

ID=39261140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009530493A Withdrawn JP2010505196A (ja) 2006-09-29 2007-07-24 効率的に拡張可能なコンピューティングのための複数のピアグループ

Country Status (9)

Country Link
US (1) US7881316B2 (ja)
EP (1) EP2076845A1 (ja)
JP (1) JP2010505196A (ja)
KR (1) KR20090074020A (ja)
CN (1) CN101523380B (ja)
AU (1) AU2007354306A1 (ja)
CA (1) CA2659668A1 (ja)
TW (1) TW200817923A (ja)
WO (1) WO2008147423A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013055675A1 (en) * 2011-10-10 2013-04-18 Hummel Brett Patrick System & method for tracking members of an affinity group

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077667A1 (en) * 2006-09-26 2008-03-27 Chong-Sun Hwang Method for adaptive group scheduling using mobile agents in peer-to-peer grid computing environment
US8793478B2 (en) * 2008-05-14 2014-07-29 Dell Products, Lp Grid computing resources and a method of use thereof
US9323582B2 (en) * 2009-08-12 2016-04-26 Schlumberger Technology Corporation Node to node collaboration
WO2019232750A1 (zh) * 2018-06-07 2019-12-12 Guan Chi 一种网络通信方法、对等体及系统
CN111174805A (zh) * 2019-04-30 2020-05-19 奥特酷智能科技(南京)有限公司 分布集中式自动驾驶系统
CN111866191B (zh) * 2020-09-24 2020-12-22 深圳市易博天下科技有限公司 消息事件的分发方法、分发平台、系统及服务器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005251160A (ja) * 2004-02-06 2005-09-15 Nippon Telegraph & Telephone East Corp 利用形態指向p2p型グリッドコンピューティングシステム、及び、コンピュータプログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034652A (en) * 1996-03-22 2000-03-07 Interval Research Corporation Attention manager for occupying the peripheral attention of a person in the vicinity of a display device
US5831975A (en) * 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
AT1751U1 (de) * 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
US6826182B1 (en) * 1999-12-10 2004-11-30 Nortel Networks Limited And-or multi-cast message routing method for high performance fault-tolerant message replication
US6898642B2 (en) * 2000-04-17 2005-05-24 International Business Machines Corporation Synchronous collaboration based on peer-to-peer communication
AU2002243522A1 (en) 2001-01-12 2002-07-24 Epicrealm Operating Inc. Method and system for community data caching
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US7010622B1 (en) * 2001-06-08 2006-03-07 Emc Corporation Scalable communication within a distributed system using dynamic communication trees
US7016085B2 (en) * 2001-08-31 2006-03-21 Hewlett-Packard Development Company, L.P. Remote proofing service adaptively isolated from the internet
US6938042B2 (en) * 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7051053B2 (en) * 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
US20040073659A1 (en) * 2002-10-15 2004-04-15 Carl Rajsic Method and apparatus for managing nodes in a network
EP1414211A1 (en) 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
US7254608B2 (en) * 2002-10-31 2007-08-07 Sun Microsystems, Inc. Managing distribution of content using mobile agents in peer-topeer networks
US7395536B2 (en) * 2002-11-14 2008-07-01 Sun Microsystems, Inc. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US7010534B2 (en) * 2002-11-16 2006-03-07 International Business Machines Corporation System and method for conducting adaptive search using a peer-to-peer network
EP1429513A1 (en) * 2002-12-09 2004-06-16 Koninklijke Philips Electronics N.V. Method and apparatus for searching data in a peer to peer network
US7912902B2 (en) * 2003-02-13 2011-03-22 Telcordia Licensing Company, Llc Application service peering and aggregation
US7941482B2 (en) * 2003-06-04 2011-05-10 Sony Computer Entertainment Inc. System and method for managing performance between multiple peers in a peer-to-peer environment
US7340169B2 (en) * 2003-11-13 2008-03-04 Intel Corporation Dynamic route discovery for optical switched networks using peer routing
US8104043B2 (en) * 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
WO2005059678A2 (en) * 2003-12-11 2005-06-30 Chau Minh Vuong System and method for providing identification and search information
US20050163061A1 (en) * 2004-01-28 2005-07-28 Gridiron Software, Inc. Zero configuration peer discovery in a grid computing environment
US20060165040A1 (en) * 2004-11-30 2006-07-27 Rathod Yogesh C System, method, computer program products, standards, SOA infrastructure, search algorithm and a business method thereof for AI enabled information communication and computation (ICC) framework (NetAlter) operated by NetAlter Operating System (NOS) in terms of NetAlter Service Browser (NSB) to device alternative to internet and enterprise & social communication framework engrossing universally distributed grid supercomputing and peer to peer framework

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005251160A (ja) * 2004-02-06 2005-09-15 Nippon Telegraph & Telephone East Corp 利用形態指向p2p型グリッドコンピューティングシステム、及び、コンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013055675A1 (en) * 2011-10-10 2013-04-18 Hummel Brett Patrick System & method for tracking members of an affinity group

Also Published As

Publication number Publication date
CA2659668A1 (en) 2008-12-04
AU2007354306A1 (en) 2008-12-04
TW200817923A (en) 2008-04-16
EP2076845A1 (en) 2009-07-08
US20080080528A1 (en) 2008-04-03
CN101523380B (zh) 2013-01-02
KR20090074020A (ko) 2009-07-03
US7881316B2 (en) 2011-02-01
CN101523380A (zh) 2009-09-02
WO2008147423A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
US20080080530A1 (en) Multiple peer groups for efficient scalable computing
Pietzuch Hermes: A scalable event-based middleware
US8176189B2 (en) Peer-to-peer network computing platform
US8204992B2 (en) Presence detection using distributed indexes in peer-to-peer networks
US7657597B2 (en) Instant messaging using distributed indexes
US7206934B2 (en) Distributed indexing of identity information in a peer-to-peer network
JP5715223B2 (ja) スケーラブルなピア・グループを使用して通信を最適化すること
US7197565B2 (en) System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US7487509B2 (en) System and method for providing multiple embodiments of abstract software modules in peer-to-peer network environments
US7533161B2 (en) System and method for multiplatform implementation of abstract software modules in peer-to-peer network environments
US7484225B2 (en) System and method for describing and identifying abstract software modules in peer-to-peer network environments
US20080080393A1 (en) Multiple peer groups for efficient scalable computing
JP2004532471A (ja) 分散コンピュータ・ネットワークのスケーラブルなリソース・ディスカバリおよび再構成
US20070133520A1 (en) Dynamically adapting peer groups
JP2010505196A (ja) 効率的に拡張可能なコンピューティングのための複数のピアグループ
US20080080529A1 (en) Multiple peer groups for efficient scalable computing
Fox et al. Towards enabling peer‐to‐peer Grids
Zhang et al. Reliable peer-to-peer end system multicasting through replication
Lu et al. A scalable P2P overlay based on arrangement graph with minimized overhead
Luís Distributed, decentralized, and scalable Coordination Primitives
Lazaro et al. Towards an architecture for service deployment in contributory communities
Wang et al. A reliable content-based routing protocol over structured peer-to-peer networks
Xiong et al. Research of resource discovery model based on P2P in grid environment
Verma et al. Data In P2P Systems
Wang et al. A Reliable Content-Based Routing Protocol over

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120810

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121023