(57)【要約】  テンポラリノードとスタティックノードとを有するネットワーク内の情報管理であって、スタティックノードは共有ファイルに関する情報プロファイルを保存し、情報プロファイルは、ハッシュ関数とテンポラリノードおよびスタティックノードの両方のノード識別子とに基づいてノードへ分配される。テンポラリノードは、キーワードに関連する共有データに関する情報のルックアップリクエストを受信し（１０１）、その情報プロファイルを保存した、関連するスタティックノードのノード識別子を取得し（１０２）、取得されたノード識別子を使用して関連するスタティックノードへそのリクエストを転送する（１０３）。関連するスタティックノードは、テンポラリノードのノード識別子を、ハッシュ関数とスタティックノードのノード識別子とに基づいてスタティックノードへマッピングすることによって得られる。
2008521078.tif 000002
【特許請求の範囲】
【請求項１】
テンポラリノードとスタティックノードとを有するネットワーク内の情報管理の方法であって、
ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて、前記テンポラリノードに関連付けられたあるキーワードに関連する共有データに関する情報のルックアップリクエストを前記テンポラリノードが受信するステップと、
ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、前記テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得するステップと、
取得されたノード識別子を用いて前記関連するスタティックノードへ前記リクエストを転送するステップと
を含む方法。
【請求項２】
キーワードと、前記テンポラリノードおよび前記スタティックノードのノード識別子とは、ハッシュ関数を使用してキーワードとノード識別子とをハッシュすることにより、一連のハッシュ識別子のリングへマッピングされるものであり、
各テンポラリノードまたは各スタティックノードは、該テンポラリノードまたは該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理するものであり、
各スタティックノードは、該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連した共有データに関する情報を保存するものである、
請求項１に記載の方法。
【請求項３】
前記テンポラリノードは、ネットワークに加入すると、それ自体のノード識別子をハッシュしてこのハッシュ識別子を担当するスタティックノードのノード識別子を決定することにより、前記関連するスタティックノードのノード識別子を取得するものである、請求項２に記載の方法。
【請求項４】
関連するスタティックノードのノード識別子を取得する前記ステップは、
前記テンポラリノードに関連付けられたハッシュ識別子を取得するために、該テンポラリノードのノード識別子をハッシュするステップと、
該テンポラリノードのハッシュ識別子を担当するノードを決定するステップと、
決定されたノードへリクエストを送信し、該ノードがスタティックノードであればそのノード識別子を返すことを該ノードに命令するか、または該ノードがテンポラリノードであれば該ノードに関連するスタティックノードのノード識別子を返すことを命令するステップと
を含むものである、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられたスタティックノードのうちの最初のノードは、関連するスタティックノードを構成するものである、請求項４に記載の方法。
【請求項６】
前記テンポラリノードは、該テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられた関連するスタティックノードのリストを取得するものである、請求項４または５に記載の方法。
【請求項７】
前記テンポラリノードは、前記関連するスタティックノードのノード識別子を取得するためのリクエストを、ネットワーク内のノードの１つへ送信するものである、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
キーワードに関連した共有データに関する情報を保存するための保存リクエストを前記テンポラリノードがあるリクエストノードから受信するステップと、
前記リクエストノードに対して、保存のために取得されたスタティックノードへ共有データに関する情報を転送することを命令するために、前記関連するスタティックノードの識別子を前記リクエストノードへ返すステップと
を含む請求項１〜７のいずれか一項に記載の方法。
【請求項９】
関連付けられたハッシュ識別子を決定するために、前記テンポラリノードにより共有されるあるファイルに関連する少なくとも１つのキーワードの各々をハッシュするステップと、
前記ハッシュ識別子に関連したルックアップリクエストを処理するノードを決定するステップと、
特定されたノードがスタティックノードであれば、前記共有ファイルに関連付けられたプロファイルを、特定された各ノードに保存するために該各ノードへ送信するか、または特定されたノードがテンポラリノードであれば、前記関連するスタティックノードへ前記プロファイルをそれぞれ転送するステップと
を含む請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記テンポラリノードが前記ネットワークをいつ離脱しようとするかを決定するステップと、
該テンポラリノードが有する共有ファイルに関連付けられた情報プロファイルを前記スタティックノードから削除することを命令するステップと
を含む請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記テンポラリノードが有するとともに、ハッシュ関数に基づいて選択されたスタティックノードに保存されている共有ファイルに関する情報は、所定の時間が経過すると前記スタティックノードが共有するファイルに関する情報を削除することができるようにするタイムスタンプを含むものであり、
前記ファイルを共有する前記テンポラリノードは、該共有ファイルに関する情報の削除を避けるために前記タイムスタンプを現在時刻にリセットすることを前記スタティックノードに対し時間をおいて命令するものである、
請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
共有データに関する情報は、キーワードに関連付けられた複数の情報プロファイルを含むコンテキスト空間を構成するものであり、
各情報プロファイルは、共有ファイルに関連付けられるものである、
請求項１〜１１のいずれか一項に記載の方法。
【請求項１３】
キーワードとノード識別子とのマッピングは、Ｃｈｏｒｄプロトコルを用いて実行されるものである、請求項１〜１２のいずれか一項に記載の方法。
【請求項１４】
請求項１〜１３のいずれか一項に記載の方法をデータ処理装置に実行させる命令を有するプログラム。
【請求項１５】
請求項１〜１３のいずれか一項に記載の方法をデータ処理装置に実行させるプログラムが具現化された、コンピュータが読み取り可能な媒体。
【請求項１６】
請求項１５に記載のコンピュータが読み取り可能な媒体を含むコンピュータプログラム製品。
【請求項１７】
テンポラリノードとスタティックノードとを有するネットワーク内の情報管理のためのテンポラリノードであって、
ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて、前記テンポラリノードに関連付けられたキーワードに関連した共有データに関する情報のルックアップリクエストを受信する手段と、
ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、該テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得する手段と、
取得されたノード識別子を用いて、前記関連するスタティックノードへ前記リクエストを転送する手段と
を備えるテンポラリノード。
【請求項１８】
前記キーワードと、前記テンポラリノードおよび前記スタティックノードのノード識別子とは、ハッシュ関数を使用して、キーワードとノード識別子とをハッシュすることによって一連のハッシュ識別子のリングへマッピングされるものであり、
前記テンポラリノードは、前記テンポラリノードまたは前記スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理するものである、
請求項１７に記載のテンポラリノード。
【請求項１９】
前記ネットワークに加入すると、それ自体のノード識別子をハッシュし、このハッシュ識別子を担当するスタティックノードのノード識別子を決定することにより、前記関連するスタティックノードのノード識別子を取得する手段を備える請求項１８に記載のテンポラリノード。
【請求項２０】
前記関連するスタティックノードのノード識別子を取得する前記手段は、
前記テンポラリノードに関連付けられたハッシュ識別子を取得するために、前記テンポラリノードのノード識別子をハッシュし、
当該テンポラリノードのハッシュ識別子を担当するノードを決定し、
決定されたノードへリクエストを送信し、該ノードに対し、該ノードがスタティックノードであればそのノード識別子を返すことを命令するか、または該ノードがテンポラリノードであれば該ノードに関連するスタティックノードのノード識別子を返すことを命令するものである、
請求項１７〜１９のいずれか一項に記載のテンポラリノード。
【請求項２１】
前記テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられたスタティックノードのうちの最初のノードを、前記関連するスタティックノードとして特定する請求項２０に記載のテンポラリノード。
【請求項２２】
前記テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられているスタティックノードのリストを取得する手段を備える請求項２０または２１に記載のテンポラリノード。
【請求項２３】
前記関連するスタティックノードのノード識別子を取得するためのリクエストを、前記ネットワーク内のノードの１つへ送信する手段を備える請求項１７〜２２のいずれか一項に記載のテンポラリノード。
【請求項２４】
前記テンポラリノードにおいて、あるリクエストノードからキーワードに関連する共有データに関する情報を保存するための保存リクエストを受信する手段と、
前記関連するスタティックノードの識別子を前記リクエストノードへ返し、それにより前記リクエストノードに対して前記共有データに関する情報を、取得された前記スタティックノードに保存するために転送することを命令する手段と
を備える請求項１７〜２３のいずれか一項に記載のテンポラリノード。
【請求項２５】
関連するハッシュ識別子を決定するために、前記テンポラリノードによって共有されるファイルに関連する少なくとも１つのキーワードのそれぞれをハッシュする手段と、
決定されたハッシュ識別子に関連したルックアップリクエストを処理するノードを決定する手段と、
特定されたノードがスタティックノードである場合には、前記共有ファイルに関連付けられたプロファイルを、特定された各ノードへ保存するために送信するか、または特定されたノードがテンポラリノードである場合には、前記プロファイルを関連するスタティックノードへそれぞれ転送する手段と
を備える請求項１７〜２４のいずれか一項に記載のテンポラリノード。
【請求項２６】
前記テンポラリノードが前記ネットワークをいつ離脱するかを決定する手段と、
前記テンポラリノードが有する共有ファイルに関連付けられた情報プロファイルを前記スタティックノードから削除することを命令する手段と
を備える請求項１７〜２５のいずれか一項に記載のテンポラリノード。
【請求項２７】
ハッシュ関数に基づいて選択されたスタティックノードに保存された、前記テンポラリノードが有する共有ファイルに関する情報は、所定の時間が経過した後に前記スタティックノードが該共有ファイルに関する情報を削除することができるようにするタイムスタンプを含むものであり、
前記テンポラリノードは、時間をおいて、前記スタティックノードに対し、該共有ファイルに関する情報の削除を避けるために前記タイムスタンプを現在時刻にリセットすることを命令する手段を備えるものである、
請求項１７〜２６のいずれか一項に記載のテンポラリノード。
【請求項２８】
共有データに関する情報は、キーワードに関連する複数の情報プロファイルを含むコンテキスト空間を構成するものであり、
各情報プロファイルは共有ファイルに関連付けられるものである、
請求項１７〜２７のいずれか一項に記載のテンポラリノード。
【請求項２９】
キーワードとノード識別子とのマッピングは、Ｃｈｏｒｄプロトコルを使用して実行されるものである、請求項１７〜２８のいずれか一項に記載のテンポラリノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的なネットワークにおける情報の管理に関する。
【背景技術】
【０００２】
無線通信ネットワークは、従来の有線通信ネットワークと共存する形またはそれに取って代わる形でますます身近なものになりつつある。無線ネットワークにより、ユーザは、例えば電話端末のユーザの間の音声による会話または電話端末もしくは任意の他のコンピューティングデバイスの間のデータ通信などにおいて、他のユーザへ情報を無線で送信することができる。
【０００３】
無線通信ネットワークは、ネットワーク内の他のノードまたはデバイスとの間でデータを送信する複数のノードを有するセルラ構造を持つモバイル通信ネットワークを含む。これらのネットワークは、集中型のアクセス制御、つまりネットワーク内の通信リソースと情報とを管理する集中型のエンティティを有している場合がある。代わりに、無線通信ネットワークは、分散型のメディアアクセス制御、つまりリソースを管理するための分散型の制御機能を有している場合がある。分散型のメディアアクセス制御を有するネットワークは、通信リソースへの分散型アクセスを用い、それによりネットワークの個々の加入者が相互にリソースへのアクセスを計画し交渉することが基本的に可能である。
【０００４】
さらに、多くの無線通信ネットワークは静的ではなく動的であり、ネットワーク内の個々のノードは例えばユーザの要求に応じてネットワークへの加入やネットワークからの離脱を繰り返す。アドホック通信ネットワークは、分散型のメディアアクセス制御と動的な動作および構成とを有する無線通信ネットワークである。ここで、リソースの利用可能性および例えばサービスエリアは、加入しているネットワーク要素またはノードに依存する。アドホックネットワークまたは他の無線ネットワークは、例えばデータパケットまたはデータの連続的なストリームなどのデータを交換するために無線インタフェースを利用した複数の無線デバイスから構成することができる。各無線デバイスは、他の通信デバイスに代わってデータを転送する通信ノードとして機能することができ、それと同時に通信デバイスのユーザに代わって例えば通信サービスなどのユーザアプリケーションを実行することができる。
【０００５】
無線ネットワークで提供される一般的なサービスは、加入しているデバイスの間の音声通信およびデータの通信と、最近では、無線ネットワークへ加入しているコンピューティングデバイスのユーザ間で情報を共有するために現れた複数のサービスとを含む。情報共有アプリケーションにおいては、加入しているユーザは、他のコンピューティングデバイスのユーザと共有しているデータへアクセスするとともに、自身のデータを他のユーザと共有することができる。
【０００６】
異なるコンピューティングデバイスのユーザ間でデータファイルを共有するための通信サービスは一般に、検索対象のデータファイルを選択し、正しく特定するためのスキーム、つまり検索対象のデータファイルが提供されているファイルのリストから選択され、該データファイルの保存場所へアクセスして該データファイルがダウンロードされるというスキームを提供する。
【０００７】
データファイル共有のためのサービスは例えば、ノードとユーザとの間のファイル共有および通信のためのリソースを提供する既存のネットワーク上のオーバレイネットワークまたは専用のネットワークとして実現できるＰ２Ｐ（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）ネットワークを用いて実現される。従って、Ｐ２Ｐネットワークは、既存のネットワーク構造において実現可能であり、ユーザが共有するデータファイルを特定し、そのデータファイルの保存場所を特定する上記サービスを提供することができる。
【０００８】
Ｐ２Ｐネットワークにおける共有データファイルに関する情報を管理するアプローチは、全ての共有データファイルとそれらの各保存場所との集約されたログを管理することである。この場合、共有ファイルに関する情報を取得する意思のあるユーザは、まず集約ログへアクセスし、その中から所望のデータファイルを適切に選択して指示された保存場所からそれをダウンロードすることによって当該所望のデータファイルを得ることできる。しかしながら、共有データファイルへアクセスするためのこのような情報の構成は、このような集約情報が利用でき、かつその情報を保存するための十分な保存領域が確保できる比較的小さな集中型ネットワークでのみ機能する。多くの場合、このような集中型の制御は望ましくなく、実現することは難しい。
【０００９】
集中的な情報の管理を避けるため、共有ファイルに関する情報は、Ｐ２Ｐネットワーク内の多数のネットワークノードへ分配する（ｄｉｓｔｒｉｂｕｔｅ）ことができる。共有ファイルに関する情報を複数のネットワークノードへ分配するための直接的なアプローチは、共有ファイルに対して連番を割り振り、その連番のある一定の範囲を１つのネットワークノードへ割り当てることである。このアプローチは、ある一定の数だけ共有ファイルが存在する静的な環境ではうまく機能するが、このようなナンバリングスキームは、多数のファイルが共有ファイルのリストへ追加されたりリストから削除されたりする場合には煩雑である。
【００１０】
分散ハッシュテーブル（ＤＨＴ：ｄｉｓｔｒｉｂｕｔｅｄ  ｈａｓｈ  ｔａｂｌｅ）は、共有ファイルに関する情報を複数のノードへより等しく分配する（ｄｉｓｔｒｉｂｕｔｅ）ために利用することができる。分散ハッシュテーブルの基本概念は、共有ファイルに関する全体的な情報のある限られた部分を各ネットワークノードへ割り当てることによって、共有ファイルに関する情報を多数のネットワークノードへ分配することである。この場合、Ｐ２Ｐネットワークの各加入ユーザは、所望の共有ファイルに関する情報を保有するネットワークノードを正しく特定できるということが重要である。このため共有ファイルに関する情報を適切に分配するための構造化された方法が必要となる。
【００１１】
動的なシナリオにより適した情報の分配を伴う分散ハッシュテーブルの１つの可能な具体化は、非特許文献１に記載されているＣｈｏｒｄプロトコルである。このＣｈｏｒｄプロトコルは、共有ファイルに関する情報を複数のネットワークノードへ適切に分配するためにハッシュ関数を利用するスケーラブルな分散型ルックアッププロトコルである。このＣｈｏｒｄプロトコルの基本概念は、各加入ネットワークノードと各共有ファイルとに対し、ハッシュ関数を用いて一連の識別子の中のある識別子を割り当てることである。そして、あるネットワークノードのハッシュ識別子の近くに来るハッシュ識別子に関連付けられた共有ファイルが、このネットワークノードへと割り当てられる。つまり、このネットワークノードはこれら共有ファイルを管理するものである。
【００１２】
ハッシュ関数を使用してネットワークノードとデータファイルとを識別子に対して分配する１つのオプションは、ノードに関連付けられたハッシュ識別子を取得するために、ハッシュ関数を使用してＩＰアドレスなどのノード識別子のハッシュ値を計算することである。さらに、同じスキームを利用して、データファイルのハッシュ識別子を得るために、ハッシュ関数を使用してファイル名などのファイルに関連するファイル識別子のハッシュ値が計算される。Ｃｈｏｒｄプロトコルによれば、あるネットワークノードへ割り当てられたハッシュ識別子に先行するかまたは一致するハッシュ識別子に関連付けられた全てのデータファイルが、このネットワークノードへ割り当てられる。従って、各ネットワークノードはハッシュ関数を使って決まる一部の共有ファイルを管理する。
【００１３】
更なるファイルが共有して利用できるようになる場合、新しく共有されるファイルのハッシュ値を計算してそのファイルのハッシュ識別子を得て適切なノードを決定し、新しく共有されるファイルをその適切なネットワークノードへ割り当てることが単純に可能である。
【００１４】
ネットワークが拡大した場合、つまり、新たなネットワークノードが既存のネットワークに加わった場合、その新たなネットワークノードを取り込むためにネットワークの一部が再編成される。より正確に言えば、新たなノードがネットワークに加入する場合、ハッシュ関数を使用してそのネットワークノードのノード識別子のハッシュ値が計算され、そのネットワークノードのハッシュ識別子に一致するかまたは先行するハッシュ識別子に関連付けられたデータファイルが、その新たなネットワークノードへ割り当てられる。ネットワークノードがネットワークを離脱する場合も、同じような手順が逆の順番で実行される。その場合、ネットワークを離脱するネットワークノードが担当していた共有ファイルに関する全ての情報は、上述したＣｈｏｒｄプロトコルのハッシュスキームに基づいて残りのノードに再分配される。
【００１５】
上述したＣｈｏｒｄアプローチは、所与の期間内に少数のネットワークノードしか加入または離脱しない、主に静的な環境においてうまく機能するものの、ネットワークノードが頻繁に加入および離脱を繰り返すと、個々のネットワークノード間の共有データについての情報のやり取りが過剰になる。特に動的な無線ネットワークでは、共有ファイルについての情報の再編成は、ネットワーク内で利用可能な全帯域幅を多大に消費する可能性がある。
【００１６】
【非特許文献１】Ｉ．  Ｓｔｏｉｃａ，  Ｒ．  Ｍｏｒｒｉｓ，  Ｄ．  Ｋａｒｇｅｒ，  Ｍ．  Ｋａａｓｈｏｅｋ，  ａｎｄ  Ｈ．  Ｂａｌａｋｒｉｓｈｎａｎ，  ″Ｃｈｏｒｄ：  Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ″，  ｐｒｅｓｅｎｔｅｄ  ａｔ  ＡＣＭ  ＳＩＧ−ＣＯＭＭ  Ｃｏｎｆｅｒｅｎｃｅ，  ２００１
【発明の開示】
【発明が解決しようとする課題】
【００１７】
そこで本発明の目的は、ネットワークの動的な変更に伴ってネットワークノード間でやり取りされるデータ量を減らすことにより、動的なＰ２Ｐネットワークにおける改善された情報の管理を提供することである。
【課題を解決するための手段】
【００１８】
本発明の一実施形態によれば、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワーク内の情報管理の方法は、ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて前記テンポラリノードに関連付けられているか、またはマッピングされているあるキーワードに関する共有データについての情報のルックアップリクエストを前記テンポラリノードが受信するステップと、ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、前記テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得するステップと、取得されたノード識別子を用いて前記関連するスタティックノードへ前記リクエストを転送するステップとを含む。リクエストは関連するスタティックノードへ転送されるため、テンポラリノードは共有ファイルについての情報を保存する必要はなく、それゆえテンポラリノードは、ネットワークに加入するかまたはネットワークから離脱するときに最小限のオーバヘッドを生成するだけで済み、その結果ネットワーク内に保存される共有ファイルについての情報を再分配する必要がなくなる。
【００１９】
一例によれば、キーワードと、テンポラリノードおよびスタティックノードのノード識別子とは、ハッシュ関数を使用してキーワードとノード識別子とをハッシュすることにより、一連のハッシュ識別子のリングへマッピングされる。ここで、各テンポラリノードまたは各スタティックノードは、該テンポラリノードまたは該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関するルックアップリクエストを処理するとともに、各スタティックノードは、該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連付けられている共有データについての情報を保存する。従って、共有ファイルについての情報は、有利なことにスタティックノードに対してのみマッピングまたは分配され、テンポラリノードは、共有ファイルについての情報を保存しないものの、関連するスタティックノードまたは後続のスタティックノードへ識別子に関するリクエストを転送する。
【００２０】
別の例によれば、テンポラリノードは、ネットワークに加入すると、それ自体のノード識別子をハッシュしてこのハッシュ識別子を担当するスタティックノードのノード識別子を決定することにより、関連するスタティックノードのノード識別子を取得する。
【００２１】
別の例によれば、関連するスタティックノードのノード識別子を取得するステップは、テンポラリノードに関連付けられたハッシュ識別子を取得するために、該テンポラリノードのノード識別子をハッシュするステップと、該テンポラリノードのハッシュ識別子を担当するノードを決定するステップと、決定されたノードへリクエストを送信し、該ノードがスタティックノードであればそのノード識別子を返すことを該ノードに命令するか、または該ノードがテンポラリノードであれば該ノードに関連するスタティックノードのノード識別子を返すことを命令するステップとを含む。従って、関連するスタティックノードは、有利なことにテンポラリノードのハッシュ識別子の担当範囲内にあるハッシュ識別子に関連付けられた共有データファイルについての情報を保存するノードとして特定されることができる。
【００２２】
別の実施形態によれば、前記テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられたスタティックノードのうちの最初のノードは、関連するスタティックノードを構成する。
【００２３】
別の実施形態によれば、前記テンポラリノードは、該テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられた関連するスタティックノードのリストを取得する。従って、例えばあるスタティックノードがネットワークを離脱する場合、テンポラリノードは、共有データについての情報に関するリクエストの転送先として、関連する新たなスタティックノードを容易に選択することができる。
【００２４】
別の実施形態によれば、前記テンポラリノードは、前記関連するスタティックノードのノード識別子を取得するためのリクエストを、Ｐ２Ｐネットワーク内のノードの１つへ送信する。
【００２５】
別の実施形態によれば、キーワードに関連付けられた共有データについての情報を保存するための保存リクエストを前記テンポラリノードがあるリクエストノードから受信し、前記リクエストノードに対して、取得されたスタティックノードへ共有データについての情報を転送することを命令するために、取得されたスタティックノードの識別子を前記リクエストノードへ返す。従って、共有データについての情報はテンポラリノードには保存されないものの、保存するための関連するスタティックノードへ適切に転送される。
【００２６】
別の実施形態によれば、テンポラリノードの共有ファイルについての情報を分配するため、テンポラリノードは、関連付けられたハッシュ識別子を決定するために、前記テンポラリノードにより共有されるファイルに関連付けられた少なくとも１つのキーワードの各々をハッシュし、前記ハッシュ識別子に関するルックアップリクエストを処理するノードを決定し、特定されたノードがスタティックノードであれば、前記共有ファイルに関連付けられたプロファイルを、特定された各ノードに保存するために該各ノードへ送信するか、または特定されたノードがテンポラリノードであれば、前記関連するスタティックノードへ前記プロファイルをそれぞれ転送する。従って、テンポラリノードにより共有されるファイルについての情報は、スタティックノードへのみ分配され、共有データについての情報をテンポラリノードに保存することが避けられる。
【００２７】
別の実施形態によれば、ネットワークを離脱しようとするテンポラリノードを決定され、  該テンポラリノードが有する共有ファイルに関連付けられた情報プロファイルをスタティックノードから削除するように命令される。
【００２８】
別の実施形態によれば、前記テンポラリノードが有するとともに、ハッシュ関数に基づいて選択されたスタティックノードに保存されている共有ファイルについての情報は、所定の時間が経過すると前記スタティックノードが共有するファイルについての情報を削除することができるようにするタイムスタンプを含み、前記ファイルを共有する前記テンポラリノードは、該共有ファイルについての情報の削除を避けるために前記タイムスタンプを現在時刻にリセットすることを前記スタティックノードに対し時間をおいて命令する。
【００２９】
別の実施形態によれば、共有データについての情報は、キーワードに関連付けられた複数の情報プロファイルを含むコンテキスト空間を構成するものであり、各情報プロファイルは、共有ファイルに関連付けられるものである。
【００３０】
本発明の別の実施形態によれば、キーワードとノード識別子との分配は、Ｃｈｏｒｄプロトコルを用いて実行される。
【００３１】
本発明の別の実施形態によれば、プログラムは、データ処理装置に対し上記手順を実行させる。さらに、データ処理装置に対し上記手順を実行させるプログラムが具現化されたコンピュータが読み取り可能な媒体が提供される。また、このコンピュータが読み取り可能な媒体を含むコンピュータプログラム製品が提供される。
【００３２】
本発明の別の実施形態によれば、テンポラリノードとスタティックノードとを有するネットワーク内の情報管理のためのテンポラリノードは、ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて、前記テンポラリノードに関連付けられたキーワードに関する共有データについての情報のルックアップリクエストを受信する手段と、ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、該テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得する手段と、取得されたノード識別子を用いて、前記関連するスタティックノードへ前記リクエストを転送する手段とを備える。
【００３３】
本発明のさらなる実施形態は特許請求の範囲に開示されている。
【発明を実施するための最良の形態】
【００３４】
共有されるデータファイルは、ユーザにとって関心のあるもの、例えば音楽、ビデオまたは他の種類の情報を含むファイルを含む。
【００３５】
テンポラリノードとスタティックノードを有するＰ２Ｐネットワーク内の情報管理の方法の手順を示している図１を参照して、本発明の第１の実施形態について説明する。
【００３６】
ネットワークノードは任意のスキームまたはパターンに基づいて互いにリンクされている。このとき個々のノードは互いに通信可能である。ネットワークは既存のネットワーク上のオーバレイネットワークであるか、または情報を共有するための専用のネットワークである場合がある。例えば、ネットワークはあらゆるノードが等しい負担を有するＰ２Ｐネットワーク、または任意の他のネットワークである。ここではＰ２Ｐを例にとって説明する。しかしながら本発明は、任意の他のネットワークへ適用できることに注意されたい。
【００３７】
図１の実施形態では、一部のネットワークノードはスタティックノード、つまり比較的長い時間にわたってネットワークの一部を形成するノードであることが想定されるとともに、さらに一部のネットワークノードは比較的短い時間の間だけネットワークに加入し、その後再びネットワークを離脱するテンポラリノードであることが想定されている。さらに図１の実施形態では、Ｐ２Ｐネットワークは、このＰ２Ｐネットワーク内の通信デバイスまたはネットワークノードのユーザ間で共有ファイルを交換するよう構築されることが想定されている。各ユーザは自身のデータファイルを他のユーザと共有することができるとともに、他のユーザによって共有されているデータファイルにアクセスすることができる。共有されるデータファイルはユーザにとって関心のあるもの、例えば音楽、ビデオまたは他の種類の情報を含むファイルを含む。
【００３８】
一例として、共有データファイルにアクセスするために、ユーザは共有データファイルに関する情報であって少なくともそのデータファイルの説明とそのデータファイルの保存場所とを示す情報を利用する。例えば、ユーザは多くの共有データファイルのこのような説明および保存場所のリストを閲覧し、共有データファイルの中から特定のものを選択して、共有データファイルに対応するデータコンテンツを、示されている保存場所から取り出すことができる。
【００３９】
このプロセスにおいて、個々のネットワークノードのボトルネックまたはオーバロードを避けるために、共有ファイルに関する情報は、Ｐ２Ｐネットワークにおいて、分配スキームに基づいてネットワークに加入しているスタティックノードへマッピングされることが想定されている。
【００４０】
一例によれば各共有ファイルは、少なくとも１つのキーワード、例えばファイル名またはそのデータファイルもしくはそのコンテンツに関連した文字列に関連付けられており、そしてネットワーク内の各ノードは、ノード識別子、例えばネットワークアドレスによって特定される。キーワードと、ネットワーク内のテンポラリノードおよびスタティックノードのノード識別子とは、ハッシュ関数を使用してキーワードとノード識別子とのハッシュ値を計算することにより一連のハッシュ識別子へマッピングされるかまたは分配される。さらに、ネットワーク内の各ノードはいま、共有ファイルに関するリクエストの分配処理を実行するため、一連のハッシュ識別子の一定範囲内のハッシュ識別子に関連するデータファイルを担当する。より正確に言えば、各テンポラリノードまたは各スタティックノードは、該テンポラリノードまたは該スタティックノードのハッシュ識別子と所定の関係にある一定範囲内のハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理する。また各スタティックノードは、該スタティックノードのハッシュ識別子と所定の関係にあるハッシュ識別子に割り当てられたキーワードに関連する共有データに関する情報を保存する役割を担う。言い換えると、テンポラリノードは、ルックアップリクエストの割り当てられた部分を処理するだけで、共有ファイルに関する情報は保存しない。一方、ネットワーク内のスタティックノードは、ルックアップリクエストを処理するだけでなく、共有データに関する情報の一部を保存する。この結果、共有データに関する全体の情報は、ネットワーク内のスタティックノードへマッピングされる。
【００４１】
このような環境において、テンポラリノードは後述する図１に示されているステップを実行する。
【００４２】
ステップ１０１において、共有データファイルにアクセスする意思のあるユーザは、例えばその共有ファイルに関連するキーワードを使用するとともに、ハッシュ関数を使ってそのキーワードをハッシュすることにより、共有データに関する情報に対応するルックアップリクエストを生成する。キーワードが、ハッシュ関数とテンポラリノードおよびスタティックノードの両方のノード識別子とに基づいてネットワークのテンポラリノードへマッピングされる場合、共有ファイルに関する情報のリクエストは担当のノードへ送信される。つまり、ユーザは、ハッシュ関数とテンポラリノードおよびスタティックノードの両方のノード識別子とに基づきキーワードをノードへマッピングすることに基づいて、共有データに関する情報を処理するものとして決定されたノードへ共有データに関する情報のルックアップリクエストを送信する。
【００４３】
図１に示されているケースのように受信ノードがテンポラリノードである場合、ステップ１０２においてテンポラリノードは、ハッシュ関数とスタティックノードのノード識別子とに基づいてそのテンポラリノードのノード識別子をスタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得する。
【００４４】
次にステップ１０３に示されているように、取得された識別子を使用して、特定された、関連するスタティックノードへリクエストが送信される。
【００４５】
所与の一連のスタティックノードおよびテンポラリノードにおいて、テンポラリノードは常に、関連する同じスタティックノードと関連付けられていることに注意されたい。これは、テンポラリノードのノード識別子が、ハッシュ関数とスタティックノードのノード識別子とに基づいてスタティックノードへマッピングされているためである。それゆえ、ノード識別子は、所与の一連のスタティックノードおよびテンポラリノードにおいて一度だけ取得する必要があるだけで、関連するスタティックノードがネットワークを離脱したり、新たなスタティックノードがネットワークへ加入したりするなどして、一連のスタティックノードおよびテンポラリノードが変更されるまで、ある一定期間使用することができる。さらに、このことにより、関連するスタティックノードのノード識別子は、一実施形態においてテンポラリノードがネットワークに加入する初期段階で取得すればよい。
【００４６】
上述したステップ１０１〜１０３によれば、テンポラリノードは、たとえそれ自体がＰ２Ｐネットワークの一部を形成する場合でも、共有データに関する情報のルックアップリクエストを、その共有データに関する情報を保存する、関連するスタティックノードへ転送するだけである。従ってテンポラリノードは、共有データに関する情報を保存する必要がなく、テンポラリノードが加入と離脱を頻繁に繰り返しても、Ｐ２Ｐネットワーク内の共有データに関する情報の再分配または再マッピングに起因するトラフィックは生まれない。
【００４７】
言い換えると、テンポラリノードはスタティックノードとテンポラリノードとから成るＰ２Ｐネットワーク内のビジティングノードを構成すると見なすことができる。スタティックノードは共有データに関する全ての情報を保存し、テンポラリノードは、このテンポラリノードに割り当てられたハッシュ識別子に関連付けられた、共有データに関連するルックアップリクエストの転送機能を実行するだけである。
【００４８】
別の例によれば、共有データに関する情報のルックアップリクエストを、テンポラリノードに関連するスタティックノードへ転送するための転送スキームは、キーワードとテンポラリノードおよびスタティックノードのノード識別子とが、ハッシュ関数を使ってキーワードとテンポラリノードおよびスタティックノードの両方のノード識別子とをハッシュすることにより、一連のハッシュ識別子のリングへマッピングされるという用途に有利に適用することができる。各テンポラリノードまたは各スタティックノードは、該テンポラリノードまたは該スタティックノードのハッシュ識別子に一致するかまたは先行するハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理する。各スタティックノードは、該スタティックノードのハッシュ識別子に一致するかまたは先行するハッシュ識別子に割り当てられたキーワードに関連する共有データに関する情報を保存する。
【００４９】
従って、この例によれば、共有データに関する全ての情報は、データファイルに関連するキーワードのハッシュ値を計算することに基づいてスタティックノードへマッピングされ、テンポラリノードはそのテンポラリノードが担当するハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを転送するだけである。
【００５０】
本発明に係る転送スキームは、特にハッシュスキームまたは分散ハッシュテーブルを利用したＰ２Ｐネットワークにおける情報管理システムにうまく適用できる。本発明をＣｈｏｒｄプロトコルへ適用する一例を図２および図３を参照して以下に説明する。
【００５１】
まず、よりよい理解のために、図２を参照してＣｈｏｒｄプロトコルに基づいた、共有データに関する情報の従来の分配スキームについて説明する。
【００５２】
図２は、一連のハッシュ識別子のリング２０１を示している。この例では、リングは１６個のハッシュ識別子０〜１５から成る。さらに図２は、３つのネットワークノード２１０、２１１および２１２と、共有データに関する情報を含む情報プロファイルなどの共有データに関する情報要素２２０、２２１、２２２および２２３とを示している。ネットワークノード２１０、２１１および２１２は、例えばネットワークの特性に応じて、ネットワーク内のノード間でリンクが確立できることを唯一の要件として、任意の方法で互いに相互接続することができる。さらに、すでに指摘したように、共有データに関する各情報要素は好ましくは、共有ファイルのコンテンツを検索できるように共有ファイルに関連するキーワードと共有ファイルの保存場所とを少なくとも含んでいる。
【００５３】
図２において、情報セット２２０、２２１、２２２および２２３の各キーワードと、ネットワークノード２１０、２１１および２１２の各ノード識別子とが、ハッシュ関数を使ってハッシュされ、一連の識別子のリング２０１のうちの１つの識別子がそれぞれ得られる。例えばハッシュ関数を用いてキーワード自体またはキーワードに対応する文字列をハッシュし、ハッシュ関数を使ってインターネットアドレスなどのノード識別子またはネットワークノードの任意の他の識別子をハッシュすることにより、ハッシュを実行することができる。さらにハッシュ関数は、共有データおよびネットワークノードへのハッシュ識別子の割り当てがユニークになるように、または重複した割り当てのリスクが無視できるように選択されることが前提となる。
【００５４】
図２に示されている例では、情報要素またはプロファイル２２０はハッシュ関数を使ってノード識別子２へ割り当てられ、情報プロファイル２２１はハッシュ識別子３へ割り当てられ、情報プロファイル２２２はハッシュ識別子７へ割り当てられ、情報プロファイル２２３はハッシュ識別子８へ割り当てられることが想定されている。さらにネットワークノード２１０はハッシュ識別子４へ割り当てられ、ネットワークノード２１１はハッシュ識別子８へ割り当てられ、そしてネットワークノード２１２はハッシュ識別子１４へ割り当てられることが想定されている。
【００５５】
この場合、従来のＣｈｏｒｄプロトコルによれば、各ネットワークノードは、該ネットワークノードのハッシュ識別子と所定の関係にあるハッシュ識別子、例えばこの場合にはそれぞれのネットワークノードに割り当てられているハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられた情報プロファイルを保存する。従って、ネットワークノード２１０は情報セット２２０および２２１を保存し、ネットワークノード２１１は情報セット２２２および２２３を保存する。
【００５６】
ここで、ネットワークノード２１２におけるユーザが、情報セット２２０により表現される共有データファイルを検索する意思があるとした場合、ネットワークノード２１２はハッシュ関数を使って情報セット２２０のキーワードのハッシュ値を計算する。例えば、情報プロファイル２２０が、共有されているビートルズの曲「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ」に関連しており、キーワード「Ｓｕｂｍａｒｉｎｅ」を含んでいるとした場合には、キーワード「Ｓｕｂｍａｒｉｎｅ」をハッシュすることで、一連の識別子のリング２０１のハッシュ識別子２が特定される。
【００５７】
さらに、情報プロファイル２２０のハッシュ識別子２を特定すると、ネットワークノード２１２は、ハッシュ識別子２を担当するゆえ情報プロファイル２２０を担当するノードであるネットワークノード２１０に向けて対応するルックアップリクエストを送信する。Ｃｈｏｒｄプロトコルによれば各ネットワークノードは、該ネットワークノードに関連するハッシュ識別子に一致するかまたは先行するハッシュ識別子を担当する。図に則して言えば、ネットワークノード２１０は、識別子１５、０、１、２、３および４に関連する任意の情報プロファイルを担当し、ネットワークノード２１１はハッシュ識別子５、６、７および８に関連する任意の情報プロファイルを担当し、ネットワークノード２１２はハッシュ識別子９、１０、１１、１２、１３および１４に関連する任意の情報プロファイルを担当する。
【００５８】
続いて、情報プロファイル２２０を担当し、情報プロファイル２２３を保存しているネットワークノード２１０は、少なくとも所望の共有ファイルの物理的な保存場所に関する情報をネットワーク２１２へ返し、それによりネットワークノード２１２は、所望のデータファイルを取得できるようになる。ファイルの物理的な保存場所は、例えば任意のネットワークノードまたはＰ２Ｐネットワークがアクセス可能な任意の他の記憶媒体など基本的には任意でよいことに注意されたい。
【００５９】
次に、図３を参照して、Ｃｈｏｒｄプロトコルを使用して機能するＰ２Ｐネットワークに適用される本発明の転送スキームについて説明する。
【００６０】
図３は、この場合も同じく図２で説明した一連のハッシュ識別子のリング２０１と、情報プロファイル２２０、２２１、２２２および２２３とを示している。さらに図３は、図２に示されているネットワークノード２１０、２１１および２１２も示している。これらのネットワークノードは、ここではスタティックノード、すなわちＰ２Ｐネットワークの一部を永久にまたは少なくとも比較的長い期間形成するネットワークノードを構成するものと見なされる。さらに図３は、Ｐ２Ｐネットワークの一部を一時的にのみ形成するネットワークノードを構成すると見なすことができるテンポラリノード３００、３０１および３０２も示している。
【００６１】
図３の実施形態では、各テンポラリノードまたは各スタティックノードは、それぞれのテンポラリノードまたはスタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連したルックアップリクエストを処理することが想定されている。これは、図３の実際のケースでは、ハッシュ識別子２に割り当てられたテンポラリノード３００はハッシュ識別子１５、０、１および２に関するルックアップリクエストを処理することを意味する。ハッシュ識別子４に割り当てられたスタティックノード２１０は、ハッシュ識別子３および４に関連するキーワードに関連したルックアップリクエストを処理し、ハッシュ識別子８に割り当てられたスタティックノード２１１は、ハッシュ識別子５、６、７および８に関連するキーワードに関連したルックアップリクエストを処理する。以下同様である。従って、テンポラリノード３００は、情報プロファイル２２０に関するルックアップリクエストを処理し、スタティックノード２１０は情報プロファイル２２１に関連するルックアップリクエストを処理し、そしてスタティックノード２１１は情報プロファイル２２２および２２３に関連するルックアップリクエストを処理する。しかしながら、ハッシュ識別子の割り当てに関する所定の相互の関係も使用できることに注意されたい。例えば、各テンポラリノードまたは各スタティックノードは、それぞれのテンポラリノードまたはスタティックノードのハッシュ識別子に後続するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連したルックアップリクエストを処理することもできる。
【００６２】
さらに、図３の実施形態では、各スタティックノードはそれぞれのスタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連する共有データに関する情報を保存することが想定されている。言い換えると、情報プロファイルは物理的にスタティックノード上に位置している。例えば、スタティックノード２１０はハッシュ識別子１５、０、１、２、３および４に関連する情報プロファイルを保存し、スタティックノード２１１はハッシュ識別子５、６、７および８に関連する情報プロファイルを保存し、スタティックノード２１２はハッシュ識別子９、１０、１１、１２、１３および１４に関連する情報プロファイルを保存する。従って図３の例では、スタティックノード２１０は情報プロファイル２２０および２２１を保存し、スタティックノード２１１は情報プロファイル２２２および２２３を保存する。しかしながら、しかしながら、ハッシュ識別子の割り当てに関する所定の相互の関係も使用できることに注意されたい。例えば、各スタティックノードはそのスタティックノードのハッシュ識別子に後続するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連したルックアップリクエストを処理することもできる。
【００６３】
従ってテンポラリノードは、そのテンポラリノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に関連するルックアップリクエストを処理するが、テンポラリノードは情報プロファイルを物理的に保存していない。テンポラリノードは、ルックアップリクエストをそれぞれの後続のスタティックノードへ転送する転送機能を実行するだけである。これは後続のスタティックノードが、そのテンポラリノードによって処理されることとなっているルックアップリクエストが対象とする情報プロファイルを物理的に保存しているからである。
【００６４】
それゆえ、例えばテンポラリノード３００が、そのハッシュ識別子に一致するかまたは先行するハッシュ識別子（ハッシュ識別子１５、０、１および２）に割り当てられたキーワードに関連する情報プロファイルに関連したルックアップリクエストを受信する場合、テンポラリノード３００は、後続のスタティックノード、この場合は（ハッシュ識別子３および４に関連する情報プロファイルに加えて）ハッシュ識別子１５、０、１および２に割り当てられた任意の情報プロファイルを物理的に保存しているスタティックノード２１０へこのルックアップリクエストを転送する。
【００６５】
図３の実施形態に則して言えば、テンポラリネットワークノードがＰ２Ｐネットワークを離脱する場合、テンポラリノード３００に保存されている任意の情報プロファイルを再分配する必要はない。ノード３００の一時的な性質により、テンポラリノード３００が担当する全ての情報プロファイルは、後続のスタティックノード２１０に保存されているからである。同様に、テンポラリノードがＰ２Ｐネットワークに加入する場合、情報プロファイルの再分配は必要なく、情報プロファイルはネットワーク内のスタティックノードに物理的に保存されたままである。この結果、テンポラリノードがネットワークへの加入とネットワークからの離脱とを繰り返すことで生まれる追加的なネットワークトラフィックは最小限に留めることができ、このコンセプトは動的なネットワークトポロジーに特に適したものとなる。
【００６６】
次に図４を参照して、本発明の更なる実施形態について説明する。
【００６７】
図４は、Ｐ２Ｐネットワーク内の情報管理の方法の手順、特にルックアップリクエストを処理し、テンポラリノードとスタティックノードとに情報プロファイルを保存する役割の分担について説明する。
【００６８】
図４は、ルックアップリクエストをスタティックノードへ転送する本発明に係る転送スキームを、分散ハッシュテーブルとハッシュスキームとを利用したＰ２Ｐネットワークへ適用した場合の手順を示している。
【００６９】
最初のステップ４０１では、一連のハッシュ識別子のリングがハッシュ関数を使って定義される。一般的に、例えば従来から知られているＳＨＡ−１などの任意のハッシュ関数を、共有データに関連付けられているキーワードとネットワークノードの識別子とに対応する入力値に対するハッシュ識別子を決定するために使用できる。もちろん、キーワードとノード識別子とのマッピングはユニークであることが好ましい。つまり、各ハッシュ識別子は、最大で１つのキーワードに関連付けられ、最大で１つのノード識別子に関連付けられる。
【００７０】
次に、ステップ４０２において、ネットワーク内のテンポラリノードのノード識別子とスタティックノードのノード識別子とが、ハッシュ関数を使ってハッシュ識別子のリングへマッピングされ、さらに、共有データに関連するキーワードもハッシュ関数に基づいて一連のハッシュ識別子のリングへマッピングされる。ノード識別子またはキーワードをハッシュ識別子へマッピングするプロセスは、ハッシュ関数を使ってノード識別子またはキーワードを処理することによって行われ、それによりノード識別子またはキーワードのうちのいずれかまたは両方と、ハッシュ識別子との間の関連付けが得られる。
【００７１】
ステップ４０２は、全てのキーワードおよびノード識別子に対して、組み合わせたやり方で実行できるが、分散ネットワークでは集中的なマッピング機能が一切存在しないこともあり得る。しかし、その場合、各ネットワークノードがそれ自体のノード識別子とキーワードとをハッシュ識別子のリングへマッピングし、ネットワークノードとハッシュ識別子との間の関連付けおよび／またはキーワードとハッシュ識別子との間の関連付けのある一部分だけの経過を追うことができる。従ってステップ４０２は、図４に示されている手順で必ずしも実行する必要はないが、ノードがネットワークに加入するときまたはキーワードに関連するルックアップリクエストが存在するときに随時実行することができる。
【００７２】
ステップ４０３では、ハッシュ識別子の所定の関係、例えば相互の位置関係を用いて、テンポラリノードとスタティックノードとに負担が割り当てられる。より正確に言えば、テンポラリノードとスタティックノードとには、該テンポラリノードまたは該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理する責任が割り当てられる。従って、このスキームによれば、各ネットワークノード、つまりテンポラリノードまたはスタティックノードは、ある一部のハッシュ識別子、すなわちそのネットワークノードのハッシュ識別子に一致するかまたは先行するハッシュ識別子のうち、１つ前のネットワークノードのハッシュ識別子まで遡る全てのハッシュ識別子（１つ前のネットワークノードのハッシュ識別子は含まれない）を担当し、従って、これらのハッシュ識別子に割り当てられたキーワードに関連するルックアップリクエストを処理する。
【００７３】
実際のケース、例えばＣｈｏｒｄプロトコルを使用したＰ２Ｐネットワークでは、例えば図２および図３を参照して説明したように、あるネットワークノードは、一連のハッシュ識別子のリングのうち、１つ前のネットワークノードまで遡る全てのハッシュ識別子を担当する。
【００７４】
ステップ４０４では、情報プロファイルを保存する役割がスタティックノードに割り当てられる。つまり、各スタティックノードには、そのスタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連する共有データに関する情報を保存する役割が割り当てられる。従って、各スタティックノードには、１つ前のスタティックノードのハッシュ識別子まで遡る全てのハッシュ識別子（ただし１つ前のスタティックノードのハッシュ識別子は含まれない）に割り当てられたキーワードに関連する情報プロファイルを物理的に保存する役割が割り当てられる。従って、共有データに関する情報、つまり情報プロファイルは、スタティックノードに対してのみ分配される。
【００７５】
実際のケース、例えばＣｈｏｒｄプロトコルを使用したＰ２Ｐネットワークでは、Ｐ２Ｐネットワークに登録される共有データに関する情報は、キーワードをハッシュし、関連する情報プロファイルを担当するスタティックノードへ送信することにより、スタティックノードに対してのみマッピングされる。その際、キーワードのハッシュ識別子と後続のスタティックノードのハッシュ識別子との間にあるハッシュ識別子に関連した任意のテンポラリノードは無視される。
【００７６】
図４はある一連の手順を示したものであるが、これに限定される必要はないことに注意されたい。これとは全く対照的に、実際の用途では、ノード識別子とキーワードとをハッシュしたり、保存のために情報プロファイルを分配したりするなどの個々のステップは、ルックアップリクエストが処理されるたびに、そしてノードがＰ２Ｐネットワークに加入するたびに実行される。
【００７７】
次に図５を参照して本発明の更なる実施形態について説明する。
【００７８】
図５は、前述の実施形態に関連してすでに概説したように、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワーク内の共有データファイルの情報管理のためのテンポラリネットワークノードの構成要素を示している。
【００７９】
図５は、Ｐ２Ｐネットワークの一部を構成するテンポラリネットワークノード５００を示している。テンポラリネットワークノード５００は、キーワードに関連する共有データに関する情報のルックアップリクエストを受信する手段を有している。前述の実施形態に関連して概説したように、キーワードは、ハッシュ関数とＰ２Ｐネットワーク内のテンポラリノードおよびスタティックノードの両方のノード識別子とに基づいてテンポラリノードへマッピングされるかまたはテンポラリノードと関連付けられる。
【００８０】
さらに、テンポラリネットワークノード５００は、ハッシュ関数とスタティックノードのノード識別子とに基づいてテンポラリノードのノード識別子をスタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得するためのノード特定手段５０２を有している。
【００８１】
さらに、テンポラリネットワークノード５００は、取得されたノード識別子を使用して関連するスタティックノードへルックアップリクエストを転送するリクエスト転送手段５０３を有している。
【００８２】
テンポラリネットワークノード５００およびそのコンポーネントは、パーソナルコンピュータ、ラップトップ型コンピュータ、ＰＤＡ（携帯情報端末）、携帯電話機などのコンピューティングデバイスに組み込むことができる。好ましくは、テンポラリネットワークノード５００は、Ｐ２Ｐネットワーク内のその他のネットワークノードと有線または無線で接続されている。例えば、テンポラリネットワークノード５００は、Ｐ２Ｐネットワーク内の少なくとも１つの別のテンポラリネットワークノードまたはスタティックネットワークノードとモバイル接続するコンピューティングデバイスである場合がある。その場合、Ｐ２Ｐネットワークとのフルアクセスが得られる。コンピューティングデバイスのネットワークは、情報管理とユーザ間のデータファイル共有のためにＰ２Ｐネットワークを生成する目的だけで確立することができる。その一方で、Ｐ２Ｐネットワークは、ＧＳＭネットワーク、ＵＭＴＳネットワーク、無線ＬＡＮネットワーク、インターネットその他の既存の無線ネットワーク上にオーバレイネットワークとして導入することもできる。
【００８３】
テンポラリネットワークノード５００の構成要素は、テンポラリネットワークノード内の処理装置で実行されるプログラム部（図示されていない）を設けることによって実現することができる。例えば、受信する手段５０１、ノード特定手段５０２およびリクエスト転送手段５０３の機能は、メモリ５０２のようなメモリに格納された、コード化された命令のシーケンス（これらがテンポラリネットワークノード内の処理装置にロードされると、テンポラリネットワークノードは前述の動作を実行することができるようになる）によって実現することができる。代わりに、受信する手段５０１、ノード特定手段５０２およびリクエスト転送手段５０３は、ハードウェア装置として少なくとも部分的に実現することもできる。
【００８４】
別の例として、ノード特定手段５０２は、テンポラリノードがＰ２Ｐネットワークに加入する、そのテンポラリネットワークノードのノード識別子をハッシュし、このハッシュ識別子を担当するスタティックノードのノード識別子を決定することにより、関連するスタティックノードのノード識別子を取得することができる。例えば、このノード特定手段５０２は、ネットワーク加入時に、関連するスタティックノードの特定に関する、対応するリクエストを生成し、このリクエストをＰ２Ｐネットワーク内の少なくとも１つの既知のネットワークノードに送信することができる。
【００８５】
その際、ノード特定手段５０２は、次のようにして、関連するスタティックノードのノード識別子を決定することができる。まず、当該テンポラリノードのノード識別子をハッシュして当該テンポラリノードに関連するハッシュ識別子を取得し、次に当該テンポラリノードのハッシュ識別子を担当するノードを決定し、そして決定されたノードへリクエストを送信して、その決定されたノードがスタティックノードであればその決定されたノードにそのノード識別子を返させるか、またはその決定されたノードがテンポラリノードであればその決定されたノードに関連するスタティックノードのノード識別子を返させる。従って、テンポラリネットワークノード自体は、全てのネットワークノード、特に関連するスタティックノードを認識している必要はないが、関連するスタティックノードは、Ｐ２Ｐネットワーク内の複数のネットワークノードによって実現される、特定できるまで反復するプロセスによって決定できる。
【００８６】
ノード特定手段５０２は、例えば一連のハッシュ識別子のリングにおける後続のスタティックノードのような関連するスタティックノードのノード識別子だけを取得することができるが、ノード特定手段５０２は、別の実施形態では後続の複数のスタティックノードといった関連する複数のスタティックノードの複数のノード識別子を取得することもできる。
【００８７】
このようにノード特定手段５０２は、例えばＰ２Ｐネットワークへの加入時に、Ｐ２Ｐネットワーク内のネットワークノードの任意の１つへリクエストを送信し、関連する単一または複数のスタティックノードのノード識別子を取得することができる。
【００８８】
次に、図６を参照して本発明の更なる実施形態を説明する。
【００８９】
図６は、本発明に係る前述の情報管理スキームで使用される共有データに関する情報の一例を示している。
【００９０】
図６は、ユーザの共有ファイルなどの共有データに関する情報を構成する情報プロファイル６００を示している。
【００９１】
情報プロファイルは、共有ファイルに関連するキーワードと、ファイルを共有するホストのノード識別子を少なくとも含んでいる。それに加えて、情報プロファイルは、完全なファイル名と、共有ファイルの任意の種類の説明と、ファイルに関連する更なるキーワードとを含むことができる。
【００９２】
図６の例では、情報プロファイルは、ビートルズの曲「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ」に関連しているものと考えられる。本例における情報プロファイルは、ファイル名として「Ｂｅａｔｌｅｓ：Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ．ｍｐ３」を含み、これは本ファイルがビートルズの曲「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ」のｍｐ３ファイルであることを示している。さらに、図６の情報プロファイル６００は、共有ファイルの説明を含んでおり、これは「ｍｐ３  ＶＥＲＳＩＯＮ  ＯＦ  ＢＥＡＴＬＥＳ  ＳＯＮＧ」を示している。さらに、情報プロファイルは、共有ファイルに関連する複数のキーワードを含んでいる。例えば本例では、これらキーワードは、「Ｂｅａｔｌｅｓ」、「Ｓｕｂｍａｒｉｎｅ」、「Ｓｉｘｔｉｅｓ」などである。最後に、情報プロファイル６００は、ファイルを共有するホストのノード識別子、つまり「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ．ｍｐ３」というファイルの物理的な保存場所の識別子を含んでいる。
【００９３】
情報プロファイルのキーワードは、所望の情報の直感的な検索を容易にするために任意の適切な方法で共有ファイルと関連付けられている。例えば、本例におけるキーワードである「Ｂｅａｔｌｅｓ」と「Ｓｕｂｍａｒｉｎｅ」とは、ユーザが「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ」という曲を検索することができるようにするのに適切なキーワードである。このように、共有ファイルのタイトルの要素を構成するキーワードを使用できるが、代わりにまたは追加的に、内容を説明するキーワード、例えば図６で言えば「Ｓｉｘｔｉｅｓ」なども使用することができる。当該ファイルを共有するホスト、つまり当該ファイル（本例で言えばＹｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ．ｍｐ３）の物理的な保存場所は、Ｐ２Ｐネットワーク内のネットワークノードがアクセス可能な任意の場所、例えばネットワークノードの１つまたはネットワークに接続可能な任意の他の記憶装置とすることができる。
【００９４】
次に、図７を参照して本発明の更なる実施形態について説明する。
【００９５】
図７は、Ｐ２Ｐネットワーク内の情報管理の手順、特にテンポラリノードがＰ２Ｐネットワークに加入するときに、関連するスタティックノードを決定するための手順を示している。
【００９６】
最初のステップ７０１において、テンポラリノードは、他のユーザの共有ファイルにアクセスしたり他のユーザと自分のファイルを共有したりするために、Ｐ２Ｐネットワークに加入する。テンポラリノードは、例えばＰ２Ｐネットワーク内の少なくとも１つのノードに有線または無線で接続することによってそのＰ２Ｐネットワークに加入することができる。例えば、テンポラリノードを構成するコンピューティングデバイスは、所望のネットワークに結合しているかまたは所望のネットワークに接続している通信ネットワークに有線または無線で接続することにより、そのネットワークにアクセスすることができる。
【００９７】
例えば、Ｐ２Ｐネットワークはインターネット内に確立することができる。その場合、テンポラリノードはそのインターネットに任意の種類の無線または有線接続を介して、例えばＧＳＭ回線、ＵＭＴＳ回線または無線ＬＡＮネットワークを介して接続することによってＰ２Ｐネットワークに加入することができる。
【００９８】
ステップ７０２において、テンポラリノードはハッシュ関数を使ってそのテンポラリノードのノード識別子をハッシュ識別子と関連付ける。例えば、テンポラリノードがＰ２Ｐネットワークに加入すると、そのテンポラリノードに対して使用すべきハッシュ関数のタイプに関する必要な情報を提供することができる。
【００９９】
次に、ステップ７０３において、テンポラリノードはこのテンポラリノードに割り当てられたハッシュ識別子を担当するスタティックノードのノード識別子を決定する。例えば、前述の実施形態に関連して概説したように、テンポラリノードのハッシュ識別子の後続のハッシュ識別子に割り当てられたスタティックノードを担当のスタティックノードとして特定することができる。代わりに、担当を割り当てる任意の他のスキームを利用できる。例えば、テンポラリノードのハッシュ識別子に先行するハッシュ識別子に割り当てられたスタティックノードを担当のスタティックノードとして特定することもできる。
【０１００】
担当のスタティックノードまたは関連するスタティックノードは、テンポラリノードが直接決定できるが、テンポラリノードは、関連するスタティックノードを特定するための対応するリクエストを、Ｐ２Ｐネットワーク内のネットワークノードの１つ以上へ送信して、Ｐ２Ｐネットワーク内の関連するスタティックノードの反復的な探索をトリガすることもできる。後者の手順は、特に各ネットワークノードがＰ２Ｐネットワーク全体の一部分に関する情報のみを保存する、分散型の動的なネットワークにおいて有利な場合がある。
【０１０１】
次に図８を参照して本発明の更なる実施形態を説明する。図８は、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワークにおける情報管理の手順、特にネットワーク内のテンポラリノードに関連したノードの識別子を決定する手順を示している。
【０１０２】
前述の実施形態に関して、テンポラリノードは、このテンポラリノードのノード識別子を、ハッシュ関数とスタティックノードのノード識別子とに基づいてスタティックノードへマッピングすることによって、関連するノードのネットワーク識別子を決定できることを概説的に述べた。図８は、Ｐ２Ｐネットワーク内のテンポラリノードおよび任意の他のネットワークノードにおいて関連するノードのノード識別子を決定する手順を更に詳細に示している。
【０１０３】
最初のステップ８０１では、例えばテンポラリノードがＰ２Ｐネットワークへ加入した後、該テンポラリノードは、当該テンポラリノードに関連したスタティックノードのノード識別子を取得するための命令を含んだリクエストを、このテンポラリノードのノード識別子とともにＰ２Ｐネットワーク内のある既知のノードへ送信する。このリクエストは好ましくは、当該テンポラリノードのノード識別子、例えば当該テンポラリノードのネットワークアドレスを少なくとも含んでいる。さらに、ネットワーク内の前記既知のノードは、当該テンポラリノードが例えばネットワークへの加入の際に通信した任意のネットワークノードとすることができる。
【０１０４】
ステップ８０２において、前記ネットワークノード、つまり加入するテンポラリノードにとって既知のノードは、前記リクエストを受信し、続いてステップ８０３において、ハッシュ関数を使って当該テンポラリノードのノード識別子を、一連のハッシュ識別子のリングのハッシュ識別子と関連付ける。代わりに、当該テンポラリノードはすでにそれ自体の識別子をハッシュしてハッシュ識別子を取得し、ステップ８０１においてこのテンポラリノードから既知のネットワークノードへ送信されるリクエストにそのハッシュ識別子を含めることができる。
【０１０５】
ステップ８０４では、前記既知のネットワークノードにおいて、加入したテンポラリノードに関連するハッシュ識別子の後続のハッシュ識別子に関連した最初のスタティックノードが決定される。
【０１０６】
ステップ８０４は前記既知のネットワークノードで実行できるが、ステップ８０４では、関連するスタティックノードを最終的に決定するために、使用されるプロトコルに基づいて、そのリクエストを更なるネットワークノードへ転送する場合もある。
【０１０７】
Ｃｈｏｒｄプロトコルを採用したＰ２Ｐネットワークでは、関連するスタティックノードは、ステップ８０４において前記既知のネットワークノードにより、ハッシュ識別子のリングのハッシュ識別子に関連したネットワークノードを指し示すフィンガーリストを使って特定できる。Ｃｈｏｒｄプロトコルによれば、各ネットワークノードは昇順にそれぞれのノードのハッシュ識別子までの距離２nを有するハッシュ識別子に基づいて後続のネットワークノードを指し示すポインタのフィンガーリストを保存または構築する。指数ｎは、「最長の」フィンガーがハッシュ識別子のリングの「向こう側」を指すように、つまり図２に示されているようにハッシュ識別子のリングの反対側に（半周回って）到達するように選択される。フィンガースキームを使用して、各ネットワークノードは、反復プロセスにおいてネットワークノードのフィンガーが、対象のハッシュ識別子を担当するノードを特定するまで、対象のハッシュ識別子により近いネットワークノードを選択することができる。
【０１０８】
検索ステップ８０４では、後続または関連するスタティックノードを決定するため、スタティックノードのみを考慮する。
【０１０９】
次いでステップ８０５では、得られたノード識別子は、例えば前記既知のネットワークノードまたは任意の他のノードを介して当該テンポラリノードへ返される。
【０１１０】
ステップ８０６では、そのレスポンスを受信し、関連するノード識別子は、ステップ８０７においてスタティックネットワークノードのサクセサリストへ登録される。
【０１１１】
一例として、サクセサリストは単一のエントリ、すなわち関連するスタティックノードのノード識別子を含んでいる。しかし他の実施形態では、サクセサリストは関連する複数のノード、例えば一連のハッシュ識別子のリングにおいて当該テンポラリノードの後続の関連する複数のスタティックノードを昇順に含むこともできる。サクセサリストへ登録される追加の関連するノードは、上記スキームを使用して、以前に得られた関連するスタティックノードのハッシュ識別子に関連するノードを探索することによって、決定できる。
【０１１２】
次に、図９を参照して本発明の更なる実施形態を説明する。
【０１１３】
図９は、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワーク内で情報を管理する方法の手順、特に本発明に係る転送スキームを利用してネットワークに共有ファイルを登録するための手順を示している。図９では、任意のネットワークノードが、キーワードに関連するファイルを共有しようとすることが想定されている。更に図９では、キーワードは、ハッシュ関数を使用してテンポラリノードの担当範囲内にあるハッシュ識別子へマッピングされることが想定されている。
【０１１４】
最初のステップ９０１では、任意のネットワークにおいて、キーワードに関連するファイルを共有するためのユーザ命令が検出される。例えば、図６の例で言えば、共有ファイルは、キーワード「Ｓｕｂｍａｒｉｎｅ」（ここでは「Ｙｅｌｌｏｗ」や「Ｓｉｘｔｉｅｓ」といった別のキーワードは除く）に関連するｍｐ３バージョンのビートルズの曲「Ｙｅｌｌｏｗ  Ｓｕｂｍａｒｉｎｅ」である。
【０１１５】
ステップ９０２において、キーワードは、担当するネットワークノードを特定するために、ハッシュ関数を使用してハッシュ識別子に割り当てられる。先に述べたように、ここではテンポラリノードはステップ９０２で得られたキーワードに関連するハッシュ識別子を担当することが想定されている。
【０１１６】
ステップ９０３において、ネットワークノードは、キーワードに関連する共有データに関する情報、例えば情報プロファイルを保存するための保存リクエストを、テンポラリノードへ送信する。保存リクエストは、キーワードと共有ファイルの保存場所（例えばインターネットアドレスなど）とを少なくとも含んでいる。
【０１１７】
ステップ９０４において、テンポラリノードが保存リクエストを受信する。
【０１１８】
前述の実施形態で述べたように、テンポラリノードはこのテンポラリノードのハッシュ識別子の担当範囲内にあるハッシュ識別子に関連するキーワードに関連するルックアップリクエストを処理するが、テンポラリノードは、共有データに関する情報を物理的に保存しない。共有データに関する情報は、関連するスタティックノードに保存される。
【０１１９】
それゆえ、ステップ９０５において、例えば前述の実施形態で述べたように、テンポラリノードは、関連するスタティックノードのノード識別子を取得し、その関連するスタティックノードの識別子を送信する。つまり、関連するスタティックノードのノード識別子は、ノード特定手段からのリクエストに基づいて取得できるか、または関連するスタティックノードが前もって決定された場合にはテンポラリノードのメモリから読み出すことができる。
【０１２０】
ステップ９０６において、関連するスタティックノードのノード識別子は、リクエストノードへ送信され、ステップ９０７において受信される。
【０１２１】
続いて、リクエストノードは、共有データに関する情報を、関連するスタティックノードへ保存するために転送する。
【０１２２】
従って、テンポラリノードのハッシュ識別子の担当範囲内にあるハッシュ識別子に関連するファイルの全ての情報は、関連するスタティックノードに物理的に保存される。この結果、図９のキーワードに関連する、任意に生成されたルックアップリクエストがテンポラリノードへ送信されると、情報プロファイルを保存する、関連するスタティックノードへ適切に転送される。
【０１２３】
図９では例として単一のキーワードを使用しているが、実際のケースでは、１つの共有ファイルは多数のキーワードと関連している場合がある。そうしたケースでは、情報プロファイルは、図９のスキームを使用して各キーワードに基づいて決定された全てのスタティックノードに分配される。
【０１２４】
本発明のスキームによれば、ある特定のキーワードに関連する全ての情報プロファイルは、上述のハッシュスキームに基づいて決定されたコンテキスト空間における所与のスタティックノードに集約される。ある特定のキーワードに関するルックアップリクエストは、対応するスタティックノードへ転送されるだけあって、対応するスタティックノードは、キーワードを含んだ情報プロファイルを集約したものを、リクエストした当事者へ提供することができる。各コンテキスト空間は、あるキーワードに関連する複数の情報プロファイル（各情報プロファイルは１つの共有ファイルに関連している）を含んでいる。ネットワークノードは、複数のキーワードに関連した複数のコンテキスト空間を有することができる。
【０１２５】
次に、図１０を参照して本発明の更なる実施形態を説明する。
【０１２６】
図１０は、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワーク内の情報管理の手順、特にテンポラリノードにおけるファイルを他のユーザと共有するための手順を示している。図１０では、Ｐ２Ｐネットワークに加入したテンポラリノードのユーザが、自分自身のファイルを他のユーザと共有する意思があることが想定されている。ファイルの共有の準備をするため、例えば図６に示されているような様式の情報プロファイルが生成される。例えば、情報プロファイルは、キーワード、共有ファイルの説明、ネットワークアドレスその他選択を容易にするプロファイル生成手段の助けを借りて生成できる。
【０１２７】
最初のステップ１００１では、テンポラリノードによって共有されるファイルに関連する各キーワードが、前述の実施形態で説明したように、ハッシュ関数を使ってハッシュ識別子と関連付けられる。
【０１２８】
ステップ１００２では、決定された各々のハッシュ識別子に関連するルックアップリクエストを処理するノードが、例えばＣｈｏｒｄプロトコルとテンポラリノードおよびスタティックノードのノード識別子とを使って取得される。
【０１２９】
次いで、ステップ１００３において、共有ファイルに関連する情報プロファイルが、特定されたノードへ保存するために送信される。決定されたノードがテンポラリノードであることが判明した場合には、そのテンポラリノードは、前述の実施形態で説明したように、関連するスタティックノードへリクエストを送信する。
【０１３０】
代わりに、テンポラリノードは、ステップ１００２において、ステップ１００１で得られた各々のハッシュ識別子に関連するルックアップリクエストを処理するスタティックノードを決定することができる。このようなケースでは、ステップ１００３における情報プロファイルは、転送のためにテンポラリノードへは送信されないが、直接的に担当するスタティックノードへ送信される。
【０１３１】
次に、図１１を参照して本発明の更なる実施形態を説明する。
【０１３２】
図１１は、テンポラリノードとスタティックノードとを有するＰ２Ｐネットワーク内の情報管理の手順、特にテンポラリノードがＰ２Ｐネットワークを離脱するときの手順を示している。
【０１３３】
最初のステップ１１０１において、例えばＰ２Ｐネットワークにおける情報共有セッションをクローズするためのユーザ命令を検出するか、またはテンポラリノードとＰ２Ｐネットワークとの間で維持されているネットワーク接続をクローズするための命令を検出することにより、テンポラリノードがネットワークを離脱する予定であることが決定される。
【０１３４】
次いで、ステップ１１０２において、テンポラリノードによって共有ファイルと関連付けられた各キーワードは、ハッシュ関数を使ってハッシュ識別子と関連付けられるか、または、それまでに決定された対応する情報がテンポラリノードにおいてアクセスされる。ステップ１１０３において、前述の実施形態で説明したように、特定されたハッシュ識別子に関連するルックアップリクエストを処理するそれぞれのノードが取得される。
【０１３５】
次に、ステップ１１０４において、決定された各々のノードは、当該テンポラリノードが有する共有ファイルに関連した情報プロファイルを削除するように命令される。
【０１３６】
命令されたノードがテンポラリノードであれば、該ノードはその命令を関連するスタティックノードへ転送し、その関連するスタティックノードに対し、当該共有ファイルに関連する情報プロファイルの削除を要求する。
【０１３７】
代わりに、スタティックノードに保存された情報プロファイルにはタイムスタンプが提供され、所定期間が経過した後にスタティックノードによる共有ファイルに関する情報の削除が可能となる。情報プロファイルの削除を避けるため、情報プロファイルに関連したファイルを有する各ノードは、共有ファイルに関する情報の削除を避けるためにスタティックノードに対しタイムスタンプを現在時刻にリセットすることを命令する。このようにして、情報プロファイルを維持するこのような命令を一定期間受信しない場合は、関連するノードがネットワークを離脱している蓋然性が高く、離脱したノードが共有していたファイルに関連した対応する情報プロファイルを削除できる。
【０１３８】
上述した特徴および機能は、ハードウェアまたはソフトウェアによって実現することができる。例えば、データ処理装置に対して上記特徴または上記ステップの１つ以上を実行させるための命令を含むプログラムを提供できる。さらに、コンピュータが読み取り可能な媒体を提供できる。この場合、プログラムは、データ処理装置に対して、上記特徴または上記ステップの１つ以上を実行させるよう具現化される。コンピュータプログラム製品は、コンピュータが読み取り可能な媒体を含むことができる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の一実施形態による、ネットワーク内の情報管理のための方法のステップを示す図である。
【図２】Ｃｈｏｒｄプロトコルを説明するための、ハッシュ識別子およびネットワークノードのＣｈｏｒｄリングを示す図である。
【図３】本発明の一実施形態を説明するための、ハッシュ識別子とテンポラリノードおよびスタティックノードのＣｈｏｒｄリングとを示す図である。
【図４】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特に共有データに関する情報をテンポラリノードとスタティックノードとへ分配するための手順を示した図である。
【図５】本発明の一実施形態による、ネットワーク内の情報管理のためのテンポラリノードのブロック図である。
【図６】本発明の一実施形態による、共有ファイルに関する情報の内容の１つの具体例を示す図である。
【図７】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特に関連するスタティックノードを決定するための手順を示した図である。
【図８】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特に別のネットワークノードを使用して、関連するスタティックノードを決定するための手順を示した図である。
【図９】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特に別のノードによって共有されるファイルに関する情報をネットワークに登録するための、テンポラリノードにおける手順を示した図である。
【図１０】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特にあるノードによって共有されるファイルに関する情報をネットワークに登録するための手順を示した図である。
【図１１】本発明の一実施形態による、ネットワーク内の情報管理のための方法、特にネットワークからノードを削除するための手順を示した図である。
【図１】
2008521078.tif 000003
【図２】
2008521078.tif 000004
【図３】
2008521078.tif 000005
【図４】
2008521078.tif 000006
【図５】
2008521078.tif 000007
【図６】
2008521078.tif 000008
【図７】
2008521078.tif 000009
【図８】
2008521078.tif 000010
【図９】
2008521078.tif 000011
【図１０】
2008521078.tif 000012
【図１１】
2008521078.tif 000013
【手続補正書】
【提出日】平成19年7月17日(2007.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テンポラリノードとスタティックノードとを有するネットワーク内の情報管理の方法であって、
前記スタティックノードは、ハッシュ関数に基づいて、前記スタティックノードに関連付けられたキーワードに基づく共有データについての情報のリクエストを処理するとともに、前記キーワードに関する共有データについての情報を保存するものであり、
前記共有データについての情報は、共有データファイルの保存場所を含むものであり、
前記テンポラリノードは、前記ハッシュ関数に基づいて、前記テンポラリノードに関連付けられたキーワードに関するルックアップリクエストを、あるスタティックノードへ転送するものであって、
前記ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて前記テンポラリノードに関連付けられているあるキーワードに関する共有データについての情報のルックアップリクエストを前記テンポラリノードが受信するステップと、
前記ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、前記テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得するステップと、
取得されたノード識別子を用いて前記関連するスタティックノードへ前記リクエストを転送するステップと
を含む方法。
【請求項２】
キーワードと、前記テンポラリノードおよび前記スタティックノードのノード識別子とは、ハッシュ関数を使用してキーワードとノード識別子とをハッシュすることにより、一連のハッシュ識別子のリングへマッピングされるものであり、
各テンポラリノードまたは各スタティックノードは、該テンポラリノードまたは該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関するルックアップリクエストを処理するものであり、
各スタティックノードは、該スタティックノードのハッシュ識別子に先行するかまたは一致するハッシュ識別子に割り当てられたキーワードに関連付けられている共有データについての情報を保存するものである、
請求項１に記載の方法。
【請求項３】
前記テンポラリノードは、ネットワークに加入すると、それ自体のノード識別子をハッシュしてこのハッシュ識別子を担当するスタティックノードのノード識別子を決定することにより、前記関連するスタティックノードのノード識別子を取得するものである、請求項２に記載の方法。
【請求項４】
関連するスタティックノードのノード識別子を取得する前記ステップは、
前記テンポラリノードに関連付けられたハッシュ識別子を取得するために、該テンポラリノードの前記ノード識別子をハッシュするステップと、
該テンポラリノードのハッシュ識別子を担当するノードを決定するステップと、
決定されたノードへリクエストを送信し、該ノードがスタティックノードであればそのノード識別子を返すことを該ノードに命令するか、または該ノードがテンポラリノードであれば該ノードに関連するスタティックノードのノード識別子を返すことを命令するステップと
を含むものである、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられたスタティックノードのうちの最初のノードは、前記関連するスタティックノードを構成するものである、請求項４に記載の方法。
【請求項６】
前記テンポラリノードは、該テンポラリノードに関連付けられたハッシュ識別子の後続のハッシュ識別子に関連付けられた関連するスタティックノードのリストを取得するものである、請求項４または５に記載の方法。
【請求項７】
前記テンポラリノードは、前記関連するスタティックノードのノード識別子を取得するためのリクエストを、ネットワーク内のノードのいずれか１つへ送信するものである、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
キーワードに関連付けられた共有データについての情報を保存するための保存リクエストを前記テンポラリノードがあるリクエストノードから受信するステップと、
前記リクエストノードに対して、保存のために取得されたスタティックノードへ共有データについての情報を転送することを命令するために、前記関連するスタティックノードの識別子を前記リクエストノードへ返すステップと
を含む請求項１〜７のいずれか一項に記載の方法。
【請求項９】
関連付けられたハッシュ識別子を決定するために、前記テンポラリノードにより共有されるあるファイルに関連付けられている少なくとも１つのキーワードの各々をハッシュするステップと、
前記ハッシュ識別子に関するルックアップリクエストを処理するノードを決定するステップと、
決定されたノードがスタティックノードであれば、前記共有ファイルに関連付けられたプロファイルを、特定された各ノードに保存するために該各ノードへ送信するか、または決定されたノードがテンポラリノードであれば、前記関連するスタティックノードへ前記プロファイルをそれぞれ転送するステップと
を含む請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記テンポラリノードが前記ネットワークをいつ離脱しようとするかを決定するステップと、
該テンポラリノードが有する共有ファイルに関連付けられた情報プロファイルを前記スタティックノードから削除することを命令するステップと
を含む請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記テンポラリノードが有するとともに、ハッシュ関数に基づいて選択されたスタティックノードに保存されている共有ファイルについての情報は、所定の時間が経過すると前記スタティックノードが共有するファイルについての情報を削除することができるようにするタイムスタンプを含むものであり、
前記ファイルを共有する前記テンポラリノードは、該共有ファイルについての情報の削除を避けるために前記タイムスタンプを現在時刻にリセットすることを前記スタティックノードに対し時間をおいて命令するものである、
請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
共有データについての情報は、キーワードに関連付けられた複数の情報プロファイルを含むコンテキスト空間を構成するものであり、
各情報プロファイルは、共有ファイルに関連付けられるものである、
請求項１〜１１のいずれか一項に記載の方法。
【請求項１３】
キーワードとノード識別子とのマッピングは、Ｃｈｏｒｄプロトコルを用いて実行されるものである、請求項１〜１２のいずれか一項に記載の方法。
【請求項１４】
請求項１〜１３のいずれか一項に記載の方法をデータ処理装置に実行させる命令を有するプログラム。
【請求項１５】
請求項１〜１３のいずれか一項に記載の方法をデータ処理装置に実行させるプログラムが具現化された、コンピュータが読み取り可能な媒体。
【請求項１６】
テンポラリノードとスタティックノードとを有するネットワーク内の情報管理のためのテンポラリノードであって、
前記スタティックノードは、ハッシュ関数に基づいて、前記スタティックノードに関連付けられたキーワードに基づく共有データについての情報のリクエストを処理するとともに、前記キーワードに関する共有データについての情報を保存するものであり、
前記共有データについての情報は、共有データファイルの保存場所を含むものであり、
前記テンポラリノードは、前記ハッシュ関数に基づいて、前記テンポラリノードに関連付けられたキーワードに関するルックアップリクエストを、あるスタティックノードへ転送するものであって、
前記ハッシュ関数と、前記テンポラリノードおよび前記スタティックノードの両方のノード識別子とに基づいて前記テンポラリノードに関連付けられているあるキーワードに関する共有データについての情報のルックアップリクエストを受信する手段と、
前記ハッシュ関数と前記スタティックノードのノード識別子とに基づいて、前記テンポラリノードのノード識別子を前記スタティックノードへマッピングすることにより、関連するスタティックノードのノード識別子を取得する手段と、
取得されたノード識別子を用いて、前記関連するスタティックノードへ前記リクエストを転送する手段と
を備えるテンポラリノード。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
上述したＣｈｏｒｄアプローチは、所与の期間内に少数のネットワークノードしか加入または離脱しない、主に静的な環境においてうまく機能するものの、ネットワークノードが頻繁に加入および離脱を繰り返すと、個々のネットワークノード間の共有データについての情報のやり取りが過剰になる。特に動的な無線ネットワークでは、共有ファイルについての情報の再編成は、ネットワーク内で利用可能な全帯域幅を多大に消費する可能性がある。
非特許文献２は、Ｃｈｏｒｄコンテンツを発見する手法の修正を提案している。このＣｈｏｒｄコンテンツを発見する手法の修正は、コンテンツブロッカーを定義することを含んでおり、ある範囲のコンテンツキーと対応するコンテンツとを保存するのとは対照的に、各ピアは、ネットワーク内の別のピアにコンテンツを配置し、それに対する対応するコンテンツキーは所与のピアが担当する。このとき所与の各ピアは、対応するコンテンツをＣｈｏｒｄリング内の他のピアに配置することが確定的に可能であると言われている。コンテンツを配置するため、各コンテンツブロッカーは、そのブロッカーが担当するコンテンツキーごとのエントリを含むコンテンツテーブルを有している。所与のコンテンツキーに対し同じコンテンツの複数のコピーを配置できる。配置できる同じコンテンツの複数のコピーを使って、修正されたＣｈｏｒｄスキームにおけるコンテンツの利用可能性は高まるものと考えられている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
【非特許文献１】Ｉ．  Ｓｔｏｉｃａ，  Ｒ．  Ｍｏｒｒｉｓ，  Ｄ．  Ｋａｒｇｅｒ，  Ｍ．  Ｋａａｓｈｏｅｋ，  ａｎｄ  Ｈ．  Ｂａｌａｋｒｉｓｈｎａｎ，  ″Ｃｈｏｒｄ：  Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ″，  ｐｒｅｓｅｎｔｅｄ  ａｔ  ＡＣＭ  ＳＩＧ−ＣＯＭＭ  Ｃｏｎｆｅｒｅｎｃｅ，  ２００１
【非特許文献２】Ｂｏｒｇ  Ｊ：  ″Ａ  Ｃｏｍｐａｒａｔｉｖｅ  Ｓｔｕｄｙ  ｏｆ  Ａｄ  Ｈｏｃ  ＆  Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ  Ｎｅｔｗｏｒｋｓ″，  Ｄｉｓｓｅｒｔａｔｉｏｎ  ｓｕｂｍｉｔｔｅｄ  ｉｎ  ｐａｒｔｉａｌ  ｆｕｌｆｉｌｍｅｎｔ  ｏｆ  ｔｈｅ  ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  ｔｈｅ  Ｄｅｇｒｅｅ  ｏｆ  Ｍａｓｔｅｒ  ｏｆ  Ｓｃｉｅｎｃｅ  ｉｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｔ  ｔｈｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｃｏｌｌｅｇｅ  Ｌｏｎｄｏｎ，  Ａｕｇｕｓｔ  ２００３  （２００３−０８），  ｐａｇｅｓ  １−１７０，  ＸＰ００２３１７９８８
【国際調査報告】
2008521078.tif 000014
2008521078.tif 000015
2008521078.tif 000016