以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、オーバーレイネットワークを利用する通信システムに本発明を適用した場合の実施形態である。
[1.通信システムの構成及び動作概要]
始めに、図1を参照して、本実施形態の通信システムの構成及び動作概要について説明する。図1は、本実施形態の通信システムSの概要構成例を示す図である。図1に示すように、本実施形態の通信システムSは、エッジサーバESn(n:1〜7)、携帯端末Tm(m:1〜3)、コマンダCo(o:1〜10)、及びセットトップボックスSTBp(p:1〜3)を含んで構成されている。なお、携帯端末以外で、ネットワークに接続可能な端末であれば良い。例えば、携帯端末以外に、一般的なコンピュータ、タブレットPC等であっても良い。エッジサーバESn、携帯端末Tm、コマンダCo、及びセットトップボックスSTBpは、情報処理装置の一例である。このように、通信システムSには、様々な種類の情報処理装置が存在する。このような情報処理装置の種類を、「装置種類」という。
エッジサーバESn、及び携帯端末Tmは、基幹ネットワークNWに接続される。基幹ネットワークNWは、例えばインターネット、移動体通信網、及びゲートウェイ等から構成される。コマンダCo及びセットトップボックスSTBpは、それぞれの拠点ネットワークNLnに接続される。拠点ネットワークNLnは、例えばLAN(Local Area Network)から構成される。拠点ネットワークNLnは、それぞれのエッジサーバESnを介して基幹ネットワークNWに接続される。また、エッジサーバESn、携帯端末Tm、コマンダCo、及びセットトップボックスSTBpには、それぞれ、基幹ネットワークNWまたは拠点ネットワークNLnにおける所在を示す所在情報が割り当てられている。所在情報は、例えばIPアドレス及びポート番号により構成される。所在情報は、エッジサーバESn、携帯端末Tm、コマンダCo、及びセットトップボックスSTBpを一意に識別可能な装置IDとしても利用可能である。
また、図1の例では、通信システムSにおいて、エッジサーバESn、携帯端末Tmの参加によりオーバーレイネットワークONが構成されている。つまり、エッジサーバESn、及び携帯端末Tmは、オーバーレイネットワークONを構成する情報処理装置の一例である。オーバーレイネットワークONを構成する情報処理装置を、ノードNk(k:1〜10)という。オーバーレイネットワークONは、仮想的なリンクを構成する論理的なネットワークである。オーバーレイネットワークONは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、「DHT(Distributed Hash Table)」という。ノードNkには、DHTを用いたルーティングテーブルが記憶される。DHTを用いたルーティングテーブルには、各種メッセージの転送先候補となるノードNkのノードIDと所在情報の組が複数登録される。ノードIDは、ノードNkをオーバーレイネットワークONに参加している全てのノードNkの中から識別する固有の識別情報である。また、オーバーレイネットワークONに参加するとは、DHTを用いたルーティングテーブルに基づいてオーバーレイネットワークONを介して他のノードNkとの間で通信可能な状態に稼動することをいう。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
また、エッジサーバESnは、基幹ネットワークNWと拠点ネットワークNLnと間でIPパケットを中継するルータの機能を有する。これにより、エッジサーバESnは、例えば、コマンダCo間、またはコマンダCoとセットトップボックスSTBpと間の各種データのやり取りを中継することができる。なお、図1の例では、コマンダCo及びセットトップボックスSTBpは、オーバーレイネットワークONには参加していない。しかし、コマンダCo及びセットトップボックスSTBpの何れかが、オーバーレイネットワークONに参加するように構成してもよい。また、携帯端末Tmの中には、ノードNkとしてオーバーレイネットワークONに参加しない情報処理装置があってもよい。
コマンダCoは、ユーザによる選曲操作に基づいて、楽曲を再生する演奏装置である。コマンダCoは、例えば、カラオケ店舗に設置される。コマンダCoの記憶部には、例えば、楽曲の合成コンテンツが保存される。楽曲の合成コンテンツは、楽曲の再生に用いられるコンテンツである。楽曲には、カラオケ曲が含まれる。この合成コンテンツは、オーバーレイネットワークONを介して取得可能な複数の素材データを用いて生成される合成コンテンツの一例である。合成コンテンツには、コンテンツIDが付与される。コンテンツIDは、合成コンテンツを、オーバーレイネットワークONを介して取得可能な全てのコンテンツの中から識別する固有の識別情報である。複数の合成コンテンツは、複数のカラオケCoに分散されて保存されている。例えば、タイトルが「AAA」の合成コンテンツはコマンダC1に保存され、タイトルが「BBB」の合成コンテンツはコマンダC3に保存される。また、素材データは、合成コンテンツの生成に用いられる一部品である。素材データを、以下、「部品コンテンツ」という。部品コンテンツにも、合成コンテンツと同様、上述したコンテンツIDが付与される。部品コンテンツは、合成コンテンツと同様、複数のカラオケCoに分散されて保存されている。楽曲の部品コンテンツには、例えば、演奏データ、背景映像データ、テロップデータ等がある。演奏データは、楽曲を演奏するためのデータである。演奏データには、MIDI(Musical Instrument Digital Interface)データ、PCM(Pulse Code Modulation)データ、MP3(MPEG Audio Layer-3)データ等の音源タイプがある。MIDIデータは、例えば、トラック、チャンネル、音高、音の長さ、音量等を示す制御情報により構成されるデータである。PCMデータは、楽曲の音声の波形が圧縮されない生音形式のデータである。MP3データは、楽曲の音声の波形が圧縮された圧縮形式のデータである。背景映像データは、背景映像(動画)を表示するためのデータである。背景映像データには、通常映像データ、本人映像データ等の映像タイプがある。通常映像データは、例えば、楽曲の歌手本人とは無関係の風景等の映像を示すデータである。本人映像データは、例えば、楽曲の歌手本人のプロモーションビデオ等の映像を示すデータである。テロップデータは、楽曲の歌詞テロップを表示するためのデータである。歌詞テロップは、背景映像に重畳されて表示される。テロップデータには、歌詞テロップを構成する文字データ、歌詞テロップの表示タイミング、及び色塗りタイミングを示すデータを含む。
コマンダCoは、例えば複数の部品コンテンツを用いて合成コンテンツを生成する。また、コマンダCoは、携帯端末Tm、またはセットトップボックスSTBpからの要求に応じて、要求元の装置種類に対応した合成コンテンツを、エッジサーバESnを介して配信する。ここで、要求元とは、合成コンテンツの要求を行った携帯端末Tm、またはセットトップボックスSTBpをいう。合成コンテンツは、同一の楽曲であっても、装置種類に応じて複数のタイプに分けられる。このようなタイプを、「コンテンツタイプ」という。コンテンツタイプは、合成コンテンツが対応する装置種類を示す。コンテンツタイプは、第1の種類情報の一例である。例えば、合成コンテンツは、セットトップボックス用、及び携帯端末用のコンテンツタイプに分けられる。さらに、合成コンテンツは、携帯端末の装置種類に応じて、例えば、携帯端末T1用、携帯端末T2用、及び携帯端末T3用に分けられる。このようにコンテンツタイプが分けられるのは、例えば、装置種類ごとに処理能力が異なるためである。セットトップボックス用の合成コンテンツは、例えば、本人映像データ、PCMデータ、及びテロップデータが合成されて生成される。また、携帯端末T1用の合成コンテンツは、例えば、通常映像データ、PCMデータ、及びテロップデータが合成されて生成される。また、携帯端末T2用の合成コンテンツは、例えば、通常映像データ、MIDIデータ及びテロップデータが合成されて生成される。また、携帯端末T3用の合成コンテンツは、例えば、MIDIデータ及びテロップデータが合成されて生成される。携帯端末T3用の合成コンテンツは、背景映像データは用いられない。携帯端末Tm、及びセットトップボックスSTBpは、コマンダCoから配信された合成コンテンツに基づいて楽曲を再生する。
なお、本実施形態では、携帯端末Tm、及びセットトップボックスSTBpには、コマンダCoとは異なり、合成コンテンツの生成を行わない。そのため、携帯端末Tm、及びセットトップボックスSTBpは、合成コンテンツを配信することができない。また、携帯端末Tm、及びセットトップボックスSTBpの中には、コマンダCoから配信された合成コンテンツのキャッシュが制限されている情報処理装置も含まれる。このような情報処理装置は、コマンダCoから配信された合成コンテンツを記憶部には保存しない。
合成コンテンツを保存しているコマンダCoの所在は、オーバーレイネットワークONを構成する何れかのノードNkにより管理される。合成コンテンツを保存しているコマンダCoを、「合成コンテンツのコンテンツホルダ」という。合成コンテンツのコンテンツホルダは、第1の情報処理装置の一例である。また、合成コンテンツのコンテンツホルダの所在を管理しているノードNkを、以下、「合成コンテンツのルートノード」という。合成コンテンツのルートノードは、例えば、合成コンテンツのコンテンツIDと最も近いノードIDが割り当てられたノードNkであるように定められる。合成コンテンツのコンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。合成コンテンツのルートノードは、合成コンテンツのコンテンツホルダの所在を管理するための合成コンテンツホルダリストを記憶している。合成コンテンツホルダリストには、合成コンテンツのコンテンツID、合成コンテンツのコンテンツホルダの所在情報、合成コンテンツのコンテンツタイプ、合成コンテンツの生成所要時間、更新日時、及びコンテンツホルダの登録日時等が対応付けられて登録される。ここで、合成コンテンツの生成所要時間は、コンテンツホルダが合成コンテンツを生成するのに要した時間である。また、更新日時は、合成コンテンツホルダリストに、合成コンテンツのコンテンツID等を含むレコードが新規登録又は更新登録された日時である。コンテンツホルダの登録日時(以下「ホルダ登録日時」という)は、コンテンツホルダとして合成コンテンツホルダリストに登録された日時である。更に、合成コンテンツのルートノードは、合成コンテンツを生成可能なコマンダCoの所在を管理する。合成コンテンツを生成可能なコマンダCoを、「コンテンツクリエイタ」という。コンテンツクリエイタは、第2の情報処理装置の一例である。合成コンテンツのルートノードは、コンテンツクリエイタの所在を管理するためのコンテンツクリエイタリストを記憶している。コンテンツクリエイタリストには、合成コンテンツのコンテンツID、コンテンツクリエイタの所在情報、コンテンツクリエイタが記憶する部品コンテンツのコンテンツID、及びコンテンツクリエイタの有効期限等が対応付けられて登録される。なお、有効期限が経過したコンテンツクリエイタの情報は、コンテンツクリエイタリストから削除される。なお、オーバーレイネットワークONを構成する携帯端末Tmには、合成コンテンツのコンテンツホルダ及びコンテンツクリエイタの所在を管理させないように構成してもよい。これらの情報処理装置は、エッジサーバESnに比べて処理能力が劣るからである。
図2(A)は、合成コンテンツホルダリストの登録内容の一例を示す図である。図2(A)に示す合成コンテンツホルダリストには、合成コンテンツ「AAA」を保存しているコンテンツホルダとしてコマンダC1とコマンダC3の所在情報等が登録されている。ここで、コマンダC1の所在情報等が登録されるまでの流れを説明する。コマンダC1は、合成コンテンツ「AAA」を生成して保存した場合、エッジサーバES1へ第1のパブリッシュメッセージを送信する。第1のパブリッシュメッセージは、合成コンテンツホルダリストに対するパブリッシュメッセージである。言い換えれば、第1のパブリッシュメッセージは、合成コンテンツを保存していることをルートノードへ通知するためのメッセージである。第1のパブリッシュメッセージには、合成コンテンツ「AAA」のコンテンツID、コマンダC1の所在情報、合成コンテンツ「AAA」のコンテンツタイプ、及び合成コンテンツ「AAA」の生成所要時間が含まれる。ノードN1として機能するエッジサーバES1は、第1のパブリッシュメッセージを受信する。エッジサーバES1は、受信した第1のパブリッシュメッセージを、オーバーレイネットワークONを介して合成コンテンツのルートノードへ送信する。ここで、第1のパブリッシュメッセージの送信は、合成コンテンツのコンテンツIDをキーとし、DHTを用いたルーティングにより行われる。なお、DHTを用いたルーティングは、例えば特開2007−053662号公報等で公知であるので、詳しい説明を省略する。合成コンテンツのルートノードは、第1のパブリッシュメッセージを受信する。合成コンテンツのルートノードは、受信した第1のパブリッシュメッセージから、合成コンテンツのコンテンツID、コマンダC1の所在情報、合成コンテンツのコンテンツタイプ及び生成所要時間を取得する。合成コンテンツのルートノードは、取得した合成コンテンツのコンテンツID、コマンダC1の所在情報、合成コンテンツのコンテンツタイプ及び生成所要時間等を対応付けて合成コンテンツホルダリストに登録する。こうして、コマンダC1は、合成コンテンツ「AAA」を保存するコンテンツホルダとなる。なお、合成コンテンツホルダリストには、コマンダC1が接続されるエッジサーバES1の所在情報が登録されるように構成してもよい。この場合、第1のパブリッシュメッセージには、エッジサーバES1の所在情報が含まれる。また、合成コンテンツホルダリストには、合成コンテンツの生成に用いられる部品コンテンツのコンテンツIDが、合成コンテンツのコンテンツIDに対応付けられて登録されてもよい。
図2(B)は、コンテンツクリエイタリストの登録内容の一例を示す図である。図2(B)に示すコンテンツクリエイタリストには、合成コンテンツ「AAA」を生成可能なコンテンツクリエイタとして、コマンダC2とコマンダC4の所在情報等が登録されている。ここで、コマンダC4の所在情報等が登録されるまでの流れを説明する。コマンダC4は、合成コンテンツを生成する余裕がある場合、エッジサーバES3へ第2のパブリッシュメッセージを送信する。合成コンテンツを生成する余裕があるか否かの判定処理の詳細は後述する。第2のパブリッシュメッセージは、コンテンツクリエイタリストに対するパブリッシュメッセージである。言い換えれば、第2のパブリッシュメッセージは、合成コンテンツを生成可能であることをルートノードへ通知するためのメッセージである。第2のパブリッシュメッセージには、合成コンテンツ「AAA」のコンテンツID、コマンダC4の所在情報、及びコマンダC4が記憶する部品コンテンツのコンテンツIDが含まれる。この部品コンテンツは、合成コンテンツ「AAA」の生成に用いられる素材データである。ノードN4として機能するエッジサーバES3は、第2のパブリッシュメッセージを受信する。エッジサーバES3は、受信した第2のパブリッシュメッセージを、オーバーレイネットワークONを介して合成コンテンツのルートノードへ送信する。ここで、第2のパブリッシュメッセージの送信は、合成コンテンツのコンテンツIDをキーとし、DHTを用いたルーティングにより行われる。合成コンテンツのルートノードは、第2のパブリッシュメッセージを受信する。合成コンテンツのルートノードは、受信した第2のパブリッシュメッセージから、合成コンテンツのコンテンツID、コマンダC4の所在情報、及び部品コンテンツのコンテンツIDを取得する。合成コンテンツのルートノードは、取得した合成コンテンツのコンテンツID、コマンダC4の所在情報、及び部品コンテンツのコンテンツID等を対応付けてコンテンツクリエイタリストに登録する。こうして、コマンダC4は、合成コンテンツ「AAA」を生成可能なコンテンツクリエイタとなる。なお、コンテンツクリエイタリストには、コマンダC4が接続されるエッジサーバES3の所在情報が登録されるように構成してもよい。この場合、第2のパブリッシュメッセージには、エッジサーバES3の所在情報が含まれる。
そして、例えばセットトップボックスSTB1が、例えばユーザにより選択された楽曲を再生する場合がある。この場合、例えばセットトップボックスSTB1は、楽曲の再生に用いられる合成コンテンツの要求を示す要求メッセージを、エッジサーバES2へ送信する。合成コンテンツの要求元となるセットトップボックスSTB1は、第3の情報処理装置の一例である。要求メッセージには、要求対象の合成コンテンツのコンテンツID、セットトップボックスSTB1の所在情報、及びセットトップボックスSTB1の装置種類を示す装置種類情報が含まれる。装置種類情報は、第2の種類情報の一例である。ノードN2として機能するエッジサーバES2は、要求メッセージを受信する。エッジサーバES2は、受信した要求メッセージを、オーバーレイネットワークONを介して合成コンテンツのルートノードへ送信する。ここで、要求メッセージの送信は、合成コンテンツのコンテンツIDをキーとし、DHTを用いたルーティングにより行われる。なお、オーバーレイネットワークONが構成する例えば携帯端末T1が楽曲を再生する場合がある。この場合、ノードN3として機能する携帯端末T1は、エッジサーバESnを介さずに、要求メッセージを、オーバーレイネットワークONを介して合成コンテンツのルートノードへ送信することになる。この場合の携帯端末T1は、第3の情報処理装置の一例である。
合成コンテンツのルートノードは、例えばセットトップボックスSTB1を送信元としてオーバーレイネットワークONを介して送信された要求メッセージを受信する。合成コンテンツのルートノードは、受信した要求メッセージから、合成コンテンツのコンテンツID、セットトップボックスSTB1の所在情報、及びセットトップボックスSTB1の装置種類を示す装置種類情報を取得する。合成コンテンツのルートノードは、取得した装置種類情報と、取得したコンテンツIDに対応付けられて合成コンテンツホルダリストに登録されているコンテンツタイプとに基づいて、セットトップボックスSTB1の装置種類に対応した合成コンテンツを保存するコンテンツホルダが利用可能であるか否かを判定する。ここで、セットトップボックスSTB1の装置種類に対応した合成コンテンツとは、コンテンツタイプがセットトップボックス用である合成コンテンツである。合成コンテンツのコンテンツホルダが利用可能であるか否かの判定処理の詳細は後述する。合成コンテンツのルートノードは、合成コンテンツのコンテンツホルダが利用可能であると判定した場合、応答メッセージをセットトップボックスSTB1へ送信する。この応答メッセージは、合成コンテンツの要求に対する応答を示す。応答メッセージには、利用可能であると判定したコンテンツホルダの所在情報が含まれる。これにより、セットトップボックスSTB1は、合成コンテンツのコンテンツホルダへアクセスする。セットトップボックスSTB1は、合成コンテンツの要求を示す要求メッセージを、合成コンテンツのコンテンツホルダへ送信する。この要求メッセージには、要求対象の合成コンテンツのコンテンツID、及びセットトップボックスSTB1の装置種類を示す装置種類情報が含まれる。これにより、セットトップボックスSTB1は、合成コンテンツのコンテンツホルダから配信された合成コンテンツを受信し楽曲を再生する。ここで配信される合成コンテンツは、セットトップボックスSTB1の装置種類に対応する合成コンテンツである。合成コンテンツを配信するコンテンツホルダを配信装置ともいう。一方、合成コンテンツのルートノードは、合成コンテンツのコンテンツホルダが利用可能でないと判定した場合、取得したコンテンツIDに対応付けられてコンテンツクリエイタリストに登録されている所在情報に対応するコンテンツクリエイタを決定する。これにより、合成コンテンツを生成させるコンテンツクリエイタが決定される。合成コンテンツのルートノードは、コンテンツクリエイタを決定したときに、決定したコンテンツクリエイタの所在情報に基づいてコンテンツクリエイタにアクセスする。合成コンテンツのルートノードは、アクセスしたコンテンツクリエイタへ上記要求メッセージを転送する。この要求メッセージには、合成コンテンツの生成に用いられる部品コンテンツのコンテンツIDが含まれてもよい。
そして、コンテンツクリエイタは、合成コンテンツのルートノードからオーバーレイネットワークONを介して送信された要求メッセージを受信する。コンテンツクリエイタは、要求メッセージから、合成コンテンツのコンテンツID、セットトップボックスSTB1の所在情報、及びセットトップボックスSTB1の装置種類を示す装置種類情報を取得する。コンテンツクリエイタは、取得したコンテンツIDにより識別される合成コンテンツを、部品コンテンツを用いて生成する。ここで生成される合成コンテンツは、取得した装置種類情報が示す装置種類に対応する合成コンテンツである。また、合成コンテンツの生成に用いられる部品コンテンツのコンテンツIDは、例えば、要求メッセージから取得される。或いは、合成コンテンツの生成に用いられる部品コンテンツのコンテンツIDは、例えば、コンテンツクリエイタに予め記憶されていてもよい。コンテンツクリエイタは、取得したセットトップボックスSTB1の所在情報に基づいてセットトップボックスSTB1へアクセスする。コンテンツクリエイタは、アクセスしたセットトップボックスSTB1へ、生成した合成コンテンツを配信する。合成コンテンツを配信するコンテンツクリエイタを配信装置ともいう。ここで、コンテンツクリエイタは、取得した装置種類情報に基づいて、合成コンテンツをストリーミング配信によりセットトップボックスSTB1へ配信するか否かを判定するように構成してもよい。例えば、取得した装置種類情報が示す装置種類が、キャッシュが制限されている装置種類である場合がある。この場合、コンテンツクリエイタは、合成コンテンツをストリーミング配信によりセットトップボックスSTB1へ配信すると判定する。合成コンテンツのキャッシュが制限されている装置種類は、例えば、予めコンテンツクリエイタに記憶される。そして、コンテンツクリエイタは、ストリーミング配信するか否かの判定にしたがって合成コンテンツをセットトップボックスSTB1へ配信する。これにより、セットトップボックスSTB1は、合成コンテンツのコンテンツホルダから配信された合成コンテンツを受信し楽曲を再生する。なお、ストリーミング配信するか否かを決定することは、合成コンテンツのコンテンツホルダの場合も同様である。
なお、コンテンツクリエイタは、合成コンテンツの生成に用いられる部品コンテンツの全部又は一部を保存していない場合がある。この場合、コンテンツクリエイタは、保存していない部品コンテンツを、オーバーレイネットワークONを介して例えば他のコマンダCoから取得することができる。部品コンテンツを保存しているコマンダCoの所在は、オーバーレイネットワークONを構成する何れかのノードNkにより管理される。部品コンテンツを保存しているコマンダCoを、「部品コンテンツのコンテンツホルダ」という。また、部品コンテンツのコンテンツホルダの所在を管理しているノードNkを、以下、「部品コンテンツのルートノード」という。部品コンテンツのルートノードは、例えば、部品コンテンツのコンテンツIDと最も近いノードIDが割り当てられたノードNkであるように定められる。部品コンテンツのコンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。部品コンテンツのルートノードは、部品コンテンツのコンテンツホルダの所在を管理するための部品コンテンツホルダリストを記憶している。部品コンテンツホルダリストには、部品コンテンツのコンテンツID、及び部品コンテンツのコンテンツホルダの所在情報等が対応付けられて登録される。コンテンツクリエイタは、部品コンテンツを保存していない場合、部品コンテンツの要求を示す要求メッセージを、コンテンツクリエイタが接続するエッジサーバESnへ送信する。この要求メッセージには、要求対象の部品コンテンツのコンテンツID、及びコンテンツクリエイタの所在情報が含まれる。エッジサーバESnは、要求メッセージを受信すると、受信した要求メッセージを、オーバーレイネットワークONを介して部品コンテンツのルートノードへ送信する。なお、要求メッセージの送信の流れは、合成コンテンツの場合と同様である。これにより、コンテンツクリエイタは、保存していない部品コンテンツを取得する。部品コンテンツを配信するコンテンツホルダを配信装置ともいう。なお、オーバーレイネットワークONを構成する携帯端末Tmには、部品コンテンツのコンテンツホルダの所在を管理させないように構成してもよい。
また、部品コンテンツを保存したコマンダCoは、このコマンダCoが接続するエッジサーバESnへ第3のパブリッシュメッセージを送信する。第3のパブリッシュメッセージは、部品コンテンツホルダリストに対するパブリッシュメッセージである。言い換えれば、第3のパブリッシュメッセージは、部品コンテンツを保存していることをルートノードへ通知するためのメッセージである。第3のパブリッシュメッセージには、部品コンテンツのコンテンツID、及び部品コンテンツを保存したコマンダCoの所在情報が含まれる。エッジサーバESnは、第3のパブリッシュメッセージを受信すると、受信した第3のパブリッシュメッセージを、オーバーレイネットワークONを介して部品コンテンツのルートノードへ送信する。ここで、第3のパブリッシュメッセージの送信は、部品コンテンツのコンテンツIDをキーとし、DHTを用いたルーティングにより行われる。部品コンテンツのルートノードは、第3のパブリッシュメッセージを受信すると、受信した第3のパブリッシュメッセージから、部品コンテンツのコンテンツID、及びコマンダCoの所在情報を取得する。部品コンテンツのルートノードは、取得した部品コンテンツのコンテンツID、及びコマンダCoの所在情報を対応付けて部品コンテンツホルダリストに登録する。
また、上述した例では、合成コンテンツのルートノードは、コンテンツクリエイタを決定したときに、決定したコンテンツクリエイタの所在情報に基づいてコンテンツクリエイタにアクセスするように構成した。しかし、合成コンテンツのルートノードは、コンテンツクリエイタを決定したときに、要求メッセージの送信元である例えばセットトップボックスSTB1へ、応答メッセージを返信するように構成してもよい。この応答メッセージは、合成コンテンツの要求に対する応答を示す。応答メッセージには、例えば、合成コンテンツのコンテンツID、及び決定したコンテンツクリエイタの所在情報が含まれる。例えばセットトップボックスSTB1は、応答メッセージを受信すると、コンテンツクリエイタの所在情報に基づいてコンテンツクリエイタにアクセスする。例えばセットトップボックスSTB1は、アクセスしたコンテンツクリエイタへ要求メッセージを送信する。この要求メッセージには、例えば、合成コンテンツのコンテンツID、セットトップボックスSTB1の所在情報、及びセットトップボックスSTB1の装置種類を示す装置種類情報が含まれる。そして、コンテンツクリエイタは、要求メッセージを受信すると、上記と同様、合成コンテンツの生成及び配信等の処理を行う。
[2.コマンダCoの構成及び機能]
次に、図2(C)を参照して、コマンダCoの構成及び機能について説明する。図2(C)は、コマンダCoの概要構成例を示すブロック図である。コマンダCoは、制御部11、記憶部12、ビデオRAM13、映像処理部14、表示処理部15、マイク制御部16、シンセサイザ17、ミキシングアンプ18、操作部19a、操作処理部19b、赤外線受信部19c、及び通信部19d等を備えて構成される。通信部19dは、拠点ネットワークNLnに接続される。赤外線受信部19cは、選曲装置との間で赤外線通信を行うためのものである。選曲装置は、ユーザが楽曲の選曲操作を行うための装置である。操作処理部19bは、ユーザが操作する操作部19a、または赤外線受信部19cから出力された信号を受信する。操作処理部19bを制御部11へ出力する。
制御部11は、CPU、ROM、及びRAM等により構成される。制御部11は、本発明の生成手段、第3判定手段、及び配信手段の一例である。記憶部12は、例えば、ハードディスク等により構成される。記憶部12には、OS(オペレーティングシステム)及びコマンダ処理プログラムが記憶されている。制御部11は、OS及びコマンダ処理プログラムを実行することにより、コマンダCo全体を統括制御する。記憶部12には、ユーザによる選曲操作に基づいて予約された楽曲の楽曲IDが記憶される。楽曲IDは、例えば楽曲の合成コンテンツのコンテンツIDである。
また、記憶部12には、楽曲の合成コンテンツが記憶される。記憶部12に記憶された合成コンテンツにはコンテンツID及びコンテンツタイプが付与されている。制御部11は、楽曲の合成コンテンツを用いて楽曲の再生処理を実行する。楽曲の再生処理において、シンセサイザ17は、合成コンテンツを構成する音声データを例えばデコードして楽曲の再生を行い、楽曲の音声信号をミキシングアンプ18へ出力する。マイク制御部16は、マイクにより集音されたユーザの歌唱音声信号をミキシングアンプ18へ出力する。ミキシングアンプ18は、楽曲の音声信号と歌唱音声信号とをミキシングしてスピーカへ出力する。ビデオRAM13は、合成コンテンツを構成する映像データを一時的に記憶する。この映像データは、例えば、背景映像に歌詞テロップが重畳された映像を表すデータである。映像処理部14は、音声データの出力に同期させて、ビデオRAM13に記憶された映像データをデコードして楽曲の再生を行い、楽曲の映像信号を表示処理部15へ出力する。表示処理部15は、楽曲の映像信号をディスプレイへ出力して映像を表示させる。
また、記憶部12に合成コンテンツが記憶されていない場合がある。この場合、制御部11は、合成コンテンツの生成に用いられる部品コンテンツを、上述したように、オーバーレイネットワークONを介して例えば他のコマンダCoから取得する。これにより、例えば、演奏データ、背景映像データ、及びテロップデータが取得される。そして、制御部11は、合成コンテンツの生成処理を実行する。合成コンテンツの生成処理では、制御部11は、取得した演奏データをシンセサイザ17へ出力する。シンセサイザ17は、演奏データを再生して音声信号を制御部11へ出力する。制御部11は、シンセサイザ17からの音声信号を所定の符号化方式で例えばエンコードして音声データを生成する。この音声データのデータ形式は、例えば、MP3、AAC等であってもよい。また、制御部11は、取得した背景映像データをビデオRAM13へ出力する。また、制御部11は、テロップデータに基づいて歌詞テロップを構成する文字データを映像処理部14へ出力する。映像処理部14は、ビデオRAM13に記憶された背景映像データと制御部11からの文字データを用いて背景映像に歌詞テロップを重畳させ、その映像信号を制御部11へ出力する。制御部11は、映像処理部14からの映像信号を所定の符号化方式でエンコードして映像データを生成する。この映像データのデータ形式は、例えば、MPEG−2、H.264等であってもよい。そして、制御部11は、生成した音声データ及び映像データを合成して合成コンテンツを生成する。なお、他のコマンダCoか取得された部品コンテンツは記憶部12に記憶される。記憶部12に記憶された部品コンテンツにはコンテンツIDが付与される。更に、部品コンテンツには、部品コンテンツに対応する合成コンテンツのコンテンツIDが付与されてもよい。
また、制御部11は、上述したように、要求元の装置種類に対応した合成コンテンツの配信処理を実行する。このとき、要求元の装置種類に対応した合成コンテンツが記憶部12に記憶されていない場合がある。この場合、制御部11は、要求元の装置種類に対応した合成コンテンツの生成処理を実行する。
[3.ノードNkの構成及び機能]
次に、図2(D)を参照して、ノードNkの構成及び機能について説明する。図2(D)は、ノードNkの概要構成例を示すブロック図である。ノードNkは、制御部21、記憶部22、通信部23、バッファメモリ24、及びデコーダ部25、及び操作部26等を備えて構成される。通信部23は、基幹ネットワークNWと拠点ネットワークNLnの少なくとも何れか一方に接続される。上述したように、エッジサーバESn、携帯端末Tmは、オーバーレイネットワークONに参加することによりノードNkとして機能する。なお、エッジサーバESnの場合、バッファメモリ24及びデコーダ部25は備えられなくともよい。また、図2(D)に示す構成は、セットトップボックスSTBpにも適用可能である。
制御部21は、CPU、ROM、及びRAM等により構成される。制御部21は、本発明の受信手段、第1判定手段、第2判定手段、及び決定手段の一例である。記憶部22は、例えばハードディスクドライブ等から構成される。記憶部22は、本発明の第1記憶手段及び第2記憶手段の一例である。記憶部22には、OS及びノード処理プログラム等が記憶されている。制御部21は、OS及びノード処理プログラムを実行することにより、ノードNk全体を統括制御する。記憶部22には、DHTを用いたルーティングテーブルが記憶される。ノードNkが、合成コンテンツのルートノードである場合がある。この場合、記憶部22には、合成コンテンツホルダリスト、及びコンテンツクリエイタリストが記憶される。また、ノードNkが部品コンテンツのルートノードである場合がある。この場合、記憶部22には、部品コンテンツホルダリストが記憶される。バッファメモリ24は、通信部23を介して受信された合成コンテンツを蓄積する。デコーダ部25は、例えば、バッファメモリ24に蓄積された合成コンテンツを構成する音声データを例えばデコードして楽曲の再生を行い、楽曲の音声信号をスピーカへ出力する。また、デコーダ部25は、バッファメモリ24に蓄積された合成コンテンツを構成する映像データをデコードして楽曲の再生を行い、楽曲の映像信号をディスプレイへ出力して映像を表示させる。
[4.通信システムSの動作]
次に、本実施形態の通信システムSの動作を説明する。
(4−1.コマンダCoの処理)
先ず、図3〜図5を参照して、コマンダCoの処理について説明する。図3は、コマンダCoの制御部11におけるメイン処理を示すフローチャートである。図4(A)は、図3に示すステップS1の配信処理の詳細を示すフローチャートである。図4(B)は、図4(A)に示すステップS12のコンテンツタイプ決定処理の詳細を示すフローチャートである。図5は、図3に示すステップS2のパブリッシュ処理の詳細を示すフローチャートである。
図3に示すメイン処理は、例えば、コマンダCoの電源がオンされた場合に開始される。なお、図示しないが、図3に示す処理は、コマンダCoの電源がオフされた場合に終了する。図3に示すステップS1の配信処理、及びステップS2のパブリッシュ処理については後述する。ステップS3では、制御部11は、ユーザによる選曲操作に基づいて楽曲が予約されたか否かを判定する。楽曲が予約されたと判定した場合(ステップS3:YES)、ステップS4へ進む。一方、楽曲が予約されていないと判定した場合(ステップS3:NO)、ステップS1に戻る。
ステップS4では、制御部11は、予約された楽曲の楽曲IDに対応するコンテンツIDが付与された合成コンテンツが記憶部12に記憶されているか否かを判定する。合成コンテンツが記憶部12に記憶されていないと判定された場合(ステップS4:NO)、ステップS5へ進む。一方、合成コンテンツが記憶部12に記憶されていると判定された場合(ステップS4:YES)、ステップS9へ進む。
ステップS5では、制御部11は、記憶されていないと判定された合成コンテンツの生成に用いる部品コンテンツの全てが記憶部12に記憶されているか否かを判定する。部品コンテンツの全てが記憶部12に記憶されていないと判定された場合(ステップS5:NO)、ステップS6へ進む。つまり、合成コンテンツの生成に用いる部品コンテンツが足りない場合、ステップS6へ進む。一方、部品コンテンツの全てが記憶部12に記憶されていると判定された場合(ステップS5:YES)、制御部11は、合成コンテンツの生成に用いる部品コンテンツの全てを記憶部12から取得してステップS8へ進む。
ステップS6では、制御部11は、足りない部品コンテンツの要求を示す要求メッセージを、上述したように、エッジサーバESnへ送信する。そして、制御部11は、部品コンテンツのコンテンツホルダから部品コンテンツを受信したか否かを判定する(ステップS7)。部品コンテンツを受信したと判定された場合(ステップS7:YES)、ステップS5に戻る。これにより、合成コンテンツの生成に足りない部品コンテンツが全て取得されるまでステップS6の処理が繰り返される。なお、取得された部品コンテンツは記憶部12に記憶される。ステップS8では、制御部11は、取得した部品コンテンツを用いて、上述したように、合成コンテンツの生成処理を実行し、ステップS9へ進む。
ステップS9では、制御部11は、楽曲の合成コンテンツを用いて、上述したように、楽曲の再生処理を実行する。そして、制御部11は、楽曲の再生処理を終了するか否かを判定する(ステップS10)。例えば予約された楽曲の演奏時間の最後まで再生された場合に、楽曲の再生処理を終了すると判定される。或いは、ユーザにより楽曲の再生終了指示が入力された場合に、楽曲の再生処理を終了すると判定される。楽曲の再生処理を終了すると判定された場合(ステップS10:YES)、ステップS1に戻る。一方、楽曲の再生処理を終了すると判定されない場合(ステップS10:NO)、ステップS9に戻る。これにより、楽曲の再生処理が継続する。
次に、図3に示すステップS1の配信処理では、図4(A)に示すように、制御部11は、合成コンテンツの要求メッセージを受信したか否かを判定する(ステップS11)。合成コンテンツの要求メッセージを受信したと判定した場合(ステップS11:YES)、ステップS12へ進む。一方、合成コンテンツの要求メッセージを受信していないと判定した場合(ステップS11:NO)、配信処理を終了する。これにより、図3に示す処理に戻る。なお、図4(A)に示す配信処理では、部分コンテンツの要求メッセージを受信した場合の処理を省略している。
ステップS12のコンテンツタイプ決定処理では、図4(B)に示すように、制御部11は、受信した要求メッセージに含まれる装置種類情報に基づいて、要求対象の合成コンテンツのコンテンツタイプを決定する(ステップS121)。次いで、制御部11は、決定したコンテンツタイプがセットトップボックス(STB)用であるか否かを判定する(ステップS122)。コンテンツタイプがセットトップボックス用であると判定された場合(ステップS122:YES)、ステップS123へ進む。一方、コンテンツタイプがセットトップボックス用でないと判定された場合(ステップS122:NO)、ステップS124へ進む。ステップS123では、制御部11は、セットトップボックス用の合成コンテンツの生成に用いる部品コンテンツとして、本人映像データ、PCMデータ、及びテロップデータを決定し、コンテンツタイプ決定処理を終了する。これにより、図4(A)に示す処理に戻る。ここで、制御部11は、例えば、コンテンツタイプと、部品コンテンツのコンテンツIDとの対応関係を示すリストを参照することにより部品コンテンツを決定する。或いは、合成コンテンツの要求メッセージに、合成コンテンツの生成に用いられる部品コンテンツのコンテンツIDが含まれるように構成してもよい。なお、セットトップボックス用の合成コンテンツの生成に用いる部品コンテンツとして、通常映像データ、MIDIデータ、及びテロップデータが決定されるように構成してもよい。
ステップS124では、制御部11は、決定したコンテンツタイプが携帯端末T1用であるか否かを判定する。コンテンツタイプが携帯端末T1用であると判定された場合(ステップS124:YES)、ステップS125へ進む。一方、コンテンツタイプが携帯端末T1用でないと判定された場合(ステップS124:NO)、ステップS126へ進む。ステップS125では、制御部11は、携帯端末T1用の合成コンテンツの生成に用いる部品コンテンツとして、通常映像データ、PCMデータ、及びテロップデータを決定し、コンテンツタイプ決定処理を終了する。これにより、図4(A)に示す処理に戻る。
ステップS126では、制御部11は、決定したコンテンツタイプが携帯端末T2用であるか否かを判定する。コンテンツタイプが携帯端末T2用であると判定された場合(ステップS126:YES)、ステップS127へ進む。一方、コンテンツタイプが携帯端末T2用でないと判定された場合(ステップS126:NO)、ステップS128へ進む。この場合、コンテンツタイプが携帯端末T3用であると判定される。ステップS127では、制御部11は、携帯端末T2用の合成コンテンツの生成に用いる部品コンテンツとして、通常映像データ、MIDIデータ及びテロップデータを決定し、コンテンツタイプ決定処理を終了する。これにより、図4(A)に示す処理に戻る。ステップS128では、制御部11は、携帯端末T3用の合成コンテンツの生成に用いる部品コンテンツとして、MIDIデータ及びテロップデータを決定し、コンテンツタイプ決定処理を終了する。これにより、図4(A)に示す処理に戻る。
なお、図4(B)に示すコンテンツタイプ決定処理では、セットトップボックス用、携帯端末T1用、携帯端末T2用、及び携帯端末T3用のそれぞれで合成コンテンツに用いる部品コンテンツを変えている。しかし、セットトップボックス用、携帯端末T1用、携帯端末T2用、及び携帯端末T3用のうちの一部で合成コンテンツに用いる部品コンテンツが共通するように構成してもよい。例えば、携帯端末T3用の合成コンテンツに用いられる部品コンテンツだけが、他と異なるように構成してもよい。
次に、図4(A)に示すステップS13では、制御部11は、決定したコンテンツタイプの合成コンテンツが記憶部12に記憶されているか否かを判定する。ここで判定対象の合成コンテンツは、上記受信された要求メッセージに含まれるコンテンツIDに対応する合成コンテンツである。そして、決定したコンテンツタイプの合成コンテンツが記憶部12に記憶されていないと判定された場合(ステップS13:NO)、ステップS14へ進む。一方、決定したコンテンツタイプの合成コンテンツが記憶部12に記憶されていると判定された場合(ステップS13:YES)、ステップS18へ進む。
ステップS14では、制御部11は、決定したコンテンツタイプの合成コンテンツの生成に用いる部品コンテンツの全てが記憶部12に記憶されているか否かを判定する。部品コンテンツの全てが記憶部12に記憶されていないと判定された場合(ステップS14:NO)、ステップS15へ進む。つまり、決定したコンテンツタイプの合成コンテンツの生成に用いる部品コンテンツが足りない場合、ステップS15へ進む。一方、部品コンテンツの全てが記憶部12に記憶されていると判定された場合(ステップS14:YES)、制御部11は、合成コンテンツの生成に用いる部品コンテンツの全てを記憶部12から取得してステップS17へ進む。
ステップS15では、制御部11は、足りない部品コンテンツの要求を示す要求メッセージを、ステップS6と同様、エッジサーバESnへ送信する。例えば、セットトップボックス用の合成コンテンツの生成に用いる部品コンテンツの中で、PCMデータだけが記憶されていない場合がある。この場合、PCMデータの要求を示す要求メッセージが送信される。また、この場合、例えば、PCMデータ以外の本人映像データ及びテロップデータは記憶部12から取得される。そして、制御部11は、部品コンテンツのコンテンツホルダから部品コンテンツを受信したか否かを判定する(ステップS16)。部品コンテンツを受信したと判定された場合(ステップS16:YES)、ステップS14に戻る。なお、受信された部品コンテンツは記憶部12に記憶される。ステップS17では、制御部11は、取得した部品コンテンツを用いて、要求対象の合成コンテンツの生成処理を実行し、ステップS18へ進む。これにより、要求元の装置種類に対応した合成コンテンツが生成される。
ステップS18では、制御部11は、受信した要求メッセージに含まれる装置種類情報に基づいて、要求対象の合成コンテンツをストリーミング配信により要求元へ配信するか否かを判定する。例えば、取得した装置種類情報が示す装置種類が、キャッシュが制限されている装置種類である場合、ストリーミング配信により要求元へ配信すると判定される。これにより、例えば、合成コンテンツの要求元において合成コンテンツのキャッシュが制限されている場合であっても、合成コンテンツを迅速に配信することができる。合成コンテンツをストリーミング配信により要求元へ配信すると判定された場合(ステップS18:YES)、ステップS19へ進む。一方、合成コンテンツをストリーミング配信により要求元へ配信しないと判定された場合(ステップS18:NO)、ステップS21へ進む。
ステップS19では、制御部11は、ステップS18の判定にしたがって、要求対象の合成コンテンツを要求元へストリーミングで配信する。そして、制御部11は、合成コンテンツの配信が完了したか否かを判定する(ステップS20)。合成コンテンツの配信が完了していないと判定された場合(ステップS20:NO)、ステップS19に戻り、合成コンテンツの配信を継続する。一方、合成コンテンツの配信が完了したと判定された場合(ステップS20:YES)、配信処理を終了する。これにより、図3に示す処理に戻る。ステップS21では、制御部11は、要求対象の合成コンテンツを要求元へダウンロード方式で配信する。ステップS22の処理は、ステップS20の処理を同様である。こうして配信された合成コンテンツは、要求元である例えばセットトップボックスSTBpより受信される。そして、例えばセットトップボックスSTBpは、受信した合成コンテンツを用いて楽曲を再生する。
次に、図3に示すステップS2のパブリッシュ処理では、図5に示すように、制御部11は、合成コンテンツを生成する余裕があるか否かを判定する(ステップS25)。ここで、合成コンテンツを生成する余裕がある場合の一例として、例えば、この制御部11を備えるコマンダCoの利用頻度が閾値以下の場合、またはコマンダCoが所定時間利用されていない場合などがある。コマンダCoの利用頻度は、例えば、一定時間内に、他の情報処理装置からコマンダCoへアクセスされた回数を算出することで得られる。或いは、コマンダCoの利用頻度は、例えば、一定時間内に、コマンダCoにより楽曲が再生された回数を算出することで得られる。そして、合成コンテンツを生成する余裕があると判定された場合(ステップS25:YES)、ステップS26へ進む。一方、合成コンテンツを生成する余裕がないと判定された場合(ステップS25:NO)、パブリッシュ処理を終了する。これにより、図3に示す処理に戻る。
ステップS26では、制御部11は、楽曲の合成コンテンツが記憶部12に記憶されているか否かを判定する。合成コンテンツが記憶部12に記憶されていないと判定された場合(ステップS26:NO)、ステップS28へ進む。一方、合成コンテンツが記憶部12に記憶されていると判定された場合(ステップS26:YES)、ステップS27へ進む。
ステップS27では、制御部11は、合成コンテンツホルダリストに対するパブリッシュメッセージを、上述したように、エッジサーバESnへ送信する。これにより、合成コンテンツホルダリストに対するパブリッシュメッセージは、ノードNkであるエッジサーバESnによりオーバーレイネットワークONを介して合成コンテンツのルートノードへ送信される。なお、記憶部12に複数の合成コンテンツが記憶されている場合、それぞれの合成コンテンツについてステップS27の処理が行われる。また、ステップS27の処理は、合成コンテンツを生成する余裕があるか否かに関わらず、合成コンテンツが記憶部12に記憶されたときに実行されるように構成してもよい。
ステップS28では、制御部11は、合成コンテンツの生成に用いる部品コンテンツが記憶部12に記憶されているか否かを判定する。例えば、合成コンテンツ「AAA」の生成に用いる全ての部品コンテンツの中で、一部の部品コンテンツが記憶されていれば、部品コンテンツが記憶部12に記憶されていると判定され(ステップS28:YES)、ステップS29へ進む。ここで、一部の部品コンテンツとは、例えば、合成コンテンツの生成に用いる部品コンテンツが3つあるとすると、そのうちの1以上の部品コンテンツ、または2以上の部品コンテンツである。幾つ以上に設定するかは例えばシステム運用者等により設定される。一方、部品コンテンツが記憶部12に記憶されていないと判定された場合(ステップS28:NO)、パブリッシュ処理を終了する。これにより、図3に示す処理に戻る。
ステップS29では、制御部11は、コンテンツクリエイタリストに対するパブリッシュメッセージを、上述したように、エッジサーバESnへ送信する。これにより、コンテンツクリエイタリストに対するパブリッシュメッセージは、ノードNkであるエッジサーバESnによりオーバーレイネットワークONを介して合成コンテンツのルートノードへ送信される。
次いで、制御部11は、部品コンテンツホルダリストに対するパブリッシュメッセージを、上述したように、エッジサーバESnへ送信する(ステップS30)。これにより、部品コンテンツホルダリストに対するパブリッシュメッセージは、ノードNkであるエッジサーバESnによりオーバーレイネットワークONを介して部品コンテンツのルートノードへ送信される。こうして配信処理が終了し、図3に示す処理に戻る。なお、記憶部12に複数の部品コンテンツが記憶されている場合、それぞれの部品コンテンツについてステップS30の処理が行われる。また、ステップS30の処理は、合成コンテンツを生成する余裕があるか否かに関わらず、部品コンテンツが記憶部12に記憶されたときに実行されるように構成してもよい。
(4−2.ルートノードの処理)
次に、図6及び図7を参照して、ルートノードの処理について説明する。図6は、ルートノードの制御部21におけるメッセージ受信処理を示すフローチャートである。図7(A)は、図6に示すステップS63のコンテンツホルダ決定処理の詳細を示すフローチャートである。図7(B)は、図6に示すステップS65のコンテンツクリエイタ決定処理の詳細を示すフローチャートである。なお、図6及び図7は、合成コンテンツのルートノードと、部品コンテンツのルートノードとで共通のフローチャートである。
図6に示すメッセージ受信処理は、メッセージを受信した場合に開始される。ステップS51では、制御部21は、受信されたメッセージが、パブリッシュメッセージであるか否かを判定する。受信されたメッセージが、パブリッシュメッセージであると判定された場合(ステップS51:YES)、ステップS54へ進む。一方、受信されたメッセージが、パブリッシュメッセージでないと判定された場合(ステップS51:NO)、ステップS52へ進む。
ステップS52では、制御部21は、受信されたメッセージが、要求メッセージであるか否かを判定する。受信されたメッセージが、要求メッセージであると判定された場合(ステップS52:YES)、ステップS63へ進む。一方、受信されたメッセージが、要求メッセージでないと判定された場合(ステップS52:NO)、ステップS53へ進む。ステップS53では、パブリッシュメッセージ及び要求メッセージ以外のメッセージの受信処理が行われる。この受信処理については説明を省略する。
ステップS54では、制御部21は、受信されたメッセージが、コンテンツホルダリストに対するパブリッシュメッセージであるか否かを判定する。受信されたメッセージが、コンテンツホルダリストに対するパブリッシュメッセージであると判定された場合(ステップS54:YES)、ステップS55へ進む。一方、受信されたメッセージが、コンテンツホルダリストに対するパブリッシュメッセージでないと判定された場合(ステップS54:NO)、ステップS58へ進む。つまり、この場合、受信されたメッセージは、コンテンツクリエイタリストに対するパブリッシュメッセージということになる。
ステップS55では、受信されたメッセージが、合成コンテンツホルダリストに対するパブリッシュメッセージであるか否かを判定する。受信されたメッセージが、合成コンテンツホルダリストに対するパブリッシュメッセージであると判定された場合(ステップS55:YES)、ステップS56へ進む。一方、受信されたメッセージが、合成コンテンツホルダリストに対するパブリッシュメッセージでないと判定された場合(ステップS55:NO)、ステップS57へ進む。つまり、この場合、受信されたメッセージは、部品コンテンツホルダリストに対するパブリッシュメッセージということになる。
ステップS56では、制御部21は、合成コンテンツホルダリストに対するパブリッシュメッセージから、合成コンテンツのコンテンツID、コマンダCoの所在情報、合成コンテンツのコンテンツタイプ、及び合成コンテンツの生成所要時間を取得する。そして、制御部21は、取得した合成コンテンツのコンテンツID、コマンダCoの所在情報、合成コンテンツのコンテンツタイプ、及び合成コンテンツの生成所要時間等を対応付けて合成コンテンツホルダリストに登録し、ステップS52に戻る。
ステップS57では、制御部21は、部品コンテンツホルダリストに対するパブリッシュメッセージから、部品コンテンツのコンテンツID、及びコマンダCoの所在情報を取得する。そして、制御部21は、取得した部品コンテンツのコンテンツID、及びコマンダCoの所在情報等を対応付けて部品コンテンツホルダリストに登録し、ステップS52に戻る。
ステップS58では、制御部21は、コンテンツクリエイタリストに対するパブリッシュメッセージから、合成コンテンツのコンテンツID、コマンダCoの所在情報、及び部品コンテンツのコンテンツIDを取得する。この部品コンテンツのコンテンツIDは、上述したように、コマンダCoが記憶している部品コンテンツのコンテンツIDである。そして、制御部21は、取得した合成コンテンツのコンテンツID、コマンダCoの所在情報、及び部品コンテンツのコンテンツIDを対応付けてコンテンツクリエイタリストに登録する。
次いで、制御部21は、ステップS58で登録された情報を含むレコードに対して有効期限を設定する(ステップS59)。この有効期限は、例えば、所在情報等の登録日から数日後に設定される。次いで、制御部21は、ステップS59で設定した有効期限を、ステップS58で登録したコマンダCoの所在情報に対応付けてコンテンツクリエイタリストに登録する(ステップS60)。次いで、制御部21は、コンテンツクリエイタリストに有効期限切れのレコードがあるか否かを判定する(ステップS61)。コンテンツクリエイタリストに有効期限切れのレコードがあると判定された場合(ステップS61:YES)、ステップS62へ進む。ステップS62では、制御部21は、有効期限切れのレコードに含まれるコマンダCoの所在情報を削除し、ステップS52に戻る。一方、コンテンツクリエイタリストに有効期限切れのレコードがないと判定された場合(ステップS61:NO)、ステップS52へ戻る。
ステップS63では、制御部21は、コンテンツホルダ決定処理を実行する。コンテンツホルダ決定処理では、図7(A)に示すように、制御部21は、受信された要求メッセージが、部品コンテンツの要求を示すか否かを判定する(ステップS631)。受信された要求メッセージが、部品コンテンツの要求を示すと判定された場合(ステップS631:YES)、ステップS632へ進む。一方、受信された要求メッセージが、部品コンテンツの要求を示さないと判定された場合(ステップS631:NO)、ステップS634へ進む。つまり、この場合、受信された要求メッセージが、合成コンテンツの要求を示すということになる。
ステップS632では、制御部21は、部品コンテンツの要求を示す要求メッセージから、要求対象の部品コンテンツのコンテンツID及び情報処理装置の所在情報を取得する。次いで、制御部21は、ステップS632で取得したコンテンツIDと、部品コンテンツホルダリストとに基づいて、部品コンテンツを要求元へ配信する配信装置として、部品コンテンツホルダを決定し(ステップS633)、コンテンツホルダ決定処理が終了する。これにより、図6に示す処理に戻る。ステップS633で決定される部品コンテンツホルダは、ステップS632で取得されたコンテンツIDに対応付けられて部品コンテンツホルダリストに登録されている所在情報に対応する部品コンテンツホルダである。こうして決定された配信装置の所在情報が部品コンテンツホルダリストから取得される。
ステップS634では、制御部21は、合成コンテンツの要求を示す要求メッセージから、要求対象の合成コンテンツのコンテンツID、情報処理装置の所在情報、及び情報処理装置の装置種類を示す装置種類情報を取得する。次いで、制御部21は、コンテンツホルダを配信装置として利用する利用条件を満たすか否かを判定する(ステップS635)。このコンテンツホルダは、ステップS634で取得されたコンテンツIDが付与された合成コンテンツのコンテンツホルダである。例えば、要求メッセージの受信時刻がアクセス時間の少ない深夜の時間帯に含まれている場合、上記利用条件を満たすと判定される。これにより、空き時間を有効に利用して合成コンテンツを生成させることができる。また、合成コンテンツホルダリストに登録されたコンテンツホルダの数が所定数以上の場合、利用条件を満たすと判定される。これは、コンテンツホルダの数が少ない場合にコンテンツホルダを利用しない趣旨である。これにより、合成コンテンツのコンテンツホルダの負荷を低減することができる。
また、合成コンテンツホルダリストに登録されたコンテンツホルダの情報が過去の所定日時よりも新しい場合、利用条件を満たすと判定される。これは、合成コンテンツホルダリストに登録されたコンテンツホルダの情報が古い場合、コンテンツホルダを利用しない趣旨である。これにより、コンテンツクリエイタに合成コンテンツを生成して配信させることができるので、合成コンテンツを最新に保つことができる。なお、コンテンツホルダの情報が過去の所定日時より新しいか否かは、例えば、合成コンテンツホルダリストに登録された更新日時により判定される。また、対象となるコンテンツホルダが複数ある場合がある。この場合、それらの中の所定数以上のコンテンツホルダの情報が過去の所定日時よりも新しい場合に、利用条件を満たすと判定されるように構成してもよい。この場合、過去の所定日時よりも新しいと判定されたコンテンツホルダだけが配信装置として決定される候補になる。
また、合成コンテンツホルダリストに登録されたコンテンツホルダへのアクセス回数が所定回数以下の場合、利用条件を満たすと判定される。これは、コンテンツホルダへアクセス回数が多い場合にコンテンツホルダを利用しない趣旨である。これにより、合成コンテンツのコンテンツホルダの負荷を低減することができる。合成コンテンツホルダリストに登録されたコンテンツホルダのアクセス回数は、合成コンテンツのルートノードにより管理される。合成コンテンツのルートノードは、要求メッセージに応じてコンテンツホルダを配信装置として決定する度に、このコンテンツホルダのアクセス回数をインクリメントする。また、対象となるコンテンツホルダが複数ある場合がある。この場合、それらの中の所定数以上のコンテンツホルダへのアクセス回数が所定回数以下の場合、利用条件を満たすと判定されるように構成してもよい。この場合、アクセス回数が所定回数以下と判定されたコンテンツホルダだけが配信装置として決定される候補になる。
そして、コンテンツホルダを配信装置として利用する利用条件を満たすと判定された場合(ステップS635:YES)、ステップS636へ進む。一方、コンテンツホルダを配信装置として利用する利用条件を満たないと判定された場合(ステップS635:NO)、つまり、コンテンツホルダが利用可能でないと判定された場合、図6に示す処理に戻る。
ステップS636では、制御部21は、ステップS635で利用条件を満たすと判定されたコンテンツホルダの中で、ステップS634で取得された装置種類情報が示す装置種類に対応した合成コンテンツを保存するコンテンツホルダがあるか否かを判定する。ここで、「コンテンツホルダがあるか否か」とは、コンテンツホルダの所在情報が合成コンテンツホルダリストに登録されているか否かをいう。また、ステップS634で取得された装置種類情報が示す装置種類に対応した合成コンテンツであるか否かは、ステップS634で取得されたコンテンツIDに対応付けられて合成コンテンツホルダリストに登録されているコンテンツタイプにより判定される。装置種類に対応した合成コンテンツを保存するコンテンツホルダの所在情報が登録されていると判定された場合(ステップS636:YES)、ステップS637へ進む。一方、装置種類に対応した合成コンテンツを保存するコンテンツホルダの所在情報が登録されていないと判定された場合(ステップS636:NO)、つまり、コンテンツホルダが利用可能でないと判定された場合、コンテンツホルダ決定処理が終了する。これにより、図6に示す処理に戻る。
ステップS637では、制御部21は、ステップS636で所在情報が登録されていると判定されたコンテンツホルダのホルダ登録日時が、現時点から遡って所定期間内にあるか否かを判定する。これは、コンテンツホルダのホルダ登録日時が古い場合、このコンテンツホルダを利用しない趣旨である。コンテンツホルダのホルダ登録日時が、現時点から遡って所定期間内にあると判定された場合(ステップS637:YES)、ステップS638へ進む。一方、コンテンツホルダのホルダ登録日時が、現時点から遡って所定期間内にないと判定された場合(ステップS637:NO)、つまり、コンテンツホルダが利用可能でないと判定された場合、コンテンツホルダ決定処理が終了する。これにより、図6に示す処理に戻る。
ステップS638では、制御部21は、ステップS637でホルダ登録日時が所定期間内にあると判定されたコンテンツホルダを、合成コンテンツを要求元へ配信する配信装置として決定し、コンテンツホルダ決定処理が終了する。これにより、図6に示す処理に戻る。ここで、ホルダ登録日時が所定期間内にあると判定されたコンテンツホルダが複数ある場合がある。この場合、複数のコンテンツホルダの中で、最もアクセス回数の少ないコンテンツホルダを、上記配信装置として決定するように構成してもよい。こうして決定された配信装置の所在情報が合成コンテンツホルダリストから取得される。
図6に示すステップS64では、制御部21は、コンテンツホルダ決定処理により配信装置が決定したか否かを判定する。配信装置が決定していないと判定された場合(ステップS64:NO)、つまり、コンテンツホルダが利用可能でないと判定された場合、ステップS65へ進む。一方、配信装置が決定したと判定された場合(ステップS64:YES)、ステップS66へ進む。
ステップS65では、制御部21は、コンテンツクリエイタ決定処理を実行する。コンテンツクリエイタ決定処理では、図7(B)に示すように、制御部21は、ステップS634で取得されたコンテンツIDに対応付けられたコンテンツクリエイタの所在情報がコンテンツクリエイタリストに複数登録されている否かを判定する(ステップS651)。コンテンツクリエイタの所在情報がコンテンツクリエイタリストに複数登録されていないと判定された場合(ステップS651:NO)、つまり、コンテンツクリエイタが一つである場合、ステップS652へ進む。一方、コンテンツクリエイタの所在情報がコンテンツクリエイタリストに複数登録されていると判定された場合(ステップS651:YES)、ステップS653へ進む。
ステップS652では、制御部21は、ステップS651で判定された所在情報に対応するコンテンツクリエイタを、合成コンテンツを生成し且つ要求元へ配信する配信装置として決定し、コンテンツクリエイタ決定処理が終了する。これにより、図6に示す処理に戻る。こうして決定された配信装置の所在情報がコンテンツクリエイタリストから取得される。
ステップS653では、制御部21は、ステップS634で取得されたコンテンツIDにより識別される合成コンテンツの生成に用いられる複数の部品コンテンツの中で、より多くの部品コンテンツを保存する所定数のコンテンツクリエイタを、合成コンテンツを生成し且つ要求元へ配信する配信装置として決定し、コンテンツクリエイタ決定処理が終了する。これにより、図6に示す処理に戻る。ステップS653で決定されるコンテンツクリエイタは、ステップS651で判定された複数の所在情報それぞれに対応するコンテンツクリエイタの中から決定される。また、より多くの部品コンテンツを保存する所定数のコンテンツクリエイタとは、コンテンツクリエイタリストにおいて、ステップS651で判定された複数の所在情報それぞれに対応付けられた部品コンテンツのコンテンツIDの数が多い上位の所在情報に対応するコンテンツクリエイタである。これにより、合成コンテンツの生成に必要な部品コンテンツの中で足りない部品コンテンツを、コンテンツクリエイタに迅速に補完させることができる。そのため、コンテンツクリエイタに、要求対象の合成コンテンツを迅速に生成させることができる。
ステップS66では、制御部21は、受信された要求メッセージを、コンテンツホルダ決定処理またはコンテンツクリエイタ決定処理により決定された配信装置へ転送する。或いは、制御部21は、コンテンツホルダ決定処理またはコンテンツクリエイタ決定処理により決定された配信装置の所在情報を含む応答メッセージを、上述したように、要求元へ返信するように構成してもよい。
以上説明したように、本実施形態によれば、合成コンテンツのコンテンツホルダ及びコンテンツクリエイタの所在を管理するルートノードは、合成コンテンツの要求に応じて要求元の装置種類に対応した合成コンテンツのコンテンツホルダが利用可能であるか否かを判定する。そして、ルートノードは、合成コンテンツのコンテンツホルダが利用可能でないと判定した場合、合成コンテンツを生成可能なコンテンツクリエイタを、要求元へ合成コンテンツを配信する配信装置として決定するように構成した。そのため、合成コンテンツを生成する能力がない情報処理装置である要求元に対して、この要求元の装置種類に対応した合成コンテンツを迅速に提供することができる。
また、上記実施形態によれば、合成コンテンツのコンテンツホルダにアクセスが集中している場合であっても、コンテンツクリエイタが合成コンテンツの要求元の装置種類に対応した合成コンテンツを生成して迅速に配信することができる。また、合成コンテンツのコンテンツホルダの数が少ない場合であっても、コンテンツクリエイタが合成コンテンツの要求元の装置種類に対応した合成コンテンツを生成して迅速に配信することができる。
なお、上記実施形態においては、楽曲の合成コンテンツを例にとって説明した。しかし、楽曲の合成コンテンツ以外の合成コンテンツにも本発明は適用可能である。また、上記実施形態においては、素材データとして、演奏データ、背景映像データ、及びテロップデータを例にとって説明した。しかし、演奏データ、背景映像データ、及びテロップデータ以外の素材データにも本発明は適用可能である。
また、上記実施形態においては、オーバーレイネットワークに、DHTを利用したピアツーピアネットワークが適用されていたが、これに限られるものではない。例えば、他のピアツーピアシステム、または、オーバーレイネットワークを用いたシステムが適用されてもよい。DHTを利用しないオーバーレイネットワークとしては、例えば、ハイブリッド型のピアツーピアネットワーシステムがある。