(57)【要約】      （修正有）【課題】システムへの参加当初から、コンテンツのレプリカをノード装置に自動的に保存させ、システムに対する貢献度を短時間で向上させることが可能なノード装置、ノード処理プログラム、及びコンテンツデータ保存方法を提供する。【解決手段】コンテンツ分散保存システムへの参加処理が実行されたとき、コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得手段と、ノード情報取得手段により取得されたノード情報に基づいて、コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいてコンテンツデータの送信を要求するコンテンツデータ送信要求手段と、コンテンツデータ要求手段により要求されたコンテンツデータを取得するコンテンツデータ取得手段と、コンテンツデータ取得手段により他のノード装置から取得された前記コンテンツデータを記憶する記憶手段。【選択図】図２
2010238160.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）、通信カラオケ装置、或いは、ＴＶ受信機等が適用可能である。
【００６２】
記憶部１２には、当該ノードＮｎ自身のアドレス情報が記憶されており、当該ノードＮｎが、コンテンツ分散保存システムＳに参加した後は、ノードＩＤも記憶される。
【００６３】
また、コンテンツ分散保存システムＳへ参加後は、記憶部１２には、「キャッシュ充填処理」（後述する）により他のノードＮｎから取得したコンテンツデータがキャッシュ（記憶）される。
【００６４】
更に、記憶部１２は、保存コンテンツ管理テーブルを記憶する。保存コンテンツ管理テーブルは、記憶部１２に保存（記録）しているコンテンツのレプリカに関する情報（タイトル、コンテンツＩＤ等）を登録するための情報である。また記憶部１２は、インデックス情報をインデックスキャッシュとして記憶する。インデックス情報は、自ノードＮｎが所在を管理するコンテンツの保持ノードであるノードＮｎのノード情報と当該コンテンツのコンテンツＩＤの組が含まれる情報である。
【００６５】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、全体を統括制御する。ノードＮｎがシステムＳ１又はＳ２へ参加して、プログラムが実行されることで、上述したユーザノード、中継ノード、ルートノード、コンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行なうようになっている。
【００６６】
また、制御部１１は、本発明のノード処理プログラムを実行することにより、本発明における参加処理手段、ノード情報取得手段、コンテンツデータ送信要求手段、コンテンツデータ取得手段、記憶手段、空き容量判別手段、空き容量計測手段等として機能する。なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００６７】
３．ノードＮｎの処理
ノードＮｎにおける処理を、図を参照して、詳しく説明する。ここでは、新規参入ノードＮｎが、ノード情報の一例であるアドレス情報を（ルートノードとして）取得する。新規参入ノードＮｎが、当該アドレス情報にかかるノードＮｎへコンテンツデータの送信要求を直接行なう場合について説明する。
【００６８】
３−１．キャッシュ充填処理
図５は、ノードＮｎにおける制御部１１のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムＳへの参加処理（図２参照）が実行された後に制御部１１による制御に基づいて開始される処理である。なお、当該キャッシュ充填処理は、本発明のノード処理プログラムの一部である。
【００６９】
先ず、制御部１１は、記憶部１２に所定容量以上の空き容量が有るか否かを判別する（ステップＳ１０）。所定容量は、記憶部１２の記憶容量等に基づいて定められる。例えば、記憶部１２の記憶容量の５０％等を所定容量とする。
【００７０】
判別の結果、空き容量がない場合（ステップＳ１０：Ｎｏ）には、制御部１１は処理を終了する。空き容量がある場合（ステップＳ１０：Ｙｅｓ）には、制御部１１は記憶部１２に記憶されているルーティングテーブルに基づいてコンテンツデータを取得する処理を行なう（ステップＳ１１〜ステップＳ２２）。この処理は、ルーティングテーブルに登録されたアドレス情報に従い、当該アドレス情報に係る他のノードＮｎに対して順にコンテンツデータ取得要求を行ない、コンテンツデータを取得する処理である。
【００７１】
ステップＳ１１〜ステップＳ２２の処理は、ステップＳ２２で終了条件を満たすまで繰り返し行なわれる。そして、後述するステップＳ１８で所定容量以上のコンテンツデータを取得したときに、コンテンツデータの取得処理を終了する。
【００７２】
先ず、ステップＳ１２にて、制御部１１は、ルーティングテーブルに登録されたアドレス情報を１つづつ取得し、各アドレス情報に係るノードＮｎ（以下、「取得要求先ノードＮｎ」と言う。）にアクセスしてコンテンツデータを取得する。
【００７３】
具体的には、先ず、制御部１１は、最初のアドレス情報をルーティングテーブルから取得する。例えば、最初のアドレス情報は、図２に示すルーティングテーブルのレベル１の一番左に登録されたアドレス情報である。そして、制御部１１は、取得されたアドレス情報に係るノードＮｎ（取得要求先ノードＮｎ）から、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータの数（以下、「コンテンツ取得数」と言う。）を取得する（ステップＳ１２）。そして、制御部１１は、取得要求先ノードＮｎへ「コンテンツデータ取得条件」の情報を送信する。このとき、「コンテンツデータ取得条件」と共に、当該取得条件を満たすコンテンツのコンテンツデータをいくつ保存しているかを取得要求先ノードＮｎへ問い合わせる。そして、制御部１１は、取得要求先ノードＮｎから当該取得条件を満たすコンテンツ取得数を取得する。
【００７４】
なお、カタログ情報に「コンテンツデータ取得条件」を含む場合には、取得要求先ノードＮｎに対して「コンテンツデータ取得条件」の情報は送信しなくともよい。
【００７５】
次に、制御部１１は、取得要求先ノードＮｎからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう（ステップＳ１３〜ステップＳ１９）。「コンテンツデータ取得処理」は、ステップＳ１２で取得したコンテンツ取得数回行なわれる。例えば、コンテンツ取得数が「１」であれば、ステップＳ１３〜ステップＳ１９の処理が１回行なわれ、コンテンツ取得数が「１０」であれば、ステップＳ１３〜ステップＳ１９の処理が１０回行なわれる。なお、後述するステップＳ１８で所定容量以上のコンテンツデータを取得した場合には、取得要求先ノードＮｎに対する「コンテンツデータ取得処理」は終了する。なお、コンテンツ取得数が「０」であれば、制御部１１は、取得要求先ノードＮｎに対する「コンテンツデータ取得処理」は終了し、ステップＳ２１に移行する。
【００７６】
続いて、制御部１１は、取得要求先ノードＮｎへ次の取得候補となる候補コンテンツＩＤを要求する。そして、制御部１１は、取得要求先ノードＮｎから候補コンテンツＩＤを取得する（ステップＳ１４）。なお、最初の（１回目の）「コンテンツデータ取得処理」である場合には、制御部１１は、取得要求先ノードＮｎへ最初の取得候補となる候補コンテンツＩＤを通知するよう要求する。そして、制御部１１は、取得要求先ノードＮｎから最初の取得候補となる候補コンテンツＩＤを取得する。例えば、ステップＳ１２で取得したコンテンツ取得数が「Ｍ」（Ｍ≧１）であって、当該取得要求先ノードＮｎに対する最初の（１回目の）「コンテンツデータ取得処理」であれば、取得要求先ノードＮｎに対して「１番評価値が高いコンテンツのコンテンツＩＤ」を通知するよう要求する。
【００７７】
２回目のコンテンツデータ取得処理であれば、取得要求先ノードＮｎに対して2番目に評価値が高いコンテンツのコンテンツＩＤを候補コンテンツＩＤとして送信する。
【００７８】
このように、Ｎ（Ｎ≦Ｍ）回目の「コンテンツデータ取得処理」であれば、「Ｎ番目に評価値が高いコンテンツのコンテンツＩＤ」を候補コンテンツＩＤとして送信する。
【００７９】
次に、制御部１１は、取得した候補コンテンツＩＤのコンテンツデータを記憶部１２に既に記憶済みか否かを判定する（ステップＳ１５）。
【００８０】
判定の結果、既に記憶済みであると判定された場合（ステップＳ１５：Ｙｅｓ）には、制御部１１はステップＳ１９へ移行する。記憶済みでないと判定された場合（ステップＳ１５：Ｎｏ）には、制御部１１は、当該候補コンテンツＩＤにかかるコンテンツデータの送信を要求する。具体的には、制御部１１は、取得要求先ノードＮｎへコンテンツデータ送信要求を送信する（ステップＳ１６）。
【００８１】
そして、制御部１１は、取得要求先ノードＮｎからコンテンツデータを取得し、記憶部１２に記憶する（ステップＳ１７）。
【００８２】
次に、制御部１１は、記憶部１２に所定容量以上のコンテンツデータを記憶したか否かを判定する（ステップＳ１８）。所定容量は、例えば、ステップＳ１０にて判断に利用した空き容量、または記憶部１２の記憶容量等に基づいて定められる。例えば、記憶部１２の記憶容量の５０％以上のコンテンツデータを記憶したか否かを判定する。
【００８３】
判定の結果、所定容量以上のコンテンツデータを記憶していないと判定された場合（ステップＳ１８：Ｎｏ）には、制御部１１は、ステップＳ１９に移行する。所定容量以上のコンテンツデータを記憶していると判定された場合（ステップＳ１８：Ｙｅｓ）には、制御部１１は、取得要求先ノードＮｎに初期取得完了通知を送信（ステップＳ２０）して処理を終了する。
【００８４】
続いて、制御部１１は、ステップＳ１２で取得した「コンテンツ取得数」が表す回数分の「コンテンツデータ取得処理」を行なうまでステップＳ１３〜ステップＳ１９の処理を繰り返し行なう。制御部１１は、「コンテンツ取得数」が表す回数分の「コンテンツデータ取得処理」を行なうと、取得要求先ノードＮｎに初期取得完了通知を送信（ステップＳ２１）する。
【００８５】
取得要求先ノードＮｎに対する「コンテンツデータ取得処理」終了した後に、制御部１１は、ステップＳ２２に移行してルーティングテーブルに登録された全てのアドレス情報にかかる全てのノードＮｎに対して取得処理が終了したかを判定する（ステップＳ２２）。判定の結果、終了していなければ、ステップＳ１１に戻り、ステップＳ１２にて次のノードＮｎのアドレス情報を取得する。この次のノードＮｎとは、例えば、図２に示すルーティングテーブルのレベル１の一番左から２番目に登録されたアドレス情報に係るノードＮｎである。そして、制御部１１は、取得されたアドレス情報に係るノードＮｎを取得要求先ノードＮｎとし、取得要求先ノードＮｎからコンテンツ取得数を取得し、コンテンツデータ取得処理を行なう。
【００８６】
このように、ルーティングテーブルに登録されたアドレス情報に従い、当該アドレス情報に係るノードＮｎに対して順にコンテンツデータの取得処理を行なう。ルーティングテーブルのどのレベルのどの箇所に登録されているアドレスから行なってもよく、その順番は問わない。
【００８７】
そして、ステップＳ２２にて、ルーティングテーブルに登録された全てのアドレス情報にかかる全てのノードＮｎに対してステップＳ１１〜ステップＳ２２の処理が行われたと判断されたときに、制御部１１は処理を終了する。
【００８８】
３−２．コンテンツ分散保存システムＳに参加後の処理
図６は、ノードＮｎにおける制御部１１の処理を示すフローチャートである。ノードＮｎがコンテンツ分散保存システムＳへ参加した後、上述した図５のフローチャートが実行される。図５に示すフローチャートの処理が終了した後に、制御部１１は図６のフローチャートを実行する。
【００８９】
先ず、制御部１１は、電源がオフとされたか否かを判定する（ステップＳ３０）。電源がオフとされた場合（ステップＳ３０：Ｙｅｓ）には、制御部１１は処理を終了する。電源がオフとされていない場合（ステップＳ３０：Ｎｏ）には、制御部１１は、新規参入ノードＮｎから「コンテンツデータ取得条件」の情報と共に、当該取得条件を満たすコンテンツのコンテンツデータの数（コンテンツ取得数）の問い合わせがあるか否かを判定する（ステップＳ３１）。問い合わせがあると判定された場合（ステップＳ３１：Ｙｅｓ）には、制御部１１は、問い合わせ元のノードＮｎ（新規参入ノードＮｎ）にコンテンツ取得数を通知する（ステップＳ３２）。例えば、「コンテンツデータ取得条件」が、“コンテンツの評価値が「７０」以上のコンテンツ”である場合には、制御部１１は、記憶部１２に記憶されているコンテンツデータのうち、評価値が「７０」以上であるコンテンツの数を決定する。そして、制御部１１は、コンテンツ取得数として、決定されたコンテンツの数を問い合わせ元のノードＮｎに通知する。
【００９０】
次いで、制御部１１は、「コンテンツデータ送信処理」を行なう（ステップＳ３３〜ステップＳ３９）。当該「コンテンツデータ送信処理」は、当該ノードＮｎが上述した取得要求先ノードＮｎとして、新規参入ノードＮｎに対して行なう処理である。
【００９１】
先ず、制御部１１は、電源がオフとされたか否かを判定する（ステップＳ３４）。制御部１１が電源がオフとされたと判定した場合（ステップＳ３４：Ｙｅｓ）には、制御部１１は処理を終了する。制御部１１が電源がオフとされていないと判定した場合（ステップＳ３４：Ｎｏ）には、制御部１１は新規参入ノードＮｎから候補コンテンツＩＤの通知要求があるか否かを判定する（ステップＳ３５）。制御部１１が候補コンテンツＩＤの通知要求が無いと判定した場合（ステップＳ３５：Ｎｏ）には、ステップＳ３４へ移行する。
【００９２】
そして、制御部１１が候補コンテンツＩＤの通知要求があると判定した場合（ステップＳ３５：Ｙｅｓ）には、制御部１１は次に評価値が高いコンテンツのコンテンツＩＤを新規参入ノードＮｎに送信する（ステップＳ３６）。
【００９３】
例えば、コンテンツ取得数が「Ｍ」であって、最初の「コンテンツデータ送信処理」である場合、制御部１１は、新規参入ノードＮｎノードへ「コンテンツデータ取得条件」を満たすコンテンツのうち、「１番評価値が高いコンテンツのコンテンツＩＤ」を候補コンテンツＩＤとして送信する。Ｎ（Ｎ≦Ｍ）回目の「コンテンツデータ送信処理」であれば、制御部１１は、「Ｎ番目に評価値が高いコンテンツのコンテンツＩＤ」を候補コンテンツＩＤとして送信する。
【００９４】
続いて、制御部１１は、コンテンツデータ送信要求を受信したか否かを判定する（ステップＳ３７）。制御部１１がコンテンツデータ送信要求を受信した場合（ステップＳ３７：Ｙｅｓ）には、制御部１１はコンテンツデータを新規参入ノードＮｎに送信する。（ステップＳ３８）制御部１１がコンテンツデータ送信要求を受信していないと判定した場合（ステップＳ３７：Ｎｏ）には、制御部１１はステップＳ３９に移行する。
【００９５】
そして、新規参入ノードＮｎから、初期取得完了通知を受信するまで、制御部１１はステップＳ３３〜ステップＳ３９の「コンテンツデータ送信処理」を繰り返し行なう。そして、し制御部１１は初期取得完了通知を受信すると処理を終了する。
【００９６】
なお、ステップＳ３１にて、コンテンツ取得数の問い合わせがない場合（ステップＳ３１：Ｎｏ）には、制御部１１はステップＳ４０へ移行する。そして、制御部１１はコンテンツ分散保存システムＳに参加するノードＮｎとしてのその他の処理（例えば、ユーザノード、中継ノード、ルートノード、コンテンツ保持ノードとしての処理）を行なう（ステップＳ４０）。
【００９７】
次いで、制御部１１はステップＳ３０へ移行する。
【００９８】
以上説明したように、新規参入ノードＮｎが、ルーティングテーブル内のアドレス情報を取得し、当該アドレス情報に基づいて他のノードＮｎに対してコンテンツデータの送信を要求する。新規参入ノードＮｎは、当該コンテンツデータを取得するので、新規参入ノードＮｎは、コンテンツ分散保存システムＳへの参加当初から、コンテンツのコンテンツデータを自動的にキャッシュ（記憶）することができる。この結果、コンテンツ分散保存システムＳに対する貢献度を短時間で手間なく向上させることができる。
【００９９】
さらに、本実施形態では「コンテンツデータ取得条件」を“コンテンツの評価値が所定値以上のコンテンツ”とした。本実施形態では「コンテンツデータ取得条件」満たすコンテンツデータを要求し、取得するよう構成した。そのため、例えば、利用頻度や予測利用頻度等に基づく評価値の高いコンテンツデータを優先して取得し保存することができる。
【０１００】
また、本実施形態では、上記ステップＳ１０で、記憶部１２に所定容量以上の空き容量が有るか否かを判定し、所定容量以上の空き容量がある場合にのみコンテンツデータの送信要求を行なうよう構成した。そのため、記憶部１２に所定容量以上の空き容量があり、貢献度が低く、コンテンツデータを記憶する余裕がある場合にのみコンテンツデータの送信要求を行なうことができる。
【０１０１】
これにより、参加当初であっても、記憶部１２にコンテンツデータを既に記憶している場合等、コンテンツ分散保存システムＳに対する貢献度が相当程度ある場合や、コンテンツデータは記憶されていないが、その他の情報やデータが記憶されているために、コンテンツデータを記憶する空き容量が無い場合にまでコンテンツデータの送信要求を行なうことを防ぐことができる。
【０１０２】
なお、「参加当初であっても、コンテンツ分散保存システムＳに対する貢献度が相当程度ある場合」とは、例えば、過去にコンテンツ分散保存システムＳに参加していたときに取得したコンテンツデータが記憶部１２に残存している場合である。
【０１０３】
４．変型例１
上述した実施形態では、「コンテンツデータ取得条件」を“「コンテンツの評価値」が所定値以上であるコンテンツ”とした。変型例１は、「コンテンツデータ取得条件」を“所定個数のコンテンツ”とする。「所定個数」は、例えば、１０個、１００個等であり、新規参入ノードＮｎが、例えば、記憶部１２の空き容量に基づいて決定したり、管理サーバがコンテンツ分散保存システムＳに参加しているノードＮｎの数やコンテンツの数を鑑みて決定し「コンテンツデータ取得条件」として新規参入ノードＮｎに通知するものである。なお、カタログ情報に「コンテンツデータ取得条件」を含んでもよい。
【０１０４】
ここでは、新規参入ノードＮｎが、記憶部１２の空き容量を計測して「コンテンツデータ取得条件」に係る「所定個数」を決定する場合の実施例について説明する。なお、以下の説明において、上述した実施形態と同様の処理については説明を省略している。
【０１０５】
４−１．ノードＮｎの処理
変型例１におけるノードＮｎの処理を、図を参照して、詳しく説明する。
【０１０６】
４−１−１．キャッシュ充填処理
図７は、ノードＮｎにおける制御部１１のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムＳへの参加処理（図２参照）が実行されたときに制御部１１による制御に基づいて開始される処理である。
【０１０７】
先ず、制御部１１は、記憶部１２に所定容量以上の空き容量が有るか否かを判別する（ステップＳ５０）。空き容量がない場合（ステップＳ５０：Ｎｏ）には制御部１１は処理を終了する。空き容量がある場合（ステップＳ５０：Ｙｅｓ）には、制御部１１は、記憶部１２の空き容量を計測する。そして、制御部１１は。計測された空き容量に基づいて取得すべきコンテンツ取得数（所定個数）を決定する（ステップＳ５１）。
【０１０８】
続いて、制御部１１は、記憶部１２に記憶されているルーティングテーブルに基づいてコンテンツデータを取得する処理を行なう（ステップＳ５２〜ステップＳ６３）。
【０１０９】
先ず、制御部１１は、取得要求先ノードＮｎに対して、コンテンツ初期取得を開始する旨を知らせる「コンテンツ初期取得開始通知」を送信する（ステップＳ５３）。そして、制御部１１は、取得要求先ノードＮｎからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう（ステップＳ５４〜ステップＳ６１）。
【０１１０】
以下、ステップＳ５４乃至ステップＳ６３の処理は、上述した実施形態におけるステップＳ１３乃至ステップＳ２２の処理と同様であるため、説明を省略する。
【０１１１】
４−１−２．コンテンツ分散保存システムＳに参加後の処理
図８は、ノードＮｎにおける制御部１１の処理を示すフローチャートであり、コンテンツ分散保存システムＳへ参加した後、上述した図７のフローチャートが実行される。図７の処理が終了した後に。制御部１１は、図８のフローチャートの処理を開始する。
【０１１２】
先ず、制御部１１は、電源がオフとされたか否かを判定する（ステップＳ７０）。電源がオフとされた場合（ステップＳ７０：Ｙｅｓ）には、制御部１１は処理を終了する。電源がオフとされていない場合（ステップＳ７０：Ｎｏ）には、制御部１１は、新規参入ノードＮｎから「コンテンツ初期取得開始通知」を受信したか否かを判定する（ステップＳ７１）。受信していない場合には（ステップＳ７１：Ｎｏ）には、制御部１１はステップＳ７９へ移行する。
【０１１３】
一方、「コンテンツ初期取得開始通知」を受信した場合（ステップＳ７１：Ｙｅｓ）には、制御部１１は「コンテンツデータ送信処理」を行なう（ステップＳ７２〜ステップＳ７８）。
【０１１４】
なお、ステップＳ７２乃至ステップＳ７９の処理は、上述した実施形態におけるステップＳ３３乃至ステップＳ４０の処理と同様であるため、説明を省略する。
【０１１５】
このように、「コンテンツデータ取得条件」を“所定個数のコンテンツ”としたので、新規参入ノードＮｎが希望する数のコンテンツを各取得要求先ノードＮｎから取得することができる。
【０１１６】
また、計測した空き容量に基づいて所定個数を決定するので、空き容量に適応した数のコンテンツデータを各取得要求先ノードＮｎから取得することができる。
【０１１７】
なお、上述した実施形態における「コンテンツデータ取得条件」と組み合わせてもよい。例えば、“コンテンツの評価値が所定値以上である所定個数のコンテンツ”をコンテンツデータ取得条件としてもよい。この場合、取得要求先ノードＮｎは、コンテンツの評価値が所定値以上であるコンテンツをＫ個保持しており、“所定個数”がＫ個よりも多い場合には、Ｋ個だけ送信してもよいし、或いは、コンテンツの評価値が所定値未満のコンテンツであっても“所定個数”を満たすまでコンテンツデータを送信しつづけるよう構成してもよい。
【０１１８】
５．変型例２
上述した実施形態及びその変型例１では、新規参入ノードＮｎが、ルーティングテーブルに登録されているアドレス情報に係るノードＮｎに対してコンテンツデータの送信要求を行なった。
【０１１９】
他の変型例として、自己のノードＩＤ又は他のノード装置のノードＩＤをノード情報の一例として取得し、新規参入ノードＮｎが、取得したノードＩＤに向けてメッセージを送信し、メッセージが辿り着いた先のノードＮｎ（取得要求先ノードＮｎ）から、コンテンツデータを取得するよう構成することもできる。
【０１２０】
変型例２では、ノードＩＤをランダムに（或いは規定のルールに従い）生成して取得し、当該ノードＩＤに向けてメッセージを送信するよう構成した。
【０１２１】
「コンテンツデータ取得条件」は、“コンテンツの評価値が所定値以上のコンテンツ”でも、“所定個数のコンテンツ”でもよいが、ここでは前者とした場合の実施例について説明する。なお、以下の説明において、上述した実施形態と同様の処理については説明を省略している。
【０１２２】
５−１．ノードＮｎの処理
変型例２におけるノードＮｎの処理を、図を参照して、詳しく説明する。
【０１２３】
５−１−１．キャッシュ充填処理
図９は、ノードＮｎにおける制御部１１のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムＳへの参加処理（図２参照）が実行されたときに、制御部１１は図９のフローチャートの処理を開始する。
【０１２４】
先ず、制御部１１は、記憶部１２に所定容量以上の空き容量が有るか否かを判別する（ステップＳ９０）。空き容量がない場合（ステップＳ９０：Ｎｏ）には、制御部１１は処理を終了する。空き容量がある場合（ステップＳ９０：Ｙｅｓ）には、制御部１１は、ノードＩＤを生成して取得（ステップＳ９１）する。
【０１２５】
続いて、制御部１１は、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータをいくつ保存しているかを問い合わせる問い合わせメッセージを、ステップＳ９１にて取得したノードＩＤに向けて、「コンテンツデータ取得条件」の情報と共に送信する。送信された問い合わせメッセージは、ＤＨＴによるルーティングによりノードＮｎ間を転送されることとなる。
【０１２６】
そして、制御部１１は、問い合わせメッセージが辿り着いた先のノードＮｎから、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータの数（コンテンツ取得数）を取得する（ステップＳ９２）。以下、“問い合わせメッセージが辿り着いた先のノードＮｎ”を、“取得要求先ノードＮｎ”と言う。
【０１２７】
なお、制御部１１は、問い合わせメッセージを生成する際、自己のノードＩＤ及びＩＰアドレスを含む問い合わせメッセージを生成し、取得要求先ノードＮｎは、当該問い合わせメッセージに含まれるアドレス情報に従って、問い合わせメッセージの送信元のノードＮｎに対してコンテンツ取得数を送信する。
【０１２８】
続いて、制御部１１は、取得要求先ノードＮｎからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう（ステップＳ９３〜ステップＳ９９）。
【０１２９】
以下、ステップＳ９３乃至ステップＳ１０１の処理は、上述した実施形態におけるステップＳ１３乃至ステップＳ２１の処理と同様であるため、説明を省略する。
【０１３０】
ステップＳ１０１にて初期取得完了通知を送信後、制御部１１は、記憶部１２に所定容量以上のコンテンツデータを記憶したか否かを判定する（ステップＳ１０２）。所定容量以上のコンテンツデータを記憶している場合（ステップＳ１０２：Ｙｅｓ）には、制御部１１は処理を終了する。
【０１３１】
一方、所定容量以上のコンテンツデータを記憶していない場合（ステップＳ１０２：Ｎｏ）には、制御部１１はステップＳ９１に移行する。制御部１１は再びノードＩＤを生成して所定容量以上のコンテンツデータを記憶するまで、ステップＳ９１乃至ステップＳ１０２の処理を繰り返す。
【０１３２】
なお、「コンテンツ分散保存システムＳに参加後の処理」は、上述した実施形態における「３−２．コンテンツ分散保存システムＳに参加後の処理」と略同様である。異なる構成としては、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータをいくつ保存しているかについての問い合わせが、上述した実施形態における「３−２．コンテンツ分散保存システムＳに参加後の処理」では、アドレス情報に従い直接送信される構成であり、一方、変型例２における「コンテンツ分散保存システムＳに参加後の処理」では、ＤＨＴルーティングによるメッセージとしてノードＮｎ間を転送されて送信される構成である。
【０１３３】
その他の処理は上述した実施形態と同様であるため、説明は省略する。
【０１３４】
上記変型例２では、ノードＩＤを生成して取得したが、ルーティングテーブルに登録されているノードＩＤを取得してもよい。
【０１３５】
ルーティングテーブルに登録されているノードＩＤを取得する場合には、ルーティングテーブルには通常複数のノードＩＤが登録されている。従って、ルーティングテーブルの端から順にノードＩＤを取得して、各ノードＩＤを含む問い合わせメッセージが辿り着く先の各ノードＮｎを順に取得要求先ノードＮｎとすればよい。
【０１３６】
なお、問い合わせメッセージを転送する中継ノードを取得要求先ノードＮｎとしてもよい。
【０１３７】
図１０は、新規参入ノードＮ２５が、問い合わせメッセージの中継ノードからコンテンツデータを取得する様子を示す説明図である。
【０１３８】
新規ノードＮｎは、ＤＨＴを用いたルーティングによりノードＩＤをキーとする問い合わせメッセージをノードＮ１に送信する。送信されたメッセージは、ノードＮ２を中継ノードとしてノードＮ３に辿り着く（図１０実線参照）。
【０１３９】
そして、当該メッセージが送信（転送）されたノードＮ１〜Ｎ３は、当該メッセージに含まれる新規参入ノードＮ２５のアドレス情報に基づいて新規参入ノードＮ２５にコンテンツデータを送信する（図１０点線参照）。
【０１４０】
この構成をとる場合、自己のノードＩＤを記憶部１２から取得して、自己のノードＩＤをキーとする問い合わせメッセージを送信し、問い合わせメッセージを転送する中継ノードのみを取得要求先ノードＮｎとすることも可能である。
【０１４１】
更に、メッセージが辿り着いた先のノードＮｎ（及び中継ノード）が知っているノードＮｎ（例えば、メッセージが辿り着いた先のノードＮｎ（及び中継ノード）が保持するルーティングテーブルに登録されたアドレス情報に係るノードＮｎ）を取得要求先ノードＮｎとしてもよい。
【０１４２】
更に、ルーティングテーブルには通常複数のアドレス情報が登録されていることから、当該辿り着いた先のノードＮｎ（及び中継ノード）のルーティングテーブルに基づいて複数のノードＮｎを取得要求先ノードＮｎとしてもよい。
【０１４３】
ところで、ルーティングテーブルには、ノードＩＤ及びアドレス情報のみならず、コンテンツ分散保存システムＳへ参加した日時の情報（参加日時情報）が登録されている場合がある。この場合には、参加日時情報が示すコンテンツ分散保存システムＳへ参加した日時に基づいて、取得要求先ノードＮｎが決定されるよう構成してもよい。
【０１４４】
例えば、コンテンツ分散保存システムＳへ参加した日時が最近ノードＮｎよりも、昔から（参加した日時が古い）ノードＮｎのほうが、コンテンツデータを多数保持していると推定される。そのため、参加した日時が古いノードＮｎから順に取得要求先ノードＮｎとして決定することができる。
【０１４５】
また、記憶部１２に記憶するコンテンツデータのデータ量が多量となり、コンテンツデータを削除する必要がある場合がある。例えば、ノードＮｎの制御部１１が、記憶部１２に記憶するコンテンツデータが規定量以上となったか否かを判定し、規定量以上となったときに、評価値がより低いコンテンツのコンテンツデータから順に削除する削除機能を有する場合がある。
【０１４６】
各ノードＮｎの制御部１１が上記削除機能を有する場合には、参加した日時が新しいノードＮｎよりも、参加した日時が古いノードＮｎのほうが、記憶部１２に評価値が高いコンテンツデータを記憶している可能性が高いと推定される。
【０１４７】
従って、参加した日時が古いノードＮｎから順に取得要求先ノードＮｎとして決定すれば、新規参入ノードＮｎは参加当初からより一層評価値の高いコンテンツデータを保持することができる。
【０１４８】
また、ルーティングテーブルに、他のノードＮｎや管理サーバとの間で最後に情報（データ）の送受信を行なった時間（最終アクセス時間）の情報（アクセス時間情報）が登録されている場合には、当該アクセス時間情報が示す最終アクセス時間に基づいて、取得要求先ノードＮｎを順に決定してもよい。最終アクセス時間から現在まで経過時間が長いノードＮｎは、既にコンテンツ分散保存システムＳから離脱している可能性がある。従って、最終アクセス時間が最近のノードＮｎから順に取得要求先ノードＮｎとして決定すれば、コンテンツ分散保存システムＳに参加している可能性が高いノードＮｎを取得要求先ノードＮｎとするとすることができる。
【０１４９】
なお、上記コンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【符号の説明】
【０１５０】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者
６  ＦＴＴＨ回線業者
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク（Ｐ２Ｐネットワーク）
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｎｎ  ノード
【図１】
2010238160.tif 000003
【図２】
2010238160.tif 000004
【図３】
2010238160.tif 000005
【図４】
2010238160.tif 000006
【図５】
2010238160.tif 000007
【図６】
2010238160.tif 000008
【図７】
2010238160.tif 000009
【図８】
2010238160.tif 000010
【図９】
2010238160.tif 000011
【図１０】
2010238160.tif 000012