JP2007006214A - リソース情報検索システム、リゾルバ及びプログラム - Google Patents
リソース情報検索システム、リゾルバ及びプログラム Download PDFInfo
- Publication number
- JP2007006214A JP2007006214A JP2005184913A JP2005184913A JP2007006214A JP 2007006214 A JP2007006214 A JP 2007006214A JP 2005184913 A JP2005184913 A JP 2005184913A JP 2005184913 A JP2005184913 A JP 2005184913A JP 2007006214 A JP2007006214 A JP 2007006214A
- Authority
- JP
- Japan
- Prior art keywords
- hash
- resolver
- name
- resource
- registration request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 リソース情報の登録及び検索におけるメッセージ転送に要する遅延時間を抑える。
【解決手段】 ユーザ端末101が各名前解決機構のエントリポイントのうちネットワーク上の距離が最も近いエントリポイントに対応するリゾルバ311へリソースの名前及びメタ情報を含む登録要求を送信すると、名前解決機構301における担当リゾルバに登録される。ユーザ端末101が各名前解決機構のエントリポイントに対応するリゾルバ311及び321ヘユーザが指定するリソースの名前を含む検索要求を送信すると、リゾルバ311及び321はリソースの名前から生成されたハッシュキーが自身の担当するハッシュ空間に含まれない場合は隣接リゾルバへ転送し、含まれる場合は対応するメタ情報を見つけ出してユーザ端末101へ送信する。
【選択図】 図1
【解決手段】 ユーザ端末101が各名前解決機構のエントリポイントのうちネットワーク上の距離が最も近いエントリポイントに対応するリゾルバ311へリソースの名前及びメタ情報を含む登録要求を送信すると、名前解決機構301における担当リゾルバに登録される。ユーザ端末101が各名前解決機構のエントリポイントに対応するリゾルバ311及び321ヘユーザが指定するリソースの名前を含む検索要求を送信すると、リゾルバ311及び321はリソースの名前から生成されたハッシュキーが自身の担当するハッシュ空間に含まれない場合は隣接リゾルバへ転送し、含まれる場合は対応するメタ情報を見つけ出してユーザ端末101へ送信する。
【選択図】 図1
Description
本発明は、端末からの要求に応じて目的のリソースを利用するのに必要となるネットワークアドレスなどのメタ情報を記録あるいは回答するリソース情報検索システム、リゾルバ及びプログラムに関する。
ファイルなどのリソースをネットワークを介して利用するシステムにおいて、ファイル名などの「名前」を与えて、「名前」に対応するリソースのある場所のアドレスを回答する名前解決機構は、今後のデータ通信ネットワークで、非常に重要な位置を占めると考えられる。名前と名前解決のシステムを用いることで、ユーザは、リソースの名前さえ記憶していれば、実際のネットワークアドレスを知ることなく、目的のリソースを利用できる。なお、システム内で実際に名前解決を実行する装置はリゾルバと呼ばれる。
名前解決機構のうち、現在、最もよく知られているのは、インターネットのDNS(Domain Name System)である。このシステムは、メールアドレスやURL(Uniform Resource Locator)に含まれるFQDN(Fully Qualified Domain Name)を「名前」として与えると、対応するIP(Internet Protocol)アドレスを回答するものである。 DNSは、FQDNを構成するドメインが階層化されていることを利用し、リゾルバの構成も階層化している。このため、システムの規模が増大しても、比較的効率的に名前解決を実行できるが、名前空間が階層構成でない場合は、適用に問題が生じる。
今後の情報流通ネットワークで主要なサービスとなる得るユビキタスサービスは、空間的制約を超越した「いつでも、どこでも、誰とでも」情報流通が可能になるというサービスであるが、移動に対応できる通信サービスとはかなり内容の異なる広範なサービス概念を含む。例えば、(1)無線タグを物や人に貼り付け、無線タグリーダをいろいろな場所に設置することで、物や人の場所や状態(例えば、在庫があるか否か)などを管理・把握・利用する無線タグサービスや、(2)微小なセンサをばら撒き、それらのセンサから送られてくる種々のセンシング情報を元に、多様なアプリケーションを提供するセンシングサービスなどが含まれる。(1)については既に、Auto-ID構想(例えば、非特許文献1を参照)のように、物流管理を主な管理対象とし、固定フォーマットのID(Identification)で物品/リソースの名前を表現し、このID単位で物品情報/リソース情報の記録・回答を担当するデータベースを決定することでスケール性を確保するシステムの商用化が始まっている。
しかし、これらユビキタスサービスにおける情報検索では、目的のリソースを指定する名前として、固定フォーマットのIDでは人が名前とリソースの対応を把握するのが困難であるため、どのようなリソースであるかを表現する自己説明的な名前を用いることが望ましい。この自己説明的な名前は、メタ情報の集合と考えることができる。ユビキタスサービスに好適な名前としてセンシングサービスでは、ある特定のセンシング情報を得たい場合、どんなセンシング情報であるか、例えば、(センシング項目名、センシング場所、センシング時刻)を名前とすることが考えられる。その名前/メタ情報から、同情報を有するセンサ、あるいは、センサ情報を格納したデータベースのアドレスを取得する名前解決機構/ディレクトリサービスが求められる。このような自己説明的な名前にも対応可能な、一般的な名前空間を対象にした名前解決機構においては、名前に対応する値(その名前を持つリソースのネットワークアドレスや識別ID)を検索するために予め名前と値の組を登録する。
自己説明的な名前に基づく名前解決を水平分散のリゾルバ構成の下で行うことで、大規模化しても効率的に動作させる機構として、CAN(Content Addressable Network)と称されている研究結果(例えば、非特許文献2参照)及びChordと称されている研究結果(例えば、非特許文献3参照)に代表されるDHT(Distributed Hash Table)が考案された。これらの機構は、(i)名前をハッシュ関数によりハッシュキーに変換して操作すること、(ii)各リゾルバがハッシュ空間全体の一部の空間のみを管理する分散処理を行うこと、(iii)登録/検索の要求を処理するリゾルバがハッシュキーにより機械的に決まることを特徴とする。CANやChordでは、DNSと異なり、リゾルバ間のネットワークはアドホックに構築され、システムを利用するユーザ端末の増大に柔軟に対応できる。ユーザ端末がCANやChordを利用するには、エントリポイントとして稼動中のリゾルバを1つ知る必要があるが、リゾルバの構成がアドホックネットワークであるため個々のリゾルバのシステムヘの接続は断続的となる。このため、稼動中のリゾルバの所在を管理するブートストラップサーバを別途用意し、これをエントリポイントとする必要がある。また、リゾルバの構成変化を反映するための処理量を小さくするため、各リゾルバは全てのリゾルバの所在を把握するのではなく、自身が担当するハッシュ空間(の一部)に隣接するハッシュ空間を担当するリゾルバ(隣接リゾルバ)のみを記録しておく。隣接リゾルバ以外のリゾルバが処理すべき登録/検索要求は隣接リゾルバヘの転送を繰り返しながら担当リゾルバヘと渡される。転送回数は、名前解決機構を構成するリゾルバの総数をNとしたとき、最大でlog N回となる。
Auto-ID Labs、「Auto-ID」、[online]、[平成17年5月23日検索]、インターネット<URL:http://www.autoIDlabs.org/> S.Ratnasamy, P.Francis, M.Handley, R.Karp, and S.Shenker, "A scalable content-addressable network", In Proc. of the ACM SIGCOMM 2001, Aug.2001 I.Stoica, R.Morris, D.Karger, M.F.Kaashoek, and H.Balakrishnan, "Chord: A scalable peer-to-peer lookup service for internet applications", In Proc. of the ACM SIGCOMM 2001, Aug.2001
Auto-ID Labs、「Auto-ID」、[online]、[平成17年5月23日検索]、インターネット<URL:http://www.autoIDlabs.org/> S.Ratnasamy, P.Francis, M.Handley, R.Karp, and S.Shenker, "A scalable content-addressable network", In Proc. of the ACM SIGCOMM 2001, Aug.2001 I.Stoica, R.Morris, D.Karger, M.F.Kaashoek, and H.Balakrishnan, "Chord: A scalable peer-to-peer lookup service for internet applications", In Proc. of the ACM SIGCOMM 2001, Aug.2001
ユビキタスサービスを含む今後の情報流通ネットワークにおいては、扱うリソースの多様化および数の爆発的な増加を反映して、リソースの自己説明的な名前やメタ情報に基づいてリソース自身あるいはリソースに関する情報の検索を可能にする仕組みが求められる。
このような階層化が困難な名前空間を対象にした名前解決機構の大規模化にはDHTに代表される分散処理の手法を用いてネットワーク上に広域に分散する多数のリゾルバをネットワークを介して協調動作させる必要がある。DHTでは、1つのキーに対する登録/検索要求の処理に伴うメッセージの転送回数を1ogのオーダーで抑えており、トラヒック量の観点からは十分にスケーラブルであると言える。また、各リゾルバを広域に分散することにより、ネットワークの特定の領域に負荷を集中することなくトラヒックを収容できる。しかしながら、要求を処理するリゾルバがハッシュ関数により機械的に定められるため、リゾルバを広域に分散するとネットワーク上で遠くに存在するリゾルバとの通信を強いられる場面が多く発生し、遅延の観点から問題が生じる。例えば、1万台のリゾルバを使用する場合、メッセージの転送は最大で14回となるため登録・検索の処理を1秒以内に完了させるためには、通信遅延以外の処理時間が無視できるほど短いと仮定しても1回のリゾルバ間のメッセージの授受に許容される遅延はわずか70msecとなってしまう。これは大陸を跨ってリゾルバを配置することが不可能になることを意味する(日米間の通信遅延は200msec程度。一方、日本国内では20msec程度)。
本発明は、上記の事情を考慮してなされたものであり、その目的は、リソース情報の登録及び検索におけるメッセージ転送に要する遅延時間を抑えたリソース情報検索システム、リゾルバ及びプログラムを提供することである。
このような階層化が困難な名前空間を対象にした名前解決機構の大規模化にはDHTに代表される分散処理の手法を用いてネットワーク上に広域に分散する多数のリゾルバをネットワークを介して協調動作させる必要がある。DHTでは、1つのキーに対する登録/検索要求の処理に伴うメッセージの転送回数を1ogのオーダーで抑えており、トラヒック量の観点からは十分にスケーラブルであると言える。また、各リゾルバを広域に分散することにより、ネットワークの特定の領域に負荷を集中することなくトラヒックを収容できる。しかしながら、要求を処理するリゾルバがハッシュ関数により機械的に定められるため、リゾルバを広域に分散するとネットワーク上で遠くに存在するリゾルバとの通信を強いられる場面が多く発生し、遅延の観点から問題が生じる。例えば、1万台のリゾルバを使用する場合、メッセージの転送は最大で14回となるため登録・検索の処理を1秒以内に完了させるためには、通信遅延以外の処理時間が無視できるほど短いと仮定しても1回のリゾルバ間のメッセージの授受に許容される遅延はわずか70msecとなってしまう。これは大陸を跨ってリゾルバを配置することが不可能になることを意味する(日米間の通信遅延は200msec程度。一方、日本国内では20msec程度)。
本発明は、上記の事情を考慮してなされたものであり、その目的は、リソース情報の登録及び検索におけるメッセージ転送に要する遅延時間を抑えたリソース情報検索システム、リゾルバ及びプログラムを提供することである。
本発明は上記の課題を解決するためになされたもので、請求項1に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、ユーザ端末は登録要求を最寄の名前解決機構のみへ送信する一方で、検索要求を並列動作する全ての名前解決機構へ並行して送信する。これにより、リソースに関する情報は、当該リソースを保有するユーザ端末が帰属する名前解決機構のハッシュ空間にのみ登録されるが、並列動作する全てのハッシュ空間に登録されたリソースを検索することが可能である。検索時の遠方のリゾルバとの通信は全て並行して行われるため、これに伴う遅延時間を、高々、遠方のリゾルバとの通信1回分の時間に抑えることができる。
本発明では、ユーザ端末は登録要求を最寄の名前解決機構のみへ送信する一方で、検索要求を並列動作する全ての名前解決機構へ並行して送信する。これにより、リソースに関する情報は、当該リソースを保有するユーザ端末が帰属する名前解決機構のハッシュ空間にのみ登録されるが、並列動作する全てのハッシュ空間に登録されたリソースを検索することが可能である。検索時の遠方のリゾルバとの通信は全て並行して行われるため、これに伴う遅延時間を、高々、遠方のリゾルバとの通信1回分の時間に抑えることができる。
請求項2に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、登録要求の処理において、ユーザ端末が、並列動作する全ての名前解決機構のハッシュ空間にリソースに関する情報を登録する。これにより、各ハッシュ空間に全てのリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
本発明では、登録要求の処理において、ユーザ端末が、並列動作する全ての名前解決機構のハッシュ空間にリソースに関する情報を登録する。これにより、各ハッシュ空間に全てのリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
請求項3に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、検索要求の処理において、ユーザ端末が検索条件として指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録されたリソースの情報を回答するだけではなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘ並行してアクセスし、全ての名前解決機構のハッシュ空間に登録されたリソースを検索した結果をユーザ端末へ回答する。これにより、検索時の遠方のリゾルバとの通信遅延を、高々、遠方のリゾルバとの通信1回分の時間に抑えることができる。
また、登録要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
本発明では、検索要求の処理において、ユーザ端末が検索条件として指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録されたリソースの情報を回答するだけではなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘ並行してアクセスし、全ての名前解決機構のハッシュ空間に登録されたリソースを検索した結果をユーザ端末へ回答する。これにより、検索時の遠方のリゾルバとの通信遅延を、高々、遠方のリゾルバとの通信1回分の時間に抑えることができる。
また、登録要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
請求項4に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、登録要求の処理において、ユーザが指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録するだけでなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘアクセスし、全ての名前解決機構のハッシュ空間にリソースを登録する。これにより、全ての名前解決機構のハッシュ空間にリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
また、検索要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
本発明では、登録要求の処理において、ユーザが指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録するだけでなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘアクセスし、全ての名前解決機構のハッシュ空間にリソースを登録する。これにより、全ての名前解決機構のハッシュ空間にリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
また、検索要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
請求項5に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムにおける前記リゾルバであって、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリゾルバである。
請求項6に記載の発明は、請求項5に記載のリゾルバにおいて、前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、前記リゾルバの検索要求処理手段は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする。
請求項7に記載の発明は、請求項5に記載のリゾルバにおいて、前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、前記リゾルバの登録要求処理手段は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする。
請求項8に記載の発明は、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、複数並列に動作する各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバのネットワークアドレスと、を記憶したコンピュータに、前記ブートストラップサーバヘアクセスし前記リストを取得する第1の処理と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する第2の処理と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する第3の処理と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する第4の処理と、を実行させるためのプログラムである。
請求項9に記載の発明は、請求項8に記載のプログラムにおいて、前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記第1の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第5の処理をさらに含み、前記第4の処理は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする。
請求項10に記載の発明は、請求項8に記載のプログラムにおいて、前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記第1の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第5の処理をさらに含み、前記第3の処理は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする。
本発明は、一般の名前空間を対象にした大規模な名前解決機構の分散処理において、遠方のリゾルバとの通信が発生する頻度を少なくすることでメッセージ転送に要する遅延時間を低く抑え、全世界に多数のリゾルバを分散配置した場合にも高速に名前解決結果を取得することを可能とする。すなわち、全てのリゾルバが単一のハッシュ空間を分散管理するのではなく、互いに短い通信遅延でメッセージが交換できるリゾルバ同士をクラスタリングしてクラスタ毎に名前解決機構を形成することにより、リゾルバ間で登録/検索要求が転送される際の遅延を短く抑えることができる。また同時に、高コストな長距離のネットワーク回線のトラヒック量の削減にも寄与する。
以下、図面を参照し、本発明の第1の実施形態について説明する。図1はこの実施形態におけるリソース情報検索システム1の構成を示す図である。このリソース情報検索システム1は、ユーザ端末101とリソース情報検索機構10から構成され、インターネットなどのデータ通信ネットワークで接続されている。
ここでリソース情報検索機構とは、ユーザが所有している、あるいはメタ情報を参照できるなど何らかの利用権を有している物品や情報コンテンツなどの各種リソースについて、ユーザからの要求に応じて、目的のリソースを利用するのに必要となるネットワークアドレスや識別IDなど当該リソースに関する1つ以上のメタ情報を記録あるいは回答するものである。なお、識別IDやメタ情報の記録方法としてハードステートとソフトステートが考えられるが、以下ではデータベースで一般的に用いられるハードステートを前提とする。ハードステートとは、登録された情報を明示的に削除されるまで恒久的に保持する方法であり、一方ソフトステートとは、登録された情報を一時的に保持し、一定期間の後に自動的に削除する方法である。
図1のリソース情報検索機構10において、301は並列動作する名前解決機構のうちユーザ端末101に最寄の1つ、302は別の名前解決機構の1つ、311は名前解決機構301を構成するリゾルバの1つ、321は名前解決機構302のエントリポイントに対応するリゾルバをそれぞれ示し、501はブートストラップサーバを示す。これらは、インターネットなどのデータ通信ネットワークで接続されている。
なお、図面を明瞭にするために、名前解決機構を2つ、各名前解決機構を構成するリゾルバをそれぞれ1つ、ユーザ端末とブートストラップサーバをそれぞれ1つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構301及び302には、それぞれリゾルバ311、312以外にハッシュ空間全体を分割して担当する図示しない1つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが1つである場合は、ハッシュ空間全体を1つのリゾルバが担当する。
なお、図面を明瞭にするために、名前解決機構を2つ、各名前解決機構を構成するリゾルバをそれぞれ1つ、ユーザ端末とブートストラップサーバをそれぞれ1つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構301及び302には、それぞれリゾルバ311、312以外にハッシュ空間全体を分割して担当する図示しない1つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが1つである場合は、ハッシュ空間全体を1つのリゾルバが担当する。
まず、ユーザ端末101の構成及び動作を説明する。ユーザ端末101には、ユーザが指定するリソースの名前、ユーザが指定するリソースのメタ情報、登録/検索の各要求を識別する命令コード、ブートストラップサーバ501のネットワークアドレスの4種類の情報と、次の3つのプログラムが搭載されている(図2を参照)。
第1のプログラムは、ブートストラップサーバ501ヘアクセスし複数並列に存在する各名前解決機構のエントリポイントを表すネットワークアドレスのリストを取得するプログラム201である。ブートストラップサーバ501より取得したリストはユーザ端末101内に一時的に複製を記憶しておくことも可能である。その場合、ブートストラップサーバ501内のリストと複製の同期をとるため、周期的にユーザ端末101内の複製を破棄するか、ブートストラップ501内のリストが更新された時点でブートストラップサーバ501よりユーザ端末101へ複製の無効化を指示する必要がある。
第2のプログラムは、プログラム201が取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘ登録要求(リソースの名前とメタ情報の組と命令コードを運ぶメッセージ)を送信し、登録要求に対する完了通知を受信するプログラム202である。ここでリソースの名前とは自己説明的な名前あるいは識別IDを指し、前者はメタ情報の集合である。メタ情報の例としては、XML(eXtensible Markup Language)で記述されたものが挙げられる。ネットワーク上の距離の具体的尺度としては、ICMP(Internet Control Message Protocol) echoメッセージの応答時間(RTT)やtracerouteコマンドなどで測定可能なルータホップ数が挙げられる。
第3のプログラムは、プログラム201が取得したリストに含まれる各エントリポイントに対応するリゾルバヘ検索要求(リソースの名前と命令コードを運ぶメッセージ)を送信し、各リゾルバから検索要求に対する回答(メタ情報の集合を運ぶメッセージ)を受信するプログラム203である。
上記のプログラムによるユーザ端末101の登録要求の処理フローについて、図3を参照して説明する。まず、ユーザ端末101は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う(ステップS11)。複製を有する場合はステップS13へ進む。複製を有しない場合はステップS12へ進み、ブートストラップサーバ501へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する(ステップS13)。次に、選択したエントリポイントに対応するリゾルバヘ登録要求を送信する(ステップS14)。そして、この登録要求に対する完了通知を受信する(ステップS15)。
これらの各ステップのうち、ステップS12はプログラム201、その他のステップはプログラム202に従って処理が行われる。従来、ステップS13及びS14の処理は行われていなかった。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する(ステップS13)。次に、選択したエントリポイントに対応するリゾルバヘ登録要求を送信する(ステップS14)。そして、この登録要求に対する完了通知を受信する(ステップS15)。
これらの各ステップのうち、ステップS12はプログラム201、その他のステップはプログラム202に従って処理が行われる。従来、ステップS13及びS14の処理は行われていなかった。
また、上記のプログラムによるユーザ端末101の検索要求の処理フローについて、図4を参照して説明する。まず、ユーザ端末101は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う(ステップS21)。複製を有する場合はステップS23へ進む。複製を有しない場合はステップS22へ進み、ブートストラップサーバ501へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントに対応するリゾルバヘ、並行して検索要求を送信する(ステップS23)。そして、各リゾルバから検索要求に対する回答を受信する(ステップS24)。
これらの各ステップのうち、ステップS22はプログラム201、その他のステップはプログラム203に従って処理が行われる。従来、ステップS23の処理は行われていなかった。
次に、アドレスリストに含まれる各エントリポイントに対応するリゾルバヘ、並行して検索要求を送信する(ステップS23)。そして、各リゾルバから検索要求に対する回答を受信する(ステップS24)。
これらの各ステップのうち、ステップS22はプログラム201、その他のステップはプログラム203に従って処理が行われる。従来、ステップS23の処理は行われていなかった。
次に、リゾルバ311の構成及び動作を説明する。リゾルバ311には、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報の対応を保持するハッシュ表、ハッシュ空間全体の中でハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報、自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスの3種類の情報を持ち、次の7つのプログラムが搭載されている(図2を参照)。
第1のプログラムは、登録/検索の各要求メッセージを受信し、要求メッセージ中の命令コードに基づいて処理方法を決定し、後述するプログラム402ヘリソースの名前とメタ情報の組を渡すか、同じく後述するプログラム403ヘリソースの名前を渡すプログラム401である。
第2のプログラムは、401からリソースの名前とメタ情報の組を受け取ってリソースの名前からハッシュキーを生成し、当該ハッシュキーが自身のハッシュ空間に含まれる場合は後述するプログラム404へリソースの名前とメタ情報の組を渡し、そうでなければ当該ハッシュキーの管理を担当する他のリゾルバである担当リゾルバを探索して処理を実行させるため、登録要求メッセージを隣接リゾルバヘ転送するプログラム402である。担当リゾルバの所在は、DHTの仕組みにより、該ハッシュキーの検索要求を隣接リゾルバヘ送信すれば回答が得られる。同様に、該ハッシュキーの登録要求を隣接リゾルバヘ送信すれば完了通知が得られる。
第3のプログラムは、プログラム401からリソースの名前を受け取ってそのハッシュキーを生成し、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合は後述するプログラム405へリソースの名前を渡し、そうでなければ当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求メッセージを隣接リゾルバへ転送するプログラム403である。
第4のプログラムは、プログラム402からリソースの名前とメタ情報の組を受け取り、リソースの名前をインデクスとする対応表のエントリとして受け取ったリソースの名前とメタ情報の組を追加し、完了通知を要求元のユーザ端末101のプログラム202へ送信する登録処理用のプログラム404である。
第5のプログラムは、プログラム403からリソースの名前を受け取り、対応表から名前に対応する1つ以上のメタ情報を見つけ出し、それらを要求元のユーザ端末101のプログラム203へ送信する検索処理用のプログラム405である。
第6のプログラムは、前述のプログラム201と同等のプログラム406である。
第5のプログラムは、プログラム403からリソースの名前を受け取り、対応表から名前に対応する1つ以上のメタ情報を見つけ出し、それらを要求元のユーザ端末101のプログラム203へ送信する検索処理用のプログラム405である。
第6のプログラムは、前述のプログラム201と同等のプログラム406である。
第7のプログラムは、リゾルバ311の起動時に各名前解決機構のエントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定するプログラム407である。最も近いエントリポイントに対応するリゾルバヘのネットワーク上の距離がある基準を上回る場合、例えば、応答時間(RTT)が100msecを越えたりルータホップ数が20を越えるなどの場合に、自身がエントリポイントとなる。
また、ネットワーク上の距離の測定対象をエントリポイントとするのではなく、リゾルバ以外のランドマークとなるホストを測定対象として用いる方法も考え得る。ランドマークホストの例としては、十数台が全世界に分散して配置されているDNSのルートサーバが挙げられる。この方法では、各名前解決機構はランドマークホストのいずれか1つと一対一に対応し、最寄のランドマークホストに対応する名前解決機構が存在しないときに自身がエントリポイントとなる。
このようにしてリゾルバ311は、帰属する名前解決機構を決定し、また、ハッシュ表を用いてリソースの情報を記録あるいは回答する。
また、ネットワーク上の距離の測定対象をエントリポイントとするのではなく、リゾルバ以外のランドマークとなるホストを測定対象として用いる方法も考え得る。ランドマークホストの例としては、十数台が全世界に分散して配置されているDNSのルートサーバが挙げられる。この方法では、各名前解決機構はランドマークホストのいずれか1つと一対一に対応し、最寄のランドマークホストに対応する名前解決機構が存在しないときに自身がエントリポイントとなる。
このようにしてリゾルバ311は、帰属する名前解決機構を決定し、また、ハッシュ表を用いてリソースの情報を記録あるいは回答する。
上記のプログラムによるリゾルバ311の処理フローについて、図5を参照して説明する。まず、リゾルバ311は、登録又は検索の要求メッセージを受信する(ステップS31)。次に、受信した要求メッセージ中の命令コードに基づいて検索要求であるか否か判定する(ステップS32)。検索要求である場合は、後述するように図6に示す処理を行う。検索要求でない場合、すなわち登録要求である場合はステップS33へ進み、リソースの名前からハッシュキーを生成する。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS34)。自身の担当するハッシュ空間に含まれない場合はステップS35へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップS36へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末101へ完了通知を送信する。
これらの各ステップのうち、ステップS31はプログラム401、ステップS33〜S35はプログラム402、ステップS36及びS37はプログラム404に従って処理が行われる。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS34)。自身の担当するハッシュ空間に含まれない場合はステップS35へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップS36へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末101へ完了通知を送信する。
これらの各ステップのうち、ステップS31はプログラム401、ステップS33〜S35はプログラム402、ステップS36及びS37はプログラム404に従って処理が行われる。
次に、上記のステップS32において、要求メッセージが検索要求であると判定された場合の処理フローについて、図6を参照して説明する。リゾルバ311は、リソースの名前からハッシュキーを生成する(ステップS41)。次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS42)。自身の担当するハッシュ空間に含まれない場合はステップS43へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップS44へ進み、対応表からリソースの名前に対応するメタ情報を見つけ出す。そして、要求元のユーザ端末101へ回答を送信する(ステップS45)。
これらの各ステップのうち、ステップS41〜S43はプログラム403、ステップS44及びS45はプログラム405に従って処理が行われる。
これらの各ステップのうち、ステップS41〜S43はプログラム403、ステップS44及びS45はプログラム405に従って処理が行われる。
次に、上記のプログラムによるリゾルバ311の起動時の処理フローについて、図7を参照して説明する。リゾルバ311は、起動時にブートストラップサーバ501へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する(ステップS51)。次に、アドレスリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントを選択する(ステップS52)。次に、選択したエントリポイントへのネットワーク上の距離が予め設定された基準値以内であるか否か判定する(ステップS53)。基準値以内である場合はステップS55へ進み、選択したエントリポイントに対応する名前解決機構へ参加する。一方、基準値を超えている場合はステップS54へ進み、自身が新たな名前解決機構のエントリポイントとなることを決定する。
これらの各ステップのうち、ステップS51はプログラム406、その他のステップはプログラム407に従って処理が行われる。従来、ステップS52〜S55の処理は行われていなかった。
これらの各ステップのうち、ステップS51はプログラム406、その他のステップはプログラム407に従って処理が行われる。従来、ステップS52〜S55の処理は行われていなかった。
次に、ブートストラップサーバ501の構成について説明する。ブートストラップサーバ501には、複数並列に存在する各名前解決機構のエントリポイントとなるリゾルバのネットワークアドレスのリストとユーザ端末101のプログラム201あるいはリゾルバ311のプログラム406からのアクセスに対して各名前解決機構のエントリポイントを表すネットワークアドレスのリストを回答するプログラム601が搭載される(図2を参照)。
以上、リゾルバ311の構成及び動作を説明したが、リゾルバ321の構成及び動作も同様である。なお、リゾルバを構成する情報及びプログラムを配備するコンピュータに、ブートストラップサーバを構成する情報及びプログラムを重畳して配備することも可能である。その場合、最初の名前解決機構の最初のリゾルバ、すなわち、名前解決機構が存在しないため自身が新たな名前解決機構のエントリポイントとなることを決定したリゾルバに、最初のブートストラップサーバを重畳する。その後は任意のリゾルバのコンピュータにブートストラップサーバを重畳して配備し得る。
上述した実施形態は、ユーザ端末101が登録要求を最寄の名前解決機構301のみへ送信し、検索要求を全ての名前解決機構301及び302へ送信するものであるが、検索要求を最寄の名前解決機構301のみへ送信し、登録要求を全ての名前解決機構301及び302へ送信する形態とすることも可能である。
次に、本発明の第2の実施形態について説明する。図8はこの実施形態におけるリソース情報検索システム2の構成を示す図である。この実施形態は、遠方のリゾルバとの通信をユーザ端末ではなく担当リゾルバが行う点が第1の実施形態と異なる。
図2において、102はユーザ端末を示し、310は並列動作する名前解決機構のうちユーザ端末102に最寄の1つ、320は別の名前解決機構の1つ、312は名前解決機構310を構成するリゾルバの1つ、322は名前解決機構320を構成するリゾルバの1つであって、名前解決機構310のリゾルバ311の対応リゾルバをそれぞれ示し、501はブートストラップサーバを示す。これらは、インターネットなどのデータ通信ネットワークで接続されている。
ここで対応リゾルバとは、あるリゾルバが担当するハッシュ空間と同じハッシュ空間を他の名前解決機構において担当するリゾルバである。ハッシュ空間全体を名前解決機構ごとに分割し、各名前解決機構に参加するリゾルバが分割されたそれぞれのハッシュ空間を担当するため、ある1つの名前解決機構のリゾルバに対して、他の名前解決機構において同じハッシュ空間を担当するリゾルバは複数存在し得る。
なお、図面を明瞭にするために、名前解決機構を2つ、各名前解決機構を構成するリゾルバをそれぞれ1つ、ユーザ端末とブートストラップサーバをそれぞれ1つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構310及び320には、それぞれリゾルバ312、322以外にハッシュ空間全体を分割して担当する図示しない1つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが1つである場合は、ハッシュ空間全体を1つのリゾルバが担当する。
図2において、102はユーザ端末を示し、310は並列動作する名前解決機構のうちユーザ端末102に最寄の1つ、320は別の名前解決機構の1つ、312は名前解決機構310を構成するリゾルバの1つ、322は名前解決機構320を構成するリゾルバの1つであって、名前解決機構310のリゾルバ311の対応リゾルバをそれぞれ示し、501はブートストラップサーバを示す。これらは、インターネットなどのデータ通信ネットワークで接続されている。
ここで対応リゾルバとは、あるリゾルバが担当するハッシュ空間と同じハッシュ空間を他の名前解決機構において担当するリゾルバである。ハッシュ空間全体を名前解決機構ごとに分割し、各名前解決機構に参加するリゾルバが分割されたそれぞれのハッシュ空間を担当するため、ある1つの名前解決機構のリゾルバに対して、他の名前解決機構において同じハッシュ空間を担当するリゾルバは複数存在し得る。
なお、図面を明瞭にするために、名前解決機構を2つ、各名前解決機構を構成するリゾルバをそれぞれ1つ、ユーザ端末とブートストラップサーバをそれぞれ1つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構310及び320には、それぞれリゾルバ312、322以外にハッシュ空間全体を分割して担当する図示しない1つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが1つである場合は、ハッシュ空間全体を1つのリゾルバが担当する。
まず、ユーザ端末101の構成及び動作を説明する。ユーザ端末102には、ユーザが指定するリソースの名前、ユーザが指定するリソースのメタ情報、登録/検索の各要求を識別する命令コード、ブートストラップサーバ501のネットワークアドレスの4種類の情報と、次の2つのプログラムが搭載されている(図9を参照)。
第1のプログラムは、第1の実施形態におけるユーザ端末101のプログラム201と同等のプログラム201である。
第2のプログラムは、プログラム201が取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘ登録要求(リソースの名前とメタ情報の組と命令コードを運ぶメッセージ)あるいは検索要求(リソースの名前と命令コードを運ぶメッセージ)を送信し、登録要求に対する完了通知あるいは検索要求に対する回答(メタ情報の集合を運ぶメッセージ)を受信するプログラム212である。
第2のプログラムは、プログラム201が取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘ登録要求(リソースの名前とメタ情報の組と命令コードを運ぶメッセージ)あるいは検索要求(リソースの名前と命令コードを運ぶメッセージ)を送信し、登録要求に対する完了通知あるいは検索要求に対する回答(メタ情報の集合を運ぶメッセージ)を受信するプログラム212である。
上記のプログラムによるユーザ端末102の処理フローについて、図10を参照して説明する。まず、ユーザ端末102は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う(ステップS61)。複製を有する場合はステップS63へ進む。複製を有しない場合はステップS62へ進み、ブートストラップサーバ501へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する(ステップS63)。次に、選択したエントリポイントに対応するリゾルバヘ登録要求又は検索要求を送信する(ステップS64)。そして、登録要求に対する完了通知又は検索要求に対する回答を受信する(ステップS65)。
これらの各ステップのうち、ステップS62はプログラム201、その他のステップはプログラム212に従って処理が行われる。従来、ステップS63及びS64の処理は行われていなかった。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する(ステップS63)。次に、選択したエントリポイントに対応するリゾルバヘ登録要求又は検索要求を送信する(ステップS64)。そして、登録要求に対する完了通知又は検索要求に対する回答を受信する(ステップS65)。
これらの各ステップのうち、ステップS62はプログラム201、その他のステップはプログラム212に従って処理が行われる。従来、ステップS63及びS64の処理は行われていなかった。
次に、リゾルバ312の構成及び動作を説明する。リゾルバ312は、リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報の対応を保持するハッシュ表、ハッシュ空間全体の中でハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報、自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレス、並列に存在する他の名前解決機構において同じハッシュ空間を担当するリゾルバ群である対応リゾルバ群のネットワークアドレスのリスト、ブートストラップサーバ501のネットワークアドレスの5種類の情報を持つ。
前述の通り、対応リゾルバは複数存在し得るため、上記の対応リゾルバ群のネットワークアドレスのリストに記録するネットワークアドレスは、自身が担当するハッシュ空間の先頭のハッシュキー(ハッシュ値が最小のキー)に対応するリゾルバのネットワークアドレスとする。その他のハッシュキーの対応リゾルバの所在は、DHTの仕組みにより、該ハッシュキーの検索要求を自身の対応リゾルバヘ送信すれば回答が得られる。
また、リゾルバ312には、次の9つのプログラムが搭載されている(図9を参照)。
前述の通り、対応リゾルバは複数存在し得るため、上記の対応リゾルバ群のネットワークアドレスのリストに記録するネットワークアドレスは、自身が担当するハッシュ空間の先頭のハッシュキー(ハッシュ値が最小のキー)に対応するリゾルバのネットワークアドレスとする。その他のハッシュキーの対応リゾルバの所在は、DHTの仕組みにより、該ハッシュキーの検索要求を自身の対応リゾルバヘ送信すれば回答が得られる。
また、リゾルバ312には、次の9つのプログラムが搭載されている(図9を参照)。
第1のプログラムは、第1の実施形態におけるリゾルバ311のプログラム401と同等のプログラム401である。
第2のプログラムは、第1の実施形態におけるリゾルバ311のプログラム402と同等のプログラム402である。
第3のプログラムは、プログラム401からリソースの名前を受け取ってそのハッシュキーを生成し、当該ハッシュキーが自身のハッシュ空間に含まれない場合は当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求メッセージを隣接リゾルバヘ転送し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元がユーザ端末のプログラム212である場合は後述するプログラム415ヘリソースの名前を渡し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元が対応リゾルバのプログラム415である場合はプログラム416ヘリソースの名前を渡すプログラム413である。
第4のプログラムは、第1の実施形態におけるリゾルバ311のプログラム404と同等のプログラム404である。
第2のプログラムは、第1の実施形態におけるリゾルバ311のプログラム402と同等のプログラム402である。
第3のプログラムは、プログラム401からリソースの名前を受け取ってそのハッシュキーを生成し、当該ハッシュキーが自身のハッシュ空間に含まれない場合は当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求メッセージを隣接リゾルバヘ転送し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元がユーザ端末のプログラム212である場合は後述するプログラム415ヘリソースの名前を渡し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元が対応リゾルバのプログラム415である場合はプログラム416ヘリソースの名前を渡すプログラム413である。
第4のプログラムは、第1の実施形態におけるリゾルバ311のプログラム404と同等のプログラム404である。
第5のプログラムは、413からリソースの名前を受け取り、対応表から名前に対応する1つ以上のメタ情報を見つけ出すとともに、対応リゾルバ群へ検索要求を転送して回答を受け取り、自身の対応表から見つけ出したメタ情報と並列動作する他の名前解決機構における当該ハッシュキーの担当リゾルバから回答されたメタ情報の双方を要求元のユーザ端末102のプログラム212へ回答するユーザ端末向け検索処理用のプログラム415である。
第6のプログラムは、413からリソースの名前を受け取り、対応表から名前に対応する1つ以上のメタ情報を見つけ出し、それらを要求元の対応リゾルバのプログラム415へ送信する対応リゾルバ向け検索処理用のプログラム416である。
第7のプログラムは、第1の実施形態におけるリゾルバ311のプログラム406と同等のプログラム406である。
第8のプログラムは、第1の実施形態におけるリゾルバ311のプログラム407と同等のプログラム407である。
第9のプログラムは、プログラム406が取得したリストに含まれる各名前解決機構のエントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するプログラム418である。各名前解決機構における対応リゾルバの所在は、DHTの仕組みにより、自身の担当するハッシュ空間の先頭のハッシュキーの検索要求を各名前解決機構のエントリポイントヘ送信すれば回答が得られる。
第6のプログラムは、413からリソースの名前を受け取り、対応表から名前に対応する1つ以上のメタ情報を見つけ出し、それらを要求元の対応リゾルバのプログラム415へ送信する対応リゾルバ向け検索処理用のプログラム416である。
第7のプログラムは、第1の実施形態におけるリゾルバ311のプログラム406と同等のプログラム406である。
第8のプログラムは、第1の実施形態におけるリゾルバ311のプログラム407と同等のプログラム407である。
第9のプログラムは、プログラム406が取得したリストに含まれる各名前解決機構のエントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するプログラム418である。各名前解決機構における対応リゾルバの所在は、DHTの仕組みにより、自身の担当するハッシュ空間の先頭のハッシュキーの検索要求を各名前解決機構のエントリポイントヘ送信すれば回答が得られる。
上記のプログラムによるリゾルバ312の処理フローについて、図11を参照して説明する。まず、リゾルバ312は、登録又は検索の要求メッセージを受信する(ステップS71)。次に、受信した要求メッセージ中の命令コードに基づいて検索要求であるか否か判定する(ステップS72)。検索要求である場合は、後述するように図12に示す処理を行う。検索要求でない場合、すなわち登録要求である場合はステップS73へ進み、リソースの名前からハッシュキーを生成する。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS74)。自身の担当するハッシュ空間に含まれない場合はステップS75へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップS76へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末102へ完了通知を送信する。
これらの各ステップのうち、ステップS71はプログラム401、ステップS73〜S75はプログラム402、ステップS76及びS77はプログラム404に従って処理が行われる。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS74)。自身の担当するハッシュ空間に含まれない場合はステップS75へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップS76へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末102へ完了通知を送信する。
これらの各ステップのうち、ステップS71はプログラム401、ステップS73〜S75はプログラム402、ステップS76及びS77はプログラム404に従って処理が行われる。
次に、上記のステップS72において、要求メッセージが検索要求であると判定された場合の処理フローについて、図12を参照して説明する。リゾルバ312は、リソースの名前からハッシュキーを生成する(ステップS81)。次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する(ステップS82)。自身の担当するハッシュ空間に含まれない場合はステップS83へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合は後述するように図13に示す処理を行う。これらの各ステップはプログラム413に従って処理が行われる。
次に、上記のステップS82において、ハッシュキーが自身の担当するハッシュ空間に含まれると判定された場合の処理フローについて、図13を参照して説明する。リゾルバ312は、対応表からリソースの名前に対応するメタ情報を見つけ出す(ステップS91)。次に、要求メッセージの送信元が対応リゾルバであるか否か判定する(ステップS92)。送信元が対応リゾルバである場合はステップS96へ進み、対応表より見つけ出したメタ情報を要求元の対応リゾルバへ回答として送信する。一方、送信元が対応リゾルバでない場合、すなわち送信元がユーザ端末102である場合は、ステップS93へ進み、対応リゾルバへ検索要求を転送する。そして、対応リゾルバより回答を受信する(ステップS94)。リゾルバ312は、自身の対応表から見つけ出したメタ情報と並列動作する他の名前解決機構における当該ハッシュキーの担当リゾルバから回答されたメタ情報の双方を要求元のユーザ端末102のプログラム212へ回答として送信する(ステップS95)。
これらの各ステップのうち、ステップS91はプログラム415及び416、ステップS96はプログラム416、その他のステップはプログラム415に従って処理が行われる。従来、ステップS92〜S96の処理は行われていなかった。
これらの各ステップのうち、ステップS91はプログラム415及び416、ステップS96はプログラム416、その他のステップはプログラム415に従って処理が行われる。従来、ステップS92〜S96の処理は行われていなかった。
上記のプログラム406、407によるリゾルバ312の起動時の処理フローは、第1の実施形態において図7を参照して説明したリゾルバ311の起動時の処理フローと同様である。
以上、リゾルバ312の構成及び動作を説明したが、リゾルバ322の構成及び動作も同様である。
以上、リゾルバ312の構成及び動作を説明したが、リゾルバ322の構成及び動作も同様である。
ブートストラップサーバ501には、複数並列に存在する各名前解決機構のエントリポイントとなるリゾルバのネットワークアドレスのリストと第1の実施形態におけるブートストラップサーバ501のプログラム601と同等のプログラム601が搭載される(図2を参照)。
この実施形態ではハッシュキーの担当リゾルバが、検索要求の処理においてのみ、並列動作する他の名前解決機構の対応リゾルバヘアクセスしているが、登録要求の処理においてのみ対応リゾルバヘアクセスする形態とすることも可能である。
本発明は、ユーザが所有している、あるいはメタ情報を参照できるなど何らかの利用権を有しているリソース(物品や情報コンテンツ)について、ユーザからの要求に応じて、目的のリソースを利用するのに必要となるネットワークアドレスや識別IDなど当該リソースに関する1つ以上のメタ情報を記録あるいは回答するリソース情報検索システムに用いられる。
1、2…リソース情報検索システム
10、20…リソース情報検索機構
101、102…ユーザ端末
301、302、310、320…名前解決機構
311、312、321、322…リゾルバ
201、202、203、212、401、402、403、404、405、406、407、413、415、416、418、601…プログラム
10、20…リソース情報検索機構
101、102…ユーザ端末
301、302、310、320…名前解決機構
311、312、321、322…リゾルバ
201、202、203、212、401、402、403、404、405、406、407、413、415、416、418、601…プログラム
Claims (10)
- ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、
前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。 - ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。 - ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。 - ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。 - ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する1つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムにおける前記リゾルバであって、
リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリゾルバ。 - 前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、
前記リゾルバの検索要求処理手段は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする請求項5に記載のリゾルバ。 - 前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、
前記リゾルバの登録要求処理手段は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする請求項5に記載のリゾルバ。 - リソースの名前をインデクスとし、それに対応する1つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、複数並列に動作する各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバのネットワークアドレスと、を記憶したコンピュータに、
前記ブートストラップサーバヘアクセスし前記リストを取得する第1の処理と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する第2の処理と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する第3の処理と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する第4の処理と、
を実行させるためのプログラム。 - 前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記第1の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第5の処理をさらに含み、
前記第4の処理は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする請求項8に記載のプログラム。 - 前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記第1の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第5の処理をさらに含み、
前記第3の処理は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする請求項8に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005184913A JP2007006214A (ja) | 2005-06-24 | 2005-06-24 | リソース情報検索システム、リゾルバ及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005184913A JP2007006214A (ja) | 2005-06-24 | 2005-06-24 | リソース情報検索システム、リゾルバ及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007006214A true JP2007006214A (ja) | 2007-01-11 |
Family
ID=37691372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005184913A Pending JP2007006214A (ja) | 2005-06-24 | 2005-06-24 | リソース情報検索システム、リゾルバ及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007006214A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198199A (ja) * | 2010-03-23 | 2011-10-06 | Nec Corp | データ処理装置、データ分散処理システム、データ処理プログラム、及び、データ処理方法 |
JP2013546041A (ja) * | 2010-09-28 | 2013-12-26 | クアルコム,インコーポレイテッド | 伝送制御プロトコル接続を確立するシステムおよび方法 |
JP2017111832A (ja) * | 2011-09-10 | 2017-06-22 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 柔軟性の高いメタデータの合成 |
-
2005
- 2005-06-24 JP JP2005184913A patent/JP2007006214A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198199A (ja) * | 2010-03-23 | 2011-10-06 | Nec Corp | データ処理装置、データ分散処理システム、データ処理プログラム、及び、データ処理方法 |
JP2013546041A (ja) * | 2010-09-28 | 2013-12-26 | クアルコム,インコーポレイテッド | 伝送制御プロトコル接続を確立するシステムおよび方法 |
US8909732B2 (en) | 2010-09-28 | 2014-12-09 | Qualcomm Incorporated | System and method of establishing transmission control protocol connections |
JP2017111832A (ja) * | 2011-09-10 | 2017-06-22 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 柔軟性の高いメタデータの合成 |
JP2017123174A (ja) * | 2011-09-10 | 2017-07-13 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 柔軟性の高いメタデータの合成 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cirani et al. | A scalable and self-configuring architecture for service discovery in the internet of things | |
JP5404766B2 (ja) | ルーティングをリクエストするための方法とシステム | |
CN105409248B (zh) | 用于增强发现的系统和方法 | |
JP2007310673A (ja) | P2pネットワークのストレージ構成方法およびストレージシステム | |
KR101047875B1 (ko) | 아이피 기반의 유에스엔 상에서 객체 정보 서비스 시스템 | |
US20080275885A1 (en) | Index server support to file sharing applications | |
CN102714665A (zh) | 用于分解对等网络并且使用分解的对等网络的方法和设备 | |
JP2009193250A (ja) | 分散ディレクトリサーバ、分散ディレクトリシステム、分散ディレクトリ方法、およびプログラム | |
JP6865593B2 (ja) | 不均一ネットワークにまたがるコンテンツ配送 | |
JP2013542681A (ja) | コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置 | |
US8051157B2 (en) | Discovery apparatus and method | |
JP2007006214A (ja) | リソース情報検索システム、リゾルバ及びプログラム | |
JP2010009449A (ja) | 分散情報配置システム | |
EP2802108B1 (en) | Data-centric communications system and data forwarding method | |
CN101741844B (zh) | 一种基于中心索引的p2p文件共享网络的对等节点发现方法 | |
Karolewicz et al. | On efficient data storage service for IoT | |
WO2010135254A1 (en) | Limiting storage messages in peer to peer network | |
JP2010009448A (ja) | 分散情報配置システム | |
JP2008269141A (ja) | オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム | |
JP3968066B2 (ja) | 名前解決システム | |
EP4057577B1 (en) | Addressing method and addressing apparatus | |
JP5132359B2 (ja) | データ分散処理システム及び方法 | |
KR101057897B1 (ko) | 센서 네트워크 공유를 위한 오버레이 기반 연동 네트워크 구조 | |
Harrell et al. | Survey of locating & routing in peer-to-peer systems | |
Chen et al. | Cost‐Effective Location Management for Mobile Agents on the Internet |