次に、本発明を実施するための形態について、図面を用いて説明する。以下に説明する各実施形態は、P2Pシステムを用いてノードに動画等のコンテンツを配信する配信システムに対して本発明を適用した場合の実施形態である。実施形態の配信システムでは、複合コンテンツを構成する各コンテンツが各ノードに配信される。
(I)配信システムの全体構成および動作概要
初めに、実施形態の配信システムの全体構成および動作概要について、図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および指示者サーバCPが含まれている。投入サーバSVまたは指示者サーバCPは、「情報処理装置」の一例に相当する。投入サーバ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が記述されたウェブページである。コンテンツ配信ページを配信するサーバとしては、たとえば、コンテンツの投入指示を行う投入指示者により操作される上記指示者サーバCPがある。一方、カタログ情報とは、コンテンツのレコードが記述された情報である。コンテンツのレコードには、コンテンツのコンテンツ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を介して保持ノードからダウンロードすることを意味する。
(II)複合コンテンツの構造等
次に、実施形態の複合コンテンツの構造等について、図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」においては、「/」が階層構造SRにおいてメインコンテンツMが最上位に位置していることを示す位置情報であり、「index.html」が名称情報である。またサブコンテンツS1については、階層構造SRに対応した位置情報および名称情報が「/pie/image1.gif」と記述されている。サブコンテンツS1についての記述「/pie/image1.gif」においては、「/pie/」が階層構造SRにおいてサブコンテンツS1がメインコンテンツMの下位に位置していることを示す位置情報であり、「image1.gif」が名称情報である。さらにサブコンテンツS2については、階層構造SRに対応した位置情報および名称情報が「/bar/image2.gif」と記述されている。サブコンテンツS2についての記述「/bar/image2.gif」においては、「/bar/」が階層構造SRにおいてサブコンテンツS2がメインコンテンツMの下位に位置していることを示す位置情報であり、「image2.gif」が名称情報である。これらの位置情報は、サブコンテンツS1およびS2がユーザノードにおいてメインコンテンツMを用いて取得されるコンテンツであることも、併せて示している。なおインデックスファイル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は記載が省略されている。
(III)投入サーバ等の具体的構成および動作
次に、実施形態の配信システムSに含まれる投入サーバSV等の具体的な構成および動作について、図3から図6を用いて説明する。
(A)投入サーバおよび指示者サーバの具体的構成および動作
先ず、実施形態の投入サーバSVおよび指示者サーバCPの具体的構成および動作を、図3(a)を用いて説明する。なお図3(a)は第1実施形態の投入サーバSVおよび指示者サーバCPの具体的構成を示すブロック図である。また、第実施形態の投入サーバSVと指示者サーバCPとは、基本的には同一の構成をそれぞれに備えている。以下の図3(a)を用いた説明では、投入サーバSVについて、その具体的構成を説明する。
図3(a)に示すように、実施形態の投入サーバ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は、後述する実施形態のコンテンツ配信動作における投入サーバSVとしての各動作を実行する。
(B)ノードの具体的構成および動作
次に、実施形態のノードNnの具体的構成および動作を、図3(b)を用いて説明する。なお図3(b)は第1実施形態のノードNnの具体的構成を示すブロック図である。図3(b)に示すように、実施形態のノードNnは、制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25、入力部26、映像処理部27、表示部28、音声処理部29およびスピーカ30を備えている。制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25および入力部26は、バス31を介してデータの授受が可能に相互接続されている。この制御部21が、「受信手段」の一例、「判定手段」の一例、「第1送信手段」の一例、「第2送信手段」の一例、「第1取得手段」の一例、「第2取得手段」の一例、「順序ログ情報取得手段」の一例および「取得順序決定手段」の一例に、それぞれ相当する。また記憶部22が、「順序ログ情報記憶手段」の一例に相当する。
この構成において制御部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がノード処理プログラムを実行することで、上述したユーザノード、ルートノードまたは保持ノード等の、少なくともいずれか一つのノードとして機能する。
(C)コンテンツ配信動作
次に、実施形態の配信システムSにおけるコンテンツ配信動作について、図4から図6を用いて具体的に説明する。なお図4および図5は実施形態のコンテンツ配信動作をそれぞれ示すフローチャートである。図6は実施形態の複合コンテンツの構成を例示する図である。
以下の実施形態のコンテンツ配信動作の説明においては、図2(a)に例示する複合コンテンツを構成するメインコンテンツMならびにサブコンテンツS1およびS2が、既に配信コンテンツSに投入済みであるとする。またこれらに対応するインデックスファイルIFも既に配信システムSに投入済みであるとする。これらメインコンテンツM等およびインデックスファイルIFには、既にコンテンツIDがそれぞれ付与されている。
次に、実施形態の配信システムSにおけるコンテンツ配信動作について、具体的に図4から図6を用いて説明する。
複合コンテンツを構成する各コンテンツを配信システムSに投入する場合、実施形態の指示者サーバCPの制御部35は、そのコンテンツを、配信システムSへのコンテンツ投入指示と共に投入サーバSVに送信する。これにより投入サーバSVの制御部35は、受信したコンテンツ投入指示に基づいて各コンテンツを配信システムSに投入する。これとともに投入サーバSVの制御部35は、図2(a)に例示するインデックスファイルIFを生成し、配信システムSにコンテンツの一つとして投入する。複合コンテンツを構成する各コンテンツおよびインデックスファイルIFには、制御部35の投入処理によりコンテンツIDがそれぞれ付与される。これらのコンテンツIDの付与方法は、具体的には上記特許文献1に開示されている方法と同様の方法を用いることができる。また、複合コンテンツを構成する各コンテンツおよびインデックスファイルIFは、投入後、それぞれを記憶する保持ノード内の記憶部22に記憶される。さらに複合コンテンツを構成する各コンテンツおよびインデックスファイルIFそれぞれのルートノードは、各コンテンツIDをインデックスキャッシュ内に記憶させる。その後指示者サーバCPは、各コンテンツの配信システムSへの投入が完了したことを示す完了通知を投入サーバSVから受信する。この完了通知には、上記インデックスファイルIF自体のコンテンツIDが含まれている。
一方、複合コンテンツ以外の一般コンテンツを単独で配信システムSに投入する場合、実施形態の指示者サーバCPの制御部35は、配信システムSへのコンテンツ投入指示と共にそのコンテンツを投入サーバSVに送信する。これにより投入サーバSVの制御部35は、受信したコンテンツ投入指示に基づいてそのコンテンツを配信システムSに投入し、コンテンツIDを付与する。また投入されたコンテンツは、対応する保持ノード内の記憶部22に記憶される。さらに投入されたコンテンツのルートノードは、付与されているコンテンツIDをインデックスキャッシュ内に記憶させる。その後指示者サーバCPは、コンテンツの配信システムSへの投入が完了したことを示す完了通知を投入サーバSVから受信する。この完了通知には、そのコンテンツのコンテンツIDが含まれている。
次に指示者サーバCPの制御部35は、受信した完了通知に含まれているコンテンツID等を用いて、複合コンテンツを構成するコンテンツおよび一般コンテンツの配信に用いられるコンテンツ配信ページを生成する。コンテンツ配信ページは、複合コンテンツおよび一般コンテンツの配信を所望するユーザノードにおいて閲覧される。コンテンツ配信ページに対応するページデータの例が図2(c)に示されている。すなわち、一般コンテンツを投入させた指示者サーバCPの制御部35は、そのコンテンツIDを含むページデータWPを生成する。一方、複合コンテンツを構成する各コンテンツを投入させた指示者サーバCPの制御部35は、対応するインデックスファイルIFのコンテンツIDと、コンテンツのファイル名自体を含むページデータWPMを生成する。このファイル名は、複合コンテンツを構成する各コンテンツのうち、最初にユーザノードに取得されるべきコンテンツのファイル名である。このファイル名が「決定情報」の一例に相当する。図2(a)に例示するインデックスファイルIFの場合、最初にノードNnに取得されるべきコンテンツのファイル名は、具体的には「index.html」である。インデックスファイルIFのコンテンツIDに加えてファイル名が追加されていることにより、ノードNnの制御部21においてこのコンテンツIDがインデックスファイルIFのコンテンツIDであることを認識できる。これは、コンテンツIDだけでは、ノードNnの制御部21が、一般コンテンツのコンテンツIDであるかインデックスファイルIFのコンテンツIDであるかの識別ができないからである。
次に、実施形態のノードNnにおける動作について、図4および図5を用いて説明する。なお図4(a)および図5に示す動作は実施形態のユーザノードとしてのノードNnの動作である。また図4(b)に示す動作は、実施形態のインデックスファイルIFのルートノード、または実施形態のメインコンテンツMならびにサブコンテンツS1およびS2それぞれのルートノードのいずれかとしてのノードNnの動作である。以下の説明では、ルートノードとしてのノードNnを単に「ルートノード」と称する。インデックスファイルIFのルートノードが「管理装置」の一例に相当する。またメインコンテンツMならびにサブコンテンツS1およびS2それぞれのルートノードが「記憶装置」の一例に相当する。さらに、実施形態のメインコンテンツMならびにサブコンテンツS1およびS2それぞれのルートノードの記憶部22には順序情報が記憶されている。以下の説明では、実施形態のメインコンテンツM等のルートノードの記憶部22に記憶されている順序情報を、そのメインコンテンツM等の第1順序情報と称する。この第1順序情報には、そのルートノードにより管理されているコンテンツの次に再生されるべき他のコンテンツのコンテンツIDが、他のコンテンツの取得の順序を示す情報と共に記述されている。この第1順序情報は、後述するようにメインコンテンツM等を取得して再生したユーザノードから送信されるコンテンツ情報に基づいて更新される。このコンテンツ情報は、たとえばユーザノードにおいて再生されたメインコンテンツM等を示すコンテンツIDである。コンテンツ情報に基づいた更新により、第1順序情報はユーザノードにおける取得傾向に沿った順序を示す第1順序情報に更新される。一方、実施形態のインデックスファイルIFのルートノードの記憶部22には、実施形態のインデックスファイルIFにコンテンツIDが記述されている各コンテンツの、階層構造SRに対応した再生の順序を示す順序情報が記憶されている。以下の説明では、実施形態のインデックスファイルIFのルートノードの記憶部22に記憶されている順序情報を、その複合コンテンツの第2順序情報と称する。この第2順序情報は、複合コンテンツを構成するメインコンテンツM等が配信システムSに投入されたタイミングでは、階層構造SRに対応した再生順序を示す順序情報である。第2順序情報は、第1順序情報と同様にサブコンテンツS1等を取得して再生したユーザノードから送信されるコンテンツ情報に基づいて更新される。このコンテンツ情報は、たとえばユーザノードにおいて再生されたサブコンテンツS1等を示すコンテンツIDである。コンテンツ情報に基づいた更新により、第2順序情報はユーザノードにおける取得傾向に沿った順序を示す第2順序情報に更新される。なお第2順序情報は、複合コンテンツを構成するメインコンテンツM等を配信システムSに投入した時の第2順序情報のまま用いられてもよい。以下に説明するコンテンツ配信動作では、第2順序情報により示される順序と異なる順序によるコンテンツの取得がユーザノードにおいて要求された場合、第1順序情報により示される順序に沿って、以下の図5を用いて説明する先読みダウンロードが実行される。
図4(a)に示すように、ユーザノードの制御部21は、ユーザノードの図示しない電源スイッチがオンとされると、図4(a)のフローチャートの動作を開始する。先ず制御部21は、ユーザノードの動作に用いられる各種プログラムを初期化する(ステップS1)。次に制御部21は、コンテンツの視聴を要求するユーザの操作が入力部26において実行されたか否かを監視する(ステップS2)。ステップS2の監視においてユーザの操作が実行されない場合(ステップS2;NO)、制御部21は後述するステップS30の動作に移行する。一方ステップS2の監視においてユーザの操作が実行された場合(ステップS2;YES)、制御部21は、その操作に対応したページデータを取得してコンテンツ配信ページを取得し、表示部28に表示する(ステップS3)。このページデータは、図2(c)に例示されるページデータWPまたはページデータWPMにいずれかである。このページデータは指示者サーバSVの制御部35により生成されたものである。
次にユーザノードの制御部21は、表示されているコンテンツ配信ページのページデータに、コンテンツIDに加えて図2(c)に例示するファイル名が記述されているか否かを判定する(ステップS4)。ステップS4の判定においてファイル名の記述がページデータ内にない場合(ステップS4;NO)、そのページデータは図2(c)に例示するページデータWPである。そこで制御部21は、ページデータWP内のコンテンツIDを取得する(ステップS27)。次に制御部21は、このコンテンツIDにより識別される一般コンテンツを配信システムSから取得する(ステップS28)。このステップS28の動作は、具体的には上記特許文献1に開示されているコンテンツの取得動作と同様の動作である。その後制御部21は、取得した一般コンテンツをデコーダ部25等を用いて再生する(ステップS29)。
その後ユーザノードの制御部21は、ユーザノードの電源スイッチがオフとされたか否かを判定する(ステップS30)。ステップS30の判定において電源スイッチがオフとされていない場合(ステップS30;NO)、制御部21は上記ステップS2の動作に移行する。ステップS30の判定において電源スイッチがオフとされている場合(ステップS30;YES)、制御部21はそのまま実施形態のユーザノードとしてのコンテンツ配信動作を終了する。
一方ステップS4の判定において、ステップS4の判定においてファイル名の記述がページデータ内にある場合(ステップS4;YES)、そのページデータは図2(c)に例示するページデータWPMである。そこでユーザノードの制御部21は、ページデータWPM内のコンテンツIDを取得する(ステップS5)。次に制御部21は、このコンテンツIDにより識別されるコンテンツを配信システムSから取得する(ステップS6)。次に制御部21は、ステップS6の動作により取得したコンテンツがインデックスファイルIFであるか否かを判定する(ステップS7)。このステップS7において制御部21は、ステップS6の動作により取得したコンテンツの内容を確認し、その内容がインデックスファイルIFとしての内容を有しているか否かを判定する。ステップS7の判定において、取得したコンテンツがインデックスファイルIFでない場合(ステップS7;NO)、制御部21は上記ステップS30の動作に移行する。このとき制御部21は、なんらコンテンツを再生することなくステップS30の動作に移行する。一方ステップS7の判定において、取得したコンテンツがインデックスファイルIFである場合(ステップS7;YES)、制御部21は、ページデータWPMに記述されていたファイル名に基づき、そのファイル名に対応するコンテンツIDを取得する(ステップS8)。ステップS8の動作として具体的に制御部21は、ページデータWPMに記述されていたファイル名を用いてインデックスファイルIF内を検索する。これにより制御部21は、インデックスファイルIFにおいてそのファイル名と同一の名称情報に対応付けられているコンテンツIDを取得する。次に制御部21は、取得したコンテンツIDにより識別されるコンテンツを配信システムSから取得する(ステップS9)。このステップS9の動作は、具体的には上記特許文献1に開示されているコンテンツの取得動作と同様の動作である。ステップS9の動作により取得されるコンテンツは、複合コンテンツを構成するコンテンツのうち、最初にユーザノードに取得されるべきコンテンツである。図2(a)に例示される場合はメインコンテンツMである。そして制御部21は、取得したメインコンテンツMをデコーダ部25等を用いて再生する(ステップS10)。次に制御部21は、再生されたメインコンテンツMを示すコンテンツ情報を、インデックスファイルIFのルートノードに対して送信する(ステップS11)。このコンテンツ情報は、たとえばメインコンテンツMのコンテンツIDである。図2(a)に例示される場合は、コンテンツID「AAAAA」である。ステップS11のコンテンツ情報は、たとえばネットワーク8を介して送信される。
次に、ステップS11の動作によりコンテンツ情報が送信されたインデックスファイルIFのルートノードの動作について、図4(b)を用いて説明する。
図4(b)に示すように、インデックスファイルIFのルートノードの制御部21は、その図示しない電源スイッチがオンとされると、図4(b)のフローチャートの動作を開始する。先ず制御部21は、そのルートノードの動作に用いられる各種プログラムを初期化する(ステップS40)。次に制御部21は、ユーザノードとの間で通信が発生したか否かを監視する(ステップS41)。ステップS41の監視内容として具体的に制御部21は、ユーザノードから上記コンテンツ情報が送信されてきたか否かを監視する。ステップS41の監視においてユーザノードとの間の通信が発生していない場合(ステップS41;NO)、制御部21は後述するステップS44の動作に移行する。一方ステップS41の監視においてユーザノードとの間の通信が発生した場合(ステップS41;YES)、制御部21はその通信により送信されてきたコンテンツ情報を取得する(ステップS42)。その後制御部21は、取得したコンテンツ情報を記憶部22に記憶されている第2順序情報に反映させる(ステップS43)。その後制御部21は、ルートノードの電源スイッチがオフとされたか否かを判定する(ステップS44)。ステップS44の判定において電源スイッチがオフとされていない場合(ステップS44;NO)、制御部21は上記ステップS41の動作に移行する。ステップS44の判定において電源スイッチがオフとされている場合(ステップS44;YES)、制御部21はそのまま実施形態のルートノードとしてのコンテンツ配信動作を終了する。
ここで、インデックスファイルIFのルートノードの制御部21における上記ステップS43の動作について具体的に説明する。インデックスファイルIFのルートノードの記憶部22には第2順序情報が記憶されている。図2(a)に例示される実施形態のインデックスファイルIFに対応する第2順序情報には、メインコンテンツMのコンテンツIDと、各サブコンテンツS1およびS2それぞれのコンテンツIDと、が記述されている。これに加えて第2順序情報には、複合コンテンツを構成するコンテンツとしてのユーザノードにおける取得順序として、たとえばメインコンテンツM→サブコンテンツS1→サブコンテンツS2の順序を示す情報が、各コンテンツIDに対応付けて記述されている。この順序を示す情報の一例は、ステップS42の動作でコンテンツ情報としてコンテンツIDが取得される度にインクリメントされる優先度情報である。この順序を示す情報は、ユーザノードにおいて実際に再生されたコンテンツのコンテンツ情報がインデックスファイルIFのルートノードにおいて受信される度に、その値がインクリメントされる情報である。この順序を示す情報のインクリメントにより、多数のユーザノードにおいてサブコンテンツS2等が再生されると、第2順序情報における順序が先になる。この第2順序情報を参照することにより、以下に説明する先読みダウンロードにおいて、ユーザノードの制御部21は、ユーザに人気のあるコンテンツから優先してダウンロードできる。なお順序を示す情報の他の例としては、単純に数字で所定の取得順序を表した情報であってもよい。
次に、ステップS11の動作によりコンテンツ情報を送信した後のユーザノードにおける動作について、図5を用いて説明する。実施形態のユーザノードの制御部21は、複合コンテンツを構成するコンテンツのうち、現在再生しているコンテンツの次に再生されるべきコンテンツを、現在の再生の合間等に先に取得する。この動作を、以下の説明では「先読みダウンロード」と称する。
ステップS11の動作によりコンテンツ情報を送信した後、ユーザノードの制御部21は、インデックスファイルIFのルートノードから第2順序情報を取得する(ステップS12)。この第2順序情報は、複合コンテンツの階層構造SRに対応した再生順序を示している。次に制御部21は、取得した第2順序情報に基づき、先読みすべきコンテンツを選択する(ステップS13)。この先読みすべきコンテンツの一例は、階層構造SRにおいて、ステップS10の動作において再生されているメインコンテンツMの次に再生されるべきサブコンテンツS1である。これらのコンテンツは、複合コンテンツを構成するコンテンツである。次に制御部21は、先読みすべきコンテンツが既にユーザノードの記憶部22に記憶されているか否かを判定する(ステップS14)。換言すれば、制御部21は、先読みすべきコンテンツがユーザノードにおいて既に取得済みであるか否かを判定する。ステップS14の判定において先読みすべきコンテンツが既に記憶されている場合(ステップS14;YES)、制御部21はステップS13の動作により選択されたコンテンツを先読みダウンロードの対象外とする(ステップS15)。その後制御部21はステップS13の動作に移行する。このときのステップS13の動作において制御部21は、取得した第2順序情報において次に再生すべきとされているコンテンツを選択する(ステップS13)。一方ステップS14の判定において先読みすべきコンテンツが未だ記憶されていない場合(ステップS14;NO)、制御部21は、ステップS13の動作により選択されたコンテンツの先読みダウンロードを開始する(ステップS16)。このステップS16の動作において制御部21は、先ずステップS13の動作において選択されたコンテンツのコンテンツIDを、ステップS12の動作により取得した第2順序情報を参照して取得する。その後制御部21は、取得したコンテンツIDに基づいてクエリを送信して、ステップS13の動作により選択されたコンテンツを先読みダウンロードする。
先読みダウンロードの実行中において制御部21は、現在再生しているコンテンツの続きの取得を行う必要を監視している(ステップS17)。以下の説明では、現在再生しているコンテンツの続きの取得を、「再生用ダウンロード」と称する。ステップS17の監視において再生用ダウンロードを行う必要がある場合(ステップS17;YES)、制御部21は、先読みダウンロードを停止する(ステップS23)。次に制御部21は、再生用ダウンロードを行い、ダウンロードされたコンテンツを再生する(ステップS24)。その後制御部21は、直前のステップS24の動作により再生されたコンテンツを示すコンテンツ情報を、そのコンテンツの直前に再生されたコンテンツのルートノードに対して送信する(ステップS25)。このコンテンツ情報は、たとえばステップS24の動作により再生されたコンテンツのコンテンツIDである。ステップS25のコンテンツ情報は、たとえばネットワーク8を介して送信される。
次に、ステップS25の動作によりコンテンツ情報が送信されたルートノードの動作について、図4(b)を用いて説明する。なお以下に説明する動作は、ステップS11の動作によりコンテンツ情報が送信されたインデックスファイルIFのルートノードではなく、ステップS24の動作により再生されたコンテンツの直前に再生されたコンテンツのルートノードにおける動作である。このコンテンツのルートノードの記憶部22には、そのコンテンツの第1順序情報が記憶されている。
図4(b)に示すように、再生されたコンテンツのルートノードの制御部21は、その図示しない電源スイッチがオンとされると、図4(b)のフローチャートの動作を開始する。先ず制御部21は、そのルートノードの動作に用いられる各種プログラムを初期化する(ステップS40)。次に制御部21は、ユーザノードとの間で通信が発生したか否かを監視する(ステップS41)。ステップS41の監視内容として具体的に制御部21は、再生されたコンテンツのコンテンツ情報がユーザノードから送信されてきたか否かを監視する。ステップS41の監視においてユーザノードとの間の通信が発生していない場合(ステップS41;NO)、制御部21はステップS44の動作に移行する。一方ステップS41の監視においてユーザノードとの間の通信が発生した場合(ステップS41;YES)、制御部21はその通信により送信されてきたコンテンツ情報を取得する(ステップS42)。その後制御部21は、取得したコンテンツ情報を記憶部22に記憶されている第1順序情報に反映させる(ステップS43)。その後制御部21は、ルートノードの電源スイッチがオフとされたか否かを判定する(ステップS44)。ステップS44の判定において電源スイッチがオフとされていない場合(ステップS44;NO)、制御部21は上記ステップS41の動作に移行する。ステップS44の判定において電源スイッチがオフとされている場合(ステップS44;YES)、制御部21はそのまま実施形態のルートノードとしてのコンテンツ配信動作を終了する。
ここで、コンテンツのルートノードの制御部21における上記ステップS43の動作について具体的に説明する。記憶部22に記憶されている第1順序情報には、ルートノードにより管理されているコンテンツの次に再生されるべき他のコンテンツのコンテンツIDが、その取得の順序を示す情報と共に記述されている。この順序を示す情報の一例は、ステップS42の動作でコンテンツ情報としてコンテンツIDが取得される度にインクリメントされる優先度情報である。この順序を示す情報は、ユーザノードにおいて実際に再生されたコンテンツのコンテンツ情報が、そのコンテンツの直前に再生されたコンテンツのルートノードにおいて受信される度に、その値がインクリメントされる情報である。この順序を示す情報のインクリメントにより、多数のユーザノードにおいて実際にコンテンツが再生されると、その実際に再生されたコンテンツの直前に再生されたコンテンツの第1順序情報における、その実際に再生されたコンテンツの取得順序が先になる。この第1順序情報を参照することにより、以降の先読みダウンロードにおいて、ユーザノードの制御部21は、ユーザに人気のあるコンテンツから優先してダウンロードできる。なお順序を示す情報の他の例としては、単純に数字で所定の取得順序を表した情報であってもよい。
図5に戻って、ステップS25の動作によりコンテンツ情報を送信したら、次にユーザノードの制御部21は、ステップS23の動作により停止した先読みダウンロードを、その停止したコンテンツの位置から再開する(ステップS26)。その後制御部21は、ステップS17の動作に移行する。
次に、上記ステップS17の監視において再生用ダウンロードを行う必要がない場合(ステップS17;NO)、制御部21は次に、現在再生されているコンテンツの順序がステップS12において取得した第2順序情報により示される順序に準拠しているか否かを判定する(ステップS18)。ステップS18の判定において、現在の再生順序が第2順序情報により示される順序に準拠している場合(ステップS18;YES)、制御部21は次に、先読みダウンロードを終了するか否かを判定する(ステップS19)。すなわち制御部21は、現在先読みダウンロード中のコンテンツについてのダウンロードが完了したか否かを判定する。ステップS19の判定において先読みダウンロードを終了すべきでない場合(ステップS19;NO)、制御部21は上記ステップS16の動作に移行して先読みダウンロードを継続する。一方ステップS19の判定において現在実行中の先読みダウンロードを終了する場合(ステップS19;YES)、制御部21は次に、さらに先読みダウンロードすべきコンテンツがないか否かを判定する(ステップS20)。すなわち制御部21は、ステップS12の動作により取得した第2順序情報により示されるコンテンツの先読みダウンロードが全て終了したか否かを判定する。第2順序情報において先読みダウンロードすべきコンテンツがまだある場合(ステップS20;NO)、制御部21は上記ステップ13の動作に移行する。一方ステップS20の判定において先読みダウンロードすべき他のコンテンツがない場合(ステップS20;YES)、制御部21は図4(a)に示すステップS30の動作に移行する。
次に、上記ステップS18の判定において、現在の再生順序が第2順序情報により示される順序に準拠していない場合(ステップS18;NO)、制御部21は次に、現在再生しているコンテンツのルートノードから第1順序情報を取得する(ステップS21)。この第1順序情報には、上述したように、再生中のコンテンツの次に再生されるべき他のコンテンツのコンテンツIDが、他のコンテンツの取得の順序を示す情報と共に記述されている。これ以降の先読みダウンロードにおいては、第2順序情報は用いられない。次に制御部21は、取得した第1順序情報に基づき、先読みダウンロードすべきコンテンツがないか否かを判定する(ステップS22)。すなわち制御部21は、ステップS21の動作により取得した第1順序情報により示されるコンテンツの先読みダウンロードが全て終了したか否かを判定する。第1順序情報において先読みダウンロードすべきコンテンツがまだある場合(ステップS22;NO)、制御部21は上記ステップ13の動作に移行する。このときのステップS13の動作において制御部21は、取得した第1順序情報において次に再生すべきとされているコンテンツを選択する(ステップS13)。また、これ以降のステップS14からS26までの動作において制御部21は、上記ステップS12の動作により取得した第2順序情報に代えて、上記ステップS21の動作により取得した第1順序情報を用いて先読みダウンロードの順序を判定する。なお、第1順序情報を用いた先読みダウンロードが一旦開始されると、その第1順序情報に記述された順序を示す情報に沿って先読みダウンロードが継続される限りは、その第1順序情報が継続して用いられる。すなわち制御部21は、上記ステップS18の判定が「YES」とされる限り、その時に取得している第1順序情報に記述された順序を示す情報に沿って先読みダウンロードを継続する。これに対し、現在用いられている第1順序情報に記述された順序を示す情報に沿って先読みダウンロードが継続されないとき、制御部21は、現在再生しているコンテンツのルートノードから新たな第1順序情報を取得する(ステップS21)。すなわち制御部21は、上記ステップS18の判定が「NO」とされた場合、その時に取得している第1順序情報に代えて、現在再生しているコンテンツのルートノードから新たな第1順序情報を取得する(ステップS21)。その後制御部21は、新たに取得した第1順序情報に記述された順序を示す情報に沿って先読みダウンロードを行う。
次に、図1から図5までを用いて説明した実施形態のコンテンツ配信動作を、具体的な複合コンテンツの構造を例示しつつさらに説明する。先ず、図6(a)に例示する構造を備える複合コンテンツを再生する場合について、具体的に説明する。
図6(a)に例示する複合コンテンツM1は、第1章コンテンツCC1、第2−1章コンテンツCC2−1、第2−2章コンテンツCC2−2、第3章コンテンツCC3、第4−1章コンテンツCC4−1、第4−2章コンテンツCC4−2、第4−3章コンテンツCC4−3、第5−1章コンテンツCC5−1および第5−2章コンテンツCC5−2から構成されている。第2−1章コンテンツCC2−1から第5−2章コンテンツCC5−2まではサブコンテンツである。複合コンテンツM1では、メインコンテンツである第1章コンテンツCC1が再生された後には、第2−1章コンテンツCC2−1または第2−2章コンテンツCC2−2のいずれかの再生が選択可能とされている。さらに第3章コンテンツCC3が再生された後には、第4−1章コンテンツCC4−1、第4−2章コンテンツCC4−2または第4−3章コンテンツCC4−3のいずれかの再生が選択可能とされている。このような構成の複合コンテンツM1において、あるタイミングにおける第2順序情報に、第1章コンテンツCC1→第2−1章コンテンツCC2−1→第3章コンテンツCC3→第4−1章コンテンツCC4−1→第5−1章コンテンツCC5−1の順が記述されていたとする。この場合、ユーザノードの制御部21は、第2順序情報に従ってメインコンテンツである第1章コンテンツCC1から取得して再生を開始する。ここで、ユーザノードにおいてユーザにより第3章コンテンツCC3の次に第4−3章コンテンツCC4−3を再生する旨の操作が為されたとする。このときの操作は、第2順序情報に記述されている順序とは異なる順序である。そこで制御部21は、図5ステップS18の判定を「NO」と判定する。そして制御部21は、ダウンロード中であった第5−1章コンテンツCC5−1のダウンロードを停止し、第4−3章コンテンツCC4−3のダウンロードと再生を行う。その後制御部21は、第4−3章コンテンツCC4−3のコンテンツ情報を第3章コンテンツCC3のルートノードに送信する。なお、ダウンロードされた第4−1章コンテンツCC4−1および第5−1章コンテンツCC5−1のコンテンツデータは、記憶部22から削除される。次に制御部21は、第4−3章コンテンツCC4−3のルートノードから第1順序情報を取得する。この第1順序情報には、次に再生すべきコンテンツとして第5−2章コンテンツCC5−2が記述されている。この点は図6(a)に例示されている。そこで制御部21は、第4−3章コンテンツCC4−3のダウンロード終了後に第5−2章コンテンツCC5−2のダウンロードと再生を行う。
以上説明したように、実施形態のコンテンツ配信動作によれば、ユーザノードの制御部21は、取得要求の対象が一般コンテンツであると判定されたとき、制御部21は対応するコンテンツIDを用いて一般コンテンツを取得する。その対象が複合コンテンツを構成するコンテンツであると判定されたとき、制御部21はインデックスファイルIFを取得し、それに基づいてコンテンツを取得する。よって、複合コンテンツを構成するコンテンツであっても的確に取得することができる。
また、ユーザノードの制御部21は、インデックスファイルIFに基づいて複合コンテンツにおいて最初にユーザノードに取得されるべきコンテンツを識別するためのコンテンツIDをさらに取得する。その後制御部21は、そのコンテンツIDにより識別されるコンテンツを取得する。よって最初に取得すべきコンテンツを迅速に取得することができる。
さらに、各ルートノードの制御部21は、ユーザノードに取得されたコンテンツを示すコンテンツ情報を取得し、そのコンテンツ情報に基づいて各順序情報を決定する。よって、複合コンテンツを構成するコンテンツの取得順序をユーザの取得傾向に沿った順序とすることができる。
さらにまた、ルートノードの制御部21は、記憶されているコンテンツ情報に基づいて以降のコンテンツの取得順序を示す各順序情報を決定する。よって、複合コンテンツを構成するコンテンツの取得順序をユーザの取得傾向に沿った順序とすることができる。
また、コンテンツ配信ページのページデータWPMには、最初にユーザノードで再生されるべきコンテンツのファイル名が含まれている。よって、最初に再生されるべきコンテンツを迅速に取得することができる。
さらに、ユーザノードの制御部21は、インデックスファイルIFにより示される構造に対応した第2順序情報を取得する。制御部21はその第2順序情報に基づいてコンテンツを取得する。よって、関連付けられた複数のコンテンツを順序よく的確に取得することができる。
また、第2順序情報により示される順序と異なる順序の取得要求がされたとき、その異なる順序でコンテンツを取得する。よって、第2順序情報と異なる順序で取得が要求された場合でも、コンテンツを的確に取得することができる。
さらにまた、異なる順序で取得したコンテンツを示すコンテンツ情報が、そのコンテンツの直前に取得されたコンテンツのルートノードの記憶部22に記憶される。よって、異なる順序で取得されたコンテンツの、それ以降の取得順序をユーザの取得傾向に沿った順序とすることができる。
また、ユーザノードの制御部21は、取得したコンテンツを示すコンテンツ情報をインデックスファイルIFのルートノードに送信して記憶させる。よって、コンテンツの取得順序をユーザの取得傾向に沿った順序とすることができる。
なお、図6(a)に例示する複合コンテンツM1の場合は、再生すべきコンテンツの選択の自由度が、ある程度制限されている。たとえば、第3章コンテンツCC3は、第2−1章コンテンツCC2−1または第2−2章コンテンツCC2−2をダウンロードした後でなければ先読みダウンロードの対象とはされない。これに対し、図6(b)に例示する複合コンテンツM2は、第1章コンテンツCC1、第2章コンテンツCC2および第3章コンテンツCC3と、メニューコンテンツCMと、から構成されている。複合コンテンツM2の場合、各コンテンツの次に取得されるべきコンテンツの選択の自由度が高い。このような複合コンテンツM2の場合は、実施形態の第2順序情報を使用せず、実施形態の第1順序情報のみを用いて先読みダウンロードを行うように構成することができる。この場合には選択の自由度が高い複合コンテンツM2であっても、的確に先読みダウンロードを行うことができる。
また、実施形態のコンテンツ配信動作では、ユーザノードは、コンテンツ配信ページの閲覧により、複合コンテンツのインデックスファイルIFのコンテンツIDを認識した。これ以外に、各ノードNnに配信されるカタログ情報内に複合コンテンツを識別するための情報が記載されていてもよい。このようなカタログ情報が各ノードNnに配信されることにより、ユーザノードは、複合コンテンツと一般コンテンツとを区別して取得することができる。
さらに、図4および図5に示した動作に対応するプログラムは、例えばネットワーク8に接続された所定のサーバから各ノードNnにダウンロードされるようにしても良い。またこのプログラムは、例えば記録媒体に記録されて当該記録媒体のドライブを介して実施形態におけるノードNnの制御部21に読み込まれて実行されるようにしても良い。