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