次に、本発明を実施するための形態について、図面を用いて説明する。以下に説明する各実施形態は、P2Pシステムを用いてノードに動画等のコンテンツを配信する配信システムに対して本発明を適用した場合の実施形態である。各実施形態の配信システムでは、複合コンテンツを構成する各コンテンツが各ノードに配信される。
(I)第1実施形態
本発明の第1実施形態について、図1から図4を用いて説明する。
(A)配信システムの全体構成および動作概要
初めに、第1実施形態の配信システムの全体構成および動作概要について、図1を用いて説明する。なお図1は第1実施形態の配信システムにおける各ノードの接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)装置4、DSL(Digital Subscriber Line)回線事業者装置5、FTTH(Fiber To The Home)回線事業者装置6並びに通信回線7等によって、インターネット等のネットワーク8が構築されている。このネットワーク8は現実世界の物理的な通信ネットワークである。通信回線7は具体的には電話回線や光ケーブル等により構成されている。なお図1の例におけるネットワーク8には、パケット化されたデータを転送するためのルータが適宜挿入されているが、図1ではその図示を省略している。
実施形態のネットワーク8には、複数のノードNn(n=1、2、3、…)が接続されている。各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。このノードNnは「ノード装置」の一例に相当する。
実施形態の配信システムSは、上述したようにP2Pシステムである。配信システムSには、複数のノードNnと、各ノードNnからネットワーク8を介してアクセス可能な投入サーバSVが含まれている。この投入サーバSVは「情報処理装置」の一例に相当する。投入サーバSVは、配信システムS内にコンテンツを投入するサーバである。コンテンツの投入とは、後述するオーバーレイネットワーク9に参加している一つ以上のノードNnに、新たなコンテンツを保存させることをいう。
図1の上部枠100内に示すネットワークは、既存のネットワーク8を用いて形成された、仮想的なリンクを構成するオーバーレイネットワーク9である。このオーバーレイネットワーク9は論理的なネットワークである。オーバーレイネットワーク9は、特定のアルゴリズム、例えば上記DHTを利用したアルゴリズムにより実現される。オーバーレイネットワーク9に参加している各ノードNnには、所定の桁数からなる固有の識別データがノードIDとして割り当てられている。また各ノードNnは、DHTを用いたルーティングテーブルをそれぞれに保持している。このようなDHTを用いたルーティングテーブルについては、上記特許文献1等で公知であるので、詳しい説明を省略する。
また配信システムSにおいては、動画等のコンテンツが、所定のファイル形式で複数のノードNnに分散して保存されている。これらのコンテンツには、それぞれ、コンテンツ名およびコンテンツID等の情報が付与されている。コンテンツに付与されるコンテンツIDは、コンテンツ毎に固有の識別データである。またコンテンツIDは、対応するコンテンツが保存されているノードNnの所在を配信システムS内において検索するための検索情報でもある。
一方、配信システムSでは、分散保存されているコンテンツの所在を示す情報と、コンテンツのコンテンツID等と、の組が含まれるインデックス情報が用いられる。このときのコンテンツの所在を示す情報とは、例えばそのコンテンツの保持ノードであるノードNnのノード情報である。ノード情報には、ノードNnのノードID、IPアドレスおよびポート番号等が含まれる。インデックス情報は、コンテンツの所在を管理しているノードNn等により、そのインデックスキャッシュに記憶、管理が為される。このコンテンツの所在を管理しているノードNnを以下「ルートノード」と称する。ルートノードは、例えばコンテンツIDと最も近いノードIDを有するノードNnであるように定められる。このときコンテンツIDと最も近いか否かは、例えば上位桁がより多く一致するか否かにより判断される。
さらに実施形態の配信システムSに参加しているあるノードNnのユーザがコンテンツの取得を所望するとする。コンテンツの取得を所望するユーザにより操作されるノードNnを、以下「ユーザノード」と称する。ユーザがコンテンツの取得を所望する場合、そのユーザのユーザノードは、そのコンテンツのコンテンツIDを、例えば所定のサーバから取得したコンテンツ配信ページまたはカタログ情報を参照して取得する。コンテンツ配信ページは、コンテンツIDが記述されたウェブページである。コンテンツ配信ページを配信するサーバとしては、例えば、コンテンツの投入指示を行う投入指示者により操作される指示者サーバがある。一方、カタログ情報とは、コンテンツのレコードが記述された情報である。コンテンツのレコードには、コンテンツのコンテンツID、コンテンツ名およびキーワード等が記述されている。コンテンツのレコードは、コンテンツが配信システムS内に投入される際に生成される。そして、生成されたレコードを含むカタログ情報はたとえばコンテンツ管理サーバから各ノードNnに配信される。
所望するコンテンツのコンテンツIDを取得したユーザノードは、このコンテンツIDに基づいて、コンテンツIDにより識別されるコンテンツをオーバーレイネットワーク9から取得する。具体的には、ユーザノードは、コンテンツ所在問合せメッセージを生成する。このコンテンツ所在問合せメッセージは、コンテンツIDおよびユーザノード自体のIPアドレス等を含む。コンテンツ所在問合せメッセージは、ユーザノードに記憶されたDHTを用いたルーティングテーブルに従って他のノードNnへクエリとして送信される。すなわちユーザノードは、コンテンツ所在問合せメッセージをルートノード宛に送信する。これによりコンテンツ所在問合せメッセージは、コンテンツIDをキーとするDHTを用いたルーティングによって、最終的にルートノードに到着する。このようなDHTルーティングについても上記特許文献1等で公知であるので、詳しい説明を省略する。
コンテンツ所在問合せメッセージを受信したルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得する。そしてルートノードは、先に受信したコンテンツ所在問合せメッセージの送信元であるユーザノードへインデックス情報を返信する。この方法でインデックス情報を取得すると、ユーザノードは、取得したインデックス情報に含まれる保持ノードのIPアドレス等に基づいて、その保持ノードにアクセスする。これによりユーザノードは、アクセスした保持ノードからコンテンツIDにより識別されるコンテンツを、オーバーレイネットワーク9を介して取得して再生することが可能になる。
なお他の構成として、ルートノードが保持ノードへ、ユーザノードへのコンテンツ送信要求メッセージを送信するように構成することもできる。この場合の保持ノードは、インデックス情報に含まれるIPアドレス等により示された保持ノードである。このとき保持ノードは、コンテンツ送信要求メッセージに基づき、そのユーザノードへアクセスしてコンテンツを送信する。
以上のように、ユーザノードが保持ノードから単体で独立して利用可能なコンテンツを一般コンテンツという。更に、第1実施形態の配信システムSにおいてユーザノードは、所定の構造で関連付けられた複数のコンテンツから構成される複合コンテンツを利用可能になっている。複合コンテンツを構成する各コンテンツは、一般コンテンツと同様、配信システムSに分散保存されている。そして、ユーザノードは、複合コンテンツを構成する各コンテンツのコンテンツIDに基づいて、各コンテンツIDにより識別される各コンテンツを、オーバーレイネットワーク9を介して保持ノードから取得する。こうして取得された各コンテンツにより、複合コンテンツがユーザノードにおいて纏まって再生可能となる。
また、複合コンテンツを構成する各コンテンツのコンテンツIDは、複合コンテンツのインデックスファイルに記述されている。複合コンテンツのインデックスファイルとは、複合コンテンツを構成する各コンテンツを検索するためのファイルである。複合コンテンツのインデックスファイルには、複合コンテンツが有する所定の構造における各コンテンツの位置を示す位置情報が、そのコンテンツを識別するコンテンツIDに対応付けられて記述されている。更に、複合コンテンツのインデックスファイルには、このインデックスファイルを識別するための固有のコンテンツIDが付与される。そして、複合コンテンツのインデックスファイルは、一つのコンテンツとして配信システムSに投入される。これにより、各ノードは、投入されたインデックスファイルのコンテンツIDに基づいて、このコンテンツIDにより識別されるインデックスファイルを、オーバーレイネットワーク9から取得することができる。「オーバーレイネットワーク9から取得」とは、オーバーレイネットワーク9を介して保持ノードからダウンロードすることを意味する。
(B)複合コンテンツの構造等
次に、実施形態の複合コンテンツの構造等について、図2(a)および図2(b)を用いて具体的に説明する。図2(a)および図2(b)は実施形態の複合コンテンツの構造等を例示する図である。
実施形態の複合コンテンツが有する所定の構造は、たとえば図2(a)に例示する階層構造SRである。なおここでは、複合コンテンツの一例として、ウェブページを適用して説明する。ウェブページは、HTML文書ファイルおよび画像ファイル等から構成されるものである。階層構造SRは実施形態の複合コンテンツとしてのウェブページをユーザノードにおいて表示するための階層構造である。階層構造SRには、名称が「index.html」であるメインコンテンツMと、名称がそれぞれ「image1.gif」および「image2.gif」である二つのサブコンテンツS1およびS2と、が階層的に含まれている。このメインコンテンツMは、各サブコンテンツS1およびS2をユーザノードにおいて取得して、対応するウェブページを表示させるために用いられるコンテンツである。このためメインコンテンツMには、図2(a)に実線矢印で示すように各サブコンテンツS1およびS2の名称と、それらの階層構造SRにおける位置を示す位置情報と、が記述されている。
そして、複合コンテンツとしてのウェブページのインデックスファイルIFには、図2(a)で示した階層構造SRを示す位置情報が、メインコンテンツMならびにサブコンテンツS1およびS2それぞれの名称を示す名称情報と共に記述されている。すなわち図2(a)に例示するインデックスファイルIFでは、メインコンテンツMについては、階層構造SRに対応した位置情報および名称情報が「/index.html」と記述されている。メインコンテンツMについての記述「/index.html」においては、「/」が位置情報である。また「index.html」が名称情報である。またサブコンテンツS1については、階層構造SRに対応した位置情報および名称情報が「/pie/image1.gif」と記述されている。サブコンテンツS1についての記述「/pie/image1.gif」においては、「/pie/」が位置情報である。また「image1.gif」が名称情報である。さらにサブコンテンツS2については、階層構造SRに対応した位置情報および名称情報が「/bar/image2.gif」と記述されている。サブコンテンツS2についての記述「/bar/image2.gif」においては、「/bar/」が位置情報である。また「image2.gif」が名称情報である。なおインデックスファイルIFには、これらに加えて、図2(a)に例示するようにメインコンテンツMならびにサブコンテンツS1およびS2それぞれを識別するためのコンテンツIDが記述されている。図2(a)に示す例では、メインコンテンツMならびにサブコンテンツS1およびS2に対して、それぞれコンテンツID「AAAAA」、「BBBBB」および「CCCCC」が付与されている。また、複合コンテンツの階層構造SR等の構造に対応した位置情報は、「/」や「/pie/」等には限定されず、複合コンテンツの構造における位置を示すものであれば、どのようなものであってもよい。
さらに、第1実施形態の複合コンテンツの階層構造の他の例として、複数のフォルダにより構成される階層構造が挙げられる。たとえば図2(b)に例示する階層構造SR2では、第1フォルダFD1を最上位として、第2フォルダFD2と第3フォルダFD3とがその直近下位の階層に位置した構造となっている。また第3フォルダFD3の直近下位には、第4フォルダFD4、第6フォルダFD6および第7フォルダFD7が位置した構造となっている。さらに第4フォルダFD4の直近下位には、第5フォルダFD5が位置した構造となっている。この階層構造SR2において、複合コンテンツを構成するコンテンツが第1コンテンツC1、第2コンテンツC2、第3コンテンツC3および第4コンテンツC4であるとする。このとき第1コンテンツC1は第2フォルダFD2内に格納されており、第2コンテンツC2は第4フォルダFD4に格納されているとする。また第3コンテンツC3は第5フォルダFD5に格納されており、第4コンテンツC4は第6フォルダFD6に格納されているとする。このような階層構造SR2を有する複合コンテンツに対するインデックスファイルは、図2(b)に例示するインデックスファイルIF2となる。なお図2(b)に示すインデックスファイルIF2においては、各コンテンツCに付与されているコンテンツIDは記載が省略されている。
(C)投入サーバ等の具体的構成および動作
次に、第1実施形態の配信システムSに含まれる投入サーバSV等の具体的な構成および動作について、図3から図4を用いて説明する。
(a)投入サーバの具体的構成および動作
先ず、第1実施形態の投入サーバSVの具体的構成および動作を、図3(a)を用いて説明する。なお図3(a)は第1実施形態の投入サーバSVの具体的構成を示すブロック図である。
図3(a)に示すように、第1実施形態の投入サーバSVは、制御部35、記憶部36、通信部37および入力部39を備えている。これらの構成要素は、バス38を介して相互にデータの授受が可能に接続されている。この制御部35が、「付与手段」の一例、「公開手段」の一例および「通知手段」の一例に、それぞれ相当する。
制御部35は、演算機能を有するCPU(Central Processing Unit)、各種データを記憶するRAM(Random Access Memory)ならびに各種データおよびプログラムを記憶するROM(Read Only Memory)等から構成されている。この各種データおよびプログラムには、オペレーティングシステムおよび各種アプリケーションが含まれている。記憶部36は各種データおよび各種プログラム等を記憶保存するためのハードディスク等から構成される。通信部37は、ネットワーク8を介してノードNnとの間の各種メッセージの通信制御を行う。さらに入力部39は、使用者からの指示を受け付け当該指示に応じた指示信号を制御部35に対して与える。この入力部39は、例えばキーボードまたはマウス等により実現されるものである。
以上の構成において制御部35は、CPUが記憶部36またはROM等に記憶されたプログラムを実行することにより、投入サーバSV全体を統括制御する。さらに制御部35は、後述する第1実施形態のコンテンツ配信動作における投入サーバSVとしての各動作を実行する。
(b)ノードの具体的構成および動作
次に、第1実施形態のノードNnの具体的構成および動作を、図3(b)を用いて説明する。なお図3(b)は第1実施形態のノードNnの具体的構成を示すブロック図である。図3(b)に示すように、第1実施形態のノードNnは、制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25、入力部26、映像処理部27、表示部28、音声処理部29およびスピーカ30を備えている。制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25および入力部26は、バス31を介してデータの授受が可能に相互接続されている。この制御部21が、「第1取得手段」の一例、「第2取得手段」の一例、「第1要求手段」の一例、「第2要求手段」の一例、「記憶手段」の一例および「決定手段」の一例に、それぞれ相当する。
この構成において制御部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またはROM等に記憶されたノード処理プログラムを読み出して実行することにより、ノードNn全体を統括制御する。具体的には、ノードNnが配信システムSへ参加したのちに制御部21がノード処理プログラムを実行することで、上述したユーザノード、ルートノードまたは保持ノード等の、少なくともいずれか一つのノードとして機能する。
(D)コンテンツ配信動作
次に、第1実施形態の配信システムSにおけるコンテンツ配信動作について、図2から図4を用いて具体的に説明する。なお図4は、第1実施形態のコンテンツ配信動作を示すフローチャートである。
初めに、第1実施形態の配信システムSに含まれる図示しない指示者サーバにおける動作等について、図2(a)および図2(c)ならびに図4(a)を用いて説明する。指示者サーバは、第1実施形態の配信システムS内に複合コンテンツを投入する指示を行う指示者により操作されるサーバである。
以下の第1実施形態のコンテンツ配信動作の説明においては、図2(a)に例示する複合コンテンツを構成するメインコンテンツMならびにサブコンテンツS1およびS2が既に配信システムSに投入済みであることを前提とする。またこれらに対応するインデックスファイルIFも既に配信システムSに投入済みであるとする。これらメインコンテンツM等およびインデックスファイルIFには、既にコンテンツIDが付与されている。これらの付与済みのコンテンツIDは、投入サーバSVの記憶部36内に記憶されている。
第1実施形態の指示者サーバは、図4(a)に示すように、その図示しない電源スイッチがオンとされると、図4(a)のフローチャートの動作を開始する。先ず指示者サーバは、その動作に用いられる各種プログラムを初期化する(ステップS1)。次に指示者サーバは、複合コンテンツを構成するいずれかのコンテンツが新たなコンテンツに更新されたとき、その更新後のコンテンツを、配信システムSへのコンテンツ更新指示と共に投入サーバSVに送信する(ステップS2)。その後指示者サーバは、更新されたコンテンツの配信システムSへの投入が完了したことを示す完了通知が投入サーバSVから送信されてきたか否かを監視する(ステップS3)。ステップS3において受信を監視する完了通知には、上記インデックスファイルIF自体のコンテンツIDと、更新前後のコンテンツそれぞれのコンテンツIDと、が含まれている。ステップS3の監視において完了通知が受信されない場合(ステップS3;NO)、指示者サーバは後述するステップS6の動作に移行する。一方ステップS3の監視において完了通知が受信された場合(ステップS3;YES)、指示者サーバは次に、受信した完了通知からインデックスファイルIFおよび更新前後のコンテンツそれぞれのコンテンツIDを取得する(ステップS4)。その後指示者サーバは、ステップS4の動作で取得した各コンテンツIDを用いて、複合コンテンツを構成するコンテンツの配信に用いられるウェブページであるコンテンツ配信ページを生成して記憶する(ステップS5)。コンテンツ配信ページは、複合コンテンツの配信を所望するユーザノードにおいて閲覧される。コンテンツ配信ページに対応するページデータWPの例が図2(c)に示されている。指示者サーバは、インデックスファイルIFのコンテンツIDに加えて、インデックスファイルIFに対応する複合コンテンツの階層構造SRにおけるメインコンテンツMの位置を示すいわゆるファイルパスと、更新前後のコンテンツそれぞれのコンテンツIDと、をページデータWPに含ませる。図2(c)には、インデックスファイルIFのコンテンツIDが「XXXXX」であり、メインコンテンツMの位置を示すファイルパスが「/index.html」である場合が例示されている。また実施形態のコンテンツ配信ページは、複合コンテンツを構成する各コンテンツを更新する場合にも用いられる。このためコンテンツ配信ページのページデータWPには、更新前後のコンテンツのコンテンツIDが含まれている。図2(c)に例示する場合、更新前のコンテンツのコンテンツIDが「BBBBB」であり、更新後のコンテンツのコンテンツIDが「DDDDD」である。ページデータWPに記述された更新前後のコンテンツのコンテンツIDを示す情報が、第1実施形態の「第2コンテンツ」に相当する。さらに図2(c)に例示するページデータWPには、取得されるコンテンツが複合コンテンツであることを示す情報「p2p-multi」も含まれている。
次に指示者サーバは、ステップS5の動作により記憶したコンテンツ配信ページの要求がノードNnから送信されてきたか否かを判定する(ステップS6)。ステップS6の判定において要求が送信されてこない場合(ステップS6;NO)、指示者サーバは後述するステップS8の動作に移行する。ステップS6の判定において要求が送信されてきた場合(ステップS6;YES)、指示者サーバは要求されたコンテンツ配信ページをその要求元のノードNnに対して送信する(ステップS7)。
その後指示者サーバは、その電源スイッチがオフとされたか否かを判定する(ステップS8)。ステップS8の判定において電源スイッチがオフとされていない場合(ステップS8;NO)、指示者サーバは上記ステップS3の動作に移行する。ステップS8の判定において電源スイッチがオフとされている場合(ステップS8;YES)、指示者サーバはそのまま第1実施形態のコンテンツ配信動作を終了する。
次に、第1実施形態の投入サーバSVにおける動作について、図2および図4(b)を用いて説明する。
図4(b)に示すように、第1実施形態の投入サーバSVの制御部35は、投入サーバSVの図示しない電源スイッチがオンとされると、図4(b)のフローチャートの動作を開始する。先ず制御部35は、投入サーバSVの動作に用いられる各種プログラムを初期化する(ステップS10)。次に制御部35は、上記コンテンツ更新指示および更新後のコンテンツを指示者サーバから受信したか否かを監視する(ステップS11)。このコンテンツ更新指示等は、図4(a)ステップS2の動作により指示者サーバから送信されたものである。ステップS11の監視においてコンテンツ更新指示等が受信されない場合(ステップS11;NO)、制御部35は後述するステップS14の動作に移行する。ステップS11の監視においてコンテンツ更新指示等が受信された場合(ステップS11;YES)、制御部35は、ステップS11の動作で受信した更新後のコンテンツの配信システムSへの投入処理を実行する(ステップS12)。この投入処理により、更新後のコンテンツに対してコンテンツIDが付与される。このコンテンツIDの付与方法は、具体的には上記特許文献1に開示されている方法と同様の方法を用いることができる。ステップS12の動作により、更新後のコンテンツが各ノードNnにおいて取得可能となる。その後制御部35は、更新後のコンテンツの配信システムSへの投入処理が完了したことを示す完了通知を指示者サーバに送信する(ステップS13)。制御部35は、更新されたコンテンツのインデックスファイルIFのコンテンツIDおよび更新前後のコンテンツそれぞれのコンテンツIDを、完了通知に含ませて送信する。このとき、更新されたコンテンツのインデックスファイルIFのコンテンツIDと更新前のコンテンツのコンテンツIDとは記憶部36内に記憶されている。次に制御部35は、投入サーバSVの電源スイッチがオフとされたか否かを判定する(ステップS14)。ステップS14の判定において電源スイッチがオフとされていない場合(ステップS14;NO)、制御部35は上記ステップS11の動作に移行する。ステップS14の判定において電源スイッチがオフとされている場合(ステップS14;YES)、制御部35はそのまま第1実施形態のコンテンツ配信動作を終了する。
最後に、第1実施形態のノードNnにおける動作について、図2ならびに図4(c)おおび図4(d)を用いて説明する。なお図4(c)および図4(d)に示す動作は、ユーザノードとしてのノードNnの動作である。
先ず図4(c)に示すように、第1実施形態のノードNnの制御部21は、ノードNnの図示しない電源スイッチがオンとされると、図4(c)のフローチャートの動作を開始する。先ず制御部21は、ノードNnの動作に用いられる各種プログラムを初期化する(ステップS20)。次に制御部21は、複合コンテンツの取得を要求するユーザの操作が入力部26において実行されたか否かを監視する(ステップS21)。ステップS21の監視においてユーザの操作が実行されない場合(ステップS21;NO)、制御部21は後述するステップS31の動作に移行する。一方ステップS21の監視においてユーザの操作が実行された場合(ステップS21;YES)、制御部21は、その操作に対応したページデータWPを取得して、コンテンツ配信ページを表示部28に表示する(ステップS22)。このコンテンツ配信ページは、図4(a)ステップS5の動作により指示者サーバにより生成されたものである。図2(c)には対応するページデータWPが例示されている。
次に制御部21は、表示されているコンテンツ配信ページに含まれているインデックスファイルIFのコンテンツIDを取得する(ステップS23)。その後制御部21は、取得したコンテンツIDに基づいてクエリを送信してインデックスファイルIFを取得する(ステップS24)。ステップS24の動作において制御部21は、インデックスファイルIFのコンテンツIDに基づいてクエリを送信し、インデックスファイルIFの保持ノードにアクセスしてインデックスファイルIFを取得する。すなわち制御部21は、インデックスファイルIFのコンテンツIDに基づいてそのインデックスファイルIFを取得する。次に制御部21は、表示されているコンテンツ配信ページに含まれている更新前後のコンテンツのコンテンツIDを取得する(ステップS25)。すなわち制御部21は、インデックスファイルIFのコンテンツIDに基づいて、更新前後のコンテンツのコンテンツIDを取得する。そして制御部21は、インデックスファイルIFのコンテンツIDと共にコンテンツ配信ページに記述されていたファイルパスと一致する位置情報に対応するコンテンツIDを、インデックスファイルIFにおいて検索する(ステップS26)。図2(c)に例示する場合、インデックスファイルIFのコンテンツIDは「XXXXX」であり、それと共にコンテンツ配信ページに記述されているファイルパスは「/index.html」である。次に制御部21は、「/index.html」なる位置情報に対応するコンテンツIDとして、コンテンツID「AAAAA」を検索する(ステップS27)。次に制御部21は、検索したコンテンツID「AAAAA」に基づいてクエリを送信し、対応するメインコンテンツMを取得して再生する(ステップS28)。ステップS28の動作において制御部21は、メインコンテンツMの保持ノードにアクセスしてメインコンテンツMを取得する。
その後制御部21は、取得したメインコンテンツM内に、他のサブコンテンツS1等の名称および位置情報が記述されており、それらの取得要求がされているか否かを判定する(ステップS29)。ステップS29の判定において、他のサブコンテンツS1等の取得要求がされている場合(ステップS29;YES)、制御部21はそのサブコンテンツS1等の取得および再生を実行する(ステップS30)。ステップS30の動作として制御部21は、サブコンテンツS1等を要求するとき、更新前のコンテンツIDと更新後のコンテンツIDとに基づいて、インデックスファイルIFが含む更新前のコンテンツIDに代えて、更新後のコンテンツIDにより識別されるサブコンテンツS1等を要求する。このステップS30の動作については、後ほど図4(d)を用いて詳述する。ステップS29の判定において、他のサブコンテンツS1等の取得要求がされていない場合(ステップS29;NO)、制御部21は以下のステップS31の動作に移行する。
その後制御部21は、ノードNnの電源スイッチがオフとされたか否かを判定する(ステップS31)。ステップS31の判定において電源スイッチがオフとされていない場合(ステップS31;NO)、制御部21は上記ステップS21の動作に移行する。ステップS31の判定において電源スイッチがオフとされている場合(ステップS31;YES)、制御部21はそのまま第1実施形態のコンテンツ配信動作を終了する。
次に、上記ステップS30の動作について、図4(d)を用いて詳述する。ステップS30におけるサブコンテンツS1等の取得および再生において、制御部21は先ず、取得されたメインコンテンツMを参照して、取得要求されているサブコンテンツS1等の位置情報および名称情報を含むファイルパスを取得する(ステップS300)。次に制御部21は、取得したファイルパスに対応するコンテンツIDをインデックスファイルIFから取得する(ステップS301)。たとえば図2(a)に例示する複合コンテンツのサブコンテンツS1の場合、メインコンテンツMにはサブコンテンツS1の名称情報「image1.gif」と、その階層構造SRにおける位置を示す位置情報「pie/」と、が記述されている。よって制御部21は、ステップS300の動作によりメインコンテンツMからファイルパス「pie/image1.gif」を取得する。次に制御部21は、ステップS301の動作により、このファイルパスに対応するコンテンツID「BBBBB」をインデックスファイルIFから取得する。次に制御部21は、ステップS301の動作により取得したコンテンツIDのコンテンツが更新対象であるか否かを判定する(ステップS302)。ステップS302において制御部21は、具体的には、ステップS22の動作により取得したコンテンツ配信ページ内にステップS301の動作により取得したコンテンツIDが記述されているか否かを確認する。ステップS301の動作により取得したコンテンツIDのコンテンツが更新対象である場合、このコンテンツIDが、更新前のコンテンツのコンテンツIDとしてページデータWP内に記述されている。図2(c)に例示する場合、更新前のコンテンツのコンテンツIDは「BBBBB」である。ステップS301の動作により取得したコンテンツIDのコンテンツが更新対象でない場合(ステップS302;NO)、制御部21は後述するステップS304の動作に移行する。一方ステップS302の判定において、ステップS301の動作により取得したコンテンツIDのコンテンツが更新対象である場合(ステップS302;YES)、制御部21はコンテンツIDの置換動作を行う(ステップS303)。すなわち制御部21は、ステップS301の動作により取得したコンテンツIDを、ページデータWP内に記述されている更新後のコンテンツのコンテンツIDに置換する。図2(c)に例示する場合、制御部21は、ステップS301の動作により取得したコンテンツID「BBBBB」を、更新後のコンテンツのコンテンツID「DDDDD」に置換する。その制御部21は、置換後のコンテンツID「DDDDD」に基づいてクエリを送信し、対応する更新後のサブコンテンツS1を取得して再生する(ステップS304)。ステップS304の動作において制御部21は、コンテンツID「DDDDD」に基づいてクエリを送信し、サブコンテンツS1の保持ノードにアクセスしてサブコンテンツS1を取得する。その後制御部21は、取得したメインコンテンツM内に、さらに他のサブコンテンツ等の名称および位置情報が記述されており、それらの取得要求がされているか否かを判定する(ステップS305)。ステップS305の判定において、他のサブコンテンツ等の取得要求がされてない場合(ステップS305;NO)、制御部21は上記ステップS31の動作に移行する。このステップS31の動作は図4(c)に示されている。一方ステップS305の判定において、他のサブコンテンツ等の取得要求がされている場合(ステップS305;YES)、制御部21は上記ステップS300の動作に移行して、他のサブコンテンツ等を取得する。
以上説明したように、第1実施形態のコンテンツ配信動作によれば、所定の構造に関連付けられたコンテンツの更新がされたとき、対応するコンテンツ配信ページをノードNnに対して公開する。ノードNnでは、各コンテンツの取得要求がされたとき、各コンテンツおよびインデックスファイルIFそれぞれのコンテンツIDに基づいてインデックスファイルIFおよび更新後のコンテンツそれぞれの取得要求を行う。よって、コンテンツ配信ページを参照することで更新後のコンテンツを取得できるので、元のインデックスファイルIF自体を再度作り直すことなく、更新後のコンテンツを取得することができる。
また、インデックスファイルIFのコンテンツIDと、更新前のコンテンツのコンテンツIDと、更新後のコンテンツのコンテンツIDと、を対応付けたコンテンツ配信ページが公開される。よって、ノードNnにおいて確実に更新後のコンテンツを取得することができる。
(II)第2実施形態
次に、本発明の他の実施形態である第2実施形態のコンテンツ配信動作について、図5から図7を用いて説明する。なお図5および図6は第2実施形態のコンテンツ配信動作を示すフローチャートである。図7は第2実施形態の複合コンテンツの配信動作等を例示する図である。
上述した第1実施形態においては、複合コンテンツであることを示す情報、インデックスファイルIFのコンテンツIDおよび更新前後のコンテンツのコンテンツID等が、コンテンツ配信ページ内に記述されていた。これに対して第2実施形態では、更新前後のコンテンツのコンテンツIDが記述されている変換ファイルをコンテンツの一つとして配信システムSに投入してコンテンツの更新に用いる。第2実施形態のコンテンツ配信ページには、この変換ファイルのコンテンツIDが記述されている。この変換ファイルが、第2実施形態の「第2コンテンツ」に相当する。
なお、第2実施形態の配信システムのハードウエア的な構成は基本的に第1実施形態の配信システムSのハードウエア的な構成と同様である。よって以下の説明では、第1実施形態の配信システムSを示す部材番号を引用して動作を説明する。さらに図5および図6に示すフローチャートにおいて、図4に示す第1実施形態のコンテンツ配信動作と同様の動作については、同一のステップ番号を付して細部の説明は省略する。なお、第2実施形態の投入サーバSVの記憶部36には、第2実施形態の変換ファイルを含む各コンテンツのカタログ情報が記憶されている。
次に、第2実施形態の配信システムSにおけるコンテンツ配信動作について具体的に説明する。
初めに、第2実施形態の配信システムSに含まれる図示しない指示者サーバにおける動作について、図5(a)ならびに図7(a)および図7(b)を用いて説明する。
図5(a)に示すように、第2実施形態の指示者サーバは、その図示しない電源スイッチがオンとされると、図5(a)のフローチャートの動作を開始する。先ず指示者サーバは、図4(a)に示すステップS1と同様の動作を実行する。ここで、第2実施形態のコンテンツ配信動作によって配信される複合コンテンツの構造は第1実施形態の階層構造SRと同様であるとする。階層構造SRの具体例は、図2(a)に示されている。
次に指示者サーバは、図4(a)に示すステップS2からS4までと同様の動作をそれぞれ実行する。このときのステップS3の動作において受信が判定される完了通知には、第1実施形態の場合と異なり、上記インデックスファイルIF自体のコンテンツIDと、第2実施形態の変換ファイルのコンテンツIDと、が含まれている。第2実施形態の変換ファイルCFには、図7(a)に例示するように、更新前のコンテンツのコンテンツIDと、更新後のコンテンツのコンテンツIDと、が対応付けられて記述されている。図7(a)に例示されている変換ファイルCFには、コンテンツIDが「BBBBB」であるコンテンツが、コンテンツIDが「DDDDD」であるコンテンツに更新されていることが記述されている。またコンテンツIDが「CCCCC」であるコンテンツが、コンテンツIDが「EEEEE」であるコンテンツに更新されていることも併せて記述されている。変換ファイルCFには、それ自体に投入サーバSVにより一つのコンテンツIDが付与される。図7(a)に例示する変換スファイルCFには、それ自体のコンテンツIDとして「ZZZZZ」が付与されている。
次に指示者サーバは、ステップS4の動作で取得したインデックスファイルIFのコンテンツIDと、変換ファイルCFのコンテンツIDと、を用いて、第2実施形態のコンテンツ配信ページを生成して記憶する(ステップS40)。第2実施形態のコンテンツ配信ページのページデータWP2には、図7(b)に例示するように、インデックスファイルIFのコンテンツIDと、メインコンテンツMの位置を示すファイルパスと、変換ファイルCFのコンテンツIDと、が含まれている。
その後指示者サーバは、図4(a)に示すステップS6からS8と同様の動作を実行して、第2実施形態のコンテンツ配信動作を終了する。
次に、第2実施形態の投入サーバSVにおける動作について、図5(b)および図7を用いて説明する。
図5(b)に示すように、第2実施形態の投入サーバSVの制御部35は、投入サーバSVの図示しない電源スイッチがオンとされると、図5(b)のフローチャートの動作を開始する。先ず制御部35は、図4(b)に示すステップS10からS12と同様の動作をそれぞれ実行する。次に制御部35は、変換ファイルCFの配信システムSへの投入が初回か否かを判定する(ステップS50)。換言すれば制御部35は、変換ファイルCFにコンテンツIDが記述されているコンテンツの更新が初めてか否かを判定する。このステップS50の判定は、たとえば変換ファイルCF自体に対応するカタログ情報が記憶部36に記憶されているか否かを判定することにより行われる。変換ファイルCFに対応するカタログ情報が記憶部36内に記憶されていれば、制御部35は変換ファイルの投入が2回目以降であると判定する(ステップS50;2回目以降)。また変換ファイルCFに対応するカタログ情報が記憶部36内に存在されていなければ、制御部35は変換ファイルの投入が初回であると判定する(ステップS50;初回)。
ステップS50の判定において、変換ファイルCFの投入が初回である場合(ステップS50;初回)、制御部35は、ステップS12の動作により付与されている更新後のコンテンツのコンテンツIDを用いて、変換ファイルCFを新たに生成する(ステップS51)。この変換ファイルCFは、たとえば図7(a)に例示される変換ファイルCFである。また制御部35は、生成された変換ファイルCF自体に対応するカタログ情報を新たに生成する(ステップS52)。次に制御部35は、生成された変換ファイルCFの配信システムSへの投入処理を実行し、変換ファイルCFに対してコンテンツIDの付与を受ける(ステップS53)。その後制御部35は、投入した変換ファイルCFのカタログ情報にステップS53の動作により付与されたコンテンツIDを記述する(ステップS54)。次に制御部35は、変換ファイルCFのカタログ情報を配信システムSに投入する投入処理を実行する(ステップS55)。この投入処理により、カタログ情報はたとえばマルチキャスト方式により各ノードNnに配信される。このマルチキャスト方式によるカタログ情報の配信は、具体的には上記特許文献1に開示されている方法と同様の方法を用いることができる。その後制御部35は、図4(b)に示すステップS13およびS14と同様の動作をそれぞれ実行して、第2実施形態のコンテンツ配信動作を終了する。
一方、ステップS50の判定において、変換ファイルCFの投入が2回目以降である場合(ステップS50;2回目以降)、制御部35は、新しい変換ファイルCFの配信システムSへの投入処理を実行し、新しい変換ファイルCFに対してコンテンツIDの付与を受ける(ステップS56)。次に制御部35は、その更新された変換ファイルCFに対応するカタログ情報の更新データに、ステップS56の動作により付与されたコンテンツIDを記述する(ステップS57)。その後制御部35は、上記ステップS55の動作に移行する。
ここで、変換ファイルCFが更新される度に図5(b)に示す動作が実行されることにより更新される、変換ファイルCFのカタログ情報について、図7(c)を用いて説明する。なお図7(c)においては、白矢印により変換ファイルCFに対応するカタログ情報の更新順序を示す。先ず、上記ステップS50からS52の動作により変換ファイルCFが新たに生成され、さらに変換ファイルCFに対応するカタログ情報も新たに生成されたとする。この場合のカタログ情報CGの例が図7(c)最上段に示されている。図7(c)最上段に例示するカタログ情報CGには、新たに生成された変換ファイルCFのコンテンツIDが「10000」であることが記述されている。また、変換ファイルCFの公開期間が2010年1月1日0:00から2011年1月1日0:00までであることも記述されている。さらにカタログ情報CGでは、変換ファイルCFが新たに生成されたものであるため、その更新データの欄は空白となる。次に、その変換ファイルCFが更新された結果、上記ステップS56の動作により、更新後の変換ファイルCFに新しいコンテンツID「10001」が付与されたとする。この場合の変換ファイルCFに対応するカタログ情報CG1が図7(c)上から二つ目に例示されている。このカタログ情報CG1において、コンテンツIDが「10000」である行を参照すると、その行の更新データには、上記ステップS57の動作により、新しいコンテンツID「10001」が記述される。一方、コンテンツIDが「10001」である行を参照すると、その行の更新データの欄は空白となる。よって、コンテンツID「10001」により識別される変換ファイルCFが最新の変換ファイルCFであることが、カタログ情報CG1を取得したノードNnにより後述するように認識できる。また、変換ファイルCFがさらに更新された場合、上記ステップS56およびS57と同様の動作により、図7(c)最下段に例示されるようにカタログ情報CG1がカタログ情報CG2に更新される。そして、カタログ情報CG2のコンテンツID「10002」で識別される変換ファイルCFが最新の変換ファイルCFであることが、カタログ情報CG1を取得したノードNnにより認識できる。
最後に、第2実施形態のノードNnにおける動作について、図6を用いて説明する。なお図6に示す動作は、第1実施形態の場合と同様にユーザノードとしてのノードNnの動作である。
図6に示すように、第2実施形態のノードNnの制御部21は、ノードNnの図示しない電源スイッチがオンとされると、図6のフローチャートの動作を開始する。先ず制御部21は、図4(c)に示すステップS20からS24までと同様の動作をそれぞれ実行する。このステップS21の動作により表示部28に表示されるコンテンツ配信ページのページデータWP2は図7(b)に例示されている。
次に制御部21は、表示されているコンテンツ配信ページに含まれている変換ファイルCFのコンテンツIDを取得する(ステップS60)。次に制御部21は、取得されたコンテンツIDに基づいて上記ステップS55の動作で投入されて取得されている変換ファイルCFのカタログ情報CGを参照する(ステップS61)。次に制御部21は、参照したカタログ情報CGにおける更新データから、最新の変換ファイルCFのコンテンツIDを取得する(ステップS62)。図7(c)に例示したカタログ情報CGからCG2についてこのステップS62の動作が実行された場合、制御部21は、最新の変換ファイルCFのコンテンツIDとして、「10002」を取得できる。その後制御部21は、ステップS62により取得されたコンテンツIDを用いてクエリを送信して最新の変換ファイルCFを取得する(ステップS63)。すなわち制御部21は、変換ファイルCFのカタログ情報CGの更新データに基づいて、最新の変換ファイルCFを取得する。その後制御部21は、図4(c)に示すステップS26からS31までと同様の動作をそれぞれ実行する。この場合のステップS30の動作中のステップS302の判定において、制御部21は、ステップS63により取得された変換ファイルCFにコンテンツIDが記述されているか否かにより、更新対象のサブコンテンツ等であるか否かを判定する。
以上説明したように、第2実施形態のコンテンツ配信動作によれば、第1実施形態のコンテンツ配信動作と同様にコンテンツ配信ページを参照することで更新後のコンテンツを取得できるので、元のインデックスファイルIF自体を再度作り直すことなく、更新後のコンテンツを取得することができる。
また、更新前後のコンテンツのコンテンツIDを対応付けた変換ファイルCFを配信システムSに投入し、インデックスファイルIFおよび変換ファイルCFそれぞれのコンテンツIDをノードNnに対して通知する。そしてノードNnにおいて、各コンテンツIDを用いてインデックスファイルIFおよび変換ファイルCFの取得要求を送信する。よって、取得されたインデックスファイルIFおよび変換ファイルCFを用いて、ノードNnにおいて確実に更新後のコンテンツを取得することができる。
さらに、インデックスファイルIFおよび変換ファイルCFそれぞれのコンテンツIDをノードNnにおいて閲覧するためのコンテンツ配信ページを公開するので、各ノードNnにおいて確実に更新後のコンテンツを取得することができる。
さらにまた、変換ファイルCFおよび対応するカタログ情報CGをノードNnに取得させるので、ノードNnにおいて変換ファイルCFおよび対応するカタログ情報CGを参照することにより確実に更新後のコンテンツを取得することができる。
また、変換ファイルCFの更新データがカタログ情報CGに含まれており、その更新データに基づいて最新の変換コンテンツCFおよび最新のコンテンツの取得要求を送信する。よって、ノードNnにおいて確実に最新のコンテンツを取得することができる。
なお、第2実施形態の変換ファイルCFに代えて、更新前のコンテンツのレコードのたとえば特殊キーワードの部分に更新後のコンテンツのコンテンツIDが記述されているカタログ情報を、「第2コンテンツ」として用いることもできる。このカタログ情報のレコードでは、更新前のコンテンツIDと更新後のコンテンツIDとが対応付けられている。このカタログ情報は、配信システムS内においてたとえばマルチキャスト方式により各ノードNnに配信される。ユーザノードの制御部21は、配信されたカタログ情報において、インデックスファイルIFにコンテンツIDが記述されている更新前のコンテンツのレコードから、更新後のコンテンツのコンテンツIDを取得する。これにより制御部21は、更新後のコンテンツを取得することができる。
(III)変形形態
次に、本発明の変形形態について、図7(d)から図7(f)を用いて説明する。
先ず第1変形形態について、図7(d)を用いて説明する。図7(d)は第1変形形態の変換ファイルを例示する図である。上述した第2実施形態では、図7(a)に例示するように、変換ファイルCFにより更新が示される更新前のコンテンツと更新後のコンテンツとが、一対一に対応付けられていた。この変換ファイルCFに代えて、図7(d)に例示する変換ファイルCFM1を用いることもできる。変換ファイルCFM1においては、一つの更新前のコンテンツのコンテンツID「BBBBB」が、二つの更新後のコンテンツのコンテンツID「DDDDD」および「EEEEE」に対応付けられている。この変換ファイルCFM1を取得したノードNnの制御部21は、更新後のコンテンツのコンテンツIDとして、変換ファイルCFM1に複数記述されているコンテンツIDを、たとえばランダムに決定する。その後制御部21は、決定したコンテンツIDにより識別される更新後のコンテンツを、オーバーレイネットワーク9を介して取得する。このように構成すれば、一つのコンテンツの更新の態様を、より多様化することができる。なお、第1実施形態のコンテンツ配信動作において、図2(c)に例示されるページデータWPにおける「before = "BBBBB" after = "DDDDD"」の部分を、「before = "BBBBB" after = "DDDDD;EEEEE"」と記述してもよい。このページデータWPを用いてコンテンツID「DDDDD」および「EEEEE」を取得することにより、上記第1変形形態と同様の態様でのコンテンツの更新が可能となる。
次に第2変形形態について、図7(e)を用いて説明する。図7(e)は第2変形形態の変換ファイルを例示する図である。上述した第2実施形態の変換ファイルCFに代わる第2変形形態の変換ファイルとして、図7(e)に例示する変換ファイルCFM2を用いることもできる。変換ファイルCFM1においては、一つの更新前のコンテンツのコンテンツID「BBBBB」が、二つの更新後のコンテンツのコンテンツID「DDDDD」および「EEEEE」に対応付けられている。これに加えて変換ファイルCFM2においては、時刻により、対応付けられる更新後のコンテンツのコンテンツIDが指定されている。図7(e)に例示する場合では、0:00から11:59までは、コンテンツID「BBBBB」により識別されるコンテンツがコンテンツID「DDDDD」により識別されるコンテンツに更新される。また12:00から23:59までは、コンテンツID「BBBBB」により識別されるコンテンツがコンテンツID「EEEEE」により識別されるコンテンツに更新される。この変換ファイルCFM2を取得したノードNnの制御部21は、更新後のコンテンツのコンテンツIDとして変換ファイルCFM2に複数記述されているコンテンツIDを、制御部21内の図示しないタイマにおける計時に基づいて選択する。たとえば、現在時刻が19:10であれば、更新後のコンテンツのコンテンツIDとしてコンテンツID「EEEEE」を選択する。その後制御部21は、選択したコンテンツIDにより識別される更新後のコンテンツを、オーバーレイネットワーク9を介して取得する。すなわち制御部21は、複数の更新後のコンテンツIDと、時刻情報とに基づいて、更新後のコンテンツを取得する。このように構成しても、一つのコンテンツの更新の態様を、より多様化することができる。なお、第1実施形態のコンテンツ配信動作において、図4(c)に例示されるページデータWPにおける「before = "BBBBB" after = "DDDDD"」の部分を、「before = "BBBBB" after = "00:00-11:59 DDDDD、12:00-23:59 EEEEE"」と記述してもよい。このページデータWPを用いてコンテンツID「DDDDD」および「EEEEE」を取得することにより、上記第2変形形態と同様の態様でのコンテンツの更新が可能となる。
最後に第3変形形態について、図7(f)を用いて説明する。図7(f)は第3変形形態の変換ファイルを例示する図である。上述した第2実施形態の変換ファイルCFに代わる第3変形形態の変換ファイルとして、図7(f)に例示する変換ファイルCFM3を用いることもできる。この変換ファイルCFM3では、第2実施形態の変換ファイルCFにおける時刻の情報に代えて、日付により、更新後のコンテンツのコンテンツIDを異ならせている。この変換ファイルCFM3を用いれば、ユーザノードの制御部21は、日付によって異なる更新後のコンテンツを取得することができる。なお変換ファイルCFにおいて、日付と時刻の情報とを併せて用いて、更新後のコンテンツのコンテンツIDを異ならせるようにしてもよい。
また、図4(b)または図5(b)に示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバから投入サーバSVにダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して実施形態における投入サーバSVの制御部35に読み込まれて実行されるようにしても良い。
さらに同様に、図4(c)および図4(d)または図6に示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバから各ノードNnにダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して各実施形態におけるノードNnの制御部21に読み込まれて実行されるようにしても良い。