(57)【要約】  計算、通信、及び／又は記憶タスクを実行する複数のピアグループ。方法は、例えば、互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。上記方法は、２つ又はそれ以上の別個のピアグループを用いて、エージェントにデータを提供するステップを含んでいる。ピアグループは、複数のエージェントの中から選んだメンバを含む。上記方法は、各ピアグループでデータ上のオペレーションを実行するステップをさらに含む。各ピアグループは、特定のオペレーションを実行できる。上記方法は、共通の計算、通信及び／又は記憶タスクが各ピアグループでのオペレーションを統合することによって達成されるように、各ピアグループでのオペレーションを適合するステップも含んでいる。
2010505196.tif 000002
【特許請求の範囲】
【請求項１】
互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において、計算、通信、及び／又は記憶タスクを実行する方法であって、前記方法は、
前記エージェントの中から選んだメンバを有する２つ又はそれ以上の別個のピアグループを用いて前記エージェントにデータを提供するステップと、
各々が特定のオペレーションを実行するように構成される前記ピアグループで前記データ上のオペレーションを実行するステップと、
前記ピアグループのそれぞれでの前記オペレーションを統合することによって共通の計算、通信及び／又は記憶タスクが達成されるように、前記ピアグループのそれぞれでの前記オペレーションを適合するステップと
を備えることを特徴とする方法。
【請求項２】
前記エージェントは、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、又は専用ハードウェアの少なくとも１つを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記ピアグループは、論理的ピアグループ又は物理的ピアグループの少なくとも１つであることを特徴とする請求項１に記載の方法。
【請求項４】
前記ピアグループのそれぞれで前記データ上のオペレーションを実行するステップは、通信メカニズムを選択するために、外部フィードバック又は通信された情報の少なくとも１つを用いるステップを備えることを特徴とする請求項１に記載の方法。
【請求項５】
要求は、第１のピアグループを用いて送信され、前記要求に対する応答は、第２のピアグループを用いて受信されることを特徴とする請求項１に記載の方法。
【請求項６】
前記適合するステップは、単一のアプリケーションによって実行されることを特徴とする請求項１に記載の方法。
【請求項７】
エージェント間の通信は、ウェブサービスメッセージを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記方法は、単一のデスクトップにより実行され、２つ又はそれ以上の別個のピアグループを用いて前記エージェントにデータを提供するステップは、各ピアアプリケーションについての別個のピアグループを用いて、データを別のピアアプリケーションに提供するステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記エージェントにデータを提供するステップは、アプリケーションコンポーネントを実行することによってピアアプリケーションを起動するステップを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記エージェントにデータを提供するステップは、実行しているアプリケーションコンポーネントに接続することによってピアアプリケーションを起動するステップを含むことを特徴とする請求項８に記載の方法。
【請求項１１】
１つ又は複数の前記別のピアアプリケーションは、別のクラスとして起動することを特徴とする請求項８に記載の方法。
【請求項１２】
前記ピアアプリケーションは、ローカルサービスを提供することを特徴とする請求項８に記載の方法。
【請求項１３】
前記ピアアプリケーションは、分散サービスを提供することを特徴とする請求項８に記載の方法。
【請求項１４】
前記ピアグループのそれぞれで前記データ上のオペレーションを実行するステップは、タスクの並列処理を実行するステップを含み、各ピアグループは特定のオペレーションを実行するように構成されることを特徴とする請求項１に記載の方法。
【請求項１５】
異なるピアグループは、異なるレベルのセキュリティを容易にするために用いられることを特徴とする請求項１に記載の方法。
【請求項１６】
ピアグループは階層的に配置され、メッセージが任意のレベルで送信されることができ、階層において所定のピアグループの上又は下の少なくとも１つの前記グループに対して複製されることを特徴とする請求項１に記載の方法。
【請求項１７】
要求は第１のピアグループを用いて送信され、前記要求に対する応答は複数の第２のピアグループを用いて受信されることを特徴とする請求項１に記載の方法。
【請求項１８】
前記方法は、複数のデスクトップ又は仮想デスクトップの少なくとも一方を用いて実施されることを特徴とする請求項１に記載の方法。
【請求項１９】
互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において、計算、通信及び／又は記憶タスクを実行する方法であって、前記方法は、
２つ又はそれ以上のピアグループにおけるメンバシップを得るステップと、
第１のピアグループに特有のオペレーションである第１のオペレーションを実行するために前記第１のピアグループを使用するステップと、
して、第２のピアグループに特有のオペレーションである第２のオペレーションを実行するために前記第２のピアグループを使用するステップと、
共通の計算、通信及び／又は記憶タスクが前記オペレーションを統合することによって達成されるように、前記第１のピアグループ及び前記第２のピアグループで実行される前記第１のオペレーション及び前記第２のオペレーションを適合するステップと
を備えることを特徴とする方法。
【請求項２０】
互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において使用され、計算、通信、及び／又は記憶タスクを実行するシステムであって、前記システムは、
第１のオペレーションのために構成された第１のピアグループにおけるメンバシップと、
第２のオペレーションのために構成された第２のピアグループにおけるメンバシップと、
共通の計算、通信及び／又は記憶タスクが前記オペレーションを統合することによって達成されるように、前記第１のオペレーション及び前記第２のオペレーションを適合するモジュールと
を含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率的に拡張可能なコンピューティングのための複数のピアグループに関する。
【背景技術】
【０００２】
現在のコンピュータは、別のコンピュータに接続する機能を大抵有している。例えば、現在の家庭用コンピュータは、インターネットサービスプロバイダサーバ、Ｅメールサーバ等へのダイアルアップ接続、別のコンピュータ等への直接のダイアルアップ接続のためのモデムを含むことができる。さらに、ほぼ全ての家庭用コンピュータは、ＩＥＥ８０２．３規格に準拠したＲＪ−４５イーサネット（登録商標）ポートのようなネットワークインターフェイスポートを備えている。このネットワークポートと同様に、様々な無線及び有線接続部等の別の接続部が用いられることができ、複数のコンピュータを相互接続する。
【０００３】
複数のコンピュータは、様々なトポロジで相互接続することができる。例えば、あるトポロジは、クライアントサーバトポロジである。クライアントサーバトポロジにおいて、中央権限部は、ネットワーク組織に対して制御を維持している。中央権限部は、ネットワークにおけるクライアントにネットワークアドレスを提供することにより、ルーティング機能を備えることができる。中央権限部が機能を停止する、又は機能しないと、ネットワーク通信を妨害し、又は完全に停止することができる。
【０００４】
別の種類のトポロジは、ピアツーピアネットワークである。ピアツーピアネットワークは、所定の目的のために集められた自己選択グループとして形成される。ピアツーピアネットワークにおけるピアは、トークンを提供すること及びトークンを検査すること、共通の暗号又は鍵を共有すること、共通のアプリケーションを実行すること等により、ネットワークメンバを識別することができる。
【０００５】
ピアグループ通信のある例において、ピアグループにおける各々のピアは、ピアグループにおける全てのピアのサブセットを認識している。ピアがメッセージを送信することを決定すると、ピアは、ピアが認識しているピアの全てにメッセージを送信することができる。これらのピアの各々は、これらのピアが認識しているピアにメッセージを送信することができる。このように、メッセージはピアグループに大量に送られる。
【０００６】
本明細書で特許請求の範囲に記載された主題は、例えば上述した環境だけにおいて、任意の欠点を解決する、又は機能する実施形態に制限されない。むしろ、この背景技術は、ある例示的な技術分野を説明するために提供されているだけであり、本明細書で説明される一部の実施形態を実施することができる。
【発明の概要】
【課題を解決するための手段】
【０００７】
ある実施形態において、計算、通信、及び／又は記憶タスクを実行する方法が例示される。その方法は、例えば、互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。その方法は、２つ又はそれ以上の別個のピアグループを用いてエージェントにデータを提供するステップを含む。ピアグループは複数のエージェントの中から選んだメンバを含む。その方法は、各ピアグループにおいてデータ上のオペレーションを実行するステップをさらに含んでいる。各ピアグループは特定のオペレーションを実行する。上記方法は、共通の計算、通信、及び／又は記憶タスクが各ピアグループでのオペレーションを統合することにより達成されるように、各ピアグループにおけるオペレーションを適合するステップを含んでいる。
【０００８】
別の実施形態において、計算、通信、及び／又は記憶タスクを実行する別の方法が例示される。この実施形態は、例えば、互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において実施されることができる。上記方法は２つ又はそれ以上のピアグループにおけるメンバーシップを得るステップを含んでいる。上記方法は、第１のオペレーションを実行するために第１のピアグループを使用するステップをさらに含んでいる。第１のオペレーションは、第１のピアグループに特有のオペレーションである。第２のピアグループは、第２のオペレーションを実行するために用いられる。第２のオペレーションは、第２のピアグループに特有のオペレーションである。上記実施形態は、共通の計算、通信、及び／又は記憶タスクがオペレーションを統合することにより達成されるように、第１のピアグループ第２のピアグループにおいて実行される第１のオペレーション及び第２のオペレーションを適合するステップをさらに含んでいる。
【０００９】
第３の実施形態において、コンピューティング環境における使用のためのシステムが開示される。コンピューティング環境は、互いにネットワーク接続された１つ又は複数のエージェントを含み、計算、通信、及び／又は記憶タスクを実行する。上記システムは、第１のピアグループにおけるメンバーシップを含んでいる。第１のピアグループは、第１のオペレーションのために構成される。上記システムは、第２のピアグループにおけるメンバーシップをさらに含んでいる。第２のピアグループは、第２のオペレーションのために構成される。上記システムは、共通の計算、通信、及び／又は記憶タスクがオペレーションを統合することにより達成されるように、第１のオペレーション及び第２のオペレーションを適合するモジュールをさらに含んでいる。
【００１０】
この発明の概要は、概念の選択を簡略的な形態で説明するために与えられ、以下の発明を実施するための形態においてさらに説明される。この発明の概要は、特許請求の範囲に記載された主題の鍵となる特徴又は必須の特徴を明らかにすることを意図しておらず、特許請求の範囲に記載された主題の範囲を決定する補助として使用されることを目的としていない。
【００１１】
さらなる特徴及び利点は、以下において説明され、以下の説明から一部が明らかにされる、又は、本明細書の教示内容を実施することにより理解されることができる。本発明の特徴及び利点は、添付の特許請求の範囲において特に指摘された装置の及び組み合わせの手段により実現され、得られることができる。本発明の特徴は、以下の説明及び添付の特許請求の範囲から十分に明確になる、又は以降に説明される本発明を実践により理解されることができる。
【図面の簡単な説明】
【００１２】
上述された利点及び別の利点及び特徴が得られることができる主題を説明するために、上で簡単に記載された本主題の説明のより詳細な説明が、添付図面において例示された特定の実施形態の参照によって提供されるであろう。これらの図面は発明の典型的な実施形態を示しているだけであり、それゆえに本発明の範囲を限定していると考えられるべきではないことを理解する一方で、本発明は添付図面を使用することにより、さらに明確且つ詳細に記載されて説明されるであろう。
【００１３】
【図１】複数のピアグループを示すトポロジを例示する図である。
【図２】ピアグループ通信を利用するアプリケーションを例示する図である。
【図３Ａ】グリッドコンピューティングにおいて使用されるピアグループを例示する図である。
【図３Ｂ】グリッドコンピューティングにおいて使用されるピアグループをさらに例示する図である。
【図４】並列アプリケーション形態において使用されるピアグループを例示する図である。
【図５】多数のチャネル及び送信手段を例示する図である。
【図６】複数のピアグループを使用する方法を例示する図である。
【図７】複数のピアグループを使用する別の方法を例示する図である。
【発明を実施するための形態】
【００１４】
本明細書における実施形態は、以下においてより詳しく論じられるように、様々なコンピュータハードウェアを有する専用コンピュータ又は汎用コンピュータを備えることができる。
【００１５】
ある実施形態は、多数の相互接続されたエージェントを有するトポロジを含んでいる。エージェントは、例えば、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、及び専用ハードウェア等を含むことができる。トポロジは、１組のピアグループをさらに含んでいる。１組のピアグループは、多数の異なるピアグループを含み、各ピアグループは、メンバとしてエージェントの一部又は全てを含んでいる。各ピアグループは、特定のコンピューティング記憶又は通信オペレーションを設計する。本明細書で使用されるようなピアグループは、物理的なマルチキャスティングを超える通信メカニズムを使用することができるアプリケーションレベルの構成物である。例えば、ピアグループは、複数のピアへの接続のために複数のアプリケーションレベルピアチャネルを使用することができ、及び／又は異なるレベルの項目について複数のチャネルを使用することができる。一部の実施形態は、外部フィードバック及び／又は通信された情報を利用することができ、最適な及び／又は適切な通信メカニズムを選択し、使用する。以下の例示及び図５に例示した実施形態を参照すると、これらの実施形態の一部は、特定のタスクを達成するプロセスの間の通信メカニズムを変更することができる。１組のピアグループ内のピアグループによって実行されるオペレーションの統合により、コンピューティング記憶又は通信タスクが得られる。オペレーションは、１つ又は複数の適合サービスを用いて統合されることができる。
【００１６】
ここで図１を参照すると、トポロジ１００が例示される。トポロジ１００は、１組のピアグループ１０２を含んでいる。１組のピアグループ１０２は、多数のピアグループＡ、Ｂ、Ｃ、及びＤを含んでいる。エージェント１０４−１１４がピアグループＡ−Ｄに組織化されており、各エージェントは１つ又は複数のピアグループに属することができる。例えば、エージェント１０４は、ピアグループＡ、Ｂ、Ｃ、及びＤに属している。エージェント１０６は、ピアグループＡ、Ｂ、及びＣに属している。エージェント１０８は、ピアグループＡに属している。エージェント１１０は、ピアグループＡ及びＢに属している。エージェント１１２は、ピアグループＡ、Ｂ、及びＣに属している。エージェント１１４は、ピアグループＢ及びＣに属している。実施形態は、オペレーションを実行するピアグループＡ−Ｄを利用し、オペレーションが統合されると、特定のコンピューティングタスクを達成する。
【００１７】
例えば、ある実施形態において、要求は、あるピアグループにより扱われることができ、一方で、応答は、別のピアグループにより扱われる。複数のピアグループを利用することにより、幾つかの最適化が達成されることができる。例えば、所定の通信に参加することを必要とするパーティが制限されることができ、通信最適化、ネットワークトラフィックの局在化、ネットワークトラフィックの全体的な低減等が得られる。再び図１を参照すると、要求は、ピアグループＡにより扱われることができる一方で、応答は、ピアグループＢにより扱われる。図１は、ピアグループＡを用いて、エージェント１０４から、エージェント１０６、エージェント１０８、及びエージェント１１０に送信され、最終的にエージェント１１２に送信される要求を示す。 エージェント１１２は、ピアグループＢを用いて、エージェント１１０、１１４、及びエージェント１０６を経て、最終的にエージェント１０４へ応答を送信する。
【００１８】
別の実施形態は、キャッシング及び検索タスクを達成するためにピアグループを使用することができる。例えば、ある実施形態において、検索要求は、図１におけるピアグループＡのようなピアグループを用いて送信されることができる。検索要求は、検索結果を通信するために使用されることができる別のピアグループの表示を含むことができる。例えば、検索要求は、ピアグループＢが検索結果を返送するために用いられることを示すことができる。ある実施形態において、検索結果はメタデータを返送し、使用されるリソースの量を制限する。メタデータは、実際のオブジェクトを要求するために用いられることができる。実際のオブジェクトを要求すること及び受信することは、要求ピアグループＡ及び応答ピアグループＢを使用すること、又はオブジェクト検索のために専用に形成された別のピアグループを使用することによって実行されることができる。例えば、図１は、ピアグループＣ上で実行する双方向通信を示している。この双方向通信は、エージェント１１２からエージェント１０４にオブジェクトを送信するために用いられることができる。このように、実施形態が実装されることができ、検索は第１のピアグループ上で公表され、検索結果は第２のピアグループにおいて通信されることができ、オブジェクトを引き出すことを、別の第３のピアグループにおいて実行することができる。特に、所望の独立性の度合、又はコンピューティングリソースを分散する必要性にしたがって、ピアグループは、小さい粒度のデータでさえ使用することができる。例えば、ピアグループは、検索の種類、データの種類、応答の種類、又は別の小さい粒度のデータハンドリングに特有であることができる。
【００１９】
上述した検索の実施形態を使用すると、エージェントは、要求に応じてローカルキャッシュを作成することができる。例えば、図１において、エージェント１１０が、エージェント１１２上のオブジェクトのメタデータ又は実際のオブジェクトとすることができるキャッシュを有する場合、エージェント１１２を、オリジナル検索要求において問い合わせることを不要にすることができる。むしろ、エージェント１１０が、ピアグループＢを直接用いて検索結果を提供することができる。その後、ピアグループＣは、エージェント１１２からオブジェクトをダウンロードするために用いられることができる。ある実施形態は、特定の検索トピックのための分散ハッシュテーブル（ＤＨＴ）型検索を用いることができる。
【００２０】
上述した実施形態は、ピアグループＡ、Ｂ、Ｃ、及びＤの使用を例示する。特に、ピアグループは、論理的ピアグループ又は物理的ピアグループとすることができる。論理的ピアグループは、アプリケーションにより認知されるピアグループであるが、１つ又は複数の物理的ピアグループを用いることができる。ここでの実施形態は、論理的ピアグループと物理的ピアグループとの両方の任意の組み合わせを用いることができ、例えば、全て論理的ピアグループ、又は全て物理的ピアグループ、又は論理的ピアグループと物理的ピアグループとを組み合わせたピアグループを有する実施形態を含んでいる。
【００２１】
ワークスペースフレームワーク
ある例示的な実施形態は、複数のピアグループを１つのデスクトップに組み入れるために用いられることができる。図２は、そのような実施形態の一例を例示する。図２は、ワークスペースフレームワーク２０２を例示する。ワークスペースフレームワーク２０２は 、存在に関するプロキシサーバ及びピアアプリケーション２０４のための起動パッドとして機能することができる。例えば、ワークスペースフレームワーク２０２は、ピアアプリケーション２０４に向けられたピア通信層２０８からのメッセージを受信することができる。ワークスペースフレームワーク２０２は、存在情報を提供することができ、ワークスペースフレームワーク２０２は、ピアアプリケーション２０４を使用するピアが存在し、ピアグループにおいて通信することができることを示している。ワークスペースフレームワーク２０２は、メッセージがピアアプリケーション２０４のために受信されると、例えば、アプリケーションコンポーネントを実行すること、又は既に実行しているコンポーネントに接続すること等によって、ピアアプリケーション２０４を起動することもできる。
【００２２】
ピアアプリケーション２０４は、別のクラスとして起動することができるが、ワークスペースフレームワーク２０２によって収容され、管理されるウィンドウ２０６を使用することができる。ワークスペースフレームワーク２０２は、ある例において、論理的に別のピアグループを各ピアアプリケーション２０４に提供する。例えば、ピア通信層２０８は、図１に示したピアグループのような多数のピアグループを備えている。ピアグループ上の通信は、ワークスペースフレームワーク２０２によって適合及び統合されることができる。特に、ピアアプリケーション２０４は、物理的なピアグループを適合及び共有することができ、又はピアグループ動作を適合することができる。
【００２３】
ワークスペースフレームワーク２０２は、複数のサービスをさらに提供することができる。これらのサービスの一部は、例えばロギングのような局所的なものとすることができる。別のサービスは、複数の別のピアグループを用いて分散されることができる。例えば、ワークスペースフレームワーク２０２により提供される１つのサービスは、様々なサービスを提供するマスタを構築するサービスとすることができる。サービスは、システム故障又は破損の場合にマスタを置き換えるために利用可能なマスタに対するバックアップを構築することができる。
【００２４】
媒体共有アプリケーション
ある実施形態は、メディア共有アプリケーションを作成するために用いられることができる。メディア共有アプリケーションにおいて、複数のカテゴリをメディアのために作成する。各カテゴリは別のピアグループを使用する。上述したように、各ピアグループは、論理的又は物理的とすることができる。ユーザがメディアを共有することを望むと、メディアファイルは、所定のカテゴリに関するピアグループに設置されることができる。ある実施形態において、各エージェントは、各ピアグループに対応するフォルダを含んでいる。ユーザがメディアを共有することを望むと、そのメディアは、フォルダ内に設置されることができ、そのフォルダに対応するピアグループの全てのメンバによって共有されることができる。ユーザは、ユーザが鑑賞することを望むカテゴリを選択することができる。これは所定のカテゴリのためのピアグループに加入することによってなされることができる。データは、時間をかけて、又はピアグループにおけるピアに対する複数のパラメータに基づいて複製されることができる。複製は、ある実施形態において、様々なルールに基づいて生じることができる。例えば、ルールは、複製する時間、保持する量等を指定することができる。
【００２５】
共有されたメディアは局所的に用いられることができる。例えば、メディアが例えば画像又はビデオ等の視覚メディアであると、そのメディアはスクリーンセーバに組み込まれることができる。ルールは各カテゴリに割り当てられることができ、どのように媒体が用いられるかを制御する。例えば、スクリーンセーバの実施形態において、パーセンテージルールが各カテゴリに適用されることができる。この形態において、あるカテゴリにおける画像は、別のカテゴリにおける画像よりも、より頻繁に表示されることができる。各ユーザは、例えばパーセンテージルール等のルールを指定することができる。特に、ルールは同様に別の種類のメディアに用いられることができる。例えば、メディアが、例えば音楽等の音声メディアであると、あるカテゴリの音楽は、別のカテゴリの音楽よりも、より頻繁に再生されることができる。
【００２６】
上記説明に示唆されたように、示された実施形態において集中型サーバを使用する必要はなく、メディアは自動的に又は１組のルールに基づいて複製される。
【００２７】
メディアは、多数のメディアから選択するのではなく、カテゴリを選択することにより選択されることができる。各ピアグループは、カテゴリとしてデータを組織化し、ピアグループのカテゴリに基づいて文脈アクセス及び複製を可能にする。
【００２８】
ある例示的な実施形態において、個々のグループは画像を共有することを要求することができる。ピアグループは個々のピアについて構築されることができ、個々のピアの画像を複製する。他のグループは、対象を有する個々の画像に対応するピアグループに加入することができる。ユーザは、重要性又は頻度のパーセンテージを指定することができ、個々の画像が加入している全てのピアグループからどうやって画像を表示するべきかを順番に決定する。 
【００２９】
ある実施形態において、複数のピアグループを、加入者の局在性を用いて最適化された分散を可能にする発行／申し込みポイントとして用いることができる。これらのピアグループチャネル上では、完全な複製が存在する。すなわち、ピアグループチャネルは、異なるレベルの詳細又は大きな全体の一部を提供するために用いられない。オブジェクトは全体で共有される。
【００３０】
マルチストリーム応答
ある実施形態は、単一の要求を有する複数のピアグループを使用し、オブジェクトの並列ダウンロード及び大きなオブジェクトの一部の並列ダウンロードを確立する。ピアグループ上で聞く複数のピアは、データを有することができ、データを必要とすることができる別のピアにデータを提供する機能を有することができる。この例では、複数のピアグループは、トラフィックを局在化して最適化するために用いられる。近接ルーティングは、ネットワークトラフィックを最適化するために用いられることができる。
【００３１】
ある実施形態において、２つのピアグループが用いられ、特定のトピックに関係するファイルのダウンロードを支援する。第１のピアグループは、例えば「ＲｅｑＡｄｄｒ」等の第１のアドレスを参照することによりアドレス指定されることができる。ＲｅｑＡｄｄｒピアグループにおけるピアの第１のクラスは、ダウンロードを要求するピアのクラスである。ＲｅｑＡｄｄｒピアグループにおけるピアの第２のクラスは、ダウンロードを申し出るリスナのクラスである。ピアがデータを供給することができると、第１のクラスからの任意のピアは、ピア自身を第２のクラスに加えることを選択することができる。
【００３２】
第２のピアグループは、例えば、「ＤｏｗｎＡｄｄｒ」等の第２のアドレスを参照することによりアドレス指定することができる。ＤｏｗｎＡｄｄｒピアグループは、ダウンロードされたデータが送信されるピアグループである。ＤｏｗｎＡｄｄｒピアグループにおいて、リスナはデータを受信することを要求するピアのクラスに属し、送信者は利用可能なデータを有するピアのクラスに属する。ＤｏｗｎＡｄｄｒピアグループは、実質的にＲｅｑＡｄｄｒピアグループの逆と見なされることができる。
【００３３】
ピアが特定のファイルをダウンロードすることを要求すると、ＲｅｑＡｄｄｒピアグループに対するＧＥＴ要求を作成し、当該ＧＥＴ要求は、一回だけの応答が必要とされる表示を有している。ＧＥＴ要求は、任意のノードにルーティングされ、ある実施形態において、このグループ上で聞く最も近接したピアにルーティングされる。結果は、ＤｏｗｎＡｄｄｒピアグループに送信され、結果に興味のある任意のピアが結果を受信する。
【００３４】
キャッシングピア
ある実施形態において、２つのクラスのキャッシングピアを実装することができ、当該２つのクラスのキャッシングは、ピュアキャッシュ及びキャッシングクライアントである。ピュアキャッシュは、ネットワークにおけるピアを含み、当該ピアのジョブは、データをキャッシュすること及び提供することである。第２のクラスは、ダウンロードするピアを表している。なぜなら、当該ピアがデータを欲し、他のピアにデータを送信しようとするからである。
【００３５】
ピュアキャッシュピアは、ＤｏｗｎＡｄｄｒピアグループにレシーバとして登録され、当該ピュアキャッシュピアが送信すべきデータを有すると、当該ピュアキャッシュピアは、リスナとして当該ピュアキャッシュピアをＲｅｑＡｄｄｒピアグループに加えることができる。他のアクティビティがないと、上記ピュアキャッシュピアは、ＲｅｑＡｄｄｒの要求を能動的に作成し、データを得る。
【００３６】
キャッシングクライアントピアは、要求をＲｅｑＡｄｄｒピアグループに送信し、ＤｏｗｎＡｄｄｒピアグループ上の結果を聞く。キャッシングクライアントピアがデータを有すると、その後、キャッシングクライアントが要求を処理するために利用できる間、当該キャッシングクライアントは、ＲｅｑＡｄｄｒピアグループ上のリスナとして加えられる。
【００３７】
コレクションをダウンロードすること
実施形態は、コレクションをダウンロードする機能も有している。コレクションは、例えば、１組のトラック、チャプタ、作品、及び記事等とすることができる。コレクションが要求されると、マニフェストがダウンロードされる。その後、要求は、マニフェストにおける情報に基づいてコレクションにおける各項目に関してなされる。各項目についての要求は、上述したようになされることができる。最適化として、項目が全てのリスニングピアに送信されるため、コレクションの項目は、同時に要求する他のピアが他の項目を要求することができ、システムにおける全体の要求を低減することができたとき、ランダムに要求されることができる。さらに、一部の実施形態は、機能性を有し、別のピアグループがコレクションの各部分又はコレクションの幾つかのサブセットについて識別される。
【００３８】
部分ファイル
同様の実施形態において、大きなオブジェクトを、部分セグメントマニフェストを使用することによって要求することができる。部分セグメントマニフェストをダウンロードすることができる。その後、要求は、大きなオブジェクトの各部分セグメントについてなされる。部分セグメントが受信されると、当該部分セグメントを再結合することができる。コレクションを用いるように、 部分セグメントは上述した最適化の理由と同様の理由のためにランダムな順番で要求されることができる。さらに、別のピアグループが大きなオブジェクトの一部について識別される。
【００３９】
部分結果を有するキャッシュ
細分化されたコレクション又は大きなオブジェクトについて、ダウンロードを提供するピアは、大きなオブジェクトの部分セグメントのコレクションにおける項目がダウンロードを提供するピアで利用可能となるまで待機することができる。代替の実施形態において、ダウンロードを提供するピアが部分結果を送信することができると、よりよい負荷平衡を達成することができる。特に、近傍を用いることによって、負荷平衡はより効率的になされることができる。この代替の実施形態において、ダウンロードを提供するピアは、項目又は部分セグメントを有していない要求について選択されることができる。この状態は、オリジナルの要求を発し、他のピアに選択されたダウンロードを提供させることにより解決される。
【００４０】
最適な処理を確保にするために、２つ又はそれ以上の要求を発することができる。第１の要求は、要求を送信するピアではなく、ダウンロード提供する任意のランダムなピアに与えられ、要求を送信するピアの内部の近傍にあり、データを迅速に供給することを可能にする。第２の要求は、外側の近傍に与えられ、要求されたデータが近傍のピアに無い場合に、当該データは別のピアから得られることができる。ある実施形態において、要求は除外リスト選択を用いてランダムでピアに送信されることができ、低い効率性、近傍でない、又は別のピアを排除する。
【００４１】
負荷平衡
マルチストリーム応答に対する１つの懸念は、負荷平衡である。例えば、ファイルを供給することができる５０個のピアが存在し、１つのピアが不相応な数の要求を得る場合、一部の実施形態において、最適なレベルで利用することができない。しかしながら、一部の実施形態では、ピアは不相応なトラフィックを効率的に使用できるようにすることができることに着目できる。要求がダウンロードを提供する任意の単一のピアに送信され、ダウンロードを提供する利用可能なピアに亘って負荷を統計的に平均化するときに、負荷平衡を実行するある実施形態が達成される。
【００４２】
さらに、メッセージが「グループにおける任意の１つのピアに送信せよ」と送信されると、メッセージはさらなるパラメータを与えられることができる。説明したように、メッセージは、ピアが最も近接している近傍内又は次の外側の近傍からランダムに選択されるべきであることを表示することができる。ダウンロードシステムは、外側の近傍がさらなるヒントを使用及び提供するために適切であり、多数に影響を与えることを認識することができる。本明細書で説明された他の実施形態を用いるように、負荷平衡の実施形態は、機能性を含むことができ、複数のピアグループがオブジェクト及びコレクション等の一部を得るために使用でき、ネットワーク上の負荷をより良く平均化する。
【００４３】
セキュリティモデル
データは多数の手法で保護されることができる。第１の例において、ピアグループ上のセキュリティは制限され、信頼できるパーティだけがデータを送信することができる。第２の例において、各メッセージは、当該メッセージが変えられないことを保証するように保護されることができる。別の例において、すべてのマニフェストは、期待された部分の認証された要約値を識別することができ、部分結果及び再申し込みアタックが起きることができないことを保証する。さらに別の例において、マニフェストは受信者によって認証されることができるか、又は確保されることができる。
【００４４】
実施形態は、複数のピアグループが異なるレベルのセキュリティを可能にするように用いられるときに実装されることができる。例えば、あるピアグループが低いレベルのセキュリティクライアントに用いられることができ、別のピアグループが中間セキュリティレベルのセキュリティクライアント又はその他に用いられることができる。ピアグループについて特定のセキュリティのレベルが、例えば、当該ピアグループを使用するクライアントに要望されるセキュリティに基づいて選択されることができる。代替として、ピアグループの特定のレベルは、送信されるデータの感度に基づいて選択されることができる。
【００４５】
ＷＳ送信使用
ある実施形態において、送信はウェブサービスを用いて実装されることができる。例えば、要求は、ＷＳ送信ＧＥＴ方法を用いてなされることができる。単純なデータについては、結果を応答で返送することができる。コレクションについては、専用化されたマニフェスト要素を応答で返送ことができる。リクエスタは、当該リクエスタがコレクションを求めていることを知っていると仮定されるため、この種類が予想される。リクエスタが知らない場合、応答における特定のヘッダが用いられることができ、当該特定のヘッダは、マニフェストが返送されるかどうかを表示し、及び次のダウンロードが要求されることを表示する。
【００４６】
分割される大きなファイルについては、専用化されたマニフェスト要素が応答で返送されることができる。クライアントは、当該クライアントが要求されたオブジェクトのサイズを知ることができないため、この種類が予想されることができない。この場合、特定のヘッダが応答に含まれることができ、次のダウンロードが要求されることを表示する。特定のヘッダは、例えば、本明細書で前述されたマニフェストを含むことができる。
【００４７】
大きなオブジェクトが自動的に分割されないある代替の実施形態において、範囲ヘッダがＧＥＴ要求に含まれることができ、要望されているオブジェクトの部分を示す。
【００４８】
グリッドコンピューティング
複数のピアグループを使用するある実施形態は、グリッド型コンピューティングを実行する機能を有している。各ピアグループは、チャネルとして用いられることができる。１つ又は複数のチャネルは、要求を通信するように用いられることができる。１つ又は複数の別のチャネルは、応答を通信するように用いられることができる。さらに別のチャネルは、データをダウンロードするように用いられることができる。さらに別のチャネルは、計算エージェント又はワーカーと通信するように用いられることができる。ある実施形態において、計算エージェントワーカーとの通信は、フェイルオーバの利点を提供する。
【００４９】
図３Ａを参照すると、トポロジ３００が例示され、当該トポロジ３００は、グリッドコンピューティングを容易にするために用いられることができる通常のアーキテクチャを示している。図３Ａは、ピアグループ３０４の要求セットに繋げられたクライアント３０２を示し、当該ピアグループ３０４の要求セットは、図１に示したピアグループＡ、Ｂ、Ｃ、及びＤ等の多数のピアグループチャネルを含むことができる。クライアント３０２は、要求をピアグループ３０４の要求セットに送信することによって、グリッドコンピューティングトポロジ３００により実行されるコンピューティングタスクについての要求を送信する。例えば、一次スケジューラサービス３０６及びホットスタンバイスケジューラサービス３０８等のスケジューラエージェントは、ピアグループ３０４の要求セット上のチャネルからの要求を受信する。ある実施形態において、異なるチャネルが、冗長フェイルオーバ構成を作成するように一次スケジューラサービス３０６及びホットスタンバイスケジューラ３０８のために用いられる。ホットスタンバイスケジューラ３０８は、一次スケジューラサービス３０６をシャットダウンする又はオフラインにする必要がある場合に、一次スケジューラサービス３０６の責務を引き受けることができる。ある実施形態において、別個のピアグループは、一次スケジューラサービス３０６とホットスタンバイスケジューラ３０８との間の通信に用いられることができる。これにより、一次スケジューラサービス３０６がシャットダウンされるか、又は除去されるときに、一次スケジューラの責務を途切れなく引き受けるように、ホットスタンバイスケジューラ３０８は一次スケジューラ３０６からの情報を受信することができる。
【００５０】
一次スケジューラサービス３０６及びホットスタンバイスケジューラ３０８は、計算エージェント３１２が登録するピアグループのグリッドワーカーセットと通信する。計算エージェント３１２は、スケジューラ３０６及び３０８に登録するあるピアグループ、スケジューラ３０６及び３０８に対する結果を通信する別のグループ、及び要求しているクライアント３０２に対して結果を通信するさらに別のグループを用いることができる。別の代替の実施形態において、別の複数のピアグループは、要求を提出するために用いられることができる。ここで、各ピアグループは、特定のクライアント３０２を表している。これは、別のクライアントが特定のクライアントに向けられたデータへアクセスすることを防止することにより、クライアント３０２に更なるセキュリティを提供するために用いられることができる。
【００５１】
図３Ａは、１組のピアグループ３０４及び３１０とともにグループ化されたピアグループを例示する一方で、図３Ｂは、どのようにピアグループが１組のピアグループ３０４及び３１０から切り離されるのかを示す一例を例示する。例えば、図３Ｂは、要求ピアグループ３１４上の要求を一次スケジューラサービス３０６に送信するクライアント３０２を例示する。一次スケジューラサービス３０６は、要求についての情報をエージェント間ピアグループ３１６を介して、ホットスタンバイスケジューラ３０８に通信することができる。これにより、ホットスタンバイスケジューラ３０８は、一次スケジューラサービス３０６が機能停止した場合に、フェイルオーババックアップとして機能する。計算エージェント３１２は、ジョブ登録ピアグループ３１８を介して一次スケジューラサービス３０６に登録することができ、一次スケジューラサービス３０６に計算エージェント３１２がグリッドコンピューティングタスクを実行可能であることを知らせる。一次スケジューラサービス３０６は、ジョブ要求ピアグループ３２０を用いてクライアント３０２からの要求を送信することができ、要求を計算エージェント３１２に送信する。特に、フェイルオーバ性能のための冗長システムに影響を及ぼすように特定のジョブ要求が１つ以上の計算エージェント３１２に送信されることができる。このように、スケジューラサービスがピアグループを用いることができ、ホットスタンバイを可能にしているのと同時に、計算エージェント３１２等のワーカーが冗長性を有し、ホットスタンバイを可能にしている。計算エージェント３１２がタスクを完了すると、応答をジョブ応答ピアグループ３２２上の一次スケジューラサービス３０６に送信することができる。これのいくつかの代替の実施形態を実装することができる。例えば、１つのピアグループは、スケジューラサービス３０６及び計算エージェント３１２と、及び、から通信するために使用されることができる。代替として、計算エージェント３１２と通信するために、計算エージェント３１２毎にピアグループが存在することができる。この実施形態は、共通のピアグループをさらに含むことができ、スケジューラサービス３０６に返送するように通信する。 これらの代替の実施形態により、異なる最適化及びモニタリングがそれぞれ可能になる。例えば、別のピアチャネルが各計算エージェント３１２に使用されると、セキュリティは、特定の計算エージェント３１２に向けられたデータが異なる計算エージェントによって入手されることを防止することにより向上されることができる。
【００５２】
さらに、計算エージェント３１２は、１つ又は複数の要求及び応答データピアグループ３２４を介してクライアント３０２と直接通信することができる。例えば、ワーク要求は、ピアグループを識別することができ、ワークデータを引き込み、スケジューラサービス３０６の外に戻すように専用化された要求を押し出すために使用される。これにより、より局在化された少数のデータコピーを用いることによる最適化が可能になる。一次スケジューラサービス３０６は、応答ピアグループ３２６上の応答を通信することができる。上記の実施形態は、ある特定の実施形態を示し、ピアグループは組み合わされることができるか、または、別のピアグループが小さな粒度のデータハンドリングに使用できることを着目すべきである。
【００５３】
図４を参照すると、複数のピアグループを利用する別のアプリケーションが示されている。図４は、タスク４０４、４０６の並列処理を実行するアプリケーション４０２を例示する。タスク４０４、４０６は、スレーブシステムによりそれぞれ処理されることができ、当該タスクが複数のピアグループに送信される。例えば、図４は、第１のピアグループ上のスレーブＡ１ ４０８及びスレーブＡ２ ４１０に送信されるタスクＡ４０４を例示する。タスクＢ４０６は、スレーブＢ１ ４１２及びスレーブＢ２ ４１４に送信される。タスクＡ及びＢはメインアプリケーション４０２により統合されることができる。この実施形態における処理は、上で説明したグリッドコンピューティングアプリケーションと同様とすることができる。示した例において、別のピアグループがスレーブシステムのグループに用いられることができる。例えば、識別コードＡにより識別されるスレーブシステム４０８、４１０のグループは、１つのピアグループと通信することができる一方で、識別コードＢにより識別されるスレーブシステムのグループは、別のピアグループと通信することができる。
【００５４】
分割されたターゲットとされたデータ
ピアネットワーキングの幾つかの実施形態に提供することができる１つの態様は、ピアネットワークが自己選択基準を含み、ピアグループを形成することである。このように、ターゲットとされたデータの大規模な分散は、メーリングリストと同様の形態で達成されることができる。チャネル又はチャネルの階層として機能するピアグループは、注目している情報を自己選択コミュニティに分配するために用いられることができる。例えば、「ニュースピアグループ」は、異なるニューストピックについてのグループの階層を含むことができる。ピアは、興味に基づいて特定のグループに加わる。その後、データは、適切なピアグループに送信される。別個であるが、関連付けられたグループの分割により、細かい散布が可能になる。例えば、グループが階層的に組織化されると、メッセージは任意のレベルにおいて送信されることができ、階層の上又は下のグループに複製されることができる
【００５５】
図５を参照すると、１つ又は複数の相互接続されたエージェントの間のネットワークにメッセージを送信するシステム５００が示されている。エージェントは、例えば、ホストコンピュータ、オペレーティングシステム、フレームワーク、アプリケーションコード、専用ハードウェア等とすることができるが、これらだけに限定されない。システム５００は、出力チャネル５０２を含み、当該出力チャネル５０２は、当該アプリケーションからのメッセージを受信するアプリケーションに接続するように構成されることができる。特に、入力チャネルは、例えば、既に見られたメッセージをフィルタリングすること等により、選択的に加わることができる。アプリケーションは、メッセージを出力チャネル５０２に送信し、他のエージェントに送信する。システム５００は、１つ又は複数の通信メカニズムをさらに備える。通信メカニズムは、ルータ５０４を含むことができる。図５に示した例示的なルータは、ダイレクトフラッディング５０６、ピアルーティング５０８、中継クライアント５１０、ファイヤーウォールプロキシ５１２、マルチキャスティング５１４、又は共有されたメモリ５１６を含んでいる。図５に示した例は、ルータの単なる例示であり、使用されることができる全てのルータではない。特に、ピアツーピアエージェントは図５に示したシステム５００を利用することができる。図５に示したように、１つのルータは、ダイレクトフラッディング５０６である。ダイレクトフラッディング５０６は、メッセージをピアグループに大量に送信されることを可能にし、メッセージがピアグループのメンバである別のピアに到達することを可能にする。さらに別のピアルーティング５０８が図５に例示される。特に、ピアツーピア構造が用いられるときでさえも、別のルーティングメカニズムが用いられることができる。以下においてより詳しく説明するように、１つ又は複数のルータ５０４は、アプリケーションからのメッセージを送信するために用いられることができる。効率的である場合、又は他の理由のため、メッセージは２つ以上のルータを用いて送信されることができ、メッセージの向けられた受信者に到達する。
【００５６】
通信メカニズムは、チャネル５２０をさらに含むこともできる。１つ又は複数のルータ５０４が選択された後に、ルータ５０４は順番に１つ又は複数のチャネル５２０を用いて、メッセージを送信する。例示的なチャネルは、ＴＣＰ、ｈｔｔｐ、ＵＤＰ、ＳＭＴＰ、ＰＯＰ等とすることができる。システム５００は、ピアツーピア環境において用いられることができる。このように、ある例示的な実施形態において、チャネル５２０はピアグループとすることができる。システム５００を用いるエージェントは、１つ又は複数のピアグループに属することができ、エージェントは、チャネル５２０として機能するピアグループを用いてメッセージを送信する。
【００５７】
システム５００は、ネットワーク、ネットワークにおけるメッセージ、ネットワークにおける参加者等についての情報を提供するように構成されたフィードバック管理部５２２を含む。ネットワークについての情報は、例えば、ネットワーク構成及び状態、失敗／成功接続、隣接しているもの等を有するルータ５０４に関係する情報を含むことができる。ネットワークについて情報は、上記したものの代替又は追加の、チャネル５２０についての情報を含むことができる。例えば、この情報は、参加者の場所、チャネル上の知られた又は推定された参加者の数、セキュリティ動作、サービス要求の質、時刻、ネットワークの混雑、メッセージのサイズ、メッセージの頻度、チャネルポリシー等に関係する情報を含むことができる。
【００５８】
図５に示したシステム５００は、フィードバック管理部５２０からのネットワークについての情報を受信するように構成されたルーティングポリシー管理部５２２をさらに含む。１組のポリシールール５２４は、ルーティングポリシー管理部５２２に結合される。ポリシールール５２４は、フィードバック管理部５２０からのネットワークについての情報を考慮する論理を含むことができる。ポリシールール５２４は、どのようにメッセージがフィードバック管理部５２０からのネットワークについての情報を考慮する論理に基づいて送信されるべきかについての情報を含むことができる。１つ又は複数の通信メカニズムはルーティングポリシー管理部５２２により選択され、フィードバック情報に適用するようなポリシールールに従って、メッセージを送信する。ポリシールール５２４は、例えば、専用コード、ＣＬＲ／Ｊａｖａ（登録商標）オブジェクト又はスクリプトとして表される。
【００５９】
図５に示した例は、ルータ５０４及びチャネル５２０を含む全ての通信メカニズムにメッセージを向けるように用いられるルーティングポリシー管理部５２４、フィードバック管理部５２２、及びルール５２６を示しているが、他の代替の実施形態は、ルーティンポリシ管理及びフィードバック管理の小さな粒度を実装することができる。例えば、チャネルフィードバック管理部５２２ａがチャネルルーティングポリシー管理部５２４ａ及びチャネルポリシールール５２６ａと共に用いられることができる。別のルータポリシーフィードバック管理部５２２ｂ、ルータルーティングポリシー管理部５２４ｂ、及びルータポリシールール５２６ｂがメッセージ送信を容易にするように用いられることができる。例えば、ルータルーティングポリシー管理部５２４ｂは、ルータポリシールール５２６ｂ及びルータフィードバック管理部５２２ｂと共に用いられることができ、ルータ５０４を適切に選択する。同様に、チャネルルーティングポリシー管理部５２４ａはチャネルポリシールール５２６ａ及びチャネルフィードバック管理部５２２ａと共に用いられることができ、１つ又は複数の適切なチャネル５２０を選択する。
【００６０】
前述したように、及び図５を参照すると、ネットワーク上で利用可能なチャネル５２０は、例えば、ＴＣＰ、ｈｔｔｐ、ＵＤＰ、ＳＭＰＴＰ、及びＰＯＰプロトコルとすることができる。さらに、上述したように、ピアグループがチャネル５２０として使用される実施形態を用いることができる。エージェントは、ピアツーピアネットワーキングのための１つ又は複数のピアグループに属することができる。エージェントが属している各ピアグループは、メッセージを送信するチャネル５２０として用いられることができる。特に、ある実施形態では、１つ又は複数のチャネルがメッセージを送信するように用いられることができる。メッセージが多数の異なる受信者に向けられる場合、異なるチャネルが異なる受信者への送信を最適化するように用いられることができる。その後、本明細書における実施形態は、異なる受信者について異なるチャネルを使用して、メッセージ送信を最適化する能力を意図している。言い換えれば、１つ又は複数のチャネルがメッセージを送信するように用いられることができる。
【００６１】
ネットワークにおいて使用可能なルータ５０４は、例えば、１つ又は複数のダイレクトフラッディング５０６、ピアルーティング５０８、中継クライアント５１０、ファイヤーウォールプロキシ５１２、マルチキャスティング５１４、又は共有されたメモリ５１６とすることができる。前述したように、ある実施形態がピアツーピア通信により用いられることができる。これらの実施形態及び他の実施形態において、ダイレクトフラッディング５０６及び／又はピアルーティング５０８が、送信されるメッセージのためのルータ５０４として用いられることができる。特に、実施形態は、相互接続されたエージェントが同一のホストマシンに備わっている構成を含むことができる。このように、メッセージを送信することは、共有されたメモリであるリレーを用いることにより達成されることができる。この場合、メモリポインタが、メッセージを送信するためにエージェント同士の間で送信されることができる。
【００６２】
１つ又は複数のルータ５０４は、使用のために選択されることができる。例えば、効率性が、異なる受信者に向けられたメッセージについて異なるルータ５０４を使用することにより得られることができると、その後、メッセージは同じメッセージについて異なるルータ５０４を用いることにより別の受信者に送信されることができる。特に、ダイレクトフラッディング５０６は、共通のハブで接続されたエージェントにメッセージを送信するために使用されることができる一方で、 同一のメッセージは、ファイヤーウォールプロキシ５１２によるファイヤーウォールを介してエージェントに送信されることができる。
【００６３】
タスクを実施する方法
図６を参照すると、計算、通信、及び／又は記憶タスクを実行する方法６００が例示される。当該方法６００は、例えば、互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。その方法は、２つ又はそれ以上の別個のピアグループを用いてエージェントにデータを提供するステップ（ステップ６０２）を含んでいる。ピアグループは、複数のエージェントの中から選んだメンバを含んでいる。エージェントにデータを提供するステップ（ステップ６０２）は、ある実施形態において、１組のピアグループに対する媒体を検査することを含むことができる。メディアは、メディアのカテゴリに従って２つ又はそれ以上の別個のピアグループの中で分散されることができる。ある実施形態において、メディアは画像を含んでいる。別の実施形態において、メディアは、オーディオ、ビデオ、又は任意の他の適切なメディアを含むことができる。
【００６４】
方法６００は、各ピアグループにおいて、データ上のオペレーションを実行するステップ（ステップ６０４）をさらに含んでいる。各ピアグループは、特定のオペレーションを実行する。上述したように、各ピアグループは、当該各ピアグループが実行するタスクを有している。このステップは、１つのピアグループだけによるタスクの実行を制限するようには意図されていない。言い換えれば、２つ以上のピアグループが所定のタスクを実行することができる。この制限は、単に、各ピアグループが、当該ピアグループが実行するために呼び出されることができる特定のタスクを有することを示すために意図されたものである。ある実施形態において、各ピアグループは、異なるアプリケーションについてのオペレーションを実行する。
【００６５】
各ピアグループにおいて、データ上のオペレーションを実行するステップ（ステップ６０４）は、例えば、第１のピアグループを用いて検索要求を送信するステップを含むことができる。検索要求は第２のピアグループの表示を含み、当該第２のピアにおいて、検索に検索結果が送信される。さらに、各ピアグループにおいて、データ上のオペレーションを実行するステップ（ステップ６０４）は、第２のピアグループにおける検索要求の結果として検索結果を受信するステップを含むことができる。上記したように、検索結果を受信するステップは、実際の内容を識別するメタデータを受信するステップを含むことができ、ネットワーク帯域幅を保護する。別の実施形態において、方法６００は、第３のピアグループを用いて実際の内容をフェッチするステップをさらに含むことができる。
【００６６】
各ピアグループにおいてデータ上のオペレーションを実行するステップ（ステップ６０４）は、各ピアグループに異なるカテゴリのデータを記憶させることをさらに含むことができる。例えば、一つのピアグループがメディア、他のドキュメント、他のログファイル等を記憶することができる。さらに、粒度は、必要とされるより細かく又は広くすることができる。例えば、細かい粒度カテゴリの中において、ピアグループは、各ピアグループに所定の種類の画像を記憶することができる。別の実施形態において、各ピアグループにおいてデータ上のオペレーションを実行するステップ（ステップ６０４）は、各ピアグループに大きなオブジェクトの異なる一部を送信させることを含むことができる。
【００６７】
図６に示した方法６００は、共通の計算、通信、及び／又は記憶タスクが各ピアグループでのオペレーションを統合することによって達成されるように、各ピアグループでのオペレーションを適合するステップ（ステップ６０６）をさらに含んでいる。適合するステップ（ステップ６０６）は、ある実施形態では、１つのアプリケーションにより実行されることができる。
【００６８】
ある実施形態において、図６に例示した方法６００は、要求が第１のピアグループを用いて送信され、当該要求に対する応答が第２のピアグループを用いて受信されるように実行されることができる。
【００６９】
ある実施形態において、方法６００は、要求を送信するクライアント、要求を受信するスケジューラサービス、及びコンピューティングオペレーションを実行するコンピュータエージェントを含むグリッドコンピューティング環境において実行されることができる。各ピアグループにおいてデータ上のオペレーションを実行するステップ（ステップ６０４）は、この実施形態において、クライアントに第１のピアグループにおけるスケジューラサービスと通信すること及びスケジューラサービスに第２のピアグループにおけるコンピュータエージェントと通信することを含んでいる。
【００７０】
同様の実施形態において、方法６００は、並列処理環境において実施されることができ、当該並列処理環境において、２つ又はそれ以上の別個のピアグループのそれぞれは、１つ又は複数のスレーブエージェントを含んでいる。スレーブエージェントは、ピアグループからのタスクを受信する。
【００７１】
図７を参照すると、計算、通信、及び／又は記憶タスクを実行する方法７００の別の実施形態が示されている。方法７００は、例えば、互いにネットワーク接続された１つ又は複数のエージェントを含むコンピューティング環境において実行されることができる。方法７００は、２つ又はそれ以上のピアグループにおけるメンバーシップを得るステップ（ステップ７０２）を含んでいる。例えば、図１に示したように、エージェント１０４は、ピアグループＡ、Ｂ、Ｃ、及びＤにおけるメンバーシップを有している。
【００７２】
方法７００は、第１のオペエーションを実行するために第１のピアグループを用いるステップ（ステップ７０４）をさらに含んでいる。第１のオペレーションは、第１のピアグループに特有のオペレーションである。例えば、図１に示したように、ピアグループＡは、メッセージを送信するために用いられることができる。よって、メッセージを送信するオペレーションは、第１のピアグループに特有のオペレーションである。
【００７３】
方法７００は、第２のオペレーションを実行するために第２のピアグループを用いるステップ（ステップ７０６）をさらに含んでいる。第２のオペエーションは、第２のピアグループに特有のオペレーションである。例えば、図１に示したように、ピアグループＢは、メッセージを受信するために用いられることができる。よって、メッセージを受信することは、第２のピアグループに特有のオペレーションである。
【００７４】
図７に示した方法７００は、共通の計算タスクがオペレーションを統合することによって達成されるように、第１のピアグループ及び第２のピアグループにおいて実行される第１のオペレーション及び第２のオペレーションを適合するステップ（ステップ７０８）をさらに含むことができる。例えば、図２は、ピアアプリケーション２０４を例示し、当該ピアアプリケーション２０４は、コンピューティングモジュール等において、実行される共通の計算、通信、及び／又は記憶タスクを達成するために、ピアグループにおいて実行されるオペレーションを適合する機能を有することができる。
【００７５】
方法７００は、グリッドコンピューティング環境において実行されることができる。このような一実施形態において、第１のピアグループを用いるステップ（ステップ７０４）は、クライアントから計算エージェントへのタスクを適合するスケジューラサービスとして、スケジューラサービスを選択するステップを含む。ある実施形態において、スケジューラサービスを選択するステップは、グリッドコンピューティング環境から除去されるべき一次スケジューラサービスを置き換える二次スケジューラサービスを選択するステップを含んでいる。ピアグループは、スケジューラサービスを選択するために用いられる特定のタスクを有することができる。 
【００７６】
実施形態は、コンピュータ可読媒体を含むこともでき、当該コンピュータ可読媒体は、コンピュータ実行可能命令又はデータ構造を運搬する、又は有している。このようなコンピュータ可読媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされることができる任意の利用可能なメディアとすることができる。例示の目的として、及び限定でなく、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭとすることができる。又は、コンピュータ実行可能命令もしくはデータ構造の形式で所望のプログラムコード手段を運搬するか、もしくは記憶するために用いられることができ、及び汎用コンピュータ又は専用コンピュータによりアクセスされることができる別の光ディスク記憶手段、磁気ディスク記憶手段もしくは別の磁気記憶デバイス、又は任意の他のメディアとすることができる。情報が、ネットワーク又は別の通信接続手段（有線、無線、又は有線若しくは無線の組み合わせ）を介してコンピュータに送信されるか、又は提供されると、当該コンピュータは接続手段をコンピュータ可読媒体として適切にみなす。よって、任意のこのような接続手段は、コンピュータ可読媒体と称される。上記したものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００７７】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、専用処理装置に所定の機能又は機能のグループを実行させる指示及びデータを含んでいる。本発明の内容を、構造的な特徴及び／又は方法のステップについて説明したが、特許請求の範囲に記載された本発明の内容を、上記した特定の特徴又はステップに限定する必要はない。むしろ、上記した特徴及びステップは、請求の範囲の実装の例示的な形態として説明されている。
【００７８】
本発明は、本発明の精神又は本質的な特徴から逸脱することなく、別の特定の形態で具現されることができる。上述した実施形態は、単に例示目的であると考えられるべきであり、限定するものと考えられるべきではない。よって、本発明の範囲は、上述した説明ではなく、特許請求の範囲により示される。特許請求の範囲の均等な意味及び範囲内にある全ての変更本発明の範囲内に含まれるべきである。
【図１】
2010505196.tif 000003
【図２】
2010505196.tif 000004
【図３Ａ】
2010505196.tif 000005
【図３Ｂ】
2010505196.tif 000006
【図４】
2010505196.tif 000007
【図５】
2010505196.tif 000008
【図６】
2010505196.tif 000009
【図７】
2010505196.tif 000010
【国際調査報告】
2010505196.tif 000011
2010505196.tif 000012