(I)実施形態
次に、本発明を実施するための形態について、図1を用いて説明する。以下に説明する実施形態はP2P型のネットワークシステムを用いてノードに動画等のコンテンツを配信する配信システムに対して本発明を適用した場合の実施形態である。
(A)配信システムの全体構成及び動作概要
始めに、実施形態の配信システムの構成及び動作概要について、図1を用いて説明する。なお図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には、パケット化されたデータを転送するためのルータが適宜挿入されているが、図示を省略している。
このようなネットワーク8には、複数のノードNn(n=1、2、3、…)が接続されている。各ノードNnには、固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。
実施形態の配信システムSは、図1の上部枠100内に示すように、これらノードNnのうちいずれか複数のノードNnの参加により形成されるP2P型のネットワークシステムである。なおネットワーク8には、配信システムSに参加している各ノードNnからネットワーク8を介してアクセス可能なベンダサーバB及び投入サーバSVが含まれている。この時投入サーバSVは情報処理装置の一例に相当する。この投入サーバSVは、後述するように各ノードNnにおいて所望するコンテンツID等を取得するために用いられる。またベンダサーバBは、これも後述するようにコンテンツの更新を行うための指示の送信元となるサーバである。
図1の上部枠100内に示すネットワークは、既存のネットワーク8を用いて形成された、仮想的なリンクを構成するオーバーレイネットワーク9である。このオーバーレイネットワーク9は論理的なネットワークであり、特定のアルゴリズム、例えばDHTを利用したアルゴリズムにより実現される。オーバーレイネットワーク9からなる配信システムSに参加している各ノードNnには、所定桁数からなる固有の識別データがノードIDとして割り当てられている。このノードIDは、例えば各ノードNnに個別に割り当てられたIPアドレス又はその製造番号を共通のハッシュ関数によりハッシュ化した値である。この共通のハッシュ関数の例としては例えばSHA−1等が挙げられる。またこの共通のハッシュ関数を用いて得られるノードIDは、例えば160ビットのビット長を有する値となる。このノードIDの付与方法により、対応するノードNnがいわゆるID空間内に偏りなく分散して配置される。
また各ノードNnは、DHTを用いたルーティングテーブルを夫々に保持している。このルーティングテーブルは配信システムS上における各種メッセージの転送先を規定している。より具体的には、ルーティングテーブルにはID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。このようなDHTを用いたルーティングテーブルについては上記特許文献1等で公知であるので、詳しい説明を省略する。
また、配信システムSにおいては、様々な映画や動画等のコンテンツに相当するコンテンツデータが、所定のファイル形式で複数のノードNnに分散して保存されている。このコンテンツデータを以下適宜「コンテンツ」と称する。これらのコンテンツには、夫々、動画等のタイトル等であるコンテンツ名及びコンテンツID等の情報が付与されている。
このコンテンツIDはコンテンツ毎に固有の識別データであり、対応するコンテンツが保存されているノードNnの所在を配信システムS内において検索するための検索情報である。例えば、コンテンツ名に任意の数値を加えたものが、上記ノードIDを得る場合と共通のハッシュ関数によりハッシュ化されて、対応するコンテンツIDが生成される。この場合のコンテンツIDはノードIDと同一のID空間内に配置されることとなる。またコンテンツ名に加えられる任意の数値は、例えば対応するコンテンツの先頭数バイトでも良い。なおコンテンツID生成のための他の方法としては、例えば、配信システムSの管理者がコンテンツ毎に一意のID値を付与しても良い。この場合のID値はノードIDと同一のビット長であることが条件となる。
一方配信システムSでは、分散保存されているコンテンツの所在を示す情報と、コンテンツのコンテンツID等と、の組が含まれるインデックス情報が用いられる。このコンテンツの所在を示す情報とは、そのコンテンツを保存したノードNnのノード情報である。なおコンテンツを保存しているノードNnを、以下「コンテンツ保持ノード」と称する。
インデックス情報は、コンテンツの所在を管理しているノードNn等により、そのインデックスキャッシュに記憶、管理が為される。このコンテンツの所在を管理しているノードNnを以下「ルートノード」と称する。ルートノードは、例えばコンテンツIDと最も近いノードIDを有するノードNnであるように定められる。このときコンテンツIDと最も近いか否かは、例えば上位桁がより多く一致するか否かにより判断される。
更に実施形態の配信システムSに参加しているあるノードNnのユーザがコンテンツの取得を所望する場合、そのユーザは所望するコンテンツの所在を配信システムS内にて検索しなければならない。この検索には、各ノードNnに事前に配布されているカタログ情報と、そのユーザがノードNnを用いて参照するウェブページと、が用いられる。
このカタログ情報は、投入サーバSVから例えばマルチキャストにより配布されるものである。カタログ情報には、取得可能なコンテンツ毎に、コンテンツID、コンテンツ名、公開日、有効期限及びキーワード等のコンテンツ属性情報に加えて、実施形態の仮コンテンツIDが登録されている。この仮コンテンツIDについては、後ほど詳述する。
ユーザがコンテンツの取得を所望する場合、そのユーザのノードNnは、そのコンテンツのコンテンツIDをウェブページ及びカタログ情報を参照して取得する。この点については後ほど詳述する。またコンテンツの取得を所望するユーザにより操作されるノードNnを以下「ユーザノード」と称する。
所望するコンテンツのコンテンツIDをカタログ情報等から取得したユーザノードは、コンテンツ所在問合せメッセージを生成する。このコンテンツ所在問合せメッセージは、コンテンツID及びユーザノード自体のIPアドレス等を含む。コンテンツ所在問合せメッセージは、ユーザノードに記憶されたDHTを用いたルーティングテーブルに従って他のノードNnへクエリとして送出される。換言すれば、ユーザノードはコンテンツ所在問合せメッセージをルートノード宛に送出する。これによりコンテンツ所在問合せメッセージは、コンテンツIDをキーとするDHTを用いたルーティングによって最終的にルートノードに到着する。このようなDHTルーティングについても上記特許文献1等で公知であるので、詳しい説明を省略する。
ルートノードはコンテンツ所在問合せメッセージを受信すると、これに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得する。そしてルートノードは、先に受信したコンテンツ所在問合せメッセージの送信元であるユーザノードへインデックス情報を返信する。
この方法でインデックス情報を取得すると、ユーザノードは、取得したインデックス情報に含まれるコンテンツ保持ノードのIPアドレス等に基づいて、そのコンテンツ保持ノードにアクセスする。これによりユーザノードは、アクセスしたコンテンツ保持ノードからコンテンツを取得して再生することが可能になる。
なお他の構成として、ルートノードが、インデックス情報に含まれるIPアドレス等により示されたコンテンツ保持ノードへ、ユーザノードへのコンテンツ送信要求メッセージを送信するように構成することもできる。この場合コンテンツ保持ノードは、コンテンツ送信要求メッセージ基づきユーザノードへアクセスしてコンテンツを送信することになる。
また、実施形態の配信システムSのカタログ情報には、後ほど図4等を用いて詳述するように、コンテンツIDと共に実施形態の仮コンテンツIDが登録されている。実施形態のカタログ情報では、一又は複数のコンテンツIDについて一つの仮コンテンツIDが対応付けられている。
配信システムSにおいてコンテンツの取得を所望するユーザは、ユーザノードを介して実施形態のウェブページにアクセスするが、このウェブページには仮コンテンツIDが記述されている。一方ユーザノードに事前に配布されているカタログ情報には、この仮コンテンツIDと、それに対応付けられるコンテンツIDと、が予め登録されている。そこでユーザノードは、ウェブページを介して取得した仮コンテンツIDに対応付けられているコンテンツIDを、カタログ情報を参照して取得する。そしてユーザノードは、その取得したコンテンツIDを手掛かりとして所望のコンテンツを配信システムS内で検索する。
このような構成の実施形態の配信システムSでは、コンテンツを更新するとき、更新前のコンテンツは書き換えず、更新後のコンテンツを配信システムSに投入する。その後、更新後のコンテンツを検索するべく、各ノードNnにおいて、更新前のコンテンツを検索するためのカタログ情報を、更新後のコンテンツを検索するためのカタログ情報に上書き更新する。この上書き更新後のカタログ情報では、仮コンテンツIDに対する対応付けが、更新前のコンテンツのコンテンツIDから、更新後の新しいコンテンツのコンテンツIDに変更されている。このときウェブページ上の記述は変更されない。ユーザノードは、記述が変更されていないウェブページを介して取得した仮コンテンツIDに対応付けられているコンテンツIDを、上書き更新後のカタログ情報を参照して取得する。このときユーザノードは、新しいカタログ情報において更新後のコンテンツのコンテンツIDを取得することになる。そしてユーザノードは、その取得したコンテンツIDを手掛かりとして、更新のために投入された新しいコンテンツを配信システムS内で検索する。
(B)投入サーバ等の具体的構成及び動作
次に、実施形態の配信システムSに含まれる投入サーバ等の具体的な構成及び動作について、図2から図4を用いて説明する。
先ず、実施形態の投入サーバSVの構成及び概要動作を、図2(a)を用いて説明する。なお図2(a)は実施形態の投入サーバの概要構成を示すブロック図である。
図2(a)に示すように、実施形態の投入サーバSVは、制御部11、記憶部12、暗号化用アクセラレータ13、エンコーダ部14、通信部15及び入力部16を備えている。これらの構成要素は、バス17を介して相互にデータの授受が可能に接続されている。
このとき制御部11は、演算機能を有するCPU、作業用RAM並びに各種データ及びプログラムを記憶するROM等から構成されている。この各種データ及びプログラムには、オペレーティングシステム及び各種アプリケーションが含まれている。また記憶部12は、パケット化されたコンテンツを保存するためのハードディスクドライブ等から構成されている。更に暗号化用アクセラレータ13は暗号鍵を用いてコンテンツを暗号化するために用いられる。
一方エンコーダ部14は、コンテンツを規定のデータ形式へ変換する。また通信部15は、オーバーレイネットワーク9を介してノードNnとの間のコンテンツや各種メッセージの通信制御を行う。更に入力部16は、例えばキーボード又はマウス等からなり、使用者からの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える。
以上の構成において制御部11は、CPUが記憶部12等に記憶されたプログラムを実行することにより投入サーバSV全体を統括制御する。そして制御部11は、後述する実施形態における投入サーバSVとしての各動作を実行する。また記憶部12は、後述する実施形態のカタログ情報を記憶する。この記憶部22は記憶手段の一例に相当する。更に制御部11は、コンテンツの配信システムSへの投入時において、エンコード部14を用いて、記憶部12に記憶保存されたコンテンツのデータ形式を変換する。その後更に制御部11は、暗号鍵を用いて、データ形式が変換されたコンテンツを暗号化用アクセラレータ13により暗号化する。その後制御部11は、暗号化されたコンテンツを所定のデータ量に分割して連続する複数のパケットを生成し、通信部15を介して配信システムS内に投入する。
次に、実施形態のノードNnの構成及び概要動作を、図2(b)を用いて説明する。なお図2(b)は実施形態のノードの概要構成を示すブロック図である。
図2(b)に示すように、実施形態のノード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には、実施形態のノード処理プログラム、コンテンツとしてのファイル、カタログ情報、DHTを用いたルーティングテーブル等が記憶されている。
以上の構成において制御部21は、CPUが記憶部22等に記憶されたノード処理プログラムを読み出して実行することにより、ノードNn全体を統括制御する。具体的には、ノードNnが配信システムSへ参加したのちに制御部21がノード処理プログラムを実行することで、上述したユーザノード、ルートノード又はコンテンツ保持ノード等の少なくともいずれか一つのノードとして機能する。
次に、実施形態の配信システムSにおけるカタログ情報を用いたコンテンツの取得及びその更新等について、図3及び図4を用いて説明する。
実施形態のカタログ情報には、先にも述べたように従来のコンテンツIDやコンテンツ名に加えて、一又は複数のコンテンツIDについて一つの仮コンテンツIDが対応付けられて登録されている。この実施形態のカタログ情報は投入サーバSVにおいて生成され、コンテンツの配信に先立って各ノードNnに配信されて記憶部22に記憶される。
そして、コンテンツの所得を所望するユーザのユーザノードは、後述するように実施形態のウェブページにアクセスし、そのウェブページから仮コンテンツIDを取得する。次にユーザノードは、記憶部22に記憶されているカタログ情報を参照して、その仮コンテンツIDに対応付けられているコンテンツIDを取得する。そしてユーザノードは、取得したコンテンツIDを手掛かりとして、所望のコンテンツを保持するコンテンツ保持ノードを配信システムS内で検索する。これによりユーザノードはコンテンツ保持ノードから所望のコンテンツを取得する。
次に、より具体的に図3及び図4を用いて説明する。なお図3は実施形態の配信システムにおける動作を示すフローチャートである。図4は実施形態のカタログ情報等を例示する図である。また図3においては、配信システムSに含まれるベンダサーバB、投入サーバSV及びユーザノードにおける動作を並列して示している。
図3に示すように、実施形態の配信システムSの動作としては、始めにベンダサーバBからの指示に基づき、投入サーバSVが新たなコンテンツを配信システムSに投入する。この新たなコンテンツのコンテンツ名を「コンテンツ1」とする。即ち、先ずベンダサーバBは、図示しない電源スイッチがオンとされると、図3に示す動作を開始する。
ベンダサーバBは、電源スイッチがオンとされた後、その入力部においてコンテンツ1を新たに投入する旨の操作が為されたか否かを監視する(ステップS1)。そしてその操作が為されないとき(ステップS1;NO)、ベンダサーバBは後述するステップS5の動作に移行する。ステップS1の監視においてコンテンツ1の投入を指示する操作が為されたとき(ステップS1;YES)、ベンダサーバBは、対応するコンテンツ投入指示を投入サーバSVに対して送信する(ステップS2)。このコンテンツ投入指示には、新たに投入するコンテンツ1に対応付けるべき仮コンテンツIDが少なくとも含まれている。またこのコンテンツ投入指示は、例えばネットワーク8を介して投入サーバSVに送信される。これに対しベンダサーバBは、ステップS2の動作においてコンテンツ投入指示を投入サーバSVに送信した後は、投入サーバSVから対応する完了報告が送信されて来るのを監視する(ステップS3)。ステップS3の監視において完了報告が送信されて来ない場合(ステップS3;NO)、ベンダサーバBはそのまま監視を継続する。
一方ステップS3の監視において完了報告が送信されて来た場合(ステップS3;YES)、ベンダサーバBは次に、ステップS3の完了報告を受けて、コンテンツ配信用のウェブページの情報を更新する(ステップS4)。この更新は、新たなコンテンツ1が投入されたことを示すように更新する。このウェブページは、コンテンツ配信を所望するユーザがユーザノードを介して閲覧し、配信を所望するコンテンツを選択するためのウェブページである。このウェブページの記述としては、例えば図4(b)に例示するウェブページWP1内のように、値「X1」の仮コンテンツIDが要素50として含まれている。この値「X1」は、図4(a)に例示するカタログ情報Cに登録されている仮コンテンツID40と同じ値である。
一方投入サーバSVは、図示しない電源スイッチがオンとされると、図3に示す動作を開始する。投入サーバSVの制御部11は、電源スイッチがオンとされた後、ベンダサーバBからのコンテンツ投入指示が送信されて来たか否かを監視する(ステップS11)。そしてコンテンツ投入指示が送信されて来ないとき(ステップS11;NO)、制御部11は後述するステップS16の動作に移行する。一方コンテンツ投入指示が送信されて来たとき(ステップS11;YES)、制御部11は次に、例えば予め記憶部12に記憶されているコンテンツ1に対して、例えば特許文献1に記載されている方法によりコンテンツIDを付与する(ステップS12)。なおこのコンテンツ1自体は、コンテンツ投入指示と共にベンダサーバBから投入サーバSVに供給されても良い。これにより制御部11は、例えば特許文献1に記載されている方法によりオーバーレイネットワーク9を介してそのコンテンツ1を配信システムS内の所定のノードNnに配信する(ステップS13)。
次に制御部11は、投入したコンテンツ1の情報を含むカタログ情報Cを生成し、これを同じくオーバーレイネットワーク9を介して配信システムS内の各ノードNnに配信する(ステップS14)。その後投入サーバSVの制御部11は、コンテンツ1の投入及びこれに対応するカタログ情報Cの配信が完了した旨の完了報告をベンダサーバBに送信する(ステップS15)。
ここで、このカタログ情報Cについて、図4(a)を用いて例示しつつ説明する。
図4(a)に示すように、実施形態のカタログ情報Cには、従来と同様のコンテンツID41等に加えて、各コンテンツID41が夫々対応付けられている仮コンテンツID40が登録されている。例えば図4(a)に例示する場合、新たに投入されたコンテンツ1には、従来と同様のコンテンツID41である「A000001」が付与される。更にこのコンテンツID41に対して「X1」なる値の仮コンテンツID40が対応付けられている。また同様に、別のコンテンツ2には、そのコンテンツID41である「A000002」が付与され、更にこのコンテンツID41に対して「X2」なる値の仮コンテンツID40が対応付けられている。これらの仮コンテンツID40は、ベンダサーバBからの投入指示の際に夫々のコンテンツに対して指定されたものである(ステップS2参照)。この他カタログ情報Cには、従来と同様のコンテンツ名、公開日及び有効期限等のコンテンツ情報も、併せて登録されている。このとき、「公開日」とは、ユーザノードにおいてそのコンテンツが視聴可能である期間の始期を示す日時情報である。また「有効期限」とは、ユーザノードにおいてそのコンテンツが視聴可能である期間の終期を示す日時情報である。
次に図3に戻って、ユーザノードは、図示しない電源スイッチがオンとされると、図3に示す動作を開始する。ユーザノードの制御部21は、電源スイッチがオンとされた後、投入サーバSVにより投入されたコンテンツの全部又は一部をキャッシュとして受信したか否かを判定する(ステップS25)。そして、キャッシュを受信したとき(ステップS25;YES)、制御部21はそのキャッシュを記憶部22に記憶させる(ステップS26)。一方ステップ25の確認においてキャッシュを受信しない場合(ステップS25;NO)、制御部21は後述するステップS27の動作に移行する。次に制御部21は、カタログ情報Cが投入サーバSVから配信されてきたか否かを判定する(ステップS27)。カタログ情報Cが配信されない場合(ステップS27;NO)、制御部21は後述するステップS29の動作に移行する。ステップS27の判定においてカタログ情報Cが配信された場合(ステップS27;YES)、制御部21は配信されたカタログ情報Cを取得して記憶部22に記憶させる(ステップS28)。この時制御部21は、第2識別情報取得手段の一例として機能する。
次にコンテンツ1の取得を所望するユーザのユーザノードの制御部21は、入力部26において、ベンダサーバBにより公開されているウェブページを閲覧する旨の操作が為されたか否かを判定する(ステップS29)。ステップS29の判定において閲覧する旨の操作が為されないとき(ステップS29;NO)、制御部21は後述するステップS32の動作に移行する。一方ステップS29の判定において閲覧する旨の操作が為されたとき(ステップS29;YES)、制御部21は次に、その操作に従ってベンダサーバBにより公開されているウェブページを閲覧する。次に制御部21は、その閲覧しているウェブページにおいて所望のコンテンツを選択すると共に対応する仮コンテンツIDを取得する(ステップS30)。そして制御部21は、取得した仮コンテンツIDを記憶部22内に記憶されているカタログ情報Cに照らし合わせ、対応するコンテンツIDを取得する。図4(a)に例示する場合に制御部21は、その値が「X1」なる仮コンテンツID41がウェブページから取得できるので、これに対応付けられているコンテンツID40として、その値が「A000001」なるコンテンツIDを取得する。そして、その取得したコンテンツIDを用いて、特許文献1に記載されている方法によりコンテンツ1を取得して再生する(ステップS31)。これにより、例えばユーザノードの表示部28には、その値が「A000001」なるコンテンツIDを有するコンテンツ1の画像等が表示される。
その後制御部21は、ユーザノード自体の図示しない電源スイッチがオフとされたか否かを判定する(ステップS32)。ステップS32の判定において電源スイッチがオフとされたとき(ステップS32;YES)、制御部21は実施形態としてのユーザノードの動作を終了する。一方ステップS32の判定において未だ電源スイッチがオフとされないとき(ステップS32;NO)、制御部21は上記ステップS25に移行してそれ以降の動作を継続する。
次に、ベンダサーバBからの指示に基づき、投入済みのコンテンツ1を、新たなコンテンツ4に更新する。
即ちステップS4の動作によりウェブページの情報を更新した後、ベンダサーバBは、その入力部において、投入済みのコンテンツ1を新たなコンテンツ4に更新する旨の操作が為されたか否かを常に監視している(ステップS5)。そしてその操作が為されないとき(ステップS5;NO)、ベンダサーバBは後述するステップS8の動作に移行する。ステップS5の監視においてコンテンツ1のコンテンツ4への更新を指示する操作が為されたとき(ステップS5;YES)、ベンダサーバBは、対応するコンテンツ更新指示を投入サーバSVに対して送信する(ステップS6)。このコンテンツ更新指示には、更新前のコンテンツ1の指定と、更新後のコンテンツ4の指定と、そのコンテンツ4を投入する旨と、が少なくとも含まれている。またこのコンテンツ更新指示は、例えばネットワーク8を介して投入サーバSVに送信される。他方ベンダサーバBは、ステップS6の動作においてコンテンツ更新指示を投入サーバSVに送信した後は、投入サーバSVから対応する完了報告が送信されて来るのを監視する(ステップS7)。ステップS7の監視において完了報告が送信されて来ない場合(ステップS7;NO)、ベンダサーバBはそのまま監視を継続する。一方ステップS7の監視において完了報告が送信されて来た場合(ステップS7;YES)、ベンダサーバBは、ベンダサーバB自体の図示しない電源スイッチがオフとされたか否かを判定する(ステップS8)。ステップS8の判定において電源スイッチがオフとされたとき(ステップS8;YES)、ベンダサーバBは実施形態としての動作を終了する。一方ステップS8の判定において未だ電源スイッチがオフとされないとき(ステップS8;NO)、ベンダサーバBは上記ステップS1に移行してそれ以降の動作を継続する。
一方投入サーバSVの制御部11は、ステップS15の動作として完了報告をベンダサーバBに送信した後、ベンダサーバBからのコンテンツ更新指示が送信されて来たか否かを常に監視している(ステップS16)。この時制御部11は、指示取得手段の一例として機能する。そしてコンテンツ更新指示が送信されて来ないとき(ステップS16;NO)、制御部11は後述するステップS21の動作に移行する。一方コンテンツ更新指示が送信されて来たとき(ステップS16;YES)、制御部11は次に、例えば予め記憶部12に記憶されているコンテンツ4に対して、例えば特許文献1に記載されている方法によりコンテンツIDを付与する(ステップS17)。この新たなコンテンツ4のコンテンツIDの値を、「B000001」とする。また、コンテンツ4自体は、コンテンツ1の場合と同様に、コンテンツ更新指示と共にベンダサーバBから投入サーバSVに供給されても良い。これにより制御部11は、例えば特許文献1に記載されている方法によりオーバーレイネットワーク9を介してそのコンテンツ4を配信システムSに投入する(ステップS18)。
次に制御部11は、投入済みのコンテンツ1を含むカタログ情報Cにおける仮コンテンツIDとコンテンツIDとの関係を、新たなコンテンツ4のコンテンツIDに対応する関係に更新する。この時制御部11は、更新手段の一例として機能する。即ち制御部11は、図4(c)に例示するように、更新前のコンテンツ1に対応付けられていた仮コンテンツID40を、更新後のコンテンツ4のコンテンツID40に対応付けるようにカタログ情報Cを更新する。つまり値が「X1」である仮コンテンツID40の対応付けを、コンテンツ1からコンテンツ4に更新する。この結果、更新されたカタログ情報Cでは、元のコンテンツ1に対応していた仮コンテンツID40自体は無効となる。その後制御部11は、更新後のカタログ情報Cを、オーバーレイネットワーク9を介して配信システムS内の各ノードNnに配信する(ステップS19)。その後制御部11は、コンテンツ4の投入及びこれに対応するカタログ情報Cの配信が完了した旨の完了報告をベンダサーバBに送信する(ステップS20)。その後制御部11は、投入サーバSV自体の電源スイッチがオフとされたか否かを判定する(ステップS21)。ステップS21の判定において電源スイッチがオフとされたとき(ステップS21;YES)、制御部11は実施形態としての投入サーバSVの動作を終了する。一方ステップS21の判定において未だ電源スイッチがオフとされないとき(ステップS21;NO)、制御部11は上記ステップS11に移行してそれ以降の動作を継続する。
次に、ユーザノードの制御部21は、新たなコンテンツ4を取得する動作を実行する。この動作は、制御部21としては上記ステップS29からS31の動作の繰り返しとなる。即ち、ベンダサーバBにおけるコンテンツ配信用のウェブページ内には、これまでと同じ値「X1」の仮コンテンツIDが要素50として含まれたままである(図4(b)参照)。そして、ユーザノードの制御部21は、入力部26における閲覧指示に基づき、ウェブページを閲覧する(ステップS29、S30)。次に制御部21は、その閲覧しているウェブページからその値が「X1」である仮コンテンツIDを再度取得する(ステップS30)。そして制御部21は、取得した仮コンテンツIDを配信されているカタログ情報C(ステップS19参照)に照らし合わせ、対応するコンテンツIDを取得する。図4(c)に例示する場合に制御部21は、ウェブページから取得した値「X1」なる仮コンテンツID41に対応付けられているコンテンツID40として、その値が「B000001」なるコンテンツIDを新たに取得する。そして、その取得したコンテンツIDを用いて、特許文献1に記載されている方法によりコンテンツ4を取得して再生する(ステップS31)。この時制御部21は、コンテンツ取得手段の一例として機能する。これにより、例えばユーザノードの表示部28には、その値が「B000001」なるコンテンツIDを有するコンテンツ4の画像等が表示される。
その後制御部21はステップS32の動作に移行する。
(C)カタログ情報等についての応用例
次に、実施形態のコンテンツ情報Cの応用例について、図5及び図6を用いて説明する。
先ず第一応用例を図5(a)を用いて説明する。なお図5(a)はカタログ情報の第一応用例を例示する図である。実施形態のカタログ情報Cでは、図4(a)及び図4(c)に例示するように仮コンテンツID40とコンテンツID41とは一対一の対応関係とされていた。これを第一応用例では、図5(a)のカタログ情報C1に例示するように、一つの仮コンテンツID40に対して複数のコンテンツID41を対応付ける関係とする。そしてこれら複数のコンテンツID41に対応するコンテンツが、配信システムSに夫々投入されている。これに加えて第一応用例のカタログ情報C1では、各コンテンツ毎に、ユーザノードにおける再生の優先順位を示す優先順位情報42が付与されている。なおこの優先順位情報42が、コンテンツ毎の配信システムSからの取得の優先順位を示しても良い。
このようなカタログ情報C1を取得したユーザノードの制御部21は、一の仮コンテンツID40を取得すると、これに対応付けられている複数のコンテンツID41を取得することができる(図3ステップS31参照)。これにより制御部21は、取得した複数のコンテンツID41に基づいて各コンテンツID41に対応する各コンテンツを配信システムSから取得する(図3ステップS31参照)。そして制御部21は、取得した複数のコンテンツを優先順位情報42により示される優先順位に従って再生する。
次に第二応用例を図5(b)を用いて説明する。なお図5(b)はカタログ情報の第二応用例を例示する図である。第二応用例として、図5(b)のカタログ情報C2に例示するように、第一応用例のカタログ情報C1における優先順位情報42により示される優先順位を、全て同一としてもよい。このようなカタログ情報C2を取得したユーザノードの制御部21は、一の仮コンテンツID40を取得し、更にこれに対応付けられている複数のコンテンツID41を取得する(図3ステップS31参照)。これにより制御部21は、取得した複数のコンテンツID41に基づいて各コンテンツID41に対応する各コンテンツを配信システムSから取得する(図3ステップS31参照)。その制御部21は、取得した複数のコンテンツを例えばランダムに再生する。なおこのとき制御部21は、複数のコンテンツの取得自体をランダムに行っても良い。
更に第三応用例を図6を用いて説明する。なお図6はカタログ情報の第三応用例を例示する図である。第三応用例として、図6のカタログ情報C3に例示するように、第一応用例及び第二応用例における優先順位情報42に代えて、限定情報43を追加するようにしてもよい。この限定情報43は、例えば再生が許可される国及びユーザの年齢並びに再生に必要な通信回線7の回線速度を、各コンテンツ毎に指定するものである。これによりユーザノードの制御部21は、取得したカタログ情報C3の限定情報43の条件がそのユーザノードについて満たされている場合に、その条件に該当するコンテンツを自動で再生する。
より具体的に制御部21は、通信回線7の回線速度を例えば配信システムSへの接続時に確認した接続ネットワーク情報から取得する。更に制御部21は、ユーザの年齢を例えばユーザノードにおけるログイン情報に基づいて確認する。その後制御部21は、コンテンツID41を用いて取得した各コンテンツについて、先に確認した回線速度等を限定情報43と照合し、合致している条件のコンテンツを自動的に再生する。この場合に制御部21は、例えば回線速度によってコンテンツのビットレートを再生するように構成することもできる。より具体的に制御部21は、例えば回線速度が低い場合は低ビットレートでコンテンツを再生し、回線速度が高い場合は高ビットレートでコンテンツを再生する。
次に、第四応用例を説明する。第四応用例として、ユーザノードにおけるカタログ情報Cを用いた再生態様の例を説明する。
第四応用例のカタログ情報では、例えばその値が「X1」である一つの仮コンテンツIDに対して複数のコンテンツIDが対応付けられている。そしてこれら複数のコンテンツIDに対応するコンテンツが、配信システムSに夫々投入されている。
このような第四応用例のカタログ情報を取得したユーザノードの制御部21は、ある仮コンテンツIDに対応付けられている複数のコンテンツIDを取得する(図3ステップS31参照)。これにより制御部21は、取得した複数のコンテンツIDに夫々対応するコンテンツ名を表示部28に選択画面として表示する。ユーザノードのユーザは、この選択画面の中から再生を所望するコンテンツを選ぶ。そしていずれかのコンテンツが選ばれたら、制御部21はその選ばれたコンテンツを取得して再生する。
またこの他に、取得した複数のコンテンツIDに夫々対応するコンテンツを取得し、それらを異なる画面で同時に再生するように構成することもできる。即ち、複数のコンテンツIDに夫々対応するコンテンツに夫々相当する複数の画像等が表示部28において異なる画面として再生される。
以上夫々説明したように、実施形態及び各応用例の配信システムSの動作によれば、投入サーバSVに記憶されているカタログ情報C等の仮コンテンツIDに対応付けられたコンテンツIDを選択指示に基づいて更新する。そしてユーザノードにおいて取得された仮コンテンツIDに対応付けられたコンテンツIDに基づいてユーザノードにおいてコンテンツを取得する。よって、コンテンツIDにより示されるコンテンツが更新されるときには、仮コンテンツIDを介して特定された更新後のコンテンツIDに基づいてユーザノードにおいてコンテンツを取得する。従って、更新されるコンテンツ自体をそのコンテンツ保持ノードにおいて上書き更新することなく、更新後のコンテンツをユーザノードにおいて取得することができる。更に、更新されたコンテンツの情報を記述したウェブページを構成するHTMLのタグを書き換える必要がなく、更新されたコンテンツをユーザノードが容易に取得することができる。
また、第一から第四応用例の場合は、カタログ情報C1等において一の仮コンテンツIDが複数のコンテンツIDに対応付けられている。そして、取得された仮コンテンツIDに対応している複数のコンテンツIDにより夫々識別される複数のコンテンツをユーザノードが取得する。従って、仮コンテンツIDとコンテンツIDとの組み合わせを一対多とすることで、複数のコンテンツの取得を一度の取得動作で実行することができる。
更に、第一応用例の場合は、カタログ情報C1が優先順位情報42を更に含んでいる。そして、取得された仮コンテンツIDに対応付けられた複数のコンテンツIDにより夫々識別される複数のコンテンツを優先順位情報42により示される優先順位に基づいて取得して再生する。従って、複数のコンテンツの取得態様を一度の取得動作で優先順位に対応させて制御することができる。
更にまた、第二応用例の場合は、カタログ情報C2が、優先順位が全て同一とされた優先順位情報42を更に含んでいる。そして、取得された一の仮コンテンツIDに対応付けられている複数のコンテンツIDにより夫々識別されるコンテンツをランダムに再生するので、コンテンツの取得態様を更に多様に制御することができる。
また、第三応用例の場合は、カタログ情報C3が限定情報43を更に含んでいる。そして、取得された仮コンテンツIDに対応付けられた複数のコンテンツIDにより夫々識別される複数のコンテンツの取得が限定情報43により可能とされているとき、そのコンテンツを取得して再生する。従って、複数のコンテンツの取得を一度の取得動作で且つ取得可能な接続環境等を限定した上で実行することができ、コンテンツの取得態様を更に多様に制御することができる。
(II)第一変形形態
次に、本発明を実施するための他の形態である第一変形形態について説明する。なお、第一変形形態の配信システムに含まれる投入サーバ及びノードのハードウエア的な構成は、基本的に実施形態の配信システムSに含まれる投入サーバSV及びノードNnと同様である。よって以下の説明では、実施形態の各部材と同一の部材については、実施形態で用いた符号と同一の符号を用いて示し、細部の説明は省略する。
実施形態のカタログ情報C等は、オーバーレイネットワーク9を介して投入サーバSVから事前に各ノードNnに配布されていた。これに対し、第一変形形態のカタログ情報Cは、各ノードNnに配布されるのではなく投入サーバSVに記憶されている。そしてこのカタログ情報Cを各ノードNnが参照して必要なコンテンツID等を取得する。
即ち第一変形形態のカタログ情報Cには、実施形態の場合と同様に、従来のコンテンツIDやコンテンツ名に加えて、一又は複数のコンテンツIDについて一つの仮コンテンツIDが対応付けられて登録されている。このカタログ情報Cは、投入サーバSVにおいて生成されて記憶されており、これを各ノードNnから参照する。
そして、コンテンツの所得を所望するユーザのユーザノードは、第一変形形態のウェブページにアクセスし、そのウェブページから仮コンテンツIDを取得する。次にユーザノードは、取得した仮コンテンツIDを投入サーバSVのカタログ情報Cに照らし合わせ、その仮コンテンツIDに対応付けられているコンテンツIDを投入サーバSVから取得する。そしてユーザノードは、取得したコンテンツIDを手掛かりとして、所望のコンテンツを保持するコンテンツ保持ノードを配信システムS内で検索してそのコンテンツをコンテンツ保持ノードから取得する。
図3を参照して、実施形態と第1変形形態との違いについて説明する。以下、図3のフローチャートを用いて、実施形態と第1変形形態との違いについてのみ説明する。実施形態の投入サーバSVのステップS14では、制御部11は、投入したコンテンツ1を含むカタログ情報Cを生成し、これを同じくオーバーレイネットワーク9を介して配信システムS内の各ノードNnに配信している。第1変形形態では、ステップS14において制御部11は、生成したカタログ情報Cを配信せず、記憶部12に記憶する。同様に、第1変形形態の投入サーバSVのステップS19でも、制御部11は、生成したカタログ情報Cを配信せず、記憶部12に記憶する。
また、実施形態のユーザノードのステップS27及びステップS28では、制御部21は、配信されたカタログ情報Cを取得して記憶部22に記憶させている。第1変形形態では、ステップS28のカタログ情報Cの取得処理が実行されない。その代わりに、ステップS29でページ参照指示があったことに基づいて、ステップS31で、投入サーバSVの記憶部22に記憶されるカタログ情報Cを参照する。また、第1変形形態のステップS31で制御部21が、取得した仮コンテンツIDに基づき、その仮コンテンツIDに対応するコンテンツIDの取得を要求する旨の取得要求メッセージを投入サーバSVに送信しても良い。この取得要求メッセージには、ステップS30の動作で取得した仮コンテンツIDが含まれている。
一方、投入サーバSVの制御部11は、取得要求メッセージに含まれている仮コンテンツIDに対応するコンテンツIDを取得する。より具体的に制御部11は、取得要求メッセージに含まれている仮コンテンツIDを記憶部12内に記憶されているカタログ情報Cに照らし合わせて対応するコンテンツIDを取得する。その後制御部11は、取得したコンテンツIDを取得要求メッセージを送信して来たユーザノードに送信する。これによりユーザノードの制御部21は、送信されて来たコンテンツIDを用いて、特許文献1に記載されている方法によりコンテンツ1を取得して再生する。
以上説明したように、第一変形形態の配信システムの動作によっても、実施形態の配信システムSと同様の効果が得られる。
これに加えて第一変形形態の配信システムでは、各ノードNnにカタログ情報Cを記憶させておく必要がない。よって、カタログ情報Cのデータ量が大きくなった場合においては、各ノードNnにおける記憶領域を節約できることになる。
(III)第二変形形態
次に、本発明を実施するための更に他の形態である第二変形形態について、図7から図9を用いて説明する。なお、第二変形形態の配信システムに含まれる投入サーバ及びノードのハードウエア的な構成は、基本的に実施形態の配信システムSに含まれる投入サーバSV及びノードNnと同様である。よって以下の説明では、実施形態の各部材と同一の部材については、実施形態で用いた符号と同一の符号を用いて示し、細部の説明は省略する。
実施形態や第一変形形態のカタログ情報C等は、それ自体が一つのファイルとして、実施形態の場合はオーバーレイネットワーク9を介して配布される。また第一変形形態の場合は、カタログ情報C等は、投入サーバSV内に記憶されていた。これに対し、第二変形形態のカタログ情報Cは、いわゆる分散カタログ情報として、P2P型のネットワークシステムにおけるコンテンツと同様に、各ノードNnに分散して保存されている。
具体的に図7を用いて説明する。なお、図7は第二変形形態のコンテンツ取得を概念的に示す図である。
図7に例示するように、第二変形形態のカタログ情報Cには、実施形態及び第一変形形態の場合と同様に、従来のコンテンツID等に加えて、一又は複数のコンテンツIDについて一つの仮コンテンツIDが対応付けられて登録されている。第二変形形態では、図7(a)に例示するように、カタログ情報CにおけるコンテンツIDと仮コンテンツIDとが、いわゆる葉ページ情報としての分散カタログ情報CAからCGのいずれかに記述されている。またコンテンツIDと仮コンテンツIDとは、夫々別個の一カタログレコードとして記述されている。このカタログレコードのことを、以下「レコード」と称する。
そして図7(b)左に例示するように、例えば分散カタログ情報CCに記述された仮コンテンツIDを含むレコードには、この仮コンテンツID40に対応付けられているコンテンツID41がポインタ情報Pとして記述されている。このポインタ情報Pにより示されるコンテンツID41自体は、例えば図7(b)右に例示するように分散カタログ情報CCとは別の分散カタログ情報CG内に一レコードとして記述されている。
第二変形形態においてコンテンツの取得を所望するユーザのユーザノードは、後述するように第二変形形態のウェブページにアクセスし、そのウェブページから仮コンテンツIDを取得する。次にユーザノードは、取得した仮コンテンツIDに基づいてこの仮コンテンツIDが記述されている分散カタログ情報を、配信システムS内で検索する。この分散カタログ情報の検索方法については、後ほど具体的に説明する。所望の分散カタログ情報が検索されたら、ユーザノードはその分散カタログ情報内の該当するレコードから、対応するコンテンツID41を示すポインタ情報Pを取得する。これによりユーザノードは取得したポインタ情報PがコンテンツIDとして記述されている分散カタログ情報を、配信システムS内において検索する。この分散カタログ情報の検索方法についても、後ほど具体的に説明する。
そして、所望の分散カタログ情報が検索されたら、ユーザノードはその分散カタログ情報に記述されているコンテンツID41を手掛かりとして、所望のコンテンツを保持するコンテンツ保持ノードを配信システムS内で検索する。その後ユーザノードは、その検索したコンテンツをコンテンツ保持ノードから取得する。
次に、第二変形形態の分散カタログ情報を含むカタログ情報Cについて、その概要を図8を用いて説明する。なお図8は第二変形形態の分散カタログ情報を概念的に示す図である。
第二変形形態のカタログ情報Cは、実施形態及び第一変形形態の場合と同様に、コンテンツの属性情報を一覧として管理するための情報である。この属性情報の内容はレコードに格納される。またカタログ情報は、検索キーから一意にコンテンツを特定することができる情報である。
ここで「コンテンツを特定することができる」とは、コンテンツのレコードを探し出すことができることを意味する。検索キーとしては、例えば、対応するレコードやコンテンツ名を共通のハッシュ関数によりハッシュ化した値が用いられる。或いは、検索キーは、コンテンツIDやコンテンツ名等であっても良い。
第二変形形態のカタログ情報は、コンテンツの属性情報の改竄を防止するため、及びコンテンツの検索を効率的に行う目的で、図8に示す探索木の構造を有して各ノードNnに分散して保存されている。この各ノードNnに分散して保存されているカタログ情報の各々が分散カタログ情報となる。
即ち図8に示すように、カタログ情報は、木構造における根に位置するルートページ情報から葉に位置する葉ページ情報にかけて、各ページ情報が関連付けられて構成されている。直接関連付けられているページ情報同士は、親子関係を形成している。或るページ情報Xに対してページ情報Yが関連付けられているとする。つまり、ページ情報Xとページ情報Yとで親子関係を形成している。ページ情報Xとページ情報Yとのうち、ページ情報Xの方がルートページ情報からの距離が短い場合、ページ情報Xは、ページ情報Yから見て親に位置する親のページ情報となる。そして、ページ情報Yは、ページ情報Xから見て子に位置する子のページ情報となる。ここで、ルートページ情報からの距離とは、木構造において、根の位置から注目する節点に辿るまでのリンク数に相当する長さである。換言すると、ルートページ情報からの距離とは、ルートページ情報から関連付けを辿って注目するページ情報に至るまでに、注目するページ情報を含めて通過するページ情報の数に相当する。なお、以降の説明においては、親のページ情報を親ページ情報といい、子のページ情報を子ページ情報という。
親ページ情報と子ページ情報との関連付けは、リンク情報に示される。リンク情報は親ページ情報に格納される情報であり、子ページ情報を指す情報である。このリンク情報は、子ページ情報のページ番号と、子ページ情報の改竄をチェックするためのメッセージダイジェストとを含む。
ページ番号は、ページ情報に固有に割り当てられたシリアル番号である。リンク情報が指すページ情報というときは、リンク情報に含まれるページ番号が割り当てられているページ情報を意味する。また詳細は後述するが、或るページ情報が更新される場合にはこのページ情報に対して新たなページ番号が割り当てられる。ここで、第二変形形態におけるページ情報の更新とは、元のページ情報の内容が更新されたページ情報を、元のページ情報とは別個のページ情報として新たに作成することを意味する。実際、ページ番号は、例えば、ページ情報がRAMに格納される際の格納アドレスに対応したり、ページ情報の格納位置を示すポインタの格納アドレスであったりする。また、ページ情報がファイルとして保存される際には、ページ番号はファイル名に対応したりする。
メッセージダイジェストは、リンク情報が指す子ページ情報又はリンク情報が指す子ページ情報に格納されているレコードの改竄をチェックするための情報である。また、メッセージダイジェストは、改竄をチェックする対象を共通のハッシュ関数によりハッシュ化した値である。
カタログ情報は、更にルートリンク情報を有する(図8符号100参照)。以降第二変形形態において「符号」と言うときは、図8に記載されている符号を指す。ルートリンク情報には、ルートページ情報へのリンク情報が格納される(符号1001)。そしてこのリンク情報は、ルートページ情報のページ番号(符号1002)及びメッセージダイジェスト(符号1003)を含む。またルートリンク情報には、電子署名が格納される(符号1004)。電子署名は、ルートリンク情報の改竄をチェックするための情報である。電子署名には、例えば、署名値、証明書情報等の情報が含まれている。
ページ情報は、大別して節ページ情報(符号200)と葉ページ情報(符号300)とがある。
節ページ情報は、一つ以上の子ページ情報を持つ。節ページ情報には、セルフリンク情報(符号2001)、子ページ情報へのリンク情報(符号2004)及びインデックス(符号2007)が格納される。セルフリンク情報は、このセルフリンク情報が格納されている節ページ情報自身へのリンク情報である。つまり、セルフリンク情報は、節ページ情報のページ番号(符号2002)及びメッセージダイジェスト(符号2003)を含む。よって、セルフリンク情報は、節ページ情報の親ページ情報に格納されているこの節ページ情報へのリンク情報と同一内容となる。
子ページ情報へのリンク情報は、子ページ情報のページ番号(符号2006)及びメッセージダイジェスト(符号2005)を含む。なお、節ページ情報において、単にリンク情報というときは、セルフリンク情報ではなく、子ページ情報へのリンク情報を意味するものとする。節ページ情報にはリンク情報を複数格納することができる。一つあたりの節ページ情報に格納可能なリンク情報の最大数は、カタログ情報の木構造としての次数に一致する。この次数は、一つの親が持ちうる子の最大数を意味する。つまり、次数は、n分探索木のnの値に該当する。
インデックスは、探索木の節点が持つ値、キー等と呼ばれている情報と同じ役割を持つ。このインデックスは、コンテンツのレコードが格納されているページ情報を、検索キーを用いて探索するための情報である。なお、図8に示すインデックスは、便宜上十進数で示されている。
カタログ情報の木構造は、順序性を有している。従って、節ページ情報に格納されているインデックスは、例えばその値の小さい順に配列されている。そしてリンク情報は、インデックスに対応した順序で配列されている。例えば、1番目のリンク情報は、1番目のインデックスの値以下の範囲インデックスが格納される子ページ情報への関連付けを示す。また例えば、2番目のリンク情報は、1番目のインデックスの値より大きく且つ2番目のインデックスの値以下の範囲のインデックスが格納される子ページ情報への関連付けを示す。或る節ページ情報に現在k個のリンク情報が格納されている場合、この節ページ情報にはk−1個のインデックスが格納されている。
葉ページ情報は、上述したように、探索木における葉に位置するページ情報である。つまり、葉ページ情報は、子ページ情報を持たない。葉ページ情報には、セルフリンク情報(符号3001)、レコード(符号3004)及びインデックス(符号3005)が格納される。セルフリンク情報は、このセルフリンク情報が格納されている葉ページ情報自身へのリンク情報である。つまり、セルフリンク情報は、葉ページ情報のページ番号(符号3002)及びメッセージダイジェスト(符号3003)を含む。よって、セルフリンク情報は、葉ページ情報の親ページ情報に格納されているこの葉ページ情報へのリンク情報と同一内容となる。
レコードとインデックスとは、一対一に対応付けられている。対応付けられているレコードとインデックスとの組は、葉ページ情報に1組又は複数組格納される。一つのレコードには、一つまたは複数のコンテンツの属性情報が設定される。例えば、レコードには、コンテンツID、コンテンツの公開開始日時、公開終了日時、コンテンツ名、キーワード等が設定される。第二変形形態では、一レコード上に仮コンテンツID及びポインタ情報Pが記述されている場合と、一レコード上にコンテンツIDが記述されている場合の二通りがある。また図7(a)に例示した、第二変形形態の各ノードNnに記憶されている分散カタログ情報CAからCGの夫々が、図8に例示する葉ページ情報の各々に該当する。
またインデックスは、対応するレコードを一意に特定するための情報である。葉ページ情報のインデックスとして用いられる情報の種類は、節ページ情報のインデックスとして用いられる情報の種類と同じである。このインデックスとして、コンテンツIDやコンテンツ名等が用いられる場合、この情報は、レコードの設定内容に含める必要はない。
第二変形形態では、仮コンテンツID及びコンテンツIDの各々を上記インデックスとして、各ページ情報が記述されている。また仮コンテンツID及びコンテンツIDは、ノードNnのノードIDを生成する際に用いられるハッシュ関数と同じハッシュ関数を用いて生成されている。更に、各ノードNnには、そのノードIDの値に近い値のインデックスを含む葉ページ情報が記憶されているものとする。
次に、図7で示した動作をより具体的に図9を用いて説明する。なお図9は第二変形形態の配信システムにおける動作を示すフローチャートである。図9においては、第二変形形態の配信システムSに含まれるベンダサーバB、投入サーバSV及びユーザノードにおける動作を並列して示している。更に図9において、図3で示した実施形態の動作と異なる部分について説明する。
ステップS1の監視においてコンテンツ1の投入を指示する操作が為されたとき(ステップS1;YES)、ベンダサーバBは、対応するコンテンツ投入指示を投入サーバSVに対して送信する(ステップS55)。このコンテンツ投入指示には、新たに投入するコンテンツ1を示す情報のみが含まれており、実施形態のように仮コンテンツIDは含まれていない。またこのコンテンツ投入指示は、例えばネットワーク8を介して投入サーバSVに送信される。
次にコンテンツ投入指示を受けた投入サーバSVの制御部11は、例えば予め記憶部12に記憶されているコンテンツ1に対して仮コンテンツIDを付与する(ステップS60)。更に制御部11は、実施形態のステップS12及びS13と同様の動作を実行し、コンテンツIDを付与してコンテンツ1を配信システムSに投入する。
次に制御部11は、カタログ情報Cに仮コンテンツID40のレコードを追加する(ステップS61)。更に制御部11は、追加されたレコードに、その仮コンテンツID40に対応付けられているコンテンツID41をポインタ情報Pとして記述する(図7(b)左参照。ステップS62)。更に制御部11は、カタログ情報CにコンテンツID41としてのレコードを更に追加する(図7(b)右参照)。その後制御部11は、各レコードが追加されたカタログ情報Cを、オーバーレイネットワーク9を介して配信システムSに投入する(ステップS63)。
次にコンテンツIDが付与されたコンテンツ1が配信システムS内に配信されると、ユーザノードの制御部21は、カタログ情報Cが投入サーバSVから配信されてきたか否かを判定する(ステップS75)。カタログ情報Cが配信されない場合(ステップS75;NO)、制御部21はステップS29の動作に移行する。ステップS75の判定においてカタログ情報Cが配信された場合(ステップS75;YES)、制御部21は次に、対応する分散カタログ情報を取得して記憶部22に記憶させる(ステップS76)。
次にコンテンツ1の取得を所望するユーザのユーザノードの制御部21は、実施形態のステップS29と同様の動作を実行する。そして制御部21はベンダサーバBにより公開されているウェブページにおいて所望のコンテンツを選択すると共に対応する仮コンテンツIDを取得する。そして制御部21は、取得した仮コンテンツIDに基づき、その仮コンテンツIDが記述されている分散カタログ情報である葉ページ情報を配信システムS内で検索して取得する(ステップS77)。この時制御部21は、第2識別情報検索手段の一例として機能する。
ここで、ステップS77における分散カタログ情報の検索動作について、具体的に説明する。このステップS77としては、図8に例示したページ情報における親子間の関連付けを辿って、最終的に所望する葉ページ情報としての分散カタログ情報を検索する。なお以下の説明において、「ページ情報」と言う場合は、図8に例示する「節ページ情報」と「葉ページ情報」の双方を含むものとする。
即ち、ステップS77の動作としてユーザノードの制御部21は、最初に、その仮コンテンツIDが記述されている葉ページ情報がそのユーザノードの記憶部22に記憶されているか否かを確認する。そして制御部21は、その葉ページ情報が記憶されている場合にはそれを取得する。この場合の葉ページ情報は、例えば図7(b)左に例示する分散カタログ情報CCである。
一方、ユーザノードにその葉ページ情報が記憶されていなかった場合、制御部21は、仮コンテンツIDを上記検索キーとして、その仮コンテンツID及び所望するページ情報のページ番号を含むクエリを配信システムSに送信する。このクエリは、その仮コンテンツIDが記述されているレコードを含む葉ページ情報を検索する旨のクエリである。
ここで、上述したように第二変形形態では、各ページ情報におけるインデックスが仮コンテンツID又はコンテンツIDとされている。また仮コンテンツID及びコンテンツIDは各ノードNnのノードIDを生成した際に用いたハッシュ関数と同じハッシュ関数を用いて生成されている。よってこのクエリは、各ノードNnに記憶されているルーティングテーブルに基づき、仮コンテンツIDにより近いノードIDのノードNnに転送される。
次に、そのクエリの転送を受けたノードNnは、そのクエリに含まれているページ番号が記述されているページ情報がそのノードNnの記憶部22に記憶されているか否かを確認する。そしてそのノードNnの制御部21は、そのページ情報がそのノードNnの記憶部22に記憶されている場合には、クエリを送信したユーザノードにそのページ情報を返信する。これによりユーザノードは所望するページ情報を取得できる。一方、そのノードNnの記憶部22にそのページ情報が記憶されていなかった場合、そのノードNnの制御部21は、受信したクエリをそのノードNnが記憶しているルーティングテーブルを用いて転送する。この転送の結果、最終的に所望の葉ページ情報を記憶しているノードNnにそのクエリが到達する。そしてユーザノードの制御部21は、そのクエリが到達したノードNnから、所望の葉ページ情報を取得する。
次に制御部21は、葉ページ情報として取得した分散カタログ情報CCのレコード内に記述されているポインタ情報P(図7(b)左参照)としてのコンテンツID41を取得する(ステップS78)。そして制御部21は、取得したコンテンツID41を検索キーとして、このコンテンツID41が記述されている分散カタログ情報を配信システムS内で検索する(ステップS79)。この時制御部21は、第1識別情報検索手段の一例として機能する。このコンテンツID41が記述されている分散カタログ情報の検索(ステップS79)は、検索キーがコンテンツID41に換わる他は、仮コンテンツID40を検索キーとするステップS77の動作と同様に実行される。この時検索される葉ページ情報である分散カタログ情報は、例えば図7(b)右に例示する分散カタログ情報CGである。
その後制御部21は、検索された分散カタログ情報CGに記述されているコンテンツIDを用いて、特許文献1に記載されている方法によりそのコンテンツIDのコンテンツを取得する。また制御部21は、検索された分散カタログ情報CGからコンテンツ1の再生等に必要な情報を取得する。これらにより制御部21は、分散カタログ情報CGに記述されている情報を用いて、コンテンツ1を再生する(ステップS80)。その後制御部21はステップS32と同様の動作を実行する。
次に、ベンダサーバBからの指示に基づき、投入済みのコンテンツ1を、新たなコンテンツ4に更新する。
即ち、ベンダサーバBにおいて、実施形態のステップS5及びS6と同様の動作を実行する。また投入サーバSVの制御部11は、実施形態のステップS16と同様の動作を実行する。そしてステップS16のコンテンツ更新指示が送信されて来たとき(ステップS16;YES)、制御部11は次に、そのコンテンツ更新指示に示されている新たなコンテンツ4が既に配信システムS内に投入済みのコンテンツか否かを判定する(ステップS64)。このステップS64の判定動作は、例えば投入サーバSVの記憶部12に記憶されている投入履歴を参照すること等により実行される。ステップS64の判定においてコンテンツ4が既に投入済みのコンテンツである場合(ステップS64;YES)、制御部11は後述するステップS69の動作に移行する。一方ステップS64の判定においてコンテンツ4が未投入のコンテンツであった場合(ステップS64;NO)、制御部11は次に、ステップS60と同様にして新規投入のコンテンツ4に対して仮コンテンツIDを付与する(ステップS65)。更に制御部11は実施形態のステップS17及びS18と同様の動作を実行し、コンテンツIDを付与してコンテンツ4を配信システムSに投入する。
次に制御部11は、コンテンツ4に対して付与された仮コンテンツID40のレコードを、ステップS61と同様にしてカタログ情報Cに追加する(ステップS66)。次に制御部11は、追加されたレコードに、その仮コンテンツID40に対応付けられているコンテンツ4のコンテンツID41をポインタ情報Pとして記述する(図7(b)左参照。ステップS67)。更に制御部11は、カタログ情報CにコンテンツID41としてのレコードを、ステップS63と同様にして追加する(ステップS68)。
次に制御部11は、元のコンテンツ1の仮コンテンツID40が記述されているレコード内のコンテンツIDを、コンテンツ1のコンテンツIDからコンテンツ4のコンテンツIDに変更する(ステップS69)。その制御部11は、レコードが追加及び変更されたカタログ情報Cを、オーバーレイネットワーク9を介して配信システムSに投入する(ステップS70)。
次にコンテンツIDが付与されたコンテンツ4が配信システムS内に配信されると、ユーザノードの制御部21は新たなコンテンツ4を取得する動作を実行する。この動作は、制御部21としては上記ステップS29及びS77からS80の動作の繰り返しとなる。即ち、ユーザノードの制御部21は、ステップS29と同様の動作を実行し、再度閲覧したウェブページにおいてその値が「X1」である仮コンテンツIDを取得する。そして制御部21は、取得した仮コンテンツIDに基づき、ステップS77と同様の動作を実行して仮コンテンツIDが記述されている分散カタログ情報を検索する。この時制御部21は、第2識別情報検索手段の一例として機能する。
次に制御部21はステップS78と同様の動作を実行して、コンテンツIDを取得する。そして制御部21は、取得したコンテンツIDを検索キーとしてステップS79と同様の動作を実行する。この時制御部21は、第1識別情報検索手段の一例として機能する。このコンテンツIDが記述されている分散カタログ情報の検索は、検索キーがコンテンツIDに換わる他は、仮コンテンツIDを検索キーとするステップS77の動作と同様に実行される。
その後制御部21はステップS80と同様の動作を実行して、検索された分散カタログ情報CGに記述されている情報を用いて、更新後のコンテンツ4を取得して再生する。その後制御部21はステップS32の動作に移行する。
以上説明したように、第二変形形態の配信システムの動作によっても、実施形態の配信システムSと同様の効果が得られる。
これに加えて第二変形形態の配信システムでは、コンテンツID41が葉ページ情報内に記述されており、仮コンテンツID40とポインタ情報Pとが別のページ情報群における葉ページ情報内に記述されている。これにより、その仮コンテンツID40と共に記述されているポインタ情報Pにより示されているコンテンツID41を用いてコンテンツID41が記述されている葉ページ情報を検索する。そして、検索された葉ページ情報内の情報を用いてコンテンツを取得する。従って、秘匿性等の特徴を備える木構造のページ情報群を用いて各コンテンツID等を配信システムS内で保有することができる。
なお、上記実施形態及び各変形形態の配信システムS等はDHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
また、図3又は図9に夫々示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバからダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して各実施形態におけるサーバSVの制御部11やノードNnの制御部21に読み込まれて実行されるようにしても良い。