以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに本発明を適用した場合の実施形態である。
[1.コンテンツ配信システムの構成及び動作概要]
始めに、図1を参照して、本実施形態に係るコンテンツ配信システムの構成及び動作概要について説明する。図1は、本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。図1に示すように、本実施形態に係るコンテンツ配信システムSは、WebサーバWS、管理サーバMS、投入サーバDS、ユーザ端末UT、及びルータRm(m=1,2,3・・・j)等により構成されている。WebサーバWS、管理サーバMS、投入サーバDS、ユーザ端末UT、及びルータRmはネットワークNWに接続されている。ネットワークNWは、インターネット等からなる。WebサーバWSは、投稿者により投稿された動画ファイルをネットワークNW上で公開する動画配信サイトを構成するためのサーバである。また、WebサーバWSは、本発明における配信装置の一例である。また、管理サーバMSは、動画配信サイトに登録されている動画ファイルへのアクセス状況やWebサーバWSの負荷状況を監視するためのサーバである。また、投入サーバDSは、カラオケデータを、後述するオーバーレイネットワークONに投入するサーバである。ユーザ端末UTは、例えば、ユーザにより使用されるパーソナルコンピュータ又は携帯機器である。ユーザ端末UTは、例えば、インターネットサービスプロバイタのサーバ(図示せず)により割り当てられたIPアドレスを用いてネットワークNWに接続可能になっている。なお、図1の例では、一つのユーザ端末UTを示しているが、実際には複数のユーザ毎に存在する。
また、図1に示すように、コンテンツ配信システムSには、複数の拠点Pm毎に拠点ネットワークNLmが構築されている。この拠点の例としては、例えばカラオケ店舗が挙げられる。拠点ネットワークNLmは、例えば、LAN(Local Area Network)等のプライベートネットワークである。また、各拠点ネットワークNLmには、ルータRmと複数の拠点端末Tm−l(l=1,2,3)とが接続されている。ルータRmは、ネットワークNWと拠点ネットワークNLmとの間でIP(Internet Protocol)パケットを中継する中継機器である。拠点端末Tm−lは、例えばカラオケ店舗に設置されており、カラオケデータを再生することができる。
なお、各拠点Pmにおける視聴端末Tm−lは、同じ拠点ネットワークNLmに接続されているルータRmだけと通信を行うことに限定されるものではない。例えば、拠点P1における視聴端末T1−1は、同じ拠点ネットワークNL1に接続されているルータR1だけでなく、他の拠点P2等におけるルータR2等やWebサーバWSとも通信を行うことができる。
また、図1に示すように、コンテンツ配信システムSには、ネットワークNWを介して互いに通信可能な複数のノードNn(n=1,2,3・・・k)の参加によりオーバーレイネットワークONが構成されている。オーバーレイネットワークONは、仮想的なリンクを構成する論理的なネットワークである。オーバーレイネットワークONは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。なお、分散ハッシュテーブルを、以下、「DHT(Distributed Hash Table)」という。ここで、オーバーレイネットワークONに参加するとは、DHTを用いたルーティングテーブルに基づいてオーバーレイネットワークONを介して他のノードNnとの間で各種メッセージを送受信できる状態に稼動することをいう。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
そして、本実施形態においては、ルータRmとユーザ端末UTがノードNnとしてオーバーレイネットワークONに参加可能になっている。ルータRmは、オーバーレイネットワークONに定常的に参加するノードNnである。オーバーレイネットワークONに定常的に参加するノードNnを、以下、「常駐ノード」という。常駐ノードは、本発明における第1の情報処理装置の一例である。ここで、「定常的に参加」とは、例えば、ノードNnが故障時又はメンテナンス時以外の時には、オーバーレイネットワークONから脱退せず参加していることを意味する。本実施形態では、ルータRmに、ノードNnとして制御処理を実行させるプログラムがインストールされる。各拠点Pm以外にも、各家庭で常時ネットワークに接続される機器に、ノードNnとして制御処理を実行させるプログラムがインストールされても良い。一方、ユーザ端末UTは、オーバーレイネットワークONに必ずしも定常的に参加するとは限らないノードNnである。オーバーレイネットワークONに必ずしも定常的に参加するとは限らないノードNnを、以下、「一般ノード」という。一般ノードは、本発明における「第1情報処理装置とは異なる第2の情報処理装置」の一例である。ここで、ユーザ端末UTは、例えば、ユーザがユーザ端末UTを使用する時等の所定時間だけオーバーレイネットワークONに参加する。
また、オーバーレイネットワークONに参加している各ノードNnにはノードIDが付与されている。このノードIDは、ノードNnを、オーバーレイネットワークONに参加しているノードNnの中から識別する固有の識別情報である。また、オーバーレイネットワークONに参加している複数のノードNnには、内容の異なる様々なコンテンツが分散保存されている。コンテンツには、コンテンツ配信システムSにより定常的に配信される第1のコンテンツと、第1コンテンツとは異なる第2のコンテンツと、がある。第2コンテンツは、オーバーレイネットワークONに参加するノードNnまたはオーバーレイネットワークONに参加しない他の情報処理装置から投入、または、投稿されるコンテンツである。以下の説明において、「第1のコンテンツ」を、メインコンテンツという。また、「第2のコンテンツ」を、サブコンテンツという。メインコンテンツの例としては、カラオケデータが挙げられる。カラオケデータは、各拠点Pmの拠点端末Tm−lで利用される。サブコンテンツの例としては、動画配信サイトに登録された動画ファイルが挙げられる。この動画ファイルは、主として、WebサーバWSから配信される。本実施形態においては、WebサーバWSはオーバーレイネットワークONに属していない。なお、属しているとは、WebサーバWSがオーバーレイネットワークONに参加していることを示す。しかし、例えば人気度の高い動画ファイルは、オーバーレイネットワークONを利用して常駐ノードからも配信されるようになっている。これは、WebサーバWSの処理負荷を低減するためである。この場合、常駐ノードは、エッジサーバとして機能する。なお、サブコンテンツの別の例としては、例えばユーザ端末UT等によりアップロードされた所定のデータファイルが挙げられる。
また、オーバーレイネットワークONで各ノードNnに保存されている各コンテンツには、コンテンツIDが付与されている。コンテンツIDは、コンテンツを、オーバーレイネットワークONでノードNnに保存されるコンテンツの中から識別する固有の識別情報である。なお、ノードID及びコンテンツIDは、例えば、オーバーレイネットワークONで共通のハッシュ関数により生成される。
ここで、コンテンツを保存しているノードNnを、以下、「コンテンツ保持ノード」という。また、コンテンツの所在を示す情報は、インデックス情報として、コンテンツの所在を管理しているノードNnに記憶される。コンテンツの所在を管理しているノードNnを、以下、「ルートノード」という。インデックス情報には、コンテンツを保存しているコンテンツ保持ノードのノード情報と、コンテンツのコンテンツIDとの組が含まれる。ノード情報には、例えば、コンテンツ保持ノードのIPアドレス、ポート番号、及びノードIDが含まれる。ルートノードは、例えば、コンテンツIDと最も近いノードIDが割り当てられたノードNnであるように定められる。コンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
そして、あるノードNnが、オーバーレイネットワークONを介してコンテンツ保持ノードから所定のコンテンツを取得する場合がある。この場合の例としては、拠点端末T1−1から所定のメインコンテンツの要求を受けたノードN1が、このメインコンテンツを保存していなかった場合が挙げられる。なお、図1の例では、ノードN1はルータR1である。この場合、ノードN1は、先ず、オーバーレイネットワークONでコンテンツ保持ノードに保存される所定のメインコンテンツの所在を検索する検索処理を行う。ここで、所定のメインコンテンツとは、例えば、拠点端末T1−1のユーザにより取得対象として選択されたカラオケデータである。この所定のメインコンテンツを、以下、「取得対象のメインコンテンツ」という。また、検索処理を行うノードN1を、以下、「ユーザノード」という。検索処理は、取得対象のメインコンテンツのコンテンツIDに基づいて行われる。具体的には、ユーザノードは、検索処理において、コンテンツ所在問合せメッセージを生成する。コンテンツ所在問合せメッセージは、取得対象のメインコンテンツの所在をルートノードに問い合わせるためのメッセージである。また、コンテンツ所在問合せメッセージには、このメッセージを送信するユーザノードのIPアドレス及びポート番号、並びに取得対象のメインコンテンツのコンテンツIDが含まれる。そして、ユーザノードは、生成したコンテンツ所在問合せメッセージを、DHTルーティングによりルートノード宛に送信する。なお、DHTルーティングは、例えば特開2007−053662号公報等で公知であるので、詳しい説明を省略する。コンテンツ所在問合せメッセージを受信したルートノードは、コンテンツ所在問合せメッセージに含まれるコンテンツIDに対応するインデックス情報を取得する。そして、ルートノードは、取得したインデックス情報を、ユーザノードへ返信する。このように返信されたインデックス情報には、取得対象のメインコンテンツを保存している1以上のコンテンツ保持ノードのIPアドレス等が含まれている。こうして、ユーザノードは、ルートノードからのインデックス情報を受信する。このインデックス情報により、ユーザノードは、取得対象のメインコンテンツを発見することができる。そして、ユーザノードは、受信したインデックス情報に含まれるコンテンツ保持ノードのIPアドレス等に基づいてコンテンツ保持ノードにアクセスする。そして、ユーザノードは、コンテンツ保持ノードに取得対象のメインコンテンツを要求しこのメインコンテンツをコンテンツ保持ノードから取得する。そして、ユーザノードは、取得したメインコンテンツを拠点端末T1−1へ送信する。
また、ユーザノードが所定のコンテンツを取得する場合の別の例としては、ユーザ端末UTから所定のサブコンテンツの要求を受けたノードNnが、このサブコンテンツを保存していなかった場合が挙げられる。この場合、ノードNnは、先ず、オーバーレイネットワークONでコンテンツ保持ノードに保存される所定のサブコンテンツの所在を検索する検索処理を行う。ここで、所定のサブコンテンツとは、例えば、ユーザ端末UTのユーザにより取得対象として選択された動画ファイルである。この所定のサブコンテンツを、以下、「取得対象のサブコンテンツ」という。この場合も、ユーザノードは、上述したメインコンテンツの場合と同様、オーバーレイネットワークONから取得対象のサブコンテンツの所在を検索する検索処理を行う。そして、ユーザノードは、ルートノードからインデックス情報を取得することで発見されたサブコンテンツをコンテンツ保持ノードから取得する。ユーザノードは、コンテンツ保持ノードから取得したサブコンテンツをユーザ端末UTへ送信する。
ところで、ユーザノードは、検索処理により、オーバーレイネットワークONから取得対象のサブコンテンツを発見することができない場合がある。この場合の例としては、取得対象のサブコンテンツがオーバーレイネットワークONに投入されていない場合が挙げられる。この場合、上記コンテンツ所在問合せメッセージを受信したルートノードには、取得対象のサブコンテンツのコンテンツ保持ノードのノード情報が記憶されていない。そのため、ルートノードは、コンテンツ無メッセージをユーザノードへ返信することになる。このコンテンツ無メッセージは、取得対象のサブコンテンツを保存しているコンテンツ保持ノードが無いことを示すメッセージである。このコンテンツ無メッセージは、ユーザノードからユーザ端末UTへ送信される。ユーザ端末UTは、取得対象のサブコンテンツをオーバーレイネットワークONから発見できなかった場合、このサブコンテンツを保存しているWebサーバWSから取得する。このようにWebサーバWSから取得されたサブコンテンツが、オーバーレイネットワークONに投入する投入条件を満たす場合、このサブコンテンツはオーバーレイネットワークONへ投入される。これにより、WebサーバWSから取得されたサブコンテンツは、オーバーレイネットワークONで取得可能なコンテンツとなる。なお、上記投入条件については後述する。
[2.WebサーバWSの構成及び機能]
次に、図2(A)を参照して、WebサーバWSの構成及び機能について説明する。図2(A)は、WebサーバWSの概要構成例を示すブロック図である。WebサーバWSは、図2(A)に示すように、制御部1、記憶部2、及び通信部3等を備えて構成される。制御部1、記憶部2、及び通信部3はバス4を介して相互に接続されている。なお、WebサーバWSには、IPアドレスが割り当てられている。WebサーバWSは、アプリケーションサーバ、及びデータベースサーバ等の複数のサーバから構成されてもよい。
記憶部2は、例えばハードディスクドライブ等から構成される。記憶部2には、オペレーティングシステム、及びサーバプログラム等が記憶されている。また、記憶部2に設けられたコンテンツ保存領域には、動画配信サイトに登録された動画ファイルが所定のファイル形式で記憶されている。なお、動画ファイルには、例えば、動画データだけでなく、音声データが含まれる場合もある。動画ファイルの例としては、wmaファイル、wmvファイル、asfファイル等が挙げられる。
また、記憶部2には、ユーザ端末UT等に提供可能なWebページが記憶されている。Webページは、HTML(Hyper Text Markup Language)やXML等により記述された構造化文書ファイルからなる。また、Webページには、動画ファイルを再生するソフトウェアであるプレイヤーの識別子が記述される。更に、Webページには、ユーザ端末UT等に提供可能な動画ファイルの所在を示す所在情報が記述される。この所在情報の例としては、動画ファイルのURL(Uniform Resource Locator)が挙げられる。このURLには、動画ファイルのファイルパスが含まれる。動画ファイルのファイルパスは、コンテンツ保存領域の位置を特定するための情報である。なお、Webページには、所在情報として、動画ファイルのメタファイルのURLが記述されるように構成してもよい。動画ファイルのメタファイルは、WebブラウザがWebページから動画ファイルへアクセスするためのテキストファイルである。そのため、動画ファイルのメタファイルには、動画ファイルのURLが記述される。動画ファイルのメタファイルの例としては、waxファイル、wvxファイル、asxファイル等が挙げられる。このような動画ファイルのメタファイルを利用することで、WebブラウザがWebページに示されるプレイヤーを起動させ動画ファイルのストリーミング再生が可能になる。
通信部3は、ネットワークNWを通じてルータRm、ユーザ端末UT又は管理サーバMS等との間の通信制御を行う。
制御部1は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部1は、本発明における第2受信手段、及び第2保存手段の一例である。制御部1は、CPUが記憶部2等に記憶されたプログラムを読み出して実行することにより、WebサーバWSとしての処理を行う。
なお、投稿者により投稿された動画ファイルは、制御部1による検閲後に動画配信サイトで公開されるようになっている。具体的には、制御部1は、動画配信サイトにアクセスした例えばユーザ端末UTからネットワークNWを介して送信された動画ファイルを受信する。つまり、動画ファイルがユーザ端末UTからWebサーバWSへアップロードされる。そして、制御部1は、受信された動画ファイルが、動画配信サイトで公開するために必要な公開基準を満たす場合に、動画配信サイトで公開されるコンテンツとして登録する。なお、公開基準は、WebサーバWSから配信するための検閲基準の一例である。ここで、公開することが不適切な内容を含む動画ファイルは、公開基準を満たさないとされる。公開基準を満たすかどうかの検閲は、制御部1が予め設定された公開基準データを参照することにより行う。なお、この検閲は、管理者が目視で行うように構成してもよい。
[3.管理サーバMSの構成及び機能]
次に、図2(B)を参照して、管理サーバMSの構成及び機能について説明する。図2(B)は、管理サーバMSの概要構成例を示すブロック図である。管理サーバMSは、図2(B)に示すように、制御部11、記憶部12、及び通信部13等を備えて構成される。制御部11、記憶部12、及び通信部13はバス14を介して相互に接続されている。なお、管理サーバMSには、IPアドレスが割り当てられている。
記憶部12は、例えばハードディスクドライブ等から構成される。記憶部12には、オペレーティングシステム、及びサーバプログラム等が記憶されている。また、記憶部12には、WebサーバWSのIPアドレス及びポート番号、及びオーバーレイネットワークONに参加している所定数の常駐ノードのノード情報が記憶されている。この常駐ノードのノード情報は、ユーザ端末UTからの要求に応じてユーザ端末UTに提供される。
通信部13は、ネットワークNWを通じてユーザ端末UT又はWebサーバWS等との間の通信制御を行う。
制御部11は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部11は、本発明における第3取得手段、及び投入手段の一例である。制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、管理サーバMSとしての処理を行う。
[4.ルータRmの構成及び機能等]
次に、図2(C)を参照して、ルータRmの構成及び機能について説明する。図2(C)は、ルータRmの概要構成例を示す図である。ルータRmは、図2(C)に示すように、制御部21、記憶部22、通信部23a,及び通信部23b等を備えて構成される。制御部21、記憶部22、通信部23a,及び通信部23bはバス24を介して相互に接続されている。なお、各ルータRmには、IPアドレスが割り当てられている。
記憶部22は、例えばハードディスクドライブ等から構成される。記憶部22には、オペレーティングシステム、IPパケット中継処理プログラム、及びノード処理プログラム等が記憶されている。なお、ノード処理プログラム等は、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしてもよい。或いは、ノード処理プログラム等は、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
また、記憶部22には、オーバーレイネットワークONで使用されるDHTを用いたルーティングテーブル等が記憶されている。また、記憶部22に設けられたコンテンツ保存領域には、メインコンテンツとしてカラオケデータが記憶されている。カラオケデータは、例えば曲番に相当するファイル名が付与されたファイルとして保存される。また、カラオケデータには、音声データ、字幕データ、及び映像データが含まれる。さらに、記憶部22に設けられたコンテンツ保存領域には、WebサーバWSから配信される動画ファイルがサブコンテンツとして記憶される場合もある。なお、記憶部22に記憶されているコンテンツには、記憶された日付を示す日付情報が付与されている。なお、日付には、時刻が含まれてもよい。
通信部23aは、ネットワークNWを通じて他のルータRm、ユーザ端末UT又は管理サーバMS等との間の通信制御を行う。通信部23bは、拠点ネットワークNLmを通じて拠点端末Tm−lとの間の通信制御を行う。
制御部21は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部21は、本発明における受信手段、保存手段、及び削除手段の一例である。制御部21は、CPUが記憶部22等に記憶されたIPパケット中継処理プログラムの実行により、IPパケット中継処理部21aとして動作する。IPパケット中継処理部21aは、OSI(Open Systems Interconnection)参照モデルの第3層であるネットワーク層において、他のルータ又はホストからのIPパケットを中継する処理を行う。なお、IPパケット中継処理部21aの機能は、公知のルータ又はL3スイッチングハブ等と同様であるので、詳しい説明を省略する。また、制御部21は、CPUが記憶部22等に記憶されたノード処理プログラムの実行により、ノード処理部21bとして動作する。なお、IPパケット中継処理部21aとノード処理部21bの処理は、1つのCPUがマルチタスク又はマルチコアにより実行される。或いは、IPパケット中継処理部21aとノード処理部21bの処理は、2つのCPUで夫々のCPUにより実行されるように構成してもよい。
[5.ユーザ端末UTの構成及び機能等]
次に、図2(D)を参照して、ユーザ端末UTの構成及び機能について説明する。図2(D)は、ユーザ端末UTの概要構成例を示すブロック図である。ユーザ端末UTは、図2(D)に示すように、制御部31、記憶部32、バッファメモリ33、デコーダ部34、映像処理部35、表示部36、音声処理部37、スピーカ38、通信部39、及び入力部39a等を備えて構成される。制御部31、記憶部32、バッファメモリ33、デコーダ部34、映像処理部35、表示部36、音声処理部37、通信部39、及び入力部39aは、バス39bを介して相互に接続されている。
記憶部32は、例えばハードディスクドライブ等から構成される。記憶部32には、オペレーティングシステム、Webブラウザのプログラム、プレイヤーのプログラム、及びノード処理プログラム等が記憶されている。なお、ノード処理プログラム等は、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしてもよい。或いは、ノード処理プログラム等は、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
また、記憶部32には、WebサーバWSのIPアドレス及びポート番号、及び管理サーバMSのIPアドレス及びポート番号が記憶されている。更に、オーバーレイネットワークONに参加しているユーザ端末UTの記憶部32には、DHTを用いたルーティングテーブル等が記憶されている。
バッファメモリ33は、受信されたコンテンツをバッファリングする。デコーダ部34は、コンテンツに含まれる映像データ及び音声データ等のデータ伸張や復号化等のデコード処理を行う。映像処理部35は、デコーダ部34によりデコードされた映像データ等に対して所定の描画処理を施し映像信号として再生出力する。表示部36は、映像処理部35から再生出力された映像信号に基づきディスプレイに映像等を表示する。また、表示部36は、デコーダ部34によりデコードされた画像を表示する。音声処理部37は、デコーダ部34によりデコードされた音声データをアナログ音声信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して再生出力する。スピーカ38は、音声処理部37から再生出力された音声信号を音波として出力する。
通信部39は、ネットワークNWを通じてWebサーバWS、管理サーバMS、又はルータRm等との間の通信制御を行う。
制御部31は、演算機能を有するCPU,作業用RAM,及びROM等から構成される。制御部31は、本発明における検索手段、取得手段、第2取得手段、受信手段、判定手段、削除手段及び制御手段の一例である。また、制御部31は、時計機能及びタイマ機能を有する。また、制御部31は、CPUが記憶部32等に記憶されたWebブラウザのプログラムの実行により、Webブラウザ31aとして動作する。このWebブラウザ31aによりWebサーバWSから取得されたWebページがディスプレイに表示される。また、制御部31は、CPUが記憶部32等に記憶されたプレイヤーのプログラムの実行により、プレイヤー31bとして動作する。このプレイヤー31bによりデコーダ部34等が制御されてコンテンツが再生される。また、制御部31は、CPUが記憶部32等に記憶されたノード処理プログラムの実行により、ノード処理部31cとして動作する。更に、ノード処理部31cは、Webブラウザ31aとWebサーバWSを中継する中継機能を有している。この中継機能によって、Webブラウザ31aからのリクエストは、ノード処理部31cを経由してWebサーバWSに転送される。また、この中継機能によって、WebサーバWSからのレスポンスは、ノード処理部31cを経由してWebブラウザ31aに転送される。
なお、Webブラウザ31aとノード処理部31cの処理は、1つのCPUがマルチタスク又はマルチコアにより実行される。或いは、Webブラウザ31aとノード処理部31cの処理は、2つのCPUで夫々のCPUにより実行されるように構成してもよい。
[6.コンテンツ配信システムSの動作]
次に、本実施形態に係るコンテンツ配信システムSの動作について説明する。
(6.1 カラオケデータの投入動作)
先ず、カラオケデータがメインコンテンツとしてオーバーレイネットワークONへ投入される場合のコンテンツ配信システムSの動作について説明する。
例えば、システム運営者の端末から新たなカラオケデータが投入サーバDSにアップロードされると、投入サーバDSは、管理サーバMSから常駐ノードのノード情報を取得する。そして、投入サーバDSは、取得したノード情報に含まれるIPアドレス及びポート番号に基づいて常駐ノードへアクセスし、コンテンツ保存依頼メッセージを送信する。このコンテンツ保存依頼メッセージは、カラオケデータの保存を依頼するメッセージである。なお、投入サーバDSは、管理サーバMSから複数の常駐ノードのノード情報を取得してもよい。この場合、投入サーバDSは、各常駐ノードへコンテンツ保存依頼メッセージを送信する。
そして、このコンテンツ保存依頼メッセージを受信した常駐ノードのノード処理部21bは、例えば、この常駐ノードの記憶部22にカラオケデータを保存するための空き領域がある場合、コンテンツ保存許可メッセージを返信する。このコンテンツ保存許可メッセージは、カラオケデータの保存を許可するメッセージである。一方、コンテンツ保存依頼メッセージを受信した常駐ノードの記憶部22にカラオケデータを保存するための空き領域がない場合がある。この場合、常駐ノードのノード処理部21bは、記憶部22に記憶されている複数のコンテンツの中から選択したコンテンツを削除する。例えば、最も古いコンテンツから選択されて削除される。最も古いコンテンツとは、記憶された日付が最も過去のコンテンツを意味する。ここで、複数のコンテンツの中にメインコンテンツとサブコンテンツが含まれている場合には、常駐ノードのノード処理部21bは、メインコンテンツよりサブコンテンツを優先して削除する。これにより、サブコンテンツの存在により、オーバーレイネットワークONでメインコンテンツの利用が妨げられることを回避することができる。なお、このように空き領域がない場合のコンテンツの削除は、常駐ノードがオーバーレイネットワークONを介して他のノードNnから新たなコンテンツを取得する場合も同様に行われる。こうして、コンテンツの削除によりカラオケデータを保存するための空き領域が確保された場合、常駐ノードのノード処理部21bは、コンテンツ保存許可メッセージを投入サーバDSへ返信する。そして、投入サーバDSは、常駐ノードからのコンテンツ保存許可メッセージを受信すると、この常駐ノードへカラオケデータを送信する。
こうして、カラオケデータを受信した常駐ノードは、このカラオケデータをメインコンテンツとして保存しコンテンツ保持ノードとなる。また、メインコンテンツを保存した常駐ノードは、このメインコンテンツのパブリッシュ処理を行う。このパブリッシュ処理は、このコンテンツを保存していることを他のノードNnに公開するための処理である。このパブリッシュ処理において、常駐ノードのノード処理部21bは、パブリッシュメッセージを生成する。パブリッシュメッセージには、メインコンテンツのコンテンツID、及びメインコンテンツを保存した常駐ノードのノード情報が含まれる。そして、常駐ノードは、生成したパブリッシュメッセージを、DHTルーティングにより、メインコンテンツのルートノード宛に送信する。パブリッシュメッセージを受信したルートノードは、メインコンテンツのコンテンツIDと常駐ノードのIPアドレス等との組を、インデックス情報として記憶する。
以上のように、カラオケデータは、オーバーレイネットワークONで取得可能なメインコンテンツとしてオーバーレイネットワークONへ投入される。
(6.2 動画ファイルの投入動作)
次に、図3を参照して、動画ファイルがサブコンテンツとしてオーバーレイネットワークONへ投入される場合のコンテンツ配信システムSの動作について説明する。図3は、サブコンテンツが投入される場合のコンテンツ配信システムSにおける各装置の処理等を示すシーケンス図である。
なお、動画ファイルの投入動作の前提として、ユーザ端末UTのノード処理部31cは、管理サーバMSから常駐ノードのノード情報を取得しているものとする。また、ユーザ端末UTの表示部36には、Webブラウザ31aによりWebサーバWSから受信されたWebページが表示されているものとする。このWebページは、動画配信サイトで公開された動画ファイルの視聴用のページである。また、このWebページには、例えば動画ファイルのURL又は動画ファイルのメタファイルのURLが含まれている。
Webページが表示されている状態において、例えば、ユーザ端末UTのユーザにより入力部19aを介して動画ファイルの再生指示があった場合、ユーザ端末UTのWebブラウザ31aは、取得対象の動画ファイルのリクエストをノード処理部31cに送信する(ステップS1)。或いは、Webブラウザ31aがWebページを受信したことを条件として、取得対象の動画ファイルのリクエストがノード処理部31cに送信されるように構成してもよい。このリクエストは、例えばHTTP(HyperText Transfer Protocol)リクエストである。また、動画ファイルのリクエストには、Webページから抽出された動画ファイルのURLが含まれている。なお、Webページに動画ファイルのメタファイルのURLが含まれる場合がある。この場合、Webブラウザ31aは、先ず、動画ファイルのメタファイルを取得してこのメタファイルから動画ファイルのURLを抽出する。そして、Webブラウザ31aは、抽出した動画ファイルのURLを含むリクエストをノード処理部31cに送信する。
次いで、ユーザ端末UTのノード処理部31cは、Webブラウザ31aからのリクエストを受信すると、リクエストに含まれる動画ファイルのURLに基づいてサブコンテンツのコンテンツIDを生成する(ステップS2)。ここで、コンテンツIDは、例えば、ノードIDを生成するハッシュ関数と同じハッシュ関数により動画ファイルのURLがハッシュ化されて生成される。この場合、動画ファイルのURLのハッシュ値がコンテンツIDとなる。なお、コンテンツIDは、動画ファイルのURLと動画ファイルのキーワード等の情報との組合せが上記ハッシュ関数によりハッシュ化されて生成されるように構成してもよい。このように動画ファイルのURLに基づきコンテンツIDが生成されるので、オーバーレイネットワークONへ投入されるサブコンテンツのコンテンツIDを記述するためにWebページの記述を変更しなくてもよい。つまり、動画ファイルの投稿者等は、クライアント・サーバ型の配信システムで動画ファイルを配信することだけを想定してWebページを作成すればよい。そのため、オーバーレイネットワークONで動画ファイルを公開するための専門知識を必要としない。
なお、ユーザ端末UTのノード処理部31cが例えば管理サーバMS等の所定のサーバから、動画ファイルのURLに対応するコンテンツIDを取得するように構成してもよい。この場合、ユーザ端末UTのノード処理部31cは、例えば管理サーバMSに動画ファイルのURLを送信する。そして、管理サーバMSは、ユーザ端末UTから受信したURLに基づきコンテンツIDを生成してユーザ端末UTへ返信する。或いは、管理サーバMSは、ユーザ端末UTから受信したURLに対応付けられて記憶されているコンテンツIDを取得してユーザ端末UTへ返信する。また、ユーザ端末UTのノード処理部31cは、受信されたリクエストに動画ファイルのメタファイルのURLが含まれる場合がある。この場合、動画ファイルのメタファイルのURLに基づいてサブコンテンツのコンテンツIDを生成するように構成してもよい。
次いで、ユーザ端末UTのノード処理部31cは、管理サーバMSから取得した常駐ノードのノード情報に含まれるIPアドレス及びポート番号に基づいて常駐ノードへアクセスし、コンテンツ要求メッセージを送信する(ステップS3)。このコンテンツ要求メッセージは、常駐ノードにサブコンテンツを要求するメッセージである。また、このコンテンツ要求メッセージには、上記ステップS2で生成されたコンテンツIDが含まれる。
なお、コンテンツ要求メッセージには、コンテンツIDに代えて動画ファイルのURLが含まれるように構成してもよい。この場合、常駐ノードのノード処理部21bが、動画ファイルのURLに基づいてサブコンテンツのコンテンツIDを生成することになる。
次いで、常駐ノードのノード処理部21bは、ユーザ端末UTからのコンテンツ要求メッセージを受信する。そして、常駐ノードのノード処理部21bは、受信されたコンテンツ要求メッセージに含まれるコンテンツIDに基づいて、取得対象のサブコンテンツの所在を検索する検索処理を実行する(ステップS4)。
次いで、常駐ノードのノード処理部21bは、上記ステップS4の検索処理により、オーバーレイネットワークONから取得対象のサブコンテンツを発見できたか否かを判定する(ステップS5)。そして、常駐ノードのノード処理部21bは、取得対象のサブコンテンツを発見できた場合には(ステップS5:YES)、ステップS6に進む。なお、上記ステップS4の検索処理を行った常駐ノードの記憶部22から取得対象のサブコンテンツが発見される場合もある。一方、常駐ノードのノード処理部21bは、取得対象のサブコンテンツを発見できなかった場合には(ステップS5:NO)、ステップS9に進む。
ステップS6では、常駐ノードのノード処理部21bは、上記検索処理によりルートノードから受信されたインデックス情報に示されるコンテンツ保持ノードから取得対象のサブコンテンツを取得する。或いは、常駐ノードのノード処理部21bは、記憶部22から取得対象のサブコンテンツを取得する。そして、常駐ノードのノード処理部21bは、取得したサブコンテンツをユーザ端末UTへ送信する(ステップS7)。
次いで、ユーザ端末UTのノード処理部31cは、常駐ノードからのサブコンテンツを受信すると、このサブコンテンツをWebブラウザ31aへ転送する(ステップS8)。ここで、Webブラウザ31aは、Webページに記述されたプレイヤーの識別子に対応するプレイヤー31bを起動する。そして、ノード処理部31cから転送されたサブコンテンツは、プレイヤー31bにより再生される。
一方、ステップS9では、常駐ノードのノード処理部21bは、コンテンツ無メッセージをユーザ端末UTへ送信する。
次いで、ユーザ端末UTのノード処理部31cは、常駐ノードからのコンテンツ無メッセージを受信すると、上記ステップS2でWebブラウザ31aから受信したリクエストをWebサーバWSへ転送する(ステップS10)。これにより、ユーザ端末UTのノード処理部31cは、WebサーバWSから動画ファイルを取得する(ステップS11)。そして、ノード処理部31cは、WebサーバWSから取得した動画ファイルをWebブラウザ31aへ転送する(ステップS12)。
ところで、上記ステップS10及びS11の別の例として、ユーザ端末UTのノード処理部31cは、オーバーレイネットワークONとは異なる他のオーバーレイネットワークを構成するノードから動画ファイルを取得するように構成してもよい。他のオーバーレイネットワークは、例えば複数のユーザ端末UTにより構成される。この場合、ユーザ端末UTのノード処理部31cは、他のオーバーレイネットワークに参加しているノードのIPアドレス及びポート番号を事前に記憶しておく。或いは、他のオーバーレイネットワークを参加している何れかのノードのIPアドレス及びポート番号を所定のサーバから取得する構成してもよい。そして、ユーザ端末UTのノード処理部31cは、他のオーバーレイネットワークを参加しているノードから動画ファイルを取得する。
次いで、ユーザ端末UTのノード処理部31cは、管理サーバMSへアクセス状況問合せメッセージを送信する(ステップS13)。このアクセス状況問合せメッセージは、管理サーバMSに、動画ファイルへのアクセス状況を問い合わせるためのメッセージである。また、このアクセス状況問合せメッセージには、例えば、動画ファイルのURLが含まれる。なお、ユーザ端末UTのノード処理部31cは、管理サーバMSへ負荷状況問合せメッセージを送信するように構成してもよい。この負荷状況問合せメッセージは、管理サーバMSに、WebサーバWSの負荷状況を問い合わせるメッセージである。
次いで、管理サーバMSの制御部11は、ユーザ端末UTからのアクセス状況問合せメッセージを受信する。そして、管理サーバMSの制御部11は、動画ファイルへのアクセス状況を示す情報をWebサーバWSから取得する(ステップS14)。この動画ファイルは、受信されたアクセス状況問合せメッセージに含まれるURLから特定される。ここで、アクセス状況を示す情報には、特定された動画ファイルの人気度を示す情報が含まれる。動画ファイルの人気度は、例えば、所定期間における動画ファイルへのアクセス数に基づき算出される。例えば、所定期間における動画ファイルへのアクセス数が、動画ファイルの人気度として算出される。或いは、所定期間における動画ファイルへのアクセス数に所定の係数を乗算した値が、動画ファイルの人気度として算出される。所定期間における動画ファイルへのアクセス数は、例えばWebサーバWSがユーザ端末UT等からの動画ファイルのリクエスト数をカウントすることにより得られる。なお、動画ファイルの人気度は、例えば、所定期間における動画ファイルの配信数に基づき算出されるように構成してもよい。所定期間における動画ファイルの配信数は、例えばWebサーバWSが、ユーザ端末UT等への動画ファイルの配信数をカウントすることにより得られる。また、動画ファイルの人気度は、例えば、動画ファイルに対して閲覧者により付けられた評価点数の合計、又は閲覧者による動画ファイルのお気に入り登録の総数などに基づき算出されるように構成してもよい。評価点数及びお気に入り登録の情報は、WebサーバWSに記憶されている。
なお、管理サーバMSの制御部11が、ユーザ端末UTから負荷状況問合せメッセージを受信する場合がある。この場合、管理サーバMSの制御部11は、WebサーバWSの負荷状況を示す情報をWebサーバWSから取得する。ここで、負荷状況を示す情報には、WebサーバWSの負荷率を示す情報が含まれる。WebサーバWSの負荷率は、例えば所定期間におけるCPU使用率として得られる。また、負荷状況を示す情報には、WebサーバWSが接続される通信回線の帯域の占有率を示す情報が含まれるように構成してもよい。
次いで、管理サーバMSの制御部11は、ユーザ端末UTへ回答メッセージを送信する(ステップS15)。この回答メッセージは、アクセス状況問合せメッセージに対する回答を示すメッセージである。また、この回答メッセージには、WebサーバWSから取得されたアクセス状況を示す情報又は負荷状況を示す情報が含まれる。
次いで、ユーザ端末UTのノード処理部31cは、管理サーバMSからの回答メッセージを受信すると、上記ステップS11で取得された動画ファイルが、オーバーレイネットワークONに投入する投入条件を満たすか否かを判定する(ステップS16)。例えば、回答メッセージにアクセス状況を示す情報が含まれている場合、このアクセス状況を示す情報から動画ファイルの人気度を示す情報が取得される。この場合、ノード処理部31cは、取得された動画ファイルの人気度が、所定の人気度以上である場合、投入条件を満たすと判定する。これにより、人気度の高い動画ファイルをサブコンテンツとしてオーバーレイネットワークONへ投入することができる。そのため、例えばWebサーバWSの処理負荷を低減することができる。ここで、「所定の人気度」は、例えばノード処理プログラムで予め規定される。また、例えば、回答メッセージに負荷状況を示す情報が含まれている場合、この負荷状況を示す情報からWebサーバWSの負荷率又は通信回線の帯域の占有率を示す情報が取得される。この場合、ノード処理部31cは、取得されたWebサーバWSの負荷率が、所定の負荷率以上である場合、投入条件を満たすと判定する。或いは、ノード処理部31cは、通信回線の帯域の占有率が、所定の占有率以上である場合、投入条件を満たすと判定する。これにより、例えばWebサーバWSの処理負荷を低減することができる。ここで、「所定の負荷率」又は「所定の占有率」は、例えばノード処理プログラムで予め規定される。また、ノード処理部31cは、動画ファイルの人気度が所定の人気度以上であり、且つ、WebサーバWSの負荷率が所定の負荷率以上である場合に投入条件を満たすと判定するように構成してもよい。或いは、ノード処理部31cは、動画ファイルの人気度が所定の人気度以上であり、且つ、通信回線の帯域の占有率が所定の占有率以上である場合に投入条件を満たすと判定するように構成してもよい。これらの構成によれば、より一層、例えばWebサーバWSの処理負荷を低減することができる。
なお、動画ファイルの人気度が所定の人気度以上であるか否かの判定、WebサーバWSの負荷率が所定の負荷率以上であるか否かの判定、又は通信回線の帯域の占有率が所定の占有率以上であるか否かの判定は、管理サーバMSの制御部11が行うように構成してもよい。この場合、管理サーバMSの制御部11からユーザ端末UTへ送信される回答メッセージには、人気度等の判定結果を示す情報が含まれる。そして、ユーザ端末UTのノード処理部31cは、人気度等の判定結果を示す情報に基づき、上記ステップS11で取得された動画ファイルが、オーバーレイネットワークONに投入する投入条件を満たすか否かを判定する。例えば、回答メッセージに、動画ファイルの人気度が所定の人気度以上であることを示す情報が含まれていた場合、ノード処理部31cは、投入条件を満たすと判定する。
なお、上述した投入条件に、「動画ファイルのファイルサイズが所定のファイルサイズ以上であること」を加えるように構成してもよい。この場合、ユーザ端末UTのノード処理部31cは、上記ステップS11で取得された動画ファイルのファイルサイズを示す情報を例えばオペレーティングシステムから取得する。そして、ノード処理部31cは、動画ファイルのファイルサイズが所定のファイルサイズ以上であり、且つ、動画ファイルの人気度が所定の人気度以上である場合に投入条件を満たすと判定する。この構成によれば、ファイルサイズが大きく、なおかつ人気度の高い動画ファイルをオーバーレイネットワークONへ投入することができる。そのため、より一層、例えばWebサーバWSの処理負荷を低減することができる。ここで、「所定のファイルサイズ」は、例えばノード処理プログラムで予め規定される。この投入条件を用いることで、ファイルサイズが所定の大きさ以上の動画ファイルをオーバーレイネットワークONへ投入することができる。そのため、例えばWebサーバWSの処理負荷を低減することができる。或いは、ノード処理部31cは、動画ファイルのファイルサイズが所定のファイルサイズ以上であり、且つ、WebサーバWSの負荷率が所定の負荷率以上である場合に投入条件を満たすと判定するように構成してもよい。或いは、ノード処理部31cは、動画ファイルのファイルサイズが所定のファイルサイズ以上であり、且つ、通信回線の帯域の占有率が所定の占有率以上である場合に投入条件を満たすと判定するように構成してもよい。これらの構成によっても、より一層、例えばWebサーバWSの処理負荷を低減することができる。
更に、上述した投入条件に、「検閲された動画ファイルであること」を加えるように構成してもよい。この場合、上記ステップS11で取得された動画ファイルは、WebサーバWSの制御部1により検閲された動画ファイルである。そのため、ノード処理部31cは、動画ファイルがWebサーバWSから取得されたものであり、且つ、動画ファイルの人気度が所定の人気度以上である場合に投入条件を満たすと判定する。或いは、ノード処理部31cは、動画ファイルがWebサーバWSから取得されたものであり、且つ、WebサーバWSの負荷率が所定の負荷率以上である場合に投入条件を満たすと判定するように構成してもよい。或いは、ノード処理部31cは、動画ファイルがWebサーバWSから取得されたものであり、且つ、通信回線の帯域の占有率が所定の占有率以上である場合に投入条件を満たすと判定するように構成してもよい。これらの構成によれば、オーバーレイネットワークONに不適切な動画コンテンツが投入されることを防止することもできる。
そして、ユーザ端末UTのノード処理部31cは、投入条件を満たすと判定した場合には(ステップS16:YES)、ステップS17に進む。一方、ノード処理部31cは、投入条件を満たさないと判定した場合には(ステップS16:NO)、動画コンテンツの投入を行わない。
ステップS17では、ユーザ端末UTのノード処理部31cは、常駐ノードへ参加メッセージを送信する。この常駐ノードは、上記ステップS9でコンテンツ無メッセージを送信したノードNnである。また、参加メッセージは、オーバーレイネットワークONへの参加を要求するメッセージである。
次いで、常駐ノードのノード処理部21bは、ユーザ端末UTからの参加メッセージを受信する。そして、常駐ノードのノード処理部21bは、記憶部22に記憶されているDHTを用いたルーティングテーブルから所定数のノード情報を取得する(ステップS18)。常駐ノードのノード処理部21bは、取得したノード情報をユーザ端末UTへ送信する(ステップS19)。なお、常駐ノードのノード処理部21bは、受信した参加メッセージを他の常駐ノードへ転送する場合もある。この場合、ユーザ端末UTには、複数の常駐ノードからノード情報が送信される。
次いで、ユーザ端末UTのノード処理部31cは、常駐ノードからのノード情報を受信すると、受信されたノード情報が登録されるDHTを用いたルーティングテーブルを生成する(ステップS20)。こうしてDHTのルーティングテーブルを生成したユーザ端末UTは、一般ノードとしてオーバーレイネットワークONに参加することになる。なお、参加処理時におけるDHTのルーティングテーブルの生成方法については公知であるため詳しい説明を省略する。
次いで、ユーザ端末UTのノード処理部31cは、ステップS11で取得された動画ファイルをオーバーレイネットワークONへ投入するための投入制御を実行する(ステップS21)。この投入制御では、先ず、ノード処理部31cは、動画ファイルの投入先となる所定数のノードNnのIPアドレス及びポート番号を記憶部32に記憶されているIPアドレス及びポート番号の中から取得する。例えば、動画ファイルの投入先となるノードNnのIPアドレス及びポート番号は、DHTを用いたルーティングテーブルに登録されているIPアドレス及びポート番号の中から取得される。また、ノード処理部31cがオーバーレイネットワークONを介して他のノードNnとの間で行ったメッセージの送受信の履歴情報が記憶部32に記憶されている場合がある。この履歴情報に他のノードNnのIPアドレス及びポート番号が含まれている場合、この中から動画ファイルの投入先となるノードNnのIPアドレス及びポート番号が取得されるように構成してもよい。そして、ユーザ端末UTのノード処理部31cは、取得した各IPアドレス及びポート番号に基づいてノードNnへアクセスし、コンテンツ保存依頼メッセージを送信する。このコンテンツ保存依頼メッセージは、動画ファイルの保存を依頼するメッセージである。このコンテンツ保存依頼メッセージを受信したノードNnは、例えば、このノードNnの記憶部に動画ファイルを保存するための空き領域がある場合、コンテンツ保存許可メッセージを返信する。このコンテンツ保存許可メッセージは、動画ファイルの保存を許可するメッセージである。一方、コンテンツ保存依頼メッセージを受信したノードNnは、例えば、このノードNnの記憶部に動画ファイルを保存するための空き領域がない場合、コンテンツ保存拒否メッセージを返信する。このコンテンツ保存拒否メッセージは、動画ファイルの保存を拒否するメッセージである。そして、ユーザ端末UTのノード処理部31cが、コンテンツ保存許可メッセージを受信した場合、このコンテンツ保存許可メッセージを送信したノードNnへ動画ファイルを送信する。
こうして、動画ファイルを受信したノードNnは、この動画ファイルをサブコンテンツとして保存しコンテンツ保持ノードとなる。また、サブコンテンツを保存したノードNnは、このサブコンテンツのパブリッシュ処理を行う。なお、このパブリッシュ処理の流れは、メインコンテンツのパブリッシュ処理の場合と同様である。
以上のように動画ファイルの投入が行われると、ユーザ端末UTのノード処理部31cは、オーバーレイネットワークONから脱退する脱退処理を実行する(ステップS22)。この脱退処理では、ユーザ端末UTのノード処理部31cは、ステップS20で生成したDHTのルーティングテーブルを消去し、ノード処理プログラムの実行を終了する。つまり、ユーザ端末UTは、取得した動画ファイルを投入するときだけオーバーレイネットワークONへ参加する。このように、ユーザ端末UTがオーバーレイネットワークONに参加している時間は短いので、ユーザ端末UTがコンテンツ保持ノードやルートノードになり難くすることができる。そのため、オーバーレイネットワークONを安定的に運用することができる。
なお、ユーザ端末UTのノード処理部31cは、オーバーレイネットワークONしている間に、コンテンツ保持ノードやルートノードにはならないように構成してもよい。例えば、ユーザ端末UTのノード処理部31cは、コンテンツを保存した場合であってもパブリッシュ処理を行わなければ、コンテンツ保持ノードとして機能しないようにすることができる。また、ユーザ端末UTのノード処理部31cは、他のノードNnから送信されたパブリッシュメッセージ及びコンテンツ所在問合せメッセージの受信を拒否すればルートノードとして機能しないようにすることができる。
以上説明したように、上記実施形態によれば、オーバーレイネットワークONに属していない配信装置から配信される動画ファイルをサブコンテンツとしてオーバーレイネットワークONに投入する場合、このサブコンテンツが投入条件を満たす場合に限りオーバーレイネットワークONへ投入される。そのため、オーバーレイネットワークONでメインとして利用されるメインコンテンツの保存や配信に支障をきたすことを回避することができる。また、オーバーレイネットワークONに参加している常駐ノードのストレージ容量を合計した総ストレージ容量が、サブコンテンツの保存のために必要以上に減少されることを回避することができる。従って、メインコンテンツが定常的に配信されるオーバーレイネットワークONで、サブコンテンツを分散保存して効率的にコンテンツ配信システムSを運用することができる。
また、サブコンテンツがオーバーレイネットワークONへ投入された後は、このコンテンツを配信するWebサーバWS等の配信装置の処理負荷を低減することができる。更に、WebサーバWS等の配信装置をコンテンツプールとして効率良く利用することができる。ここで、コンテンツプールとは、例えば、オーバーレイネットワークONにおいてコンテンツを取得するためのリクエストに対して、必ず応答できるようにする装置のことをいう。従来の方式によるオーバーレイネットワークでは、コンテンツプールとして専用の装置を設置する必要があったが、本実施形態では、WebサーバWS等の配信装置に、その役割を担わせることができる。そのため、本実施形態では、従来の方式ように専用の装置を設置する必要がないため、システムをより効率良くすることができる。
また、投入条件により例えば人気度が所定以上と高いサブコンテンツは、オーバーレイネットワークONで配信されることになる。そのため、WebサーバWS等の配信装置の処理負荷を低減することができる。一方、人気度の低いサブコンテンツは、WebサーバWSで配信されることになる。そのため、オーバーレイネットワークONを安定的に運用することができる。
ここで、上記ステップS21における投入制御の別の例として、ユーザ端末UTのノード処理部31cが管理サーバMSに動画ファイルを投入させる場合について説明する。この場合、上記ステップS10において、ユーザ端末UTのノード処理部31cは、上記ステップS2で受信されたリクエストに含まれる動画ファイルのURLを管理サーバMSに送信する。そして、管理サーバMSの制御部11は、ユーザ端末UTから送信された動画ファイルのURLを受信した場合に、このURLに対応する動画ファイルをWebサーバWSから取得する。なお、管理サーバMSは、上記ステップS11の別の例で説明した方法と同じように、他のオーバーレイネットワークを構成するノードから動画ファイルを取得するように構成してもよい。そして、管理サーバMSの制御部11は、取得した動画ファイルをオーバーレイネットワークONへ投入する。例えば、管理サーバMSの制御部11は、動画ファイルの投入先となる所定数のノードNnのIPアドレス及びポート番号を記憶部12に記憶されているIPアドレス及びポート番号の中から取得する。そして、管理サーバMSの制御部11は、取得した各IPアドレス及びポート番号に基づいてノードNnへアクセスし、コンテンツ保存依頼メッセージを送信する。その後の動作は、ユーザ端末UTのノード処理部31cがコンテンツ保存依頼メッセージを送信する場合と同様である。
このように、管理サーバMSが動画ファイルの投入を行うことで、ユーザ端末UTは、オーバーレイネットワークONに参加しなくてよい。そのため、ユーザ端末UTのノード処理部31cは、上記ステップS13〜ステップS22の処理を行わなくてよい。そして、管理サーバMSが動画ファイルの投入を行うことでユーザ端末UTの処理負荷を低減することができる。また、管理サーバMSが動画ファイルの投入を行う場合、投入途中で電源がオフされる可能性がユーザ端末UTより低い。そのため、ユーザ端末UTが投入する場合よりも確実に動画ファイルをオーバーレイネットワークONへ投入することができる。また、管理サーバMSが動画ファイルの投入を行うことで、投入される動画ファイルは管理サーバMSで一括管理することができる。そのため、重複した動画ファイルをオーバーレイネットワークONへ投入することを回避することができる。また、ユーザ端末UTが、WebサーバWSから動画ファイルを取得しながらストリーミング再生を行っているときに、ユーザの指示により例えばシーク再生やスキップ再生等の特殊再生が行われる場合がある。この場合、シーク再生やスキップ再生等の期間中の動画ファイルのデータ部分はユーザ端末UTに取得されない。つまり、ユーザ端末UTは完全な動画ファイルをWebサーバWSから取得できない場合がある。一方、管理サーバMSでは動画ファイルの特殊再生が行われないので、完全な動画ファイルをWebサーバWSから取得することができる。そのため、管理サーバMSは、完全な動画ファイルをオーバーレイネットワークONへ投入することができる。更に、管理サーバMSは、同時期に複数のユーザ端末UTから動画ファイルのURLを受信した場合に、ネットワークNWやノードNnの負荷状況に応じて、動画ファイルの投入量を制御することができる。
なお、上記ステップS21における投入制御の更に別の例として、ユーザ端末UTのノード処理部31cが常時参加ノードに動画ファイルを投入させるように構成してもよい。この場合、上記ステップS21において、ユーザ端末UTのノード処理部31cは、上記ステップS11で取得された動画ファイルを常駐ノードへ送信する。この常駐ノードは、上記ステップS9でコンテンツ無メッセージを送信したノードNnである。そして、常駐ノードのノード処理部21bは、動画ファイルの投入先となる所定数のノードNnのIPアドレス及びポート番号を記憶部22に記憶されているIPアドレス及びポート番号の中から取得する。例えば、動画ファイルの投入先となるノードNnのIPアドレス及びポート番号は、DHTを用いたルーティングテーブルに登録されているIPアドレス及びポート番号の中から取得される。また、ユーザ端末UTの場合と同様、履歴情報から動画ファイルの投入先となるノードNnのIPアドレス及びポート番号が取得されるように構成してもよい。そして、常駐ノードのノード処理部21bは、取得した各IPアドレス及びポート番号に基づいてノードNnへアクセスし、コンテンツ保存依頼メッセージを送信する。その後の動作は、ユーザ端末UTのノード処理部31cがコンテンツ保存依頼メッセージを送信する場合と同様である。
このように、常時参加ノードが動画ファイルの投入を行うことで、ユーザ端末UTは、オーバーレイネットワークONに参加しなくてよい。そのため、ユーザ端末UTのノード処理部31cは、上記ステップS17〜ステップS22の処理を行わなくてよい。そして、常時参加ノードが動画ファイルの投入を行うことでユーザ端末UTの処理負荷を低減することができる。また、常時参加ノードが動画ファイルの投入を行う場合、投入途中で電源がオフされる可能性がユーザ端末UTより低い。そのため、ユーザ端末UTが投入する場合よりも確実に動画ファイルをオーバーレイネットワークONへ投入することができる。
ただし、常駐ノードは、同一拠点Pmにおける拠点ネットワークNLmに接続された拠点端末Tm−lからの要求に応じてメインコンテンツを送信する役割を担う。更に、常駐ノードは、他の常駐ノードからの要求に応じてメインコンテンツ又はサブコンテンツを送信する役割を担う。このような役割を担う常駐ノードの処理負荷はできるだけ低減される必要がある。そのため、動画ファイルの投入は、ユーザ端末UT又は管理サーバMSが行うことが望ましい。ユーザ端末UT又は管理サーバMSが動画ファイルの投入を行うことで、オーバーレイネットワークONを安定的に運用することができる。
なお、上記実施形態においては、本発明の第2の情報処理装置としてユーザ端末UTを例にとって説明したが、拠点端末Tm−lが第2の情報処理装置であってもよい。この場合、拠点端末Tm−lには、上述したWebブラウザ31a、プレイヤー31b、及びノード処理部31cが備えられる。そして、拠点端末Tm−lには、ルータRmを介してWebサーバWSに動画ファイルをアップロードすることができる。更に、拠点端末Tm−lは、上述したステップS1〜S3,S8,S10,S12,S13,S16,S17,及びS20〜S22の処理を行うことができる。
また、上記実施形態においては、本発明の第1の情報処理装置としてルータRmを例にとって説明したがこれに限定されるものではなく、第1の情報処理装置はネットワークNWに接続されているサーバ等であってもよい。また、第1の情報処理装置は、基本的にネットワークNWに定常的に接続されているゲートウェイ等の機器であっても良い。
また、上記実施形態においては、拠点としてカラオケ店舗を例にとって説明したが、この他にも、この拠点は学校、会社、その他の施設であってもよい。例えば、拠点が学校であった場合、メインコンテンツの例としては、教室内に設置された拠点端末で利用される教材用のデータが挙げられる。また、例えば、拠点が会社であった場合、メインコンテンツの例としては、会社の室内に設置された拠点端末で利用される研修用のデータが挙げられる。
また、上記実施形態においては、オーバーレイネットワークONに、DHTを利用したピアツーピアネットワークを適用したが、これに限られるものではない。例えば、他のオーバーレイネットワークを用いたシステムが適用されてもよい。DHTを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。