(57)【要約】【課題】配信システム全体に係る例えば管理サーバを用いることなく、且つＰ２Ｐネットワーク本来の処理をより円滑に実行させることが可能なネットワークシステム等を提供する。【解決手段】配信システムに参加している複数のノード１相互間において、各ノード１の負荷の量を当該各ノード１毎に記憶し、その情報をノード１間で交換する。当該交換した情報に基づき、救援メッセージＲＭの授受により複数のノード１間において負荷を分担することで、配信システム全体として負荷を平滑化する。【選択図】図３
2010086045.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置がネットワークを介して相互に接続されてなるネットワークシステムであって、前記情報処理装置である被監視装置の稼働状態を、他の前記情報処理装置である監視装置が前記ネットワークを介して監視するネットワークシステムにおいて、
前記情報処理装置は、前記ネットワークシステムとしての機能発揮のために担っている負荷の量を示す負荷情報を記憶する負荷情報記憶手段を備え、
前記監視装置は、
当該監視装置が担っている前記負荷の量と、当該監視装置が前記稼働状態を監視している前記被監視装置が担っている前記負荷の量と、を比較する比較手段と、
前記監視装置が担っている前記負荷の量との差が予め設定されている送信実行閾値より大きい量の前記負荷を担っている前記被監視装置を宛先として、当該宛先たる前記被監視装置と前記監視装置との間で前記負荷を分担する旨を含み且つ前記監視装置が担う前記負荷の量を示す前記負荷情報である監視装置負荷情報を含む負荷分担メッセージを送信する監視装置送信手段と、
を備え、
前記送信された負荷分担メッセージの前記宛先たる前記被監視装置は、
前記負荷分担メッセージを受信する受信手段と、
前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報に基づいて、当該負荷分担メッセージの送信元たる前記監視装置との間で、前記負荷を分担する分担動作を行う負荷分担手段と、
を備えることを特徴とするネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムにおいて、
前記監視装置に備えられた前記監視装置送信手段は、当該監視装置が担う前記負荷の量が、前記被監視装置が担う前記負荷の量よりも小さいとき、当該被監視装置が担っている前記負荷の一部を前記監視装置が担う旨を含み且つ前記監視装置負荷情報を含む前記負荷分担メッセージを当該被監視装置を宛先として送信し、
前記被監視装置に備えられた前記負荷分担手段は、前記受信した負荷分担メッセージの送信元たる前記監視装置との間で、当該被監視装置が担っている前記負荷を前記監視装置が分担する前記分担動作を行うことを特徴とするネットワークシステム。
【請求項３】
請求項１に記載のネットワークシステムにおいて、
前記監視装置に備えられた前記監視装置送信手段は、当該監視装置が担う前記負荷の量が、前記被監視装置が担う前記負荷の量よりも大きいとき、当該監視装置が担っている前記負荷の一部を前記宛先たる前記被監視装置が担うことを依頼する旨を含み且つ前記監視装置負荷情報を含む前記負荷分担メッセージを当該被監視装置を宛先として送信し、
前記被監視装置に備えられた前記負荷分担手段は、前記受信した負荷分担メッセージの送信元たる前記監視装置との間で、当該監視装置が担っている前記負荷を前記被監視装置が分担する前記分担動作を行うことを特徴とするネットワークシステム。
【請求項４】
請求項１から３のいずれか一項に記載のネットワークシステムに含まれる前記情報処理装置であって、
前記監視装置としての前記比較手段及び前記監視装置送信手段と、
前記被監視装置としての前記受信手段及び前記負荷分担手段と、
を備えることを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
当該情報処理装置が担っている前記負荷の量との差が最も大きい量の前記負荷を担っており且つ当該情報処理装置が前記監視装置として前記稼働状態を監視している他の前記情報処理装置を宛先として、前記受信した負荷分担メッセージを転送する転送手段を更に備えることを特徴とする情報処理装置。
【請求項６】
請求項４又は５に記載の情報処理装置において、
前記負荷分担手段は、前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報により示されている前記負荷の量と、当該情報処理装置が担っている前記負荷の量と、の差が予め設定されている分担実行閾値以上であるときのみ、前記分担動作を行うことを特徴とする情報処理装置。
【請求項７】
請求項４から６のいずれか一項に記載の情報処理装置において、
前記ネットワークシステム内において配信されるべき配信情報を記録する配信情報記録手段を更に備えており、
前記負荷情報記憶手段は前記配信情報の記録量を前記負荷情報として記憶し、
前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた前記配信情報記録手段の間で前記配信情報を分割して記録する分割記録処理を前記分担動作として行うことを特徴とする情報処理装置。
【請求項８】
請求項４から６のいずれか一項に記載の情報処理装置において、
前記負荷情報記憶手段は、前記情報処理装置内に備えられた記録手段における記録済情報量の記録可能量に対する割合を前記負荷情報として記憶し、
前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた前記記録手段の間で前記記録済情報を分割して記録する分割記録処理を前記分担動作として行うことを特徴とする情報処理装置。
【請求項９】
請求項４から６のいずれか一項に記載の情報処理装置において、
前記負荷情報記憶手段は、前記情報処理装置内に備えられた処理手段における処理を待機している待機情報を前記負荷情報として記憶し、
前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた各前記処理手段の間で前記待機情報を分割して処理対象とする処理を前記分担動作として行うことを特徴とする情報処理装置。
【請求項１０】
複数の情報処理装置がネットワークを介して相互に接続されてなるネットワークシステムであって、前記情報処理装置である被監視装置の稼働状態を、他の前記情報処理装置である監視装置が前記ネットワークを介して監視するネットワークシステムにおいて実行される情報処理方法であって、
前記情報処理装置は、前記ネットワークシステムとしての機能発揮のために担っている負荷の量を示す負荷情報を記憶する負荷情報記憶手段を備え、
前記監視装置において実行される比較工程であって、当該監視装置が担っている前記負荷の量と、当該監視装置が前記稼働状態を監視している前記被監視装置が担っている前記負荷の量と、を比較する比較工程と、
前記監視装置において実行される監視装置送信工程であって、当該監視装置が担っている前記負荷の量との差が予め設定されている送信実行閾値より大きい量の前記負荷を担っている前記被監視装置を宛先として、当該宛先たる前記被監視装置と前記監視装置との間で前記負荷を分担する旨を含み且つ前記監視装置が担う前記負荷の量を示す前記負荷情報である監視装置負荷情報を含む負荷分担メッセージを送信する監視装置送信工程と、
前記送信された負荷分担メッセージの前記宛先たる前記被監視装置において実行される受信工程であって、前記負荷分担メッセージを受信する受信工程と、
当該被監視装置において実行される負荷分担工程であって、前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報に基づいて、当該負荷分担メッセージの送信元たる前記監視装置との間で、前記負荷を分担する分担動作を行う負荷分担工程と、
を含むことを特徴とする情報処理方法。
【請求項１１】
コンピュータを、請求項４から９のいずれか一項に記載の情報処理装置として機能させることを特徴とする情報処理装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ネットワークシステム、情報処理装置及び情報処理方法並びに情報処理装置用プログラムの技術分野に属し、より詳細には、複数の情報処理装置がいわゆるＰ２Ｐ（Pear-to-Pear）ネットワークを介して接続されてなるネットワークシステム及び当該ネットワークシステムに含まれる情報処理装置等の技術分野に属する。
【背景技術】
【０００２】
近年、いわゆるブロードバンド回線の普及により、ＶＯＤ（ビデオオンデマンド）やインターネットテレビジョン等のコンテンツ配信サービスが普及しつつある。
【０００３】
ここで、現在のコンテンツ配信サービスにおける配信形態の主流となっているサーバクライアント方式に代わる新しい形態として、上記Ｐ２Ｐネットワークを用いたツリー型やグリッド型のネットワークが注目されている。当該Ｐ２Ｐネットワークでは、それに参加してデータの配信を受ける全端末装置が、例えばインターネット等のネットワークを介して接続されている。このとき、これらの端末装置は、具体的には、例えば各家庭内に備えられ上記ネットワークに接続されたセットトップボックス又はパーソナルコンピュータ等により実現されるものである。以下、当該端末装置を、単に「ノード」と称する。
【０００４】
そして、Ｐ２Ｐネットワークでは当該ノード各々内に備えられている処理部や記憶部の全部又は一部をネットワーク全体に対して提供し、配信対象のコンテンツデータの蓄積／検索や送受信により発生する負荷を全てのノード間で分担して負担する構成となっている。このような構成により、Ｐ２Ｐネットワークは従来からの上記サーバクライアント方式の欠点である、配信元たるサーバへの各ノードからのアクセス集中や、サーバ等の高い管理コスト等を解消することが可能となるのである。なお、当該Ｐ２Ｐネットワークを用いたグリッド型のネットワークに関する従来技術としては、例えば下記特許文献１に記載されたものが挙げられる。
【０００５】
このような特長があるＰ２Ｐネットワークではあるが、上述の如くコンテンツデータの蓄積を分担するノード自体が例えばセットトップボックス等により実現されるものであることから、これらのノードにおいて例えば電源のオフ操作やネットワークに対する接続異常等の事態が発生する可能性が十分に考えられる。そして、このような事態が発生した場合には、そのノードが蓄積を分担しているコンテンツデータのＰ２Ｐネットワーク内への配信が停止してしまうと言う問題が生じることになる。
【０００６】
そこで、このような問題の発生を抑制するための一方法として、Ｐ２Ｐネットワークに参加している各ノード間で相互に夫々の稼働状態を監視する方法が考えられる。そして、当該相互監視下においていずれかのノードにおいて例えば電源オフやネットワークに対する接続障害等の障害が発生した場合、当該障害が発生したノードを監視している他のノードが当該障害を補完する動作を行うのが好適である。
【特許文献１】特開２００６−１９７４００公報（第１図乃至第５図等）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、上述した如くＰ２Ｐネットワークの最たる特長点が各ノードに発生する負荷を全てのノード間で分担して負担する点にあるところ、Ｐ２Ｐネットワークに参加しているノード数が多数に上ると、当該負荷分担を適切に行うことが困難となってくる可能性がある。
【０００８】
すなわち、Ｐ２Ｐネットワークに参加しているノード数が例えば数千、数万単位となってくると、各ノードに発生している負荷の量を相互に把握してこれを適切に他のノードに分散させる処理自体が複雑且つ膨大となってくる。そしてこのような新たな負荷が生じると、上述したＰ２Ｐネットワークとしての特長点自体を自ら没却してしまうこととなる。
【０００９】
そこで、本願は上記の各点に鑑みて為されたもので、その目的の一例は、Ｐ２Ｐネットワーク全体に係る例えば管理サーバを用いることなく、且つＰ２Ｐネットワーク全体としての負荷分散を効果的に行うことで、Ｐ２Ｐネットワーク本来の処理をより円滑に実行させることが可能なＰ２Ｐネットワーク等を提供することにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１に記載の発明は、複数の情報処理装置がネットワークを介して相互に接続されてなるネットワークシステムであって、前記情報処理装置である被監視装置の稼働状態を、他の前記情報処理装置である監視装置が前記ネットワークを介して監視するネットワークシステムにおいて、前記情報処理装置は、前記ネットワークシステムとしての機能発揮のために担っている負荷の量を示す負荷情報を記憶する記憶部等の負荷情報記憶手段を備え、前記監視装置は、当該監視装置が担っている前記負荷の量と、当該監視装置が前記稼働状態を監視している前記被監視装置が担っている前記負荷の量と、を比較する制御部等の比較手段と、前記監視装置が担っている前記負荷の量との差が予め設定されている送信実行閾値より大きい量の前記負荷を担っている前記被監視装置を宛先として、当該宛先たる前記被監視装置と前記監視装置との間で前記負荷を分担する旨を含み且つ前記監視装置が担う前記負荷の量を示す前記負荷情報である監視装置負荷情報を含む負荷分担メッセージを送信する通信部等の監視装置送信手段と、を備え、前記送信された負荷分担メッセージの前記宛先たる前記被監視装置は、前記負荷分担メッセージを受信する通信部等の受信手段と、前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報に基づいて、当該負荷分担メッセージの送信元たる前記監視装置との間で、前記負荷を分担する分担動作を行う制御部等の負荷分担手段と、を備える。
【００１１】
よって、ネットワークシステムを構成する情報処理装置においてそれに対応する負荷情報を記憶し、監視装置が担っている負荷の量との差が送信実行閾値より大きい量の負荷を担っている被監視装置を宛先として負荷分担メッセージを送信し、当該被監視装置と監視装置との間で負荷の分担動作を実行するので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００１２】
上記の課題を解決するために、請求項２に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記監視装置に備えられた前記監視装置送信手段は、当該監視装置が担う前記負荷の量が、前記被監視装置が担う前記負荷の量よりも小さいとき、当該被監視装置が担っている前記負荷の一部を前記監視装置が担う旨を含み且つ前記監視装置負荷情報を含む前記負荷分担メッセージを当該被監視装置を宛先として送信し、前記被監視装置に備えられた前記負荷分担手段は、前記受信した負荷分担メッセージの送信元たる前記監視装置との間で、当該被監視装置が担っている前記負荷を前記監視装置が分担する前記分担動作を行うように構成される。
【００１３】
よって、監視装置が担う負荷の量が被監視装置が担う負荷の量よりも小さいとき、当該被監視装置が担っている負荷の一部を監視装置が担う旨の負荷分担メッセージを当該被監視装置を宛先として送信し、負荷分担メッセージの送信元たる監視装置と被監視装置との間で当該被監視装置が担っている負荷を監視装置が分担する分担動作を行うので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００１４】
上記の課題を解決するために、請求項３に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記監視装置に備えられた前記監視装置送信手段は、当該監視装置が担う前記負荷の量が、前記被監視装置が担う前記負荷の量よりも大きいとき、当該監視装置が担っている前記負荷の一部を前記宛先たる前記被監視装置が担うことを依頼する旨を含み且つ前記監視装置負荷情報を含む前記負荷分担メッセージを当該被監視装置を宛先として送信し、前記被監視装置に備えられた前記負荷分担手段は、前記受信した負荷分担メッセージの送信元たる前記監視装置との間で、当該監視装置が担っている前記負荷を前記被監視装置が分担する前記分担動作を行うように構成される。
【００１５】
よって、監視装置が担う負荷の量が被監視装置が担う負荷の量よりも大きいとき、当該監視装置が担っている負荷の一部を当該宛先たる被監視装置が担う旨の負荷分担メッセージを被監視装置を宛先として送信し、負荷分担メッセージの送信元たる監視装置と被監視装置との間で当該監視装置が担っている負荷を被監視装置が分担する分担動作を行うので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００１６】
上記の課題を解決するために、請求項４に記載の発明は、請求項１から３のいずれか一項に記載のネットワークシステムに含まれる前記情報処理装置であって、前記監視装置としての前記比較手段及び前記監視装置送信手段と、前記被監視装置としての前記受信手段及び前記負荷分担手段と、．を備える。
【００１７】
よって、ネットワークシステムを構成する情報処理装置においてそれに対応する負荷情報を記憶し、更に監視装置の機能と被監視装置の機能とを一の情報処理装置が兼備するので、被監視装置又は監視装置のいずれか一方として他の情報処理装置との間で負荷を分担する分担動作を各情報処理装置が実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００１８】
上記の課題を解決するために、請求項５に記載の発明は、請求項４に記載の情報処理装置において、当該情報処理装置が担っている前記負荷の量との差が最も大きい量の前記負荷を担っており且つ当該情報処理装置が前記監視装置として前記稼働状態を監視している他の前記情報処理装置を宛先として、前記受信した負荷分担メッセージを転送する制御部等の転送手段を更に備える。
【００１９】
よって、負荷分担メッセージを受信した情報処理装置が監視装置として稼働状態を監視している被監視装置たる情報処理装置を対象として負荷の量を比較し、その差が最も大きい情報処理装置に負荷分担メッセージを転送する処理が負荷分担メッセージを受信した情報処理装置毎に繰り返されることで、最終的に負荷の量に最も差がある情報処理装置間で負荷分担動作が為されることとなり、結果的にネットワークシステム内における負荷分散を効果的に行うことができる。
【００２０】
上記の課題を解決するために、請求項６に記載の発明は、請求項４又は５に記載の情報処理装置において、前記負荷分担手段は、前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報により示されている前記負荷の量と、当該情報処理装置が担っている前記負荷の量と、の差が予め設定されている分担実行閾値以上であるときのみ、前記分担動作を行うように構成される。
【００２１】
よって、監視装置と被監視装置との間で分担動作を実行するに当たり、被監視装置と監視装置との間の負荷の量の差が分担実行閾値以上であるときのみ当該分担動作を実行するので、分担動作が必要以上に行われることを防止することで、ネットワークシステム全体としての情報授受の混雑を緩和することができる。
【００２２】
上記の課題を解決するために、請求項７に記載の発明は、請求項４から６のいずれか一項に記載の情報処理装置において、前記ネットワークシステム内において配信されるべき配信情報を記録する記憶部等の配信情報記録手段を更に備えており、前記負荷情報記憶手段は前記配信情報の記録量を前記負荷情報として記憶し、前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた前記配信情報記録手段の間で前記配信情報を分割して記録する分割記録処理を前記分担動作として行うように構成される。
【００２３】
よって、対象となる監視装置と被監視装置との間で行われる分担動作が、配信情報を分割して記録する分割記録処理であるので、ネットワークシステム内において配信されるべき配信情報の記録負担を各情報処理装置において効率的に分担することができる。
【００２４】
上記の課題を解決するために、請求項８に記載の発明は、請求項４から６のいずれか一項に記載の情報処理装置において、前記負荷情報記憶手段は、前記情報処理装置内に備えられた記憶部等の記録手段における記録済情報量の記録可能量に対する割合を前記負荷情報として記憶し、前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた前記記録手段の間で前記記録済情報を分割して記録する分割記録処理を前記分担動作として行うように構成される。
【００２５】
よって、対象となる監視装置と被監視装置との間で行われる分担動作が、記録済情報を分割して記録する分割記録処理であるので、情報処理装置の記録手段における記録負担を各情報処理装置において効率的に分担することができる。
【００２６】
上記の課題を解決するために、請求項９に記載の発明は、請求項４から６のいずれか一項に記載の情報処理装置において、前記負荷情報記憶手段は、前記情報処理装置内に備えられた制御部等の処理手段における処理を待機している待機情報を前記負荷情報として記憶し、前記負荷分担手段は、前記監視装置及び前記被監視装置に備えられた各前記処理手段の間で前記待機情報を分割して処理対象とする処理を前記分担動作として行うように構成される。
【００２７】
よって、対象となる監視装置と被監視装置との間で行われる分担動作が、処理待ちの待機情報を分割して処理対象とする処理であるので、情報処理装置の処理手段における処理負担を各情報処理装置において効率的に分担することができる。
【００２８】
上記の課題を解決するために、請求項１０に記載の発明は、複数の情報処理装置がネットワークを介して相互に接続されてなるネットワークシステムであって、前記情報処理装置である被監視装置の稼働状態を、他の前記情報処理装置である監視装置が前記ネットワークを介して監視するネットワークシステムにおいて実行される情報処理方法であって、前記情報処理装置は、前記ネットワークシステムとしての機能発揮のために担っている負荷の量を示す負荷情報を記憶する記憶部等の負荷情報記憶手段を備え、前記監視装置において実行される比較工程であって、当該監視装置が担っている前記負荷の量と、当該監視装置が前記稼働状態を監視している前記被監視装置が担っている前記負荷の量と、を比較する比較工程と、前記監視装置において実行される監視装置送信工程であって、当該監視装置が担っている前記負荷の量との差が予め設定されている送信実行閾値より大きい量の前記負荷を担っている前記被監視装置を宛先として、当該宛先たる前記被監視装置と前記監視装置との間で前記負荷を分担する旨を含み且つ前記監視装置が担う前記負荷の量を示す前記負荷情報である監視装置負荷情報を含む負荷分担メッセージを送信する監視装置送信工程と、前記送信された負荷分担メッセージの前記宛先たる前記被監視装置において実行される受信工程であって、前記負荷分担メッセージを受信する受信工程と、当該被監視装置において実行される負荷分担工程であって、前記受信した負荷分担メッセージに含まれている前記監視装置負荷情報に基づいて、当該負荷分担メッセージの送信元たる前記監視装置との間で、前記負荷を分担する分担動作を行う負荷分担工程と、を含む。
【００２９】
よって、ネットワークシステムを構成する情報処理装置においてそれに対応する負荷情報を記憶し、監視装置が担っている負荷の量との差が送信実行閾値より大きい量の負荷を担っている被監視装置を宛先として負荷分担メッセージを送信し、当該被監視装置と監視装置との間で負荷の分担動作を実行するので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００３０】
上記の課題を解決するために、請求項１１に記載の発明は、コンピュータを、請求項４から９のいずれか一項に記載の情報処理装置として機能させる。
【００３１】
よって、ネットワークシステムを構成する情報処理装置においてそれに対応する負荷情報を記憶し、監視装置が担っている負荷の量との差が送信実行閾値より大きい量の負荷を担っている被監視装置を宛先として負荷分担メッセージを送信し、当該被監視装置と監視装置との間で負荷の分担動作を実行するように当該各コンピュータが機能するので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【発明の効果】
【００３２】
本発明によれば、ネットワークシステムを構成する情報処理装置においてそれに対応する負荷情報を記憶し、監視装置が担っている負荷の量との差が送信実行閾値より大きい量の負荷を担っている被監視装置を宛先として負荷分担メッセージを送信し、当該被監視装置と監視装置との間で負荷の分担動作を実行するので、当該分担動作を監視装置とそれが稼働状態を監視する被監視装置とが実行することで、ネットワークシステム全体としての負荷分散を効果的に行うことができる。
【００３３】
従って、ネットワークシステムに参加している情報処理装置各々における負荷を低減することで、配信情報の配信等のネットワークシステム本来の処理をより円滑に実行させることができる。
【発明を実施するための最良の形態】
【００３４】
次に、本発明を実施するための最良の形態について、図面に基づいて説明する。なお、以下に説明する各実施形態は、上記特許文献１に記載されたＰ２Ｐネットワークシステムに対して本願を適用した場合の実施の形態である。ここで、特許文献１では、本発明に係るノードを「ノード装置」と称している。
（Ｉ）Ｐ２Ｐネットワークシステムの概要構成
始めに、各実施形態に係るＰ２Ｐネットワークシステム（以下、当該Ｐ２Ｐネットワークシステムを、単に配信システムと称する）の概要構成について、図１を用いて説明する。なお、図１は各実施形態に係る配信システムにおける相互監視の状態を例示する図である。
【００３５】
各実施形態に係る配信システムは、上記特許文献１における例えば第１図及び第２図並びに段落番号［００３７］乃至［００５３］に例示される、複数のノードが接続されて成る配信システムである。
【００３６】
この構成において各ノードは、上記特許文献１に記載されたコンテンツ配信システムにおけるノード装置１と同様に、物理的なネットワークを介して相互にデータ等の授受が可能に接続されている。
【００３７】
そして、新しいノードが配信システムに参加する場合、そのノードは、当該参加する旨の参加要求メッセージを、当該ノードの新規参加の際の接続先たる既参加のノードに送信する。ここで、当該既参加のノードの選び方としては、例えば、配信システムに対して常時接続しているノードを検索する等の手法を用いることが可能である（特許文献１の段落番号［００４６］参照）。
【００３８】
一方、配信システムにおいて各ノードに配信されるコンテンツは、いわゆるコンテンツ投入サーバから配信システム内に投入される。このコンテンツ投入サーバは、例えば配信システムの管理者によって管理されるサーバである。そしてコンテンツ投入サーバは、配信システムに参加している各ノードに対して配信可能となるように、新たなコンテンツに相当するコンテンツデータを配信システム内に投入する。より具体的には、コンテンツ投入サーバは、配信システム内のノードの一つであるコンテンツノードに対して、上記コンテンツデータを記憶させる。これにより、当該コンテンツノードは、当該記憶されたコンテンツデータに相当するコンテンツを配信システム内の他のノードに対して公開する。この場合の公開方法についてより具体的には、例えば上記特許文献１の段落番号［００７０］及び［００７１］の記載を参照できる。
【００３９】
また、配信システムに参加している各ノードは、例えば上記特許文献１の第２図乃至第４図並びに段落番号［００３７］乃至［００６１］に記載されている、いわゆる「分散ハッシュテーブル」を用いて、同じく特許文献１の第５図及び段落番号［００６２］乃至［００６９］に記載された方法により、所望のコンテンツを配信システム内において検索する。そして、当該検索の結果発見したコンテンツに相当するコンテンツデータを、当該コンテンツデータを蓄積しているコンテンツノードから取得（ダウンロード）し、再生する。
【００４０】
次に、各実施形態に係る複数のノード間における稼働状態の相互監視のための監視体制の構成について、図１を用いて例示しつつ説明する。
【００４１】
当該監視体制下では、配信システムに参加しているある一つのノードを被監視ノードとしたとき、その被監視ノードは、他のノードである監視ノードから常時その稼働状態の監視を受ける。そして各実施形態の配信システムでは、この監視ノードが一つの被監視ノードについて原則として三つ存在している。
【００４２】
即ち図１に例示するように、各実施形態に係る配信システムでは、一つの被監視ノードＢＷの稼働状態を、三つの監視ノードＷ１乃至Ｗ３が常時監視する。このとき被監視ノードＢＷは、それを監視する各監視ノードＷ１乃至Ｗ３夫々を配信システム上において識別するための識別情報（例えば、各監視ノードＷ１乃至Ｗ３夫々のＩＰアドレス等）を記憶している。そして各監視ノードＷ１乃至Ｗ３は、夫々において予め設定されたタイミングにおいて、被監視ノードＢＷに対し、ネットワークを介して監視メッセージＭＷを夫々送信する。この監視メッセージＭＷには、その送信元たる監視ノードＷのＩＰアドレスが少なくとも記述されている。なお、以下の説明では、監視ノードＷ１乃至Ｗ３を総括して呼称する場合、単に「監視ノードＷ」と称する。
【００４３】
これに対し被監視ノードＢＷは、当該監視メッセージＭＷを受信する度に、それに含まれている監視ノードＷのＩＰアドレスを用いて、当該被監視ノードＢＷが記憶している監視ノードＷのＩＰアドレスを更新する。
【００４４】
また被監視ノードＢＷは、送信されて来た監視メッセージＭＷに対応して、返答メッセージＲＴを各監視ノードＷ１乃至Ｗ３に夫々返信する。この返答メッセージＲＴには、当該被監視ノードＢＷが上記コンテンツノードである場合、当該コンテンツノードたる被監視ノードＢＷがその時点で記憶しているコンテンツのコンテンツＩＤの一覧が含まれている。
【００４５】
以上の構成により、一つの被監視ノードＢＭの稼働状態が三つの監視ノードＷ１乃至Ｗ３により常時監視される。これにより、当該被監視ノードＢＭにおいて例えば電源オフやネットワークに対する接続障害等の障害が発生した場合、監視ノードＷ１乃至Ｗ３のいずれかにおいて速やかにこれを検知し、その障害を補完するための補完動作を、当該検知した監視ノードＷにおいて開始する。ここで、当該補完動作として具体的には、例えば被監視ノードＢＷが上記コンテンツノードであった場合には、それに記憶されていたコンテンツデータを他のいずれかのノードに複製させる等の処理が考えられる。
【００４６】
他方、例えばある監視ノードＷ１において上述した電源オフやネットワークに対する接続障害等の障害が発生した場合、今度は、被監視ノードＢＷに対して上記監視メッセージＭＷが送信されて来なくなる。この場合被監視ノードＢＷは、予め設定された選択方法により新たな監視ノードＷを配信システム内において検索／選択し、自らの稼働状態の監視を依頼する監視依頼メッセージをその選択した監視ノードＷに送信して当該被監視ノードＢＷに対する監視を行わせる。これにより、一つの被監視ノードＢＷが常時一定数（実施形態の場合は三つ）の監視ノードＷの監視下にある状態を継続させる。
【００４７】
更に図１に例示するように、被監視ノードＢＷ自体もまた、他のノードに対する監視ノードとして機能することができる。また、一つの監視ノードＷ（例えば、図１に例示する場合は監視ノードＷ３）が複数の他の被監視ノードの監視を担うことも可能である。
【００４８】
以上説明した相互監視体制に加えて、各実施形態では、配信システム全体としての機能を発揮するために各ノードが担う負荷の量を客観的に数値化した情報である負荷情報を、各ノードが常時その値を更新しつつ記憶している。そして、上記相互監視体制の元において、上記監視メッセージＭＷ及び返答メッセージＲＴ内に上記負荷情報を含ませて各ノード間で相互に交換することにより、当該各ノード間で相手のノードにおける負荷の量を認識してその負荷の分担を相互に行う。
【００４９】
すなわち、配信システム全体として例えばコンテンツの配信機能を発揮する場合、上記特許文献１にも例示したように、各ノードは様々な動作を相互に分担する。具体的には、例えばコンテンツデータの蓄積動作、当該コンテンツデータを実際に配信する際に必要となる検索時のメッセージ転送動作、或いはコンテンツデータ自体の配信動作等を各ノードが分担することで、配信システム全体としてのコンテンツ配信機能が完結する。
【００５０】
ここで、上記蓄積動作では、各ノードが蓄積しているコンテンツデータのデータ量自体や、後述の記憶部においてその蓄積のために占有される記憶済み情報量の、当該記憶部における記憶可能情報量全体に対する割合が、各ノードが担っている上記負荷の量と言える。またメッセージ転送動作やコンテンツデータの配信動作では、各ノード内の制御部におけるいわゆる待ちタスク（当該転送動作等に必要なタスク）の量が、各ノードが担っている上記負荷の量と言える。これらの負荷の量は、いずれも随時変動するものである。
【００５１】
そこで各実施形態に係る配信システムでは、各ノードが担っている上記負荷の量を示す上記負荷情報を当該各ノードが更新しつつ記憶し、その値を上記監視メッセージＭＷ及び返答メッセージＲＴ内に含ませて相互に交換する。これにより各ノードは、当該各ノード間で互いの負荷の量を認識し、更に当該負荷の分担を行う。より具体的には、監視メッセージＭＷ等を介して当該負荷情報により示される負荷の量を相互に認識した上で、当該負荷の量が大きいノードの当該負荷を、当該負荷の量が小さいノードに振り分けて分担させる。
【００５２】
即ち例えば、各ノードにおけるコンテンツデータの記憶量を上記負荷とする場合において、分割可能なコンテンツデータをあるノードが多く記憶しているとき、その記憶量が少ない他のノードに対して当該多く記憶しているコンテンツデータの一部を移動させる。これにより、当該負荷たるコンテンツデータの記憶量について、二つのノード間でその平滑化が図られることになる。また同様に、各ノードの記憶部における記憶済み情報量の全体に対する割合や待ちタスクの量を上記負荷とする場合においても、その記憶済み情報の一部を当該割合が少ない他のノードに移動させたり、或いは待ちタスクの一部を待ちタスクの量が少ない他のノードの制御部に処理させたりすることで、上記負荷の平滑化が図られる。なお、以下の実施形態では、二つのノードにおいて負荷の分担を行う上述の動作を、纏めて負荷分担動作と称する。
【００５３】
また、当該負荷分担動作が実行されることで負荷が減少したノードでは、そのノードにおいて実行されるべき他の動作に対してその処理能力の残余を充てることができることになる。
【００５４】
よって、上述した負荷分担動作が配信システム全体として複数のノード間において逐次実行されれば、配信システム全体としての負荷の効率的な処理が可能となり、結果的に配信システムとしての信頼性向上やコンテンツ配信の迅速化が図られるのである。
（II）第１実施形態
次に、本発明に係る第１実施形態について、図２乃至図５を用いて説明する。なお、図２は第１実施形態に係る一のノードの概要構成を示すブロック図であり、図３及び図４は第１実施形態に係る各監視ノードＷ及び被監視ノードＢＷ間における負荷分担動作を例示する図である。また図５は、当該各監視ノードＷ及び被監視ノードＢＷ等における第１実施形態に係る具体的な動作を示すフローチャートである。
【００５５】
ここで、第１実施形態に係る各ノード１は基本的に同一の細部構成を備え、更に基本的に同一の細部動作を夫々独立して実行している。
【００５６】
図２に示すように、実施形態に係るノード１は、比較手段、負荷分担手段、転送手段及び処理手段としての制御部２１と、配信情報記録手段及び記録手段としての記憶部２２と、バッファメモリ２３と、復号化アクセラレータ２４と、デコーダ部２５と、映像処理部２６と、表示部２７と、音声処理部２８と、スピーカ２９と、監視装置送信手段及び受信手段としての通信部２９ａと、入力部２９ｂと、ＩＣカードスロット２９ｃと、を備えて構成されている。そして、これらの構成要素はバス２９ｄを介して相互に接続されている。
【００５７】
このとき、制御部２１は、演算機能を有するＣＰＵ、作業用ＲＡＭ（Random Access Memory）、各種データ及びプログラム（ＯＳ（Operating System）及び各種アプリケーションを含む）を記憶するＲＯＭ（Read Only Memory）等から構成されている。
【００５８】
また、記憶部２２は、各種データ及びプログラム等を記憶するＨＤＤ（Hard Disc Drive）等から構成されている。これに加えて記憶部２２は、そのノード１に係る上記負荷情報を記憶する。この負荷情報は、上述したように制御部２１の制御の下、更新されつつ記憶されるものである。更にバッファメモリ２３は、受信したコンテンツデータを一時的に蓄積（記憶）する。
【００５９】
一方、復号化アクセラレータ２４は、バッファメモリ２３に蓄積されたコンテンツデータを、復号鍵を用いて復号化する。また、デコーダ部２５は、復号化されたコンテンツデータに含まれるビデオデータ及びオーディオデータ等をデコード（データ伸張等）して再生する。更に、映像処理部２６は、当該再生されたビデオデータ等に対して所定の描画処理を施し映像信号として出力する。
【００６０】
他方、表示部２７は、ＣＲＴ（Cathode Ray Tube）又は液晶ディスプレイ等からなり、映像処理部２６から出力された映像信号に基づき対応する映像を表示する。また、音声処理部２８は、上記再生されたオーディオデータをアナログ音声信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する。更に、スピーカ部２９は、当該音声処理部２８から出力された音声信号を音波として出力する。
【００６１】
また、通信部２９ａは、通信回線９を介して配信システム内の他のノード１等との間の通信制御を行う。更に、入力部２９ｂは、例えば、マウス、キーボード及び操作パネル或いはリモコン等からなり、使用者（視聴者）からの各種指示に対応する指示信号を制御部２１に対して出力する。そして、ＩＣカードスロット２９ｃは、ＩＣカード２９ｅに対する情報の読み書きを行う。
【００６２】
ここで、ＩＣカード２９ｅは、耐タンパ性があり、例えば、実施形態に係る配信システムの運営者等から各ノード１の使用者に配布されるものである。このとき、当該耐タンパ性とは、非正規な手段による機密データの読み取りを防ぎ、簡単に解析できないようにタンパリング対策が施されていることを言う。このＩＣカード２９ｅは、ＣＰＵからなるＩＣカードコントローラ、耐タンパ性のある不揮発性メモリ、例えば、ＥＥＰＲＯＭ（Electrical Erasable and Programmable ROM）等を備えて構成されている。当該不揮発性メモリには、ユーザＩＤ、暗号化されたコンテンツデータを復号化するための復号鍵及びデジタル証明書等が記憶されている。
【００６３】
一方、バッファメモリ２３は、例えばＦＩＦＯ（First In First Out）形式のリングバッファメモリから構成されており、制御部２１の制御下、受信ポインタにより示される記憶領域に通信部２９ａを通じて受信されたコンテンツデータを一時的に蓄積する。
【００６４】
このとき、制御部２１は、それに含まれるＣＰＵが記憶部２２等に記憶されたプログラムを読み出して実行することによりノード１全体を統括制御し、後述する実施形態に係る各動作を実行する。これに加えて、制御部２１は、通常の動作として、上述した分散ハッシュテーブルにより配信システムを構成するネットワークを介して他のノード１から送信されて来る各種メッセージや複数のパケット（コンテンツデータを構成するパケット）を、通信部２９ａを通じて受信してバッファメモリ２３に書き込み、且つ、当該バッファメモリ２３に蓄積されているパケット（一定時間過去に受信されたパケット）や後述する各種メッセージを読み出し、上述した分散ハッシュテーブルに則り通信部２９ａを通じて更に他のノード１に転送する。
【００６５】
一方、バッファメモリ２３は、再生ポインタにより示される当該バッファメモリ２３の記憶領域に蓄積されているパケットを読み出し、バス２９ｄを介して復号化アクセラレータ２４やデコーダ部２５に出力する。
【００６６】
なお、上記プログラムは、例えば、ネットワーク上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ（Compact disc - ROM）等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
（Ａ）第１実施形態に係る具体例
次に、当該ノード１における第１実施形態に係る動作の具体例について、図３及び図４を用いて例示しつつ説明する。また、図３及び図４においては、各ノード１がその時点で担っている負荷の量（以下、単に負荷量と称する）を、各部材番号の下に（  ）で示している。
【００６７】
図３（ａ）に例示するように、第１実施形態に係る監視ノード１００たるノード１は、配信システム内において被監視ノード１０１乃至１０３たる三つのノード１夫々の稼働状態を常時監視している。このとき、監視ノード１００における負荷量は「４０」であり、被監視ノード１０１乃至１０３各々における負荷量は、夫々順に「８０」、「７０」及び「６０」とする。これらの負荷量は、配信システムにおける相互監視体制において上記監視メッセージＭＷ及び返答メッセージＲＴの相互授受により、監視ノード１００及び被監視ノード１０１乃至１０３の各々において相互に認識されている。
【００６８】
図３（ａ）の場合において、監視ノード１００は、その負荷量が、自らが監視している被監視ノード１０１乃至１０３夫々の負荷量のいずれよりも小さいことを、上記監視メッセージＭＷ等の授受により認識することができる。
【００６９】
そして当該いずれよりも小さいことを認識したとき、監視ノード１００は、配信システム内において自身を識別するための識別情報（例えば自身のＩＰアドレス等）と、その時点での自身の負荷量（図３（ａ）の場合、４０）を示す負荷量情報と、を含み、負荷の一部を監視ノード１００において分担する旨の救援メッセージＲＭを生成する。そして監視ノード１００は、自らが監視している被監視ノード１０１乃至１０３のうちその時点での負荷量が最も大きい被監視ノード１０１（負荷量８０）を宛先として、図３（ａ）に示すように上記生成された救援メッセージＲＭを送信する。
【００７０】
ここで、図３（ｂ）に示すように、当該救援メッセージＲＭを受け取った被監視ノード１０１たるノード１は、自らが監視ノードとして三つの被監視ノード１１０乃至１１２たるノード１夫々の稼働状態を常時監視している。よって、以後、被監視ノード１０１を被監視／監視ノード１０１（負荷量８０）と称する。
【００７１】
一方、被監視ノード１１０乃至１１２各々における負荷量は、夫々順に「７０」、「６５」及び「９０」とする。これらの負荷量は、上記相互監視体制において被監視／監視ノード１０１と被監視ノード１１０乃至１１２との間における監視メッセージＭＷ及び返答メッセージＲＴの相互授受により、被監視／監視ノード１０１及び被監視ノード１１０乃至１１２の各々において相互に認識されている。
【００７２】
図３（ｂ）の場合において、被監視／監視ノード１０１は、当該被監視／監視ノード１０１自体及びそれが監視している被監視ノード１１０乃至１１２夫々のうち、負荷量が最も大きいノード１が被監視ノード１１２であることを、上記監視メッセージＭＷ等の授受により認識することができる。
【００７３】
そして当該被監視ノード１１２の負荷量が最大であることを認識したとき、被監視／監視ノード１０１は、監視ノード１００から自らが受信した上記救援メッセージＲＭ（図３（ａ）参照）を、当該被監視ノード１１２を宛先として送信する。
【００７４】
このとき、図４に示すように、当該救援メッセージＲＭを受け取った被監視ノード１１２たるノード１もまた、自らが監視ノードとして三つの被監視ノード１２０乃至１２２たるノード１夫々の稼働状態を常時監視している。よって、以後、被監視ノード１１２を被監視／監視ノード１１２（負荷量９０）と称する。
【００７５】
一方、被監視ノード１２０乃至１２２各々における負荷量は、夫々順に「８０」、「６５」及び「７０」とする。これらの負荷量は、上記相互監視体制において被監視／監視ノード１１２と被監視ノード１２０乃至１２２との間における監視メッセージＭＷ及び返答メッセージＲＴの相互授受により、被監視／監視ノード１０２及び被監視ノード１２０乃至１２２の各々において相互に認識されている。
【００７６】
図４の場合において、被監視／監視ノード１１２は、当該被監視／監視ノード１１２自体及びそれが監視している被監視ノード１２０乃至１２２夫々のうち、負荷量が最も大きいノード１が被監視／監視ノード１１２自体であることを、上記監視メッセージＭＷ等の授受により認識することができる。
【００７７】
そして自らの負荷量が最大であることを認識したとき、被監視／監視ノード１１２は、被監視／監視ノード１０１から自らが受信した上記救援メッセージＲＭ（図３（ｂ）参照）内に含まれている監視ノード１００の識別情報及び負荷量情報に基づき、当該監視ノード１００を宛先として、上記負荷分担動作としての分担実行メッセージＳＭを送信する。なおこの分担実行メッセージＳＭは、被監視／監視ノード１１２の負荷量と監視ノード１００の負荷量との差が予め設定されている分担実行閾値以上であるときのみ、送信される。
【００７８】
これにより、当該分担実行メッセージＳＭを受信した監視ノード１００（結果的に負荷量が最も小さいノード１）と、負荷量が最も大きい被監視／監視ノード１１２との間で、上述した負荷分担動作が実行される。
（Ｂ）第１実施形態に係る動作
次に、上記第１実施形態に係る図３及び図４を用いて説明した具体例を実現するために各ノード１において夫々実行される第１実施形態に係る具体的な動作について、纏めて図５を用いて説明する。なお、第１実施形態に係る各ノード１は、基本的に同一の動作を夫々独立して実行している。また、図５に示す動作は、配信システムに参加しているノード１としてのメインルーチンの一部として常時実行されている動作である。
【００７９】
なお、図５に示す動作を実行する前の段階では、図３及び図４を用いて説明したように監視メッセージＭＷ及び返答メッセージＲＴの授受が常時実行され、これにより監視ノードと被監視ノードとの間で夫々の負荷量の認識が行われている。
【００８０】
図５（ａ）に示すように、第１実施形態に係る各ノード１の制御部２１は、第１実施形態に係る相互監視体制の下で上記メインルーチンを実行中において、直近の救援メッセージＲＭを送信してから予め設定されている一定時間が経過したか否かを監視している（ステップＳ１）。そして、当該一定時間が経過していないとき（ステップＳ１；ＮＯ）、制御部２１はそのまま後述するステップＳ６の処理に移行する。一方ステップＳ１の判定において一定時間が経過したとき（ステップＳ１；ＹＥＳ）、制御部２１は次に、自らが監視ノードとして機能している場合において当該監視下にある被監視ノード各々の負荷量を確認し、自らの負荷量と比較する（ステップＳ２、Ｓ３）。
【００８１】
ステップＳ２及びＳ３の確認動作において、自らの負荷量が最小でないと確認されたとき（ステップＳ３；ＮＯ）、制御部２１はそのまま後述するステップＳ６の処理に移行する。一方ステップＳ２及びＳ３の判定において自らの負荷量が比較したノード１の範囲で最小であることが確認されたとき（ステップＳ３；ＹＥＳ）、制御部２１は、比較した範囲内で最も負荷量の大きい被監視ノードを選択し（ステップＳ４）、その選択された被監視ノードに対して上記救援メッセージＲＭを送信する（ステップＳ５。図３参照）。
【００８２】
次に制御部２１は、他のノード１から上記救援メッセージＲＭを受信したかを確認し（ステップＳ６）、当該救援メッセージＲＭを受信していないときは（ステップＳ６；ＮＯ）、そのまま上記メインルーチンの動作に戻る。一方ステップＳ６の確認において、当該救援メッセージＲＭを受信したとき（ステップＳ６；ＹＥＳ）、制御部２１は、後述する救援メッセージ受信／転送動作を実行し（ステップＳ７）、その後上記メインルーチンの動作に戻る。
【００８３】
次に、上記ステップＳ７に係る救援メッセージ受信／転送動作について、図５（ｂ）を用いて詳述する。
【００８４】
上記ステップＳ６の確認において、救援メッセージＲＭを受信したとき（ステップＳ６；ＹＥＳ）、制御部２１は次に、自らが監視ノードとして機能している場合において当該監視下にある被監視ノード各々の負荷量を確認し、自らの負荷量と比較する（ステップＳ７０）。
【００８５】
ステップＳ７０の確認動作において、自らの負荷量が最大でないと確認されたとき（ステップＳ７０；ＮＯ）、制御部２１は、比較した範囲内で最も負荷量の大きい被監視ノードを選択し（ステップＳ７３）、その選択された被監視ノードに対して上記救援メッセージＲＭを転送する（ステップＳ７４。図３（ｂ）参照）。その後制御部２１は上記メインルーチンの動作に戻る。
【００８６】
一方、ステップＳ７０の確認動作において、自らの負荷量が最大であると確認されたとき（ステップＳ７０；ＹＥＳ）、制御部２１は次に、受信した救援メッセージＲＭ内に含まれている負荷量情報（図３及び図４に例示する場合は「４０」）により示されている負荷量と、現在確認されている自らの負荷量と、の差が上記分担実行閾値以上であるか否かを確認する（ステップＳ７１）。そして、当該差が分担実行閾値未満であるとき（ステップＳ７１；ＮＯ）、制御部２１はそのまま上記メインルーチンの動作に戻る。他方ステップＳ７１の確認において、当該差が分担実行閾値以上であるとき（ステップＳ７１；ＹＥＳ）、制御部２１は上記負荷分担動作としての上記分担実行メッセージＳＭを、救援メッセージＲＭの送信元たるノード１に送信する（ステップＳ７２）。その後制御部２１は上記メインルーチンの動作に戻る。
【００８７】
ここで、上記分担実行閾値の決め方について例示する。
【００８８】
第１実施形態に係る負荷分担動作では、分担実行閾値が小さいと負荷分担動作が頻繁に行われるため、負荷の平滑化はより促進されるが、メッセージ送受信等の配信システム全体としての負荷自体が増大してしまう。一方、閾値が大きいと負荷分担動作が必要数以下しか実行されないこととなり、配信システム全体としての負荷は低減されるが、負荷の平滑化としては不十分となる。以上のことから、上記分担実行閾値は、配信システム全体としての負荷の量とその平滑化の程度とを比較考慮して予め設定されておく必要がある。
【００８９】
より具体的には、例えば、負荷量が大きい方のノード１の当該負荷量を「Ｘ」とし、負荷量が小さい方のノード１の当該負荷量を「Ｙ」としたとき、上記分担実行閾値を絶対的に決定する場合はその値を例えば「１００メガバイト（コンテンツデータの記憶量を負荷とした場合）」とし、上記ステップＳ７１の処理に供させることが望ましい。一方、当該分担実行閾値を相対的に決定する場合は、その値を例えば「Ｘ／１０」として上記「Ｘ」の値から相対的に決定し、上記ステップＳ７１の処理に供させることが望ましい。
【００９０】
以上夫々説明したように、第１実施形態に係る各ノード１による負荷分担動作によれば、第１実施形態に係る配信システムを構成するノード１においてそれに対応する負荷情報を記憶し、相互監視体制下において最も大きい量の負荷を担っている被監視ノードとしてのノード１を宛先として救援メッセージＲＭを送信し、当該被監視ノードとしてのノード１と監視ノードとしてのノード１との間で負荷分担動作を実行するので、当該負荷分担動作を監視ノードとしてのノード１とそれが稼働状態を監視する被監視ノードとしてのノード１とが実行することで、配信システム全体としての負荷分散を効果的に行うことができる。
【００９１】
また、監視ノードとしてのノード１が担う負荷の量が被監視ノードとしてのノード１が担う負荷の量よりも小さいとき、当該被監視ノードとしてのノード１が担っている負荷の一部を監視ノードとしてのノード１が担う旨の救援メッセージＲＭを当該被監視ノードとしてのノード１を宛先として送信し、救援メッセージＲＭの送信元たる監視ノードとしてのノード１と被監視ノードとしてのノード１との間で当該被監視ノードとしてのノード１が担っている負荷を監視ノードとしてのノード１が分担する負荷分担動作を行うので、効果的に負荷分散を行うことができる。
【００９２】
更に、救援メッセージＲＭを受信したノード１が監視ノードとしてのノード１として稼働状態を監視している被監視ノードとしてのノード１を対象として負荷の量を比較し、その差が最も大きいノード１に救援メッセージＲＭを転送する処理が救援メッセージＲＭを受信したノード１毎に繰り返されることで、最終的に負荷の量に最も差があるノード１間で負荷分担動作が為されることとなり、結果的に配信システム内における負荷分散を効果的に行うことができる。
【００９３】
更にまた、監視ノードとしてのノード１と被監視ノードとしてのノード１との間で負荷分担動作を実行するに当たり、被監視ノードとしてのノード１と監視ノードとしてのノード１との間の負荷の量の差が上記分担実行閾値以上であるときのみ当該負荷分担動作を実行するので、負荷分担動作が必要以上に行われることを防止することで、配信システム全体としてのメッセージ授受の混雑等を緩和することができる。
【００９４】
また、上記負荷分担動作が監視ノードとしてのノード１と被監視ノードとしてのノード１との間でコンテンツデータを分割して記録する動作である場合、配信システム内において配信されるべきコンテンツデータの記録負担を各ノード１において効率的に分担することができる。
【００９５】
更に、上記負荷分担動作が記憶部２２における記憶済みデータ又はその割合を監視ノードとしてのノード１と被監視ノードとしてのノード１との間で分割して記録する動作である場合、あるノード１の記憶部２２における記録負担を他のノード１において効率的に分担することができる。
【００９６】
更にまた、上記負荷分担動作が監視ノードとしてのノード１と被監視ノードとしてのノード１との間で待ちタスクを分割して処理対象とする処理であるので、あるノード１の制御部２１における処理負担を他のノード１において効率的に分担することができる。
（III）第２実施形態
次に、本発明に係る他の実施形態である第２実施形態について、図６乃至図８を用いて説明する。なお、図６及び図７は第２実施形態に係る各監視ノードＷ及び被監視ノードＢＷ間における負荷分担動作を例示する図である。また図８は、当該各監視ノードＷ及び被監視ノードＢＷ等における第２実施形態に係る具体的な動作を示すフローチャートである。
【００９７】
以下に説明する第２実施形態では、負荷分担動作を担うノードを決定する際の負荷量の判断における大小関係が第１実施形態の場合とは逆となる。そして、負荷量が大きいノードから負荷量の小さいノードに対して、第１実施形態に係る救援メッセージ（救援する旨のメッセージ）とは異なる「救援依頼メッセージ（救援して欲しい旨のメッセージ）」を送信して負荷分担動作を行う。
【００９８】
ここで、第２実施形態に係る各ノードは、第１実施形態に係る各ノード１と同一の細部構成を夫々に備え、更に基本的に同一の細部動作を夫々独立して実行している。よって以下の説明では、第２実施形態に係るノードの細部構成としては第１実施形態に係るノード１と同一の部材番号を用いると共に、その詳細な説明は省略する。
（Ａ）第２実施形態に係る具体例
先ず、第２実施形態に係るノードにおける第２実施形態に係る動作の具体例について、図６及び図７を用いて例示しつつ説明する。また、図６及び図７においては、第１実施形態の場合と同様に、各ノード１がその時点で担っている負荷量を、各部材番号の下に（  ）で示している。
【００９９】
図６（ａ）に例示するように、第２実施形態に係る監視ノード２００たるノード１は、配信システム内において被監視ノード２０１乃至２０３たる三つのノード１夫々の稼働状態を常時監視している。このとき、監視ノード２００における負荷量は「９０」であり、被監視ノード２０１乃至２０３各々における負荷量は、夫々順に「５０」、「６０」及び「７０」とする。これらの負荷量は、第１実施形態の場合と同様に監視ノード２００及び被監視ノード２０１乃至２０３の各々において相互に認識されている。
【０１００】
図６（ａ）の場合において、監視ノード２００は、その負荷量が、自らが監視している被監視ノード２０１乃至２０３夫々の負荷量のいずれよりも大きいことを、上記監視メッセージＭＷ等の授受により認識することができる。
【０１０１】
そして当該いずれよりも大きいことを認識したとき、監視ノード２００は、配信システム内において自身を識別するための識別情報と、その時点での自身の負荷量（図６（ａ）の場合、９０）を示す負荷量情報と、を含み、負荷の一部を他のノードにおいて分担して欲しい旨の救援依頼メッセージＨＭを生成する。そして監視ノード２００は、自らが監視している被監視ノード２０１乃至２０３のうちその時点での負荷量が最も小さい被監視ノード２０１（負荷量５０）を宛先として、図６（ａ）に示すように上記生成された救援依頼メッセージＨＭを送信する。
【０１０２】
ここで、図６（ｂ）に示すように、当該救援依頼メッセージＨＭを受け取った被監視ノード２０１たるノード１は、自らが監視ノードとして三つの被監視ノード２１０乃至２１２たるノード１夫々の稼働状態を常時監視している。よって、以後、被監視ノード２０１を、第１実施形態に係る被監視／監視ノード１０１と同様に、被監視／監視ノード２０１（負荷量５０）と称する。
【０１０３】
一方、被監視ノード２１０乃至２１２各々における負荷量は、夫々順に「６０」、「６５」及び「４０」とする。
【０１０４】
そして図６（ｂ）の場合において、被監視／監視ノード２０１は、当該被監視／監視ノード２０１自体及びそれが監視している被監視ノード２１０乃至２１２夫々のうち、負荷量が最も小さいノード１が被監視ノード２１２であることを、上記監視メッセージＭＷ等の授受により認識することができる。
【０１０５】
その後、当該被監視ノード２１２の負荷量が最小であることを認識したとき、被監視／監視ノード２０１は、監視ノード２００から自らが受信した上記救援依頼メッセージＨＭ（図６（ａ）参照）を、当該被監視ノード２１２を宛先として送信する。
【０１０６】
このとき、図７に示すように、当該救援依頼メッセージＨＭを受け取った被監視ノード２１２たるノード１もまた、自らが監視ノードとして三つの被監視ノード２２０乃至２２２たるノード１夫々の稼働状態を常時監視している。よって、以後、被監視ノード２１２を被監視／監視ノード２１２（負荷量４０）と称する。
【０１０７】
一方、被監視ノード２２０乃至２２２各々における負荷量は、夫々順に「５０」、「６５」及び「６０」とする。
【０１０８】
そして図７の場合において、被監視／監視ノード２１２は、当該被監視／監視ノード２１２自体及びそれが監視している被監視ノード２２０乃至２２２夫々のうち、負荷量が最も小さいノード１が被監視／監視ノード２１２自体であることを、上記監視メッセージＭＷ等の授受により認識することができる。
【０１０９】
その後、自らの負荷量が最小であることを認識したとき、被監視／監視ノード２１２は、被監視／監視ノード２０１から自らが受信した上記救援依頼メッセージＨＭ（図６（ｂ）参照）内に含まれている監視ノード２００の識別情報及び負荷量情報に基づき、当該監視ノード２００を宛先として、上記負荷分担動作としての分担実行メッセージＳＭを送信する。なおこの分担実行メッセージＳＭは、第１実施形態の場合と同様に、被監視／監視ノード２１２の負荷量と監視ノード２００の負荷量との差が分担実行閾値以上であるときのみ、送信される。
【０１１０】
これにより、当該分担実行メッセージＳＭを受信した監視ノード２００（結果的に負荷量が最も大きいノード１）と、負荷量が最も小さい被監視／監視ノード２１２との間で、上述した負荷分担動作が実行される。
（Ｂ）第２実施形態に係る動作
次に、上記第２実施形態に係る図６及び図７を用いて説明した具体例を実現するために各ノードにおいて夫々実行される第２実施形態に係る具体的な動作について、纏めて図８を用いて説明する。なお、第２実施形態に係る各ノードは、基本的に同一の動作を夫々独立して実行している。また、図８に示す動作は、配信システムに参加しているノードとしてのメインルーチンの一部として常時実行されている動作である。
【０１１１】
なお、図８に示す動作を実行する前の段階では、第１実施形態の場合と同様に、図６及び図７を用いて説明したように監視メッセージＭＷ及び返答メッセージＲＴの授受が常時実行され、これにより監視ノードと被監視ノードとの間で夫々の負荷量の認識が行われている。
【０１１２】
図８（ａ）に示すように、第２実施形態に係る各ノード１の制御部２１は、第２実施形態に係る相互監視体制の下で上記メインルーチンを実行中において、直近の救援依頼メッセージＨＭを送信してから予め設定されている一定時間が経過したか否かを監視している（ステップＳ１０）。そして、当該一定時間が経過していないとき（ステップＳ１０；ＮＯ）、制御部２１はそのまま後述するステップＳ１５の処理に移行する。一方ステップＳ１０の判定において一定時間が経過したとき（ステップＳ１０；ＹＥＳ）、制御部２１は次に、自らが監視ノードとして機能している場合において当該監視下にある被監視ノード各々の負荷量を確認し、自らの負荷量と比較する（ステップＳ１１、Ｓ１２）。
【０１１３】
ステップＳ１１及びＳ１２の確認動作において、自らの負荷量が最大でないと確認されたとき（ステップＳ１２；ＮＯ）、制御部２１はそのまま後述するステップＳ１５の処理に移行する。一方ステップＳ１１及びＳ１２の判定において自らの負荷量が比較したノード１の範囲で最大であることが確認されたとき、制御部２１は、比較した範囲内で最も負荷量の小さい被監視ノードを選択し（ステップＳ１３）、その選択された被監視ノードに対して上記救援依頼メッセージＨＭを送信する（ステップＳ１４。図６参照）。
【０１１４】
次に制御部２１は、他のノード１から上記救援依頼メッセージＨＭを受信したかを確認し（ステップＳ１５）、当該救援依頼メッセージＨＭを受信していないときは（ステップＳ１５；ＮＯ）、そのまま上記メインルーチンの動作に戻る。一方ステップＳ１５の確認において、当該救援依頼メッセージＨＭを受信したとき（ステップＳ１５；ＹＥＳ）、制御部２１は、救援依頼メッセージ受信／転送動作を実行し（ステップＳ１６）、その後上記メインルーチンの動作に戻る。
【０１１５】
次に、上記ステップＳ１６に係る救援依頼メッセージ受信／転送動作について、図８（ｂ）を用いて詳述する。
【０１１６】
上記ステップＳ１５の確認において、救援依頼メッセージＨＭを受信したとき（ステップＳ１５；ＹＥＳ）、制御部２１は次に、自らが監視ノードとして機能している場合において当該監視下にある被監視ノード各々の負荷量を確認し、自らの負荷量と比較する（ステップＳ１６０）。
【０１１７】
ステップＳ１６０の確認動作において、自らの負荷量が最小でないと確認されたとき（ステップＳ１６０；ＮＯ）、制御部２１は、比較した範囲内で最も負荷量の小さい被監視ノードを選択し（ステップＳ１６３）、その選択された被監視ノードに対して上記救援依頼メッセージＨＭを転送する（ステップＳ１６４。図６（ｂ）参照）。その後制御部２１は上記メインルーチンの動作に戻る。
【０１１８】
一方、ステップＳ１６０の確認動作において、自らの負荷量が最小であると確認されたとき（ステップＳ１６０；ＹＥＳ）、制御部２１は次に、受信した救援依頼メッセージＨＭ内に含まれている負荷量情報（図６及び図７に例示する場合は「９０」）により示されている負荷量と、現在確認されている自らの負荷量と、の差が上記分担実行閾値以上であるか否かを確認する（ステップＳ１６１）。そして、当該差が分担実行閾値未満であるとき（ステップＳ１６１；ＮＯ）、制御部２１はそのまま上記メインルーチンの動作に戻る。他方ステップＳ１６１の確認において、当該差が分担実行閾値以上であるとき（ステップＳ１６１；ＹＥＳ）、制御部２１は上記負荷分担動作としての上記分担実行メッセージＳＭを、救援依頼メッセージＨＭの送信元たるノード１に送信する（ステップＳ１６２）。その後制御部２１は上記メインルーチンの動作に戻る。
【０１１９】
なお、上記分担実行閾値の決め方については、第１実施形態の場合と同様にして決定されることが望ましい。
【０１２０】
以上夫々説明したように、第２実施形態に係る各ノード１による負荷分担動作によれば、監視ノードとしてのノード１が担う負荷の量が被監視ノードとしてのノード１が担う負荷の量よりも大きいとき、当該被監視ノードとしてのノード１が担っている負荷の一部を監視ノードとしてのノード１が担う旨の救援依頼メッセージＨＭを当該被監視ノードとしてのノード１を宛先として送信し、救援依頼メッセージＨＭの送信元たる監視ノードとしてのノード１と被監視ノードとしてのノード１との間で当該被監視ノードとしてのノード１が担っている負荷を監視ノードとしてのノード１が分担する負荷分担動作を行う点を除き、第１実施形態に係る各ノード１による負荷分担処理と同様の効果を奏することができる。
【０１２１】
また、上述した各実施形態では救援メッセージＲＭ又は救援依頼メッセージＨＭを送信する宛先を選ぶ場合、その時点での負荷量の差が最も大きいノード１を当該宛先とした。しかしながらこれ以外に、例えば予め設定された送信実行閾値以上の差がある負荷を有する他のノード１の中から乱数的に宛先を選んで救援メッセージＲＭ又は救援依頼メッセージＨＭを送信する構成としても良い。この場合には、救援メッセージＲＭ等の送信頻度を調整できることで、配信システム全体としての負荷の低減と当該負荷の平滑化とを両立させることができる。
【０１２２】
更に、図５又は図８に夫々示すフローチャートに対応するプログラムを、フレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、又はインターネット等を介して取得して記録しておき、これらを汎用のコンピュータで読み出して実行することにより、当該コンピュータを実施形態に係るノード１内の制御部２１等として活用することも可能である。
【産業上の利用可能性】
【０１２３】
以上夫々説明したように、本願はコンテンツの配信を行う配信システムの分野に利用することが可能であり、特に、Ｐ２Ｐ型の配信システムの分野に適用すれば特に顕著な効果が得られる。
【図面の簡単な説明】
【０１２４】
【図１】実施形態に係る配信システムにおける相互監視の状態を例示する図である。
【図２】第１実施形態に係る一のノードの概要構成を示すブロック図である。
【図３】第１実施形態に係る負荷分担動作を例示する図（Ｉ）であり、（ａ）は負荷分担動作の態様を例示する図（Ｉ）であり、（ｂ）は負荷分担動作の態様を例示する図（II）である。
【図４】第１実施形態に係る負荷分担動作を例示する図（II）である。
【図５】第１実施形態に係るノードの具体的動作を示すフローチャートであり、（ａ）は当該具体的動作の全体を示すフローチャートであり、（ｂ）は当該具体的動作の細部を示すフローチャートである。
【図６】第２実施形態に係る負荷分担動作を例示する図（Ｉ）であり、（ａ）は負荷分担動作の態様を例示する図（Ｉ）であり、（ｂ）は負荷分担動作の態様を例示する図（II）である。
【図７】第２実施形態に係る負荷分担動作を例示する図（II）である。
【図８】第２実施形態に係るノードの具体的動作を示すフローチャートであり、（ａ）は当該具体的動作の全体を示すフローチャートであり、（ｂ）は当該具体的動作の細部を示すフローチャートである。
【符号の説明】
【０１２５】
１    ノード
２１    制御部
２２    記憶部
２３    バッファメモリ
２４    復号化アクセラレータ
２５    デコーダ部
２６    映像処理部
２７    表示部
２８    音声処理部
２９    スピーカ
２９ａ    通信部
２９ｂ    入力部
２９ｃ    ＩＣカードスロット
２９ｄ    バス
２９ｅ    ＩＣカード
１００、Ｗ１、Ｗ２、Ｗ３    監視ノード
１０２、１０３、１１０、１１１、１２０、１２１、１２２、２０２、２０３、２１０、２１１、２２０、２２１、２２２、ＢＷ    被監視ノード
１０１、１１２、２０１、２１２    被監視／監視ノード（被監視ノード）
ＭＷ    監視メッセージ
ＲＴ    返答メッセージ
ＳＭ    分担実行メッセージ
ＲＭ    救援メッセージ
ＨＭ    救援依頼メッセージ
【図１】
2010086045.tif 000003
【図２】
2010086045.tif 000004
【図３】
2010086045.tif 000005
【図４】
2010086045.tif 000006
【図５】
2010086045.tif 000007
【図６】
2010086045.tif 000008
【図７】
2010086045.tif 000009
【図８】
2010086045.tif 000010