(57)【要約】【課題】ネットワーク環境における複数のピア・ノードの間で通信を行う方法を提供すること。【解決手段】発見コマンドが、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに伝達され、この隣接ピア・ノードは、現在のピア・ノードと通信する。ピア・ノードの集合リストが、現在のピア・ノードで受信され、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信している少なくとも１つのピア・ノードについての情報を含む。
2005514867.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク環境における複数のピア・ノードの間で通信を行う方法であって、
現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達するステップであって、前記隣接ピア・ノードが、前記現在のピア・ノードと通信するステップと、
前記現在のピア・ノードで、ピア・ノードの集合リストを受信するステップであって、ピア・ノードの前記集合リストが、前記少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含むステップとを含む前記方法。
【請求項２】
前記発見コマンドを、所定の数の隣接ピア・ノードに伝達するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記現在のピア・ノードで、ピア・テーブルを作成するステップと、
ピア・ノードの前記集合リストを用いて、前記ピア・テーブルを更新するステップとをさらに含む、請求項１に記載の方法。
【請求項４】
前記現在のピア・ノードで、起点ピア・ノードから第２の発見コマンドを受信するステップと、
前記第２の発見コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに前記ピア・テーブルを伝達するステップとをさらに含む、請求項１に記載の方法。
【請求項５】
前記現在のピア・ノードで、一義的な記述子を有するデータ・メッセージを受信するステップと、
前記受信したデータ・メッセージの前記記述子を、記述子テーブルと比較するステップであって、前記記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含むステップとをさらに含む、請求項１に記載の方法。
【請求項６】
前記受信したデータ・メッセージ、および前記受信したデータ・メッセージの前記記述子を用いて、前記記述子テーブルを更新するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを転送するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記現在のピア・ノードで、少なくとも１つの他のピア・ノードから、応答データを直接受信するステップであって、前記少なくとも１つの他のピア・ノードが、前記少なくとも１つの隣接ノードと通信するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記現在のピア・ノードで、起点ピア・ノードから照会コマンドを受信するステップと、
前記照会コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに応答データを直接伝達するステップとをさらに含む、請求項１に記載の方法。
【請求項１０】
前記現在のピア・ノードから、所定の数の隣接ピア・ノードに前記照会コマンドを転送するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
データ処理ホスト上で実行されると、前記ホストに、請求項１ないし１０のいずれか一項に記載の方法を実行させる命令を備える、コンピュータ・プログラム製品。
【請求項１２】
ネットワーク環境における複数のピア・ノードの間で通信を行うシステムであって、
現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達する手段であって、前記隣接ピア・ノードが、前記現在のピア・ノードと通信する手段と、
前記現在のピア・ノードで、ピア・ノードの集合リストを受信する手段であって、ピア・ノードの前記集合リストが、前記少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む手段とを備える前記システム。
【請求項１３】
所定の数の隣接ピア・ノードに前記発見コマンドを伝達する手段と、
前記所定の数の隣接ピア・ノードを決定する手段とをさらに備える、請求項１２に記載のシステム。
【請求項１４】
前記現在のピア・ノードで、ピア・テーブルを作成する手段と、
ピア・ノードの前記集合リストを用いて、前記ピア・テーブルを更新する手段とをさらに備える、請求項１２に記載のシステム。
【請求項１５】
前記現在のピア・ノードで、起点ピア・ノードから、第２の発見コマンドを受信する手段と、
前記第２の発見コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに前記ピア・テーブルを直接伝達する手段とをさらに備える、請求項１２に記載のシステム。
【請求項１６】
前記現在のピア・ノードで、一義的な記述子を有するデータ・メッセージを受信する手段と、
前記受信したデータ・メッセージの前記記述子を、記述子テーブルと比較する手段であって、前記記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む手段とをさらに備える、請求項１２に記載のシステム。
【請求項１７】
前記受信したデータ・メッセージ、および前記受信したデータ・メッセージの前記記述子を用いて、前記記述子テーブルを更新する手段をさらに備える、請求項１６に記載のシステム。
【請求項１８】
前記現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを伝達する手段をさらに備える、請求項１２に記載のシステム。
【請求項１９】
前記現在のピア・ノードで、少なくとも１つの他のピア・ノードから直接、応答データを受信する手段であって、前記少なくとも１つの他のピア・ノードが、前記少なくとも１つの隣接ノードと通信する手段をさらに備える、請求項１２に記載のシステム。
【請求項２０】
前記現在のピア・ノードで、起点ピア・ノードから照会コマンドを受信する手段と、
前記照会コマンドに応答して、前記現在のピア・ノードから、前記起点ピア・ノードに直接、応答データを伝達する手段とをさらに備える、請求項１２に記載のシステム。
【請求項２１】
前記現在のピア・ノードから、所定の数の隣接ピア・ノードに前記照会コマンドを転送する手段をさらに備える、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク環境内の２つ以上の「ピア」ターゲット装置の間で通信を行う方法に関する。より詳細には、本発明は、ネットワーク環境内にある、ファイルや探索コマンドなどの情報を伝達し分散する方法に関する。
【背景技術】
【０００２】
ネットワーク環境内の１つまたは複数のターゲット装置に、ファイルや探索コマンドなどの情報を分散する現在の手法においては、複数のターゲット装置に情報を伝達するのに、１つまたは複数のセントラル・サーバを用いることができる。
【０００３】
このような集中型システムは、いくつかの問題点を提示している。たとえば、セントラル・サーバに対する悪影響は、サーバと通信するすべてのターゲット装置に影響を及ぼす。
【０００４】
情報を分散する他の手法では、「ピアツーピア」な分散手段、すなわち、２つ以上のターゲット装置が互いに直接通信することができるシステムが用いられる。しかし、「ピアツーピア」な分散型の探索およびファイル共有の現在のプロトコルは、ある問題点を提示している。
【０００５】
たとえば、ナップスターの「ピアツーピア」プロトコルを用いると、共有されるファイルは、サーバを通過することなく、各ターゲット装置上にとどまる。しかし、ナップスターは、それでも、特定のファイルを探索しクライアント間の直接転送を開始する能力を提供するためにサーバを使う。したがって、ナップスターのプロトコルは、上述したサーバに関する問題点のいくつかに直面する場合がある。さらに、ナップスターのプロトコルは、ネットワークの輻輳、およびターゲット装置がネットワークを出入りする度に絶えず変化する探索結果のような、ピアツーピア・プロトコルに関する問題に直面する場合がある。ナップスターのプロトコルは、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
【０００６】
これに対して、グヌーテラのプロトコルでは、共有されるファイルは、各ターゲット装置上にとどまる。さらに、特定のファイルを探索する能力も、各ターゲット装置上で利用可能である。したがって、各ターゲット装置は、クライアントおよびサーバ両方として働くことができる。しかし、グヌーテラのプロトコルを使用する発信側ターゲット装置から探索が行われると、この発信側ターゲット装置で受信される探索結果は、発信側ターゲット装置に応答する他のターゲット装置がネットワークを出入りする度に、一秒ごとに変わり得る。さらに、あるターゲット装置が発信側ターゲット装置への応答を有している場合、その結果は、元の要求を転送した介在ターゲット装置を介して、発信側ターゲット装置に中継される。探索がグヌーテラ・ネットワーク全体に及ぶと、発信側ターゲット装置から、所望のファイルを有する別のターゲット装置への経路は、より長く、より複雑になり得る。したがって、探索結果は遅れる場合があり、発信側ターゲット装置に到着する前に古いものになってしまう場合もある。発信装置から離れているターゲット装置からの探索結果の転送は、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、より効率的であるとともに、ネットワークおよびプロセッサのオーバーヘッドを削減し処理能力を向上させる、複数のターゲット装置の間の情報伝達方法を提供することが望ましいであろう。
【課題を解決するための手段】
【０００８】
本発明の一態様は、ネットワーク環境における複数のピア・ノードの間で通信を行う方法を提供する。発見コマンドが、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに伝達され、この隣接ピア・ノードは、現在のピア・ノードと通信する。ピア・ノードの集合リストが、現在のピア・ノードで受信され、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【０００９】
発見コマンドは、所定の遅延が経過した後で、現在のピア・ノードから伝達することができる。発見コマンドは、所定の数の隣接ピア・ノードに伝達することができる。ピア・テーブルは、現在のピア・ノードにおいて作成し、ピア・ノードの集合リストを用いて更新することができる。起点ピア・ノードからの第２の発見コマンドは、現在のピア・ノードで受信することができ、ピア・テーブルは、第２の発見コマンドに応答して、起点ピア・ノードに伝達することができる。一義的な記述子を有するデータ・メッセージを、現在のピア・ノードで受信することができ、このデータ・メッセージは、一義的な記述子を有する。記述子は、記述子テーブルと比較することができ、この記述子テーブルは、複数のデータ・メッセージおよび関連づけられた記述子を含む。記述子テーブルは、受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて更新することができる。照会コマンドを、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。応答データは、少なくとも１つの他のピア・ノードから、現在のピア・ノードで直接受信することができ、この少なくとも１つの他のピア・ノードは、少なくとも１つの隣接ノードと通信する。起点ピア・ノードからの照会コマンドは、現在のピア・ノードで受信することができ、応答データは、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接伝達することができる。照会コマンドは、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。
【００１０】
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うためのコンピュータ・プログラム製品を、コンピュータ使用可能媒体で提供する。このプログラムは、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは、現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【００１１】
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うシステムを提供する。このシステムは、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【００１２】
本発明の一実施形態において、本発明のプログラムおよびシステムは、所定の遅延が経過した後で、現在のピア・ノードから発見コマンドを伝達する手段をさらに含むことができる。所定の数の隣接ピア・ノードに発見コマンドを伝達する手段は、本発明によって提供することができ、現在のピア・ノードにおいてピア・テーブルを作成する手段、およびピア・ノードの集合リストを用いてピア・テーブルを更新する手段も同様に提供することができる。さらに、本発明のプログラムおよびシステムはまた、現在のピア・ノードにおいて、起点ピア・ノードから第２の発見コマンドを受信する手段と、第２の発見コマンドに応答して、現在のピア・ノードから起点ピア・ノードにピア・テーブルを直接伝達し、現在のピア・ノードでデータ・メッセージを受信する手段であって、このデータ・メッセージが一義的な記述子を有する手段と、受信したデータ・メッセージの記述子を記述子テーブルと比較する手段であって、この記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む手段とを備えることができる。受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて記述子テーブルを更新する手段は、本発明によって提供することができる。本発明のプログラムおよびシステムは、現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを伝達する手段を含むことができる。さらに、本プログラムおよびシステムは、現在のピア・ノードにおいて、少なくとも１つの他のピア・ノードから直接、応答データを受信する手段であって、この少なくとも１つの他のピア・ノードが、少なくとも１つの隣接ノードと通信する手段、ならびに、現在のピア・ノードにおいて、起点ピア・ノードからの照会コマンドを受信する手段と、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接、応答データを伝達する手段とを備えることができる。現在のピア・ノードから所定の数の隣接ピア・ノードに照会コマンドを転送する手段も、本発明のプログラムおよびシステムによって提供することができる。
【００１３】
以下において、本発明を、添付の図面に示す本発明の好ましい実施形態を参照して、例示の目的でのみ説明する。
【発明を実施するための最良の形態】
【００１４】
図１において、本発明の実施形態によるデータ処理システムのネットワークの概略表示を１００に示す。ネットワーク・データ処理システム１００は、本発明の実施形態を実装することができる、コンピュータからなるネットワークでよい。ネットワーク・データ処理システム１００は、ネットワークを含むことができる。ネットワーク１０２は、ネットワーク・データ処理システム１００において互いに接続されまたは通信するコンピュータなど様々な装置の間の通信リンクを提供するのに用いられる、適切などのような媒体でもよい。たとえば、ネットワーク１０２は、有線接続、無線通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。
【００１５】
図１に示す実施形態において、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、ネットワーク１０２と通信することができる。こうしたターゲット装置は、たとえば、パーソナル・コンピュータでもネットワーク・コンピュータでもよい。ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数は、さらに後で説明するように、ピア・ターゲット装置として働くことができる。ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、さらに後で説明するように、１つまたは複数のピア・ターゲット装置に対するピア・ノードとしても働くことができる。ネットワーク・データ処理システム１００は、図示していない追加のサーバ、クライアント、ターゲット装置、および他の装置を含むことができる。
【００１６】
１つまたは複数の記憶装置、たとえば記憶装置１０３、１０５も、ネットワーク１０２と通信することができる。記憶装置１０３、１０５は、ブート・ファイル、オペレーティング・システムの画像、アプリケーション・ファイル、およびアプリケーションなどのデータを格納することができ、こうしたデータは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８によって処理し、または伝えることができる。記憶装置１０３、１０５は、ネットワーク１０２に対して利用可能とされ、もしくはそれによって処理されるデータ、または後で説明するように、ネットワーク１０２と通信する他の構成要素に対して利用可能とされるデータ、あるいはその両方であるデータを格納することもできる。本発明のいくつかの実施形態では、記憶装置１０３、１０５は、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８に対するピアとしても働くことができ、さらに後で詳述するように、記述子、メッセージまたは応答データあるいはそのすべてを提供する。
【００１７】
図１に示すように、ネットワーク・データ処理システム１００は、データを処理する、適切などのようなシステムでもよい。たとえば、システム１００はインターネットでよい。あるいは、ネットワーク・データ処理システム１００は、たとえば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）など、適切などのようなタイプのネットワークでもよい。本発明の一実施形態において、ネットワーク１０２は、ＴＣＰ／ＩＰプロトコル・スイートなどを使用して互いに通信するネットワークおよびゲートウェイの世界規模の集合体を表す。主ノードすなわちホスト・コンピュータの間の高速データ通信線の幹線により、データおよびメッセージを中継する、数千もの商用、行政、教育用、および他のコンピュータ・システムの間の通信が可能になる。
【００１８】
本発明の一実施形態において、ネットワーク・データ処理システムは、ピアツーピアの非集中型システムである。このようなシステム１００では、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８はそれぞれ、サーバとして働くことができ、クライアントとしても働くことができる。したがって、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、クライアントに通常関連づけられたタスクを実施し、サーバに通常関連づけられたタスクも実施することができる。本発明のいくつかの実施形態では、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、クライアント側インターフェースを提供することができ、このインターフェースを介して、ユーザは、クライアント関連タスク、たとえば照会の発行および探索結果の閲覧を実施することができる。同時に、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８はそれぞれ、サーバ関連タスク、たとえば他のターゲット装置からの照会の受諾、要求されたデータの、それ自体のデータ・セットとの一致の検査、および他のターゲット装置への、照会結果を伴う応答も提供することができる。分散型システム１００は、故障に対する耐性が高い。というのは、システム１００の動作は、ターゲット装置の部分集合またはノードがオフラインになった場合に中断されないからである。たとえば、区域１１７は、システム１００のターゲット装置の１つの部分集合（ターゲット装置１１２、１１４、１１６、１１８、１２８、１３６、１３８を含む）を強調表示している。これに対して、区域１２７は、システム１００のターゲット装置の第２の部分集合（ターゲット装置１２２、１２４、１２６を含む）を示す。分散型システム１００において、区域１１７の部分集合がオフラインになった場合、システム１００の動作、ネットワーク１０２の動作、または区域１２７すなわちターゲット装置１２２、１２４、１２６の動作を必ずしも中断することにはならない。反対に、区域１２７の部分集合がオフラインになった場合、システム１００の動作、ネットワーク１０２の動作、または区域１１７すなわちターゲット装置１１２、１１４、１１６、１１８、１２８、１３６、１３８の動作を必ずしも中断することにはならない。
【００１９】
図２および３は、本発明の実施形態に従って用いることができるデータ処理システムのブロック図である。本発明の一実施形態において、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図２および３で説明する構成要素の１つまたは複数のどの組合せも組み込むデータ処理システムでよい。
【００２０】
図２のブロック図において、本発明の実施形態によるデータ処理システムを２００に示す。本発明の一実施形態において、データ処理システム２００は、図１に示すターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数として実装することができる。あるいは、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図２で説明する構成要素の１つまたは複数を組み込むことができる。
【００２１】
データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を含む、対称型マルチプロセッサ（ＳＭＰ）システムでよい。あるいは、単一プロセッサ・システムを使用してもよい。メモリ・コントローラ／キャッシュ２０８も、システム・バス２０６に接続することができる。メモリ・コントローラ／キャッシュ２０８は、ローカル・メモリ２０９へのインターフェースを提供する。Ｉ／Ｏバス・ブリッジ２１０も、システム・バス２０６に接続することができ、Ｉ／Ｏバス２１２へのインターフェースを提供することができる。メモリ・コントローラ／キャッシュ２０８およびＩ／Ｏバス・ブリッジ２１０は、図に示すように統合することもでき、別個の構成要素でもよい。
【００２２】
Ｉ／Ｏバス２１２に接続された、ＰＣＩ（周辺装置相互接続）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６へのインターフェースを提供することができる。１つまたは複数のモデムをＰＣＩバス２１６に接続することができる。一般的なＰＣＩバスの実装は、４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。モデム２１８およびネットワーク２２０は、ＰＣＩローカル・バス２１６に接続することができる。この接続は、アドイン・ボードを介することができる。本発明の一実施形態において、モデム２１８およびそれに伴う接続は、ネットワーク・コンピュータなどのターゲット装置への通信リンクを提供する。たとえば、このようなターゲット装置は、図１で上述したものでよい。
【００２３】
追加のＰＣＩバス・ブリッジ２２２および２２４は、追加のＰＣＩバス２２６および２２８のためのインターフェースを提供することができる。ＰＣＩバス２２６および２２８から、追加のモデムまたはネットワーク・アダプタをサポートすることができる。たとえば、本発明の一実施形態において、ＰＣＩバス２２６、２２８は、遠隔ローディング特徴、たとえばＲＰＬ特徴がインストールされたネットワーク・アダプタをサポートすることができる。このようにして、データ処理システム２００は、複数のネットワーク・コンピュータへの接続を可能にすることができる。メモリ・マップ式のグラフィクス・アダプタ２３０およびハード・ディスク２３２も、図に示すように、直接または間接的にＩ／Ｏバス２１２に接続することができる。
【００２４】
図２に示す構成要素は、図示したように配列することも、データ処理システム２００が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。さらに、図示した構成要素に加えて、またはその代わりに、他の周辺装置、たとえば光ディスク・ドライブなどを使用してもよい。
【００２５】
本発明の一実施形態において、データ処理システム２００は、システム２００が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば１つまたは複数のターゲット装置の間でデータを伝達するのに使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージの交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００２６】
図３のブロック図において、本発明の実施形態によるデータ処理システムを３００に示す。本発明の一実施形態において、データ処理システム３００は、図１に示すターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数として実装することができる。あるいは、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図３で説明する構成要素の１つまたは複数を組み込むことができる。
【００２７】
本発明の一実施形態において、データ処理システム３００はターゲット装置であり、この装置では、ディスク・ドライブが任意選択的である。あるいは、データ処理システム３００は、ネットワーク通信インターフェースに依拠せずにブート可能なように構成された、独立型のシステムでもよい。あるいは、データ処理システム３００は、１つまたは複数のネットワーク通信インターフェースを備えることもできる。データ処理システム３００は、携帯情報端末（ＰＤＡ）装置でもよい。データ処理システムは、ノート型コンピュータまたはハンドヘルド・コンピュータの形をとることもできる。あるいは、データ処理システム３００は、キオスクでも、ウェブ機器でもよい。本発明の実施形態の処理は、マルチプロセッサ・データ処理システムにも適用することができる。
【００２８】
データ処理システム３００は、ＰＣＩ（周辺装置相互接続）ローカル・バス・アーキテクチャを利用することができる。図示した例ではＰＣＩバスを利用しているが、ＡＧＰ（アクセラレイテッド・グラフィックス・ポート）およびＩＳＡ（業界標準アーキテクチャ）など、他のバス・アーキテクチャを使用することもできる。プロセッサ３０２およびメイン・メモリ３０４は、ＰＣＩブリッジ３０８を介してＰＣＩローカル・バス３０６に接続することができる。ＰＣＩブリッジ３０８はまた、プロセッサ３０２用の統合メモリ・コントローラおよびキャッシュ・メモリを含むこともできる。ＰＣＩローカル・バス３０６への追加接続は、直接的な構成要素相互接続を介して、またはアドイン・ボードを介して行うことができる。本発明の一実施形態では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、および拡張バス・インターフェース３１４が、直接的な構成要素接続によってＰＣＩローカル・バス３０６に接続される。対照的に、音声アダプタ３１６、グラフィックス・アダプタ３１８、および音声／映像アダプタ３１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス３０６に接続される。拡張バス・インターフェース３１４は、たとえばキーボードおよびマウス・アダプタ３２０、モデム３２２、ならびに追加メモリ３２４など追加構成要素用の接続を提供することができる。ＳＣＳＩ（小型コンピュータ・システム・インタフェース）ホスト・バス・アダプタ３１２は、たとえばハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、およびＣＤ−ＲＯＭドライブ３３０、またはＤＶＤ３３２など追加構成要素用の接続を提供することができる。ＰＣＩローカル・バス３０６は、適切などのようなローカル・バス実装形態でもよい。一般的なＰＣＩローカル・バスの実装は、３つまたは４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。
【００２９】
ファイル、ならびにオペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションまたはプログラム用のオペレーティング・ファイルなどのファイルに対する命令は、たとえば、ハード・ディスク・ドライブ３２６などの記憶装置に置くことができる。こうしたオペレーティング・システム、アプリケーションまたはプログラムあるいはそのすべては、プロセッサ３０２による実行のためにメイン・メモリ３０４にロードすることができる。
【００３０】
図３に示すシステム３００の構成要素は、図示したように配列することも、データ処理システム３００が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。図示した構成要素に加えて、またはその代わりに、他の内部ハードウェアまたは周辺装置、たとえばフラッシュＲＯＭ（または等価な不揮発性メモリ）あるいは光ディスク・ドライブなどを使用してもよい。たとえば、データ処理システム３００の一実施形態は、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性メモリを提供するために、ＲＯＭまたはフラッシュＲＯＭあるいはその両方を有して構成することができる。データ処理システム３００の別の実施形態は、遠隔ローディング・プログラムまたはＲＰＬ特徴などの特徴あるいはその両方の関数を送信しまたは受信するのに適したネットワーク・アダプタを含むことができる。
【００３１】
本発明の一実施形態において、データ処理システム３００は、システム３００が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば１つまたは複数のターゲット装置の間でデータの伝達に使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージの交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００３２】
図４において、本発明による複数のターゲット装置の間で通信を行う方法の一実施形態を４００に示す。図４に示す方法は、ネットワークを介した分散探索およびファイル共有を可能にする、適切などのようなピアツーピア・プロトコルを用いて実装することもできる。
【００３３】
適切などのような移送機構も、たとえばHTTP over TCPを用いて、ターゲット装置またはノードの間の通信を達成するのに使うことができる。あるいは、バイト・レベルの移送を使うこともできる。あるいは、ＵＤＰを使うこともできる。あるいは、ＨＴＴＰ／ＳＯＡＰ（シンプル・オブジェクト・アクセス・プロトコル）を使うこともできる。ＳＯＡＰは、ＣＯＭ、アップル・イベントおよびＣＯＲＢＡなど、有名な接続技術用の単純なXML-over-HTTPラッパーである。ＳＯＡＰ用の移送機構はＨＴＴＰであり、ＳＯＡＰにおけるコールは、ＸＭＬを使って指定される。
【００３４】
本発明の一実施形態において、移送機構は、適切なピアツーピア・プロトコルに従ってターゲット装置の間の通信を達成する。このピアツーピア・プロトコルは、たとえば、１つまたは複数のターゲット装置の間のデータの伝送に使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージ交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００３５】
たとえば、本発明の一実施形態において、１つまたは複数のデータ・メッセージを、１つまたは複数のターゲット装置の間で送ることができる。こうしたデータ・メッセージは、あるターゲット装置から別のターゲット装置に伝達される、照会またはコマンドへの応答など、適切などのようなデータも含むことができる。こうしたデータ・メッセージは、たとえば、８バイト列、１６バイト列、３２バイト列、または適切などのようなサイズのデータ列の形の情報でもよい。データ・メッセージは、たとえば、発見（本明細書では「ping」で示す）データ・メッセージ、識別（本明細書では「pong」で示す）データ・メッセージ、照会データ・メッセージ、および照会応答データ・メッセージの形をとることができる。データ・メッセージは、たとえば、当該分野において公知であるタイムアウト遅延および存続時間カウンタなどの規則によって管理することができる。
【００３６】
本発明の実施形態によると、データ・メッセージは、記述子ＩＤを含むことができる。本発明の一実施形態において、記述子ＩＤは、ネットワーク１０２またはシステム１００あるいはその両方において分散されるある特定のデータ・メッセージを一義的に識別する１６バイト列でよい。たとえば、３２バイト列の大きさのデータ・メッセージは、ネットワークを介して送られる他のすべてのデータ・メッセージと一義的に区別するための、１６バイト列の大きさの記述子ＩＤを含むことができる。したがって、あるメッセージがある特定のターゲット装置に複数回届く場合、ターゲット装置は、メッセージの記述子ＩＤからそのメッセージを認識することができる。
【００３７】
上に示したように、データ・メッセージは、発見メッセージ（本明細書では「ping」メッセージとして示す）でよい。このpingメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって使われて、pingメッセージがネットワーク１０２またはシステム１００あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、１つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６および１１８に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト（ピア・テーブル）を識別が含むことを要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２にターゲット装置１１２のピア装置を識別するよう依頼し、ターゲット装置１１６にターゲット装置１１６のピア装置を識別するよう依頼し、ターゲット装置１１８にターゲット装置１１８のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。
【００３８】
本発明の一実施形態において、ピアツーピア・プロトコルは、pingタイムアウト遅延を含むこともでき、この遅延は、pingデータ・メッセージを管理するのに使われる一規則でよい。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知である適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。あるいは、pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。あるいは、所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。あるいは、適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置（ピア・ノード）のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
【００３９】
上述したように、データ・メッセージは、識別メッセージ（本明細書ではpongデータ・メッセージと示す）でもよい。このpongメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、pingメッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４に対してターゲット装置１１２を記述するpongメッセージを、ターゲット装置１１４に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置１１２は、ターゲット装置１１２のアドレスを与えるpongメッセージを、ターゲット装置１１４に送ることができる。ターゲット装置１１４もpingメッセージをターゲット装置１１８に送った場合、ターゲット装置１１４はやはり、ターゲット装置１１８のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１８から受信することができる。あるいは、pongデータ・メッセージは、応答側ターゲット装置が着信接続を受け入れるためのポート番号、応答側ターゲット装置のＩＰアドレス、応答側ターゲット装置がネットワーク上で共有しているファイルの数、応答側ターゲット装置がネットワーク上で共有しているデータのキロバイト数の１つまたは複数を含むことができる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することができる。たとえば、ターゲット装置１１２は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。これに対して、ターゲット装置１１８も、ターゲット装置１１８が３つのピア・ターゲット装置１１４、１２８、１３８を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１８からのpongメッセージも、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。
【００４０】
上述したように、データ・メッセージは、照会メッセージでもよい。この照会メッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、他のターゲット装置、およびネットワーク１０２またはシステム１００の他のどの構成要素に情報を要求するのにも使うことができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８に対してある特定のファイルをもっているか尋ねる照会データ・メッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。本発明の一実施形態において、照会メッセージは、そのピア・ターゲット装置の集合リスト（すなわちピア・テーブル）に対する要求を含むこともできる。他のタイプの照会も、当該分野において公知であるように、本発明の実施形態に従って同報通信することができる。
【００４１】
上述したように、データ・メッセージは、応答データ・メッセージでもよい。このpongメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、照会メッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４がシークしているファイルをターゲット装置１１２がもっているか示す応答メッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１４がターゲット装置１１８にもpingメッセージを送信していた場合、ターゲット装置１１４はまた、ターゲット装置１１４がシークしているファイルをターゲット装置１１８がもっているか示す応答データ・メッセージを、ターゲット装置１１８から受信することができる。
【００４２】
ピアツーピア・プロトコルにより、ターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のいずれかがデータ・メッセージを同報通信しまたは受信することが可能になる。したがって、たとえば、ターゲット装置１２８が、ターゲット装置１１８のピア・ターゲット装置の集合リストを要求するpingメッセージを、ターゲット装置１１８に送信することもできる。したがって、ターゲット装置１２８が、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供するpongメッセージを、ターゲット装置１１８から受信することもでき、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。これに対して、ターゲット装置１１６は、照会メッセージを同報通信し、他のターゲット装置１１２、１１４、１１８、１１２、１２４、１２６、１２８、１３６、１３８から応答データ・メッセージを受信することができる。
【００４３】
したがって、図４に示すルーチンは、ターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のいずれかにおいて行うことができ、本発明の一実施形態においては、複数の所与のターゲット装置で同時に起こることもできる。さらに、どの１つまたは複数のターゲット装置も、たとえば、図４のルーチンから得られるピア・テーブルなどのデータ・メッセージを受信することができる。したがって、以下の段落では、ネットワーク１０２およびターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８に対してターゲット装置１１４を起点ピア・ノードと指定するが、ターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のどの１つまたは複数も、ネットワーク１０２またはシステム１００あるいはその両方における他のどのターゲット装置に対しても起点ピア・ノードとなることができる。
【００４４】
ブロック４０２に示すように、ターゲット装置１１４は、ピア・テーブルを初期化することができる。本発明の一実施形態において、このピア・テーブルは、ピア・ターゲット装置と、各ピア・ターゲット装置の関連情報、たとえば各ピア・ターゲット装置のＩＰアドレス、および特定の各ピア・ターゲット装置が着信接続を受け入れるためのポートのＩＰアドレスとからなる一覧を含むことができる。これは、たとえば、ピア・ターゲット装置の識別および関連情報を格納するターゲット装置１１４上にデータベースを作成することによって、またはこのターゲット装置１１４と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置１１４上の適切な記憶位置において照合することも、ターゲット装置１１４に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
【００４５】
ブロック４０４に示すように、ターゲット装置１１４は、記述子ＩＤテーブルを初期化することもできる。本発明の一実施形態において、この記述子ＩＤテーブルは、一義的な各記述子ＩＤと、ターゲット装置１１４によって受信または送信され、あるいは送受信された、各記述子ＩＤに対応するデータ・メッセージとからなる一覧を含むことができる。これは、たとえば、記述子ＩＤおよび関連情報を格納するターゲット装置１１４上にデータベースを作成することによって、またはこのターゲット装置１１４と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置１１４上の適切な記憶位置において照合することも、ターゲット装置１１４に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
【００４６】
ブロック４０６に示すように、ターゲット装置１１４は、上述したように「ping」タイムアウト遅延の値を設定することもできる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知の適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置（ピア・ノード）のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
【００４７】
ブロック４０８に示すように、ターゲット装置１１４は次いで、交信先、すなわち接続先の隣接ノード（ピア・ターゲット装置）の数の値ｎを設定することができる。所与のターゲット装置に対する、交信される隣接ノードの数は、当該分野において公知の１つまたは複数の適切な方法を用いて決定することができる。たとえば、所与のターゲット装置から交信されるピア・ノードの数は、そのターゲット装置に対する適切なパラメータ、たとえば、ユーザが決定したパラメータ、ターゲット装置のハードウェア・パラメータ、ターゲット装置のソフトウェア・パラメータなどに基づくことができる。たとえば、所与のターゲット装置１１４のユーザが、ターゲット装置１１４が少なくとも３つの他の隣接ノードに交信すべきであると指示することができる。あるいは、ターゲット装置１１４の処理制限が、ターゲット装置１１４は４つのピア・ターゲット装置にのみ交信すべきであると命じることもできる。あるいは、ターゲット装置１１４を、所与の数の隣接ノードと通信するように事前設定することもできる。あるいは、所与のターゲット装置によって使われる移送機構が、交信される隣接ノードの数を決定することもできる。あるいは、ネットワーク１０２またはシステム１００内の隣接ノードの数に基づくアルゴリズム、またはユーザが入力する値に基づくアルゴリズムなど、適切なアルゴリズムが、交信される隣接ノードの数を管理することもできる。
【００４８】
ブロック４１０に示すように、ターゲット装置１１４は次いで、メッセージが期限切れになるまでに、あるターゲット装置から別のターゲット装置にデータ・メッセージを転送することができる回数に対する存続時間の値ｔを設定することができる。たとえば、ターゲット装置１１４は、データ・メッセージが、ｔ個のターゲット装置によって受信された後で期限切れになるようにメッセージを設定することができる。存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
【００４９】
存続時間の値を有するデータ・メッセージを受信する各ターゲット装置は、データ・メッセージに関連づけられたホップ・カウンタを増分することができる。このホップ・カウンタは、メッセージの受信の際、当該分野において公知である適切などのような手段を用いても、ターゲット装置によって増分することができる。たとえば、適切なアルゴリズムを用いて、ホップ・カウンタを増分することができる。存続時間の値と同様、ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができ、存続時間の値ｔと比較して、メッセージを期限切れとすべきか（すなわち、メッセージが受信された回数、すなわちホップのカウントが、存続時間の値を超えたか）判定することができる。
【００５０】
ブロック４２０、４３０および４４０に示すように、起点ピア・ノード１１４は、pingスレッド、サーバ・スレッド、および照会スレッドの１つまたは複数を実施することもできる。こうしたスレッドは、ターゲット装置１１４によって同時に、または適切などのような順序でも実施することができる。こうしたスレッドは、ターゲット装置１１４がオンラインである間、あるいはネットワーク１０２もしくはシステム１００またはその両方と通信している間、絶えず起こることができる。別法としては、ターゲット装置１１４は、別のターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８から、あるいはネットワーク１０２もしくはシステム１００またはその両方の他のどの構成要素から１つまたは複数のデータ・メッセージを受信しても、スレッドの１つまたは複数を開始することができる。
【００５１】
ブロック４２０に示すように、ターゲット装置１１４はしたがって、さらに後で説明するように、「ping」スレッドを開始することができる。ブロック４２０と代替的にまたは同時に、ターゲット装置１１４はブロック４３０に示すように、さらに後で説明する「サーバ」スレッドを開始することもできる。ブロック４２０、４３０と代替的にまたは同時に、ターゲット装置１１４は、ブロック４５０に示すように、さらに後で説明する「照会」スレッドを開始することもできる。ターゲット装置１１４は、ブロック４４０で１つまたは複数の照会がターゲット装置１１４から同報通信されるべきであると判定された場合、「照会」スレッドを開始することができる。したがって、本発明によると、ターゲット装置１１４は、ping照会を含む照会を送信し、pong応答を含む応答を受信するなどのクライアント機能を実施することができる。ターゲット装置１１４は、照会および応答を処理するサーバ機能を実施することもでき、たとえばピア・ノードを記述する応答をピア・テーブルに集約し、ある特定の照会メッセージが受信される回数を追跡する。
【００５２】
図５において、図４のネットワーク環境における複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を、５００に示す。
【００５３】
ブロック５０２に示すように、ターゲット装置１１４は、ブロック４０６で決定された所定のpingタイムアウト遅延の値（ｐ）の持続時間が経過するのを待つことができる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。
【００５４】
ブロック５０４に示すように、pingタイムアウト遅延の値が経過すると、ターゲット装置１１４は、ブロック４０８で設定された所定の数の隣接（ピア）ノード（ｎ）にpingメッセージを送信することができる。したがって、図１に示す実施形態では、pingメッセージは、ターゲット装置１１４から３つの所定の隣接ノード１１２、１１６、１１８（すなわち、ｎ＝３）に送信することができる。
【００５５】
このpingメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって使われて、pingメッセージがネットワーク１０２またはシステム１００あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、１つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６および１１８に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト（ピア・テーブル）を識別が含むことを要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２にターゲット装置１１２のピア装置を識別するよう依頼し、ターゲット装置１１６にターゲット装置１１６のピア装置を識別するよう依頼し、ターゲット装置１１８にターゲット装置１１８のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。
【００５６】
ブロック５０６に示すように、ターゲット装置１１４は次いで、ブロック５０４で交信された所定の数のピアの１つまたは複数から、pongメッセージを受信することができる。
【００５７】
このpongメッセージは、交信を受けたピア装置１１２、１１６、１１８によって使われて、ターゲット装置１１４によって同報通信されたpingメッセージに応答を行うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４に対してターゲット装置１１２を記述するpongメッセージを、ターゲット装置１１４に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置１１２は、ターゲット装置１１２のアドレスを与えるpongメッセージを、ターゲット装置１１４に送ることができる。ターゲット装置１１４は、ターゲット装置１１６のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１６から受信し、ターゲット装置１１８のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１８から受信することもできる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することができる。たとえば、ターゲット装置１１２は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。これに対して、ターゲット装置１１６も、ターゲット装置１１６が２つのピア・ターゲット装置１１４、１３６を有していることを示すpongメッセージを送信することができる。ターゲット装置１１６からのpongメッセージも、ターゲット装置１１６の２つのピア装置１１４、１３６についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１３６が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１３６のＩＰアドレス、および他の適切などのような情報も含まれる。さらに、ターゲット装置１１８も、ターゲット装置１１８が３つのピア・ターゲット装置１１４、１２８、１３８を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１８からのpongメッセージも、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。
【００５８】
ブロック５０８に示すように、ターゲット装置１１４は次いで、ブロック４０２で初期化されたピア・テーブルを、pong応答から受信した情報を用いて更新することができる。これは、隣接ピア・ノード１１２、１１６、１１８から、ターゲット装置１１４上にある、またはそれと通信するデータベースまたは記憶位置にピア・テーブル情報を入力するなど、当該分野において公知である適切などのような手段を使っても達成することができる。したがって、照会側ピア・ターゲット装置１１２、１１６、１１８から、ターゲット装置１１４は、ネットワーク内の他の装置１２８、１３８、１３６についての情報を判定することができる。これに対して、ターゲット装置１１４は、そのピア・テーブルを、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８についての情報を用いて更新することができるので、ターゲット装置１１４に照会を行う隣接装置１２２は、その後、７個のターゲット装置についての情報、すなわち、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８、および１２２についての情報を、ターゲット装置１１４から受信する。
【００５９】
図６において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、６００に示す。
【００６０】
ブロック６０２に示すように、ターゲット装置１１４は、着信データ・メッセージを待つことができる。このデータ・メッセージは、上述した適切などのようなデータ・メッセージでもよい。
【００６１】
たとえば、データ・メッセージは、ターゲット装置１１４の識別を要求するデータ・メッセージなど、ターゲット装置１１４に情報を要求するpingデータ・メッセージでよい。あるいは、データ・メッセージは、ターゲット装置１１４に、ある特定のファイルをもっているか尋ねる照会データ・メッセージでもよい。本発明の一実施形態において、データ・メッセージは、ターゲット装置１１４にそのピア・ターゲット装置の集合リスト（すなわちピア・テーブル）を提供させる要求でもよい。
【００６２】
あるいは、データ・メッセージは、ターゲット装置１１４に対して別のターゲット装置を記述するpongデータ・メッセージでよい。本発明の一実施形態において、pongデータ・メッセージは、その隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することもできる。たとえば、ターゲット装置１１４は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有することをターゲット装置１１４に対して示すデータ・メッセージを、ターゲット装置１１２から受信することができる。あるいは、データ・メッセージは、ターゲット装置１１４からの照会に応答する応答データ・メッセージでもよい。
【００６３】
ブロック６０４で、ターゲット装置１１４は、データ・メッセージを受信したか判定する。各データ・メッセージは、その性質（すなわち、pingデータ・メッセージ、pongデータ・メッセージ、探索照会メッセージ、など）が何であっても、上述したように一義的な記述子ＩＤを有することができる。
【００６４】
データ・メッセージが受信されている場合、方法はブロック６０６に進み、ここで、データ・メッセージの記述子ＩＤが、ブロック４０４で作成された記述子ＩＤテーブルに格納済みのメッセージの記述子ＩＤと比較される。
【００６５】
ブロック６０８で、ターゲット装置１１４は、受信したデータ・メッセージが以前からあったものか（すなわち、受信したデータ・メッセージの記述子ＩＤが、記述子ＩＤテーブルに格納済みの記述子ＩＤのいずれかと一致するか）判定する。
【００６６】
ブロック６１０に示すように、受信したメッセージが以前からあるものでない場合、ターゲット装置１１４は、受信したメッセージおよびその対応する記述子ＩＤを、記述子ＩＤテーブルに追加することができる。
【００６７】
ブロック６１２に示すように、ターゲット装置１１４は次いで、受信したメッセージが上述したようなpingメッセージであるか判定することができる。受信したメッセージがメッセージである場合、ブロック６２４に示すように、ターゲット装置１１４は、受信されたメッセージを発信したピア・ノードに、pongメッセージを返すことができる。本発明の一実施形態において、ターゲット装置１１４からのpong応答は、ターゲット装置１１４が着信接続を受け入れるためのポート番号、ターゲット装置１１４のＩＰアドレス、ターゲット装置１１４がネットワーク上で共有しているファイルの数、ターゲット装置１１４がネットワーク上で共有しているデータのキロバイト数の１つまたは複数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置１１４からのpong応答は、その隣接ピア装置の集合リスト（すなわちピア・テーブル）の全部または一部を含むことができる。たとえば、図１の実施形態では、ターゲット装置１１４からのpong応答は、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８についての情報、たとえば、ターゲット装置１１２、１１４、１１６、１３６、１１８、１２８、１３８が着信接続を受け入れるためのポート番号、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８のＩＰアドレス、および他の適切などのような情報も含むことができる。
【００６８】
本発明の実施形態によると、pong応答は、受信側ターゲット装置から介入ターゲット装置を介して転送されるのではなく、受信側ターゲット装置１１４から起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図１の実施形態では、ターゲット装置１１４が、ピア・ターゲット装置１２８から介入ターゲット装置１１８を介してpingメッセージを受信する場合、ターゲット装置１１４は、pongメッセージを用いて、ターゲット装置１２８に直接応答することができる。本発明によって、ターゲット装置１２８についての情報がターゲット装置１１４に対して利用可能になっているので、ターゲット装置１１４は、ターゲット装置１２８に直接応答することができるようになる。たとえば、ターゲット装置１１４は、ターゲット装置１２８についての情報をもつことができる。というのは、ターゲット装置１１４は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１２８についての情報、たとえばターゲット装置１２８のＩＰアドレスを用いて更新済みだからである。
【００６９】
さらに、ブロック６２６に示すように、ターゲット装置１１４は、そのピア・テーブルに、起点ピア・ノードについての情報を追加することによって、そのピア・テーブルをさらに更新することができる。したがって、上記の例で説明を続けると、図１の実施形態において、ターゲット装置１１４は、そのピア・テーブルに、ターゲット装置１２８についての情報を追加することができる。この情報は、ターゲット装置１２８についての情報、たとえばターゲット装置１２８が着信接続を受け入れるためのポート番号、ターゲット装置１２８のＩＰアドレス、ターゲット装置１２８がネットワーク上で共有しているファイルの数、ターゲット装置１２８がネットワーク上で共有しているデータのキロバイト数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置１２８からの情報は、その隣接ピア装置の集合リスト（すなわちピア・テーブル）の全部または一部を含むことができる。たとえば、図１の実施形態では、ターゲット装置１２８からの情報は、ターゲット装置１２８と接続された、またはそれと通信する他のターゲット装置（図示せず）についての情報を含むことができる。
【００７０】
ブロック６１４に示すように、受信したメッセージがpingデータ・メッセージでない場合、ターゲット装置１１４は、受信したメッセージが別のタイプの照会であるか判定することができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。本発明の一実施形態において、照会メッセージは、所与のターゲット装置によって満たされるべき所定の１組の基準（たとえば、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか？」、または「このメッセージを受信するターゲット装置はＤＯＳを実行することができるか？」）を記述することができる。受信したメッセージが別のタイプの照会である場合、本発明の方法は、図６にＤで示すように、図８に示すサブルーチンに進むことができる。
【００７１】
図８において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、８００に示す。
【００７２】
ブロック８０２に示すように、ターゲット装置１１４は、ブロック６０４で受信したメッセージの照会に含まれる所定の基準を満たしているか判定することができる。これは、たとえば、照会メッセージに含まれる基準を、ターゲット装置１１４の適切などのような構成要素と比較することによっても達成することができる。たとえば、受信した照会メッセージが、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか？」と尋ねた場合、ターゲット装置１１４は、もっているファイルを調査して、いずれかのファイルが、受信した照会メッセージにおいて要求されたファイルと一致するか判定することができる。受信した照会メッセージが、「このメッセージを受信するターゲット装置はＤＯＳを実行することができるか？」と尋ねた場合、ターゲット装置１１４は、それ自体のシステム構成を評価して、受信した照会メッセージに記述されている構成と一致するか判定することができる。
【００７３】
ブロック８０４に示すように、ターゲット装置１１４が所定の基準を満たす場合、ターゲット装置１１４は、照会を発信したターゲット装置に応答データを返すことができる。たとえば、ターゲット装置１１２は、「このメッセージを受信するターゲット装置は「PATENT.APP.DOC」というファイルをもっているか？」と尋ねる照会メッセージを同報通信することができる。ターゲット装置１１４がファイルPATENT.APP.DOCをもっている（すなわち、所定の基準を満たす）場合、ターゲット装置１１４は、ターゲット装置１１４がそのファイルをもっていることを示す応答を、ターゲット装置１１２に送信することができる。本発明の一実施形態において、ターゲット装置１１４がそのファイルをもっていない場合、ターゲット装置１１４はやはり、そのファイルをもっていないことを示す応答を送信することができる。
【００７４】
本発明の実施形態によると、現在のターゲット装置１１４が所定の基準を満たす場合、ターゲット装置１１４は、現在のターゲット装置１１４から介入ターゲット装置を介して転送されるのではなく、起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図１の実施形態では、ターゲット装置１１４が、ピア・ターゲット装置１２８から介入ターゲット装置１１８を介して探索照会を受信した場合、ターゲット装置１１４は、ターゲット装置１２８に直接応答する。本発明によって、ターゲット装置１２８についての情報がターゲット装置１１４に対して利用可能になっているので、ターゲット装置１１４は、ターゲット装置１２８に直接応答することができるようになる。たとえば、ターゲット装置１１４は、ターゲット装置１２８についての情報をもつことができる。というのは、ターゲット装置１１４は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１２８についての情報、たとえばターゲット装置１２８のＩＰアドレスを用いて更新済みだからである。
【００７５】
ターゲット装置１１４が、ブロック８１４、８１６、８１８、８２８に示す照会メッセージの所定の基準を満たしても満たさなくても、ターゲット装置１１４は次いで、データ・メッセージを転送するか、または期限切れとするか決定することができる。
【００７６】
ブロック８１４に示すように、照会メッセージは、データ・メッセージを受信する際に増分することができるホップ・カウンタを含むことも、それに関連づけられることもできる。このホップ・カウンタは、当該分野において公知である適切などのような手段を用いても、受信側ターゲット装置１１４によって増分することができる。たとえば、適切なアルゴリズムを用いて、ホップ・カウンタを増分することができる。ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができる。本発明の一実施形態において、データ・メッセージを受信する各ターゲット装置は、データ・メッセージが受信される度にホップ・カウンタを増分する。
【００７７】
ブロック８１６に示すように、ホップ・カウンタは、メッセージを期限切れとすべきか（すなわち、メッセージが受信された回数、すなわちホップのカウントが存続時間の値に等しいか）判定するために、存続時間の値ｔと比較することができる。図８に示す実施形態において、ホップ・カウンタは、ホップ・カウンタが存続時間の値に等しいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが等しくない場合、メッセージは期限切れとならない。本発明の別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より大きいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが存続時間の値より大きい場合、メッセージは期限切れとならない。本発明のさらに別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より小さいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが存続時間の値より小さい場合、メッセージは期限切れとならない。
【００７８】
存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。本発明の一実施形態では、存続時間の値を制御するターゲット装置は、データ・メッセージを発信したターゲット装置である。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。あるいは、適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
【００７９】
ブロック８１８に示すように、ホップ・カウンタが存続時間の値に等しい場合、メッセージは、期限切れとすることができる。本発明の一実施形態において、メッセージの有効期限が切れると、受信側ターゲット装置１１４は、それ以上そのメッセージを別のターゲット装置に転送しない。
【００８０】
ブロック８２８に示すように、ホップ・カウンタが存続時間の値に等しくない場合、ターゲット装置１１４は次いで、１つまたは複数の他のターゲット装置にデータ・メッセージを転送する。図８に示す実施形態では、たとえば、受信側ターゲット装置は、所定の数（ｎ）の隣接ノード／ピア・ターゲット装置にメッセージを転送することができる。この所定の数の隣接ノードは、ブロック４０８で上述した手段など、適切などのような手段によっても決定することができる。
【００８１】
受信側ターゲット装置１１４は次いで、図６および８にＢで示すように、ブロック６０２に戻ることができる。
【００８２】
ここで図６に戻ると、受信したメッセージがpingメッセージでも照会メッセージでもない場合、ブロック６１６に示すように、ターゲット装置１１４は、受信したメッセージが、ターゲット装置１１４によって同報通信された照会への応答データを提供するデータ・メッセージであるか判定することができる。
【００８３】
このような応答データは、たとえば、１つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、１つまたは複数の隣接ターゲット装置のＩＰアドレス、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または１つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の１つまたは複数でよい。
【００８４】
応答データは、１つまたは複数の隣接ピア装置からの集合リスト（すなわちピア・テーブル）の全部または一部を含むこともできる。あるいは、応答データは、ターゲット装置１１４によって送信された照会への返答を含むこともできる。たとえば、ターゲット装置１１４が、「TRADEMARK.APP.EXEというファイルをもっているか？」と尋ねる照会を同報通信した場合、受信されるメッセージは、１つまたは複数の隣接するターゲット装置がそのファイルをもっていることを示す応答でよい。本発明の一実施形態において、応答データは、応答側ターゲット装置から、照会を同報通信したターゲット装置に、直接送信することができる。
【００８５】
たとえば、図１の実施形態において、ターゲット装置１１４が隣接装置１１２、１１６、１１８に照会を送信した場合、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１２がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１２から受信することができる。ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１６がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１６から受信することもできる。ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１８がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１８から受信することもできる。
【００８６】
さらに、ターゲット装置１１４がターゲット装置１３６に直接照会を行っていない場合でも、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１３６がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１３６から直接受信することができる。本発明によって、ターゲット装置１１４についての情報がターゲット装置１３６に対して利用可能になっているので、ターゲット装置１３６は、ターゲット装置１１４に直接応答することができるようになる。たとえば、ターゲット装置１３６は、ターゲット装置１１４についての情報をもつことができる。というのは、ターゲット装置１３６は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１１４についての情報、たとえばターゲット装置１１４のＩＰアドレスを用いて更新済みだからである。
【００８７】
ターゲット装置１１４がターゲット装置１２８、１３８に直接照会を行っていない場合でも、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１２８、１３８がそれぞれファイルをもっているか示す応答データ・メッセージを、ターゲット装置１２８、１３８から直接受信することもできる。したがって、照会側ターゲット装置１１２、１１６、１１８から、ターゲット装置１１４は、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３６からの直接の応答を受信することができる。
【００８８】
ブロック６１８に示すように、ターゲット装置１１４は次いで、応答データを処理することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１４上の記憶位置、またはターゲット装置１１４と通信する記憶位置に応答データを格納することができる。あるいは、ターゲット装置１１４は、ターゲット装置１１４上のユーザ・インターフェース、またはターゲット装置１１４と通信するユーザ・インターフェースを介して、ユーザに応答データを提示することもできる。たとえば、ターゲット装置１１４は、探索結果として応答データをユーザに表示することができる。
【００８９】
図６にループ６３０で示すように、図６のルーチンは、あらゆる着信メッセージに対して繰り返すことができる。
【００９０】
図７において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、７００に示す。
【００９１】
ブロック７０２に示すように、ターゲット装置１１４は、照会が入力されるまで待つことができる。この照会は、上述したように、適切などのような照会でもよい。照会は、たとえば、１つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、１つまたは複数の隣接ターゲット装置のＩＰアドレス、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または１つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の１つまたは複数についての情報を要求することができる。
【００９２】
本発明の一実施形態では、ユーザが照会を入力することができる。あるいは、照会は、ネットワーク１０２もしくはシステム１００またはその両方の別のターゲット装置または別の構成要素から入力することもできる。たとえば、ユーザは、ターゲット装置１１４で、ファイル「PATENT.APP.DOC」を求める照会を入力することができる。
【００９３】
ブロック７０４に示すように、ターゲット装置１１４は次いで、所定の数の隣接ノードｎに照会を転送することができる。この所定の数の隣接ノードは、ブロック４０８で上述した手段など、適切などのような手段によっても決定することができる。ターゲット装置１１４は次いで、図４および７にＣで示すように、ブロック７０２に戻ることができる。
【００９４】
本発明を、完全に機能するデータ処理システムの状況で説明したが、説明した処理は、他の適切などのような状況においても配布することができることが理解されよう。たとえば、説明した処理は、コンピュータ可読な命令媒体の形を取ることができる。本発明は、配布の実行に実際に使用される信号伝達媒体のタイプに関わらず、等しく適用される。コンピュータ可読媒体の例として、フロッピー（Ｒ）ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能なタイプの媒体、ならびにデジタルおよびアナログ通信リンク、たとえば無線周波数伝送や光波伝送といった伝送形体を使用した有線または無線通信リンクなどの伝送タイプの媒体がある。コンピュータ可読媒体は、あるデータ処理システムで実際に使用する場合には復号化される、符号化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【００９５】
【図１】本発明によるデータ処理システムのネットワークの一実施形態を示す概略図である。
【図２】本発明によるデータ処理システムの一実施形態を示すブロック図である。
【図３】本発明によるデータ処理システムの別の実施形態を示すブロック図である。
【図４】本発明による、ネットワーク環境における複数のターゲット装置の間の通信方法の一実施形態を示すフロー図である。
【図５】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を示すフロー図である。
【図６】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【図７】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【図８】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【図１】
2005514867.tif 000003
【図２】
2005514867.tif 000004
【図３】
2005514867.tif 000005
【図４】
2005514867.tif 000006
【図５】
2005514867.tif 000007
【図６】
2005514867.tif 000008
【図７】
2005514867.tif 000009
【図８】
2005514867.tif 000010
【手続補正書】
【提出日】平成15年9月30日(2003.9.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク環境内の２つ以上の「ピア」ターゲット装置の間で通信を行う方法に関する。より詳細には、本発明は、ネットワーク環境内にある、ファイルや探索コマンドなどの情報を伝達し分散する方法に関する。
【背景技術】
【０００２】
ネットワーク環境内の１つまたは複数のターゲット装置に、ファイルや探索コマンドなどの情報を分散する現在の手法においては、複数のターゲット装置に情報を伝達するのに、１つまたは複数のセントラル・サーバを用いることができる。
【０００３】
このような集中型システムは、いくつかの問題点を提示している。たとえば、セントラル・サーバに対する悪影響は、サーバと通信するすべてのターゲット装置に影響を及ぼす。
【０００４】
情報を分散する他の手法では、「ピアツーピア」な分散手段、すなわち、２つ以上のターゲット装置が互いに直接通信することができるシステムが用いられる。しかし、「ピアツーピア」な分散型の探索およびファイル共有の現在のプロトコルは、ある問題点を提示している。
【０００５】
たとえば、ナップスターの「ピアツーピア」プロトコルを用いると、共有されるファイルは、サーバを通過することなく、各ターゲット装置上にとどまる。しかし、ナップスターは、それでも、特定のファイルを探索しクライアント間の直接転送を開始する能力を提供するためにサーバを使う。したがって、ナップスターのプロトコルは、上述したサーバに関する問題点のいくつかに直面する場合がある。さらに、ナップスターのプロトコルは、ネットワークの輻輳、およびターゲット装置がネットワークを出入りする度に絶えず変化する探索結果のような、ピアツーピア・プロトコルに関する問題に直面する場合がある。ナップスターのプロトコルは、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
【０００６】
これに対して、グヌーテラのプロトコルでは、共有されるファイルは、各ターゲット装置上にとどまる。さらに、特定のファイルを探索する能力も、各ターゲット装置上で利用可能である。したがって、各ターゲット装置は、クライアントおよびサーバ両方として働くことができる。しかし、グヌーテラのプロトコルを使用する発信側ターゲット装置から探索が行われると、この発信側ターゲット装置で受信される探索結果は、発信側ターゲット装置に応答する他のターゲット装置がネットワークを出入りする度に、一秒ごとに変わり得る。さらに、あるターゲット装置が発信側ターゲット装置への応答を有している場合、その結果は、元の要求を転送した介在ターゲット装置を介して、発信側ターゲット装置に中継される。探索がグヌーテラ・ネットワーク全体に及ぶと、発信側ターゲット装置から、所望のファイルを有する別のターゲット装置への経路は、より長く、より複雑になり得る。したがって、探索結果は遅れる場合があり、発信側ターゲット装置に到着する前に古いものになってしまう場合もある。発信装置から離れているターゲット装置からの探索結果の転送は、広帯域幅を必要とし、通信を遅くし、結果を遅らせる場合がある。
【０００７】
XP008000376「トードノードを用いたＰ２Ｐリープ（Make the
P2P leap with toadnode）」、ウェブ・テクニック（Web Techniques）、ミラー・フリーマン（Miller Freeman）、米国（Us）（２０００年１２月）、５（１２）、４４〜４９頁には、コンピュータが、ネットワーク上の他のコンピュータを発見するための方法が開示されている。この方法では、コンピュータが、接続されているコンピュータすべてにpingメッセージを送り、こうしたコンピュータは次いで、接続されているコンピュータにメッセージを転送する、などのことを行う。pingメッセージを受信するすべてのコンピュータは、pongメッセージを用いて返信を行い、このpongメッセージは、元のコンピュータに転送される。この技術に伴う問題は、元のコンピュータが、ネットワーク内のすべてのコンピュータからpongメッセージを受信し、そうすることによって、ネットワークに多大な負荷がかかることである。
【非特許文献１】XP008000376「トードノードを用いたＰ２Ｐリープ（Makethe P2P leap with toadnode）」、ウェブ・テクニック（Web Techniques）、ミラー・フリーマン（Miller Freeman）、米国（Us）（２０００年１２月）、５（１２）、４４〜４９頁
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、より効率的であるとともに、ネットワークおよびプロセッサのオーバーヘッドを削減し処理能力を向上させる、複数のターゲット装置の間の情報伝達方法を提供することが望ましいであろう。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ネットワーク環境における複数のピア・ノードの間で通信を行う方法を提供する。発見コマンドが、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに伝達され、この隣接ピア・ノードは、現在のピア・ノードと通信する。ピア・ノードの集合リストが、現在のピア・ノードで受信され、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【００１０】
発見コマンドは、所定の遅延が経過した後で、現在のピア・ノードから伝達することができる。発見コマンドは、所定の数の隣接ピア・ノードに伝達することができる。ピア・テーブルは、現在のピア・ノードにおいて作成し、ピア・ノードの集合リストを用いて更新することができる。起点ピア・ノードからの第２の発見コマンドは、現在のピア・ノードで受信することができ、ピア・テーブルは、第２の発見コマンドに応答して、起点ピア・ノードに伝達することができる。一義的な記述子を有するデータ・メッセージを、現在のピア・ノードで受信することができ、このデータ・メッセージは、一義的な記述子を有する。記述子は、記述子テーブルと比較することができ、この記述子テーブルは、複数のデータ・メッセージおよび関連づけられた記述子を含む。記述子テーブルは、受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて更新することができる。照会コマンドを、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。応答データは、少なくとも１つの他のピア・ノードから、現在のピア・ノードで直接受信することができ、この少なくとも１つの他のピア・ノードは、少なくとも１つの隣接ノードと通信する。起点ピア・ノードからの照会コマンドは、現在のピア・ノードで受信することができ、応答データは、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接伝達することができる。照会コマンドは、現在のピア・ノードから所定の数の隣接ピア・ノードに転送することができる。
【００１１】
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うためのコンピュータ・プログラム製品を、コンピュータ使用可能媒体で提供する。このプログラムは、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは、現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【００１２】
本発明の別の態様は、ネットワーク環境における複数のピア・ノードの間で通信を行うシステムを提供する。このシステムは、現在のピア・ノードから、少なくとも１つの隣接ピア・ノードに発見コマンドを伝達する手段を含むことができ、隣接ピア・ノードは現在のピア・ノードと通信する。また、現在のピア・ノードにおいて、ピア・ノードの集合リストを受信する手段を含むことができ、ピア・ノードの集合リストは、少なくとも１つの隣接ノードと通信する少なくとも１つのピア・ノードについての情報を含む。
【００１３】
本発明の一実施形態において、本発明のプログラムおよびシステムは、所定の遅延が経過した後で、現在のピア・ノードから発見コマンドを伝達する手段をさらに含むことができる。所定の数の隣接ピア・ノードに発見コマンドを伝達する手段は、本発明によって提供することができ、現在のピア・ノードにおいてピア・テーブルを作成する手段、およびピア・ノードの集合リストを用いてピア・テーブルを更新する手段も同様に提供することができる。さらに、本発明のプログラムおよびシステムはまた、現在のピア・ノードにおいて、起点ピア・ノードから第２の発見コマンドを受信する手段と、第２の発見コマンドに応答して、現在のピア・ノードから起点ピア・ノードにピア・テーブルを直接伝達し、現在のピア・ノードでデータ・メッセージを受信する手段であって、このデータ・メッセージが一義的な記述子を有する手段と、受信したデータ・メッセージの記述子を記述子テーブルと比較する手段であって、この記述子テーブルが、複数のデータ・メッセージおよび関連づけられた記述子を含む手段とを備えることができる。受信したデータ・メッセージ、および受信したデータ・メッセージの記述子を用いて記述子テーブルを更新する手段は、本発明によって提供することができる。本発明のプログラムおよびシステムは、現在のピア・ノードから、所定の数の隣接ピア・ノードに照会コマンドを伝達する手段を含むことができる。さらに、本プログラムおよびシステムは、現在のピア・ノードにおいて、少なくとも１つの他のピア・ノードから直接、応答データを受信する手段であって、この少なくとも１つの他のピア・ノードが、少なくとも１つの隣接ノードと通信する手段、ならびに、現在のピア・ノードにおいて、起点ピア・ノードからの照会コマンドを受信する手段と、照会コマンドに応答して、現在のピア・ノードから起点ピア・ノードに直接、応答データを伝達する手段とを備えることができる。現在のピア・ノードから所定の数の隣接ピア・ノードに照会コマンドを転送する手段も、本発明のプログラムおよびシステムによって提供することができる。
【００１４】
以下において、本発明を、添付の図面に示す本発明の好ましい実施形態を参照して、例示の目的でのみ説明する。
【発明を実施するための最良の形態】
【００１５】
図１において、本発明の実施形態によるデータ処理システムのネットワークの概略表示を１００に示す。ネットワーク・データ処理システム１００は、本発明の実施形態を実装することができる、コンピュータからなるネットワークでよい。ネットワーク・データ処理システム１００は、ネットワークを含むことができる。ネットワーク１０２は、ネットワーク・データ処理システム１００において互いに接続されまたは通信するコンピュータなど様々な装置の間の通信リンクを提供するのに用いられる、適切などのような媒体でもよい。たとえば、ネットワーク１０２は、有線接続、無線通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。
【００１６】
図１に示す実施形態において、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、ネットワーク１０２と通信することができる。こうしたターゲット装置は、たとえば、パーソナル・コンピュータでもネットワーク・コンピュータでもよい。ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数は、さらに後で説明するように、ピア・ターゲット装置として働くことができる。ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、さらに後で説明するように、１つまたは複数のピア・ターゲット装置に対するピア・ノードとしても働くことができる。ネットワーク・データ処理システム１００は、図示していない追加のサーバ、クライアント、ターゲット装置、および他の装置を含むことができる。
【００１７】
１つまたは複数の記憶装置、たとえば記憶装置１０３、１０５も、ネットワーク１０２と通信することができる。記憶装置１０３、１０５は、ブート・ファイル、オペレーティング・システムの画像、アプリケーション・ファイル、およびアプリケーションなどのデータを格納することができ、こうしたデータは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８によって処理し、または伝えることができる。記憶装置１０３、１０５は、ネットワーク１０２に対して利用可能とされ、もしくはそれによって処理されるデータ、または後で説明するように、ネットワーク１０２と通信する他の構成要素に対して利用可能とされるデータ、あるいはその両方であるデータを格納することもできる。本発明のいくつかの実施形態では、記憶装置１０３、１０５は、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８に対するピアとしても働くことができ、さらに後で詳述するように、記述子、メッセージまたは応答データあるいはそのすべてを提供する。
【００１８】
図１に示すように、ネットワーク・データ処理システム１００は、データを処理する、適切などのようなシステムでもよい。たとえば、システム１００はインターネットでよい。あるいは、ネットワーク・データ処理システム１００は、たとえば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）など、適切などのようなタイプのネットワークでもよい。本発明の一実施形態において、ネットワーク１０２は、ＴＣＰ／ＩＰプロトコル・スイートなどを使用して互いに通信するネットワークおよびゲートウェイの世界規模の集合体を表す。主ノードすなわちホスト・コンピュータの間の高速データ通信線の幹線により、データおよびメッセージを中継する、数千もの商用、行政、教育用、および他のコンピュータ・システムの間の通信が可能になる。
【００１９】
本発明の一実施形態において、ネットワーク・データ処理システムは、ピアツーピアの非集中型システムである。このようなシステム１００では、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８はそれぞれ、サーバとして働くことができ、クライアントとしても働くことができる。したがって、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、クライアントに通常関連づけられたタスクを実施し、サーバに通常関連づけられたタスクも実施することができる。本発明のいくつかの実施形態では、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、クライアント側インターフェースを提供することができ、このインターフェースを介して、ユーザは、クライアント関連タスク、たとえば照会の発行および探索結果の閲覧を実施することができる。同時に、ターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８はそれぞれ、サーバ関連タスク、たとえば他のターゲット装置からの照会の受諾、要求されたデータの、それ自体のデータ・セットとの一致の検査、および他のターゲット装置への、照会結果を伴う応答も提供することができる。分散型システム１００は、故障に対する耐性が高い。というのは、システム１００の動作は、ターゲット装置の部分集合またはノードがオフラインになった場合に中断されないからである。たとえば、区域１１７は、システム１００のターゲット装置の１つの部分集合（ターゲット装置１１２、１１４、１１６、１１８、１２８、１３６、１３８を含む）を強調表示している。これに対して、区域１２７は、システム１００のターゲット装置の第２の部分集合（ターゲット装置１２２、１２４、１２６を含む）を示す。分散型システム１００において、区域１１７の部分集合がオフラインになった場合、システム１００の動作、ネットワーク１０２の動作、または区域１２７すなわちターゲット装置１２２、１２４、１２６の動作を必ずしも中断することにはならない。反対に、区域１２７の部分集合がオフラインになった場合、システム１００の動作、ネットワーク１０２の動作、または区域１１７すなわちターゲット装置１１２、１１４、１１６、１１８、１２８、１３６、１３８の動作を必ずしも中断することにはならない。
【００２０】
図２および３は、本発明の実施形態に従って用いることができるデータ処理システムのブロック図である。本発明の一実施形態において、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図２および３で説明する構成要素の１つまたは複数のどの組合せも組み込むデータ処理システムでよい。
【００２１】
図２のブロック図において、本発明の実施形態によるデータ処理システムを２００に示す。本発明の一実施形態において、データ処理システム２００は、図１に示すターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数として実装することができる。あるいは、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図２で説明する構成要素の１つまたは複数を組み込むことができる。
【００２２】
データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を含む、対称型マルチプロセッサ（ＳＭＰ）システムでよい。あるいは、単一プロセッサ・システムを使用してもよい。メモリ・コントローラ／キャッシュ２０８も、システム・バス２０６に接続することができる。メモリ・コントローラ／キャッシュ２０８は、ローカル・メモリ２０９へのインターフェースを提供する。Ｉ／Ｏバス・ブリッジ２１０も、システム・バス２０６に接続することができ、Ｉ／Ｏバス２１２へのインターフェースを提供することができる。メモリ・コントローラ／キャッシュ２０８およびＩ／Ｏバス・ブリッジ２１０は、図に示すように統合することもでき、別個の構成要素でもよい。
【００２３】
Ｉ／Ｏバス２１２に接続された、ＰＣＩ（周辺装置相互接続）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６へのインターフェースを提供することができる。１つまたは複数のモデムをＰＣＩバス２１６に接続することができる。一般的なＰＣＩバスの実装は、４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。モデム２１８およびネットワーク２２０は、ＰＣＩローカル・バス２１６に接続することができる。この接続は、アドイン・ボードを介することができる。本発明の一実施形態において、モデム２１８およびそれに伴う接続は、ネットワーク・コンピュータなどのターゲット装置への通信リンクを提供する。たとえば、このようなターゲット装置は、図１で上述したものでよい。
【００２４】
追加のＰＣＩバス・ブリッジ２２２および２２４は、追加のＰＣＩバス２２６および２２８のためのインターフェースを提供することができる。ＰＣＩバス２２６および２２８から、追加のモデムまたはネットワーク・アダプタをサポートすることができる。たとえば、本発明の一実施形態において、ＰＣＩバス２２６、２２８は、遠隔ローディング特徴、たとえばＲＰＬ特徴がインストールされたネットワーク・アダプタをサポートすることができる。このようにして、データ処理システム２００は、複数のネットワーク・コンピュータへの接続を可能にすることができる。メモリ・マップ式のグラフィクス・アダプタ２３０およびハード・ディスク２３２も、図に示すように、直接または間接的にＩ／Ｏバス２１２に接続することができる。
【００２５】
図２に示す構成要素は、図示したように配列することも、データ処理システム２００が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。さらに、図示した構成要素に加えて、またはその代わりに、他の周辺装置、たとえば光ディスク・ドライブなどを使用してもよい。
【００２６】
本発明の一実施形態において、データ処理システム２００は、システム２００が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば１つまたは複数のターゲット装置の間でデータを伝達するのに使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージの交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００２７】
図３のブロック図において、本発明の実施形態によるデータ処理システムを３００に示す。本発明の一実施形態において、データ処理システム３００は、図１に示すターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８の１つまたは複数として実装することができる。あるいは、所与のターゲット装置１１２、１１４、１１６、１１８、１２２、１２４、１２６、１２８、１３６、１３８は、図３で説明する構成要素の１つまたは複数を組み込むことができる。
【００２８】
本発明の一実施形態において、データ処理システム３００はターゲット装置であり、この装置では、ディスク・ドライブが任意選択的である。あるいは、データ処理システム３００は、ネットワーク通信インターフェースに依拠せずにブート可能なように構成された、独立型のシステムでもよい。あるいは、データ処理システム３００は、１つまたは複数のネットワーク通信インターフェースを備えることもできる。データ処理システム３００は、携帯情報端末（ＰＤＡ）装置でもよい。データ処理システムは、ノート型コンピュータまたはハンドヘルド・コンピュータの形をとることもできる。あるいは、データ処理システム３００は、キオスクでも、ウェブ機器でもよい。本発明の実施形態の処理は、マルチプロセッサ・データ処理システムにも適用することができる。
【００２９】
データ処理システム３００は、ＰＣＩ（周辺装置相互接続）ローカル・バス・アーキテクチャを利用することができる。図示した例ではＰＣＩバスを利用しているが、ＡＧＰ（アクセラレイテッド・グラフィックス・ポート）およびＩＳＡ（業界標準アーキテクチャ）など、他のバス・アーキテクチャを使用することもできる。プロセッサ３０２およびメイン・メモリ３０４は、ＰＣＩブリッジ３０８を介してＰＣＩローカル・バス３０６に接続することができる。ＰＣＩブリッジ３０８はまた、プロセッサ３０２用の統合メモリ・コントローラおよびキャッシュ・メモリを含むこともできる。ＰＣＩローカル・バス３０６への追加接続は、直接的な構成要素相互接続を介して、またはアドイン・ボードを介して行うことができる。本発明の一実施形態では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、および拡張バス・インターフェース３１４が、直接的な構成要素接続によってＰＣＩローカル・バス３０６に接続される。対照的に、音声アダプタ３１６、グラフィックス・アダプタ３１８、および音声／映像アダプタ３１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス３０６に接続される。拡張バス・インターフェース３１４は、たとえばキーボードおよびマウス・アダプタ３２０、モデム３２２、ならびに追加メモリ３２４など追加構成要素用の接続を提供することができる。ＳＣＳＩ（小型コンピュータ・システム・インタフェース）ホスト・バス・アダプタ３１２は、たとえばハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、およびＣＤ−ＲＯＭドライブ３３０、またはＤＶＤ３３２など追加構成要素用の接続を提供することができる。ＰＣＩローカル・バス３０６は、適切などのようなローカル・バス実装形態でもよい。一般的なＰＣＩローカル・バスの実装は、３つまたは４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。
【００３０】
ファイル、ならびにオペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションまたはプログラム用のオペレーティング・ファイルなどのファイルに対する命令は、たとえば、ハード・ディスク・ドライブ３２６などの記憶装置に置くことができる。こうしたオペレーティング・システム、アプリケーションまたはプログラムあるいはそのすべては、プロセッサ３０２による実行のためにメイン・メモリ３０４にロードすることができる。
【００３１】
図３に示すシステム３００の構成要素は、図示したように配列することも、データ処理システム３００が要望に応じて機能することを可能にする適切などのようなやり方で配列することもできる。図示した構成要素に加えて、またはその代わりに、他の内部ハードウェアまたは周辺装置、たとえばフラッシュＲＯＭ（または等価な不揮発性メモリ）あるいは光ディスク・ドライブなどを使用してもよい。たとえば、データ処理システム３００の一実施形態は、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性メモリを提供するために、ＲＯＭまたはフラッシュＲＯＭあるいはその両方を有して構成することができる。データ処理システム３００の別の実施形態は、遠隔ローディング・プログラムまたはＲＰＬ特徴などの特徴あるいはその両方の関数を送信しまたは受信するのに適したネットワーク・アダプタを含むことができる。
【００３２】
本発明の一実施形態において、データ処理システム３００は、システム３００が分散ピアツーピア・プロトコルに従って動作することを可能にするソフトウェア構成要素およびハードウェア構成要素を含むことができる。これには、たとえば１つまたは複数のターゲット装置の間でデータの伝達に使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージの交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００３３】
図４において、本発明による複数のターゲット装置の間で通信を行う方法の一実施形態を４００に示す。図４に示す方法は、ネットワークを介した分散探索およびファイル共有を可能にする、適切などのようなピアツーピア・プロトコルを用いて実装することもできる。
【００３４】
適切などのような移送機構も、たとえばHTTP over TCPを用いて、ターゲット装置またはノードの間の通信を達成するのに使うことができる。あるいは、バイト・レベルの移送を使うこともできる。あるいは、ＵＤＰを使うこともできる。あるいは、ＨＴＴＰ／ＳＯＡＰ（シンプル・オブジェクト・アクセス・プロトコル）を使うこともできる。ＳＯＡＰは、ＣＯＭ、アップル・イベントおよびＣＯＲＢＡなど、有名な接続技術用の単純なXML-over-HTTPラッパーである。ＳＯＡＰ用の移送機構はＨＴＴＰであり、ＳＯＡＰにおけるコールは、ＸＭＬを使って指定される。
【００３５】
本発明の一実施形態において、移送機構は、適切なピアツーピア・プロトコルに従ってターゲット装置の間の通信を達成する。このピアツーピア・プロトコルは、たとえば、１つまたは複数のターゲット装置の間のデータの伝送に使われる１組のデータ・メッセージ、および１つまたは複数のターゲット装置の間のメッセージ交換を管理する１組の規則を含むことができる。こうしたメッセージおよび規則、ならびに本発明の実施形態による、こうしたメッセージおよび規則を使用する方法を、後でさらに定義する。
【００３６】
たとえば、本発明の一実施形態において、１つまたは複数のデータ・メッセージを、１つまたは複数のターゲット装置の間で送ることができる。こうしたデータ・メッセージは、あるターゲット装置から別のターゲット装置に伝達される、照会またはコマンドへの応答など、適切などのようなデータも含むことができる。こうしたデータ・メッセージは、たとえば、８バイト列、１６バイト列、３２バイト列、または適切などのようなサイズのデータ列の形の情報でもよい。データ・メッセージは、たとえば、発見（本明細書では「ping」で示す）データ・メッセージ、識別（本明細書では「pong」で示す）データ・メッセージ、照会データ・メッセージ、および照会応答データ・メッセージの形をとることができる。データ・メッセージは、たとえば、当該分野において公知であるタイムアウト遅延および存続時間カウンタなどの規則によって管理することができる。
【００３７】
本発明の実施形態によると、データ・メッセージは、記述子ＩＤを含むことができる。本発明の一実施形態において、記述子ＩＤは、ネットワーク１０２またはシステム１００あるいはその両方において分散されるある特定のデータ・メッセージを一義的に識別する１６バイト列でよい。たとえば、３２バイト列の大きさのデータ・メッセージは、ネットワークを介して送られる他のすべてのデータ・メッセージと一義的に区別するための、１６バイト列の大きさの記述子ＩＤを含むことができる。したがって、あるメッセージがある特定のターゲット装置に複数回届く場合、ターゲット装置は、メッセージの記述子ＩＤからそのメッセージを認識することができる。
【００３８】
上に示したように、データ・メッセージは、発見メッセージ（本明細書では「ping」メッセージとして示す）でよい。このpingメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって使われて、pingメッセージがネットワーク１０２またはシステム１００あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、１つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６および１１８に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト（ピア・テーブル）を識別が含むことを要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２にターゲット装置１１２のピア装置を識別するよう依頼し、ターゲット装置１１６にターゲット装置１１６のピア装置を識別するよう依頼し、ターゲット装置１１８にターゲット装置１１８のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。
【００３９】
本発明の一実施形態において、ピアツーピア・プロトコルは、pingタイムアウト遅延を含むこともでき、この遅延は、pingデータ・メッセージを管理するのに使われる一規則でよい。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知である適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。あるいは、pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。あるいは、所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。あるいは、適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置（ピア・ノード）のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
【００４０】
上述したように、データ・メッセージは、識別メッセージ（本明細書ではpongデータ・メッセージと示す）でもよい。このpongメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、pingメッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４に対してターゲット装置１１２を記述するpongメッセージを、ターゲット装置１１４に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置１１２は、ターゲット装置１１２のアドレスを与えるpongメッセージを、ターゲット装置１１４に送ることができる。ターゲット装置１１４もpingメッセージをターゲット装置１１８に送った場合、ターゲット装置１１４はやはり、ターゲット装置１１８のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１８から受信することができる。あるいは、pongデータ・メッセージは、応答側ターゲット装置が着信接続を受け入れるためのポート番号、応答側ターゲット装置のＩＰアドレス、応答側ターゲット装置がネットワーク上で共有しているファイルの数、応答側ターゲット装置がネットワーク上で共有しているデータのキロバイト数の１つまたは複数を含むことができる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することができる。たとえば、ターゲット装置１１２は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。これに対して、ターゲット装置１１８も、ターゲット装置１１８が３つのピア・ターゲット装置１１４、１２８、１３８を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１８からのpongメッセージも、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。
【００４１】
上述したように、データ・メッセージは、照会メッセージでもよい。この照会メッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、他のターゲット装置、およびネットワーク１０２またはシステム１００の他のどの構成要素に情報を要求するのにも使うことができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８に対してある特定のファイルをもっているか尋ねる照会データ・メッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。本発明の一実施形態において、照会メッセージは、そのピア・ターゲット装置の集合リスト（すなわちピア・テーブル）に対する要求を含むこともできる。他のタイプの照会も、当該分野において公知であるように、本発明の実施形態に従って同報通信することができる。
【００４２】
上述したように、データ・メッセージは、応答データ・メッセージでもよい。このpongメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって、照会メッセージを同報通信したターゲット装置に応答するのに使うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４がシークしているファイルをターゲット装置１１２がもっているか示す応答メッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１４がターゲット装置１１８にもpingメッセージを送信していた場合、ターゲット装置１１４はまた、ターゲット装置１１４がシークしているファイルをターゲット装置１１８がもっているか示す応答データ・メッセージを、ターゲット装置１１８から受信することができる。
【００４３】
ピアツーピア・プロトコルにより、ターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のいずれかがデータ・メッセージを同報通信しまたは受信することが可能になる。したがって、たとえば、ターゲット装置１２８が、ターゲット装置１１８のピア・ターゲット装置の集合リストを要求するpingメッセージを、ターゲット装置１１８に送信することもできる。したがって、ターゲット装置１２８が、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供するpongメッセージを、ターゲット装置１１８から受信することもでき、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。これに対して、ターゲット装置１１６は、照会メッセージを同報通信し、他のターゲット装置１１２、１１４、１１８、１１２、１２４、１２６、１２８、１３６、１３８から応答データ・メッセージを受信することができる。
【００４４】
したがって、図４に示すルーチンは、ターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のいずれかにおいて行うことができ、本発明の一実施形態においては、複数の所与のターゲット装置で同時に起こることもできる。さらに、どの１つまたは複数のターゲット装置も、たとえば、図４のルーチンから得られるピア・テーブルなどのデータ・メッセージを受信することができる。したがって、以下の段落では、ネットワーク１０２およびターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８に対してターゲット装置１１４を起点ピア・ノードと指定するが、ターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８のどの１つまたは複数も、ネットワーク１０２またはシステム１００あるいはその両方における他のどのターゲット装置に対しても起点ピア・ノードとなることができる。
【００４５】
ブロック４０２に示すように、ターゲット装置１１４は、ピア・テーブルを初期化することができる。本発明の一実施形態において、このピア・テーブルは、ピア・ターゲット装置と、各ピア・ターゲット装置の関連情報、たとえば各ピア・ターゲット装置のＩＰアドレス、および特定の各ピア・ターゲット装置が着信接続を受け入れるためのポートのＩＰアドレスとからなる一覧を含むことができる。これは、たとえば、ピア・ターゲット装置の識別および関連情報を格納するターゲット装置１１４上にデータベースを作成することによって、またはこのターゲット装置１１４と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置１１４上の適切な記憶位置において照合することも、ターゲット装置１１４に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
【００４６】
ブロック４０４に示すように、ターゲット装置１１４は、記述子ＩＤテーブルを初期化することもできる。本発明の一実施形態において、この記述子ＩＤテーブルは、一義的な各記述子ＩＤと、ターゲット装置１１４によって受信または送信され、あるいは送受信された、各記述子ＩＤに対応するデータ・メッセージとからなる一覧を含むことができる。これは、たとえば、記述子ＩＤおよび関連情報を格納するターゲット装置１１４上にデータベースを作成することによって、またはこのターゲット装置１１４と通信するなど、適切などのようなやり方でも達成することができる。あるいは、この情報は、ターゲット装置１１４上の適切な記憶位置において照合することも、ターゲット装置１１４に伝達することもできる。あるいは、この情報は、ハッシュ・テーブルに格納することも、当該分野において公知であるように、ハッシュ関数を用いて格納することも、またはその両方を行うこともできる。
【００４７】
ブロック４０６に示すように、ターゲット装置１１４は、上述したように「ping」タイムアウト遅延の値を設定することもできる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。pingタイムアウト遅延の値は、当該分野において公知の適切などのような手段を使っても決定することができる。たとえば、pingタイムアウト値は、pingタイムアウト遅延を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、pingタイムアウト遅延の値を設定することもできる。pingタイムアウト遅延の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、pingタイムアウト遅延の値を決定することもできる。適切なアルゴリズムが、pingタイムアウト遅延の値を管理することもできる。このアルゴリズムは、たとえば、ある特定のターゲット装置（ピア・ノード）のシステム制限に基づくこともでき、ユーザが入力する値に基づくこともできる。
【００４８】
ブロック４０８に示すように、ターゲット装置１１４は次いで、交信先、すなわち接続先の隣接ノード（ピア・ターゲット装置）の数の値ｎを設定することができる。所与のターゲット装置に対する、交信される隣接ノードの数は、当該分野において公知の１つまたは複数の適切な方法を用いて決定することができる。たとえば、所与のターゲット装置から交信されるピア・ノードの数は、そのターゲット装置に対する適切なパラメータ、たとえば、ユーザが決定したパラメータ、ターゲット装置のハードウェア・パラメータ、ターゲット装置のソフトウェア・パラメータなどに基づくことができる。たとえば、所与のターゲット装置１１４のユーザが、ターゲット装置１１４が少なくとも３つの他の隣接ノードに交信すべきであると指示することができる。あるいは、ターゲット装置１１４の処理制限が、ターゲット装置１１４は４つのピア・ターゲット装置にのみ交信すべきであると命じることもできる。あるいは、ターゲット装置１１４を、所与の数の隣接ノードと通信するように事前設定することもできる。あるいは、所与のターゲット装置によって使われる移送機構が、交信される隣接ノードの数を決定することもできる。あるいは、ネットワーク１０２またはシステム１００内の隣接ノードの数に基づくアルゴリズム、またはユーザが入力する値に基づくアルゴリズムなど、適切なアルゴリズムが、交信される隣接ノードの数を管理することもできる。
【００４９】
ブロック４１０に示すように、ターゲット装置１１４は次いで、メッセージが期限切れになるまでに、あるターゲット装置から別のターゲット装置にデータ・メッセージを転送することができる回数に対する存続時間の値ｔを設定することができる。たとえば、ターゲット装置１１４は、データ・メッセージが、ｔ個のターゲット装置によって受信された後で期限切れになるようにメッセージを設定することができる。存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
【００５０】
存続時間の値を有するデータ・メッセージを受信する各ターゲット装置は、データ・メッセージに関連づけられたホップ・カウンタを増分することができる。このホップ・カウンタは、メッセージの受信の際、当該分野において公知である適切などのような手段を用いても、ターゲット装置によって増分することができる。たとえば、適切なアルゴリズムを用いて、
ホップ・カウンタを増分することができる。存続時間の値と同様、ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができ、存続時間の値ｔと比較して、メッセージを期限切れとすべきか（すなわち、メッセージが受信された回数、すなわちホップのカウントが、存続時間の値を超えたか）判定することができる。
【００５１】
ブロック４２０、４３０および４４０に示すように、起点ピア・ノード１１４は、pingスレッド、サーバ・スレッド、および照会スレッドの１つまたは複数を実施することもできる。こうしたスレッドは、ターゲット装置１１４によって同時に、または適切などのような順序でも実施することができる。こうしたスレッドは、ターゲット装置１１４がオンラインである間、あるいはネットワーク１０２もしくはシステム１００またはその両方と通信している間、絶えず起こることができる。別法としては、ターゲット装置１１４は、別のターゲット装置１１２、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８から、あるいはネットワーク１０２もしくはシステム１００またはその両方の他のどの構成要素から１つまたは複数のデータ・メッセージを受信しても、スレッドの１つまたは複数を開始することができる。
【００５２】
ブロック４２０に示すように、ターゲット装置１１４はしたがって、さらに後で説明するように、「ping」スレッドを開始することができる。ブロック４２０と代替的にまたは同時に、ターゲット装置１１４はブロック４３０に示すように、さらに後で説明する「サーバ」スレッドを開始することもできる。ブロック４２０、４３０と代替的にまたは同時に、ターゲット装置１１４は、ブロック４５０に示すように、さらに後で説明する「照会」スレッドを開始することもできる。ターゲット装置１１４は、ブロック４４０で１つまたは複数の照会がターゲット装置１１４から同報通信されるべきであると判定された場合、「照会」スレッドを開始することができる。したがって、本発明によると、ターゲット装置１１４は、ping照会を含む照会を送信し、pong応答を含む応答を受信するなどのクライアント機能を実施することができる。ターゲット装置１１４は、照会および応答を処理するサーバ機能を実施することもでき、たとえばピア・ノードを記述する応答をピア・テーブルに集約し、ある特定の照会メッセージが受信される回数を追跡する。
【００５３】
図５において、図４のネットワーク環境における複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を、５００に示す。
【００５４】
ブロック５０２に示すように、ターゲット装置１１４は、ブロック４０６で決定された所定のpingタイムアウト遅延の値（ｐ）の持続時間が経過するのを待つことができる。このpingタイムアウト遅延は、ある特定のpingが送られるまでの所定の時間でよい。たとえば、pingは、ある特定のターゲット装置からｐ秒ごとに送ることができる。
【００５５】
ブロック５０４に示すように、pingタイムアウト遅延の値が経過すると、ターゲット装置１１４は、ブロック４０８で設定された所定の数の隣接（ピア）ノード（ｎ）にpingメッセージを送信することができる。したがって、図１に示す実施形態では、pingメッセージは、ターゲット装置１１４から３つの所定の隣接ノード１１２、１１６、１１８（すなわち、ｎ＝３）に送信することができる。
【００５６】
このpingメッセージは、１つまたは複数のターゲット装置１１２、１１４、１１６、１１８、１１２、１２４、１２６、１２８、１３６、１３８によって使われて、pingメッセージがネットワーク１０２またはシステム１００あるいはその両方に活動的に照会を行っていることを示すことができる。このようなpingデータ・メッセージは、１つまたは複数のターゲット装置の識別を要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２、１１６、１１８にそれ自体を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６および１１８に送ることができる。本発明の一実施形態において、pingデータ・メッセージは、所与のターゲット装置のピア・ターゲット装置の集合リスト（ピア・テーブル）を識別が含むことを要求することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１２にターゲット装置１１２のピア装置を識別するよう依頼し、ターゲット装置１１６にターゲット装置１１６のピア装置を識別するよう依頼し、ターゲット装置１１８にターゲット装置１１８のピア装置を識別するよう依頼するpingメッセージを、ターゲット装置１１２、１１６、１１８に送ることができる。
【００５７】
ブロック５０６に示すように、ターゲット装置１１４は次いで、ブロック５０４で交信された所定の数のピアの１つまたは複数から、pongメッセージを受信することができる。
【００５８】
このpongメッセージは、交信を受けたピア装置１１２、１１６、１１８によって使われて、ターゲット装置１１４によって同報通信されたpingメッセージに応答を行うことができる。たとえば、ターゲット装置１１２は、ターゲット装置１１４に対してターゲット装置１１２を記述するpongメッセージを、ターゲット装置１１４に送ることができる。本発明の一実施形態において、pongメッセージは、活動中のターゲット装置のアドレスを含むことができる。したがって、ターゲット装置１１２は、ターゲット装置１１２のアドレスを与えるpongメッセージを、ターゲット装置１１４に送ることができる。ターゲット装置１１４は、ターゲット装置１１６のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１６から受信し、ターゲット装置１１８のＩＰアドレスを与えるpongメッセージを、ターゲット装置１１８から受信することもできる。本発明の一実施形態において、pongデータ・メッセージは、所与のターゲット装置の隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することができる。たとえば、ターゲット装置１１２は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。これに対して、ターゲット装置１１６も、ターゲット装置１１６が２つのピア・ターゲット装置１１４、１３６を有していることを示すpongメッセージを送信することができる。ターゲット装置１１６からのpongメッセージも、ターゲット装置１１６の２つのピア装置１１４、１３６についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１３６が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１３６のＩＰアドレス、および他の適切などのような情報も含まれる。さらに、ターゲット装置１１８も、ターゲット装置１１８が３つのピア・ターゲット装置１１４、１２８、１３８を有していることをターゲット装置１１４に対して示すpongメッセージを、ターゲット装置１１４に送信することができる。ターゲット装置１１８からのpongメッセージも、ターゲット装置１１８の３つのピア装置１１４、１２８、１３８についての情報を提供することができ、この情報には、ピア・ターゲット装置１１４が着信接続を受け入れるためのポート番号、第２のピア・ターゲット装置１２８が着信接続を受け入れるためのポート番号、第３のピア・ターゲット装置１３８が着信接続を受け入れるためのポート番号、ピア・ターゲット装置１１４のＩＰアドレス、第２のピア・ターゲット装置１２８のＩＰアドレス、第３のピア・ターゲット装置１２８のＩＰアドレス、および他の適切などのような情報も含まれる。
【００５９】
ブロック５０８に示すように、ターゲット装置１１４は次いで、ブロック４０２で初期化されたピア・テーブルを、pong応答から受信した情報を用いて更新することができる。これは、隣接ピア・ノード１１２、１１６、１１８から、ターゲット装置１１４上にある、またはそれと通信するデータベースまたは記憶位置にピア・テーブル情報を入力するなど、当該分野において公知である適切などのような手段を使っても達成することができる。したがって、照会側ピア・ターゲット装置１１２、１１６、１１８から、ターゲット装置１１４は、ネットワーク内の他の装置１２８、１３８、１３６についての情報を判定することができる。これに対して、ターゲット装置１１４は、そのピア・テーブルを、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８についての情報を用いて更新することができるので、ターゲット装置１１４に照会を行う隣接装置１２２は、その後、７個のターゲット装置についての情報、すなわち、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８、および１２２についての情報を、ターゲット装置１１４から受信する。
【００６０】
図６において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、６００に示す。
【００６１】
ブロック６０２に示すように、ターゲット装置１１４は、着信データ・メッセージを待つことができる。このデータ・メッセージは、上述した適切などのようなデータ・メッセージでもよい。
【００６２】
たとえば、データ・メッセージは、ターゲット装置１１４の識別を要求するデータ・メッセージなど、ターゲット装置１１４に情報を要求するpingデータ・メッセージでよい。あるいは、データ・メッセージは、ターゲット装置１１４に、ある特定のファイルをもっているか尋ねる照会データ・メッセージでもよい。本発明の一実施形態において、データ・メッセージは、ターゲット装置１１４にそのピア・ターゲット装置の集合リスト（すなわちピア・テーブル）を提供させる要求でもよい。
【００６３】
あるいは、データ・メッセージは、ターゲット装置１１４に対して別のターゲット装置を記述するpongデータ・メッセージでよい。本発明の一実施形態において、pongデータ・メッセージは、その隣接ピア装置の集合リスト（すなわちピア・テーブル）を提供することもできる。たとえば、ターゲット装置１１４は、ターゲット装置１１２がただ１つのピア・ターゲット装置１１４を有することをターゲット装置１１４に対して示すデータ・メッセージを、ターゲット装置１１２から受信することができる。あるいは、データ・メッセージは、ターゲット装置１１４からの照会に応答する応答データ・メッセージでもよい。
【００６４】
ブロック６０４で、ターゲット装置１１４は、データ・メッセージを受信したか判定する。各データ・メッセージは、その性質（すなわち、pingデータ・メッセージ、pongデータ・メッセージ、探索照会メッセージ、など）が何であっても、上述したように一義的な記述子ＩＤを有することができる。
【００６５】
データ・メッセージが受信されている場合、方法はブロック６０６に進み、ここで、データ・メッセージの記述子ＩＤが、ブロック４０４で作成された記述子ＩＤテーブルに格納済みのメッセージの記述子ＩＤと比較される。
【００６６】
ブロック６０８で、ターゲット装置１１４は、受信したデータ・メッセージが以前からあったものか（すなわち、受信したデータ・メッセージの記述子ＩＤが、記述子ＩＤテーブルに格納済みの記述子ＩＤのいずれかと一致するか）判定する。
【００６７】
ブロック６１０に示すように、受信したメッセージが以前からあるものでない場合、ターゲット装置１１４は、受信したメッセージおよびその対応する記述子ＩＤを、記述子ＩＤテーブルに追加することができる。
【００６８】
ブロック６１２に示すように、ターゲット装置１１４は次いで、受信したメッセージが上述したようなpingメッセージであるか判定することができる。受信したメッセージがメッセージである場合、ブロック６２４に示すように、ターゲット装置１１４は、受信されたメッセージを発信したピア・ノードに、pongメッセージを返すことができる。本発明の一実施形態において、ターゲット装置１１４からのpong応答は、ターゲット装置１１４が着信接続を受け入れるためのポート番号、ターゲット装置１１４のＩＰアドレス、ターゲット装置１１４がネットワーク上で共有しているファイルの数、ターゲット装置１１４がネットワーク上で共有しているデータのキロバイト数の１つまたは複数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置１１４からのpong応答は、その隣接ピア装置の集合リスト（すなわちピア・テーブル）の全部または一部を含むことができる。たとえば、図１の実施形態では、ターゲット装置１１４からのpong応答は、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８についての情報、たとえば、ターゲット装置１１２、１１４、１１６、１３６、１１８、１２８、１３８が着信接続を受け入れるためのポート番号、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３８のＩＰアドレス、および他の適切などのような情報も含むことができる。
【００６９】
本発明の実施形態によると、pong応答は、受信側ターゲット装置から介入ターゲット装置を介して転送されるのではなく、受信側ターゲット装置１１４から起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図１の実施形態では、ターゲット装置１１４が、ピア・ターゲット装置１２８から介入ターゲット装置１１８を介してpingメッセージを受信する場合、ターゲット装置１１４は、pongメッセージを用いて、ターゲット装置１２８に直接応答することができる。本発明によって、ターゲット装置１２８についての情報がターゲット装置１１４に対して利用可能になっているので、ターゲット装置１１４は、ターゲット装置１２８に直接応答することができるようになる。たとえば、ターゲット装置１１４は、ターゲット装置１２８についての情報をもつことができる。というのは、ターゲット装置１１４は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１２８についての情報、たとえばターゲット装置１２８のＩＰアドレスを用いて更新済みだからである。
【００７０】
さらに、ブロック６２６に示すように、ターゲット装置１１４は、そのピア・テーブルに、起点ピア・ノードについての情報を追加することによって、そのピア・テーブルをさらに更新することができる。したがって、上記の例で説明を続けると、図１の実施形態において、ターゲット装置１１４は、そのピア・テーブルに、ターゲット装置１２８についての情報を追加することができる。この情報は、ターゲット装置１２８についての情報、たとえばターゲット装置１２８が着信接続を受け入れるためのポート番号、ターゲット装置１２８のＩＰアドレス、ターゲット装置１２８がネットワーク上で共有しているファイルの数、ターゲット装置１２８がネットワーク上で共有しているデータのキロバイト数を含むことができる。あるいは、本発明の一実施形態において、ターゲット装置１２８からの情報は、その隣接ピア装置の集合リスト（すなわちピア・テーブル）の全部または一部を含むことができる。たとえば、図１の実施形態では、ターゲット装置１２８からの情報は、ターゲット装置１２８と接続された、またはそれと通信する他のターゲット装置（図示せず）についての情報を含むことができる。
【００７１】
ブロック６１４に示すように、受信したメッセージがpingデータ・メッセージでない場合、ターゲット装置１１４は、受信したメッセージが別のタイプの照会であるか判定することができる。照会メッセージは、たとえば、所与のターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置のメモリ中のファイルについての情報を要求することができる。本発明の一実施形態において、照会メッセージは、所与のターゲット装置によって満たされるべき所定の１組の基準（たとえば、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか？」、または「このメッセージを受信するターゲット装置はＤＯＳを実行することができるか？」）を記述することができる。受信したメッセージが別のタイプの照会である場合、本発明の方法は、図６にＤで示すように、図８に示すサブルーチンに進むことができる。
【００７２】
図８において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、８００に示す。
【００７３】
ブロック８０２に示すように、ターゲット装置１１４は、ブロック６０４で受信したメッセージの照会に含まれる所定の基準を満たしているか判定することができる。これは、たとえば、照会メッセージに含まれる基準を、ターゲット装置１１４の適切などのような構成要素と比較することによっても達成することができる。たとえば、受信した照会メッセージが、「このメッセージを受信するターゲット装置はPATENT.APP.DOCというファイルをもっているか？」と尋ねた場合、ターゲット装置１１４は、もっているファイルを調査して、いずれかのファイルが、受信した照会メッセージにおいて要求されたファイルと一致するか判定することができる。受信した照会メッセージが、「このメッセージを受信するターゲット装置はＤＯＳを実行することができるか？」と尋ねた場合、ターゲット装置１１４は、それ自体のシステム構成を評価して、受信した照会メッセージに記述されている構成と一致するか判定することができる。
【００７４】
ブロック８０４に示すように、ターゲット装置１１４が所定の基準を満たす場合、ターゲット装置１１４は、照会を発信したターゲット装置に応答データを返すことができる。たとえば、ターゲット装置１１２は、「このメッセージを受信するターゲット装置は「PATENT.APP.DOC」というファイルをもっているか？」と尋ねる照会メッセージを同報通信することができる。ターゲット装置１１４がファイルPATENT.APP.DOCをもっている（すなわち、所定の基準を満たす）場合、ターゲット装置１１４は、ターゲット装置１１４がそのファイルをもっていることを示す応答を、ターゲット装置１１２に送信することができる。本発明の一実施形態において、ターゲット装置１１４がそのファイルをもっていない場合、ターゲット装置１１４はやはり、そのファイルをもっていないことを示す応答を送信することができる。
【００７５】
本発明の実施形態によると、現在のターゲット装置１１４が所定の基準を満たす場合、ターゲット装置１１４は、現在のターゲット装置１１４から介入ターゲット装置を介して転送されるのではなく、起点ピア・ターゲット装置に直接送信される。したがって、たとえば、図１の実施形態では、ターゲット装置１１４が、ピア・ターゲット装置１２８から介入ターゲット装置１１８を介して探索照会を受信した場合、ターゲット装置１１４は、ターゲット装置１２８に直接応答する。本発明によって、ターゲット装置１２８についての情報がターゲット装置１１４に対して利用可能になっているので、ターゲット装置１１４は、ターゲット装置１２８に直接応答することができるようになる。たとえば、ターゲット装置１１４は、ターゲット装置１２８についての情報をもつことができる。というのは、ターゲット装置１１４は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１２８についての情報、たとえばターゲット装置１２８のＩＰアドレスを用いて更新済みだからである。
【００７６】
ターゲット装置１１４が、ブロック８１４、８１６、８１８、８２８に示す照会メッセージの所定の基準を満たしても満たさなくても、ターゲット装置１１４は次いで、データ・メッセージを転送するか、または期限切れとするか決定することができる。
【００７７】
ブロック８１４に示すように、照会メッセージは、データ・メッセージを受信する際に増分することができるホップ・カウンタを含むことも、それに関連づけられることもできる。このホップ・カウンタは、当該分野において公知である適切などのような手段を用いても、受信側ターゲット装置１１４によって増分することができる。たとえば、適切なアルゴリズムを用いて、ホップ・カウンタを増分することができる。ホップ・カウンタを決定するアルゴリズムは、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づくことができる。このホップ・カウンタは、データ・メッセージが受信された回数を示すことができる。本発明の一実施形態において、データ・メッセージを受信する各ターゲット装置は、データ・メッセージが受信される度にホップ・カウンタを増分する。
【００７８】
ブロック８１６に示すように、ホップ・カウンタは、メッセージを期限切れとすべきか（すなわち、メッセージが受信された回数、すなわちホップのカウントが存続時間の値に等しいか）判定するために、存続時間の値ｔと比較することができる。図８に示す実施形態において、ホップ・カウンタは、ホップ・カウンタが存続時間の値に等しいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが等しくない場合、メッセージは期限切れとならない。本発明の別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より大きいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが存続時間の値より大きい場合、メッセージは期限切れとならない。本発明のさらに別の実施形態では、ホップ・カウンタは、ホップ・カウンタが存続時間の値より小さいか判定するために、存続時間の値ｔと比較され、ホップ・カウンタが存続時間の値より小さい場合、メッセージは期限切れとならない。
【００７９】
存続時間の値は、適切などのような手段を使っても決定することができる。たとえば、存続時間の値は、存続時間の値を制御するターゲット装置の仕様に基づいて事前設定することができる。本発明の一実施形態では、存続時間の値を制御するターゲット装置は、データ・メッセージを発信したターゲット装置である。あるいは、ある特定のターゲット装置のユーザが、存続時間の値を設定することもできる。存続時間の値は、ネットワークの輻輳およびターゲット装置の処理速度のような要素に基づくこともできる。所与のターゲット装置によって用いられる移送機構が、存続時間の値を決定することもできる。あるいは、適切なアルゴリズムが、ネットワークの輻輳および所与のピア・ノードの処理制限のような要素に基づいて、存続時間の値を管理することもできる。
【００８０】
ブロック８１８に示すように、ホップ・カウンタが存続時間の値に等しい場合、メッセージは、期限切れとすることができる。本発明の一実施形態において、メッセージの有効期限が切れると、受信側ターゲット装置１１４は、それ以上そのメッセージを別のターゲット装置に転送しない。
【００８１】
ブロック８２８に示すように、ホップ・カウンタが存続時間の値に等しくない場合、ターゲット装置１１４は次いで、１つまたは複数の他のターゲット装置にデータ・メッセージを転送する。図８に示す実施形態では、たとえば、受信側ターゲット装置は、所定の数（ｎ）の隣接ノード／ピア・ターゲット装置にメッセージを転送することができる。この所定の数の隣接ノードは、ブロック４０８で上述した手段など、適切などのような手段によっても決定することができる。
【００８２】
受信側ターゲット装置１１４は次いで、図６および８にＢで示すように、ブロック６０２に戻ることができる。
【００８３】
ここで図６に戻ると、受信したメッセージがpingメッセージでも照会メッセージでもない場合、ブロック６１６に示すように、ターゲット装置１１４は、受信したメッセージが、ターゲット装置１１４によって同報通信された照会への応答データを提供するデータ・メッセージであるか判定することができる。
【００８４】
このような応答データは、たとえば、１つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、１つまたは複数の隣接ターゲット装置のＩＰアドレス、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または１つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の１つまたは複数でよい。
【００８５】
応答データは、１つまたは複数の隣接ピア装置からの集合リスト（すなわちピア・テーブル）の全部または一部を含むこともできる。あるいは、応答データは、ターゲット装置１１４によって送信された照会への返答を含むこともできる。たとえば、ターゲット装置１１４が、「TRADEMARK.APP.EXEというファイルをもっているか？」と尋ねる照会を同報通信した場合、受信されるメッセージは、１つまたは複数の隣接するターゲット装置がそのファイルをもっていることを示す応答でよい。本発明の一実施形態において、応答データは、応答側ターゲット装置から、照会を同報通信したターゲット装置に、直接送信することができる。
【００８６】
たとえば、図１の実施形態において、ターゲット装置１１４が隣接装置１１２、１１６、１１８に照会を送信した場合、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１２がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１２から受信することができる。ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１６がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１６から受信することもできる。ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１１８がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１１８から受信することもできる。
【００８７】
さらに、ターゲット装置１１４がターゲット装置１３６に直接照会を行っていない場合でも、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１３６がファイルをもっているか示す応答データ・メッセージを、ターゲット装置１３６から直接受信することができる。本発明によって、ターゲット装置１１４についての情報がターゲット装置１３６に対して利用可能になっているので、ターゲット装置１３６は、ターゲット装置１１４に直接応答することができるようになる。たとえば、ターゲット装置１３６は、ターゲット装置１１４についての情報をもつことができる。というのは、ターゲット装置１３６は、（ブロック５０８に示すように）そのピア・テーブルをターゲット装置１１４についての情報、たとえばターゲット装置１１４のＩＰアドレスを用いて更新済みだからである。
【００８８】
ターゲット装置１１４がターゲット装置１２８、１３８に直接照会を行っていない場合でも、ターゲット装置１１４は、ターゲット装置１１４に対してターゲット装置１２８、１３８がそれぞれファイルをもっているか示す応答データ・メッセージを、ターゲット装置１２８、１３８から直接受信することもできる。したがって、照会側ターゲット装置１１２、１１６、１１８から、ターゲット装置１１４は、ターゲット装置１１２、１１６、１３６、１１８、１２８、１３６からの直接の応答を受信することができる。
【００８９】
ブロック６１８に示すように、ターゲット装置１１４は次いで、応答データを処理することができる。たとえば、ターゲット装置１１４は、ターゲット装置１１４上の記憶位置、またはターゲット装置１１４と通信する記憶位置に応答データを格納することができる。あるいは、ターゲット装置１１４は、ターゲット装置１１４上のユーザ・インターフェース、またはターゲット装置１１４と通信するユーザ・インターフェースを介して、ユーザに応答データを提示することもできる。たとえば、ターゲット装置１１４は、探索結果として応答データをユーザに表示することができる。
【００９０】
図６にループ６３０で示すように、図６のルーチンは、あらゆる着信メッセージに対して繰り返すことができる。
【００９１】
図７において、図４のネットワーク環境における複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を、７００に示す。
【００９２】
ブロック７０２に示すように、ターゲット装置１１４は、照会が入力されるまで待つことができる。この照会は、上述したように、適切などのような照会でもよい。照会は、たとえば、１つまたは複数の隣接ターゲット装置が着信接続を受け入れるためのポート番号、１つまたは複数の隣接ターゲット装置のＩＰアドレス、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているファイルの数、１つまたは複数の隣接ターゲット装置がネットワーク上で共有しているデータのキロバイト数、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成要素についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア構成についての情報、所与のターゲット装置または１つもしくは複数の隣接ターゲット装置のソフトウェアまたはハードウェア互換性についての情報、あるいは所与のターゲット装置または１つもしくは複数の隣接ターゲット装置に対して利用可能なファイルについての情報の１つまたは複数についての情報を要求することができる。
【００９３】
本発明の一実施形態では、ユーザが照会を入力することができる。あるいは、照会は、ネットワーク１０２もしくはシステム１００またはその両方の別のターゲット装置または別の構成要素から入力することもできる。たとえば、ユーザは、ターゲット装置１１４で、ファイル「PATENT.APP.DOC」を求める照会を入力することができる。
【００９４】
ブロック７０４に示すように、ターゲット装置１１４は次いで、所定の数の隣接ノードｎに照会を転送することができる。この所定の数の隣接ノードは、ブロック４０８で上述した手段など、適切などのような手段によっても決定することができる。ターゲット装置１１４は次いで、図４および７にＣで示すように、ブロック７０２に戻ることができる。
【００９５】
本発明を、完全に機能するデータ処理システムの状況で説明したが、説明した処理は、他の適切などのような状況においても配布することができることが理解されよう。たとえば、説明した処理は、コンピュータ可読な命令媒体の形を取ることができる。本発明は、配布の実行に実際に使用される信号伝達媒体のタイプに関わらず、等しく適用される。コンピュータ可読媒体の例として、フロッピー（Ｒ）ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能なタイプの媒体、ならびにデジタルおよびアナログ通信リンク、たとえば無線周波数伝送や光波伝送といった伝送形体を使用した有線または無線通信リンクなどの伝送タイプの媒体がある。コンピュータ可読媒体は、あるデータ処理システムで実際に使用する場合には復号化される、符号化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【００９６】
【図１】本発明によるデータ処理システムのネットワークの一実施形態を示す概略図である。
【図２】本発明によるデータ処理システムの一実施形態を示すブロック図である。
【図３】本発明によるデータ処理システムの別の実施形態を示すブロック図である。
【図４】本発明による、ネットワーク環境における複数のターゲット装置の間の通信方法の一実施形態を示すフロー図である。
【図５】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法のサブルーチンの一実施形態を示すフロー図である。
【図６】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【図７】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【図８】図４に示すネットワーク環境における、複数のターゲット装置の間の通信方法の別のサブルーチンの一実施形態を示すフロー図である。
【国際調査報告】
2005514867.tif 000011
2005514867.tif 000012
2005514867.tif 000013