(57)【要約】      （修正有）【課題】コンテンツデータが編集された場合であっても、編集前のコンテンツデータを生かしつつ編集後のコンテンツデータを効率良く利用可能としたコンテンツ分散保存システム、コンテンツ再生方法を提供する。【解決手段】コンテンツ分散保存システムのノード装置は、取得対象となるコンテンツデータの所在を管理する管理装置に問い合わせ、コンテンツデータを保存する他のノード装置を検索し、検索された他のノード装置からコンテンツデータを取得し、取得対象となるコンテンツデータが編集されている場合には、コンテンツデータに対する差分データの所在を管理する管理装置に問い合わせ、当該差分データを保存する他のノード装置を検索し、検索された他のノード装置から差分データを取得し、取得されたコンテンツデータと取得された差分データを用いて編集後のコンテンツデータを復元し、当該復元されたコンテンツデータの再生制御を行う。【選択図】図３
2009232272.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）、或いは、ＴＶ受信機等を適用可能である。
【００６０】
また、記憶部１２には、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノード等のＩＰアドレス及びポート番号等が記憶されている。
【００６１】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のノード処理プログラム又は管理処理プログラムを含む）を読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっている。なお、上記ノード処理プログラム及び管理処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００６２】
そして、ユーザノードとしての特徴的な処理を行う制御部１１は、本発明におけるコンテンツデータ取得手段、差分データ取得手段、再生制御手段、登録情報送出手段、カタログ取得手段、及びカタログ提示手段等として機能するようになっている。また、ルートノードとしての特徴的な処理を行う制御部１１は、本発明におけるノード情報管理手段、及びノード情報送信手段等として機能するようになっている。
【００６３】
具体的には、ユーザノードの制御部１１は、取得対象となるコンテンツデータの所在を管理しているルートノードに問い合わせることにより、上述したように、当該コンテンツデータを保存しているコンテンツ保持ノードを検索し、当該検索されたコンテンツ保持ノードからネットワーク８及び通信部１９を介してコンテンツデータを取得する処理を行う。更に、ユーザノードの制御部１１は、取得対象となるコンテンツデータが編集されている場合には（例えば、コンテンツカタログ情報から判断）、当該コンテンツデータに対応する差分データの所在を管理しているルートノードに問い合わせることにより、当該差分データを保存しているコンテンツ保持ノードを検索し、当該検索されたコンテンツ保持ノードから当該差分データを取得する処理を行うようになっている。
【００６４】
こうして取得されたコンテンツデータ及び差分データは、一時的にバッファメモリ１３に蓄積された後、読み出されて記憶部１２に記憶保存されることになる。そして、コンテンツデータが保存されると、上述したように、ユーザノードの制御部１１は、当該コンテンツデータのコンテンツＩＤ及び自己のノード情報が含まれるパブリッシュメッセージを生成し、これをそのルートノードに向けて（ルートノード宛に）送出する処理を行う。また、差分データが保存されると、上述したように、ユーザノードの制御部１１は、当該差分データのコンテンツＩＤ及び自己のノード情報が含まれるパブリッシュメッセージを生成し、これをそのルートノードに向けて（ルートノード宛に）送出する処理を行う。
【００６５】
そして、ユーザノードの制御部１１は、上記読み出されたコンテンツデータと差分データを用いて編集後のコンテンツデータを復元（つまり、コンテンツデータに差分データが組み込まれる）し、当該復元されたコンテンツデータの再生制御を行う。かかる再生制御により、復元された編集後のコンテンツデータは、デコーダ部１４、映像処理部１５、表示部１６、音声処理部１７、及びスピーカ１８を通じて再生出力される。
【００６６】
なお、ユーザノードの制御部１１は、コンテンツ分散保存システムＳにおいて取得可能なコンテンツデータ及び差分データを示す情報が記述された、上述したようなコンテンツカタログ情報を例えばコンテンツ提供サーバから取得し、当該コンテンツカタログ情報をユーザに対して提示するようになっている。
【００６７】
また、コンテンツデータのルートノードの制御部１１と差分データのルートノードの制御部１１は、夫々、上記送出され受信されたパブリッシュメッセージに基づいて、該パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報を登録し管理する。そして、ルートノードの制御部１１は、ユーザノードから、取得対象となるコンテンツデータ又は差分データの所在の問い合わせがあった場合、つまり、コンテンツ検索メッセージを受信した場合には、当該コンテンツデータ又は差分データを保存するコンテンツ保持ノードのノード情報を含むインデックス情報を問い合わせ元のユーザノードに送信する処理を行う。
［３．コンテンツ分散保存システムの動作］
次に、図７乃至図９を参照して、コンテンツ分散保存システムＳの動作について説明する。
【００６８】
図７は、ノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートであり、図８は、図７のステップＳ３におけるコンテンツ再生処理の詳細を示すフローチャートであり、図９は、図７のステップＳ１３におけるコンテンツ送信処理の詳細を示すフローチャートである。
【００６９】
なお、図７の処理は、あるノードＮｎにおいて電源オンがなされ、参加処理（コンタクトノードへの参加メッセージ送信）が実行され、コンテンツ分散保存システムＳへの参加が行われることにより開始される。
【００７０】
先ず、ステップＳ１では、制御部１１は、電源オフ（シャットダウン）指令が有ったか否かを判別し、電源オフ指令が無い場合には（ステップＳ１：ＮＯ）、ステップＳ２に進み、電源オフ指令が有った場合には（ステップＳ１：ＹＥＳ）、当該処理を終了する。
【００７１】
ステップＳ２では、制御部１１は、ユーザから入力部２０を介してコンテンツ要求指示が有ったか否かを判別し、当該コンテンツ要求指示が有った場合には（ステップＳ２：ＹＥＳ）、ステップＳ３に進み、当該コンテンツ要求指示が無い場合には（ステップＳ２：ＮＯ）、ステップＳ４に進む。
【００７２】
ステップＳ３のコンテンツ再生処理では、図８に示すように、制御部１１は、コンテンツカタログ情報を記憶部１２から取得し（読み出し）、当該コンテンツカタログ情報の一部（例えば、登録されたコンテンツ名のリスト）を表示部１６に表示させることによりユーザに提示する（ステップＳ３１）。そして、制御部１１は、ユーザが入力部２０を介して取得対象となるコンテンツデータを示す情報（例えば、コンテンツ名）を選択した場合には、当該コンテンツデータを示す情報を受け付ける（ステップＳ３２）。
【００７３】
次いで、制御部１１は、受け付けたコンテンツデータを示す情報に基づきコンテンツカタログ情報からコンテンツＩＤを検索する（ステップＳ３３）。例えば、コンテンツデータＸのコンテンツ名がユーザにより選択されたとすると、当該コンテンツデータＸのコンテンツＩＤが先ずは検索され、続いて、例えば図５（Ａ）に示すコンテンツリストから、当該コンテンツＩＤが対応付けられている差分データｘ１のコンテンツＩＤと差分データｘ２のコンテンツＩＤが検索されることになる。
【００７４】
次いで、制御部１１は、検索されたコンテンツＩＤのうちの一つを検索キーとしてセットする（ステップＳ３４）。
【００７５】
次いで、制御部１１は、上記セットされたコンテンツＩＤ等を含むコンテンツ検索メッセージを生成し、これを当該コンテンツＩＤのルートノードに向けて（ルートノード宛に）送出する（ステップＳ３５）。これにより、当該制御部１１は、当該ルートノードから返信されてきたインデックス情報を受信、取得する（ステップＳ３６）。
【００７６】
次いで、制御部１１は、当該インデックス情報に示されるコンテンツ保持ノードから一つ選定し、当該選定したコンテンツ保持ノードに対してコンテンツ要求メッセージを送信する（ステップＳ３７）。これにより、当該制御部１１は、当該コンテンツ保持ノードから送信されてきたコンテンツデータのファイルを受信、取得する（ステップＳ３８）。
【００７７】
次いで、制御部１１は、上記検索されたコンテンツＩＤに対応する全てのファイルを取得したか否かを判別し（ステップＳ３９）、全てのファイルを取得していない場合には（ステップＳ３９：ＮＯ）、ステップＳ４０に進み、全てのファイルを取得した場合には（ステップＳ３９：ＹＥＳ）、ステップＳ４１に進む。
【００７８】
ステップＳ４０では、制御部１１は、上記検索されたコンテンツＩＤのうちの残りの一つを検索キーとしてセットし、ステップＳ３５に戻る。そして、上記と同じように、当該セットされたコンテンツＩＤに対応するファイルがコンテンツ保持ノードから取得される。こうして、例えば、コンテンツデータＸ，差分データｘ１，及び差分データｘ２のファイルが取得されることになる。
【００７９】
ステップＳ４１では、制御部１１は、上記データのファイルが記憶部１２に保存されたか否かを判別する。そして、当該ファイルが保存された場合には（ステップＳ４１：ＹＥＳ）、制御部１１は、コンテンツＩＤ、及び自ノードのノード情報が含まれるパブリッシュメッセージを生成し、該パブリッシュメッセージを、そのルートノードに向けて（ルートノード宛に）送出する（ステップＳ４２）。かかる処理は、上記取得された全てのファイルについて行われる。例えば、コンテンツデータＸ，差分データｘ１，及び差分データｘ２のファイルが取得されている場合、コンテンツデータＸのルートノード、差分データｘ１のルートノード、及び差分データｘ２のルートノード、の夫々に対してパブリッシュメッセージが送出されることになる。
【００８０】
次いで、制御部１１は、差分データが有るか、つまり、上記処理で差分データのファイルが取得されているか否かを判別し（ステップＳ４３）、差分データが有る場合には（ステップＳ４３：ＹＥＳ）、ステップＳ４４に進み、差分データが無い場合には（ステップＳ４３：ＮＯ）、ステップＳ４５に進む。
【００８１】
ステップＳ４４では、制御部１１は、上記取得されたコンテンツデータと、上記取得された差分データとを用いて編集後のコンテンツデータ（最新のコンテンツデータ）を復元し再生させる再生処理を行う。例えば、コンテンツデータＸに、差分データｘ１及び差分データｘ２が編集時に組み込まれた時間的位置（かかる時間的位置を示す情報は差分データに含まれている）に組み込まれて再生される。
【００８２】
一方、ステップＳ４５では、制御部１１は、上記取得されたコンテンツデータの通常の再生処理を行う。
【００８３】
なお、上記パブリッシュメッセージの送信タイミングは、上記再生処理の後でも良い。
【００８４】
図７に戻り、ステップＳ４では、制御部１１は、パブリッシュメッセージを受信したか否かを判別し、当該メッセージを受信した場合には（ステップＳ４：ＹＥＳ）、ステップＳ５に進み、当該メッセージを受信していない場合には（ステップＳ４：ＮＯ）、ステップＳ８に進む。
【００８５】
ステップＳ５では、制御部１１は、自ノードはパブリッシュメッセージに含まれるコンテンツＩＤのルートノードであるか、つまり、当該コンテンツＩＤと最も近いノードＩＤを有するノードＮｎが自ノードであるか否かを自身のルーティングテーブルから判別する。そして、自ノードがルートノードでない場合には（ステップＳ５：ＮＯ）、制御部１１は、当該メッセージに含まれるコンテンツＩＤに最も近いノードＮｎを自身のルーティングテーブルから特定し、当該特定したノードＮｎに対して上記パブリッシュメッセージを転送する（ステップＳ６）。
【００８６】
一方、自ノードがルートノードである場合には（ステップＳ５：ＹＥＳ）、制御部１１は、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤ（コンテンツデータに対応するコンテンツＩＤである場合もあるし、差分データに対応するコンテンツＩＤである場合もある）の組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）する（ステップＳ７）。
【００８７】
次に、ステップＳ８では、制御部１１は、コンテンツ検索メッセージを受信したか否かを判別し、当該メッセージを受信した場合には（ステップＳ８：ＹＥＳ）、ステップＳ９に進み、当該メッセージを受信していない場合には（ステップＳ８：ＮＯ）、ステップＳ１２に進む。
【００８８】
ステップＳ９では、制御部１１は、自ノードはコンテンツ検索メッセージに含まれるコンテンツＩＤのルートノードであるか、つまり、当該コンテンツＩＤと最も近いノードＩＤを有するノードＮｎが自ノードであるか否かを自身のルーティングテーブルから判別する。そして、自ノードがルートノードでない場合には（ステップＳ９：ＮＯ）、制御部１１は、当該メッセージに含まれるコンテンツＩＤに最も近いノードＮｎを自身のルーティングテーブルから特定し、当該特定したノードＮｎに対して上記コンテンツ検索メッセージを転送する（ステップＳ１０）。
【００８９】
一方、自ノードがルートノードである場合には（ステップＳ９：ＹＥＳ）、制御部１１は、コンテンツ検索メッセージに含まれるコンテンツＩＤに対応するインデックス情報を上記コンテンツ検索メッセージの送信元であるユーザノードに対して返信し（ステップＳ１１）、図７の処理に戻る。
【００９０】
次に、ステップＳ１２では、制御部１１は、コンテンツ要求メッセージを受信したか否かを判別し、当該メッセージを受信した場合には（ステップＳ１２：ＹＥＳ）、ステップＳ１３に進み、当該メッセージを受信していない場合には（ステップＳ１２：ＮＯ）、ステップＳ１４に進む。なお、ステップＳ１４におけるその他の処理では、他のメッセージの受信処理等が行われる。
【００９１】
ステップＳ１３のコンテンツ送信処理では、例えば図９（Ａ）に示すように、制御部１１は、コンテンツ要求メッセージにより要求されたコンテンツデータ又が差分データのファイルを記憶部１２から読み出し、当該ファイルを要求元のユーザノードに対して送信する（ステップＳ１３１）。
【００９２】
また、別の例として、図９（Ｂ）に示すように、制御部１１は、コンテンツ要求メッセージにより要求されたコンテンツデータ又は差分データのファイルを送信対象ファイルとしてセットする（ステップＳ１３５）。
【００９３】
次いで、制御部１１は、セットされたファイルを要求元のユーザノードに対して送信する（ステップＳ１３６）。
【００９４】
次いで、制御部１１は、要求されたファイルに関連するファイルを保存しているか否かを判別し（ステップＳ１３７）、保存している場合には（ステップＳ１３７：ＹＥＳ）、ステップＳ１３８に進み、保存していない場合には（ステップＳ１３７：ＮＯ）、図７の処理に戻る。
【００９５】
ステップＳ１３８では、要求されたファイルに関連するファイルを送信対象ファイルとしてセットし、ステップＳ１３６に戻る。そして、上記と同じように、当該セットされたファイルが要求元のユーザノードに対して送信されることになる。例えば、要求されたファイルがコンテンツデータＸのファイルであるとすると、図５（Ａ）に示すコンテンツリストより、当該コンテンンツデータＸのファイルに関連するファイルは、差分データｘ１及び差分データｘ２のファイルであるので、これらのファイルが当該コンテンツ保持ノードに保存されている場合には、当該ファイルについても要求元のユーザノードに送信されることになる。これにより、ユーザノード側では、例えば、１回のコンテンツ要求メッセージの送信（言い換えれば、１回のコンテンツ検索メッセージの送信）により、関連する複数のファイルを取得（上記ステップＳ３８で取得）することが可能となり、効率的にファイルをダウンロードすることができる。
【００９６】
以上説明したように、上記実施形態によれば、コンテンツ分散保存システムＳに投入済みのコンテンツデータが編集された場合には、編集前のコンテンツデータと編集後のコンテンツデータの差分である差分データが何れかのコンテンツ保持ノードに、ユーザノードから取得可能に保存されるようにする。そして、ユーザノードが、所望のコンテンツデータを保存するコンテンツ保持ノードを検索して当該コンテンツデータを取得する場合には、当該コンテンツデータに対応する差分データを保存するコンテンツ保持ノードも検索して当該差分データを取得し、当該コンテンツデータと当該差分データを用いて編集後のコンテンツデータを復元し、当該復元されたコンテンツデータの再生するように構成したので、例えば人気のあって多くのコンテンツ保持ノードに保存されているコンテンツデータが編集された場合、例えばシステム管理者が編集前の当該コンテンツデータを一旦当該システムＳ上から削除し編集後のコンテンツデータを再投入するという手間を省くことができ、編集前のコンテンツデータを生かしつつ編集後のコンテンツデータを効率良く利用可能とすることができる。
【００９７】
なお、上記実施形態におけるステップＳ３４において、ユーザノードで検索されたコンテンツＩＤのうち、最新の差分データのコンテンツＩＤが優先的に検索キーとしてセットされるようにし、最初に差分データを保存しているコンテンツ保持ノードにコンテンツ要求メッセージを送信するように構成すれば、当該コンテンツ保持ノードから、当該差分データのファイルだけでなく、これより古い全てのファイルを取得することが可能となり、より効率的にファイルをダウンロードすることができる。例えば、最新の差分データｘ２のファイルを保存しているコンテンツ保持ノードは、これより古い差分データｘ１及び元のコンテンツデータＸのファイルをも保存している可能性が高いので、１回のコンテンツ要求メッセージの送信（言い換えれば、１回のコンテンツ検索メッセージの送信）により、関連する全てのファイルを取得する可能性が高くなる。
【００９８】
このように、ユーザノードは、先に差分データを保存しているコンテンツ保持ノードを検索し、当該検索されたコンテンツ保持ノードが差分データに加えてこれに対応する元のコンテンツデータを保存している場合には、当該検索されたコンテンツ保持ノードから当該差分データ及び当該コンテンツデータのファイルを取得することになる。一方、検索されたコンテンツ保持ノードが差分データに加えてこれに対応するコンテンツデータを保存していない場合には、上記ステップＳ３５で、当該コンテンツデータの所在を管理しているルートノードに問い合わせることにより、当該コンテンツデータを保存しているコンテンツ保持ノードを検索し、当該検索されたコンテンツ保持ノードからコンテンツデータのファイルを取得することになる。
【００９９】
更に、別の例として、ユーザノードが上記ステップＳ４１においてコンテンツデータと差分データを保存した場合には、当該コンテンツデータ及び当該差分データを保存するコンテンツ保持ノードとして自ノードのノード情報を登録させるためのパブリッシュメッセージを、当該コンテンツデータの所在を管理しているルートノードと、当該差分データの所在を管理しているルートノードとの少なくとも何れか一方宛に送出するように構成する。そして、当該パブリッシュメッセージを受信したルートノードが、当該パブリッシュメッセージに基づいて、上記コンテンツデータ及び上記差分データを保存するコンテンツ保持ノードとしてそのノード情報をインデックス情報として登録し管理するように構成すれば、より有効である。
【０１００】
例えば、ユーザノードが、コンテンツデータＸ，差分データｘ１，及び差分データｘ２のファイルを取得して保存した場合、差分データｘ２のルートノード宛てのパブリッシュメッセージ中にコンテンツデータＸ及び差分データｘ１についても保存していることを示す情報を記述して送信し、当該差分データｘ２のルートノードが、パブリッシュメッセージの送信元のノードにより差分データｘ２と共にコンテンツデータＸ及び差分データｘ１についても保存されていることを管理する。同じように、当該ユーザノードが、差分データｘ１のルートノード宛てのパブリッシュメッセージ中にコンテンツデータＸについても保存していることを示す情報を記述して送信し、当該差分データｘ１のルートノードが、パブリッシュメッセージの送信元のノードにより差分データｘ１と共にコンテンツデータＸについても保存されていることを管理する。
【０１０１】
このように構成すれば、当該ルートノードは、ユーザノードからの差分データ（又はコンテンツデータ）の所在の問い合わせに応じて、当該問い合わせ対象の差分データ（又はコンテンツデータ）を保存するコンテンツ保持ノードが当該差分データ（又はコンテンツデータ）に対応するコンテンツデータ（又は差分データ）をも保存している場合には、これを示す情報と当該コンテンツ保持ノードのノード情報を含むインデックス情報を問い合わせ元のユーザノードに対して送信することができる。これにより、ユーザノードは、上記ステップＳ３７で、例えば差分データとコンテンツデータを保存しているコンテンツ保持ノードを優先して選定し、当該選定したコンテンツ保持ノードに対してコンテンツ要求メッセージを送信して差分データとコンテンツデータの各ファイルを取得することができるので、１回のコンテンツ検索メッセージの送信により、より効率的にファイルをダウンロードすることができる。
【０１０２】
また、上記実施形態におけるコンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１０３】
【図１】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】（Ａ）は、コンテンツデータＸがノードＮ１において編集されることによりコンテンツデータＸ１が生成される様子を示す図であり、（Ｂ）は、編集前のコンテンツデータＸと編集後のコンテンツデータＸ１とから差分データｘ１が求められ、当該差分データｘ１が投入サーバＳＡによりノードＮ７〜Ｎ９に投入される様子を示す図である。
【図３】（Ａ）は、差分データｘ１を保存したノードＮ７〜Ｎ９からパブリッシュメッセージがルートノードに向けて送信される様子を示す図であり、（Ｂ）は、ノードＮ１０がノードＮ３からコンテンツデータＸを、ノードＮ７から当該コンテンツデータＸに対応する差分データｘ１を、夫々取得する様子を示す図である。
【図４】コンテンツデータＸの編集回数と差分データとの関係を示す図である。
【図５】コンテンツカタログ情報における差分データの持ち方の例を示す図である。
【図６】ノードＮｎの概要構成例を示す図である。
【図７】ノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートである。
【図８】図７のステップＳ３におけるコンテンツ再生処理の詳細を示すフローチャートである。
【図９】図７のステップＳ１３におけるコンテンツ送信処理の詳細を示すフローチャートである。
【符号の説明】
【０１０４】
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  通信部
２０  入力部
２１  バス
Ｎｎ  ノード
Ｓ  コンテンツ分散保存システム
【図１】
2009232272.tif 000003
【図２】
2009232272.tif 000004
【図３】
2009232272.tif 000005
【図４】
2009232272.tif 000006
【図５】
2009232272.tif 000007
【図６】
2009232272.tif 000008
【図７】
2009232272.tif 000009
【図８】
2009232272.tif 000010
【図９】
2009232272.tif 000011