(57)【要約】多数のピアツーピア・ネットワークを相互接続する方法およびシステムが開示される。一実施形態によれば、ピアツーピア・ゲートウェイは１つ以上のピアツーピア・ネットワークと通信する。ゲートウェイは、自身が接続されているインターネットを通ってこれらのネットワークと通信する。ゲートウェイは、接続された各ネットワーク上で、データの記憶、検索、データの送信、データの変換を含む（これらに限定されない）多くの機能を実行するように構成され得る。
2009530922.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイにおいて、１つ以上のピアツーピア・ネットワークを介してアクセス可能なコンテンツを要求する検索要求を受信することと、
第１のプロトコルを有する第１のピアツーピア・ネットワークと、第２のプロトコルを有する第２のピアツーピア・ネットワークとを含む前記１つ以上のピアツーピア・ネットワークへのアクセスに、前記ゲートウェイを使用することと
を含む、方法。
【請求項２】
前記検索要求を、前記第１のプロトコルおよび前記第２のプロトコルに変換することをさらに含む、請求項１に記載の方法。
【請求項３】
前記検索要求は、前記ゲートウェイと通信するクライアントから受信される、請求項１に記載の方法。
【請求項４】
前記１つ以上のピアツーピア・ネットワークへのアクセスに前記ゲートウェイを使用することは、さらに、
前記第１のピアツーピア・ネットワークおよび前記第２のピアツーピア・ネットワークに前記検索要求を送ること
を含む、請求項１に記載の方法。
【請求項５】
第１のプロトコルを有する第１のピアツーピア・ネットワークと、第２のプロトコルを有する第２のピアツーピア・ネットワークとを含む１つ以上のピアツーピア・ネットワークにアクセスするためにゲートウェイを使用することと、
前記第１のピアツーピア・ネットワークからクライアントにコンテンツを送信することと
を含む、方法。
【請求項６】
前記クライアントは、前記第２のピアツーピア・ネットワークと通信する、請求項５に記載の方法。
【請求項７】
前記第１のピアツーピア・ネットワークからクライアントにコンテンツを送信することは、
前記第１のピアツーピア・ネットワークから前記ゲートウェイに前記コンテンツを送信することと、
前記第１のプロトコルから前記第２のプロトコルへ前記コンテンツを変換することと、
前記ゲートウェイから前記第２のピアツーピア・ネットワークに前記コンテンツを送信ことと、
前記第２のピアツーピア・ネットワークから前記クライアントに前記コンテンツを送信することと
を含む、請求項６に記載の方法。
【請求項８】
ゲートウェイにおいて送信元からのコンテンツを受信することと、
第１のプロトコルを有する第１のピアツーピア・ネットワークに前記コンテンツを提供することと、
第２のプロトコルを有する第２のピアツーピア・ネットワークに前記コンテンツを提供することと
を含む、方法。
【請求項９】
前記コンテンツを、前記第の１プロトコルおよび前記第２のプロトコルに変換することをさらに含む、請求項８に記載の方法。
【請求項１０】
複数の命令が格納されているコンピュータ可読媒体であって、前記複数の命令は、コンピュータによって実行されると、前記コンピュータに、
ゲートウェイにおいて、１つ以上のピアツーピア・ネットワークを介してアクセス可能なコンテンツを要求する検索要求を受信することと、
第１のプロトコルを有する第１のピアツーピア・ネットワークと、第２のプロトコルを有する第２のピアツーピア・ネットワークとを含む前記１つ以上のピアツーピア・ネットワークへのアクセスに、前記ゲートウェイを使用することと
を行わせる、コンピュータ可読媒体。
【請求項１１】
前記コンピュータ可読媒体には、コンピュータによって実行されると、前記コンピュータに、前記検索要求を前記第１のプロトコルおよび前記第２のプロトコルに変換することをさらに行わせる、さらなる命令が格納されている、請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記検索要求は、前記ゲートウェイと通信するクライアントから受信される、請求項１０に記載のコンピュータ可読媒体。
【請求項１３】
前記コンピュータ可読媒体には、前記１つ以上のピアツーピア・ネットワークへのアクセスに前記ゲートウェイを使用するためのさらなる命令が格納されており、前記さらなる命令は、コンピュータによって実行されると、前記コンピュータに、
前記第１のピアツーピア・ネットワークおよび前記第２のピアツーピア・ネットワークに前記検索要求を送ること
をさらに行わせる、請求項１０に記載のコンピュータ可読媒体。
【請求項１４】
複数の命令が格納されているコンピュータ可読媒体であって、前記複数の命令は、コンピュータによって実行されると、前記コンピュータに、
第１のプロトコルを有する第１のピアツーピア・ネットワークと、第２のプロトコルを有する第２のピアツーピア・ネットワークとを含む１つ以上のピアツーピア・ネットワークにアクセスするためにゲートウェイを使用することと、
前記第１のピアツーピア・ネットワークからクライアントにコンテンツを送信することと
を行わせる、コンピュータ可読媒体。
【請求項１５】
前記クライアントは、前記第２のピアツーピア・ネットワークと通信する、請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記コンピュータ可読媒体には、コンピュータによって実行されると、前記コンピュータにさらに、前記第１のピアツーピア・ネットワークからクライアントにコンテンツの送信を行わせるさらなる命令が格納されており、前記さらなる命令は、
前記第１のピアツーピア・ネットワークから前記ゲートウェイに前記コンテンツを送信することと、
前記第１のプロトコルから前記第２のプロトコルへ前記コンテンツを変換することと、
前記ゲートウェイから前記第２のピアツーピア・ネットワークに前記コンテンツを送信することと、
前記第２のピアツーピア・ネットワークから前記クライアントに前記コンテンツを送信することと
を含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
複数の命令を含むコンピュータ可読媒体であって、前記複数の命令は、コンピュータによって実行されると、前記コンピュータに、
ゲートウェイにおいて送信元からのコンテンツを受信することと、
第１のプロトコルを有する第１のピアツーピア・ネットワークに前記コンテンツを提供することと、
第２のプロトコルを有する第２のピアツーピア・ネットワークに前記コンテンツを提供することと
を行わせる、コンピュータ可読媒体。
【請求項１８】
前記コンピュータ可読媒体には、コンピュータによって実行されると、前記コンピュータに、前記コンテンツを前記第１のプロトコルおよび前記第２のプロトコルに変換することをさらに行わせる、さらなる命令が格納されている、請求項１７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、一般的にコンピュータ・システムに関し、特にピアツーピア・ネットワーク間の通信用の方法およびシステムに関する。
【背景技術】
【０００２】
インターネットは、多数のさらに小さい相互接続されたネットワークから構成される。これらのネットワークの各々は、多数のシステムをインターネットに接続する可能性がある。これらのシステムは、パーソナル・コンピュータ、サーバー、またはインターネット互換性のある他のデバイスであり得る。
【０００３】
ネットワークには、インターネット、イントラネット、ダークネット、ピアツーピア・ネットワークなど、インターネットのインフラストラクチャを使用する様々なものが多数ある。インターネットは一般的に公開のアクセス・ネットワークであり、インターネットを利用できれば誰もが自由にアクセスできる。イントラネットは、あらかじめ指定されたグループのユーザーだけがその中の情報にアクセスできる、制限されたアクセス・ネットワークである。ダークネットは、通信されるコンテンツへのアクセスについて、相手の許可なくユーザー間で通信できるネットワークのカテゴリーである。
【０００４】
インターネット上で最もよく見られる関係は、クライアント・サーバーの関係である。この配置では、多くのサーバーはクライアントがアクセスできる情報を格納し保持している。ユーザーはインターネットへのアクセスを取得し、これらのサーバーへアクセスし、アップロード（サーバーへ情報を送る）またはダウンロード（サーバーから情報を受ける）のいずれかによって通信する。別の配置には、ピアツーピア・ネットワークがある。ピアツーピア・ネットワーク（すなわち、クライアント対クライアントのネットワーク）は、サーバーではなく、インターネットに接続された個々のクライアント・システムを利用し、記憶および送信を行う。「ピアツーピア」という用語は、各ユーザーが情報の記憶／送信のほか、情報の検索の両方に関与するネットワークの性質を表している。ピアツーピア・ネットワークのユーザーは、一般的に他のユーザーと同じレベルで始まるが、階層的な配置になるよう自身を構成することができる。様々な機能に対し、様々な配置が形成され得る。すなわち、ユーザーの検索にネットワークが使用されるとき、ユーザーは、ネットワークがデータ送信に使用されるときのような階層の１つの形式を取り得る。構成に関わらず、ピアツーピア・ネットワークのユーザーは、媒介のサーバーを介して通信せず、互いに直接通信する。
【０００５】
多種多様なピアツーピア・ネットワークがある。インターネット上に構築されるものもあれば、ダークネット上に構築されるもの、さらにイントラネット上に構築されるものもある。これらのネットワークが急増しているので、ピアツーピア・ネットワークのユーザー間には、数多くの様々なプロトコルがある。これらのネットワークのどれかにアクセスするには、ユーザーはその特定のネットワークのプロトコルを理解する必要がある。
【発明の開示】
【課題を解決するための手段】
【０００６】
多数のピアツーピア・ネットワークを相互接続する方法およびシステムが開示される。ピアツーピア・ゲートウェイは、各ネットワークと通信し、相互接続されたネットワークの各々にアクセスする均質な環境をユーザーに提供する。ゲートウェイは、インターネットに接続し、そのインフラストラクチャを使用して、接続されるピアツーピア・ネットワークと通信する。ゲートウェイは、データの記憶、検索、データの送信、およびデータの変換を含む多くの機能を行うように構成され得るが、これらに限定されない。
【発明を実施するための最良の形態】
【０００７】
多数のピアツーピア・ネットワークを相互接続する方法およびシステムが開示される。ピアツーピア・ゲートウェイは、各ネットワークと通信し、相互接続されたネットワークの各々にアクセスする均質な環境をユーザーに提供する。ゲートウェイは、インターネットに接続し、そのインフラストラクチャを使用して、接続されるピアツーピア・ネットワークと通信する。ゲートウェイは、データの記憶、検索、データの送信、データの変換を含む多くの機能を行うように構成され得るが、これらに限定されない。
【０００８】
以下の記載では、説明の目的のため、本願明細書で開示される様々な発明の概念を完全に理解するために、特定の学術用語が記載されるが、本願明細書で開示される様々な発明の概念を実施するために、これらの特定の詳細が必要とされるわけではないことは、当業者であれば分かるであろう。
【０００９】
本発明はさらに、本願明細書に記載の動作を行う装置に関する。これらの装置は、要求された目的のために特別に構成されてもよく、コンピュータに格納されたコンピュータ・プログラムによって選択的に稼働される、または再構成される汎用コンピュータを備え得る。このようなコンピュータ・プログラムは、フロッピー（登録商標）・ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、リード・オンリー・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気あるいは光カード、または電子命令の格納に適し、コンピュータ・システム・バスに接続された他の何らかのタイプの媒体のようなコンピュータ可読記憶媒体に格納され得るが、これらに限定されない。
【００１０】
本願明細書で示されるアルゴリズムおよび表示は、特定のコンピュータまたは他の装置に本質的に関連するわけではない。本願明細書の技術に従って、様々な汎用システムがプログラムと共に使用され得、必要とされる方法ステップを行うために、さらに特化された装置を構築することが有用であることが示され得る。これらの様々なシステムに必要な構成は、以下の説明で分かるであろう。
【００１１】
図１は、従来のインターネット・トポグラフィー１９９のブロック図を示している。ネットワーク１９９は、多数のピアツーピア・ネットワーク１１０を含み、これは多数のユーザーをインターネット１００に接続し得る。ネットワーク１９９は、さらにスーパーノード１２０を含み、これは、以前はかなりの量のデータを持つピアであったネットワーク１９９に接続されるシステムであり得る。そのデータによっては、ピアはスーパーノード１２０の高いステータスに引き上げられ得、その結果、検索するユーザーによって高い優先度でアクセスされ得る。スーパーノード１２０は、典型的なクライアント／サーバー関係でのサーバーではなく、本実施形態のサーバーのように動作する。どのピアもスーパーノード１２０になる可能性がある。ネットワーク１９９にさらに示されているのはダークネット１３０であり、これは、残りのネットワーク１９９によって検出されずに、多数のユーザーを互いに接続することもできる。最後に、イントラネット１４０が示されているが、これはあらかじめ定義されたリストのユーザーへのアクセスを制限するプライベート・ネットワークであり得る。ピアツーピア・ネットワーク１１０、スーパーノード１２０、ダークネット１３０、およびイントラネット１４０は、それぞれイーサネット（登録商標）または８０２．１１無線（ＷＩＦＩ）のようなネットワーク接続１５０を介してインターネット１００に接続される。図１は、各ネットワークがピアツーピア・ネットワークとして示されているが、非ピアツーピア・ネットワークをインターネットに接続することもできるだろう。
【００１２】
図２は、本発明の一実施形態による、ピアツーピア・ゲートウェイ２６０によって相互接続される例示的なネットワークのブロック図を示している。ネットワーク２９９は、ピアツーピア・ネットワーク２１０、スーパーノード２２０、ダークネット２３０、イントラネット２４０を含む多数のネットワークを含む。これらのネットワークのそれぞれは、イーサネット（登録商標）またはＷＩＦＩのようなネットワーク接続２５０を介して、インターネット２００に接続される。図２は、ネットワーク接続２５０を通ってインターネット２００に接続し、ネットワーク接続２７０を介して１つ以上のネットワーク２１０、２２０、２３０、２４０、および／または他のゲートウェイ２６０に仮想的に接続するピアツーピア・ゲートウェイ２６０を示している。
【００１３】
ネットワーク接続２７０は、破線で示されているように仮想の接続である。仮想ネットワーク接続２７０は、２地点間の接続ではなく、２つ以上のデバイスを接続するインターネット２００のインフラストラクチャを使用する。一実施形態では、仮想ネットワーク接続２７０で接続しているネットワーク２１０、２２０、２３０、２４０は、互いにアドレスして直接的に通信リンクを開く。
【００１４】
各ピアツーピア・ゲートウェイ２６０は、２つ以上のピアツーピア・ネットワーク２１０、２２０、２３０、２４０間で通信の行為を行う。ゲートウェイ２６０は、各個々のネットワーク２１０、２２０、２３０、２４０との対話に関連するすべての処理オーバーヘッドを負う。ユーザーが１つ以上の個々のネットワーク２１０、２２０、２３０、２４０にアクセスしようとする場合には、ネットワーク２１０、２２０、２３０、２４０の各々と所望のタスクを行うゲートウェイ２６０とだけインターフェースすればよい。ゲートウェイ２６０は、１つの接触点である単一のゲートウェイ２６０を通じて、１つ以上のピアツーピア・ネットワークと交信するシームレスなインターフェースをユーザーに提供する。ゲートウェイ２６０は、自身が接続されるネットワークのデータ記憶、検索、データ送信、またはデータ変換のそれぞれの機能のどれかまたはすべてをサポートし得る。
【００１５】
（データ記憶）
ピアツーピア・ゲートウェイ２６０は、音楽、ビデオ、ファイル、メタデータなどを含むデータを格納し得る。一実施形態では、ピアツーピア・ゲートウェイ２６０は、一般に音楽のような特定のトピック専用であるか、特定の音楽グループ専用である。このゲートウェイ２６０は、音楽または音楽グループに関連するデータまたはメタデータを格納し得る。ユーザーがこのゲートウェイ２６０を通って情報にアクセスしようとすると、ゲートウェイ２６０は、ネットワークからデータを最初に獲得するのではなく、単にデータをユーザーに提供するだけでよいので、帯域幅が減る。メタデータは、ファイルのタイプ、アーティスト、長さ、サイズ、位置などのように、特定のファイルについてファイルを説明する情報である。これは、ファイルを検索する際に役立つこと思われる。例えば、実際のファイルは遠隔に格納され得、ユーザーはファイルを見つけるのにローカルのシステム上のメタデータを検索し得る。ユーザーがメタデータを検索することによってファイルを見つけると、送信が開始され得る。
【００１６】
（検索）
ピアツーピア・ゲートウェイ２６０は、ピアツーピア・ゲートウェイ２６０が接続されているネットワーク２９９上のデータをユーザーが検索する際の検索機能をサポートし得る。ユーザーが要求を出すと、要求はピアツーピア・ゲートウェイ２６０に転送され、ゲートウェイ２６０はピアツーピア・ゲートウェイ２６０内に格納されている任意のデータをユーザーに直接提供し得る。あるいは、ゲートウェイ２６０は自身が接続されているすべてのネットワーク（すなわち、２１０、２２０、２３０、２４０）を検索する能力があって、その結果をユーザーに提供し得る。これらの結果は、ドキュメントのリストの形式であったり、または実際のドキュメント自体であったりし得る。
【００１７】
（データ送信）
ゲートウェイ２６０は、２つのネットワーク間（送信元のネットワークから送信先のネットワークまで）、またはネットワークとユーザーとの間でデータを送信し得る。例として、ピアツーピア・ネットワークＣ  ２１０に接続されたユーザーが、ピアツーピア・ネットワークＡ  ２１０上で有効なデータを要求することを考える。一実施形態では、データは最初にピアツーピア・ネットワークＡ  ２１０内の送信元からピアツーピア・ゲートウェイＢ  ２６０に送信される。ピアツーピア・ゲートウェイＢ  ２６０は、このデータを格納し、ピアツーピア・ネットワーク  Ｃ２１０に接続されたユーザーにデータを送信する。別の実施形態では、データは送信元のピアツーピア・ネットワークＣ  ２１０から送信先のピアツーピア・ネットワークＡ  ２１０に直接送信される。これは、データの個々のビットまたはブロックを送信するか、当技術分野で周知の他の何らかの送信方式によって行われ得る。
【００１８】
ピアツーピア・ゲートウェイ２６０のもう１つの重要な機能は、ハッシングである。ファイルは、ＭＤ４、ＳＨＡ−Ｉなどのようなアルゴリズムに従ってハッシュされ得る。このようなハッシュ・アルゴリズムに従って、ゲートウェイ２６０は、検索されたファイルのハッシュと期待されるファイルのハッシュとを比較し、ゲートウェイ２６０が適切なファイルを検索したかどうかを判断する。２つの異なるタイプのネットワークにまたがってデータを送信する場合、ゲートウェイ２６０は１つまたは複数の送信先のネットワークで必要とされる形式の新しいハッシュを生成し得る。
【００１９】
（データ変換）
様々なネットワークが様々な通信プロトコルを使用することがあるので、データを送信するということは常にデータをコピーするだけとうわけではない。接続されたネットワークすべてと完全に通信するために、ゲートウェイ２６０は、コンテンツ形式およびファイル構造のデータ変換を行う。変換が必要になると思われるデータ形式の例には、ＭＰ３、ＡＡＣ、ＺＩＰ、またはＲＡＲ形式が含まれる。ファイルはパーツに分けてパッケージングされてもよく、ゲートウェイ２６０は分けられたパーツを単一のファイルに統合するか、単一のファイルを多数のパーツに分ける機能を行ってもよい。
【００２０】
図３は、本発明の一実施形態による、ピアツーピア・ゲートウェイによって行われる例示的なソフトウェア機能のブロック図を示している。ソフトウェア３９９は、ピアツーピア・ゲートウェイ２６０上で実行する記載された機能の各々を実施するのに十分であり、ピアツーピア・ゲートウェイ２６０にあるか、ネットワーク２９９に接続される他の何らかのシステム内にあり得る。ソフトウェア３９９は、Ｇｎｕｔｅｌｌａ、ＢｉｔＴｏｒｒｅｎｔ、およびｅＤｏｎｋｅｙの３つのタイプのピアツーピア・ネットワーク用の機能を提供する。これら３つのピアツーピア・ネットワークのそれぞれは、例として使用され、ピアツーピア・ゲートウェイ２６０によって同様のピアツーピア・プロトコルがサポートされてもよい。
【００２１】
システム・ソフトウェア３００は、ゲートウェイ２６０の基本的な機能を実行し、少なくともブート・ファームウェアおよびオペレーティング・システムを含む。制御インターフェース３１０は、コンポーネントの各々と個別に通信して、ゲートウェイ２６０の様々なパーツ間の動作を制御する。これは、処理するクエリがどれであるか定義したり、コンテンツ・キャッシュ３３０に格納する情報を決めたり、様々なネットワークの優先順位をつけたりするようなタスクを行ってもよい。制御インターフェース３１０へのアクセスは、インターネットで直接人間から行われることになる。一実施形態では、ユーザーは、ゲートウェイ２６０に接続されたピアツーピア・ネットワークを介して、制御インターフェース３１０にアクセスする。
【００２２】
ゲートウェイ２６０が異なるネットワークにまたがって検索するのに使用される場合、クエリは最初に制御インターフェース３１０を通過する。同様に、結果は発信するネットワークを通過して、マスタ・クエリ・プロセッサ３５０を通り、最後にゲートウェイのユーザーに到達する。さらに別の実施形態では、第２のゲートウェイに接続されたネットワークまたはコンテンツ・キャッシュ３３０にまたがって検索する目的のために、マスタ・クエリ・プロセッサ３５０が別のピアツーピア・ゲートウェイ２６０中のマスタ・クエリ・プロセッサ３５０と交信し得る。このようにして、多くのゲートウェイ２６０を相互接続して、多くの異なるネットワークを検索し、１つだけのピアツーピア・ゲートウェイ２６０に接続されたユーザーにすべての結果を送信することができる。
【００２３】
ピアツーピア・ゲートウェイ２６０は、さらにシステム・マネージャ３２０を有する。これは、ピアツーピア・ゲートウェイ２６０の様々なタスクを調整するソフトウェアである。このシステム・マネージャ３２０は、単なるスタートアップ・スクリプトのようにシンプルなソフトウェアか、完全な管理インフラストラクチャとすることができる。ゲートウェイ２６０は、コンテンツ・キャッシュ３３０および情報キャッシュ３４０の２つのストレージ・キャッシュを含む。コンテンツ・キャッシュ３３０は、小さいファイル、メタデータ、または検索履歴および検索結果であり得る実際のコンテンツを格納する。コンテンツ・キャッシュ３３０は、管理者がピアツーピア・ゲートウェイ２６０内への特定のデータの格納を望んでいる場合、手動でポピュレートされるか、任意の数のアルゴリズムに従って自動的にデータを格納するようにプログラムされ得る。一実施形態では、ごく最近の検索結果がコンテンツ・キャッシュ３３０に格納される。別の実施形態では、動的アルゴリズムが、最近の検索および接続されたネットワークに基づいて、どのデータがピアツーピア・ゲートウェイ２６０のユーザーにとって最も関心があるのかを判断する。コンテンツ・キャッシュ３３０は、単一のピアツーピア・ゲートウェイ２６０のソフトウェア３９９内の機能ブロックとして示されているが、多くのゲートウェイ２６０によってアクセス可能な、ネットワーク上に存在する独立したメモリ構造であってもよい。共有のストレージでは、ピアツーピア・ゲートウェイ２６０はそれらの間でデータの送信をする必要がないので、さらに効率的な蓄積交換操作をできる。それどころか、要求を出しているピアツーピア・ゲートウェイ２６０は、共有データ・ストレージ３３０からのデータに直ちにアクセスする。
【００２４】
情報キャッシュ３４０は、その情報キャッシュ３４０のあるピアツーピア・ゲートウェイ２６０に接続された様々なネットワークについての情報を格納する。情報キャッシュ３４０に格納され得る情報には、どのネットワークにどんなデータがあるのか、過去のパフォーマンスに基づいてネットワークがどのくらい信頼性があるのかを示す表示、およびそのゲートウェイ２６０によって提供される情報の品質を向上させる他の何らかの情報が含まれる。
【００２５】
各ゲートウェイ２６０はマスタ・クエリ・プロセッサ３５０を有しており、これは、様々なピアツーピア・ネットワーク・マネージャ３６１、３７１、３８１への、およびこれらからのクエリを送るクエリ要求を扱う。マスタ・クエリ・プロセッサ３５０は、これらのクエリに応答して様々なネットワーク・マネージャ３６１、３７１、３８１から提供されるデータをコンパイルし、そのデータをユーザーによって要求されるリストまたはファイルの形式でユーザーに出力して戻すための準備も行う。
【００２６】
ゲートウェイ２６０は、接続する様々なネットワークへの１つ以上のインターフェース部３６０、３７０、３８０を含む。一実施形態によれば、ゲートウェイ２６０はＧｎｕｔｅｌｌａ３６０、ＢｉｔＴｏｒｒｅｎｔ３７０、およびｅＤｏｎｋｅｙ３８０のプロトコルをサポートする。Ｇｎｕｔｅｌｌａ３６０、ＢｉｔＴｏｒｒｅｎｔ３７０、およびｅＤｏｎｋｅｙ３８０の各々は、それぞれネットワーク・マネージャ３６１，３７１、３８１、およびそのブロックが扱うネットワークのタイプによって異なる多くの独自の機能コンポーネントを有する。ネットワーク・マネージャ３６１、３７１、３８１は、それぞれのネットワーク用のプロトコル・エンジン、コントローラ、およびステート・マシンである。ネットワーク・マネージャ３６１、３７１、３８１は、ピアツーピア・プロトコルをエミュレートし、ピアツーピア・ネットワークに、クライアント、サーバー、スーパーノードなどのようなネットワーク・エンティティとして現れる。
【００２７】
Ｇｎｕｔｅｌｌａブロック３６０は、Ｇｎｕｔｅｌｌａマネージャ３６１、Ｇｎｕｔｅｌｌａサーチャー３６２、およびＧｎｕｔｅｌｌａクエリ・プロセッサ３６３を含む。Ｇｎｕｔｅｌｌａサーチャー３６２は、転送クエリの一部としてＧｎｕｔｅｌｌａネットワークの検索を行う。Ｇｎｕｔｅｌｌａクエリ・プロセッサ３６３は、接続されたネットワークから入ってくるクエリを受け付け、これらのクエリをマスタ・クエリ・プロセッサ３５０に転送する。
【００２８】
ＢｉｔＴｏｒｒｅｎｔブロック３７０は、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１、ＢｉｔＴｏｒｒｅｎｔコンテンツ・ポスター３７２、およびＢｉｔＴｏｒｒｅｎｔトラッカー／シーダー／リーチャー３７３を含む。ＢｉｔＴｏｒｒｅｎｔコンテンツ・ポスター３７２は、データを検索可能な形式でポストする。ＢｉｔＴｏｒｒｅｎｔトラッカー／シーダー／リーチャーは、ネットワークへデータをアップロードするトラッカー／シーダー、およびネットワークからデータをダウンロードするリーチャーのような多数の機能を有する。
【００２９】
ｅＤｏｎｋｅｙブロック３８０は、ｅＤｏｎｋｅｙマネージャ３８１、ｅＤｏｎｋｅｙコンテンツ・パブリッシャー３８２、およびｅＤｏｎｋｅｙサーチャー３８３を有する。ｅＤｏｎｋｅｙコンテンツ・パブリッシャー３８２は、データをｅＤｏｎｋｅｙサーバーにプッシュする。ｅＤｏｎｋｅｙコンテンツ・パブリッシャー３８２がサーバーにプッシュするデータは、コンテンツ・キャッシュ３３０からのものである。最後に、ｅＤｏｎｋｅｙサーチャー３８３は、他のネットワーク・マネージャ３６１、３７１、３８１からの転送クエリの一部として、ｅＤｏｎｋｅｙネットワークを検索する。
【００３０】
ネットワーク・マネージャ３６１、３７１、３８１は、マスタ・クエリ・プロセッサ３５０を通って互いに通信する前に、データを共通のフォーマットに変換する。この変換は、それぞれのマネージャ３６１、３７１、３８１によって行われてもよく、またはマスタ・クエリ・プロセッサ３５０によって行われ得る。この変換は、すべてのデータをゲートウェイ２６０のネイティブ・プロトコルに変換してもよく、またはデータが入って来るネットワークのうち１つのプロトコルにデータを選択的に変換してもよい。
【００３１】
送信元のネットワークと送信先のネットワークが、異なるハッシュ・アルゴリズム、またはハッシュの異なるファイルの部分を使用している場合、ピアツーピア・ゲートウェイ２６０は、一実施形態によれば、ハッシング・ブリッジの機能を果たす。送信元のネットワーク・マネージャは、このファイルを送信し、コンテンツ・キャッシュ３３０に格納する。続いて、送信先のネットワーク・マネージャは、送信先のネットワークのハッシング・アルゴリズムに従って、ファイルをハッシュする。続いてこのファイルは、送信先のネットワークに送信される。
【００３２】
本願明細書で述べられている実施形態は、それぞれが単一のネットワークと通信するネットワーク・マネージャ３６１、３７１、３８１を説明している。別の実施形態では、各ネットワーク・マネージャ３６１、３７１、３８１は、各ピアツーピア・ネットワークが同じネットワーク・プロトコルを使用して通信するならば、多数のピアツーピア・ネットワークと通信できるだろう。
【００３３】
図４は、本発明の一実施形態による、ピアツーピア・ゲートウェイがＧｎｕｔｅｌｌａユーザーからのクエリを扱う例示的なプロセスを示すフローチャートである。Ｇｎｕｔｅｌｌａネットワーク上でのユーザーのクエリは、Ｇｎｕｔｅｌｌａマネージャに転送され得る（４１０）。受信されると、クエリはマスタ・クエリ・プロセッサ３５０に送信される（４２０）。次いで、マスタ・クエリ・プロセッサ３５０は、ピアツーピア・ゲートウェイ２６０に接続された１つ以上の他のピアツーピア・ネットワークを検索するために、転送ポリシーを適用するかどうかを判断する（４３０）。ポリシーが適用される場合、マスタ・クエリ・プロセッサ３５０は、示されている例ではｅＤｏｎｋｅｙマネージャ３８１およびＢｉｔＴｏｒｒｅｎｔマネージャ３７１である、適切なネットワーク・マネージャにクエリを転送する（４３１）。次いで、これらのネットワークｅＤｏｎｋｅｙおよびＢｉｔＴｏｒｒｅｎｔのそれぞれは、クエリに応答してデータ用のネットワークを検索し（４３２）、これらの結果をマスタ・クエリ・プロセッサ３５０にレポートする（４３３）。転送ポリシーが適用されない場合、または結果がマスタ・クエリ・プロセッサ３５０にレポートされると（４３３）、マスタ・クエリ・プロセッサ３５０は、クエリに応答してコンテンツ・キャッシュ３３０中のデータを検索する（４４０）。マスタ・クエリ・プロセッサ３５０は、各検索の結果をＧｎｕｔｅｌｌａマネージャ３６１にレポートし（４５０）、次いでＧｎｕｔｅｌｌａマネージャ３６１は、最終のレポーティングを戻すため、ピアツーピア・ネットワークを通ってネットワーク・マネージャ３８１、３７１にその結果をレポートし、最後に要求しているユーザーへレポートする（４６０）。
【００３４】
結果がユーザーにレポートされて戻されると（４６０）、ユーザーはデータ送信を要求し得る。ピアツーピア・ゲートウェイ２６０は、この要求を適切なｅＤｏｎｋｅｙまたはＢｉｔＴｏｒｒｅｎｔサーバーから、それぞれのネットワーク・マネージャ３７１、３８１を通ってユーザーに直接データを送信することによって、この要求に対処し得る。あるいは、データがコンテンツ・キャッシュ３３０に格納されている場合、ゲートウェイ２６０は、データをコンテンツ・キャッシュ３３０中のその位置からユーザーに送信する。
【００３５】
図５は、本発明の一実施形態による、ｅＤｏｎｋｅｙサーバーへデータをポストし、ピアツーピア・ゲートウェイを使用してユーザーにデータを送信する例示的なプロセスを示すフローチャートである。ピアツーピア・ゲートウェイ２６０は、ポリシーに基づいて何を発行するかを判断することによって、ポスティングを容易にする（５１０）。ポリシーは有効なものは何でも発行するものであるか、またはポリシーはデータを示す単語を発行するものであるか、またはポリシーはタイトルの固定のセットを発行するものであり得る。考えられるどんなポリシーも作成できるので、ポストされる情報は多岐にわたり得る。ポリシーは、有効なコンテンツに基づいて作成され得る。あるいは、ポリシーはゲートウェイ２６０固有のもので、広く動作できるものであり得る。
【００３６】
続いて、ｅＤｏｎｋｅｙコンテンツ・パブリッシャー３８２は、発行されるデータだけを識別するため、有効なデータにポリシーを適用する（５２０）。次に、ｅＤｏｎｋｅｙマネージャ３８１は、１つ以上のｅＤｏｎｋｅｙサーバーと通信してデータを発行する（５３０）。データが発行されると、ユーザーはｅＤｏｎｋｅｙサーバーからのそのデータの送信を要求し得る（５４０）。これが起こると、ｅＤｏｎｋｅｙサーバーはそのままクライアントをピアツーピア・ゲートウェイ２６０のｅＤｏｎｋｅｙマネージャ３８１に照会させる（５５０）。ｅＤｏｎｋｅｙマネージャ３８１は、送信元からユーザーへのデータの送信を容易にする（５６０）。
【００３７】
図６は、本発明の一実施形態による、ピアツーピア・ゲートウェイを使用してＢｉｔＴｏｒｒｅｎｔシステムにデータを送信する例としてのプロセスを示すフローチャートである。ＢｉｔＴｏｒｒｅｎｔシステムでは、ユーザーはＢｉｔＴｏｒｒｅｎｔサーバーに格納されているデータに直接アクセスできるだろう。これは、ウェブサイト、ソフトウェア、または他の何らかの実行可能プログラムの形態であってもよい。
【００３８】
ユーザーがデータを要求すると（６１０）、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１はマスタ・クエリ・プロセッサ３５０にこのクエリを送る（６２０）。マスタ・クエリ・プロセッサ３５０は、転送ポリシーを適用するかどうかを判断する（６３０）。適用する場合、マスタ・クエリ・プロセッサ３５０は、ポリシーに従って要求を転送する（６４０）。一実施形態では、ポリシーは、ｅＤｏｎｋｅｙおよびＧｎｕｔｅｌｌａネットワークが検索されることを判断する。この実施形態によれば、ｅＤｏｎｋｅｙマネージャ３６１およびＧｎｕｔｅｌｌａマネージャ３８１は、ユーザーの要求に応答して、データを求めてそれぞれのネットワークを検索する（６３１）。続いてマネージャ３６１、３８１は、それらのクエリの結果をマスタ・クエリ・プロセッサ３５０にレポートする（６３２）。マスタ・クエリ・プロセッサ３５０は、検索の結果をＢｉｔＴｏｒｒｅｎｔマネージャ３７１に報告し（６３３）、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１がｅＤｏｎｋｅｙおよび／またはＧｎｕｔｅｌｌａネットワークからコンテンツ・キャッシュ３３０にデータを送信する（６３４）。転送ポリシーがない場合、またはデータがネットワークからコンテンツ・キャッシュ３３０に送信されると（６３４）、マスタ・クエリ・プロセッサ３５０は、コンテンツ・キャッシュ３３０中の応答データを検索する（６４０）。次に、マスタ・クエリ・プロセッサ３５０は、コンテンツ・キャッシュ検索の結果をＢｉｔＴｏｒｒｅｎｔマネージャ３７１にレポートする（６５０）。ＢｉｔＴｏｒｒｅｎｔマネージャ３７１は、トレント・ファイルを作成し（６６０）、これをＢｉｔＴｏｒｒｅｎｔコンテンツ・ポスター３７２が要求しているユーザーに送信する（６７０）。
【００３９】
ＢｉｔＴｏｒｒｅｎｔネットワーク上でファイルを検索するには、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１が有効なＢｉｔＴｏｒｒｅｎｔファイルのサイトのリストを保持している必要がある。インターネット２００に接続されたシステム上に位置するこれらの各サイトは、有効なファイルのトレントのリストを含んでいてもよい。ユーザーがＢｉｔＴｏｒｒｅｎｔネットワーク上でクエリを行うと、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１はトレントの各リストを検索し、ファイル・サイトの応答情報をユーザーに応答する。あるいは、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１は、トレントのキャッシュを保持し得る。
【００４０】
ＢｉｔＴｏｒｒｅｎｔネットワークを通ってユーザーにデータを送信するには、ＢｉｔＴｏｒｒｅｎｔコンテンツ・ポスター３７２がコンテンツ・キャッシュ３３０中の有効なトレントのリストをあるサイトにポストするか、ユーザーがＢｉｔＴｏｒｒｅｎｔマネージャ３７１に問い合わせるかのいずれかである。ＢｉｔＴｏｒｒｅｎｔコンテンツ・ポスター３７２が有効なトレントをあるサイトに発行する場合、ユーザーはこれらのトレントのうちの１つの送信を要求してもよい。その要求は、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１に転送される。次に、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１は、コンテンツ・キャッシュ３３０から要求しているユーザーへのトレントの送信を調整する。ユーザーがＢｉｔＴｏｒｒｅｎｔマネージャ３７１に問い合わせる場合、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１は、ローカルのコンテンツ・キャッシュ３３０を検索し、応答の有効なトレントのリストのいずれかを用いてユーザーに応答する。ユーザーによって要求された場合、ＢｉｔＴｏｒｒｅｎｔマネージャ３７１は、コンテンツ・キャッシュ３３０からトレントを送信する。
【００４１】
ゲートウェイ２６０がＢｉｔＴｏｒｒｅｎｔネットワーク上でデータを有効にするには、標準のＢｉｔＴｏｒｒｅｎｔトラッカー／シーダー方法に従わなければならない。したがって、ＢｉｔＴｏｒｒｅｎｔトラッカー／シーダー／リーチャー３７３は、これらの機能の各々を実行する。共通のＢｉｔＴｏｒｒｅｎｔクライアントの動作と調和して、データが配布されると、ＢｉｔＴｏｒｒｅｎｔトラッカー／シーダー／リーチャー３７３はデータのシーディングをやめることができ、他のシードがデータ用のソースを提供できるようになる。
【００４２】
図７は、本発明の一実施形態による、ユーザーが多数のピアツーピア・ネットワークと情報交換する例示的なユーザー・インターフェースを示している。ユーザーは、インターネット２００上のウェブページにアクセスするか、７００として示されるインターフェースをユーザーに提供するインターネット２００に接続するコンピュータ上のソフトウェアを実行してもよい。このインターフェースには、ユーザーが探しているものの記述子を入力できる検索入力７１０がある。次に、ユーザーは検索したいネットワークを選択する。図示されている実施形態では、ユーザーはＧｎｕｔｅｌｌａ７３０、ｅＤｏｎｋｅｙ７４０、およびＢｉｔＴｏｒｒｅｎｔ７５０のどれでも選択できる。ユーザーは、マウスで「Ｇｏ」ボタン７２０をクリックするか、Ｅｎｔｅｒを押して検索を開始する。検索の結果は、表７６０に表示される。表に示される実施形態では、表はアーティスト、タイトル、送信元ネットワーク、ファイル・タイプなどのカテゴリー７６２を含む。これらのカテゴリー７６２それぞれの情報は、メタデータから来ている。ここでは、検索の開始時にファイル全体は送信されず、メタデータだけがユーザーに対して表示される。
【００４３】
一実施形態では、ピアツーピア・ゲートウェイ２６０は、特定の機能専用であり、これらの機能を実施する必要な帯域幅を最小限にするために、ネットワーク２００に優先的に配置される。ゲートウェイ２６０は、共同で配置するか、多くのスーパーノード２２０、およびゲートウェイ２６０と共通のトピックに関与する他のピアツーピア・ネットワーク２１０、２２０、２３０、２４０に直接接続され得る。この実施形態では、これらのシステムとの通信時には帯域幅およびオーバーヘッドが減る。どのシステムにゲートウェイ２６０を共同で配置するのか、または接続するのかを選択的に選ぶことで、ゲートウェイ２６０に必要とされる全体の帯域幅が減る。
【００４４】
ピアツーピア・ゲートウェイ２６０は、本願明細書では、ネットワーク２００上にあるコンピュータまたはサーバーのようなスタンドアロン・デバイスとして記載されてきた。しかしながら、ピアツーピア・ゲートウェイ２６０は、ネットワーク上の別のシステムと共同で配置することもできる。この実施形態では、ゲートウェイ２６０自体は、ネットワーク２００に接続されたクライアントまたはサーバー上で動作するソフトウェアの形態で存在していることになる。この配置は、ゲートウェイ２６０と、同じシステム上でそれと共同で配置している任意のネットワークとの間の通信に必要な帯域幅を減らし得る。スケーラビリティおよびセキュリティのサポートに使用されるロードバランサのような、任意の数のネットワーク・デバイスがネットワーク上にあってもよい。
【００４５】
ゲートウェイ・コンピュータ上では、様々なソフトウェア・アプリケーションが実行されてもよい。必要とされる最小限のソフトウェアは、ブート・ファームウェアおよびオペレーティング・システムである。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）またはＬｉｎｕｘを実行しているインテル・アーキテクチャ・マシンが十分であろうが、任意の仮想的なコンピュータ上の任意の仮想的なオペレーティング・システムでも適するだろう。このシステムは、さらにＪａｖａ（登録商標）仮想マシンを実行して、監視および制御用のインターフェースをユーザーに提供するウェブサーバー、または不正アクセスを防ぐファイアウォールの、Ｊａｖａ（登録商標）での開発を可能にし得る。
【００４６】
図８は、本発明の一実施形態による、本システムとともに使用する例示的なコンピュータ・アーキテクチャを示している。これは、ピアツーピア・ゲートウェイ２６０、クライアント・システム、サーバー・システム、またはインターネット２００に接続された他の何らかのデバイスのような、インターネット２００に接続された任意のシステムのアーキテクチャであればよい。アーキテクチャ８００の１つの実施形態は、情報を通信するシステム・バス８２０、およびバス８２０に接続された情報を処理するプロセッサ８１０を備える。アーキテクチャ８００はさらに、情報、およびプロセッサ８１０によって実行される命令を格納する、バス８２０に接続されるランダム・アクセス・メモリ（ＲＡＭ）または他の動的記憶装置８２５（ここではメイン・メモリと称される）を備える。メイン・メモリ８２５は、プロセッサ８１０による命令の実行の間に、一時的な変数または他の中間情報の格納に使用されてもよい。アーキテクチャ８００は、プロセッサ８１０によって使用される静的な情報および命令を格納する、バス８２０に接続されたリード・オンリー・メモリ（ＲＯＭ）および／または他の静的記憶装置８２６を含んでいてもよい。
【００４７】
情報および命令を格納するために磁気ディスクまたは光学ディスク、およびそれに相当するドライブのようなデータ記憶デバイス８２７が、コンピュータ・システム８００に接続されてもよい。アーキテクチャ８００は、入出力インターフェース８３０を介して、第２の入出力バス８５０に接続されてもよい。入出力バス８５０には、表示デバイス８４３、入力デバイス（例えば、英数字入力デバイス８４２および／またはカーソル制御デバイス８４１）を含む複数の入出力デバイスが接続されてもよい。
【００４８】
通信デバイス８４０は、ネットワークを介して他のコンピュータ（サーバーまたはクライアント）にアクセスできるようにする。通信デバイス８４０は、イーサネット（登録商標）、トークン・リング、または他のタイプのネットワークへの接続に使用されるような、１つ以上のモデム、ネットワーク・インタフェース・カード、無線ネットワーク・インタフェース、または他の周知のインタフェース・デバイスを備えていてもよい。
【００４９】
上記の実施形態のさらなる利点は、ゲートウェイ２６０の高いモジュール性である。各ゲートウェイ２６０を特定の目的専用にすることで、ゲートウェイ２６０のネットワークの拡張が容易に実施できる。例えば、第１のゲートウェイ２６０が、ピアツーピア・ネットワークＡ  ２１０からピアツーピア・ネットワークＢ  ２１０へデータを変換し、第２のゲートウェイ２６０が、ピアツーピア・ネットワークＢ  ２１０からピアツーピア・ネットワークＣ  ２１０へデータを変換することを考える。さらなるピアツーピア・ネットワークＤがインターネットに追加されていると、ピアツーピア・ネットワークＣ  ２１０からネットワークＤへデータを変換している単一のゲートウェイ２６０は、前のピアツーピア・ネットワーク２１０のどれかから新しいネットワークＤへデータを変換すれば十分であろう。このようにして、単一のゲートウェイ２６０を追加するだけで、ゲートウェイ２６０の相互接続を容易に拡張して、新しいネットワークを組み込むことができる。
【００５０】
ピアツーピア・ゲートウェイを使用して多数のピアツーピア・ネットワークを相互接続する方法およびシステムが開示された。本方法およびシステムを、特定の例およびサブシステムについて説明したが、本開示はこれらの特定の例またはサブシステムに限定されず、他の実施形態にも及ぶことは当業者であれば分かるだろう。
【図面の簡単な説明】
【００５１】
【図１】図１は、従来のインターネット・トポグラフィーを示すブロック図である。
【図２】図２は、本発明の一実施形態による、ピアツーピア・ゲートウェイによって相互接続される例示的なネットワークを示すブロック図である。
【図３】図３は、本発明の一実施形態による、ピアツーピア・ゲートウェイによって行われる例示的なソフトウェア機能を示すブロック図である。
【図４】図４は、本発明の一実施形態による、ピアツーピア・ゲートウェイがＧｎｕｔｅｌｌａユーザーからのクエリを扱う例示的なプロセスを示すフローチャートである。
【図５】図５は、本発明の一実施形態による、ｅＤｏｎｋｅｙサーバーへデータをポストし、ピアツーピア・ゲートウェイを使用してユーザーにデータを送信する例示的なプロセスを示すフローチャートである。
【図６】図６は、本発明の一実施形態による、ピアツーピア・ゲートウェイを使用してＢｉｔＴｏｒｒｅｎｔシステムにデータを送信する例示的なプロセスを示すフローチャートである。
【図７】図７は、本発明の一実施形態による、ユーザーが多数のピアツーピア・ネットワークと情報交換する例示的なユーザー・インターフェースを示す図である。
【図８】図８は、本発明の一実施形態による、本システムとともに使用する例示的なコンピュータ・アーキテクチャを示す図である。
【図１】
2009530922.tif 000003
【図２】
2009530922.tif 000004
【図３】
2009530922.tif 000005
【図４】
2009530922.tif 000006
【図５】
2009530922.tif 000007
【図６】
2009530922.tif 000008
【図７】
2009530922.tif 000009
【図８】
2009530922.tif 000010
【手続補正書】
【提出日】平成20年10月29日(2008.10.29)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009530922.tif 000011
【図２】
2009530922.tif 000012
【図３】
2009530922.tif 000013
【図４】
2009530922.tif 000014
【図５】
2009530922.tif 000015
【図６】
2009530922.tif 000016
【図７】
2009530922.tif 000017
【図８】
2009530922.tif 000018
【国際調査報告】
2009530922.tif 000019
2009530922.tif 000020