(57)【要約】      （修正有）【課題】コンテンツ提供サーバへの負荷を軽減させつつ、各ノード装置における省エネをも向上させることが可能な通信システム、ノード稼動制御方法、ノード稼動制御装置、及びノード稼動制御処理プログラム等を提供する。【解決手段】取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを他のノード装置サーバ装置からも取得可能とした通信システムにおけるノード稼動制御装置において、稼動状態にあるノード装置の数を記憶しておき、稼動停止許可要求情報を受信した場合に、稼動状態にあるノード装置の数が、所定範囲内にないと判断された場合には、稼動停止を許可する許可情報を稼動停止許可要求情報を送信したノード装置に対して返信する。【選択図】図１０
2008181409.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御装置であって、
少なくとも稼動状態にある前記ノード装置の数を記憶するノード数記憶手段と、
前記ノード装置から前記ネットワークを介して送信されてきた稼動停止の許可を求める稼動停止許可要求情報を受信する許可要求情報受信手段と、
前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断するノード数判断手段と、
前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断された場合には、前記稼動停止を許可する許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する許可情報返信手段と、
を備えることを特徴とするノード稼動制御装置。
【請求項２】
請求項１に記載のノード稼動制御装置において、
前記ノード装置の数が前記所定範囲内にあると判断された場合には、前記稼動停止を不許可とする不許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する不許可情報返信手段を更に備えることを特徴とするノード稼動制御装置。
【請求項３】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御装置であって、
少なくとも稼動状態にある前記ノード装置の数と、稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にある前記ノード装置の数と、を記憶するノード数記憶手段と、
前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断するノード数判断手段と、
前記稼動状態にあるノード装置の数がＮ１より大きいと判断され、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断された場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する稼動指令情報送信手段と、
を備えることを特徴とするノード稼動制御装置。
【請求項４】
請求項３に記載のノード稼動制御装置において、
前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、前記Ｎ２より大きいと判断された場合には、前記総和が前記Ｎ２よりも小さくならないように、前記稼動停止を許可する許可情報を、前記稼動停止待機状態にある前記ノード装置に対して前記ネットワークを介して送信する許可情報送信手段を更に備えることを特徴とするノード稼動制御装置。
【請求項５】
請求項３に記載のノード稼動制御装置において、
前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きくないと判断された場合には、前記稼動停止を許可する許可情報を、前記稼動停止待機状態にある前記ノード装置に対して前記ネットワークを介して送信する許可情報送信手段を更に備えることを特徴とするノード稼動制御装置。
【請求項６】
請求項１乃至５の何れか一項に記載のノード稼動制御装置において、
前記Ｎ１は、前記稼動状態にあるノード装置の数が増加することにより、前記コンテンツデータの提供のため前記サーバ装置に課されるサーバ負荷量が増加し予め設定された基準量となる前記ノード装置の数に相当し、
前記Ｎ２は、前記稼動状態にあるノード装置の数が更に増加することにより、前記サーバ負荷量が減少し前記基準量となる前記ノード装置の数に相当することを特徴とするノード稼動制御装置。
【請求項７】
請求項６に記載のノード稼動制御装置において、
前記サーバ負荷量は、前記複数のノード装置により前記コンテンツデータの要求が見込まれる推定需要量と、前記コンテンツデータの要求に対して前記サーバ装置によらず各前記ノード装置により応じることが可能な供給可能量との差に基づいて決定されることを特徴とするノード稼動制御装置。
【請求項８】
請求項１に記載のノード稼動制御装置に対して前記ネットワークを介して前記稼動停止許可要求情報を送信する前記ノード装置であって、
稼動停止指令があったか否かを判断する稼動停止判断手段と、
前記稼動停止指令があったと判断された場合には、前記稼動停止許可要求情報を、前記ネットワークを介して前記ノード稼動制御装置に送信する許可要求情報送信手段と、
前記ノード稼動制御装置から前記ネットワークを介して返信されてきた前記許可情報を受信する許可情報受信手段と、
前記許可情報を受信した場合には、稼動停止状態に切り換える状態切換手段と、
を備えることを特徴とするノード装置。
【請求項９】
請求項３に記載のノード稼動制御装置から前記ネットワークを介して送信されてきた稼動指令情報を受信する前記ノード装置であって、
前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える状態切換手段を備えることを特徴とするノード装置。
【請求項１０】
コンピュータを、請求項１乃至７の何れかに記載のノード稼動制御装置として機能させることを特徴とするノード稼動制御処理プログラム。
【請求項１１】
コンピュータを、請求項８又は９に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項１２】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおいて、
前記ノード装置は、
稼動停止指令があったか否かを判断する稼動停止判断手段と、
前記稼動停止指令があったと判断された場合には、稼動停止の許可を求める稼動停止許可要求情報を、前記ネットワークを介してノード稼動制御装置に送信する許可要求情報送信手段と、
前記稼動停止許可要求情報に対して前記ノード稼動制御装置から前記ネットワークを介して返信されてきた稼動停止を許可する許可情報を受信する許可情報受信手段と、
前記許可情報を受信した場合には、稼動停止状態に切り換える状態切換手段と、
を備え、
前記ノード稼動制御装置は、
少なくとも稼動状態にある前記ノード装置の数を記憶するノード数記憶手段と、
前記ノード装置から前記ネットワークを介して送信されてきた前記稼動停止許可要求情報を受信する許可要求情報受信手段と、
前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断するノード数判断手段と、
前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断された場合には、前記許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する許可情報返信手段と、
を備えることを特徴とする通信システム。
【請求項１３】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御方法であって、
前記ノード装置が、稼動停止指令があったか否かを判断し、前記稼動停止指令があったと判断した場合には、稼動停止の許可を求める稼動停止許可要求情報を、前記ネットワークを介してノード稼動制御装置に送信する工程と、
前記ノード稼動制御装置が、前記ノード装置から前記ネットワークを介して送信されてきた前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断し、前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断した場合には、稼動停止を許可する許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する工程と、
前記ノード装置が、前記ノード稼動制御装置から前記ネットワークを介して返信されてきた前記許可情報を受信した場合には、稼動停止状態に切り換える工程と、
を備えることを特徴とするノード稼動制御方法。
【請求項１４】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおいて、
ノード稼動制御装置は、
少なくとも稼動状態にある前記ノード装置の数と、稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にある前記ノード装置の数と、を記憶するノード数記憶手段と、
前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断するノード数判断手段と、
前記稼動状態にあるノード装置の数がＮ１より大きいと判断され、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断された場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する稼動指令情報送信手段と、
を備え、
前記ノード装置は、
前記ノード稼動制御装置から前記ネットワークを介して送信されてきた前記稼動指令情報を受信する稼動指令情報受信手段と、
前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える状態切換手段と、
を備えることを特徴とする通信システム。
【請求項１５】
ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御方法であって、
ノード稼動制御装置が、前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断し、前記稼動状態にあるノード装置の数がＮ１より大きいと判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断した場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する工程と、
前記ノード装置が、前記ノード稼動制御装置から前記ネットワークを介して送信されてきた前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える工程と、
を備えることを特徴とするノード稼動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、複数のコンテンツデータ（ファイル）を複数のノード装置に分散配置（分散保存）させておくシステムが知られており、これにより、対故障性やアクセスの分散性を高められている。このように分散保存されたコンテンツデータの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっており、これにより、オーバーレイネットワークに参加している各ノード装置は、所望のコンテンツデータを他のノード装置から取得することができる。
【０００３】
ところで、オーバーレイネットワークに参加しているノード装置の数が少ないほど、コンテンツデータを取得するまでの時間が非常に長かったり、コンテンツデータの取得が失敗する確率が高くなる。また、コンテンツデータがコンテンツ配信システムに投入され（例えば、コンテンツ投入サーバによりあるノード装置に初めて保存され）て間もないうちは、当該コンテンツデータを保存しているノード装置の数が少ないため、コンテンツデータを取得するまでの時間が非常に長かったり、コンテンツデータの取得が失敗する確率が高くなる。
【０００４】
これを解消するため、別に、コンテンツ提供サーバを設置して、各ノード装置が、当該コンテンツ提供サーバからも所望のコンテンツデータを取得することが考えられる。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記オーバーレイネットワークに参加しているノード装置の数は、例えばノード装置の電源ＯＮ／ＯＦＦにより変動し不安定であるため、場合によっては、コンテンツ提供サーバへの負荷集中が生じ、当該サーバへの負荷がサーバ能力限界を超えるという問題が生じる可能性がある。
【０００６】
このような問題を回避するためには、ノード装置の電源を切らせずに常時オーバーレイネットワークに参加していることが望ましいが、ノード装置の電源を絶対に切らせないようにすることは、電力を無駄に消費し、省エネの観点から望ましくない。
【０００７】
本発明は、以上の点に鑑みてなされたものであり、コンテンツ提供サーバへの負荷を軽減させつつ、各ノード装置における省エネをも向上させることが可能な通信システム、ノード稼動制御方法、ノード稼動制御装置、及びノード稼動制御処理プログラム等を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御装置であって、少なくとも稼動状態にある前記ノード装置の数を記憶するノード数記憶手段と、前記ノード装置から前記ネットワークを介して送信されてきた稼動停止の許可を求める稼動停止許可要求情報を受信する許可要求情報受信手段と、前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断するノード数判断手段と、前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断された場合には、前記稼動停止を許可する許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する許可情報返信手段と、を備えることを特徴とする。
【０００９】
この発明によれば、ノード装置から稼動停止の許可を求めがあった場合に、稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断し、前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断された場合には、前記稼動停止を許可する許可情報を当該ノード装置に対して返信するように構成したので、各ノード装置の最適な稼動制御を行い、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【００１０】
請求項２に記載の発明は、請求項１に記載のノード稼動制御装置において、前記ノード装置の数が前記所定範囲内にあると判断された場合には、前記稼動停止を不許可とする不許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する不許可情報返信手段を更に備えることを特徴とする。
【００１１】
この発明によれば、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【００１２】
請求項３に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御装置であって、少なくとも稼動状態にある前記ノード装置の数と、稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にある前記ノード装置の数と、を記憶するノード数記憶手段と、前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断するノード数判断手段と、前記稼動状態にあるノード装置の数がＮ１より大きいと判断され、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断された場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する稼動指令情報送信手段と、を備えることを特徴とする。
【００１３】
この発明によれば、稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断し、前記稼動状態にあるノード装置の数がＮ１より大きいと判断され、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断された場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して送信するように構成したので、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和を迅速に増やし、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【００１４】
請求項４に記載の発明は、請求項３に記載のノード稼動制御装置において、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、前記Ｎ２より大きいと判断された場合には、前記総和が前記Ｎ２よりも小さくならないように、前記稼動停止を許可する許可情報を、前記稼動停止待機状態にある前記ノード装置に対して前記ネットワークを介して送信する許可情報送信手段を更に備えることを特徴とする。
【００１５】
この発明によれば、稼動停止待機状態にあるノード装置を迅速に稼動停止させることができる。
【００１６】
請求項５に記載の発明は、請求項３に記載のノード稼動制御装置において、前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きくないと判断された場合には、前記稼動停止を許可する許可情報を、前記稼動停止待機状態にある前記ノード装置に対して前記ネットワークを介して送信する許可情報送信手段を更に備えることを特徴とする。
【００１７】
この発明によれば、稼動停止待機状態にあるノード装置を迅速に稼動停止させることができる。
【００１８】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載のノード稼動制御装置において、前記Ｎ１は、前記稼動状態にあるノード装置の数が増加することにより、前記コンテンツデータの提供のため前記サーバ装置に課されるサーバ負荷量が増加し予め設定された基準量となる前記ノード装置の数に相当し、前記Ｎ２は、前記稼動状態にあるノード装置の数が更に増加することにより、前記サーバ負荷量が減少し前記基準量となる前記ノード装置の数に相当することを特徴とする。
【００１９】
請求項７に記載の発明は、請求項６に記載のノード稼動制御装置において、前記サーバ負荷量は、前記複数のノード装置により前記コンテンツデータの要求が見込まれる推定需要量と、前記コンテンツデータの要求に対して前記サーバ装置によらず各前記ノード装置により応じることが可能な供給可能量との差に基づいて決定されることを特徴とする。
【００２０】
請求項８に記載の発明は、請求項１に記載のノード稼動制御装置に対して前記ネットワークを介して前記稼動停止許可要求情報を送信する前記ノード装置であって、稼動停止指令があったか否かを判断する稼動停止判断手段と、前記稼動停止指令があったと判断された場合には、前記稼動停止許可要求情報を、前記ネットワークを介して前記ノード稼動制御装置に送信する許可要求情報送信手段と、前記ノード稼動制御装置から前記ネットワークを介して返信されてきた前記許可情報を受信する許可情報受信手段と、前記許可情報を受信した場合には、稼動停止状態に切り換える状態切換手段と、を備えることを特徴とする。
【００２１】
この発明によれば、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【００２２】
請求項９に記載の発明は、請求項３に記載のノード稼動制御装置から前記ネットワークを介して送信されてきた稼動指令情報を受信する前記ノード装置であって、前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える状態切換手段を備えることを特徴とする。
【００２３】
この発明によれば、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【００２４】
請求項１０に記載のノード稼動制御処理プログラムの発明は、コンピュータを、請求項１乃至７の何れかに記載のノード稼動制御装置として機能させることを特徴とする。
【００２５】
請求項１１に記載のノード処理プログラムの発明は、コンピュータを、請求項８又は９に記載のノード装置として機能させることを特徴とする。
【００２６】
請求項１２に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおいて、前記ノード装置は、稼動停止指令があったか否かを判断する稼動停止判断手段と、前記稼動停止指令があったと判断された場合には、稼動停止の許可を求める稼動停止許可要求情報を、前記ネットワークを介してノード稼動制御装置に送信する許可要求情報送信手段と、前記稼動停止許可要求情報に対して前記ノード稼動制御装置から前記ネットワークを介して返信されてきた稼動停止を許可する許可情報を受信する許可情報受信手段と、前記許可情報を受信した場合には、稼動停止状態に切り換える状態切換手段と、を備え、前記ノード稼動制御装置は、少なくとも稼動状態にある前記ノード装置の数を記憶するノード数記憶手段と、前記ノード装置から前記ネットワークを介して送信されてきた前記稼動停止許可要求情報を受信する許可要求情報受信手段と、前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断するノード数判断手段と、前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断された場合には、前記許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する許可情報返信手段と、を備えることを特徴とする。
【００２７】
請求項１３に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御方法であって、前記ノード装置が、稼動停止指令があったか否かを判断し、前記稼動停止指令があったと判断した場合には、稼動停止の許可を求める稼動停止許可要求情報を、前記ネットワークを介してノード稼動制御装置に送信する工程と、前記ノード稼動制御装置が、前記ノード装置から前記ネットワークを介して送信されてきた前記稼動停止許可要求情報を受信した場合に、前記稼動状態にあるノード装置の数が、Ｎ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの所定範囲内にあるか否かを判断し、前記稼動状態にあるノード装置の数が、前記所定範囲内にないと判断した場合には、稼動停止を許可する許可情報を、前記稼動停止許可要求情報を送信した前記ノード装置に対して前記ネットワークを介して返信する工程と、前記ノード装置が、前記ノード稼動制御装置から前記ネットワークを介して返信されてきた前記許可情報を受信した場合には、稼動停止状態に切り換える工程と、を備えることを特徴とする。
【００２８】
請求項１４に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおいて、ノード稼動制御装置は、少なくとも稼動状態にある前記ノード装置の数と、稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にある前記ノード装置の数と、を記憶するノード数記憶手段と、前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断するノード数判断手段と、前記稼動状態にあるノード装置の数がＮ１より大きいと判断され、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断された場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する稼動指令情報送信手段と、を備え、前記ノード装置は、前記ノード稼動制御装置から前記ネットワークを介して送信されてきた前記稼動指令情報を受信する稼動指令情報受信手段と、前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える状態切換手段と、を備えることを特徴とする。
【００２９】
請求項１５に記載の発明は、ネットワークを介して互いに通信可能であり、取得したコンテンツデータを保存可能な複数のノード装置の夫々が、自己が保存していないコンテンツデータを前記ネットワークを介して稼動状態にある他のノード装置から取得可能とし、且つ、夫々の前記ノード装置が、自己が保存していないコンテンツデータを前記ネットワークを介して当該コンテンツデータを提供するサーバ装置からも取得可能とした通信システムにおけるノード稼動制御方法であって、ノード稼動制御装置が、前記稼動状態にあるノード装置の数がＮ１（Ｎ１は自然数）より大きいか否かを判断し、且つ、前記稼動状態にあるノード装置の数と稼動停止の許可を求めたが不許可とされ稼動の停止を待機する稼動停止待機状態にあるノード装置の数との総和が、Ｎ２（Ｎ２はＮ１より大きい自然数）より小さいか否かを判断し、前記稼動状態にあるノード装置の数がＮ１より大きいと判断し、且つ、前記稼動状態にあるノード装置の数と前記稼動停止待機状態にあるノード装置の数との総和がＮ２より小さいと判断した場合には、前記総和が少なくとも前記Ｎ２になるように、稼動指令を示す稼動指令情報を、稼動停止状態にある前記ノード装置に対して前記ネットワークを介して送信する工程と、前記ノード装置が、前記ノード稼動制御装置から前記ネットワークを介して送信されてきた前記稼動指令情報を受信した場合には、稼動停止状態から、稼動の停止を待機する稼動停止待機状態に切り換える工程と、を備えることを特徴とする。
【発明の効果】
【００３０】
この発明によれば、各ノード装置の最適な稼動制御を行い、前記サーバ装置への負荷を軽減させつつ、当該ノード装置における省エネをも向上させることができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ＤＨＴ（Distributed Hash Table）を利用したコンテンツ配信システムに本発明を適用した場合の実施形態である。
【００３２】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、通信システムの一例としてのコンテンツ配信システムの概要構成等について説明する。
【００３３】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３４】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、および通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、メッセージ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３５】
コンテンツ配信システムＳは、このようなネットワーク８を介して互いに通信可能な複数のノード装置（以下、「ノード」という）Ａ，Ｂ，Ｃ・・・Ｘ，Ｙ，Ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノードＡ，Ｂ，Ｃ・・・Ｘ，Ｙ，Ｚ・・・には、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。かかる製造番号およびＩＰアドレスは、複数のノード間で重複しないものである。
【００３６】
このようなコンテンツ配信システムＳにおいて、当該ノード同士が、互いに情報をやり取りする際には、お互いのＩＰアドレス等を知っていなければならない。
【００３７】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノードが互いにネットワーク８に参加している全てのノードのＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノードのＩＰアドレスを覚えておくのは現実的ではない。また、任意のノードの電源がＯＮ或いはＯＦＦとすると、各ノードにて記憶している当該任意のノードのＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００３８】
そこで、１台のノードでは、ネットワーク８に参加している全てのノードのうち、必要最低限のノードのＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノードについては、各ノード間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【００３９】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００４０】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置されたノードを、オーバーレイネットワーク９に参加しているノードという。
【００４１】
なお、オーバーレイネットワーク９への参加は、例えば、未参加のノードにおいて稼動指令があった（例えば、電源ＯＮ（入）指示がなされることによる）場合に、当該未参加のノードが既参加の任意のノード（例えば、常時電源が入っているコンタクトノード）に接続して参加要求を送ることによってなされる。このようにオーバーレイネットワーク９に参加したノードは、稼動状態となり、ＤＨＴを用いた後述するルーティングテーブル（コンテンツ配信システムＳ上における各種メッセージの転送先を規定した転送先テーブル）を利用して他のノードと互いに情報をやり取りすることが可能となる。一方、既参加（参加中）のノードにおいて稼動停止指令があった（例えば、電源ＯＦＦ（切）指示がなされることによる）場合には、当該既参加のノードはオーバーレイネットワーク９から脱退し、稼動停止状態となり、他のノードと互いに情報をやり取りすることが不能となる。
【００４２】
また、各ノードは、固有のノード識別情報としてのノードＩＤを有しており、当該ノードＩＤは、例えば、ＩＰアドレスあるいは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化して得た一定桁数からなるハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このノードＩＤは、ノードの最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2128＝340×1036台のノードを運用できる。
【００４３】
このように共通のハッシュ関数により求められたノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００４４】
［１．１  ＤＨＴを用いたルーティングテーブルの作成手法］
次に、図２及び図３を参照して、ＤＨＴの内容であるルーティングテーブルの作成手法の一例について説明する。
【００４５】
図２は、ルーティングテーブルが作成される様子の一例を示す図であり、図３は、ルーティングテーブルの一例を示す図である。
【００４６】
各ノードに付与されたノードＩＤは、共通のハッシュ関数によって生成したため、図２（Ａ）乃至図２（Ｃ）に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は８ｂｉｔでノードＩＤを付与し、図示したものである。図中黒点はノードＩＤを示し、反時計回りでＩＤが増加するものとする。
【００４７】
先ず、図２（Ａ）に示す如く、ＩＤ空間が、所定の規則に従って幾つかのエリアに分割される（分けられる）。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８Ｂｉｔの４進数で表すこととした。そして、ノードＮのノードＩＤを「1023」とし、このノードＮのルーティングテーブルを作る例について説明する。
【００４８】
（レベル１のルーティング）
ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」、「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の整数、以下同様。）で分けられる。ノードＮは、当該ノードＮ自身のノードＩＤが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。
【００４９】
そして、ノードＮは、自己の存在するエリア（すなわち、「1XXX」のエリア）以外のエリアに存在する任意の各ノード（オーバーレイネットワーク９に参加中のノード）のノードＩＤ及びＩＰアドレス等（実際には、ポート番号も含まれる、以下同様）をレベル１のテーブルにおける各欄（テーブルエントリー）に登録（記憶）する。
【００５０】
図３（Ａ）がレベル１のテーブルの一例である。なお、レベル１のテーブルにおける２列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。また、各欄に登録される各ノードのノードＩＤ及びＩＰアドレス等は、例えば、オーバーレイネットワーク９への参加の際に、他のノードから取得されるようになっている（以下同様）。
【００５１】
（レベル２のルーティング）
次に、図２（Ｂ）に示す如く、上記４分割されたエリアのうち、ノードＮ自身の存在するエリアが更に４分割され、４つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分けられる。
【００５２】
そして、ノードＮは、上記と同様に自己の存在するエリア以外のエリアに存在する任意の各ノード（オーバーレイネットワーク９に参加中のノード）のノードＩＤ及びＩＰアドレス等をレベル２のテーブルにおける各欄（テーブルエントリー）に登録する。
【００５３】
図３（Ｂ）がレベル２のテーブルの一例である。なお、レベル２のテーブルにおける１列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。
【００５４】
（レベル３のルーティング）
更に、図２（Ｃ）に示す如く、上記４分割されたエリアのうち、ノードＮ自身の存在するエリアが更に４分割され、４つのエリア「100X」、「101X」、「102X」、「103X」に分けられる。
【００５５】
そして、ノードＮは、上記と同様に自己の存在するエリア以外のエリアに存在する任意の各ノード（オーバーレイネットワーク９に参加中のノード）のノードＩＤ及びＩＰアドレス等をレベル３のテーブルにおける各欄（テーブルエントリー）に登録する。
【００５６】
図３（Ｃ）がレベル３のテーブルの一例である。なお、レベル３のテーブルにおける３列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無く、２列目及び４列目の欄はそのエリアにノードが存在しないため空白となる。
【００５７】
このようにして、レベル４まで同様にルーティングテーブルが図３（Ｄ）に示す如く作成されることにより、８ｂｉｔのＩＤ全てを網羅することができる。また、レベルが上がる（高くなる）毎にテーブルの中に空白が目立つようになる。
【００５８】
以上説明した手法（規則）に従って作成したルーティングテーブルを、全てのノードが夫々作成して所有することになる（かかるルーティングテーブルの作成は、例えば、未参加のノードがオーバーレイネットワーク９に参加する際に行われるが、本発明とは直接の関係がないので詳しい説明を省略する）。
【００５９】
つまり、各ノードは、複数に分けられた各エリアに属する一のノードのノードＩＤ及びＩＰアドレス等を、夫々のエリアに対応付けて一の段階（レベル）として規定し、さらに自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノードのＩＰアドレス等を、夫々のエリアに対応付けて次の段階（レベル）として規定するルーティングテーブルを記憶している。
【００６０】
なお、ノードＩＤの桁数に応じてレベルの数が決まり、進数の数に応じて図３（Ｄ）における各レベルの注目桁の数が決まる。例えば、１６桁１６進数である場合には、６４ｂｉｔのＩＤとなり、レベル１６で注目桁の（英）数字は０〜Ｆとなる。
【００６１】
また、各ノードにおけるルーティングテーブルは、例えば、他のノードにメッセージを転送する際等に更新されるようになっており、かかる更新において、オーバーレイネットワーク９から脱退したノードのノードＩＤ及びＩＰアドレス等は、当該ルーティングテーブルにおける欄から削除されるようになっている。
【００６２】
［１．２  コンテンツデータの保存及び発見方法］
次に、コンテンツ配信システムＳにおいて取得可能なコンテンツデータの保存及び発見方法について説明する。
【００６３】
オーバーレイネットワーク９においては、様々な種類のコンテンツ（例えば、映画や音楽等）データが複数のノードに分散して保存（格納）されている（言い換えれば、コンテンツデータが複製されその複製情報であるレプリカのファイルが分散保存されている）。
【００６４】
例えば、ノードＡ及びノードＤには、タイトルがＸＸＸの映画のコンテンツデータが保存されており、一方、ノードＢ及びノードＣには、タイトルがＹＹＹの映画のコンテンツデータが保存されるというように、複数のノード（以下、コンテンツデータを保存するノドを「コンテンツ保持ノード」という）に分散されて保存される。
【００６５】
また、これらのコンテンツデータには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有のコンテンツ識別情報）等の情報が付加されている。
【００６６】
このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値（或いは、当該コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム運営者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、コンテンツカタログ情報に、コンテンツ名とそのコンテンツＩＤの対応が書かれた状態で、各ノードに配布される。
【００６７】
また、このように分散保存されているコンテンツデータの所在、つまり、当該コンテンツデータを保存したノードのＩＰアドレス等と、当該コンテンツデータに対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該コンテンツデータの所在の管理元のノード（以下、「ルートノード」、又は「コンテンツ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００６８】
例えば、タイトルがＸＸＸの映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＭにより管理され、タイトルがＹＹＹの映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＯにより管理される。
【００６９】
つまり、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一のコンテンツデータ（コンテンツＩＤが同一）が、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、１つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードであるように定められる。
【００７０】
このようにしてコンテンツデータを保存したノード（コンテンツ保持ノード）は、当該コンテンツデータを保存したことをそのルートノードに知らせる（つまり、オーバーレイネットワーク９上で公開する）ために、そのコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等が含まれるパブリッシュ（登録通知）メッセージ（コンテンツデータを保存したので、ＩＰアドレス等の登録の要求を示す登録メッセージ）を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。
【００７１】
図４は、コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をＤＨＴのノードＩＤ空間にて示した概念図である。
【００７２】
図４の例において、例えば、コンテンツ保持ノードであるノードＡは、自己のルーティングテーブルにおけるレベル１のテーブルを参照して、パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＨのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを送信する。
【００７３】
これに対して、ノードＨは、当該パブリッシュメッセージを受信し、自己のルーティングテーブルにおけるレベル２のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＩのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【００７４】
これに対して、ノードＩは、当該パブリッシュメッセージを受信し、自己のルーティングテーブルにおけるレベル３のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＭのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【００７５】
これに対して、ノードＭは、パブリッシュメッセージを受信し、自己のルーティングテーブルにおけるレベル４のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤが自己のものである、つまり、自分がそのコンテンツＩＤのルートノードであることを認識し、当該パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）することになる。
【００７６】
なお、パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報は、コンテンツ保持ノードからルートノードに至るまでの転送経路におけるノード（以下、「中継ノード」という。図４の例では、ノードＨ、及びノードＩ）においても登録（キャッシュ）される（このように、インデックス情報をキャッシュする中継ノードをキャッシュノードという）。
【００７７】
そして、あるノードのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータ（自己のノードに保存されていないコンテンツデータ）の取得を望むノード（以下、「ユーザノード」という）は、当該ユーザによりコンテンツカタログ情報（コンテンツリストともいう）から選択されたコンテンツデータのコンテンツＩＤを含むコンテンツ所在問合せメッセージを、自己のルーティングテーブルにしたがって他のノードに対して送出する。これにより、当該コンテンツ所在問合せメッセージは、上述したパブリッシュメッセージと同様に、コンテンツＩＤをキーとするＤＨＴルーティングによって、いくつかの中継ノードを経由（転送）されて、そのコンテンツＩＤのルートノードに辿り着く。そして、上記ユーザノードは、当該ルートノードから、上述したそのコンテンツデータのインデックス情報を取得（受信）し、これに含まれＩＰアドレス等に基づいて上記コンテンツデータを保存しているコンテンツ保持ノードに接続し、そこから当該コンテンツデータを取得（ダウンロード）することが可能になる。或いは、当該ルートノードが当該インデックス情報に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ（ユーザノードのＩＰアドレス等を含み、当該ユーザノードに対してコンテンツデータの送信要求を示す要求情報）を送信することにより、ユーザノードは、上記コンテンツ保持ノードから当該コンテンツデータの提供を受けることが可能になる。
【００７８】
なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード（キャッシュノード）から当該ＩＰアドレス等を取得（受信）することもできる。
【００７９】
こうしてコンテンツデータを取得したユーザノードは、上述したパブリッシュメッセージを、そのルートノードに向けて送出することで、新たに、当該取得したコンテンツデータを保存するコンテンツ保持ノードとなる。
【００８０】
なお、上記コンテンツカタログ情報には、コンテンツ配信システムＳにおいて取得可能なコンテンツデータの属性情報（例えば、コンテンツＩＤ、コンテンツ名、ジャンル、アーティスト名、出演者（コンテンツが映画や放送番組の場合のキャスト）、監督名等）が記述されており、例えば、コンテンツカタログ情報を管理するカタログ管理サーバから全ノードに対して配信されるようになっている。
【００８１】
［１．３  コンテンツ提供サーバＳＡによるコンテンツデータの提供］
上述したように、各ノードは、ＤＨＴルーティングにより、所望のコンテンツデータを、稼動状態にある他のノードから取得可能であるが、オーバーレイネットワーク９に参加しているノードの数が少ないほど、コンテンツデータを取得するまでの時間が非常に長かったり、コンテンツデータの取得が失敗する確率が高くなる。また、コンテンツデータがコンテンツ配信システムＳに投入され（例えば、コンテンツ投入サーバによりあるノード装置に初めて保存され）て間もないうちは、当該コンテンツデータを保存しているノードの数が少ないため、コンテンツデータを取得するまでの時間が非常に長かったり、コンテンツデータの取得が失敗する確率が高くなる。
【００８２】
これを解消するため、本実施形態におけるコンテンツ配信システムＳでは、コンテンツデータを提供する一又は複数のコンテンツ提供サーバ（サーバ装置の一例）ＳＡを備えており、各ノードは、当該コンテンツ提供サーバＳＡに接続し、所望のコンテンツデータを要求することにより、当該コンテンツ提供サーバＳＡからも所望のコンテンツデータを取得可能になっている。
【００８３】
図５は、コンテンツ提供サーバＳＡのサーバ負荷量と、参加ノード数との関係を示す図である。
【００８４】
図５の曲線５１に示すように、複数のノードに対してコンテンツデータを提供するためにコンテンツ提供サーバＳＡに課される負荷を示すサーバ負荷量は、オーバーレイネットワーク９に参加し稼動状態にあるノードの数が増加する（ノードの数が０からＮ１まで）にしたがって増加していくことになるが、更に当該稼動状態にあるノードの数が増加していく（ノードの数がＮ１以上）と、コンテンツデータの要求に対してコンテンツ提供サーバＳＡによらず各ノードにより応じる割合も増加してくるので、次第にサーバ負荷量が減少してくることになる。
【００８５】
また、図５の曲線５２に示すように、コンテンツデータの種類が多いと、コンテンツデータの種類が少ないとき（曲線５１）よりも、上記サーバ負荷量が増加し、ノードの数がＮ１（Ｎ１は自然数）からＮ２（Ｎ２はＮ１より大きい自然数）までの範囲内にある場合、コンテンツ提供サーバＳＡの能力（性能）限界値（サーバ能力限界値）を超えることとなる。ここで、Ｎ１は、稼動状態にあるノードの数が増加することにより、コンテンツデータの提供のためコンテンツ提供サーバＳＡに課されるサーバ負荷量が増加しコンテンツ提供サーバＳＡの能力限界値となるノードの数に相当し、Ｎ２は、稼動状態にあるノードの数が更に増加することにより、上記サーバ負荷量が減少し上記能力限界値となるノードの数に相当する。
【００８６】
このため、本実施形態においては、後述するように、当該サーバ負荷量が当該能力限界値を超えないように、ノード稼動制御サーバ（ノード稼動制御装置の一例）ＣＳを設け、これにより、各ノードの稼動を制御するようになっている。
【００８７】
［２．ノードの構成等］
次に、図６を参照して、ノードの構成及び機能について説明する。
【００８８】
図６は、ノードの概要構成例を示す図である。
【００８９】
各ノードは、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、コンテンツデータ、コンテンツカタログ情報、ルーティングテーブル及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶部１２と、受信されたコンテンツデータ等を一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード又はサーバとの間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４および通信部２０はバス２２を介して相互に接続されている。また、ノードにおける各構成部分には、電源ＯＮにより電源供給がなされる。なお、ノードとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。また、記憶部１２には、上述したコンタクトノードのＩＰアドレス等、コンテンツ提供サーバＳＡのＩＰアドレス等、及びノード稼動制御サーバＣＳのＩＰアドレス等が予め記憶されている。
【００９０】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のノード処理プログラムを含む）を読み出して実行することにより、全体を統括制御すると共に、オーバーレイネットワーク９への参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっており、更に、本発明における稼動停止判断手段、許可要求情報送信手段、不許可情報受信手段、及び状態切換手段等として機能するようになっている。
【００９１】
具体的には、制御部１１は、例えばユーザによる電源ＯＮ（入）指示により稼動指令を認識した場合、稼動停止状態から稼動状態に切り換え（例えば、当該ノードにおける全ての電源をＯＮ）、稼動状態になったことを示す稼動（言い換えれば、電源ＯＮになったことを示す）メッセージをノード稼動制御サーバＣＳに送信する。
【００９２】
また、制御部１１は、例えばユーザによる電源ＯＦＦ（切）指示による稼動停止指令を認識した場合、稼動停止の許可を求める稼動停止許可要求メッセージ（稼動停止許可要求情報）をノード稼動制御サーバＣＳに送信する。これに対して当該ノード稼動制御サーバＣＳからの当該稼動停止を許可する許可メッセージ（許可情報）を受信した場合には、制御部１１は、稼動状態又は稼動停止待機状態から稼動停止状態に切り換える。制御部１１は、ノード稼動制御サーバＣＳからの稼動指令に応じるのに必要な電源（例えば、制御部１１及び通信部２０に供給される電源）のみを残して他の電源はＯＦＦにすることによって、オーバーレイネットワーク９からノードが脱退して、ノードは稼動停止状態となる。一方、当該ノード稼動制御サーバＣＳからの当該稼動停止を不許可とする不許可メッセージ（不許可情報）を受信した場合には、制御部１１は、稼動状態から稼動停止を待機する稼動停止待機状態に切り換える。制御部１１は、他のノードからの要求に応じてコンテンツデータを提供するのに必要な電源（例えば、制御部１１、記憶部１２及び通信部２０に供給される電源）のみを残して他の電源はＯＦＦにすることによって、オーバーレイネットワーク９からノードは脱退せず（参加維持）、ノードは稼動停止待機状態となる。或いは、制御部１１は、電源ＯＦＦ（切）指示による稼動停止指令を認識した時点で、記憶部１２及び通信部２０に供給される電源のみを残して他の電源はＯＦＦするように構成して、ノードを稼動停止待機状態としても良い。
【００９３】
また、制御部１１は、ノード稼動制御サーバＣＳからの稼動指令を示す稼動指令メッセージ（稼動指令情報）の受信により当該稼動指令を認識した場合には、稼動停止状態から稼動停止待機状態に切り換える。制御部１１は、他のノードからの要求に応じてコンテンツデータを提供するのに必要な電源をＯＮにすることにより、ノードがオーバーレイネットワーク９に参加して、ノードを稼動停止待機状態とする。
【００９４】
なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００９５】
［３．ノード稼動制御サーバＣＳの構成等］
ここで、図７を参照して、ノード稼動制御サーバＣＳの構成及び機能について説明する。
【００９６】
図７は、ノード稼動制御サーバＣＳの概要構成例を示す図である。
【００９７】
各ノード稼動制御サーバＣＳは、図７に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部３１と、各種データ及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶部３２と、ネットワーク８を通じて他のノード又はサーバとの間の情報の通信制御を行うための通信部３３と、を備えて構成され、これらはバス３４を介して相互に接続されている。なお、ノード稼動制御サーバＣＳには、ＩＰアドレスが割り当てられている。
【００９８】
このような構成において、制御部３１は、ＣＰＵが記憶部３２等に記憶されたプログラム（本発明のノード稼動制御処理プログラムを含む）を読み出して実行することにより、全体を統括制御すると共に、本発明における許可要求情報受信手段、ノード数判断手段、不許可情報返信手段、許可情報返信手段、稼動指令情報送信手段、及び許可情報送信手段等として機能するようになっている。
【００９９】
具体的には、制御部３１は、コンテンツ配信システムＳにおける全てのノードの状態（稼動状態、稼動停止待機状態、及び稼動停止状態の何れか）を示す状態情報を、ノード数記憶手段としてのＲＡＭ等に記憶された状態情報テーブルに登録し管理している。
【０１００】
図８は、状態情報テーブルに登録された情報の一例を示す図である。図８に示すように、状態情報テーブルには、各ノードのＩＰアドレスに対応付けられて状態情報が登録されている。これらの状態のうち、稼動状態は、ノードからの稼動メッセージが受信された場合に、当該ノードのＩＰアドレスに対応付けられて登録（変更登録）される。また、稼動停止待機状態は、ノードからの稼動停止許可要求メッセージが受信され、稼動停止が不許可とされた場合に、当該ノードのＩＰアドレスに対応付けられて登録（変更登録）される。また、稼動停止状態は、ノードからの稼動停止許可要求メッセージが受信され、稼動停止が許可された場合に、当該ノードのＩＰアドレスに対応付けられて登録（変更登録）される。
【０１０１】
また、制御部３１は、状態情報テーブルに登録された各ノードの状態情報に基づき、稼動状態にあるノードの数と、稼動停止待機状態にあるノードの数と、稼動停止状態にあるノードの数と、を算出し記憶するようになっている。
【０１０２】
そして、制御部３１は、ノードからの稼動停止許可要求メッセージを受信した場合に、稼動状態にあるノードの数が、例えば図５に示すＮ１からＮ２までの所定範囲内にあるか否かを判断し、当該範囲内にある場合には稼動停止を不許可とする不許可メッセージを当該ノードに対して返信し、当該範囲内にない場合には稼動停止を許可する許可メッセージを当該ノードに対して返信する。つまり、図５の曲線５２に示すように、稼動状態にあるノード数が、Ｎ１からＮ２までの範囲内では、コンテンツ提供サーバＳＡのサーバ負荷量が能力限界値を超えることになるため、この範囲内ではノードが稼動停止をしないように制御する趣旨である。
【０１０３】
なお、稼動状態にあるノードの数がＮ１からＮ２までの所定範囲内にあるか否かの判断に当たって、ノード稼動制御サーバＣＳの記憶部３２には、図５の曲線５２に示すようなコンテンツ提供サーバＳＡのサーバ負荷量と参加ノード数との関係を表す関数又はテーブル、及びコンテンツ提供サーバＳＡの能力限界値が予め記憶されるようになっている。
【０１０４】
ここで、コンテンツ提供サーバＳＡのサーバ負荷量は、複数のノードによりコンテンツデータの要求が見込まれる推定需要量Ｒと、当該コンテンツデータの要求に対してコンテンツ提供サーバＳＡによらず各ノードにより応じることが可能な（つまり、ノード間で賄うことが可能な）供給可能量Ｓとの差に基づいて決定される（例えば、推定需要量Ｒ−供給可能量Ｓ＝サーバ負荷量）。推定需要量Ｒと供給可能量Ｓは何れもノードの数により変化するパラメータであるので、サーバ負荷量は当該ノードの数をパラメータとした関数で表されることになる。
【０１０５】
例えば、推定需要量Ｒは、コンテンツ配信システムＳにおいて稼動状態にあるノードの数と、コンテンツデータの推定視聴率（％）との積により決定される。このコンテンツデータの推定視聴率（％）は、例えばサービスとして保障しなければならない視聴率であり、これは、システム管理者等により予め設定される。なお、タイトルが異なるコンテンツデータ（ファイル）毎に人気度が変るため、その推定視聴率も変ってくるが、例えば、各コンテンツデータ（ファイル）の推定視聴率を平均したものが上記推定視聴率となる。
【０１０６】
一方、供給可能量Ｓは、例えば、１ノード当たりのＣＰＵの演算能力（クロック周波数）やネットワーク８の有効帯域（データ伝送速度）等の配信能力の他、全ノードにおけるコンテンツデータの総記憶容量、提供されるコンテンツデータの総データ量、検索（上述したＤＨＴルーティング）によるコンテンツデータの発見・取得確率等によって決定される。
【０１０７】
一例として、稼動状態にあるノードの数が５００台（この５００台のノードは、コンテンツデータを要求する可能性があり、且つコンテンツデータの要求に応じることが可能である）、稼動停止待機状態にあるノードの数が１００台（この１００台のノードは、コンテンツデータを要求する可能性はないが、コンテンツデータの要求に応じることが可能である）、推定視聴率が８０％、提供されるコンテンツデータの総データ量が１００ＧＢ、１ノード当たりのコンテンツデータの記憶容量が１００ＭＢ、及び検索によるコンテンツデータの発見・取得確率を９０％と仮定すると、
推定需要量Ｒ＝５００台×８０％＝４００リクエスト、となる。
【０１０８】
また、全ノードにおけるコンテンツデータの総記憶容量は、１００ＭＢ×（５００台＋１００台）＝６０ＧＢとなるので、提供されるコンテンツデータの総データ量「１００ＧＢ」のうちの、３／５（６０ＧＢ／１００ＧＢ）のコンテンツデータが複数のノードに保存可能になる。したがって、検索（上述したＤＨＴルーティング）によるコンテンツデータの発見・取得確率は、（６０ＧＢ／１００ＧＢ）×９０％＝５４％となり、
供給可能量Ｓ＝６００台×５４％＝３２４リクエスト、となる。
【０１０９】
よって、サーバ負荷量は、４００−３２４＝７６リクエスト、という計算となる。
【０１１０】
また、コンテンツ提供サーバＳＡの能力限界値は、当該コンテンツ提供サーバＳＡのコンテンツデータの提供能力を示すパラメータ、例えば、ＣＰＵの演算能力（クロック周波数）、及びネットワーク８の有効帯域（データ伝送速度）等に基づいて決定される（このとき、ある程度のマージンも考慮される）ようになっている。
【０１１１】
なお、稼動状態にあるノードの数が、例えば図５に示すＮ１からＮ２までの所定範囲内にあるか否かを判断する代わりに、制御部３１は、コンテンツ提供サーバＳＡのサーバ負荷量が能力限界値以上であるか（又は超えたか）否かを判断し、当該サーバ負荷量が能力限界値以上である（又は超えた）場合には上記不許可メッセージを当該ノードに対して返信し、当該サーバ負荷量が能力限界値以上でない（又は超えない）場合には上記許可メッセージを当該ノードに対して返信するように構成しても良い。
【０１１２】
更に、制御部３１は、稼動状態にあるノードの数が、上記Ｎ１より大きいか否かを判断し、且つ、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、上記Ｎ２より小さいか否かを判断し、稼動状態にあるノードの数がＮ１より大きいと判断し、且つ、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和がＮ２より小さいと判断した場合には、当該総和が少なくとも上記Ｎ２になるように、稼動指令を示す稼動指令メッセージを、稼動停止状態にあるノードに対して送信するようになっている。これは、移動停止待機状態にあるノードの数を増やすことによって上述した供給可能量Ｓを上昇させ、サーバ負荷量を能力限界値以下に低下させるように制御する趣旨である。例えば、図５の例において、稼動状態にあるノードの数がＮａとし、稼動停止待機状態にあるノードの数をＮｂとすると、ＮｂをＮｃまで増やすことにより、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和をＮ２以上にさせるのである。
【０１１３】
更にまた、制御部３１は、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、Ｎ２より大きいと判断した場合には、当該総和がＮ２よりも小さくならないように、上記許可メッセージを、稼動停止待機状態にあるノードに対して送信するようになっている。これは、稼動停止待機状態にあるノードは、稼動停止の許可を求めたが不許可とされ稼動の停止を待機しているノードであるため、ノードの数が増加しサーバ負荷量が能力限界値より小さくなった場合には、速やかに当該ノードに対して上記許可メッセージを送り（例えば、稼動停止許可要求メッセージの送信が早いノード順に）、上記総和をＮ２以上確保しつつ稼動停止させるように制御する趣旨である。
【０１１４】
更にまた、制御部３１は、稼動状態にあるノードの数がＮ１より大きくない（つまり、Ｎ１以下）と判断した場合には、上記許可メッセージを、稼動停止待機状態にあるノードに対して送信するようになっている。これは、ノードの数が減少しサーバ負荷量が能力限界値より小さくなった場合には（ノードの数がＮ１以下となる範囲では、サーバ負荷量は減少するのみ）、速やかに稼動停止待機状態にあるノードに対して上記許可メッセージを送り（例えば、稼動停止許可要求メッセージの送信が早いノード順に）、稼動停止させるように制御する趣旨である。
【０１１５】
なお、上記ノード稼動制御処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【０１１６】
［４．コンテンツ配信システムの動作］
次に、コンテンツ配信システムＳの動作について説明する。
【０１１７】
（ノードにおける処理）
先ず、図９を参照してノードにおける処理を説明する。
【０１１８】
図９は、各ノードの制御部１１における処理を示すフローチャートである。
【０１１９】
図９に示す処理は、例えばノードＮのユーザによる電源ＯＮ（入）指示又はノード稼動制御サーバＣＳからの稼動指令を示す稼動指令メッセージの受信があった場合に開始され、例えば、他のノードからの要求に応じてコンテンツデータを提供するのに必要な電源（例えば、制御部１１、記憶部１２及び通信部２０に供給される電源）のみをＯＮ（稼動停止状態から稼動停止待機状態への切り換え）にする（ステップＳ１）。
【０１２０】
次いで、制御部１１は、オーバーレイネットワーク９への参加処理を実行する（ステップＳ２）。当該参加処理においては、上述したように、ノードＮがコンタクトノードに接続（記憶部１２に記憶されたコンタクトノードのＩＰアドレス等に基づき接続）して参加要求を行い、例えばコンタクトノード等から返信されたルーティングテーブルに基づき、自己のルーティングテーブルを作成する。こうして、当該ノードＮは、オーバーレイネットワーク９に参加することになる。
【０１２１】
次いで、制御部１１は、当該処理の開始が上記稼動指令メッセージの受信によるものか否かを判別し（ステップＳ３）、上記稼動指令メッセージの受信によるものでない場合には（ステップＳ３：ＮＯ）、ステップＳ４に進み、上記稼動指令メッセージの受信によるものである場合には（ステップＳ３：ＹＥＳ）、ステップＳ９に進む。
【０１２２】
ステップＳ４では、制御部１１は、上記ステップＳ１でＯＮにした以外の残りの電源（例えば、表示部１６におけるディスプレイ等へ供給する電源）をＯＮ（稼動停止待機状態から稼動状態への切り換え）にする。
【０１２３】
次いで、制御部１１は、ノード稼動制御サーバＣＳに接続（記憶部１２に記憶されたノード稼動制御サーバＣＳのＩＰアドレス等に基づき接続）し、稼動状態になったことを示す稼動（言い換えれば、電源ＯＮになったことを示す）メッセージを、ネットワーク８を介して当該ノード稼動制御サーバＣＳに送信（稼動状態の通知）する（ステップＳ５）。
【０１２４】
次いで、制御部１１は、稼動状態におけるメッセージ送受信処理を実行する（ステップＳ６）。この稼動状態におけるメッセージ送受信処理においては、例えば、ユーザからのファイル（コンテンツデータファイル）の要求指示に応じて、上述したようにコンテンツ所在問合せメッセージを他のノードに対して送出したり、他のノードからのメッセージ（例えば、コンテンツ所在問合せメッセージ、或いはコンテンツ送信要求メッセージ）を受信した場合に、上述したように当該メッセージに応じた処理（例えば、コンテンツ所在問合せメッセージを他のノードへ転送したり、コンテンツ送信要求メッセージに応じて自己が保存しているコンテンツデータをユーザノードへ提供したりするなどの処理）が行われる。
【０１２５】
次いで、制御部１１は、例えばノードＮのユーザが入力部２１を操作して電源ＯＦＦ（切）指示を行うことにより、当該ノードＮに対する稼動停止指令があったか否かを判断し（ステップＳ７）、稼動指令がないと判断した場合には（ステップＳ７：ＮＯ）、ステップＳ６に戻り、メッセージ送受信処理を行う。つまり、ユーザからの電源ＯＦＦ指示があるまでは通常のメッセージ送受信処理が行われることになる。
【０１２６】
そして、制御部１１は、稼動停止指令があったと判断した場合（稼動停止指令を認識した）場合には（ステップ７：ＹＥＳ）、例えば、他のノードからの要求に応じてコンテンツデータを提供するのに必要な電源（例えば、制御部１１、記憶部１２及び通信部２０に供給される電源）のみを残して他の電源はＯＦＦ（稼動状態から稼動停止待機状態への切り換え）にし（ステップＳ８）、ステップＳ９に進む。
【０１２７】
ステップＳ９では、制御部１１は、ノード稼動制御サーバＣＳに接続し、稼動停止の許可を求める稼動停止許可要求メッセージを、ネットワーク８を介して当該ノード稼動制御サーバＣＳに送信する。
【０１２８】
次いで、制御部１１は、ノード稼動制御サーバＣＳから上述した許可メッセージを受信したか否かを判別し（ステップＳ１０）、当該許可メッセージを受信しない場合には（ステップＳ１０：ＮＯ）、当該ノード稼動制御サーバＣＳから上述した不許可メッセージを受信したか否かを判別し（ステップＳ１１）、当該不許可メッセージを受信しない場合には（ステップＳ１１：ＮＯ）、ステップＳ１０に戻る。
【０１２９】
そして、ノード稼動制御サーバＣＳから当該許可メッセージを受信した場合には（ステップＳ１０：ＹＥＳ）、制御部１１は、ノード稼動制御サーバＣＳからの稼動指令に応じるのに必要な電源（例えば、制御部１１及び通信部２０に供給される電源）のみを残して他の電源はＯＦＦ（稼動停止待機状態から稼動停止状態への切り換え、オーバーレイネットワーク９からは脱退）にし（ステップＳ１２）、当該処理を終了する。
【０１３０】
一方、ノード稼動制御サーバＣＳから上記不許可メッセージを受信した場合には（ステップＳ１１：ＹＥＳ）、制御部１１は、稼動停止待機状態におけるメッセージ送受信処理を実行する（ステップＳ１３）。この稼動停止待機状態におけるメッセージ送受信処理においては、他のノードからのメッセージ（例えば、コンテンツ所在問合せメッセージ、或いはコンテンツ送信要求メッセージ）を受信した場合に、上述したように当該メッセージに応じた処理（例えば、コンテンツ所在問合せメッセージを他のノードへ転送したり、コンテンツ送信要求メッセージに応じて自己が保存しているコンテンツデータをユーザノードへ提供したりするなどの処理）が行われる。
【０１３１】
次いで、制御部１１は、ノード稼動制御サーバＣＳから許可メッセージを受信したか否かを判別し（ステップＳ１４）、当該許可メッセージを受信した場合には（ステップＳ１４：ＹＥＳ）、ステップＳ１２に移行し、上記と同様の処理を行う。一方、当該許可メッセージを受信していない場合には（ステップＳ１４：ＮＯ）、制御部１１は、ユーザから入力部２１を介した電源ＯＮ（入）指示があったか否かを判別し（ステップＳ１５）、電源ＯＮ指示がない場合には（ステップＳ１５：ＮＯ）、ステップＳ１３に戻り、上記と同様の処理を行い、電源ＯＮ指示があった場合には（ステップＳ１５：ＹＥＳ）、ステップＳ４に戻り、上記と同様の処理を行う。
【０１３２】
（ノード稼動制御サーバＣＳにおける処理）
先ず、図１０を参照してノード稼動制御サーバＣＳにおける処理を説明する。
【０１３３】
図１０は、ノード稼動制御サーバＣＳの制御部３１における処理を示すフローチャートである。
【０１３４】
図１０において、ステップＳ２１では、制御部３１は、ノードから稼動メッセージ（上記ステップＳ５で送信されたメッセージ）を受信したか否かを判別し、受信していない場合には（ステップＳ２１：ＮＯ）、ステップＳ２３に進み、受信した場合には（ステップＳ２１：ＹＥＳ）、当該稼動メッセージを送信したノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動停止状態または稼動停止待機状態を、稼動状態に変更登録し（ステップＳ２２）、ステップＳ２３に進む。
【０１３５】
次いで、ステップＳ２３では、制御部３１は、ノードから稼動停止許可要求メッセージ（上記ステップＳ９で送信されたメッセージ）を受信したか否かを判別し、受信していない場合には（ステップＳ２３：ＮＯ）、ステップＳ２９に進み、受信した場合には（ステップＳ２３：ＹＥＳ）、稼動状態にあるノードの数が、上述したＮ１からＮ２までの範囲内にあるか否かを判断する（ステップＳ２４）。
【０１３６】
そして、制御部３１は、稼動状態にあるノードの数が上述したＮ１からＮ２までの範囲内にないと判断した場合には（ステップＳ２４：ＮＯ）、上記許可メッセージをネットワーク８を介して、上記稼動停止許可要求メッセージを送信したノードに送信し（ステップＳ２５）、当該ノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動状態を、稼動停止状態に変更登録し（ステップＳ２６）、ステップＳ２９に進む。
【０１３７】
一方、制御部３１は、稼動状態にあるノードの数が上述したＮ１からＮ２までの範囲内にあると判断した場合には（ステップＳ２４：ＹＥＳ）、上記不許可メッセージをネットワーク８を介して、上記稼動停止許可要求メッセージを送信したノードに送信し（ステップＳ２７）、当該ノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動状態を、稼動停止待機状態に変更登録し（ステップＳ２８）、ステップＳ２９に進む。
【０１３８】
次いで、ステップＳ２９では、制御部３１は、稼動状態にあるノードの数が上記Ｎ１以下であるか否かを判別し、Ｎ１以下である場合には（ステップＳ２９：ＹＥＳ）、ステップＳ３０に進み、Ｎ１以下でない（つまり、Ｎ１より大きい）場合には（ステップＳ２９：ＮＯ）、ステップＳ３３に進む。
【０１３９】
ステップＳ３０では、制御部３１は、稼動停止待機状態にあるノードがあるか否かを判別し、ない場合には（ステップＳ３０：ＮＯ）、ステップＳ２１に戻り、ある場合には（ステップＳ３０：ＹＥＳ）、当該ノードに接続して上記許可メッセージをネットワーク８を介して送信し（ステップＳ３１）、当該ノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動停止待機状態を、稼動停止状態に変更登録し（ステップＳ３２）、ステップＳ２１に戻る。
【０１４０】
ステップＳ３３では、制御部３１は、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、上記Ｎ２より大きいか否かを判別し、Ｎ２より大きい場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３４に進み、Ｎ２より大きくない（つまり、Ｎ２以下である）場合には（ステップＳ３３：ＮＯ）、ステップＳ３７に進む。
【０１４１】
ステップＳ３４では、制御部３１は、稼動停止待機状態にあるノードがあるか否かを判別し、ない場合には（ステップＳ３４：ＮＯ）、ステップＳ２１に戻り、ある場合には（ステップＳ３４：ＹＥＳ）、当該稼動停止待機状態にあるノードのうちから例えば稼動停止許可要求メッセージを早く送信した順に所定数（例えば、上記総和から上記Ｎ２を引いた数）のノードを特定し、当該特定したノードに対して上記許可メッセージをネットワーク８を介して送信し（ステップＳ３５）、当該ノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動停止待機状態を、稼動停止状態に変更登録し（ステップＳ３６）、ステップＳ２１に戻る。
【０１４２】
ステップＳ３７では、制御部３１は、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、上記Ｎ２に等しいか否かを判別し、Ｎ２に等しい場合には（ステップＳ３７：ＹＥＳ）、ステップＳ２１に戻り、Ｎ２に等しくない（つまり、Ｎ２より小さい）場合には（ステップＳ３７：ＮＯ）、ステップＳ３８に進む。
【０１４３】
そして、ステップＳ３８では、制御部３１は、稼動停止状態にあるノードのうちから所定数（例えば、上記Ｎ２から上記総和を引いた数）のノードを特定し、当該特定したノードに対して上記稼動指令メッセージを、ネットワーク８を介して送信し、当該ノードのＩＰアドレスに対応付けられて登録（状態情報テーブルに登録）されている稼動停止状態を、稼動停止待機状態に変更登録し（ステップＳ３９）、ステップＳ２１に戻る。
【０１４４】
以上説明したように、上記実施形態によれば、ノード稼動制御サーバＣＳは、ノードからの稼動停止許可要求メッセージを受信した場合に、稼動状態にあるノードの数が、例えば図５に示すＮ１からＮ２までの所定範囲内にあるか否かを判断し、当該範囲内にある場合には稼動停止を不許可とする不許可メッセージを当該ノードに対して返信し、当該範囲内にない場合には稼動停止を許可する許可メッセージを当該ノードに対して返信するように構成したので、各ノードの最適な稼動制御を行い、コンテンツ提供サーバＳＡへの負荷を軽減させつつ、当該ノードにおける省エネをも向上させることができる（各ノードにおける省エネと、コンテンツ提供サーバＳＡへの負荷集中回避の両立を実現）。
【０１４５】
また、ノード稼動制御サーバＣＳは、稼動状態にあるノードの数が、上記Ｎ１より大きいか否かを判断し、且つ、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、上記Ｎ２より小さいか否かを判断し、稼動状態にあるノードの数がＮ１より大きいと判断し、且つ、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和がＮ２より小さいと判断した場合には、当該総和が少なくとも上記Ｎ２になるように、稼動指令を示す稼動指令メッセージを、稼動停止状態にあるノードに対して送信するように構成したので、移動停止待機状態にあるノードの数を迅速に増やして上述した供給可能量Ｓを上昇させ、コンテンツ提供サーバＳＡへの負荷を軽減させつつ、当該ノードにおける省エネをも向上させることができる。
【０１４６】
また、ノード稼動制御サーバＣＳは、稼動状態にあるノードの数と稼動停止待機状態にあるノードの数との総和が、Ｎ２より大きいと判断した場合には、当該総和がＮ２よりも小さくならないように、上記許可メッセージを、稼動停止待機状態にあるノードに対して送信するように構成したので、コンテンツ提供サーバＳＡへの負荷を軽減させつつ、稼動停止待機状態にあるノードを速やかに稼動停止させることができる。
【０１４７】
更にまた、ノード稼動制御サーバＣＳは、稼動状態にあるノードの数がＮ１より大きくないと判断した場合には、コンテンツ提供サーバＳＡへの負荷を軽減させつつ、稼動停止待機状態にあるノードを速やかに稼動停止させることができる。
【０１４８】
なお、上記実施形態においては、ノード稼動制御サーバＣＳと、コンテンツ提供サーバＳＡとを別に設けた例について説明したが、コンテンツ提供サーバＳＡがノード稼動制御サーバＣＳの機能を兼ねるように構成しても良い（その逆でも構わない）。
【０１４９】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提として説明したが、本発明はこれに限定されるものではない。  
【図面の簡単な説明】
【０１５０】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ルーティングテーブルが作成される様子の一例を示す図である。
【図３】ルーティングテーブルの一例を示す図である。
【図４】コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をＤＨＴのＩＤ空間にて示した概念図である。
【図５】コンテンツ提供サーバＳＡのサーバ負荷量と、参加ノード数との関係を示す図である。
【図６】ノードの概要構成例を示す図である。
【図７】ノード稼動制御サーバＣＳの概要構成例を示す図である。
【図８】状態情報テーブルに登録された情報の一例を示す図である。
【図９】各ノードの制御部１１における処理を示すフローチャートである。
【図１０】ノード稼動制御サーバＣＳの制御部３１における処理を示すフローチャートである。
【符号の説明】
【０１５１】
Ａ〜Ｚ  ノード
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
３１  制御部
３２  記憶部
３３  通信部
３４  バス
ＣＳ  ノード稼動制御サーバ
Ｓ  コンテンツ配信システム
【図１】
2008181409.tif 000003
【図２】
2008181409.tif 000004
【図３】
2008181409.tif 000005
【図４】
2008181409.tif 000006
【図５】
2008181409.tif 000007
【図６】
2008181409.tif 000008
【図７】
2008181409.tif 000009
【図８】
2008181409.tif 000010
【図９】
2008181409.tif 000011
【図１０】
2008181409.tif 000012