ノード装置、情報処理プログラム、コンテンツ配信方法及びコンテンツ配信システム
【課題】コンテンツを配信する装置における負担やネットワークシステムの通信経路における負担をより低減させる。
【解決手段】複数の第1コンテンツデータが複数のノード装置1に分散保存され、一のノード装置1が他のノード装置1からの要求に応じて自己が保存している第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムS1に参加しているノード装置1であり、且つ、複数のノード装置32が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置31から配信された第2コンテンツデータが、上位階層のノード装置32から下位階層のノード装置32に順次転送されるようにしたツリー型配信システムS2に参加している配信元のノード装置31であって、ノード装置1から第1コンテンツデータを取得し、取得した第1コンテンツデータを第2コンテンツデータとして他の前記ノード装置32に配信する。
【解決手段】複数の第1コンテンツデータが複数のノード装置1に分散保存され、一のノード装置1が他のノード装置1からの要求に応じて自己が保存している第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムS1に参加しているノード装置1であり、且つ、複数のノード装置32が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置31から配信された第2コンテンツデータが、上位階層のノード装置32から下位階層のノード装置32に順次転送されるようにしたツリー型配信システムS2に参加している配信元のノード装置31であって、ノード装置1から第1コンテンツデータを取得し、取得した第1コンテンツデータを第2コンテンツデータとして他の前記ノード装置32に配信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信手段を介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型のコンテンツ配信システム及び方法等の技術分野に関する。
【背景技術】
【0002】
近年、ブロードバンドの普及によりVOD(ビデオオンデマンド)等のコンテンツ配信サービスが行われている。現在のコンテンツ配信における主流形態であるサーバクライアント方式に変わる新しい形態として、ピアツーピアという技術が注目されてきている。ピアツーピア型の情報通信システムとしては、ツリー型のネットワーク形式(例えば、特許文献1参照)が知られている。
【特許文献1】特開2006−33514号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ツリー型のコンテンツ配信サービスとしては、初めにコンテンツを配信し、放送局の役割を果たす放送局装置が、当該装置自身が有しているデータベースにコンテンツを保存している態様が考えられる。そして、当該放送局装置は、放送番組のプログラムに従って、配信するコンテンツをデータベースから準備し、配信する。このとき、配信するコンテンツが増大すると、放送局装置が保有するデータベースも増大する。また、放送局としてコンテンツを配信する他、当該データベースから他のノード装置にコンテンツを送信する場合には放送局装置に通信が集中し、各通信が滞る可能性がある。
【0004】
そこで、本発明は、コンテンツの放送局装置における負担やネットワークシステムの通信経路における負担をより低減させたコンテンツ配信システム及び方法等を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するために、請求項1に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置であって、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、を有することを特徴とするノード装置である。
【0006】
これによれば、配信元のノード装置は、配信する第2コンテンツデータを予めデータベース等に保存しておく必要がないため、データベースに多くのコンテンツデータを予め保存し、当該ノード装置に通信が集中することが防止される。そのため、ノード装置自体の負担や通信経路の負担、すなわちコンテンツ配信システム全体における負担も低減される。また、このように機能する配信元のノード装置は、配信する第2コンテンツデータ保存用のデータベース等を増大させる必要がなく、配信コンテンツ用のデータベースに費用をかかることを防止できる。さらに、配信元のノード装置をこのような構成とすれば、ツリー型配信システムにおける放送局装置を別途設けずに、通常のノード装置を放送局装置として機能させることができる。
【0007】
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置であって、前記第1コンテンツデータ取得手段は、ストリーミング方式で送信されてきた前記第1コンテンツデータを取得し、第2コンテンツデータ配信手段は、ストリーミング方式で前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置である。
【0008】
これによれば、データの送受信をストリーミング方式で行うことにより、ノード装置は、一の第1コンテンツデータを受信している途中であっても、これに対応する第2コンテンツデータを送信することができる。そのため、データを全て受信するまで待たずにツリー型配信システムにおいて第2コンテンツデータを送信することができ、速やかにデータの配信を行うことができる。
【0009】
上記課題を解決するために、請求項3に記載の発明は、請求項1又は2に記載のノード装置であって、前記ノード装置は、さらに、受信した前記第1コンテンツデータを保存する記録媒体を有することを特徴とするノード装置である。
【0010】
これによれば、ノード装置は第1コンテンツデータを保存できるため、同様の第1コンテンツデータに対応する第2コンテンツデータを再度配信する場合に、再度第1コンテンツデータを取得することから始める必要がなく、通信経路への負担を低減できる。
【0011】
上記課題を解決するために、請求項4に記載の発明は、請求項3に記載のノード装置であって、前記ノード装置は、さらに、前記第1コンテンツデータを取得した場合に、当該第1コンテンツデータを前記記録媒体に保存するか否かを判断する保存判断手段を有し、前記記録媒体は、前記保存判断手段が保存すると判断した場合に、新たに前記第1コンテンツデータを保存することを特徴とするノード装置である。
【0012】
これによれば、ノード装置は、第1コンテンツデータの必要性や自身の記録媒体における残りの記憶容量等に応じて、第1コンテンツデータを新たに記録するか否かを判断できる。そのため、ノード装置に負担をかけることなく必要に応じて受信した第1コンテンツデータを保存できる。
【0013】
上記課題を解決するために、請求項5に記載の発明は、請求項3又は4に記載のノード装置であって、前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他の前記ノード装置に当該第1コンテンツデータを保存していることを示す公開情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する公開情報送信手段と、他の前記ノード装置から前記第1コンテンツデータの送信を要求する送信要求情報を受信する要求受信手段と、前記要求受信手段が他の前記ノード装置から前記送信要求情報を受信した場合に、当該送信要求情報に応じて前記記録媒体に保存されている前記第1コンテンツデータを送信する第1コンテンツデータ送信手段と、を有することを特徴とするノード装置である。
【0014】
これによれば、配信元のノード装置がある第1コンテンツデータを保存していることを他のノード装置に対して公開することにより、他のノード装置は配信元のノード装置から当該第1コンテンツデータを取得できることとなる。そのため、他のノード装置は、元々第1コンテンツノードを保存しているノード装置(例えば、コンテンツノード等)の他に配信元のノード装置から第1コンテンツデータを取得できることとなり、他のノード装置を有するユーザの利便性が向上する他、元々第1コンテンツノードを保存しているノード装置における他のノード装置へ第1コンテンツデータを送信する通信の負担が低減される。
【0015】
上記課題を解決するために、請求項6に記載の発明は、請求項5に記載のノード装置であって、前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、前記公開情報を送信するか否かを判断する公開判断手段を有し、前記公開情報送信手段は、前記公開判断手段が前記公開情報を送信すると判断した場合に、前記公開情報を送信することを特徴とするノード装置である。
【0016】
これによれば、ノード装置は、コンテンツ分散保存システムにおける第1コンテンツデータの複製の必要性や、自身の通信状況等に応じて、公開情報を送信するか否かを判断できる。そのため、公開情報を送信しないと判断した場合には、他のノード装置から送信要求情報を受信することがないため、ノード装置における通信の負担が増大することが防止できる。
【0017】
上記課題を解決するために、請求項7に記載の発明は、請求項1乃至6のいずれか一項に記載のノード装置であって、前記ノード装置は、さらに、前記第2コンテンツデータ配信手段により配信すべき前記第2コンテンツデータに対応する前記第1コンテンツデータを保存している前記ノード装置の所在を検索するための検索情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する検索手段と、前記管理元のノード装置から前記第1コンテンツデータの所在を示すノード情報を受信した場合に、当該ノード情報に対応する前記ノード装置に前記第1コンテンツデータの送信を要求する送信要求情報を送信する要求送信手段と、を有し、前記第1コンテンツデータ取得手段は、前記送信要求情報の送信先の前記ノード装置から前記第1コンテンツデータを取得することを特徴とするノード装置である。
【0018】
これによれば、ノード装置が検索情報を送信することにより、第1コンテンツデータの所在(第1コンテンツデータを保存している他のノード装置のIPアドレス等)がわかり、当該他のノード装置から第1コンテンツデータを取得することが可能となる。そのため、ノード装置が第1コンテンツデータの所在を常に記憶している必要がなく、ノード装置における記憶することの負担が低減される。
【0019】
上記課題を解決するために、請求項8に記載の発明は、請求項1乃至7のいずれか一項に記載のノード装置であって、前記ノード装置は、さらに、取得した前記第1コンテンツデータをツリー型配信システムにおいて配信するための形式に変換して前記第2コンテンツデータとする変換手段を有し、前記第2コンテンツデータ配信手段は、前記変換手段により変換された後の前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置である。
【0020】
これによれば、ノード装置は、データを変換することにより、ツリー型配信システムに合った形式で第2コンテンツデータを配信することができ、データの形式があわないことにより下流のノード装置において負担がかかることが防止される。
【0021】
上記課題を解決するために、請求項9に記載の発明は、請求項8に記載のノード装置であって、前記変換手段は、前記第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて前記第2コンテンツデータとすることを特徴とするノード装置である。
【0022】
これによれば、ノード装置は、ツリー型配信システムにおいては、変換され、正規の第1コンテンツデータよりも質の低い第2コンテンツデータを配信し、コンテンツ分散保存システムにおいては、正規の第1コンテンツデータを保存することができる。そして、ツリー型配信システムの各ノード装置において第2コンテンツデータを視聴して気に入った視聴者が、改めてコンテンツ分散保存システムにおいて正規の第1コンテンツデータを取得することができる。
【0023】
上記課題を解決するために、請求項10に記載の発明は、請求項8又は9に記載のノード装置であって、前記変換手段は、前記第1コンテンツデータに含まれる映像を部分的に間引く、前記第1コンテンツデータに含まれる映像の一部を選択する、前記第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、前記第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は前記第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことを特徴とするノード装置である。
【0024】
これによれば、上記の点に加え、第1コンテンツデータについて、具体的にこのような変換を行い、第2コンテンツデータとして配信することにより、下流のノード装置が送受信するデータの容量を小さくすることもでき、当該ノード装置の負担を低減させることができる。
【0025】
上記課題を解決するために、請求項11に記載の発明は、請求項1乃至10のいずれか一項に記載のノード装置であって、前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段をさらに有し、前記コンテンツ判断手段が前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応すると判断した場合に、前記第2コンテンツデータ配信手段は、取得した当該第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信することを特徴とするノード装置である。
【0026】
これによれば、通常のノード装置がツリー型配信システムの配信元のノード装置として機能する場合に、コンテンツ判断手段は、取得した第1コンテンツデータが、当該ノード装置(ユーザ)の希望に基づいて取得したものか、ツリー型配信システムにおいて配信するために取得したものかを判断することができる。このとき、ノード装置は、ツリー型配信システムにおいて配信するために取得したコンテンツデータのみを第2コンテンツデータとして配信できる。
【0027】
上記課題を解決するために、請求項12に記載の発明は、コンピュータを、請求項1乃至11のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラムである。
【0028】
上記課題を解決するために、請求項13に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置におけるコンテンツ配信方法であって、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する工程と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する工程と、を有することを特徴とするコンテンツ配信方法である。
【0029】
上記課題を解決するために、請求項14に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システム、及び、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システム、を備えるコンテンツ配信システムであって、前記コンテンツ分散保存システムに参加している前記ノード装置であり、且つ、前記ツリー型配信システムに参加している前記配信元のノード装置は、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、を有することを特徴とするコンテンツ配信システムである。
【発明の効果】
【0030】
本発明によれば、配信元のノード装置が、特に第1コンテンツデータ受信手段及び第2コンテンツデータ送信手段を有することにより、ノード装置自体の負担や通信経路の負担、すなわちコンテンツ配信システム全体における負担が低減される。
【発明を実施するための最良の形態】
【0031】
以下、本発明の最良の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、DHTを利用したコンテンツ分散保存システム及びツリー型配信システムを備えるコンテンツ配信システムに本発明を適用した場合の実施形態である。本発明においては、コンテンツ分散保存システム内で送受信されるコンテンツデータを第1コンテンツデータとし、ツリー型配信システム内で送受信されるコンテンツデータを第2コンテンツデータとしている。なお、本発明のコンテンツ配信システム等の各発明は、以下に説明する実施形態に限定されず、本発明の技術思想の範囲内で適宜変更して実施される。
【0032】
[1.コンテンツ配信システムの概略等]
始めに、図1を参照して、コンテンツ配信システムSの概要構成等について説明する。
【0033】
図1は、本実施形態に係るコンテンツ配信システムSにおける各ノード装置の接続態様の一例を示す図である。
【0034】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、および通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
【0035】
コンテンツ配信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報としての固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号およびIPアドレスは、複数のノード装置1間で重複しないものである。なお、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
【0036】
[2.コンテンツ分散保存システムの構成等]
次いで、コンテンツ配信システムSに含まれるコンテンツ分散保存システムS1の構成等について説明する。
【0037】
[2.1.DHTの概要]
以下に、本実施形態のコンテンツ分散保存システムS1に係る分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用したアルゴリズムについて説明する。
【0038】
上述したコンテンツ配信システムSにおいて、当該ノード装置1同士が、互いに情報をやり取りする際には、お互いのノード情報としてのIPアドレスを知っていなければならない。
【0039】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置1にて記憶している当該任意のノード装置のIPアドレスの更新が頻繁になり、運用上困難となる。
【0040】
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限のノード装置1のIPアドレスだけを覚えて(記憶して)おいて、IPアドレスを知らない(記憶していない)ノード装置1については、各ノード装置1間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【0041】
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバレイネットワーク9が構築されることになる。つまり、このオーバレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【0042】
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバレイネットワーク9を前提としており、このオーバレイネットワーク9上に配置されたノード装置1を、コンテンツ分散保存システムS1に参加(言い換えれば、オーバレイネットワーク9に参加)しているノード装置1という。なお、コンテンツ分散保存システムS1への参加は、未だ参加していないノード装置が、既に参加している任意のノード装置1に対して参加要求を送ることによって行われる。
【0043】
コンテンツ分散保存システムS1に参加している各ノード装置1のノードIDは、それぞれのノード装置毎にユニーク(固有)な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノード装置を運用できる。
【0044】
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置のIPアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
【0045】
また、コンテンツ分散保存システムS1に参加している複数のノード装置1には、1のノード装置1から他のノード装置1に配信される第1コンテンツデータ(例えば、映画や音楽等のデータ)が分散して記憶(保存)されているが、当該第1コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク(固有)な番号(以下、コンテンツIDという。)を付与する。
【0046】
そして、当該コンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、例えば、コンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードが、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置1が、当該第1コンテンツデータが記憶(保存)するか、あるいは、コンテンツデータを保持するノード装置へのリンク情報(コンテンツ保持ノードのIPアドレス)を保持する。これにより、第1コンテンツデータを偏りなくコンテンツ分散保存システムS1上に分散させることが可能となる。なお、異なる第1コンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、または作詞者名等)の組み合わせとすればよい。
【0047】
このように、各ノード装置1および各第1コンテンツデータに付与されたノードIDおよびコンテンツIDは、共通のハッシュ関数によって生成したため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードIDおよびコンテンツIDを付与し、図示したものである。図中黒点はノードIDを、黒ひし形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
【0048】
次に、どのノード装置1に、どの第1コンテンツデータの所在が記憶されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理するノード装置は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDとノードIDとの差が一番少ないものとするが、実際には、各第1コンテンツデータの管理を各ノード装置1に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツIDaは、ノードIDaを有するノード装置1に管理され、コンテンツIDbは、ノードIDbを有するノード装置1に管理され、コンテンツIDcは、ノードIDcを有するノード装置1に管理される。
【0049】
なお、ここで「管理」というのは、第1コンテンツデータを保存(保持)していることを意味するのではなく、「第1コンテンツデータが何れのノード装置1に保存されているかを知っている」ことを言う。すなわち、図2において、ノードIDaを有するノード装置1は、コンテンツIDaを有する第1コンテンツデータが何れのノード装置1に保存されているかを知っており、ノードIDbを有するノード装置1およびノードIDcを有するノード装置1も同様にそれぞれコンテンツIDbを有する第1コンテンツデータおよびコンテンツIDcを有する第1コンテンツデータが何れのノード装置1に保存されているかを知っている、ということになる。このように、ある第1コンテンツデータが何れのノード装置1に保存されているかを知っているノード装置を、その第1コンテンツデータのルートノードと言う。つまり、ノードIDaを有するノード装置1は、コンテンツIDaを有する第1コンテンツデータのルートノードであって、ノードIDbを有するノード装置1は、コンテンツIDbを有する第1コンテンツデータのルートノードであって、ノードIDcを有するノード装置1は、コンテンツIDcを有する第1コンテンツデータのルートノードである。また、第1コンテンツデータを保持(保存)しているノード装置1をコンテンツノードという。
【0050】
[2.2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。
【0051】
図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【0052】
まず、図3(A)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長16Bitの4進数で表すこととした。そして、ノード装置1NのノードIDを「10230210」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
【0053】
(レベル1のルーティング)
まず、ID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXXXXXX」のエリア)以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(A)がレベル1のテーブルの一例である。2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
【0054】
(レベル2のルーティング)
次に、図3(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル2のテーブルに記憶する。図4(B)がレベル2のテーブルの一例である。1列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
【0055】
(レベル3のルーティング)
さらに、図3(C)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(C)がレベル3のテーブルの一例である。3列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無く、2列目、4列目はそのエリアにノード装置が存在しないため空白となる。
【0056】
このようにして、レベル4以下レベル8まで同様にルーティングテーブル図4(D)に示す如く作成することにより、16bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【0057】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。
【0058】
[2.3.第1コンテンツデータの検索方法及び取得方法]
次に、図5を参照して、第1コンテンツデータの保存元であるノード装置1の検索方法及び取得方法の一例について説明する。これは、後述するノード装置1における第1コンテンツデータ取得手段、検索手段、要求送信手段、要求受信手段及び第1コンテンツデータ送信手段により行われるものである。
【0059】
図5は、DHTにより第1コンテンツデータを保存しているノード装置1が検索される様子及び第1コンテンツデータが取得される様子の一例を示す図である。
【0060】
ここでは、ノードID「12003030」のノード装置1−1(以下、このように第1コンテンツデータを探し、第1コンテンツデータの受信を要求するノード装置を「リクエストノード」と言う。)が、コンテンツID「31330012」を有する第1コンテンツデータを探す際の手順について説明する。
【0061】
リクエストノードは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対してコンテンツの在処を問い合わせる検索情報(以下、本発明の「検索情報」(所望の第1コンテンツデータを記憶しているノード装置を検索するための検索情報)を「クエリ」と言う。)を送信する。つまり、コンテンツID「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1−2に対してクエリを送信する。このように、クエリはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものである。
【0062】
図5に示す例に拠れば、ノードIDが「30100000」であるノード装置1−2のIPアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードIDが「30100000」であるノード装置1−2に対してクエリを送信する。
【0063】
次に、クエリを受信したノード装置1−2は、当該ノード装置1−2自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1−3(ノードID「31012001」)に対してクエリを転送する。
【0064】
このように、コンテンツIDの桁を上から順に適合していく要領でクエリの転送が進み、最終的に当該第1コンテンツデータを管理するノード装置1−5、すなわちルートノード(本発明におけるコンテンツ分散保存システムにおける第1コンテンツデータの所在を管理する管理元のノード装置を示す。)に辿り着くと、当該ルートノードは、クエリに含まれるコンテンツID「31330012」を、自身が管理しているコンテンツインデックス情報(後述する)の中から検索し、当該第1コンテンツデータを所有しているノード装置1のIPアドレス等のノード情報をリクエストノードに返信するようになっている。
【0065】
こうして、リクエストノード(ノード装置1−1)は、上記ルートノード(ノード装置1−5)から、コンテンツID「31330012」の第1コンテンツデータの所在、即ち、当該データを保存しているコンテンツノード(ノード装置1−6)のIPアドレスを受信して知ることになる。このようにして検索されたコンテンツノードに、リクエストノードは、第1コンテンツデータの送信を要求する送信要求情報を送信し、当該コンテンツノードから、その第1コンテンツデータを取得(ダウンロード)することになる。
【0066】
また、コンテンツノードは、リクエストノードから第1コンテンツデータの送信を要求する送信要求情報を受信し、リクエストノードから送信要求情報を受信した場合に、当該送信要求情報に応じて第1コンテンツデータを送信する。
【0067】
なお、図示しないが、リクエストノードが送信したクエリを受信したルートノードは、該当する第1コンテンツデータを保存するコンテンツノードに対して、リクエストノードに第1コンテンツデータを配信するように指示する旨の情報を送信してもよい。この場合には、コンテンツノードは送信要求情報を送信することなく、コンテンツノードから所望の第1コンテンツデータを取得することができる。
【0068】
[2.4.第1コンテンツデータの公開方法]
このような構成のコンテンツ分散保存システムS1の中で、例えば、あるノード装置(上述のノード装置1−6とする)が新しい第1コンテンツデータを、コンテンツ分散保存システムS1上の他のノード装置1に所在がわかるように公開する際の手法について、図6を参照して述べる。これは、後述するノード装置1における公開情報送信手段により行われるものである。このノード装置1−6が第1コンテンツデータを保存するコンテンツノードとなる。
【0069】
図6に示すように、まず、コンテンツ分散保存システムS1に投入される第1コンテンツデータの種類や数等を管理するコンテンツ投入サーバ26から、新たな第1コンテンツデータがノード装置1−6に投入される。
【0070】
こうしてコンテンツノードとなったノード装置1−6は、コンテンツのタイトル等からコンテンツID;31330012を求め、当該コンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)自ノード装置が第1コンテンツデータを保存していることを示す公開情報(以下、本発明の公開情報をコンテンツ公開メッセージという。)を送信する。そして、このコンテンツ公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該コンテンツ公開メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや送信先のノード装置が他にないと判断すると、当該ノード装置1自身がその第1コンテンツデータのルートノードとなるべきだと判断し、当該コンテンツID、補助情報(タイトル、ジャンル等の属性情報や、監督名等の著作権情報等)およびコンテンツノードのIPアドレスをコンテンツインデックス情報として記憶する。
【0071】
なお、コンテンツノードは、一つに限られず、同じ第1コンテンツデータを保存し、公開したノード装置1(以下、レプリカノードともいう。)が他に存在していてもよい。この場合にも、二つ目以降のレプリカノードが同様に公開メッセージを送信すると、一の第1コンテンツデータに対して同じルートノードがその所在を管理することとなる。
【0072】
更にまた、ルートノードに至る経路の途中のノード装置が、当該ルートノードが記憶しているコンテンツインデックス情報をキャッシュとして保持しておいてもよい。このコンテンツインデックス情報をキャッシュとして保持するノード装置をキャッシュノードという。これにより、ルートノードがクエリを受信するより前に、より早くキャッシュノードにクエリが転送された時点でキャッシュノードがコンテンツノードのIPアドレスを、コンテンツの所在を問い合わせたリクエストノードに返信することが可能になる。なお、キャッシュノードの台数や公開メッセージが転送されるノード装置1の全てをキャッシュノードとするか否か、等はそのコンテンツ分散保存システムS1において自由に決定することができる。
【0073】
なお、コンテンツ投入サーバ26からの指示等により、コンテンツノードが保存している第1コンテンツデータを削除した場合には、コンテンツ削除メッセージを同様に送信し、ルートノードまで次々に転送され、当該コンテンツ削除メッセージを受信したルートノードやキャッシュノードは、コンテンツインデックス情報から当該第1コンテンツデータのコンテンツノードのうち、当該コンテンツ削除メッセージを送信したノード装置1の各種情報を削除する。
【0074】
[2.5.コンテンツ分散保存システムへの参加方法]
次いで、ノード装置のコンテンツ分散保存システムS1への参加方法について、図7を参照して説明する。
【0075】
図7に示すように、コンテンツ分散保存システムS1には、コンタクトノード紹介サーバ25が備えられている。図1の下部枠101内に示すようにネットワークを介して他のノード装置1と通信を行っているノード装置1は、コンテンツ分散保存システムS1に参加する場合には、まず、コンタクトノード紹介サーバ25に、コンタクトノード紹介要求メッセージを送信する。コンタクトノード紹介要求メッセージを受信したコンタクトノード紹介サーバ25は、これからシステムS1に参加するノード装置1(以下、参加ノードという。)がまず通信を行うノード装置(以下、コンタクトノードという。)のIPアドレス等のコンタクトノード情報を、参加ノードに返信する。
【0076】
次いで、参加ノードは、受信したコンタクトノード情報に基づき、コンタクトノードに参加メッセージを送信し、参加メッセージを受信したコンタクトノードは、当該参加ノードに対し、ルーティングテーブルの一段目(図4(D)におけるレベル1の段)のノードIDとIPアドレスとが対応付けられたテーブル情報を送信する。
【0077】
次いで、コンタクトノードは、参加ノードのIPアドレス等から求められるノードID(図7における右上の白丸に相当する)を求め、当該コンテンツIDに最も近いノードIDを有するノード装置1に向けて参加メッセージを転送する。この参加メッセージには、コンタクトノードが送信した段(1段目)のテーブル情報の、次の段(2段目)のテーブル情報を参加ノードに送信すべき旨の情報を付加する。そして、この参加メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該参加メッセージに含まれるノードIDに最も近いノードIDを有するノード装置1まで転送されたところで、転送が止められる。
【0078】
また、転送された参加メッセージを受信した各ノード装置1は、当該参加ノードに対し、参加メッセージに含まれた指示に従い所定の段のテーブル情報(図4(D)におけるレベル2以降の段)を送信する。この参加メッセージを転送する際には、自ノード装置1が送信した段(例えば、2段目)のテーブル情報の、次の段(例えば、3段目)のテーブル情報を参加ノードに送信すべき旨の情報を付加する。
【0079】
こうして、参加ノードは、参加メッセージを受信した各ノード装置からルーティングテーブルの各レベルのテーブル情報を受信し、ルーティングテーブルを作成して、記憶することができる。
【0080】
[3.ツリー型配信システムの構成等]
次いで、図8を参照して本実施形態に係るコンテンツ配信システムSに含まれるツリー型配信システムS2の構成等について説明する。
【0081】
図8は、本実施形態に係るツリー型配信システムS2における各装置の接続態様の一例を示す説明図である。なお、図8の例において、ツリー型配信システムS2における各装置間の通信的な接続態様(例えば、どの装置と、どの装置の通信が確立されているかの接続関係)を示している。本実施形態では、放送局装置(本発明における配信元のノード装置を示す。)31から配信された第2コンテンツデータ(以下、放送コンテンツデータともいう。)を、ノード装置32aに備えたバッファメモリに一時的に記憶させながら当該第2コンテンツデータを再生する。また、第2コンテンツデータをノード装置32aに備えたバッファメモリに一時的に記憶させながら当該第2コンテンツデータを他のノード装置32c等に送信する。なお、放送局装置31における第2コンテンツデータの配信は、第2コンテンツデータ配信手段により行われるものである。
【0082】
このツリー型配信システムS2は、図8に示すように、ストリーミングデータ等の第2コンテンツデータの配信元である放送局装置31と、当該放送局装置31から配信されたコンテンツを受信する複数のノード装置(ピア)32a、32b、32c、・・・・、32m、を備えて構成されており、ピアツーピア(Peer to Peer(P2P))方式のネットワークシステムとなっている。
【0083】
また、ツリー型配信システムS2は、放送局装置31を最上位として複数のノード装置32a乃至32mが複数の階層を形成しつつ、各IPアドレスに基づき、複数の通信経路33a、33b、33c、・・・・、33mを介してツリー状に接続されることになる。
【0084】
そして、放送局装置31により配信される第2コンテンツデータは、上位階層のノード装置32a及び32b等から下位階層のノード装置32c〜32m等に順次転送されることになる。なお、以下の説明において、ノード装置32a乃至32mのうち何れかのノード装置を示す場合には、便宜上、ノード装置32という場合がある。
【0085】
なお、これら配信サーバ1及び複数のノード装置32a乃至32mも、図1を参照してコンテンツ配信システムSを説明したのと同様に、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワークに、物理的に接続されており、当該放送局装置31及び各ノード装置32a乃至32mには、上述したように、固有のノードID及びIPアドレスが割り振られている。
【0086】
また、接続先紹介サーバ35は、ノード装置32がいずれのネットワーク接続サービス提供者によってネットワークに接続されているかを示す提供者情報毎に、最も上位階層に接続されているノード装置の装置情報を記憶している。そのため、例えば、新たなノード装置32iが当該ツリー型配信システムS2に参加を希望する場合、つまり放送局装置31が配信している第2コンテンツデータの配信を希望する場合には、自分が接続されるべき上位階層のノード装置32の候補となるノード装置32を教えてもらうために、接続先候補要求Scを図中一点鎖線で示す如く接続先紹介サーバ35に対して送信する。そうすると、接続先紹介サーバ35は、ノード装置32が接続しているネットワーク接続サービス提供者を示す提供者情報に基づいて、ノード装置32が接続されるべき上位階層のノード装置32として他のノード装置32dを選び出し、当該ノード装置32dの装置情報(IPアドレスを含む)を、接続先候補通知としてノード装置32に対して、図中二点鎖線で示す如く送信する。
【0087】
そして、ノード装置32iは当該接続先候補通知(Nk{})に含まれる装置情報に基づいて、接続されるべき上位階層のノード装置32(図8に示す例に拠れば、ノード装置32d)に対して、図中点線で示す如く自己の装置情報を含む接続要求情報Srを送信して接続要求を行ない、これを受けたノード装置32dが、ノード装置32iに第2コンテンツデータを転送すべき状況と判断すれば通信経路33iを介したノード装置32iとノード装置32d間の接続を確立することができるようになっている。
【0088】
[4.本実施形態のコンテンツ配信システムの概要]
次いで、図9乃至図11を参照して本実施形態に係るコンテンツ配信システムSの概要等について説明する。図9に示すように、本実施形態のコンテンツ配信システムSは、コンテンツ分散保存システムS1とツリー型配信システムS2とを備え、それぞれに参加するノード装置1、32の他、コンテンツ分散保存システムS1のコンタクトノード紹介サーバ25、ツリー型配信システムS2の接続先紹介サーバ35、両方のシステムS1、S2において動作するコンテンツ投入サーバ26を有する。
【0089】
そして、コンテンツ分散保存システムS1及びツリー型配信システムS2を備えた上記コンテンツ配信システムSにおいて、ノード装置1がツリー型配信システムS2における放送局装置31として機能し、コンテンツ分散保存システムS1における第1コンテンツデータを保存しているノード装置1(コンテンツノード)から第1コンテンツデータを取得し、取得した第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信することを特徴としている。これは、後述するノード装置1における第1コンテンツデータ取得手段及び第2コンテンツデータ配信手段により行われるものである。
【0090】
そのため、放送局として機能するノード装置1は、配信する各第2コンテンツデータを常時保存しておく必要がなく、必要なタイミングで第2コンテンツデータに対応する第1コンテンツデータを取得し、不要であれば配信後に削除することができる。そのため、ノード装置1は、第2コンテンツデータを保存しておくために容量の大きい記録媒体を用意せずに済み、上述のように通常のノード装置1であっても放送局装置31として機能することが可能となる。
【0091】
ノード装置1が所望の第1コンテンツデータを取得する際には、図5を用いて説明し、また、図9にも示すように、ノード装置1は、所望の第1コンテンツデータに対応するコンテンツIDに最も近いノードIDを有するノード装置1(ルートノード)に向けてクエリを送信する。当該クエリが転送されて、当該第1コンテンツデータのルートノードが受信すると、ルートノードは、第1コンテンツデータを保存するコンテンツノードの所在の情報(IPアドレス等)をノード装置1に送信する。ノード装置1は、コンテンツノードの所在を知ると、当該コンテンツノードに対してコンテンツを要求する送信要求情報を送信する。送信要求情報を受信したコンテンツノードは、ノード装置1に第1コンテンツデータを送信する。
【0092】
コンテンツノードから第1コンテンツデータを受信したノード装置1は、図8を用いて説明し、また、図9にも示すように、当該第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32a、32bに配信する。当該ノード装置32a、32bは、当該第2コンテンツデータを再生し、そのツリーにおいて決められた配信先(トポロジー)に従い、下流の各ノード装置32c、32d、32e、32fへ受信した第2コンテンツデータをそれぞれ転送する。第2コンテンツデータを受信した各ノード装置32は同様に動作し、最も下流であり、送信先がないノード装置32g、32h、32i、32j、32k、32l、32mは、第2コンテンツデータを再生すると、そのまま転送せずにデータを消去する。
【0093】
このとき、ノード装置1は、ストリーミング方式で送信されてきた第1コンテンツデータを取得し、ストリーミング方式で第2コンテンツデータを他のノード装置32に配信することができる。この場合には、ノード装置1は、一の第1コンテンツデータを受信している途中であっても、これに対応する第2コンテンツデータを先に受信した部分から送信することができる。そのため、データを全て受信するまで待たずにツリー型配信システムにおいて第2コンテンツデータを送信することができ、速やかに第2コンテンツデータの配信を行うことができる。
【0094】
放送局装置31は、図10に示すように、どの第2コンテンツデータをどの時間にどのような順番で放送するか、についてリストにした放送プログラムファイル(図10(A)参照)をコンテンツ投入サーバ26から受信する(図10(B)参照)。この放送プログラムファイルは、本実施形態では、放送時間と、放送する順が決定された第2コンテンツデータのコンテンツID及び当該第2コンテンツデータの取得タイミングがリストになっているものとする。
【0095】
放送局装置31は、この放送プログラムファイルに従い、8時に放送を開始するコンテンツID:10000001の第2コンテンツデータについて、指定された7時50分に、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。続いて、次に放送するコンテンツID:10000002の第2コンテンツデータについて、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。さらに次に放送するコンテンツID:10000003の第2コンテンツデータについては、一つ目のコンテンツID:10000001の第2コンテンツデータを放送し終わったときに、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。このようにして、放送局装置31は、放送する第2コンテンツデータに対応する第1コンテンツデータを、コンテンツ分散保存システムS1において順次取得し、不要なものは放送後に消去することができる。
【0096】
一方、放送局装置31は、放送時間が決まっているコンテンツについては、放送時間である8時になると取得したコンテンツID:10000001の第1コンテンツデータを第2コンテンツデータとして放送を開始し、また、コンテンツID:10000001の第2コンテンツデータの次にコンテンツID:10000002の第2コンテンツデータ等のように、順番が決まっている場合には、そのタイミングになると取得したコンテンツID:10000002の第1コンテンツデータを第2コンテンツデータとして放送を開始する。
【0097】
なお、図10(A)に示す放送プログラムファイルには、各第2コンテンツデータの取得タイミングを示したが、放送プログラムファイルには取得タイミングが示されておらず、放送局装置31となるノード装置1において、コンテンツの配信時間に間に合うように取得タイミングを設定してもよい。
【0098】
(取得した第1コンテンツデータの保存及び公開)
放送局装置31は、取得した第1コンテンツデータを消去することもできるが、記録媒体に保存することもできる。保存判断手段により取得した第1コンテンツデータを記録媒体に保存するか否かを判断することもできる。第1コンテンツデータを保存するか否かは、放送局装置31であるノード装置1のユーザの保存の希望や、放送局装置31のハードディスクにおける空き容量の程度等に応じて決定することができ、基準は特に限定されない。
【0099】
また、放送局装置31は、公開情報送信手段により記録媒体に保存した第1コンテンツデータについてコンテンツ公開メッセージを送信し、コンテンツノードとして機能することもでき、公開判断手段によりコンテンツ公開メッセージを送信するか否かを判断することもできる。コンテンツ公開メッセージを送信するか否かは、コンテンツ分散保存システムS1における第1コンテンツデータの複製の必要性や、当該ノード装置1自身の通信状況、ハードディスクの使用率等に応じて判断できる。
【0100】
記録媒体に保存するか否か、公開メッセージを送信するための条件等は、例えば、図11に示すようなコンテンツ投入サーバ26から送信される放送局設定情報に従って決定することができる。図11において、HD(ハードディスク)保存として記録媒体への保存の有無が記載されている。また、コンテンツ公開条件として、無又はHD(ハードディスク)の使用率が**%未満と記載されている。コンテンツ公開条件が無の場合には、HD保存も無であれば公開もせず、HD保存が有であれば公開する。コンテンツ公開条件が、HDの使用率が**%未満の記載の場合には、ハードディスクの使用率がその範囲であり、かつ、HD保存が有であれば、公開する。
【0101】
図11においては、複数の放送局装置31(チャンネル)があることを前提として、チャンネル毎、すなわち放送局装置31毎に、記録媒体に保存するか否か、公開メッセージを送信するための条件、が決められているが、これに限定されず、放送するコンテンツデータ毎に決められていてもよい。また、これらは、放送局装置31自身のポリシに従って決められていてもよい。
【0102】
(第1コンテンツデータから第2コンテンツデータへの変換)
また、放送局装置31は、第1コンテンツデータを第2コンテンツデータとして配信する際に、データをそのまま配信することもできるが、取得した第1コンテンツデータをツリー型配信システムS2において配信するための形式に変換して第2コンテンツデータとし、当該変換された後の第2コンテンツデータを配信することができる。データを変換することにより、ツリー型配信システムS2に合った形式でデータを送信することができ、データの形式があわないことによりノード装置32に負担がかかることが防止される。
【0103】
変換の仕方の一つとして、第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて第2コンテンツデータとすることができる。この場合、ツリー型配信システムS2においては、変換され、正規の第1コンテンツデータよりも質の低い第2コンテンツデータをコンテンツの紹介用として配信し、コンテンツ分散保存システムS1においては、正規の第1コンテンツデータを保存しておくことができる。そして、ツリー型配信システムS2の各ノード装置32において第2コンテンツデータを視聴して気に入った視聴者が、改めてコンテンツ分散保存システムS1において正規の第1コンテンツデータを取得することができる。
【0104】
具体的な変換の仕方としては、第1コンテンツデータに含まれる映像を部分的に間引く、第1コンテンツデータに含まれる映像の一部を選択する、第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことができる。
【0105】
第1コンテンツデータに含まれる映像を部分的に間引く場合には、映像の中の数分おきに1分の映像を削除するように間引いてもよいし、ダイジェストのようにコンテンツのポイントとなる部分以外を削除するように間引きしてもよく、具体的な手法は限定されない。第1コンテンツデータに含まれる映像の一部を選択する場合には、初めの5分のみを選択、初めと最後の3分ずつを選択、等のようにでき、映像のどの部分を選択するかやその長さは特に限定されない。第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する場合には、正規の映像若しくは画像の大きさの70%としたり、表示するディスプレイ等の表示部に対して80%とする等のようにでき、どの程度縮小するか、何を基準にするかは、特に限定されない。第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる場合には、映像若しくは画像の全体や端部分をモザイク化する等のようにでき、どのようにどの程度画質を劣化させるかは特に限定されない。第1コンテンツデータに含まれる音声の音質を劣化させる場合には、音質を粗くする、ノイズを混入させる、等のようにでき、どのようにどの程度音質を劣化させるかは特に限定されない。これらのデータの変換は、通常、データの容量が小さくなる。
【0106】
なお、変換の仕方は上述のものに限定されず、第1コンテンツデータに特典となる映像等のデータを付加する変換をして第2コンテンツデータとする等、データの容量が大きくなるような変換を行ってもよい。
【0107】
また、第2コンテンツデータを配信する際に、下流のノード装置32において第2コンテンツデータを適正なスピードで再生できるように、少なくとも再生スピードよりも速いスピードで、すなわち、送出速度をあわせて第2コンテンツデータを配信することが好ましい。また、送出速度等が所定の条件にあうように調整されて第2コンテンツデータが転送されるよう、条件を示した付加情報(後述するレート制御情報も含む)を第2コンテンツデータに付加することが好ましい。
【0108】
データを変換するか否か、また、どのように変換するかは、例えば、図11に示すようなコンテンツ投入サーバ26から送信される放送局設定情報に従って決定することができる。図11には、音質劣化、画面サイズ縮小、1分間のみ、の記載に留められているが、実際には、どのようにどの程度音質を劣化させるか、どの程度画面サイズを縮小するか、映像のどの部分の1分間を選択するか、の情報まで含まれている。図11においては、複数の放送局装置31(チャンネル)があることを前提として、チャンネル毎、すなわち放送局装置31毎にコンテンツデータの変換の有無及びどのように変換するか、が決められているが、これに限定されず、放送するコンテンツデータ毎に決められていてもよい。また、これらは、放送局装置31自身のポリシに従って決められていてもよい。
【0109】
(放送局装置となるノード装置)
本実施形態では、放送局装置31として機能するノード装置1は、接続先紹介サーバ35により決定される。具体的な方法としては、ネットワーク8上のサイト等において、放送局装置31として機能するノード装置1を募集し、放送局装置31として機能できるノード装置1は、登録を行っておく。そして、接続先紹介サーバ35において、新たなチャンネルを設けたい、または既にあるチャンネルと同様の放送ができる放送局装置31を設けたい、等により、新たな放送局装置31が必要になった場合に、接続先紹介サーバ35は、上記登録されているノード装置1から必要数のノード装置1を選択し、当該ノード装置1に放送局開始依頼メッセージを送信して、ノード装置1を放送局装置31として機能させる。放送局開始依頼メッセージを受信したノード装置1は、コンテンツ投入サーバ26から放送プログラムファイルを取得し、放送局装置31として放送を開始し、かつ、接続先紹介サーバ35には、当該ノード装置1が放送局装置31として機能する旨の登録を行う。
【0110】
一方、接続先紹介サーバ35において、所定のチャンネルの視聴者(下流のノード装置32)が少ないためチャンネル自体を停止したり、他の同じチャンネルの放送局装置31に流れを統合する等により、機能している放送局装置31が不要になった場合に、接続先紹介サーバ35は、当該放送局装置31としてのノード装置1に放送局停止依頼メッセージを送信して、ノード装置1の放送局装置31の機能を停止させる。放送局停止依頼メッセージを受信したノード装置1は、所有している放送プログラムファイルを削除し、放送を停止し、かつ、接続先紹介サーバ35には、当該ノード装置1が放送局装置31の機能を停止した旨の登録を行う(放送局の登録を解除する)。なお、接続先紹介サーバ35は、放送局停止依頼メッセージを送信する前に、当該ノード装置1の下流に接続される各ノード装置32に対して、他の放送局装置31又はその下流のノード装置32に接続するようにメッセージを送信し、放送局装置31の下流のノード装置32がなくなってから放送局停止メッセージを送信してもよい。
【0111】
なお、上記サイト等で放送局装置31として機能する旨の登録をしているノード装置1について、接続先紹介サーバ35が放送局開始メッセージを送信した際に、メッセージを送信できない(登録されたアドレスが間違っている、当該ノード装置1がネットワークにつながっていない等)場合には、接続先紹介サーバ35は、上記サイト等への登録を削除することとしてもよい。
【0112】
このように、接続先紹介サーバ35が放送局装置として機能するノード装置1を決定することにより、接続先紹介サーバ35を有する放送管理者が、需要に応じた数の放送局装置31を用意し、ツリー型配信システムS2における第2コンテンツデータの配信を管理することができる。
【0113】
(第2コンテンツデータを配信するタイミング等)
また、放送局装置31としてのノード装置1は、上述のように放送プログラムファイルをコンテンツ投入サーバ26から取得し、当該放送プログラムファイルに沿って放送(第2コンテンツデータの配信)を行うため、コンテンツ投入サーバ26が決定した第2コンテンツデータを、その順序又はタイミングで送信すればよい。そのため、ノード装置1は、第2コンテンツデータを配信する順序やタイミングを決定する必要がなく、負担が増加しない。本実施形態では、この放送プログラムファイルを用いた形態で説明するが、これに限定されない。例えば、放送局装置31としてのノード装置1が第2コンテンツデータを配信するタイミングに合わせて、コンテンツ投入サーバ26が「次はコンテンツID:********のコンテンツを配信せよ」という指示を当該ノード装置1に送信し、この指示がきたタイミングでノード装置1が当該コンテンツについてのクエリをコンテンツ分散保存システムS1において送信し、第1コンテンツデータを取得して、ツリー型配信システムS2において配信してもよい。
【0114】
[5.コンテンツ配信システムを構成する各装置の構成等]
図12乃至図15を参照して、コンテンツ配信システムSを構成するノード装置1、32、コンタクトノード紹介サーバ25、接続先紹介サーバ35、コンテンツ投入サーバ26の構成等について説明する。
【0115】
[5.1.ノード装置の構成等]
まず、図12を参照して、ノード装置1、32(いずれも同様であり、以下の説明においてはノード装置1とする。)の構成および機能について説明する。尚、各ノード装置1の構成は同じである。図12は、ノード装置1の概要構成例を示す図である。
【0116】
各ノード装置1は、図12に示すように、演算機能を有するCPU11と、受信されたコンテンツデータ等を一時蓄積するリングバッファメモリ121、オペレーティングシステム122、ストリーム制御プログラム123、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)等をデコード(データ伸張や復号化等)等する画面制御プログラム124、トポロジー制御プログラム125、コンテンツデータに含まれるエンコードされたオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する音楽デコーダ126及び放送コンテンツ制御プログラム127を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置12と、第1コンテンツデータ、コンテンツインデックス情報、上記DHTおよびプログラム等を記憶保存(格納)するためのHD等から構成された記録媒体としてのハードディスク装置13と、ハードディスク装置13や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ14と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ15と、当該ビデオチップ15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の内蔵ディスプレイ16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音源チップ17と、当該音源チップ17から出力されたオーディオ信号を音波として出力する内蔵スピーカ18と、外部のリモコン23等からの入力を受信し、ユーザからの指示を受け付け当該指示に応じた指示信号をCPU11に対して与える入力部としての赤外線ポート(他にも、例えば、キーボード、マウス、或いは、操作パネル等が可)19と、ネットワーク8を通じてルータ24等を介し、他のノード装置1との間の情報の通信制御を行うためのネットワークインターフェイス21と、を備えて構成され、CPU11、主記憶装置12、周辺機器制御チップ14、ビデオチップ15、音源チップ17及びネットワークインターフェイス21はシステムバス22を介して相互に接続されている。ネットワークインターフェイス21は、ネットワーク8を介して外部のルータ24等と接続されている。赤外線ポート19は、ユーザ入力用リモコン23からの指示信号を受信し、周辺機器制御チップ14に当該信号を伝達する。
【0117】
そして、CPU11は主記憶装置12等に記憶された各種プログラムを実行することにより、ノード装置1全体を統括制御するようになっており、また、リモコン23等の入力部からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。ノード装置1は、実行されるプログラムに応じて、放送局装置31、情報を送信(転送)するノード装置、情報を受信するノード装置等として機能する。また、ノード装置1のCPU11は、本発明の第1コンテンツデータ取得手段、第2コンテンツデータ配信手段、保存判断手段、公開情報送信手段、要求受信手段(コンテンツ要求)、第1コンテンツデータ送信手段、公開判断手段、検索手段(クエリ)、要求送信手段(コンテンツ要求)、変換手段、コンテンツ判断手段、として機能する。
【0118】
[5.2.コンタクトノード紹介サーバの構成等]
次に、図13を参照して、コンタクトノード紹介サーバ25の構成および機能について説明する。図13は、コンタクトノード紹介サーバ25の概要構成例を示す図である。
【0119】
コンタクトノード紹介サーバ25は、図13に示すように、演算機能を有するCPU251と、端末管理プログラム2521、オペレーティングシステム2522、コンタクトノード紹介プログラム2523等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置252と、端末管理データベース及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置253と、ハードディスク装置253や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ254と、オペレーティングシステム2522のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ255と、当該ビデオチップ255から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ2561と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ254を介してCPU251に与える入力部としてのキーボード2562及びマウス2563と、ネットワーク8を通じてルータ259等を介し、他のノード装置1との間の情報の通信制御を行うためのネットワークインターフェイス257と、を備えて構成され、CPU251、主記憶装置252、周辺機器制御チップ254、ビデオチップ255及びネットワークインターフェイス257はシステムバス258を介して相互に接続されている。ビデオチップ255は、外部のディスプレイ2561と接続されており、周辺機器制御チップ254は、外部のキーボード2562及びマウス2563と接続されている。ネットワークインターフェイス257は、ネットワーク8を介して外部のルータ259等と接続されている。
【0120】
そして、CPU251は主記憶装置252等に記憶された各種プログラムを実行することにより、コンタクトノード紹介サーバ25全体を統括制御するようになっている。具体的に、CPU251は、キーボード2562又はマウス2563等の入力部からの指示信号に応じて、端末管理プログラムにおける条件等を変更したり、コンタクトノード紹介プログラムにおけるポリシ等を変更することができる。また、CPU251は、ネットワーク8やネットワークインターフェイス257を通じて受信した参加ノード装置1からのコンタクトノード紹介要求メッセージに対して、コンタクトノード紹介プログラム2523を用いてコンタクトノードを決定し、当該コンタクトノードの所在情報(IPアドレス等)をコンタクトノード情報として返信する。
【0121】
[5.3.接続先紹介サーバの構成等]
次に、図14を参照して、接続先紹介サーバ35の構成および機能について説明する。図14は、接続先紹介サーバ35の概要構成例を示す図である。
【0122】
接続先紹介サーバ35は、図14に示すように、演算機能を有するCPU351と、端末管理プログラム3521、オペレーティングシステム3522、トポロジー制御プログラム3523、接続先紹介プログラム3524等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置352と、トポロジーデータベース、端末管理データベース及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置353と、ハードディスク装置353や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ354と、オペレーティングシステム3522のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ355と、当該ビデオチップ355から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ3561と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ354を介してCPU351に与える入力部としてのキーボード3562及びマウス3563と、ネットワーク8を通じてルータ359等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス357と、を備えて構成され、CPU351、主記憶装置352、周辺機器制御チップ354、ビデオチップ355及びネットワークインターフェイス357はシステムバス358を介して相互に接続されている。ビデオチップ355は、外部のディスプレイ3561と接続されており、周辺機器制御チップ354は、外部のキーボード3562及びマウス3563と接続されている。ネットワークインターフェイス357は、ネットワーク8を介して外部のルータ359等と接続されている。
【0123】
そして、CPU351は主記憶装置352等に記憶された各種プログラムを実行することにより、接続先紹介サーバ35全体を統括制御するようになっている。具体的に、CPU351は、キーボード3562又はマウス3563等の入力部からの指示信号に応じて、端末管理プログラムにおける条件等を変更したり、トポロジー制御プログラムや接続先紹介プログラムにおけるポリシ等を変更することができる。また、CPU351は、ネットワーク8やネットワークインターフェイス357を通じて受信したノード装置32からの接続先候補要求Scに対して、トポロジー制御プログラム3523及び接続先紹介プログラム3524を用いて接続先候補を決定し、接続先候補通知Nk{}を返信する。
【0124】
[5.4.コンテンツ投入サーバの構成等]
次に、図15を参照して、コンテンツ投入サーバ26の構成および機能について説明する。図15は、コンテンツ投入サーバ26の概要構成例を示す図である。
【0125】
コンテンツ投入サーバ26は、図15に示すように、演算機能を有するCPU261と、カタログ管理プログラム2621、オペレーティングシステム2622、コンテンツ制御プログラム2623等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置262と、放送プログラムファイル、カタログリスト、コンテンツ及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置263と、ハードディスク装置263や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ264と、オペレーティングシステム2622のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ265と、当該ビデオチップ265から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ2661と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ264を介してCPU261に与える入力部としてのキーボード2662及びマウス2663と、ネットワーク8を通じてルータ269等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス267と、を備えて構成され、CPU261、主記憶装置262、周辺機器制御チップ264、ビデオチップ265及びネットワークインターフェイス267はシステムバス268を介して相互に接続されている。ビデオチップ265は、外部のディスプレイ2661と接続されており、周辺機器制御チップ264は、外部のキーボード2662及びマウス2663と接続されている。ネットワークインターフェイス267は、ネットワーク8を介して外部のルータ269等と接続されている。
【0126】
そして、CPU261は主記憶装置262等に記憶された各種プログラムを実行することにより、コンテンツ投入サーバ26全体を統括制御するようになっている。具体的に、CPU261は、キーボード2662又はマウス2663等の入力部からの指示信号に応じて、カタログ管理プログラムにおける条件等を変更したり、コンテンツ制御プログラムにおけるポリシ等を変更することができる。また、CPU261は、ネットワーク8やネットワークインターフェイス267を通じて、放送局装置31に放送局設定情報や放送プログラムファイルを送信したり、受信したノード装置1からのカタログリスト要求に対してカタログリストの情報を送信したり、コンテンツ分散保存システムS1において分散保存されるコンテンツを所望のノード装置1に送信(投入)したりする。
【0127】
なお、カタログリストは、第1コンテンツデータの上述した補助情報がリストとなっているが、これに加えて、コンテンツIDが対応付けられていてもよい。ノード装置1においては、カタログリストを取得すると、カタログリストからコンテンツを指定して、その都度コンテンツIDを生成してクエリを送信してもよいし、カタログリストから指定したコンテンツに対応するコンテンツIDを取得してもよい。
【0128】
また、上述した放送プログラムファイルについて、コンテンツ投入サーバ26は、チャンネル毎の放送プログラムファイルを保存しているものとする。また、コンテンツ投入サーバ26は、上述の放送局設定情報を所持しており、放送プログラムファイルを放送局として機能するノード装置1に送信する際に、そのチャンネルに対応する放送局設定情報を付加して送信することができる。これらの放送プログラムファイル及び放送局設定情報は、放送管理者の設定等に従って作成される。
【0129】
[6.本実施形態のコンテンツ配信システムにおける動作]
次に、本実施形態のコンテンツ配信システムSにおける各装置の動作について図16乃至図26を用いて説明する。
【0130】
[6.1.ノード装置の動作]
まず、図16乃至図23を参照して、本実施形態のノード装置1の動作について説明する。なお、図16においては、主にツリー型配信システムS2に参加している場合の動作を示し、図17においては、主にコンテンツ分散保存システムS1に参加している場合の動作を示し、図18においては、主に本発明の特徴である取得した第1コンテンツデータを第2コンテンツデータ(放送コンテンツデータ)としてツリー型配信システムS2において配信する場合の動作を示し、図19においては、主に放送局装置31として機能する場合の動作を示す。図20においては、ステップS3のシステム参加処理を示し、図21においては、ステップS26の投入コンテンツ受信処理を示し、図22においては、ステップS45のコンテンツ検索処理を示し、図23においては、ステップS61のコンテンツデータ取得処理を示す。
【0131】
ノード装置1のCPU11は、ユーザ入力用リモコン23等により自ノード装置1に電源が入れられたことを認識すると、その処理を開始する(スタート)。
【0132】
処理が開始されると、CPU11は、当該ノード装置1のプログラム等の各種設定を初期化し(ステップS1)、接続先紹介サーバ35へツリー型配信システムS2への参加通知を送信する(ステップS2)。次いで、CPU11は、コンテンツ分散保存システムS1への参加処理を行う(ステップS3)。ステップS3のコンテンツ分散保存システムS1への参加処理については、図20を参照して後述する。
【0133】
次いで、CPU11は、ユーザ入力用リモコン23等からユーザからのチャンネル選択指示があるか否かを判断する(ステップS4)。ユーザからのチャンネル選択指示がある場合には(ステップS4;YES)、CPU11は、上流側に接続されたノード装置1(上流ノード装置1)があるか否かを判断する(ステップS5)。上流ノード装置1がある場合には(ステップS5;YES)、CPU11は、現在の上流ノード装置1に放送コンテンツデータの送信(放送コンテンツストリーム)停止を要求する旨の情報を送信する(ステップS6)。次いで、CPU11は、接続先紹介サーバ35へ、選択されたチャンネル(放送局装置)の放送を視聴するために、接続先となるノード装置1の候補を要求する接続先候補要求Scを送信する(ステップS7)。また、ステップS5において、上流ノード装置1がない場合には(ステップS5;NO)、ステップS6を経ずにステップS7に進む。
【0134】
次いで、CPU11は、電源オフか否かを判断し(ステップS8)、電源オフでない場合には(ステップS8;NO)、ステップS4へ戻る。
【0135】
ステップS4において、ユーザからのチャンネル選択指示がない場合には(ステップS4;NO)、CPU11は、接続先紹介サーバ35から接続先となる上流ノード装置1の候補を受信したか否かを判断する(ステップS9)。上述のステップS7に対して、接続先紹介サーバ35から上流ノード装置1の候補を受信した場合には(ステップS9;YES)、CPU11は、取得した上流ノード装置1の候補の中から、上流ノード装置1を一つ選択する(ステップS10)。次いで、CPU11は、選択した上流ノード装置1の下流に接続するノード装置1(下流ノード装置1)として接続し(ステップS11)、選択した上流ノード装置1へ放送コンテンツデータの配信開始を要求する旨の情報を送信する(ステップS12)。次いで、CPU11は、ツリー型トポロジーへの参加報告を接続先紹介サーバ35へ送信し(ステップS13)、ステップS8へ戻る。
【0136】
ステップS9において、接続先紹介サーバ35から上流ノード装置1の候補を受信していない場合には(ステップS9;NO)、CPU11は、上流ノード装置1から放送コンテンツデータのパケットを受信したか否かを判断する(ステップS14)。上流ノード装置1から放送コンテンツデータのパケットを受信した場合には(ステップS14;YES)、CPU11は、下流ノード装置1へ当該パケットを順に転送する(ステップS15)。このとき、受信した放送コンテンツデータのパケットはリングバッファ121に順次記憶されていき、次いで、CPU11は、リングバッファ121からパケットを取得して放送コンテンツデータを再生し(ステップS16)、ステップS8へ戻る。
【0137】
ステップS14において、上流ノード装置1から放送コンテンツデータのパケットを受信しない場合には(ステップS14;NO)、CPU11は、下流ノード装置となるノード装置1から放送コンテンツデータの送信開始要求又は送信停止要求を受信したか否かを判断する(ステップS17)。放送コンテンツデータの送信開始要求又は送信停止要求を受信した場合には(ステップS17;YES)、CPU11は、その要求に応じて、放送コンテンツデータの送信開始又は送信停止を行い(ステップS18)、ステップS8に戻る。
【0138】
ステップS17において、放送コンテンツデータの送信開始要求又は送信停止要求を受信していない場合には(ステップS17;NO)、図17へ移り、CPU11は、コンテンツ公開メッセージを受信したか否かを判断する(ステップS19)。コンテンツ公開メッセージを受信した場合には(ステップS19;YES)、CPU11は、当該第1コンテンツデータのコンテンツIDやIPアドレス等の所在情報をコンテンツインデックス情報として登録する(ステップS20)。次いで、CPU11は、このコンテンツ公開メッセージについて、当該ノード装置自身がルートノードか否かを判断する(ステップS21)。自身がルートノードでない場合には(ステップS21;NO)、CPU11は、次のノード装置1に受信したメッセージ(ここではコンテンツ公開メッセージ)を転送し(ステップS22)、ステップS8に戻る。自身がルートノードである場合には(ステップS21;YES)、そのまま受信したメッセージ(ここではコンテンツ公開メッセージ)を転送せずに、ステップS8に戻る。
【0139】
ステップS19において、コンテンツ公開メッセージを受信していない場合には(ステップS19;NO)、CPU11は、コンテンツ削除メッセージを受信したか否かを判断する(ステップS23)。コンテンツ削除メッセージを受信した場合には(ステップS23;YES)、CPU11は、コンテンツインデックス情報に当該コンテンツ削除メッセージに対応する第1コンテンツデータの情報が記憶されている場合には、コンテンツインデックス情報から当該第1コンテンツデータのコンテンツノードの所在情報等を削除し(ステップS24)、上記ステップS21に進み、自身がルートノードでなければ当該メッセージを次のノード装置に転送して(ステップS21、22)、ステップ8に戻る。
【0140】
ステップS23において、コンテンツ削除メッセージを受信していない場合には(ステップS23;NO)、CPU11は、コンテンツ投入サーバ26から投入コンテンツデータを受信したか否かを判断する(ステップS25)。コンテンツ投入サーバ26から投入コンテンツデータを受信した場合には(ステップS25;YES)、CPU11は、投入コンテンツ受信処理を行い(ステップS26)、ステップS8に戻る。なお、投入コンテンツ受信処理は、図21を用いて後述する。
【0141】
ステップS25において、コンテンツ投入サーバ26から投入コンテンツデータを受信していない場合には(ステップS25;NO)、要求受信手段としてのCPU11は、他のノード装置1から第1コンテンツデータについてコンテンツの送信要求情報を受信したか否かを判断する(ステップS27)。コンテンツの送信要求情報を受信した場合には(ステップS27;YES)、第1コンテンツデータ送信手段としてのCPU11は、該当する第1コンテンツデータを要求したノード装置1に配信し(ステップS28)、ステップS8に戻る。このとき第1コンテンツデータには、レート制御情報が含まれているものとし、このレート制御情報に従って第1コンテンツデータが放送コンテンツデータとして配信される際の配信レートが決められる。なお、このレート制御情報は、コンテンツ毎に異なるものである。後述するステップにおいては記載しない場合もあるが、送信される第2コンテンツデータにもレート制御情報が含まれている。
【0142】
ステップS27において、コンテンツの送信要求情報を受信していない場合には(ステップS27;NO)、図18に移り、ノード装置1は、本発明における配信元のノード装置、本実施形態における放送局装置31として機能する。第1コンテンツデータ取得手段としてのCPU11は、後述するステップS61の放送コンテンツデータ取得処理の結果、放送コンテンツデータ用の第1コンテンツデータのパケットを受信したか否かを判断する(ステップS29)。放送コンテンツデータのパケットを受信した場合には(ステップS29;YES)、保存判断手段としてのCPU11は、ハードディスク装置13におけるHD(ハードディスク)に当該放送コンテンツデータを保存するか否かを判断する(ステップS30)。この放送コンテンツデータを保存するか否か、また、後述するデータを変換するか否か、保存したコンテンツを公開するか否か、の判断については、ノード装置1のユーザ等が設定した条件や、上述した放送局設定情報(図11参照)、放送コンテンツデータ毎に設定された情報等に因る。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、放送コンテンツデータを保存すると判断する。
【0143】
ハードディスクに放送コンテンツデータを保存する場合には(ステップS30;YES)、CPU11は、受信した放送コンテンツデータのパケットを順次ハードディスク(本発明における記録媒体)に保存していく(ステップS31)。次いで、CPU11は、一つの放送コンテンツデータについてのパケットが全て揃っているか否かを判断し(ステップS32)、放送コンテンツデータのパケットが全て揃っていない場合には(ステップS32;NO)、後述するステップS37に進む。なお、放送コンテンツデータが全て揃うまでは、ステップS32;NO、S37〜S40、S8;NO、S4;NO、S9;NO、S14;NO、S17;NO、S19;NO、S23;NO、S25;NO、S27;NO、S29;YES、S30;YES、S31を繰り返し、放送コンテンツデータが揃うと、後述するように、必要に応じて公開メッセージを送信する。
【0144】
ステップS32において、放送コンテンツデータのパケットが全て揃った場合には(ステップS32;YES)、公開判断手段としてのCPU11は、保存したコンテンツデータを第1コンテンツデータとして公開するか否かを判断する(ステップS33)。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、公開条件が無いため、放送コンテンツデータを公開すると判断する。保存したコンテンツデータを第1コンテンツデータとして公開する場合には(ステップS33;YES)、CPU11は、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS34)。次いで、公開情報送信手段としてのCPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS35)。当該ノード装置1自身がルートノードでない場合には(ステップS35;NO)、公開情報送信手段としてのCPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS36)、ステップS37へ進む。一方、ステップS35において、当該ノード装置1自身がルートノードである場合(ステップS35;YES)、及び上述したステップS33において、保存したコンテンツデータを第1コンテンツデータとして公開しない場合は(ステップS33;NO)、処理を行わずにステップS37へ進む。
【0145】
CPU11は、放送コンテンツデータのパケット生成処理を開始する(ステップS37)。次いで、CPU11は、放送コンテンツデータを変換するか否かを判断し(ステップS38)、放送コンテンツデータを変換する場合には(ステップS38;YES)、変換手段としてのCPU11は、所定の方法で放送コンテンツデータを変換し(ステップS39)、第2コンテンツデータ配信手段としてのCPU11は、下流ノード装置1に変換した放送コンテンツデータのパケットの送信を開始する(ステップS40)。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、放送コンテンツデータを所定の一分間のデータに変換して送信する。また、ステップS38において、放送コンテンツデータを変換しない場合には(ステップS38;NO)、第2コンテンツデータ配信手段としてのCPU11は、取得した第1コンテンツデータのパケットをそのまま放送コンテンツデータとして下流ノード装置1に送信(配信)を開始する(ステップS40)。なお、ステップS40において、送出速度をあわせたり、放送コンテンツデータを放送するタイミングまで待って放送を開始したり、上述の付加情報を付す等の変換を行うこともできる。
【0146】
また、ステップS30において、ハードディスクに放送コンテンツデータを保存しない場合には(ステップS30;NO)、CPU11は、リングバッファ121に第1コンテンツデータのパケットを一時的に記憶し、放送コンテンツデータを変換するか否かを判断する(ステップS41)。放送コンテンツデータを変換する場合には(ステップS41;YES)、変換手段としてのCPU11は、所定の方法で放送コンテンツデータを変換し(ステップS42)、下流ノード装置1に変換した放送コンテンツデータのパケットの送信を開始する(ステップS43)。また、ステップS41において、放送コンテンツデータを変換しない場合には(ステップS41;NO)、第2コンテンツデータ配信手段としてのCPU11は、取得した第1コンテンツデータをそのまま放送コンテンツデータとして下流ノード装置1に送信する(ステップS43)。次いで、ステップS8に戻る。このステップS41からS43は、上述のステップS38からS40と同様である。
【0147】
ステップS29において、放送コンテンツデータのパケットを受信しない場合には(ステップS29;NO)、CPU11は、コンテンツ検索メッセージ(クエリ)を受信したか否かを判断する(ステップS44)。クエリを受信した場合には(ステップS44;YES)、CPU11は、コンテンツ検索処理を行い(ステップS45)、ステップS8に戻る。なお、ステップS45のコンテンツ検索処理については、図22を用いて後述する。
【0148】
ステップS44において、クエリを受信していない場合には(ステップS44;NO)、CPU11は、S45のコンテンツ検索処理の結果、コンテンツノード情報(コンテンツノードのIPアドレス等の所在情報)を受信したか否かを判断する(ステップS46)。コンテンツノード情報を受信した場合には(ステップS46;YES)、要求送信手段としてのCPU11は、コンテンツノードへコンテンツの送信要求情報を送信する(ステップS47)。
【0149】
ステップS46において、コンテンツノード情報を受信していない場合には(ステップS46;NO)、図19に移り、CPU11は、コンテンツ分散保存システムS1への参加メッセージを受信したか否かを判断する(ステップS48)。参加メッセージを受信した場合には(ステップS48;YES)、参加メッセージ中に参加メッセージの送信元のノード装置(参加ノード装置)の所在情報及びテーブル情報から送信すべき段の情報が含まれているため、CPU11は、所持しているテーブル情報から該当する段の情報を参加ノード装置に送信する(ステップS49)。次いで、CPU11は、当該ノード装置1自身が参加ノードのノードIDのルートノードか否かを判断する(ステップS50)。当該ノード装置1自身がルートノードでない場合には(ステップS50;NO)、CPU11は、次のノード装置に参加メッセージを転送し(ステップS51)、ステップS8に戻る。また、当該ノード装置1自身がルートノードである場合には(ステップS50;YES)、参加メッセージを転送することなくステップS8に戻る。
【0150】
ステップS48において、参加メッセージを受信していない場合には(ステップS48;NO)、接続先紹介サーバ35から放送局開始依頼メッセージを受信したか否かを判断する(ステップS52)。放送局開始依頼メッセージを受信した場合には(ステップS52;YES)、CPU11は、コンテンツ投入サーバ26から放送するコンテンツやその順番、時間帯等が示された放送プログラムファイルを取得し、放送プログラムファイルに沿って放送を開始する(ステップS53)。次いで、CPU11は、接続先紹介サーバ35へ放送局装置として機能する旨の登録を行い(ステップS54)、ステップS8に戻る。
【0151】
ステップS52において、放送局開始依頼メッセージを受信していない場合には(ステップS52;NO)、CPU11は、接続先紹介サーバ35から放送局停止依頼メッセージを受信したか否かを判断する(ステップS55)。放送局停止依頼メッセージを受信した場合には(ステップS55;YES)、CPU11は、現在の放送に用いている放送プログラムファイルを削除し、放送を停止する(ステップS56)。次いで、CPU11は、接続先紹介サーバ35へ放送局装置として機能していたものを解除する旨の登録を行い(ステップS57)、ステップS8に戻る。
【0152】
ステップS55において、放送局停止依頼メッセージを受信していない場合には(ステップS55;NO)、CPU11は、他のノード装置1からツリー型配信システムS2における下流に接続したい旨の接続開設又は既にある接続を切断する旨の接続切断の要求があるか否かを判断する(ステップS58)。他のノード装置1からの接続開設又は接続切断の要求がある場合には(ステップS58;YES)、CPU11は、その要求に従い、他のノード装置1と接続を開設し、又は接続を切断して(ステップS59)、ステップS8に戻る。ステップS59において他のノード装置1と接続を開設した場合には、続いて放送を開始することとなるため、放送コンテンツデータを送信する準備をする。
【0153】
ステップS58において、他のノード装置1からの接続開設又は接続切断の要求がない場合には(ステップS58;NO)、CPU11は、放送プログラムファイル(図10(A)参照)に基づき、放送コンテンツデータを取得するタイミングになったか否かを判断する(ステップS60)。放送コンテンツデータを取得するタイミングになった場合には(ステップS60;YES)、CPU11は、放送コンテンツ取得処理を行い(ステップS61)、ステップS8に戻る。なお、ステップS61における放送コンテンツ取得処理は、図23を用いて後述する。
【0154】
ここで、ステップS8において、電源が切られた場合には、電源オフであると判断し(ステップS8;YES)、ノード装置1における処理を終了する(エンド)。なお、図16乃至図19においてフローチャートが接続されている部分には、接続子1〜6を用いている。
【0155】
次いで、ステップS3のコンテンツ分散保存システムS1への参加処理について、図20を参照して説明する。
【0156】
コンテンツ分散保存システムS1への参加処理が始まると(スタート:ステップS3)、ノード装置1のCPU11は、コンタクトノード紹介サーバ25に対し、コンタクトノード紹介要求メッセージを送信する(ステップS71)。次いで、CPU11は、コンタクトノード紹介サーバ25からコンタクトノード情報を取得し(ステップS72)、コンタクトノードへ参加メッセージを送信する(ステップS73)。次いで、CPU11は、コンタクトノードや、参加メッセージが転送された各ノード装置1から、テーブル情報を受信する(ステップS74)。
【0157】
次いで、CPU11は、受信したテーブル情報に基づいて所持しているルーティングテーブルを更新し(ステップS75)、コンテンツ投入サーバ26へカタログリストを要求する(ステップS76)。次いで、CPU11は、コンテンツ投入サーバ26からカタログリストを受信し(ステップS77)、元の図16におけるステップS3へ戻る(リターン)。このような参加処理を行っているとき、ノード装置1は、参加ノードとして機能している。
【0158】
次いで、ステップS26の投入コンテンツ受信処理について、図21を参照して説明する。
【0159】
投入コンテンツ受信処理が始まると(スタート:ステップS26)、ノード装置1のCPU11は、受信した第1コンテンツデータをハードディスク装置13におけるHDに保存する(ステップS81)。次いで、CPU11は、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS82)。次いで、CPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS83)。当該ノード装置1自身がルートノードでない場合には(ステップS83;NO)、CPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS84)、元の図17におけるステップS26へ戻る(リターン)。一方、当該ノード装置1自身がルートノードである場合(ステップS83;YES)には、処理を行わずに、元の図17におけるステップS26へ戻る(リターン)。このような投入コンテンツ受信処理を行ったノード装置1は、コンテンツノードとして機能することとなる。
【0160】
次いで、ステップS45のコンテンツ検索処理について、図22を参照して説明する。
【0161】
コンテンツ検索処理が始まると(スタート:ステップS45)、ノード装置1のCPU11は、コンテンツ検索メッセージ(クエリ)から検索されている第1コンテンツデータのコンテンツIDを取得する(ステップS91)。次いで、CPU11は、所持するコンテンツインデックス情報に当該コンテンツIDが存在するか否かを判断する(ステップS92)。コンテンツインデックス情報に当該コンテンツIDが存在する場合には(ステップS92;YES)、CPU11は、コンテンツインデックス情報から当該コンテンツIDに対応するコンテンツノード情報を取得し(ステップS93)、このコンテンツノード情報をコンテンツ検索メッセージの送信元のノード装置に送信する(ステップS94)。一方、ステップS92において、コンテンツインデックス情報に当該コンテンツIDが存在しない場合には(ステップS92;NO)、他のノード装置1へコンテンツ検索メッセージを転送する(ステップS95)。これらのステップS94、S95が終わると、元の図18におけるステップS45へ戻る(リターン)。
【0162】
次いで、ステップS61の放送コンテンツデータ取得処理について、図23を参照して説明する。
【0163】
放送コンテンツデータ取得処理が始まると(スタート:ステップS61)、ノード装置1のCPU11は、放送プログラムファイルから放送コンテンツデータのコンテンツIDを取得し(ステップS101)、当該コンテンツIDに該当するコンテンツデータを保存しているか否かを判断する(ステップS102)。該当コンテンツデータを保存していない場合には(ステップS102;NO)、所持するコンテンツインデックス情報に当該コンテンツIDが存在するか否かを判断する(ステップS103)。所持するコンテンツインデックス情報に当該コンテンツIDが存在する場合には(ステップS103;YES)、コンテンツインデックス情報からコンテンツノード情報を取得し(ステップS104)、要求送信手段としてのCPU11は、コンテンツノードへコンテンツの送信要求情報を送信する(ステップS105)。一方、ステップS103において、コンテンツインデックス情報に当該コンテンツIDが存在しない場合には(ステップS103;NO)、検索手段としてのCPU11は、他のノード装置1へコンテンツIDを付加したコンテンツ検索メッセージを送信する(ステップS106)。これらのステップS105、S106が終わると、元の図19におけるステップS61から図16におけるステップS8へ戻る(リターン)。なお、ステップS102において、該当コンテンツデータを保存している場合には(ステップS102;YES)、コンテンツデータを取得する必要がないため、上記処理をすることなくステップS41、S42、S43と同様の処理を行って、下流ノード装置へ放送コンテンツパケットの送信を開始し、元の図19におけるステップS61から図16におけるステップS8へ戻る(リターン)。
【0164】
[6.2.コンタクトノード紹介サーバの動作]
次いで、図24を参照して、本実施形態のコンタクトノード紹介サーバ25の動作について説明する。
【0165】
コンタクトノード紹介サーバ25のCPU251は、ネットワークインターフェイス257を介した外部からの指示又はキーボード2562等の入力部からの入力等により、コンタクトノード紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0166】
処理が開始されると、CPU251は、当該コンタクトノード紹介サーバ25のプログラム等の各種設定を初期化し(ステップS111)、ノード装置1からコンタクトノード紹介要求メッセージがあるか否かを判断する(ステップS112)。コンタクトノード紹介要求メッセージがある場合(ステップS112;YES)、CPU251は、コンタクトノード紹介要求メッセージの送信元のノード装置1に対し、候補となるコンタクトノードのノード情報(IPアドレス等の所在情報)を送信し(ステップS113)、ステップS114に進む。また、ステップS112において、コンタクトノード紹介要求メッセージがない場合には、ステップS113を経ずにステップS114に進む。次いで、CPU251は、コンタクトノード紹介サーバサービスを終了するか否か、キーボード2562等からの入力やネットワークインターフェイス257を介した指示等により判断する(ステップS114)。コンタクトノード紹介サーバサービスを終了しない場合には(ステップS114;NO)、ステップS112に戻り、コンタクトノード紹介サーバサービスを終了する場合には(ステップS114;YES)、処理を終了する(エンド)。
【0167】
[6.3.接続先紹介サーバの動作]
次いで、図25を参照して、本実施形態の接続先紹介サーバ35の動作について説明する。
【0168】
接続先紹介サーバ35のCPU351は、ネットワークインターフェイス357を介した外部からの指示又はキーボード3562等の入力部からの入力等により、接続先紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0169】
処理が開始されると、CPU351は、当該接続先紹介サーバ35のプログラム等の各種設定を初期化し(ステップS121)、ノード装置1から参加通知があるか否かを判断する(ステップS122)。参加通知がある場合には(ステップS122;YES)、CPU351は、参加通知の送信元のノード装置の所在情報を端末管理データベースに登録し(ステップS123)、接続先紹介サーバサービスを終了するか否か、キーボード3562等からの入力やネットワークインターフェイス357を介した指示等により判断する(ステップS124)。コンタクトノード紹介サーバサービスを終了しない場合には(ステップS124;NO)、ステップS122に戻る。
【0170】
ステップS122において、参加通知がない場合には(ステップS122;NO)、CPU351は、放送局装置から登録要求又は解除要求があるか否かを判断する(ステップS125)。放送局装置の登録要求又は解除要求がある場合には(ステップS125;YES)、CPU351は、当該要求に応じて、放送局装置の所在情報を端末管理データベースに登録し、又は解除する(ステップS126)。次いで、CPU351は、当該放送局装置のチャンネル情報をトポロジーデータベースに登録し又は解除し(ステップS127)、ステップS124に戻る。
【0171】
ステップS125において、放送局装置の登録要求又は解除要求がない場合には(ステップS125;NO)、CPU351は、ノード装置1から接続先紹介要求Scがあるか否かを判断する(ステップS128)。接続先紹介要求Scがある場合には(ステップS128;YES)、CPU351は、トポロジーデータベースから接続先候補となるノード装置1の所在情報を取得し(ステップS129)、要求元のノード装置に接続先の候補となるノード装置1の所在情報を接続先候補通知Nk{}として送信し(ステップS130)、ステップS124に戻る。
【0172】
ステップS128において、接続先紹介要求Scがない場合には(ステップS128;NO)、CPU351は、放送管理者の端末装置(図示しない)又はキーボード3562等の入力部から、放送局開設要求があるか否かを判断する(ステップS131)。放送局開設要求がある場合には(ステップS131;YES)、CPU351は、端末管理データベースから放送局装置31となるノード装置1を選択し(ステップS132)、選択したノード装置1へ放送局開始依頼メッセージを送信し(ステップS133)、ステップS124へ戻る。なお、図25には示さないが、放送管理者から放送局を停止すべき旨の要求がある場合には、同様に、放送局装置31として機能しているノード装置に対して、放送局停止依頼メッセージを送信する。
【0173】
ステップS131において、放送局開設要求がない場合には(ステップS131;NO)、CPU351は、ノード装置1からトポロジー参加報告があるか否かを判断する(ステップS134)。ノード装置1からトポロジー参加報告がある場合には(ステップS134;YES)、CPU351は、当該ノード装置1がトポロジーに参加したことによるトポロジーの変動に関する情報をトポロジーのデータベースへ登録し(ステップS135)、ステップS124へ戻る。また、ステップS134において、ノード装置1からトポロジー参加報告がない場合にも(ステップS134;NO)、ステップS124へ戻る。
【0174】
ここで、ステップS124において、コンタクトノード紹介サーバサービスを終了する場合には(ステップS124;YES)、処理を終了する(エンド)。
【0175】
[6.4.コンテンツ投入サーバの動作]
次いで、図26を参照して、本実施形態のコンテンツ投入サーバ26の動作について説明する。
【0176】
コンテンツ投入サーバ26のCPU261は、ネットワークインターフェイス267を介した外部からの指示又はキーボード2662等の入力部からの入力等により、接続先紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0177】
処理が開始されると、CPU261は、当該コンテンツ投入サーバ26のプログラム等の各種設定を初期化し(ステップS141)、コンテンツ分散保存システムS1の管理者の装置等からコンテンツ投入指示があるか否かを判断する(ステップS142)。コンテンツ投入指示がある場合には(ステップS142;YES)、CPU261は、投入される新たな第1コンテンツデータに対応するコンテンツIDの管理テーブルを更新し(ステップS143)、カタログリストにおける新たな第1コンテンツデータに関する情報を更新し(ステップS144)、新たな第1コンテンツデータをコンテンツ分散保存システムS1におけるランダムに決めた一又は複数のノード装置1に配信する(ステップS145)。次いで、CPU261は、コンテンツ投入サーバサービスを終了するか否か、キーボード2662等からの入力やネットワークインターフェイス267を介した指示等により判断する(ステップS146)。コンテンツ投入サーバサービスを終了しない場合には(ステップS146;NO)、ステップS142に戻る。
【0178】
ステップS142において、コンテンツ投入指示がない場合には(ステップS142;NO)、CPU261は、ノード装置1からカタログリストの送信要求があるか否かを判断する(ステップS147)。カタログリストの送信要求がある場合には(ステップS147;YES)、CPU261は、カタログリスト送信要求の送信元のノード装置1に、カタログリストの情報を送信し(ステップS148)、ステップS146に戻る。
【0179】
ステップS147において、カタログリストの送信要求がない場合には(ステップS147;NO)、CPU261は、放送局装置31として機能するノード装置1から放送プログラムファイルの送信要求があるか否かを判断する(ステップS149)。放送プログラムファイルの送信要求がある場合には(ステップS149;YES)、CPU261は、放送プログラムファイル送信要求の送信元のノード装置1に、放送プログラムファイルを送信し(ステップS150)、ステップS146に戻る。また、ステップS149において、ノード装置1から放送プログラムファイル送信要求がない場合にも(ステップS149;NO)、ステップS146へ戻る。
【0180】
ここで、ステップS146において、コンテンツ投入サーバサービスを終了する場合には(ステップS146;YES)、処理を終了する(エンド)。
【0181】
[7.変形形態]
本発明の一例として上述の実施形態を説明したが、本発明はこれに限定されず、例えば、以下の変形形態とすることもできる。
【0182】
[7.1.第1変形形態]
上述の実施形態においては、ノード装置1が放送局装置31として機能するものとして説明したが、通常のノード装置1とは別に放送局用の放送局装置31をコンテンツ配信システムSに備えていてもよい。そのような放送局装置31も、コンテンツ分散保存システムS1に参加している必要がある。放送局装置31を有する場合のコンテンツ配信システムSについて、以下に説明する。
【0183】
放送局装置31の構成及び機能について図27を参照して説明する。図27は、放送局装置31の概要構成例を示す図である。
【0184】
放送局装置31は、図27に示すように、演算機能を有するCPU311と、受信した第1コンテンツデータ等を一時蓄積するリングバッファメモリ3121、オペレーティングシステム3122、ストリーム制御プログラム3123、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)等をデコード(データ伸張や復号化等)等する画面制御プログラム3124、トポロジー制御プログラム3125、コンテンツデータに含まれるエンコードされたオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する音楽デコーダ3126及び放送コンテンツ制御プログラム3127を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置312と、第1コンテンツデータ、コンテンツインデックス情報、上記DHTおよびプログラム等を記憶保存(格納)するためのHD等から構成された記録媒体としてのハードディスク装置313と、ハードディスク装置313や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ314と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ3151と、当該ビデオチップ3151から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ3161と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音源チップ3152と、当該音源チップ3152から出力されたオーディオ信号を音波として出力するスピーカ3162と、ユーザからの指示を受け付け当該指示に応じた指示信号をCPU311に対して与える入力部としてのキーボード3163及びマウス3164(他にも、例えば、操作用リモコン、操作パネル等が可)と、ネットワーク8を通じてルータ319等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス317と、を備えて構成され、CPU311、主記憶装置312、周辺機器制御チップ314、ビデオチップ3151、音源チップ3152及びネットワークインターフェイス317はシステムバス318を介して相互に接続されている。ネットワークインターフェイス317は、ネットワーク8を介して外部のルータ319等と接続されている。
【0185】
そして、CPU311は主記憶装置312等に記憶された各種プログラムを実行することにより、放送局装置31全体を統括制御するようになっており、また、キーボード3163等の入力部からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。また、放送局装置31のCPU311は、本発明の第1コンテンツデータ取得手段、第2コンテンツデータ配信手段、保存判断手段、公開情報送信手段、要求受信手段(コンテンツ要求)、第1コンテンツデータ送信手段、公開判断手段、検索手段(クエリ)、要求送信手段(コンテンツ要求)、変換手段、として機能する。なお、放送局装置31は、配信する放送コンテンツデータの順番や時刻、コンテンツID等が示された放送プログラムファイルを、コンテンツ投入サーバ26から受信して有していることを前提とする。
【0186】
次いで、放送局装置31の動作について図28を参照して説明する。
【0187】
放送局装置31のCPU311は、図示しない電源スイッチ等により放送局装置31自身に電源が入れられたことを認識すると、その処理を開始する(スタート)。
【0188】
処理が開始されると、CPU311は、当該放送局装置31のプログラム等の各種設定を初期化し(ステップS161)、接続先紹介サーバ35へツリー型配信システムS2への参加通知を送信する(ステップS162)。次いで、CPU311は、コンテンツ分散保存システムS1への参加処理を行う(ステップS163)。なお、ステップS163のコンテンツ分散保存システムS1への参加処理は、図20を参照して上述したステップS3の説明と同様であるため、省略する。
【0189】
次いで、CPU311は、放送管理者の操作等によりキーボード3163等から放送開始又は放送停止の要求があるか否かを判断する(ステップS164)。放送開始又は放送停止の要求がある場合には(ステップS164;YES)、CPU311は、当該要求の内容に応じて、コンテンツパケットの生成処理を開始又は停止する(ステップS165)。次いで、CPU311は、放送コンテンツデータを変換するか否かを判断し(ステップS166)、放送コンテンツデータを変換する場合には(ステップS166;YES)、変換手段としてのCPU311は、所定の方法で放送コンテンツデータを変換し(ステップS167)、ステップS168へ進む。また、ステップS166において、放送コンテンツデータを変換しない場合には、そのままステップS168へ進む。
【0190】
次いで、CPU311は、電源が切られたか否かを判断し(ステップS168)、電源が切られていない場合には(ステップS168;NO)、ステップS164へ戻る。
【0191】
ステップS164において、放送開始又は放送停止の要求がない場合には(ステップS164;NO)、CPU311は、ノード装置1からツリー型配信システムS2における下流に接続したい旨の接続開設又は既にある接続を切断する旨の接続切断の要求があるか否かを判断する(ステップS169)。他のノード装置1からの接続開設又は接続切断の要求がある場合には(ステップS169;YES)、CPU311は、その要求に従い、他のノード装置1と接続を開設し、又は接続を切断し(ステップS170)、次いで、当該ノード装置に放送コンテンツの配信を開始し、又は停止し(ステップS171)、ステップS168に戻る。
【0192】
ステップS169において、ノード装置1からの接続開設又は接続切断の要求がない場合には(ステップS169;NO)、CPU311は、放送プログラムファイルに基づき、放送コンテンツデータを取得するタイミングになったか否かを判断する(ステップS172)。放送コンテンツデータを取得するタイミングになった場合には(ステップS172;YES)、CPU311は、放送コンテンツ取得処理を行い(ステップS173)、ステップS168に戻る。なお、ステップS173の放送コンテンツ取得処理は、図23を参照して上述したステップS61の説明と同様であるため、省略する。
【0193】
ここで、ステップS168において、電源が切られた場合には、電源オフであると判断し(ステップS168;YES)放送局装置31における処理を終了する(エンド)。
【0194】
本実施形態では、取得した第1コンテンツデータのハードディスクへの保存、保存した第1コンテンツデータについてのコンテンツ公開メッセージの送信等は行わないものとして説明した。
【0195】
なお、放送局装置31は、ツリー型配信システムS2における第2コンテンツデータの配信を主として行うため、コンテンツ分散保存システムS1へも参加しているものの、当該システムS1においては、他のノード装置1のDHTルーティングテーブルに記憶されにくくしたり、コンテンツ投入サーバ26からコンテンツ分散保存システムS1に保存される第1コンテンツデータが投入されて保存することを行わないように設定することができる。なお、コンテンツ分散保存システムS1において、放送局装置31がクエリやコンテンツ公開メッセージ、参加メッセージ等の各メッセージや情報を受信した場合には、通常のノード装置と同じように転送等の処理を行う。
【0196】
ここで、コンテンツ配信システムSにおいては、放送チャンネルの数だけ放送局装置31が存在することとなり、本実施形態の放送局装置31と、通常のノード装置1が放送局装置31として機能するものが混在していてもよい。
【0197】
[7.2.第2変形形態]
上述の実施形態においては、ノード装置1の動作におけるステップS29において、コンテンツ分散保存システムS1におけるコンテンツパケットを受信すると、当該コンテンツをツリー型配信システムS2において配信(放送)する放送コンテンツとして扱っているが、これに限定されない。
【0198】
第2変形形態においては、ノード装置1が第1コンテンツデータのパケットを受信すると、当該第1コンテンツデータが自身の要求に基づいて取得したコンテンツデータか、放送するために取得したコンテンツデータか、を判断し、自身の要求に基づいて取得したコンテンツデータである場合には、ハードディスク装置13のHDに保存して当該コンテンツデータを再生し、放送するために取得したコンテンツデータである場合には、放送コンテンツデータとしてツリー型配信システムS2において放送する。
【0199】
この変形形態にかかるノード装置1の動作を、図29を参照して説明する。図29は、図18のフローチャートの変形例であり、図18と同様のステップSは省略している。
【0200】
図17のステップS27において、コンテンツの送信要求情報を受信していない場合には(ステップS27;NO)、図29に移り、CPU11は、コンテンツパケットを受信したか否かを判断する(ステップS181)。ここで、コンテンツパケットを受信していない場合には(ステップS181;NO)、ステップS44へ進む(図29においては省略)。
【0201】
一方、コンテンツパケットを受信した場合には(ステップS181;YES)、コンテンツ判断手段としてのCPU11は、第1コンテンツデータ取得手段としてのCPU11により取得した第1コンテンツデータ、すなわち上記コンテンツパケットがツリー型配信システムS2において配信するコンテンツデータに対応するか否かを判断する(ステップS182)。具体的には、CPU11は、受信したコンテンツパケットがステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツパケットであるか否か、又は受信したコンテンツパケットが放送プログラムファイルに含まれているか否か、を判断し、放送用のコンテンツパケットである場合には(ステップS182;YES)、上述したステップS30に進み、当該コンテンツパケットを放送するための処理を行う(図29においては省略)。このとき、ノード装置1は、本発明における配信元のノード装置、実施形態における放送局装置31として機能し、CPU11は第2コンテンツデータ配信手段として機能する。
【0202】
ステップS182において、受信したコンテンツパケットがステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツパケットでなく、又は受信したコンテンツパケットが放送プログラムファイルに含まれておらず、上記コンテンツパケットがツリー型配信システムS2において配信するコンテンツデータに対応しない場合には(ステップS182;NO)、CPU11は、受信したコンテンツデータを自身の要求に基づいて取得したコンテンツデータであると判断し、第1コンテンツデータをハードディスク装置13のHDに保存する(ステップS183)。
【0203】
次いで、CPU11は、ユーザが視聴するために当該コンテンツデータを再生して(ステップS184)、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS185)。次いで、CPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS186)。当該ノード装置1自身がルートノードでない場合には(ステップS186;NO)、CPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS187)、図16のステップS8へ戻る。一方、ステップS186において、当該ノード装置1自身がルートノードである場合には、(ステップS186;YES)、処理を行わずに図16のステップS8へ戻る(接続子4)。
【0204】
この変形形態では、ノード装置1が、第1コンテンツデータ取得手段としてのCPU11により取得した第1コンテンツデータがツリー型配信システムS2において配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段(CPU11)を有しており、コンテンツ判断手段が第1コンテンツデータ取得手段により取得した第1コンテンツデータがツリー型配信システムS2において配信するコンテンツデータに対応すると判断した場合に、第2コンテンツデータ配信手段としてのCPU11は、取得した当該第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信すればよい。コンテンツ判断手段における判断は、動作について上述したように放送プログラムファイルを参照してもよいし、ステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツデータであるか否かを確認してもよく、特に限定されない。
【0205】
[7.3.他の変形形態]
上述の実施形態においては、コンテンツ配信システムSにおいて、コンタクトノード紹介サーバ25、接続先紹介サーバ35、コンテンツ投入サーバ26を備えているが、この構成に限定されず、システムSにこれらのサーバ装置を備えていなくても、コンテンツ分散保存システムS1に参加し、かつ、ツリー型配信システムS2に配信元のノード装置31として参加しているノード装置1が、コンテンツ分散保存システムS1における第1コンテンツデータを保存しているノード装置1から第1コンテンツデータを取得する第1コンテンツデータ取得手段(CPU11)と、取得した第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信する第2コンテンツデータ配信手段(CPU11)と、を有していればよい。従って、上述の各サーバが存在しないことにより、コンテンツ配信システムSにおけるノード装置1等のシステムSを構成する装置等の動作や役割が異なることがある。
【0206】
このような本発明のコンテンツ配信システムにより、ツリー型配信システムS2のコンテンツ配信元のノード装置におけるコンテンツ保存等の負担が軽減する。そのため、第1変形形態のような放送局装置31を放送管理者が別個に提供しなくても、通常のユーザのノード装置1が放送局の役割を行うことにより、少ない設備で放送局の運営を行うことが可能となり、放送局の運営にかかるコストも低減できる。
【0207】
上述の実施形態においては、ノード装置1がDHTのルーティングテーブルを記憶しており、これに基づいて第1コンテンツデータが分散保存されているが、この実施形態に限定されない。コンテンツ分散保存システムS1が複数のノード装置1の参加により形成されており、複数の第1コンテンツデータが複数のノード装置1に分散保存され、一のノード装置1(上述のコンテンツノード)が他のノード装置1からの要求に応じて自己が保存している第1コンテンツデータを通信手段を介して送信する構成になっていればよい。
【0208】
上述の実施形態においては、ノード装置1や放送局装置31においては、当該装置が起動し始めた段階でコンテンツ分散保存システムS1への参加処理(ステップS3、S163、図20等)を行っているが、この形態に限定されない。例えば、ノード装置1が放送局装置31としての機能をし始める段階、又は、放送局装置31が第2コンテンツデータの配信を開始する段階等の必要な段階においてコンテンツ分散保存システムS1へ参加し、必要な第1コンテンツデータを取得した後、また必要な段階まで脱退していてもよい。
【0209】
上述の実施形態においては、ステップS28等の説明において、レート制御情報がどのコンテンツデータ(第1コンテンツデータ、第2(放送)コンテンツデータ)にも入っていることとしたが、これに限定されず、第2(放送)コンテンツデータのみにレート制御情報を含ませることとしてもよい。
【0210】
上述の実施形態においては、ステップS20、S34、S82等の説明において、自ノード装置1がルートノードであるか否かに関わらず、キャッシュノードとして当該コンテンツデータのコンテンツノードの情報をコンテンツインデックス情報へ登録しているが、自ノード装置1がルートノードでないときは(ステップS21;NO、S35;NO、S83;NO)、当該コンテンツデータのコンテンツノードの情報についてコンテンツインデックス情報に登録せずに次のステップに進んでもよい。
【0211】
上述の実施形態においては、図5や図9に示すように、ルートノードがコンテンツノードの所在情報をクエリの送信元のノード装置1に知らせ、当該ノード装置がコンテンツノードに第1コンテンツデータを要求し、取得する形態としているが、第1コンテンツデータを取得する形態は、これに限定されない。例えば、ノード装置1が送信したクエリがルートノードに届いた場合、ルートノードがコンテンツノードに対して、「該当する第1コンテンツデータをクエリの送信元のノード装置1に送信すべき」旨のメッセージを送信し、この通知を受けたコンテンツノードが、該当する第1コンテンツデータをクエリの送信元のノード装置1に送信する形態としてもよい。
【0212】
上述の実施形態においては、ノード装置1は、記録媒体(ハードディスク)に、放送用に取得した第1コンテンツデータを保存することができ、保存するか否かを選択できることとしているが、この形態に限定されず、放送用に取得した第1コンテンツデータを保存できない形態としてもよいし、保存の有無を選択せずに必ず保存する、必ず保存しない、と決められた形態としてもよい。
【0213】
上述の実施形態においては、ノード装置1は、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他のノード装置に当該第1コンテンツデータを保存していることを示す公開情報(コンテンツ公開メッセージ)を、コンテンツ分散保存システムS1における第1コンテンツデータの所在を管理する管理元のノード装置1(ルートノード)に向けて送信し、コンテンツノードとして機能でき、このように公開するか否かを選択できることとしているが、この形態に限定されず、保存した第1コンテンツデータを公開できない形態としてもよいし、公開の有無を選択せずに必ず公開する、必ず公開しない、と決められた形態としてもよい。
【0214】
上述の実施形態においては、取得した第1コンテンツデータをツリー型配信システムS2において配信するための形式に変換して第2コンテンツデータ(放送コンテンツデータ)とする形態や、変換するか否かを選択できる形態を説明したが、これに限定されず、コンテンツデータの変換を行わない形態としてもよいし、変換の有無を選択せずに必ず所定のやり方で変換する、必ず変換しない、と決められた形態としてもよい。
【0215】
また、上述のコンテンツ配信システムSにおいては、ツリー型配信システムS2におけるツリーの長さが長くなる(配信元のノード装置から最下流のノード装置までのノード装置数が多くなる)場合には、配信元のノード装置を増やし、これらが同一のチャンネル(第2コンテンツデータ)を放送できるようにして、ツリーを分割することができる。このようにツリーを所定値以上長くならないようにして、より安定した第2コンテンツデータの配信を行うことができる。このようにするために、接続先紹介サーバ35が各ノード装置1にメッセージを送り、ツリーのトポロジーを調整することができる。
【0216】
上述のノード装置1又は放送局装置31の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係るCPU11又はCPU311として機能させることも可能である。
【図面の簡単な説明】
【0217】
【図1】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】DHTによるID空間及びコンテンツIDとこれに対するルートノードを説明する図である。
【図3】本実施形態に係るコンテンツ分散保存システムにおけるDHTによるID空間及びルーティングテーブルが作成される様子の一例を示す図である。
【図4】(A)レベル1のテーブルの一例である。(B)レベル2のテーブルの一例である。(C)レベル3のテーブルの一例である。(D)完成したルーティングテーブルの一例である。
【図5】DHTによるID空間及びコンテンツの検索方法、取得方法を説明する図である。
【図6】DHTによるID空間及び保存された第1コンテンツデータの公開方法を説明する図である。
【図7】DHTによるID空間及びノード装置の参加方法を説明する図である。
【図8】本実施形態に係るツリー型配信システムの概要を説明する図である。
【図9】本実施形態に係るコンテンツ配信システムの概要を説明する図(1)である。
【図10】本実施形態に係るコンテンツ配信システムの概要を説明する図(2)である。
【図11】放送局設定情報を示す表である。
【図12】ノード装置1の概要構成例を示す図である。
【図13】コンタクトノード紹介サーバ25の概要構成例を示す図である。
【図14】接続先紹介サーバ35の概要構成例を示す図である。
【図15】コンテンツ投入サーバ26の概要構成例を示す図である。
【図16】ノード装置1における処理(1)を示すフローチャートである。
【図17】ノード装置1における処理(2)を示すフローチャートである。
【図18】ノード装置1における処理(3)を示すフローチャートである。
【図19】ノード装置1における処理(4)を示すフローチャートである。
【図20】ノード装置1におけるコンテンツ分散保存システムへの参加処理を示すフローチャートである。
【図21】ノード装置1における投入コンテンツ受信処理を示すフローチャートである。
【図22】ノード装置1におけるコンテンツ検索処理を示すフローチャートである。
【図23】ノード装置1における放送コンテンツデータ取得処理を示すフローチャートである。
【図24】コンタクトノード紹介サーバ25における処理を示すフローチャートである。
【図25】接続先紹介サーバ35における処理を示すフローチャートである。
【図26】コンテンツ投入サーバ26における処理を示すフローチャートである。
【図27】放送局装置31の概要構成例を示す図である。
【図28】放送局装置31における処理を示すフローチャートである。
【図29】図18に示すノード装置1における処理の変形形態を示すフローチャートである。
【符号の説明】
【0218】
1 ノード装置
8 ネットワーク
9 オーバレイネットワーク
11 CPU
12 主記憶装置
13 ハードディスク装置
14 周辺機器制御チップ
15 ビデオチップ
16 内蔵ディスプレイ
17 音源チップ
18 内蔵スピーカ
19 赤外線ポート
21 ネットワークインターフェイス
22 システムバス
23 ユーザ入力用リモコン
24 ルータ
S コンテンツ配信システム
S1 コンテンツ分散保存システム
S2 ツリー型配信システム
【技術分野】
【0001】
本発明は、通信手段を介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型のコンテンツ配信システム及び方法等の技術分野に関する。
【背景技術】
【0002】
近年、ブロードバンドの普及によりVOD(ビデオオンデマンド)等のコンテンツ配信サービスが行われている。現在のコンテンツ配信における主流形態であるサーバクライアント方式に変わる新しい形態として、ピアツーピアという技術が注目されてきている。ピアツーピア型の情報通信システムとしては、ツリー型のネットワーク形式(例えば、特許文献1参照)が知られている。
【特許文献1】特開2006−33514号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ツリー型のコンテンツ配信サービスとしては、初めにコンテンツを配信し、放送局の役割を果たす放送局装置が、当該装置自身が有しているデータベースにコンテンツを保存している態様が考えられる。そして、当該放送局装置は、放送番組のプログラムに従って、配信するコンテンツをデータベースから準備し、配信する。このとき、配信するコンテンツが増大すると、放送局装置が保有するデータベースも増大する。また、放送局としてコンテンツを配信する他、当該データベースから他のノード装置にコンテンツを送信する場合には放送局装置に通信が集中し、各通信が滞る可能性がある。
【0004】
そこで、本発明は、コンテンツの放送局装置における負担やネットワークシステムの通信経路における負担をより低減させたコンテンツ配信システム及び方法等を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するために、請求項1に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置であって、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、を有することを特徴とするノード装置である。
【0006】
これによれば、配信元のノード装置は、配信する第2コンテンツデータを予めデータベース等に保存しておく必要がないため、データベースに多くのコンテンツデータを予め保存し、当該ノード装置に通信が集中することが防止される。そのため、ノード装置自体の負担や通信経路の負担、すなわちコンテンツ配信システム全体における負担も低減される。また、このように機能する配信元のノード装置は、配信する第2コンテンツデータ保存用のデータベース等を増大させる必要がなく、配信コンテンツ用のデータベースに費用をかかることを防止できる。さらに、配信元のノード装置をこのような構成とすれば、ツリー型配信システムにおける放送局装置を別途設けずに、通常のノード装置を放送局装置として機能させることができる。
【0007】
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置であって、前記第1コンテンツデータ取得手段は、ストリーミング方式で送信されてきた前記第1コンテンツデータを取得し、第2コンテンツデータ配信手段は、ストリーミング方式で前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置である。
【0008】
これによれば、データの送受信をストリーミング方式で行うことにより、ノード装置は、一の第1コンテンツデータを受信している途中であっても、これに対応する第2コンテンツデータを送信することができる。そのため、データを全て受信するまで待たずにツリー型配信システムにおいて第2コンテンツデータを送信することができ、速やかにデータの配信を行うことができる。
【0009】
上記課題を解決するために、請求項3に記載の発明は、請求項1又は2に記載のノード装置であって、前記ノード装置は、さらに、受信した前記第1コンテンツデータを保存する記録媒体を有することを特徴とするノード装置である。
【0010】
これによれば、ノード装置は第1コンテンツデータを保存できるため、同様の第1コンテンツデータに対応する第2コンテンツデータを再度配信する場合に、再度第1コンテンツデータを取得することから始める必要がなく、通信経路への負担を低減できる。
【0011】
上記課題を解決するために、請求項4に記載の発明は、請求項3に記載のノード装置であって、前記ノード装置は、さらに、前記第1コンテンツデータを取得した場合に、当該第1コンテンツデータを前記記録媒体に保存するか否かを判断する保存判断手段を有し、前記記録媒体は、前記保存判断手段が保存すると判断した場合に、新たに前記第1コンテンツデータを保存することを特徴とするノード装置である。
【0012】
これによれば、ノード装置は、第1コンテンツデータの必要性や自身の記録媒体における残りの記憶容量等に応じて、第1コンテンツデータを新たに記録するか否かを判断できる。そのため、ノード装置に負担をかけることなく必要に応じて受信した第1コンテンツデータを保存できる。
【0013】
上記課題を解決するために、請求項5に記載の発明は、請求項3又は4に記載のノード装置であって、前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他の前記ノード装置に当該第1コンテンツデータを保存していることを示す公開情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する公開情報送信手段と、他の前記ノード装置から前記第1コンテンツデータの送信を要求する送信要求情報を受信する要求受信手段と、前記要求受信手段が他の前記ノード装置から前記送信要求情報を受信した場合に、当該送信要求情報に応じて前記記録媒体に保存されている前記第1コンテンツデータを送信する第1コンテンツデータ送信手段と、を有することを特徴とするノード装置である。
【0014】
これによれば、配信元のノード装置がある第1コンテンツデータを保存していることを他のノード装置に対して公開することにより、他のノード装置は配信元のノード装置から当該第1コンテンツデータを取得できることとなる。そのため、他のノード装置は、元々第1コンテンツノードを保存しているノード装置(例えば、コンテンツノード等)の他に配信元のノード装置から第1コンテンツデータを取得できることとなり、他のノード装置を有するユーザの利便性が向上する他、元々第1コンテンツノードを保存しているノード装置における他のノード装置へ第1コンテンツデータを送信する通信の負担が低減される。
【0015】
上記課題を解決するために、請求項6に記載の発明は、請求項5に記載のノード装置であって、前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、前記公開情報を送信するか否かを判断する公開判断手段を有し、前記公開情報送信手段は、前記公開判断手段が前記公開情報を送信すると判断した場合に、前記公開情報を送信することを特徴とするノード装置である。
【0016】
これによれば、ノード装置は、コンテンツ分散保存システムにおける第1コンテンツデータの複製の必要性や、自身の通信状況等に応じて、公開情報を送信するか否かを判断できる。そのため、公開情報を送信しないと判断した場合には、他のノード装置から送信要求情報を受信することがないため、ノード装置における通信の負担が増大することが防止できる。
【0017】
上記課題を解決するために、請求項7に記載の発明は、請求項1乃至6のいずれか一項に記載のノード装置であって、前記ノード装置は、さらに、前記第2コンテンツデータ配信手段により配信すべき前記第2コンテンツデータに対応する前記第1コンテンツデータを保存している前記ノード装置の所在を検索するための検索情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する検索手段と、前記管理元のノード装置から前記第1コンテンツデータの所在を示すノード情報を受信した場合に、当該ノード情報に対応する前記ノード装置に前記第1コンテンツデータの送信を要求する送信要求情報を送信する要求送信手段と、を有し、前記第1コンテンツデータ取得手段は、前記送信要求情報の送信先の前記ノード装置から前記第1コンテンツデータを取得することを特徴とするノード装置である。
【0018】
これによれば、ノード装置が検索情報を送信することにより、第1コンテンツデータの所在(第1コンテンツデータを保存している他のノード装置のIPアドレス等)がわかり、当該他のノード装置から第1コンテンツデータを取得することが可能となる。そのため、ノード装置が第1コンテンツデータの所在を常に記憶している必要がなく、ノード装置における記憶することの負担が低減される。
【0019】
上記課題を解決するために、請求項8に記載の発明は、請求項1乃至7のいずれか一項に記載のノード装置であって、前記ノード装置は、さらに、取得した前記第1コンテンツデータをツリー型配信システムにおいて配信するための形式に変換して前記第2コンテンツデータとする変換手段を有し、前記第2コンテンツデータ配信手段は、前記変換手段により変換された後の前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置である。
【0020】
これによれば、ノード装置は、データを変換することにより、ツリー型配信システムに合った形式で第2コンテンツデータを配信することができ、データの形式があわないことにより下流のノード装置において負担がかかることが防止される。
【0021】
上記課題を解決するために、請求項9に記載の発明は、請求項8に記載のノード装置であって、前記変換手段は、前記第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて前記第2コンテンツデータとすることを特徴とするノード装置である。
【0022】
これによれば、ノード装置は、ツリー型配信システムにおいては、変換され、正規の第1コンテンツデータよりも質の低い第2コンテンツデータを配信し、コンテンツ分散保存システムにおいては、正規の第1コンテンツデータを保存することができる。そして、ツリー型配信システムの各ノード装置において第2コンテンツデータを視聴して気に入った視聴者が、改めてコンテンツ分散保存システムにおいて正規の第1コンテンツデータを取得することができる。
【0023】
上記課題を解決するために、請求項10に記載の発明は、請求項8又は9に記載のノード装置であって、前記変換手段は、前記第1コンテンツデータに含まれる映像を部分的に間引く、前記第1コンテンツデータに含まれる映像の一部を選択する、前記第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、前記第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は前記第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことを特徴とするノード装置である。
【0024】
これによれば、上記の点に加え、第1コンテンツデータについて、具体的にこのような変換を行い、第2コンテンツデータとして配信することにより、下流のノード装置が送受信するデータの容量を小さくすることもでき、当該ノード装置の負担を低減させることができる。
【0025】
上記課題を解決するために、請求項11に記載の発明は、請求項1乃至10のいずれか一項に記載のノード装置であって、前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段をさらに有し、前記コンテンツ判断手段が前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応すると判断した場合に、前記第2コンテンツデータ配信手段は、取得した当該第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信することを特徴とするノード装置である。
【0026】
これによれば、通常のノード装置がツリー型配信システムの配信元のノード装置として機能する場合に、コンテンツ判断手段は、取得した第1コンテンツデータが、当該ノード装置(ユーザ)の希望に基づいて取得したものか、ツリー型配信システムにおいて配信するために取得したものかを判断することができる。このとき、ノード装置は、ツリー型配信システムにおいて配信するために取得したコンテンツデータのみを第2コンテンツデータとして配信できる。
【0027】
上記課題を解決するために、請求項12に記載の発明は、コンピュータを、請求項1乃至11のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラムである。
【0028】
上記課題を解決するために、請求項13に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置におけるコンテンツ配信方法であって、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する工程と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する工程と、を有することを特徴とするコンテンツ配信方法である。
【0029】
上記課題を解決するために、請求項14に記載の発明は、複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システム、及び、複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システム、を備えるコンテンツ配信システムであって、前記コンテンツ分散保存システムに参加している前記ノード装置であり、且つ、前記ツリー型配信システムに参加している前記配信元のノード装置は、前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、を有することを特徴とするコンテンツ配信システムである。
【発明の効果】
【0030】
本発明によれば、配信元のノード装置が、特に第1コンテンツデータ受信手段及び第2コンテンツデータ送信手段を有することにより、ノード装置自体の負担や通信経路の負担、すなわちコンテンツ配信システム全体における負担が低減される。
【発明を実施するための最良の形態】
【0031】
以下、本発明の最良の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、DHTを利用したコンテンツ分散保存システム及びツリー型配信システムを備えるコンテンツ配信システムに本発明を適用した場合の実施形態である。本発明においては、コンテンツ分散保存システム内で送受信されるコンテンツデータを第1コンテンツデータとし、ツリー型配信システム内で送受信されるコンテンツデータを第2コンテンツデータとしている。なお、本発明のコンテンツ配信システム等の各発明は、以下に説明する実施形態に限定されず、本発明の技術思想の範囲内で適宜変更して実施される。
【0032】
[1.コンテンツ配信システムの概略等]
始めに、図1を参照して、コンテンツ配信システムSの概要構成等について説明する。
【0033】
図1は、本実施形態に係るコンテンツ配信システムSにおける各ノード装置の接続態様の一例を示す図である。
【0034】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、および通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
【0035】
コンテンツ配信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報としての固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号およびIPアドレスは、複数のノード装置1間で重複しないものである。なお、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
【0036】
[2.コンテンツ分散保存システムの構成等]
次いで、コンテンツ配信システムSに含まれるコンテンツ分散保存システムS1の構成等について説明する。
【0037】
[2.1.DHTの概要]
以下に、本実施形態のコンテンツ分散保存システムS1に係る分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用したアルゴリズムについて説明する。
【0038】
上述したコンテンツ配信システムSにおいて、当該ノード装置1同士が、互いに情報をやり取りする際には、お互いのノード情報としてのIPアドレスを知っていなければならない。
【0039】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置1にて記憶している当該任意のノード装置のIPアドレスの更新が頻繁になり、運用上困難となる。
【0040】
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限のノード装置1のIPアドレスだけを覚えて(記憶して)おいて、IPアドレスを知らない(記憶していない)ノード装置1については、各ノード装置1間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【0041】
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバレイネットワーク9が構築されることになる。つまり、このオーバレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【0042】
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバレイネットワーク9を前提としており、このオーバレイネットワーク9上に配置されたノード装置1を、コンテンツ分散保存システムS1に参加(言い換えれば、オーバレイネットワーク9に参加)しているノード装置1という。なお、コンテンツ分散保存システムS1への参加は、未だ参加していないノード装置が、既に参加している任意のノード装置1に対して参加要求を送ることによって行われる。
【0043】
コンテンツ分散保存システムS1に参加している各ノード装置1のノードIDは、それぞれのノード装置毎にユニーク(固有)な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノード装置を運用できる。
【0044】
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置のIPアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
【0045】
また、コンテンツ分散保存システムS1に参加している複数のノード装置1には、1のノード装置1から他のノード装置1に配信される第1コンテンツデータ(例えば、映画や音楽等のデータ)が分散して記憶(保存)されているが、当該第1コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク(固有)な番号(以下、コンテンツIDという。)を付与する。
【0046】
そして、当該コンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、例えば、コンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードが、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置1が、当該第1コンテンツデータが記憶(保存)するか、あるいは、コンテンツデータを保持するノード装置へのリンク情報(コンテンツ保持ノードのIPアドレス)を保持する。これにより、第1コンテンツデータを偏りなくコンテンツ分散保存システムS1上に分散させることが可能となる。なお、異なる第1コンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、または作詞者名等)の組み合わせとすればよい。
【0047】
このように、各ノード装置1および各第1コンテンツデータに付与されたノードIDおよびコンテンツIDは、共通のハッシュ関数によって生成したため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードIDおよびコンテンツIDを付与し、図示したものである。図中黒点はノードIDを、黒ひし形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
【0048】
次に、どのノード装置1に、どの第1コンテンツデータの所在が記憶されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理するノード装置は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDとノードIDとの差が一番少ないものとするが、実際には、各第1コンテンツデータの管理を各ノード装置1に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツIDaは、ノードIDaを有するノード装置1に管理され、コンテンツIDbは、ノードIDbを有するノード装置1に管理され、コンテンツIDcは、ノードIDcを有するノード装置1に管理される。
【0049】
なお、ここで「管理」というのは、第1コンテンツデータを保存(保持)していることを意味するのではなく、「第1コンテンツデータが何れのノード装置1に保存されているかを知っている」ことを言う。すなわち、図2において、ノードIDaを有するノード装置1は、コンテンツIDaを有する第1コンテンツデータが何れのノード装置1に保存されているかを知っており、ノードIDbを有するノード装置1およびノードIDcを有するノード装置1も同様にそれぞれコンテンツIDbを有する第1コンテンツデータおよびコンテンツIDcを有する第1コンテンツデータが何れのノード装置1に保存されているかを知っている、ということになる。このように、ある第1コンテンツデータが何れのノード装置1に保存されているかを知っているノード装置を、その第1コンテンツデータのルートノードと言う。つまり、ノードIDaを有するノード装置1は、コンテンツIDaを有する第1コンテンツデータのルートノードであって、ノードIDbを有するノード装置1は、コンテンツIDbを有する第1コンテンツデータのルートノードであって、ノードIDcを有するノード装置1は、コンテンツIDcを有する第1コンテンツデータのルートノードである。また、第1コンテンツデータを保持(保存)しているノード装置1をコンテンツノードという。
【0050】
[2.2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。
【0051】
図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【0052】
まず、図3(A)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長16Bitの4進数で表すこととした。そして、ノード装置1NのノードIDを「10230210」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
【0053】
(レベル1のルーティング)
まず、ID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXXXXXX」のエリア)以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(A)がレベル1のテーブルの一例である。2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
【0054】
(レベル2のルーティング)
次に、図3(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル2のテーブルに記憶する。図4(B)がレベル2のテーブルの一例である。1列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
【0055】
(レベル3のルーティング)
さらに、図3(C)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(C)がレベル3のテーブルの一例である。3列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無く、2列目、4列目はそのエリアにノード装置が存在しないため空白となる。
【0056】
このようにして、レベル4以下レベル8まで同様にルーティングテーブル図4(D)に示す如く作成することにより、16bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【0057】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。
【0058】
[2.3.第1コンテンツデータの検索方法及び取得方法]
次に、図5を参照して、第1コンテンツデータの保存元であるノード装置1の検索方法及び取得方法の一例について説明する。これは、後述するノード装置1における第1コンテンツデータ取得手段、検索手段、要求送信手段、要求受信手段及び第1コンテンツデータ送信手段により行われるものである。
【0059】
図5は、DHTにより第1コンテンツデータを保存しているノード装置1が検索される様子及び第1コンテンツデータが取得される様子の一例を示す図である。
【0060】
ここでは、ノードID「12003030」のノード装置1−1(以下、このように第1コンテンツデータを探し、第1コンテンツデータの受信を要求するノード装置を「リクエストノード」と言う。)が、コンテンツID「31330012」を有する第1コンテンツデータを探す際の手順について説明する。
【0061】
リクエストノードは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対してコンテンツの在処を問い合わせる検索情報(以下、本発明の「検索情報」(所望の第1コンテンツデータを記憶しているノード装置を検索するための検索情報)を「クエリ」と言う。)を送信する。つまり、コンテンツID「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1−2に対してクエリを送信する。このように、クエリはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものである。
【0062】
図5に示す例に拠れば、ノードIDが「30100000」であるノード装置1−2のIPアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードIDが「30100000」であるノード装置1−2に対してクエリを送信する。
【0063】
次に、クエリを受信したノード装置1−2は、当該ノード装置1−2自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1−3(ノードID「31012001」)に対してクエリを転送する。
【0064】
このように、コンテンツIDの桁を上から順に適合していく要領でクエリの転送が進み、最終的に当該第1コンテンツデータを管理するノード装置1−5、すなわちルートノード(本発明におけるコンテンツ分散保存システムにおける第1コンテンツデータの所在を管理する管理元のノード装置を示す。)に辿り着くと、当該ルートノードは、クエリに含まれるコンテンツID「31330012」を、自身が管理しているコンテンツインデックス情報(後述する)の中から検索し、当該第1コンテンツデータを所有しているノード装置1のIPアドレス等のノード情報をリクエストノードに返信するようになっている。
【0065】
こうして、リクエストノード(ノード装置1−1)は、上記ルートノード(ノード装置1−5)から、コンテンツID「31330012」の第1コンテンツデータの所在、即ち、当該データを保存しているコンテンツノード(ノード装置1−6)のIPアドレスを受信して知ることになる。このようにして検索されたコンテンツノードに、リクエストノードは、第1コンテンツデータの送信を要求する送信要求情報を送信し、当該コンテンツノードから、その第1コンテンツデータを取得(ダウンロード)することになる。
【0066】
また、コンテンツノードは、リクエストノードから第1コンテンツデータの送信を要求する送信要求情報を受信し、リクエストノードから送信要求情報を受信した場合に、当該送信要求情報に応じて第1コンテンツデータを送信する。
【0067】
なお、図示しないが、リクエストノードが送信したクエリを受信したルートノードは、該当する第1コンテンツデータを保存するコンテンツノードに対して、リクエストノードに第1コンテンツデータを配信するように指示する旨の情報を送信してもよい。この場合には、コンテンツノードは送信要求情報を送信することなく、コンテンツノードから所望の第1コンテンツデータを取得することができる。
【0068】
[2.4.第1コンテンツデータの公開方法]
このような構成のコンテンツ分散保存システムS1の中で、例えば、あるノード装置(上述のノード装置1−6とする)が新しい第1コンテンツデータを、コンテンツ分散保存システムS1上の他のノード装置1に所在がわかるように公開する際の手法について、図6を参照して述べる。これは、後述するノード装置1における公開情報送信手段により行われるものである。このノード装置1−6が第1コンテンツデータを保存するコンテンツノードとなる。
【0069】
図6に示すように、まず、コンテンツ分散保存システムS1に投入される第1コンテンツデータの種類や数等を管理するコンテンツ投入サーバ26から、新たな第1コンテンツデータがノード装置1−6に投入される。
【0070】
こうしてコンテンツノードとなったノード装置1−6は、コンテンツのタイトル等からコンテンツID;31330012を求め、当該コンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)自ノード装置が第1コンテンツデータを保存していることを示す公開情報(以下、本発明の公開情報をコンテンツ公開メッセージという。)を送信する。そして、このコンテンツ公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該コンテンツ公開メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや送信先のノード装置が他にないと判断すると、当該ノード装置1自身がその第1コンテンツデータのルートノードとなるべきだと判断し、当該コンテンツID、補助情報(タイトル、ジャンル等の属性情報や、監督名等の著作権情報等)およびコンテンツノードのIPアドレスをコンテンツインデックス情報として記憶する。
【0071】
なお、コンテンツノードは、一つに限られず、同じ第1コンテンツデータを保存し、公開したノード装置1(以下、レプリカノードともいう。)が他に存在していてもよい。この場合にも、二つ目以降のレプリカノードが同様に公開メッセージを送信すると、一の第1コンテンツデータに対して同じルートノードがその所在を管理することとなる。
【0072】
更にまた、ルートノードに至る経路の途中のノード装置が、当該ルートノードが記憶しているコンテンツインデックス情報をキャッシュとして保持しておいてもよい。このコンテンツインデックス情報をキャッシュとして保持するノード装置をキャッシュノードという。これにより、ルートノードがクエリを受信するより前に、より早くキャッシュノードにクエリが転送された時点でキャッシュノードがコンテンツノードのIPアドレスを、コンテンツの所在を問い合わせたリクエストノードに返信することが可能になる。なお、キャッシュノードの台数や公開メッセージが転送されるノード装置1の全てをキャッシュノードとするか否か、等はそのコンテンツ分散保存システムS1において自由に決定することができる。
【0073】
なお、コンテンツ投入サーバ26からの指示等により、コンテンツノードが保存している第1コンテンツデータを削除した場合には、コンテンツ削除メッセージを同様に送信し、ルートノードまで次々に転送され、当該コンテンツ削除メッセージを受信したルートノードやキャッシュノードは、コンテンツインデックス情報から当該第1コンテンツデータのコンテンツノードのうち、当該コンテンツ削除メッセージを送信したノード装置1の各種情報を削除する。
【0074】
[2.5.コンテンツ分散保存システムへの参加方法]
次いで、ノード装置のコンテンツ分散保存システムS1への参加方法について、図7を参照して説明する。
【0075】
図7に示すように、コンテンツ分散保存システムS1には、コンタクトノード紹介サーバ25が備えられている。図1の下部枠101内に示すようにネットワークを介して他のノード装置1と通信を行っているノード装置1は、コンテンツ分散保存システムS1に参加する場合には、まず、コンタクトノード紹介サーバ25に、コンタクトノード紹介要求メッセージを送信する。コンタクトノード紹介要求メッセージを受信したコンタクトノード紹介サーバ25は、これからシステムS1に参加するノード装置1(以下、参加ノードという。)がまず通信を行うノード装置(以下、コンタクトノードという。)のIPアドレス等のコンタクトノード情報を、参加ノードに返信する。
【0076】
次いで、参加ノードは、受信したコンタクトノード情報に基づき、コンタクトノードに参加メッセージを送信し、参加メッセージを受信したコンタクトノードは、当該参加ノードに対し、ルーティングテーブルの一段目(図4(D)におけるレベル1の段)のノードIDとIPアドレスとが対応付けられたテーブル情報を送信する。
【0077】
次いで、コンタクトノードは、参加ノードのIPアドレス等から求められるノードID(図7における右上の白丸に相当する)を求め、当該コンテンツIDに最も近いノードIDを有するノード装置1に向けて参加メッセージを転送する。この参加メッセージには、コンタクトノードが送信した段(1段目)のテーブル情報の、次の段(2段目)のテーブル情報を参加ノードに送信すべき旨の情報を付加する。そして、この参加メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該参加メッセージに含まれるノードIDに最も近いノードIDを有するノード装置1まで転送されたところで、転送が止められる。
【0078】
また、転送された参加メッセージを受信した各ノード装置1は、当該参加ノードに対し、参加メッセージに含まれた指示に従い所定の段のテーブル情報(図4(D)におけるレベル2以降の段)を送信する。この参加メッセージを転送する際には、自ノード装置1が送信した段(例えば、2段目)のテーブル情報の、次の段(例えば、3段目)のテーブル情報を参加ノードに送信すべき旨の情報を付加する。
【0079】
こうして、参加ノードは、参加メッセージを受信した各ノード装置からルーティングテーブルの各レベルのテーブル情報を受信し、ルーティングテーブルを作成して、記憶することができる。
【0080】
[3.ツリー型配信システムの構成等]
次いで、図8を参照して本実施形態に係るコンテンツ配信システムSに含まれるツリー型配信システムS2の構成等について説明する。
【0081】
図8は、本実施形態に係るツリー型配信システムS2における各装置の接続態様の一例を示す説明図である。なお、図8の例において、ツリー型配信システムS2における各装置間の通信的な接続態様(例えば、どの装置と、どの装置の通信が確立されているかの接続関係)を示している。本実施形態では、放送局装置(本発明における配信元のノード装置を示す。)31から配信された第2コンテンツデータ(以下、放送コンテンツデータともいう。)を、ノード装置32aに備えたバッファメモリに一時的に記憶させながら当該第2コンテンツデータを再生する。また、第2コンテンツデータをノード装置32aに備えたバッファメモリに一時的に記憶させながら当該第2コンテンツデータを他のノード装置32c等に送信する。なお、放送局装置31における第2コンテンツデータの配信は、第2コンテンツデータ配信手段により行われるものである。
【0082】
このツリー型配信システムS2は、図8に示すように、ストリーミングデータ等の第2コンテンツデータの配信元である放送局装置31と、当該放送局装置31から配信されたコンテンツを受信する複数のノード装置(ピア)32a、32b、32c、・・・・、32m、を備えて構成されており、ピアツーピア(Peer to Peer(P2P))方式のネットワークシステムとなっている。
【0083】
また、ツリー型配信システムS2は、放送局装置31を最上位として複数のノード装置32a乃至32mが複数の階層を形成しつつ、各IPアドレスに基づき、複数の通信経路33a、33b、33c、・・・・、33mを介してツリー状に接続されることになる。
【0084】
そして、放送局装置31により配信される第2コンテンツデータは、上位階層のノード装置32a及び32b等から下位階層のノード装置32c〜32m等に順次転送されることになる。なお、以下の説明において、ノード装置32a乃至32mのうち何れかのノード装置を示す場合には、便宜上、ノード装置32という場合がある。
【0085】
なお、これら配信サーバ1及び複数のノード装置32a乃至32mも、図1を参照してコンテンツ配信システムSを説明したのと同様に、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワークに、物理的に接続されており、当該放送局装置31及び各ノード装置32a乃至32mには、上述したように、固有のノードID及びIPアドレスが割り振られている。
【0086】
また、接続先紹介サーバ35は、ノード装置32がいずれのネットワーク接続サービス提供者によってネットワークに接続されているかを示す提供者情報毎に、最も上位階層に接続されているノード装置の装置情報を記憶している。そのため、例えば、新たなノード装置32iが当該ツリー型配信システムS2に参加を希望する場合、つまり放送局装置31が配信している第2コンテンツデータの配信を希望する場合には、自分が接続されるべき上位階層のノード装置32の候補となるノード装置32を教えてもらうために、接続先候補要求Scを図中一点鎖線で示す如く接続先紹介サーバ35に対して送信する。そうすると、接続先紹介サーバ35は、ノード装置32が接続しているネットワーク接続サービス提供者を示す提供者情報に基づいて、ノード装置32が接続されるべき上位階層のノード装置32として他のノード装置32dを選び出し、当該ノード装置32dの装置情報(IPアドレスを含む)を、接続先候補通知としてノード装置32に対して、図中二点鎖線で示す如く送信する。
【0087】
そして、ノード装置32iは当該接続先候補通知(Nk{})に含まれる装置情報に基づいて、接続されるべき上位階層のノード装置32(図8に示す例に拠れば、ノード装置32d)に対して、図中点線で示す如く自己の装置情報を含む接続要求情報Srを送信して接続要求を行ない、これを受けたノード装置32dが、ノード装置32iに第2コンテンツデータを転送すべき状況と判断すれば通信経路33iを介したノード装置32iとノード装置32d間の接続を確立することができるようになっている。
【0088】
[4.本実施形態のコンテンツ配信システムの概要]
次いで、図9乃至図11を参照して本実施形態に係るコンテンツ配信システムSの概要等について説明する。図9に示すように、本実施形態のコンテンツ配信システムSは、コンテンツ分散保存システムS1とツリー型配信システムS2とを備え、それぞれに参加するノード装置1、32の他、コンテンツ分散保存システムS1のコンタクトノード紹介サーバ25、ツリー型配信システムS2の接続先紹介サーバ35、両方のシステムS1、S2において動作するコンテンツ投入サーバ26を有する。
【0089】
そして、コンテンツ分散保存システムS1及びツリー型配信システムS2を備えた上記コンテンツ配信システムSにおいて、ノード装置1がツリー型配信システムS2における放送局装置31として機能し、コンテンツ分散保存システムS1における第1コンテンツデータを保存しているノード装置1(コンテンツノード)から第1コンテンツデータを取得し、取得した第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信することを特徴としている。これは、後述するノード装置1における第1コンテンツデータ取得手段及び第2コンテンツデータ配信手段により行われるものである。
【0090】
そのため、放送局として機能するノード装置1は、配信する各第2コンテンツデータを常時保存しておく必要がなく、必要なタイミングで第2コンテンツデータに対応する第1コンテンツデータを取得し、不要であれば配信後に削除することができる。そのため、ノード装置1は、第2コンテンツデータを保存しておくために容量の大きい記録媒体を用意せずに済み、上述のように通常のノード装置1であっても放送局装置31として機能することが可能となる。
【0091】
ノード装置1が所望の第1コンテンツデータを取得する際には、図5を用いて説明し、また、図9にも示すように、ノード装置1は、所望の第1コンテンツデータに対応するコンテンツIDに最も近いノードIDを有するノード装置1(ルートノード)に向けてクエリを送信する。当該クエリが転送されて、当該第1コンテンツデータのルートノードが受信すると、ルートノードは、第1コンテンツデータを保存するコンテンツノードの所在の情報(IPアドレス等)をノード装置1に送信する。ノード装置1は、コンテンツノードの所在を知ると、当該コンテンツノードに対してコンテンツを要求する送信要求情報を送信する。送信要求情報を受信したコンテンツノードは、ノード装置1に第1コンテンツデータを送信する。
【0092】
コンテンツノードから第1コンテンツデータを受信したノード装置1は、図8を用いて説明し、また、図9にも示すように、当該第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32a、32bに配信する。当該ノード装置32a、32bは、当該第2コンテンツデータを再生し、そのツリーにおいて決められた配信先(トポロジー)に従い、下流の各ノード装置32c、32d、32e、32fへ受信した第2コンテンツデータをそれぞれ転送する。第2コンテンツデータを受信した各ノード装置32は同様に動作し、最も下流であり、送信先がないノード装置32g、32h、32i、32j、32k、32l、32mは、第2コンテンツデータを再生すると、そのまま転送せずにデータを消去する。
【0093】
このとき、ノード装置1は、ストリーミング方式で送信されてきた第1コンテンツデータを取得し、ストリーミング方式で第2コンテンツデータを他のノード装置32に配信することができる。この場合には、ノード装置1は、一の第1コンテンツデータを受信している途中であっても、これに対応する第2コンテンツデータを先に受信した部分から送信することができる。そのため、データを全て受信するまで待たずにツリー型配信システムにおいて第2コンテンツデータを送信することができ、速やかに第2コンテンツデータの配信を行うことができる。
【0094】
放送局装置31は、図10に示すように、どの第2コンテンツデータをどの時間にどのような順番で放送するか、についてリストにした放送プログラムファイル(図10(A)参照)をコンテンツ投入サーバ26から受信する(図10(B)参照)。この放送プログラムファイルは、本実施形態では、放送時間と、放送する順が決定された第2コンテンツデータのコンテンツID及び当該第2コンテンツデータの取得タイミングがリストになっているものとする。
【0095】
放送局装置31は、この放送プログラムファイルに従い、8時に放送を開始するコンテンツID:10000001の第2コンテンツデータについて、指定された7時50分に、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。続いて、次に放送するコンテンツID:10000002の第2コンテンツデータについて、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。さらに次に放送するコンテンツID:10000003の第2コンテンツデータについては、一つ目のコンテンツID:10000001の第2コンテンツデータを放送し終わったときに、対応する第1コンテンツデータをコンテンツ分散保存システムS1において取得するためのクエリを送信し、第1コンテンツデータを取得する。このようにして、放送局装置31は、放送する第2コンテンツデータに対応する第1コンテンツデータを、コンテンツ分散保存システムS1において順次取得し、不要なものは放送後に消去することができる。
【0096】
一方、放送局装置31は、放送時間が決まっているコンテンツについては、放送時間である8時になると取得したコンテンツID:10000001の第1コンテンツデータを第2コンテンツデータとして放送を開始し、また、コンテンツID:10000001の第2コンテンツデータの次にコンテンツID:10000002の第2コンテンツデータ等のように、順番が決まっている場合には、そのタイミングになると取得したコンテンツID:10000002の第1コンテンツデータを第2コンテンツデータとして放送を開始する。
【0097】
なお、図10(A)に示す放送プログラムファイルには、各第2コンテンツデータの取得タイミングを示したが、放送プログラムファイルには取得タイミングが示されておらず、放送局装置31となるノード装置1において、コンテンツの配信時間に間に合うように取得タイミングを設定してもよい。
【0098】
(取得した第1コンテンツデータの保存及び公開)
放送局装置31は、取得した第1コンテンツデータを消去することもできるが、記録媒体に保存することもできる。保存判断手段により取得した第1コンテンツデータを記録媒体に保存するか否かを判断することもできる。第1コンテンツデータを保存するか否かは、放送局装置31であるノード装置1のユーザの保存の希望や、放送局装置31のハードディスクにおける空き容量の程度等に応じて決定することができ、基準は特に限定されない。
【0099】
また、放送局装置31は、公開情報送信手段により記録媒体に保存した第1コンテンツデータについてコンテンツ公開メッセージを送信し、コンテンツノードとして機能することもでき、公開判断手段によりコンテンツ公開メッセージを送信するか否かを判断することもできる。コンテンツ公開メッセージを送信するか否かは、コンテンツ分散保存システムS1における第1コンテンツデータの複製の必要性や、当該ノード装置1自身の通信状況、ハードディスクの使用率等に応じて判断できる。
【0100】
記録媒体に保存するか否か、公開メッセージを送信するための条件等は、例えば、図11に示すようなコンテンツ投入サーバ26から送信される放送局設定情報に従って決定することができる。図11において、HD(ハードディスク)保存として記録媒体への保存の有無が記載されている。また、コンテンツ公開条件として、無又はHD(ハードディスク)の使用率が**%未満と記載されている。コンテンツ公開条件が無の場合には、HD保存も無であれば公開もせず、HD保存が有であれば公開する。コンテンツ公開条件が、HDの使用率が**%未満の記載の場合には、ハードディスクの使用率がその範囲であり、かつ、HD保存が有であれば、公開する。
【0101】
図11においては、複数の放送局装置31(チャンネル)があることを前提として、チャンネル毎、すなわち放送局装置31毎に、記録媒体に保存するか否か、公開メッセージを送信するための条件、が決められているが、これに限定されず、放送するコンテンツデータ毎に決められていてもよい。また、これらは、放送局装置31自身のポリシに従って決められていてもよい。
【0102】
(第1コンテンツデータから第2コンテンツデータへの変換)
また、放送局装置31は、第1コンテンツデータを第2コンテンツデータとして配信する際に、データをそのまま配信することもできるが、取得した第1コンテンツデータをツリー型配信システムS2において配信するための形式に変換して第2コンテンツデータとし、当該変換された後の第2コンテンツデータを配信することができる。データを変換することにより、ツリー型配信システムS2に合った形式でデータを送信することができ、データの形式があわないことによりノード装置32に負担がかかることが防止される。
【0103】
変換の仕方の一つとして、第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて第2コンテンツデータとすることができる。この場合、ツリー型配信システムS2においては、変換され、正規の第1コンテンツデータよりも質の低い第2コンテンツデータをコンテンツの紹介用として配信し、コンテンツ分散保存システムS1においては、正規の第1コンテンツデータを保存しておくことができる。そして、ツリー型配信システムS2の各ノード装置32において第2コンテンツデータを視聴して気に入った視聴者が、改めてコンテンツ分散保存システムS1において正規の第1コンテンツデータを取得することができる。
【0104】
具体的な変換の仕方としては、第1コンテンツデータに含まれる映像を部分的に間引く、第1コンテンツデータに含まれる映像の一部を選択する、第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことができる。
【0105】
第1コンテンツデータに含まれる映像を部分的に間引く場合には、映像の中の数分おきに1分の映像を削除するように間引いてもよいし、ダイジェストのようにコンテンツのポイントとなる部分以外を削除するように間引きしてもよく、具体的な手法は限定されない。第1コンテンツデータに含まれる映像の一部を選択する場合には、初めの5分のみを選択、初めと最後の3分ずつを選択、等のようにでき、映像のどの部分を選択するかやその長さは特に限定されない。第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する場合には、正規の映像若しくは画像の大きさの70%としたり、表示するディスプレイ等の表示部に対して80%とする等のようにでき、どの程度縮小するか、何を基準にするかは、特に限定されない。第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる場合には、映像若しくは画像の全体や端部分をモザイク化する等のようにでき、どのようにどの程度画質を劣化させるかは特に限定されない。第1コンテンツデータに含まれる音声の音質を劣化させる場合には、音質を粗くする、ノイズを混入させる、等のようにでき、どのようにどの程度音質を劣化させるかは特に限定されない。これらのデータの変換は、通常、データの容量が小さくなる。
【0106】
なお、変換の仕方は上述のものに限定されず、第1コンテンツデータに特典となる映像等のデータを付加する変換をして第2コンテンツデータとする等、データの容量が大きくなるような変換を行ってもよい。
【0107】
また、第2コンテンツデータを配信する際に、下流のノード装置32において第2コンテンツデータを適正なスピードで再生できるように、少なくとも再生スピードよりも速いスピードで、すなわち、送出速度をあわせて第2コンテンツデータを配信することが好ましい。また、送出速度等が所定の条件にあうように調整されて第2コンテンツデータが転送されるよう、条件を示した付加情報(後述するレート制御情報も含む)を第2コンテンツデータに付加することが好ましい。
【0108】
データを変換するか否か、また、どのように変換するかは、例えば、図11に示すようなコンテンツ投入サーバ26から送信される放送局設定情報に従って決定することができる。図11には、音質劣化、画面サイズ縮小、1分間のみ、の記載に留められているが、実際には、どのようにどの程度音質を劣化させるか、どの程度画面サイズを縮小するか、映像のどの部分の1分間を選択するか、の情報まで含まれている。図11においては、複数の放送局装置31(チャンネル)があることを前提として、チャンネル毎、すなわち放送局装置31毎にコンテンツデータの変換の有無及びどのように変換するか、が決められているが、これに限定されず、放送するコンテンツデータ毎に決められていてもよい。また、これらは、放送局装置31自身のポリシに従って決められていてもよい。
【0109】
(放送局装置となるノード装置)
本実施形態では、放送局装置31として機能するノード装置1は、接続先紹介サーバ35により決定される。具体的な方法としては、ネットワーク8上のサイト等において、放送局装置31として機能するノード装置1を募集し、放送局装置31として機能できるノード装置1は、登録を行っておく。そして、接続先紹介サーバ35において、新たなチャンネルを設けたい、または既にあるチャンネルと同様の放送ができる放送局装置31を設けたい、等により、新たな放送局装置31が必要になった場合に、接続先紹介サーバ35は、上記登録されているノード装置1から必要数のノード装置1を選択し、当該ノード装置1に放送局開始依頼メッセージを送信して、ノード装置1を放送局装置31として機能させる。放送局開始依頼メッセージを受信したノード装置1は、コンテンツ投入サーバ26から放送プログラムファイルを取得し、放送局装置31として放送を開始し、かつ、接続先紹介サーバ35には、当該ノード装置1が放送局装置31として機能する旨の登録を行う。
【0110】
一方、接続先紹介サーバ35において、所定のチャンネルの視聴者(下流のノード装置32)が少ないためチャンネル自体を停止したり、他の同じチャンネルの放送局装置31に流れを統合する等により、機能している放送局装置31が不要になった場合に、接続先紹介サーバ35は、当該放送局装置31としてのノード装置1に放送局停止依頼メッセージを送信して、ノード装置1の放送局装置31の機能を停止させる。放送局停止依頼メッセージを受信したノード装置1は、所有している放送プログラムファイルを削除し、放送を停止し、かつ、接続先紹介サーバ35には、当該ノード装置1が放送局装置31の機能を停止した旨の登録を行う(放送局の登録を解除する)。なお、接続先紹介サーバ35は、放送局停止依頼メッセージを送信する前に、当該ノード装置1の下流に接続される各ノード装置32に対して、他の放送局装置31又はその下流のノード装置32に接続するようにメッセージを送信し、放送局装置31の下流のノード装置32がなくなってから放送局停止メッセージを送信してもよい。
【0111】
なお、上記サイト等で放送局装置31として機能する旨の登録をしているノード装置1について、接続先紹介サーバ35が放送局開始メッセージを送信した際に、メッセージを送信できない(登録されたアドレスが間違っている、当該ノード装置1がネットワークにつながっていない等)場合には、接続先紹介サーバ35は、上記サイト等への登録を削除することとしてもよい。
【0112】
このように、接続先紹介サーバ35が放送局装置として機能するノード装置1を決定することにより、接続先紹介サーバ35を有する放送管理者が、需要に応じた数の放送局装置31を用意し、ツリー型配信システムS2における第2コンテンツデータの配信を管理することができる。
【0113】
(第2コンテンツデータを配信するタイミング等)
また、放送局装置31としてのノード装置1は、上述のように放送プログラムファイルをコンテンツ投入サーバ26から取得し、当該放送プログラムファイルに沿って放送(第2コンテンツデータの配信)を行うため、コンテンツ投入サーバ26が決定した第2コンテンツデータを、その順序又はタイミングで送信すればよい。そのため、ノード装置1は、第2コンテンツデータを配信する順序やタイミングを決定する必要がなく、負担が増加しない。本実施形態では、この放送プログラムファイルを用いた形態で説明するが、これに限定されない。例えば、放送局装置31としてのノード装置1が第2コンテンツデータを配信するタイミングに合わせて、コンテンツ投入サーバ26が「次はコンテンツID:********のコンテンツを配信せよ」という指示を当該ノード装置1に送信し、この指示がきたタイミングでノード装置1が当該コンテンツについてのクエリをコンテンツ分散保存システムS1において送信し、第1コンテンツデータを取得して、ツリー型配信システムS2において配信してもよい。
【0114】
[5.コンテンツ配信システムを構成する各装置の構成等]
図12乃至図15を参照して、コンテンツ配信システムSを構成するノード装置1、32、コンタクトノード紹介サーバ25、接続先紹介サーバ35、コンテンツ投入サーバ26の構成等について説明する。
【0115】
[5.1.ノード装置の構成等]
まず、図12を参照して、ノード装置1、32(いずれも同様であり、以下の説明においてはノード装置1とする。)の構成および機能について説明する。尚、各ノード装置1の構成は同じである。図12は、ノード装置1の概要構成例を示す図である。
【0116】
各ノード装置1は、図12に示すように、演算機能を有するCPU11と、受信されたコンテンツデータ等を一時蓄積するリングバッファメモリ121、オペレーティングシステム122、ストリーム制御プログラム123、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)等をデコード(データ伸張や復号化等)等する画面制御プログラム124、トポロジー制御プログラム125、コンテンツデータに含まれるエンコードされたオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する音楽デコーダ126及び放送コンテンツ制御プログラム127を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置12と、第1コンテンツデータ、コンテンツインデックス情報、上記DHTおよびプログラム等を記憶保存(格納)するためのHD等から構成された記録媒体としてのハードディスク装置13と、ハードディスク装置13や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ14と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ15と、当該ビデオチップ15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の内蔵ディスプレイ16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音源チップ17と、当該音源チップ17から出力されたオーディオ信号を音波として出力する内蔵スピーカ18と、外部のリモコン23等からの入力を受信し、ユーザからの指示を受け付け当該指示に応じた指示信号をCPU11に対して与える入力部としての赤外線ポート(他にも、例えば、キーボード、マウス、或いは、操作パネル等が可)19と、ネットワーク8を通じてルータ24等を介し、他のノード装置1との間の情報の通信制御を行うためのネットワークインターフェイス21と、を備えて構成され、CPU11、主記憶装置12、周辺機器制御チップ14、ビデオチップ15、音源チップ17及びネットワークインターフェイス21はシステムバス22を介して相互に接続されている。ネットワークインターフェイス21は、ネットワーク8を介して外部のルータ24等と接続されている。赤外線ポート19は、ユーザ入力用リモコン23からの指示信号を受信し、周辺機器制御チップ14に当該信号を伝達する。
【0117】
そして、CPU11は主記憶装置12等に記憶された各種プログラムを実行することにより、ノード装置1全体を統括制御するようになっており、また、リモコン23等の入力部からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。ノード装置1は、実行されるプログラムに応じて、放送局装置31、情報を送信(転送)するノード装置、情報を受信するノード装置等として機能する。また、ノード装置1のCPU11は、本発明の第1コンテンツデータ取得手段、第2コンテンツデータ配信手段、保存判断手段、公開情報送信手段、要求受信手段(コンテンツ要求)、第1コンテンツデータ送信手段、公開判断手段、検索手段(クエリ)、要求送信手段(コンテンツ要求)、変換手段、コンテンツ判断手段、として機能する。
【0118】
[5.2.コンタクトノード紹介サーバの構成等]
次に、図13を参照して、コンタクトノード紹介サーバ25の構成および機能について説明する。図13は、コンタクトノード紹介サーバ25の概要構成例を示す図である。
【0119】
コンタクトノード紹介サーバ25は、図13に示すように、演算機能を有するCPU251と、端末管理プログラム2521、オペレーティングシステム2522、コンタクトノード紹介プログラム2523等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置252と、端末管理データベース及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置253と、ハードディスク装置253や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ254と、オペレーティングシステム2522のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ255と、当該ビデオチップ255から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ2561と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ254を介してCPU251に与える入力部としてのキーボード2562及びマウス2563と、ネットワーク8を通じてルータ259等を介し、他のノード装置1との間の情報の通信制御を行うためのネットワークインターフェイス257と、を備えて構成され、CPU251、主記憶装置252、周辺機器制御チップ254、ビデオチップ255及びネットワークインターフェイス257はシステムバス258を介して相互に接続されている。ビデオチップ255は、外部のディスプレイ2561と接続されており、周辺機器制御チップ254は、外部のキーボード2562及びマウス2563と接続されている。ネットワークインターフェイス257は、ネットワーク8を介して外部のルータ259等と接続されている。
【0120】
そして、CPU251は主記憶装置252等に記憶された各種プログラムを実行することにより、コンタクトノード紹介サーバ25全体を統括制御するようになっている。具体的に、CPU251は、キーボード2562又はマウス2563等の入力部からの指示信号に応じて、端末管理プログラムにおける条件等を変更したり、コンタクトノード紹介プログラムにおけるポリシ等を変更することができる。また、CPU251は、ネットワーク8やネットワークインターフェイス257を通じて受信した参加ノード装置1からのコンタクトノード紹介要求メッセージに対して、コンタクトノード紹介プログラム2523を用いてコンタクトノードを決定し、当該コンタクトノードの所在情報(IPアドレス等)をコンタクトノード情報として返信する。
【0121】
[5.3.接続先紹介サーバの構成等]
次に、図14を参照して、接続先紹介サーバ35の構成および機能について説明する。図14は、接続先紹介サーバ35の概要構成例を示す図である。
【0122】
接続先紹介サーバ35は、図14に示すように、演算機能を有するCPU351と、端末管理プログラム3521、オペレーティングシステム3522、トポロジー制御プログラム3523、接続先紹介プログラム3524等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置352と、トポロジーデータベース、端末管理データベース及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置353と、ハードディスク装置353や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ354と、オペレーティングシステム3522のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ355と、当該ビデオチップ355から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ3561と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ354を介してCPU351に与える入力部としてのキーボード3562及びマウス3563と、ネットワーク8を通じてルータ359等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス357と、を備えて構成され、CPU351、主記憶装置352、周辺機器制御チップ354、ビデオチップ355及びネットワークインターフェイス357はシステムバス358を介して相互に接続されている。ビデオチップ355は、外部のディスプレイ3561と接続されており、周辺機器制御チップ354は、外部のキーボード3562及びマウス3563と接続されている。ネットワークインターフェイス357は、ネットワーク8を介して外部のルータ359等と接続されている。
【0123】
そして、CPU351は主記憶装置352等に記憶された各種プログラムを実行することにより、接続先紹介サーバ35全体を統括制御するようになっている。具体的に、CPU351は、キーボード3562又はマウス3563等の入力部からの指示信号に応じて、端末管理プログラムにおける条件等を変更したり、トポロジー制御プログラムや接続先紹介プログラムにおけるポリシ等を変更することができる。また、CPU351は、ネットワーク8やネットワークインターフェイス357を通じて受信したノード装置32からの接続先候補要求Scに対して、トポロジー制御プログラム3523及び接続先紹介プログラム3524を用いて接続先候補を決定し、接続先候補通知Nk{}を返信する。
【0124】
[5.4.コンテンツ投入サーバの構成等]
次に、図15を参照して、コンテンツ投入サーバ26の構成および機能について説明する。図15は、コンテンツ投入サーバ26の概要構成例を示す図である。
【0125】
コンテンツ投入サーバ26は、図15に示すように、演算機能を有するCPU261と、カタログ管理プログラム2621、オペレーティングシステム2622、コンテンツ制御プログラム2623等を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置262と、放送プログラムファイル、カタログリスト、コンテンツ及びプログラム等を記憶保存(格納)するためのHD等から構成されたハードディスク装置263と、ハードディスク装置263や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ264と、オペレーティングシステム2622のGUI(graphical user interface)として必要な文字や図等の画像を表示するためにビデオ信号を出力するビデオチップ265と、当該ビデオチップ265から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ2661と、ユーザからの指示を受け付け当該指示に応じた指示信号を、周辺機器制御チップ264を介してCPU261に与える入力部としてのキーボード2662及びマウス2663と、ネットワーク8を通じてルータ269等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス267と、を備えて構成され、CPU261、主記憶装置262、周辺機器制御チップ264、ビデオチップ265及びネットワークインターフェイス267はシステムバス268を介して相互に接続されている。ビデオチップ265は、外部のディスプレイ2661と接続されており、周辺機器制御チップ264は、外部のキーボード2662及びマウス2663と接続されている。ネットワークインターフェイス267は、ネットワーク8を介して外部のルータ269等と接続されている。
【0126】
そして、CPU261は主記憶装置262等に記憶された各種プログラムを実行することにより、コンテンツ投入サーバ26全体を統括制御するようになっている。具体的に、CPU261は、キーボード2662又はマウス2663等の入力部からの指示信号に応じて、カタログ管理プログラムにおける条件等を変更したり、コンテンツ制御プログラムにおけるポリシ等を変更することができる。また、CPU261は、ネットワーク8やネットワークインターフェイス267を通じて、放送局装置31に放送局設定情報や放送プログラムファイルを送信したり、受信したノード装置1からのカタログリスト要求に対してカタログリストの情報を送信したり、コンテンツ分散保存システムS1において分散保存されるコンテンツを所望のノード装置1に送信(投入)したりする。
【0127】
なお、カタログリストは、第1コンテンツデータの上述した補助情報がリストとなっているが、これに加えて、コンテンツIDが対応付けられていてもよい。ノード装置1においては、カタログリストを取得すると、カタログリストからコンテンツを指定して、その都度コンテンツIDを生成してクエリを送信してもよいし、カタログリストから指定したコンテンツに対応するコンテンツIDを取得してもよい。
【0128】
また、上述した放送プログラムファイルについて、コンテンツ投入サーバ26は、チャンネル毎の放送プログラムファイルを保存しているものとする。また、コンテンツ投入サーバ26は、上述の放送局設定情報を所持しており、放送プログラムファイルを放送局として機能するノード装置1に送信する際に、そのチャンネルに対応する放送局設定情報を付加して送信することができる。これらの放送プログラムファイル及び放送局設定情報は、放送管理者の設定等に従って作成される。
【0129】
[6.本実施形態のコンテンツ配信システムにおける動作]
次に、本実施形態のコンテンツ配信システムSにおける各装置の動作について図16乃至図26を用いて説明する。
【0130】
[6.1.ノード装置の動作]
まず、図16乃至図23を参照して、本実施形態のノード装置1の動作について説明する。なお、図16においては、主にツリー型配信システムS2に参加している場合の動作を示し、図17においては、主にコンテンツ分散保存システムS1に参加している場合の動作を示し、図18においては、主に本発明の特徴である取得した第1コンテンツデータを第2コンテンツデータ(放送コンテンツデータ)としてツリー型配信システムS2において配信する場合の動作を示し、図19においては、主に放送局装置31として機能する場合の動作を示す。図20においては、ステップS3のシステム参加処理を示し、図21においては、ステップS26の投入コンテンツ受信処理を示し、図22においては、ステップS45のコンテンツ検索処理を示し、図23においては、ステップS61のコンテンツデータ取得処理を示す。
【0131】
ノード装置1のCPU11は、ユーザ入力用リモコン23等により自ノード装置1に電源が入れられたことを認識すると、その処理を開始する(スタート)。
【0132】
処理が開始されると、CPU11は、当該ノード装置1のプログラム等の各種設定を初期化し(ステップS1)、接続先紹介サーバ35へツリー型配信システムS2への参加通知を送信する(ステップS2)。次いで、CPU11は、コンテンツ分散保存システムS1への参加処理を行う(ステップS3)。ステップS3のコンテンツ分散保存システムS1への参加処理については、図20を参照して後述する。
【0133】
次いで、CPU11は、ユーザ入力用リモコン23等からユーザからのチャンネル選択指示があるか否かを判断する(ステップS4)。ユーザからのチャンネル選択指示がある場合には(ステップS4;YES)、CPU11は、上流側に接続されたノード装置1(上流ノード装置1)があるか否かを判断する(ステップS5)。上流ノード装置1がある場合には(ステップS5;YES)、CPU11は、現在の上流ノード装置1に放送コンテンツデータの送信(放送コンテンツストリーム)停止を要求する旨の情報を送信する(ステップS6)。次いで、CPU11は、接続先紹介サーバ35へ、選択されたチャンネル(放送局装置)の放送を視聴するために、接続先となるノード装置1の候補を要求する接続先候補要求Scを送信する(ステップS7)。また、ステップS5において、上流ノード装置1がない場合には(ステップS5;NO)、ステップS6を経ずにステップS7に進む。
【0134】
次いで、CPU11は、電源オフか否かを判断し(ステップS8)、電源オフでない場合には(ステップS8;NO)、ステップS4へ戻る。
【0135】
ステップS4において、ユーザからのチャンネル選択指示がない場合には(ステップS4;NO)、CPU11は、接続先紹介サーバ35から接続先となる上流ノード装置1の候補を受信したか否かを判断する(ステップS9)。上述のステップS7に対して、接続先紹介サーバ35から上流ノード装置1の候補を受信した場合には(ステップS9;YES)、CPU11は、取得した上流ノード装置1の候補の中から、上流ノード装置1を一つ選択する(ステップS10)。次いで、CPU11は、選択した上流ノード装置1の下流に接続するノード装置1(下流ノード装置1)として接続し(ステップS11)、選択した上流ノード装置1へ放送コンテンツデータの配信開始を要求する旨の情報を送信する(ステップS12)。次いで、CPU11は、ツリー型トポロジーへの参加報告を接続先紹介サーバ35へ送信し(ステップS13)、ステップS8へ戻る。
【0136】
ステップS9において、接続先紹介サーバ35から上流ノード装置1の候補を受信していない場合には(ステップS9;NO)、CPU11は、上流ノード装置1から放送コンテンツデータのパケットを受信したか否かを判断する(ステップS14)。上流ノード装置1から放送コンテンツデータのパケットを受信した場合には(ステップS14;YES)、CPU11は、下流ノード装置1へ当該パケットを順に転送する(ステップS15)。このとき、受信した放送コンテンツデータのパケットはリングバッファ121に順次記憶されていき、次いで、CPU11は、リングバッファ121からパケットを取得して放送コンテンツデータを再生し(ステップS16)、ステップS8へ戻る。
【0137】
ステップS14において、上流ノード装置1から放送コンテンツデータのパケットを受信しない場合には(ステップS14;NO)、CPU11は、下流ノード装置となるノード装置1から放送コンテンツデータの送信開始要求又は送信停止要求を受信したか否かを判断する(ステップS17)。放送コンテンツデータの送信開始要求又は送信停止要求を受信した場合には(ステップS17;YES)、CPU11は、その要求に応じて、放送コンテンツデータの送信開始又は送信停止を行い(ステップS18)、ステップS8に戻る。
【0138】
ステップS17において、放送コンテンツデータの送信開始要求又は送信停止要求を受信していない場合には(ステップS17;NO)、図17へ移り、CPU11は、コンテンツ公開メッセージを受信したか否かを判断する(ステップS19)。コンテンツ公開メッセージを受信した場合には(ステップS19;YES)、CPU11は、当該第1コンテンツデータのコンテンツIDやIPアドレス等の所在情報をコンテンツインデックス情報として登録する(ステップS20)。次いで、CPU11は、このコンテンツ公開メッセージについて、当該ノード装置自身がルートノードか否かを判断する(ステップS21)。自身がルートノードでない場合には(ステップS21;NO)、CPU11は、次のノード装置1に受信したメッセージ(ここではコンテンツ公開メッセージ)を転送し(ステップS22)、ステップS8に戻る。自身がルートノードである場合には(ステップS21;YES)、そのまま受信したメッセージ(ここではコンテンツ公開メッセージ)を転送せずに、ステップS8に戻る。
【0139】
ステップS19において、コンテンツ公開メッセージを受信していない場合には(ステップS19;NO)、CPU11は、コンテンツ削除メッセージを受信したか否かを判断する(ステップS23)。コンテンツ削除メッセージを受信した場合には(ステップS23;YES)、CPU11は、コンテンツインデックス情報に当該コンテンツ削除メッセージに対応する第1コンテンツデータの情報が記憶されている場合には、コンテンツインデックス情報から当該第1コンテンツデータのコンテンツノードの所在情報等を削除し(ステップS24)、上記ステップS21に進み、自身がルートノードでなければ当該メッセージを次のノード装置に転送して(ステップS21、22)、ステップ8に戻る。
【0140】
ステップS23において、コンテンツ削除メッセージを受信していない場合には(ステップS23;NO)、CPU11は、コンテンツ投入サーバ26から投入コンテンツデータを受信したか否かを判断する(ステップS25)。コンテンツ投入サーバ26から投入コンテンツデータを受信した場合には(ステップS25;YES)、CPU11は、投入コンテンツ受信処理を行い(ステップS26)、ステップS8に戻る。なお、投入コンテンツ受信処理は、図21を用いて後述する。
【0141】
ステップS25において、コンテンツ投入サーバ26から投入コンテンツデータを受信していない場合には(ステップS25;NO)、要求受信手段としてのCPU11は、他のノード装置1から第1コンテンツデータについてコンテンツの送信要求情報を受信したか否かを判断する(ステップS27)。コンテンツの送信要求情報を受信した場合には(ステップS27;YES)、第1コンテンツデータ送信手段としてのCPU11は、該当する第1コンテンツデータを要求したノード装置1に配信し(ステップS28)、ステップS8に戻る。このとき第1コンテンツデータには、レート制御情報が含まれているものとし、このレート制御情報に従って第1コンテンツデータが放送コンテンツデータとして配信される際の配信レートが決められる。なお、このレート制御情報は、コンテンツ毎に異なるものである。後述するステップにおいては記載しない場合もあるが、送信される第2コンテンツデータにもレート制御情報が含まれている。
【0142】
ステップS27において、コンテンツの送信要求情報を受信していない場合には(ステップS27;NO)、図18に移り、ノード装置1は、本発明における配信元のノード装置、本実施形態における放送局装置31として機能する。第1コンテンツデータ取得手段としてのCPU11は、後述するステップS61の放送コンテンツデータ取得処理の結果、放送コンテンツデータ用の第1コンテンツデータのパケットを受信したか否かを判断する(ステップS29)。放送コンテンツデータのパケットを受信した場合には(ステップS29;YES)、保存判断手段としてのCPU11は、ハードディスク装置13におけるHD(ハードディスク)に当該放送コンテンツデータを保存するか否かを判断する(ステップS30)。この放送コンテンツデータを保存するか否か、また、後述するデータを変換するか否か、保存したコンテンツを公開するか否か、の判断については、ノード装置1のユーザ等が設定した条件や、上述した放送局設定情報(図11参照)、放送コンテンツデータ毎に設定された情報等に因る。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、放送コンテンツデータを保存すると判断する。
【0143】
ハードディスクに放送コンテンツデータを保存する場合には(ステップS30;YES)、CPU11は、受信した放送コンテンツデータのパケットを順次ハードディスク(本発明における記録媒体)に保存していく(ステップS31)。次いで、CPU11は、一つの放送コンテンツデータについてのパケットが全て揃っているか否かを判断し(ステップS32)、放送コンテンツデータのパケットが全て揃っていない場合には(ステップS32;NO)、後述するステップS37に進む。なお、放送コンテンツデータが全て揃うまでは、ステップS32;NO、S37〜S40、S8;NO、S4;NO、S9;NO、S14;NO、S17;NO、S19;NO、S23;NO、S25;NO、S27;NO、S29;YES、S30;YES、S31を繰り返し、放送コンテンツデータが揃うと、後述するように、必要に応じて公開メッセージを送信する。
【0144】
ステップS32において、放送コンテンツデータのパケットが全て揃った場合には(ステップS32;YES)、公開判断手段としてのCPU11は、保存したコンテンツデータを第1コンテンツデータとして公開するか否かを判断する(ステップS33)。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、公開条件が無いため、放送コンテンツデータを公開すると判断する。保存したコンテンツデータを第1コンテンツデータとして公開する場合には(ステップS33;YES)、CPU11は、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS34)。次いで、公開情報送信手段としてのCPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS35)。当該ノード装置1自身がルートノードでない場合には(ステップS35;NO)、公開情報送信手段としてのCPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS36)、ステップS37へ進む。一方、ステップS35において、当該ノード装置1自身がルートノードである場合(ステップS35;YES)、及び上述したステップS33において、保存したコンテンツデータを第1コンテンツデータとして公開しない場合は(ステップS33;NO)、処理を行わずにステップS37へ進む。
【0145】
CPU11は、放送コンテンツデータのパケット生成処理を開始する(ステップS37)。次いで、CPU11は、放送コンテンツデータを変換するか否かを判断し(ステップS38)、放送コンテンツデータを変換する場合には(ステップS38;YES)、変換手段としてのCPU11は、所定の方法で放送コンテンツデータを変換し(ステップS39)、第2コンテンツデータ配信手段としてのCPU11は、下流ノード装置1に変換した放送コンテンツデータのパケットの送信を開始する(ステップS40)。ノード装置1が、図11におけるチャンネル番号「3」の放送局装置として機能している場合には、放送コンテンツデータを所定の一分間のデータに変換して送信する。また、ステップS38において、放送コンテンツデータを変換しない場合には(ステップS38;NO)、第2コンテンツデータ配信手段としてのCPU11は、取得した第1コンテンツデータのパケットをそのまま放送コンテンツデータとして下流ノード装置1に送信(配信)を開始する(ステップS40)。なお、ステップS40において、送出速度をあわせたり、放送コンテンツデータを放送するタイミングまで待って放送を開始したり、上述の付加情報を付す等の変換を行うこともできる。
【0146】
また、ステップS30において、ハードディスクに放送コンテンツデータを保存しない場合には(ステップS30;NO)、CPU11は、リングバッファ121に第1コンテンツデータのパケットを一時的に記憶し、放送コンテンツデータを変換するか否かを判断する(ステップS41)。放送コンテンツデータを変換する場合には(ステップS41;YES)、変換手段としてのCPU11は、所定の方法で放送コンテンツデータを変換し(ステップS42)、下流ノード装置1に変換した放送コンテンツデータのパケットの送信を開始する(ステップS43)。また、ステップS41において、放送コンテンツデータを変換しない場合には(ステップS41;NO)、第2コンテンツデータ配信手段としてのCPU11は、取得した第1コンテンツデータをそのまま放送コンテンツデータとして下流ノード装置1に送信する(ステップS43)。次いで、ステップS8に戻る。このステップS41からS43は、上述のステップS38からS40と同様である。
【0147】
ステップS29において、放送コンテンツデータのパケットを受信しない場合には(ステップS29;NO)、CPU11は、コンテンツ検索メッセージ(クエリ)を受信したか否かを判断する(ステップS44)。クエリを受信した場合には(ステップS44;YES)、CPU11は、コンテンツ検索処理を行い(ステップS45)、ステップS8に戻る。なお、ステップS45のコンテンツ検索処理については、図22を用いて後述する。
【0148】
ステップS44において、クエリを受信していない場合には(ステップS44;NO)、CPU11は、S45のコンテンツ検索処理の結果、コンテンツノード情報(コンテンツノードのIPアドレス等の所在情報)を受信したか否かを判断する(ステップS46)。コンテンツノード情報を受信した場合には(ステップS46;YES)、要求送信手段としてのCPU11は、コンテンツノードへコンテンツの送信要求情報を送信する(ステップS47)。
【0149】
ステップS46において、コンテンツノード情報を受信していない場合には(ステップS46;NO)、図19に移り、CPU11は、コンテンツ分散保存システムS1への参加メッセージを受信したか否かを判断する(ステップS48)。参加メッセージを受信した場合には(ステップS48;YES)、参加メッセージ中に参加メッセージの送信元のノード装置(参加ノード装置)の所在情報及びテーブル情報から送信すべき段の情報が含まれているため、CPU11は、所持しているテーブル情報から該当する段の情報を参加ノード装置に送信する(ステップS49)。次いで、CPU11は、当該ノード装置1自身が参加ノードのノードIDのルートノードか否かを判断する(ステップS50)。当該ノード装置1自身がルートノードでない場合には(ステップS50;NO)、CPU11は、次のノード装置に参加メッセージを転送し(ステップS51)、ステップS8に戻る。また、当該ノード装置1自身がルートノードである場合には(ステップS50;YES)、参加メッセージを転送することなくステップS8に戻る。
【0150】
ステップS48において、参加メッセージを受信していない場合には(ステップS48;NO)、接続先紹介サーバ35から放送局開始依頼メッセージを受信したか否かを判断する(ステップS52)。放送局開始依頼メッセージを受信した場合には(ステップS52;YES)、CPU11は、コンテンツ投入サーバ26から放送するコンテンツやその順番、時間帯等が示された放送プログラムファイルを取得し、放送プログラムファイルに沿って放送を開始する(ステップS53)。次いで、CPU11は、接続先紹介サーバ35へ放送局装置として機能する旨の登録を行い(ステップS54)、ステップS8に戻る。
【0151】
ステップS52において、放送局開始依頼メッセージを受信していない場合には(ステップS52;NO)、CPU11は、接続先紹介サーバ35から放送局停止依頼メッセージを受信したか否かを判断する(ステップS55)。放送局停止依頼メッセージを受信した場合には(ステップS55;YES)、CPU11は、現在の放送に用いている放送プログラムファイルを削除し、放送を停止する(ステップS56)。次いで、CPU11は、接続先紹介サーバ35へ放送局装置として機能していたものを解除する旨の登録を行い(ステップS57)、ステップS8に戻る。
【0152】
ステップS55において、放送局停止依頼メッセージを受信していない場合には(ステップS55;NO)、CPU11は、他のノード装置1からツリー型配信システムS2における下流に接続したい旨の接続開設又は既にある接続を切断する旨の接続切断の要求があるか否かを判断する(ステップS58)。他のノード装置1からの接続開設又は接続切断の要求がある場合には(ステップS58;YES)、CPU11は、その要求に従い、他のノード装置1と接続を開設し、又は接続を切断して(ステップS59)、ステップS8に戻る。ステップS59において他のノード装置1と接続を開設した場合には、続いて放送を開始することとなるため、放送コンテンツデータを送信する準備をする。
【0153】
ステップS58において、他のノード装置1からの接続開設又は接続切断の要求がない場合には(ステップS58;NO)、CPU11は、放送プログラムファイル(図10(A)参照)に基づき、放送コンテンツデータを取得するタイミングになったか否かを判断する(ステップS60)。放送コンテンツデータを取得するタイミングになった場合には(ステップS60;YES)、CPU11は、放送コンテンツ取得処理を行い(ステップS61)、ステップS8に戻る。なお、ステップS61における放送コンテンツ取得処理は、図23を用いて後述する。
【0154】
ここで、ステップS8において、電源が切られた場合には、電源オフであると判断し(ステップS8;YES)、ノード装置1における処理を終了する(エンド)。なお、図16乃至図19においてフローチャートが接続されている部分には、接続子1〜6を用いている。
【0155】
次いで、ステップS3のコンテンツ分散保存システムS1への参加処理について、図20を参照して説明する。
【0156】
コンテンツ分散保存システムS1への参加処理が始まると(スタート:ステップS3)、ノード装置1のCPU11は、コンタクトノード紹介サーバ25に対し、コンタクトノード紹介要求メッセージを送信する(ステップS71)。次いで、CPU11は、コンタクトノード紹介サーバ25からコンタクトノード情報を取得し(ステップS72)、コンタクトノードへ参加メッセージを送信する(ステップS73)。次いで、CPU11は、コンタクトノードや、参加メッセージが転送された各ノード装置1から、テーブル情報を受信する(ステップS74)。
【0157】
次いで、CPU11は、受信したテーブル情報に基づいて所持しているルーティングテーブルを更新し(ステップS75)、コンテンツ投入サーバ26へカタログリストを要求する(ステップS76)。次いで、CPU11は、コンテンツ投入サーバ26からカタログリストを受信し(ステップS77)、元の図16におけるステップS3へ戻る(リターン)。このような参加処理を行っているとき、ノード装置1は、参加ノードとして機能している。
【0158】
次いで、ステップS26の投入コンテンツ受信処理について、図21を参照して説明する。
【0159】
投入コンテンツ受信処理が始まると(スタート:ステップS26)、ノード装置1のCPU11は、受信した第1コンテンツデータをハードディスク装置13におけるHDに保存する(ステップS81)。次いで、CPU11は、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS82)。次いで、CPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS83)。当該ノード装置1自身がルートノードでない場合には(ステップS83;NO)、CPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS84)、元の図17におけるステップS26へ戻る(リターン)。一方、当該ノード装置1自身がルートノードである場合(ステップS83;YES)には、処理を行わずに、元の図17におけるステップS26へ戻る(リターン)。このような投入コンテンツ受信処理を行ったノード装置1は、コンテンツノードとして機能することとなる。
【0160】
次いで、ステップS45のコンテンツ検索処理について、図22を参照して説明する。
【0161】
コンテンツ検索処理が始まると(スタート:ステップS45)、ノード装置1のCPU11は、コンテンツ検索メッセージ(クエリ)から検索されている第1コンテンツデータのコンテンツIDを取得する(ステップS91)。次いで、CPU11は、所持するコンテンツインデックス情報に当該コンテンツIDが存在するか否かを判断する(ステップS92)。コンテンツインデックス情報に当該コンテンツIDが存在する場合には(ステップS92;YES)、CPU11は、コンテンツインデックス情報から当該コンテンツIDに対応するコンテンツノード情報を取得し(ステップS93)、このコンテンツノード情報をコンテンツ検索メッセージの送信元のノード装置に送信する(ステップS94)。一方、ステップS92において、コンテンツインデックス情報に当該コンテンツIDが存在しない場合には(ステップS92;NO)、他のノード装置1へコンテンツ検索メッセージを転送する(ステップS95)。これらのステップS94、S95が終わると、元の図18におけるステップS45へ戻る(リターン)。
【0162】
次いで、ステップS61の放送コンテンツデータ取得処理について、図23を参照して説明する。
【0163】
放送コンテンツデータ取得処理が始まると(スタート:ステップS61)、ノード装置1のCPU11は、放送プログラムファイルから放送コンテンツデータのコンテンツIDを取得し(ステップS101)、当該コンテンツIDに該当するコンテンツデータを保存しているか否かを判断する(ステップS102)。該当コンテンツデータを保存していない場合には(ステップS102;NO)、所持するコンテンツインデックス情報に当該コンテンツIDが存在するか否かを判断する(ステップS103)。所持するコンテンツインデックス情報に当該コンテンツIDが存在する場合には(ステップS103;YES)、コンテンツインデックス情報からコンテンツノード情報を取得し(ステップS104)、要求送信手段としてのCPU11は、コンテンツノードへコンテンツの送信要求情報を送信する(ステップS105)。一方、ステップS103において、コンテンツインデックス情報に当該コンテンツIDが存在しない場合には(ステップS103;NO)、検索手段としてのCPU11は、他のノード装置1へコンテンツIDを付加したコンテンツ検索メッセージを送信する(ステップS106)。これらのステップS105、S106が終わると、元の図19におけるステップS61から図16におけるステップS8へ戻る(リターン)。なお、ステップS102において、該当コンテンツデータを保存している場合には(ステップS102;YES)、コンテンツデータを取得する必要がないため、上記処理をすることなくステップS41、S42、S43と同様の処理を行って、下流ノード装置へ放送コンテンツパケットの送信を開始し、元の図19におけるステップS61から図16におけるステップS8へ戻る(リターン)。
【0164】
[6.2.コンタクトノード紹介サーバの動作]
次いで、図24を参照して、本実施形態のコンタクトノード紹介サーバ25の動作について説明する。
【0165】
コンタクトノード紹介サーバ25のCPU251は、ネットワークインターフェイス257を介した外部からの指示又はキーボード2562等の入力部からの入力等により、コンタクトノード紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0166】
処理が開始されると、CPU251は、当該コンタクトノード紹介サーバ25のプログラム等の各種設定を初期化し(ステップS111)、ノード装置1からコンタクトノード紹介要求メッセージがあるか否かを判断する(ステップS112)。コンタクトノード紹介要求メッセージがある場合(ステップS112;YES)、CPU251は、コンタクトノード紹介要求メッセージの送信元のノード装置1に対し、候補となるコンタクトノードのノード情報(IPアドレス等の所在情報)を送信し(ステップS113)、ステップS114に進む。また、ステップS112において、コンタクトノード紹介要求メッセージがない場合には、ステップS113を経ずにステップS114に進む。次いで、CPU251は、コンタクトノード紹介サーバサービスを終了するか否か、キーボード2562等からの入力やネットワークインターフェイス257を介した指示等により判断する(ステップS114)。コンタクトノード紹介サーバサービスを終了しない場合には(ステップS114;NO)、ステップS112に戻り、コンタクトノード紹介サーバサービスを終了する場合には(ステップS114;YES)、処理を終了する(エンド)。
【0167】
[6.3.接続先紹介サーバの動作]
次いで、図25を参照して、本実施形態の接続先紹介サーバ35の動作について説明する。
【0168】
接続先紹介サーバ35のCPU351は、ネットワークインターフェイス357を介した外部からの指示又はキーボード3562等の入力部からの入力等により、接続先紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0169】
処理が開始されると、CPU351は、当該接続先紹介サーバ35のプログラム等の各種設定を初期化し(ステップS121)、ノード装置1から参加通知があるか否かを判断する(ステップS122)。参加通知がある場合には(ステップS122;YES)、CPU351は、参加通知の送信元のノード装置の所在情報を端末管理データベースに登録し(ステップS123)、接続先紹介サーバサービスを終了するか否か、キーボード3562等からの入力やネットワークインターフェイス357を介した指示等により判断する(ステップS124)。コンタクトノード紹介サーバサービスを終了しない場合には(ステップS124;NO)、ステップS122に戻る。
【0170】
ステップS122において、参加通知がない場合には(ステップS122;NO)、CPU351は、放送局装置から登録要求又は解除要求があるか否かを判断する(ステップS125)。放送局装置の登録要求又は解除要求がある場合には(ステップS125;YES)、CPU351は、当該要求に応じて、放送局装置の所在情報を端末管理データベースに登録し、又は解除する(ステップS126)。次いで、CPU351は、当該放送局装置のチャンネル情報をトポロジーデータベースに登録し又は解除し(ステップS127)、ステップS124に戻る。
【0171】
ステップS125において、放送局装置の登録要求又は解除要求がない場合には(ステップS125;NO)、CPU351は、ノード装置1から接続先紹介要求Scがあるか否かを判断する(ステップS128)。接続先紹介要求Scがある場合には(ステップS128;YES)、CPU351は、トポロジーデータベースから接続先候補となるノード装置1の所在情報を取得し(ステップS129)、要求元のノード装置に接続先の候補となるノード装置1の所在情報を接続先候補通知Nk{}として送信し(ステップS130)、ステップS124に戻る。
【0172】
ステップS128において、接続先紹介要求Scがない場合には(ステップS128;NO)、CPU351は、放送管理者の端末装置(図示しない)又はキーボード3562等の入力部から、放送局開設要求があるか否かを判断する(ステップS131)。放送局開設要求がある場合には(ステップS131;YES)、CPU351は、端末管理データベースから放送局装置31となるノード装置1を選択し(ステップS132)、選択したノード装置1へ放送局開始依頼メッセージを送信し(ステップS133)、ステップS124へ戻る。なお、図25には示さないが、放送管理者から放送局を停止すべき旨の要求がある場合には、同様に、放送局装置31として機能しているノード装置に対して、放送局停止依頼メッセージを送信する。
【0173】
ステップS131において、放送局開設要求がない場合には(ステップS131;NO)、CPU351は、ノード装置1からトポロジー参加報告があるか否かを判断する(ステップS134)。ノード装置1からトポロジー参加報告がある場合には(ステップS134;YES)、CPU351は、当該ノード装置1がトポロジーに参加したことによるトポロジーの変動に関する情報をトポロジーのデータベースへ登録し(ステップS135)、ステップS124へ戻る。また、ステップS134において、ノード装置1からトポロジー参加報告がない場合にも(ステップS134;NO)、ステップS124へ戻る。
【0174】
ここで、ステップS124において、コンタクトノード紹介サーバサービスを終了する場合には(ステップS124;YES)、処理を終了する(エンド)。
【0175】
[6.4.コンテンツ投入サーバの動作]
次いで、図26を参照して、本実施形態のコンテンツ投入サーバ26の動作について説明する。
【0176】
コンテンツ投入サーバ26のCPU261は、ネットワークインターフェイス267を介した外部からの指示又はキーボード2662等の入力部からの入力等により、接続先紹介サービスを開始することを認識すると、その処理を開始する(スタート)。
【0177】
処理が開始されると、CPU261は、当該コンテンツ投入サーバ26のプログラム等の各種設定を初期化し(ステップS141)、コンテンツ分散保存システムS1の管理者の装置等からコンテンツ投入指示があるか否かを判断する(ステップS142)。コンテンツ投入指示がある場合には(ステップS142;YES)、CPU261は、投入される新たな第1コンテンツデータに対応するコンテンツIDの管理テーブルを更新し(ステップS143)、カタログリストにおける新たな第1コンテンツデータに関する情報を更新し(ステップS144)、新たな第1コンテンツデータをコンテンツ分散保存システムS1におけるランダムに決めた一又は複数のノード装置1に配信する(ステップS145)。次いで、CPU261は、コンテンツ投入サーバサービスを終了するか否か、キーボード2662等からの入力やネットワークインターフェイス267を介した指示等により判断する(ステップS146)。コンテンツ投入サーバサービスを終了しない場合には(ステップS146;NO)、ステップS142に戻る。
【0178】
ステップS142において、コンテンツ投入指示がない場合には(ステップS142;NO)、CPU261は、ノード装置1からカタログリストの送信要求があるか否かを判断する(ステップS147)。カタログリストの送信要求がある場合には(ステップS147;YES)、CPU261は、カタログリスト送信要求の送信元のノード装置1に、カタログリストの情報を送信し(ステップS148)、ステップS146に戻る。
【0179】
ステップS147において、カタログリストの送信要求がない場合には(ステップS147;NO)、CPU261は、放送局装置31として機能するノード装置1から放送プログラムファイルの送信要求があるか否かを判断する(ステップS149)。放送プログラムファイルの送信要求がある場合には(ステップS149;YES)、CPU261は、放送プログラムファイル送信要求の送信元のノード装置1に、放送プログラムファイルを送信し(ステップS150)、ステップS146に戻る。また、ステップS149において、ノード装置1から放送プログラムファイル送信要求がない場合にも(ステップS149;NO)、ステップS146へ戻る。
【0180】
ここで、ステップS146において、コンテンツ投入サーバサービスを終了する場合には(ステップS146;YES)、処理を終了する(エンド)。
【0181】
[7.変形形態]
本発明の一例として上述の実施形態を説明したが、本発明はこれに限定されず、例えば、以下の変形形態とすることもできる。
【0182】
[7.1.第1変形形態]
上述の実施形態においては、ノード装置1が放送局装置31として機能するものとして説明したが、通常のノード装置1とは別に放送局用の放送局装置31をコンテンツ配信システムSに備えていてもよい。そのような放送局装置31も、コンテンツ分散保存システムS1に参加している必要がある。放送局装置31を有する場合のコンテンツ配信システムSについて、以下に説明する。
【0183】
放送局装置31の構成及び機能について図27を参照して説明する。図27は、放送局装置31の概要構成例を示す図である。
【0184】
放送局装置31は、図27に示すように、演算機能を有するCPU311と、受信した第1コンテンツデータ等を一時蓄積するリングバッファメモリ3121、オペレーティングシステム3122、ストリーム制御プログラム3123、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)等をデコード(データ伸張や復号化等)等する画面制御プログラム3124、トポロジー制御プログラム3125、コンテンツデータに含まれるエンコードされたオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する音楽デコーダ3126及び放送コンテンツ制御プログラム3127を備え、作業用RAM、各種データおよびプログラムを記憶するROM等から構成された主記憶装置312と、第1コンテンツデータ、コンテンツインデックス情報、上記DHTおよびプログラム等を記憶保存(格納)するためのHD等から構成された記録媒体としてのハードディスク装置313と、ハードディスク装置313や入力部等の周辺機器との接続を制御し、情報を伝達する周辺機器制御チップ314と、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力するビデオチップ3151と、当該ビデオチップ3151から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等のディスプレイ3161と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音源チップ3152と、当該音源チップ3152から出力されたオーディオ信号を音波として出力するスピーカ3162と、ユーザからの指示を受け付け当該指示に応じた指示信号をCPU311に対して与える入力部としてのキーボード3163及びマウス3164(他にも、例えば、操作用リモコン、操作パネル等が可)と、ネットワーク8を通じてルータ319等を介し、他のノード装置1等との間の情報の通信制御を行うためのネットワークインターフェイス317と、を備えて構成され、CPU311、主記憶装置312、周辺機器制御チップ314、ビデオチップ3151、音源チップ3152及びネットワークインターフェイス317はシステムバス318を介して相互に接続されている。ネットワークインターフェイス317は、ネットワーク8を介して外部のルータ319等と接続されている。
【0185】
そして、CPU311は主記憶装置312等に記憶された各種プログラムを実行することにより、放送局装置31全体を統括制御するようになっており、また、キーボード3163等の入力部からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。また、放送局装置31のCPU311は、本発明の第1コンテンツデータ取得手段、第2コンテンツデータ配信手段、保存判断手段、公開情報送信手段、要求受信手段(コンテンツ要求)、第1コンテンツデータ送信手段、公開判断手段、検索手段(クエリ)、要求送信手段(コンテンツ要求)、変換手段、として機能する。なお、放送局装置31は、配信する放送コンテンツデータの順番や時刻、コンテンツID等が示された放送プログラムファイルを、コンテンツ投入サーバ26から受信して有していることを前提とする。
【0186】
次いで、放送局装置31の動作について図28を参照して説明する。
【0187】
放送局装置31のCPU311は、図示しない電源スイッチ等により放送局装置31自身に電源が入れられたことを認識すると、その処理を開始する(スタート)。
【0188】
処理が開始されると、CPU311は、当該放送局装置31のプログラム等の各種設定を初期化し(ステップS161)、接続先紹介サーバ35へツリー型配信システムS2への参加通知を送信する(ステップS162)。次いで、CPU311は、コンテンツ分散保存システムS1への参加処理を行う(ステップS163)。なお、ステップS163のコンテンツ分散保存システムS1への参加処理は、図20を参照して上述したステップS3の説明と同様であるため、省略する。
【0189】
次いで、CPU311は、放送管理者の操作等によりキーボード3163等から放送開始又は放送停止の要求があるか否かを判断する(ステップS164)。放送開始又は放送停止の要求がある場合には(ステップS164;YES)、CPU311は、当該要求の内容に応じて、コンテンツパケットの生成処理を開始又は停止する(ステップS165)。次いで、CPU311は、放送コンテンツデータを変換するか否かを判断し(ステップS166)、放送コンテンツデータを変換する場合には(ステップS166;YES)、変換手段としてのCPU311は、所定の方法で放送コンテンツデータを変換し(ステップS167)、ステップS168へ進む。また、ステップS166において、放送コンテンツデータを変換しない場合には、そのままステップS168へ進む。
【0190】
次いで、CPU311は、電源が切られたか否かを判断し(ステップS168)、電源が切られていない場合には(ステップS168;NO)、ステップS164へ戻る。
【0191】
ステップS164において、放送開始又は放送停止の要求がない場合には(ステップS164;NO)、CPU311は、ノード装置1からツリー型配信システムS2における下流に接続したい旨の接続開設又は既にある接続を切断する旨の接続切断の要求があるか否かを判断する(ステップS169)。他のノード装置1からの接続開設又は接続切断の要求がある場合には(ステップS169;YES)、CPU311は、その要求に従い、他のノード装置1と接続を開設し、又は接続を切断し(ステップS170)、次いで、当該ノード装置に放送コンテンツの配信を開始し、又は停止し(ステップS171)、ステップS168に戻る。
【0192】
ステップS169において、ノード装置1からの接続開設又は接続切断の要求がない場合には(ステップS169;NO)、CPU311は、放送プログラムファイルに基づき、放送コンテンツデータを取得するタイミングになったか否かを判断する(ステップS172)。放送コンテンツデータを取得するタイミングになった場合には(ステップS172;YES)、CPU311は、放送コンテンツ取得処理を行い(ステップS173)、ステップS168に戻る。なお、ステップS173の放送コンテンツ取得処理は、図23を参照して上述したステップS61の説明と同様であるため、省略する。
【0193】
ここで、ステップS168において、電源が切られた場合には、電源オフであると判断し(ステップS168;YES)放送局装置31における処理を終了する(エンド)。
【0194】
本実施形態では、取得した第1コンテンツデータのハードディスクへの保存、保存した第1コンテンツデータについてのコンテンツ公開メッセージの送信等は行わないものとして説明した。
【0195】
なお、放送局装置31は、ツリー型配信システムS2における第2コンテンツデータの配信を主として行うため、コンテンツ分散保存システムS1へも参加しているものの、当該システムS1においては、他のノード装置1のDHTルーティングテーブルに記憶されにくくしたり、コンテンツ投入サーバ26からコンテンツ分散保存システムS1に保存される第1コンテンツデータが投入されて保存することを行わないように設定することができる。なお、コンテンツ分散保存システムS1において、放送局装置31がクエリやコンテンツ公開メッセージ、参加メッセージ等の各メッセージや情報を受信した場合には、通常のノード装置と同じように転送等の処理を行う。
【0196】
ここで、コンテンツ配信システムSにおいては、放送チャンネルの数だけ放送局装置31が存在することとなり、本実施形態の放送局装置31と、通常のノード装置1が放送局装置31として機能するものが混在していてもよい。
【0197】
[7.2.第2変形形態]
上述の実施形態においては、ノード装置1の動作におけるステップS29において、コンテンツ分散保存システムS1におけるコンテンツパケットを受信すると、当該コンテンツをツリー型配信システムS2において配信(放送)する放送コンテンツとして扱っているが、これに限定されない。
【0198】
第2変形形態においては、ノード装置1が第1コンテンツデータのパケットを受信すると、当該第1コンテンツデータが自身の要求に基づいて取得したコンテンツデータか、放送するために取得したコンテンツデータか、を判断し、自身の要求に基づいて取得したコンテンツデータである場合には、ハードディスク装置13のHDに保存して当該コンテンツデータを再生し、放送するために取得したコンテンツデータである場合には、放送コンテンツデータとしてツリー型配信システムS2において放送する。
【0199】
この変形形態にかかるノード装置1の動作を、図29を参照して説明する。図29は、図18のフローチャートの変形例であり、図18と同様のステップSは省略している。
【0200】
図17のステップS27において、コンテンツの送信要求情報を受信していない場合には(ステップS27;NO)、図29に移り、CPU11は、コンテンツパケットを受信したか否かを判断する(ステップS181)。ここで、コンテンツパケットを受信していない場合には(ステップS181;NO)、ステップS44へ進む(図29においては省略)。
【0201】
一方、コンテンツパケットを受信した場合には(ステップS181;YES)、コンテンツ判断手段としてのCPU11は、第1コンテンツデータ取得手段としてのCPU11により取得した第1コンテンツデータ、すなわち上記コンテンツパケットがツリー型配信システムS2において配信するコンテンツデータに対応するか否かを判断する(ステップS182)。具体的には、CPU11は、受信したコンテンツパケットがステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツパケットであるか否か、又は受信したコンテンツパケットが放送プログラムファイルに含まれているか否か、を判断し、放送用のコンテンツパケットである場合には(ステップS182;YES)、上述したステップS30に進み、当該コンテンツパケットを放送するための処理を行う(図29においては省略)。このとき、ノード装置1は、本発明における配信元のノード装置、実施形態における放送局装置31として機能し、CPU11は第2コンテンツデータ配信手段として機能する。
【0202】
ステップS182において、受信したコンテンツパケットがステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツパケットでなく、又は受信したコンテンツパケットが放送プログラムファイルに含まれておらず、上記コンテンツパケットがツリー型配信システムS2において配信するコンテンツデータに対応しない場合には(ステップS182;NO)、CPU11は、受信したコンテンツデータを自身の要求に基づいて取得したコンテンツデータであると判断し、第1コンテンツデータをハードディスク装置13のHDに保存する(ステップS183)。
【0203】
次いで、CPU11は、ユーザが視聴するために当該コンテンツデータを再生して(ステップS184)、保存した第1コンテンツデータのコンテンツIDやその所在情報(自ノード装置のIPアドレス等)を、コンテンツインデックス情報に登録する(ステップS185)。次いで、CPU11は、当該ノード装置1自身が、当該第1コンテンツデータのコンテンツIDを考慮したときにルートノードとなるか否かを判断する(ステップS186)。当該ノード装置1自身がルートノードでない場合には(ステップS186;NO)、CPU11は、保存した第1コンテンツデータについてのコンテンツ公開メッセージを他のノード装置1へ(ルートノードに向けて)送信し(ステップS187)、図16のステップS8へ戻る。一方、ステップS186において、当該ノード装置1自身がルートノードである場合には、(ステップS186;YES)、処理を行わずに図16のステップS8へ戻る(接続子4)。
【0204】
この変形形態では、ノード装置1が、第1コンテンツデータ取得手段としてのCPU11により取得した第1コンテンツデータがツリー型配信システムS2において配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段(CPU11)を有しており、コンテンツ判断手段が第1コンテンツデータ取得手段により取得した第1コンテンツデータがツリー型配信システムS2において配信するコンテンツデータに対応すると判断した場合に、第2コンテンツデータ配信手段としてのCPU11は、取得した当該第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信すればよい。コンテンツ判断手段における判断は、動作について上述したように放送プログラムファイルを参照してもよいし、ステップS61の放送コンテンツデータ取得処理の結果として受信したコンテンツデータであるか否かを確認してもよく、特に限定されない。
【0205】
[7.3.他の変形形態]
上述の実施形態においては、コンテンツ配信システムSにおいて、コンタクトノード紹介サーバ25、接続先紹介サーバ35、コンテンツ投入サーバ26を備えているが、この構成に限定されず、システムSにこれらのサーバ装置を備えていなくても、コンテンツ分散保存システムS1に参加し、かつ、ツリー型配信システムS2に配信元のノード装置31として参加しているノード装置1が、コンテンツ分散保存システムS1における第1コンテンツデータを保存しているノード装置1から第1コンテンツデータを取得する第1コンテンツデータ取得手段(CPU11)と、取得した第1コンテンツデータを第2コンテンツデータとしてツリー型配信システムS2における他のノード装置32に配信する第2コンテンツデータ配信手段(CPU11)と、を有していればよい。従って、上述の各サーバが存在しないことにより、コンテンツ配信システムSにおけるノード装置1等のシステムSを構成する装置等の動作や役割が異なることがある。
【0206】
このような本発明のコンテンツ配信システムにより、ツリー型配信システムS2のコンテンツ配信元のノード装置におけるコンテンツ保存等の負担が軽減する。そのため、第1変形形態のような放送局装置31を放送管理者が別個に提供しなくても、通常のユーザのノード装置1が放送局の役割を行うことにより、少ない設備で放送局の運営を行うことが可能となり、放送局の運営にかかるコストも低減できる。
【0207】
上述の実施形態においては、ノード装置1がDHTのルーティングテーブルを記憶しており、これに基づいて第1コンテンツデータが分散保存されているが、この実施形態に限定されない。コンテンツ分散保存システムS1が複数のノード装置1の参加により形成されており、複数の第1コンテンツデータが複数のノード装置1に分散保存され、一のノード装置1(上述のコンテンツノード)が他のノード装置1からの要求に応じて自己が保存している第1コンテンツデータを通信手段を介して送信する構成になっていればよい。
【0208】
上述の実施形態においては、ノード装置1や放送局装置31においては、当該装置が起動し始めた段階でコンテンツ分散保存システムS1への参加処理(ステップS3、S163、図20等)を行っているが、この形態に限定されない。例えば、ノード装置1が放送局装置31としての機能をし始める段階、又は、放送局装置31が第2コンテンツデータの配信を開始する段階等の必要な段階においてコンテンツ分散保存システムS1へ参加し、必要な第1コンテンツデータを取得した後、また必要な段階まで脱退していてもよい。
【0209】
上述の実施形態においては、ステップS28等の説明において、レート制御情報がどのコンテンツデータ(第1コンテンツデータ、第2(放送)コンテンツデータ)にも入っていることとしたが、これに限定されず、第2(放送)コンテンツデータのみにレート制御情報を含ませることとしてもよい。
【0210】
上述の実施形態においては、ステップS20、S34、S82等の説明において、自ノード装置1がルートノードであるか否かに関わらず、キャッシュノードとして当該コンテンツデータのコンテンツノードの情報をコンテンツインデックス情報へ登録しているが、自ノード装置1がルートノードでないときは(ステップS21;NO、S35;NO、S83;NO)、当該コンテンツデータのコンテンツノードの情報についてコンテンツインデックス情報に登録せずに次のステップに進んでもよい。
【0211】
上述の実施形態においては、図5や図9に示すように、ルートノードがコンテンツノードの所在情報をクエリの送信元のノード装置1に知らせ、当該ノード装置がコンテンツノードに第1コンテンツデータを要求し、取得する形態としているが、第1コンテンツデータを取得する形態は、これに限定されない。例えば、ノード装置1が送信したクエリがルートノードに届いた場合、ルートノードがコンテンツノードに対して、「該当する第1コンテンツデータをクエリの送信元のノード装置1に送信すべき」旨のメッセージを送信し、この通知を受けたコンテンツノードが、該当する第1コンテンツデータをクエリの送信元のノード装置1に送信する形態としてもよい。
【0212】
上述の実施形態においては、ノード装置1は、記録媒体(ハードディスク)に、放送用に取得した第1コンテンツデータを保存することができ、保存するか否かを選択できることとしているが、この形態に限定されず、放送用に取得した第1コンテンツデータを保存できない形態としてもよいし、保存の有無を選択せずに必ず保存する、必ず保存しない、と決められた形態としてもよい。
【0213】
上述の実施形態においては、ノード装置1は、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他のノード装置に当該第1コンテンツデータを保存していることを示す公開情報(コンテンツ公開メッセージ)を、コンテンツ分散保存システムS1における第1コンテンツデータの所在を管理する管理元のノード装置1(ルートノード)に向けて送信し、コンテンツノードとして機能でき、このように公開するか否かを選択できることとしているが、この形態に限定されず、保存した第1コンテンツデータを公開できない形態としてもよいし、公開の有無を選択せずに必ず公開する、必ず公開しない、と決められた形態としてもよい。
【0214】
上述の実施形態においては、取得した第1コンテンツデータをツリー型配信システムS2において配信するための形式に変換して第2コンテンツデータ(放送コンテンツデータ)とする形態や、変換するか否かを選択できる形態を説明したが、これに限定されず、コンテンツデータの変換を行わない形態としてもよいし、変換の有無を選択せずに必ず所定のやり方で変換する、必ず変換しない、と決められた形態としてもよい。
【0215】
また、上述のコンテンツ配信システムSにおいては、ツリー型配信システムS2におけるツリーの長さが長くなる(配信元のノード装置から最下流のノード装置までのノード装置数が多くなる)場合には、配信元のノード装置を増やし、これらが同一のチャンネル(第2コンテンツデータ)を放送できるようにして、ツリーを分割することができる。このようにツリーを所定値以上長くならないようにして、より安定した第2コンテンツデータの配信を行うことができる。このようにするために、接続先紹介サーバ35が各ノード装置1にメッセージを送り、ツリーのトポロジーを調整することができる。
【0216】
上述のノード装置1又は放送局装置31の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係るCPU11又はCPU311として機能させることも可能である。
【図面の簡単な説明】
【0217】
【図1】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】DHTによるID空間及びコンテンツIDとこれに対するルートノードを説明する図である。
【図3】本実施形態に係るコンテンツ分散保存システムにおけるDHTによるID空間及びルーティングテーブルが作成される様子の一例を示す図である。
【図4】(A)レベル1のテーブルの一例である。(B)レベル2のテーブルの一例である。(C)レベル3のテーブルの一例である。(D)完成したルーティングテーブルの一例である。
【図5】DHTによるID空間及びコンテンツの検索方法、取得方法を説明する図である。
【図6】DHTによるID空間及び保存された第1コンテンツデータの公開方法を説明する図である。
【図7】DHTによるID空間及びノード装置の参加方法を説明する図である。
【図8】本実施形態に係るツリー型配信システムの概要を説明する図である。
【図9】本実施形態に係るコンテンツ配信システムの概要を説明する図(1)である。
【図10】本実施形態に係るコンテンツ配信システムの概要を説明する図(2)である。
【図11】放送局設定情報を示す表である。
【図12】ノード装置1の概要構成例を示す図である。
【図13】コンタクトノード紹介サーバ25の概要構成例を示す図である。
【図14】接続先紹介サーバ35の概要構成例を示す図である。
【図15】コンテンツ投入サーバ26の概要構成例を示す図である。
【図16】ノード装置1における処理(1)を示すフローチャートである。
【図17】ノード装置1における処理(2)を示すフローチャートである。
【図18】ノード装置1における処理(3)を示すフローチャートである。
【図19】ノード装置1における処理(4)を示すフローチャートである。
【図20】ノード装置1におけるコンテンツ分散保存システムへの参加処理を示すフローチャートである。
【図21】ノード装置1における投入コンテンツ受信処理を示すフローチャートである。
【図22】ノード装置1におけるコンテンツ検索処理を示すフローチャートである。
【図23】ノード装置1における放送コンテンツデータ取得処理を示すフローチャートである。
【図24】コンタクトノード紹介サーバ25における処理を示すフローチャートである。
【図25】接続先紹介サーバ35における処理を示すフローチャートである。
【図26】コンテンツ投入サーバ26における処理を示すフローチャートである。
【図27】放送局装置31の概要構成例を示す図である。
【図28】放送局装置31における処理を示すフローチャートである。
【図29】図18に示すノード装置1における処理の変形形態を示すフローチャートである。
【符号の説明】
【0218】
1 ノード装置
8 ネットワーク
9 オーバレイネットワーク
11 CPU
12 主記憶装置
13 ハードディスク装置
14 周辺機器制御チップ
15 ビデオチップ
16 内蔵ディスプレイ
17 音源チップ
18 内蔵スピーカ
19 赤外線ポート
21 ネットワークインターフェイス
22 システムバス
23 ユーザ入力用リモコン
24 ルータ
S コンテンツ配信システム
S1 コンテンツ分散保存システム
S2 ツリー型配信システム
【特許請求の範囲】
【請求項1】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置であって、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、
を有することを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置であって、
前記第1コンテンツデータ取得手段は、ストリーミング方式で送信されてきた前記第1コンテンツデータを取得し、
前記第2コンテンツデータ配信手段は、ストリーミング方式で前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置。
【請求項3】
請求項1又は2に記載のノード装置であって、
前記ノード装置は、さらに、受信した前記第1コンテンツデータを保存する記録媒体を有することを特徴とするノード装置。
【請求項4】
請求項3に記載のノード装置であって、
前記ノード装置は、さらに、前記第1コンテンツデータを取得した場合に、当該第1コンテンツデータを前記記録媒体に保存するか否かを判断する保存判断手段を有し、
前記記録媒体は、前記保存判断手段が保存すると判断した場合に、新たに前記第1コンテンツデータを保存することを特徴とするノード装置。
【請求項5】
請求項3又は4に記載のノード装置であって、
前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他の前記ノード装置に当該第1コンテンツデータを保存していることを示す公開情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する公開情報送信手段と、
他の前記ノード装置から前記第1コンテンツデータの送信を要求する送信要求情報を受信する要求受信手段と、
前記要求受信手段が他の前記ノード装置から前記送信要求情報を受信した場合に、当該送信要求情報に応じて前記記録媒体に保存されている前記第1コンテンツデータを送信する第1コンテンツデータ送信手段と、
を有することを特徴とするノード装置。
【請求項6】
請求項5に記載のノード装置であって、
前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、前記公開情報を送信するか否かを判断する公開判断手段を有し、
前記公開情報送信手段は、前記公開判断手段が前記公開情報を送信すると判断した場合に、前記公開情報を送信することを特徴とするノード装置。
【請求項7】
請求項1乃至6のいずれか一項に記載のノード装置であって、
前記ノード装置は、さらに、前記第2コンテンツデータ配信手段により配信すべき前記第2コンテンツデータに対応する前記第1コンテンツデータを保存している前記ノード装置の所在を検索するための検索情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する検索手段と、
前記管理元のノード装置から前記第1コンテンツデータの所在を示すノード情報を受信した場合に、当該ノード情報に対応する前記ノード装置に前記第1コンテンツデータの送信を要求する送信要求情報を送信する要求送信手段と、
を有し、
前記第1コンテンツデータ取得手段は、前記送信要求情報の送信先の前記ノード装置から前記第1コンテンツデータを取得することを特徴とするノード装置。
【請求項8】
請求項1乃至7のいずれか一項に記載のノード装置であって、
前記ノード装置は、さらに、取得した前記第1コンテンツデータをツリー型配信システムにおいて配信するための形式に変換して前記第2コンテンツデータとする変換手段を有し、
前記第2コンテンツデータ配信手段は、前記変換手段により変換された後の前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置。
【請求項9】
請求項8に記載のノード装置であって、
前記変換手段は、前記第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて前記第2コンテンツデータとすることを特徴とするノード装置。
【請求項10】
請求項8又は9に記載のノード装置であって、
前記変換手段は、前記第1コンテンツデータに含まれる映像を部分的に間引く、前記第1コンテンツデータに含まれる映像の一部を選択する、前記第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、前記第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は前記第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことを特徴とするノード装置。
【請求項11】
請求項1乃至10のいずれか一項に記載のノード装置であって、
前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段をさらに有し、
前記コンテンツ判断手段が前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応すると判断した場合に、前記第2コンテンツデータ配信手段は、取得した当該第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信することを特徴とするノード装置。
【請求項12】
コンピュータを、請求項1乃至11のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラム。
【請求項13】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置におけるコンテンツ配信方法であって、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する工程と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する工程と、
を有することを特徴とするコンテンツ配信方法。
【請求項14】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システム、及び、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システム、を備えるコンテンツ配信システムであって、
前記コンテンツ分散保存システムに参加している前記ノード装置であり、且つ、前記ツリー型配信システムに参加している前記配信元のノード装置は、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、
を有することを特徴とするコンテンツ配信システム。
【請求項1】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置であって、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、
を有することを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置であって、
前記第1コンテンツデータ取得手段は、ストリーミング方式で送信されてきた前記第1コンテンツデータを取得し、
前記第2コンテンツデータ配信手段は、ストリーミング方式で前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置。
【請求項3】
請求項1又は2に記載のノード装置であって、
前記ノード装置は、さらに、受信した前記第1コンテンツデータを保存する記録媒体を有することを特徴とするノード装置。
【請求項4】
請求項3に記載のノード装置であって、
前記ノード装置は、さらに、前記第1コンテンツデータを取得した場合に、当該第1コンテンツデータを前記記録媒体に保存するか否かを判断する保存判断手段を有し、
前記記録媒体は、前記保存判断手段が保存すると判断した場合に、新たに前記第1コンテンツデータを保存することを特徴とするノード装置。
【請求項5】
請求項3又は4に記載のノード装置であって、
前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、他の前記ノード装置に当該第1コンテンツデータを保存していることを示す公開情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する公開情報送信手段と、
他の前記ノード装置から前記第1コンテンツデータの送信を要求する送信要求情報を受信する要求受信手段と、
前記要求受信手段が他の前記ノード装置から前記送信要求情報を受信した場合に、当該送信要求情報に応じて前記記録媒体に保存されている前記第1コンテンツデータを送信する第1コンテンツデータ送信手段と、
を有することを特徴とするノード装置。
【請求項6】
請求項5に記載のノード装置であって、
前記ノード装置は、さらに、前記記録媒体に前記第1コンテンツデータを新たに保存した場合に、前記公開情報を送信するか否かを判断する公開判断手段を有し、
前記公開情報送信手段は、前記公開判断手段が前記公開情報を送信すると判断した場合に、前記公開情報を送信することを特徴とするノード装置。
【請求項7】
請求項1乃至6のいずれか一項に記載のノード装置であって、
前記ノード装置は、さらに、前記第2コンテンツデータ配信手段により配信すべき前記第2コンテンツデータに対応する前記第1コンテンツデータを保存している前記ノード装置の所在を検索するための検索情報を、コンテンツ分散保存システムにおける前記第1コンテンツデータの所在を管理する管理元のノード装置に向けて送信する検索手段と、
前記管理元のノード装置から前記第1コンテンツデータの所在を示すノード情報を受信した場合に、当該ノード情報に対応する前記ノード装置に前記第1コンテンツデータの送信を要求する送信要求情報を送信する要求送信手段と、
を有し、
前記第1コンテンツデータ取得手段は、前記送信要求情報の送信先の前記ノード装置から前記第1コンテンツデータを取得することを特徴とするノード装置。
【請求項8】
請求項1乃至7のいずれか一項に記載のノード装置であって、
前記ノード装置は、さらに、取得した前記第1コンテンツデータをツリー型配信システムにおいて配信するための形式に変換して前記第2コンテンツデータとする変換手段を有し、
前記第2コンテンツデータ配信手段は、前記変換手段により変換された後の前記第2コンテンツデータを他の前記ノード装置に配信することを特徴とするノード装置。
【請求項9】
請求項8に記載のノード装置であって、
前記変換手段は、前記第1コンテンツデータに含まれる映像、画像又は音声の少なくともいずれか一を劣化させて前記第2コンテンツデータとすることを特徴とするノード装置。
【請求項10】
請求項8又は9に記載のノード装置であって、
前記変換手段は、前記第1コンテンツデータに含まれる映像を部分的に間引く、前記第1コンテンツデータに含まれる映像の一部を選択する、前記第1コンテンツデータに含まれる映像若しくは画像の大きさを縮小する、前記第1コンテンツデータに含まれる映像若しくは画像の画質を劣化させる、又は前記第1コンテンツデータに含まれる音声の音質を劣化させる、の少なくともいずれか一を行うことを特徴とするノード装置。
【請求項11】
請求項1乃至10のいずれか一項に記載のノード装置であって、
前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応するか否かを判断するコンテンツ判断手段をさらに有し、
前記コンテンツ判断手段が前記第1コンテンツデータ取得手段により取得した第1コンテンツデータが前記ツリー型配信システムにおいて配信するコンテンツデータに対応すると判断した場合に、前記第2コンテンツデータ配信手段は、取得した当該第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信することを特徴とするノード装置。
【請求項12】
コンピュータを、請求項1乃至11のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラム。
【請求項13】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システムに参加している前記ノード装置であり、且つ、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システムに参加している前記配信元のノード装置におけるコンテンツ配信方法であって、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する工程と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する工程と、
を有することを特徴とするコンテンツ配信方法。
【請求項14】
複数のノード装置の参加により形成されたコンテンツ分散保存システムであって、複数の第1コンテンツデータが複数の前記ノード装置に分散保存され、一の前記ノード装置が他の前記ノード装置からの要求に応じて自己が保存している前記第1コンテンツデータを通信手段を介して送信するようにしたコンテンツ分散保存システム、及び、
複数のノード装置の参加により形成されたツリー型配信システムであって、前記複数のノード装置が複数の階層を形成しつつ通信手段を介してツリー状に接続され、配信元のノード装置から配信された第2コンテンツデータが、上位階層の前記ノード装置から下位階層の前記ノード装置に順次転送されるようにしたツリー型配信システム、を備えるコンテンツ配信システムであって、
前記コンテンツ分散保存システムに参加している前記ノード装置であり、且つ、前記ツリー型配信システムに参加している前記配信元のノード装置は、
前記コンテンツ分散保存システムにおける前記第1コンテンツデータを保存している前記ノード装置から前記第1コンテンツデータを取得する第1コンテンツデータ取得手段と、
取得した前記第1コンテンツデータを前記第2コンテンツデータとして前記ツリー型配信システムにおける他の前記ノード装置に配信する第2コンテンツデータ配信手段と、
を有することを特徴とするコンテンツ配信システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公開番号】特開2008−33406(P2008−33406A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−203089(P2006−203089)
【出願日】平成18年7月26日(2006.7.26)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願日】平成18年7月26日(2006.7.26)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]