(57)【要約】      （修正有）【課題】コンテンツ分散保存システムにコンテンツデータを投入する際に、コンテンツ記録手段の空き記録容量が大きいノード装置に対して保存を指示するノード処理プログラム及び保存指示方法を提供する。【解決手段】ネットワークを介して互いに通信可能な複数のノード装置間でのコンテンツデータを利用可能とするため複数のコンテンツデータを複数のノード装置に分散して保存させたコンテンツ分散保存システムにおいて、要求する処理内容と、ノード装置識別情報と、コンテンツデータを保存するためのコンテンツ記録手段の空き記録容量を特定するための情報を含むメッセージを生成して送信し、他のノード装置から受信したメッセージに含まれる装置識別情報と空き記録容量の情報とを対応させたノード情報を記憶し、記憶されたノード情報に基づいて、空き記録容量がより大きいと推定される第１所定数の前記ノード装置に対してコンテンツデータの保存を指示する。【選択図】図１２
2010066859.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置間で複数のコンテンツデータを利用可能とするため当該複数のコンテンツデータを複数のノード装置に分散して保存させたコンテンツ分散保存システムにおける前記ノード装置であって、
要求する処理内容と、送信元ノード装置のノード装置識別情報と、前記コンテンツデータを保存するためのコンテンツ記録手段の空き記録容量を特定するための情報を含むメッセージを生成するメッセージ生成手段と、
前記メッセージ生成手段により生成されたメッセージを送信するメッセージ送信手段と、
他のノード装置の前記メッセージ送信手段により送信されたメッセージを受信するメッセージ受信手段と、
前記メッセージ受信手段により受信したメッセージに含まれる前記ノード装置識別情報と前記空き記録容量を特定するための情報とを対応させたノード情報を記憶するノード情報記憶手段と、
前記ノード情報記憶手段に記憶されたノード情報に基づいて、前記空き記録容量がより大きいと推定される第１所定数の前記ノード装置を選択する選択手段と、
選択されたノード装置に対して前記コンテンツデータの保存を指示する保存指示情報を送出する保存指示手段と、
を有することを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置であって、
前記選択手段と前記保存指示手段は、前記コンテンツデータが前記複数のノード装置間で利用可能となる公開日時まで、前記第１所定数のノード装置の選択と、当該選択されたノード装置に対する前記保存指示情報の送出を繰り返し行なうことを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置であって、
前記ノード情報を、前記選択手段にて既に選択されたノード装置のノード情報を除くように前記ノード情報記憶手段を更新する更新手段を有し、
前記選択手段は、前記更新手段にて更新された前記ノード情報記憶手段のノード情報から前記第１所定数のノード装置を選択することを特徴とするノード装置。
【請求項４】
請求項２又は請求項３に記載のノード装置であって、
前記ノード情報に基づく前記第１所定数のノード装置の選択が可能か否かを判定する判定手段を有し、
前記判定手段により選択可能であると判定された場合には、前記選択手段は、前記第１所定数のノード装置を選択し、
前記判定手段により選択不可能であると判定された場合には、前記ノード装置識別情報を前記第１所定数生成する識別情報生成手段を有し、前記保存指示手段は、生成されたノード装置識別情報にて特定されるノード装置に対して、前記保存指示情報を送出することを特徴とするノード装置。
【請求項５】
請求項２乃至請求項４のいずれか一項に記載のノード装置であって、
前記保存指示手段は、前記保存指示情報に、前記コンテンツデータの前記公開日時を示す公開日時情報を付加することを特徴とするノード装置。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載のノード装置であって、
前記メッセージ生成手段は、
前記空き記録容量を特定するための情報として、各前記ノード装置の前記コンテンツ記録手段の空き記録容量を示す情報、又は、各前記ノード装置の総稼働時間を示す情報、又は、各前記ノード装置が過去に前記コンテンツデータを取得した回数を示す情報、又は、各前記ノード装置が取得した前記コンテンツデータを再生した回数を示す情報又は、各前記ノード装置が過去に受信した保存指示情報の回数を示す情報、又は、各前記ノード装置が前記コンテンツデータを前記複数のノード装置に利用可能とした回数を示す情報、
の少なくとも何れか一つの情報を含むメッセージを生成することを特徴とするノード装置。
【請求項７】
請求項１乃至請求項６に記載のノード装置であって、
メッセージ送信のために、他のノード装置のアドレス情報と前記ノード装置識別情報とを対応させて記憶するルーティングテーブルを前記ノード情報記憶手段として、前記空き記録容量を特定するための情報を付加して記憶することを特徴とするノード装置。
【請求項８】
請求項１乃至７のいずれか一項に記載のノード装置において、
前記コンテンツデータを保存している他のノード装置のアドレス情報と当該コンテンツのコンテンツ識別情報の組を含むインデックス情報を記憶するインデックス情報記憶手段を前記ノード情報記憶手段として、前記空き記録容量を特定するための情報を付加して記憶することを特徴とするノード装置。
【請求項９】
コンピュータを、請求項１乃至８のいずれか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項１０】
ネットワークを介して互いに通信可能な複数のノード装置間で複数のコンテンツデータを利用可能とするため当該複数のコンテンツデータを複数のノード装置に分散して保存させたコンテンツ分散保存システムにおける保存指示方法であって、
前記ノード装置が、要求する処理内容と、送信元ノード装置のノード装置識別情報と、前記コンテンツデータを保存するためのコンテンツ記録手段の空き記録容量を特定するための情報を含むメッセージを生成する工程と、
前記ノード装置が、生成されたメッセージを送信する工程と、
前記ノード装置が、他のノード装置によって生成された前記メッセージを受信する工程と、
前記ノード装置が、受信したメッセージに含まれる前記ノード装置識別情報と前記空き記録容量を特定するための情報とを対応させたノード情報とをノード情報記憶手段に対応付けて記憶する工程と、
前記ノード装置が、前記ノード情報記憶手段に記憶されたノード情報に基づいて、前記空き記録容量がより大きいと推定される第１所定数の前記ノード装置を選択する工程と、
前記ノード装置が、選択されたノード装置に対して前記コンテンツデータの保存を指示する保存指示情報を送出する工程と、
を有することを特徴とする保存指示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムにおいて、複数のコンテンツデータ（映画及び音楽等のコンテンツのデータ）の複製データ（以下、「レプリカ」という）を複数のノード装置に分散して保存（配置）させ、各ノード装置間でレプリカを利用可能としたコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。
【０００３】
このようなコンテンツ分散保存システムにおいて、コンテンツ配信サービスを行なう場合、人気のあるコンテンツのレプリカはアクセスが集中するため、人気に応じた数のレプリカを複数のノード装置に分散保存することが望ましい。特許文献１には、各ノード装置は、新たに該システムに投入されるコンテンツのレプリカを他のノード装置に利用可能とする前に（公開前に）、当該公開前のコンテンツの評価値（当該コンテンツのレプリカの配信元で決定）と、既に保存済みのコンテンツのレプリカの評価値とを比較して、公開前のコンテンツの評価値が大きいときは保存する一方、小さいときには保存しないようになっている。
【０００４】
このように、システム内のノード装置に公開前の新規コンテンツのレプリカを保存させる際、保存先のノード装置の選択方法として、システム内のノード装置をランダムに選択したり、或いは、コンテンツ視聴予約期間を設け、当該期間中に視聴予約をしたノード装置に対してコンテンツのレプリカを保存させる等といった手法がとられている。例えば、特許文献２には、システム内に公開前の新規コンテンツのレプリカを投入する際、当該コンテンツの購入予約をしていたノード装置に対して、当該新規コンテンツのレプリカを保存させる保存指示装置等が開示されている。
【特許文献１】特開２００７−０３４６３０号公報
【特許文献２】特開２００８−０２０９３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、各ノード装置のコンテンツのレプリカが記録される記憶部の空き記録容量について考慮していないので、あるノード装置はハードディスク等の記憶部に全くコンテンツのレプリカを記録していないのに、別のあるノード装置の記憶部は殆ど使用されていて空き記録容量がないという状態がおこる。
【０００６】
このため、記憶部の空き記録容量が、新たなコンテンツのレプリカの容量分に満たないノード装置に対して、新たなコンテンツのレプリカの保存が指示されると、当該ノード装置は、記憶部から何れかのレプリカを削除して、新しいレプリカの記録場所を確保して、新しいレプリカを記録するという状況が発生する。
【０００７】
本発明は、以上の問題等に鑑みてなされたものであり、コンテンツ分散保存システムにコンテンツデータ（レプリカ）を投入する際に、コンテンツ分散保存システムに参加する各ノード装置の記憶部等のコンテンツ記録手段の空き記録容量を特定するための情報に基づいて、空き記録容量が比較的多いと推定されるノード装置を選択し、選択したノード装置に対して保存指示情報を送出してコンテンツデータを保存させるノード装置、ノード処理プログラム、保存指示方法を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で複数のコンテンツデータを利用可能とするため当該複数のコンテンツデータを複数のノード装置に分散して保存させたコンテンツ分散保存システムにおける前記ノード装置であって、要求する処理内容と、送信元ノード装置のノード装置識別情報と、前記コンテンツデータを保存するためのコンテンツ記録手段の空き記録容量を特定するための情報を含むメッセージを生成するメッセージ生成手段と、前記メッセージ生成手段により生成されたメッセージを送信するメッセージ送信手段と、他のノード装置の前記メッセージ送信手段により送信されたメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段により受信したメッセージに含まれる前記ノード装置識別情報と前記空き記録容量を特定するための情報とを対応させたノード情報を記憶するノード情報記憶手段と、前記ノード情報記憶手段に記憶されたノード情報に基づいて、前記空き記録容量がより大きいと推定される第１所定数の前記ノード装置を選択する選択手段と、選択されたノード装置に対して前記コンテンツデータの保存を指示する保存指示情報を送出する保存指示手段と、を有することを特徴とするノード装置である。
【０００９】
この発明によれば、コンテンツ分散保存システムにコンテンツデータを投入する際に、前記空き記録容量がより大きいと推定されるノード装置に対してコンテンツの保存を指示することが可能になり、各ノード装置のコンテンツデータを記録するためのコンテンツ記録手段の記録容量をバランスよく有効に利用することができるコンテンツ分散保存システムを実現することができる。また、種々の処理（参加、パブリッシュ等）を要求するための各種メッセージに、空き記録容量を特定するための情報を含んで送信するよう構成したので、他のノード装置の空き記録容量を特定するための情報を容易に取得することができる。
【００１０】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載のノード装置であって、前記選択手段と前記保存指示手段は、前記コンテンツデータが前記複数のノード装置間で利用可能となる公開日時まで、前記第１所定数のノード装置の選択と、当該選択されたノード装置に対する前記保存指示情報の送出を繰り返し行なうことを特徴とするノード装置である。
【００１１】
この発明によれば、コンテンツの公開日時までコンテンツ分散保存システムに参加するノード装置に対してコンテンツデータの事前配布を行なうことができる。
【００１２】
上記課題を解決するために、請求項３に記載の発明は、請求項２に記載のノード装置であって、前記ノード情報を、前記選択手段にて既に選択されたノード装置のノード情報を除くように前記ノード情報記憶手段を更新する更新手段を有し、前記選択手段は、前記更新手段にて更新された前記ノード情報記憶手段のノード情報から前記第１所定数のノード装置を選択することを特徴とするノード装置である。
【００１３】
この発明によれば、同じノード装置に対して重複してコンテンツデータの保存を指示することを防ぐことができる。
【００１４】
上記課題を解決するために、請求項４に記載の発明は、請求項２又は請求項３に記載のノード装置であって、前記ノード情報に基づく前記第１所定数のノード装置の選択が可能か否かを判定する判定手段を有し、前記判定手段により選択可能であると判定された場合には、前記選択手段は、前記第１所定数のノード装置を選択し、前記判定手段により選択不可能であると判定された場合には、前記ノード装置識別情報を前記第１所定数生成する識別情報生成手段を有し、前記保存指示手段は、生成されたノード装置識別情報にて特定されるノード装置に対して、前記保存指示情報を送出することを特徴とするノード装置である。
【００１５】
この発明によれば、第１所定数のノード装置の選択ができない場合には、ノードＩＤ等のノード装置識別情報を生成して当該ノード装置識別情報に基づいて、当該ノード装置識別情報にて特定されるノード装置に向けてコンテンツデータの保存を指示する保存指示情報を送出することができるので、ノード情報記憶手段に記憶したノード情報の中から第１所定数のノード装置が選択できない場合であっても、ノードＩＤ等のノード装置識別情報を生成し当該ノードＩＤに従って他のノード装置に対して確実にコンテンツデータの保存を指示することができる。
【００１６】
上記課題を解決するために、請求項５に記載の発明は、請求項２乃至請求項４のいずれか一項に記載のノード装置であって、前記保存指示手段は、前記保存指示情報に、前記コンテンツデータの前記公開日時を示す公開日時情報を付加することを特徴とするノード装置である。
【００１７】
この発明によれば、コンテンツデータの保存指示を受けたノード装置は、コンテンツデータの公開日時を容易に取得して把握することができる。
【００１８】
上記課題を解決するために、請求項６に記載の発明は、請求項１乃至請求項５のいずれか一項に記載のノード装置であって、前記メッセージ生成手段は、前記空き記録容量を特定するための情報として、各前記ノード装置の前記コンテンツ記録手段の空き記録容量を示す情報、又は、各前記ノード装置の総稼働時間を示す情報、又は、各前記ノード装置が過去に前記コンテンツデータを取得した回数（ダウンロード回数）を示す情報、又は、各前記ノード装置が取得した前記コンテンツデータを再生した回数（視聴回数）を示す情報又は、各前記ノード装置が過去に受信した保存指示情報の回数（事前配布回数）を示す情報、又は、各前記ノード装置が前記コンテンツデータを前記複数のノード装置に利用可能とした回数（公開回数）を示す情報、の少なくとも何れか一つの情報を含むメッセージを生成することを特徴とするノード装置である。
【００１９】
この発明によれば、コンテンツ記録手段の空き記録容量を特定するための情報として、ノード装置のコンテンツ記録手段の空き記録容量、ノード装置の総稼働時間、ダウンロード回数、視聴回数、事前配布及び回数公開回数の少なくとも何れかを利用して、比較的容易にコンテンツ記録手段の空き記録容量を把握し管理することができる。
【００２０】
上記課題を解決するために、請求項７に記載の発明は、請求項１乃至請求項６に記載のノード装置であって、メッセージ送信のために、他のノード装置のアドレス情報と前記ノード装置識別情報とを対応させて記憶するルーティングテーブルを前記ノード情報記憶手段として、前記空き記録容量を特定するための情報を付加して記憶することを特徴とするノード装置である。
【００２１】
この発明によれば、メッセージの送信のために利用されるルーティングテーブルに他のノード装置の空き記録容量を特定するための情報を対応付けて記憶しておくことができ、比較的簡便な構成で他のノード装置のコンテンツ記録手段の空き記録容量を把握、管理することができる。
【００２２】
上記課題を解決するために、請求項８に記載の発明は、請求項１乃至７のいずれか一項に記載のノード装置において、前記コンテンツデータを保存している他のノード装置のアドレス情報と当該コンテンツのコンテンツ識別情報の組を含むインデックス情報を記憶するインデックス情報記憶手段を前記ノード情報記憶手段として、前記空き記録容量を特定するための情報を付加して記憶することを特徴とするノード装置である。
【００２３】
この発明によれば、コンテンツデータを保存している他のノード装置の情報を記憶するインデックス情報記憶手段に、他のノード装置の空き記録容量を特定するための情報を対応付けて記憶しておくことができ、比較的簡便な構成で他のノード装置のコンテンツ記録手段の空き記録容量を把握、管理することができる。
【００２４】
上記課題を解決するために、請求項９に記載の発明は、コンピュータを、請求項１乃至８の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラムである。
【００２５】
上記課題を解決するために、請求項１０に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で複数のコンテンツデータを利用可能とするため当該複数のコンテンツデータを複数のノード装置に分散して保存させたコンテンツ分散保存システムにおける保存指示方法であって、前記ノード装置が、要求する処理内容と、送信元ノード装置のノード装置識別情報と、前記コンテンツデータを保存するためのコンテンツ記録手段の空き記録容量を特定するための情報を含むメッセージを生成する工程と、前記ノード装置が、生成されたメッセージを送信する工程と、前記ノード装置が、他のノード装置によって生成された前記メッセージを受信する工程と、前記ノード装置が、受信したメッセージに含まれる前記ノード装置識別情報と前記空き記録容量を特定するための情報とを対応させたノード情報とをノード情報記憶手段に対応付けて記憶する工程と、前記ノード装置が、前記ノード情報記憶手段に記憶されたノード情報に基づいて、前記空き記録容量がより大きいと推定される第１所定数の前記ノード装置を選択する工程と、前記ノード装置が、選択されたノード装置に対して前記コンテンツデータの保存を指示する保存指示情報を送出する工程と、を有することを特徴とする保存指示方法である。
【発明の効果】
【００２６】
本発明によれば、コンテンツ分散保存システムにコンテンツデータを投入する際に、コンテンツ分散保存システムに参加する各ノード装置のコンテンツ記録手段の空き記録容量を特定するための情報に基づいて、空き記録容量が比較的多いと推定されるノード装置に対してコンテンツデータの保存を指示することが可能になり、各ノード装置のコンテンツデータを記録するためのコンテンツ記録手段の記録容量をバランスよく有効に利用することができるコンテンツ分散保存システムを実現することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の最良の実施形態を図面に基づいて説明する。
【００２８】
［１．コンテンツ分散保存システムの構成等］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
【００２９】
図１は、本実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００３０】
図１の下部枠１０１内に示すように、ＩＸ（Internet eXchange）３、ＩＳＰ（Internet Service Provider）４ａ、４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ、５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワーク）８が構築されている。なお、図１の例におけるネットワーク８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３１】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）がルータを介して接続されている。また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
【００３２】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するＰ２Ｐネットワーク（オーバーレイネットワーク、論理的なネットワーク）９である。かかるＰ２Ｐネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。
【００３３】
そして、コンテンツ分散保存システムＳ（言い換えれば、Ｐ２Ｐネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。また、当該ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００３４】
更に、コンテンツ分散保存システムＳは、新しいコンテンツデータ（コンテンツの複製データであって、以下、「レプリカ」と言う）をコンテンツ分散保存システムＳ内に投入するコンテンツ投入サーバＣＳを備える。
【００３５】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎ（例えば、当該システムＳに常時参加しているコンタクトノード）に対して参加要求を示す参加（ＪＯＩＮ）メッセージを送信することによって行われる。
【００３６】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブル（送信先テーブルの一例、以下、「ＤＨＴルーティングテーブル」という）を保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先候補（送信先候補）先を規定しており、具体的には、ＩＤ空間内で適度に離れたノードＮｎの「ノードＩＤ」、「ＩＰアドレス及びポート番号」、及びレプリカを記録し保存（格納）するためのコンテンツ記録手段の一例であるＨＤ（Hard Disk）等によって構成される記憶部の「空き記録容量」を含むノード情報が複数登録されている。
【００３７】
なお、「ＩＰアドレス及びポート番号」は、アドレス情報の一例であり、「空き記録容量」は、記憶部の“空き記録容量を特定するための情報”の一例である。この記憶部の“空き記録容量を特定するための情報”は、ノードＮｎの記憶部の空き記録容量を特定できる情報であれば、記憶部の空き記録容量そのもののほか、例えば、ノードＮｎの装置としての総稼働時間を示す情報、又は、ノードＮｎが過去にレプリカを取得した回数（ダウンロード回数）を示す情報、又は、ノードＮｎが取得したレプリカを再生した回数（視聴回数）を示す情報又は、ノードＮｎが過去に他のノードＮｎ又はコンテンツ投入サーバＣＳから受けた保存指示の回数（事前配布回数）を示す情報、又は、ノードＮｎがレプリカを他のノードＮｎに利用可能とした回数（公開回数）を示す情報・・・・等でもよい。上述した総稼働時間は少ないほうが記憶部の空き記録容量が大きいと特定でき、ダウンロード回数、視聴回数・・・等の回数はいずれも少ないほうが記憶部の空き記録容量が大きいものと特定することができる。
【００３８】
コンテンツ分散保存システムＳに参加している１台のノードＮｎは、該システムＳに参加している全てのノードＮｎのうち、必要最低限のノードＮｎ（つまり、該システムＳに参加している全ノードＮｎの数より少ない数のノードＮｎ）のノード情報をルーティングテーブルに登録しておき、ノード情報を知らない（記憶していない）ノードＮｎについては、各ノードＮｎ間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【００３９】
本実施形態では、種々の処理を要求するためのメッセージを発行した発行元（送信元の一例）のノードＮｎの空き記録容量を含むノード情報や、自己に転送してきた転送元（送信元の一例）のノードＮｎの空き記録容量を含むノード情報を、各種メッセージに含むことにより、メッセージを受信した各ノードＮｎが保持するルーティングテーブル及びインデックスキャッシュの登録及び更新がされるよう構成する。そして、各ノードＮｎが他のノードＮｎにコンテンツのレプリカの保存を指示する際には、ルーティングテーブル及びインデックスキャッシュに基づいて空き記録容量の大きいノードＮｎを抽出した保存先候補リストを生成し、当該リストから選択したノードＮｎに対してレプリカの保存を指示するよう構成する。
【００４０】
以下、コンテンツ分散保存システムＳにおける各ノードＮｎの機能の説明と併せて、各ノードＮｎが保持する「ルーティングテーブル」、「インデックスキャッシュ」について詳細に説明する。次いで、ノードＮｎがコンテンツのレプリカの保存指示を行なう際に、ルーティングテーブル及びインデックスキャッシュに基づいて生成する「保存先候補リスト」について詳細に説明する。
【００４１】
［１−１．ルーティングテーブル］
ここで、図２及び図３を参照して、ＤＨＴルーティングテーブルについて詳しく説明する。
【００４２】
図２は、ノードＮ２が保持するＤＨＴルーティングテーブルの一例を示す図であり、図３は、ＤＨＴのＩＤ空間の一例を示す概念図である。
【００４３】
なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとし、各桁を４進数（０〜３の整数）で表している（実際には、もっと長いｂｉｔ長を用い、各桁も例えば４ｂｉｔに区切って０〜ｆの１６進数で表現する）。
【００４４】
図２の例において、ＤＨＴルーティングテーブルは、レベル１（一段目）〜レベル３（三段目）の複数段のテーブルからなり、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードＩＤとこれに対応するノードＮｎのＩＰアドレス及びポート番号及び当該ノードＮｎの記憶部の空き記録容量が対応付けられて登録されている。
【００４５】
つまり、各ノードＮｎのノード情報は、複数段に区別して登録されており、最上位段をレベル１として、当該レベル１より下位の段であるレベル２、レベル３が続くことになる（レベル２はレベル３の上位の段ということになる）。
【００４６】
各レベルのテーブルにおける各エリアは、ＤＨＴのノードＩＤ空間を分割することにより得られるエリアである。例えば、図３に示すように、レベル１では、ＤＨＴのＩＤ空間全体が４分割され、“０００”〜“０３３”のノードＩＤが存在するエリアを０ＸＸのエリア、“１００”〜“１３３”のノードＩＤが存在するエリアを１ＸＸのエリア、“２００”〜“２３３” のノードＩＤが存在するエリアを２ＸＸのエリア、“３００”〜“３３３” のノードＩＤが存在するエリアを３ＸＸのエリアとする。また、レベル２では、レベル１のエリア（つまり、０ＸＸ〜３ＸＸのエリア）が更に４分割、例えば１ＸＸのエリアが４分割され、“１００”〜“１０３”のノードＩＤが存在するエリアを１０Ｘのエリア、“１１０”〜“１１３” のノードＩＤが存在するエリアを１１Ｘのエリア、“１２０”〜“１２３” のノードＩＤが存在するエリアを１２Ｘのエリア、“１３０”〜“１３３” のノードＩＤが存在するエリアを１３Ｘのエリアとする。
【００４７】
そして、例えば、ノードＮ２のノードＩＤが“１２２”とすると、図２に示すように、かかるノードＮ２のレベル１における１ＸＸのエリア（自己（つまり、自ノード）が存在するエリア）のテーブルには、自己のノードＩＤ、ＩＰアドレス及び記憶部の空き記録容量（ＩＰアドレス及び空き記録容量は自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、０ＸＸのエリア、２ＸＸのエリア、及び３ＸＸのエリア）には、夫々、他の任意のノードＮｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００４８】
また、かかるノードＮ２のレベル２における１２Ｘのエリア（自己が存在するエリア）のテーブルには、図２に示すように、ノードＩＤ、ＩＰアドレス及び記憶部の空き記録容量（ＩＰアドレス及び空き記録容量は自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、１０Ｘのエリア、１１Ｘのエリア、及び１３Ｘのエリア）等には、夫々、他の任意のノードＮｎのノードＩＤ、ＩＰアドレス及び記憶部の空き記録容量等が登録されている。
【００４９】
更に、かかるノードＮ２のレベル３には、図２に示すように、ノードＩＤが“１２０”〜“１２２”のノードＩＤ、ＩＰアドレス及び記憶部の空き記録容量（ＩＰアドレス及び空き記録容量は自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録されている。
【００５０】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔとしたので、レベル１〜３の３レベル分のテーブルで網羅できるが、ノードＩＤのｂｉｔ長が増せば、その分のテーブルが必要となる（例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる）。
【００５１】
このように、本実施形態におけるＤＨＴルーティングテーブルでは、レベルの数値が大きくなるほど、言い換えれば、下位の段にいくほど、エリアが狭まっていくようになっている。
【００５２】
そして、このようなＤＨＴルーティングテーブルは、例えば、未参加のノードがコンテンツ分散保存システムＳに参加する際に生成される。
【００５３】
ここで、図４を参照して、コンテンツ分散保存システムＳへの参加時におけるＤＨＴルーティングテーブルの生成手順について詳しく説明する。
【００５４】
図４は、コンテンツ分散保存システムＳへの参加時におけるＤＨＴルーティングテーブルの生成手順の一例を示す概念図である。
【００５５】
ここで、図４を参照して、コンテンツ分散保存システムＳへの参加時におけるＤＨＴルーティングテーブルの生成手順について詳しく説明する。
【００５６】
図４は、コンテンツ分散保存システムＳへの参加時におけるＤＨＴルーティングテーブルの生成手順の一例を示す概念図である。
【００５７】
図４に示すように、未参加のノードＮ８（例えば、ノードＩＤを“１２３”とする）がコンテンツ分散保存システムＳに参加する場合、例えば、コンタクトノードのＩＰアドレスを用いて当該コンタクトノードにネットワーク８を介して接続し当該コンタクトノードに対して参加（ＪＯＩＮ）メッセージ（ノードＮ８のノード情報を含む）を送信する。当該参加メッセージを受信したコンタクトノードは、自己のＤＨＴルーティングテーブルにおけるレベル１のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードＮ８に対して返信する。更に、コンタクトノードは、受信された参加メッセージに含まれるノードＩＤと、ＤＨＴルーティングテーブルに登録された他のノードＮｎのノードＩＤとの比較結果に基づいてＤＨＴルーティングテーブルから一つのノードＮｎを選定する。例えば、参加メッセージに含まれるノードＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮ３５が、ＤＨＴルーティングテーブルから選定され、当該ノードＮ３５に上記参加メッセージが転送される。このとき、当該参加メッセージには、次に返信させるべきテーブルの段数（ここでは、レベル２）を示す情報が含められる。
【００５８】
次に当該参加メッセージを受信したノードＮ３５は、自己のＤＨＴルーティングテーブルにおけるレベル２のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードＮ８に対して返信する。更に、ノードＮ３５は、受信された参加メッセージに含まれるノードＩＤと、ＤＨＴルーティングテーブルに登録された他のノードＮｎのノードＩＤとの比較結果に基づいてＤＨＴルーティングテーブルから一つのノードＮｎを選定する。例えば、参加メッセージに含まれるノードＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮ２が、ＤＨＴルーティングテーブルから選定され、当該ノードＮ２に上記参加メッセージが転送される。このとき、当該参加メッセージには、次に返信させるべきテーブルの段数（ここでは、レベル３）を示す情報が含められる。
【００５９】
次に当該参加メッセージを受信したノードＮ２は、自己のＤＨＴルーティングテーブルにおけるレベル３のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードＮ８に対して返信する。
【００６０】
以上のようにして参加メッセージは、ノードＩＤをキーとするＤＨＴルーティングにより、未参加のノードＮ８のノードＩＤに一番近いノードＩＤを有するノードＮｎまで転送される。
【００６１】
そして、ノードＮ８は、各ノードＮｎから受信した返信メッセージに含まれるノード情報等を用いて自己のＤＨＴルーティングテーブルを生成する。当該ＤＨＴルーティングテーブルを生成においては、例えば、コンタクトノードから受信されたノード情報が自己のＤＨＴルーティングテーブルのテーブル１に登録され、ノードＮ３５から受信されたノード情報が自己のＤＨＴルーティングテーブルのテーブル２に登録され、ノードＮ２から受信されたノード情報が自己のＤＨＴルーティングテーブルのテーブル３に登録される。
【００６２】
こうして、ノードＮ８は、コンテンツ分散保存システムＳへの参加が完了することになる。
【００６３】
本実施形態では、上述したような参加メッセージや、後述するクエリ等の各種メッセージに、メッセージの転送元のノードＮｎのノード情報を含むことにより、ルーティングテーブルの登録及び更新が行われるよう構成する。
【００６４】
図５は各ノードＮｎ間を転送するメッセージの様子を示す概念図であり、同図はノードＮ８からの参加メッセージがノードＮ３１、ノードＮ３５、ノードＮ２間を転送する様子を示す。
【００６５】
各ノードＮｎ間を転送するメッセージには、当該メッセージを発行した発行元のノードＮｎのノードＩＤと、メッセージの内容（参加、パブリッシュ、クエリ等）と、当該メッセージを自己に転送してきた転送元のノードＮｎのノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量等）を含んで構成されている。なお、“メッセージの内容”は、参加メッセージの場合には、テーブルの登録情報の返信を要求する旨の情報等が含まれており、また、パブリッシュ（登録）メッセージ又はクエリであれば、パブリッシュ（登録）やクエリ（要求）の対象となるコンテンツのコンテンツＩＤ等が含まれている。
【００６６】
同図に示す例の場合、コンタクトノードであるノードＮ３１から参加メッセージを受信したノードＮ３５は、参加メッセージに含まれる転送元のノードＮ３１のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のルーティングテーブルに登録する。このとき、ルーティングテーブルにノードＮ３１のノード情報が既に登録されている場合（ノードＮ３１のノードＩＤが登録されている場合）には、登録済みのＩＰアドレス及びポート番号、記憶部の空き記録容量を、受信したノード情報に基づいて更新する。
【００６７】
同様に、ノードＮ３５から参加メッセージを受信したノードＮ２は、参加メッセージに含まれる転送元のノードＮ３５のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のルーティングテーブルに登録、或いは更新する。
【００６８】
以上の手順に従い、ルーティングテーブルにノード情報を登録（更新）するので、ルーティングテーブルに登録されているノードＮｎの記憶部の空き記録容量（及びＩＰアドレス等）を常に最新の状態に保つことができるようになっている。
【００６９】
［１−２．インデックスキャッシュ］
ところで、コンテンツ分散保存システムＳにおいては、内容の異なる様々なコンテンツ（例えば、映画や音楽等）のレプリカが所定のファイル形式で複数のノードＮｎに分散して保存（格納）されており、各ノードＮｎ間で当該レプリカを授受可能になっている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のコンテンツのレプリカが保存されており、一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツのレプリカが保存されるというように、複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散されて保存されている。
【００７０】
また、これらのコンテンツのレプリカには、夫々、コンテンツ名（タイトル）、及びコンテンツＩＤ（コンテンツ毎に固有のコンテンツ識別情報）等の情報が付与されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値（或いは、コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、コンテンツ名とそのコンテンツＩＤの対応が書かれたコンテンツカタログリストが、全ノードＮｎに配布される。
【００７１】
また、このように分散保存されているレプリカの所在、つまり、当該レプリカを保存したノードＮｎのノード情報と当該コンテンツのレプリカに対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該コンテンツのレプリカの所在を管理しているノードＮｎ（以下、「ルートノード」、又は「コンテンツデータ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００７２】
つまり、コンテンツのレプリカを保存しているコンテンツ保持ノードのノード情報は、他のノードＮｎからの問い合わせに応じて提供可能なようにルートノードにより管理されている。
【００７３】
例えば、タイトルがＸＸＸの映画のコンテンツのレプリカについてのインデックス情報（コンテンツＩＤとコンテンツ保持ノードのノード情報）は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理され、タイトルがＹＹＹの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎであるように定められる。
【００７４】
図６は、ノードＮ２が保持する本発明のインデックス情報記憶手段としてのインデックスキャッシュの一例を示す図である。
【００７５】
ノードＮ２は、コンテンツ１、コンテンツ２、コンテンツ３・・・・を保存しているノード（コンテンツ保持ノード、コンテンツ事前保持ノード）のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を登録し管理している、コンテンツ１〜３のルートノードである。
【００７６】
ノードＮ２は、コンテンツ１〜３を保存しているノードＮｎから後述するパブリッシュ（登録）メッセージを受信すると、当該メッセージに含まれるコンテンツＩＤ、ノード情報をインデックス情報としてインデックスキャッシュに登録する。
【００７７】
そして、あるノードＮｎのユーザが、所望するコンテンツのレプリカを取得したい場合、当該レプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、当該ユーザにより例えばコンテンツカタログリストから選択されたコンテンツのコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴルーティングテーブルにしたがって他のノードＮｎに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ（検索）メッセージを、ルートノードに向けて（ルートノード宛に）送出する（つまり、ルートノードにコンテンツのレプリカの所在を問い合わせる）。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００７８】
なお、このＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００７９】
なお、各ノードＮｎにおいてユーザにより選択されるべきコンテンツのコンテンツ名、コンテンツＩＤ、公開日時等の属性情報は、コンテンツカタログリストに記述されている。また、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【００８０】
上記コンテンツ所在問合せ（検索）メッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。こうしてインデックス情報を取得したユーザノードは、当該インデックス情報に含まれるあるコンテンツ保持ノードのＩＰアドレス等に基づいて当該コンテンツ保持ノードに接続して、コンテンツ送信要求メッセージを送信し、そこからコンテンツのレプリカを取得（ダウンロード）する。
【００８１】
なお、ルートノードは、当該インデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカを取得することもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしているキャッシュノードから当該インデックス情報を取得することもできる。
【００８２】
そして、コンテンツ保持ノードから取得したコンテンツのレプリカを保存（例えば、ハードディスク等の記憶部に記録）したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために（言い換えれば、該システムＳに参加している他のノードＮｎに対して公開するために）、当該レプリカのコンテンツＩＤ及び自己のノード情報（発行元ノード情報）（ノードＩＤ、ＩＰアドレス及びポート番号、空き記録容量）が含まれるパブリッシュ（登録）メッセージを生成し（メッセージ生成手段）、該パブリッシュメッセージを、そのルートノードに向けて（ルートノード宛に）送出する（メッセージ送信手段）。
【００８３】
これにより、パブリッシュメッセージは、コンテンツ所在問合せ（検索）メッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、該ルートノードは、受信したパブリッシュメッセージに含まれる発行元のノード情報及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュに記憶）することになる。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
【００８４】
なお、上記パブリッシュメッセージに含まれる発行元のノード情報、メッセージの内容（コンテンツＩＤ）の組であるインデックス情報は、ルートノードに至るまでの転送経路におけるキャッシュノードにおいても登録（キャッシュ）される。
【００８５】
図７は各ノードＮｎ間を転送するパブリッシュメッセージの様子を示す概念図であり、同図は任意のコンテンツのレプリカを保存したノードＮ１からのパブリッシュメッセージがノードＮ７、ノードＮ２９、ノードＮ２間を転送する様子を示す。
【００８６】
パブリッシュメッセージには、当該パブリッシュメッセージを発行した発行元のノードＮｎのノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）、メッセージの内容（パブリッシュ（登録）の対象となるコンテンツのコンテンツＩＤや公開日時情報等）、当該パブリッシュメッセージを自己に転送してきた転送元のノードＮｎのノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）等を含んで構成される。
【００８７】
そして当該パブリッシュメッセージの転送経路のノードＮｎにおいて、
（ｉ）発行元のノードＮｎのノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）はインデックスキャッシュに登録され、
（ii）転送元のノードＮｎのノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）はルーティングテーブルに登録される。
【００８８】
同図に示す例の場合、任意のコンテンツを保持したノードＮ１からパブリッシュメッセージを受信したノードＮ７は発行元のノードＮ１のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のインデックスキャッシュに登録する。このとき、ノードＮ１のノード情報が既にインデックスキャッシュに登録されている場合（ノードＮ１のノードＩＤが登録されている場合）には、登録済みのＩＰアドレス及びポート番号、記憶部の空き記録容量を受信したノード情報に基づいて更新する。
【００８９】
そして、ノードＮ７からパブリッシュメッセージを受信したノードＮ２９は、パブリッシュメッセージに含まれる当該パブリッシュメッセージの発行元のノードＮ１のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のインデックスキャッシュに登録（又は更新）する。
【００９０】
また、ノードＮ２９は、パブリッシュメッセージに含まれる当該パブリッシュメッセージの転送元のノードＮ７のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のルーティングテーブルに登録する。このとき、ノードＮ７のノード情報が既にルーティングテーブルに登録されている場合（ノードＮ７のノードＩＤが登録されている場合）には、登録済みのＩＰアドレス及びポート番号、記憶部の空き記録容量と、受信したノード情報に基づいて更新する。
【００９１】
そして、ノードＮ２９からパブリッシュメッセージを受信したノードＮ２は、パブリッシュメッセージの発行元のノードＮ１のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のインデックスキャッシュに登録（又は更新）し、転送元のノードＮ２９のノード情報（ノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量）を自己のルーティングテーブルに登録（又は更新）する。
【００９２】
図６に示す例の場合、ノードＮ２はインデックスキャッシュに、コンテンツ１を保存しているノードＮ１、Ｎ１４、Ｎ２１及びＮ１１と、コンテンツ２を保存しているノードＮ３５と、コンテンツ３を保存しているノードＮ３２、Ｎ２２、及びＮ５の記憶部の空き記録容量を記憶しており、図７を用いて説明した手順に従い、インデックスキャッシュのノード情報を登録（更新）するので、インデックスキャッシュに登録されているノードＮｎの記憶部の空き記録容量（及びＩＰアドレス等）を常に最新の状態に保つことができる。
【００９３】
［１−３．コンテンツ分散保存システムＳへのコンテンツの投入］
次に、コンテンツ分散保存システムＳへのコンテンツの投入について説明する。
【００９４】
コンテンツ投入サーバＣＳが、コンテンツ分散保存システムＳの任意のノードＮｎに対してレプリカの保存指示を行ない、保存指示を受けたノードＮｎが他のノードＮｎに対して保存指示を繰り返し行なうことにより、コンテンツ分散システムＳ内にてコンテンツの事前保存が行なわれる。
【００９５】
なお、本実施形態では、コンテンツ投入サーバＣＳがコンテンツのレプリカの保存を指示する際には、当該指示と共にコンテンツのレプリカが保存先のノードＮｎに共に送信される、いわゆる「プッシュ式」のコンテンツ保存が行なわれるよう構成する。
【００９６】
この際、コンテンツ投入サーバＣＳは、当該システムＳに参加するノードＮｎのうち、ランダムに選択した任意台数（例えば第１所定数）のノードＮｎに対してレプリカの保存を指示するよう構成してもよく、或いは、コンテンツ投入サーバＣＳが、コンテンツ分散保存システムＳに参加する際に各ノードＮｎが参加（登録）認証を受ける図示しない認証サーバに対して任意台数（例えば第１所定数）のノードＮｎのＩＰアドレス及びポート番号等を要求し、認証サーバから通知されたＩＰアドレス及びポート番号に従って新規レプリカの保存を指示するよう構成してもよく、或いは、コンテンツ投入サーバＣＳが、任意にノードＩＤを生成し、当該ノードＩＤのノードＮｎに向けて新規レプリカの保存を指示するよう構成してもよい。
【００９７】
そして、コンテンツ投入サーバＣＳから受信した新規レプリカを自己の記憶部に保存してコンテンツ事前保持ノードとなったノードＮｎは、自己が知っている他のノードＮｎ対して新規レプリカの保存を指示する。具体的には、例えばコンテンツ事前保持ノードとなったノードＮ２は、自己が保持するルーティングテーブル及びインデックスキャッシュを参照して、空き記録容量が比較的大きい第２所定数のノード情報を抽出して、抽出されたノード情報に基づいて保存先候補リストを生成し、生成した保存先候補リストのうち、空き記録容量が最も大きい第１所定数（第１所定数＜第２所定数）のノードＮｎから順に選択して、保存の対象となるレプリカと、当該レプリカの保存を指示する保存指示情報を送信する。なお、保存指示情報には、保存指示の対象となるレプリカが他のノードＮｎ間で共用可能となる日時である公開日時を示す情報（公開日時情報）等を含む。
【００９８】
＜保存先候補リスト＞
図を用いて保存先候補リストについて詳細に説明する。
【００９９】
図８は、保存先候補リストの一例を示す図である。
【０１００】
ノードＮｎは、コンテンツ投入サーバＣＳ又は他のノードＮｎから保存指示情報を受信すると、自己が保持するルーティングテーブル及びインデックスキャッシュを参照して、空き記録容量が比較的大きい第２所定数のノード情報を抽出して保存先候補リストを生成する。
【０１０１】
図８は、任意のノードＮｎが自己が保持するルーティングテーブル及びインデックスキャッシュの中から空き記録容量が１番〜１０番に大きいノード情報（Ｎｘ_１〜Ｎｘ_１０）を抽出して生成した保存先候補リスト（第２所定数＝１０）であり、各ノード情報は、対応する各ノードのノードＩＤ、ＩＰアドレス及びポート番号、記憶部の空き記録容量を含んでいる。
【０１０２】
ノードＮｎは、このように生成した保存先候補リストから、空き記録容量が大きい方から順に第１所定数のノードＮｎを選択する。
【０１０３】
例えば、ノード情報Ｎｘ_１、Ｎｘ_２、Ｎｘ_３、Ｎｘ_４・・・、Ｎｘ_１０の順で空き記録容量が大きく、第１所定数が“２”である場合には、最初にノード情報Ｎｘ_１、Ｎｘ_２が選択され、当該ノード情報Ｎｘ_１、Ｎｘ_２に対応する２台のノードＮｎに対して保存指示の対象となるレプリカと保存指示情報が送信され、次いで、ノード情報Ｎｘ_３、Ｎｘ_４が選択され、当該ノード情報Ｎｘ_３、Ｎｘ_４に対応する２台のノードＮｎに対して保存指示の対象となるレプリカと保存指示情報が送信される。
【０１０４】
このように、空き記録容量が大きい順にノードＮｎが選択され、レプリカの保存が指示される。
【０１０５】
なお、リストに同じ空き記録容量のノードＮｎが複数ある場合には、優先順位に従って優先順位の高いノードＮｎに先にレプリカの保存が指示されるよう構成する。
【０１０６】
また、ルーティングテーブル及びインデックスキャッシュから第２所定数のノードＮｎを抽出する際にも、最後のノードＮｎを抽出する際、つまり、第２所定数が１０であって、１０番目に空き記録容量が大きいノードＮｎが複数ある場合にも、優先順位の高いノードＮｎが抽出されるよう構成する。
【０１０７】
このような優先順位は、空き記録容量が同じ複数のノードＮｎのうち、インデックスキャッシュから抽出されたノードＮｎを優先することとする。ＩＤ空間においてコンテンツをより偏りなく分散して保存させることができるからである。
【０１０８】
また、これら複数のノードＮｎが何れもルーティングテーブルから抽出されたノードＮｎであれば、抽出元のテーブルをレベル１、レベル２、レベル３の順で（図２及び図３参照）優先する。レベル１はＩＤ空間において自己との距離が最も離れており、レベル１を最も優先して選択すれば、ＩＤ空間においてコンテンツをより偏りなく分散して保存させることができるからである。
【０１０９】
さらに、最近通信が行われたほう（最も最近通信しあったほう）のノードＮｎを優先してもよい。ノードＮｎがコンテンツ分散保存システムＳから脱退しており、通信ができないといったリスクを軽減するためである。
【０１１０】
＜２.各装置の構成及び機能＞
＜２−１.ノードＮｎの構成及び機能＞
次に、図９を参照して、ノードＮｎの構成及び機能について説明する。
【０１１１】
図９は、ノードＮｎの概要構成例を示す図である。
【０１１２】
各ノードＮｎは、図９に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、コンテンツデータのレプリカ、インデックスキャッシュ、ルーティングテーブル、保存先候補リスト等）及び各種プログラム等を記憶保存（格納）するためのハードディスク等から構成されたコンテンツ記録手段及びノード情報記憶手段としての記憶部１２と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ１３と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮｎ、コンテンツ投入サーバＣＳ、等間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部２０、及び入力部２１はバス２２を介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【０１１３】
また、コンテンツ分散保存システムＳが、当該システムＳに参加する際のアクセス先となるコンタクトノードを備えている場合には、記憶部１２には当該コンタクトノードのＩＰアドレス及びポート番号等が記憶されている。更に、記憶部１２には、保存（記録）しているコンテンツのレプリカに関する情報（タイトル、コンテンツＩＤ等）を登録するための保存コンテンツ管理テーブルが記憶されている。
【０１１４】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のノード処理プログラムを含む）を読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、コンテンツ保持ノード、及びコンテンツ事前保持ノードの少なくとも何れか一つのノードとしての処理を行なうようになっている。
【０１１５】
また、制御部１１は、本発明におけるメッセージ生成手段、メッセージ送信手段、メッセージ受信手段、ノード情報記憶手段、選択手段、保存指示手段、更新手段判定手段、及び識別情報生成手段として機能する。なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【０１１６】
そして、各種メッセージを他のノードＮｎに送信（転送）する際には、制御部１１は、記憶部１２の空き記録容量を取得する。例えば、記憶部１２のレプリカが記録されるハードディスクのキャッシュ領域の全容量と、既に使用している記録容量（使用容量）を求め、全容量から使用容量を減算して求めればよい（空き記録容量＝全容量―使用容量）。
【０１１７】
そして、制御部１１はメッセージ生成手段、メッセージ送信手段として機能し、パブリッシュやクエリ等の各種メッセージを生成する際には、空き記録容量、自己のノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報を付加してメッセージを生成し、当該メッセージを、記憶部１２のルーティングテーブルに従い転送（送信）すべき他のノードＮｎに送信する。
【０１１８】
また、制御部１１は、コンテンツ投入サーバＣＳ又は他のノードＮｎから、新たにコンテンツ分散保存システムＳに投入すべきコンテンツのレプリカの保存指示を受けると、当該レプリカを記憶部１２に記憶する。そして、記憶部１２のルーティングテーブルとインデックスキャッシュに基づいて保存先候補リストを生成し、生成した保存先候補リストからレプリカの保存指示をすべきノードＮｎを選択する。そして、制御部１１は、記憶部１２の空き記録容量を取得し、自己のノードＩＤ、ＩＰアドレス及びポート番号と共にノード情報として付加して保存指示情報を生成し、選択したノードＮｎに対してレプリカと当該レプリカの保存を指示する保存指示情報を送信する。
【０１１９】
＜２−２.コンテンツ投入サーバＣＳの構成及び機能＞
続いて、コンテンツ投入サーバＣＳの概略構成について図１０を用いて説明する。なお、図１０は実施形態に係るコンテンツ投入サーバＣＳの概略構成を示すブロック図である。
【０１２０】
図１０に示すように、実施形態に係るコンテンツ分散保存システムＳに含まれるコンテンツ投入サーバＣＳは、演算機能を有するＣＰＵ、作業用ＲＡＭ（Random Access Memory）、各種データ及びプログラムを記録するＲＯＭ（Read Only Memory）等から構成された制御部３０１と、投入するコンテンツデータや投入済みのコンテンツデータ、及びその他の必要なプログラム等を記録保存（格納）するためのＨＤ等から構成されたノード情報記憶手段としての記憶部３０２と、ネットワーク８を通じて各ノードＮｎ等、他の装置との間の情報の通信制御を行なうための通信部３０３と、当該コンテンツ投入サーバＣＳを操作する操作者からの指示を受け付け当該指示に応じた指示信号を制御部３０１に出力する入力部（例えば、キーボード、マウス或いは、操作パネル等）３０４と、を備えて構成され、制御部３０１、記憶部３０２、通信部３０３及び入力部３０４は、バス３０５を介して相互にデータの授受が可能に接続されている。
【０１２１】
そして、制御部３０１におけるＣＰＵが記憶部３０２等に記録されたプログラムを読み出して実行することにより、全体動作を統括制御する。
【０１２２】
制御部３０１は、コンテンツ分散保存システムＳに参加する何れかのノードＮｎに対して新たにコンテンツ分散保存システムＳに投入するコンテンツのレプリカを送信してレプリカの保存を指示する。
【０１２３】
また、コンテンツ投入サーバＣＳが、新たなコンテンツをシステム内に保存させる数（保存数）を当該コンテンツの人気度等に応じて決定し、当該保存数に応じて、コンテンツのレプリカを保存の指示を出すノードＮｎの数を適宜決定するよう構成してもよい。例えば、人気が高く公開後に多数のレプリカ配信要求が予測される場合には、保存数を多く決定し、少なくとも決定した保存数以上の数のノードＮｎをランダムに選択して、レプリカを送信し、保存を指示するよう構成すればよい。なお、コンテンツの人気度とは、例えば、コンテンツが映画であって、既に劇場公開されているような場合、その観客動員数に応じて決定したり、或いは、コンテスト等の受賞履歴等に基づいて決定したり、或いは、コンテンツが音楽である場合には、そのアーティストの過去の作品の売り上げ等を考慮して決定すればよい。
【０１２４】
［３．各装置の処理］
以上の動作において各ノードＮｎにおける処理を、図を参照して、詳しく説明する。
【０１２５】
［３−１．メッセージ受信処理］
図１１は、コンテンツ分散保存システムＳに参加している任意のノード装置Ｎｎにおける制御部１１の処理であり、他のノードＮｎからメッセージを受信した際のメッセージ受信処理を示すフローチャートである。
【０１２６】
先ず、制御部１１は、ノードＮｎ自身の電源がオフとされたか否かを判定し（ステップＳ１０）、オフとされていなければ（ステップＳ１０：Ｎｏ）、コンテンツ分散保存システムＳに参加する他のノードＮｎからメッセージを受信したか否かを判定する（ステップＳ１１）。
【０１２７】
判定の結果、メッセージを受信していない場合（ステップＳ１１：Ｎｏ）には、ステップＳ１０へ移行し、メッセージを受信した場合（メッセージ受信手段：ステップＳ１１：Ｙｅｓ）には、受信したメッセージに含まれる転送元のノード情報を記憶部１２のルーティングテーブルに登録する（ステップＳ１２）。既にルーティングテーブルに転送元のノード情報が登録されている場合には受信したノード情報に従って更新する。
【０１２８】
次いで、受信したメッセージがパブリッシュメッセージであるか否かを判定する（ステップＳ１３）。判定の結果、パブリッシュメッセージではない場合（ステップＳ１３：Ｎｏ）には、ステップＳ１５へ移行し、パブリッシュメッセージである場合（ステップＳ１３：Ｙｅｓ）には、受信したパブリッシュメッセージに含まれる発行元のノード情報を記憶部１２のインデックスキャッシュに登録する（ステップＳ１４）。既にインデックスキャッシュに発行のノード情報が登録されている場合には受信したノード情報に従って更新する。
【０１２９】
続いて、受信したメッセージが、自分宛であるか否かを判定する（ステップＳ１５）。つまり、記憶部１２のルーティングテーブルに従って転送すべき他のノードＮｎが無い場合は、自分宛のメッセージであるため（ステップＳ１５：Ｙｅｓ）、メッセージに応じた処理を行ない（ステップＳ１６）、ステップＳ１０へ移行する。
【０１３０】
一方、受信したメッセージが、自分宛で無い場合（ステップＳ１５：Ｎｏ）には、記憶部１２の空き記録容量を取得し、自己のノードＩＤとＩＰアドレス及びポート番号に基づいて、受信したメッセージの転送元のノード情報を入れ替え更新する（ステップＳ１７）。
【０１３１】
そして、更新後のメッセージを記憶部１２のルーティングテーブルに従ってメッセージを他のノードＮｎに転送し（ステップＳ１８）、処理を終了する。
【０１３２】
そして、電源がオフとなった場合に（ステップＳ１０：Ｙｅｓ）、処理を終了する。
【０１３３】
［３−２．レプリカの保存指示受け付け処理］
図１２は、コンテンツ分散保存システムＳに参加している任意のノードＮｎにおける制御部１１の処理であり、コンテンツ投入サーバＣＳ又は他のノードＮｎからコンテンツレプリカの保存が指示された際の保存指示受け付け処理を示すフローチャートである。
【０１３４】
先ず、制御部１１は、ノードＮｎ自身の電源がオフとされたか否かを判定し（ステップＳ３０）、オフとされていなければ（ステップＳ３０：Ｎｏ）、コンテンツ投入サーバＣＳまたは他のノードＮｎからコンテンツのレプリカの保存が指示されたか否かを判定する（ステップＳ３１）。
【０１３５】
判定の結果、レプリカの保存が指示された場合には保存指示されたコンテンツのレプリカを自己の記憶部１２に保存可能か否かを判定する（ステップＳ３２）。具体的には、記憶部１２の空き記録容量と保存指示されたレプリカのデータ容量等に基づいて、保存指示されたレプリカを保存可能か否かを判断することができる。なお、既に記憶しているレプリカの重要性と保存指示されたレプリカの重要性（例えば人気度が高いほうを優先して保存しておく等）を比較して、比較の結果、既に記憶しているレプリカを記憶部１２から削除して空き記録容量を確保するよう構成してもよい。
【０１３６】
判定の結果、保存指示されたコンテンツのレプリカを自己の記憶部１２に保存可能である場合（ステップＳ３２：Ｙｅｓ）、保存指示元（コンテンツ投入サーバＣＳまたは他のノードＮｎ）からコンテンツのレプリカを受信して、コンテンツのレプリカを自己の記憶部１２に保存する（ステップＳ３３）。次いで、記憶部１２のルーティングテーブル及びインデックスキャッシュから第２所定数のノード情報を抽出し送付先候補リストを生成して（ステップＳ３４）、記憶部１２に記憶する。保存先候補リストは、空き記録情報の大きい順に（先頭が最も空き記録情報が大きい）生成する。
【０１３７】
一方、レプリカの保存が指示されていない場合（ステップＳ３１：Ｎｏ）、及び保存指示されたレプリカの保存が可能でない場合（ステップＳ３２：Ｎｏ）には、ステップＳ３０へ移行する。
【０１３８】
そして、送付先候補リストを記憶部１２に記憶した後、保存先候補リストのノード情報に基づいて他のノードＮｎにレプリカの保存指示を行なう（ステップＳ３５）。
【０１３９】
先ず、制御部１１は判定手段として機能し、記憶部１２に保存先候補リストに第１所定数のノード情報があるか否かを判定する（ステップＳ３６）。
【０１４０】
判定の結果、保存先候補リストに第１所定数のノード情報がある場合（ステップＳ３６：Ｙｅｓ）には、制御部１１は選択手段として機能し、保存先候補リストの先頭から第１所定数のノードＮｎを選択する（ステップＳ３７）。そして、制御部１１は保存指示手段として機能し、選択したノードＮｎに、保存指示情報を送出してコンテンツのレプリカの保存を指示する（ステップＳ３８）。そして、制御部１１は更新手段として機能し、ステップＳ３７で選択され、ステップＳ３８にてレプリカの保存を指示したノードＮｎを保存先候補リストから削除して更新する（ステップＳ３９）。
【０１４１】
一方、保存先候補リストに第１所定数のノード情報がない場合（ステップＳ３６：Ｎｏ）には、制御部１１は識別情報生成手段として機能し、第１所定数のノードＩＤを生成し（ステップＳ４０）、生成したノードＩＤのノードＮｎに向けて保存指示情報を送出してコンテンツの保存を指示する（ステップＳ４１）。
【０１４２】
このように、生成したノードＩＤに向けて送出された保存指示情報は、各種メッセージと同様に各ノードＮｎ間をＤＨＴルーティングに従って転送され、最終的に生成したノードＩＤと同一のノードＩＤを有するノードＮｎ、或いは当該生成したノードＩＤに近いノードＩＤを有するノードＮｎに到達し、この保存指示情報の最終到達先であるノードＮｎがレプリカを保存することとなる。なお、この場合、保存指示情報とレプリカとを共に送出してレプリカを「プッシュ式」で送信する構成のほか、保存指示情報のみを保存指示メッセージとしてルーティングテーブルに従って送信し、保存指示情報の最終到達先であるノードＮｎが保存指示情報に含まれる保存指示元のノード情報（ノードＩＤ、ＩＰアドレス等）に基づいて保存指示元（コンテンツ投入サーバ、又はノードＮｎ）に対して保存すべきレプリカを要求してレプリカを取得するよう構成してもよい。
【０１４３】
その後、制御部１１は、受信した保存指示情報に含まれる公開日時情報に基づいてコンテンツのレプリカの公開日時まで上記ステップＳ３６からＳ３９のループ処理を行ない、公開日時に至るとループ処理を終了する（ステップＳ３２）。
【０１４４】
その後、ステップＳ３０に移行し、電源がオフとなった場合に（ステップＳ３０：Ｙｅｓ）、処理を終了する。
【０１４５】
以上説明したように、コンテンツ分散保存システムＳに新たなコンテンツのレプリカを投入する際に、ノードＮｎは、記録部１２の空き記録容量が比較的大きいノードＮｎが掲載された保存先候補リストから第１所定数のノードＮｎを選択し、選択したノードＮｎに対して保存を指示するため、各ノードＮｎの記録部１２の記録容量をバランスよく有効に利用することが可能なコンテンツ分散保存システムＳを実現することができる。
【０１４６】
また、本実施形態によれば、種々の処理（参加、パブリッシュ等）を要求するため、各ノードＮｎ間を転送される各種メッセージに、空き記録容量を特定するための情報を含んで送信するよう構成したので、他のノード装置の空き記録容量を特定するための情報を容易に取得することができる。
【０１４７】
更に、本実施形態によれば、各種メッセージに、メッセージの発行元と転送元のノードＮｎの空き記録容量とノードＩＤを含むノード情報を付加するよう構成し、これらメッセージのノード情報に基づいて登録や更新が行われる、メッセージの送信のために利用されるルーティングテーブルや、コンテンツデータを保存している他のノード装置の情報を記憶するインデックスキャッシュに、他のノードＮｎの空き記録容量を対応付けて記憶しておくことができ、比較的簡便な構成で他のノードＮｎの記憶部１２の空き記録容量を把握、管理することができる。そして更に、これらルーティングテーブル及びインデックスキャッシュから保存先候補リストを生成し、当該リストから順に第１所定数のノードＮｎを選択するよう構成した。このルーティングテーブル及びインデックスキャッシュは、各ノードＮｎ独自に保持されるものであることから、このようなルーティングテーブル及びインデックスキャッシュに基づいて生成された保存先候補リストからコンテンツレプリカの保存指示先となるノードＮｎを選択することにより、ＩＤ空間内に偏りなく分散してレプリカを保存することができる。
【０１４８】
なお、第１所定数は、第２所定数に応じて、或いは、公開日時までの期間（例えば、公開日時まで時間が無い場合には第１所定数を大きくしてできるだけ早く多数のノードＮｎにレプリカの事前配布を完了させる等）等を考慮して適宜変更可能である。
【０１４９】
また、ステップＳ４０、Ｓ４１において、ノードＮｎが、保存指示をすべき第１所定数のノードＮｎを選択できない場合には、第１所定数のノードＩＤを生成し、生成したノードＩＤのノードＮｎに向けてレプリカの保存を指示する保存指示情報を送出するよう構成したので、公開日時前に保存先候補リストのノード情報が無くなってしまい、第１所定数のノードＮｎを選択できない場合であっても、公開日時まで他のノードＮｎに対するレプリカの保存指示を滞らせることなく円滑に遂行することができる。
【０１５０】
更に、レプリカの保存を指示したノードＮｎのノード情報を記憶部１２に記憶した保存先候補リストから削除するよう構成したので、同じノードＮｎに重複してレプリカの保存指示を行なうことを防止することができる。
【０１５１】
なお、ノードＮｎは、レプリカの保存を指示したノードＮｎにレプリカが確実に保存できたことを確認した後に、当該ノードＮｎのノード情報を保存先候補リストから削除するよう構成してもよい。この場合、保存指示を受けたノードＮｎ（保存指示先）は、レプリカを保存した後に保存指示元であるノードＮｎに対して保存完了の報告等を通知するよう構成すればよい。そして、保存指示元のノードＮｎは、保存指示先のノードＮｎから保存完了の報告が通知されてこない場合には、保存指示先のノードＮｎを保存先候補リストから削除すると共に、保存指示先のノードＮｎのノード情報に掲載されたノードＩＤに向けてレプリカの保存を指示する保存指示情報を送出するよう構成すればよい。このメッセージは、当該ノードＩＤと近いノードＩＤを有するノードＮｎに到達することとなり、到達したノードＮｎがレプリカの保存指示を受け、レプリカを保存することとなる。
【０１５２】
更に、ステップＳ３２にて保存指示されたコンテンツのレプリカが保存不可能であると判断された場合には、保存指示元のノードＮｎに対して、保存指示不可報告を通知するよう構成すればよい。そしてこれを受けた保存指示元のノードＮｎは、上記と同様に、通知をしてきた保存指示元のノードＮｎのノードＩＤに向けてレプリカの保存を指示するよう構成すればよい。
【０１５３】
なお、上記実施形態におけるコンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１５４】
【図１】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮ２が保持するＤＨＴルーティングテーブルの一例を示す図である。
【図３】ＤＨＴのＩＤ空間の一例を示す概念図である。
【図４】コンテンツ分散保存システムＳへの参加時におけるＤＨＴルーティングテーブルの生成手順の一例を示す概念図である。
【図５】各ノードＮｎ間を転送するメッセージの様子を示す概念図である。
【図６】ノードＮ２が保持するインデックスキャッシュの一例を示す図である。
【図７】各ノードＮｎ間を転送するパブリッシュメッセージの様子を示す概念図である。
【図８】保存先候補リストの一例を示す図である。
【図９】ノードＮｎの概要構成例を示すブロック図である。
【図１０】コンテンツ投入サーバＣＳの概要構成例を示すブロック図である。
【図１１】ノードＮｎにおける制御部１１のメッセージ受信処理を示すフローチャートである。
【図１２】ノードＮｎにおける制御部１１の保存指示受け付け処理を示すフローチャートである。
【符号の説明】
【０１５５】
８  ネットワーク
９  Ｐ２Ｐネットワーク（オーバーレイネットワーク）
１１、３０１  制御部
１２、３０２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０、３０３  通信部
２１、３０４  入力部
２２、３０５  バス
Ｓ  コンテンツ分散保存システム
Ｎｎ  ノード
ＣＳ  コンテンツ投入サーバ
【図１】
2010066859.tif 000003
【図２】
2010066859.tif 000004
【図３】
2010066859.tif 000005
【図４】
2010066859.tif 000006
【図５】
2010066859.tif 000007
【図６】
2010066859.tif 000008
【図７】
2010066859.tif 000009
【図８】
2010066859.tif 000010
【図９】
2010066859.tif 000011
【図１０】
2010066859.tif 000012
【図１１】
2010066859.tif 000013
【図１２】
2010066859.tif 000014