(57)【要約】 【課題】多くのコンテンツデータの公開メッセージが送信される状況下であっても、各ノード装置が他のノード装置からコンテンツデータを取得し易くし、コンテンツ管理サーバの負荷を低減すること等が可能なコンテンツ配信システム、ノード装置、ノードプログラム、及び公開メッセージ送信方法を提供する。【解決手段】コンテンツ保持ノードは、保存されている各コンテンツデータの公開メッセージを、各コンテンツデータのルートノード宛に所定の時間間隔毎に送信する処理を行う。そして、この処理では、予め設定された送信優先基準にしたがって、各コンテンツデータの公開メッセージの送信順序が制御される。【選択図】図４
2011070588.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテンツデータが複数のノード装置に分散して記憶されるコンテンツ配信システムに含まれるノード装置であって、
複数の前記コンテンツデータを記憶する記憶手段と、
前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置または他の装置宛に送信する送信手段と、
予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御手段と、
を備えることを特徴とするノード装置。
【請求項２】
前記送信制御手段は、
前記ノード装置にインストールされたオペレーティングシステムにより管理される各前記コンテンツデータの管理情報を取得する取得手段と、
前記取得された管理情報に基づき、前記公開メッセージの送信順序を決定する決定手段と、を備え、
前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする請求項１に記載のノード装置。
【請求項３】
前記取得手段は、前記各コンテンツデータの管理情報として、当該各コンテンツデータの取得時又は再生時に付与されたタイムスタンプを取得し、
前記決定手段は、前記タイムスタンプが新しい順に前記公開メッセージを送信する送信順序を決定することを特徴とする請求項２に記載のノード装置。
【請求項４】
前記取得手段は、前記各コンテンツデータの管理情報として、当該各コンテンツデータのファイルサイズを取得し、
前記決定手段は、前記ファイルサイズの大きい順に前記公開メッセージを送信する送信順序を決定することを特徴とする請求項２に記載のノード装置。
【請求項５】
前記コンテンツ配信システムに含まれる各ノード装置は、複数の分割コンテンツデータから構成されるコンテンツデータをノード装置に分散して記憶し、
前記コンテンツ配信システムに含まれる各ノード装置は、
前記記憶手段に記憶されているコンテンツデータは、前記分割コンテンツデータであり、
前記取得手段は、前記コンテンツデータの管理情報として、前記分割コンテンツデータを構成要素とするコンテンツデータの全体ファイルサイズを取得し、
前記決定手段は、前記全体ファイルサイズの大きい順に前記公開メッセージを送信する送信順序を決定することを特徴とする請求項２に記載のノード装置。
【請求項６】
前記送信制御手段は、
前記ノード装置に配信されたコンテンツカタログ情報に記述される各前記コンテンツデータの属性情報を取得する取得手段と、
前記取得された属性情報に基づき、前記公開メッセージの送信順序を決定する決定手段と、
前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする請求項１に記載のノード装置。
【請求項７】
前記取得手段は、前記各コンテンツデータの属性情報として、当該各コンテンツデータが前記コンテンツ配信システムで利用開始となる利用開始日時を取得し、
前記決定手段は、前記利用開始日時が現在日時に近い順に前記公開メッセージを送信する送信順序を決定することを特徴とする請求項６に記載のノード装置。
【請求項８】
前記取得手段は、前記各コンテンツデータの属性情報として、当該各コンテンツデータが前記コンテンツ配信システムで利用終了となる利用終了日時を取得し、
前記決定手段は、前記利用終了日時が現在日時に近い順に前記公開メッセージを送信する送信順序を決定することを特徴とする請求項６に記載のノード装置。
【請求項９】
前記ノード装置は、
指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、
前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、
前記検索処理により発見されたノード装置の数と、前記取得されたコンテンツデータとを対応付けて前記記憶手段に記憶させる記憶制御手段と、
を備え、
前記送信制御手段は、
各前記コンテンツデータに対応付けられた前記ノード装置の数を取得する取得手段と、
前記取得されたノード装置の数が少ない順に前記公開メッセージを送信する送信順序を決定する決定手段と、
を備え、
前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする請求項１に記載のノード装置。
【請求項１０】
指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、
前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、
前記検索処理によりノード装置が発見できない場合又は発見されたノード装置からコンテンツデータを取得できない場合には、前記複数のコンテンツデータを記憶しているサーバ装置から、前記指定されたコンテンツデータを取得する第２コンテンツ取得手段と、
を備えることを特徴とする請求項１から請求項９の何れか一項に記載のノード装置。
【請求項１１】
前記ノード装置は、
指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、
前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、
前記検索処理によりノード装置が発見できない場合又は発見されたノード装置からコンテンツデータを取得できない場合には、前記複数のコンテンツデータを記憶しているサーバ装置から、前記指定されたコンテンツデータを取得する第２コンテンツ取得手段と、
前記取得されたコンテンツデータと、当該コンテンツデータを送信した装置の種別とを対応付けて前記記憶手段に記憶させる記憶制御手段と、
を備え、
前記送信制御手段は、
各前記コンテンツデータに対応付けられた前記装置の種別を取得する取得手段と、
前記取得された装置の種別がサーバ装置であるコンテンツデータの前記公開メッセージの送信を優先とする送信順序を決定する決定手段と、
を備え、
前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする請求項１から請求項１０のいずれか一項に記載のノード装置。
【請求項１２】
前記コンテンツ配信システムに含まれる各ノード装置には、所定桁数からなるノードＩＤが割り当てられ、
前記複数のコンテンツデータは、複数のグループの何れかに属しており、
前記送信制御手段は、
当該送信制御手段を備えるノード装置自身に割り当てられたノードＩＤの所定桁目の値に対応するグループを決定する第１決定手段と、
前記決定されたグループに属するコンテンツデータの前記公開メッセージの送信を優先とする送信順序を決定する第２決定手段と、
を備えることを特徴とする請求項１から請求項１１のいずれか一項に記載のノード装置。
【請求項１３】
複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムのノード装置に含まれるコンピュータを、
複数の前記コンテンツデータを記憶する記憶ステップと、
前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に送信する送信ステップと、
予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御ステップと、
を実行させるためのノードプログラム。
【請求項１４】
複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムであって、
前記ノード装置は、
複数の前記コンテンツデータを記憶する記憶手段と、
前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に送信する送信手段と、
予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御手段と、
を備えることを特徴とするコンテンツ配信システム。
【請求項１５】
複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムにおける公開メッセージ送信方法であって、
前記ノード装置が、複数の前記コンテンツデータを記憶する記憶ステップと、
前記ノード装置が、前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に送信する送信ステップと、
前記ノード装置が、予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御ステップと、
を含むことを特徴とする公開メッセージ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
複数のコンテンツデータを複数のノード装置に分散して記憶させ、各ノード装置間でコンテンツデータを利用可能としたピアツーピア型のコンテンツ配信システムが知られている。ピアツーピア型のコンテンツ配信システムにおいて、コンテンツデータの所在は、例えば特許文献１に開示されるように、ルートノードと呼ばれるノード装置により管理されている。そして、あるノード装置がルートノード宛にクエリを送信することにより、コンテンツデータを記憶するノード装置を検索可能になっている。
【０００３】
一方、コンテンツデータを記憶する各ノード装置は、例えば起動時等の所定のタイミングで、公開メッセージをルートノード宛に送信する。公開メッセージは、コンテンツデータを記憶していることを他のノード装置に公開するためのメッセージである。また、複数のコンテンツデータを記憶しているノード装置は、各コンテンツデータのファイル格納先のディレクトリをスキャンする。そして、ノード装置は各コンテンツデータの公開メッセージを登録順に送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１９７４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ノード装置に記憶されているコンテンツデータのファイル数が少ない場合は、公開メッセージの送信が短時間に終了するため問題がない。しかし、コンテンツデータのファイル数が、例えば１万以上と多い場合、全てのコンテンツデータの公開メッセージを連続して送信すると、公開メッセージの送信側及び受信側のノード装置、並びにネットワークに過大な負荷がかかってしまう。そのため、コンテンツデータのファイル数が多い場合、例えば、一度に送信する公開メッセージの数を制限し、時間を空けながらゆっくりと公開メッセージの送信を行うことが考えられる。
【０００６】
しかしながら、公開メッセージの送信をゆっくりと行うと、全てのコンテンツデータの公開メッセージの送信が完了するのに時間がかかってしまう。そのため、各ノード装置が他のノード装置から例えば人気のあるコンテンツデータを取得し難い状況になってしまう。このような状況になると、各ノード装置は、全てのコンテンツデータを記憶しているコンテンツ管理サーバからコンテンツデータを取得することになる。したがって、コンテンツ管理サーバの負荷が増大するという問題が生じる。
【０００７】
そこで、本発明は、以上の点等に鑑みてなされたものであり、多くのコンテンツデータの公開メッセージが送信される状況下であっても、各ノード装置が他のノード装置からコンテンツデータを取得し易くし、コンテンツ管理サーバの負荷を低減すること等が可能なコンテンツ配信システム、ノード装置、ノードプログラム、及び公開メッセージ送信方法を提供すること等を課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、複数のコンテンツデータが複数のノード装置に分散して記憶されるコンテンツ配信システムに含まれるノード装置であって、複数の前記コンテンツデータを記憶する記憶手段と、前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置または他の装置宛に送信する送信手段と、予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御手段と、を備えることを特徴とする。
【０００９】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記送信制御手段は、前記ノード装置にインストールされたオペレーティングシステムにより管理される各前記コンテンツデータの管理情報を取得する取得手段と、前記取得された管理情報に基づき、前記公開メッセージの送信順序を決定する決定手段と、を備え、前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする。
【００１０】
請求項３に記載の発明は、請求項２に記載のノード装置において、前記取得手段は、前記各コンテンツデータの管理情報として、当該各コンテンツデータの取得時又は再生時に付与されたタイムスタンプを取得し、前記決定手段は、前記タイムスタンプが新しい順に前記公開メッセージを送信する送信順序を決定することを特徴とする。
【００１１】
請求項４に記載の発明は、請求項２に記載のノード装置において、前記取得手段は、前記各コンテンツデータの管理情報として、当該各コンテンツデータのファイルサイズを取得し、前記決定手段は、前記ファイルサイズの大きい順に前記公開メッセージを送信する送信順序を決定することを特徴とする。
【００１２】
請求項５に記載の発明は、請求項２に記載のノード装置において、前記コンテンツ配信システムに含まれる各ノード装置は、複数の分割コンテンツデータから構成されるコンテンツデータをノード装置に分散して記憶し、前記コンテンツ配信システムに含まれる各ノード装置は、前記記憶手段に記憶されているコンテンツデータは、前記分割コンテンツデータであり、前記取得手段は、前記コンテンツデータの管理情報として、前記分割コンテンツデータを構成要素とするコンテンツデータの全体ファイルサイズを取得し、前記決定手段は、前記全体ファイルサイズの大きい順に前記公開メッセージを送信する送信順序を決定することを特徴とする。
【００１３】
請求項６に記載の発明は、請求項１に記載のノード装置において、前記送信制御手段は、前記ノード装置に配信されたコンテンツカタログ情報に記述される各前記コンテンツデータの属性情報を取得する取得手段と、前記取得された属性情報に基づき、前記公開メッセージの送信順序を決定する決定手段と、前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする。
【００１４】
請求項７に記載の発明は、請求項６に記載のノード装置において、前記取得手段は、前記各コンテンツデータの属性情報として、当該各コンテンツデータが前記コンテンツ配信システムで利用開始となる利用開始日時を取得し、前記決定手段は、前記利用開始日時が現在日時に近い順に前記公開メッセージを送信する送信順序を決定することを特徴とする。
【００１５】
請求項８に記載の発明は、請求項６に記載のノード装置において、前記取得手段は、前記各コンテンツデータの属性情報として、当該各コンテンツデータが前記コンテンツ配信システムで利用終了となる利用終了日時を取得し、前記決定手段は、前記利用終了日時が現在日時に近い順に前記公開メッセージを送信する送信順序を決定することを特徴とする。
【００１６】
請求項９に記載の発明は、請求項１に記載のノード装置において、前記ノード装置は、指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、前記検索処理により発見されたノード装置の数と、前記取得されたコンテンツデータとを対応付けて前記記憶手段に記憶させる記憶制御手段と、を備え、前記送信制御手段は、前記送信優先基準にしたがって、各前記コンテンツデータに対応付けられた前記ノード装置の数を取得する取得手段と、前記取得されたノード装置の数が少ない順に前記公開メッセージを送信する送信順序を決定する決定手段と、を備え、前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする。
【００１７】
請求項１０に記載の発明は、請求項１から請求項９の何れか一項に記載のノード装置において、指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、前記検索処理によりノード装置が発見できない場合又は発見されたノード装置からコンテンツデータを取得できない場合には、前記複数のコンテンツデータを記憶しているサーバ装置から、前記指定されたコンテンツデータを取得する第２コンテンツ取得手段と、を備えることを特徴とする。
【００１８】
請求項１１に記載の発明は、請求項１から請求項１０のいずれか一項に記載のノード装置において、前記ノード装置は、指定されたコンテンツデータを記憶しているノード装置の検索処理を実行する検索手段と、前記検索処理によりノード装置が発見できた場合には、当該発見されたノード装置から、前記指定されたコンテンツデータを取得する第１コンテンツ取得手段と、前記検索処理によりノード装置が発見できない場合又は発見されたノード装置からコンテンツデータを取得できない場合には、前記複数のコンテンツデータを記憶しているサーバ装置から、前記指定されたコンテンツデータを取得する第２コンテンツ取得手段と、前記取得されたコンテンツデータと、当該コンテンツデータを送信した装置の種別とを対応付けて前記記憶手段に記憶させる記憶制御手段と、を備え、前記送信制御手段は、前記送信優先基準にしたがって、各前記コンテンツデータに対応付けられた前記装置の種別を取得する取得手段と、前記取得された装置の種別がサーバ装置であるコンテンツデータの前記公開メッセージの送信を優先とする送信順序を決定する決定手段と、を備え、前記送信制御手段は、前記決定手段により決定された前記送信順序を、前記送信優先基準として、前記公開メッセージの送信順序を制御することを特徴とする。
【００１９】
請求項１２に記載の発明は、請求項１から請求項１１のいずれか一項に記載のノード装置において、前記コンテンツ配信システムに含まれる各ノード装置には、所定桁数からなるノードＩＤが割り当てられ、前記複数のコンテンツデータは、複数のグループの何れかに属しており、前記送信制御手段は、当該送信制御手段を備えるノード装置自身に割り当てられたノードＩＤの所定桁目の値に対応するグループを決定する第１決定手段と、前記決定されたグループに属するコンテンツデータの前記公開メッセージの送信を優先とする送信順序を決定する第２決定手段と、を備えることを特徴とする。
【００２０】
請求項１３に記載のノードプログラムの発明は、複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムのノード装置に含まれるコンピュータを、複数の前記コンテンツデータを記憶する記憶ステップと、前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に所定間隔毎に送信する送信ステップと、予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御ステップと、を実行させる。
【００２１】
請求項１４に記載の発明は、複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムであって、前記ノード装置は、複数の前記コンテンツデータを記憶する記憶手段と、前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に所定間隔毎に送信する送信手段と、予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御手段と、を備えることを特徴とする。
【００２２】
請求項１５に記載の発明は、複数のコンテンツデータが複数のノード装置に分散して記憶され、前記複数のコンテンツデータの所在が複数のノード装置に管理されるコンテンツ配信システムにおける公開メッセージ送信方法であって、前記ノード装置が、複数の前記コンテンツデータを記憶する記憶ステップと、前記ノード装置が、前記コンテンツデータを記憶していることを他のノード装置に公開するための公開メッセージを当該コンテンツデータの所在を管理するノード装置宛に所定間隔毎に送信する送信ステップと、前記ノード装置が、予め設定された送信優先基準にしたがって、各前記コンテンツデータの前記公開メッセージの送信順序を制御する送信制御ステップと、を含むことを特徴とする。
【発明の効果】
【００２３】
請求項１、１０、１３乃至１５に記載の発明によれば、多くのコンテンツデータの公開メッセージが送信される状況下であっても、各ノード装置が他のノード装置からコンテンツデータを取得し易くすることができる。よって、サーバ装置の負荷を低減することができる。
【００２４】
請求項２に記載の発明によれば、公開メッセージの送信順序を決定するための情報をネットワーク等を介さず、オペレーティングシステムから迅速に取得することができる。
【００２５】
請求項３に記載の発明によれば、各ノード装置が他のノード装置から人気のあるコンテンツデータを取得し易くすることができる。従って、サーバ装置の負荷を低減することができる。
【００２６】
請求項４に記載の発明によれば、各ノード装置が他のノード装置からファイルサイズの大きいコンテンツデータを取得し易くすることができる。従って、サーバ装置がファイルサイズの大きいコンテンツデータをノード装置へ送信するために帯域が占有されるのを回避することができる。
【００２７】
請求項５に記載の発明によれば、複数の分割コンテンツデータが各ノード装置に分散されて記憶されている場合であっても、各ノード装置が他のノード装置から全体ファイルサイズの大きいコンテンツデータの構成要素である分割コンテンツデータを取得し易くすることができる。従って、サーバ装置が全体ファイルサイズの大きいコンテンツデータをノード装置へ送信するために帯域が占有されるのを回避することができる。
【００２８】
請求項６に記載の発明によれば、公開メッセージの送信順序を決定するための情報をコンテンツカタログ情報から迅速に取得することができる。
【００２９】
請求項７に記載の発明によれば、各ノード装置が他のノード装置からアクセス集中が予想されるコンテンツデータを取得し易くすることができる。従って、サーバ装置の負荷を低減することができる。
【００３０】
請求項８に記載の発明によれば、各ノード装置が他のノード装置からアクセス集中が予想されるコンテンツデータを取得し易くすることができる。従って、サーバ装置の負荷を低減することができる。
【００３１】
請求項９に記載の発明によれば、記憶しているノード装置の数が少ないコンテンツデータを、各ノード装置が他のノード装置から取得し易くすることができる。従って、サーバ装置の負荷を低減することができる。
【００３２】
請求項１１に記載の発明によれば、記憶しているノード装置の数が少ないコンテンツデータを、各ノード装置が他のノード装置から取得し易くすることができる。従って、サーバ装置の負荷を低減することができる。
【００３３】
請求項１２に記載の発明によれば、一部のコンテンツデータへのアクセス集中を回避することができる。
【図面の簡単な説明】
【００３４】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮｎの概要構成例を示す図である。
【図３】ノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートである。
【図４】図３に示すステップＳ４におけるパブリッシュ処理の一例を示すフローチャートである。
【図５】（Ａ）は、図４に示すステップＳ４７における送信優先基準に基づくパブリッシュ処理の一例を示すフローチャートである。（Ｂ）は、図４に示すステップＳ４８における複数ディレクトリに対応したパブリッシュ処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに本発明を適用した場合の実施形態である。
【００３６】
［１．コンテンツ配信システムの構成及び動作概要］
始めに、図１を参照して、本実施形態に係るコンテンツ配信システムの構成及び動作概要について説明する。
【００３７】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３８】
図１の下部枠１０１内に示すように、コンテンツ配信システムＳは、複数のノード装置Ｎｎがインターネットを介して接続されることで構成される。また、図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者の装置５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者の装置６、及び通信回線７等によって、インターネット等のネットワーク８が構築されている。なお、通信回線７としては、例えば、電話回線や光ケーブル等が用いられる。
【００３９】
ネットワーク８には、複数のノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。なお、以下の説明において、ノード装置を「ノード」と称する。
【００４０】
また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ配信システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎ接続により形成されるピアツーピア方式のネットワークシステムとなっている。
【００４１】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９である。オーバーレイネットワーク９は、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、以下、ＤＨＴ（Distributed Hash Table）という。
【００４２】
そして、コンテンツ配信システムＳにおける各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。また、ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を所定のハッシュ関数によりハッシュ化した値である。ハッシュ関数として、例えば、ＳＨＡ−１が用いられる。これにより、ノードＩＤは、ＩＤ空間に偏りなく分散して配置される。なお、システム管理者が、ノード毎に一意のノードＩＤを付与しても良い。
【００４３】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。ＤＨＴを用いたルーティングテーブルは、コンテンツ配信システムＳ上における各種メッセージの転送先を規定している。具体的には、ＤＨＴを用いたルーティングテーブルには、複数のノード情報が登録されている。ノード情報は、ノードＩＤ、ＩＰアドレス及びポート番号を含む情報である。また、ＤＨＴは、各ノードＮｎがオーバーレイネットワーク９に参加する際に生成される。ここで、オーバーレイネットワーク９への参加とは、ノードＮｎがＰ２Ｐプログラムを実行することにより、ＤＨＴを用いたルーティングテーブルを用いて他のノードＮｎとの間で情報の送受信が可能な状態に稼動することをいう。なお、ＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００４４】
また、コンテンツ配信システムＳにおいては、内容の異なる様々なコンテンツデータが所定のファイル形式で複数のノードＮｎに分散して保存されている。コンテンツデータは、例えば、映画や音楽、カラオケ曲等のデータである。なお、以下の説明において、コンテンツデータを「コンテンツ」と称する。例えば、コンテンツＸはノードＮ３とノードＮ５に保存されている。また、コンテンツＹはノードＮ４に保存されている。
【００４５】
また、ファイルサイズが所定バイト以上のコンテンツは、複数に分割される。そして、分割されたコンテンツは、複数のノードＮｎに分散して保存されている。分割されたコンテンツを、以下、「分割コンテンツ」という。例えば、コンテンツＺを構成する分割コンテンツＺ１はノードＮ２とノードＮ６に保存されている。また、コンテンツＺを構成する分割コンテンツＺ２はノードＮ７に保存されている。
【００４６】
なお、コンテンツ配信システムＳにおいて、コンテンツと分割コンテンツは、同様に取り扱われる。従って、以下の説明において、特に区別しない限り、コンテンツという場合は、分割コンテンツも該当するものとする。
【００４７】
以下、コンテンツを保存しているノードＮｎを、「コンテンツ保持ノード」と称する。
【００４８】
そして、各コンテンツには、夫々、コンテンツＩＤが割り当てられている。コンテンツＩＤは、コンテンツ毎に固有の識別情報である。コンテンツＩＤは、例えば、コンテンツ名＋任意の数値が、ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される。コンテンツＩＤはノードＩＤと同一ビット長である。なお、システム管理者が、コンテンツ毎に一意のコンテンツＩＤを付与しても良い。
【００４９】
このように分散保存されているコンテンツの所在は、上述したように、ルートノードにより管理される。ルートノードは、コンテンツ保持ノードのＩＰアドレス及びポート番号と、コンテンツＩＤとの組を含むインデックス情報をインデックスキャッシュ領域に記憶している。インデックスキャッシュ領域とは、インデックス情報を記憶するために、ノードＮｎの記憶部に設けられた記憶領域である。ルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。「コンテンツＩＤと最も近いノードＩＤ」とは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤを意味する。
【００５０】
また、複数のノードＮｎに分散保存されている全てのコンテンツのオリジナルは、コンテンツ管理サーバＳＡに保存されている。コンテンツ管理サーバＳＡは、サーバ装置の一例である。また、コンテンツ管理サーバＳＡは、分散保存されているコンテンツの属性情報が記述されたコンテンツカタログ情報を管理している。そして、コンテンツ管理サーバＳＡは、コンテンツカタログ情報を全てのノードＮｎにＤＨＴマルチキャストで配信する。なお、ＤＨＴマルチキャストは、例えば特開２００７−０５３６６２号公報等で公知であるので、詳しい説明を省略する。
【００５１】
コンテンツカタログ情報に記述される属性情報には、例えば、コンテンツＩＤ、コンテンツ名、公開開始日時、公開終了日時、及び検索キーワード等が含まれる。ここで、公開開始日時は、各ノードＮｎによりコンテンツがコンテンツ配信システムＳで利用開始となる利用開始日時である。公開開始日時が到来したコンテンツのコンテンツＩＤは、コンテンツカタログ情報から検索できるようになる。一方、公開終了日時は、各ノードＮｎによりコンテンツがコンテンツ配信システムＳで利用終了となる利用終了日時である。公開終了日時が到来したコンテンツは、コンテンツ保持ノードから削除される。また、公開終了日時が到来したコンテンツのコンテンツＩＤは、コンテンツカタログ情報から検索できないようになる。
【００５２】
あるノードＮｎが、例えば、コンテンツカタログ情報上でユーザから指定されたコンテンツを、コンテンツ保持ノードから取得する場合、コンテンツ保持ノードの検索処理を実行する。なお、コンテンツ保持ノードの検索処理を実行するノードＮｎを、「ユーザノード」と称する。コンテンツ保持ノードの検索処理において、ユーザノードは、先ず、コンテンツ所在問合せメッセージを生成する。コンテンツ所在問合せメッセージは、コンテンツの所在をルートノードに問い合わせるためのメッセージである。言い換えれば、コンテンツ所在問合せメッセージは、コンテンツを保存しているコンテンツ保持ノードを検索するためのメッセージである。
【００５３】
また、コンテンツ所在問合せメッセージには、取得対象となるコンテンツのコンテンツＩＤ、及びユーザノードのＩＰアドレス等が含まれる。ここで、分割コンテンツ以外のコンテンツのコンテンツＩＤは、コンテンツカタログ情報から抽出される。一方、分割コンテンツのコンテンツＩＤは、分割コンテンツを構成要素とするコンテンツのコンテンツＩＤが付与されたメタファイルに記述されている。このメタファイルは、コンテンツ保持ノードに保存される。
【００５４】
そして、ユーザノードは、生成したコンテンツ所在問合せメッセージを、ＤＨＴを用いたルーティングテーブルにしたがって、ルートノード宛に送信する。これにより、コンテンツ所在問合せメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって、幾つかのノードＮｎにより転送され、最終的にルートノードに到着する。このようにコンテンツ所在問合せメッセージ等のメッセージを転送するノードＮｎを、「中継ノード」と称する。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００５５】
ルートノードは、コンテンツ所在問合せメッセージを受信すると、コンテンツ所在問合せメッセージに含まれるコンテンツＩＤに対応するインデックス情報を取得する。そして、ルートノードは、取得したインデックス情報を、受信したコンテンツ所在問合せメッセージの送信元であるユーザノードへ返信する。ユーザノードに返信されたインデックス情報には、上記指定されたコンテンツを保存している１又は複数のコンテンツ保持ノードのＩＰアドレス等が含まれている。こうして、ユーザノードは、コンテンツ保持ノードの検索処理によりコンテンツ保持ノードを発見できた場合には、発見されたコンテンツ保持ノードのＩＰアドレス等に基づいてコンテンツ保持ノードにアクセスする。これにより、ユーザノードは、コンテンツ保持ノードから、上記指定されたコンテンツを取得、すなわち、ダウンロードすることができる。
【００５６】
ところで、ユーザノードが、発見されたコンテンツ保持ノードにアクセスを試みても、通信状況によっては、コンテンツ保持ノードから応答が無い場合がある。この場合、ユーザノードは、上記指定されたコンテンツを、コンテンツ保持ノードから取得することができない。また、ユーザノードが、コンテンツ保持ノードの検索処理を実行しても、通信状況によっては、ルートノードから応答が無い場合がある。この場合、ユーザノードは、上記指定されたコンテンツを保存しているコンテンツ保持ノードを発見できない。このように、ユーザノードは、コンテンツ保持ノードを発見できない場合又は発見されたコンテンツ保持ノードからコンテンツを取得できない場合には、コンテンツ管理サーバＳＡから、指定されたコンテンツを取得する。
【００５７】
こうして、コンテンツ保持ノード又はコンテンツ管理サーバＳＡから取得されたコンテンツを保存したユーザノードは、コンテンツの新たなコンテンツ保持ノードとなる。新たなコンテンツ保持ノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、公開メッセージの一例である。また、パブリッシュメッセージは、コンテンツを保存していることを他のノードＮｎに公開するためのメッセージである。
【００５８】
また、パブリッシュメッセージには、コンテンツのコンテンツＩＤ、及び新たなコンテンツ保持ノードのＩＰアドレス等が含まれる。
【００５９】
そして、新たなコンテンツ保持ノードは、生成したパブリッシュメッセージを、ＤＨＴを用いたルーティングテーブルにしたがって、ルートノード宛に送信する。これにより、パブリッシュメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって、幾つかの中継ノードにより転送され、最終的にルートノードに到着する。
【００６０】
ルートノードは、パブリッシュメッセージを受信すると、インデックス情報をインデックスキャッシュ領域に記憶する。インデックス情報には、パブリッシュメッセージに含まれるコンテンツＩＤと、新たなコンテンツ保持ノードのＩＰアドレス等との組が含まれる。なお、インデックス情報は、中継ノードにおいてもインデックスキャッシュ領域に記憶される。この中継ノードは、ルートノードに至るまでの転送経路でパブリッシュメッセージを中継するノードＮｎである。
【００６１】
一方、コンテンツ保持ノードは、例えば電源オフ指令がなされると、オーバーレイネットワーク９から脱退する脱退処理を行う。脱退処理において、コンテンツ保持ノードは、削除要求メッセージを生成する。削除要求メッセージは、削除要求メッセージを生成したコンテンツ保持ノードのＩＰアドレス等をインデックスキャッシュ領域から削除する要求を示すメッセージである。なお、コンテンツ保持ノードに保存されているコンテンツは、オーバーレイネットワーク９からの脱退後も削除されずに残る。
【００６２】
そして、コンテンツ保持ノードは、生成した削除要求メッセージを、ＤＨＴを用いたルーティングテーブルにしたがって、ルートノード宛に送信する。これにより、削除要求メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって、幾つかの中継ノードにより転送され、最終的にルートノードに到着する。
【００６３】
ルートノードは、削除要求メッセージを受信すると、削除要求メッセージに含まれるコンテンツＩＤに対応付けられて記憶されたＩＰアドレス等をインデックスキャッシュ領域から削除する。なお、削除要求メッセージに含まれるＩＰアドレス等は、中継ノードにおいてもインデックスキャッシュ領域から削除される。この中継ノードは、ルートノードに至るまでの転送経路で削除要求メッセージを中継するノードＮｎである。
【００６４】
このようにオーバーレイネットワーク９から脱退したコンテンツ保持ノードが再び、オーバーレイネットワーク９に参加した場合、コンテンツ保持ノードは、保存しているコンテンツのパブリッシュメッセージを生成する。そして、コンテンツ保持ノードは、上記と同様、生成したパブリッシュメッセージをルートノード宛に送信する。ここで、コンテンツ保持ノードが、複数のコンテンツを保存している場合、各コンテンツについてのパブリッシュメッセージをルートノード宛に送信する。
【００６５】
［２．ノードＮｎの構成及び機能］
次に、図２を参照して、ノードＮｎの構成及び機能について説明する。
【００６６】
図２は、ノードＮｎの概要構成例を示す図である。
【００６７】
各ノードＮｎは、図２に示すように、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、映像処理部１５、表示部１６、音声処理部１７、スピーカ１８、通信部１９、及び入力部２０等を備えて構成される。制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部１９、及び入力部１９ａはバス１９ｂを介して相互に接続されている。なお、記憶部１２は、記憶手段の一例である。ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機、カラオケ装置等が適用可能である。
【００６８】
記憶部１２は、各種データ及び各種プログラム等を記憶するためのハードディスクドライブ等から構成される。具体的には、記憶部１２には、オペレーティングシステム（ＯＳ）、Ｐ２Ｐプログラム、コンテンツカタログ情報、インデックス情報、ＤＨＴを用いたルーティングテーブル等が記憶されている。Ｐ２Ｐプログラムは、ノードプログラムの一例である。また、Ｐ２Ｐプログラムは、オペレーティングシステム上で実行されるアプリケーションプログラムである。なお、Ｐ２Ｐプログラムは、例えば、ネットワーク８に接続された所定のサーバからダウンロードされるようにしても良い。或いは、Ｐ２Ｐプログラムは、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００６９】
また、記憶部１２には、コンタクトノードのＩＰアドレス及びポート番号が記憶されている。コンタクトノードとは、オーバーレイネットワーク９に参加するノードＮｎからの参加要求を処理するノードＮｎである。
【００７０】
更に、記憶部１２には、複数のコンテンツを保存するためのコンテンツ記憶領域が設けられている。各コンテンツは、キャッシュファイルとしてコンテンツ記憶領域に保存される。各コンテンツのキャッシュファイルは、コンテンツ格納用ディレクトリに格納されて管理される。また、キャッシュファイル数が多くなる場合、１つのコンテンツ格納用ディレクトリに全てのキャッシュファイルが格納されると、キャッシュファイルのソートに時間がかかる。従って、このような場合、複数のコンテンツ格納用ディレクトリが作成される。そして、複数のキャッシュファイルは、各コンテンツ格納用ディレクトリに分けられて格納される。言い換えれば、複数のキャッシュファイルは、複数のコンテンツ格納用ディレクトリの何れかに属する。なお、コンテンツ格納用ディレクトリは、グループの一例である。また、各コンテンツ格納用ディレクトリには、固有のディレクトリ番号が付与される。例えば、ディレクトリ数が１６あるとすると、各コンテンツ格納用ディレクトリには、１６進数で０〜Ｆの何れかのディレクトリ番号が付与される。そして、キャッシュファイルに対応するコンテンツＩＤの所定桁目の値により、格納されるコンテンツ格納用ディレクトリが決定される。例えば、「所定桁目」を、１６進数で構成されたコンテンツＩＤの上位１桁目とする。この場合、コンテンツＩＤの上位１桁目が“２”であるとすると、ディレクトリ番号が“２”のコンテンツ格納用ディレクトリが決定される。従って、コンテンツＩＤの上位１桁目が“２”のキャッシュファイルは、ディレクトリ番号が“２”のコンテンツ格納用ディレクトリに格納される。なお、コンテンツ格納用ディレクトリ内にコンテンツ格納用ディレクトリを格納して階層構造にするように構成してもよい。
【００７１】
また、各コンテンツのキャッシュファイルには、コンテンツを送信した装置の種別を示す種別情報が対応付けられて記憶される。装置の種別としては、ノードとサーバが挙げられる。更に、コンテンツがコンテンツ保持ノードから取得されたものである場合、このコンテンツのキャッシュファイルには、上述した検索処理により発見されたコンテンツ保持ノードの数を示すノード数情報が対応付けられて記憶される。
【００７２】
通信部１９は、ネットワーク８を通じて他のノードＮｎ等との間の情報の通信制御を行う。
【００７３】
バッファメモリ１３は、通信部１９を通じて他のノードＮｎから受信されたコンテンツ等を一時蓄積する。バッファメモリ１３に蓄積されたコンテンツは記憶部１２に出力され、記憶、保存される。こうして、記憶部１２に保存されたコンテンツは、ユーザからの入力部１９ａを介した指示に応じて読み出され、デコーダ部１４等により再生出力される。
【００７４】
デコーダ部１４は、コンテンツに含まれるビデオデータ及びオーディオデータ等のデータ伸張や復号化等のデコード処理を行う。映像処理部１５は、デコーダ部１４によりデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。表示部１６は、映像処理部１５から出力されたビデオ信号に基づきディスプレイに映像等を表示する。音声処理部１７は、デコーダ部１４によりデコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する。スピーカ１８は、音声処理部１７から出力されたオーディオ信号を音波として出力する。
【００７５】
制御部１１は、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成される。制御部１１は、送信手段、送信制御手段、取得手段、決定手段、第１決定手段、第２決定手段、検索手段、第１コンテンツ取得手段、第２コンテンツ取得手段、及び記憶制御手段の一例である。
【００７６】
また、制御部１１は、時計機能及びタイマ機能を有する。制御部１１は、時計機能により現在時刻を認識できる。
【００７７】
そして、制御部１１は、ＣＰＵがオペレーティングシステム実行下で記憶部１２等に記憶されたＰ２Ｐプログラムを読み出して実行する。これにより、上述したように、ユーザノード、ルートノード、中継ノード及びコンテンツ保持ノード等の少なくとも何れか一つのノードとしての処理を行う。
【００７８】
また、コンテンツ保持ノードの制御部１１は、記憶部１２に保存されている各コンテンツのパブリッシュメッセージを、各コンテンツのルートノード宛に所定の時間間隔毎に送信するパブリッシュ処理を行う。これにより、インデックス情報を記憶するルートノードがオーバーレイネットワーク９から脱退しても、新たなルートノードにインデックス情報を記憶させることができる。
【００７９】
更に、コンテンツ保持ノードの制御部１１は、パブリッシュ処理において、予め設定された送信優先基準にしたがって、各コンテンツのパブリッシュメッセージの送信順序を制御する。例えば、コンテンツ保持ノードの制御部１１は、パブリッシュメッセージの送信順序を、後述するように決定する。そして、制御部１１は、決定した送信順序を、送信優先基準として、パブリッシュメッセージの送信順序を制御する。ここで、送信優先基準は、複数のコンテンツの中で、どのコンテンツのパブリッシュメッセージの送信を優先するかを規定するものである。送信優先基準の例として、以下のａ〜ｆが挙げられる。
【００８０】
（１）送信優先基準ａ：ファイルサイズの大きいコンテンツを優先する。
ここで、ファイルサイズは、ノードＮｎにインストールされたオペレーティングシステムにより管理されるコンテンツの管理情報の一例である。送信優先基準ａによれば、ユーザノードがコンテンツ保持ノードからファイルサイズの大きいコンテンツを取得し易くすることができる。そのため、コンテンツ管理サーバＳＡが、ファイルサイズの大きいコンテンツをユーザノードへ送信するために通信帯域が占有されるのを回避することができる。
【００８１】
なお、パブリッシュ処理の対象のコンテンツが分割コンテンツの場合、分割コンテンツのファイルサイズに着目するのではなく、分割コンテンツを構成要素とするコンテンツの全体ファイルサイズに着目しても良い。この場合、ユーザノードがコンテンツ保持ノードからファイルサイズの大きいコンテンツの構成要素である分割コンテンツを取得し易くすることができる。そのため、コンテンツ管理サーバＳＡが、ファイルサイズの大きいコンテンツをユーザノードへ送信するために通信帯域が占有されるのを回避することができる。
【００８２】
（２）送信優先基準ｂ：タイムスタンプが新しいコンテンツを優先する。
ここで、タイムスタンプは、ノードＮｎにインストールされたオペレーティングシステムにより管理されるコンテンツの管理情報の一例である。また、タイムスタンプは、コンテンツの取得時又は再生時にコンテンツに付与される。タイムスタンプが最新のンテンツは、最近取得又は再生されたコンテンツであるので、人気のあるコンテンツということができる。送信優先基準ｂによれば、ユーザノードがコンテンツ保持ノードから人気のあるコンテンツを取得し易くすることができる。そのため、ユーザノードが人気のあるコンテンツを取得するために、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【００８３】
（３）送信優先基準ｃ：公開開始日時が現在日時に近いコンテンツを優先する。
ここで、公開開始日時が現在日時に近いコンテンツは、アクセス集中が予想されるコンテンツということができる。送信優先基準ｃによれば、ユーザノードがコンテンツ保持ノードからアクセス集中が予想されるコンテンツを取得し易くすることができる。そのため、ユーザノードが、アクセス集中が予想されるコンテンツを取得するために、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【００８４】
（４）送信優先基準ｄ：公開終了日時が現在日時に近いコンテンツを優先する。
ここで、公開終了日時が現在日時に近いコンテンツは、アクセス集中が予想されるコンテンツということができる。送信優先基準ｄによれば、ユーザノードがコンテンツ保持ノードからアクセス集中が予想されるコンテンツを取得し易くすることができる。そのため、ユーザノードがアクセス集中が予想されるコンテンツを取得するために、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【００８５】
なお、公開終了日時が現在日時に近いコンテンツを優先することに代えて、公開終了日時が現在日時から遠いコンテンツを優先することを送信優先基準ｄとしてもよい。この場合、公開終了日時までの時間までの期間に、より多くのユーザノードがコンテンツを取得することができる。
【００８６】
（５）送信優先基準ｅ：コンテンツ保持ノードの数が少ないコンテンツを優先する。
ここで、コンテンツ保持ノードの数は、上述した検索処理により取得されたインデックス情報に示されるコンテンツ保持ノードの数である。送信優先基準ｅによれば、ユーザノードがコンテンツ保持ノードから、コンテンツ保持ノードの数が少ないコンテンツを取得し易くすることができる。そのため、ユーザノードがコンテンツ保持ノードの数が少ないコンテンツを取得しているためにユーザノードもコンテンツ保持ノードとして機能することが可能になる。そのため、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【００８７】
（６）送信優先基準ｆ：コンテンツ管理サーバから取得されたコンテンツを優先する。
ここで、コンテンツがコンテンツ管理サーバＳＡから取得されたということは、コンテンツ保持ノードの数が少ないということができる。また、コンテンツ管理サーバＳＡからコンテンツが取得されるということは、コンテンツ保持ノードにアクセスが集中しているということができる。送信優先基準ｆによれば、ユーザノードがコンテンツ保持ノードから、コンテンツ保持ノードの数が少ないコンテンツを取得し易くすることができる。そのため、ユーザノードがコンテンツ保持ノードの数が少ないコンテンツを取得しているためにユーザノードもコンテンツ保持ノードとして機能することが可能になる。そのため、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【００８８】
なお、上記送信優先基準ａ〜ｆの組合せを送信優先基準として設定しても良い。
【００８９】
［３．コンテンツ配信システムＳの動作］
次に、図３乃至図５を参照して、コンテンツ配信システムＳの動作について説明する。
【００９０】
図３は、ノードＮｎの制御部１１におけるメイン処理の一例を示すフローチャートである。また、図４は、図３に示すステップＳ４におけるパブリッシュ処理の一例を示すフローチャートである。また、図５（Ａ）は、図４に示すステップＳ４７における送信優先基準に基づくパブリッシュ処理の一例を示すフローチャートである。また、図５（Ｂ）は、図４に示すステップＳ４８における複数ディレクトリに対応したパブリッシュ処理の一例を示すフローチャートである。なお、図３乃至図５に示す処理は、コンテンツ配信システムＳにおける全てのノードＮｎに共通する。
【００９１】
図３に示す処理は、例えばノードＮｎにおいて電源オンがなされると開始される。
【００９２】
先ず、制御部１１は、パブリッシュ処理の終了時刻を“０：００”に設定する（ステップＳ１）。
【００９３】
次いで、制御部１１は、オーバーレイネットワーク９への参加処理を実行する（ステップＳ２）。具体的には、参加処理において、制御部１１は、コンタクトノードに参加要求メッセージを送信する。これにより、コンタクトノード等から送信されてきた応答メッセージに含まれるノード情報等を用いてＤＨＴを用いたルーティングテーブルを生成する。これにより、ノードＮｎは、オーバーレイネットワーク９に参加することになる。
【００９４】
制御部１１は、電源オフ指令があったか否かを判別する（ステップＳ３）。そして、制御部１１は、電源オフ指令がない場合には（ステップＳ３：ＮＯ）、ステップＳ４に進む。一方、電源オフ指令があった場合には（ステップＳ３：ＹＥＳ）、制御部１１は、オーバーレイネットワーク９からの脱退処理を実行する（ステップＳ５）。脱退処理後、図３に示す処理は終了する。
【００９５】
ステップＳ４では、制御部１１は、パブリッシュ処理を実行する。
【００９６】
パブリッシュ処理では、図４に示すように、制御部１１は、先ず、前回のパブリッシュ処理の終了時刻から所定時間Ｔ１以上経過しているか否かを判別する（ステップＳ４１）。所定時間Ｔ１により、パブリッシュメッセージの送信が所定の時間間隔で行われるようになる。ここで、所定時間Ｔ１は、例えば３０分程度に予め設定される。ただし、ノードのＮｎの参加、脱退が頻繁に行われる環境では、ルートノードが変わる可能性があるので、所定時間Ｔ１は、短くした方が良い。例えば、コンタクトノードが、一定期間内に受信した参加要求メッセージの数に基づいて所定時間Ｔ１を決定する。例えば、参加要求メッセージの数が多い場合には所定時間Ｔ１が短い時間に決定される。一方、参加要求メッセージが少ない場合には所定時間Ｔ１が長い時間に決定される。決定された所定時間Ｔ１はＤＨＴマルチキャストで全ノードＮｎに通知される。そして、各ノードＮｎは通知された所定時間Ｔ１を設定する。
【００９７】
そして、制御部１１は、前回のパブリッシュ処理の終了時刻から所定時間Ｔ１以上経過していないと判別した場合には（ステップＳ４１：ＮＯ）、図３に示す処理に戻る。
【００９８】
一方、制御部１１は、前回のパブリッシュ処理の終了時刻から所定時間Ｔ１以上経過したと判別した場合には（ステップＳ４１：ＹＥＳ）、ステップＳ４３に進む。ステップＳ４３では、制御部１１は、記憶部１２におけるコンテンツ記憶領域にコンテンツが保存されているか否かを判別する。この判別は、例えば、コンテンツ格納用ディレクトリにキャッシュファイルが格納されているか否かが確認されることにより行われる。
【００９９】
そして、制御部１１は、コンテンツ記憶領域にコンテンツが保存されていないと判別した場合には（ステップＳ４３：ＮＯ）、ステップＳ４９に移行する。ステップＳ４９では、制御部１１は、パブリッシュ処理の終了時刻を現在時刻に設定し、図３に示す処理に戻る。
【０１００】
一方、制御部１１は、コンテンツ記憶領域にコンテンツが保存されていると判別した場合には（ステップＳ４３：ＹＥＳ）、ステップＳ４４に進む。
【０１０１】
ステップＳ４４では、制御部１１は、コンテンツ格納用ディレクトリに格納されているキャッシュファイルの数が、所定数Ｍ１以下であるか否かを判別する。なお、複数のコンテンツ格納用ディレクトリが設けられている場合、キャッシュファイルの数は、各コンテンツ格納用ディレクトリに格納されているキャッシュファイルの数の総和である。
【０１０２】
ここで、所定数Ｍ１は、ネットワーク８等に負荷をかけずに一度に送信可能なパブリッシュメッセージの数に設定される。例えば、所定数Ｍ１は、１００程度に予め設定される。
【０１０３】
そして、制御部１１は、キャッシュファイルの数が所定数Ｍ１以下であると判別した場合には（ステップＳ４４：ＹＥＳ）、ステップＳ４５に進む。ステップＳ４５では、制御部１１は、キャッシュファイルとして保存されているコンテンツのパブリッシュメッセージを、ルートノード宛に送信し、ステップＳ４９に移行する。ステップＳ４９では、制御部１１は、パブリッシュ処理の終了時刻を現在時刻に設定し、図３に示す処理に戻る。
【０１０４】
一方、キャッシュファイルの数が所定数Ｍ１以下でないと判別した場合には（ステップＳ４４：ＮＯ）、ステップＳ４６に進む。ステップＳ４６では、制御部１１は、コンテンツ格納用ディレクトリが複数に分かれているか否かを判別する。
【０１０５】
そして、制御部１１は、コンテンツ格納用ディレクトリが複数に分かれていないと判別した場合には（ステップＳ４６：ＮＯ）、ステップＳ４７に進む。一方、制御部１１は、コンテンツ格納用ディレクトリが複数に分かれていると判別した場合には（ステップＳ４６：ＹＥＳ）、ステップＳ４８に進む。
【０１０６】
ステップＳ４７では、制御部１１は、送信優先基準に基づくパブリッシュ処理を実行する。送信優先基準に基づくパブリッシュ処理では、図５（Ａ）に示すように、制御部１１は、予め設定された送信優先基準にしたがって、コンテンツ格納用ディレクトリに格納されている複数のキャッシュファイルをソートし、パブリッシュリストを作成する（ステップＳ４７１）。パブリッシュリストには、例えば、パブリッシュメッセージの送信順に各コンテンツのコンテンツＩＤが記述される。
【０１０７】
例えば、上述した送信優先基準ａ又は送信優先基準ｂが設定されている場合、制御部１１は、オペレーティングシステムから各コンテンツの管理情報として、ファイルサイズ又はタイムスタンプを取得する。なお、ファイルサイズ及びタイムスタンプ以外の情報を取得するように構成しても良い。そして、制御部１１は、取得した管理情報に基づき、各コンテンツのパブリッシュメッセージの送信順序を決定する。オペレーティングシステムにより管理される管理情報は、ノードＮｎの記憶部１２等に記憶されている。そのため、制御部１１は、パブリッシュメッセージの送信順序を決定するための情報をネットワーク等を介さず、オペレーティングシステムから迅速に取得することができる。
【０１０８】
より具体的には、上述した送信優先基準ａが設定されている場合、制御部１１は、オペレーティングシステムから取得したファイルサイズの大きい順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。次いで、制御部１１は、決定した送信順序で、即ち、ファイルサイズの大きい順に各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。
【０１０９】
また、上述した送信優先基準ｂが設定されている場合、制御部１１は、オペレーティングシステムから取得したタイムスタンプが新しい順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。次いで、制御部１１は、決定した送信順序で、即ち、タイムスタンプが新しい順に各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。なお、分割コンテンツの場合、制御部１１は、分割コンテンツを構成要素とするコンテンツの全体ファイルサイズをオペレーティングシステムから取得するように構成しても良い。この場合、制御部１１は、全体ファイルサイズの大きい順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。
【０１１０】
なお、送信優先基準ａと送信優先基準ｂの組合せが設定されるように構成しても良い。この場合、制御部１１は、ファイルサイズの大きい順、かつタイムスタンプが新しい順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。例えば、制御部１１は、ファイルサイズの大きい順に高くなる得点を各コンテンツに付与すると共に、タイムスタンプが新しい順に高くなる得点を各コンテンツに付与する。そして、制御部１１は、この２つの得点の合計が大きい順に各コンテンツのパブリッシュメッセージの送信  順序を決定する。この構成によれば、コンテンツ管理サーバＳＡが、ファイルサイズの大きいコンテンツをユーザノードへ送信するために通信帯域が占有されるのを回避することができる。加えて、ユーザノードが人気のあるコンテンツを取得するために、コンテンツ管理サーバＳＡにアクセス集中することを低減することができる。
【０１１１】
また、例えば、上述した送信優先基準ｃ又は送信優先基準ｄが設定されている場合、制御部１１は、各コンテンツの属性情報として、公開開始日時又は公開終了日時をコンテンツカタログ情報から取得する。なお、公開開始日時及び公開終了日時以外の情報を取得するように構成しても良い。そして、制御部１１は、取得した属性情報に基づき、各コンテンツのパブリッシュメッセージの送信順序を決定する。コンテンツカタログ情報は、ノードＮｎの記憶部１２に記憶されている。そのため、制御部１１は、パブリッシュメッセージの送信順序を決定するための情報をコンテンツカタログ情報から迅速に取得することができる。
【０１１２】
より具体的には、上述した送信優先基準ｃが設定されている場合、制御部１１は、コンテンツカタログ情報から各コンテンツの公開開始日時を取得する。次いで、制御部１１は、取得した公開開始日時が現在日時に近い順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。次いで、制御部１１は、決定した送信順序で、即ち、公開開始日時が現在日時に近い順に各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。
【０１１３】
また、上述した送信優先基準ｄが設定されている場合、制御部１１は、コンテンツカタログ情報から各コンテンツの公開終了日時を取得する。次いで、制御部１１は、取得した公開終了日時が現在日時に近い順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。次いで、制御部１１は、決定した送信順序で、即ち、公開終了日時が現在日時に近い順に各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。なお、制御部１１は、取得した公開終了日時が現在日時から遠い順にパブリッシュメッセージを送信する送信順序を決定するように構成しても良い。
【０１１４】
また、上述した送信優先基準ｅが設定されている場合、制御部１１は、各キャッシュファイルに対応付けられて記憶されたノード数情報を取得する。次いで、制御部１１は、ノード数情報に示されるコンテンツ保持ノードの数が少ない順に各コンテンツのパブリッシュメッセージを送信する送信順序を決定する。次いで、制御部１１は、決定した送信順序で各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。即ち、コンテンツ保持ノードの数が少ない順に、各コンテンツのコンテンツＩＤが記述されたパブリッシュリストが作成される。
【０１１５】
また、上述した送信優先基準ｆが設定されている場合、制御部１１は、各キャッシュファイルに対応付けられて記憶された種別情報を取得する。次いで、制御部１１は、種別情報に示される装置の種別がサーバであるコンテンツのパブリッシュメッセージの送信を優先とする送信順序を決定する。次いで、制御部１１は、決定した送信順序で各コンテンツのコンテンツＩＤを記述したパブリッシュリストを作成する。即ち、コンテンツ管理サーバＳＡから取得されたコンテンツを優先とする順に、各コンテンツのコンテンツＩＤが記述されたパブリッシュリストが作成される。このように優先とされたコンテンツは、パブリッシュメッセージの送信順序が上位にくることになる。
【０１１６】
なお、送信優先基準ｅと送信優先基準ｆの組合せが設定されるように構成しても良い。この場合、例えば、制御部１１は、コンテンツ管理サーバＳＡから取得されたコンテンツのパブリッシュメッセージの送信を最優先としてより上位に順位付ける。そして、制御部１１は、コンテンツ管理サーバＳＡから取得されたコンテンツのパブリッシュメッセージの送信順位より下位に、コンテンツ保持ノードの数が少ないコンテンツのパブリッシュメッセージの送信を順位付ける。コンテンツ管理サーバＳＡから取得されたコンテンツの方が、コンテンツ保持ノードの数が少ないコンテンツよりも取得し難いと言える。従って、この構成によれば、より取得し難いコンテンツのパブリッシュメッセージの送信をより優先することができる。
【０１１７】
次いで、制御部１１は、作成したパブリッシュリストから上位所定数Ｍ２のコンテンツＩＤを取得する（ステップＳ４７２）。ここで、所定数Ｍ２は、一度に連続して送信するパブリッシュメッセージの数を制限するためのものである。所定数Ｍ２は、例えば、ノードＮｎの処理能力等のスペックに基づき設定することができる。所定数Ｍ２は、例えば５０程度に予め設定される。Ｍ２＝５０に設定された場合、パブリッシュリストから１位から５０位までのコンテンツＩＤがパブリッシュリストから取得される。
【０１１８】
次いで、制御部１１は、取得した所定数Ｍ２のコンテンツＩＤをパブリッシュリストから削除する（ステップＳ４７３）。制御部１１は、パブリッシュリストからコンテンツＩＤを削除すると、削除したコンテンツＩＤより下位のコンテンツＩＤの順位を繰り上げる。
【０１１９】
次いで、制御部１１は、取得した各コンテンツＩＤを含む各パブリッシュメッセージを、各ルートノード宛に送信する（ステップＳ４７４）。例えば、制御部１１は、送信順序１位から順に、コンテンツＩＤが含まれるパブリッシュメッセージを生成する。そして、制御部１１は、生成したパブリッシュメッセージをルートノード宛に送信する。こうして、例えば、送信優先基準ａが設定されている場合、ファイルサイズの大きいコンテンツの順にパブリッシュメッセージが送信される。
【０１２０】
次いで、制御部１１は、パブリッシュリストが空になったか否かを判別する（ステップＳ４７５）。この処理は、パブリッシュリストに記述されたコンテンツＩＤが無くなるまで繰り返し行われる。そして、制御部１１は、パブリッシュリストが空になっていないと判別した場合には（ステップＳ４７５：ＮＯ）、ステップＳ４７６に進む。一方、そして、制御部１１は、パブリッシュリストが空になったと判別した場合には（ステップＳ４７５：ＹＥＳ）、図４に示す処理に戻る。図４に示す処理に戻ると、制御部１１は、パブリッシュ処理の終了時刻を現在時刻に設定し（ステップＳ４９）、図３に示す処理に戻る。
【０１２１】
次いで、制御部１１は、所定時間Ｔ２待機し（ステップＳ４７６）、ステップＳ４７２に戻る。ここで、所定時間Ｔ２は、ノードＮｎ及びネットワーク８にかかる負荷を低減するために、時間を空けながらゆっくりとパブリッシュメッセージの送信を行うためのものである。所定時間Ｔ２は、例えば、ノードＮｎの処理能力等のスペックに基づき設定することができる。所定時間Ｔ２は、例えば５００ミリ秒程度に予め設定される。所定時間Ｔ２と、上記所定数Ｍ２とにより、例えば、５０個のパブリッシュメッセージの送信→５００ミリ秒休み→５０個のパブリッシュメッセージの送信→５００ミリ秒休み→・・・と処理が繰り返されることになる。
【０１２２】
ステップＳ４８では、制御部１１は、複数ディレクトリに対応したパブリッシュ処理を実行する。このパブリッシュ処理では、制御部１１は、先ず、全てのコンテンツ格納用ディレクトリのディレクトリ番号をディレクトリリストに記述する。そして、図５（Ｂ）に示すように、制御部１１は、この制御部１１を備えるノードＮｎ自身に割り当てられたノードＩＤの所定桁目の値に対応するディレクトリを基準ディレクトリとして決定する（ステップＳ４８１）。
【０１２３】
例えば、「所定桁目」を１６進数で構成されたノードＩＤの上位１桁目とする。この場合、ノードＩＤの上位１桁目が“２”であるとすると、ディレクトリ番号が“２”のコンテンツ格納用ディレクトリが基準ディレクトリとして決定される。つまり、この例では、ノードＩＤの１桁目の値と一致するディレクトリ番号が付与されたコンテンツ格納用ディレクトリが基準ディレクトリとして決定される。この場合、ディレクトリ番号が“２”のコンテンツ格納用ディレクトリには、コンテンツＩＤの上位１桁目が“２”のキャッシュファイルが格納されている。なお、ノードＩＤの複数の桁目の値と一致するディレクトリ番号が付与されたコンテンツ格納用ディレクトリが基準ディレクトリとして決定されるように構成しても良い。
【０１２４】
次いで、制御部１１は、決定された基準ディレクトリに対して、上述した図５（Ａ）に示す送信優先基準に基づくパブリッシュ処理を実行する（ステップＳ４８２）。つまり、ステップＳ４８１及びステップＳ４８２の処理により、制御部１１は、基準ディレクトリに属するコンテンツのパブリッシュメッセージの送信を優先とする送信順序を決定する。そして、制御部１１は、決定した送信順序でパブリッッシュメッセージを送信する。言い換えれば、基準ディレクトリに格納されたキャッシュファイルに対応するパブリッシュメッセージの送信が、他のコンテンツ格納用ディレクトリに格納されたキャッシュファイルより優先される。オーバーレイネットワーク９に参加しているノードＮｎのノードＩＤの所定桁目の値は、例えば１６進数とすると０〜Ｆの間でほぼ均等に分散される。つまり、ノードＩＤがＳＨＡ−１等のハッシュ関数により生成される場合、ハッシュ関数の特性より、ノードＩＤはさほど偏ることなく均等に分散される。その結果、ノードＩＤの所定桁目の値は、例えば１６進数とすると０〜Ｆの間でほぼ均等に分散される。そのため、パブッリシュメッセージにより公開されるコンテンツを偏り無くほぼ均等に分散されることができる。その結果、特定のコンテンツへのアクセス集中を回避することができる。
【０１２５】
そして、ステップＳ４８２のパブリッシュ処理が終了すると、制御部１１は、パブリッシュ処理されたコンテンツ格納用ディレクトリのディレクトリ番号をディレクトリリストから削除する。そして、制御部１１は、全てのコンテンツ格納用ディレクトリに対して送信優先基準に基づくパブリッシュ処理を実行したか否かを判別する（ステップＳ４８３）。この判別は、例えば、ディレクトリリストにディレクトリ番号が記述されているか否かにより行われる。ディレクトリリストにディレクトリ番号が記述されていなければ、全てのコンテンツ格納用ディレクトリに対して送信優先基準に基づくパブリッシュ処理が実行されたことになる。
【０１２６】
そして、制御部１１は、全てのコンテンツ格納用ディレクトリに対して送信優先基準に基づくパブリッシュ処理を実行したと判別した場合には（ステップＳ４８３：ＹＥＳ）、図４に示す処理に戻る。図４に示す処理に戻ると、制御部１１は、パブリッシュ処理の終了時刻を現在時刻に設定し（ステップＳ４９）、図３に示す処理に戻る。
【０１２７】
一方、制御部１１は、全てのコンテンツ格納用ディレクトリに対して送信優先基準に基づくパブリッシュ処理を実行していないと判別した場合には（ステップＳ４８３：ＮＯ）、ステップＳ４８４に進む。
【０１２８】
ステップＳ４８４では、制御部１１は、次に処理すべきコンテンツ格納用ディレクトリを選択する。例えば、制御部１１は、ステップＳ４８２で処理したディレクトリのディレクトリ番号に“１”を加算する。なお、ディレクトリ番号から“１”を減算しても良い。そして、制御部１１は、加算又は減算して得られたディレクトリ番号が付与されたコンテンツ格納用ディレクトリを、次に処理すべきコンテンツ格納用ディレクトリとして選択する。
【０１２９】
次いで、制御部１１は、所定時間Ｔ３待機し（ステップＳ４８５）、ステップＳ４８２に戻る。所定時間Ｔ３は、所定時間Ｔ２と同様、ノードＮｎ及びネットワーク８にかかる負荷を低減するために、時間を空けながらゆっくりとパブリッシュメッセージの送信を行うためのものである。コンテンツ格納用ディレクトリが複数ある場合、１つのコンテンツ格納用ディレクトリに格納されるキャッシュファイルの数は少なくなる。この場合、ステップＳ４８２における送信優先基準に基づくパブリッシュ処理において、図５（Ａ）に示すステップＳ４７６の所定時間Ｔ２待機する処理が実行されない場合が生じる。つまり、ステップＳ４８２に移行した直後のステップＳ４７１〜ステップＳ４７３において、所定数Ｍ２のコンテンツＩＤがパブリッシュリストから削除されることによりパブリッシュリストが空になる場合（ステップＳ４７５：ＹＥＳ）がある。この場合、ステップＳ４７６の所定時間Ｔ２待機する処理は一度も実行されることなく、図５（Ｂ）に示す処理に戻る。このような場合、所定時間Ｔ３は所定時間Ｔ２と同様の時間に設定される。なお、所定時間Ｔ２待機する処理が実行される場合、例えば、所定時間Ｔ３は“０”としてよい。
【０１３０】
そして、ステップＳ４８２に戻ると、制御部１１は、ステップＳ４８４で選択したコンテンツ格納用ディレクトリに対して、上述した図５（Ａ）に示す送信優先基準に基づくパブリッシュ処理を実行する。
【０１３１】
図３に示す処理に戻り、ステップＳ６では、制御部１１は、他のノードＮｎから送信されたパブリッシュメッセージを受信したか否かを判別する。そして、制御部１１は、パブリッシュメッセージを受信したと判別した場合には（ステップＳ６：ＹＥＳ）、ステップＳ７へ進む。一方、制御部１１は、パブリッシュメッセージを受信していないと判別した場合には（ステップＳ６：ＮＯ）、ステップＳ１０に進む。
【０１３２】
ステップＳ７では、制御部１１は、パブリッシュメッセージに含まれるコンテンツＩＤ及びＩＰアドレス等を、インデックス情報としてインデックスキャッシュ領域に記憶する。
【０１３３】
次いで、制御部１１は、この制御部１１を備えるノードＮｎが、ルートノードであるか否かを判別する（ステップＳ８）。例えば、制御部１１は、この制御部１１を備えるノードＮｎのノードＩＤが、ＤＨＴを用いたルーティングテーブルに登録されているどのノードＩＤよりも上記コンテンツＩＤと近い場合、ルートノードであると判別する。
【０１３４】
そして、制御部１１は、ルートノードでないと判別した場合には（ステップＳ８：ＮＯ）、ステップＳ９に進む。一方、制御部１１は、ルートノードであると判別した場合には（ステップＳ８：ＹＥＳ）、ステップＳ１０に進む。
【０１３５】
ステップＳ９では、制御部１１は、ＤＨＴを用いたルーティングテーブルにしたがって、パブリッシュメッセージを他のノードＮｎに転送し、ステップＳ１０に進む。
【０１３６】
ステップＳ１０では、制御部１１は、その他の処理を実行する。その他の処理では、例えば、コンテンツの再生処理、各種メッセージの送受信処理等が実行される。
【０１３７】
なお、上記動作例において、キャッシュファイルが複数のコンテンツ格納用ディレクトリに格納されて管理されなくとも良い。この場合、上述したステップＳ４８の処理は実行されない。
【０１３８】
以上説明したように、上記実施形態によれば、パブリッシュ処理において、予め設定された送信優先基準にしたがって、各コンテンツのパブリッシュメッセージの送信順序を制御するように構成した。そのため、多くのコンテンツのパブリッシュメッセージが送信される状況下であっても、ユーザノードがコンテンツ保持ノードからコンテンツを取得し易くすることができる。従って、コンテンツ管理サーバＳＡの負荷を低減することができる。
【０１３９】
なお、上記実施形態において、オーバーレイネットワーク９は、ＤＨＴを利用したアルゴリズムにより形成されるように構成した。しかし、これに限定されるものではなく、その他のアルゴリズムによりオーバーレイネットワーク９が形成されるものであっても良い。つまり、ＤＨＴ以外のルーティングテーブルがノードに用いられるシステムであっても良い。なお、ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。また、上記実施形態においては、ルートノードがコンテンツの所在を管理するように構成したが、ルートノード以外の管理装置がコンテンツの所在を管理するように構成してもよい。
【符号の説明】
【０１４０】
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  通信部
１９ａ  入力部
１９ｂ  バス
ＳＡ  コンテンツ管理サーバ
Ｎｎ  ノード
Ｓ  コンテンツ配信システム
【図１】
2011070588.tif 000003
【図２】
2011070588.tif 000004
【図３】
2011070588.tif 000005
【図４】
2011070588.tif 000006
【図５】
2011070588.tif 000007