(57)【要約】      （修正有）【課題】特定のノード装置にクエリが集中した場合であっても、特定のノード装置に対して過大な処理負担が課されることを防止可能とする。【解決手段】ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一のノード装置において、共用情報を記憶するノード装置を示すノード情報と、各共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する手段と、特定共用情報に対応する固有の識別情報と、要求数を示す要求数情報と、を含む要求情報を受信する手段と、要求情報に含まれる要求数分のノード情報を検索し、ノード情報が発見された場合には、要求情報の送信元であるノード装置に、要求数分のノード情報を送信する手段と、受信した要求情報をノード装置毎に、ログを集計する手段と、集計したログに基づいて、要求情報を送信したノード装置に複製用ノード情報を送信する手段と、を有することを特徴とする。【選択図】図１
2006260430.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段と、
前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段と、
検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段と、
前記要求情報受信手段が受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段と、
集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、
を有することを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記ノード情報送信手段は、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信することを特徴とするノード装置。
【請求項３】
請求項１又は請求項２に記載のノード装置において、
前記記憶手段に記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段を有し、
前記複製用ノード情報送信手段は、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信することを特徴とするノード装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のノード装置において、
前記記憶手段は、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶し、
前記検知手段は、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知することを特徴とするノード装置。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載のノード装置において、
前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか１つに基づいて定められることを特徴とするノード装置。
【請求項６】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段と、
前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段と、
受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段と、
を有することを特徴とするノード装置。
【請求項７】
請求項６に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶することを特徴とするノード装置。
【請求項８】
請求項６又は請求項７に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除することを特徴とするノード装置。
【請求項９】
請求項８に記載のノード装置において、
前記記憶制御手段は、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。
【請求項１０】
請求項８又は請求項９に記載のノード装置において、
前記記憶制御手段は、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。
【請求項１１】
請求項８乃至請求項１０の何れか一項に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。
【請求項１２】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段、
前記記憶手段にて記憶した情報を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段
検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段、
前記要求情報受信手段により受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段及び
集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、
を有することを特徴とするノード情報複製プログラム。
【請求項１３】
請求項１２に記載のノード情報複製プログラムにおいて、
前記ノード情報送信手段を、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信するよう機能させることを特徴とするノード情報複製プログラム。
【請求項１４】
請求項１２又は請求項１３に記載のノード情報複製プログラムにおいて、
前記コンピュータを、前記記憶手段によって記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段として更に機能させ、かつ、
前記複製用ノード情報送信手段を、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信するよう機能させることを特徴とするノード情報複製プログラム。
【請求項１５】
請求項１２乃至請求項１４のいずれか一項に記載のノード情報複製プログラムにおいて、
前記記憶手段を、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶するよう機能させ、かつ、
前記検知手段を、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知するよう機能させることを特徴とするノード情報複製プログラム。
【請求項１６】
請求項１２乃至請求項１５のいずれか一項に記載のノード情報複製プログラムにおいて、
前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか１つに基づいて定められることを特徴とするノード情報複製プログラム。
【請求項１７】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段、
前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段及び
受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段として機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項１８】
請求項１７に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶するよう機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項１９】
請求項１７又は請求項１８に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除するよう機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項２０】
請求項１９に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項２１】
請求項１９又は請求項２０に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項２２】
請求項１９乃至請求項２１の何れか一項に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。
【請求項２３】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおけるノード情報複製方法において、
前記複数のノード装置に含まれる少なくとも１以上の要求情報送信ノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報であって、特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる複製要求ノード装置に送信する要求情報送信工程と、
前記複製要求ノード装置が、何れかの前記要求情報送信ノード装置から前記要求情報を受信する要求情報受信工程と、
前記複製要求ノード装置が、前記情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、
前記複製要求ノード装置が、前記要求情報受信工程にて受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を前記記憶工程にて記憶した情報より検索する検索工程と、
前記複製要求ノード装置が、前記検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記要求情報送信ノード装置のうち前記要求情報の送信元であるノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信工程と、
前記複製要求ノード装置が、前記要求情報受信工程によって受信した前記要求情報を当該一のノード装置に対して送信した前記要求情報送信ノード装置毎に、ログを集計するログ集計工程と、
前記複製要求ノード装置が、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した一の前記要求情報送信ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信工程と、
を有することを特徴とするノード情報複製方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報配信システムにおけるノード装置、当該ノード装置に含まれるコンピュータにより実行されるノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報（例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のＩＰアドレス等が特定できる情報）が記述されたレプリカリストを有しており、当該レプリカリストに記述されたＩＰアドレス等に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
例えば、非特許文献１には、管理サーバを用いない方法として、分散ハッシュテーブル（ＤＨＴ）を用いた技術が開示されているが、このシステムでは、コンテンツの配信を希望するリクエストノードは、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような分散ハッシュテーブル（ＤＨＴ）を用いたコンテンツ配信システムにおいて、当該システムに含まれるノード装置は、いろいろな役目を兼任している。例えば、あるコンテンツにとっては当該コンテンツを管理するルートノードであったり、またあるときはコンテンツを公開するコンテンツノードであったり、またあるときは、単にクエリを転送するだけの役目を担うこともある。
【０００５】
ところで、このようなＤＨＴ上には、あるコンテンツのルートノードは１つしか存在しない。
【０００６】
従って、人気のあるコンテンツのルートノードには、コンテンツ配信システムに参加している他のノード装置から多数のクエリが送信されることになる。
【０００７】
特に、人気のあるコンテンツの発売日や、何らかの要因によって短時間の間にリクエストが集中することが考えられ、このような状況になると、ルートノードはクエリを処理しきれず飽和状態となり、時には装置が動作不能になってしまうという問題が懸念される。
【０００８】
本発明は、以上の問題等に鑑みてなされたものであり、特定のノード装置にクエリが集中した場合であっても、他のノード装置にノード情報を複製することにより、特定のノード装置に対して過大な処理負担が課されることを防止可能としたノード装置、当該ノード装置に含まれるコンピュータにより実行されるノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段と、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段と、検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段と、前記要求情報受信手段が受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段と、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、を有することを特徴とする。
【００１０】
これによれば、クエリ（要求情報）を受信する際に、当該クエリを送信してくる各ノード装置毎に、クエリの送信数等のログを集計することにより、当該ノード装置にクエリが集中した場合には、ログに基づいて、例えばクエリの送信数の多いノード装置に対してノード情報を複製用ノード情報として送信することができるので、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
【００１１】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載のノード装置において、前記ノード情報送信手段は、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信することを特徴とする。
【００１２】
これによれば、クエリに含まれる要求情報にかかる要求数が多い場合であっても、リクエストノード（要求情報の送信元であるノード装置）はルートノード（管理ノード装置）から少なくとも１つはノード情報を受信することが可能になる。
【００１３】
上記課題を解決するために、請求項３に記載の発明は、請求項１又は請求項２に記載のノード装置において、前記記憶手段に記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段を有し、前記複製用ノード情報送信手段は、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信することを特徴とする。
【００１４】
これによれば、複製対象となるノード装置（要求情報を当該一のノード装置に対して送信したノード装置）が所持しないノード情報を複製用ノード情報として送信することが可能になる。
【００１５】
上記課題を解決するために、請求項４に記載の発明は、請求項１乃至請求項３のいずれか一項に記載のノード装置において、前記記憶手段は、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶し、前記検知手段は、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知することを特徴とする。
【００１６】
これによれば、コンテンツＩＤ（識別情報）及びノード情報を送信してきたノード装置のＩＰアドレス等の装置情報と共に登録するよう構成したので、自身にクエリを送信してきたノード装置の装置情報に対応しないノード情報を、容易に把握することができる。
【００１７】
上記課題を解決するために、請求項５に記載の発明は、請求項１乃至請求項４のいずれか一項に記載のノード装置において、前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか１つに基づいて定められることを特徴とする。
【００１８】
これによれば、有用なログに基づいて、クエリの送信数の多いノード装置を決定できる。
【００１９】
上記課題を解決するために、請求項６に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段と、前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段と、受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段と、を有することを特徴とする。
【００２０】
これによれば、クエリ（要求情報）を送信したノード装置から送信された複製用ノード情報を記憶手段に記憶することにより、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
【００２１】
上記課題を解決するために、請求項７に記載の発明は、請求項６に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶することを特徴とする。
【００２２】
これによれば、複製用ノード情報のみを消去させるなど、複製用ノード情報に対して記憶されたノード情報とは異なる処理を行なうことが可能になる。
【００２３】
上記課題を解決するために、請求項８に記載の発明は、請求項６又は請求項７に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除することを特徴とする。
【００２４】
これによれば、記憶手段に一旦記憶した複製用ノード情報を削除することが可能になる。
【００２５】
上記課題を解決するために、請求項９に記載の発明は、請求項８に記載のノード装置において、前記記憶制御手段は、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
【００２６】
これによれば、時間、即ち、どのくらい記憶する期間やいつまで記憶するかの期日に基づいて、複製用ノード情報を削除することが可能になる。
【００２７】
上記課題を解決するために、請求項１０に記載の発明は、請求項８又は請求項９に記載のノード装置において、前記記憶制御手段は、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
【００２８】
これによれば、複製用ノード情報を記憶手段の空き記憶容量に基づいて削除することが可能になる。
【００２９】
上記課題を解決するために、請求項１１に記載の発明は、請求項８乃至請求項１０の何れか一項に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
【００３０】
これによれば、複製用ノード情報を複製用ノード情報の稼動状況に基づいて削除することが可能になる。
【００３１】
上記課題を解決するために、請求項１２に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段、前記記憶手段にて記憶した情報を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段、検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段、前記要求情報受信手段により受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段及び集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、を有することを特徴とする。
【００３２】
上記課題を解決するために、請求項１３に記載の発明は、請求項１２に記載のノード情報複製プログラムにおいて、前記ノード情報送信手段を、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信するよう機能させることを特徴とする。
【００３３】
上記課題を解決するために、請求項１４に記載の発明は、請求項１２又は請求項１３に記載のノード情報複製プログラムにおいて、前記コンピュータを、前記記憶手段によって記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段として更に機能させ、かつ、前記複製用ノード情報送信手段を、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信するよう機能させることを特徴とする。
【００３４】
上記課題を解決するために、請求項１５に記載の発明は、請求項１２乃至請求項１４のいずれか一項に記載のノード情報複製プログラムにおいて、前記記憶手段を、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶するよう機能させ、かつ、前記検知手段を、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知するよう機能させることを特徴とする。
【００３５】
上記課題を解決するために、請求項１６に記載の発明は、請求項１２乃至請求項１５のいずれか一項に記載のノード情報複製プログラムにおいて、前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか１つに基づいて定められることを特徴とする。
【００３６】
上記課題を解決するために、請求項１７に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段、前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段及び受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段として機能させることを特徴とする。
【００３７】
上記課題を解決するために、請求項１８に記載の発明は、請求項１７に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶するよう機能させることを特徴とする。
【００３８】
上記課題を解決するために、請求項１９に記載の発明は、請求項１７又は請求項１８に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除するよう機能させることを特徴とする。
【００３９】
上記課題を解決するために、請求項２０に記載の発明は、請求項１９に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
【００４０】
上記課題を解決するために、請求項２１に記載の発明は、請求項１９又は請求項２０に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
【００４１】
上記課題を解決するために、請求項２２に記載の発明は、請求項１９乃至請求項２１の何れか一項に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
【００４２】
上記課題を解決するために、請求項２３に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおけるノード情報複製方法において、前記複数のノード装置に含まれる少なくとも１以上の要求情報送信ノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報であって、特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる複製要求ノード装置に送信する要求情報送信工程と、前記複製要求ノード装置が、何れかの前記要求情報送信ノード装置から前記要求情報を受信する要求情報受信工程と、前記複製要求ノード装置が、前記情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、前記複製要求ノード装置が、前記要求情報受信工程にて受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を前記記憶工程にて記憶した情報より検索する検索工程と、前記複製要求ノード装置が、前記検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記要求情報送信ノード装置のうち前記要求情報の送信元であるノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信工程と、前記複製要求ノード装置が、前記要求情報受信工程によって受信した前記要求情報を当該一のノード装置に対して送信した前記要求情報送信ノード装置毎に、ログを集計するログ集計工程と、前記複製要求ノード装置が、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した一の前記要求情報送信ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信工程と、を有することを特徴とする。
【発明の効果】
【００４３】
本発明によれば、特定のノード装置に対してクエリが集中した場合などに、特定のノード装置に過大な処理負担が課されることを防止することができる。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００４５】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００４６】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００４７】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００４８】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報（ノード情報）としての固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置１間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００４９】
［１−１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したアルゴリズムについて説明する。
【００５０】
上述したコンテンツ配信システムＳにおいて、当該ノード装置１が、他のノード装置１の持つ情報にアクセスする際には、その情報を持つノード装置１のノード情報としてのＩＰアドレスを知っていなければならない。
【００５１】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスと各装置が持つ情報の索引を知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置１にて記憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００５２】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限のノード装置１のＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノード装置１については、各ノード装置１間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【００５３】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバレイオーバレイネットワーク９が構築されることになる。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００５４】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバレイネットワーク９を前提としており、このオーバレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバレイネットワーク９に参加）しているノード装置１という。なお、コンテンツ配信システムＳへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置１に対して参加要求を送ることによって行われる。
【００５５】
コンテンツ配信システムＳに参加している各ノード装置１のノードＩＤは、それぞれのノード装置毎にユニーク（固有）な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128≒340×10＾36台のノード装置を運用できる。
【００５６】
より具体的には、各ノード装置１のノードＩＤは、それぞれのノード装置のＩＰアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００５７】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置1に配信される共用情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク（固有）な番号（以下、コンテンツＩＤという。）を付与する。
【００５８】
そして、当該コンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）とし、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１が、当該コンテンツデータを保存するか、あるいは、その所在情報を管理する。これにより、コンテンツデータを偏りなくコンテンツ配信システムＳ上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組合せとすればよい。
【００５９】
このように、各ノード装置１及び各コンテンツデータに付与されたノードＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成したため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は３２ｂｉｔでノードＩＤ及びコンテンツＩＤを付与し、図示したものである。図中黒点はノードＩＤを、黒ひし形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００６０】
次に、どのノード装置１に、どのコンテンツデータが保存されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置１に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツＩＤａは、ノードＩＤａを有するノード装置に管理され、コンテンツＩＤｂは、ノードＩＤｂを有するノード装置に管理され、コンテンツＩＤｃは、ノードＩＤｃを有するノード装置１に管理される。なお、あるノード装置は複数の異なるコンテンツデータを管理することもある。
【００６１】
なお、ここで「管理」というのは、コンテンツデータを保存／保持していることを意味するのではなく、「コンテンツデータが何れのノード装置１に保存されているかを知っている」ことを言う。すなわち、図２において、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータが何れのノード装置１に保存されているかを知っており、ノードＩＤｂを有するノード装置１及びノードＩＤｃを有するノード装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータが何れのノード装置１に保存されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置１に保存されているかを知っているノード装置を、そのコンテンツデータのルートノードと言う。つまり、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータのルートノードであって、ノードＩＤｂを有するノード装置１は、コンテンツＩＤｂを有するコンテンツデータのルートノードであって、ノードＩＤｃを有するノード装置１は、コンテンツＩＤｃを有するコンテンツデータのルートノードである。
【００６２】
また、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、あるコンテンツデータのルートノードが突然機能停止したり、或いはコンテンツデータが保存されているノード装置（以下、単に「コンテンツノード」という。）にて当該コンテンツデータが消滅（消去）してしまう場合が考えられる。このような場合であっても、ルートノードが、コンテンツデータの生存を確認し、自己の保持するレプリカリストのうち当該コンテンツデータに係るレプリカリストを更新しない限り、ルートノードの管理するコンテンツデータの情報はいつまでも残ることになる。そして、当該コンテンツデータが一旦は消滅したものの、再度同一コンテンツデータを登録する際には、改めて上記規則の下に再度ルートノードが選び出されることとなり、新しいノード装置の参加等によって以前のルートノードとは異なるノード装置が新しいルートノードとして選び出されることもありうる。
【００６３】
従って、上記規則の下にコンテンツデータとルートノードの対が作成された場合であっても、コンテンツ配信システムＳが何万何十万・・・と膨大なネットワークを構築していくに従って、ノード装置のコンテンツ配信システムＳからの脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、あるコンテンツデータの保存元であるコンテンツノードを知っているノード装置は１つではなく、現実的には多数のノード装置が存在することとなる。
【００６４】
また、あるコンテンツデータを保持するノード装置（コンテンツノード）は１台とは限らない。多数のノード装置が同一のコンテンツを保持してコンテンツ配信システムＳにそれぞれ参加する場合がある。このような場合も、各ノード装置が当該コンテンツ配信システムＳに参加する夫々のタイミングの状況下によってルートノードとなるべきノード装置が別々に決定されることもあるため、結果としてあるノート装置が同一のコンテンツデータを保持しているノード装置（コンテンツノード）を２つ以上知っている場合もある。
【００６５】
［１−２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。
【００６６】
図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００６７】
まず、図３（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長１６Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「10230210」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００６８】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」（Xは０から３の自然数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「1XXXXXXX」のエリア）以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００６９】
（レベル２のルーティング）
次に、図３（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル２のテーブルに記憶する。図４（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００７０】
（レベル３のルーティング）
さらに、図３（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００７１】
このようにして、レベル４以下レベル８まで同様にルーティングテーブル図４（Ｄ）に示す如く作成することにより、１６ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００７２】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置１が夫々作成して所有することになる。
【００７３】
［１−３．コンテンツデータの検索方法］
次に、図５を参照して、本実施形態におけるコンテンツデータの保存元であるノード装置１（以下、「コンテンツノード」と言う。）の検索方法の一例について説明する。
【００７４】
図５は、ＤＨＴによりコンテンツノードが検索される様子の一例を示す図である。
【００７５】
ここでは、ノードＩＤ「12003030」のノード装置１−１（以下、「リクエストノード」と言う。）が、コンテンツＩＤ「31330012」を有するコンテンツデータを保持するコンテンツノードを探す際の手順について説明する。なお、同図に示す如くコンテンツＩＤ「31330012」を保持するコンテンツノードのノードＩＤは「00213000」と「02223230」である。
【００７６】
図５において、リクエストノードからコンテンツＩＤ「31330012」を有するコンテンツデータを管理するノード装置１−５（すなわちルートノード）に至る経路を実線矢印で表すが、この経路の途中のノード装置1−４を、当該ルートノードが記憶しているコンテンツＩＤ「31330012」のレプリカリストをキャッシュとして保持するキャッシュノードとする。ここで、キャッシュノードとは、ルートノードと異なるノード装置であって、レプリカリストを一時的に記憶しているノード装置を言う。なお、キャッシュノードがレプリカリストを一時的に記憶する手法については後に詳述する。
【００７７】
まず、リクエストノードは、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信する。
【００７８】
ここで、リクエストノードが送信するクエリについて説明する。
【００７９】
クエリには、所望のコンテンツを示すコンテンツＩＤ「31330012」だけでなく、コンテンツノードのノード情報をいくつ要求するかを示す要求数情報も含まれる。すなわち、同一のコンテンツを保持するコンテンツノードがコンテンツ配信システムＳの中に複数個存在する場合が考えられるが、このような場合、リクエストノードは、コンテンツ配信を要求する際に、所望のコンテンツを保持する複数のコンテンツノードに対して配信を要求するよう構成されている。
【００８０】
このとき、コンテンツノードのノード情報（ＩＰアドレス等）の要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になるという利点がある。また、１つのノード装置で接続可能なコンテンツノードの数は限られているため、その上限数が「１０」であるとすれば、コンテンツノードのＩＰアドレスの要求数をそれより若干多い「１５」等とすることが考えられる。上限数より若干多く要求する理由は、接続に失敗した場合の保険である。すなわち、コンテンツノードに配信要求をしたときに当該コンテンツノードの電源が切断されていてアクセス不可能であったり、或いは所望のコンテンツが何らかの原因で配信不可能な状態となっていて要求数だけのコンテンツノードと接続できないことが考えられるからである。一方、人気のないコンテンツは当該コンテンツ自体がシステム中に僅かしか存在していなかったり、当該コンテンツに対応するキャッシュノードが多く存在しないため、要求数を少なく設定することにより、クエリがルートノードへ転送されることなく、コンテンツノードのノード情報が短時間で揃うという利点があるので、リクエストノードのユーザが用途に応じて設定を変えることができる。また、ユーザが要求数を決定するだけでなく、他の方法としてノード装置によって自動的に要求数を決定するよう構成することもできる。
【００８１】
このように、リクエストノードは、所望のコンテンツを示すコンテンツＩＤだけでなく、コンテンツノードのノード情報を要求する数を示す要求数情報も一緒にクエリに含めて送信し、リクエストノードや各キャッシュノードから受信した当該要求数に応じた数の複数のコンテンツノードのノード情報に基づいて、当該複数のコンテンツノードにアクセスしてコンテンツの配信を要求するよう構成する。
【００８２】
なお、以下に図５を用いて説明するコンテンツデータの検索手法においては、ネットワーク上をクエリが転送されることでコンテンツデータを見つけ出すことができることをわかりやすく説明するため、上記要求数は「１」として説明する。
【００８３】
まず、リクエストノードは、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対して要求数を「１」とする要求数情報を含むクエリを送信する。つまり、コンテンツＩＤ「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）ノード装置１-２に対してクエリを送信する。
【００８４】
図５に示す例に拠れば、ノードＩＤが「30100000」であるノード装置１-２のＩＰアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードＩＤが「30100000」であるノード装置１-２に対してクエリを送信する。
【００８５】
次に、クエリを受信したノード装置１-２は、当該ノード装置１-２自身が保持しているインデックスを参照して、コンテンツＩＤ「31330012」に対応するレプリカリストの有無を確認する。すなわち、レプリカリストに含まれるノード情報の有無を確認する。そして、無い場合には、当該ノード装置１-２自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-３（ノードＩＤ「31012001」）に対してクエリを転送する。
【００８６】
このように、上流のノード装置、すなわち自己とルートノードの中間に介在するノード装置に対してクエリを転送し、コンテンツＩＤの桁を上から順に適合していく要領でルートノードへ近づいていく。
【００８７】
そして、ノード装置１-２からクエリを受信したノード装置１-３は、当該ノード装置１-３自身が保持しているインデックスを参照して、コンテンツＩＤ「31330012」に対応するレプリカリストの有無を確認する。無い場合には、当該ノード装置１-３自身が保持しているルーティングテーブルのレベル３のテーブルを参照して、「313XXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-４（ノードＩＤ「31320100」）に対してクエリを転送する。
【００８８】
そして、ノード装置１-３からクエリを受信したノード装置１-４は、当該ノード装置１-４自身が保持しているインデックスを参照して、コンテンツＩＤ「31330012」に対応するレプリカリストの有無を確認する。ノード装置１−４は、コンテンツＩＤ「31330012」にとっての上記キャッシュノードであるため、コンテンツノードのレプリカリストを少なくとも一つは発見することができる。つまり要求数が「１」であれば、クエリがルートノード（ノード装置１-５）に転送される前にキャッシュノード（ノード装置１-４）にて必ずレプリカリストを発見できる。
【００８９】
そして、発見したレプリカリストに含まれるコンテンツノード（ノード装置１-６）のノード情報（ＩＰアドレス等）をリクエストノードに送信する。
【００９０】
そして、コンテンツノード（ノード装置１-６）のノード情報を受信したリクエストノードは、コンテンツノード（ノード装置１-６）に対してコンテンツの配信を要求する配信要求を図５中破線矢印で示す如く送信する。そして、配信要求を受信したコンテンツノード（ノード装置１-６）は、図５中一点鎖線で示す如くコンテンツデータをリクエストノードに配信するようになっている。
【００９１】
次に、図６を参照してリクエストノードから送信されたクエリに含まれる要求数が「２」である場合の例について説明する。この場合、キャッシュノードであるノード装置１−４は、として説明する。
【００９２】
まず、リクエストノード（ノード装置１−１）からノード装置１-４（ノードＩＤ「31320100」）までクエリが転送されていく手順は上記図５を用いて説明した場合と同じである。
【００９３】
クエリを受けたノード装置１-４（ノードＩＤ「31320100」）は、コンテンツＩＤ「31330012」にとってのキャッシュノードであるが、クエリに含まれるコンテンツＩＤ「31330012」に対応するレプリカリストを１つしか保持していないものとする。つまり、クエリに含まれる要求数「２」以上のレプリカリストは保持していないのである。
【００９４】
この場合には、ノード装置１-４は、当該ノード装置１-４自身が保持しているルーティングテーブルのレベル４のテーブルを参照して、「3133XXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１-５（ノードＩＤ「31330000」）すなわちルートノードに対してクエリを転送する。
【００９５】
そして、最終的に当該コンテンツデータを管理するノード装置1−５、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツＩＤ「31330012」を元に自身が管理しているインデックスを参照し、コンテンツＩＤ「31330012」に対応するレプリカリストの有無を確認する。ここで、ルートノードのインデックスには、コンテンツノード（ノード装置１−６）とコンテンツノード（ノード装置１-７）のレプリカリストを有しているものとする。従って、ルートノードは要求数「２」以上のコンテンツＩＤ「31330012」に対応するレプリカリストを発見できる。
【００９６】
そして、発見した各レプリカリストに含まれるコンテンツノード（ノード装置１−６）とコンテンツノード（ノード装置１-７）のノード情報（ＩＰアドレス等）をリクエストノードに送信する。
【００９７】
そして、コンテンツノード（ノード装置１−６）とコンテンツノード（ノード装置１-７）のノード情報を受信したリクエストノードは、コンテンツノード（ノード装置１−６）とコンテンツノード（ノード装置１-７）に対してそれぞれコンテンツの配信を要求する配信要求を図５中破線矢印で示す如く送信する。そして、配信要求を受信した各コンテンツノードは、図５中一点鎖線で示す如くコンテンツデータをリクエストノードに配信する。
【００９８】
このように、リクエストノードが要求するコンテンツノードのノード情報の数である「要求数」以上のレプリカリストを有するノード装置（キャッシュノード又はルートノード）に辿り着くまで、クエリはルートノードに向けて転送されるようになっている。
【００９９】
また、あるコンテンツに対するルートノードは１つしか存在しないため、要求数が多くなればなるほどルートノードまで辿り着いてしまうことになる。また、人気のあるコンテンツのルートノードやキャッシュノードは、多くのクエリが送信されるため、リクエストノードへのノード情報の送信処理や、クエリの転送処理が、装置自身の処理能力を超えてしまうこともありうる。
【０１００】
従って、クエリを送信してきた各ノード装置毎に、当該クエリの受信回数、クエリに応じてノード情報を送信した送信回数、クエリに含まれる要求情報にかかる要求数等のログを集計し、当該ログに基づいて、例えばあるコンテンツに対するクエリの送信回数が際立って多いノード装置には、そのコンテンツのレプリカリストを複製するよう構成することにより、当該コンテンツのルートノードやキャッシュノードの処理負担を軽減することができる。
【０１０１】
［２．ノード装置の構成等］
次に、図７を参照して、ノード装置１の構成及び機能について説明する。尚、各ノード装置１は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第２のノード装置としてのキャッシュノード、当該コンテンツを管理する第２のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
【０１０２】
図７は、ノード装置１の概要構成例を示す図である。
【０１０３】
各ノード装置１は、図７に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記レプリカリストを記憶するインデックス、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０はバス２２を介して相互に接続されている。
【０１０４】
そして、制御部１１におけるＣＰＵが各種プログラムを実行することにより、コンテンツ登録処理、ノード情報要求処理、コンテンツ配信処理、レプリカリスト複製処理等の各種処理を実行し、当該各処理において、記憶手段、要求情報受信手段、検索手段、ノード情報送信手段、ログ集計手段、複製用ノード情報送信手段、検知手段、応急情報送信手段、複製用ノード情報受信手段及び記憶制御手段として機能する。
【０１０５】
[３．コンテンツ配信システムの動作]
次に、コンテンツ配信システムＳの各ノード装置の動作について説明する。
【０１０６】
上述したように、コンテンツ配信システムＳに含まれる全てのノード装置１は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等何れのノード装置にもなり得る。
【０１０７】
ここでは、ノード装置１の制御部１１が受けたメッセージを解析し、その結果に応じてコンテンツ登録処理、ノード情報要求処理、コンテンツ配信処理、レプリカリスト複製処理の何れかの処理を行なうものとして説明する。
【０１０８】
[３−１．処理選択の動作]
図８は、コンテンツ配信システムＳに含まれる任意のノード装置の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。当該フローチャートは制御部１１が通信部２０を介して他のノード装置から送信されたメッセージを受信することにより処理が開始される。
【０１０９】
まず、制御部１１が受信したメッセージが、コンテンツノードを含むコンテンツ配信システムＳ内の他のノード装置から送信された「パブリッシュ（コンテンツの公開）」、リクエストノードやキャッシュノードを含むコンテンツ配信システムＳ内の他のノード装置から送信された「クエリ（コンテンツ問い合わせ）」、リクエストノードから送信された「コンテンツ配信要求」、又はリクエストノードやキャッシュノードから送信された「レプリカリストの複製要求」の何れであるかを解析する（ステップＳ１）。
【０１１０】
解析の結果、「パブリッシュ」であればコンテンツ登録処理（ステップＳ２）へ、「クエリ」であればノード情報要求処理（ステップＳ３）へ、「コンテンツ配信要求」であればコンテンツ配信処理（ステップＳ４）へ、「レプリカリストの複製要求」であればレプリカリスト複製処理（ステップＳ５）へ、それぞれ移行して、後に詳述する規定の処理を実行し処理を終了する。
【０１１１】
続いて、ノード装置１にて行われる各処理について、図９乃至図２０を用いて詳細に説明する。
【０１１２】
[３−２．コンテンツ登録処理]
先ず、上記ステップＳ２における「コンテンツ登録処理」について説明する。
【０１１３】
コンテンツ登録処理とは、コンテンツ配信システムＳの中で、例えば、あるノード装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他のノード装置に見えるように公開する際の手法であり、登録処理が完了すると、このノード装置１がコンテンツを保持する（記憶する）情報記憶ノード装置としてのコンテンツノードとなる。
【０１１４】
まず、あるコンテンツをコンテンツ配信システムＳに含まれる他のノード装置と共用可能に登録しようとする際には、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）パブリッシュ（コンテンツの公開）を送信する。そして、このパブリッシュも、上述したクエリと同様にルーティングテーブルに従って、次々と転送されていき、当該パブリッシュに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや送信先のノード装置が他にないと判断すると、当該ノード装置１自身がそのコンテンツのルートノードとなるべきだと判断し、識別情報としてのコンテンツＩＤ、ノード情報としてのコンテンツノードのＩＰアドレス等をレプリカリストとして記憶する。なお、レプリカリストには、コンテンツの補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）を含めてもよい。
【０１１５】
図９は、パブリッシュを受信したノード装置の制御部１１に記憶されたコンテンツ登録プログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートであり、図８のフローチャートにおけるステップＳ２にて行われる処理である。
【０１１６】
まず、受信したパブリッシュに含まれるコンテンツＩＤに対応するレプリカリストが自己のインデックスに登録済みか否かを判定する（ステップＳ１０）。自己のインデックスにパブリッシュに含まれるコンテンツＩＤに対応するレプリカリストが無い場合には（ステップＳ１０：Ｎｏ）、記憶部１１のインデックスに新たにパブリッシュに含まれるコンテンツＩＤを登録する（ステップＳ１１）。
【０１１７】
一方、自己のインデックスにパブリッシュに含まれるコンテンツＩＤに対応するレプリカリストがある場合には（ステップＳ１０：Ｙｅｓ）、パブリッシュを送ってきたノード装置１のＩＰアドレス（装置情報）と、コンテンツノードのＩＰアドレス（ノード情報）とを、コンテンツＩＤに対応付けて新たにレプリカリストとして登録する（ステップＳ１２）。尚、当該処理によって登録されたレプリカリストは正規登録であるため、複製フラグを「０」とする。すなわち、後に詳述する「３−４.レプリカリスト複製処理」によって複製されたレプリカリストと区別して記憶するように構成されている（記憶制御手段）。
【０１１８】
続いて、自身がコンテンツＩＤのルートノードであるか否かを判定し（ステップＳ１３）、ルートノードである場合（ステップＳ１３：Ｙｅｓ）には処理を終了し、ルートノードでない場合（ステップＳ１３：Ｎｏ）にはパブリッシュをルートノード方向のノード装置へすなわち上流のノード装置へ転送して処理を終了する（ステップＳ１４）。
【０１１９】
図１０を用いて具体的に説明する。図１０は、映画Ａを有する２台のコンテンツノードが、夫々パブリッシュを送信し、キャッシュノード及びルートノードに登録されるまでの様子をスパニングツリー状に示した説明図である。
【０１２０】
同図において、映画ＡはコンテンツＩＤが「10000000」であって、２台のコンテンツノードのＩＰアドレスは夫々「11.11.11.11」と「22.22.22.22」である。
【０１２１】
ＩＰアドレス「22.22.22.22」を有するコンテンツノードから送信されたパブリッシュは、先ず、ＩＰアドレス「77.77.77.77」のノード装置まで辿り着く。
【０１２２】
パブリッシュには、映画Ａに対応する固有の識別情報としてのコンテンツＩＤと、コンテンツノードを示すノード情報としてのＩＰアドレスと、送信した装置を特定するための装置情報としてのＩＰアドレスと、が含まれているため、ＩＰアドレス「77.77.77.77」のノード装置は受信したパブリッシュに基づいて、パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）「22.22.22.22」と、コンテンツノードのＩＰアドレス（ノード情報）「22.22.22.22」とを、コンテンツＩＤ（識別情報）「10000000」に対応付けて記憶部１２のキャッシュ領域に記憶する（記憶手段）。このとき、後述する「レプリカリスト複製処理」による登録と区別するため、複製フラグを「０」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、ＩＰアドレス「77.77.77.77」のノード装置は、映画ＡのキャッシュノードＣ１となる。
【０１２３】
また、ＩＰアドレス「11.11.11.11」を有するコンテンツノードから送信されたパブリッシュは、ＩＰアドレス「99.99.99.99」のノード装置に辿り着く。そして、上記同様にＩＰアドレス「99.99.99.99」のノード装置は受信したパブリッシュに基づいて、パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）「11.11.11.11」と、コンテンツノードのＩＰアドレス（ノード情報）「11.11.11.11」とを、コンテンツＩＤ（識別情報）「10000000」に対応付けて記憶部１２のキャッシュ領域に記憶する（記憶手段）と共に、複製フラグを「０」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、ＩＰアドレス「99.99.99.99」のノード装置は、映画ＡのキャッシュノードＣ３となる。
【０１２４】
更に、キャッシュノードＣ３はパブリッシュをＩＰアドレス「88.88.88.88」のノード装置に転送する。このパブリッシュには送信した装置を特定するための装置情報としてキャッシュノードＣ３のＩＰアドレス「99.99.99.99」が含まれている。そして、ＩＰアドレス「88.88.88.88」のノード装置は当該パブリッシュを受信すると、パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）「99.99.99.99」と、コンテンツノードのＩＰアドレス（ノード情報）「11.11.11.11」とを、コンテンツＩＤ（識別情報）「10000000」に対応付けて記憶部１２のキャッシュ領域に記憶する（記憶手段）と共に、複製フラグを「０」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、ＩＰアドレス「88.88.88.88」のノード装置は、映画ＡのキャッシュノードＣ２となる。
【０１２５】
そして、キャッシュノードＣ１及びキャッシュノードＣ２はルートノードにパブリッシュを転送する。これらのパブリッシュには送信した装置を特定するための装置情報としてキャッシュノードＣ１のＩＰアドレス「77.77.77.77」とキャッシュノードＣ２のＩＰアドレス「88.88.88.88」が夫々含まれている。そして、ルートノードは各パブリッシュを受信すると、夫々のパブリッシュについてレプリカリストを登録する。すなわち、パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）「88.88.88.88」と、コンテンツノードのＩＰアドレス（ノード情報）「11.11.11.11」とを、コンテンツＩＤ（識別情報）「10000000」に対応付けて記憶する（記憶手段）と共に、複製フラグを「０」としてレプリカリストの登録を完了する。また、パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）「77.77.77.77」と、コンテンツノードのＩＰアドレス（ノード情報）「22.22.22.22」とを、コンテンツＩＤ（識別情報）「10000000」に対応付けて記憶する（記憶手段）と共に、複製フラグを「０」としてレプリカリストの登録を完了する。
【０１２６】
なお、ルートノードでは、複製フラグは常に０であるため（更に上位のノード装置が存在しないので複製処理の対象となることが無い）、複製フラグは記憶しなくてもよい。
【０１２７】
このようにして、コンテンツの登録が完了すると、コンテンツ配信システムＳに含まれる何れかのノード装置がリクエストノードとなって当該コンテンツの配信を要求するため、コンテンツノードの場所を問い合わせるクエリが転送されることになる。
【０１２８】
このクエリの転送は、図１１に示す如くルートノードを頂点としたツリー状にて記載することもできる。図１１は、コンテンツＩＤ「20000000」を含むクエリの転送ルートを示し、ルートノード及びキャッシュノードＣａ、Ｃｂは当該コンテンツＩＤ「20000000」に対応するレプリカリストをインデックスに１つ以上保持する。
【０１２９】
そして、同図に示す例によれば、キャッシュノードＣａはＩＰアドレスが「44.44.44.44」であって、レプリカリストを３個所持し、キャッシュノードＣｂはＩＰアドレスが「55.55.55.55」であって、レプリカリストを５個所持し、ルートノードはレプリカリストを８個所持する。そして、ノード装置１ｃはレプリカリストを１つも所持しないノード装置（キャッシュノードでもルートノードでもない）である。
【０１３０】
キャッシュノードＣａは、エリアＡに属すノード装置１からのクエリをＩＰアドレスが「54.54.54.54」のノード装置１若しくはＩＰアドレスが「53.53.53.53」のノード装置１を介して（これらのノード装置１からのクエリを）、ルートノードに転送する。より具体的には、エリアＡに属すノード装置１からのクエリに含まれる要求数が「３」以下である場合には、自身のインデックスに保持するレプリカリストで充足可能なため、クエリをルートノードに転送しないが、クエリに含まれる要求数が「４」以上である場合には、自身のインデックスに保持するレプリカリストでは足りないので、クエリをルートノードに転送することになる。また、キャッシュノードＣｂも同様にしてエリアＢに属すノード装置１からのクエリであって、当該クエリに含まれる要求数が「６」以上である場合にはクエリをルートノードに転送する。ノード装置１ｃはレプリカリストを１つも所持しないので、ノード装置１ｃが受信したエリアＣに属すノード装置１からのクエリは全てルートノードに転送されることとなる。
【０１３１】
[３−３．ノード情報要求処理]
続いて、図８のフローチャートのステップＳ３における「ノード情報要求処理」について図１１乃至図１６を用いて説明する。
【０１３２】
ノード情報要求処理は、図８におけるステップＳ１にてメッセージを解析した結果がクエリ（コンテンツ問い合わせ）である場合にステップＳ３において実行される処理である。
【０１３３】
図１２はクエリを受信したノード装置の制御部１１に記憶されたプログラム（ノード情報複製プログラムを含む）が当該制御部１１により実行されることにより行われる処理を示すフローチャートである。なお、当該処理を実行するキャッシュノード或いはルートノードは、本発明における複製要求ノード装置として機能する。
【０１３４】
先ず、制御部１１は、クエリを受信することにより要求情報受信手段として機能する。そして、クエリを受信すると、前回受信したクエリから一定期間が経過したか否かを判定する（ステップＳ２１）。判定の結果、一定期間が経過している場合には（ステップＳ２１：Ｙｅｓ）、記憶部１２に記憶したクエリ数カウンタと返信カウンタをリセットする（ステップＳ２２）。
【０１３５】
ここで、クエリ数カウンタと返信カウンタについて図を用いて説明する。
【０１３６】
図１３は、クエリ数カウンタの説明図である。
【０１３７】
クエリ数とは、例えば、図１１におけるキャッシュノードＣａが当該フローチャートのノード情報要求処理を実行している場合には、キャッシュノードＣａが一定期間の間に受信したクエリの数をクエリ数カウンタ（回）として示すもので、「リクエストノードにノード情報を送信したクエリ（回）」と「転送したクエリ（回）」との合計である。
【０１３８】
すなわち、このノード情報要求処理では、キャッシュノードＣａがキャッシュノードとしての役割を担う場合（クエリに含まれるコンテンツＩＤにかかるコンテンツ（例えば「映画Ａ」）のレプリカリストを少なくとも一つは保持している）に、フローチャートの後の処理にあるように、リクエストノードにノード情報を送信したクエリの数である。
【０１３９】
一方、キャッシュノードＣａは他のコンテンツ（例えば「映画Ｂ」）にとってはキャッシュノードでもルートノードでもなく、単にクエリを転送するだけの役目を担うノード装置となる場合がある。例えば、先に説明した［１−３.コンテンツデータの検索方法］の説明におけるノード装置１−２やノード装置１−３のような働きをする場合である（図５又は図６参照。）。
【０１４０】
このように、一定期間の間に転送したクエリの数もログとして集計している。図１３に示す「転送したクエリ」がこれに相当する。
【０１４１】
そして、クエリ数カウンタ（回）が、当該装置の処理できるクエリ数を「装置処理限界」とし、この装置処理限界を超えた場合には、クエリ数を低減させるよう制御することが必要となる。
【０１４２】
例えば、図１３（Ａ）に示す如く、クエリ数カウンタ（回）が装置処理限界を下回っていればノード装置は問題なく処理を行なえるが、クエリ数カウンタ（回）が装置処理限界を上回ると、クエリ数を減らすよう制御しなければならない。しかし、クエリ数のうち、「転送したクエリ（回）」は、制御することができないので、「リクエストノードにノード情報を送信したクエリ（回）」を低減させることにより、図１３（Ｂ）に示す如く、クエリ数を低減させるよう構成する。
【０１４３】
次に、返信カウンタについて説明する。
【０１４４】
返信カウンタとは、例えば、図１１におけるルートノードが当該フローチャートのノード情報要求処理を実行している場合には、ルートノードが一定期間の間に「リクエストノードにノード情報を送信したクエリ（回）」を、当該クエリを送信してきたノード装置毎に集計したものである。
【０１４５】
図１４は、図１１におけるルートノードの返信カウンタの一例である。同図に示す例によれば、ルートノードは、キャッシュノードＣａから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「１５回」であり、キャッシュノードＣｂから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「３回」であり、ノード装置１ｃから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「２１回」である。なお、ルートノードが本願における複製要求ノード装置として機能する場合には、これらキャッシュノードＣａ、Ｃｂ及びノード装置１ｃは、本願における要求情報送信ノード装置に相当するものである。
【０１４６】
つまり、クエリに含まれる要求情報にかかる要求数が多ければ多いほどクエリがルートノード方向に（すなわち上流に）送信される可能性が高くなるので、当該返信カウンタの数は、キャッシュノードＣａ、キャッシュノードＣｂ、ノード装置１ｃの有するレプリカリストの数に応じた数となると考えられる。
【０１４７】
従って、ルートノードは、返信カウンタの数が多いノード装置１ｃに対してレプリカリストを複製させることで、自身がクエリに応じる処理が減り、言い換えれば「リクエストノードにノード情報を送信したクエリ（回）」を低減させることができ、結果として図１３（Ｂ）に示す如くクエリ数を低減させることが可能になる。なお、レプリカリストの複製については後に詳述する。
【０１４８】
図１２のフローチャートの説明に戻る。
【０１４９】
ステップＳ２１の判定の結果、一定期間が経過していない場合（ステップＳ２１：Ｎｏ）、又はステップＳ２２の処理の後、制御部１１は、検索手段として機能し、受信したクエリに含まれる識別情報としてのコンテンツＩＤを認識して、当該コンテンツＩＤに対応するコンテンツノードのノード情報（ノード情報としてのコンテンツノードのＩＰアドレス）を、自己の記憶部１２に記憶したインデックスのレプリカリストの中から検索する（ステップＳ２３）。
【０１５０】
そして、コンテンツＩＤに対応するコンテンツノードのノード情報が要求数以上発見されたか否かを判定（ステップＳ２４）し、発見されなかった場合（ステップＳ２４：Ｎｏ）には、自身がルートノードであるか否かを判定（ステップＳ２５）し、自身がルートノードでない場合（ステップＳ２５：Ｎｏ）には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送（ステップＳ２６）して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送することとなる。
【０１５１】
一方、ステップＳ２５の判定において、自身がルートノードである場合（ステップＳ２３：Ｙｅｓ）には、自己の記憶部１２に記憶したインデックスのレプリカリストの数だけ、つまり、全てのレプリカリストに含まれるノード情報をリクエストノードに送信（ステップＳ２７）して（ノード情報送信手段）、ステップＳ２９の処理に移行する。
【０１５２】
他方、ステップＳ２４の処理において、コンテンツＩＤに対応するコンテンツノードのノード情報が要求数以上発見された場合（ステップＳ２４：Ｙｅｓ）には、制御部１１はノード情報送信手段として機能し、自己の記憶部１２に記憶したインデックスの要求数分のレプリカリストからノード情報を取得し、当該要求数分のノード情報をリクエストノードに送信する（ステップＳ２８）。
【０１５３】
続いて、制御部１１はログ集計手段として機能し、ステップＳ２９乃至ステップＳ３１のログ集計処理を行なう。
【０１５４】
まず、ステップＳ２９では、リクエストノードに送信したノード情報の数をチェックする（ステップＳ２９）。そして、クエリを送信してきたノード装置に対する返信カウンタを更新する（ステップＳ３０）。また、この際に当該クエリに含まれる要求数もログとして集計する。
【０１５５】
図１１に示すルートノードの制御部１１によって当該ノード情報要求処理が実行されている場合について図１１及び図１４を用いてより具体的に説明すると、クエリを当該ルートノードに送ってきたノード装置がキャッシュノードＣａ、Ｃｂ又はノード装置１ｃの何れであるかを判断し、該当するノードの返信カウンタ（図１４参照。）を「１」加算する。
【０１５６】
さらに、クエリ数カウンタを「１」加算して更新する（ステップＳ３１）。
【０１５７】
そして、クエリ数カウンタが装置処理限界を超えているか否かを判定し（ステップＳ３２）、装置処理限界を超えていなければ（ステップＳ３２：Ｎｏ）、処理を終了し、装置処理限界を超えている場合（ステップＳ３２：Ｙｅｓ）、何れのノード装置からのクエリが多いのかを返信カウンタを参照して検索する（ステップＳ３３）。そして、レプリカリスト複製処理を実行する（ステップＳ３４）。
【０１５８】
続いて、レプリカリスト複製処理の実行後、未だ要求カウンタが装置処理限界を超えているか否かを判定し（ステップＳ３５）、装置処理限界を超えていなければ（ステップＳ３５：Ｎｏ）、処理を終了し、装置処理限界を超えている場合（ステップＳ３５：Ｙｅｓ）、再び、何れのノード装置からのクエリが多いのかを返信カウンタを参照して検索する（ステップＳ３３）。例えば、図１４に示す如く、返信カウンタを参照すると、ノード装置１ｃからのクエリが多いので、当該ノード装置１ｃに対してレプリカリスト複製処理を実行する。
【０１５９】
しかしそれでも未だ装置処理限界を超えている場合もある。例えば、要求数を「４」以上とするクエリを送信するノード装置がエリアＡに多数存在する場合などである。この場合には、キャッシュノードＣａの制御部１１によって当該ノード情報要求処理が実行された際に、キャッシュノードＣａが有するレプリカリストは「３」なので、上記ステップＳ２４の処理にて要求数以上のノード情報を発見できないと判断し、ステップＳ２６でクエリを上流のノード装置へ転送するよう制御するので、これを受けたルートノードにてリクエストノードにノード情報を送信することになるためである。
【０１６０】
従って、ノード装置１ｃに対してレプリカリスト複製処理を実行しても尚ルートノードの装置処理限界を超えている場合には、キャッシュノードＣａに対してもレプリカリスト複製処理を実行し、ルートノードのクエリ数カウンタが装置処理限界を下回るまでステップＳ３３乃至ステップＳ３５の処理を繰り返し行なうのである。
【０１６１】
[３−３−１．レプリカリスト複製要求処理]
続いて、上記ノード情報要求処理のステップＳ３４において実行されるレプリカリスト複製要求処理について図１４乃至図１６を用いて説明する。
【０１６２】
図１５は、ノード装置の制御部１１に記憶されたプログラム（ノード情報複製プログラムを含む）がノード装置の制御部１１により実行されることにより行われる処理を示すフローチャートである。なお、当該処理を実行するキャッシュノード或いはルートノードは、本発明における複製要求ノード装置として機能する。
【０１６３】
先ず、複製するレプリカリストの数を決定する（ステップＳ４０）。より具体的には、上記ノード情報要求処理において集計したログに基づいて決定する。
【０１６４】
例えば、図１６に示す如く、返信カウンタ（リクエストノードにノード情報を送信したクエリの数（回））と、当該クエリに含まれる要求数（個）を集計し、これを解析して例えば要求数が「５」をピークにして要求数が「８」で平坦化しているので、複製するレプリカリストの数を「８」などと決定する。
【０１６５】
そして、複製対象のノード装置が複製対象とされているコンテンツのレプリカリストを所持しているか否かを判定し（ステップＳ４１）、所持していないと判定した場合（ステップＳ４１：Ｎｏ）には、ステップＳ４０にて決定した必要個数分のレプリカリストを自己のインデックスから抽出する（ステップＳ４２）。
【０１６６】
図１７を用いて具体的に説明する。図１７（Ａ）はルートノードの記憶部１１に記憶されたインデックスと、複製処理前の複製対象のノード装置としてのノード装置１ｃの記憶部１１に記憶されたインデックスの説明図である。
【０１６７】
複製対象とされているコンテンツがコンテンツＩＤ「20000000」である場合に、ステップＳ４０において、例えば複製するレプリカリストの数を「５」と決定した場合には、ステップＳ４２の処理において図１７に示すルートノード自身が所持するインデックスを参照して、同図におけるコンテンツＩＤ「20000000」のレプリカリストのうち、例えば、上から５つを抽出する。
【０１６８】
他方、複製対象のノード装置が複製対象とされているコンテンツのレプリカリストを所持していると判定した場合（ステップＳ４１：Ｎｏ）には、制御部１１は検知手段として機能し、複製対象のノード装置が所持しないノード情報を、必要個数分から複製対象のノード情報が所持しているレプリカリストの数を減算した数だけ抽出する（ステップＳ４３）。
【０１６９】
図１８を用いて具体的に説明する。図１８（Ａ）はルートノードの記憶部１１に記憶されたインデックスと、複製処理前の複製対象のノード装置としてのキャッシュノードＣａの記憶部１１に記憶されたインデックスの説明図である。
【０１７０】
複製対象とされているコンテンツがコンテンツＩＤ「20000000」である場合に、ステップＳ４０において、例えば複製するレプリカリストの数を「５」と決定した場合には、ステップＳ４２の処理において、複製対象のノード装置であるキャッシュノードＣａが複製対象とされているコンテンツＩＤ「20000000」のレプリカリストを所持していると判定している。これは、複製対象のノード装置を、当該装置が送信してきたクエリに含まれる送信元のノード装置のＩＰアドレス（装置情報）にて特定し、自己のインデックスを参照して、「パブリッシュを送ってきたノード装置のＩＰアドレス（装置情報）」を含むレプリカリストは複製対象のレプリカリストから除外する。既にキャッシュノードＣａが所持するレプリカリストを除くためである。
【０１７１】
つまり、図１８に示す例によれば、ルートノードは、インデックスを参照して、同図におけるコンテンツＩＤ「20000000」のレプリカリストのうち、複製対象のノード装置であるキャッシュノードＣａを特定するＩＰアドレス「44.44.44.44」を含むレプリカリストを除外し、それ以外の例えば、上から５つを抽出する。
【０１７２】
続いて、フローチャートに戻り、制御部１１は複製用ノード情報送信手段として機能し、ステップＳ４２及びステップＳ４３にて抽出したレプリカリストを（複製用ノード情報として）含んで複製対象のノード装置に「レプリカリストの複製要求」メッセージとして送信し（ステップＳ４４）処理を終了する。なお、このメッセージを受信した複製対象のノード装置では図８のステップＳ１にて当該メッセージを解析し、ステップＳ５に示すレプリカリスト複製処理を実行することになる。
【０１７３】
上述した説明では、複製するレプリカリストの数を決定する例として、図１６を用いて返信カウンタと当該クエリに含まれる要求数（個）を集計し、これを解析することにより、複製するレプリカリストの数を決定する例を挙げたが、これに限らず、当該処理を実行するキャッシュノード或いはルートノードが所持するレプリカリストの数に応じて、複製対象となるノード装置に対して複製するレプリカリストの数を予め決めておいてもよい。
【０１７４】
すなわち、当該処理を実行するキャッシュノード或いはルートノードがある程度多くのレプリカリストを持っている場合には、複製対象とされているコンテンツのレプリカリストであって、複製対象のノード装置が所持しないレプリカリストを所定の数（例えば５個）だけ複製するよう構成してもよい。そして、複製を行っても、複製対象のノード装置から送られてくるクエリが減少しない場合は、さらに所定の数（例えば５個）の複製を行う。つまり、複製するレプリカリストの数を決定してしまうのではなく、一度複製を行い、その様子を見てから再度複製を行うよう構成することも可能である。
【０１７５】
また、当該処理を実行するキャッシュノード或いはルートノードが所持するレプリカリストの数が少ない場合（例えば１０個以下）には、所持する全てのレプリカリストを下流に送ってもよい。なお、これらは一例であって、集計したログに基づいて多様に決定できる。
【０１７６】
[３−４．レプリカリスト複製処理]
続いて、図８のフローチャートのステップＳ５における「レプリカリスト複製処理」について図１７乃至図１９を用いて説明する。
【０１７７】
レプリカリスト複製処理は、前述したステップＳ４４の処理において送信された「レプリカリストの複製要求」メッセージを受信した複製対象のノード装置（制御部１１は複製用ノード情報受信手段として機能）が、図８におけるステップＳ１にてメッセージを解析し、ステップＳ５において実行される処理である。なお、レプリカリスト複製処理を実行する複製対象のノード装置は、上記「３−３.ノード情報要求処理」を実行したノード装置に対してクエリを送信（要求情報送信手段）したノード装置である。従って、当該処理を実行する複製対象のノード装置は、本発明における要求情報送信ノード装置として機能する。
【０１７８】
図１９は「レプリカリストの複製要求」メッセージを受信した複製対象のノード装置の制御部１１に記憶されたプログラム（複製用ノード情報記憶プログラムを含む）が当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１７９】
まず、自身の記憶部１１に記憶したインデックスを参照して、複製対象となるコンテンツのレプリカリストを所持しているか否かを判定する（ステップＳ５１）。
【０１８０】
例えば、図１７（Ａ）に示すノード装置１ｃの記憶部１１には、複製対象となるコンテンツＩＤ「20000000」のレプリカリストは存在しない。
【０１８１】
このように、複製対象となるコンテンツのレプリカリストを所持しない判定（ステップＳ５１：Ｎｏ）すると、複製対象となるコンテンツのレプリカリストを記憶部１１のインデックスに生成して登録（ステップＳ５２）して処理を終了する。図１７（Ｂ）に示す如く、ノード装置１ｃによって当該処理が行なわれた場合には、ノード装置１ｃの記憶部１１のインデックスに、複製対象となるコンテンツＩＤ「20000000」のレプリカリストを生成する。つまり、ルートノードから受信した「レプリカリストの複製要求」メッセージに含まれるレプリカリストに基づいて、複製対象となるコンテンツＩＤ「20000000」のレプリカリストを生成する。なお、当該処理によって登録されたレプリカリストは複製による登録であるため、複製フラグを「１」として上述した[３−２．コンテンツ登録処理]によって正規に登録されたレプリカリストと区別して記憶する（記憶制御手段）。
【０１８２】
他方、ステップＳ５１において、複製対象となるコンテンツのレプリカリストを所持すると判定（ステップＳ５１：Ｙｅｓ）すると、複製対象となるコンテンツのレプリカリストを記憶部１１のインデックスに追加して登録（ステップＳ５３）して処理を終了する。図１８（Ｂ）に示す如く、キャッシュノードＣａによって当該処理が行なわれている場合には、キャッシュノードＣａの記憶部１１のインデックスにある複製対象となるコンテンツＩＤ「20000000」のレプリカリストに、ルートノードから受信した「レプリカリストの複製要求」メッセージに含まれるレプリカリストを追加する。そして、上記同様、当該処理によって登録されたレプリカリストは複製による登録であるため、複製フラグを「１」として上述した[３−２．コンテンツ登録処理]によって正規に登録されたレプリカリストと区別して記憶する（記憶制御手段）。
【０１８３】
[３−５．レプリカリスト消去処理]
次に、上述した手法に従って複製されたレプリカリストの消去手法について説明する。
【０１８４】
クエリの集中（上述したクエリ数カウンタの増加）は、ある短期間であると考えられる。例えば、ノード装置を有する一般ユーザがコンテンツの配信を所望する頻度が高い時間帯（例えば、夕方や休日など）にクエリが集中するとも考えられる。
【０１８５】
このようなクエリの集中は、ログを集計することにより解析することができる。例えば、図２０は、平日の各時刻に対するクエリ数カウンタ（回）の増減を示すグラフである。
【０１８６】
また、新しいコンテンツの発売日等に、コンテンツ配信システムＳに参加するコンテンツ配信業者の所有するノード装置によって当該コンテンツが公開されたとき等にクエリが集中し、時間が経過するに従って次第に人気が落ちていくと考えられる。
【０１８７】
このような場合には、上記手法に従って複製したレプリカリストの使用頻度が減少すると考えられる。
【０１８８】
ところで、先の[３−２．コンテンツ登録処理]にて説明したように、コンテンツノードから正規にパブリッシュを受信して登録されたレプリカリストは、コンテンツノードがコンテンツの公開を止める際にも、「コンテンツがなくなりました」というメッセージが上記登録時の手順と同様にしてルートノードまで転送されるため、ルートノードや各キャッシュノードは自己のインデックスからレプリカリストを消去することができる。
【０１８９】
しかし、複製したレプリカリストは、クエリを制御しきれなくなったノード装置が、自己の下流のノード装置に半ば強制的に複製し登録させたものであるため、正規に登録されたレプリカリストのように、「コンテンツがなくなりました」というメッセージは送信されないため、実際にコンテンツがなくなったとしても気づくことができない。
【０１９０】
従って、ノード装置は記憶部１２に記憶したインデックスに含まれる複製したレプリカリストが、削除すべき状況であるか否かを判定し、削除すべきであると判定した場合には、当該複製したレプリカリストを削除するよう構成する（記憶制御手段）。
【０１９１】
複製したレプリカリストを削除すべき状況とは、例えば、レプリカリストを複製する際に、各レプリカリストに生存時間を示す生存時間情報を付加しておき、制御部１１が当該生存時間が経過したと判断するとレプリカリストを削除するよう構成する。この場合、生存時間情報を含んだ「レプリカリストの複製要求」メッセージを上流側が送信しても良いし、「レプリカリストの複製要求」メッセージを受信したノード装置が、レプリカリストを複製する際に、各レプリカリストに所定時間、例えば１時間である生存時間を示す生存時間情報を付加して記憶してもよい。
【０１９２】
また、他の例として、記憶部１２におけるインデックスを記憶する記憶容量を予め決めておき、このうち空き記憶容量を監視するよう構成してもよい。すなわち、例えば、正規登録の増大等により空き記憶容量が所定値以下となった場合には、複製したレプリカリストを削除するよう構成すればよい。この際には、複製フラグが「１」であるものだけ消せばよい。一度に全部削除してもよいが、古いものから段階的に削除してもよい。
【０１９３】
また、他の例として、記憶部１２に記憶したインデックスのうち複製したレプリカリストの稼動状況を検知して当該稼動状況に基づいて削除するよう構成してもよい。例えば、使用頻度を集計し、当該使用頻度がある一定値以下となったら、削除するよう構成してもよい。
【０１９４】
時間に基づいて削除する場合であっても、時間が、どのくらい記憶するかを示す期間、例えば、「１日間（２４時間）」や「１時間３０分間」等、であっても良いし、時間が、いつまで記憶するかの期日、例えば「午前２時まで」等、であってもよい。そして、上記したように、生存期間または生存期日を含んだ「レプリカリストの複製要求」メッセージを上流側が送信しても良いし、「レプリカリストの複製要求」メッセージを受信したノード装置が、レプリカリストを複製する際に、各レプリカリストに生存期間または生存期日を付加して記憶してもよい。
【０１９５】
以上説明したように、本実施形態によれば、クエリを受信する際に、当該クエリを送信してくる各ノード装置毎に、クエリの送信数等のログを集計することにより、ノード装置にクエリが集中した場合には、ログに基づいて、例えばクエリの送信数の多いノード装置に対してノード情報が含まれるレプリカリストを送信することができるので、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
【０１９６】
なお、上述した実施形態では、説明の簡単のためクエリに含まれるコンテンツＩＤに対応するレプリカリストごと複製するよう構成したが、これに限らず、クエリに含まれるコンテンツＩＤに対応するレプリカリストからノード情報だけを抽出して複製用ノード情報として送信しても差し支えない。クエリはあるコンテンツの所在を問い合わせる要求情報であるため、この所在を示すノード情報だけを下流のノード装置に複製してやれば、下流のノード装置がリクエストノードからのクエリに応えることができるからである。なお、ノード情報は、コンテンツノードの所在を示すＩＰアドレスとして記載したが、これに限らず、コンテンツノードのメールアドレス等、コンテンツノードにアクセスするための宛先がわかればよい。
【０１９７】
さらに、コンテンツＩＤ及びノード情報を含むパブリッシュを受信して正規にレプリカリストを登録する際には、当該パブリッシュを送信してきたノード装置のＩＰアドレス等の装置情報と共に登録するよう構成したので、自身にクエリを送信可能な下流のノード装置の所持するレプリカリストを容易に把握することができ、複製用のレプリカリストを抽出する際に、複製対象のノード装置の所持しないレプリカリストを容易に検知でき、これらから複製用のレプリカリストを抽出することが可能になる。また、上記説明において、パブリッシュを送ってきたノード装置を特定するための装置情報として、当該ノード装置のＩＰアドレスを使用したが、これに限らず、コンテンツを正規に登録する際に、パブリッシュの送信元のノード装置がわかればよく、例えば工場出荷時に各装置に個別に設けられた製造番号を装置情報として用いてもよいし、各装置を一意に識別するための固有の識別番号を新たに設けてもよい。その他の手法として、複製対象のノード装置が所持するレプリカリストが特定できればよいので、複製対象のノード装置にアクセスして何れのレプリカリストを所持しているかを問い合わせることにより、自己の所持するレプリカリストのうち、複製対象のノード装置が所持しないレプリカリストを検知するよう構成してもよい。
【０１９８】
また、記憶部１２のインデックスにレプリカリストを登録する際には、複製フラグにより、正規登録か複製による登録かを区別できるよう構成したので、複製したレプリカリストを削除する際に正規登録と容易に区別することができる。
【図面の簡単な説明】
【０１９９】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】本実施形態におけるＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図６】本実施形態におけるＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図７】ノード装置１の概要構成例を示す図である。
【図８】メッセージを受信したノード装置１の制御部１１における処理を示すフローチャートである。
【図９】パブリッシュを受信したノード装置の制御部１１における処理を示すフローチャートである。
【図１０】ノード装置間のパブリッシュの転送を示す説明図である。
【図１１】ノード装置間のクエリの転送を示す説明図である。
【図１２】クエリを受信したノード装置の制御部１１における処理を示すフローチャートである。
【図１３】クエリ数カウンタの一例である。
【図１４】返信カウンタの一例である。
【図１５】ノード装置の制御部１１における処理を示すフローチャートである。
【図１６】レプリカリストの数を決定するための集計ログの一例である。
【図１７】（Ａ）ルートノードの記憶部１１に記憶されたインデックスと、複製処理前のノード装置１ｃの記憶部１１に記憶されたインデックスの説明図である。（Ｂ）複製処理後のノード装置１ｃの記憶部１１に記憶されたインデックスの説明図である。
【図１８】（Ａ）ルートノードの記憶部１１に記憶されたインデックスと、複製処理前のキャッシュノードＣａの記憶部１１に記憶されたインデックスの説明図である。（Ｂ）複製処理後のキャッシュノードＣａの記憶部１１に記憶されたインデックスの説明図である。
【図１９】「レプリカリストの複製要求」メッセージを受信した複製対象のノード装置の制御部１１における処理を示すフローチャートである。
【図２０】平日の各時刻に対するクエリ数カウンタ（回）の増減を示すグラフである。
【符号の説明】
【０２００】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
Ｃａ  Ｃｂ  キャッシュノード
【図１】
2006260430.tif 000003
【図２】
2006260430.tif 000004
【図３】
2006260430.tif 000005
【図４】
2006260430.tif 000006
【図５】
2006260430.tif 000007
【図６】
2006260430.tif 000008
【図７】
2006260430.tif 000009
【図８】
2006260430.tif 000010
【図９】
2006260430.tif 000011
【図１０】
2006260430.tif 000012
【図１１】
2006260430.tif 000013
【図１２】
2006260430.tif 000014
【図１３】
2006260430.tif 000015
【図１４】
2006260430.tif 000016
【図１５】
2006260430.tif 000017
【図１６】
2006260430.tif 000018
【図１７】
2006260430.tif 000019
【図１８】
2006260430.tif 000020
【図１９】
2006260430.tif 000021
【図２０】
2006260430.tif 000022