以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ピアツーピア方式のコンテンツ配信システムに本発明を適用した場合の実施形態である。
(第1実施形態)
[1.コンテンツ配信システムの構成及び動作の概要]
始めに、図1を参照して、本発明の第1実施形態に係るコンテンツ配信システムの構成及び動作の概要について説明する。コンテンツ配信システムは、コンテンツデータ(以下、「コンテンツ」という)を記憶する複数のユーザ端末と、ユーザ端末によるコンテンツの取得を支援するエッジサーバと、コンテンツを管理するセンターサーバと、を備えて構成される。なお、コンテンツ配信システムは、情報通信システムの一例である。また、ユーザ端末は、ノード装置の一例である。また、エッジサーバは、サポート装置の一例である。また、センターサーバは、管理装置の一例である。
図1は、本実施形態に係るコンテンツ配信システムSの概要構成例を示す図である。
図1に示すように、コンテンツ配信システムSにおいては、ネットワークNWに、複数の拠点ネットワークNLm(m=1,2,3・・・の何れか)が接続されている。
ネットワークNWは、例えば、インターネットやWAN等のパブリックネットワークである。なお、ネットワークNWは、外部ネットワークの一例である。
ネットワークNWには、センターサーバCSが接続されている。
拠点ネットワークNLmは、例えば、LAN等のプライベートネットワークである。なお、拠点ネットワークNLmは、複数のLANが相互接続して構築されたCAN(Campus Area Network)等のネットワークであっても良い。
また、拠点ネットワークNLmは、複数の拠点Pm(m=1,2,3・・・の何れか)毎に構築される。拠点Pmとしては、例えば、会社の事業所、学校、病院、塾等が挙げられる。各拠点ネットワークNLmには、複数のユーザ端末Tm−n(n=1,2,3・・・の何れか)と、少なくとも一つのエッジサーバESmと、ルータRmとが接続されている。そして、各拠点ネットワークNLmは、ルータRmを介してネットワークNWに接続されている。
このようなコンテンツ配信システムSにおいては、内容の異なる様々なコンテンツが所定のファイル形式で複数のエッジサーバESm及び複数のユーザ端末Tm−nに分散されて保存されている。例えば、拠点ネットワークNL1に着目すると、ユーザ端末T1−1には、コンテンツ名がAAAの映画のコンテンツが保存されている。また、ユーザ端末T1−2には、コンテンツ名がBBBの映画のコンテンツが保存されている。そして、エッジサーバES1には、拠点ネットワークNL1に接続されている各ユーザ端末T1−nが保存している全てのコンテンツが保存されるようになっている。このことは、他の拠点ネットワークNLmにおいても同様である。さらに、センターサーバCSには、コンテンツ配信システムSにおいて扱われる全てのコンテンツが保存されている。
また、コンテンツ配信システムSにおいては、エッジサーバESmやユーザ端末Tm−nがコンテンツを効率良く送受信するために、複数のオーバーレイネットワークが形成されている。なお、オーバーレイネットワークとは、ネットワークNWや拠点ネットワークNLmを用いて形成される仮想的なリンクを構成する論理的なネットワークである。また、オーバーレイネットワークは、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。
本実施形態においては、図1に示すように、各拠点Pmの各エッジサーバESmの参加により形成されるオーバーレイネットワークONと、拠点Pm内の複数のユーザ端末Tm−nの参加により拠点Pm毎に形成される拠点オーバーレイネットワークONmとがある。
なお、オーバーレイネットワークONにおいて、各エッジサーバESm間で通信を行うことができるように、ルータRmではUPnP(Universal Plug and Play)機能等を利用して自動的にポートフォワーディングの設定が行われるようにしておくと良い。また、例えば拠点P1の拠点オーバーレイネットワークON1には、拠点P1内のエッジサーバES1が参加されるものであっても良い。
以下、オーバーレイネットワークONと拠点オーバーレイネットワークONmの概要について説明する。なお、どちらのオーバーレイネットワークも基本的な仕組み及び通信プロトコルは同じであるので、特に区別することなく本実施形態に係るオーバーレイネットワークとして説明する。このオーバーレイネットワークの説明においては、各オーバーレイネットワークにおけるユーザ端末Tm−nとエッジサーバESmを、適宜、「ノード」と称する。ここで、オーバーレイネットワークへの参加とは、ノードがP2Pプログラムを実行することにより、DHTを用いたルーティングテーブルを用いて他のノードとの間で情報の送受信が可能な状態に稼動することをいう。
オーバーレイネットワークに参加している各ノードには、所定桁数からなる固有の識別情報であるノードIDが割り当てられている。ノードIDは、例えば、各ノードに個別に割り当てられたIP(Internet Protocol)アドレス、製造番号、或いはMACアドレス(Media Access Control address)等をオーバーレイネットワーク毎に共通のハッシュ関数によりハッシュ化した値である。なお、例えば、システム管理者により、ノード毎に一意のノードIDが割り当てられるようにしても良い。 各ノードは、夫々、DHTを用いたルーティングテーブルを記憶している。このルーティングテーブルには、ノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
また、上述した各コンテンツには、夫々、コンテンツ毎に固有の識別情報であるコンテンツIDが割り当てられている。コンテンツIDは、例えば、コンテンツ名+任意の数値が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される。なお、例えば、システム管理者により、コンテンツ毎に一意のコンテンツIDが割り当てられるようにしても良い。
また、コンテンツの所在を示す情報は、インデックス情報として、コンテンツの所在を管理しているノードに記憶される。インデックス情報には、コンテンツを保存しているノードのノード情報と、コンテンツのコンテンツIDとの組が含まれる。以下、コンテンツの所在を管理しているノードを「ルートノード」又は「コンテンツのルートノード」という。また、コンテンツを保存しているノードを「コンテンツ保持ノード」という。
ルートノードは、例えば、コンテンツIDと最も近いノードIDが割り当てられたノードであるように定められる。コンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
そして、あるノードが、ユーザにより指定されたコンテンツを取得する場合、このコンテンツの所在をルートルードに問い合わせる。以下、コンテンツの所在を問い合わせるノードを「ユーザノード」という。具体的に、コンテンツの所在の問い合わせにおいては、ユーザノードは、先ず、コンテンツ所在問合せメッセージを生成する。コンテンツ所在問合せメッセージには、コンテンツのコンテンツID、ユーザノードのIPアドレス及びポート番号等が含まれる。なお、コンテンツIDは、例えば、センターサーバCSから各ノードに配信されるコンテンツカタログ情報に記述されている。
このように生成されたコンテンツ所在問合せメッセージは、ユーザノードが記憶しているDHTを用いたルーティングテーブルに従って、ユーザノードから他のノードに送信される。これにより、コンテンツ所在問合せメッセージは、コンテンツIDをキーとするDHTルーティングによって1又は複数のノードにより転送され、最終的にルートノードにより受信される。なお、DHTルーティングについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
コンテンツ所在問合せメッセージを受信したルートノードは、コンテンツ所在問合せメッセージに含まれるコンテンツIDに対応するインデックス情報をインデックス情報キャッシュから取得する。そして、ルートノードは、取得したインデックス情報を、例えば、コンテンツ所在問合せメッセージの送信元であるユーザノードに返信する。こうして、インデックス情報を取得したユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのIPアドレス及びポート番号に基づいて、コンテンツ保持ノードにアクセスする。そして、ユーザノードは、アクセスしたコンテンツ保持ノードから、コンテンツを取得することができる。
ここで、例えば、拠点オーバーレイネットワークON1に着目し、ユーザノードであるユーザ端末T1−1が、拠点オーバーレイネットワークON1を利用して、コンテンツ名“BBB”のコンテンツを取得する場合を想定する。この場合、ユーザ端末T1−1から送信されたコンテンツ所在問合せメッセージは、コンテンツ名“BBB”のコンテンツのルートノードである例えばユーザ端末T1−6により受信される。
そして、ユーザ端末T1−6は、インデックス情報をユーザ端末T1−1に返信する。このインデックス情報には、コンテンツ名“BBB”のコンテンツを保存している例えばユーザ端末T1−2のノード情報が含まれている。これにより、ユーザ端末T1−1は、ユーザ端末T1−2にアクセスし、ユーザ端末T1−2からコンテンツ名“BBB”のコンテンツを取得することができる。なお、拠点オーバーレイネットワークON1において、複数のユーザ端末T1−nがコンテンツ名“BBB”のコンテンツを保存している場合、インデックス情報には、複数のユーザ端末T1−nのノード情報が含まれることになる。
ところで、コンテンツ保持ノードであるユーザ端末T1−2において例えばアクセス集中が発生していると、ユーザ端末T1−1がユーザ端末T1−2にアクセスしてもユーザ端末T1−2から応答が帰って来ない場合がある。この場合、タイムアウトとなり、ユーザ端末T1−1は、同じ拠点ネットワークNL1に接続されているエッジサーバES1にコンテンツ要求メッセージを送信することになる。また、拠点オーバーレイネットワークON1における何れのユーザ端末T1−nもコンテンツ名“BBB”のコンテンツを保存していない場合がある。この場合、ユーザ端末T1−1には、このコンテンツを保存するコンテンツ保持ノードが無いことを示すメッセージがユーザ端末T1−6から返信される。この場合も、ユーザ端末T1−1は、エッジサーバES1にコンテンツ要求メッセージを送信する。
そして、コンテンツ要求メッセージを受信したエッジサーバES1は、コンテンツ名“BBB”のコンテンツを保存している場合、このコンテンツをユーザ端末T1−1に送信する。
一方、エッジサーバES1は、コンテンツ名“BBB”のコンテンツを保存していない場合、オーバーレイネットワークONを利用して、コンテンツ名“BBB”のコンテンツを取得することになる。この場合、エッジサーバES1は、コンテンツ名“BBB”のコンテンツのコンテンツIDを含むコンテンツ所在問合せメッセージを、他のエッジサーバESmに送信する。これにより、コンテンツ所在問合せメッセージは、コンテンツIDをキーとするDHTルーティングによって1又は複数のエッジサーバESmにより転送され、最終的にルートノードである例えばエッジサーバES3により受信される。
そして、エッジサーバES3は、インデックス情報をエッジサーバES1に返信する。このインデックス情報には、コンテンツ名“BBB”のコンテンツを保存している例えばエッジサーバES2のノード情報が含まれている。これにより、エッジサーバES1は、エッジサーバES2からコンテンツ名“BBB”のコンテンツを取得し、ユーザ端末T1−1に送信することができる。このように、エッジサーバES1は、ユーザ端末T1−1によるコンテンツの取得を支援する。
なお、エッジサーバES2において例えばアクセス集中が発生している場合や、何れのエッジサーバESmもコンテンツ名“BBB”のコンテンツを保存していない場合、エッジサーバES1は、センターサーバCSからコンテンツを取得することになる。
[2.ユーザ端末Tm−nの構成及び機能等]
次に、図2を参照して、ユーザ端末Tm−nの構成及び機能について説明する。
図2は、ユーザ端末Tm−nの概要構成例を示す図である。
ユーザ端末Tm−nは、図2に示すように、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、映像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部19と、入力部19aとを備えて構成される。制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部19、及び入力部19aはバス19bを介して相互に接続されている。なお、ユーザ端末Tm−nとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等が適用可能である。
記憶部12は、各種データ及び各種プログラム等を記憶するためのハードディスクドライブ等から構成される。具体的には、記憶部12には、P2Pプログラム、コンテンツ、コンテンツカタログ情報、インデックス情報、拠点オーバーレイネットワークONmで使用されるDHTを用いたルーティングテーブル等が記憶されている。なお、P2Pプログラムは、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしても良い。或いは、P2Pプログラムは、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。 さらに、記憶部12には、コンテンツが再生された際の再生履歴を示す再生履歴情報が記憶される。再生履歴情報には、再生されたコンテンツのコンテンツID、コンテンツ名、再生年月日時、及び再生時間範囲等が含まれる。複数のコンテンツの再生があった場合には、各コンテンツの再生履歴情報が記憶されることになる。ただし、再生時間が所定時間(例えば、10分)に満たない場合には、再生履歴情報を記憶されなくともよい。
ここで、再生時間範囲とは、コンテンツの再生開始位置から再生終了位置までの時間範囲うち、再生された時間範囲をいう。例えば、60分のコンテンツがある場合に、再生開始位置から30分の位置まで再生されたとすると、0分から30分までが再生時間範囲となる。なお、再生時間範囲は、第2実施形態において用いられる。
通信部19は、拠点ネットワークNLmを通じて他のユーザ端末Tm−n又はエッジサーバESm等との間の情報の通信制御を行う。
バッファメモリ13は、通信部19を通じて他のユーザ端末Tm−n又はエッジサーバESmから受信されたコンテンツ等を一時蓄積する。バッファメモリ13に蓄積されたコンテンツは記憶部12に出力され、記憶、保存される。こうして、記憶部12に保存されたコンテンツは、ユーザからの入力部19aを介した指示に応じて読み出され、デコーダ部14等により再生出力される。なお、ストリーミング再生の場合、バッファメモリ13に蓄積されたコンテンツはデコーダ部14に出力され再生される。
デコーダ部14は、コンテンツに含まれるビデオデータ及びオーディオデータ等のデータ伸張や復号化等のデコード処理を行う。映像処理部15は、デコーダ部14によりデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。表示部16は、映像処理部15から出力されたビデオ信号に基づきディスプレイに映像等を表示する。音声処理部17は、デコーダ部14によりデコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する。スピーカ18は、音声処理部17から出力されたオーディオ信号を音波として出力する。
制御部11は、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成される。そして、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、コンテンツの再生制御、コンテンツの記録制御、及びコンテンツの送受信制御等の制御を行う。また、制御部11は、上述した拠点オーバーレイネットワークONmにおいて、ユーザノード、ルートノード、及びコンテンツ保持ノード等の少なくとも何れか一つのノードとしての処理を行う。
さらに、制御部11は、コンテンツの再生制御によりコンテンツが再生された場合に、再生履歴を示す再生履歴情報を記憶部12に記憶する。そして、制御部11は、同じ拠点ネットワークNLmに接続されているエッジサーバESmに通信部19を介して上記再生履歴情報を送信する。
[3.エッジサーバESmの構成及び機能等]
次に、図3を参照して、エッジサーバESmの構成及び機能について説明する。
図3は、エッジサーバESmの概要構成例を示す図である。
エッジサーバESmは、図3に示すように、制御部21と、記憶部22と、バッファメモリ23と、通信部24と、入力部25とを備えて構成される。制御部21、記憶部22、バッファメモリ23、通信部24、及び入力部25はバス26を介して相互に接続されている。なお、エッジサーバESmとしては、例えば、専用のサーバ装置のほか、パーソナルコンピュータ等を適用可能である。
記憶部22は、各種データ及び各種プログラム等を記憶するためのハードディスクドライブ等から構成される。具体的には、記憶部22には、P2Pプログラム、コンテンツ、コンテンツカタログ情報、インデックス情報、オーバーレイネットワークONで使用されるDHTを用いたルーティングテーブル等が記憶されている。また、記憶部12には、センターサーバCSのIPアドレス及びポート番号が記憶されている。
なお、エッジサーバESmには、ユーザ端末Tm−nに保存されるコンテンツより多くの数のコンテンツを保存可能にする必要がある。このため、エッジサーバESmにおける記憶部22のコンテンツ記憶領域の記憶容量は、ユーザ端末Tm−nにおける記憶部12のコンテンツ記憶領域の記憶容量よりも大きくなっている。一例として、記憶部22のコンテンツ記憶領域の記憶容量は、記憶部12のコンテンツ記憶領域の記憶容量の10〜100倍程度である。
また、エッジサーバESmにおける記憶部22には、同じ拠点ネットワークNLmに接続されている複数のユーザ端末Tm−nから取得された再生履歴情報が記憶される。さらに、記憶部22には、上記再生履歴情報に基づいて集計された、コンテンツ毎の再生回数の集計結果を示す集計結果情報が記憶される。
通信部24は、ネットワークNW及び拠点ネットワークNLmを通じて他のエッジサーバESm又はセンターサーバCSとの間の情報の通信制御を行う。また、通信部24は、拠点ネットワークNLmを通じてユーザ端末Tm−nとの間の情報の通信制御を行う。
バッファメモリ23は、通信部24を通じて他のエッジサーバESm又はセンターサーバCSから受信されたコンテンツ等を一時蓄積する。バッファメモリ13に蓄積されたコンテンツは記憶部22に出力され、記憶、保存される。また、バッファメモリ13に蓄積されたコンテンツは通信部24を介してユーザ端末Tm−nに送信される。
制御部21は、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成される。そして、制御部21は、CPUが記憶部22等に記憶されたプログラムを読み出して実行することにより、コンテンツの記録制御、及びコンテンツの送受信制御等の制御を行う。また、制御部21は、上述したオーバーレイネットワークONにおいて、ユーザノード、ルートノード、及びコンテンツ保持ノード等の少なくとも何れか一つのノードとしての処理を行う。
さらに、制御部21は、取得手段、集計手段、及び送信手段等として機能する。具体的には、制御部21は、同じ拠点ネットワークNLmに接続されている複数のユーザ端末Tm−nから送信されてきた再生履歴情報を通信部24を介して受信する。制御部21は、受信した複数の再生履歴情報に基づいてコンテンツ毎の再生回数(視聴数)を集計する。そして、制御部21は、集計した再生回数の集計結果を示す集計結果情報を通信部24を介してセンターサーバCSに送信する。なお、制御部21は、受信した複数の再生履歴情報を、通信部24を介してセンターサーバCSに送信するように構成しても良い。
[4.センターサーバCSの構成及び機能等]
次に、図4を参照して、センターサーバCSの構成及び機能について説明する。
図4は、センターサーバCSの概要構成例を示す図である。
センターサーバCSは、図4に示すように、制御部31と、記憶部32と、通信部33と、入力部34とを備えて構成される。制御部31、記憶部32、通信部33、及び入力部34はバス35を介して相互に接続されている。なお、センターサーバCSは、複数台のサーバ装置で構成されても良い。
記憶部32は、各種データ及び各種プログラム等を記憶するためのハードディスクドライブ等から構成される。具体的には、記憶部32には、サーバプログラム(本発明の管理プログラムを含む)、コンテンツ、コンテンツカタログ情報、オーバーレイネットワークONで使用されるDHTを用いたルーティングテーブル等が記憶されている。なお、サーバプログラムは、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしても良い。或いは、サーバプログラムは、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
また、記憶部12には、全てのエッジサーバESmのノード情報が記述されたエッジサーバリストが記憶されている。また、記憶部32には、エッジサーバESmから取得された集計結果情報が記憶される。
なお、記憶部32には、例えば、コンテンツ配信システムSにおいて扱われる全てのコンテンツが記憶される。コンテンツ配信システムSにおいて扱われるコンテンツには、公開により利用可能となる前、及び後のコンテンツが含まれる。
通信部33は、ネットワークNW及び拠点ネットワークNLmを通じてエッジサーバESm又はユーザ端末Tm−nとの間の情報の通信制御を行う。
制御部31は、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成される。そして、制御部31は、CPUが記憶部32等に記憶されたプログラムを読み出して実行することにより、コンテンツの記録制御、及びコンテンツの送受信制御等の制御を行う。
さらに、制御部31は、受信手段及び決定手段、第2送信手段等として機能する。具体的には、制御部31は、各拠点PmのエッジサーバESmから送信されてきた集計結果情報又は再生履歴情報を通信部33を介して受信する。そして、制御部31は、受信した集計結果情報又は再生履歴情報に基づいてエッジサーバESmに配信するべきコンテンツを決定する。
[5.コンテンツ配信システムSの動作]
次に、図5及び図6等を参照して、コンテンツの再生回数の集計及びコンテンツのPUSH配信が行われる際のコンテンツ配信システムSの動作について説明する。
図5(A)は、ユーザ端末Tm−nの制御部11における処理を示すフローチャートである。図5(B)は、エッジサーバESmの制御部21における処理を示すフローチャートである。図5(C)は、センターサーバCSの制御部31における処理を示すフローチャートである。図6は、センターサーバCSの制御部31における再生回数集計及び配信コンテンツ決定処理を示すフローチャートである。
なお、図5(A)〜(C)の処理は、電源オンにより開始される。
図5(A)に示す処理が開始されると、ユーザ端末Tm−nの制御部11は、再生履歴情報の送信契機になったか否かを判別する(ステップS1)。
そして、制御部11は、再生履歴情報の送信契機になっていないと判別した場合には(ステップS1:NO)、その他の処理を行う(ステップS2)。その他の処理では、コンテンツの送受信、コンテンツの再生、再生履歴情報の記憶、各種メッセージの送受信等が行われる。
一方、制御部11は、再生履歴情報の送信契機になったと判別した場合には(ステップS1:YES)、記憶部12から再生履歴情報を取得する(ステップS3)。例えば、タイマにより設定された時刻が到来すると、再生履歴情報の送信契機になったと判別される。或いは、同じ拠点ネットワークNLmに接続されているエッジサーバESmからの再生履歴送信要求があった場合に、再生履歴情報の送信契機になったと判別される。
次いで、制御部11は、取得した再生履歴情報を同じ拠点ネットワークNLmに接続されているエッジサーバESmに送信する(ステップS4)。なお、複数のコンテンツの再生履歴情報が記憶部12に記憶されている場合、各再生履歴情報が送信される。
ステップS5では、制御部11は、電源オフ指令があったか否かを判別する。そして、電源オフ指令がない場合(ステップS5:NO)、制御部11は、ステップS1に戻る。そして、電源オフ指令があった場合(ステップS5:YES)、制御部11は、当該処理を終了する。
次に、図5(B)に示す処理が開始されると、エッジサーバESmの制御部21は、ユーザ端末Tm−nから再生履歴情報を受信したか否かを判別する(ステップS10)。そして、制御部21は、再生履歴情報を受信したと判別した場合には(ステップS10:YES)、受信された再生履歴情報を記憶部22に記憶する(ステップS11)。こうして、同じ拠点ネットワークNLmに接続されている複数のユーザ端末Tm−nから取得された再生履歴情報は記憶部22に蓄積されていくことになる。
一方、制御部21は、再生履歴情報を受信していないと判別した場合には(ステップS10:NO)、ステップS12に進む。
ステップS12では、制御部21は、再生回数の集計契機になったか否かを判別する。
そして、制御部21は、再生回数の集計契機になっていないと判別した場合には(ステップS12:NO)、その他の処理を行う(ステップS13)。その他の処理では、コンテンツの送受信、各種メッセージの送受信等が行われる。
一方、制御部21は、再生回数の集計契機になったと判別した場合には(ステップS12:YES)、ステップS14に進む。例えば、タイマにより設定された時刻が到来すると、再生回数の集計契機になったと判別される。或いは、センターサーバCSからの集計要求があった場合に、再生回数の集計契機になったと判別される。
ステップS14の集計処理では、制御部21は、先ず、記憶部22から各再生履歴情報を取得する。そして、制御部21は、取得した各再生履歴情報に基づいてコンテンツ毎の再生回数を集計する。つまり、制御部21は、コンテンツ毎に再生回数をカウントする。こうして集計された再生回数の集計結果を示す集計結果情報は、記憶部22に記憶される。
次いで、制御部21は、上記集計結果情報を含む集計情報を通信部24を介してセンターサーバCSに送信する(ステップS15)。
なお、エッジサーバESmの制御部21は、再生回数の集計を行わず、取得した各再生履歴情報を含む集計情報をセンターサーバCSに送信するようにしても良い。
ステップS16では、制御部21は、電源オフ指令があったか否かを判別する。そして、電源オフ指令がない場合(ステップS16:NO)、制御部21は、ステップS10に戻る。そして、電源オフ指令があった場合(ステップS16:YES)、制御部21は、当該処理を終了する。
次に、図5(C)に示す処理が開始されると、センターサーバCSの制御部31は、エッジサーバESmから集計情報を受信したか否かを判別する(ステップS20)。そして、制御部31は、集計情報を受信したと判別した場合には(ステップS20:YES)、受信された集計情報を記憶部32に記憶する(ステップS21)。こうして、複数のエッジサーバESmから取得された集計情報は記憶部32に蓄積されていくことになる。
一方、制御部31は、集計情報を受信していないと判別した場合には(ステップS21:NO)、ステップS22に進む。
ステップS22では、制御部31は、コンテンツの配信契機になったか否かを判別する。
そして、制御部31は、コンテンツの配信契機になっていないと判別した場合には(ステップS22:NO)、その他の処理を行う(ステップS23)。その他の処理では、コンテンツカタログ情報の配信等が行われる。
一方、制御部31は、コンテンツの配信契機になったと判別した場合には(ステップS22:YES)、ステップS24に進む。例えば、タイマにより設定された時刻が到来すると、コンテンツの配信契機になったと判別される。ここで、タイマにより設定される時刻は、例えば、センターサーバCSの処理負荷が閾値以下となる時間帯(例えば、深夜の時間帯)に設定される。つまり、センターサーバCSは、センターサーバCSの処理負荷が閾値以下となる時間帯に、配信するべきコンテンツの決定、及びコンテンツの配信を実行するよう制御される。これにより、センターサーバCSの空き時間を利用して再生回数の集計及びコンテンツの配信を行うことができる。
ステップS24の集計及び配信処理では、図6に示すように、制御部31は、記憶部32から各集計情報を取得する(ステップS241)。
次いで、制御部31は、取得した所定数の集計情報中に再生回数の集計結果が示されているか否かを判別する(ステップS242)。ここで、所定数は、システム管理者により予め設定される。例えば、所定数の集計情報は、ステップS21で記憶された全ての集計情報とされる。そして、制御部31は、全ての集計情報中に再生回数の集計結果が示されていないと判別した場合には(ステップS242:NO)、集計情報に含まれる各再生履歴情報に基づいてコンテンツ毎の再生回数を集計し(ステップS243)、ステップS244に進む。
一方、制御部31は、所定数の集計情報中に再生回数の集計結果が示されている判別した場合には(ステップS242:YES)、ステップS244に進む。
ステップS244では、制御部31は、所定数の集計結果に基づいてコンテンツ毎の再生回数を集計し、例えば再生回数の集計結果リストを作成する。
図7は、再生回数の集計結果リストの一例を示す図である。図7に示す例では、7月8日から7月11日までにおいて、1日当たりの再生回数の合計と、4日間の再生回数の合計と、4日間の再生回数の伸び率とが、コンテンツ毎に集計結果として示されている。図7に示す4日間の再生回数の伸び率は、4日間の最初の日の再生回数と最後の日の再生回数から算出している。例えば、コンテンツ名“AAA”のコンテンツの再生回数の伸び率は、150(最後の日の再生回数)/100(最初の日の再生回数)=1.5となっている。
次いで、制御部31は、集計結果に基づいて、エッジサーバESmに配信するべきコンテンツを決定する(ステップS245)。以下、エッジサーバESmに配信するべきコンテンツを、「配信コンテンツ」という。
ここで、配信コンテンツは、予め設定されたコンテンツ選定条件に基づき決定される。このコンテンツ選定条件としては、例えば、以下の(a)〜(d)が挙げられる。
(a)過去所定期間内で再生回数の合計が閾値以上
(b)過去所定期間内で再生回数の合計が上位所定番目まで
(c)過去所定期間内で再生回数の伸び率が閾値以上
(d)過去所定期間内で再生回数の伸び率が上位所定番目まで
なお、上記(b)のコンテンツ選定条件が設定された場合、再生回数が多い順に順位付けが行われる。また、上記(d)のコンテンツ選定条件が設定された場合、再生回数の伸び率が多い順に順位付けが行われる。また、上記(a)〜(d)のコンテンツ選定条件における過去所定期間としては、現在の時刻を基準として、例えば集計日の前日の24時間、又は集計日に直近の過去4日間、又は集計日に直近の過去1ヶ月間等が挙げられる。なお、現在の時刻は、制御部31が備える時計機能により取得することができる。
どのコンテンツ選定条件が設定されるかによって、配信コンテンツとして決定されるコンテンツが異なってくることもある。例えば、現在の時刻を基準として前日の24時間内で再生回数の合計が上位1番目である、すなわち、再生回数の合計が最も多いことをコンテンツ選定条件とした場合を想定する。この場合、図7に示す例では、このコンテンツ選定条件を満たすコンテンツ名“CCC”のコンテンツが配信コンテンツとして決定される。また、例えば、現在の時刻を基準として直近の過去4日間内で再生回数の合計が上位1番目であることをコンテンツ選定条件とした場合、図7に示す例では、このコンテンツ選定条件を満たすコンテンツ名“AAA”のコンテンツが配信コンテンツとして決定される。また、例えば、現在の時刻を基準として直近の過去4日間内で再生回数の伸び率が上位1番目であることをコンテンツ選定条件とした場合、図7に示す例では、このコンテンツ選定条件を満たすコンテンツ名“BBB”のコンテンツが配信コンテンツとして決定される。
また、配信コンテンツは1つとは限らず複数決定されることもある。例えば、現在の時刻を基準として直近の過去4日間内で再生回数の合計が390以上であることをコンテンツ選定条件とした場合、図7に示す例では、このコンテンツ選定条件を満たすコンテンツ名“AAA”と“CCC”のコンテンツが配信コンテンツとして決定される。
なお、上記(a)〜(d)のコンテンツ選定条件の何れか複数の組合せ、すなわち、AND条件をコンテンツ選定条件としても良い。
以上のように、配信コンテンツが決定されると、続いて、制御部31は、配信コンテンツの配信先を仮決定する(ステップS246)。例えば、制御部31は、記憶部32に記憶されているエッジサーバリストから、例えばランダムに所定数のエッジサーバESmを配信コンテンツの配信先として仮決定する。
次いで、制御部31は、配信先として仮決定したエッジサーバESmが配信コンテンツを既に保存しているか否かを判別する(ステップS247)。例えば、制御部31は、DHTを用いたルーティングテーブルにしたがって、オーバーレイネットワークONにおける配信コンテンツのルートノード宛にコンテンツ所在問合せメッセージを送信する。このコンテンツ所在問合せメッセージには、配信コンテンツのコンテンツIDが含まれる。これにより、制御部31は、ルートノードであるエッジサーバESmから返信されたインデックス情報を取得する。そして、上記仮決定したエッジサーバESmのノードIDがインデックス情報中に含まれている場合、制御部31は、配信先として仮決定したエッジサーバESmが配信コンテンツを既に保存していると判別することになる。
このように仮決定されたエッジサーバESmが配信コンテンツを保存している場合(ステップS247:YES)、制御部31は、配信先として仮決定していない別のエッジサーバESmをエッジサーバリストから配信先として仮決定し(ステップS248)、ステップS247に戻る。
一方、仮決定されたエッジサーバESmが配信コンテンツを保存していない場合(ステップS247:NO)、制御部31は、仮決定したエッジサーバESmを配信コンテンツの配信先として決定する(ステップS249)。これにより、仮決定されたエッジサーバESmに配信コンテンツが既に保存されている場合、仮決定されたエッジサーバESmには配信コンテンツがPUSH配信されないので、コンテンツの重複保存を防止することができる。
なお、制御部31は、上記ステップS246において配信コンテンツの配信先を仮決定せずに、オーバーレイネットワークONにおける配信コンテンツのルートノード宛にコンテンツ所在問合せメッセージを送信するように構成しても良い。この場合、制御部31は、ルートノードであるエッジサーバESmから返信されたインデックス情報を取得する。このインデックス情報には、配信コンテンツを保存しているエッジサーバESmのみが示されている。従って、制御部31は、インデックス情報に示されたエッジサーバESmの中から、配信コンテンツの配信先を決定するように構成すれば、配信コンテンツの配信先を仮決定する必要がないので効率が良い。
この場合、制御部31は、インデックス情報に含まれるノードIDに対応するエッジサーバESmを除いて、エッジサーバリストからランダムに所定数のエッジサーバESmを配信コンテンツの配信先として決定することになる。
次いで、制御部31は、配信先として決定したエッジサーバESmに配信コンテンツをPUSH配信する(ステップS250)。このPUSH配信では、例えば、コンテンツ投入要求メッセージがエッジサーバESmに送信される。そして、制御部31は、エッジサーバESmから返信された了解応答メッセージを受信すると、配信コンテンツをエッジサーバESmに送信する。
こうしてPUSH配信された配信コンテンツがエッジサーバESmにより受信されると、エッジサーバESmは、受信された配信コンテンツを記憶部22のコンテンツ記憶領域に記憶保存する。続いて、エッジサーバESmは、同じ拠点ネットワークNLmに接続されているユーザ端末Tm−nのうちから、例えばランダムに所定数のユーザ端末Tm−nを配信コンテンツの配信先として決定する。そして、エッジサーバESmは、配信先として決定したユーザ端末Tm−nに配信コンテンツをPUSH配信することになる。
なお、プッシュ配信された配信コンテンツを保存したエッジサーバESm及びユーザ端末Tm−nは、ルートノード宛にパブリッシュメッセージを送信する。これにより、エッジサーバESm及びユーザ端末Tm−nのノード情報はルートノードにおけるインデックス情報に登録されることになる。なお、パブリッシュメッセージについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
ここで、上記ステップS244〜S250の処理における他の実施例について説明する。
この実施例では、上記ステップS244及びS245において、制御部31は、各拠点PmのエッジサーバESmから取得した集計結果情報に基づいて拠点Pm毎に配信コンテンツを決定する。例えば、拠点Pm毎に上述した再生回数の集計結果リストが作成される。そして、制御部31は、上述したコンテンツ選定条件に基づき拠点Pm毎に配信コンテンツを決定する。例えば、拠点P1では、コンテンツ名“CCC”のコンテンツが配信コンテンツとして決定される。一方、拠点P2では、コンテンツ名“BBB”のコンテンツが配信コンテンツとして決定される。
そして、上記ステップS246〜S250において、制御部31は、拠点Pm毎に決定した配信コンテンツを、各拠点RmのエッジサーバESmが既に保存しているか否かを判別する。例えば、制御部31は、各拠点RmのエッジサーバESmに、拠点Pm毎に決定した配信コンテンツを既に保存しているか否かを問い合わせるメッセージを送信する。一例として、拠点P1のエッジサーバES1には、上記決定されたコンテンツ名“CCC”のコンテンツを保存しているか否かを問い合わせるメッセージが送信される。そして、制御部31は、エッジサーバESmから、配信コンテンツを既に保存していることを示すメッセージを受信した場合、このエッジサーバESmが配信コンテンツを既に保存していると判別する。この場合、このエッジサーバESmには配信コンテンツは配信されない。
一方、エッジサーバESmが配信コンテンツを保存していない場合、制御部31は、このエッジサーバESmを配信コンテンツの配信先として決定する。そして、制御部31は、上述したステップS250のPUSH配信を実行する。
以上説明したように、上記実施形態によれば、センターサーバCSは、拠点Pm毎のエッジサーバESmにより集計された各ユーザ端末Tm−nにおけるコンテンツの再生回数の集計結果に基づいて各拠点Pmへの配信コンテンツを決定するので、拠点Pm毎に適したコンテンツを各拠点Pmに事前に配信することができる。
また、センターサーバCSは、各拠点PmのエッジサーバESmにより集計された各ユーザ端末Tm−nにおけるコンテンツの再生回数の集計結果に基づいて拠点Pm毎に配信コンテンツを決定するので、コンテンツの視聴傾向が拠点Pm毎に異なっても、拠点Pm毎に適したコンテンツを各拠点Pmに事前に配信することができる。
さらに、センターサーバCSは、上記集計結果と、コンテンツ選定条件に基づき各拠点Pmへの配信コンテンツを決定するので、例えば1日単位、或いは数日単位で再生回数の多かったコンテンツを各拠点Pmに事前に配信することができる。また、例えば1日単位、或いは数日単位で再生回数の伸び率が多かったコンテンツを各拠点Pmに事前に配信することができる。
(第2実施形態)
次に、本発明の第2実施形態に係るコンテンツ配信システムについて説明する。なお、第2実施形態に係るコンテンツ配信システムにおける基本的な構成及び動作は第1実施形態と同様であるので、主として、異なる部分について説明する。
第2実施形態に係るコンテンツ配信システムSにおいては、コンテンツは、複数のバイト位置で分割された複数の部分データから構成される。以下、部分データを、「部分コンテンツ」という。各部分コンテンツは、第1実施形態におけるコンテンツと同様、複数のコンテンツ保持ノードに分散されて保存されている。また、各部分コンテンツには、夫々、部分コンテンツ毎に固有の識別情報である部分コンテンツIDが割り当てられている。また、部分コンテンツの所在は、部分コンテンツのルートノードにより管理されている。
そして、例えばコンテンツXを構成する各部分コンテンツの部分コンテンツIDは、コンテンツXのコンテンツIDが付与されたメタファイルに記述されている。このメタファイルは、コンテンツXのコンテンツ保持ノードに保存されている。
図8は、メタファイルの内容の一例を示す図である。図8に示すように、「開始バイト位置」から「終了バイト位置」までの各バイト範囲に対応する部分コンテンツ毎に部分コンテンツIDが対応付けられている。
ここで、例えば、コンテンツXの「35,000バイト目」のデータを含む部分コンテンツの部分コンテンツIDを取得したいとする。この場合、部分コンテンツIDを取得したいユーザノードは、先ず、コンテンツXのルートルードに問い合わせ、コンテンツXを保存するコンテンツ保持ノードのノード情報を取得する。次に、ユーザノードは、コンテンツ保持ノードにアクセスし、コンテンツXのメタファイルを取得する。そして、ユーザノードは、取得したメタファイルを参照し、「35,000バイト目」のデータを含む部分コンテンツの部分コンテンツIDを取得する。図8に示す例では、「35,000バイト目」のデータを含む部分コンテンツの部分コンテンツIDは、「A0000000004」である。なお、ユーザノードが、部分コンテンツIDに対応する部分コンテンツの所在を知りたい場合、第1実施形態と同様、その所在を部分コンテンツのルートルードに問い合わせれば良い。
第2実施形態に係るコンテンツ配信システムSにおいて、図5(B)に示すステップS14の集計処理では、エッジサーバESmの制御部21は、取得した各再生履歴情報に基づいて、コンテンツの再生開始位置から再生終了位置までを所定時間毎に区切った部分毎の再生回数をコンテンツ毎に集計する。ここで、部分とは、再生時間位置、又は再生時間範囲をいう。例えば、再生履歴情報に含まれる再生時間範囲と重複する部分の再生回数がカウントされる。こうしてコンテンツ毎、且つ部分毎に集計された再生回数の集計結果を示す集計結果情報を含む集計情報は、第1実施形態と同様、センターサーバCSに送信される。
そして、図5(C)に示すステップS244では、センターサーバCSの制御部31は、全ての集計結果に基づいてコンテンツ毎且つ部分毎の再生回数を集計し、例えば部分毎の再生回数の集計結果リストを作成する。なお、このとき、図7に示すコンテンツ毎の再生回数の集計結果リストも作成される。
図9は、部分毎の再生回数の集計結果リストの一例を示す図である。図9に示す例では、コンテンツXの再生開始位置から再生終了位置まで(計50秒)を1秒毎に区切った部分毎の再生回数の合計が集計結果として示されている。このような集計結果リストは、コンテンツ毎に作成される。
次いで、図5(C)に示すステップS245では、センターサーバCSの制御部31は、例えば、第1実施形態と同様、コンテンツ毎の再生回数の集計結果に基づいて、配信コンテンツを上述したコンテンツ選定条件により決定する。次いで、制御部31は、決定した配信コンテンツの部分毎の再生回数の集計結果に基づいて、エッジサーバESmに配信するべき部分コンテンツを、予め設定されたコンテンツ選定条件により決定する。以下、エッジサーバESmに配信するべき部分コンテンツを、「配信部分コンテンツ」という。つまり、過去所定期間内でコンテンツ設定条件を満たすコンテンツ中でコンテンツ選定条件を満たす部分コンテンツが配信部分コンテンツとして決定される。なお、配信コンテンツを決定しなくとも良い。この場合、部分毎の再生回数の集計結果が得られた全コンテンツの中でコンテンツ選定条件を満たす部分コンテンツが配信部分コンテンツとして決定される。
ここで、配信部分コンテンツを決定するときのコンテンツ選定条件としては、第1実施形態における(a)〜(d)のコンテンツ選定条件、又はそれらの組合せを適用できる。例えば、前日の24時間内で再生回数の合計が上位1番目であることをコンテンツ選定条件とした場合、図9に示す例では、再生回数が最も多い27秒の再生時間位置を含む部分コンテンツが配信部分コンテンツとして決定される。なお、決定された配信部分コンテンツの前後の部分コンテンツも配信部分コンテンツとして決定するように構成しても良い。
以上のように、配信部分コンテンツが決定されると、第1実施形態と同じ要領で、配信部分コンテンツを保存していないエッジサーバESmが配信先として決定される。そして、決定されたエッジサーバESmに配信部分コンテンツがセンターサーバCSからPUSH配信される。
なお、第2実施形態においても、第1実施形態における上記他の実施例と同様、拠点Pm毎に配信部分コンテンツを決定する構成を適用できる。
以上説明したように、上記実施形態によれば、センターサーバCSは、拠点Pm毎のエッジサーバESmにより集計された各ユーザ端末Tm−nにおけるコンテンツ中の部分毎の再生回数を集計結果に基づいて各拠点Pmへの配信部分コンテンツを決定するので、拠点Pm毎に適した部分コンテンツを各拠点Pmに事前に配信することができる。
また、センターサーバCSは、拠点Pm毎のエッジサーバESmにより集計された各ユーザ端末Tm−nにおけるコンテンツ中の部分毎の再生回数を集計結果に基づいて拠点Pm毎に配信部分コンテンツを決定するので、コンテンツの視聴位置の傾向が拠点Pm毎に異なっても、拠点Pm毎に適した部分コンテンツを各拠点Pmに事前に配信することができる。
さらに、センターサーバCSは、上記集計結果と、コンテンツ選定条件に基づき各拠点Pmへの配信部分コンテンツを決定するので、例えば1日単位、或いは数日単位で再生回数の多かった部分コンテンツを各拠点Pmに事前に配信することができる。また、例えば1日単位、或いは数日単位で再生回数の多かったコンテンツのうちさらに多く再生された部分コンテンツを各拠点Pmに事前に配信することができる。
なお、上記実施形態においては、オーバーレイネットワークONと、複数の拠点オーバーレイネットワークONmとが形成されるコンテンツ配信システムSを例にとって説明した。別の例として、各拠点PmのエッジサーバESmと、各拠点Pmの複数のユーザ端末Tm−nとの参加により一つのオーバーレイネットワークが形成されるコンテンツ配信システムSに対しても本発明は適用可能である。この場合、再生回数の集計、配信コンテンツの決定、及び配信コンテンツのPUSH配信に係る処理は上記実施形態と同様である。ただし、この場合、ユーザ端末Tm−nはエッジサーバESmと同じオーバーレイネットワークに参加できる。そのため、センターサーバCSは、エッジサーバESmと同じように、配信コンテンツの配信先としてユーザ端末Tm−nを決定することができる。
そして、センターサーバCSは、配信先として決定したユーザ端末Tm−nに直接、配信コンテンツをPUSH配信することができる。
また、上記実施形態においては、拠点Pm毎に拠点オーバーレイネットワークONmを形成したが、拠点オーバーレイネットワークONmを形成しなくても構わない。この場合、あるユーザ端末Tm−nが、同じ拠点ネットワークNLmに接続されたユーザ端末Tm−nが保存しているコンテンツを検索する場合、この拠点ネットワークNLmに行き渡るブロードキャストを実行すれば良い。
また、上記実施形態においては、センターサーバCSが本発明の管理装置として機能したが、ユーザ端末Tm−n又はエッジサーバESmが管理装置として機能しても良い。この場合、何れかのユーザ端末Tm−n又はエッジサーバESmが上述した図5(C)又は図6に示す処理を実行することになる。
また、上記実施形態においては、オーバーレイネットワークに、DHTを利用したピアツーピアネットワークが適用されていたが、これに限られるものではない。例えば、他のピアツーピアシステム、または、他のオーバーレイネットワークを用いたシステムが適用されても良い。DHTを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。