(57)【要約】【課題】  リソース情報の登録及び検索におけるメッセージ転送に要する遅延時間を抑える。【解決手段】  ユーザ端末１０１が各名前解決機構のエントリポイントのうちネットワーク上の距離が最も近いエントリポイントに対応するリゾルバ３１１へリソースの名前及びメタ情報を含む登録要求を送信すると、名前解決機構３０１における担当リゾルバに登録される。ユーザ端末１０１が各名前解決機構のエントリポイントに対応するリゾルバ３１１及び３２１ヘユーザが指定するリソースの名前を含む検索要求を送信すると、リゾルバ３１１及び３２１はリソースの名前から生成されたハッシュキーが自身の担当するハッシュ空間に含まれない場合は隣接リゾルバへ転送し、含まれる場合は対応するメタ情報を見つけ出してユーザ端末１０１へ送信する。【選択図】  図１
2007006214.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、
前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。
【請求項２】
ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。
【請求項３】
ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。
【請求項４】
ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、
前記ユーザ端末は、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、
を備え、
前記リゾルバは、
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリソース情報検索システム。
【請求項５】
ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムにおける前記リゾルバであって、
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、
前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、
を備えることを特徴とするリゾルバ。
【請求項６】
前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、
前記リゾルバの検索要求処理手段は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする請求項５に記載のリゾルバ。
【請求項７】
前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、
前記リゾルバの登録要求処理手段は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする請求項５に記載のリゾルバ。
【請求項８】
リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、複数並列に動作する各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバのネットワークアドレスと、を記憶したコンピュータに、
前記ブートストラップサーバヘアクセスし前記リストを取得する第１の処理と、
起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する第２の処理と、
登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する第３の処理と、
検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する第４の処理と、
を実行させるためのプログラム。
【請求項９】
前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記第１の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第５の処理をさらに含み、
前記第４の処理は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、
前記第１の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第５の処理をさらに含み、
前記第３の処理は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末からの要求に応じて目的のリソースを利用するのに必要となるネットワークアドレスなどのメタ情報を記録あるいは回答するリソース情報検索システム、リゾルバ及びプログラムに関する。
【背景技術】
【０００２】
ファイルなどのリソースをネットワークを介して利用するシステムにおいて、ファイル名などの「名前」を与えて、「名前」に対応するリソースのある場所のアドレスを回答する名前解決機構は、今後のデータ通信ネットワークで、非常に重要な位置を占めると考えられる。名前と名前解決のシステムを用いることで、ユーザは、リソースの名前さえ記憶していれば、実際のネットワークアドレスを知ることなく、目的のリソースを利用できる。なお、システム内で実際に名前解決を実行する装置はリゾルバと呼ばれる。
【０００３】
名前解決機構のうち、現在、最もよく知られているのは、インターネットのDNS(Domain Name System)である。このシステムは、メールアドレスやURL(Uniform Resource Locator)に含まれるFQDN(Fully Qualified Domain Name)を「名前」として与えると、対応するIP(Internet Protocol)アドレスを回答するものである。 DNSは、FQDNを構成するドメインが階層化されていることを利用し、リゾルバの構成も階層化している。このため、システムの規模が増大しても、比較的効率的に名前解決を実行できるが、名前空間が階層構成でない場合は、適用に問題が生じる。
【０００４】
今後の情報流通ネットワークで主要なサービスとなる得るユビキタスサービスは、空間的制約を超越した「いつでも、どこでも、誰とでも」情報流通が可能になるというサービスであるが、移動に対応できる通信サービスとはかなり内容の異なる広範なサービス概念を含む。例えば、（１）無線タグを物や人に貼り付け、無線タグリーダをいろいろな場所に設置することで、物や人の場所や状態（例えば、在庫があるか否か）などを管理・把握・利用する無線タグサービスや、（２）微小なセンサをばら撒き、それらのセンサから送られてくる種々のセンシング情報を元に、多様なアプリケーションを提供するセンシングサービスなどが含まれる。（１）については既に、Auto-ID構想（例えば、非特許文献１を参照）のように、物流管理を主な管理対象とし、固定フォーマットのID(Identification)で物品／リソースの名前を表現し、このID単位で物品情報／リソース情報の記録・回答を担当するデータベースを決定することでスケール性を確保するシステムの商用化が始まっている。
【０００５】
しかし、これらユビキタスサービスにおける情報検索では、目的のリソースを指定する名前として、固定フォーマットのIDでは人が名前とリソースの対応を把握するのが困難であるため、どのようなリソースであるかを表現する自己説明的な名前を用いることが望ましい。この自己説明的な名前は、メタ情報の集合と考えることができる。ユビキタスサービスに好適な名前としてセンシングサービスでは、ある特定のセンシング情報を得たい場合、どんなセンシング情報であるか、例えば、（センシング項目名、センシング場所、センシング時刻）を名前とすることが考えられる。その名前／メタ情報から、同情報を有するセンサ、あるいは、センサ情報を格納したデータベースのアドレスを取得する名前解決機構／ディレクトリサービスが求められる。このような自己説明的な名前にも対応可能な、一般的な名前空間を対象にした名前解決機構においては、名前に対応する値（その名前を持つリソースのネットワークアドレスや識別ID）を検索するために予め名前と値の組を登録する。
【０００６】
自己説明的な名前に基づく名前解決を水平分散のリゾルバ構成の下で行うことで、大規模化しても効率的に動作させる機構として、CAN(Content Addressable Network)と称されている研究結果(例えば、非特許文献２参照)及びChordと称されている研究結果(例えば、非特許文献３参照)に代表されるDHT(Distributed Hash Table)が考案された。これらの機構は、(i)名前をハッシュ関数によりハッシュキーに変換して操作すること、(ii)各リゾルバがハッシュ空間全体の一部の空間のみを管理する分散処理を行うこと、(iii)登録／検索の要求を処理するリゾルバがハッシュキーにより機械的に決まることを特徴とする。CANやChordでは、DNSと異なり、リゾルバ間のネットワークはアドホックに構築され、システムを利用するユーザ端末の増大に柔軟に対応できる。ユーザ端末がCANやChordを利用するには、エントリポイントとして稼動中のリゾルバを１つ知る必要があるが、リゾルバの構成がアドホックネットワークであるため個々のリゾルバのシステムヘの接続は断続的となる。このため、稼動中のリゾルバの所在を管理するブートストラップサーバを別途用意し、これをエントリポイントとする必要がある。また、リゾルバの構成変化を反映するための処理量を小さくするため、各リゾルバは全てのリゾルバの所在を把握するのではなく、自身が担当するハッシュ空間（の一部）に隣接するハッシュ空間を担当するリゾルバ（隣接リゾルバ）のみを記録しておく。隣接リゾルバ以外のリゾルバが処理すべき登録／検索要求は隣接リゾルバヘの転送を繰り返しながら担当リゾルバヘと渡される。転送回数は、名前解決機構を構成するリゾルバの総数をNとしたとき、最大でlog N回となる。
【非特許文献１】Auto-ID Labs、「Auto-ID」、［online］、［平成１７年５月２３日検索］、インターネット＜ＵＲＬ：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では、１つのキーに対する登録／検索要求の処理に伴うメッセージの転送回数を1ogのオーダーで抑えており、トラヒック量の観点からは十分にスケーラブルであると言える。また、各リゾルバを広域に分散することにより、ネットワークの特定の領域に負荷を集中することなくトラヒックを収容できる。しかしながら、要求を処理するリゾルバがハッシュ関数により機械的に定められるため、リゾルバを広域に分散するとネットワーク上で遠くに存在するリゾルバとの通信を強いられる場面が多く発生し、遅延の観点から問題が生じる。例えば、１万台のリゾルバを使用する場合、メッセージの転送は最大で14回となるため登録・検索の処理を１秒以内に完了させるためには、通信遅延以外の処理時間が無視できるほど短いと仮定しても１回のリゾルバ間のメッセージの授受に許容される遅延はわずか70msecとなってしまう。これは大陸を跨ってリゾルバを配置することが不可能になることを意味する（日米間の通信遅延は200msec程度。一方、日本国内では20msec程度）。
本発明は、上記の事情を考慮してなされたものであり、その目的は、リソース情報の登録及び検索におけるメッセージ転送に要する遅延時間を抑えたリソース情報検索システム、リゾルバ及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、ユーザ端末は登録要求を最寄の名前解決機構のみへ送信する一方で、検索要求を並列動作する全ての名前解決機構へ並行して送信する。これにより、リソースに関する情報は、当該リソースを保有するユーザ端末が帰属する名前解決機構のハッシュ空間にのみ登録されるが、並列動作する全てのハッシュ空間に登録されたリソースを検索することが可能である。検索時の遠方のリゾルバとの通信は全て並行して行われるため、これに伴う遅延時間を、高々、遠方のリゾルバとの通信１回分の時間に抑えることができる。
【０００９】
請求項２に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントに対応するリゾルバヘ前記リソースの名前及びメタ情報を含む登録要求を送信し、該登録要求に対する完了通知を受信する登録要求手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前を含む検索要求を送信し、該検索要求に対する回答を受信する検索要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、登録要求の処理において、ユーザ端末が、並列動作する全ての名前解決機構のハッシュ空間にリソースに関する情報を登録する。これにより、各ハッシュ空間に全てのリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
【００１０】
請求項３に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、検索要求の処理において、ユーザ端末が検索条件として指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録されたリソースの情報を回答するだけではなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘ並行してアクセスし、全ての名前解決機構のハッシュ空間に登録されたリソースを検索した結果をユーザ端末へ回答する。これにより、検索時の遠方のリゾルバとの通信遅延を、高々、遠方のリゾルバとの通信１回分の時間に抑えることができる。
また、登録要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
【００１１】
請求項４に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムであって、前記ユーザ端末は、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、前記取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘユーザが指定するリソースの名前及びメタ情報を含む登録要求又はユーザが指定するリソースの名前を含む検索要求を送信し、前記登録要求に対する完了通知又は前記検索要求に対する回答を受信する要求手段と、を備え、前記リゾルバは、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリソース情報検索システムである。
本発明では、登録要求の処理において、ユーザが指定した名前に対応するハッシュキーを管理するリゾルバが、自身の管理するハッシュ空間に登録するだけでなく並列動作する他の名前解決機構のハッシュ空間において同じハッシュキーを管理する対応リゾルバヘアクセスし、全ての名前解決機構のハッシュ空間にリソースを登録する。これにより、全ての名前解決機構のハッシュ空間にリソースの情報が冗長に登録されることになるため、各リゾルバが保持するハッシュキーとアドレスの対応表の大きさが増大するものの、検索時の遠方のリゾルバとの通信が不要となる。
また、検索要求の処理において、遠方の名前解決機構におけるハッシュキーを管理する担当リゾルバの探索が不要となり、個々の名前解決機構内で交換される通信トラヒック量を削減することができる。
【００１２】
請求項５に記載の発明は、ユーザ端末と、該ユーザ端末からの要求に応じて目的のリソースを利用するのに必要となるメタ情報をハッシュ表を用いて記録あるいは回答する１つ以上のリゾルバが参加する複数並列に動作する名前解決機構と、各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバとがネットワークで接続されたリソース情報検索システムにおける前記リゾルバであって、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、前記ブートストラップサーバのネットワークアドレスと、を記憶し、前記ブートストラップサーバヘアクセスし前記リストを取得するリスト取得手段と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する起動時処理手段と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する登録要求処理手段と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する検索要求処理手段と、を備えることを特徴とするリゾルバである。
【００１３】
請求項６に記載の発明は、請求項５に記載のリゾルバにおいて、前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、前記リゾルバの検索要求処理手段は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする。
【００１４】
請求項７に記載の発明は、請求項５に記載のリゾルバにおいて、前記リゾルバは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記リスト取得手段により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するネットワークアドレス取得手段をさらに備え、前記リゾルバの登録要求処理手段は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする。
【００１５】
請求項８に記載の発明は、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報を値として保持するハッシュ表と、ハッシュ空間全体の中で前記ハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報と、該自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスと、複数並列に動作する各名前解決機構のエントリポイントのネットワークアドレスのリストを回答するブートストラップサーバのネットワークアドレスと、を記憶したコンピュータに、前記ブートストラップサーバヘアクセスし前記リストを取得する第１の処理と、起動時に、前記ブートストラップサーバから取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定する第２の処理と、登録要求を受信した場合は、該登録要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記登録要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加して前記登録要求の送信元へ完了通知を送信する第３の処理と、検索要求を受信した場合は、該検索要求に含まれるリソースの名前からハッシュキーを生成し、該ハッシュキーが自身の担当するハッシュ空間に含まれない場合は、前記検索要求を前記隣接リゾルバヘ転送し、前記ハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出して前記検索要求の送信元へ送信する第４の処理と、を実行させるためのプログラムである。
【００１６】
請求項９に記載の発明は、請求項８に記載のプログラムにおいて、前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記第１の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第５の処理をさらに含み、前記第４の処理は、検索要求を受信した場合に該検索要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表から前記リソースの名前に対応するメタ情報を見つけ出すとともに、前記検索要求の送信元が前記対応リゾルバである場合は、前記見つけ出したメタ情報を前記検索要求の送信元へ送信し、前記検索要求の送信元が前記対応リゾルバでない場合は、前記見つけ出したメタ情報と、前記検索要求を前記対応リゾルバへ転送して受信したメタ情報とを前記検索要求の送信元へ送信することを特徴とする。
【００１７】
請求項１０に記載の発明は、請求項８に記載のプログラムにおいて、前記コンピュータは自身が参加する以外の名前解決機構において自身の担当するハッシュ空間と同じハッシュ空間を担当するリゾルバである対応リゾルバのネットワークアドレスのリストをさらに記憶し、前記第１の処理により取得したリストに含まれる各エントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得する第５の処理をさらに含み、前記第３の処理は、登録要求を受信した場合に該登録要求に含まれるリソースの名前から生成したハッシュキーが自身の担当するハッシュ空間に含まれる場合は、前記ハッシュ表のエントリとして前記登録要求に含まれるリソースの名前及びメタ情報を追加するとともに、前記登録要求の送信元が前記対応リゾルバである場合は、前記登録要求の送信元へ完了通知を送信し、前記登録要求の送信元が前記対応リゾルバでない場合は、自身の完了通知と、前記登録要求を前記対応リゾルバへ転送して受信した完了通知とを前記登録要求の送信元へ送信することを特徴とする。
【発明の効果】
【００１８】
本発明は、一般の名前空間を対象にした大規模な名前解決機構の分散処理において、遠方のリゾルバとの通信が発生する頻度を少なくすることでメッセージ転送に要する遅延時間を低く抑え、全世界に多数のリゾルバを分散配置した場合にも高速に名前解決結果を取得することを可能とする。すなわち、全てのリゾルバが単一のハッシュ空間を分散管理するのではなく、互いに短い通信遅延でメッセージが交換できるリゾルバ同士をクラスタリングしてクラスタ毎に名前解決機構を形成することにより、リゾルバ間で登録／検索要求が転送される際の遅延を短く抑えることができる。また同時に、高コストな長距離のネットワーク回線のトラヒック量の削減にも寄与する。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照し、本発明の第１の実施形態について説明する。図１はこの実施形態におけるリソース情報検索システム１の構成を示す図である。このリソース情報検索システム１は、ユーザ端末１０１とリソース情報検索機構１０から構成され、インターネットなどのデータ通信ネットワークで接続されている。
【００２０】
ここでリソース情報検索機構とは、ユーザが所有している、あるいはメタ情報を参照できるなど何らかの利用権を有している物品や情報コンテンツなどの各種リソースについて、ユーザからの要求に応じて、目的のリソースを利用するのに必要となるネットワークアドレスや識別ＩＤなど当該リソースに関する１つ以上のメタ情報を記録あるいは回答するものである。なお、識別ＩＤやメタ情報の記録方法としてハードステートとソフトステートが考えられるが、以下ではデータベースで一般的に用いられるハードステートを前提とする。ハードステートとは、登録された情報を明示的に削除されるまで恒久的に保持する方法であり、一方ソフトステートとは、登録された情報を一時的に保持し、一定期間の後に自動的に削除する方法である。
【００２１】
図１のリソース情報検索機構１０において、３０１は並列動作する名前解決機構のうちユーザ端末１０１に最寄の１つ、３０２は別の名前解決機構の１つ、３１１は名前解決機構３０１を構成するリゾルバの１つ、３２１は名前解決機構３０２のエントリポイントに対応するリゾルバをそれぞれ示し、５０１はブートストラップサーバを示す。これらは、インターネットなどのデータ通信ネットワークで接続されている。
なお、図面を明瞭にするために、名前解決機構を２つ、各名前解決機構を構成するリゾルバをそれぞれ１つ、ユーザ端末とブートストラップサーバをそれぞれ１つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構３０１及び３０２には、それぞれリゾルバ３１１、３１２以外にハッシュ空間全体を分割して担当する図示しない１つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが１つである場合は、ハッシュ空間全体を１つのリゾルバが担当する。
【００２２】
まず、ユーザ端末１０１の構成及び動作を説明する。ユーザ端末１０１には、ユーザが指定するリソースの名前、ユーザが指定するリソースのメタ情報、登録／検索の各要求を識別する命令コード、ブートストラップサーバ５０１のネットワークアドレスの４種類の情報と、次の３つのプログラムが搭載されている（図２を参照）。
【００２３】
第１のプログラムは、ブートストラップサーバ５０１ヘアクセスし複数並列に存在する各名前解決機構のエントリポイントを表すネットワークアドレスのリストを取得するプログラム２０１である。ブートストラップサーバ５０１より取得したリストはユーザ端末１０１内に一時的に複製を記憶しておくことも可能である。その場合、ブートストラップサーバ５０１内のリストと複製の同期をとるため、周期的にユーザ端末１０１内の複製を破棄するか、ブートストラップ５０１内のリストが更新された時点でブートストラップサーバ５０１よりユーザ端末１０１へ複製の無効化を指示する必要がある。
【００２４】
第２のプログラムは、プログラム２０１が取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘ登録要求（リソースの名前とメタ情報の組と命令コードを運ぶメッセージ）を送信し、登録要求に対する完了通知を受信するプログラム２０２である。ここでリソースの名前とは自己説明的な名前あるいは識別IDを指し、前者はメタ情報の集合である。メタ情報の例としては、XML(eXtensible Markup Language)で記述されたものが挙げられる。ネットワーク上の距離の具体的尺度としては、ICMP(Internet Control Message Protocol) echoメッセージの応答時間(RTT)やtracerouteコマンドなどで測定可能なルータホップ数が挙げられる。
【００２５】
第３のプログラムは、プログラム２０１が取得したリストに含まれる各エントリポイントに対応するリゾルバヘ検索要求（リソースの名前と命令コードを運ぶメッセージ）を送信し、各リゾルバから検索要求に対する回答（メタ情報の集合を運ぶメッセージ）を受信するプログラム２０３である。
【００２６】
上記のプログラムによるユーザ端末１０１の登録要求の処理フローについて、図３を参照して説明する。まず、ユーザ端末１０１は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う（ステップＳ１１）。複製を有する場合はステップＳ１３へ進む。複製を有しない場合はステップＳ１２へ進み、ブートストラップサーバ５０１へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する（ステップＳ１３）。次に、選択したエントリポイントに対応するリゾルバヘ登録要求を送信する（ステップＳ１４）。そして、この登録要求に対する完了通知を受信する（ステップＳ１５）。
これらの各ステップのうち、ステップＳ１２はプログラム２０１、その他のステップはプログラム２０２に従って処理が行われる。従来、ステップＳ１３及びＳ１４の処理は行われていなかった。
【００２７】
また、上記のプログラムによるユーザ端末１０１の検索要求の処理フローについて、図４を参照して説明する。まず、ユーザ端末１０１は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う（ステップＳ２１）。複製を有する場合はステップＳ２３へ進む。複製を有しない場合はステップＳ２２へ進み、ブートストラップサーバ５０１へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントに対応するリゾルバヘ、並行して検索要求を送信する（ステップＳ２３）。そして、各リゾルバから検索要求に対する回答を受信する（ステップＳ２４）。
これらの各ステップのうち、ステップＳ２２はプログラム２０１、その他のステップはプログラム２０３に従って処理が行われる。従来、ステップＳ２３の処理は行われていなかった。
【００２８】
次に、リゾルバ３１１の構成及び動作を説明する。リゾルバ３１１には、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報の対応を保持するハッシュ表、ハッシュ空間全体の中でハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報、自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレスの３種類の情報を持ち、次の７つのプログラムが搭載されている（図２を参照）。
【００２９】
第１のプログラムは、登録／検索の各要求メッセージを受信し、要求メッセージ中の命令コードに基づいて処理方法を決定し、後述するプログラム４０２ヘリソースの名前とメタ情報の組を渡すか、同じく後述するプログラム４０３ヘリソースの名前を渡すプログラム４０１である。
【００３０】
第２のプログラムは、４０１からリソースの名前とメタ情報の組を受け取ってリソースの名前からハッシュキーを生成し、当該ハッシュキーが自身のハッシュ空間に含まれる場合は後述するプログラム４０４へリソースの名前とメタ情報の組を渡し、そうでなければ当該ハッシュキーの管理を担当する他のリゾルバである担当リゾルバを探索して処理を実行させるため、登録要求メッセージを隣接リゾルバヘ転送するプログラム４０２である。担当リゾルバの所在は、DHTの仕組みにより、該ハッシュキーの検索要求を隣接リゾルバヘ送信すれば回答が得られる。同様に、該ハッシュキーの登録要求を隣接リゾルバヘ送信すれば完了通知が得られる。
【００３１】
第３のプログラムは、プログラム４０１からリソースの名前を受け取ってそのハッシュキーを生成し、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合は後述するプログラム４０５へリソースの名前を渡し、そうでなければ当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求メッセージを隣接リゾルバへ転送するプログラム４０３である。
【００３２】
第４のプログラムは、プログラム４０２からリソースの名前とメタ情報の組を受け取り、リソースの名前をインデクスとする対応表のエントリとして受け取ったリソースの名前とメタ情報の組を追加し、完了通知を要求元のユーザ端末１０１のプログラム２０２へ送信する登録処理用のプログラム４０４である。
第５のプログラムは、プログラム４０３からリソースの名前を受け取り、対応表から名前に対応する１つ以上のメタ情報を見つけ出し、それらを要求元のユーザ端末１０１のプログラム２０３へ送信する検索処理用のプログラム４０５である。
第６のプログラムは、前述のプログラム２０１と同等のプログラム４０６である。
【００３３】
第７のプログラムは、リゾルバ３１１の起動時に各名前解決機構のエントリポイントヘのネットワーク上の距離を測定して最も近いエントリポイントに対応する名前解決機構への参加、あるいは自身が新たな名前解決機構のエントリポイントとなることを決定するプログラム４０７である。最も近いエントリポイントに対応するリゾルバヘのネットワーク上の距離がある基準を上回る場合、例えば、応答時間(RTT)が100msecを越えたりルータホップ数が20を越えるなどの場合に、自身がエントリポイントとなる。
また、ネットワーク上の距離の測定対象をエントリポイントとするのではなく、リゾルバ以外のランドマークとなるホストを測定対象として用いる方法も考え得る。ランドマークホストの例としては、十数台が全世界に分散して配置されているDNSのルートサーバが挙げられる。この方法では、各名前解決機構はランドマークホストのいずれか１つと一対一に対応し、最寄のランドマークホストに対応する名前解決機構が存在しないときに自身がエントリポイントとなる。
このようにしてリゾルバ３１１は、帰属する名前解決機構を決定し、また、ハッシュ表を用いてリソースの情報を記録あるいは回答する。
【００３４】
上記のプログラムによるリゾルバ３１１の処理フローについて、図５を参照して説明する。まず、リゾルバ３１１は、登録又は検索の要求メッセージを受信する（ステップＳ３１）。次に、受信した要求メッセージ中の命令コードに基づいて検索要求であるか否か判定する（ステップＳ３２）。検索要求である場合は、後述するように図６に示す処理を行う。検索要求でない場合、すなわち登録要求である場合はステップＳ３３へ進み、リソースの名前からハッシュキーを生成する。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する（ステップＳ３４）。自身の担当するハッシュ空間に含まれない場合はステップＳ３５へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップＳ３６へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末１０１へ完了通知を送信する。
これらの各ステップのうち、ステップＳ３１はプログラム４０１、ステップＳ３３〜Ｓ３５はプログラム４０２、ステップＳ３６及びＳ３７はプログラム４０４に従って処理が行われる。
【００３５】
次に、上記のステップＳ３２において、要求メッセージが検索要求であると判定された場合の処理フローについて、図６を参照して説明する。リゾルバ３１１は、リソースの名前からハッシュキーを生成する（ステップＳ４１）。次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する（ステップＳ４２）。自身の担当するハッシュ空間に含まれない場合はステップＳ４３へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップＳ４４へ進み、対応表からリソースの名前に対応するメタ情報を見つけ出す。そして、要求元のユーザ端末１０１へ回答を送信する（ステップＳ４５）。
これらの各ステップのうち、ステップＳ４１〜Ｓ４３はプログラム４０３、ステップＳ４４及びＳ４５はプログラム４０５に従って処理が行われる。
【００３６】
次に、上記のプログラムによるリゾルバ３１１の起動時の処理フローについて、図７を参照して説明する。リゾルバ３１１は、起動時にブートストラップサーバ５０１へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する（ステップＳ５１）。次に、アドレスリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントを選択する（ステップＳ５２）。次に、選択したエントリポイントへのネットワーク上の距離が予め設定された基準値以内であるか否か判定する（ステップＳ５３）。基準値以内である場合はステップＳ５５へ進み、選択したエントリポイントに対応する名前解決機構へ参加する。一方、基準値を超えている場合はステップＳ５４へ進み、自身が新たな名前解決機構のエントリポイントとなることを決定する。
これらの各ステップのうち、ステップＳ５１はプログラム４０６、その他のステップはプログラム４０７に従って処理が行われる。従来、ステップＳ５２〜Ｓ５５の処理は行われていなかった。
【００３７】
次に、ブートストラップサーバ５０１の構成について説明する。ブートストラップサーバ５０１には、複数並列に存在する各名前解決機構のエントリポイントとなるリゾルバのネットワークアドレスのリストとユーザ端末１０１のプログラム２０１あるいはリゾルバ３１１のプログラム４０６からのアクセスに対して各名前解決機構のエントリポイントを表すネットワークアドレスのリストを回答するプログラム６０１が搭載される（図２を参照）。
【００３８】
以上、リゾルバ３１１の構成及び動作を説明したが、リゾルバ３２１の構成及び動作も同様である。なお、リゾルバを構成する情報及びプログラムを配備するコンピュータに、ブートストラップサーバを構成する情報及びプログラムを重畳して配備することも可能である。その場合、最初の名前解決機構の最初のリゾルバ、すなわち、名前解決機構が存在しないため自身が新たな名前解決機構のエントリポイントとなることを決定したリゾルバに、最初のブートストラップサーバを重畳する。その後は任意のリゾルバのコンピュータにブートストラップサーバを重畳して配備し得る。
【００３９】
上述した実施形態は、ユーザ端末１０１が登録要求を最寄の名前解決機構３０１のみへ送信し、検索要求を全ての名前解決機構３０１及び３０２へ送信するものであるが、検索要求を最寄の名前解決機構３０１のみへ送信し、登録要求を全ての名前解決機構３０１及び３０２へ送信する形態とすることも可能である。
【００４０】
次に、本発明の第２の実施形態について説明する。図８はこの実施形態におけるリソース情報検索システム２の構成を示す図である。この実施形態は、遠方のリゾルバとの通信をユーザ端末ではなく担当リゾルバが行う点が第１の実施形態と異なる。
図２において、１０２はユーザ端末を示し、３１０は並列動作する名前解決機構のうちユーザ端末１０２に最寄の１つ、３２０は別の名前解決機構の１つ、３１２は名前解決機構３１０を構成するリゾルバの１つ、３２２は名前解決機構３２０を構成するリゾルバの１つであって、名前解決機構３１０のリゾルバ３１１の対応リゾルバをそれぞれ示し、５０１はブートストラップサーバを示す。これらは、インターネットなどのデータ通信ネットワークで接続されている。
ここで対応リゾルバとは、あるリゾルバが担当するハッシュ空間と同じハッシュ空間を他の名前解決機構において担当するリゾルバである。ハッシュ空間全体を名前解決機構ごとに分割し、各名前解決機構に参加するリゾルバが分割されたそれぞれのハッシュ空間を担当するため、ある１つの名前解決機構のリゾルバに対して、他の名前解決機構において同じハッシュ空間を担当するリゾルバは複数存在し得る。
なお、図面を明瞭にするために、名前解決機構を２つ、各名前解決機構を構成するリゾルバをそれぞれ１つ、ユーザ端末とブートストラップサーバをそれぞれ１つだけ示したが、勿論それぞれ多数を配置することが可能である。以下の説明においては、名前解決機構３１０及び３２０には、それぞれリゾルバ３１２、３２２以外にハッシュ空間全体を分割して担当する図示しない１つ以上のリゾルバが存在することを前提としている。なお、名前解決機構を構成するリゾルバが１つである場合は、ハッシュ空間全体を１つのリゾルバが担当する。
【００４１】
まず、ユーザ端末１０１の構成及び動作を説明する。ユーザ端末１０２には、ユーザが指定するリソースの名前、ユーザが指定するリソースのメタ情報、登録／検索の各要求を識別する命令コード、ブートストラップサーバ５０１のネットワークアドレスの４種類の情報と、次の２つのプログラムが搭載されている（図９を参照）。
【００４２】
第１のプログラムは、第１の実施形態におけるユーザ端末１０１のプログラム２０１と同等のプログラム２０１である。
第２のプログラムは、プログラム２０１が取得したリストに含まれる各エントリポイントヘのネットワーク上の距離を測定し、最も近いエントリポイントに対応するリゾルバヘ登録要求（リソースの名前とメタ情報の組と命令コードを運ぶメッセージ）あるいは検索要求（リソースの名前と命令コードを運ぶメッセージ）を送信し、登録要求に対する完了通知あるいは検索要求に対する回答（メタ情報の集合を運ぶメッセージ）を受信するプログラム２１２である。
【００４３】
上記のプログラムによるユーザ端末１０２の処理フローについて、図１０を参照して説明する。まず、ユーザ端末１０２は、各名前解決機構のエントリポイントのアドレスリストの複製が記憶されているか判定を行う（ステップＳ６１）。複製を有する場合はステップＳ６３へ進む。複製を有しない場合はステップＳ６２へ進み、ブートストラップサーバ５０１へアクセスし、各名前解決機構のエントリポイントのアドレスリストを取得する。
次に、アドレスリストに含まれる各エントリポイントへのネットワーク上の距離を測定し、最も近いエントリポイントを選択する（ステップＳ６３）。次に、選択したエントリポイントに対応するリゾルバヘ登録要求又は検索要求を送信する（ステップＳ６４）。そして、登録要求に対する完了通知又は検索要求に対する回答を受信する（ステップＳ６５）。
これらの各ステップのうち、ステップＳ６２はプログラム２０１、その他のステップはプログラム２１２に従って処理が行われる。従来、ステップＳ６３及びＳ６４の処理は行われていなかった。
【００４４】
次に、リゾルバ３１２の構成及び動作を説明する。リゾルバ３１２は、リソースの名前をインデクスとし、それに対応する１つ以上のメタ情報の対応を保持するハッシュ表、ハッシュ空間全体の中でハッシュ表を用いて自身が管理を担当するハッシュ空間の範囲を表すハッシュキーの範囲の情報、自身の担当するハッシュ空間に隣接するハッシュ空間を担当するリゾルバである隣接リゾルバのネットワークアドレス、並列に存在する他の名前解決機構において同じハッシュ空間を担当するリゾルバ群である対応リゾルバ群のネットワークアドレスのリスト、ブートストラップサーバ５０１のネットワークアドレスの５種類の情報を持つ。
前述の通り、対応リゾルバは複数存在し得るため、上記の対応リゾルバ群のネットワークアドレスのリストに記録するネットワークアドレスは、自身が担当するハッシュ空間の先頭のハッシュキー（ハッシュ値が最小のキー）に対応するリゾルバのネットワークアドレスとする。その他のハッシュキーの対応リゾルバの所在は、DHTの仕組みにより、該ハッシュキーの検索要求を自身の対応リゾルバヘ送信すれば回答が得られる。
また、リゾルバ３１２には、次の９つのプログラムが搭載されている（図９を参照）。
【００４５】
第１のプログラムは、第１の実施形態におけるリゾルバ３１１のプログラム４０１と同等のプログラム４０１である。
第２のプログラムは、第１の実施形態におけるリゾルバ３１１のプログラム４０２と同等のプログラム４０２である。
第３のプログラムは、プログラム４０１からリソースの名前を受け取ってそのハッシュキーを生成し、当該ハッシュキーが自身のハッシュ空間に含まれない場合は当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求メッセージを隣接リゾルバヘ転送し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元がユーザ端末のプログラム２１２である場合は後述するプログラム４１５ヘリソースの名前を渡し、当該ハッシュキーが自身のハッシュ空間に含まれ且つ要求元が対応リゾルバのプログラム４１５である場合はプログラム４１６ヘリソースの名前を渡すプログラム４１３である。
第４のプログラムは、第１の実施形態におけるリゾルバ３１１のプログラム４０４と同等のプログラム４０４である。
【００４６】
第５のプログラムは、４１３からリソースの名前を受け取り、対応表から名前に対応する１つ以上のメタ情報を見つけ出すとともに、対応リゾルバ群へ検索要求を転送して回答を受け取り、自身の対応表から見つけ出したメタ情報と並列動作する他の名前解決機構における当該ハッシュキーの担当リゾルバから回答されたメタ情報の双方を要求元のユーザ端末１０２のプログラム２１２へ回答するユーザ端末向け検索処理用のプログラム４１５である。
第６のプログラムは、４１３からリソースの名前を受け取り、対応表から名前に対応する１つ以上のメタ情報を見つけ出し、それらを要求元の対応リゾルバのプログラム４１５へ送信する対応リゾルバ向け検索処理用のプログラム４１６である。
第７のプログラムは、第１の実施形態におけるリゾルバ３１１のプログラム４０６と同等のプログラム４０６である。
第８のプログラムは、第１の実施形態におけるリゾルバ３１１のプログラム４０７と同等のプログラム４０７である。
第９のプログラムは、プログラム４０６が取得したリストに含まれる各名前解決機構のエントリポイントヘ周期的にアクセスして対応リゾルバのネットワークアドレスを取得するプログラム４１８である。各名前解決機構における対応リゾルバの所在は、DHTの仕組みにより、自身の担当するハッシュ空間の先頭のハッシュキーの検索要求を各名前解決機構のエントリポイントヘ送信すれば回答が得られる。
【００４７】
上記のプログラムによるリゾルバ３１２の処理フローについて、図１１を参照して説明する。まず、リゾルバ３１２は、登録又は検索の要求メッセージを受信する（ステップＳ７１）。次に、受信した要求メッセージ中の命令コードに基づいて検索要求であるか否か判定する（ステップＳ７２）。検索要求である場合は、後述するように図１２に示す処理を行う。検索要求でない場合、すなわち登録要求である場合はステップＳ７３へ進み、リソースの名前からハッシュキーを生成する。
次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する（ステップＳ７４）。自身の担当するハッシュ空間に含まれない場合はステップＳ７５へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、登録要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合はステップＳ７６へ進み、対応表のエントリとして要求メッセージに含まれるリソースの名前とメタ情報の組を追加する。そして、要求元のユーザ端末１０２へ完了通知を送信する。
これらの各ステップのうち、ステップＳ７１はプログラム４０１、ステップＳ７３〜Ｓ７５はプログラム４０２、ステップＳ７６及びＳ７７はプログラム４０４に従って処理が行われる。
【００４８】
次に、上記のステップＳ７２において、要求メッセージが検索要求であると判定された場合の処理フローについて、図１２を参照して説明する。リゾルバ３１２は、リソースの名前からハッシュキーを生成する（ステップＳ８１）。次に、当該ハッシュキーが自身の担当するハッシュ空間に含まれるか否か判定する（ステップＳ８２）。自身の担当するハッシュ空間に含まれない場合はステップＳ８３へ進み、当該ハッシュキーの担当リゾルバを探索して処理を実行させるため、検索要求を隣接リゾルバヘ転送する。一方、当該ハッシュキーが自身の担当するハッシュ空間に含まれる場合は後述するように図１３に示す処理を行う。これらの各ステップはプログラム４１３に従って処理が行われる。
【００４９】
次に、上記のステップＳ８２において、ハッシュキーが自身の担当するハッシュ空間に含まれると判定された場合の処理フローについて、図１３を参照して説明する。リゾルバ３１２は、対応表からリソースの名前に対応するメタ情報を見つけ出す（ステップＳ９１）。次に、要求メッセージの送信元が対応リゾルバであるか否か判定する（ステップＳ９２）。送信元が対応リゾルバである場合はステップＳ９６へ進み、対応表より見つけ出したメタ情報を要求元の対応リゾルバへ回答として送信する。一方、送信元が対応リゾルバでない場合、すなわち送信元がユーザ端末１０２である場合は、ステップＳ９３へ進み、対応リゾルバへ検索要求を転送する。そして、対応リゾルバより回答を受信する（ステップＳ９４）。リゾルバ３１２は、自身の対応表から見つけ出したメタ情報と並列動作する他の名前解決機構における当該ハッシュキーの担当リゾルバから回答されたメタ情報の双方を要求元のユーザ端末１０２のプログラム２１２へ回答として送信する（ステップＳ９５）。
これらの各ステップのうち、ステップＳ９１はプログラム４１５及び４１６、ステップＳ９６はプログラム４１６、その他のステップはプログラム４１５に従って処理が行われる。従来、ステップＳ９２〜Ｓ９６の処理は行われていなかった。
【００５０】
上記のプログラム４０６、４０７によるリゾルバ３１２の起動時の処理フローは、第１の実施形態において図７を参照して説明したリゾルバ３１１の起動時の処理フローと同様である。
以上、リゾルバ３１２の構成及び動作を説明したが、リゾルバ３２２の構成及び動作も同様である。
【００５１】
ブートストラップサーバ５０１には、複数並列に存在する各名前解決機構のエントリポイントとなるリゾルバのネットワークアドレスのリストと第１の実施形態におけるブートストラップサーバ５０１のプログラム６０１と同等のプログラム６０１が搭載される（図２を参照）。
【００５２】
この実施形態ではハッシュキーの担当リゾルバが、検索要求の処理においてのみ、並列動作する他の名前解決機構の対応リゾルバヘアクセスしているが、登録要求の処理においてのみ対応リゾルバヘアクセスする形態とすることも可能である。
【産業上の利用可能性】
【００５３】
本発明は、ユーザが所有している、あるいはメタ情報を参照できるなど何らかの利用権を有しているリソース(物品や情報コンテンツ)について、ユーザからの要求に応じて、目的のリソースを利用するのに必要となるネットワークアドレスや識別ＩＤなど当該リソースに関する１つ以上のメタ情報を記録あるいは回答するリソース情報検索システムに用いられる。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施形態によるリソース情報検索システム１の構成を示す図である。
【図２】ユーザ端末１０１、リゾルバ３１１、ブートストラップサーバ５０１の構成を示す図である。
【図３】ユーザ端末１０１の登録要求の処理フローを示すフローチャートである。
【図４】ユーザ端末１０１の検索要求の処理フローを示すフローチャートである。
【図５】リゾルバ３１１の処理フローを示すフローチャートである。
【図６】リゾルバ３１１の処理フローの続きを示すフローチャートである。
【図７】リゾルバ３１１の起動時の処理フローを示すフローチャートである。
【図８】本発明の第２の実施形態によるリソース情報検索システム２の構成を示す図である。
【図９】ユーザ端末１０２、リゾルバ３１２、ブートストラップサーバ５０１の構成を示す図である。
【図１０】ユーザ端末１０２の処理フローを示すフローチャートである。
【図１１】リゾルバ３１２の処理フローを示すフローチャートである。
【図１２】リゾルバ３１２の検索要求の処理フローを示すフローチャートである。
【図１３】リゾルバ３１２の検索要求の処理フローの続きを示すフローチャートである。
【符号の説明】
【００５５】
１、２…リソース情報検索システム
１０、２０…リソース情報検索機構
１０１、１０２…ユーザ端末
３０１、３０２、３１０、３２０…名前解決機構
３１１、３１２、３２１、３２２…リゾルバ
２０１、２０２、２０３、２１２、４０１、４０２、４０３、４０４、４０５、４０６、４０７、４１３、４１５、４１６、４１８、６０１…プログラム
【図１】
2007006214.tif 000003
【図２】
2007006214.tif 000004
【図３】
2007006214.tif 000005
【図４】
2007006214.tif 000006
【図５】
2007006214.tif 000007
【図６】
2007006214.tif 000008
【図７】
2007006214.tif 000009
【図８】
2007006214.tif 000010
【図９】
2007006214.tif 000011
【図１０】
2007006214.tif 000012
【図１１】
2007006214.tif 000013
【図１２】
2007006214.tif 000014
【図１３】
2007006214.tif 000015