(57)【要約】【課題】高い評価値が付与されたコンテンツのレプリカを保存しているノード装置がシステムから脱退してしまった場合であっても、適切な数のレプリカを当該システム内に事前確保することを可能としたコンテンツ分散保存システム、情報配信方法、配信装置、及び配信処理プログラムを提供する。【解決手段】配信装置は、各ノード装置において管理されているコンテンツの評価値を取得し、その評価値の合計値を算出し、当該算出した合計値が、第一の閾値以下である場合には、利用可能となる前の複製データを保存した各ノード装置のうち、少なくとも一つのノード装置に対して上記評価値を増加させる増加指令を示す増加指令情報を送信する。【選択図】図４
2009140383.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムにおける前記配信装置であって、
前記各ノード装置において管理されている前記評価値を取得する評価値取得手段と、
前記取得された評価値の合計値を算出する合計値算出手段と、
前記算出された合計値が、第一の閾値以下であるか否かを判別する第一判別手段と、
前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する増加指令情報送信手段と、
を備えることを特徴とする配信装置。
【請求項２】
請求項１に記載の配信装置において、
前記算出された合計値が、前記第一の閾値より大きい第二の閾値以上であるか否かを判別する第二判別手段と、
前記合計値が第二の閾値以上である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を減少させる減少指令を示す減少指令情報を送信する減少指令情報送信手段と、
を備えることを特徴とする配信装置。
【請求項３】
請求項１又は２に記載の配信装置において、
前記評価値取得手段による評価値の取得、前記合計値算出手段による合計値の算出、及び前記第一判別手段による判別を、可変間隔で繰り返し実行させるための実行制御手段を更に備え、
前記実行制御手段は、前記複製データが利用可能となるまでの期間が長いほど、前記間隔が短くなるように当該間隔を制御することを特徴とする配信装置。
【請求項４】
請求項１又は２に記載の配信装置において、
前記評価値取得手段による評価値の取得、前記合計値算出手段による合計値の算出、及び前記第一判別手段による判別を、可変間隔で繰り返し実行させるための実行制御手段と、
前記取得された評価値の平均値を算出する平均値算出手段と、
を更に備え、
前記実行制御手段は、前記算出された平均値が大きいほど、前記間隔が短くなるように当該間隔を制御することを特徴とする配信装置。
【請求項５】
コンピュータを、請求項１乃至４の何れか一項に記載のノード装置として機能させることを特徴とする配信処理プログラム。
【請求項６】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムであって、
前記配信装置は、
前記各ノード装置において管理されている前記評価値を取得する評価値取得手段と、
前記取得された評価値の合計値を算出する合計値算出手段と、
前記算出された合計値が、第一の閾値以下であるか否かを判別する第一判別手段と、
前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する増加指令情報送信手段と、
を備え、
前記送信された増加指令情報を受信した前記ノード装置は、当該増加指令情報に基づいて、自己が管理している評価値を増加させる増加手段を備えることを特徴とするコンテンツ分散保存システム。
【請求項７】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムにおける情報配信方法であって、
前記配信装置が、前記各ノード装置において管理されている前記評価値を取得する工程と、
前記取得された評価値の合計値を算出する工程と、
前記算出された合計値が、第一の閾値以下であるか否かを判別する工程と、
前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する工程と、
を備えることを特徴とする情報配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムにおいて、複数のコンテンツデータ（映画及び音楽等のコンテンツのデータ）の複製データ（以下、「レプリカ」という）を複数のノード装置に分散して保存（配置）させ、各ノード装置間でレプリカを利用可能としたコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。
【０００３】
このようなコンテンツ分散保存システムにおいて、コンテンツ配信サービスを行う場合、人気のあるコンテンツのレプリカはアクセスが集中するため、人気に応じた数のレプリカを、事前に当該システムに参加している各ノード装置に分散保存させておき、その後、他のノード装置にそのコンテンツを公開して利用可能とすることが望ましい。
【０００４】
このようにレプリカを事前にシステム内に効率良く分散保存させる方法として、例えば、人気度を表す評価値が付与されたレプリカをシステム管理者等の配信装置から配信させ、当該システムに参加している複数のノード装置に順次転送させる方法が知られている。そして、この方法では、レプリカを受信した各ノード装置が、そのコンテンツの評価値と、既に保存済みのコンテンツの評価値とを比較して、公開前のコンテンツの評価値が大きいときは保存する一方、小さいときには保存しないようにすることで、人気に応じた数のレプリカを、事前に当該システム内に分散保存させるようになっている（例えば、特許文献１参照）。更に、この方法では、レプリカを受信したノード装置が、当該レプリカを転送する場合、その評価値が下げられるようになっている。
【特許文献１】特開２００７−０３４６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述した方法では、レプリカが転送される度にそのコンテンツの評価値が下げられるが、高い評価値が付与されたコンテンツのレプリカを保存しているノード装置が、当該コンテンツの公開前に、当該システムから脱退してしまった場合、十分な数のレプリカをシステム内に事前確保（保存）することが困難になるという問題があった。
【０００６】
本発明は、以上の点等に鑑みてなされたものであり、高い評価値が付与されたコンテンツのレプリカを保存しているノード装置がシステムから脱退してしまった場合であっても、適切な数のレプリカを当該システム内に事前確保することを可能としたコンテンツ分散保存システム、情報配信方法、配信装置、及び配信処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムにおける前記配信装置であって、前記各ノード装置において管理されている前記評価値を取得する評価値取得手段と、前記取得された評価値の合計値を算出する合計値算出手段と、前記算出された合計値が、第一の閾値以下であるか否かを判別する第一判別手段と、前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する増加指令情報送信手段と、を備えることを特徴とする。
【０００８】
この発明によれば、増加指令情報を受信したノード装置においては当該指令に係るコンテンツの評価値が増加されることになり、従って、高い評価値が付与されたコンテンツのレプリカを保存しているノード装置がコンテンツ分散保存システムから脱退してしまった場合であっても、適切な数の当該コンテンツの複製データをコンテンツ分散保存システム内に事前確保（分散保存）することができる。
【０００９】
請求項２に記載の発明は、請求項１に記載の配信装置において、前記算出された合計値が、前記第一の閾値より大きい第二の閾値以上であるか否かを判別する第二判別手段と、前記合計値が第二の閾値以上である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を減少させる減少指令を示す減少指令情報を送信する減少指令情報送信手段と、を備えることを特徴とする。
【００１０】
この発明によれば、当該減少指令情報を受信したノード装置においては当該指令に係るコンテンツの評価値が減少されることになり、従って、当該コンテンツの複製データをコンテンツ分散保存システムに余分に分散保存させることを回避することができる。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の配信装置において、前記評価値取得手段による評価値の取得、前記合計値算出手段による合計値の算出、及び前記第一判別手段による判別を、可変間隔で繰り返し実行させるための実行制御手段を更に備え、前記実行制御手段は、前記複製データが利用可能となるまでの期間が長いほど、前記間隔が短くなるように当該間隔を制御することを特徴とする。
【００１２】
この発明によれば、最終的に、より適切な数のコンテンツの複製データをコンテンツ分散保存システム内に事前確保（分散保存）することができる。
【００１３】
請求項４に記載の発明は、請求項１又は２に記載の配信装置において、前記評価値取得手段による評価値の取得、前記合計値算出手段による合計値の算出、及び前記第一判別手段による判別を、可変間隔で繰り返し実行させるための実行制御手段と、前記取得された評価値の平均値を算出する平均値算出手段と、を更に備え、前記実行制御手段は、前記算出された平均値が大きいほど、前記間隔が短くなるように当該間隔を制御することを特徴とする。
【００１４】
この発明によれば、最終的に、より適切な数のコンテンツの複製データをコンテンツ分散保存システム内に事前確保（分散保存）することができる。
【００１５】
請求項５に記載の配信処理プログラムの発明は、コンピュータを、請求項１乃至４の何れか一項に記載のノード装置として機能させることを特徴とする。
【００１６】
請求項６に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムであって、前記配信装置は、前記各ノード装置において管理されている前記評価値を取得する評価値取得手段と、前記取得された評価値の合計値を算出する合計値算出手段と、前記算出された合計値が、第一の閾値以下であるか否かを判別する第一判別手段と、前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する増加指令情報送信手段と、を備え、前記送信された増加指令情報を受信した前記ノード装置は、当該増加指令情報に基づいて、自己が管理している評価値を増加させる増加手段を備えることを特徴とする。
【００１７】
請求項７に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータの複製データを複数のノード装置に分散して保存させ、各前記ノード装置間で前記複製データを利用可能としたコンテンツ分散保存システムにおいて、新たなコンテンツデータの複製データを、前記コンテンツ分散保存システムにおいて利用可能となる前に、一の配信装置から配信させ、何れかの前記ノード装置に転送させることにより、一部の前記ノード装置に分散して保存させるようにし、当該利用可能となる前の複製データを保存した各前記ノード装置により当該コンテンツデータの評価を表す評価値が管理されるようにしたコンテンツ分散保存システムにおける情報配信方法であって、前記配信装置が、前記各ノード装置において管理されている前記評価値を取得する工程と、前記取得された評価値の合計値を算出する工程と、前記算出された合計値が、第一の閾値以下であるか否かを判別する工程と、前記合計値が第一の閾値以下である場合には、前記利用可能となる前の複製データを保存した前記各ノード装置のうち、少なくとも一つのノード装置に対して前記評価値を増加させる増加指令を示す増加指令情報を送信する工程と、を備えることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、増加指令情報を受信したノード装置においては当該指令に係るコンテンツの評価値が増加されることになり、従って、高い評価値が付与されたコンテンツのレプリカを保存しているノード装置がコンテンツ分散保存システムから脱退してしまった場合であっても、適切な数の当該コンテンツの複製データをコンテンツ分散保存システム内に事前確保（分散保存）することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
［１．コンテンツ分散保存システムの構成等］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
【００２０】
図１は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【００２１】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワーク）８が構築されている。なお、図１の例におけるネットワーク８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００２２】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）がルータを介して接続されている。また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
【００２３】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９（論理的なネットワーク）である。かかるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。
【００２４】
そして、コンテンツ分散保存システムＳ（言い換えれば、オーバーレイネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。また、当該ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００２５】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎ（例えば、当該システムＳに常時参加しているコンタクトノード）に対して参加要求を示す参加メッセージを送信することによって行われる。
【００２６】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定しており、具体的には、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。なお、ＩＰアドレス及びポート番号は、ネットワークアドレス情報の一例である。
【００２７】
コンテンツ分散保存システムＳに参加している１台のノードＮｎは、該システムＳに参加している全てのノードＮｎのうち、必要最低限のノードＮｎのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない（記憶していない）ノードＮｎについては、各ノードＮｎ間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【００２８】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００２９】
ところで、コンテンツ分散保存システムＳにおいては、内容の異なる様々なコンテンツ（例えば、映画や音楽等）のレプリカが所定のファイル形式で複数のノードＮｎに分散して保存（格納）されており、各ノードＮｎ間で当該レプリカを利用可能になっている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のコンテンツのレプリカが保存されており、一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツのレプリカが保存されるというように、複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散されて保存されている。
【００３０】
また、これらのコンテンツのレプリカには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有の識別情報）等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値（或いは、コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、コンテンツ名とそのコンテンツＩＤの対応が書かれたコンテンツカタログ情報が、全ノードＮｎに配布される。
【００３１】
また、このように分散保存されているレプリカの所在、つまり、当該レプリカを保存したノードＮｎのノード情報と当該コンテンツのレプリカに対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該コンテンツのレプリカの所在を管理しているノードＮｎ（以下、「ルートノード」、又は「コンテンツデータ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００３２】
つまり、コンテンツのレプリカを保存しているコンテンツ保持ノードのノード情報は、他のノードＮｎからの問い合わせに応じて提供可能なようにルートノードにより管理されている。
【００３３】
例えば、タイトルがＸＸＸの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理され、タイトルがＹＹＹの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎであるように定められる。
【００３４】
そして、あるノードＮｎのユーザが、所望するコンテンツのレプリカを取得したい場合、当該レプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、当該ユーザにより選択されたコンテンツのコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ（検索）メッセージを、ルートノードに向けて（ルートノード宛に）送出する（つまり、ルートノードにコンテンツのレプリカの所在を問い合わせる）。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００３５】
なお、各ノードＮｎにおいてユーザにより選択されるべきコンテンツのコンテンツ名及びコンテンツＩＤ等の属性情報は、例えばコンテンツ提供サーバＳＡから全てのノードＮｎに配信されるコンテンツカタログ情報に記述されている。また、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３６】
上記コンテンツ所在問合せ（検索）メッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。こうしてインデックス情報を取得したユーザノードは、当該インデックス情報に含まれるあるコンテンツ保持ノードのＩＰアドレス等に基づいて当該コンテンツ保持ノードに接続して、コンテンツ送信要求メッセージを送信し、そこからコンテンツのレプリカを取得することが可能になる。なお、当該インデックス情報には、例えば複数のコンテンツ保持ノードのノード情報が含まれていることもある（同一のコンテンツのレプリカが複数のコンテンツ保持ノードに保存されている場合）。かかる場合、ユーザノードは、当該複数のコンテンツ保持ノードのうち一つのコンテンツ保持ノードを選択し、選択したコンテンツ保持ノードに接続してコンテンツのレプリカを取得することができる。
【００３７】
なお、ルートノードは、当該インデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカを取得することもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしているキャッシュノードから当該インデックス情報を取得することもできる。
【００３８】
また、コンテンツ保持ノードから取得したコンテンツのレプリカを保存したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために（言い換えれば、該システムＳに参加している他のノードＮｎに対して公開するために）、当該レプリカのコンテンツＩＤ及び自己のノード情報が含まれるパブリッシュ（登録通知）メッセージを生成し、該パブリッシュメッセージを、そのルートノードに向けて（ルートノード宛に）送出する。
【００３９】
これにより、パブリッシュメッセージは、コンテンツ所在問合せ（検索）メッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、該ルートノードは、受信したパブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）することになる。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
【００４０】
なお、上記パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報は、ルートノードに至るまでの転送経路におけるキャッシュノードにおいても登録（キャッシュ）される。
【００４１】
以上説明したコンテンツ分散保存システムＳにおいては、新たに投入されるコンテンツのレプリカを、該システムＳにおいて利用可能となる前に（公開前に）、配信装置の一例としてのノードＮｎ（例えば、システム管理者等のノード（サーバでも良い）であり、以下、「コンテンツ投入ノード」という）から配信させ、何れかのノードＮｎに転送させることにより、当該コンテンツ（レプリカ）の評価を表す評価値に応じた数のノードＮｎ（以下、「コンテンツ事前保持ノード」という）に分散して保存させるようになっている。かかる評価値は、当該レプリカを保存した各ノードＮｎにより管理されるようになっている。また、かかる評価値により、コンテンツの人気度や重要度を表すことができ、例えば人気が高いコンテンツは、その評価値も高くなる。
【００４２】
図２は、あるコンテンツのレプリカを公開前に複数のノードＮｎに分散して保存させる様子を示す概念図である。
【００４３】
図２（Ａ）の例において、コンテンツ投入ノードであるノードＮ１は、任意のノードＮ２及びＮ３に、公開前のコンテンツのレプリカを送信して保存させており、かかるレプリカを保存したノードＮ２及びＮ３は、当該レプリカに係るコンテンツのルートノードであるノードＮ４に向けてパブリッシュメッセージを送信する。これにより、ノードＮ２及びＮ３は当該コンテンツのコンテンツ事前保持ノードとなる。また、コンテンツ投入ノードから送信されるレプリカには、そのコンテンツ名及びコンテンツＩＤと共に、当該コンテンツの評価値及び当該コンテンツの公開日時（年月日時刻）を示す情報が付加されており、これらの情報は、当該レプリカを保存したノードＮｎにおいて当該レプリカに対応付けられて記憶、管理される。なお、図２（Ａ）の時点では、ノードＮ２及びＮ３における当該コンテンツの評価値は例えば「１００」になっている。
【００４４】
ここで、上記公開日時は、上述したＤＨＴルーティングによってコンテンツのレプリカを利用可能となる日時である。例えば、当該コンテンツのコンテンツ名（コンテンツ名（タイトル））及びコンテンツＩＤが記載されたコンテンツカタログ情報が配信され各ノードＮｎにおいて当該コンテンツを選択可能となる日時である。
【００４５】
次に、図２（Ｂ）の例において、ノードＮ２（ノードＮ３でも同様）は、所定の待機時間が到来すると、例えばランダムに選定したノードＮ５に対して上記保存したレプリカを作成させるためのレプリカ作成要求メッセージ（例えば、コンテンツＩＤを含む）を送信する（１）。このレプリカ作成要求メッセージを受信したノードＮ５は、当該要求に係るコンテンツのコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を、そのルートノードに向けて送出する（２）。このコンテンツ所在問合せ（検索）メッセージを受信したルートノードであるノードＮ４は、自己が管理しているインデックス情報からコンテンツ事前保持ノードを一つ選定し、選定した例えばノードＮ３（ノードＮ２でも良い）に対してコンテンツ所在問合せ（検索）メッセージ（上記ノードＮ５のＩＰアドレス等を含む）を転送する（３）。このコンテンツ所在問合せ（検索）メッセージを受信したノードＮ３は、上記ノードＮ５に対してコンテンツ検索返答メッセージを送信する（４）。このコンテンツ検索返答メッセージを受信したノードＮ５は、上記ノードＮ３に対してコンテンツ要求メッセージを送信する（５）。このコンテンツ要求メッセージを受信したノードＮ３は、ノードＮ５に対して、当該要求に係るコンテンツのレプリカを送信する（６）。かかるレプリカには、公開日時を示す情報等が付加されており、当該レプリカは一時的に蓄積される。なお、図２（Ｂ）の時点では、ノードＮ３における当該コンテンツの評価値は例えば「１００」になっており、ノードＮ５における当該コンテンツの評価値は例えば「０」になっている。
【００４６】
なお、当該レプリカは、ノードＮ２からノードＮ５に直接（ルートノードを介在することなく）送信されるように構成しても良い。ただし、上述したように、ノードＮ５が敢えてコンテンツ事前保持ノードを検索する構成によれば、ノードＮ５は、ノードＮ２から直接レプリカをダウンロードすることに比べて、当該ノードＮ２以外のコンテンツ事前保持ノードを知ることができ、以下（ａ）〜（ｄ）のメリットがある。
【００４７】
（ａ）ノードＮ５は、レプリカの伝送速度の速い方（或いは、ＣＰＵが忙しくない方)のコンテンツ事前保持ノードを選んでレプリカをダウンロードできる。
【００４８】
（ｂ）検索された複数のコンテンツ事前保持ノードのうちどちらかが突然ダウンしても、ノードＮ５は別のコンテンツ事前保持ノードからレプリカをダウンロードできる。
【００４９】
（ｃ）ノードＮ５は、複数のコンテンツ事前保持ノードから少しずつレプリカをダウンロードできるので、１ノード当たりの負荷を減らすことができる。
【００５０】
（ｄ）評価値も複数のコンテンツ事前保持ノードで分け合うことでより均等にすることができる。
【００５１】
次に、図２（Ｃ）の例において、上記ノードＮ３は、ノードＮ５に送信したレプリカに係るコンテンツの評価値を例えば半分（図２（Ｃ）の例では、「１００」から「５０」に）に下げ（記憶している評価値を更新）、その評価値と同じ分を増加させる（評価値の半分を移譲する）ように評価値の増加指令を示す評価値増加指令メッセージを、ノードＮ５に対して送信する。このようにするのは、コンテンツが１つ複製され２つになったため、その分評価値を分割する趣旨である。
【００５２】
そして、上記評価値増加指令メッセージを受信したノードＮ５は、ノードＮ３から受信し、一時的に蓄積されているレプリカに係るコンテンツの評価値を増加（例えば、０から５０に増加）させる。
【００５３】
更に、当該ノードＮ５は、上記一時的に蓄積されている当該レプリカに係るコンテンツの評価値と、既に保存されているレプリカに係るコンテンツの評価値とを比較（複数保存されている場合、夫々のコンテンツの評価値と比較）し、例えば、最もコンテンツの評価値が低いレプリカを削除する。ここで上記一時的に蓄積されている当該レプリカに係るコンテンツの評価値が最も低くなければ、当該レプリカは新たに保存されることになる。
【００５４】
こうして公開前の新たなレプリカを保存したノードＮ５は、当該レプリカに係るコンテンツのルートノードであるノードＮ４に向けてパブリッシュメッセージを送信することになる。そして、当該ノードＮ５でも、上記ノードＮ２と同様、所定の待機時間が到来すると、例えばランダムに選定したノードＮｎに対して上記保存したレプリカを保存（作成）させるためのレプリカ作成要求メッセージを送信することになる（当該レプリカを保存した他のノードＮｎにおいても同様）。このような動作は、当該コンテンツの公開日時が到来するまで行われ、これにより、当該コンテンツのレプリカが公開前にコンテンツ分散保存システムＳ内で広がっていくことになる。そして、コンテンツの初期評価値が高いほど、それだけ、そのレプリカが各ノードＮｎに保存される確率が高くなるので、当該システムＳに保存されるレプリカの数も多くなるのである。
［２．ノードＮｎの構成及び機能等］
次に、図３を参照して、ノードＮｎの構成及び機能について説明する。
【００５５】
図３は、ノードＮｎの概要構成例を示す図である。
【００５６】
各ノードＮｎは、図３に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、コンテンツデータのレプリカ、インデックス情報、ＤＨＴ等）及び各種プログラム等を記憶保存（格納）するためのＨＤ（ハードディスク）等から構成された記憶部１２と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ１３と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮｎ等間の情報の通信制御を行うための通信部１９と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２０と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部１９、及び入力部２０はバス２１を介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【００５７】
また、記憶部１２には、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのＩＰアドレス及びポート番号等が記憶されている。更に、記憶部１２には、ＨＤに保存（記録）しているコンテンツのレプリカに関する情報（例えば、コンテンツＩＤ、コンテンツ名、評価値、及び公開日時等）を登録するための保存コンテンツ管理テーブルが記憶されている。
【００５８】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明の配信処理プログラムを含む）を読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、コンテンツ保持ノード、コンテンツ投入ノード、及びコンテンツ事前保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっている。
【００５９】
そして、コンテンツ投入ノードとしての特徴的な処理を行う制御部１１は、本発明における評価値取得手段、合計値算出手段、第一判別手段、増加指令情報送信手段、第二判別手段、減少指令情報送信手段、実行制御手段、及び平均値算出手段等として機能するようになっている。
【００６０】
具体的には、コンテンツ投入ノードの制御部１１は、コンテンツ分散保存システムＳに参加している各ノードＮｎにおいて管理されている公開前のコンテンツの評価値を取得し、当該取得された評価値の合計値を算出する。そして、当該制御部１１は、算出された合計値が、第一の閾値以下であるか否かを判別し、当該合計値が第一の閾値以下である場合には、上記公開前のコンテンツのレプリカを保存した各ノードＮｎのうち、少なくとも一つのノードＮｎに対して評価値を増加させる増加指令を示す評価値増加指令メッセージ（増加指令情報）を通信部１９を介して送信する処理を行うようになっている。これにより、当該評価値増加指令メッセージを受信したノードＮｎにおいては当該指令に係るコンテンツの評価値が増加（上げる）され、そのレプリカが当該ノードＮｎにおいて削除されにくくなる。
【００６１】
また、コンテンツ投入ノードの制御部１１は、上記算出された合計値が、上記第一の閾値より大きい第二の閾値以上であるか否かを判別し、当該合計値が第二の閾値以上である場合には、上記公開前のコンテンツのレプリカを保存した各ノードＮｎのうち、少なくとも一つのノードＮｎに対して評価値を減少させる減少指令を示す評価値減少指令メッセージ（減少指令情報）を送信する処理を行うようになっている。これにより、当該評価値減少指令メッセージを受信したノードＮｎにおいては当該指令に係るコンテンツの評価値が減少（下がる）され、そのレプリカが当該ノードＮｎにおいて削除されやすくなる。
【００６２】
このような処理、つまり、上記評価値の取得、上記合計値の算出、及び上記判別は、当該制御部１１により可変間隔で繰り返し実行される。この可変間隔は、例えばレプリカが公開されるまで（利用可能となるまで）の期間が長いほど、短くなるように制御される。或いは、この可変間隔は、上記取得された評価値の平均値が大きいほど、短くなるように制御される。
【００６３】
なお、上記配信処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
［３．コンテンツ分散保存システムの動作］
次に、コンテンツ分散保存システムの動作について説明する。
【００６４】
（３−１．コンテンツ投入ノードの処理）
先ず、図４及び図５を参照して、コンテンツ投入ノードの処理について説明する。
【００６５】
図４は、コンテンツ投入ノードの制御部１１における評価値監視処理の一例を示すフローチャートである。また、図５は、図４のステップＳ１における待機処理の詳細を示すフローチャートである。
【００６６】
なお、図４に示す処理は、コンテンツ投入ノードが公開前の新たなコンテンツＸをコンテンツ分散保存システムに投入する、つまり、何れかのノードＮｎに保存させるごとに実行される。
【００６７】
図４の処理が開始されると、制御部１１は、待機処理（ステップＳ１）による待機時間だけ待機し、当該待機時間が到来すると、ステップＳ２に進む。なお、当該待機処理についての詳細は後述する。なお、当該待機時間は、一定であっても良いが、図５を用いて後述するように、条件に応じて可変にすればより効果的である。
【００６８】
ステップＳ２では、制御部１１は、現在時刻が、コンテンツＸの公開日時を経過しているか否かを判別し、公開日時を経過している場合には（ステップＳ２：ＹＥＳ）、当該処理を終了し、公開日時を経過していない場合には（ステップＳ２：ＮＯ）、ステップＳ３に進む。
【００６９】
ステップＳ３では、制御部１１は、各ノードＮｎで管理されている評価値を収集するための評価値収集メッセージ（当該コンテンツ投入ノードのＩＰアドレス及びポート番号等を含む）を、コンテンツＸのルートノードに向けて（ルートノード宛に）送出し、ステップＳ４に進む。当該送出された評価値収集メッセージは、上述したコンテンツ所在問合せ（検索）メッセージと同様、コンテンツＸのコンテンツＩＤをキーとするＤＨＴルーティングによって各ノードＮｎにより転送され最終的にルートノードに辿り着くことになる。
【００７０】
そして、当該評価値収集メッセージを受信したルードノードは、自己が管理している全てのコンテンツ事前保持ノードのＩＰアドレス及びポート番号をインデックス情報から取得し、各コンテンツ事前保持ノードに接続を試みて接続できたコンテンツ事前保持ノードに対して上記コンテンツ投入ノードのＩＰアドレス及びポート番号等を含む評価値要求メッセージを送信する。当該評価値要求メッセージを受信したコンテンツ事前保持ノードは、自己が保存コンテンツ管理テーブルにて管理している現在の評価値を含む評価値返答メッセージをコンテンツ投入ノードに対して送信することになる。
【００７１】
ステップＳ４では、制御部１１は、コンテンツ事前保持ノードから評価値返答メッセージが送信されてくるのを所定時間待機し（ステップＳ４）、この時間内に受信された評価値返答メッセージをＲＡＭに記憶する。そして、当該所定時間経過した場合には、制御部１１は、返答が無かった、つまり一つの評価値返答メッセージも受信されなかったか否かを判別し（ステップＳ５）、返答が無かった場合には（ステップＳ５：ＹＥＳ）、コンテンツＸの投入をやり直し（ステップＳ６）、ステップＳ１に戻る。返答が無い要因としては、コンテンツＸのレプリカを保存したコンテンツ事前保持ノードが当該システムＳから脱退したことが挙げられる。
【００７２】
一方、上記ステップＳ５で返答があった場合には（ステップＳ５：ＮＯ）、制御部１１は、受信された全ての評価値返答メッセージから評価値を取得し、当該取得された評価値の合計値を算出する（ステップＳ７）。
【００７３】
次いで、制御部１１は、算出した合計値が、第一の閾値（例えば、コンテンツＸ投入時の初期評価値の半分）以下であるか否かを判別し（ステップＳ８）、当該合計値が第一の閾値以下である場合には（ステップＳ８：ＹＥＳ）、ステップＳ９に進み、当該合計値が第一の閾値以下でない場合には（ステップＳ８：ＮＯ）、ステップＳ１０に進む。
【００７４】
ステップＳ９では、制御部１１は、上記評価値返答メッセージを送信（返信）したコンテンツ事前保持ノードから例えばランダムに一つ選定し、当該選定したコンテンツ事前保持ノードに対して評価値を増加（例えば、初期評価値との差分増加）させる増加指令を示す評価値増加指令メッセージ（例えば、初期評価値を含む）を送信し、ステップＳ１に戻る。これにより、当該評価値増加指令メッセージを受信したコンテンツ事前保持ノードにおいては当該指令に係るコンテンツＸの評価値を増加（例えば、自己の管理する評価値と初期評価値との差分増加）させることになる。
【００７５】
なお、当該制御部１１は、ランダムに選定された一つのコンテンツ事前保持ノードに評価値増加指令メッセージを送信する他にも、例えば、評価値返答メッセージを送信（返信）したコンテンツ事前保持ノードの全てに評価値増加指令メッセージを送信してそれらのコンテンツ事前保持ノードにおけるコンテンツＸの評価値を増加させたり、或いは、評価値返答メッセージを送信（返信）したコンテンツ事前保持ノードのうち最も評価値の小さいコンテンツ事前保持ノードを選定して当該コンテンツ事前保持ノードに評価値増加指令メッセージを送信してコンテンツＸの評価値を増加させるように構成しても良い。
【００７６】
一方、ステップＳ１０では、制御部１１は、上記算出した合計値が、第二の閾値（例えば、投入時の初期評価値の２倍）以上であるか否かを判別し、当該合計値が第二の閾値以上でない場合には（ステップＳ１０：ＮＯ）、ステップＳ１に戻る。一方、当該合計値が第二の閾値以上である場合（ステップＳ１０：ＹＥＳ）、例えば上記評価値増加指令メッセージにより各ノードＮｎにおける評価値を増加させすぎた場合には、制御部１１は、上記評価値返答メッセージを返信してきたコンテンツ事前保持ノードに対して評価値を減少（例えば、例えば当該合計値が投入時の初期評価値に等しくなるように、初期評価値との差分減少）させる減少指令を示す評価値減少指令メッセージを送信し（ステップＳ１１）、ステップＳ１に戻る。これにより、当該評価値減少指令メッセージを受信したコンテンツ事前保持ノードにおいては当該指令に係るコンテンツＸの評価値を減少（例えば、自己の管理する評価値と初期評価値との差分減少）させることになる。
【００７７】
次に、上記ステップＳ１おける待機処理の具体例としては、図５（Ａ）に示す処理と、図５（Ｂ）に示す処理とが挙げられる。
【００７８】
図５（Ａ）に示す処理では、制御部１１が、コンテンツＸの配布期間（コンテンツＸの公開時刻−コンテンツＸの投入時刻）の半分が経過したか否かを判別し（ステップＳ１０１）、当該配布期間の半分が経過していない場合には（ステップＳ１０１：ＮＯ）、第一の待機時間Ｔ１だけ待機する（ステップＳ１０２）。一方、当該配布期間の半分が経過した場合には（ステップＳ１０１：ＹＥＳ）、制御部１１は、第二の待機時間Ｔ２（＞Ｔ１）だけ待機する（ステップＳ１０３）。当該配布期間の最初の方、つまり、コンテンツＸを投入したから間もないうちは、システム内に保存されたレプリカの数が少なく、１レプリカ当たりの重要性が高い。従って、当該配布期間が最初の方の待機時間を、後の方の待機時間よりも短くし、つまり、レプリカが公開されるまでの期間が長いほど、待機時間が短くなるように制御し、こまめに評価値の合計値をチェックするのである。
【００７９】
一方、図５（Ｂ）に示す処理では、制御部１１が、前回受信された全ての評価値返答メッセージから評価値を取得し、当該取得された評価値の平均値ＡＶを算出する（ステップＳ１１）。
【００８０】
次いで、制御部１１は、算出した平均値ＡＶが“０”であるか否かを判別し（ステップＳ１１２）、当該平均値ＡＶが“０”である場合（ステップＳ１１２：ＹＥＳ）、例えば、初回実行時、或いは前回処理でコンテンツ事前保持ノードからの返答がなかった場合には、ステップＳ１１３に進み、当該平均値ＡＶが“０”でない場合（ステップＳ１１２：ＮＯ）、ステップＳ１１４に進む。
【００８１】
ステップＳ１１３では、制御部１１は、第三の待機時間Ｔ３（Ｔ３＝（配布期間／投入時の初期評価値）×Ｃ（Ｃ：比例定数であり、１でも良い））だけ待機する。一方、ステップＳ１１４では、制御部１１は、第四の待機時間Ｔ４（Ｔ４＝（配布期間／評価値の平均値ＡＶ）×Ｃ）だけ待機する。上記第三又は第四待機時間は、配布期間に比例し、初期評価値又は評価値の平均値ＡＶに反比例（当該平均値ＡＶが大きいほど、待機時間が短くなる）するようになっている。
【００８２】
なお、このような待機時間を決定するに当たって、各コンテンツ事前保持ノードがシステムＳに参加してから脱退するまでの参加期間（例えば、各コンテンツ事前保持ノードから収集）の平均値などをパラメータとして用い、例えば参加期間の平均値が長いほど脱退が少ないと言えるので、上記待機時間を長くするように制御しても良い。言い換えれば、各コンテンツ事前保持ノードがシステムＳから脱退している脱退期間の平均値が長いほど、上記待機時間を短くする。
【００８３】
（３−２．通常のノードＮｎの処理）
先ず、図６乃至図８を参照して、通常のノードＮｎの処理について説明する。
【００８４】
図６は、通常のノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートである。また、図７及び図８は、図６のステップＳ２７における各種メッセージ受信処理の詳細を示すフローチャートである。また、図９は、図７のステップＳ２８５又は図８のステップ２９９における公開前コンテンツ配布処理の詳細を示すフローチャートである。
【００８５】
なお、図６に示す処理は、あるノードＮｎにおいて電源オンがなされ、参加処理（コンタクトノードへの参加メッセージ送信）が実行され、コンテンツ分散保存システムＳへの参加が行われることにより開始される。
【００８６】
先ず、制御部１１は、電源オフ指令があったか否かを判別し、電源オフ指令があった場合には（ステップＳ２１：ＹＥＳ）、当該処理を終了し、電源オフ指令がない場合には（ステップＳ２１：ＮＯ）、ステップＳ２２に進む。
【００８７】
ステップＳ２２では、制御部１１は、ユーザから入力部２０を介してコンテンツのリクエストがあったか否かを判別し、当該リクエストがあった場合には（ステップＳ２２：ＹＥＳ）、ステップＳ２３に進み、当該リクエストがない場合には（ステップＳ２２：ＮＯ）、ステップＳ２４に進む。
【００８８】
ステップＳ２３では、制御部１１は、リクエストされたコンテンツのコンテンツＩＤ等を含むコンテンツ所在問合せ（検索）メッセージをルートノードに向けて送出する。
【００８９】
ステップＳ２４では、制御部１１は、他のノードＮｎからメッセージを受信したか否かを判断し、当該メッセージを受信した場合には（ステップＳ２４：ＹＥＳ）、ステップＳ２５に進み、当該メッセージを受信していない場合には（ステップＳ２４：ＮＯ）、ステップＳ２１に戻る。
【００９０】
ステップＳ２５では、制御部１１は、上記受信したメッセージの宛先のノード情報に含まれるノードＩＤ（又はコンテンツＩＤ）のルートノードは自ノードであるか、つまり、当該ノードＩＤ（又はコンテンツＩＤ）と最も近いノードＩＤを有するノードＮｎが自ノードであるか否かを自身のルーティングテーブルから判別する。そして、当該ルートノードが自ノードでない場合には（ステップＳ２５：ＮＯ）、制御部１１は、メッセージの宛先のノード情報に含まれるノードＩＤ（又はコンテンツＩＤ）に最も近いノードＮｎを自身のルーティングテーブルから特定し、当該特定したノードＮｎに対して上記受信したメッセージを送信（転送）し（ステップＳ２６）、ステップＳ２１に戻る。
【００９１】
一方、当該ルートノードが自ノードである（つまり、自ノード宛てのメッセージである）場合には（ステップＳ２５：ＹＥＳ）、制御部１１は、各種メッセージ受信処理を行う（ステップＳ２７）。
【００９２】
当該各種メッセージ受信処理では、図７に示すように、先ず、制御部１１は、上記受信されたメッセージがコンテンツ所在問合せ（検索）メッセージ（以下、単に、「検索メッセージ」という）であるか否かを判別する（ステップＳ２７１）。そして、上記受信されたメッセージが検索メッセージである場合には（ステップＳ２７１：ＹＥＳ）、ステップＳ２７２に進み、検索メッセージでない場合には（ステップＳ２７１：ＮＯ）、ステップＳ２７６に進む。
【００９３】
ステップＳ２７２では、制御部１１は、上記検索メッセージに含まれるコンテンツＩＤに対応するレプリカを保存しているコンテンツ保持ノード又はコンテンツ事前保持ノードに係るインデックス情報を登録しているか否かをインデックスキャッシュから判別する。
【００９４】
そして、制御部１１は、当該インデックス情報が登録されている場合には（ステップＳ２７２：ＹＥＳ）、当該インデックス情報を取得してステップＳ２７３に進み、当該インデックス情報が登録されていない場合には（ステップＳ２７２：ＮＯ）、ステップＳ２７４に進む。
【００９５】
ステップＳ２７３では、制御部１１は、取得したインデックス情報によりコンテンツ保持ノード又はコンテンツ事前保持ノードを特定し、当該コンテンツ保持ノード又はコンテンツ事前保持ノードに対して上記検索メッセージを送信（転送）してステップＳ２７４に進む。
【００９６】
ステップＳ２７４では、制御部１１は、上記検索メッセージに含まれるコンテンツＩＤに対応するレプリカが自ノードにおける記憶部１２に保存されているか否かを判別し、保存されている場合（この場合、コンテンツ保持ノード又はコンテンツ事前保持ノードということになる）には（ステップＳ２７４：ＹＥＳ）、ステップＳ２７５に進み、保存されていない場合には（ステップＳ２７４：ＮＯ）、図６の処理に戻る。
【００９７】
ステップＳ２７５では、制御部１１は、上記検索メッセージに含まれる送信（リクエスト）元のノード情報（例えば、ノードＩＤ、ＩＰアドレス及びポート番号等）に対応するノードＮｎに対してコンテンツ検索返答メッセージ（以下、単に、「検索返答メッセージ」という）を送信し、図６の処理に戻る。
【００９８】
ステップＳ２７６では、制御部１１は、上記受信されたメッセージが検索返答メッセージであるか否かを判別し、上記受信されたメッセージが検索返答メッセージである場合には（ステップＳ２７６：ＹＥＳ）、ステップＳ２７７に進み、検索返答メッセージでない場合には（ステップＳ２７６：ＮＯ）、ステップＳ２７８に進む。
【００９９】
ステップＳ２７７では、制御部１１は、検索返答メッセージにおける送信元のノード情報に対応するコンテンツ保持ノード又はコンテンツ事前保持ノードに対してコンテンツ送信要求メッセージを送信し、図６の処理に戻る。
【０１００】
ステップＳ２７８では、制御部１１は、上記受信されたメッセージがコンテンツ送信要求メッセージであるか否かを判別し、上記受信されたメッセージがコンテンツ送信要求メッセージである場合には（ステップＳ２７８：ＹＥＳ）、ステップＳ２７９に進み、コンテンツ送信要求メッセージでない場合には（ステップＳ２７８：ＮＯ）、ステップＳ２８３に進む。
【０１０１】
ステップＳ２７９では、制御部１１は、現在、コンテンツ送信要求に係るレプリカを配信可能であるか否かを判別し、配信可能である場合には（ステップＳ２７９：ＹＥＳ）、ステップＳ２８０に進み、配信可能でない場合には（ステップＳ２７９：ＮＯ）、ステップＳ２８２に進む。
【０１０２】
ステップＳ２８０では、制御部１１は、上記コンテンツ送信要求メッセージに含まれる送信元のノード情報に対応するユーザノードに対して、送信要求に係るレプリカが格納されたコンテンツ送信メッセージを送信する。
【０１０３】
次いで、制御部１１は、当該送信したレプリカに係るコンテンツの評価値を例えば半分にして、その評価値と同じ分を増やすように評価値を上げる増加指令を示す評価値増加指令メッセージを上記ユーザノードに対して送信する（ステップＳ２８１）。
【０１０４】
ステップＳ２８２では、制御部１１は、上記コンテンツ送信要求メッセージに含まれる送信元のノード情報に対応するユーザノードに対して、コンテンツ送信不可メッセージを送信し、図６の処理に戻る。
【０１０５】
ステップＳ２８３では、制御部１１は、上記受信されたメッセージがコンテンツ送信メッセージであるか否かを判別し、上記受信されたメッセージがコンテンツ送信メッセージである場合には（ステップＳ２８３：ＹＥＳ）、ステップＳ２８４に進み、コンテンツ送信メッセージでない場合には（ステップＳ２８３：ＮＯ）、ステップＳ２８６に進む。
【０１０６】
ステップＳ２８４では、制御部１１は、コンテンツ送信メッセージに含まれるレプリカを記憶部１１に記憶保存し、これが完了すると、当該レプリカに対応するコンテンツＩＤ等を含むパブリッシュメッセージをルートノードに向けて送出する。続いて、制御部１１は、公開前コンテンツ配布処理を実行し（ステップＳ２８５）、図６の処理に戻る。なお、当該公開前コンテンツ配布処理についての詳細は後述する。
【０１０７】
ステップＳ２８６では、制御部１１は、上記受信されたメッセージがコンテンツ送信不可メッセージであるか否かを判別し、上記受信されたメッセージがコンテンツ送信不可メッセージである場合には（ステップＳ２８６：ＹＥＳ）、ステップＳ２８７に進み、コンテンツ送信不可メッセージでない場合には（ステップＳ２８６：ＮＯ）、ステップＳ２８８に進む。
【０１０８】
ステップＳ２８７では、制御部１１は、全てのコンテンツデータを管理しているコンテンツ管理サーバに対してコンテンツ送信要求メッセージを送信し、図６の処理に戻る。
【０１０９】
ステップＳ２８８では、制御部１１は、上記受信されたメッセージがパブリッシュメッセージであるか否かを判別し、上記受信されたメッセージがパブリッシュメッセージである場合には（ステップＳ２８８：ＹＥＳ）、ステップＳ２８９に進み、パブリッシュメッセージでない場合には（ステップＳ２８８：ＮＯ）、図８に示すステップＳ２９０に進む。
【０１１０】
ステップＳ２８９では、制御部１１は、受信されたパブリッシュメッセージに含まれるコンテンツＩＤ、及び送信元のノード情報を含むインデックス情報を新規登録（インデックスキャッシュ領域に記憶）し、図６の処理に戻る。
【０１１１】
ステップＳ２９０では、制御部１１は、上記受信されたメッセージがレプリカ作成要求メッセージであるか否かを判別し、上記受信されたメッセージがレプリカ作成要求メッセージである場合には（ステップＳ２９０：ＹＥＳ）、ステップＳ２９１に進み、レプリカ作成要求メッセージでない場合には（ステップＳ２９０：ＮＯ）、ステップＳ２９２に進む。
【０１１２】
ステップＳ２９１では、制御部１１は、レプリカ作成要求メッセージに含まれるコンテンツＩＤ等を含む検索メッセージをルートノードに向けて送出し、図６の処理に戻る。
【０１１３】
ステップＳ２９２では、制御部１１は、上記受信されたメッセージが評価値収集メッセージであるか否かを判別し、上記受信されたメッセージが評価値収集メッセージである場合には（ステップＳ２９２：ＹＥＳ）、ステップＳ２９３に進み、評価値収集メッセージでない場合には（ステップＳ２９２：ＮＯ）、ステップＳ２９４に進む。
【０１１４】
ステップＳ２９３では、制御部１１は、自己が管理している全てのコンテンツ事前保持ノードのＩＰアドレス及びポート番号をインデックス情報から取得し、各コンテンツ事前保持ノードに接続を試みて接続できたコンテンツ事前保持ノードに対して上記コンテンツ投入ノードのＩＰアドレス及びポート番号等を含む評価値要求メッセージを送信し、図６の処理に戻る。
【０１１５】
ステップＳ２９４では、制御部１１は、上記受信されたメッセージが評価値要求メッセージであるか否かを判別し、上記受信されたメッセージが評価値要求メッセージである場合には（ステップＳ２９４：ＹＥＳ）、ステップＳ２９５に進み、評価値要求メッセージでない場合には（ステップＳ２９４：ＮＯ）、ステップＳ２９６に進む。
【０１１６】
ステップＳ２９５では、制御部１１は、自己が保存コンテンツ管理テーブルにて管理している現在の評価値を含む評価値返答メッセージをコンテンツ投入ノードに対して送信する。
【０１１７】
ステップＳ２９６では、上記受信されたメッセージが評価値増加指令メッセージであるか否かを判別し、上記受信されたメッセージが評価値増加指令メッセージである場合には（ステップＳ２９６：ＹＥＳ）、ステップＳ２９７に進み、評価値増加指令メッセージでない場合には（ステップＳ２９６：ＮＯ）、ステップＳ３００に進む。
【０１１８】
ステップＳ２９７では、制御部１１は、評価値増加指令メッセージに示されるコンテンツの評価値であって、自己が保存コンテンツ管理テーブルにて管理している現在の評価値を増加（例えば、自己の管理する評価値と初期評価値との差分増加）させる。続いて、制御部１１は、当該評価値増加指令メッセージに示されるコンテンツに対して公開前コンテンツ配布処理が実行中であるか否かを判別し（ステップＳ２９８）、実行中でない場合には（ステップＳ２９８：ＮＯ）、公開前コンテンツ配布処理を実行し（ステップＳ２９９）、実行中である場合には（ステップＳ２９８：ＹＥＳ）、図６の処理に戻る。なお、当該公開前コンテンツ配布処理についての詳細は後述する。
【０１１９】
ステップＳ３００では、制御部１１は、上記受信されたメッセージが評価値減少指令メッセージであるか否かを判別し、上記受信されたメッセージが評価値減少指令メッセージである場合には（ステップＳ３００：ＹＥＳ）、ステップＳ３０１に進み、評価値減少指令メッセージでない場合には（ステップＳ３００：ＮＯ）、図６の処理に戻る。
【０１２０】
ステップＳ３０１では、制御部１１は、評価値減少指令メッセージに示されるコンテンツの評価値であって、自己が保存コンテンツ管理テーブルにて管理している現在の評価値を減少（例えば、自己の管理する評価値と初期評価値との差分減少）させ、ステップＳ２９８に移行して上記と同様の処理を行う。
【０１２１】
次に、上記公開前コンテンツ配布処理では、図９に示すように、先ず、制御部１１は、上記対象のコンテンツ（例えば、ステップＳ２８４で保存されたレプリカに係るコンテンツ）は公開日時が経過しているか否かを判別し（ステップＳ８０１）、公開日時が経過している場合には（ステップＳ８０１：ＹＥＳ）、図７の処理に戻り、公開日時が経過していない場合には（ステップＳ８０１：ＮＯ）、ステップＳ８０２に進む。
【０１２２】
ステップＳ８０２では、制御部１１は、当該コンテンツの評価値が所定値（例えば“１”）以下であるか否かを判別し、所定値以下である場合には（ステップＳ８０２：ＹＥＳ）、図７の処理に戻り、所定値以下でない場合には（ステップＳ８０２：ＮＯ）、ステップＳ８０３に進む。ここで、所定値以下になった場合に、ステップＳ８０３の処理を行わないのは、評価値が当該所定値以下に低下してきた場合、レプリカを他のノードＮｎに保存させることを停止するためである。
【０１２３】
ステップＳ８０３では、制御部１１は、例えば自己のＤＨＴを用いたルーティングテーブルに登録されているノードＮｎのうちから１つのノードＮｎを例えばランダムに選定し、当該選定したノードＮｎに対して上記保存しているレプリカを作成させるためのレプリカ作成要求メッセージ（例えば、コンテンツＩＤを含む）を送信する。続いて、制御部１１は、所定の待機時間（例えば、コンテンツの配布期間／現在の評価値）だけ待機し（ステップＳ８０４）、当該待機時間が到来すると、ステップＳ８０１に戻り上記と同様の処理を行う。なお、図示しないが、この待機時間内にメッセージが受信されると、上記図７の処理が行われ、ステップＳ８０４に戻ることになる。
【０１２４】
以上説明したように、上記実施形態によれば、コンテンツ投入ノードは、コンテンツ分散保存システムＳに参加している各ノードＮｎにおいて管理されている公開前のコンテンツの評価値を取得し、当該取得された評価値の合計値を算出する。そして、当該コンテンツ投入ノードは、算出された合計値が、第一の閾値以下であるか否かを判別し、当該合計値が第一の閾値以下である場合には、上記公開前のコンテンツのレプリカを保存した各ノードＮｎのうち、少なくとも一つのノードＮｎに対して評価値を増加させる増加指令を示す評価値増加指令メッセージを送信するように構成したので、当該評価値増加指令メッセージを受信したノードＮｎにおいては当該指令に係るコンテンツの評価値が増加されることになり、従って、高い評価値が付与されたコンテンツのレプリカを保存しているノードＮｎがシステムＳから脱退してしまった場合であっても、適切な数のレプリカを当該システムＳ内に事前確保（分散保存）することができる。
【０１２５】
また、コンテンツ投入ノードは、上記算出された合計値が、上記第一の閾値より大きい第二の閾値以上であるか否かを判別し、当該合計値が第二の閾値以上である場合には、上記公開前のコンテンツのレプリカを保存した各ノードＮｎのうち、少なくとも一つのノードＮｎに対して評価値を減少させる減少指令を示す評価値減少指令メッセージを送信するように構成したので、当該評価値減少指令メッセージを受信したノードＮｎにおいては当該指令に係るコンテンツの評価値が減少されることになり、従って、レプリカをシステム内Ｓに余分に分散保存させることを回避することができる。
【０１２６】
更に、コンテンツ投入ノードにおける図４に示す評価値監視処理が次回行われるまでの待機時間は、図５に示すように、例えばレプリカが公開されるまでの期間が長いほど短くなるように可変制御したり、或いは、上記取得された評価値の平均値が大きいほど、短くなるように可変制御することにより、最終的に、より適切な数のレプリカを当該システムＳ内に事前確保（分散保存）することができる。なお、より適切な数のレプリカを確保するための精度を高くしたければ、評価値監視処理の間隔（待機時間）は短いほうがよいと言えるが、当該間隔を短くすることには、メッセージ負荷や計算負荷が高くなるという欠点がある。従って、ノードＮｎの脱退の影響が大きいと予想されるときはこまめに評価値を収集し、影響が小さいと予想される場合は上記間隔を長くすることで、精度と負荷のバランスをとることが可能となる。
【０１２７】
なお、上記実施形態におけるコンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１２８】
【図１】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】あるコンテンツのレプリカを公開前に複数のノードＮｎに分散して保存させる様子を示す概念図である。
【図３】ノードＮｎの概要構成例を示す図である。
【図４】コンテンツ投入ノードの制御部１１における評価値監視処理の一例を示すフローチャートである。
【図５】図４のステップＳ１における待機処理の詳細を示すフローチャートである。
【図６】通常のノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートである。
【図７】図６のステップＳ２７における各種メッセージ受信処理の詳細を示すフローチャートである。
【図８】図６のステップＳ２７における各種メッセージ受信処理の詳細を示すフローチャートである。
【図９】図７のステップＳ２８５又は図８のステップ２９９における公開前コンテンツ配布処理の詳細を示すフローチャートである。
【符号の説明】
【０１２９】
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  通信部
２０  入力部
２１  バス
Ｎｎ  ノード
Ｓ  コンテンツ分散保存システム
【図１】
2009140383.tif 000003
【図２】
2009140383.tif 000004
【図３】
2009140383.tif 000005
【図４】
2009140383.tif 000006
【図５】
2009140383.tif 000007
【図６】
2009140383.tif 000008
【図７】
2009140383.tif 000009
【図８】
2009140383.tif 000010
【図９】
2009140383.tif 000011