(57)【要約】【課題】複合コンテンツが配信システムに投入される場合であっても、ネットワークの利用効率を向上させることが可能な情報処理装置、情報処理プログラム、情報処理方法、及び配信システムを提供する。【解決手段】情報処理装置は、複数のコンテンツデータから構成される複合コンテンツデータを取得し、各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定する。そして、情報処理装置は、所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定し、決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与する。そして、情報処理装置は、識別情報が付与されたコンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとしてオーバーレイネットワークに公開する。【選択図】図４
2011215931.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理装置であって、
複数のコンテンツデータから構成される複合コンテンツデータを取得する取得手段と、
前記取得手段により取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定する判定手段と、
前記判定手段により所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定する決定手段と、
前記決定手段により決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与する付与手段と、
前記付与手段により識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開する公開手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
複合コンテンツデータを構成する複数のコンテンツデータのうちから、所定のルールに基づいてコンテンツデータを選択する選択手段と、
前記選択手段により前記コンテンツデータが選択される度に、前記選択手段により選択された前記コンテンツデータのデータ量の総和と、予め設定された閾値とを比較する比較手段と、
を更に備え、
前記決定手段は、前記比較手段による比較結果に基づいて、前記コンテンツデータのデータ量の総和が、予め設定された閾値以下に収まるように複数のコンテンツデータを決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選択手段は、前記判定手段により判定された前記データ量が大きい順に、前記コンテンツデータを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記複合コンテンツデータを構成する各コンテンツデータは出力される順番で関連付けられており、
前記選択手段は、前記出力される順番で前記コンテンツデータを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記複合コンテンツデータを構成する各コンテンツデータは階層構造で関連付けられており、
前記選択手段は、前記階層構造の下位階層に位置する前記コンテンツデータを優先して選択することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記複合コンテンツデータを構成する各コンテンツデータは階層構造で関連付けられており、
前記決定手段は、前記階層構造において、上下の階層関係で関連付けられた複数のコンテンツデータを、一つに纏める複数のコンテンツデータとして決定することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理装置に含まれるコンピュータに、
複数のコンテンツデータから構成される複合コンテンツデータを取得するステップと、
前記取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定するステップと、
前記所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定するステップと、
前記決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与するステップと、
前記識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開するステップと、
を実行させるための情報処理プログラム。
【請求項８】
ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理方法であって、
複数のコンテンツデータから構成される複合コンテンツデータを取得するステップと、
前記取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定するステップと、
前記所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定するステップと、
前記決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与するステップと、
前記識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開するステップと、
を含むことを特徴とする情報処理方法。
【請求項９】
ネットワークを介して互いに通信可能な複数の情報処理装置を備え、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおいて、
第一の情報処理装置は、
複数のコンテンツデータから構成される複合コンテンツデータを取得する取得手段と、
前記取得手段により取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定する判定手段と、
前記判定手段により所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定する決定手段と、
前記決定手段により決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与する付与手段と、
前記付与手段により識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開する公開手段と、
を備え、
第二の情報処理装置は、
前記一つに纏められたコンテンツデータに付与された固有の識別情報に基づいて他の情報処理装置から当該コンテンツデータを取得する取得手段を備えることを特徴とする配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の配信システムの技術分野に関する。
【背景技術】
【０００２】
近年、ピアツーピア型の配信システムにおいて、一つのコンテンツデータが複数に分割された各分割コンテンツデータを、複数のノード装置に分散保存した配信システムが知られている（特許文献１参照）。一つの分割コンテンツデータのデータ量は例えば数Ｍbyteになっている。以下、コンテンツデータを「コンテンツ」という。特許文献１に開示された配信システムでは、各分割コンテンツには固有のコンテンツＩＤが付与されている。そして、各ノード装置は、分割コンテンツのコンテンツＩＤに基づいて他のノード装置から分割コンテンツ単位で分割コンテンツを取得すること可能になっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2008-047065号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えばＳＷＦ（Shockwave Flash）やＨＴＭＬ（Hyper Text Markup Language）等によって作成されたコンテンツは、複数のコンテンツから構成される。このように複数のコンテンツから構成されるコンテンツを、以下、「複合コンテンツ」という。また、複合コンテンツを構成する各コンテンツを、以下、「サブコンテンツ」という。そして、複合コンテンツは、ファイルサイズが１ｋbyte以下の複数のサブコンテンツと、ファイルサイズが数Ｍbyte〜数Ｇbyte程度のサブコンテンツとから構成される場合がある。このような複合コンテンツをピアツーピア型の配信システムに投入する場合、上記分割コンテンツと同様、各サブコンテンツに固有のコンテンツＩＤを付与することが想定される。
【０００５】
この場合、ノード装置は、複合コンテンツを再生する際に各サブコンテンツをコンテンツＩＤに基づいて他の複数のノード装置から取得する。しかしながら、ピアツーピア型の配信システムでは、ファイルサイズの小さいサブコンテンツであっても、１つのコンテンツとして管理される。そのため、ノード装置がサブコンテンツを取得するとき、またはサブコンテンツを保存したときなどに送受信されるメッセージの総量が増大し、ネットワークの利用効率を低下させるという問題がある。
【０００６】
そこで、本発明は、以上の問題等に鑑みてなされたものであり、複合コンテンツが配信システムに投入される場合であっても、ネットワークの利用効率を向上させることが可能な情報処理装置、情報処理プログラム、情報処理方法、及び配信システムを提供すること等を課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理装置であって、複数のコンテンツデータから構成される複合コンテンツデータを取得する取得手段と、前記取得手段により取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定する判定手段と、前記判定手段により所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定する決定手段と、前記決定手段により決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与する付与手段と、前記付与手段により識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開する公開手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、複合コンテンツデータを構成する複数のコンテンツデータのうちから、所定のルールに基づいてコンテンツデータを選択する選択手段と、前記選択手段により前記コンテンツデータが選択される度に、前記選択手段により選択された前記コンテンツデータのデータ量の総和と、予め設定された閾値とを比較する比較手段と、を更に備え、前記決定手段は、前記比較手段による比較結果に基づいて、前記コンテンツデータのデータ量の総和が、予め設定された閾値以下に収まるように複数のコンテンツデータを決定することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項２に記載の情報処理装置において、前記選択手段は、前記判定手段により判定された前記データ量が大きい順に、前記コンテンツデータを選択することを特徴とする。
【００１０】
請求項４に記載の発明は、請求項２に記載の情報処理装置において、前記複合コンテンツデータを構成する各コンテンツデータは出力される順番で関連付けられており、前記選択手段は、前記出力される順番で前記コンテンツデータを選択することを特徴とする。
【００１１】
請求項５に記載の発明は、請求項２に記載の情報処理装置において、前記複合コンテンツデータを構成する各コンテンツデータは階層構造で関連付けられており、前記選択手段は、前記階層構造の下位階層に位置する前記コンテンツデータを優先して選択することを特徴とする。
【００１２】
請求項６に記載の発明は、請求項１に記載の情報処理装置において、前記複合コンテンツデータを構成する各コンテンツデータは階層構造で関連付けられており、前記決定手段は、前記階層構造において、上下の階層関係で関連付けられた複数のコンテンツデータを、一つに纏める複数のコンテンツデータとして決定することを特徴とする。
【００１３】
請求項７に記載の発明は、ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理装置に含まれるコンピュータに、複数のコンテンツデータから構成される複合コンテンツデータを取得するステップと、前記取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定するステップと、前記所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定するステップと、前記決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与するステップと、前記識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開するステップと、を実行させるための情報処理プログラムである。
【００１４】
請求項８に記載の発明は、ネットワークを介して互いに通信可能な複数の情報処理装置から構成されるオーバーレイネットワーク内で、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて、前記オーバーレイネットワークに接続される他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおける情報処理方法であって、複数のコンテンツデータから構成される複合コンテンツデータを取得するステップと、前記取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定するステップと、前記所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定するステップと、前記決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与するステップと、前記識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開するステップと、を含むことを特徴とする。
【００１５】
請求項９に記載の発明は、ネットワークを介して互いに通信可能な複数の情報処理装置を備え、１つ以上の情報処理装置にコンテンツデータが保存され、各情報処理装置はコンテンツデータに付与された固有の識別情報に基づいて他の情報処理装置から当該コンテンツデータを取得するように構成された配信システムにおいて、第一の情報処理装置は、複数のコンテンツデータから構成される複合コンテンツデータを取得する取得手段と、前記取得手段により取得された複合コンテンツデータを構成する各コンテンツデータのデータ量が、所定のデータ量より小さいか否かを判定する判定手段と、前記判定手段により所定のデータ量より小さいと判定された１つ以上のコンテンツデータうちから、一つに纏めるコンテンツデータを決定する決定手段と、前記決定手段により決定されたコンテンツデータを一つに纏めたコンテンツデータに固有の識別情報を付与する付与手段と、前記付与手段により識別情報が付与された前記コンテンツデータを、他の情報処理装置から取得可能なコンテンツデータとして前記オーバーレイネットワークに公開する公開手段と、を備え、第二の情報処理装置は、前記一つに纏められたコンテンツデータに付与された固有の識別情報に基づいて他の情報処理装置から当該コンテンツデータを取得する取得手段を備えることを特徴とする。
【発明の効果】
【００１６】
請求項１、７乃至９に記載の発明によれば、データ量が小さいコンテンツデータが１つのコンテンツデータとして纏められてオーバーレイネットワークに投入されて公開される。従って、複合コンテンツデータを取得する場合であっても、データ容量の小さいコンテンツデータを１つに纏めることで、オーバーレイネットワーク上で飛び交う各種メッセージの総量を抑え、ネットワークの利用効率を高めることができる。
【００１７】
請求項２に記載の発明によれば、コンテンツデータのデータ量の総和が、予め設定された閾値以下に収まるように一つのコンテンツデータとしてより効率良く纏めることができる。
【００１８】
請求項３に記載の発明によれば、より効率良く、簡単な実装で一つのコンテンツデータとして纏めることができる。
【００１９】
請求項４乃至６に記載の発明によれば、複合コンテンツデータが再生される場合に、複合コンテンツデータを構成するコンテンツデータをより迅速に取得することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。
【図２】コンテンツ管理サーバＭＳの概要構成例を示すブロック図である。
【図３】ノードＮｎの概要構成例を示すブロック図である。
【図４】コンテンツ管理サーバＭＳの制御部１における複合コンテンツの投入処理を示すフローチャートである。
【図５】実施例１におけるチャンク化処理を示すフローチャートである。
【図６】図５に示すステップＳ２２２におけるサブコンテンツの分割処理の詳細を示すフローチャートである。
【図７】実施例２におけるチャンク化処理を示すフローチャートである。
【図８】（Ａ）は、階層構造で関連付けられている複数のサブコンテンツがチャンク化される様子を示す概念図である。（Ｂ）は、生成されたメタファイルのデータ部に記述されたサブコンテンツの情報の一例を示す図である。
【図９】ノードＮｎの制御部１１における複合コンテンツの再生処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに本発明を適用した場合の実施形態である。
【００２２】
［１．コンテンツ配信システムの構成及び動作概要］
始めに、図１を参照して、本実施形態に係るコンテンツ配信システムの構成及び動作概要について説明する。図１は、本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。
【００２３】
図１に示すように、本実施形態に係るコンテンツ配信システムＳは、コンテンツ管理サーバＭＳ、コンテンツ提供者の管理端末Ｔｍ、及び複数のノード装置Ｎｎ（ｎ＝１，２，３・・・ｋ）等を備えて構成されている。コンテンツ管理サーバＭＳ、コンテンツ提供者の管理端末Ｔｍ及び各ノード装置Ｎｎは、インターネット等からなるネットワークＮＷに接続されている。なお、ノード装置を、以下、「ノード」という。また、各ノードＮｎには固有の識別情報であるノードＩＤが割り当てられている。また、コンテンツ管理サーバＭＳは、本発明における情報処理装置又は第一の情報処理装置の一例である。また、ノードＮｎは、本発明における第二の情報処理装置の一例である。
【００２４】
コンテンツ配信システムＳには、オーバーレイネットワークＯＮが形成されている。オーバーレイネットワークＯＮは、ネットワークを介して互いに通信可能な複数のノードＮｎにより構成される仮想的なリンクを構成する論理的なネットワークである。また、オーバーレイネットワークＯＮは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、以下、「ＤＨＴ（Distributed Hash Table）」という。なお、ＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００２５】
そして、コンテンツ管理サーバＭＳは、例えばコンテンツ提供者の管理端末Ｔｍからアップロードされたコンテンツをコンテンツ配信システムＳ内に投入する。ここで、コンテンツの投入とは、オーバーレイネットワークＯＮに参加している１以上のノードＮｎに、新たなコンテンツを保存させることをいう。なお、コンテンツを保存しているノードＮｎを、以下、「コンテンツ保持ノード」という。投入された各コンテンツには固有の識別情報であるコンテンツＩＤが付与されている。そして、各ノードＮｎは、コンテンツＩＤに基づき、他のノードＮｎに保存されているコンテンツを、オーバーレイネットワークＯＮを介して取得可能になっている。このように取得されたコンテンツはノードＮｎに保存される。こうして、コンテンツは、オーバーレイネットワークＯＮにおける複数のコンテンツ保持ノードに分散されて保存されることになる。
【００２６】
また、所定のデータ量より大きいファイルサイズを有するコンテンツは所定のデータ量以下のサイズ毎に分割される。その結果、複数のチャンクが生成される。ここで、所定のデータ量を、以下、「閾値」という。また、ファイルサイズは、コンテンツのデータ量を表す。また、チャンクは、ヘッダ部とデータ部とから構成される。ヘッダ部には、チャンクに固有の識別情報であるチャンクＩＤと、チャンクのファイルサイズが含まれる。また、データ部には、分割されたデータが含まれる。そして、チャンクは、１つのコンテンツとしてコンテンツ配信システムＳ内に投入される。各ノードＮｎは、チャンクＩＤに基づき、オーバーレイネットワークＯＮを介して他のノードＮｎからチャンクを取得可能になっている。
【００２７】
一方、複数のサブコンテンツから構成された複合コンテンツがコンテンツ配信システムＳに投入される場合がある。この場合、１つのサブコンテンツを１つのチャンクとしてコンテンツ配信システムＳ内に投入することができる。しかし、ファイルサイズが例えば１ｋbyte以下のサブコンテンツを１つのチャンクとすると、上述したように、ネットワークＮＷの利用効率を低下させる。そのため、本実施形態では、ファイルサイズが例えば１ｋbyte以下のサブコンテンツは複数纏められ１つのチャンクとして投入されることになる。また、ファイルサイズが閾値より大きいサブコンテンツは、複数のチャンクに分割された後、コンテンツ配信システムＳ内に投入される。なお、以下の説明において、単に「コンテンツ」という場合には、複合コンテンツと、複合コンテンツ以外の通常のコンテンツとの双方を含むものとする。
【００２８】
ところで、コンテンツを構成する各チャンクのチャンクＩＤは、例えば、このコンテンツのメタファイルに記述されている。コンテンツのメタファイルとは、分割されたコンテンツを構成する各チャンクを検索するためのファイルである。また、コンテンツのメタファイルには、コンテンツ中における各チャンクの対応関係を示す情報がチャンクＩＤに対応付けられて記述されている。この対応関係を示す情報は、例えば、コンテンツ中における各チャンクの再生順序、又は各チャンクの先頭位置のバイト数で表される。そして、コンテンツのメタファイルは、１つのコンテンツとしてコンテンツ配信システムＳ内に投入される。投入されたメタファイルには、これに対応するコンテンツのコンテンツＩＤが付与されている。そのため、各ノードＮｎは、コンテンツＩＤに基づき、オーバーレイネットワークＯＮを介して他のノードＮｎからコンテンツのメタファイルを取得することができる。なお、ノードＩＤ、コンテンツＩＤ、及びチャンクＩＤは、例えば、特開２００６−１９７４００号公報等に開示されるように、共通のハッシュ関数によりハッシュ化されて生成される。
【００２９】
また、コンテンツの所在、コンテンツのメタファイルの所在、又はチャンクの所在を示す情報は、インデックス情報として、コンテンツの所在を管理しているノードＮｎに記憶される。コンテンツの所在を管理しているノードＮｎを、以下、「ルートノード」という。このインデックス情報には、コンテンツ又はコンテンツのメタファイルを保存しているコンテンツ保持ノードのノード情報と、コンテンツ又はコンテンツのメタファイルのコンテンツＩＤとの組が含まれる。又は、このインデックス情報には、チャンクを保存しているコンテンツ保持ノードのノード情報と、このチャンクのチャンクＩＤとの組が含まれる。ノード情報には、コンテンツ保持ノードのＩＰアドレス、ポート番号、及びノードＩＤが含まれる。ルートノードは、例えば、コンテンツＩＤ又はチャンクＩＤと最も近いノードＩＤが割り当てられたノードＮｎであるように定められる。コンテンツＩＤ又はチャンクＩＤと最も近いノードＩＤとは、例えば、ＩＤの上位桁が最も多く一致するノードＩＤである。
【００３０】
［２．コンテンツ管理サーバＭＳの構成及び機能］
次に、図２を参照して、コンテンツ管理サーバＭＳの構成及び機能について説明する。
【００３１】
図２は、コンテンツ管理サーバＭＳの概要構成例を示すブロック図である。
【００３２】
コンテンツ管理サーバＭＳは、図２に示すように、制御部１、記憶部２、及び通信部３等を備えて構成される。制御部１、記憶部２、及び通信部３はバス４を介して相互に接続されている。
【００３３】
記憶部２は、例えばハードディスクドライブ等から構成される。記憶部２には、オペレーティングシステム、及び情報処理プログラム等が記憶されている。なお、情報処理プログラムは、例えば、ネットワークＮＷに接続された所定のサーバからダウンロードされるようにしても良い。或いは、情報処理プログラムは、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００３４】
また、記憶部２には、コンテンツのレコードを有するコンテンツカタログ情報等が記憶されている。コンテンツのレコードには、コンテンツのコンテンツＩＤ、コンテンツ名、及びキーワード等が記述されている。そして、コンテンツレコードは、コンテンツがコンテンツ配信システムＳ内に投入される際に生成される。そして、生成されたレコードを含むコンテンツカタログ情報はコンテンツ管理サーバＭＳから各ノードＮｎに配信される。
【００３５】
なお、コンテンツのメタファイルに記述される情報が、このコンテンツのレコード内に記述されるように構成しても良い。この場合、コンテンツのメタファイルをコンテンツ配信システムＳ内に投入する必要がない。通信部３は、ネットワークＮＷを通じてノードＮｎ等との間の情報の通信制御を行う。
【００３６】
制御部１は、演算機能を有するＣＰＵ，作業用ＲＡＭ，及びＲＯＭ等から構成される。そして、制御部１は、ＣＰＵが記憶部２等に記憶された情報処理プログラムを読み出して実行することにより、後述する処理を行う。なお、制御部１は、本発明における取得手段、判定手段、決定手段、付与手段、公開手段、選択手段、及び比較手段の一例である。
【００３７】
［３．ノードＮｎの構成及び機能］
次に、図３を参照して、ノードＮｎの構成及び機能について説明する。
【００３８】
図３は、ノードＮｎの概要構成例を示すブロック図である。
【００３９】
ノードＮｎは、図３に示すように、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、映像処理部１５、表示部１６、音声処理部１７、スピーカ１８、通信部１９、及び入力部１９ａ等を備えて構成される。制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、映像処理部１５、表示部１６、音声処理部１７、通信部１９、及び入力部１９ａは、バス１９ｂを介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、ＴＶ受信機、或いは、カラオケ装置等が適用可能である。
【００４０】
記憶部１２は、例えばハードディスクドライブ等から構成される。記憶部１２には、オペレーティングシステム、及びＰ２Ｐプログラム等が記憶されている。また、記憶部１２には、コンテンツ保持ノード、又はコンテンツ管理サーバＭＳから取得されたコンテンツ又はコンテンツのメタファイル、更にはチャンクが記憶、保存されている。更に、オーバーレイネットワークＯＮに参加しているノードＮｎの記憶部１２には、コンテンツカタログ情報及びＤＨＴを用いたルーティングテーブル等が記憶されている。
【００４１】
バッファメモリ１３は、受信されたコンテンツ又はチャンクをバッファリングする。デコーダ部１４は、コンテンツ又はチャンクに含まれる映像データ及び音声データ等のデータ伸張や復号化等のデコード処理を行う。映像処理部１５は、デコーダ部１４によりデコードされた映像データ等に対して所定の描画処理を施し映像信号として再生出力する。表示部１６は、映像処理部１５から再生出力された映像信号に基づきディスプレイに映像等を表示する。また、表示部１６は、デコーダ部１４によりデコードされた画像を表示する。音声処理部１７は、デコーダ部１４によりデコードされた音声データをアナログ音声信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する。スピーカ１８は、音声処理部１７から出力された音声信号を音波として出力する。通信部１９は、ネットワークＮＷを通じてコンテンツ管理サーバＭＳ及び他のノードＮｎ等との間の情報の通信制御を行う。
【００４２】
制御部１１は、演算機能を有するＣＰＵ，作業用ＲＡＭ，及びＲＯＭ等から構成される。そして、制御部１１は、ＣＰＵが記憶部１２等に記憶されたＰ２Ｐプログラムを読み出して実行することにより、後述する処理を行う。なお、制御部１１は、本発明における取得手段の一例である。
【００４３】
［４．コンテンツ配信システムＳの動作］
次に、本実施形態に係るコンテンツ配信システムＳの動作について説明する。
【００４４】
（４−１．複合コンテンツの投入動作）
先ず、図４等を参照して、複合コンテンツの投入動作について説明する。図４は、コンテンツ管理サーバＭＳの制御部１における複合コンテンツの投入処理を示すフローチャートである。図４に示す処理は、例えば、コンテンツ提供者の管理端末Ｔｍからコンテンツ管理サーバＭＳにアップロードされた複合コンテンツが制御部１により取得された場合に開始される。管理端末Ｔｍからアップロードされる複合コンテンツは、例えば、複数のサブコンテンツのファイルがアーカイブ化により一つの圧縮ファイルに纏められている。なお、取得された複合コンテンツは記憶部２に記憶される。
【００４５】
図４に示す処理が開始されると、制御部１は、取得した複合コンテンツをＲＡＭ上で展開し、各サブコンテンツの情報を記述したサブコンテンツリストを生成する（ステップＳ１）。生成されたサブコンテンツリストには、各サブコンテンツのアクセス子及びファイルサイズ等の情報が記述される。ここで、サブコンテンツのアクセス子は、例えばサブコンテンツのファイル名である。また、サブコンテンツのファイルサイズは、サブコンテンツのデータ量を表す。サブコンテンツのアクセス子及びファイルサイズは、例えばサブコンテンツのファイルのヘッダから取得される。
【００４６】
次いで、制御部１は、サブコンテンツのチャンク化処理を実行する（ステップＳ２）。以下に、チャンク化処理について実施例１と実施例２に分けて説明する。なお、チャンク化処理とは、サブコンテンツをチャンクに組み込む処理を意味する。
【００４７】
（実施例１におけるチャンク化処理）
先ず、図５を参照して、実施例１におけるチャンク化処理について説明する。図５は、実施例１におけるチャンク化処理を示すフローチャートである。図６は、図５に示すステップＳ２２２におけるサブコンテンツの分割処理の詳細を示すフローチャートである。
【００４８】
図５において、制御部１は、先ず、複合コンテンツのメタファイルを初期化する（ステップＳ２０１）。この初期化では、ヘッダ部とデータ部とから構成されるメタファイルが生成される。メタファイルのデータ部には、以下の処理で、サブコンテンツのアクセス子及びチャンクＩＤ等が記述されることになる。
【００４９】
次いで、制御部１は、上記ステップＳ１で生成されたサブコンテンツリストから、サブコンテンツを一つ選択する（ステップＳ２０２）。なお、サブコンテンツは、例えば、サブコンテンツリストに記述された順に選択される。また、選択されたサブコンテンツには、サブコンテンツリストにおいて選択済を示すフラグが記述される。
【００５０】
次いで、制御部１は、上記ステップＳ２０２で選択されたサブコンテンツのファイルサイズが、チャンクのファイルサイズの閾値より小さいか否かを判定する（ステップＳ２０３）。ステップＳ２０３で用いられる閾値は、例えば数Ｍbyteに予め設定される。そして、制御部１は、チャンクのファイルサイズの閾値より小さいと判定した場合には（ステップＳ２０３：ＹＥＳ）、ステップＳ２０４に進む。一方、制御部１は、チャンクのファイルサイズの閾値より小さくないと判定した場合には（ステップＳ２０３：ＮＯ）、ステップＳ２０５に進む。
【００５１】
ステップＳ２０４では、制御部１は、上記ステップＳ２０２で選択されたサブコンテンツの情報を、非分割用のサブコンテンツリストに記述し、ステップＳ２０６に進む。非分割用のサブコンテンツリストは、チャンクのファイルサイズの閾値より小さいファイルサイズを有するサブコンテンツの情報を記述するためのリストである。非分割用のサブコンテンツリストは、例えば、上記ステップＳ１で生成されたサブコンテンツリストとは別に生成される。或いは、非分割用のサブコンテンツリストは、上記ステップＳ１で生成されたサブコンテンツリスト内に設けられても良い。
【００５２】
ステップＳ２０５では、制御部１は、上記ステップＳ２０２で選択されたサブコンテンツの情報を、分割用のサブコンテンツリストに記述し、ステップＳ２０６に進む。分割用のサブコンテンツリストは、チャンクのファイルサイズの閾値以上のファイルサイズを有するサブコンテンツの情報を記述するためのリストである。分割用のサブコンテンツリストは、上記ステップＳ１で生成されたサブコンテンツリストとは別に生成される。或いは、分割用のサブコンテンツリストは、上記ステップＳ１で生成されたサブコンテンツリスト内に設けられても良い。
【００５３】
ステップＳ２０６では、制御部１は、サブコンテンツリスト上で未だ選択されていないサブコンテンツがあるか否かを判定する。そして、制御部１は、未だ選択されていないサブコンテンツがあると判定した場合には（ステップＳ２０６：ＹＥＳ）、ステップＳ２０２に戻る。ステップＳ２０２に戻ると、制御部１は、サブコンテンツリスト上で未だ選択されていないサブコンテンツのうちから、サブコンテンツを一つ選択し、上記ステップＳ２０３以降の処理を行う。
【００５４】
一方、制御部１は、未だ選択されていないサブコンテンツがないと判定した場合には（ステップＳ２０６：ＮＯ）、ステップＳ２０７に進む。
【００５５】
ステップＳ２０７では、制御部１は、非分割用のサブコンテンツリストに記述されたサブコンテンツの情報を所定の順序でソートする。一つの例として、制御部１は、サブコンテンツの情報をファイルサイズの大きい順（降順）にソートする。また、別の例として、制御部１は、サブコンテンツの情報をサブコンテンツの再生順にソートする。例えば、複合コンテンツにおいて、再生の起点となるサブコンテンツの情報を先頭として再生される順序でサブコンテンツの情報がソートされる。なお、再生は出力の一例である。
【００５６】
次いで、制御部１は、カウンタｉを“０”の値に初期化し、空のチャンクｉを生成する（ステップＳ２０８）。ここで、カウンタｉは変数であり例えば１ずつインクリメントされる。また、空のチャンクｉとは、そのデータ部にサブコンテンツが未だ組み込まれていないチャンクである。
【００５７】
次いで、制御部１は、非分割用のサブコンテンツリストから、所定のルールに基づいてサブコンテンツを選択する（ステップＳ２０９）。ここで、上記ステップＳ２０７でファイルサイズの大きい順にソートされる場合、「所定のルール」とは、ファイルサイズが大きい順にサブコンテンツを選択するルールである。この場合、制御部１は、ステップＳ２０９において、非分割用のサブコンテンツリストにおいて未だ選択されていないサブコンテンツのうちから、最もファイルサイズが大きいサブコンテンツを例えば１つ選択する。これにより、より効率良く、簡単な実装でチャンク化することが可能となる。なお、最もファイルサイズが大きいサブコンテンツが複数選択されるように構成してもよい。
【００５８】
一方、上記ステップＳ２０７でサブコンテンツの再生順にソートされる場合、「所定のルール」とは、ファイルサイズが大きい順にサブコンテンツを選択するルールである。この場合、制御部１は、ステップＳ２０９において、非分割用のサブコンテンツリストにおいて未だ選択されていないサブコンテンツのうちから、再生される順番が最も早いサブコンテンツを例えば１つ選択する。これにより、複合コンテンツが再生される場合に、チャンクからサブコンテンツをより迅速に取得することが可能となる。
【００５９】
次いで、制御部１は、カウンタｉが最新の値のときにステップＳ２０９で選択された全てのサブコンテンツのファイルサイズの総和を算出する（ステップＳ２１０）。ここで、カウンタｉは、ステップＳ２２１でインクリメントされるが、ステップＳ２１２が“ＮＯ”で、且つ、ステップＳ２１５で“ＹＥＳ”となることが継続している間のステップＳ２０９〜ステップＳ２１５のループにおいては、カウンタｉは変化せず同じ値をとることになる。「カウンタｉが最新の値」とは、現時点での上記ループにおけるカウンタｉを意味する。つまり、上記ステップＳ２１０では、カインタｉが最新の値（例えば、１０）であるときの上記ループにおいてステップＳ２０９で選択された全てのサブコンテンツのファイルサイズの総和が算出される。
【００６０】
次いで、制御部１は、上記ステップＳ２１０で算出されたファイルサイズの総和とチャンクのファイルサイズの閾値とを比較する（ステップＳ２１１）。つまり、サブコンテンツがステップＳ２０９で選択される度に、ファイルサイズの総和とチャンクのファイルサイズの閾値との比較処理が行われる。
【００６１】
次いで、制御部１は、ファイルサイズの総和がチャンクのファイルサイズの閾値より大きいか否かを判定する（ステップＳ２１２）。なお、ステップＳ２１１及びＳ２１２で用いられる閾値は、例えば、ステップＳ２０３で用いられる閾値と同一に設定される。或いは、ステップＳ２１１及びＳ２１２で用いられる閾値は、ステップＳ２０３で用いられる閾値より大きく設定されるように構成してもよい。
【００６２】
そして、制御部１は、ファイルサイズの総和がチャンクのファイルサイズの閾値より大きくないと判定した場合には（ステップＳ２１２：ＮＯ）、ステップＳ２１３に進む。一方、制御部１は、ファイルサイズの総和がチャンクのファイルサイズの閾値より大きいと判定した場合には（ステップＳ２１２：ＹＥＳ）、ステップＳ２１８に進む。
【００６３】
ステップＳ２１３では、制御部１は、直近のステップＳ２０９で選択されたサブコンテンツを、一つに纏めるコンテンツとして決定する。つまり、制御部１は、上記ステップＳ２１１における比較結果に基づいて、上記ステップＳ２１０で算出されたファイルサイズの総和が、チャンクのファイルサイズの閾値以下に収まるようにサブコンテンツを決定する。ファイルサイズの総和が、閾値以下に収まるように一つのコンテンツとしてより効率良く纏めることができる。
【００６４】
次いで、制御部１は、決定したサブコンテンツをチャンクｉのデータ部に組み込む（ステップＳ２１４）。ここで、既にチャンクｉのデータ部にサブコンテンツが組み込まれている場合がある。この場合、既に選択されて組み込まれているサブコンテンツに、その後に選択されたサブコンテンツが連結される。このとき、非分割用のサブコンテンツリストにおいて、チャンクｉに組み込まれたサブコンテンツの情報に対応付けられて選択済を示すフラグが記述される。
【００６５】
次いで、制御部１は、非分割用のサブコンテンツリスト上で未だ選択されていないサブコンテンツがあるか否かを判定する（ステップＳ２１５）。そして、制御部１は、未だ選択されていないサブコンテンツがあると判定した場合には（ステップＳ２１５：ＹＥＳ）、ステップＳ２０９に戻る。ステップＳ２０９に戻ると、制御部１は、サブコンテンツリスト上で未だ選択されていないサブコンテンツのうちからサブコンテンツを選択し、上記ステップＳ２１０以降の処理を行う。一方、制御部１は、未だ選択されていないサブコンテンツがないと判定した場合には（ステップＳ２１５：ＮＯ）、ステップＳ２１６に進む。
【００６６】
ステップＳ２１６では、制御部１は、サブコンテンツが組み込まれたチャンクｉに固有のチャンクＩＤを付与する。つまり、上記ステップＳ２１３で決定されたサブコンテンツを一つに纏めたチャンクｉにチャンクＩＤが付与される。チャンクＩＤの付与により、チャックｉのヘッダ部にチャンクＩＤが記述される。また、このとき、チャンクｉのヘッダ部には、チャンクｉのファイルサイズも記述される。こうしてチャンクＩＤが付与されたチャンクｉは記憶部２に記憶される。
【００６７】
次いで、制御部１は、上記ステップＳ２０１で生成されたメタファイルのデータ部に、チャンクｉに付与されたチャンクＩＤ、チャンクｉに組み込まれたサブコンテンツのアクセス子及びサブコンテンツのオフセット情報等を対応付けて記述し（ステップＳ２１７）、ステップＳ２２２に進む。ここで、オフセット情報は、チャンクｉの先頭からのサブコンテンツのデータ位置を示す。なお、データ位置は例えばバイト数で表される。
【００６８】
一方、ステップＳ２１８では、制御部１は、ステップＳ２１６と同様、サブコンテンツが組み込まれたチャンクｉに固有のチャンクＩＤを付与する。こうしてチャンクＩＤが付与されたチャンクｉは記憶部２に記憶される。
【００６９】
次いで、制御部１は、ステップＳ２１７と同様、上記ステップＳ２０１で生成されたメタファイルに、チャンクｉに付与されたチャンクＩＤ、チャンクｉに組み込まれたサブコンテンツのアクセス子及びサブコンテンツのオフセット情報等を対応付けて記述する（ステップＳ２１９）。
【００７０】
次いで、制御部１は、非分割用のサブコンテンツリスト上で未だ選択されていないサブコンテンツがあるか否かを判定する（ステップＳ２２０）。そして、制御部１は、未だ選択されていないサブコンテンツがあると判定した場合には（ステップＳ２２０：ＹＥＳ）、ステップＳ２２１に進む。一方、制御部１は、未だ選択されていないサブコンテンツがないと判定した場合には（ステップＳ２２０：ＮＯ）、ステップＳ２２２に進む。
【００７１】
ステップＳ２２１では、制御部１は、カウンタｉをインクリメントし、次の空のチャンクｉを生成してステップＳ２０９に戻る。
【００７２】
一方、ステップＳ２２２では、制御部１は、図６に示すサブコンテンツの分割処理を実行する。図６において、制御部１は、カウンタｉをインクリメントし、空のチャンクｉを生成する（ステップＳ２８１）。
【００７３】
次いで、制御部１は、分割用のサブコンテンツリストから、サブコンテンツを一つ選択する（ステップＳ２８２）。なお、サブコンテンツは、例えば、サブコンテンツリストに記述された順に選択される。また、選択されたサブコンテンツには、サブコンテンツリストにおいて選択済を示すフラグが記述される。
【００７４】
次いで、制御部１は、上記ステップＳ２８２で選択されたサブコンテンツを、チャンクのファイルサイズの閾値毎に分割する（ステップＳ２８３）。
【００７５】
次いで、制御部１は、分割されたサブコンテンツをチャンクｉのデータ部に組み込む（ステップＳ２８４）。
【００７６】
次いで、制御部１は、ステップＳ２１６と同様、サブコンテンツが組み込まれたチャンクｉに固有のチャンクＩＤを付与する（ステップＳ２８５）。こうしてチャンクＩＤが付与されたチャンクｉは記憶部２に記憶される。
【００７７】
次いで、制御部１は、ステップＳ２１７と同様、上記ステップＳ２０１で生成されたメタファイルに、チャンクｉに付与されたチャンクＩＤ、チャンクｉに組み込まれたサブコンテンツのアクセス子及びサブコンテンツのオフセット情報等を対応付けて記述する（ステップＳ２８６）。
【００７８】
次いで、制御部１は、上記ステップＳ２８３で分割されたサブコンテンツのうち、未だチャンクに組み込まれていないサブコンテンツがあるか否かを判定する（ステップＳ２８７）。そして、制御部１は、未だ組み込まれていないサブコンテンツがあると判定した場合には（ステップＳ２８７：ＹＥＳ）、ステップＳ２８８に進む。一方、制御部１は、未だ組み込まれていないサブコンテンツがないと判定した場合には（ステップＳ２８７：ＮＯ）、ステップＳ２８９に進む。
【００７９】
ステップＳ２８８では、制御部１は、カウンタｉをインクリメントし、次の空のチャンクｉを生成する。そして、制御部１は、ステップＳ２８４に戻り、未だ組み込まれていないサブコンテンツをチャンクｉのデータ部に組み込み、上記ステップＳ２８５以降の処理を行う。こうして、分割された全てのサブコンテンツは、各々のチャンクに組み込まれる。
【００８０】
一方、ステップＳ２８９では、制御部１は、分割用のサブコンテンツリスト上で未だ選択されていないサブコンテンツがあるか否かを判定する。そして、制御部１は、未だ選択されていないサブコンテンツがあると判定した場合には（ステップＳ２８９：ＹＥＳ）、ステップＳ２８１に戻り、上記ステップＳ２８２以降の処理を行う。一方、制御部１は、未だ選択されていないサブコンテンツがないと判定した場合には（ステップＳ２８９：ＮＯ）、図５に示す処理に戻る。
【００８１】
（実施例２におけるチャンク化処理）
次に、図７を参照して、実施例２におけるチャンク化処理について説明する。なお、実施例２は、複合コンテンツが、上位階層から下位階層までの階層構造で関連付けられている複数のサブコンテンツから構成される場合に有効である。なお、最上位階層は、木構造における「根」に相当する。一方、最下位階層は、木構造における「葉」に相当する。
【００８２】
図７は、実施例２におけるチャンク化処理を示すフローチャートである。図８（Ａ）は、階層構造で関連付けられている複数のサブコンテンツがチャンク化される様子を示す概念図である。実施例２の場合、上記ステップＳ１で生成されたサブコンテンツリストに記述された各サブコンテンツの情報には、例えば、階層構造における階層の位置を示す階層位置情報と、関連付けられる他のサブコンテンツを示すリンク情報とが含まれる。図７において、ステップＳ２４１〜Ｓ２４６の処理は、図５に示すステップＳ２０１〜Ｓ２０６の処理と同様であるので、重複する説明を省略する。
【００８３】
ステップＳ２４７では、制御部１は、非分割用のサブコンテンツリストに記述されたサブコンテンツの情報を所定の順序でソートする。実施例２の場合、制御部１は、サブコンテンツの情報を下位階層から順にソートする。なお、同じ階層のサブコンテンツは、例えば、サブコンテンツリストに記述された順にソートされる。
【００８４】
次いで、制御部１は、カウンタｉを“０”の値に初期化し、空のチャンクｉを生成する（ステップＳ２４８）。
【００８５】
次いで、制御部１は、非分割用のサブコンテンツリストから、所定のルールに基づいてサブコンテンツを選択する（ステップＳ２４９）。ここで、実施例２における「所定のルール」とは、例えば、階層構造の下位階層に位置するサブコンテンツを優先して選択するルールである。この場合、制御部１は、非分割用のサブコンテンツリストにおいて未だ選択されていないサブコンテンツのうちから、最下位階層に位置するサブコンテンツを例えば１つ選択する。これにより、複合コンテンツが再生される場合に、チャンクからサブコンテンツをより迅速に取得することが可能となる。なお、最下位階層の位置するサブコンテンツが複数ある場合は、例えば、非分割用のサブコンテンツリストでソートされた順番が早いサブコンテンツが選択される。
【００８６】
ステップＳ２５０〜Ｓ２５４の処理は、図５に示すステップＳ２１０〜Ｓ２１４の処理と同様であるので、重複する説明を省略する。なお、ステップＳ２５３では、階層構造において、上下の階層関係で関連付けられた複数のサブコンテンツが、一つに纏めるサブコンテンツとして決定される。
【００８７】
ステップＳ２５５では、制御部１は、上記ステップＳ２５４で組み込まれたサブコンテンツに関連付けられている他のサブコンテンツがあるか否かを判定する。この判定では、上記ステップＳ２５４で組み込まれたサブコンテンツのリンク情報が参照される。そして、制御部１は、関連付けられている他のサブコンテンツがあると判定した場合には（ステップＳ２５５：ＹＥＳ）、ステップＳ２５６に進む。一方、制御部１は、関連付けられている他のサブコンテンツがないと判定した場合には（ステップＳ２５５：ＮＯ）、ステップＳ２５７に進む。
【００８８】
ステップＳ２５６では、制御部１は、上記ステップＳ２５５で関連付けられていると判定された他のサブコンテンツのうち、非分割用のサブコンテンツリスト上で未だ選択されていないサブコンテンツを例えば１つ選択し、ステップＳ２５０に戻る。例えば、図８（Ａ）に示す例において、サブコンテンツＣａが上記ステップＳ２５４で組み込まれたサブコンテンツであるとする。この場合、サブコンテンツＣａに関連付けられている他のサブコンテンツとして、サブコンテンツＣｂが選択される。そして、ステップＳ２５０に戻り、例えば、上記ステップＳ２５０〜Ｓ２５３の処理を経て、ステップＳ２５４でサブコンテンツＣｂがチャンクｉに組み込まれるとする。この場合、ステップＳ２５５で、サブコンテンツＣｂに関連付けられている他のサブコンテンツＣｃ及びＣｄのうち、サブコンテンツＣｃが選択される。つまり、サブコンテンツＣｂから見て、下位階層の位置するサブコンテンツＣｃが優先的に選択される。そして更に、ステップＳ２５０に戻り、例えば、上記ステップＳ２５０〜Ｓ２５３の処理を経て、ステップＳ２５４でサブコンテンツＣｃがチャンクｉに組み込まれるとする。この場合、サブコンテンツＣｃに関連付けられている他のサブコンテンツはサブコンテンツＣｂである。しかし、サブコンテンツＣｃは既にチャンクｉに組み込まれているので、ステップＳ２５６では、サブコンテンツＣｃに関連付けられているサブコンテンツＣｄが選択されることになる。このように、複数のサブコンテンツは下位階層から上位階層に向けてサブコンテンツがチャンク化される。なお、上記例では、サブコンテンツＣａを基準として関連付けを判定するとき、サブコンテンツＣｃよりＣｂを優先的に選択するように構成した。つまり、異階層のサブコンテンツが優先的に選択されるように構成した。この構成とは別の例として、同階層のサブコンテンツが優先的に選択されるように構成しても良い。この構成の場合、図８（Ａ）に示す例において、サブコンテンツＣａが上記ステップＳ２５４で組み込まれたサブコンテンツであるとする。この場合、異階層のサブコンテンツＣａより、同階層のサブコンテンツＣｃが優先的に選択されることになる。
【００８９】
なお、ステップＳ２５７〜Ｓ２６１の処理は、図５に示すステップＳ２１８〜Ｓ２２２の処理と同様であるので、重複する説明を省略する。
【００９０】
図４の処理に戻り、ステップＳ３では、制御部１は、上記チャンク化処理の中で生成されたメタファイルに固有のコンテンツＩＤを付与する。コンテンツＩＤの付与により、メタファイルのヘッダ部にコンテンツＩＤが記述される。なお、このコンテンツＩＤは、メタファイルに対応する複合コンテンツのコンテンツＩＤでもある。
【００９１】
図８（Ｂ）に、生成されたメタファイルのデータ部に記述されたサブコンテンツの情報の一例を示す。図８（Ｂ）に示す例では、各サブコンテンツのアクセス子、チャンクシーケンス、チャンクＩＤ、及びオフセット情報が対応付けられて記述されている。ここで、チャンクシーケンスは、上記ステップＳ２２４等の処理で分割されたサブコンテンツの再生順序を示す。図８（Ｂ）に示す例では、アクセス子が”/mov/movie1.wmv”である２つのサブコンテンツ５１,５２は、１つのサブコンテンツが分割されたものである。サブコンテンツ５１のチャンクシーケンスは“０”である。一方、サブコンテンツ５２のチャンクシーケンスは“１”である。従って、サブコンテンツ５１の方がサブコンテンツ５２より再生順序が早い。なお、チャンクシーケンスは、サブコンテンツ５１,５２のように、一つのサブコンテンツが分割された場合に、どちらの再生順序が先であるかを示すものである。そのため、分割されていないサブコンテンツについては、チャンクシーケンスは“０”となる。一方、オフセット情報は、複数のサブコンテンツが一つのチャンクに組み込まれて連結された場合において、連結された全データ中における各サブコンテンツの先頭位置を示すものである。図８（Ｂ）に示す例では、３つのサブコンテンツ６１〜６３が、一つのチャンク（チャンクＩＤ＝ A00163C4）に組み込まれた場合を示している。この場合、各サブコンテンツ６１〜６３の先頭位置はバイトで表されている。制御部１１は、サブコンテンツの再生処理時に、オフセット情報を参照することで、連結されたデータから各サブコンテンツを取得することができる。なお、メタファイルに記述された全サブコンテンツを通して再生順序が記述されるように構成しても良い。
【００９２】
次いで、制御部１は、上記チャンク化処理の中で生成されたチャンク及び複合コンテンツのメタファイルをコンテンツ配信システムＳ内に投入する投入処理を行う（ステップＳ４）。この投入処理は、チャンクＩＤが付与されたチャンクをノードＮｎから取得可能な１つのコンテンツとしてオーバーレイネットワークＯＮに公開する処理の一つである。この投入処理では、制御部１は、オーバーレイネットワークＯＮに参加しているノードＮｎのうちノード情報を記憶部２に記憶しているノードＮｎの中から、所定数のノードＮｎを選択する。そして、制御部１は、選択した各ノードＮｎにアクセスし、上記チャンクとメタファイルの少なくとも一方を送信する。こうして、ノードＮｎは、受信したメタファイルとチャンクの少なくとも一方を記憶部１２に保存する。そして、メタファイルとチャンクの少なくとも一方を保存した各ノードＮｎは、コンテンツ保持ノードとして、パブリッシュ処理を実行する。このパブリッシュ処理は、メタファイル又はチャンクを保存していることを他のノードＮｎに公開するための処理である。このパブリッシュ処理において、コンテンツ保持ノードは、パブリッシュメッセージを生成する。パブリッシュメッセージには、複合コンテンツのメタファイルのコンテンツＩＤ、及びコンテンツ保持ノードのＩＰアドレス等が含まれる。又は、パブリッシュメッセージには、チャンクのチャンクＩＤ、及びコンテンツ保持ノードのＩＰアドレス等が含まれる。そして、コンテンツ保持ノードは、生成したパブリッシュメッセージを、ＤＨＴルーティングにより、ルートノード宛に送信する。なお、ＤＨＴルーティングは、例えば特開２００７−０５３６６２号公報等で公知であるので、詳しい説明を省略する。そして、パブリッシュメッセージを受信したルートノードは、複合コンテンツのメタファイルのコンテンツＩＤとコンテンツ保持ノードのＩＰアドレス等との組を、インデックス情報として記憶部１２のインデックスキャッシュ領域に記憶する。また、パブリッシュメッセージを受信したルートノードは、チャンクのチャンクＩＤとコンテンツ保持ノードのＩＰアドレス等との組を、インデックス情報として記憶部１２のインデックスキャッシュ領域に記憶する。
【００９３】
次いで、制御部１は、上記ステップＳ４で投入されたメタファイル及びチャンクに対応する複合コンテンツのレコードを生成する（ステップＳ５）。生成されたレコードには、複合コンテンツのコンテンツＩＤ、コンテンツ名、及びキーワード等が記述される。なお、このレコードには、複合コンテンツのレコードであることを示す識別子が記述されても良い。また、複合コンテンツのレコードには、最初に再生すべきサブコンテンツのアクセス子が記述されても良い。
【００９４】
次いで、制御部１は、上記ステップＳ５で生成された、複合コンテンツのレコードをコンテンツカタログ情報中に追加登録する（ステップＳ６）。
【００９５】
次いで、制御部１は、上記ステップＳ６で登録された複合コンテンツのレコードを含むコンテンツカタログ情報を、オーバーレイネットワークＯＮに参加しているノードＮｎにＤＨＴマルチキャストで配信する（ステップＳ７）。このコンテンツカタログ情報の配信処理は、チャンクＩＤが付与されたチャンクをノードＮｎから取得可能な１つのコンテンツとしてオーバーレイネットワークＯＮに公開する処理の一例である。ＤＨＴマルチキャストで配信されるコンテンツカタログ情報には、少なくとも上記ステップＳ６で登録された複合コンテンツのレコードが含まれるものであれば良い。なお、ＤＨＴマルチキャストは、例えば特開２００７−０５３６６２号公報等で公知であるので、詳しい説明を省略する。
【００９６】
次いで、制御部１は、コンテンツ提供サイトを構成するＷｅｂサーバに複合コンテンツのコンテンツＩＤを送信する（ステップＳ８）。このコンテンツ提供サイトは、例えば動画等のコンテンツを提供するためのＷｅｂサイトである。Ｗｅｂサーバは、コンテンツ管理サーバＭＳから複合コンテンツのコンテンツＩＤを受信すると、このコンテンツＩＤを含むコンテンツタグを記述したＷｅｂページを生成する。このコンテンツタグには、コンテンツＩＤに対応付けられて複合コンテンツであることを示す識別子も含まれている。また、このコンテンツタグには、最初に再生すべきサブコンテンツのアクセス子が含まれるように構成しても良い。そして、Ｗｅｂサーバは、生成されたＷｅｂページをノードＮｎに提供可能に登録する。
【００９７】
（４−２．複合コンテンツの再生動作）
次に、図９を参照して、複合コンテンツの再生動作について説明する。図９は、ノードＮｎの制御部１１における複合コンテンツの再生処理を示すフローチャートである。
【００９８】
先ず、例えばノードＮｎがコンテンツ提供サイトにアクセスすることにより送信されたＷｅｂページを受信する。ノードＮｎは、受信したＷｅｂページに記述されたコンテンツタグからコンテンツＩＤ及び識別子を取得する。そして、ノードＮｎは、取得したコンテンツＩＤが複合コンテンツのコンテンツＩＤであることを上記識別子により判断すると、図９に示す処理を開始する。なお、複合コンテンツのコンテンツＩＤは、ノードＮｎに記憶されているコンテンツカタログ情報からキーワード等により検索されるものであっても良い。
【００９９】
図９に示す処理が開始されると、制御部１１は、取得したコンテンツＩＤに対応する複合コンテンツのメタファイルが記憶部１２に記憶されているか否かを判定する（ステップＳ１１）。そして、制御部１１は、複合コンテンツのメタファイルが記憶されていると判定した場合には（ステップＳ１１：ＹＥＳ）、ステップＳ１４に進む。
【０１００】
一方、制御部１１は、複合コンテンツのメタファイルが記憶されていないと判定した場合には（ステップＳ１１：ＮＯ）、複合コンテンツのメタファイルの取得処理を実行する（ステップＳ１２）。この取得処理は、複合コンテンツのコンテンツＩＤに基づいて、コンテンツ保持ノード等から複合コンテンツのメタファイルを取得する処理である。具体的には、制御部１１は、先ず、コンテンツ所在問合せメッセージを生成する。コンテンツ所在問合せメッセージは、複合コンテンツのメタファイルの所在をルートノードに問い合わせるためのメッセージである。また、コンテンツ所在問合せメッセージには、このメッセージを送信するノードＮｎのＩＰアドレス及びポート番号、並びに複合コンテンツのコンテンツＩＤが含まれる。そして、制御部１１は、生成したコンテンツ所在問合せメッセージを、ＤＨＴルーティングにより、複合コンテンツのルートノード宛に送信する。
【０１０１】
上記コンテンツ所在問合せメッセージを受信したルートノードは、コンテンツ所在問合せメッセージに含まれるコンテンツＩＤに対応するインデックス情報を取得する。そして、ルートノードは、取得したインデックス情報を、コンテンツ所在問合せメッセージの送信元であるノードＮｎへ返信する。このように返信されたインデックス情報には、複合コンテンツのメタファイルを保存しているコンテンツ保持ノードのＩＰアドレス等が含まれている。こうして、上記コンテンツ所在問合せメッセージの送信元のノードＮｎの制御部１１は、ルートノードからのインデックス情報を受信する。そして、制御部１１は、受信したインデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス等に基づいてコンテンツ保持ノードにアクセスする。そして、制御部１１は、コンテンツ保持ノードから複合コンテンツのメタファイルをダウンロードする。ところで、コンテンツ保持ノードから複合コンテンツのメタファイルをダウンロードできない場合がある。この場合、コンテンツ管理サーバＭＳから複合コンテンツのメタファイルがダウンロードされる。
【０１０２】
なお、複合コンテンツのメタファイルのサイズは小さいので、ノードＮｎは、例えばコンテンツ管理サーバＭＳ等の所定のサーバから複合コンテンツのメタファイルを取得するように構成しても良い。この構成によれば、コンテンツ管理サーバＭＳは、複合コンテンツのメタファイルをコンテンツ配信システムＳ内に投入する投入処理を行う必要がない。或いは、複合コンテンツを構成するサブコンテンツの情報は、メタファイルに記述されるのではなく、例えばコンテンツ管理サーバＭＳ等の所定のサーバに設けられたデータベースに登録されるように構成しても良い。この場合、このサーバは、ノードＮｎからのコンテンツＩＤを含む要求に対する返答として、サブコンテンツの情報をノードＮｎに返信する。
【０１０３】
次いで、制御部１１は、ダウンロードしたメタファイルを記憶部１２に保存すると、上述したパブリッシュ処理を実行する（ステップＳ１３）。
【０１０４】
次いで、制御部１１は、複合コンテンツのメタファイルから、再生の起点となるサブコンテンツを決定する（ステップＳ１４）。例えば、メタファイル中の先頭にアクセス子が記述されているサブコンテンツが再生の起点となるサブコンテンツとして決定される。  例えば、図８（Ｂ）に示す例では、メタファイル中の先頭のアクセス子は、”/html/index.html”である。或いは、コンテンツカタログ情報における上記複合コンテンツのレコードに、再生の起点となるサブコンテンツのアクセス子が記述される場合がある。この場合、複合コンテンツのレコードに記述されたアクセス子により再生の起点となるサブコンテンツが決定されるようにしても良い。或いは、Ｗｅｂページに記述されたコンテンツタグに、再生の起点となるサブコンテンツのアクセス子が含まれる場合がある。この場合、Ｗｅｂページに記述されたコンテンツタグに含まれるアクセス子により再生の起点となるサブコンテンツが決定されるようにしても良い。
【０１０５】
次いで、制御部１１は、決定したサブコンテンツが含まれるチャンクのチャンクＩＤを、上記複合コンテンツのメタファイルから決定する（ステップＳ１５）。
【０１０６】
次いで、制御部１１は、取得したチャンクＩＤに対応するチャンクがバッファメモリ１３又は記憶部１２に記憶されているか否かを判定する（ステップＳ１６）。そして、制御部１１は、チャンクが記憶されていると判定した場合には（ステップＳ１６：ＹＥＳ）、ステップＳ１９に進む。
【０１０７】
一方、制御部１１は、チャンクが記憶されていないと判定した場合には（ステップＳ１６：ＮＯ）、チャンクの取得処理を実行する（ステップＳ１７）。この取得処理は、上記ステップＳ１５で決定されたチャンクＩＤに基づいて、コンテンツ保持ノード等からチャンクを取得する処理である。チャンクの取得処理は、上記メタファイルの取得処理と同じ手順で行われる。そして、制御部１１は、チャンクの取得処理により、コンテンツ保持ノードからチャンクをダウンロードする。ところで、コンテンツ保持ノードからチャンクがダウンロードできない場合がある。この場合、コンテンツ管理サーバＭＳからチャンクがダウンロードされる。なお、ダウンロードされたチャンクは、バッファメモリ１３に蓄積される。
【０１０８】
次いで、制御部１１は、ダウンロードしたチャンクを記憶部１２に保存すると、上述したパブリッシュ処理を実行する（ステップＳ１８）。
【０１０９】
次いで、制御部１１は、バッファメモリ１３に蓄積されたチャンクからサブコンテンツを抽出する（ステップＳ１９）。一つのチャンクに複数のサブコンテンツが組み込まれている場合も、制御部１１は、バッファメモリ１３に蓄積されているチャンク中から各サブコンテンツをオフセット情報を参照して抽出することになる。
【０１１０】
次いで、制御部１１は、抽出したサブコンテンツの再生処理を実行する（ステップＳ２０）。この再生処理では、制御部１１は、抽出したサブコンテンツをバッファメモリ１３からデコーダ部１４に出力してサブコンテンツを再生させる制御を実行する。
【０１１１】
次いで、制御部１１は、次に再生すべきサブコンテンツがあるか否かを判定する（ステップＳ２１）。例えば、制御部１１は、複合コンテンツのメタファイルを参照することにより、次に再生すべきサブコンテンツがあるか否かを判定する。例えば、メタファイルに、全サブコンテンツを通した再生順序を示すチャンクシーケンスが記述されている場合がある。この場合、制御部１１は、チャンクシーケンスに基づいて次に再生すべきサブコンテンツがあるか否かを判定する。
【０１１２】
或いは、上記ステップＳ１９で抽出されたサブコンテンツ内に、次に再生すべきサブコンテンツのアクセス子が記述されている場合がある。例えば、図８（Ｂ）に示すように、アクセス子が”/html/index.html”であるサブコンテンツの場合、ＨＴＭＬ文書のタグ内に、次に再生すべきサブコンテンツのアクセス子が含まれている。この場合、制御部１１は、抽出したサブコンテンツのタグ内に含まれるアクセス子に基づいて次に再生すべきサブコンテンツがあるか否かを判定する。
【０１１３】
そして、制御部１１は、次に再生すべきサブコンテンツがあると判定した場合には（ステップＳ２１：ＹＥＳ）、次に再生すべきサブコンテンツを決定し（ステップＳ２２）、ステップＳ１５に戻る。ステップＳ１５に戻ると、制御部１１は、上記ステップＳ２２で決定したサブコンテンツが含まれるチャンクのチャンクＩＤを、上記複合コンテンツのメタファイルから決定する。そして、制御部１１は、上記と同様、ステップＳ１６以降の処理を行う。ここで、例えば、複数のサブコンテンツがチャンクに含まれている場合、制御部１１は、上記ステップＳ１９において、複合コンテンツのメタファイルに記述されているオフセット情報を参照して、上記決定したサブコンテンツのチャンクにおけるデータ位置を決定する。そして、制御部１１は、決定したデータ位置に基づいてチャンクからサブコンテンツを抽出する。
【０１１４】
一方、制御部１１は、次に再生すべきサブコンテンツがないと判定した場合には（ステップＳ２１：ＮＯ）、図９に示す処理を終了する。
【０１１５】
以上説明したように、上記実施形態によれば、ファイルサイズが小さいサブコンテンツが１つのコンテンツとして纏められてオーバーレイネットワークＯＮに投入されて公開される。従って、複合コンテンツがコンテンツ配信システムＳに投入される場合であっても、オーバーレイネットワークＯＮ上で飛び交うコンテンツ所在問合せメッセージやパブリッシュメッセージなどの各種メッセージの総量を抑えることができる。よって、ネットワークＮＷの利用効率を向上させることができる。
【０１１６】
また、上記実施形態によれば、ノードＮｎが複合コンテンツの再生に必要となるサブコンテンツの必要量をバッファメモリ１３にバッファリングする過程で個々のサブコンテンツの取得時間のばらつきを低減することができる。そのため、コンテンツの再生待ち時間の遅延も抑えることができる。
【０１１７】
また、上記実施形態においては、オーバーレイネットワークＯＮに、ＤＨＴを利用したピアツーピアネットワークを適用したが、これに限られるものではない。例えば、他のオーバーレイネットワークを用いたシステムが適用されても良い。ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
【符号の説明】
【０１１８】
１  制御部
２  記憶部
３  通信部
４  バス
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  通信部
１９ａ  入力部
１９ｂ  バス
ＭＳ  コンテンツ管理サーバ
Ｎｎ  ノード
ＮＷ  ネットワーク
ＯＮ  オーバーレイネットワーク
Ｓ  コンテンツ配信システム
【図１】
2011215931.tif 000003
【図２】
2011215931.tif 000004
【図３】
2011215931.tif 000005
【図４】
2011215931.tif 000006
【図５】
2011215931.tif 000007
【図６】
2011215931.tif 000008
【図７】
2011215931.tif 000009
【図８】
2011215931.tif 000010
【図９】
2011215931.tif 000011