次に、本発明を実施するための形態について、図面に基づいて説明する。以下に説明する各実施形態は、P2P型のネットワークシステムを用いてノードに動画等のコンテンツを配信する配信システムに対して本発明を適用した場合の実施形態である。
(I)第1実施形態
先ず、本発明の第1実施形態について、図1から図8を用いて説明する。
(A)配信システムの全体構成及び動作概要
始めに、第1実施形態の配信システムの構成及び動作概要について、図1及び図2を用いて説明する。なお図1は第1実施形態の配信システムにおける各ノードの接続態様の一例を示す図である。また図2は第1実施形態における事前ダウンロード対象である保持ノードの決め方を示す概念図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)装置4a及び4b、DSL(Digital Subscriber Line)回線事業者装置5a及び5b、FTTH(Fiber To The Home)回線事業者装置6並びに通信回線7等によって、インターネット等のネットワーク8が構築されている。更に、ネットワーク8は現実世界の物理的な通信ネットワークであり、通信回線7は具体的には電話回線や光ケーブル等により構成されている。また、図1の例におけるネットワーク8には、パケット化されたデータを転送するためのルータが適宜挿入されているが、図1ではその図示を省略している。
第1実施形態のネットワーク8には、複数のノードNn(n=1、2、3、…)が接続されている。各ノードNnには、固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。
第1実施形態の配信システムSは、上述したようにP2P型のネットワークシステムである。配信システムSは、図1の上部枠100内に示すように、これらノードNnのうちいずれか複数のノードNnの参加により形成される。
配信システムSには、配信システムSに参加している各ノードNnからネットワーク8を介してアクセス可能なコンテンツ保持サーバCN及び配布管理サーバSVが含まれている。この配布管理サーバSVは情報処理装置の一例に相当する。またコンテンツ保持サーバCNは配信元装置の一例に相当する。これら配布管理サーバSV及びコンテンツ保持サーバCNはノードNnとは異なるサーバである。
このうち配布管理サーバSVは、後述するように、ノードNnのいずれを、事前ダウンロードの対象たるコンテンツの保持ノードとするかを決定するサーバである。またコンテンツ保持サーバCNは、これも後述するように、保持ノードからダウンロードできなかったコンテンツを、そのコンテンツのダウンロードを要求するノードNnに供給するサーバである。このようなコンテンツを保持ノードからダウンロードできない状態は、例えばそのコンテンツの保持ノードが配信システムS内に未だ存在しない場合に生じ得る。また、同様のダウンロードできない状態は、配信システムS内に保持ノードが存在してはいるが、その数が不足している場合にも生じ得る。
図1の上部枠100内に示すネットワークは、既存のネットワーク8を用いて形成された、仮想的なリンクを構成するオーバーレイネットワーク9である。このオーバーレイネットワーク9は論理的なネットワークである。オーバーレイネットワーク9は、特定のアルゴリズム、例えばDHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。オーバーレイネットワーク9からなる配信システムSに参加している各ノードNnには、所定の桁数からなる固有の識別データがノードIDとして割り当てられている。このノードIDは、例えば各ノードNnに個別に割り当てられたIPアドレス又はその製造番号を共通のハッシュ関数によりハッシュ化した値である。この共通のハッシュ関数の例としては例えばSHA−1等が挙げられる。またこの共通のハッシュ関数を用いて得られるノードIDは、例えば160ビットのビット長を有する値となる。このノードIDの付与方法により、対応するノードNnがいわゆるID空間内に偏りなく分散して配置される。この点は、例えば特開2006−197400号公報に記載されている。
また各ノードNnは、DHTを用いたルーティングテーブルを夫々に保持している。このルーティングテーブルは配信システムS上における各種メッセージの転送先を規定している。より具体的には、ルーティングテーブルにはID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。このようなDHTを用いたルーティングテーブルについても上記特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
また、配信システムSにおいては、様々な映画や動画等のコンテンツに相当するコンテンツデータが、所定のファイル形式で複数のノードNnに分散して保存されている。このコンテンツデータ自体も、以下適宜「コンテンツ」と称する。これらのコンテンツには、夫々、動画等のタイトル等であるコンテンツ名及びコンテンツID等の情報が付与されている。
このコンテンツIDはコンテンツ毎に固有の識別データである。またコンテンツIDは、対応するコンテンツが保存されているノードNnの所在を配信システムS内において検索するための検索情報である。あるコンテンツ名を有するコンテンツに対応するコンテンツIDは、例えば、そのコンテンツ名に任意の数値を加えたものをハッシュ関数によりハッシュ化することにより生成される。この場合のハッシュ関数はノードIDを得る場合と共通のハッシュ関数が用いられる。
この方法により生成されたコンテンツIDは、ノードIDと同一のID空間内に配置される。またコンテンツ名に加えられる任意の数値は、例えば対応するコンテンツの先頭数バイトでも良い。なおコンテンツID生成のための他の方法としては、例えば、配信システムSの管理者が、配布管理サーバSVを用いて、コンテンツ毎に一意のID値を付与しても良い。この場合のID値はノードIDと同一のビット長であることが条件となる。具体的には、配布管理サーバSVにおいて各ノードNnの例えばIPアドレスを取得する。その後、取得したIPアドレスを用いて上記ハッシュ関数によりノードIDを生成して対応する各ノードNnに付与する。この場合、配布管理サーバSVは、第2取得手段及び付与手段の一例に相当する。
一方配信システムSでは、分散保存されているコンテンツの所在を示す情報と、コンテンツのコンテンツID等と、の組が含まれるインデックス情報が用いられる。このときのコンテンツの所在を示す情報とは、例えばそのコンテンツの保持ノードであるノードNnのノード情報である。インデックス情報は、コンテンツの所在を管理しているノードNn等により、そのインデックスキャッシュに記憶、管理が為される。このコンテンツの所在を管理しているノードNnを以下「ルートノード」と称する。ルートノードは、例えばコンテンツIDと最も近いノードIDを有するノードNnであるように定められる。このときコンテンツIDと最も近いか否かは、例えば上位桁がより多く一致するか否かにより判断される。
更に第1実施形態の配信システムSに参加しているあるノードNnのユーザがコンテンツの取得を所望するとする。この場合、そのユーザは所望するコンテンツの所在を配信システムS内にて検索しなければならない。この検索には、各ノードNnに事前に配布されているカタログ情報が用いられる。
このカタログ情報は、例えば配布管理サーバSVから、例えばマルチキャストにより配布されるものである。カタログ情報には、取得可能なコンテンツ毎に、コンテンツID、コンテンツ名、公開開始日時、公開終了日時及びキーワード等のコンテンツ属性情報が登録されている。
ユーザがコンテンツの取得を所望する場合、そのユーザのノードNnは、そのコンテンツのコンテンツIDを、カタログ情報を参照して取得する。なおコンテンツの取得を所望するユーザにより操作されるノードNnを以下「ユーザノード」と称する。
所望するコンテンツのコンテンツIDをカタログ情報から取得したユーザノードは、コンテンツ所在問合せメッセージを生成する。このコンテンツ所在問合せメッセージは、コンテンツID及びユーザノード自体のIPアドレス等を含む。コンテンツ所在問合せメッセージは、ユーザノードに記憶されたDHTを用いたルーティングテーブルに従って他のノードNnへクエリとして送出される。換言すれば、ユーザノードはコンテンツ所在問合せメッセージをルートノード宛に送出する。これによりコンテンツ所在問合せメッセージは、コンテンツIDをキーとするDHTを用いたルーティングによって、最終的にルートノードに到着する。このようなDHTルーティングについても上記特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
コンテンツ所在問合せメッセージを受信すると、ルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得する。そしてルートノードは、先に受信したコンテンツ所在問合せメッセージの送信元であるユーザノードへインデックス情報を返信する。
この方法でインデックス情報を取得すると、ユーザノードは、取得したインデックス情報に含まれる保持ノードのIPアドレス等に基づいて、その保持ノードにアクセスする。これによりユーザノードは、アクセスした保持ノードからコンテンツを取得して再生することが可能になる。
なお他の構成として、ルートノードが保持ノードへ、ユーザノードへのコンテンツ送信要求メッセージを送信するように構成することもできる。この場合の保持ノードは、インデックス情報に含まれるIPアドレス等により示された保持ノードである。この場合保持ノードは、コンテンツ送信要求メッセージに基づき、そのユーザノードへアクセスしてコンテンツを送信する。
配信システムSにおいてコンテンツの取得を所望するユーザは、ユーザノードに事前に配布されているカタログ情報を参照して、そのコンテンツを示すコンテンツIDを取得する。そしてユーザノードは、その取得したコンテンツIDを手掛かりとして所望のコンテンツを配信システムS内で検索する。
上述した構成に加え、第1実施形態の配信システムSでは、コンテンツの公開前に、そのコンテンツの保持ノードとなるノードNnに、そのコンテンツの事前ダウンロードを行わせる。このため配布管理サーバSVは、配信システムSにおいて付与可能な全ノードIDの一部を、事前ダウンロードを行わせるノードNnのノードIDとする。
より具体的に配布管理サーバSVは、図2(a)に例示するように、事前ダウンロードを行わせるノードNnのノードIDの数を、付与可能な全ノードIDの数に対する割合を用いて決定する。以下この割合を、「配布割合」と称する。即ち例えば、事前ダウンロードを行わせるノードNnを夫々示すノードIDの数を、配信システムSにおいて付与可能な全ノードIDの数の25%として決定する。このようにすれば、そのときに配信システムSに実際に参加しているノードNnの数を検出することなく、事前ダウンロードを行わせるノードNnを示すノードIDの数を決定することができる。
そして配布管理サーバSVは、決定された配布割合に相当する数のノードIDが含まれるID空間の範囲を決定する。その後配布管理サーバSVは、決定された範囲に属するノードIDにより示されるノードNnに対して、コンテンツの事前ダウンロードを依頼する旨のメッセージを送信する。このメッセージを以下「取得依頼メッセージ」と称する。このようにノードIDが属する範囲を決定すれば、事前ダウンロードの対象として偏りなくノードNnを決定できる。これは、配信システムSでは、各ノードIDがID空間内で偏りなく分散して配置されているからである。
より具体的に図2の概念図を用いて説明する。図2は、配信システムS内に十二個のノードNnが実際に参加している状態を概念的に例示している。そして、配信システムSを構成するID空間内にこれらのノードN1からN12が分散配置されている。更に各ノードNnの各々が配布管理サーバSV及びコンテンツ保持サーバCNと接続可能となっている。なお図2では、ID空間において各ノードNnに対して付与可能なノードIDの全てが図示されてはいない。図2は、第1実施形態のID空間において、各ノードNnに対して付与可能なノードIDの少なくとも一部のノードIDが、各ノードNnに付与されている例である。
また図2においては、説明の簡略化のためにノードIDを四桁で示している。具体的に例えば、ノードN1からN6のノードIDが、夫々(012d)、(276f)、(3c92)、(536b)、(6a03)、(792c)であるとする。またノードN7からN12のノードIDが、夫々(8a93)、(a031)、(b832)、(cf29)、(ec93)、(fa19)であるとする。
第1実施形態の配布管理サーバSVは、事前ダウンロードを行わせるノードNnを夫々示すノードIDの範囲PAを、それに属するノードIDの数が配信システムSにおいて付与可能な全ノードIDの数の例えば25%となるように決定する。具体的に図2(a)の場合、事前ダウンロードを行わせるノードNnを夫々示すノードIDの範囲PAが、(83b1)から(c3b1)とされている。そしてこの範囲PAに属するノードIDの数が、配信システムSにおいて四桁のノードIDとして付与可能な全ノードIDの数の25%となっている。この「25%」が第1実施形態の配布割合である。この配布割合を「適正配布割合」と称する。そして第1実施形態の配布管理サーバSVは、過去に配信されたコンテンツの視聴率を、そのコンテンツの適正配布割合として不揮発性に記憶している。
即ち実際の配信システムSでは、過去に複数のコンテンツが配信された場合が殆どである。よって配布管理サーバSVは、過去にコンテンツを配信システムSに投入した際、そのコンテンツが公開された直後の視聴率を調査する。そしてその視聴率に基づき、配布管理サーバSVは、新たにコンテンツを投入する際の事前ダウンロードにおける上記適正配布割合を決定する。より具体的には、その視聴率自体を上記適正配布割合とする。なおこの視聴率の定義については、後ほど視聴率調査の説明の部分で具体的に述べる。決定された適正配布割合は、そのコンテンツと対応付けて配布管理サーバSVの記憶部36内に記憶される。これにより配布管理サーバSVは、過去の各コンテンツに夫々対応する適正配布割合を平均して平均適正配布割合を決定する。この決定された平均適正配布割合を、新たに公開するコンテンツの適正配布割合と見なし、その適正配布割合に相当するノードIDの範囲PAを設定する。図2(a)に例示する場合は、このノードIDの範囲PAが(83b1)から(c3b1)とされている。そして図2(b)に例示するように、この範囲PA内にノードIDが含まれているノードNnに対して、事前ダウンロード対象のコンテンツの取得を依頼する旨の取得依頼メッセージMMを送信する。この取得依頼メッセージMMは、後述するように配信システムSとしてのDHTを利用したマルチキャストにより配信される。このDHTを利用したマルチキャストについては、例えば特開2008−129694号公報により公知であるので、細部の説明は省略する。
そして、図2(b)に例示される取得依頼メッセージMMを受信したノードN7からN9は、受信した取得依頼メッセージMMに基づき、事前ダウンロード対象のコンテンツCTを取得する。この場合、図2(c)に例示するノードN1のように、そのコンテンツの保持ノードが既に配信システムS内に存在している場合には、その保持ノードからコンテンツCTが取得される。一方、配信システムS内の保持ノードから取得できない場合、そのコンテンツCTは、図2(c)に例示するようにコンテンツ保持サーバCNから取得される。
なお、過去に公開したコンテンツの人気に偏りがあり、且つコンテンツがいわゆるシリーズ物の場合、配布管理サーバSVは、平均適正配布割合ではなく、直前に配信されたコンテンツの適正配布割合を用いて今回の適正配布割合を決定する。これにより、人気に応じた配布割合を用いた事前ダウンロードが可能となる。
(B)配布管理サーバ等の具体的構成及び動作
次に、第1実施形態の配信システムSに含まれる配布管理サーバSV等の具体的な構成及び動作について、図3から図8を用いて説明する。
先ず、第1実施形態の配布管理サーバSVの構成及び概要動作を、図3(a)を用いて説明する。なお図3(a)は第1実施形態の配布管理サーバの概要構成を示すブロック図である。
図3(a)に示すように、第1実施形態の配布管理サーバSVは、制御部35、記憶部36、通信部37及び入力部39を備えている。これらの構成要素は、バス38を介して相互にデータの授受が可能に接続されている。
このとき制御部35は、演算機能を有するCPU、作業用RAM並びに各種データ及びプログラムを記憶するROM等から構成されている。この各種データ及びプログラムには、オペレーティングシステム及び各種アプリケーションが含まれている。
また記憶部36は不揮発性の記憶媒体であるハードディスクドライブ等から構成されている。この記憶部12には、図3(a)に例示するような視聴数リストALが、後述するように更新されつつ不揮発性に記憶されている。この視聴数リストALには、コンテンツIDと、そのコンテンツIDに対応する視聴数と、が、対応付けて記述されている。この視聴数は、対応付けられているコンテンツIDにより示されるコンテンツを実際に取得したノードNnの数である。第1実施形態の配布管理サーバSVでは、この視聴数がコンテンツ毎の視聴率の決定に用いられる。換言すれば、そのコンテンツの事前ダウンロードにおける適正配布割合の決定に用いられる。また視聴数リストALでは、後述するように、新たなコンテンツが配信システムSに投入される度にそのコンテンツを示すコンテンツIDを含むレコードが一つ追加される。
一方通信部37は、ネットワーク8を介してノードNnとの間の各種メッセージの通信制御を行う。この各種メッセージには、上記取得依頼メッセージMM等が含まれている。更に入力部39は、使用者からの指示を受け付け当該指示に応じた指示信号を制御部35に対して与える。この入力部39は、例えばキーボード又はマウス等により実現されるものである。
以上の構成において制御部35は、CPUが記憶部36又はROM等に記憶されたプログラムを実行することにより配布管理サーバSV全体を統括制御する。更に制御部35は、後述する第1実施形態における配布管理サーバSVとしての各動作を実行する。
次に、第1実施形態のコンテンツ保持サーバCNの構成及び概要動作を、図3(b)を用いて説明する。なお図3(a)は第1実施形態のノードNnの概要構成を示すブロック図である。
図3(b)に示すように、第1実施形態のコンテンツ保持サーバCNは、制御部11、記憶部12、暗号化用アクセラレータ13、エンコーダ部14、通信部15及び入力部16を備えている。これらの構成要素は、バス17を介して相互にデータの授受が可能に接続されている。
このとき制御部11は、演算機能を有するCPU、作業用RAM並びに各種データ及びプログラムを記憶するROM等から構成されている。この各種データ及びプログラムには、オペレーティングシステム及び各種アプリケーションが含まれている。また記憶部12は、パケット化された配信用のコンテンツを不揮発性に保存するためのハードディスクドライブ等から構成されている。更に暗号化用アクセラレータ13は暗号鍵を用いてコンテンツを暗号化するために用いられる。
一方エンコーダ部14は、コンテンツを規定のデータ形式へ変換する。また通信部15は、ネットワーク8を介してノードNnとの間のコンテンツや各種メッセージの通信制御を行う。更に入力部16は、使用者からの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える。この入力部16は、例えばキーボード又はマウス等により実現されるものである。
以上の構成において制御部11は、CPUが記憶部12又はROM等に記憶されたプログラムを実行することによりコンテンツ保持サーバCN全体を統括制御する。更に制御部11は、後述する第1実施形態におけるコンテンツ保持サーバCNとしての各動作を実行する。また制御部11は、コンテンツの配信システムSへの投入時において、エンコード部14を用いて、記憶部12に記憶保存されたコンテンツのデータ形式を変換する。その後更に制御部11は、暗号鍵を用いて、データ形式が変換されたコンテンツを暗号化用アクセラレータ13により暗号化する。その後制御部11は、暗号化されたコンテンツを所定のデータ量に分割して連続する複数のパケットを生成し、通信部15を介して配信システムS内に投入する。
次に、第1実施形態のノードNnの構成及び概要動作を、図4を用いて説明する。なお図4は第1実施形態のノードの概要構成を示すブロック図である。
図4に示すように、第1実施形態のノードNnは、制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25、入力部26、映像処理部27、表示部28、音声処理部29及びスピーカ30を備えている。制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25及び入力部26は、バス31を介してデータの授受が可能に相互接続されている。
この構成において制御部21は、演算機能を有するCPU、各種データを記憶するRAM及び各種データ及びプログラムを記憶するROM等から構成される。記憶部22は各種データ及び各種プログラム等を記憶保存するためのハードディスク等から構成される。バッファメモリ23は通信部24を介して受信されたコンテンツを一時的に蓄積する。デコーダ部25は、コンテンツに含まれるエンコードされたビデオデータ及びオーディオデータ等をデコードする。映像処理部27はデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。液晶ディスプレイ等からなる表示部28は、映像処理部27から出力されたビデオ信号に相当する映像を表示する。音声処理部29はデコードされたオーディオデータをアナログのオーディオ信号にD/A変換した後、これを増幅してスピーカ30に出力する。スピーカ30は音声処理部29から出力されたオーディオ信号を音波として出力する。通信部24はネットワーク8を介した他のノードNnや配布管理サーバSV等との間のデータ授受についての通信制御を行う。入力部26は、ユーザからの指示を受け付け、その指示に応じた指示信号を制御部21に出力する。この入力部26は、例えばキーボード、マウス、或いは操作パネル等により実現されるものである。
なお以上の構成を備えるノードNnは、実際にはいわゆるパーソナルコンピュータ、STB(Set Top Box)又はテレビジョン受信機等として実現可能である。
記憶部22には、第1実施形態のノード処理プログラム、コンテンツとしてのファイル、カタログ情報、DHTを用いたルーティングテーブル等が記憶されている。
以上の構成において制御部21は、CPUが記憶部22又はROM等に記憶されたノード処理プログラムを読み出して実行することにより、ノードNn全体を統括制御する。具体的には、ノードNnが配信システムSへ参加したのちに制御部21がノード処理プログラムを実行することで、上述したユーザノード、ルートノード又は保持ノード等の少なくともいずれか一つのノードとして機能する。
次に、第1実施形態の配信システムSにおける事前ダウンロードの動作について、図5から図8を用いて説明する。
初めに、第1実施形態の適正配布割合を決定する根拠となる視聴率の調査について、図5を用いて説明する。図5は第1実施形態の視聴率調査の動作を示すフローチャートである。この視聴率の調査は、配布管理サーバSVの記憶部36に記憶されている視聴数リストALを用いて行われる。また、図5の右に示す動作が実行されるノードNnを対象ノードと称する。
第1実施形態の視聴数の調査において配布管理サーバSVは、図示しない電源スイッチがオンとされたタイミングから図5の左に示す動作を開始する。
電源スイッチがオンとされた配布管理サーバSVの制御部35は、図5の左に示すように、入力部39において視聴率の調査を実施する旨の指示が為されたか否かを判定する(ステップS1)。ステップS1の判定においてその指示が為されない場合(ステップS1;NO)、制御部35は後述するステップS3の動作に移行する。ステップS1の判定において視聴率調査実施の指示が為された場合(ステップS1;YES)、制御部35は予め設定された数のノードNnに対して、例えばネットワーク8を介して対象指定メッセージを送信する(ステップS2)。この対象指定メッセージは、その宛先であるノードNnが第1実施形態の視聴数の調査対象である旨のメッセージである。この調査対象となるノードNnは、配布管理サーバSVが一定数のノードNnを無作為に予め抽出したものである。このときの抽出数は例えば百個とされる。また対象指定メッセージには、その宛先たるノードNnを示すノードIDと、視聴率の調査対象であるコンテンツを示すコンテンツIDと、が含まれている。更に対象指定メッセージは、DHTを用いたマルチキャストにより配布管理サーバSVから送信しても良い。また対象指定メッセージは、定期的に配布管理サーバSVから送信しても良い。
次に制御部35は、対象指定メッセージの宛先であるノードNnから通知メッセージTMGが送信されて来たか否かを判定する(ステップS3)。この通知メッセージTMGは、その時点で視聴率調査の対象となっているコンテンツが取得されている旨の通知メッセージTMGである。ステップS2の判定において通知メッセージTMGが送信されて来ない場合(ステップS3;NO)、制御部35は後述するステップS5の動作に移行する。
一方ステップS3の判定において通知メッセージTMGが送信されて来た場合(ステップS3;YES)、制御部35は次に、送信されて来た通知メッセージTMGに対応するコンテンツの視聴数データを、視聴数リストALにおいて「1」だけインクリメントする(ステップS4)。その後制御部35は、配布管理サーバSVの電源スイッチがオフとされたか否かを判定する(ステップS5)。ステップS5の判定において電源スイッチがオフとされていない場合(ステップS5;NO)、制御部35は上記ステップS1の判定動作に再度移行する。ステップS5の判定において電源スイッチがオフとされている場合(ステップS5;YES)、制御部35はそのまま配布管理サーバSVとしての視聴率の調査を終了する。
なお第1実施形態における視聴率は、図3(a)に例示する視聴数を視聴数の調査対象のノード数で割って百倍したものになる。また視聴数の調査対象のノード数を百個とした場合、図3(a)に例示する視聴数が即ちそのコンテンツの視聴率となる。
他方、第1実施形態の視聴数の調査において対象ノードは、図示しない電源スイッチがオンとされたタイミングから図5の右に示す動作を開始する。
電源スイッチがオンとされた対象ノードの制御部21は、図5の右に示すように、いずれかのコンテンツの視聴を要請する旨の操作が入力部26において実行されたか否かを監視する(ステップS10)。そしてその操作が実行されない場合(ステップS10;NO)、制御部21は後述するステップS15の動作を以降する。一方、視聴要請の操作が実行された場合(ステップS10;YES)、制御部21は次に、対象ノードがステップS1の動作により配布管理サーバSVから送信された対象指定メッセージの宛先であったか否かを判定する(ステップS11)。即ち制御部21は、対象ノードが第1実施形態の視聴数の調査対象のノードNnであるか否かを判定する。
ステップS11の判定において自身が対象指定メッセージの宛先でない場合(ステップS11;NO)、制御部21はそのまま後述するステップS14の動作に移行する。一方ステップS11の判定において対象ノードが対象指定メッセージの宛先である場合(ステップS11;YES)、制御部21は次に、現時点が、その対象指定メッセージにより示されているコンテンツの公開直後であるか否かを判定する(ステップS12)。より具体的に制御部21は、例えば現時点がそのコンテンツの公開後10分以内であるか否かを判定する。このステップS12の判定は、第1実施形態の事前ダウンロードが、元々コンテンツの公開直後におけるコンテンツ保持サーバCN等における負荷の軽減を目的とすることによる。
ステップS12の判定において、現時点がコンテンツの公開直後ではない場合(ステップS12;NO)、制御部21はそのまま後述するステップS14の動作に移行する。一方ステップS12の判定において、現時点がコンテンツの公開直後である場合(ステップS12;YES)、制御部21は次に、そのコンテンツを取得する旨の上記通知メッセージTMGを、例えばネットワーク8を介して配布管理サーバSVに送信する(ステップS13。ステップS2参照)。
そして制御部21は、ステップS10の動作において視聴が指示されているコンテンツを、オーバーレイネットワーク9を介して取得して再生する(ステップS14)。その後制御部21は、対象ノードの電源スイッチがオフとされたか否かを判定する(ステップS15)。ステップS15の判定において電源スイッチがオフとされていない場合(ステップS15;NO)、制御部21は上記ステップS10の判定動作に再度移行する。ステップS15の判定において電源スイッチがオフとされている場合(ステップS15;YES)、制御部21はそのまま対象ノードとしての視聴率の調査を終了する。
次に、第1実施形態の事前ダウンロードの動作を、図6から図8を用いて説明する。なお、図8に示す動作が実行されるノードNnも「対象ノード」と称し、他のノードNnと区別する。また、以下に説明する事前ダウンロードの動作では、事前ダウンロード自体における負荷分散動作を併せて実行する。更に図6は第1実施形態の負荷分散動作を示す概念図である。また図7は実施形態の配信管理サーバSVにおける事前ダウンロードの動作を示すフローチャートである。
更にまた図6において、図2を用いて説明した第1実施形態の配信システムSと同一の部材については、同一の部材番号を付して細部の説明は省略する。
以下に説明する負荷分散動作においては、設定されたノードIDの範囲を分割し、その分割されたノードID毎に、所定時間差をもって取得依頼メッセージMMを段階的に送信する。即ち図6に例示するように、配布管理サーバSVの制御部35は、一度設定された範囲PAを例えば三つの分割範囲PA1からPA3に分割する。そして制御部35は、夫々の分割範囲PA1からPA3毎に、上記所定時間をおいて取得依頼メッセージMMを送信する。この取得依頼メッセージMMを受信したノードNnは、図8を用いて後ほど説明する第1実施形態の事前ダウンロードの動作を行う。
次に、より具体的に図7を用いて、第1実施形態の事前ダウンロードの動作における配布管理サーバSVの動作を説明する。なお図7に示す例では、最初に設定された範囲PAとしての適正配布割合、即ち視聴率が25%であり、最大配布割合を10%としてこれを分割する場合について説明する。なおこの最大配布割合とは、一つの取得依頼メッセージMMに含ませるノードIDの数の最大値に相当する割合である。また、この最大配布割合は、分割範囲PA1からPA3における配布割合の最大値でもある。
図7に示すように、第1実施形態の事前ダウンロードの動作において、配布管理サーバSVの制御部35は、新たなコンテンツの配信要請メッセージが送信されて来たか否かを監視する(ステップS20)。この時制御部35は、決定手段の一例に相当する。この配信要請メッセージは新たなコンテンツの配信を要請する旨のメッセージである。配信要請メッセージは、例えば配信システムSの図示しない管理者サーバ等から送信されて来るものである。ステップS20の監視中において配信要請メッセージが送信されて来ない場合(ステップS20;NO)、制御部35は後述するステップS37の動作に移行する。一方ステップS20の監視において配信要請メッセージが送信されて来たとき(ステップS20;YES)、制御部35は次に、過去に配信済みのコンテンツについての適正配布割合、即ち視聴率にバラツキがあるか否かを判定する(ステップS21)。このステップS21の判定は、例えば、記憶部36に記憶されている過去に配信済みのコンテンツについての適正配布割合を夫々参照し、その値が予め設定されているバラツキ閾値以上の範囲に分散しているか否かにより判定される。
ステップS21の判定において過去のコンテンツの適正配布割合にバラツキがない場合(ステップS21;NO)、制御部35は次に、過去のコンテンツの適正配布割合から例えばランダムに一つ以上を選択し、その平均値を決定する。これにより制御部35は、決定された平均値を、新たに配信されるコンテンツの事前ダウンロードにおける今回の配布割合と設定する(ステップS24)。その後制御部35は後述するステップS25の動作に移行する。
一方、ステップS21の判定において過去のコンテンツの適正配布割合にバラツキがある場合(ステップS21;YES)、制御部35は次に、新たに配信されるコンテンツがいわゆるシリーズ物のコンテンツであって、対応する前作があるか否かを判定する(ステップS22)。このステップS22の判定における「シリーズ物」とは、例えば連続ドラマのコンテンツや、同一の商品についての一連のコマーシャルのコンテンツなどが該当する。またステップS22において制御部35は、新たに配信されるコンテンツがシリーズ物であるか否かを判定する。この判定は、例えばコンテンツ名や、そのコンテンツに対応するカタログ情報に記述されているキーワードの記載等に基づいて判定される。
ステップS22の判定において、新たに配信されるコンテンツがシリーズ物のコンテンツであって対応する前作がある場合(ステップS22;YES)、制御部35は次に、対応する前作の配信時における適正配布割合を記憶部36から読み出す。これにより制御部35は、読み出された適正配布割合を、新たに配信されるコンテンツの事前ダウンロードにおける今回の配布割合と設定する(ステップS23)。その後制御部35は後述するステップS25の動作に移行する。一方ステップS22の判定において、新たに配信されるコンテンツがシリーズ物のコンテンツでないか、又はシリーズ物であっても対応する前作がない場合(ステップS22;NO)、制御部35は、上記ステップS24の動作を実行する。その後制御部35は後述するステップS25の動作に移行する。
上記ステップS23又はS24の動作により新たな今回の配布割合が設定されたら、次に制御部35は、設定された配布割合のうちの残りの配布割合が0%となっているか否かを判定する(ステップS25)。このステップS25の判定は、換言すれば、必要な数の取得依頼メッセージMMを送信し終わったか否かを判定する動作である。ステップS25の判定において残りの配布割合が0%である場合(ステップS25;YES)、制御部35は、後述するステップS36の動作に移行する。
一方、ステップS25の判定において、残りの配布割合が0%でない場合(ステップS25;NO)、制御部35は次に、残りの配布割合が上記最大配布割合を越えているか否かを判定する(ステップS26)。ステップS26の判定において、残りの配布割合が上記最大配布割合を越えている場合(ステップS26;YES)、制御部35は、今回送信される取得依頼メッセージMMにおける今回の配布割合を上記最大配布割合として設定する(ステップS29)。次に制御部35は、残りの配布割合を、「(残りの配布割合)−(最大配布割合)」として設定し、例えば記憶部36に記憶させる(ステップS30)。ステップS29及びS30の動作について、図6に例示する場合、最初の取得依頼メッセージMMの送信時には、配布割合は最初に設定された「25%」である(ステップS25;YES参照)。この値は最大配布割合より大きい(ステップS26;YES参照)。そこで制御部35は、今回送信される取得依頼メッセージMMにおける今回の配布割合を最大配布割合である「10%」に設定する(ステップS29参照)。更に制御部35は、残りの配布割合を「15%」とする(ステップS30参照)。これに対し、二回目の取得依頼メッセージMMの送信時には、直前のステップS30の動作により、残りの配布割合が15%であって最大配布割合より大きくなっている(ステップS26;YES参照)。このため制御部35は、二回目に送信される取得依頼メッセージMMにおける今回の配布割合を、再度最大配布割合である「10%」に設定する(ステップS29参照)。更に制御部35は、三回目に送信される取得依頼メッセージMMにおける配布割合を「5%」とする(ステップS30参照)。最後に、三回目の取得依頼メッセージMMの送信時には、残りの配布割合が5%であって最大配布割合より大きくない(ステップS26;NO参照)。このため制御部35は、取得依頼メッセージMMにおける配布割合を「5%」に設定する(後述のステップS27参照)。更に制御部35は、以降の取得依頼メッセージMMにおける配布割合を「0%」とする(後述のステップS28参照)。
次に制御部35は、前回配信されたコンテンツにおけるノードIDの範囲の終端にあるノードIDを記憶部36から読み出す(ステップS31)。この終端にあるノードIDとは、例えば図2に例示した場合における(c3b1)に相当するものであり、前回の配信時に記憶部36に記憶されているものである。
次に制御部35は、読み出した終端のノードIDと、新たに設定された今回の配布割合と、に基づき、新たに配信されるコンテンツの事前ダウンロードにおけるノードIDの範囲を決定する(ステップS32)。ステップS32の動作におけるノードIDの範囲の始端は、ステップS31の動作において読み出した終端のノードIDの次のノードIDとされる。またその範囲の終端は、その始端のノードIDから今回の配布割合分のノードIDだけ増大させたノードIDとされる。この時制御部35は、決定手段の一例に相当する。
その後制御部35は、新たなノードIDの範囲の終端に相当するノードIDを記憶部36に記憶させる(ステップS33)。次に制御部35は、ステップS32の動作により新たに設定されたノードIDの範囲と、事前ダウンロードされるコンテンツと、を示す取得依頼メッセージMMを生成する(ステップS34)。この時制御部35は、送信手段の一例に相当する。この取得依頼メッセージMMには、新たに設定されたノードIDの範囲の始端のノードIDと、その終端のノードIDと、事前ダウンロードされるコンテンツを示すコンテンツIDと、が少なくとも含まれている。なお上記始端のノードID及び終端のノードIDのみをノードIDの範囲を示す情報として含むように構成してもよい。この場合には、取得依頼メッセージMMとしてのデータ量を低減することができる。また、そのノードIDの範囲に含まれる全てのノードIDを取得依頼メッセージMMに含ませても良い。この場合には、取得依頼メッセージMMを受信したノードNnにおいて迅速にノードIDを検索することができる。その後制御部35は、生成された取得依頼メッセージMMを、配信システムSに対して例えばDHTを用いたマルチキャストにより送信する(ステップS34)。その後制御部35は、上記所定時間差に相当する時間だけ待機して(ステップS35)、再度上記ステップS25の判定動作に移行する。ステップS34及びS35の動作について、図6に例示する場合、最初の取得依頼メッセージMMの送信時に制御部35は、ステップS29で設定された今回の配布割合を示す取得依頼メッセージMMをマルチキャストで送信する(ステップS34参照)。これにより、図6に示す範囲PA1に属するノードIDにより示されるノードNnが、この取得依頼メッセージMMを受信して事前ダウンロードを行う。その後制御部35は所定時間待機する(ステップS35参照)。これに対し、二回目の取得依頼メッセージMMの送信時に制御部35は、最初の取得依頼メッセージMMの送信時と同様に取得依頼メッセージMMをマルチキャストで送信する(ステップS34参照)。これにより、図6に示す範囲PA2に属するノードIDにより示されるノードNnが、この取得依頼メッセージMMを受信して事前ダウンロードを行う。一方、制御部35は所定時間待機する(ステップS35参照)。更に三回目の取得依頼メッセージMMの送信時に制御部35は、後述のステップS27で設定された今回の配布割合を示す取得依頼メッセージMMをマルチキャストで送信する(ステップS34参照)。これにより、図6に示す範囲PA3に属するノードIDにより示されるノードNnが、この取得依頼メッセージMMを受信して事前ダウンロードを行う。
一方ステップS26の判定において、残りの配布割合が上記最大配布割合を越えていない場合(ステップS26;NO)、制御部35は次に、今回送信される取得依頼メッセージMMにおける今回の配布割合を上記残りの配布割合として設定する(ステップS27)。次に制御部35は、残りの配布割合を0%として設定し、例えば記憶部36に記憶させる(ステップS28)。その後制御部35は、上記ステップS31からS34の動作と同様の動作を実行する。なおこの時のステップS32の動作におけるノードIDの範囲の始端は、ステップS31の動作において読み出した終端のノードIDの次のノードIDとされる。またその範囲の終端は、その始端のノードIDから、ステップS27又はS29の動作により新たに設定された配布割合分のノードIDだけ増大させたノードIDとされる。
その後制御部35は、ステップS34までの動作を実行したら、上記ステップS35の動作を実行後、再度上記ステップS25の判定動作に移行する。なお、上記ステップS26からS30の動作を実行する制御部35が、比較判定手段の一例に相当する。
他方、ステップS25の判定において、残りの配布割合が0%である場合(ステップS25;YES)、制御部35は、記憶部36内の視聴数リストALに対し、新たに事前ダウンロードされるコンテンツを示すコンテンツIDを含むレコードを一つ追加する(ステップS36)。
その後制御部35は、配布管理サーバSVの電源スイッチがオフとされたか否かを判定する(ステップS37)。ステップS37の判定において電源スイッチがオフとされていない場合(ステップS37;NO)、制御部35は上記ステップS20の監視動作に再度移行する。ステップS37の判定において電源スイッチがオフとされている場合(ステップS37;YES)、制御部35はそのまま配布管理サーバSVとしての事前ダウンロードの動作を終了する。
一方、第1実施形態の事前ダウンロードの動作において対象ノードの制御部21は、図8に示すように、先ずオーバーレイネットワーク9を介して何らかのメッセージを受信したか否かを監視する(ステップS40)。そして何らメッセージを受信しない場合(ステップS40;NO)、制御部21は後述するステップS55の動作に移行する。一方、何らかのメッセージを受信した場合(ステップS40;YES)、制御部21は次に、その受信したメッセージがマルチキャストにより送信されて来たメッセージであるか否かを判定する(ステップS41)。なお以下の説明において、マルチキャストにより送信されて来たメッセージを単に「マルチキャストメッセージ」と称する。ステップS41の判定において送信されて来たメッセージがマルチキャストメッセージである場合(ステップS41;YES)、制御部21はそのマルチキャストメッセージを、記憶部22に記憶されているルーティングテーブルに基づいて次のノードNnに転送する(ステップS42)。その後制御部21は後述するステップS43の動作に移行する。ステップS41の判定において送信されて来たメッセージがマルチキャストメッセージでない場合(ステップS41;NO)、制御部21は次に、送信されて来たメッセージが第1実施形態の取得依頼メッセージMMであるか否かを判定する(ステップS43)。この時制御部21は、受信手段の一例に相当する。
ステップS43の判定において、送信されて来たメッセージが取得依頼メッセージMMでない場合(ステップS43;NO)、制御部21は次に、送信されて来たメッセージがコンテンツの送信を要求するメッセージであるか否かを判定する(ステップS44)。ステップS44の判定において、送信されて来たメッセージがコンテンツの送信を要求するメッセージでもない場合(ステップS44;NO)、制御部21はそのメッセージの内容に対応した他の動作を実行する(ステップS46)。その後制御部21は後述するステップS55の動作に移行する。一方ステップS44の判定において、送信されて来たメッセージがコンテンツの送信を要求するメッセージである場合(ステップS44;YES)、制御部21はそのメッセージにより要求されているコンテンツをその要求元のノードNnに送信する(ステップS45)。その後制御部21は後述するステップS55の動作に移行する。
他方、ステップS43の判定において、送信されて来たメッセージが取得依頼メッセージMMである場合(ステップS43;YES)、制御部21は次に、対象ノードのノードIDが取得依頼メッセージMMにより示されているノードIDの範囲に入っているか否かを判定する(ステップS47)。この時制御部21は、判定手段の一例に相当する。ステップS47の判定において対象ノードのノードIDが取得依頼メッセージMMにより示されているノードIDの範囲に入っていない場合(ステップS47;NO)、制御部21は後述するステップS55の動作に移行する。ステップS47の判定において対象ノードのノードIDが取得依頼メッセージMMにより示されているノードIDの範囲に入っている場合(ステップS47;YES)、制御部21は新たに配信されるコンテンツの保持ノードを検索する(ステップS48)。
次に制御部21は、検索対象の保持ノードが配信システムS内に存在しているか否かを判定する(ステップS49)。ステップS49の判定において保持ノードが配信システムS内に存在しない場合(ステップS49;NO)、制御部21は、コンテンツ保持サーバCNに対してコンテンツの送信を要求する旨のメッセージを送信する(ステップS52)。その後制御部21は予め設定されている一定の時間待機する(ステップS53)。この時制御部21は、取得手段の一例に相当する。なおステップS52により送信されたメッセージを受信するコンテンツ保持サーバCNの制御部11は、常に何らかのメッセージを受信したか否かを監視している。そして、ステップS52により送信されたメッセージを受信したら、制御部11は、対応するコンテンツをそのメッセージの送信元である対象ノードに送信する。
一方、対象ノードの制御部21は、ステップS53において一定の時間経過後でも所望のコンテンツがコンテンツ保持サーバCNから送信されて来ない場合(ステップS53;NO)、後述するステップS55の動作に移行する。またステップS53の判定において、一定の時間内に所望のコンテンツが取得できた場合(ステップS53;YES)、制御部21はその取得したコンテンツを記憶部22又はバッファメモリ23内に記憶させる。その後制御部21はそのコンテンツを配信システムS内に公開する(ステップS54)。
ステップS54の公開動作についてより具体的に制御部21は、そのコンテンツのコンテンツIDをキーとして、その公開のためのパブリッシュメッセージを送信する。このパブリッシュメッセージには、公開対象のコンテンツのコンテンツIDと、対象ノードのノードIDと、が少なくとも含まれている。このパブリッシュメッセージは、各ノードNnに記憶されているルーティングテーブルに基づいて順次転送される。この公開動作についてより詳細には、例えば上記特開2006−197400号公報等に記載されている。
その後制御部21は、対象ノードの電源スイッチがオフとされたか否かを判定する(ステップS55)。ステップS55の判定において電源スイッチがオフとされていない場合(ステップS55;NO)、制御部21は上記ステップS40の監視動作に移行する。ステップS55の判定において電源スイッチがオフとされている場合(ステップS55;YES)、制御部21はそのまま対象ノードとしての事前ダウンロードの動作を終了する。
他方、ステップS49の判定において保持ノードが配信システムS内に存在した場合(ステップS49;YES)、制御部21は、その保持ノードに対してコンテンツの送信を要求する旨のメッセージを送信する(ステップS50)。その後制御部21は予め設定されている一定の時間待機する(ステップS51)。そして制御部21は、その時間経過後でも所望のコンテンツが保持ノードから送信されて来ない場合(ステップS51;NO)、上記ステップS52以降の動作に移行する。ステップS51の判定において、一定の時間内に所望のコンテンツが取得できた場合(ステップS51;YES)、制御部21はその上記ステップS54以降の動作に移行する。
以上説明した第1実施形態の事前ダウンロードの動作によれば、配布管理サーバSVは、配信システムSに参加しているノードNnの実際の参加数を認識することなく、実際の参加数に見合った数のノードNnにコンテンツを取得させることができる。そのため、コンテンツ配信の負荷を軽減することができる。つまり、コンテンツを配信するコンテンツ保持サーバCNや保持ノード及びネットワークにかかる負荷を軽減することができる。
また、取得依頼メッセージMMにより示されているノードIDの範囲内のノードNnへマルチキャストメッセージとして取得依頼メッセージMMが送信される。よってより確実に、コンテンツを事前ダウンロードすべきノードNnにコンテンツを取得させることができる。
更に、付与可能な全ノードIDの中の一部の連続するノードIDが決定されて取得依頼メッセージMMが送信される。よって、連続するノードIDが付与されたノードNnにコンテンツを取得させることができる。
更にまた、付与可能な全ノードIDの中の所定の範囲に属するノードIDが決定されて取得依頼メッセージMMが送信される。よって、その所定の範囲に属するノードIDが付与されたノードNnにコンテンツを取得させることができる。
また、ノードNnのオーバーレイネットワーク9内の所在を示す例えばIPアドレスと所定のハッシュ関数とを用いてノードNnに付与するノードIDを決定して付与することも可能である。この場合は、ハッシュ関数を用いることで、ノードIDが分散して均等に付与されたノードNnに適切にコンテンツを取得させることができる。
更に、事前ダウンロードされるコンテンツが決定される度に、前回決定されたノードIDとは異なるノードIDが決定される。よって、事前ダウンロードされるコンテンツが決定される度に、異なったノードIDが付与された異なったノードNnに対してコンテンツを取得させることができる。
更にまた、付与可能な複数のノードIDの中の一部として決定されるノードIDの数が配信済のコンテンツの視聴率に応じて決定される。よって、視聴率に応じて適切に事前ダウンロード対象たるノードNnを識別するノードIDを決定できる。従って、効果的にコンテンツ配信の負荷を軽減することができる。
また、視聴率が、配信済のコンテンツが公開直後にそのコンテンツを取得したノードNnの数に基づく視聴率とされる。よって、取得要求が集中する公開直後の期間の視聴率に応じて、適切に事前ダウンロード対象たるノードNnを識別するノードIDを決定できる。従って、効果的にコンテンツ配信の負荷を軽減することができる。
更にまた、視聴率自体が適正配布割合とされるので、視聴率が高いほど、付与可能な複数のノードIDの中の一部として決定されるノードIDの数が多く決定される。従って、視聴率に応じて効果的にコンテンツ配信の負荷を軽減することができる。
また、上記ステップS25からS30及びS35として説明した負荷分散動作によれば、制御部35は事前ダウンロードにおけるノードIDの範囲PAを分割する。そして制御部35は、その分割範囲PA1からPA3毎に時間をずらして取得依頼メッセージMMを送信する。よって、実際の事前ダウンロードにおいて発生する負荷を分散することができる。
なお、上述した実施形態では、負荷分散のため、一度設定された範囲PAを三つの分割範囲PA1からPA3に分割して取得依頼メッセージMMを送信した。これに対し、一度設定されたノードIDの範囲に属するノードIDにより示されるノードNnに対して、一度に纏めて取得依頼メッセージMMを送信する構成としてもよい。この場合、図7のステップS25からS30及びS35の動作は不要となる。
(C)第1実施形態の事前ダウンロードにおける他の負荷分散動作
次に、第1実施形態の事前ダウンロードにおける他の負荷分散動作について、図8及び図8を用いて説明する。
配布管理サーバSVの制御部35は、先ず図7に示したステップS20からS33の動作と同様の動作を実行する。
次に制御部35は、事前ダウンロードの対象たるコンテンツにおける最終取得時刻を設定する。この最終取得時刻は、事前ダウンロードを行うノードNnにおける、事前ダウンロードとしての最終取得期限を示す時刻である。この最終取得期限の設定は、取得依頼メッセージMMの生成の前に、例えば配布管理サーバSVの使用者により入力部39を介して実行される。
次に制御部35は、設定された最終取得時刻と、図7ステップS32の動作により新たに設定されたノードIDの範囲と、事前ダウンロードされるコンテンツと、を示す取得依頼メッセージMMを生成する。この取得依頼メッセージMMには、新たに設定されたノードIDの範囲の始端のノードIDと、その終端のノードIDと、事前ダウンロードされるコンテンツを示すコンテンツIDと、上記最終取得時刻を示す情報と、が少なくとも含まれている。その後制御部35は、生成された取得依頼メッセージMMを、配信システムSに対して例えばDHTを用いたマルチキャストにより送信する。
その後制御部35は、図7に示したステップS34以降の動作と同様の動作を実行する。
次に他の負荷分散動作において、対象ノードの制御部21は、図8に示したステップS40からS47の動作と同様の動作を実行する。
次に制御部21は、取得した(ステップS43;YES参照)取得依頼メッセージMMにより示されている最終取得時刻と、現在時刻と、の間の時刻を例えばランダムに設定する。この時制御部21は選択手段の一例に相当する。これにより制御部21は、設定した時刻が到来するまで待機する。この待機動作は、ステップS43の動作の一部として実行される。
その後制御部21は、図8に示したステップS48以降の動作と同様の動作を実行する。このステップS48以降の動作は、ステップS43において設定時刻の到来まで待機した後に、実行される。
以上説明した他の負荷分散動作によれば、事前ダウンロードについての最終取得時刻を設定し、その時刻までの間でノードNnにおいてランダムに事前ダウンロードが実行される。よって、第1実施形態に係る配信システムSの動作による効果に加えて、実際の事前ダウンロードにおいて発生する負荷を、ランダムな取得タイミングにより分散することができる。
(II)第2実施形態
先ず、本発明の第2実施形態について、図9を用いて説明する。なお図9は、第2実施形態の負荷調査動作を示すフローチャート等である。以下に説明する第2実施形態では、過去に配信されたコンテンツの公開時においてコンテンツ保持サーバCNにかけられた負荷に基づいて、事前ダウンロードにおける適正配布割合を設定する。これは、事前ダウンロードの元々の目的がコンテンツ保持サーバCNにおける負荷を低減するためのものであることによる。
先ず、第2実施形態の配布管理サーバSVの記憶部36には、第1実施形態の視聴数リストALに代えて、図9(a)に例示するような負荷リストRLが、後述するように更新されつつ不揮発性に記憶されている。
この負荷リストRLには、コンテンツIDと、実際の配布割合と、全視聴数と、コンテンツ保持サーバCNからの取得数と、が、対応付けて記述されている。このうち「実際の配布割合」は、そのコンテンツIDに対応するコンテンツを事前ダウンロードしたときに実際に用いられた配布割合である。また「全視聴数」は、そのコンテンツを取得した全てのノードNnの数である。更に「コンテンツ保持サーバCNからの取得数」は、そのコンテンツの事前ダウンロード時において、コンテンツ保持サーバCNから事前ダウンロードが行われた数である。なお図9(a)では、この「コンテンツ保持サーバCNからの取得数」は「サーバからの取得数」と略記されている。そして、第2実施形態の配布管理サーバSVの制御部35は、第2実施形態の適正配布割合を、以下の式(1)により導出する。
適正配布割合=実際の配布割合(%)×全視聴数/(全視聴数−コンテンツ保持サーバCNからの取得数) … (1)
なおこの式(1)が成立する根拠としては、先ず、適正配布割合と実際の配布割合との比は、そのコンテンツの全視聴数とコンテンツ保持サーバCN以外からの取得数との比に等しい。よって、適正配布割合は全視聴数をコンテンツ保持サーバCN以外からの取得数で割った値に実際の配布割合を乗算した値に等しいことになる。これにより、上記式(1)が成立する。なおこの時制御部35が、負荷検出手段の一例に相当する。
以上の動作により、制御部35は、コンテンツ保持サーバCNからの取得数が多いときは適正配布割合を前回に比べて高く設定する。一方、制御部35は、コンテンツ保持サーバCNからの取得数が少ないときは適正配布割合を前回に比べて低く設定する。このように制御部35は、コンテンツ保持サーバCNに対する負荷をより低減する方向に適正配布割合を設定する。
また負荷リストRLでは、後述するように、新たなコンテンツが配信システムSに投入される度にそのコンテンツを示すコンテンツIDを含むレコードが一つ追加される。
次に、第2実施形態の適正配布割合を決定する根拠としてのコンテンツ保持サーバCNにおける負荷の調査について、図9を用いて説明する。この負荷の調査は、上記負荷リストRLを用いて行われる。また図9において、図5を用いて説明した第1実施形態の配布管理サーバSVにおける視聴数の調査の動作と同一の動作については、同一のステップ番号を付して細部の説明は省略する。
第2実施形態の視聴数の調査において配布管理サーバSVの制御部35は、図9(b)の左に示すように、先ず配信システムS内のいずれかのノードNnから、第2実施形態の通知メッセージTMGが送信されて来たか否かを判定する(ステップS65)。この通知メッセージTMGは、その時点でコンテンツを取得したノードNnからの通知メッセージTMGである。この通知メッセージTMGには、そのノードNnにおいて取得したコンテンツの取得元情報と、そのコンテンツを示すコンテンツIDと、が含まれている。この取得元情報は、通知メッセージTMGを送信して来たノードNnにおけるそのコンテンツの取得元が、保持ノードであるか、コンテンツ保持サーバCNであるか、を示す情報である。ステップS65の判定において通知メッセージTMGが送信されて来ない場合(ステップS65;NO)、制御部35は図5に示すステップS5の動作と同様の動作に移行する。
一方ステップS65の判定において第2実施形態の通知メッセージTMGが送信されて来た場合(ステップS65;YES)、制御部35は次に、送信されて来た通知メッセージTMGに対応するコンテンツの全視聴数データを、負荷リストRLにおいて「1」だけインクリメントする(ステップS66)。次に制御部35は、送信されて来た通知メッセージTMGに含まれている取得元情報がコンテンツ保持サーバCNを示しているか否かを判定する(ステップS67)。ステップS67の判定において、取得元情報がコンテンツ保持サーバCNを示していない場合(ステップS67;NO)、制御部35は図5に示すステップS5の動作と同様の動作に移行する。ステップS67の判定において取得元情報がコンテンツ保持サーバCNを示している場合(ステップS67;YES)、制御部35は次に、送信されて来た通知メッセージTMGに対応するコンテンツの「コンテンツ保持サーバCNからの取得数」データを、負荷リストRLにおいて「1」だけインクリメントする(ステップS68)。その後制御部35は、図5に示すステップS5の動作と同様の動作に移行する。
他方、図9(b)の右に示すように、第2実施形態の負荷の調査において各ノードNnの制御部21は、先ず、図5の右に示すステップ10及びS12の動作を実行する。
次に制御部21は、取得しているコンテンツの取得元がコンテンツ保持サーバCNであるか否かを判定する(ステップS70)。このステップS70の判定は、例えばそのコンテンツの取得時において接続した接続先がコンテンツ保持サーバCNであったか否かを、制御部21がその取得の都度記憶部22に記憶しておくことにより判定できる。
ステップS70の判定において、そのコンテンツの取得元がコンテンツ保持サーバCNであった場合(ステップS70;YES)、制御部21は次に、そのコンテンツを示すコンテンツIDと、そのコンテンツの取得元がコンテンツ保持サーバCNである旨の取得元情報と、を含む上記通知メッセージTMGを生成する。次に制御部21は、その生成した通知メッセージTMGを配布管理サーバSVに送信する(ステップS71)。その後制御部21は、図5に示すステップS14以降の動作と同様の動作に移行する。
一方、ステップS70の判定において、そのコンテンツの取得元がコンテンツ保持サーバCNでない場合(ステップS70;NO)、制御部21は次に、そのコンテンツを示すコンテンツIDと、そのコンテンツの取得元がコンテンツ保持サーバCNでない旨の取得元情報と、を含む上記通知メッセージTMGを生成する。次に制御部21は、その生成した通知メッセージTMGを配布管理サーバSVに送信する(ステップS72)。その後制御部21は、図5に示すステップS14以降の動作に移行する。
以上図9を用いて説明した動作により更新される負荷リストRLに基づき、以後の事前ダウンロードにおける適正配布割合が上記式(1)により算出される。なお、この適正配布割合の算出方法以外の事前ダウンロード自体の方法は、図6から図8を用いて説明した第1実施形態の事前ダウンロードの方法と同様であるので、詳細な説明を省略する。また、図7を用いて説明した各負荷分散動作の適用も、同様に可能である。
以上説明した第2実施形態の負荷の調査を含む事前ダウンロードの動作によれば、配信済のコンテンツがノードNnに配信された際にコンテンツ保持サーバCNにかけられた負荷が検出される。そして、付与可能な複数のノードIDの中の一部として決定されるノードIDの数が、検出された負荷に基づいて決定される。従って、コンテンツ保持サーバCNの負荷に応じて適切な数のノードIDを決定して、効果的にコンテンツ配信の負荷を軽減することができる。
また、付与可能な複数のノードIDの中の一部として決定されるノードIDの数が、配信済のコンテンツの公開直後において検出されたコンテンツ保持サーバCNの負荷に基づいて決定される。よって、取得要求が集中する公開直後の期間の負荷に応じて、適切に事前ダウンロード対象たるノードNnを識別するノードIDを決定できる。従って、効果的にコンテンツ配信の負荷を軽減することができる。
更に、上記式(1)の結果として、検出された負荷が高いほど、付与可能な複数のノードIDの中の一部として決定されるノードIDの数が多く決定される。従って、より効果的にコンテンツ配信の負荷を軽減することができる。
なお、上記各実施形態の配信システムS等はDHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。より具体的に例えば、上述して来た各実施形態では、ノードIDをID空間において均等に分散させる方法としてハッシュ関数を用いてノードIDを生成する場合について説明したが、これ以外に、乱数等を用いてランダムにノードIDを生成させても良い。この場合でも、ハッシュ関数を用いた場合と同様に、ノードIDがID空間において均等に分散される。
更に、図7のステップS21の動作を省略し、図7のステップS22の判定のみで配布割合を決定するように構成することも可能である。
更にまた、上述した各実施形態では、公開前にコンテンツを事前ダウンロードする場合に本発明を適用した。これ以外に、コンテンツ取得のためのアクセス集中が予想されるタイミングの前に各ノードNnにコンテンツをダウンロードしておく場合にも、本発明を適用することができる。より具体的には、コンテンツの公開直後に限らず、例えばウェブページを使った告知やコマーシャル広告、或いは情報番組での告知等を多くすれば、コンテンツ取得のためのアクセス集中が起き得る。よってこのような場合に、その告知等の前にコンテンツをダウンロードさせておく場合に本発明は適用可能である。
また、図5の左、図7及び図9(b)の左に夫々示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバからダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して各実施形態における配布管理サーバSVの制御部35に読み込まれて実行されるようにしても良い。
更に同様に、図5の右、図8及び図9(b)の右に夫々示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバからダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して各実施形態におけるノードNnの制御部21に読み込まれて実行されるようにしても良い。