JP2009522690A - スケーラブルなピア・グループを使用して通信を最適化すること - Google Patents

スケーラブルなピア・グループを使用して通信を最適化すること Download PDF

Info

Publication number
JP2009522690A
JP2009522690A JP2008549492A JP2008549492A JP2009522690A JP 2009522690 A JP2009522690 A JP 2009522690A JP 2008549492 A JP2008549492 A JP 2008549492A JP 2008549492 A JP2008549492 A JP 2008549492A JP 2009522690 A JP2009522690 A JP 2009522690A
Authority
JP
Japan
Prior art keywords
peer
communication
message
communication mechanism
group
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.)
Granted
Application number
JP2008549492A
Other languages
English (en)
Other versions
JP5327852B2 (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 JP2009522690A publication Critical patent/JP2009522690A/ja
Application granted granted Critical
Publication of JP5327852B2 publication Critical patent/JP5327852B2/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
    • 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
    • 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/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • H04W36/0033Control or signalling for completing the hand-off for data sessions of end-to-end connection with transfer of context information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明の実装形態は、ピア・ツー・ピア通信システムに対する最適化に部分的に関する。例えば一実装形態は、ピアの間で動的に通信チャネルを作成し、キャッシュし、管理するスマート・トランシーバの使用に関する。別の実装形態は、様々なピアの間でピア・メッセージを効率的に登録し配信するために使用されることができるセントラル・トラッキング・オブジェクトの使用に関する。一実装形態において、このセントラル・トラッキング・オブジェクトは、グループ内のピアの間で共用される。さらに別の実装形態は、1つのネームスペースのピア・グループを、異なる複数のネームスペースのさらに他のピア・グループ内に含む、ピア・グループをネームスペースに関連付けることに関する。本発明のこれらおよび他の態様は、所与のピア・メッセージの配信意図が保全されることを保証するために、そして最適な数のメッセージが所与の任意の時刻に所与の任意のピアに対して通信されることを保証するために使用されることもできる。

Description

コンピュータ化されたシステムが広まり、他の人々と通信するニーズやそれに関連するアプリケーションがある。一般に、コンピュータ・システムと、関連したデバイスとは、例えば個人電子メッセージを交換し、商品を販売し、アカウント情報を供給し、1つのアプリケーションから別のアプリケーションへとメッセージを通信するなど、様々な理由のためにネットワーク上で情報を通信する。しかしながら、コンピュータ・システム、およびそれらの関連したアプリケーションがますます高度化するようになるにつれて、ネットワーク上でメッセージを伝えることに関連する課題も増大してきていることを認識するであろう。
一般に、ネットワーク上で1つのコンピュータ・システムから次のコンピュータ・システムへとメッセージを通信するためのいくつかの異なるプロトコルおよびトポロジが存在する。電子メール(「Eメール」)システムや一部のインスタント・メッセンジャー・システム(instant messenger system)などと共に使用される1つの従来のトポロジは、1つまたは複数の中央集中されたメッセージング・サーバ(centralized messaging server)を使用して、ユーザ情報を管理し検証し、また1つのコンピュータ・システムから次のコンピュータ・システムに対して、送信されるユーザ・メッセージを経路指定もする。この例においては、1つのコンピュータ・システムは、中央集中されたメッセージ・サーバ(message server)へとログインし、別のユーザまたはコンピュータ・システムに対して、アドレス指定されたメッセージを送信する。中央集中されたサーバは、アドレス指定されたメッセージを受信し、ユーザ情報を検証し、アドレス指定されたメッセージを、そのコンピュータ・システム(またはユーザ)に対して送信する。
別の従来のトポロジは、ピア・ツー・ピア・フレームワーク(peer-to-peer framework)を使用して、1つのコンピュータ・システムから次のコンピュータ・システムに対して直接にメッセージを送信する。すなわち、1つのコンピュータ・システム(すなわち、1つの「ピア(peer)」または「ピア・コンピュータ・システム(peer computer system)」)は、別のコンピュータ・システム(すなわち、他の「ピア」または「ピア・コンピュータ・システム」)に対して直接に接続し、次いで他のピア・コンピュータ・システムに対して直接にメッセージを送信する可能性がある。これらのような従来のピア接続はまた、複数の異なる他のピア・コンピュータ・システムとのいくつかの他の接続を有する可能性もある。特に、1つのピアは、通信ネットワークにおいて複数の他のピアに対して接続される可能性もあり、またさらに定義された「グループ」の複数のピアに対して接続される可能性もある。
しかしながら、これらのような従来のピア通信フレームワークは、それらがどれだけ、
従来のEメール・システムまたはインスタント・メッセージング・システム(instant messaging system)と比較して通信を容易にするかの点で、いろいろな意味で、より制限されている。例えば、従来のピア通信フレームワークによっては、一般的に、グループは、他のグループを含むことができないようになっている。すなわち、ピア・グループは、一般的に1つまたは複数のピア・コンピュータ・システムのメンバシップを備えるが、おそらく他のグループのすべてのメンバを別々にアドレス指定することなしには、一般的に、そのメンバシップには別のグループを表す単一エンティティ(例えば、アドレスまたはオブジェクト)を含めてはいない。
従来のピア通信フレームワークは、また、一般的に、その数を適切にインテリジェントに調整するサービスおよびある種のメッセージを通信するための手段とを、たとえあるとしても、少ししか有していない。例えば、1つのピアは、定義されたグループ内のいくつかの他のピアに対してメッセージを送信する可能性がある。受信ピアはさらに、誰がその第1のメッセージを最初に送信したかを区別せずに、そのグループ内の少数の他のピアに対してそのメッセージを中継する可能性がある。したがって、元の送信ピアは、そのピア・グループの他のメンバから元のメッセージのいくつかのコピーを受信する可能性がある。
さらに、従来のピア・フレームワークは、問い合わせ(query)に対する回答をユーザが、どのように受信したか、いつ受信したか、あるいは受信したかどうかを、仮に識別したとしても、効率的に識別しない。例えば、ユーザが、ピア・グループの幾人かのメンバに対して問い合わせ(query)を送信したいと望む可能性があるが、そのユーザは、正しい回答を一回受信する必要があるだけである。それにもかかわらず、そのピア・グループ・メンバが、その問い合わせが満たされているとのある種の別のメッセージを送信しない限り、各ピア・グループ・メンバは、その問い合わせに対する応答がまだ存在していないと考え、それ故に、引き続き、応答する可能性がある。結果として、ユーザは、たった1つの質問について、グループ内の複数のピアから同じ回答のいくつかの反復を、ひょっとすると、取得する可能性がある。これらのライン(傾向)に加え、従来のピア通信フレームワークはまた、一般的にピア・グループの内部の1人のピア・メンバを次のピア・メンバから非常にうまく区別することをしない。例えば、あるピアは、そのピア・グループに加わるなどのために、ピア・グループのすべてのメンバに対してその情報を通信したいとは思わない(あるいは、通信する必要がない)が、そのピア・グループの1人のメンバに対してある種の情報を一回だけ送信する必要がある可能性がある。残念ながら、従来のピア・フレームワークは、このタイプの制約条件を許可しない。
したがって、従来のピア通信フレームワークは、様々なステージのネットワークに多数の不必要なメッセージのコピーが出回る可能性があることを認識することができる。すなわち、ピアの間で区別すること、あるいはちょうど説明されたシナリオにおけるようにピアが、メッセージを発信しているか受信しているかを区別すること、の失敗に起因して、ピア・ネットワークの周りには、多数の不必要なメッセージの複製(duplicate)が送信されている可能性がある。他の場合には、ピア通信フレームワークは、所与のコンテキストについて不適切であるある種の通信メカニズムを使用して送信されるメッセージで渋滞させられる可能性があり、この場合には、エンド・ユーザは、ピア・ツー・ピア・メッセージにアクセスすることさえできない可能性がある。
例えば、ピア通信フレームワークは、何らかの初期接続情報に基づいてユーザに対してメッセージを送信するためのハイパー・テキスト転送プロトコル(Hypertext Transfer Protocol)(「HTTP」)メカニズムを使用する可能性がある。しかしながら、ユーザがローカル・コンピュータ・システムを離れる(すなわち、建物の外を歩く)場合、ショート・メッセージ・サービス(Short Message Service)(「SMS」)通信メカニズムを使用して、ユーザのモバイル電話に対してメッセージを通信することがより効率的である可能性がある。それにもかかわらず、従来のピア通信フレームワークは、存在の変化に対応するようにその選択された通信メカニズムを自動的に調整しない。特に、ピア通信フレームワークは、一般的に「オール・オア・ナッシング(all-or-nothing)」アプローチを使用することになり、別の通信メカニズムが、その後になってより適切な可能性があるかどうかにかかわらず、依然として最初に選択された通信メカニズムを使用するのみに留まる。どれだけ多くの、どんなメッセージが送信されているかを適切に調整することの失敗は、ピア通信フレームワークに重い負担をかけることをもたらす可能性があることを認識することができる。
従来のピア通信フレームワークの別の態様は、それらのフレームワークが、ピアにおける「リスニングする(listen)」ビヘイビアと「送信する」ビヘイビアとを区別するときに、見込まれる制約条件を、通常(例えば、ハードウェア、ソフトウェア、またはその両方を)考慮に入れないことである。例えば、送信ピア(sending peer)は、株価情報(stock quote)を配信する場合のように、情報をブロードキャストすることだけをしたいと望む可能性があるが、リスニング・ピア(listening peer)は、株価情報のストリームを単に閲覧する場合のように、ブロードキャスト情報(broadcast information)をリッスンしたいとだけ望む可能性もある。送信ピアとリスニング・ピアは、それぞれ、さらに、異なる能力を有する2つの異なるタイプの通信チャネルを使用している可能性がある。例えば、1つの通信チャネルは、高速なアップロード速度と低速なダウンロード速度を有する可能性があるが、別の通信チャネルは、等しいが但し適度の速さのアップロード速度とダウンロード速度を有する可能性がある。しかしながら、従来のピア・フレームワークは、一般的にピアの振る舞いのタイプに少なくとも部分的に基づいて適切な通信チャネル(または他のハードウェア決定もしくはソフトウェア決定)を決定せず、あるいはピア接続を確立した後にその決定を適切に調整することもしない。
したがって、従来のピア・ツー・ピア通信は、多種多様な考察について最適化される可能性が存在する。
本発明の実装形態(inplementation)は、ピア・ツー・ピア通信を最適化するシステム、方法、およびコンピュータ・プログラム・プロダクト(computer program product)を使用して、当技術分野における1つまたは複数の問題を解決する。とりわけ、本発明の実装形態は、ピアが加入し、発行することができ、他のピア・グループがメンバになることができるピア通信グループを含んでいる。本発明の実装形態はまた、多数の異なる通信チャネルのうちの、所与のコンテキストに対して適切な1つを、インテリジェントに、動的に、選択することができるコンポーネントも含んでいる。本発明の実装形態はさらに、最適な数のメッセージが、所与の任意のピアに、または任意のピアから、通信されることを保証するコンポーネントも含んでいる。
例えば、通信メカニズムを動的に調整するための、本発明の一実装形態による一方法は、ピア・コンピュータ・システムから受信ピア・コンピュータ・システムに対してピア・メッセージを通信するための複数の通信メカニズムを識別することを含む。さらに、本方法は、複数の通信メカニズムのうちの初期の通信メカニズムが、複数の通信メカニズムのうちの別の通信メカニズムよりも好ましいことを自動的に決定するようにすることもできる。この決定を行うとすぐに、本方法はさらに、その初期の通信メカニズムを自動的に選択すること、およびその選択された初期の通信メカニズムを使用して受信コンピュータ・システムに対してピア・メッセージを送信することを含む。
ネットワーク・ネームスペース(network name space)内のピア・グループ通信を管理するための、本発明の一実装形態による別の代替方法は、1つまたは複数のピアのうちの、第1のネームスペースに関連付けられた第1のピア・グループを識別することを含む。さらに、本方法はまた、第1のネームスペースに対してグループ参加要求メッセージ(group join request message)を送信すること、ならびに第1のピア・グループ内のメンバシップが受け入れられたという第1のネームスペースからの確認メッセージを受信することも含む。したがって、そのピアは、第1のピア・グループのメンバシップ・リストに追加されており、ピアは、第1のネームスペースに会員登録(subscribe)される。
ピア・メッセージの通信を最適化するための、本発明の一実装形態によるさらなる代替方法は、ピア・ツー・ピア通信ネットワークを介して発信ピア(originating peer)からの、1つまたは複数の配信制約条件を含んでいるピア・メッセージを受信することを含む。次いで、ピアは、セントラル・トラッキング・オブジェクト(central tracking object)を参照することができ、このセントラル・トラッキング・オブジェクトは、少なくとも1つまたは複数のピアが、ピア・メッセージを受信していること、および発信ピアが、ピア・メッセージを送信したことを示す。本方法はさらに、ピア・メッセージについての1つまたは複数の配信制約条件を評価すること、および1つまたは複数の配信制約条件の評価に基づくのはもちろん、セントラル・トラッキング・オブジェクトから参照される表示(indication)に基づいて、ピア応答メッセージを送信することを含む。したがって、本方法は、このメッセージに関する発信ピアの配信意図を保全する(preserve)ことができる。
この課題を解決するための手段のこの概要は、詳細な説明の形で以下にさらに説明される概念の選択を簡略化された形式で紹介するために提供される。本概要は、特許請求の範囲の主題の主要な特徴または不可欠な特徴を識別することを意図せず、また特許請求の範囲の主題の範囲を決定する際の助けとしても使用されることも意図していない。
本発明の追加の特徴または利点は、以下に続く説明の中で述べられ、部分的にはその説明から明らかになり、あるいは本発明の実施により知ることができる。本発明の特徴および利点は、添付の特許請求の範囲において特に指摘される手段およびその組合せを用いて実現され、取得されることができる。本発明のこれらの特徴および他の特徴は、以下の説明および添付の特許請求の範囲からもっと十分に明らかになり、あるいは以降で述べられるような本発明の実施によって知ることができる。
本発明の以上で列挙された利点および特徴と、他の利点および特徴が取得されることができる方法を説明するために、上記で簡潔に説明された本発明のより特定の説明が、添付図面中に示されるその特定の実施形態を参照して、提供されることになる。これらの図面は、本発明の典型的な実施形態だけを示しており、それ故にその範囲を限定するように考えられるべきではないことを理解して、本発明は、添付図面の使用を介して追加の特異性(specificity)と細部に関して記述されおよび説明されることになる。
本発明は、ピア・ツー・ピア通信を最適化するシステム、方法、およびコンピュータ・プログラム・プロダクトに適用される。とりわけ、本発明の実装形態は、ピアが加入し、発表(publish)することができ、他のピア・グループがメンバになりことができる複数のピア通信グループを含んでいる。本発明の実装形態はまた、所与のコンテキストについての多数の異なる通信チャネルのうちの適切な1つをインテリジェントに動的に選択することができるコンポーネントも含んでいる。本発明の実装形態はさらに、最適な数のメッセージが、所与の任意のピアに対して、または任意のピアから通信されることを保証するコンポーネントも含んでいる。
例えば、本発明の少なくとも1つの態様は、一般に中央集中化されたアドミニストレータ(administrator)を必ずしも必要としない加入ポイント(subscription point)であるピア・グループの使用に関連する。とりわけ、所与のピア・グループの各メンバ(または「ピア」)は、グループ・メンバ・ピアそれぞれが、加入し発行することができるネームスペースのメンバとして考えられることができる。このピア・グループは、さらに別のグループに属すこともでき、そのグループ・メンバのうちの1人として異なるピア・グループを有することもできる。所与のピアのコンピュータ・システムのアプリケーションは、次いで加入/発行(subscription/publication)モデルの観点から各ピア・グループを閲覧することができる。
さらに、本発明の態様は、任意の時点において所与の任意の通信シナリオについての適切な通信メカニズムを動的に選択するスマート・トランシーバ・コンポーネント(smart transceiver component)の使用に関連する。例えば、本明細書中でもっと十分に論じられることになるが、スマート・トランシーバ・コンポーネントは、ピアのコンピュータ・システムにおけるアプリケーション・コンポーネントと、無線周波数(radio frequency)(「RF」)コンポーネント、赤外線コンポーネント、共有メモリ・コンポーネント、および/またはシリアル・ポート・コンポーネント(serial port component)など他の通信メカニズムはもちろん、伝統的なHTTPメカニズム、SMSメカニズム、TCPメカニズムなど、1つまたは複数の通信メカニズムとの間をインターフェースすることができる。当業者なら、多くの異なる種類の通信を使用することができることを理解するであろう。
1つまたは複数のピアとの通信中の任意の時点(ポイント)で、送信通信システムにおけるスマート・トランシーバ・コンポーネントは、通信プロトコルのうちの任意のものを選択し(かつ/またはそれに合わせて調整する)ことができる。スマート・トランシーバ・コンポーネントはまた、後の時点において、任意の数のファクタに応じて、通信をできるだけ効果的にすることを支援するために、別の通信プロトコルへの変更が適切であると検出した場合に、別の通信プロトコルに動的に変更する(または、別の通信プロトコルを含む)こともできる。さらに、スマート・トランシーバ・コンポーネントは、そのコンピュータ化されたシステムが同じピアと通信するために複数の異なる通信チャネルをオープンする必要がないように、通信チャネルをキャッシュし、再使用することができる。
本発明の態様は、さらに、所与のピアの振る舞い(behavior)に基づいて送信通信チャネルおよび受信通信チャネルを最適化することができる。例えば、スマート・トランシーバ・コンポーネントは、いつ、ピアが主としてピア・メッセージを「リッスンする」ために、あるいは主として「送信する」ために構成されるかを識別することができる。ピアが、主としてリッスンするために構成される場合、そのときにはスマート・トランシーバ・コンポーネントは、より高いダウンロードのスループットと速度とを有する通信プロトコルとハードウェア・ポートとを選択する可能性がある。同様に、ピアが主として送信するために構成される場合、そのときにはスマート・トランシーバ・コンポーネントは、より高いアップロードのスループットと速度とを有する他の通信プロトコルとハードウェア・ポートとを選択する可能性がある。
本発明のさらに他の態様は、適切な数またはコピーの所与のメッセージが、ピア通信構造(peer communication fabric)において通信されることの保証を支援することができるいくつかの最適化を含んでいる。例えば、以下でもっと十分に詳述されることになるが、各ピアのコンピュータ・システムにおけるセントラル・トラッキング・オブジェクトが、ユーザの間で、および、異なる通信チャネル上で送信されるメッセージを追跡するために使用されることができる。とりわけ、セントラル・トラッキング・オブジェクトは、例えば、送信ピアが、それら自体のメッセージのコピーを受信することがないこと、あるいは他のピアが、同じメッセージの複製コピーを受信しないことの保証を支援することができる。
本発明のこれらおよび他の態様はさらに、いくつかの追加の特徴をピア通信フレームワークに提供するのに使用されることができる。例えば、本発明の態様は、メッセージが、グループ内の「任意の1つの」ピアだけに送信されるという制約条件で、グループに対して1つのメッセージを送信するのに使用されることができる。本発明の態様はまた、例えば所与のグループ内のすべてのピアに対して問い合わせを送信した後に、ただ1つの応答メッセージの受信を保証し、それにより不必要な複製を回避するのに使用されることもできる。
次に図面を参照すると、図1Aは、ピア・ツー・ピア通信システムを示しており、このピア・ツー・ピア通信システムは、ピア105と通信しているピア100を含み、このピア105は、さらにピア110、ピア115、およびピア120と通信している(例えば、通信チャネルを有する)。ピア115はまた、ピア120とも通信しているが、ピア110はまた、別個のネームスペース内のピア125とも通信している。したがって、例示の通信システムは、1つまたは複数のピア(例えば、105、110)が、「ノード」ピアでもあり得ることを示している。これらのノード・ピアは、ピア・メッセージを経路指定するための中央集中化されたサーバ(centralized server)と類似したハイブリッド・ファンクション(hybrid function)をサービスすることができ、あるいは別のピアとメッセージを簡単にあちこちへと交換する典型的なエンド・ピア(end-peer)としての機能を果たすこともできる。
例えば、ノード・ピア105と110は、両方ともに、グループAについてのグループ・リストの少なくとも一部分を格納する。とりわけ、ピア105は、グループ・リスト130aを記憶し、このグループ・リストは、ピア100、110、115、および120を含むが、ピア110(ノード・ピア)は、リスト130bを格納し、このリストは、そのメンバシップの中にピア105とグループB(ピア125を経由)を含んでいる。一実装形態においては、グループ・リストの各部分は、ハッシュ・テーブル(hash table)として記憶される。
いずれにしても、グループ・リストの所有権/管理により、ピア105および110は、それらに関連があるグループ・リスト内のピアに対してアドレス指定されたピア・メッセージを経路指定する(転送し、または「チェーンする」)こともできるようにすることができる。例えば、ピア105がグループBに対して(ピア125を経由して)方向づけられたメッセージを受信した場合、ピア105は、そのグループ・リスト・メンバシップをチェックし、それがグループBについてのレコードを有さないが、そのレコードは、そのグループ・リストの別の部分(すなわち、130b)上で見出される可能性があることを決定し、したがって、ピア105が知っているピア110に、そのグループ・リストの残りをホストしているピア110対してその要求を転送する。代わりに、ピア105によってホストされるリスト部分130aが、ピア110においてホストされるリスト部分130bがグループBについてのレコードを含むことを示す情報を保持する可能性もある。以下で、より十分に論じられことになるが、次いでピア110は、メッセージを受信し、グループBについてのグループ・リストをホストしている対応するピア125に対してメッセージを送信することができる。これが行われることができる一方法は、ある種の「ネームスペース」に対してメッセージを送信したり、あるいは発行したりすることによる方法である。
例えば、図1Aは、図に示される複数のピアが、ある種のネームスペース160、163の部分(division)に関連付けられることができることを示している。一般に、ネームスペースは、階層的フォーマットにおける1組の名前を識別して、異なる起源(但し、同じ名前)のオブジェクトが一緒に混在するときのあいまいさを回避する。ネームスペースは、ユニフォーム・リソース識別子(Uniform Resource Identifier)(「URI」)によって識別されることができるので、またピアは、URIによって識別されることもできるので、ピア・グループは、URIによってアドレス指定される固有のネームスペースに関連付けられることもできる。したがって、図1Aは、ピア100、105、110、115、および120が、ネームスペース160における同じグループAの一部分であるが、ピア125は、ネームスペース163の一部分であることを示している。すなわち、ピア100、105、110、115、および120のそれぞれは、同じネームスペース160内のURIによってアドレス指定可能であるが、ピア125は、異なるネームスペース163内のURIによってアドレス指定可能である。各ピアは、次に関連するネームスペースに対して発行することにより、そのグループに対してメッセージを送信することができる。同様に、ピアは、関連するネームスペースに対してグループ加入要求(group join request)を送信することにより、グループに加入することができる。
さらに、図1Aは、1つのネームスペース(例えば、163)のピア・グループが、異なるネームスペース(例えば、160)の異なるピア・グループのメンバであることが可能であることを示している。例えば、図1Aは、グループ・リスト130a〜bが、ネームスペース160に関連付けられることを示している。しかしながら、グループ・リスト130bは、そのメンバシップの中に「グループB」を有する。グループ・リスト130bは、さらにグループBが、ネームスペース163内のピア125を介してアドレス指定可能であることを示す。したがって、ネームスペース160の一般的なグループAのメンバシップに対して送信されるメッセージは、また、ネームスペース163のグループBのメンバシップに対して転送され、あるいはチェーンされることになる。
一般に、1つのネームスペースの1つのピア・グループが、異なるネームスペースの別のピア・グループに追加されることができるいくつかの方法が存在する。一実装形態において、(例えば、ネームスペース163の)1つのグループは、ピア・メンバシップについて(例えば、ネームスペースのピアURIによって)問い合わせされ、これらの見出されたピアは、要求を行うグループのメンバシップ(例えば、ネームスペース160についての)に追加される。次いで各ピアは、新しいグループに追加される前にそれらの以前のグループの中に有するときに受信されたメッセージを送信し、チェーンすることができる。別の実装形態においては、1つのグループは、2つの関連するネームスペース(すなわち、ネームスペース160と163と)の間のネームスペース・ブリッジ(namespace bridge)を作成することにより、別のグループに対して追加されることができる。さらに別の実装形態においては、コンテキストが、特定のピアの会話に関連付けられることができ、それにより、その会話は、複数のピア・グループにまたがって混在され、依然として受信者によって構成されることができるようになる。例えば、メッセージ・アトリビュート(message attribute)は、「会話23」を言う可能性もあり、あるいはもっと特定のものでさえあり、「グループAの会話Y」を言う可能性もある。
さらに、図1Aは、どのようにして1つのピアが、どのようにしてメッセージが送信されるか、あるいは誰から応答が受信されるかについての個々の制約条件を含んでピアのグループに対してメッセージを送信することができるかについての概要を提供している。例えば、図1Aは、ピア100が、「たった1つの応答だけ」が受信されるという制約条件を含んでメッセージ103を送信することを示している。すなわち、ピア100のコンピュータ・システムにおけるアプリケーションは、日付や時刻など、1つの一般的な情報だけを必要とする可能性があり、ピア100が誰からその応答メッセージを受信するかについては気にかけない。それにもかかわらず、ピア100は、適切な応答が受信されるまで必要なだけ多くのグループ・メンバに対してメッセージを送信したい。
したがって、図1Aは、ピア100がメッセージ103をピア105に対して送信することを示しており、このピア105は、ノード・ピアである。ピア105は、そのグループメンバシップを検査して、ピア100についてのメンバシップ・レコードを検証し、そしてメッセージを中継するためのピアを識別する。ピア105はまた、それがメッセージ103に回答することができるかどうかも識別する。例えば、ピア105は、メッセージ103に回答するために使用可能な適切なリソースまたは帯域幅を有さず、あるいは単に適切な回答について知らない可能性がある。したがって、図1Aは、ピア105が、ピア110に対して、そしてピア115に対してメッセージを転送することを示している。ピア115は、また、ピア120とのピア接続を有し、またピア115が、グループ・メッセージをピア120に対して中継することになるので、ピア105は、メッセージ103の別のコピーをピア120に対して送信する必要はない。類似した理由のために、ピア105は、ピア110が、「グループA」についてのグループ・リストの残りに対するノードであることを知っているので、ピア105は、ピア110に対してアドレス指定され、さらにそのメッセージが、「グループA」の他の任意のメンバに送信されるべきであることを指摘する、メッセージ103を単に送信することもできる。
この例においては、ピア120は、ピア115およびピア110がピア105を経由して応答107をピア100に対して返信する前に、ピア105を経由して応答107をピア100に対して返信する。一部の場合には、これは、ピア105がメッセージ103をピア110に対して送信する前に行われている可能性がある(これは、メッセージ103をピア110に対して不必要にレンダリングすることになる)。しかしながら、ピア120から応答107を受信すると、ピア105は、以下の図(例えば、図2)においてもっと十分に論じられる「セントラル・トラッキング・オブジェクト」に記入することなどにより、その応答を記録することができる。さらに、ピア100は、たった1つの応答だけを必要としたので、ピア105は、この制約条件を識別し、ピア120からピア100へと応答107を単に転送し、一方、ピア110および115からのそれぞれ応答107をドロップする(捨てる)。したがって、ピア105は、ピア100が、元々要求されているように、1つの応答を受信するだけであるように保証することができる。
図1Bは、図1Aに示されるシナリオと類似したシナリオを示しているが、メッセージ配信に関してピア100によって置かれる別の制約条件を示している。とりわけ、図1Bは、ピア100が、メッセージ113をグループAの「任意の1つ」に対して送信されるように制約することを示している。例えば、ピア100のコンピュータ・システムにおけるアプリケーションは、ピア・グループの一般的な任意のメンバに対して「プレゼンス(presence)」情報を送信したいと望むが、そのグループのすべてのメンバに対してこれを送信する必要はないという場合がある。プレゼンス情報は、必ずしもそれぞれがピア100からメッセージ113を受信する必要はなく、グループ内の他のピアにとってアクセス可能であってよい。したがって、図1Bは、ピア100が、この場合にはたまたまノード・ピアになっているピア105に、すなわち「ターゲット」ピア、に対してメッセージ113を送信することを示している。
1つのピアが、メッセージ113を送信すべき(一つの)ターゲット・ピアを自動的に選択する多数の方法が存在する可能性がある。例えば、ピア100は、近接情報を考慮に入れ、グループA内の他のピアの最も近いネットワーク・ロケーションおよび/または最も遠いネットワーク・ロケーションを決定してもよい。この情報はまた、別のネットワーク・ロケーションにおける受信者と比較される1つのネットワーク・ロケーションにおける受信者などの、受信者の可能性のあるクラスまたは組を生成するために使用することもできる。一実装形態においては、この情報は、最下位のid、最上位のid、固定された識別子、ランダム識別子、最低の帯域幅または処理負荷などの選択判断基準、あるいは何らかの他の動的にアクセス可能な判断基準、を含んでいる。
ピア100は、そのような許容可能な任意の受信者リストに加えて、対応する除外リスト(exclusion list)を作成することもできる。とりわけ、ピア100は、メッセージ113を制約することができ、その結果、そのメッセージは、「Xドメイン内のグループAのうちの任意のものであるが、Yドメイン内のグループBのうちのどれでもないもの」に対してアドレス指定される。したがって、本発明の態様は、キャッシュ複製などのシナリオにおいて、より大きなスケールを提供することができ、ここではデータは、別のピア(例えば、115、120)から必要とされる可能性があるが、ここではピアの「クラス」の選択は、重要であり、そのメッセージ(例えば、113)は、それ故にすべてのピア・メンバに対して複製される必要がない。
いずれにしても、また以前に説明されるように、図1Bは、メッセージ113が、グループAの任意の1つに対して(130aを経由して)アドレス指定され、これは、メッセージ113の配信をピア115またはピア120のうちの任意のものだけに制限し、これらのピアは、グループ・リスト130a上で見出されることを示している。したがって、ピア105がメッセージ113を受信すると、ピア105は、適切な応答を有さず、したがってメッセージ113を別のピアに対して渡すべきかどうかを識別する。この決定は、以上で識別されたパラメータのうちのどれか、ならびに帯域幅またはリソースの考察に基づいたものとすることができる。したがって、例えば図1Bは、(メッセージ113からのコンテンツを含む)新しいメッセージ111の形でピア115に、応答することが可能かどうかを質問し、これに対してピア115が否定的に応答する(109)応答することを示している。次いでピア105は、同じ問い合わせ111をピア120に対して送信し、応答117を受信し、この応答を、ピア105は、次いでピア100に戻すようにチェーンする(または転送する)。したがって、図1Bは、ピア100によって行われる「任意のもの」に対して送信する制約条件が満たされることを、どのようにしてピア105が保証する助けを行うことができるかを示している。とりわけ、図1Aから1Bは、グループと、グループ内のピアが、組織化されることができ、いくつかの最適化および/または制約条件を含むメッセージ配信を管理することができるいくつかの方法を示している。
図2は、本発明の実装形態に従ってこれらの組織的な最適化を可能にする助けを行うために使用されることができる1つまたは複数のコンポーネントのより詳細な概略図を示している。例えば、図2は、セントラル・トラッキング・オブジェクト145を示しており、このセントラル・トラッキング・オブジェクトは、選択グループ内の複数のピアの間でメッセージ送信アノテーション(message sending annotation)とメッセージ受信アノテーション(message receiving annotation)を共用するために使用されることができる。一実装形態においては、セントラル・トラッキング・オブジェクト145は、指定された共用パーティションの形でピア・ノード(例えば、ピア・ノード105、110)上に少なくとも部分的に記憶されることができる。次いで、セントラル・トラッキング・オブジェクト145に対する登録アップデートは、必要に応じて、あるいはピア・ユーザによって構成されるピア・ツー・ピア通信システムにおける他のピアのうちの任意のものに対してプッシュされ(または任意のものからプルされ)ることができる。
例えば、図2は、ピア100でセントラル・トラッキング・オブジェクト145によって管理される情報も、ピア115およびピア120に関連付けられたトラッキング・オブジェクト内で共用されることもできることを示している。一実装形態においては、セントラル・トラッキング・オブジェクト145は、各ピアが、それぞれのピアにおける異なるトランスポート入力プロセッサ(transport input processor)とトランスポート出力プロセッサ(transport output processor)にまたがって共用する単一のオブジェクトであるが、代替実装形態(明示的に示されず)においては、各ピアは、独立な、本質的に異なる、トラッキング・オブジェクトの所有権を有することができる。しかしながら、説明の簡単のために、図2は、ピア100、115、および120のそれぞれが、セントラル・トラッキング・オブジェクト145の少なくとも一部分を共用することを示している。ピア100がピア115とピア120に対してメッセージ140を送信すると、図2のピア100におけるセントラル・トラッキング・オブジェクト145、ならびにピア115および120におけるオブジェクト145は、ピア100がメッセージ140を送信したことを記録することができる。この方法における情報を共用すること、および/または配信することは、送信されたおよび受信されたメッセージを登録することなどにより、任意の数のメッセージング最適化を可能にすることができる。
例えば、図1Aにおけるように、ピア105が複数の応答107を受信すると、ピア105は、応答107がピア120からすでに受信されており、ピア100に対して送信されていることをセントラル・トラッキング・オブジェクト(例えば、145)から識別し、したがってこの情報を使用して、ピア110および115から複製応答107をドロップすることができる。同様に図1Bに示されるように、ピア105は、セントラル・トラッキング・オブジェクト(例えば、145)を調べて、グループA内のどのピアと、ピア105が、「ただ1つに対する送信」などの制約条件の下でメッセージ113をハンドオフする(hand off)することをすでに試みたかを決定することができる。したがって、セントラル・トラッキング・オブジェクト145による登録は、複製にフィルタをかけること、ならびにブラック・リスト(black list)、ホワイト・リスト(white list)の使用、および/または故障情報の識別、などのために構成される少なくとも1つのメカニズムを提供することができ、次いでこれは、通信チャネルのより高位レベルにおいて、スマート・トランシーバ150a〜cによって、使用されることができる。
例えば、図2は、ピア100がスマート・トランシーバ・コンポーネント150aを含むことができることを示している。スマート・トランシーバ150aは、ピア115上のトランシーバ150bや、ピア120上のトランシーバ150cとして示されるなど、ピア・ツー・ピア通信システム内の他のピアにも見出される個別化されたコンポーネントである。一般に、スマート・トランシーバ150aは、アプリケーション・コンポーネント155と、1つまたは複数の通信メカニズム133、135、および137との間をインターフェースするために使用されることができ、次いで様々なシステム制約条件またはシステム・プロパティ(例えば、ハードウェア課題、ソフトウェア課題、ネットワーク課題(network issues)など)に基づいてある種のメッセージ送信決定およびメッセージ受信決定を行う。
特に、スマート・トランシーバ(すなわち、150a〜c)は、任意の数の動的に決定されるファクタに基づいて、何がより効果的な通信メカニズムであるかを、通信プロセスにおける任意の時間に動的に決定することができる。一実装形態においては、例えばスマート・トランシーバ150aは、(例えば、通信メカニズム133、135、137などを経由する)アプリケーション・チャネルをキャッシュすることができ、その結果、確立されたセキュリティおよび他のアプリケーション・レベルのロジックが、(タイム・ウィンドウ(time window)内で)再確立される必要はない。スマート・トランシーバ150a〜cはまた、様々なアイデンティティと、他のネットワーク・スループットまたは処理手続の考慮すべき事柄とを使用して、確立された、または好ましい通信メカニズムを選択することもできる。これらのライン(方針)に沿って、スマート・トランシーバ150a〜cは、ネットワークの故障アクティビティ、ならびにネットワーク・ポリシーの変化またはアップデートを含めて、他の任意のネットワーク変化を監視することもできる。スマート・トランシーバ150a〜cによって動的に決定されるそのような情報により、所与のトランシーバは、どの通信メカニズム、またはチャネルが使用されるかを動的に調整することができるようになり得る。
一例として、ピア配信システム(または任意の通信メカニズム)が、特定のエンドポイントピア(例えば、ピア115)に対して通信メカニズム133、135、または137のうちのどれかを経由して通信チャネルを確立するものと仮定する。ピア100におけるスマート・トランシーバ150aは、所与のエンドポイント・ピアにおける別のスマート・トランシーバ(例えば、ピア115におけるトランシーバ150b)との最も適切なファクタに基づいた接続を開始し、次いで接続状態(すなわち、「通信チャネル」)をキャッシュする。接続は、依然としてその通信チャネルのアプリケーション・コンポーネントを介して行われるので、重要なアプリケーション接続セマンティクス(application connection semantics)は、後でより適切な接続メカニズムに基づいて別の通信メカニズム(より低レベルの通信チャネル)にスイッチングするときに保持されることができる。
したがって、通信チャネルは、送信されているメッセージ(例えば、140)内の既存の任意のネットワーク・ポリシーおよび/または制約条件に基づいて使用される(または再使用される)ことができる。例えば、適切なコンピュータ・システム(例えば、パーソナルコンピュータ、セルラ電話など)におけるピア100などのユーザは、メッセージを送信するために最初に別のピア115に接続する可能性がある。ピア100は、最初にスマート・トランシーバ150aを介してある種の「プレゼンス」情報を検出する可能性があり、このプレゼンス情報は、ピア115におけるユーザが、ランドライン(land line)を介してネットワークに接続されていることを示唆している。したがって、スマート・トランシーバ150aは、HTTP通信メカニズム133を使用して、スマート・トランシーバ150bを経由してピア115に接続することにより通信チャネルを開始する可能性がある。しかしながら、ピア115におけるユーザは、その後のポイントにおいてランドライン・コンピュータ・システムを終了し、それ故に、その後はワイヤレス通信手段のみを経由して応じられる可能性がある。したがって、スマート・トランシーバ150bは、ピア100におけるトランシーバ150aに対してそのユーザについてのプレゼンス情報におけるこの変化を送信する可能性がある。
次いでスマート・トランシーバ150aは、ユーザ(ピア115)が、SMS通信メカニズム137など、異なる通信メカニズムを介してよりよく連絡可能であることを自動的に決定する可能性がある。したがって、スマート・トランシーバ150aは、HTPPメカニズム133上で最初にセットアップされたキャッシュされた通信チャネルを使用し、今では好ましいSMS通信メカニズム137上にその通信チャネルを複製する。結果として、アプリケーション155を介してピア115に対して送信される新しいメッセージは、今やSMSを経由して通信される。
1つまたは複数の代替実装形態(図示されず)においては、スマート・トランシーバ150aは、特定のメッセージを配信するための複数の通信チャネルを、それが適切と考えられ限り、作成することもできる。例えば、スマート・トランシーバ150aは、特定のメッセージについて緊要性(urgent nature)が与えられると、複数の通信チャネルを作成し、それによって、ユーザが所与のメッセージを受信することを保証することが効率的であることを決定することができる。例えば、そのような場合には、スマート・トランシーバ150は、複数の通信経路を経由してユーザ・プレゼンスを検出し、次いで対応する複数の通信チャネルを開始することができる。
図3は、スマート・トランシーバ・コンポーネント150aが着信および発信のピアツーピア・メッセージを動的に管理するために使用されることができる、本発明の態様による別の実装形態を示している。とりわけ、図3は、ピア100が、アプリケーション156および157を使用してメッセージを通信している一実装形態を示しており、これらのアプリケーションは、それぞれリッスンのビヘイビア(listening behaviors)または送信のビヘイビア(sending behaviors)で動作している。例えば、アプリケーション156は、ピア115からの絶えず流される株価情報を受信し、表示するように構成されるが、アプリケーション157は、1つまたは複数の他のピア105および110に対してビデオ・データを流し出す(stream)ように構成される。しかしながら、通信チャネル170および175は、異なる能力(capabilities)を有する。とりわけ、通信チャネル170は、ほぼ等しいアップロード・コンフィギュレーションとダウンロード・コンフィギュレーションとを有するが、通信チャネル175は、より高速なダウンロード・コンフィギュレーションと、しかし、一方、より低速のアップロード・コンフィギュレーションを有する。
したがって、アプリケーション156および157と通信チャネル170および175との間をインターフェースするスマート・トランシーバ150aは、所与の任意の時刻のアプリケーションの共通のビヘイビアを決定し、次いでどの通信チャネルを使用すべきかについての適切な決定を行うことができる。例えば、図3は、通信チャネル170が、チャネル175と比較して比較的高速なアップロード速度を有するので、スマート・トランシーバ150aが、アプリケーション157(送信)と共に使用されるように通信チャネル170を選択することを示している。同様に、図3は、通信チャネル175が、チャネル170と比較して比較的より高速なダウンロード速度を有するので、スマート・トランシーバ150aが、アプリケーション156(リッスン)と共に使用されるように通信チャネル175を選択することを示している。しかしながら、スマート・トランシーバ150aは、必要に応じて、あるいは通信チャネル170〜175の態様が、何らかの他の理由のために変化する場合に、その後のポイントでこれらの通信チャネルの決定を切り換えることができることが理解されるであろう。
したがって、図1Aから図3と、その対応する説明は、ピア・ツー・ピア通信システムを最適化しスケーリングするためのいくつかのコンポーネントおよびメカニズムを示している。本発明の実装形態は、特定のファンクションを実行するための方法における動作の観点から説明されることもできる。とりわけ、図4および図5は、それぞれ動的に選択された通信メカニズムを使用してメッセージを送信するための、そしてネームスペースに関連するグループに対してメッセージを送信するための方法における動作のフローチャートを示している。
例えば、図4は、ピアによって使用される通信メカニズムを動的に調整する方法は、複数の通信メカニズムを識別する動作200を備えることを示している。動作200は、ピアから受信ピアへとメッセージを通信するための複数の通信メカニズムを識別することを含んでいる。例えば、図2は、ピア100におけるスマート・トランシーバ150aが、別のピア(例えば、ピア115)と通信するために通信チャネルを作成するために、意のままに使える通信メカニズム133、135、および137を有することを示している。
さらに、図4は、本方法が、少なくとも1つの初期の通信メカニズムが別の通信メカニズムよりも好ましいことを決定する動作210を備えることを示している。動作210は、複数の通信メカニズムのうちの少なくとも1つの初期の通信メカニズムが、複数の通信メカニズムのうちの別の通信メカニズムよりも好ましいことを自動的に決定することを含んでいる。例えば、スマート・トランシーバ150aは、ユーザがランドライン接続されたコンピュータ・システム(land-line-connected computer system)の所に存在するなどの、ピア115におけるユーザに関するプレゼンス情報を識別する。したがって、他の関連した任意のファクタ(例えば、近接度、ネットワーク・ロケーション、関連したアプリケーション、日時など)に基づいて、スマート・トランシーバ150aは、HTTP通信メカニズム133が、例えばSMS通信メカニズム133よりも適切であることを決定する。
図4はまた、本方法が、少なくとも1つの初期の通信メカニズムを選択する動作220を備えることを示してもいる。動作220は、少なくとも1つの初期の通信メカニズムを自動的に選択することを含んでいる。例えば、HTTP通信メカニズム133がより適切であることを決定するとすぐに、スマート・トランシーバ150aは、HTTP通信メカニズム133を使用してピア100におけるアプリケーションと、ピア115におけるアプリケーションとの間に通信チャネルを作成する。代わりに、SMS通信メカニズム137が、その後になってより適切である場合には、スマート・トランシーバ150aは、HTTP通信メカニズム133のために最初に作成された通信チャネルのキャッシュを取得し、それをSMS通信メカニズム137に対して適用することもある。
さらに、図4は、本方法が、少なくとも1つの選択された通信メカニズムを使用してメッセージングを送信する動作230を備えることを示している。動作230は、少なくとも1つの選択された初期の通信メカニズムを使用して受信ピアのコンピュータ・システムに対してメッセージを送信することを含んでいる。例えば、ピア100におけるアプリケーション155は、ピア115における対応するアプリケーション(図示されず)に対して、HTTP通信メカニズム133を使用して作成される通信チャネルを介してメッセージ140を送信する。しかしながら、通信チャネルの詳細は、そのアプリケーション・レイヤ(application layer)それ自体から抽出(abstract)され、スマート・トランシーバ・コンポーネント150aによって処理される。それ故に、内在する通信メカニズム(underlying communication mechanism)が変化する場合、アプリケーションは、この変化について事実上気付かず、単にスマート・トランシーバ150aによって確立された通信チャネルを介してメッセージを送信する。
図5は、ネットワーク・ネームスペース(network namespace)内のピア・グループ通信のための、本発明の態様による代替方法を示している。とりわけ、図5は、本方法が、第1のネームスペースに関連付けられた第1のピア・グループを識別する動作300を備えることを示している。動作300は、第1のネームスペースに関連付けられた第1のピア・グループの1つまたは複数のピアを識別することを含んでいる。例えば、ピア100は、ピア105、110、115、および120を含む、ピアの「グループA」を識別し、グループAが、ネームスペース160に関連することを識別する。したがって、グループAに参加することは、ネームスペース160に参加することを包含することになることが理解される。
さらに、図5の方法は、第1のネームスペースに対してグループ参加メッセージを送信する動作310を備える。動作310は、第1のネームスペースに対してグループ参加要求メッセージを送信することを含んでいる。例えば、ピア100は、グループ参加要求メッセージ(図示されず)をネームスペース160に対して送信する。次いで、このメッセージは、ピア・ノード105やピア・ノード110など、要求を処理するためのネームスペース内の最も適切なピア・ノードによって処理される可能性があり、このピア・ノードは、グループ・リスト(すなわち、130aまたは130b)の少なくとも一部分のハッシュを記憶する。
さらに、図5は、本方法が、第1のネームスペースからメンバシップの確認を受信する動作320を備えることを示している。動作320は、そのピアが、第1のピア・グループのメンバシップ・リストに追加されるなどの、第1のピア・グループ内のメンバシップが受け入れられたという第1のネームスペースからの確認を受信することを含んでいる。例えば、「グループA」メンバシップのハッシュ・テーブル(103a)の少なくとも一部分を記憶しているピア・ノード105は、ネームスペース160の代わりにピア100に対してメンバシップが受け入れられたことを応答する。類似したラインに沿って、ピア・ノード110は、「グループB」を追加するためにネームスペース160に代わってネームスペース163に対してグループ参加要求メッセージを送信する。次いで、「グループB」内の(それ故に、ネームスペース163の)ノードであるピア125は、ピア・ノード110に対して確認で応答し、それ故、グループAとグループBとの間のネームスペース・ブリッジの構築を許可する。代わりに、このグループ参加要求の受け入れは、ピア110がグループBのメンバシップを問い合わせるためのビークル(vehicle)を提供し、グループAについてのハッシュ・テーブル130bのリスト内の各グループBのピア・メンバについてのURIを含む可能性もある。
図6は、一つまたは複数の配信制約条件に基づいてピア・グループ内の1つまたは複数のピアの間でのピア・メッセージの通信を最適化するための、本発明の一実装形態による別の代替方法を示している。とりわけ、図6は、本方法が、1つまたは複数の配信制約条件を指し示すピア・メッセージを受信する動作400を備えることができることを示している。動作400は、発信元のピアから、少なくとも1つのピア・ツー・ピア通信チャネルを介して、1つまたは複数の配信制約条件を指し示すピア・メッセージを受信することを含んでいる。例えば、ピア100は、メッセージ103を送信し、このメッセージは、「1つの応答だけ」が必要とされるという制約条件を含んでいる。同様に、ピア100は、メッセージ113を送信し、これは、このメッセージがグループAの「任意の1つ」に対して送信されるように制約する。
図6は、本方法が、セントラル・トラッキング・オブジェクトを参照する動作410を備えることも示している。動作410は、少なくとも1つまたは複数のピアが、ピア・メッセージを受信していること、および発信ピアがピア・メッセージを送信したこと、を指し示すセントラル・トラッキング・オブジェクトを参照することを含んでいる。例えば、ピア105は、メッセージ(図1A)を受信し、セントラル・トラッキング・オブジェクト145(図2)を調べて、メッセージ103がピア100によって送信されているにすぎず、まだピア105以外のどのピアにも受信されてはいないことを決定する。セントラル・トラッキング・オブジェクト145は、メッセージ103が、HTTP通信メカニズム133を経由して送信されているにすぎないことも指し示すことができる。
さらに、本方法は、1つまたは複数の配信制約条件を評価する動作420を備える。動作420は、ピア・メッセージについての1つまたは複数の配信制約条件を評価することを含んでいる。例えば、ピア105は、メッセージが1つの応答を必要とするにすぎないという、メッセージ103内の制約条件を識別する。さらに、ピア105は、セントラル・トラッキング・オブジェクト145から、他のピアがまだメッセージ103に対する応答を供給していないことを識別する。同様に、ピア105は、セントラル・トラッキング・オブジェクト145から、メッセージ113を受信すべき他のピアが、まだメッセージ113を受信していないことを識別する。代わりに、ピア105は、メッセージ113に対して応答することができる他のピアが、まだメッセージ113を受信していないことを識別することもある。
したがって、図6はさらに、本方法が、ピア応答メッセージを送信する動作430を備えることを示している。動作430は、セントラル・トラッキング・オブジェクトから参照される表示に基づいて、および、発信ピアの配信意図が保全されるなどの、1つまたは複数の配信制約条件の評価に基づいて、ピア応答メッセージを送信することを含んでいる。例えば、ピア105は、応答107をピア100に対して送信し、このアクションをセントラル・トラッキング・オブジェクト145(例えば、図2)に登録する。したがって、ピア105によって受信されるメッセージ103に対する他の任意の応答107は、少なくともピア・ノード105、ならびにセントラル・トラッキング・オブジェクト145に対するアクセス権を有する他の任意のピアによってドロップさせられることになる。同様に、ピア105は、ピア105が、グループAのうちの「任意の1つ」に対してアドレス指定されているメッセージ113を受信したことを表す印をセントラル・トラッキング・オブジェクト145に登録する。したがって、メッセージ113のコピーをうっかりして受信する、グループA内の他の任意のピアは、そのメッセージをドロップし、あるいは単に応答することを回避することができる。
したがって、本発明の実装形態は、ピア・ツー・ピア通信システムについてのいくつかの利点および最適化を提供する。本発明の範囲内の実施形態および/または実装形態はまた、コンピュータ実行可能命令またはデータ構造を搬送し、あるいは記憶するためのコンピュータ読取り可能媒体も含んでいる。そのようなコンピュータ読取り可能媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされることができる使用可能な任意の媒体とすることができる。
一例として、限定するものではないが、そのようなコンピュータ読取り可能媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気ストレージ・デバイス、あるいはコンピュータ実行可能命令またはデータ構造の形態で望ましいプログラム・コード手段を搬送し、または記憶するために使用されることができ、また汎用コンピュータまたは専用コンピュータによってアクセスされることができる他の任意の媒体を備えることができる。情報が、ネットワークまたは別の通信接続(ハード・ワイヤード、ワイヤレス、あるいはハード・ワイヤードまたはワイヤレスの組合せのいずれか)の上でコンピュータに対して転送され、あるいは供給されるときに、コンピュータは、適切にその接続をコンピュータ読取り可能媒体と見なす。したがって、そのような任意の接続は、適切にコンピュータ読取り可能媒体と名付けられる。以上についての組合せもまた、コンピュータ読取り可能媒体の範囲内に含められるべきである。
コンピュータ実行可能命令は、例えば汎用コンピュータ、専用コンピュータ、または専用処理デバイスが、ある種のファンクションまたはファンクションのグループを実行するようにさせる命令およびデータを備える。本発明は、構造的機能(structural features)および/または方法論的な動作(methodological acts)に特有の言語で説明されているが、添付の特許請求の範囲の中で定義される主題は、必ずしも上記の特定の機能または動作だけに限定されるとは限らないことが理解されるべきである。そうではなくて、上記の特定の機能および動作は、特許請求の範囲を実装する例示の形態として開示されている。
本発明は、その趣旨または本質的な特徴を逸脱することなく、他の特定の形態で実施されることもできる。説明された実施形態は、すべての点において、例示としてのみであり、および限定的でないものと考えられるべきである。本発明の範囲は、したがって前述の説明によってではなく、添付の特許請求の範囲によって指し示される。特許請求の範囲と同等の意味および範囲内に含まれるすべての変更は、それらの範囲内に包含されるべきである。
本発明の一実装形態に従って、ピアが、ピアのグループに対して方向づけられたメッセージを送信するピア・ツー・ピア通信システムの全体的な概要を示す図である。 ピアが、ピアのグループに対して方向づけられたメッセージを送信する、図1Aに示されるような別の概略図である。 ピアが、スマート・トランシーバとセントラル・トラッキング・オブジェクトとを使用してメッセージを送信するピア・ツー・ピア通信システムの全体的な概要を示す図である。 図2に示される概要において、スマート・トランシーバが、送信機能とリスニング機能を区別することを示す図である。 選択された通信メカニズムを使用してメッセージを送信するための、本発明の一実装形態による動作のシーケンスを備える一方法のフローチャートである。 ネームスペースに関連するグループに対してメッセージを送信するための、本発明の一実装形態による動作のシーケンスを備える一方法のフローチャートである。 1つまたは複数の配信制約条件を含むピア・メッセージを配信するための、本発明の一実装形態による動作のシーケンスを備える一方法のフローチャートである。

Claims (20)

  1. ネットワーク上で、1つまたは複数の受信ピアとは別のピアと通信するように構成されるピアにおいて、ピア・メッセージを通信するために使用される通信メカニズムを動的に調整する方法であって、
    ピアから受信ピアに対してピア・メッセージを通信するための複数の通信メカニズムを識別する動作と、
    前記複数の通信メカニズムのうちの少なくとも1つの初期の通信メカニズムが、前記複数の通信メカニズムのうちの別の通信メカニズムよりも好ましいことを自動的に決定する動作と、
    前記少なくとも1つの初期の通信メカニズムを自動的に選択する動作と、
    前記選択された少なくとも1つの初期の通信メカニズムを使用して前記ピア・メッセージを前記受信ピアに対して送信する動作と
    を備えることを特徴とする方法。
  2. 前記選択された少なくとも1つの初期の通信メカニズムを使用して前記ピア・メッセージを前記受信ピアに対して送信する前記動作は、前記複数の通信メカニズムのうちから通信メカニズムをランダムに選択する動作を備えることを特徴とする請求項1に記載の方法。
  3. 前記選択された少なくとも1つの初期の通信メカニズムを含む通信チャネルをキャッシュする動作をさらに備えることを特徴とする請求項1に記載の方法。
  4. 少なくとも1つの他の通信メカニズムが、前記少なくとも1つの初期の通信メカニズムよりも好ましいことを指し示す、前記受信ピアについてのステータス情報を受信する動作をさらに備えることを特徴とする請求項3に記載の方法。
  5. 1つまたは複数の機能を用いて前記選択された少なくとも1つの初期の通信メカニズム、または前記複数の通信メカニズムのうちの他の任意のもの、を補強する動作をさらに備え、前記補強された通信メカニズムは、前記識別された他の通信メカニズムと整合していることを特徴とする請求項4に記載の方法。
  6. 前記少なくとも1つの他の通信メカニズムを自動的に選択する動作と、
    前記通信チャネルにおける前記少なくとも1つの初期の通信メカニズムを前記選択された少なくとも1つの他の通信メカニズムで自動的に置き換える動作と
    をさらに備えることを特徴とする請求項4に記載の方法。
  7. 前記選択された少なくとも1つの他の通信メカニズムを使用して前記通信チャネル上で新しいピア・メッセージを前記受信ピア・コンピュータ・システムに対して送信する動作をさらに備えることを特徴とする請求項6に記載の方法。
  8. 前記選択された少なくとも1つの初期の通信メカニズムを使用して、または前記選択された少なくとも1つの初期の通信メカニズムと前記複数の通信メカニズムのうちの他の任意の通信を使用して、前記ピアが、前記ピア・メッセージを前記受信ピアに対して送信したことを指し示すエントリをセントラル・トラッキング・オブジェクトに登録する動作をさらに備えることを特徴とする請求項7に記載の方法。
  9. 前記選択された少なくとも1つの他の通信メカニズムを使用して、前記ピアが、前記ピア・メッセージを前記受信ピアに対して送信したことを指し示すエントリをセントラル・トラッキング・オブジェクトに登録する動作をさらに備えることを特徴とする請求項7に記載の方法。
  10. 前記選択された少なくとも1つの初期の通信メカニズムを使用して、または前記選択された少なくとも1つの初期の通信メカニズムと前記複数の通信メカニズムのうちの他の任意の通信を使用して、前記ピアが、前記ピア・メッセージを前記受信ピアに対して送信したことを指し示すエントリをセントラル・トラッキング・オブジェクトに登録する動作をさらに備えることを特徴とする請求項1に記載の方法。
  11. 前記セントラル・トラッキング・オブジェクトは、前記ピア・コンピュータ・システムと前記受信ピア・コンピュータ・システムとの間で共用される単一のオブジェクトであることを特徴とする請求項10に記載の方法。
  12. 前記ピア・グループ内の前記1つまたは複数のピアのうちの1つから異なるピア・メッセージを受信する動作をさらに備え、前記異なるピア・メッセージは、前記異なるピア・メッセージが前記1つまたは複数のピアのうちの任意のものに対して送信されるべきであることを指し示すことを特徴とする請求項10に記載の方法。
  13. 前記セントラル・トラッキング・オブジェクト、あるいは前記1つまたは複数のピアとは別のピアによって所有される異なるセントラル・トラッキング・オブジェクトから、前記異なるピア・メッセージが、前記1つまたは複数のピアのうちの任意のものによって受信されていることを指し示す登録エントリが存在しないことを識別する動作と、
    前記異なるピア・メッセージを処理する動作と
    をさらに備えることを特徴とする請求項12に記載の方法。
  14. 前記セントラル・トラッキング・オブジェクト、あるいは前記1つまたは複数のピアとは別のピアによって所有される異なるセントラル・トラッキング・オブジェクトにおいて、前記異なるピア・メッセージが、前記1つまたは複数のピアのうちの少なくとも1つによって受信されていることを指し示す登録エントリを識別する動作と、
    前記異なるピア・メッセージを捨てる動作と
    をさらに備えることを特徴とする請求項12に記載の方法。
  15. 前記ピア・グループ内の前記1つまたは複数のピアのうちの1つから異なるピア・メッセージを受信する動作をさらに備え、前記異なるピア・メッセージは、それが、前記ピア・グループ内の前記1つまたは複数のピアからの1つの応答だけを必要とすることを指し示すことを特徴とする請求項1に記載の方法。
  16. 第1の通信チャネルと第2の通信チャネルを作成する動作をさらに備え、前記の第1の通信チャネルと第2の通信チャネルは、異なる動作特性を有することを特徴とする請求項1に記載の方法。
  17. 前記異なる動作特性は、どのようにしてアプリケーションが、前記のそれぞれの第1の通信チャネルと第2の通信チャネルの上でデータを送信し、または受信するかに影響を及ぼし、アップロード速度とダウンロード速度が、前記の第1の通信チャネルと第2の通信チャネルとの間で異なることを特徴とする請求項16に記載の方法。
  18. 前記ピアのコンピュータ・システムに関連した前記アプリケーションのビヘイビアを識別する動作と、
    前記の第1の通信チャネルまたは第2の通信チャネルのうちのどちらが、前記アプリケーションの前記識別されたビヘイビアに対してより効率的であるかを決定する動作と、
    前記決定された第1の通信チャネルまたは第2の通信チャネルを前記アプリケーションに関連付ける動作と
    をさらに備えることを特徴とする請求項16に記載の方法。
  19. 前記ピア・コンピュータ・システムに関連した前記アプリケーションのビヘイビアを識別する前記動作は、前記ピア・コンピュータ・システムにおいて前記アプリケーションのビヘイビアを識別する動作を備えることを特徴とする請求項16に記載の方法。
  20. ピア・コンピュータ・システムが、ネットワーク上で1つまたは複数の受信ピア・コンピュータ・システムとは別のピアと通信するように構成されるシステムで使用するためのコンピュータ読取り可能媒体であって、前記コンピュータ読取り可能媒体は、実行されると、メッセージを送信するために前記ピア・コンピュータ・システムによって使用される通信メカニズムを動的に調整する方法を1つまたは複数のプロセッサに実行するようにさせるコンピュータ実行可能命令を有し、前記方法は、
    ピアから受信ピアに対してピア・メッセージを通信するための複数の通信メカニズムを識別すること、
    前記複数の通信メカニズムのうちの少なくとも1つの初期の通信メカニズムが、前記複数の通信メカニズムのうちの別の通信メカニズムよりも好ましいことを自動的に決定すること、
    前記少なくとも1つの初期の通信メカニズムを自動的に選択すること、および
    前記選択された少なくとも1つの初期の通信メカニズムを使用して前記ピア・メッセージを前記受信ピアに対して送信すること
    を備えることを特徴とするコンピュータ読取り可能媒体。
JP2008549492A 2006-01-04 2006-12-19 スケーラブルなピア・グループを使用して通信を最適化すること Expired - Fee Related JP5327852B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/325,693 US8250230B2 (en) 2004-09-30 2006-01-04 Optimizing communication using scalable peer groups
US11/325,693 2006-01-04
PCT/US2006/048737 WO2007081523A2 (en) 2006-01-04 2006-12-19 Optimizing communication using scaleable peer groups

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012026533A Division JP5536120B2 (ja) 2006-01-04 2012-02-09 スケーラブルなピア・グループを使用して通信を最適化すること

Publications (2)

Publication Number Publication Date
JP2009522690A true JP2009522690A (ja) 2009-06-11
JP5327852B2 JP5327852B2 (ja) 2013-10-30

Family

ID=38256791

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008549492A Expired - Fee Related JP5327852B2 (ja) 2006-01-04 2006-12-19 スケーラブルなピア・グループを使用して通信を最適化すること
JP2012026533A Expired - Fee Related JP5536120B2 (ja) 2006-01-04 2012-02-09 スケーラブルなピア・グループを使用して通信を最適化すること
JP2013245859A Expired - Fee Related JP5715223B2 (ja) 2006-01-04 2013-11-28 スケーラブルなピア・グループを使用して通信を最適化すること

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012026533A Expired - Fee Related JP5536120B2 (ja) 2006-01-04 2012-02-09 スケーラブルなピア・グループを使用して通信を最適化すること
JP2013245859A Expired - Fee Related JP5715223B2 (ja) 2006-01-04 2013-11-28 スケーラブルなピア・グループを使用して通信を最適化すること

Country Status (13)

Country Link
US (2) US8250230B2 (ja)
EP (1) EP1974500A2 (ja)
JP (3) JP5327852B2 (ja)
KR (1) KR20080089382A (ja)
CN (1) CN101352002B (ja)
AU (1) AU2006335155B2 (ja)
BR (1) BRPI0619106A2 (ja)
CA (1) CA2629230A1 (ja)
IL (1) IL191877A (ja)
NO (1) NO20082600L (ja)
RU (1) RU2420898C2 (ja)
TW (1) TW200733679A (ja)
WO (1) WO2007081523A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514591A (ja) * 2009-12-17 2013-04-25 アルカテル−ルーセント ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
JP2018528641A (ja) * 2015-06-29 2018-09-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) マシンツーマシン通信システムにおける通信ポリシ制御

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002096103A1 (en) * 2001-05-23 2002-11-28 Sony Corporation Broadcast program display method, broadcast program display apparatus, and broadcast receiver
US8250230B2 (en) * 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable peer groups
US20070133520A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US8090880B2 (en) 2006-11-09 2012-01-03 Microsoft Corporation Data consistency within a federation infrastructure
US8549180B2 (en) * 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US20110082928A1 (en) 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
ATE418228T1 (de) * 2006-07-20 2009-01-15 Alcatel Lucent Verteilte anwesenheitsverwaltung in peer-to-peer- netzen
US7617322B2 (en) * 2006-09-29 2009-11-10 Microsoft Corporation Secure peer-to-peer cache sharing
US8027342B2 (en) * 2006-12-21 2011-09-27 Motorola Mobility, Inc. Method and apparatus for establishing peer-to-peer communications
US20080209053A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation HTTP-Based Peer-to-Peer Framework
US20100030841A1 (en) * 2008-07-30 2010-02-04 Albert Busoms Pujols Method and system for sharing information between user groups
US20100094938A1 (en) * 2008-10-10 2010-04-15 Nicolas Le Scouarnec Method of transmitting data between peerss by selecting a network according to at least one criterion and associated management device and communication equipment
CN102204174A (zh) * 2008-11-04 2011-09-28 株式会社自动网络技术研究所 通信装置、中继装置、通信***及通信方法
US20100185714A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Distributed communications between database instances
EP2887589A1 (en) * 2013-12-20 2015-06-24 Rovio Entertainment Ltd Stateless message routing
US9680745B2 (en) * 2014-01-20 2017-06-13 Huawei Technologies Co., Ltd. Multi-domain source routed forwarding based on collaborating network controllers
JP6131907B2 (ja) 2014-04-24 2017-05-24 カシオ計算機株式会社 分散データベース、データ共有方法、プログラム、装置
US10430120B2 (en) 2014-07-30 2019-10-01 Industrial Technology Research Institute Data object management method and data object management system
US10194275B2 (en) * 2015-03-06 2019-01-29 Omnitracs, Llc Inter-network messaging for mobile computing platforms
US10650325B2 (en) * 2015-07-31 2020-05-12 Microsoft Technology Licensing, Llc Deterministic message distribution
CN105574667A (zh) * 2015-12-15 2016-05-11 中广核工程有限公司 核电设计数据集成方法及***
US10798147B2 (en) * 2016-06-30 2020-10-06 Microsoft Technology Licensing, Llc Constraint based controlled seeding
US11003693B2 (en) * 2018-04-05 2021-05-11 Sap Se Grouping tables with existing tables in a distributed database
US11010363B2 (en) 2018-04-05 2021-05-18 Sap Se Complementing existing tables while grouping tables in a distributed database
US11544294B2 (en) 2020-12-10 2023-01-03 Sap Se Distributing tables in a distributed database using consolidated grouping sources

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002064562A (ja) * 2000-06-07 2002-02-28 Nippon Telegr & Teleph Corp <Ntt> 通信コネクション確立方法
JP2005092784A (ja) * 2003-09-19 2005-04-07 Nippon Telegraph & Telephone West Corp 検索方式の動的切替方法、検索方式を動的に切り替える装置、及び検索方式を動的に切り替える切替プログラム
JP2005110040A (ja) * 2003-09-30 2005-04-21 Furuno Electric Co Ltd 通信端末装置
JP2005223722A (ja) * 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd 携帯端末及び車載端末
WO2005099222A1 (en) * 2004-04-05 2005-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Method, communication device and system for address resolution mapping in a wireless multihop ad hoc network.

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5692180A (en) 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
US5831975A (en) 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
AT1751U1 (de) 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US6353929B1 (en) 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US6061743A (en) * 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6381627B1 (en) * 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
US6411966B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic
US6701415B1 (en) * 1999-03-31 2004-03-02 America Online, Inc. Selecting a cache for a request for information
US6546415B1 (en) 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
US6505244B1 (en) * 1999-06-29 2003-01-07 Cisco Technology Inc. Policy engine which supports application specific plug-ins for enforcing policies in a feedback-based, adaptive data network
US7065784B2 (en) 1999-07-26 2006-06-20 Microsoft Corporation Systems and methods for integrating access control with a namespace
US7463648B1 (en) * 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
JP3391316B2 (ja) * 1999-10-22 2003-03-31 日本電気株式会社 ネットワークシステム
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
US6807423B1 (en) * 1999-12-14 2004-10-19 Nortel Networks Limited Communication and presence spanning multiple access networks
WO2001067679A1 (fr) * 2000-03-10 2001-09-13 Shenzhen Liming Network Systems Co., Ltd. Plate-forme de commutateur d'informations
US7379994B2 (en) * 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US6965575B2 (en) 2000-12-29 2005-11-15 Tropos Networks Selection of routing paths based upon path quality of a wireless mesh network
WO2002056182A2 (en) 2001-01-12 2002-07-18 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
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
US20020184368A1 (en) * 2001-04-06 2002-12-05 Yunsen Wang Network system, method and protocols for hierarchical service and content distribution via directory enabled network
US7209973B2 (en) 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
US20030018701A1 (en) 2001-05-04 2003-01-23 Gregory Kaestle Peer to peer collaboration for supply chain execution and management
US7016085B2 (en) * 2001-08-31 2006-03-21 Hewlett-Packard Development Company, L.P. Remote proofing service adaptively isolated from the internet
DE10143754A1 (de) 2001-09-06 2003-04-03 Siemens Ag Skalierbares Peer-to-Peer-Netzwerk mit einem Verzeichnisdienst
US8001189B2 (en) * 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
TWI261468B (en) * 2001-11-02 2006-09-01 Benq Corp Rake reception device and method
US20030088620A1 (en) 2001-11-05 2003-05-08 Microsoft Corporation Scaleable message dissemination system and method
US20030126304A1 (en) 2001-12-31 2003-07-03 Wyatt David A. Method for attaching a resource to a parent within a global resource namespace
EP1456796A4 (en) 2002-01-08 2007-11-07 Tivo Inc SYSTEM FOR DISTRIBUTING AND EXCHANGING ELECTRONIC CONTENT
US7085848B2 (en) * 2002-03-15 2006-08-01 Microsoft Corporation Time-window-constrained multicast using connection scheduling
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7058639B1 (en) * 2002-04-08 2006-06-06 Oracle International Corporation Use of dynamic multi-level hash table for managing hierarchically structured information
JP2003316636A (ja) 2002-04-23 2003-11-07 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7310314B1 (en) * 2002-06-10 2007-12-18 Juniper Networks, Inc. Managing periodic communications
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7200113B2 (en) 2002-06-17 2007-04-03 Siemens Communications, Inc. Apparatus and method for isochronous network delay compensation
GB2390954B (en) * 2002-07-13 2005-12-21 Motorola Inc A method and apparatus for transmission scheme selection
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP2004110624A (ja) 2002-09-20 2004-04-08 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7206934B2 (en) * 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
JP3836858B2 (ja) * 2002-09-27 2006-10-25 富士通株式会社 データ配信方法、システム、伝送方法及びプログラム
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
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
US20040098455A1 (en) * 2002-11-14 2004-05-20 Motorola, Inc. Method and apparatus for controlling communications between subscriber units
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
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7533141B2 (en) * 2003-01-24 2009-05-12 Sun Microsystems, Inc. System and method for unique naming of resources in networked environments
US7774495B2 (en) * 2003-02-13 2010-08-10 Oracle America, Inc, Infrastructure for accessing a peer-to-peer network environment
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
JP4517578B2 (ja) * 2003-03-11 2010-08-04 株式会社日立製作所 ピアツーピア通信装置および通信方法
US7200675B2 (en) * 2003-03-13 2007-04-03 Microsoft Corporation Summary-based routing for content-based event distribution networks
US7693952B2 (en) * 2003-03-27 2010-04-06 Microsoft Corporation Availability and scalability in a messaging system in a manner transparent to the application
US20040249953A1 (en) * 2003-05-14 2004-12-09 Microsoft Corporation Peer-to-peer instant messaging
WO2004112302A2 (en) 2003-06-12 2004-12-23 Camiant, Inc. Dynamic service delivery with topology discovery for communication networks
US7602725B2 (en) 2003-07-11 2009-10-13 Computer Associates Think, Inc. System and method for aggregating real-time and historical data
US7415711B2 (en) * 2003-08-01 2008-08-19 Microsoft Corporation System and method for a transport independent gaming API for mobile devices
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7392422B2 (en) * 2003-10-20 2008-06-24 Sony Computer Entertainment America Inc., Violations in a peer-to-peer relay network
JP2005142959A (ja) * 2003-11-07 2005-06-02 Toshiba Solutions Corp アドホック通信システムおよびその通信装置、ならびに送信先決定方法
JP2005148956A (ja) * 2003-11-12 2005-06-09 Denso It Laboratory Inc 情報配布方法及び情報配布処理用プログラム
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
JP2005252755A (ja) * 2004-03-05 2005-09-15 Mitsubishi Electric Corp 情報配信システム及び情報配信装置及び通信装置及び情報配信方法及び通信方法及びプログラム
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US20070133520A1 (en) 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US8250230B2 (en) 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable peer groups
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8549180B2 (en) * 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US20060167841A1 (en) 2004-11-18 2006-07-27 International Business Machines Corporation Method and system for a unique naming scheme for content management systems
JP2006155488A (ja) * 2004-12-01 2006-06-15 Sony Corp データ処理装置およびデータ処理方法
US20080069082A1 (en) * 2006-09-19 2008-03-20 Bea Systems, Inc. Service router for use with a service-oriented architecture environment
TWI390869B (zh) * 2008-04-24 2013-03-21 Univ Nat Taiwan 網路資源分配系統及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002064562A (ja) * 2000-06-07 2002-02-28 Nippon Telegr & Teleph Corp <Ntt> 通信コネクション確立方法
JP2005092784A (ja) * 2003-09-19 2005-04-07 Nippon Telegraph & Telephone West Corp 検索方式の動的切替方法、検索方式を動的に切り替える装置、及び検索方式を動的に切り替える切替プログラム
JP2005110040A (ja) * 2003-09-30 2005-04-21 Furuno Electric Co Ltd 通信端末装置
JP2005223722A (ja) * 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd 携帯端末及び車載端末
WO2005099222A1 (en) * 2004-04-05 2005-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Method, communication device and system for address resolution mapping in a wireless multihop ad hoc network.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514591A (ja) * 2009-12-17 2013-04-25 アルカテル−ルーセント ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
JP2018528641A (ja) * 2015-06-29 2018-09-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) マシンツーマシン通信システムにおける通信ポリシ制御
US10455391B2 (en) 2015-06-29 2019-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Communication policy control in a machine-to-machine communication system

Also Published As

Publication number Publication date
WO2007081523A3 (en) 2007-09-07
US20060117025A1 (en) 2006-06-01
CN101352002B (zh) 2011-05-18
JP5715223B2 (ja) 2015-05-07
KR20080089382A (ko) 2008-10-06
BRPI0619106A2 (pt) 2011-09-13
AU2006335155A1 (en) 2007-07-19
IL191877A (en) 2012-02-29
EP1974500A2 (en) 2008-10-01
NO20082600L (no) 2008-07-09
US8250230B2 (en) 2012-08-21
AU2006335155B2 (en) 2010-12-23
US7640299B2 (en) 2009-12-29
RU2008127075A (ru) 2010-01-10
JP2012146312A (ja) 2012-08-02
RU2420898C2 (ru) 2011-06-10
CA2629230A1 (en) 2007-07-19
IL191877A0 (en) 2009-08-03
US20060117026A1 (en) 2006-06-01
JP2014078250A (ja) 2014-05-01
JP5327852B2 (ja) 2013-10-30
WO2007081523A2 (en) 2007-07-19
CN101352002A (zh) 2009-01-21
JP5536120B2 (ja) 2014-07-02
TW200733679A (en) 2007-09-01

Similar Documents

Publication Publication Date Title
JP5715223B2 (ja) スケーラブルなピア・グループを使用して通信を最適化すること
US7496602B2 (en) Optimizing communication using scalable peer groups
US7782866B1 (en) Virtual peer in a peer-to-peer network
US8554827B2 (en) Virtual peer for a content sharing system
US8849917B2 (en) Use of information channels to provide communications in a virtual environment
US7797375B2 (en) System and method for responding to resource requests in distributed computer networks
JP3851275B2 (ja) 分散コンピュータ・ネットワークのスケーラブルなリソース・ディスカバリおよび再構成
Musolesi et al. Emma: Epidemic messaging middleware for ad hoc networks
CN102308549A (zh) 了解网络的对等
Nordström et al. Haggle: Opportunistic mobile content sharing using search
KR20120038187A (ko) 컨텐츠 중심 네트워킹 환경에서 그룹 변경에 관한 정보를 이용한 컨텐츠 공유 방법 및 장치
US20160021043A1 (en) Communicating messages between publishers and subscribers in a mesh routing network
US9037655B2 (en) Maintaining instant messaging conversations when a recipient is not at their primary workstation
JP2010505196A (ja) 効率的に拡張可能なコンピューティングのための複数のピアグループ
MX2013010499A (es) Duplicacion de datos.
Pitkänen et al. Enabling opportunistic storage for mobile DTNs
US20100057748A1 (en) Method and Apparatus for Parameterized Promotion and Delivery of Data
WO2017198088A1 (zh) 资源订阅方法、资源订阅装置和资源订阅***
WO2019096970A1 (en) Selecting from a plurality of items which match an interest
US7720083B2 (en) Intelligent routing in a hybrid peer-to-peer system
KR20220075985A (ko) 출판자의 이동성을 지원하는 ndn 기반의 통신 시스템 및 방법
IL297835A (en) A home network for sending content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111207

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130529

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: 20130621

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130718

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees