(57)【要約】【課題】端末装置の状態が変化する場合であってもコンテンツデータの配信を可能とすること。【解決手段】複数の端末装置２同士をネットワークを介して接続させて、コンテンツデータを端末装置２間で送受信させるＰ２Ｐ型配信モードと、コンテンツデータを記憶した記憶装置を複数の端末装置２のそれぞれとネットワーク８を介してクライアント−サーバ形式で接続して、各端末装置２にコンテンツデータを配信するＣ／Ｓ型配信モードとを有する。そして、端末装置２間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定し、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとを端末装置２の状態に応じて切り替える。【選択図】図１
2011008709.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させる第１処理手段と、
前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させる第２処理手段と、
前記端末装置間で前記コンテンツデータの配信を行うための所定条件を満たすか否かを判定する判定処理手段と、を備え、
前記判定処理手段により前記所定条件を満たすと判定したとき、前記第１処理手段による処理を実行し、前記判定処理手段により前記所定条件を満たさないと判定したとき、前記第２処理手段による処理を実行することを特徴とする情報処理装置。
【請求項２】
前記判定処理手段は、前記複数の端末装置のうち通信速度が規定値以上である端末装置の割合が所定以上であるときに、前記所定条件を満たすと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定処理手段は、前記複数の端末装置のうち通信速度が規定値以上である端末装置の数が所定以上あるときに、前記所定条件を満たすと判定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記判定処理手段は、前記複数の端末装置の数が、所定数以上になったときに、前記所定条件を満たすと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第１処理手段は、前記複数の端末装置をネットワークを介して階層構造で多層に論理接続させて、コンテンツデータを前記階層構造の上流の端末装置に供給し、当該上流の端末装置から下流の端末装置にかけて前記端末装置の中継機能によって前記コンテンツデータの配信を行い、前記第２処理手段による処理を実行した後に前記階層構造を形成するときには、前記通信速度が規定値以上である端末装置を優先的に前記階層構造の上流に接続させることを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第２処理手段は、前記第１処理手段による処理を実行した後に前記複数の端末装置のそれぞれと接続するときには、前記階層構造の下流の端末装置から優先的に前記階層構造から離脱させて接続することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
複数の端末装置と、前記複数の端末装置へコンテンツデータを配信する情報処理装置と、を備えたコンテンツ配信システムにおいて、
前記端末装置は、
前記コンテンツデータをネットワークを介して受信する受信処理手段と、
前記受信処理手段で受信したコンテンツデータをネットワークを介して他の端末装置へ送信する送信処理手段と、を備え、
前記情報処理装置は、
複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させる第１処理手段と、
前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させる第２処理手段と、
前記端末装置間で前記コンテンツデータの配信を行うための所定条件を満たすか否かを判定する判定処理手段と、を備え、
前記判定処理手段により前記所定条件を満たすと判定したとき、前記第１処理手段による処理を実行し、前記判定処理手段により前記所定条件を満たさないと判定したとき、前記第２処理手段による処理を実行することを特徴とするコンテンツ配信システム。
【請求項８】
端末装置間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定するステップと、
前記所定条件を満たすと判定すると、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させるステップと、
前記所定条件を満たさないと判定すると、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させるステップと、をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
端末装置間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定するステップと、
前記所定条件を満たすと判定すると、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させるステップと、
前記所定条件を満たさないと判定すると、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させるステップと、を有する情報処理装置によるコンテンツ配信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラムの技術に関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワーク（通信網）の普及により、ネットワークを介して、音楽、映画、トーク番組などコンテンツのデータ（以下、「コンテンツデータ」という）の配信が行われている。
【０００３】
コンテンツデータの配信には、例えば、ＶＯＤ（ビデオオンデマンド）方式や放送（ライブ中継）方式などがある。ＶＯＤ方式は、端末装置から要求がある毎にコンテンツデータを配信する方式である。放送方式は、同時刻に複数の端末装置にコンテンツデータを配信する方式である。
【０００４】
現在、コンテンツデータの配信形態として、クライアント−サーバ方式によりコンテンツデータの配信を行う形態が主流である。
【０００５】
しかしながら、クライアント−サーバ方式では、アクセスが集中するとサーバやネットワークが負荷に耐えられなくなるという問題がある。そこで、クライアント−サーバ方式に代わる新しい形態としてＰ２Ｐ（Peer to Peer）を用いた放送型の配信方式（例えば、特許文献１参照）やオンデマンド型の配信方式（例えば、特許文献２参照）が注目されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１９７４００号公報
【特許文献２】特開２００６−３３５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
Ｐ２Ｐ方式の配信方式は、参加している一部の端末装置へサーバからコンテンツデータを送信して記憶させれば、その後は端末装置同士でコンテンツデータの送受信を行える。そのため、参加する端末装置が多ければ多いほどクライアント−サーバ方式に比べて負荷分散の効果が顕著になる。
【０００８】
しかし、一方で、参加する端末装置の状態によってはＰ２Ｐの効果を発揮できず、コンテンツ配信サービスの運用に困難が生じるケースがある。
【０００９】
例えば、特許文献１に記載されているツリー型トポロジーによる配信方式では、ＡＤＳＬ（Asymmetric Digital Subscriber Line、非対称デジタル加入者線）に接続された端末装置ばかりが参加していると、上りの帯域が狭い端末装置ばかりということになる。よって、動画などのコンテンツデータのように高い通信速度が要求される場合には、ツリー型トポロジーを構成することが難しくなる。
【００１０】
また、特許文献２に記載されている配信方式でも、公開するコンテンツデータが端末装置に十分に行き渡るまでに多数の端末装置からコンテンツデータの取得要求が実行される場合がある。この場合、Ｐ２Ｐの機能が十分に働かず、要求したコンテンツデータを取得できない端末装置がでてしまう。
【００１１】
そこで、本発明は、コンテンツ配信サービスに参加する端末装置の数や各々の通信能力に応じて、コンテンツデータを配信する方法を切り替えて、コンテンツデータの配信を可能とする情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に記載の発明は、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させる第１処理手段と、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させる第２処理手段と、前記端末装置間で前記コンテンツデータの配信を行うための所定条件を満たすか否かを判定する判定処理手段と、を備え、前記判定処理手段により前記所定条件を満たすと判定したとき、前記第１処理手段による処理を実行し、前記判定処理手段により前記所定条件を満たさないと判定したとき、前記第２処理手段による処理を実行することを特徴とする情報処理装置とした。
【００１３】
また、請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記判定処理手段は、前記複数の端末装置のうち通信速度が規定値以上である端末装置の割合が所定以上であるときに、前記所定条件を満たすと判定することを特徴とする。
【００１４】
また、請求項３に記載の発明は、請求項１又は２に記載の情報処理装置において、前記判定処理手段は、前記複数の端末装置のうち通信速度が規定値以上である端末装置の数が所定以上あるときに、前記所定条件を満たすと判定することを特徴とする。
【００１５】
また、請求項４に記載の発明は、請求項１に記載の情報処理装置において、前記判定処理手段は、前記複数の端末装置の数が、所定数以上になったときに、前記所定条件を満たすと判定することを特徴とする。
【００１６】
また、請求項５に記載の発明は、請求項１〜４のいずれか１項に記載の情報処理装置において、前記第１処理手段は、前記複数の端末装置をネットワークを介して階層構造で多層に論理接続させて、コンテンツデータを前記階層構造の上流の端末装置に供給し、当該上流の端末装置から下流の端末装置にかけて前記端末装置の中継機能によって前記コンテンツデータの配信を行い、前記第２処理手段による処理を実行した後に前記階層構造を形成するときには、前記通信速度が規定値以上である端末装置を優先的に前記階層構造の上流に接続させることを特徴とする。
【００１７】
また、請求項６に記載の発明は、請求項５に記載の情報処理装置において、前記第２処理手段は、前記第１処理手段による処理を実行した後に前記複数の端末装置のそれぞれと接続するときには、前記階層構造の下流の端末装置から優先的に前記階層構造から離脱させて接続することを特徴とする。
【００１８】
また、請求項７に記載の発明は、複数の端末装置と、前記複数の端末装置へコンテンツデータを配信する情報処理装置と、を備えたコンテンツ配信システムにおいて、前記端末装置は、前記コンテンツデータをネットワークを介して受信する受信処理手段と、前記受信処理手段で受信したコンテンツデータをネットワークを介して他の端末装置へ送信する送信処理手段と、を備え、前記情報処理装置は、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させる第１処理手段と、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させる第２処理手段と、前記端末装置間で前記コンテンツデータの配信を行うための所定条件を満たすか否かを判定する判定処理手段と、を備え、前記判定処理手段により前記所定条件を満たすと判定したとき、前記第１処理手段による処理を実行し、前記判定処理手段により前記所定条件を満たさないと判定したとき、前記第２処理手段による処理を実行することを特徴とするコンテンツ配信システムとした。
【００１９】
また、請求項８に記載の発明は、端末装置間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定するステップと、前記所定条件を満たすと判定すると、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させるステップと、前記所定条件を満たさないと判定すると、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させるステップと、をコンピュータに実行させることを特徴とするプログラムとした。
【００２０】
また、請求項９に記載の発明は、端末装置間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定するステップと、前記所定条件を満たすと判定すると、複数の端末装置同士をネットワークを介して接続させて、コンテンツデータを前記端末装置間で送受信させるステップと、前記所定条件を満たさないと判定すると、前記コンテンツデータを記憶した記憶装置を前記複数の端末装置のそれぞれと前記ネットワークを介してクライアント−サーバ形式で接続して、各前記端末装置に前記コンテンツデータを配信させるステップと、を有する情報処理装置によるコンテンツ配信制御方法とした。
【発明の効果】
【００２１】
本発明によれば、コンテンツ配信サービスに参加する端末装置の数や各々の通信能力等の端末装置の状態に応じて、ツリー型トポロジーでのコンテンツデータの配信とクライアント−サーバ方式でのコンテンツデータの配信とが切り替えられる。そのため、端末装置の状態が変化する場合においてもコンテンツデータの配信を行うことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１実施形態に係るコンテンツ配信システムの各端末装置、情報処理装置の接続態様の一例を示す図である。
【図２】第１実施形態におけるコンテンツ配信システムの概要説明図である。
【図３】図１に示す情報処理装置の構成図である。
【図４】図１に示す情報処理装置のメイン処理フローチャートである。
【図５】図１に示す情報処理装置における配信処理のフローチャートである。
【図６】図１に示す情報処理装置における接続処理のフローチャートである。
【図７】図１に示す情報処理装置における離脱処理のフローチャートである。
【図８】図１に示す端末装置の構成図である。
【図９】図１に示す端末装置の処理フローチャートである。
【図１０】第２実施形態における情報処理装置のメイン処理フローチャートである。
【図１１】第２実施形態における端末装置のメイン処理のフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明のいくつかの実施形態を図面に基づいて説明する。なお、説明は以下の順序で行うものとする。
１．第１実施形態（放送方式のＰ２Ｐコンテンツ配信）
２．第２実施形態（オンデマンド方式のＰ２Ｐコンテンツ配信）
３．その他の例
【００２４】
〔１．第１実施形態〕
〔１．１．概要〕
まず始めに、図１を参照して、第１実施形態におけるコンテンツ配信システムの概要について説明する。
【００２５】
図１の下部枠５１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Ｓervice Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者の装置５、ＦＴＴＨ（Fiber To The Home）回線事業者の装置６、及び通信回線７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。通信回線７として、例えば、ＡＤＳＬ回線や光通信回線等がある。
【００２６】
本実施形態のコンテンツ配信システムＳは、図１の上部枠５０内に示すように、ネットワーク８に接続された情報処理装置１、複数の端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８を備えて構成される。なお、以下においては、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８のいずれかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置２という場合がある。
【００２７】
このコンテンツ配信システムＳにおいては、図１の上部枠５０内に示すように、情報処理装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８がツリー状階層構造で論理接続されてオーバーレイネットワーク９が構築される。なお、以下において、オーバーレイネットワーク９上に配置された端末装置２を、コンテンツ配信システムＳに参加している端末装置２という。また、情報処理装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８には、各装置を識別する情報として、例えば、ＩＰ（Internet Protocol）アドレスが割り当てられている。各装置は、目的の接続先装置のＩＰアドレスを宛先ＩＰアドレス、自装置のＩＰアドレスを送信元ＩＰアドレスとしたヘッダを含むパケットを送受信することによって他の装置と通信接続が可能となっている。
【００２８】
コンテンツ配信システムＳは、ツリー型トポロジー形式の配信システムである。情報処理装置１を頂点として複数の端末装置２がネットワーク８を介してツリー状階層構造で多層に論理接続されるように情報処理装置１によって管理される。第１実施形態では、放送方式で各端末装置２へコンテンツデータが配信される。コンテンツデータとして、例えば、音楽や映画などの動画コンテンツのデータや文書データなどがある。
【００２９】
また、情報処理装置１は、コンテンツデータを配信する機能を備えており、コンテンツデータを端末装置２ａ１，２ａ２へ送信する。端末装置２ａ１，２ａ２は上流に接続した情報処理装置１からコンテンツデータを受信すると、下流に接続した端末装置（以下、「下流装置」とも呼ぶ。）２ｂ１〜２ｂ４へ受信したコンテンツデータを中継する。同様に、端末装置２ｂ１〜２ｂ４は上流に接続した端末装置（以下、「上流装置」とも呼ぶ）２ａ１，２ａ２からコンテンツデータを受信すると、下流に接続した端末装置２ｃ１〜２ｃ８へ受信したコンテンツデータを送信する。
【００３０】
上述のようにツリー状階層構造は、情報処理装置１によって管理されている。情報処理装置１は、コンテンツ配信システムＳに参加していない端末装置２、換言すればツリー状階層構造へ接続していない端末装置２から接続先候補の問い合わせを受け付ける。接続先候補の問い合わせを受け付けた情報処理装置１は、ツリー状階層構造の状態から当該ツリー状階層構造を構成する端末装置２のうち接続先候補となる端末装置２をいくつか決定する。そして、情報処理装置１は、上記問い合わせを行った端末装置２へ決定した接続先候補を通知する。このように情報処理装置１から複数の接続先候補を受信した端末装置２は、これらの接続先候補のうち一の接続先候補を選択する。そして、接続先候補を受信した端末装置２は、接続先候補として選択した端末装置２へネットワーク８を介して接続要求を行って、接続先候補として選択した端末装置２を上流装置としてツリー状階層構造に接続して参加する。
【００３１】
なお、本実施形態では、一つの端末装置２の下流に最大２つの端末装置２が接続されるものとして説明するが、これに限られない。一つの端末装置２の下流に３つ以上の端末装置２を接続することができるようにしてもよい。また、情報処理装置１は物理的に一体的に形成された装置である必要はなく、例えば、コンテンツ配信処理を行う装置とツリー状階層構造の管理処理とを行う装置とにより構成することもできる。
【００３２】
ところで、各端末装置２は、通信回線に接続されて、ツリー状階層構造を構成する。従って、接続される通信回線の帯域幅によってはコンテンツデータの配信に支障を来すことがある。
【００３３】
例えば、図１に示す端末装置２ｃ１，２ｃ３〜３ｃ８のように、上りの帯域が狭いＡＤＳＬのような通信回線に接続されていると、上流の端末装置２から順次受信したコンテンツデータを下流装置に送信することが困難となる場合がある。例えば、接続されたＡＤＳＬ回線が、ＩＴＵ−ＴＳ(国際電気通信連合電気通信標準化部門)勧告のＧ．９９２規格に準拠して、上りの帯域が最大８Ｍｂｐｓ、下り帯域が最大６４０ｋｂｐｓの場合に、１Ｍｂｐｓでコンテンツデータが配信されると、上流装置からの受信は問題なく行えるものの、下流装置への送信は滞ってしまうことになる。
【００３４】
そこで、情報処理装置１によって、帯域が広い光通信回線に接続されて通信速度が速い端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４をツリー状階層構造の上流側になるように配置し、上りの帯域が狭く、上りの通信速度が遅いＡＤＳＬに接続された端末装置２ｃ１，２ｃ３〜２ｃ７をツリー状階層構造の下流側になるように配置するようにその接続を管理するようにしている。通信速度が低い端末装置を中継能力が低い端末装置として、下位階層に配置する技術については、例えば、特開２００３−１６９０８９号公報等で公知であるので、詳細な説明は省略する。
【００３５】
しかし、コンテンツ配信システムＳに参加している端末装置２に対してＡＤＳＬに接続された端末装置２が多いような場合がある。この場合、情報処理装置１でツリー状階層構造の構成を管理したとしても、上流側にＡＤＳＬに接続された端末装置２が配置されることがあり、コンテンツデータの配信に遅延が生じる場合がある。
【００３６】
そこで、本実施形態のコンテンツ配信システムＳにおいては、このような場合には、ツリー状階層構造を構成することなく、情報処理装置１と複数の端末装置２のそれぞれとをネットワーク８を介してクライアント−サーバ形式で接続している。そして、クライアントサーバ形式で情報処理装置１から各端末装置２にコンテンツデータが配信される。
【００３７】
すなわち、ツリー状階層構造を構成してコンテンツデータの配信を行える場合には、情報処理装置１は複数の端末装置２をネットワーク８を介してツリー状階層構造で多層に論理接続させる。そして、情報処理装置１は、コンテンツデータをツリー状階層構造の上流の端末装置２に供給して、当該上流の端末装置２から下流の端末装置２にかけて端末装置２の中継機能によってコンテンツデータを配信させる。一方、ツリー状階層構造を構成してコンテンツデータの配信を行えない場合には、情報処理装置１は複数の端末装置２のそれぞれとネットワーク８を介してクライアント−サーバ形式で接続する。これにより、クライアント−サーバ形式によって各端末装置２にコンテンツデータが配信される。
【００３８】
このように参加する端末装置２の状態に応じて、ツリー状階層構造によるＰ２Ｐ方式によるコンテンツデータの配信モード（以下、「Ｐ２Ｐ型配信モード」とする）とクライアント−サーバ方式によるコンテンツデータの配信モード（以下、「Ｃ／Ｓ型配信モード」とする）とが切り替えられる。このように切り替えられることで、参加する端末装置２の状態が変化する場合においてもコンテンツデータの配信を行うことができる。
【００３９】
Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとは、例えば、各端末装置２の参加及び離脱のタイミング、または、コンテンツデータの配信が開始されるタイミングで切り替えられる。具体的には、端末装置２の状態に基づいて、ツリー状階層構造を形成してコンテンツデータの配信をするための条件を満たすか否かが判定される。その具体的条件は、例えば、以下の（条件１），（条件２）のいずれか又はいずれも適用することができる。
（条件１）コンテンツ配信システムＳに参加している複数の端末装置２のうち通信速度（帯域幅）が規定値以上である端末装置２の割合が所定以上であること。
（条件２）コンテンツ配信システムＳに参加している複数の端末装置２の数が、所定数以上であること。
【００４０】
ここで、上記規定値は、コンテンツデータの配信速度よりも速い通信速度である。下りの通信速度（受信速度）はコンテンツデータを遅延なく受信することができる通信速度である。上りの通信速度（送信速度）は下流に最大数の端末装置２（ここでは２つの端末装置２）にコンテンツデータを遅延なく配信することができる通信速度である。例えば、コンテンツデータの配信速度が１Ｍｂｐｓの場合、下りの通信速度は１Ｍｂｐｓ以上で、望ましくは２Ｍｂｐｓ以上、上りの通信速度は２Ｍｂｐｓ以上で、望ましくは４Ｍｂｐｓ以上である。
【００４１】
また、上記条件１を適用する場合、例えば、参加している複数の端末装置２のうち通信速度が規定値以上の端末装置２が全体の６０％以上であることを条件とする。第１実施形態では、通信速度が規定値以上の端末装置２が全体の５０％以上あるときには、情報処理装置１により、ツリー状階層構造のうち最下流以外に通信速度が規定値以上の端末装置２を配置することができるが、システムの運用にあたっては余裕を持たせることが望ましい。従って、端末装置２の離脱等を考慮すると、規定値以上の端末装置２が全体の６０％以上であることを、第１実施形態では条件としている。但し、通信速度が規定値以上の端末装置２が規定値未満の場合であっても、参加している端末装置２の数が少ない場合（例えば、端末装置２が１００台以下）には、規定値以上の端末装置２が全体の７０％以上とする。システムの運用にあたっては余裕を持たせることができる。例えば、端末装置２の数が１０００台のときには、通信速度が規定値以上の端末装置２の割合が５０％とする。このとき、通信速度が規定値未満の端末装置２が３台連続して参加してくる確率は１２．５％（＝０．５3×１００％）であり、通信速度が規定値未満の端末装置２が１０台連続して参加してくる確率は約０．１％（＝０．５10×１００％）である。このことから、通信速度が規定値以上の端末装置２が、通信速度が規定値未満の端末装置２よりも１０台以上多いことを条件とすることが望ましい。通信速度が規定値未満の端末装置２が１０台連続して参加してきた場合でも、参加してきた端末装置２を全て通信速度が規定値以上の端末装置２に接続できるからである。このようにすることで、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとの切り替えが頻繁に発生することを抑制することができ、コンテンツデータの配信を安定させることができる。なお、通信速度が規定値以上の端末装置２が全体の６０％以上ある場合であっても、参加している端末装置２の数が少なく、小さなツリー状階層構造しか形成できないときには、Ｐ２Ｐ型配信モードとせずにＣ／Ｓ型配信モードとするようにしてもよい。端末装置２の離脱等を考慮した場合、サーバ−クライアント方式での配信の方が安定しているためである。
【００４２】
なお、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとの切り替えは、上記条件に限定する必要はなく、運用上、種々の条件を設定することもできる。
【００４３】
また、端末装置２の通信速度は、コンテンツ配信システムＳへの参加時に、端末装置２が通信速度測定用サーバ（図示せず）との間で通信することによって測定される。すなわち、端末装置２はコンテンツ配信システムＳへの参加時に、通信速度測定用サーバへ接続し、通信速度測定用サーバとの間で所定データ量のテストデータを送受信し、その送受信時間を検出することによって測定される。このように端末装置２で測定された情報は、情報処理装置１へ送信され、当該情報処理装置１に記憶される。これにより、情報処理装置１において、端末装置２の通信速度に基づいた上記条件の判定が可能となる。なお、テストデータの送受信時間の測定は、端末装置２で行わずに通信速度測定用サーバで行うようにしてもよい。これにより、端末装置２の処理負荷を軽減することができる。また、端末装置２が自装置の接続回線の情報を記憶している場合には、その情報を情報処理装置１へ通知し、情報処理装置１がその接続回線の情報に基づいて、端末装置２の通信速度を判定するようにしてもよい。
【００４４】
また、情報処理装置１は、上述のように通信速度が速い端末装置２がツリー状階層構造の上流側になるようにその接続を管理している。Ｃ／Ｓ型配信モードからＰ２Ｐ型配信モードへ移行するとき、情報処理装置１は、通信速度が規定値以上である端末装置２を優先的に前記階層構造の上流に接続させる。このようにすることで、通信速度が遅い端末装置２が多い場合であってもツリー状階層構造が形成される可能性が高くなり、情報処理装置１の配信負荷も低減することが可能となる。
【００４５】
一方、Ｐ２Ｐ型配信モードからＣ／Ｓ型配信モードへ移行するとき、情報処理装置１は、ツリー状階層構造を形成する端末装置２のうち下流の端末装置２から優先的にツリー状階層構造から離脱させて接続する。このようにすることで、ツリー状階層構造においてコンテンツデータの配信遅延の原因となる端末装置２を迅速にツリー状階層構造から離脱させることができる。また、配信モードの移行過程において、ツリー状階層構造でのコンテンツデータの配信を行いつつも、ツリー状階層構造を徐々に消滅させることができる。その結果、ツリー状階層構造でのコンテンツデータの配信を急に終わらせることに比べて、配信モードの移行をよりスムーズに行うことが可能となる。
【００４６】
また、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとの切り替えは、全ての端末装置２に対して行うのではなく、一部の端末装置２に対してのみ行うようにすることもできる。
【００４７】
例えば、Ｃ／Ｓ型配信モードからＰ２Ｐ型配信モードへの切り替えを、図２に示すように、一部の端末装置２に対してのみ行うようにすることもできる。すなわち、ツリー状階層構造を全ての端末装置２で形成するとコンテンツデータを滞りなく配信することができないとき、一部の端末装置２でツリー状階層構造を構成してコンテンツデータが配信される。一方、その残りの端末装置２に対しては引き続きクライアント−サーバ方式でコンテンツデータが配信される。このようにすることで、全ての端末装置２に対してクライアント−サーバ方式を適用するのに比べて、情報処理装置１で直接コンテンツデータを配信しなければならない端末装置２を低減することができる。
【００４８】
このようにする場合、情報処理装置１は、各端末装置２の参加又は離脱のタイミングで、上記切り替え条件を満たすか否かを判定する。上記切り替えの条件を満たすときには、全ての端末装置２でツリー状階層構造を形成してコンテンツデータが配信される。一方、上記切り替え条件を満たさない場合には、ツリー状階層構造を構成することができる端末装置２でツリー状階層構造を形成し、それ以外の端末装置２とは直接接続する。
【００４９】
以上のように、本実施形態にかかるコンテンツ配信システムＳでは、参加する端末装置２の状態に応じて、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとが切り替えられるようにしている。そのため、参加する端末装置２の状態が変化する場合においてもコンテンツデータの配信を行うことができる。以下、情報処理装置１及び端末装置２の具体的構成及び動作の一例について説明する。
【００５０】
［１．２．情報処理装置１の具体的構成及び動作の説明］
まず、情報処理装置１の具体的構成及び動作の一例について説明する。
【００５１】
（情報処理装置１の構成について）
まず、情報処理装置１の具体的構成について説明する。図３は、本実施形態のコンテンツ配信システムＳにおける情報処理装置１の構成を示す図である。
【００５２】
情報処理装置１は、一般のサーバコンピュータを適用可能である。図３に示すように、情報処理装置１は、制御部１１と、記憶部１２と、通信部１３と、操作部１４とを備えている。制御部１１と、記憶部１２と、通信部１３と、操作部１４とは、システムバス１５を介して相互に接続されている。制御部１１は、情報処理装置１全体を制御する。記憶部１２は、各種情報を記憶する記憶領域を有する書き換え可能な記憶装置である。通信部１３は、端末装置２と通信するための通信インターインターフェイスである。操作部１４は、各種設定入力を行うための操作部である。
【００５３】
制御部１１は、ＣＰＵ（Central Processing Unit）、内部メモリなどから構成される。この内部メモリには、端末装置２と間でのコンテンツデータやその他のメッセージを送受信するための情報処理プログラムが格納されている。ＣＰＵは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、第１処理手段、第２処理手段、判定処理手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク８に接続された他のサーバから、通信部１３を介して、制御部１１の内部メモリにダウンロードされるようにしてもよい。また、この情報処理プログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部１１の内部メモリに読み込まれるようにしてもよい。
【００５４】
記憶部１２は、端末装置２へ配信するコンテンツデータ及びその配信スケジュールを記憶するコンテンツ記憶領域、コンテンツ配信システムＳへ参加している端末装置２の情報（以下、「端末装置情報」とする）を記憶する端末装置情報記憶領域を有している。さらに、記憶部１２は、Ｐ２Ｐ型配信モードで形成されるツリー状階層構造における各端末装置２の配置情報（以下、「トポロジー情報」とする）を記憶するトポロジー情報記憶領域、その他各種設定の情報を記憶する設定情報記憶領域などを有している。なお、「端末装置情報報」とは、例えば、端末装置２の所在情報（例えば、ＩＰアドレス）や通信速度の情報などの情報である。
【００５５】
（情報処理装置１の具体的動作について）
以上のように構成された情報処理装置１の動作を図面を参照して具体的に説明する。図４は本実施形態における情報処理装置１のメイン処理フローチャートである。なお、以下の各処理は、情報処理装置１の制御部１１が上述した各手段等として機能することによって実行されるものである。
【００５６】
情報処理装置１においてメイン電源スイッチ（図示せず）がＯＮされたときやリセットスイッチ（図示せず）が操作されたとき、サーバ装置としての処理を開始する。このとき、制御部１１のＣＰＵは、内部メモリに記憶した情報処理プログラムを実行状態として、制御部１１としての機能を動作状態する。
【００５７】
図４に示すように、制御部１１は、記憶部１２のコンテンツ記憶領域に記憶した配信スケジュールの情報に基づいて、配信開始前か否か、すなわちコンテンツデータの配信開始時間に到達していないかどうかを判定する（ステップＳ１１）。配信前である判定すると（ステップＳ１１：Ｙｅｓ）、制御部１１は、配信処理を実行する（ステップＳ１２）。この配信処理は、図５に示すステップＳ３０〜Ｓ４６の処理であり、後で詳述する。
【００５８】
ステップＳ１２の処理が終了したとき、又は、配信前ではないと判定したとき（ステップＳ１１：Ｎｏ）、制御部１１は、端末装置２からの接続要求が発生したか否かを判定する（ステップＳ１３）。この処理において、制御部１１は、通信部１３を介して端末装置２から接続要求メッセージを受信したときに、端末装置２からの接続要求が発生したと判定する。
【００５９】
端末装置２からの接続要求が発生したと判定すると（ステップＳ１３：Ｙｅｓ）、制御部１１は、登録した端末装置２（以下、「登録端末装置２」とする）からの再接続要求か否かを判定する（ステップＳ１４）。この処理において、制御部１１は、この接続要求を行った端末装置２の情報が記憶部１２の端末情報記憶領域に記憶されているときに、登録端末装置２からの再接続要求であると判定する。
【００６０】
ステップＳ１４において、登録端末装置２からの再接続要求ではないと判定すると（ステップＳ１４：Ｎｏ）、制御部１１は、端末装置情報を記憶部１２の端末情報記憶領域に記憶して登録する（ステップＳ１５）。この端末装置情報は、再接続要求を行った端末装置の識別情報、所在情報（例えば、ＩＰアドレス）、通信速度の情報などを含む情報である。
【００６１】
ステップＳ１５の処理が終了したとき、又は、登録した端末装置からの再接続要求であると判定したとき（ステップＳ１４：Ｙｅｓ）、制御部１１は、接続処理を行う（ステップＳ１６）。この接続処理は、図６に示すステップＳ５０〜Ｓ５６の処理であり、後で詳述する。
【００６２】
ステップＳ１６の処理が終了したとき、又は、端末装置２からの接続要求が発生していないと判定したとき（ステップＳ１３：Ｎｏ）、制御部１１は、登録端末装置２からの離脱要求が発生したか否かを判定する（ステップＳ１７）。この処理において、制御部１１は、登録端末装置２から離脱要求メッセージが送信されたときに、離脱要求が発生したと判定する。
【００６３】
登録端末装置２からの離脱要求が発生したと判定すると（ステップＳ１７：Ｙｅｓ）、制御部１１は、端末装置情報を記憶部１２の端末装置情報記憶領域から削除し（ステップＳ１８）、離脱処理を行う（ステップＳ１９）。この離脱処理は、図７に示すステップＳ６０〜Ｓ６７の処理であり、後で詳述する。
【００６４】
ステップＳ１９の処理が終了したとき、又は、登録端末装置２からの離脱要求が発生していないと判定したとき（ステップＳ１７：Ｎｏ）、制御部１１は、サーバ処理の終了指示を検出したかを判定する（ステップＳ２０）。例えば、自情報処理装置１の電源がＯＦＦ状態へ移行したとき、制御部１１は、終了指示を検知する。制御部１１は、終了指示を検知したと判定すると（ステップＳ２０：Ｙｅｓ）、メイン処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ２０：Ｎｏ）、ステップＳ１１からの処理を繰り返す。
【００６５】
次に、ステップＳ１２で実行される配信処理について図５のフローチャートを参照して具体的に説明する。図５は情報処理装置１における配信処理のフローチャートである。この配信処理は、コンテンツデータの配信開始前から配信開始時までの処理である。
【００６６】
図５に示すように、配信処理を開始すると、制御部１１は、登録端末装置２からの接続要求メッセージが送信されて、接続要求があるか否かを判定する（ステップＳ３１）。この処理において、接続要求があったと判定すると（ステップＳ３１：Ｙｅｓ）、制御部１１は、端末装置２から送信される接続要求メッセージに含まれる当該端末装置２の端末装置情報を記憶部１２の端末装置情報記憶領域に記憶して登録する（ステップＳ３２）。
【００６７】
一方、接続要求がないと判定すると（ステップＳ３１：Ｎｏ）、制御部１１は、ステップＳ１７と同様に、登録端末装置２から離脱要求メッセージが送信され、離脱要求があるか否かを判定する（ステップＳ３４）。登録端末装置２からの離脱要求があると判定すると（ステップＳ３４：Ｙｅｓ）、制御部１１は、離脱要求メッセージを送信した端末装置２の端末装置情報を記憶部１２の端末装置情報記憶領域から削除する（ステップＳ３５）。
【００６８】
ステップＳ３２，Ｓ３５の処理が終了したとき、又は、登録端末装置２からの離脱要求がないと判定したとき（ステップＳ３４：Ｎｏ）、制御部１１は、コンテンツデータの配信開始時間に到達しているか否かを判定する（ステップＳ３７）。このとき、コンテンツデータの配信開始時間に到達していないと判定すると（ステップＳ３７：Ｎｏ）、制御部１１は、処理をステップＳ３１に戻す。一方、コンテンツデータの配信開始時間に到達していると判定すると（ステップＳ３７：Ｙｅｓ）、制御部１１は、登録端末装置２があるか否かを判定する（ステップＳ３８）。この処理において、制御部１１は、記憶部１２の端末装置情報記憶領域に端末装置情報を記憶した端末装置２があるときに、登録端末装置２があると判定する。
【００６９】
登録端末装置２があるとき（ステップＳ３８：Ｙｅｓ）、制御部１１は、通信速度が規定値以上の端末装置２（以下、「高速端末装置２」ともいう）の数及び割合が閾値以上であるか否かを判定する（ステップＳ３９）。この処理において、制御部１１は、コンテンツ配信システムＳに参加している端末装置２の数に対して、高速端末装置２の数が規定値以上あり、高速端末装置２の数の割合も規定値以上あるときに、高速端末装置２の数及び割合が閾値以上であると判定する。例えば、端末装置２の数が１０００台のときには、高速端末装置２の数が、それ以外の端末装置２の数よりも１０台以上多く、かつ高速端末装置２が全体の６０％以上であるときに、高速端末装置２の数及び割合が閾値以上であると判定する。このように、制御部１１は、ツリー状階層構造の形成を行うための条件を満たすか否かを判定する判定処理手段として機能する。
【００７０】
高速端末装置２の数及び割合が閾値以上あると判定すると（ステップＳ３９：Ｙｅｓ）、制御部１１は、記憶部１２の設定情報記憶領域における設定配信モードの情報をＰ２Ｐ型配信モードに設定し（ステップＳ４０）、登録端末装置２によりツリー状階層構造を形成するための情報であるトポロジー情報を作成する（ステップＳ４１）。このトポロジー情報は、各登録端末装置２がツリー状階層構造のどの位置に配置されるのかを示す情報であり、高速端末装置２が上流側に配置されるように生成される。
【００７１】
その後、制御部１１は、トポロジー情報に基づき、全ての登録端末装置２に対して、それぞれの接続位置の情報を通知する（ステップＳ４２）。このとき、制御部１１は、登録端末装置２へ接続位置の情報を通知して、上流側から順にツリー状階層構造を形成させる。
【００７２】
全ての登録端末装置２によりツリー状階層構造が形成されると、制御部１１は、ツリー状階層構造の最上流に配置された登録端末装置２にコンテンツデータのストリーム配信を開始して（ステップＳ４３）、配信処理を終了する。ツリー状階層構造の最上流に配置された登録端末装置２とは、例えば、図１に示す例では、端末装置２ａ１，２ａ２である。このように、制御部１１は、複数の端末装置２同士をネットワークを介して接続させて、端末装置２間でコンテンツデータを配信させる第１処理手段として機能する。特に、制御部１１は、第１処理手段として、複数の端末装置２をネットワーク８を介してツリー状階層構造で多層に論理接続させて、コンテンツデータをツリー状階層構造の上流の端末装置２に供給し、当該上流の端末装置２から下流の端末装置２にかけて端末装置２の中継機能によってコンテンツデータを配信させるようにしている。
【００７３】
ステップＳ３９において、高速端末装置２の数及び割合が閾値以上ではないと判定すると（ステップＳ３９：Ｎｏ）、制御部１１は、記憶部１２の設定情報記憶領域における設定配信モードの情報をＣ／Ｓ型配信モードに設定する（ステップＳ４４）。その後、制御部１１は、登録端末装置２のそれぞれとネットワーク８を介してクライアント-サーバ形式で接続を行って、各端末装置２へ通信部１３を介してコンテンツデータのストリーム配信を開始し（ステップＳ４５）、配信処理を終了する。このように、制御部１１は、複数の端末装置２のそれぞれとネットワーク８を介してクライアント−サーバ形式で接続して、端末装置２にコンテンツデータを配信する第２処理手段として機能する。なお、このとき、情報処理装置１は、コンテンツデータを記憶し、各端末装置２にコンテンツデータを配信する記憶装置として機能する。
【００７４】
また、ステップＳ３８において、端末装置情報を記憶した端末装置２がないとき（ステップＳ３８：Ｎｏ）、制御部１１は、記憶部１２の設定情報記憶領域における設定配信モードの情報をＣ／Ｓ型配信モードに設定して（ステップＳ４６）、配信処理を終了する。
【００７５】
次に、ステップＳ１６で実行される接続処理について図６のフローチャートを参照して具体的に説明する。図６は情報処理装置１における接続処理のフローチャートである。この接続処理は、配信開始後に端末装置２から接続要求が発生したときの処理である。
【００７６】
図６に示すように、接続処理を開始すると、制御部１１は、記憶部１２の設定情報記憶領域に設定された配信モードの情報に基づき、現在の配信モードがＣ／Ｓ型配信モードであるか否かを判定する（ステップＳ５０）。現在の配信モードがＣ／Ｓ型配信モードであると判定すると（ステップＳ５０：Ｙｅｓ）、制御部１１は、ステップＳ３９の処理と同様に、高速端末装置２の数及び割合が閾値未満あるか否かを判定する（ステップＳ５１）。このように、制御部１１は、ツリー状階層構造の形成を行うための条件を満たすか否かを判定する判定処理手段として機能する。
【００７７】
高速端末装置２の数及び割合が閾値未満であるとき（ステップＳ５１：Ｙｅｓ）、制御部１１は、接続要求を行った端末装置２とネットワーク８を介してクライアント-サーバ形式で接続を行う。その後、制御部１１は、接続要求を行った端末装置２に対しても通信部１３を介してコンテンツデータのストリーム配信を行い（ステップＳ５２）、接続処理を終了する。このとき、接続要求を行った端末装置２へ送信するコンテンツデータは、他の端末装置２へ送信中のコンテンツデータである。従って、接続要求を行った端末装置２では、放送されているコンテンツを途中から視聴することになる。
【００７８】
高速端末装置２の数及び割合が閾値未満ではないとき（ステップＳ５１：Ｎｏ）、制御部１１は、記憶部１２の設定情報記憶領域における設定配信モードの情報をＰ２Ｐ型配信モードに設定する（ステップＳ５３）。その後、制御部１１は、ステップＳ４１と同様に、トポロジー情報を作成する。そして、制御部１１は、情報処理装置１に接続している端末装置２（以下、「接続端末装置２」という）の中で、ツリー状階層構造の最上流となる端末装置２以外の端末装置２にＰ２Ｐ型配信モードへの変更を高速端末装置２から順に指示する。さらに。制御部１１は、再接続の要求を行った端末装置２に接続先候補を通知して（ステップＳ５４）、接続処理を終了する。これにより、これらの端末装置２によってツリー状階層構造が形成されて、コンテンツデータが配信される。なお、制御部１１は、トポロジー情報を作成する際に、高速端末装置２の中から、ツリー状階層構造の最上流となる端末装置２を選択する。そして、制御部１１は、ツリー状階層構造の最上流となる端末装置２には、接続先候補の通知を行わずに接続を維持して、コンテンツデータの配信を継続する。これにより、情報処理装置１は、コンテンツデータの配信処理を停止せずに済み、しかも最上流となる端末装置２には接続先候補を通知する必要がないため、処理負荷を軽減することができる。ただし、ツリー状階層構造の最上流となる端末装置２に対しても、Ｐ２Ｐ型配信モードへの変更を指示するようにしてもよい。このように、制御部１１は、複数の端末装置２をネットワーク８を介してツリー状階層構造で多層に論理接続させて、コンテンツデータをツリー状階層構造の上流の端末装置２に供給し、当該上流の端末装置２から下流の端末装置２にかけて端末装置２の中継機能によってコンテンツデータを配信させる第１処理手段として機能する。なお、情報処理装置１が配信するコンテンツデータには、再生時刻の情報が含まれており、現時刻よりも少し先の再生時刻（例えば、現時刻の１０秒後）のコンテンツデータを端末装置２へ配信する。端末装置２は情報処理装置１から配信されるコンテンツデータを後述するバッファメモリ２４に記憶し、現時刻と一致する再生時刻のコンテンツデータを再生する。従って、端末装置２は、Ｃ／Ｓ型配信モードからＰ２Ｐ型配信モードへ移行するまでの間は、バッファメモリ２４に記憶しているコンテンツデータを再生することができ、再生は中断しない。
【００７９】
ステップＳ５０において、現在の配信モードがＣ／Ｓ型配信モードではないと判定すると（ステップＳ５０：Ｎｏ）、制御部１１は、記憶部１２のトポロジー情報記憶領域にトポロジー情報に基づいて、接続先候補の端末装置２をいくつか選択し、当該選択した接続先候補の情報を通信部１３を介して、再接続の要求を行った端末装置２へ通知する（ステップＳ５５）。その後、制御部１１は、このステップＳ５５の処理に応じてトポロジー情報を変更し、記憶部１２のトポロジー情報記憶領域に記憶するトポロジー情報を更新して（ステップＳ５６）、接続処理を終了する。なお、再接続の要求を行った端末装置２は、再接続を行ったときにどの端末装置２に接続したかの情報を情報処理装置１へ通知するようにしている。制御部１１は、このように通知される情報に基づいてトポロジー情報を更新する。
【００８０】
次に、ステップＳ１９で実行される離脱処理について図７のフローチャートを参照して具体的に説明する。図７は情報処理装置１における離脱処理のフローチャートである。この接続処理は、配信開始後に端末装置２から離脱要求が発生したときの処理である。
【００８１】
図７に示すように、離脱処理を開始すると、制御部１１は、記憶部１２の設定情報記憶領域に設定された配信モードの情報に基づき、現在の配信モードがＣ／Ｓ型配信モードであるか否かを判定する（ステップＳ６０）。
【００８２】
現在の配信モードがＣ／Ｓ型配信モードであると判定すると（ステップＳ６０：Ｙｅｓ）、制御部１１は、離脱要求を行った端末装置２へのコンテンツデータのストリーム配信を停止し、さらにこの端末装置２との接続を切断して（ステップＳ６１）、離脱処理を終了する。
【００８３】
一方、現在の配信モードがＣ／Ｓ型配信モードではないと判定すると（ステップＳ６０：Ｎｏ）、制御部１１は、ステップＳ３９の処理と同様に、高速端末装置２の数及び割合が閾値未満あるか否かを判定する（ステップＳ６２）。
【００８４】
高速端末装置２の数及び割合が閾値未満であるとき（ステップＳ６２：Ｙｅｓ）、制御部１１は、ツリー状階層構造を構成する端末装置２のうち離脱要求を行った端末装置２を除いた全ての端末装置２へＣ／Ｓ型配信モードの変更を指示する。このとき、制御部１１は、記憶部１２のトポロジー情報記憶領域に記憶したトポロジー情報に基づいて、その配信モードの変更指示をツリー状階層構造の最下流となる端末装置２から上流となる端末装置２にかけて順次行うようにしている（ステップＳ６３）。その後、制御部１１は、記憶部１２の設定情報記憶領域に設定される配信モードを、Ｃ／Ｓ型配信モードに設定して（ステップＳ６４）、離脱処理を終了する。
【００８５】
ステップＳ６２において、高速端末装置２の数及び割合が閾値未満ではないとき（ステップＳ６２：Ｎｏ）、制御部１１は、記憶部１２に記憶したトポロジー情報に基づいて、離脱要求を行った端末装置２の下流に他の端末装置２が接続しているか否かを判定する（ステップＳ６５）。この処理において、例えば、図１に示す端末装置２ｂ４が離脱要求を行った端末装置２である場合、制御部１１は、端末装置２ｂ４の下流に端末装置２ｃ７，２ｃ８が接続されていると判定する。一方、図１に示す端末装置２ｃ６が離脱要求を行った端末装置２である場合、制御部１１は、端末装置２ｃ６の下流に端末装置２が接続されていないと判定する。
【００８６】
離脱要求を行った端末装置２の下流に他の端末装置２が接続していると判定すると（ステップＳ６５：Ｙｅｓ）、制御部１１は、記憶部１２に記憶したトポロジー情報に基づいて、接続先候補の端末装置２の情報を通知する（ステップＳ６６）。この処理において、制御部１１は、離脱要求を行った端末装置２の下流に接続してある端末装置２に対して、ツリー状階層構造を構成する端末装置２のうち離脱要求を行った端末装置２及びその下流の端末装置２を除いた端末装置２から接続先候補の端末装置２をいくつか選択する。その後、制御部１１は、当該選択した接続先候補の情報を通信部１３を介して、再接続の要求を行った端末装置２へ通知する。このステップＳ６６の処理が終了したとき、又は、離脱要求を行った端末装置２の下流に他の端末装置２が接続していないと判定したとき（ステップＳ６５：Ｎｏ）、制御部１１は、離脱要求を行った端末装置２の情報を記憶部１２に記憶したトポロジー情報から削除する等してトポロジー情報を変更して（ステップＳ６７）、離脱処理を終了する。
【００８７】
［１．３．端末装置２の具体的構成及び動作の説明］
以下、図面を参照して、上述した端末装置２の具体的構成及び動作の一例について説明する。
【００８８】
（端末装置２の構成について）
まず、端末装置２の構成について説明する。図８は、端末装置２の具体的構成を示す図である。
【００８９】
端末装置２は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図８に示すように、制御部２１、記憶部２２、バッファメモリ２４、デコーダ部２５、映像処理部２６、表示部２７、音声処理部２８、スピーカ２９、入力部３０、通信部３１を備えている。なお、制御部２１、記憶部２２、バッファメモリ２４、デコーダ部２５、通信部３１は、システムバス４０を介して相互に接続されている。
【００９０】
制御部２１は、ＣＰＵ（Central Processing Unit）、内部メモリから構成される。この内部メモリには、情報処理プログラムが格納されており、ＣＰＵは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、受信処理手段、送信処理手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク８に接続されたサーバ（例えば、情報処理装置１）から、通信部３１を介して、制御部２１の内部メモリにダウンロードされるようにしてもよい。また、例えば、この情報処理プログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部２１の内部メモリに読み込まれるようにしてもよい。
【００９１】
バッファメモリ２４は、ネットワーク８を介して取得したコンテンツデータを一時的に記憶するメモリであり、このバッファメモリ２４に記憶したコンテンツデータをデコーダ部２５により順次取り出してデコードする。デコードされたコンテンツデータのうち、映像情報は映像処理部２６により表示部２７で表示可能な情報に変換処理され、音声情報は音声処理部２８により、スピーカ２９で音波として出力可能な情報に変換処理される。
【００９２】
（端末装置２の動作について）
以上のように構成された端末装置２の動作を図面を参照して具体的に説明する。図９は端末装置２のメイン処理フローチャートである。なお、以下の各処理は、端末装置２の制御部２１が上述した各手段等として機能することによって実行されるものである。
【００９３】
端末装置２においてメイン電源スイッチ（図示せず）がＯＮされたときやリセットスイッチ（図示せず）が操作されたとき、制御部２１のＣＰＵは内部メモリに記憶した情報処理プログラムを実行状態として、制御部２１としての機能を動作状態にして、処理を開始する。
【００９４】
処理を開始すると、制御部２１は、コンテンツ視聴要求が発生したか否かを判定する（ステップＳ７０）。この処理において、制御部２１は、自端末装置２のユーザから入力部２０への操作によってコンテンツを視聴するための操作があったとき、コンテンツ視聴要求が発生したと判定する。
【００９５】
制御部２１は、コンテンツ視聴要求が発生するのを待ち（ステップＳ７０：Ｎｏ）、コンテンツ視聴要求が発生したと判定すると（ステップＳ７０：Ｙｅｓ）、ネットワーク８を介して図示しない通信速度測定用サーバに接続し、所定データ量のテストデータを通信速度測定用サーバと送受信して、自端末装置２の送信速度及び受信速度を通信速度として測定する（ステップＳ７１）。
【００９６】
次に、制御部２１は、情報処理装置１に対して接続要求を行う（ステップＳ７２）。この処理において、制御部２１は、自端末装置２の識別情報、所在情報、通信速度の情報などを含む接続要求メッセージを情報処理装置１へ送信して、接続要求を行う。
【００９７】
その後、制御部２１は、接続要求に対して情報処理装置１から配信モードの情報としてＣ／Ｓ型配信モードの情報を受信したか否かを判定する（ステップＳ７３）。
【００９８】
Ｃ／Ｓ型配信モードの情報を受信したと判定すると（ステップＳ７３：Ｙｅｓ）、制御部２１は、情報処理装置１と接続を行い、情報処理装置１からストリーム配信されるコンテンツデータを通信部３１を介して受信する。ネットワーク８を介して受信したコンテンツデータはバッファメモリ２４に一時的に記憶され、デコーダ部２５によってデコードされて、表示部２７やスピーカ２９により再生が開始される（ステップＳ７４）。
【００９９】
一方、Ｃ／Ｓ型配信モードの情報を受信していないと判定したとき、すなわち、Ｐ２Ｐ型配信モードの情報を受信したと判定したとき（ステップＳ７３：Ｎｏ）、制御部２１は、配信モードの情報と共に送られる情報に基づいて最初の接続端末装置２であるか否かを判定する（ステップＳ７５）。最初の接続端末装置２であると判定すると（ステップＳ７５：Ｙｅｓ）、制御部２１は、ステップＳ７４と同様に、情報処理装置１と接続し、情報処理装置１からストリーム配信されるコンテンツデータを通信部３１を介して順次取得して再生する（ステップＳ７６）。
【０１００】
ステップＳ７５において、最初の接続端末装置２ではないと判定すると（ステップＳ７５：Ｎｏ）、制御部２１は、情報処理装置１から通知された接続先候補である他の端末装置２に対して接続要求を行う（ステップＳ７７）。情報処理装置１から通知された複数の接続先候補のうちいずれかの接続先候補に接続して、このように接続した接続先候補である他の端末装置２からストリーム配信されるコンテンツデータを通信部３１を介して順次取得して再生する（ステップＳ７８）。
【０１０１】
ステップＳ７４，Ｓ７６，Ｓ７８の処理が終了すると、制御部２１は、情報処理装置１からＰ２Ｐ型配信モードへの変更指示を受信したか否かを判定する（ステップＳ７９）。この処理において、制御部２１は、動作モードがＣ／Ｓ型配信モードのときに、情報処理装置１からＰ２Ｐ型配信モードの情報を受信したときに、Ｐ２Ｐ型配信モードへの変更指示を受信したと判定する。Ｐ２Ｐ型配信モードへの変更指示を受信したと判定すると（ステップＳ７９：Ｙｅｓ）、制御部２１は、情報処理装置１に対して再接続要求を行う（ステップＳ８０）。この処理において、制御部２１は、自端末装置２の識別情報を含む再接続要求メッセージを通信部３１を介して情報処理装置１へ送信することによって、再接続要求を行う。
【０１０２】
再接続要求に応じて情報処理装置１から接続先候補の情報が通知されると、制御部２１は、通知された接続先候補である他の端末装置２に対して接続要求を行う（ステップＳ８１）。その後、制御部２１は、このように接続した接続先候補である他の端末装置２からストリーム配信されるコンテンツデータを通信部３１を介して順次取得して再生する（ステップＳ８２）。
【０１０３】
ステップＳ７９において、Ｐ２Ｐ型配信モードへの変更指示を受信していないと判定すると（ステップＳ７９：Ｎｏ）、制御部２１は、情報処理装置１からＣ／Ｓ型配信モードへの変更指示を受信したか否かを判定する（ステップＳ８３）。この処理において、制御部２１は、動作モードがＰ２Ｐ型配信モードのときに、情報処理装置１からＣ／Ｓ型配信モードの情報を受信したときに、Ｃ／Ｓ型配信モードへの変更指示を受信したと判定する。Ｃ／Ｓ型配信モードへの変更指示を受信したと判定すると（ステップＳ８３：Ｙｅｓ）、制御部２１は、情報処理装置１に対して再接続要求を行い（ステップＳ８４）、その後、情報処理装置１からストリーム配信されるコンテンツデータを通信部３１を介して順次取得し、再生する（ステップＳ８５）。
【０１０４】
ステップＳ８２，Ｓ８５の処理が終了したとき、又は、Ｃ／Ｓ型配信モードへの変更指示を受信していないと判定したとき（ステップＳ８３：Ｎｏ）、制御部２１は、その他の処理を実行する（ステップＳ８６）。
【０１０５】
ステップＳ８６において、例えば、ユーザから入力部２０への操作によってコンテンツの視聴を終了するための操作があったとき、制御部２１は、離脱要求メッセージを情報処理装置１へ送信することによって、情報処理装置１へコンテンツ視聴の終了を通知する。また、ツリー状階層構造において自端末装置の上流側に接続した端末装置２（以下、「上流端末装置２」とする）が突然にコンテンツ配信システムＳから離脱したとき、制御部２１は、自端末装置２の固有識別情報を含む再接続要求メッセージを通信部３１を介して情報処理装置１へ送信することによって、再接続要求を行う。制御部１１は、この再接続要求に応じて情報処理装置１から通知される接続先候補の他の端末装置２に接続し、この他の端末装置２からストリーム配信されるコンテンツデータを通信部３１を介して順次取得し、再生する。また、上流端末装置２の離脱予定の情報を情報処理装置１又は上流端末装置２から受信すると、制御部２１は、自端末装置２の固有識別情報を含む再接続要求メッセージを通信部３１を介して情報処理装置１へ送信することによって、再接続要求を行う。制御部１１は、この再接続要求に応じて情報処理装置１から通知される接続先候補の他の端末装置２に接続し、この他の端末装置２からストリーム配信されるコンテンツデータを通信部３１を介して順次取得し、再生する。また、他の端末装置２から接続要求があると、制御部２１は、接続要求を行った他の端末装置２を自端末装置２の下流の端末装置２として接続し、コンテンツデータのストリームを送信する。
【０１０６】
ステップＳ８６の処理が終了したとき、制御部２１は、端末処理の終了指示を検知したかを判定する（ステップＳ８７）。例えば、自端末装置２の電源がＯＦＦ状態へ移行したとき、制御部２１は、終了指示を検知する。終了指示を検知したと判定すると（ステップＳ８７：Ｙｅｓ）、制御部２１は、メイン処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ８７：Ｎｏ）、制御部２１は、ステップＳ７９からの処理を繰り返す。
【０１０７】
以上のように、第１実施形態におけるコンテンツ配信システムＳでは、端末装置２の状態に応じて、ツリー型トポロジーでのコンテンツデータの配信とクライアント−サーバ方式でのコンテンツデータの配信とを切り替えるようにしている。従って、端末装置２の状態が変化する場合においてもコンテンツデータの配信を行うことができる。
【０１０８】
なお、上述の実施形態では、通信速度として、受信速度（下りの帯域幅）と送信速度（上りの帯域幅）について規定値を満たすときに高速端末装置として判定したが、これに限られない。例えば、ＡＤＳＬに接続された端末装置２と光通信回線に接続された端末装置２としかないような場合には、送信速度のみを測定し、この送信速度が規定値を満たすときに高速端末装置として判定してもよい。
【０１０９】
〔２．第２実施形態〕
〔２．１．概要〕
まず始めに、第２実施形態におけるコンテンツ配信システムの概要について説明する。
【０１１０】
第２実施形態におけるコンテンツ配信システム（以下、「コンテンツ配信システムＳ’」という）は、視聴要求に応じてコンテンツデータを配信するオンデマンド方式のＰ２Ｐ型のコンテンツ配信システムである。このコンテンツ配信システムＳ’は、情報処理装置（以下、「情報処理装置１’」という）と複数の端末装置（以下、「端末装置２’」という）とを有している。また、複数の端末装置２’は互いにコンテンツデータを送受信するオーバーレイネットワークであるＰ２Ｐネットワーク（以下、「Ｐ２ＰネットワークＮ」という）を構成可能としている。複数の端末装置２’には、複数のコンテンツデータが分散保存される。
【０１１１】
このシステムＳ’では、各端末装置２’とコンテンツデータにそれぞれ固有の識別ＩＤが割り当てられている。固有の識別ＩＤとして端末装置２’には端末ＩＤが割り当てられる。また、固有の識別ＩＤとしてコンテンツデータにはコンテンツＩＤが割り当てられる。端末装置２’がＰ２ＰネットワークＮを構成している場合、この識別ＩＤに基づいて、端末装置２’間でデータの送受信が行われる。本実施形態においては、各識別ＩＤはｎビットの数字で規定される。また、コンテンツＩＤを超えず、このコンテンツＩＤに最も近い端末ＩＤを有する端末装置２’（以下、「ルートノード」と呼ぶ。）がそのコンテンツＩＤに対応するインデックステーブルを記憶している。このインデックステーブルは、コンテンツＩＤに対応するコンテンツデータを保持するコンテンツホルダの所在情報とコンテンツＩＤとを関連づけたテーブルである。なお、コンテンツホルダの所在情報は、例えば、コンテンツホルダのＩＰアドレスである。各端末装置２’はコンテンツデータを取得すると、コンテンツホルダとなり、ルートノード宛に自装置の所在情報などを含む登録メッセージをルートノードに送信する。また、各端末装置２’は、一部の端末装置２’の所在情報を記憶しており、所在情報を記憶した端末装置２’のうち宛先の識別ＩＤに最も近い番号の端末装置２’を選択してメッセージを送信又は転送する。なお、上述した分散保存を含む具体的な動作については、例えば、特開２００８−２５０５７０号公報等に記載された公知の技術であるため、ここでは説明を省略する。
【０１１２】
第２実施形態のコンテンツ配信システムＳ’では、まず、情報処理装置１’から一部の端末装置２’にコンテンツデータが送信される。これにより、端末装置２’がＰ２ＰネットワークＮを構成している場合、コンテンツ配信システムＳ’においてコンテンツデータの送受信が可能となる。この場合、端末装置２’間でコンテンツデータが送受信され、コンテンツホルダとなる端末装置２’が増加する。しかし、コンテンツホルダの数が少ないにも関わらず、コンテンツデータを要求する端末装置２’（以下、「リクエスタ」という）が多すぎると、リクエスタでコンテンツデータを受信できない場合がある。また、Ｐ２ＰネットワークＮから端末装置２’の離脱が頻繁に行われる場合も同様にリクエスタでコンテンツデータを受信できない場合がある。
【０１１３】
そこで、第２実施形態における情報処理装置１’は、端末装置２’同士を接続してＰ２Ｐ形式でコンテンツデータを配信させるＰ２Ｐ配信モードと、情報処理装置１’と端末装置２’間でクライアント−サーバ形式でコンテンツデータを配信するＣ／Ｓ型配信モードとを切り替えるようにしている。
【０１１４】
例えば、端末装置２’の数が情報処理装置１’の配信能力を超えていない場合には、Ｃ／Ｓ型配信モードでコンテンツデータの配信を行う一方、情報処理装置１’の配信能力を超えている場合には、Ｐ２Ｐ配信モードでコンテンツデータを配信させる。また、例えば、コンテンツ配信システムＳ’に参加している複数の端末装置２’のうち通信速度（帯域幅）が規定値以上である端末装置２’の割合が所定以上であるか否かを判定して配信モードを変える。すなわち、通信速度が規定値以上である端末装置２’の割合が所定以上であるときには、Ｐ２Ｐ配信モードでコンテンツデータを配信させる。また、通信速度が規定値以上である端末装置２’の割合が所定以上でないときには、Ｃ／Ｓ型配信モードでコンテンツデータの配信を行うようにしてもよい。
【０１１５】
このように端末装置２’の数や各々の通信能力等の端末装置２’の状態に応じて、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとを切り替えるようにすることで、リクエスタの状態が変化する場合においてもコンテンツデータの配信を行うことができる。
【０１１６】
Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとの切り替えは、端末装置２’の状態に基づき、Ｐ２Ｐ型配信モードでコンテンツデータの配信をするための条件を満たすか否かを判定することによって行われる。例えば、上述のように、端末装置２’の数が情報処理装置１’の配信能力を超えているときに、コンテンツデータの配信をするための条件を満たすと判定する。また、コンテンツ配信システムＳ’に参加している複数の端末装置２’のうち通信速度（帯域幅）が規定値以上である端末装置２’の割合が所定以上であるとき、コンテンツデータの配信をするための条件を満たすと判定するようにしてもよい。なお、１実施形態と同様に、Ｐ２Ｐ型配信モードとＣ／Ｓ型配信モードとの切り替えは、全ての端末装置２’に対して行うのではなく、一部の端末装置２’に対してのみ行うようにすることもできる。また、単に、端末装置２’の数だけで、コンテンツデータの配信をするための条件を満たすか否かを判定するようにしてもよい。
【０１１７】
［２．２．情報処理装置１’の具体的動作の説明］
次に、情報処理装置１’の具体的動作の一例について説明する。なお、情報処理装置１’の具体的構成は、第１実施形態の情報処理装置１と制御部１１の情報処理プログラム以外は同様であり、以下においては同一符号を用いて説明し、ここでは説明を省略する。
【０１１８】
図１０に示すように、処理が開始すると、制御部１１は、記憶部１２の設定情報記憶領域における設定配信モードの情報をＣ／Ｓ型配信モードに設定する（ステップＳ１００）。
【０１１９】
次に、制御部１１は、コンテンツ投入指示が発生したか否かを判定する（ステップＳ１０１）。この処理において、制御部１１は、例えば、記憶部１２に記憶したコンテンツ配信情報で規定される配信時刻になると、コンテンツ投入指示が発生したと判定する。コンテンツ投入指示が発生したと判定すると（ステップＳ１０１：Ｙｅｓ）、制御部１１は、コンテンツ配信システムＳ’を構成する複数の端末装置２’のうち一部の端末装置２’に対してコンテンツデータを送信して、この一部の端末装置２’をコンテンツホルダとして機能させる（ステップＳ１０２）。このように、制御部１１は、端末装置２’間でコンテンツデータを送受信させるために、複数の端末装置２’のうち１以上の端末装置２’へコンテンツデータを、ネットワーク８を介して直接送信するコンテンツ投入手段として機能する。
【０１２０】
ステップＳ１０２の処理が終了したとき、又は、コンテンツ投入指示が発生していないと判定したとき（ステップＳ１０１：Ｎｏ）、制御部１１は、端末装置２’からコンテンツ配信システムＳ’への参加要求があったか否かを判定する（ステップＳ１０３）。この処理において端末装置２’から接続要求があったと判定すると（ステップＳ１０３：Ｙｅｓ）、制御部１１は、接続要求を行った端末装置２’の端末装置情報を記憶部１２の端末装置情報記憶領域に記憶する（ステップＳ１０４）。なお、「端末装置情報」とは、例えば、端末装置２の所在情報（例えば、ＩＰアドレス）や通信速度の情報などの情報である。この端末装置情報は、制御部１１が、後述するＰ２Ｐ型配信モード設定要求やＣ／Ｓ型配信モードの変更指示を行うときなどに用いられるものである。
【０１２１】
端末装置情報を記憶した後、制御部１１は、Ｐ２Ｐ型配信が適用可能か否かを判定する（ステップＳ１０５）。この処理において、制御部１１は、Ｐ２ＰネットワークＮを構成して、Ｐ２Ｐ型配信によりコンテンツデータを送受信することができるか否かを判定する。Ｐ２Ｐ型配信が適用可能であると判定すると（ステップＳ１０５：Ｙｅｓ）、制御部１１は、Ｐ２Ｐ型配信モードを設定する（ステップＳ１０６）。この処理において、制御部１１は、Ｐ２Ｐ型配信モードを設定する前に設定されていた配信モードがＣ／Ｓ型配信モードのとき、コンテンツ配信システムＳ’を構成する各端末装置２’に対して、Ｐ２Ｐ型配信モードへの変更指示を行う。一方、Ｐ２Ｐ型配信が適用可能でないと判定すると（ステップＳ１０５：Ｎｏ）、制御部１１は、Ｃ／Ｓ型配信モードを設定する（ステップＳ１０７）。この処理において、制御部１１は、Ｃ／Ｓ型配信モードを設定する前に設定されていた配信モードがＰ２Ｐ型配信モードのとき、コンテンツ配信システムＳ’を構成する各端末装置２’に対して、Ｃ／Ｓ型配信モードへの変更指示を行う。
【０１２２】
ステップＳ１０６，１０７の処理が終了したとき、又は、端末装置２’からの参加要求がないとき（ステップＳ１０３：Ｎｏ）、端末装置２’から離脱要求があったか否かを判定する（ステップＳ１０８）。端末装置２’から離脱要求があったと判定すると（ステップＳ１０８：Ｙｅｓ）、制御部１１は、離脱要求を行った端末装置２’の端末装置情報を記憶部１２の端末装置情報記憶領域から削除する（ステップＳ１０９）。その後、制御部１１は、ステップＳ１０５の処理と同様に、設定している配信モードがＰ２Ｐ型配信モードであるか否かを判定する（ステップＳ１１０）。このとき、Ｐ２Ｐ型配信モードが設定されていると判定すると（ステップＳ１１０：Ｙｅｓ）、ステップＳ１０５の処理と同様に、制御部１１は、Ｐ２Ｐ型配信が適用可能か否かを判定する（ステップＳ１１１）。Ｐ２Ｐ型配信が適用可能であると判定すると（ステップＳ１１１：Ｙｅｓ）、制御部１１は、Ｐ２Ｐ型配信モードの設定を維持する（ステップＳ１１２）。一方、Ｐ２Ｐ型配信が適用可能でないと判定すると（ステップＳ１１１：Ｎｏ）、制御部１１は、ステップＳ１０７の処理と同様に、Ｃ／Ｓ型配信モードに設定する（ステップＳ１１３）。
【０１２３】
また、ステップＳ１１０において、Ｐ２Ｐ型配信モードが設定されていないと判定すると（ステップＳ１１０：Ｎｏ）、制御部１１は、離脱要求を行った端末装置２’へのストリーム配信を停止する（ステップＳ１１４）。
【０１２４】
ステップＳ１１２〜Ｓ１１４の処理が終了したとき、又は、端末装置２’から離脱要求がないと判定したとき（ステップＳ１０８：Ｎｏ）、制御部１１は、処理の終了指示を検知したかを判定する（ステップＳ１１５）。例えば、自情報処理装置１’の電源がＯＦＦ状態へ移行したとき、制御部１１は、終了指示を検知する。制御部１１は、終了指示を検知したと判定すると（ステップＳ１１５：Ｙｅｓ）、メイン処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ１１５：Ｎｏ）、ステップＳ１０１からの処理を繰り返す。
【０１２５】
このように、情報処理装置１’の制御部１１は、複数の端末装置２’同士をネットワークを介して接続させて、端末装置２’間でコンテンツデータを配信させる第１処理手段、複数の端末装置２’のそれぞれとネットワークを介してクライアント−サーバ形式で接続して、各端末装置２’にコンテンツデータを配信する第２処理手段して機能する。なお、このとき、情報処理装置１’は、コンテンツデータを記憶し、各端末装置２’にコンテンツデータを配信する記憶装置として機能する。また、制御部１１は、端末装置２’間でコンテンツデータの配信を行うための所定条件を満たすか否かを判定する判定処理手段として機能する。そして、制御部１１は、判定処理手段により所定条件を満たすと判定したとき、第１処理手段による処理を実行し、判定処理手段により所定条件を満たさないと判定したとき、第２処理手段による処理を実行する。
【０１２６】
［２．３．端末装置２’の具体的動作の説明］
次に、端末装置２’の具体的動作の一例について説明する。なお、端末装置２’の具体的構成は、第１実施形態の端末装置２と制御部２１の情報処理プログラム以外は同様であり、以下においては同一符号を用いて説明し、ここでは説明を省略する。
【０１２７】
図１１に示すように、処理が開始すると、制御部２１は、まず、各種メッセージを受信したか否かを判定する（ステップＳ１４０）。この処理において、制御部２１は、コンテンツ検索メッセージ、コンテンツ登録メッセージ、コンテンツ送信要求メッセージ、コンテンツ受信要求メッセージなどのメッセージのうちいずれかを通信部３１を介して受信したときに、各種メッセージを受信したと判定する。各種メッセージを受信したと判定すると（ステップＳ１４０：Ｙｅｓ）、制御部２１は、各種メッセージ処理を行う（ステップＳ１４１）。なお、コンテンツ送信要求メッセージは宛先の端末装置２に対してコンテンツデータの送信を要求するメッセージであり、コンテンツ受信要求メッセージは宛先の端末装置２に対してコンテンツデータの受信を要求するメッセージである。各種メッセージは、宛先が自端末装置２でないときには、他の端末装置２へ転送する。このメッセージ処理は、公知の技術であり、例えば、特開２００８−２５０５７０号公報等に記載された技術である。
【０１２８】
ステップ１４０において、各種メッセージを受信していないを判定したとき（ステップＳ１４０：Ｎｏ）、又は、ステップＳ１４１の処理が終了したとき、制御部２１は、まず、Ｐ２Ｐ型配信モードへの変更指示を受信したか否かを判定する（ステップＳ１５０）。この処理において、情報処理装置１’から送信されたＰ２Ｐ型配信モードへの変更指示を受信したと判定すると（ステップＳ１５０：Ｙｅｓ）、制御部２１は、動作モードをＰ２Ｐ型配信モードに設定する（ステップＳ１５１）。
【０１２９】
一方、Ｐ２Ｐ型配信モードへの変更指示を受信していないと判定すると（ステップＳ１５０：Ｎｏ）、制御部２１は、Ｃ／Ｓ型配信モードへの変更指示を受信したか否かを判定する（ステップＳ１５２）。この処理において、Ｃ／Ｓ型配信モードへの変更指示を受信したと判定すると（ステップＳ１５２：Ｙｅｓ）、制御部２１は、動作モードをＣ／Ｓ型配信モードに設定する（ステップＳ１５３）。
【０１３０】
ステップＳ１５１，Ｓ１５３の処理が終了したとき、又はＣ／Ｓ型配信モードへの変更指示を受信していないと判定すると（ステップＳ１５２：Ｎｏ）、制御部２１は、コンテンツの視聴要求があったか否かを判定する（ステップＳ１５４）。この処理において、制御部２１は、自端末装置２’のユーザから入力部２０への操作によってコンテンツを視聴するための操作があったとき、コンテンツ視聴要求が発生したと判定する。コンテンツ視聴要求が発生したと判定すると（ステップＳ１５４：Ｙｅｓ）、動作モードがＰ２Ｐ型配信モードに設定されているか否かを判定する（ステップＳ１５５）。この処理において、動作モードがＰ２Ｐ型配信モードに設定されていると判定すると（ステップＳ１５５：Ｙｅｓ）、制御部２１は、コンテンツ検索メッセージをネットワーク８を介して他の端末装置２へ送信する（ステップＳ１５６）。制御部２１は、このコンテンツ検索メッセージに対して、コンテンツホルダの所在情報を取得する（ステップＳ１５７）。そして、制御部２１は、このコンテンツホルダに対してネットワーク８を介してコンテンツ送信要求メッセージを送信し、コンテンツホルダからネットワーク８を介してコンテンツデータのストリームを受信する（ステップＳ１５８）。なお、制御部２１は、コンテンツデータをコンテンツホルダから取得すると、ネットワーク８を介してコンテンツ登録メッセージを他の端末装置２’へ送信する。
【０１３１】
一方、動作モードがＰ２Ｐ型配信モードに設定されていないと判定すると（ステップＳ１５５：Ｎｏ）、制御部２１は、ネットワーク８を介して情報処理装置１’に対して接続要求を行う（ステップＳ１５９）。その後、制御部２１は、ネットワーク８を介して情報処理装置１’からコンテンツデータのストリームを受信する（ステップＳ１６０）。このように制御部２１は、情報処理装置１’とクライアント−サーバ形式で接続して、情報処理装置１’からコンテンツデータを取得する。
【０１３２】
ステップＳ１５８，Ｓ１６０の処理が終了したとき、又は、コンテンツの視聴要求がないと判定すると（ステップＳ１５４：Ｎｏ）、制御部２１は、処理の終了指示を検出したかを判定する（ステップＳ１７０）。例えば、自端末装置２’の電源がＯＦＦ状態へ移行したとき、制御部２１は、終了指示を検知する。制御部２１は、終了指示を検知したと判定すると（ステップＳ１７０：Ｙｅｓ）、本処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ１７０：Ｎｏ）、ステップＳ１４０からの処理を繰り返す。
【０１３３】
以上のように、本実施形態におけるコンテンツ配信システムＳ’では、端末装置の状態に応じて、Ｐ２Ｐ方式でのコンテンツデータの配信とクライアント−サーバ方式でのコンテンツデータの配信とを切り替えるようにしているため、端末装置の状態が変化する場合においてもコンテンツデータの配信を行うことができる。
【０１３４】
また、端末装置として、例えば、コンテンツデータの配信を受ける機能を有するサーバやその他のノード装置も当然に適用可能である。
【０１３５】
また、上述では、ステップＳ４３，Ｓ４５，Ｓ５２，Ｓ６１，Ｓ７４，Ｓ７６，Ｓ７８，Ｓ８２，Ｓ８５，Ｓ１１４，Ｓ１５８，Ｓ１６０等において、ストリーム配信により、各端末装置２及び端末装置２’においてコンテンツデータを受信しながら再生させる例を説明したが、これに限られない。例えば、各端末装置２及び端末装置２’においてコンテンツデータをダウンロードした後に、コンテンツデータの再生を行うことができるようにしてもよい。このとき、コンテンツデータを送信する情報処理装置１及び情報処理装置１’の制御部１１、または、端末装置２及び端末装置２’の制御部２１は、送信先の端末装置２及び端末装置２’に、コンテンツデータの再生後でも各端末装置の記憶部で保存及び利用可能なようにコンテンツデータを配信する。そして、コンテンツデータをダウンロードする端末装置２及び端末装置２’の制御部２１は、記憶部２２に受信したコンテンツデータを記憶する。その後、端末装置２及び端末装置２’の制御部２１は、記憶部２２に記憶したコンテンツデータをデコーダ部２５により順次取り出してデコードする。デコードされたコンテンツデータのうち、映像情報は映像処理部２６により表示部２７で表示可能な情報に変換処理され、音声情報は音声処理部２８により、スピーカ２９で音波として出力可能な情報に変換処理される。再生が終了したコンテンツデータは、各端末装置２及び端末装置２’の間で送受信可能なように、各記憶部２２に記憶される。
【０１３６】
また、上述の実施形態では、情報処理装置１及び情報処理装置１’を記憶装置として各端末装置２及び端末装置２’とクライアント−サーバ形式で接続するようにしたが、これに限られない。例えば、特定の端末装置２及び端末装置２’を記憶装置として、その他の端末装置２及び端末装置２’とクライアント−サーバ形式で接続するようにしてもよい。
【符号の説明】
【０１３７】
１、１’  情報処理装置
２、２’  端末装置
１１  情報処理装置の制御部
２１  端末装置の制御部
８  ネットワーク
【図１】
2011008709.tif 000003
【図２】
2011008709.tif 000004
【図３】
2011008709.tif 000005
【図４】
2011008709.tif 000006
【図５】
2011008709.tif 000007
【図６】
2011008709.tif 000008
【図７】
2011008709.tif 000009
【図８】
2011008709.tif 000010
【図９】
2011008709.tif 000011
【図１０】
2011008709.tif 000012
【図１１】
2011008709.tif 000013