(57)【要約】【課題】複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第１配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムへ参加しても、端末装置の記憶部に、第２配信システム用として十分な記憶領域を確保することができるコンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法を提供する。【解決手段】第１配信システムに参加している状態で、第２配信システムに参加したときに、端末装置の記憶部において、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させることとした。【選択図】図１５
2008067089.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第１配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムへ参加可能な端末装置において、
前記第１配信システムへ参加しているときに、前記第１配信システム用に確保される記憶領域と、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域の一部を前記第２配信システム用の記憶領域として機能させる情報管理手段と、
を有することを特徴とする端末装置。
【請求項２】
前記第２配信システムへ参加することにより必要となる記憶領域の容量を検出する記憶容量検出手段を備え、
前記情報管理手段は、前記記憶容量検出手段の検出結果に応じて、前記第１配信システム用に確保している記憶領域の一部を前記第２配信システム用の記憶領域として機能させるか否かを判定することを特徴とする請求項１に記載の端末装置。
【請求項３】
前記第１配信システムは、ネットワークを介して接続された複数の端末装置に、複数種類のコンテンツデータが分散して保持されており、前記ダウンロード要求に対応するコンテンツデータを保持している他の端末装置から、前記ダウンロード要求を送信した端末装置へ前記コンテンツデータが配信される配信システムであり、
前記第１配信システムに参加していて、前記コンテンツデータを保持している他の端末装置の所在情報と前記他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報を受信するコンテンツ保持端末情報受信手段を備え、
前記情報管理手段は、
前記第１配信システム用に確保した記憶領域に、前記コンテンツ保持端末情報受信手段により受信した前記コンテンツ保持端末情報を記憶し、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域に記憶した前記コンテンツ保持端末情報を削除し、前記コンテンツ保持端末情報を記憶していた領域を前記第２配信システム用の記憶領域として機能させることを特徴とする請求項１又は請求項２に記載の端末装置。
【請求項４】
削除対象の前記コンテンツ保持端末情報を管理している端末装置から、その端末装置が管理している前記コンテンツ保持端末情報の情報量を取得する情報量取得手段を備え、
前記情報管理手段は、前記情報量取得手段により取得した情報量が所定の閾値を超えている場合に、前記第１配信システム用に確保している記憶領域から前記削除対象のコンテンツ保持端末情報を削除することを特徴とする請求項３に記載の端末装置。
【請求項５】
前記情報管理手段は、
前記情報量取得手段により、複数種類のコンテンツデータに関する前記コンテンツ保持端末情報の情報量を取得し、前記取得した複数種類の情報量のうち、情報量が多い前記コンテンツ保持端末情報から順に削除することを特徴とする請求項４に記載の端末装置。
【請求項６】
前記情報管理手段は、
前記第１配信システム用に確保した記憶領域に、現在ダウンロード可能なコンテンツデータのリスト情報を記憶し、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域から前記リスト情報を削除して、前記リスト情報を記憶していた領域を前記第２配信システム用の記憶領域として機能させることを特徴とする請求項１〜５のいずれか１項に記載の端末装置。
【請求項７】
前記情報管理手段は、
前記第１配信システム用に確保した記憶領域に、他の端末装置を識別するための端末識別情報と、前記他の端末装置の所在情報とを含む他端末情報を記憶し、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域から前記他端末情報の少なくとも一部を削除して、前記他端末情報を記憶していた領域を前記第２配信システム用の記憶領域として機能させることを特徴とする請求項１〜６のいずれか１項に記載の端末装置。
【請求項８】
前記情報管理手段は、
前記第１配信システム用に確保した記憶領域に、
前記第１配信システムに参加していて、前記コンテンツデータを保持している他の端末装置の所在情報と前記他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報と、現在ダウンロード可能なコンテンツデータのリスト情報とを記憶すると共に、
他の端末装置を識別するための端末識別情報と、前記他の端末装置の所在情報とを含む他端末情報とを記憶させ、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域から、前記コンテンツ保持端末情報及び前記リスト情報を削除すると共に、前記他端末情報の一部を削除することを特徴とする請求項１又は請求項２に記載の端末装置。
【請求項９】
前記第１配信システム用に確保している記憶領域に記憶した情報において、
前記情報管理手段による削除の優先順位は、
前記コンテンツ保持端末情報、前記リスト情報、前記他端末情報の順であることを特徴とする請求項８に記載の端末装置。
【請求項１０】
前記第１配信システムに参加している端末装置数を検出する参加端末数検出手段を有し、
前記情報管理手段は、前記参加端末数検出手段により検出した端末装置数が所定の閾値を超えている場合に、前記第１配信システム用に確保している記憶領域の一部を前記第２配信システム用の記憶領域として機能させることを特徴とする請求項１〜９のいずれか１項に記載の端末装置。
【請求項１１】
前記第１配信システム用に確保している記憶領域から削除する情報を保存しておくための他の記憶手段を備え、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、
前記情報管理手段は、
前記第１配信システムに記憶している情報の一部を前記他の記憶手段に保存した後、前記他の記憶手段に保存した情報を記憶していた領域を、前記第２配信システム用の記憶領域として機能させ、
前記第２配信システムから離脱した後に、前記他の記憶手段に保存した前記情報を、再度、前記第１配信システム用に確保した記憶領域に記憶させることを特徴とする請求項１〜１０のいずれか１項に記載の端末装置。
【請求項１２】
前記第２配信システム用に確保する記憶領域は、前記第２配信システムによりストリーミング受信したコンテンツデータを一時的に蓄積するリングバッファを備え、
前記情報管理手段は、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、
前記第１配信システム用に確保している記憶領域の一部を前記リングバッファとして機能させることを特徴とする請求項１〜１１のいずれか１項に記載の端末装置。
【請求項１３】
前記第２配信システムによりコンテンツデータを受信する際の受信速度を検出する受信速度検出手段を有し、
前記情報管理手段は、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記受信速度検出手段により取得した前記受信速度に応じて、前記第１配信システム用に確保している記憶領域のうち、前記第２配信システム用の記憶領域として機能させる領域を拡張又は縮小することを特徴とする請求項１〜１２のいずれか１項に記載の端末装置。
【請求項１４】
複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第１配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムとを有するコンテンツ配信システムであって、
前記端末装置は、
前記第１配信システムへ参加しているときに、前記第１配信システム用に確保される記憶領域と、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保している記憶領域の一部を前記第２配信システム用の記憶領域として機能させる情報管理手段と、
を有することを特徴とするコンテンツ配信システム。
【請求項１５】
コンピュータを、請求項１〜１３のいずれかに記載の端末装置における各手段として機能させるためのプログラム。
【請求項１６】
複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第１配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムへ参加可能な端末装置における情報管理方法であって、
前記第１配信システムへ参加しているときに、前記第１配信システム用に記憶領域を確保するステップと、
前記第１配信システムに参加した状態で、前記第２配信システムに参加したとき、前記第１配信システム用に確保した記憶領域に記憶している情報の一部を削除するステップと、
前記削除した情報が記憶されていた前記第１配信システム用に確保した記憶領域を、前記第２配信システム用の記憶領域として機能させるステップと、
を有することを特徴とする情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法に関するものである。
【背景技術】
【０００２】
近年、インターネットを始めとする情報通信ネットワーク（以下、単に「ネットワーク」という。）にパーソナルコンピュータ等の端末装置を接続して、所望する音楽や映画等のコンテンツに相当するコンテンツデータを保持しているサーバや他の端末装置からコンテンツデータを受信し、受信したコンテンツデータを各端末装置で視聴することができるコンテンツ配信システムが広く利用されている。
【０００３】
この種のコンテンツ配信システムには、ネットワークに接続した所望のコンテンツデータを保持している他の端末装置からダウンロード要求を送信した端末装置へコンテンツデータを配信するオンデマンド型のコンテンツ配信システム（以下、「第１配信システム」という。）と、ネットワーク上においてコンテンツ配信装置から放送形態にてストリーミング配信されているコンテンツデータを、そのネットワークに接続することによってストリーミング受信する放送型のコンテンツ配信システム（以下、「第２配信システム」という。）とがある。
【０００４】
この第１の配信システムとしては、たとえば、ネットワークに接続している複数の端末装置に複数種類のコンテンツデータが分散して保持され、各端末装置間で相互にコンテンツデータの授受を行うコンテンツ配信システムが知られている（たとえば、特許文献１参照）。
【０００５】
そして、この第１配信システムにより所望のコンテンツデータをダウンロードするためには、ネットワーク上に存在する複数種類のコンテンツデータから所望のコンテンツデータを識別すると共に、ネットワーク上において所望のコンテンツデータを保持している他の端末装置を識別する必要がある。
【０００６】
そこで、第１配信システムでは、ＤＨＴ（Distributed Hash Table：分散ハッシュテーブル）を用いて、全てのコンテンツデータに各コンテンツデータを識別するためのコンテンツ識別情報（以下、「コンテンツＩＤ」という。）を付与すると共に、全ての端末装置に各端末装置を識別するための端末識別情報（以下、「端末ＩＤ」という。）を付与し、所定のコンテンツデータに関するコンテンツＩＤとそのコンテンツデータを保持している端末装置の所在情報（以下、「ＩＰアドレス」という。）と、端末ＩＤとを関連付けた情報（以下、「インデックスキャッシュ情報」という。）をネットワークに接続している一部の端末装置（以下、「ルート端末装置」という。）に分散して記憶させるようにしている。
【０００７】
このとき、あるコンテンツデータのルート端末装置となる端末装置は、あるコンテンツデータに付与されたコンテンツＩＤの各桁における情報と、端末ＩＤの各桁における情報とが、上位側から連続して最も多く一致する端末ＩＤ（コンテンツＩＤと最も近い端末ＩＤ）が付与されている端末装置である。
【０００８】
このルート端末装置に記憶されるインデックスキャッシュ情報は、新たにコンテンツデータを保持した端末装置から所定の規則に従って複数の端末装置に転送されながら最終的にルート端末装置まで転送される情報であり、この転送経路にあたる各端末装置にも記憶される。なお、インデックスキャッシュ情報を転送する各端末装置は、それぞれが備える後述のルーティングテーブルに従ってインデックスキャッシュ情報を転送する。
【０００９】
また、各端末装置は、全端末ＩＤのなかの一部の端末ＩＤと、その端末ＩＤに対応する端末装置のネットワーク上に置けるＩＰアドレスとを関連付けた他端末情報が記録されたルーティングテーブルを備えている。
【００１０】
このルーティングテーブルには、全ての端末ＩＤが含まれる端末ＩＤ群（以下、「ＩＤ空間」という。）を段階的なレベル毎にレベル数を上げつつ細分化していき、そのレベル（段階的に細分化した領域）毎に、任意に選択した端末装置の端末ＩＤとそのＩＰアドレスとを対にした他端末情報が格納されている。
【００１１】
つまり、このルーティングテーブルには、全端末装置のなかの一部の端末装置に関する他端末情報が格納されているのである。
【００１２】
そして、各端末装置は、コンテンツデータのダウンロード要求やインデックスキャッシュ情報等といった所定のコンテンツデータに関する各種情報（メッセージ）を他の端末装置へ送信する際には、このルーティングテーブルを参照して、ルーティングテーブルに格納している他端末情報のなかで、所定のコンテンツデータのコンテンツＩＤと最も近い端末ＩＤが付与された端末装置に情報を送信し、この情報を受信した端末装置は、自身が備えるルーティングテーブルを参照して同様に他の端末へ受信した情報を送信（転送）して最終的にその情報がルートノードへ転送されるのである。
【００１３】
このように構成した第１配信システムでは、各端末装置が第１配信システムに参加するためのアプリケーションを起動して、ネットワークに接続すると共に、各端末装置が備える記憶部に第１配信システム用の記憶領域を確保し、この第１配信システム用の記憶領域に、上記したルーティングテーブルやインデックスキャッシュ情報、現在ダウンロード可能なコンテンツデータのリスト情報を含むカタログ情報等といった各種情報を記憶する。
【００１４】
そして、ある端末装置がコンテンツデータの配信を受けようとする場合、その端末装置は、まず、第１配信システム用の記憶領域に記憶しているルーティングテーブルを参照して、所望のコンテンツデータを保持している端末装置に関する情報を得るために、ルートノード宛に所定のメッセージを送信する。
【００１５】
このメッセージは、上記したように、いくつかの端末装置に転送されてルートノードに受信される。そして、このメッセージを受信したルートノードは、メッセージの送信元の端末装置へその端末装置が受信しようとしているコンテンツデータに関するインデックスキャッシュ情報を返信する。
【００１６】
このインデックスキャッシュ情報を受信した端末装置は、受信したインデックスキャッシュ情報を参照して、所望のコンテンツデータを保持している端末装置にコンテンツのダウンロード要求を送信することによって、所望のコンテンツデータの配信を受けるのである。
【００１７】
また、第２配信システムとしては、たとえば、コンテンツ配信装置を頂点として複数の端末装置がネットワーク上にツリー状の階層構造で多層に論理接続され、コンテンツ配信装置から放送形態にて配信されるコンテンツデータが、ツリー状の階層構造の上流に接続された端末装置から下流に接続された端末装置にかけて順次各端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムが知られている（たとえば、特許文献２参照。）。
【００１８】
すなわち、この第２配信システムでは、各端末装置が第２配信システムに参加するためアプリケーションを起動して、ネットワークに接続すると共に、各端末装置が備える記憶部の第２配信システム用の記憶領域を確保する。
【００１９】
そして、ある端末装置がコンテンツデータの配信を受けようとする場合、その端末装置は、まず、上記階層構造における各端末装置の論理接続の状態を管理する接続管理装置へ第２配信システムへの参加要求を送信し、接続管理装置から送信される接続先となる端末装置のＩＰアドレスを受信する。
【００２０】
その後、このＩＰアドレスを受信した端末装置は、受信したＩＰアドレスに対応した端末装置の階層構造における下流側に接続して、階層構造における上流側の端末装置から所望のコンテンツデータを受信する。
【００２１】
このとき、この端末装置は、第２配信システム用の記憶領域をリングバッファとして機能させ、階層構造における上流側の端末装置からストリーミング受信したコンテンツデータを順次リングバッファに一時的に蓄積し、このリングバッファに蓄積したコンテンツデータを順次再生すると共に、再生の終了した部分のコンテンツデータをリングバッファから削除するようにしている。
【００２２】
また、階層構造において、この端末装置の階層構造における下流側に他の端末装置が接続している場合には、再生したコンテンツデータをリングバッファから削除する前に、階層構造における下流側に接続している他の端末装置へ中継（ストリーミング配信）し、その後、リングバッファから削除するようにしている。
【特許文献１】特開２００６−１９７４００号公報
【特許文献２】特開２００６−０８７０４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
ところが従来の端末装置では、上記したように、第１配信システムに参加する場合には、端末装置の記憶部に第１配信システム用の記憶領域を確保し、第２配信システムに参加する場合には、端末装置の記憶部に第２配信システム用の記憶領域を確保するため、第１配信システムに参加している状態で第２配信システムに参加した場合、第２配信システム用の記憶領域を十分に確保することができずに、第２配信システムによるコンテンツデータのストリーミング受信に支障をきたす恐れがあるという問題点があった。
【００２４】
すなわち、端末装置が第１配信システムに参加している状態では、インデックスキャッシュ情報や、カタログ情報、ルーティングテーブル等といった様々な情報を記憶しておく必要があるため、第１配信システム用の記憶領域として比較的大きな記憶領域を確保しておかなければならない。
【００２５】
そのため、このように第１配信システム用の記憶領域として、比較的大きな記憶領域を確保した状態で、第２配信システムに参加しようとすると、第２配信システムで用いるリングバッファの領域を十分に確保することができず、コンテンツデータの受信、再生、中継等を正常に行うことができないおそれがあった。
【００２６】
また、第２配信システムへ何時でも参加できるように、予め記憶部に第２配信システム用の記憶領域を確保しておくことも考えられるが、この場合、第２配信システムに参加していないときには、その記憶領域が無駄に確保されることとなるため、容量に制限がある記憶部を有効に利用することができないという問題点があった。
【００２７】
そこで、本発明は、上記各問題点に鑑みて為されたもので、その目的は、上述したごとく、第１配信システムに参加している状態で、第２配信システムに参加しても、記憶部に第２配信システムで用いるリングバッファの領域を十分に確保することができ、記憶部を有効に利用することができるコンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法を提供することにある。
【課題を解決するための手段】
【００２８】
請求項１に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第１配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムへ参加可能な端末装置において、第１配信システムへ参加しているときに、第１配信システム用に確保される記憶領域と、第１配信システムに参加した状態で、前記第２配信システムに参加したとき、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させる情報管理手段とを有することを特徴とする。
【００２９】
また、請求項２に係る本発明では、請求項１に記載の端末装置において、第２配信システムへ参加することにより必要となる記憶領域の容量を検出する記憶容量検出手段を備え、情報管理手段は、記憶容量検出手段の検出結果に応じて、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させるか否かを判定することを特徴とする。
【００３０】
また、請求項３に係る本発明では、請求項１又は請求項２に記載の端末装置において、第１配信システムは、ネットワークを介して接続された複数の端末装置に、複数種類のコンテンツデータが分散して保持されており、ダウンロード要求に対応するコンテンツデータを保持している他の端末装置から、ダウンロード要求を送信した端末装置へコンテンツデータが配信される配信システムであり、第１配信システムに参加していて、コンテンツデータを保持している他の端末装置の所在情報と他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報を受信するコンテンツ保持端末情報受信手段を備え、情報管理手段は、第１配信システム用に確保した記憶領域に、コンテンツ保持端末情報受信手段により受信した前記コンテンツ保持端末情報を記憶し、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域に記憶したコンテンツ保持端末情報を削除し、コンテンツ保持端末情報を記憶していた領域を第２配信システム用の記憶領域として機能させることを特徴とする。
【００３１】
また、請求項４に係る本発明では、請求項３に記載の端末装置において、削除対象の前記コンテンツ保持端末情報を管理している端末装置から、その端末装置が管理しているコンテンツ保持端末情報の情報量を取得する情報量取得手段を備え、情報管理手段は、情報量取得手段により取得した情報量が所定の閾値を超えている場合に、第１配信システム用に確保している記憶領域から前記削除対象のコンテンツ保持端末情報を削除することを特徴とする。
【００３２】
また、請求項５に係る本発明では、請求項４に記載の端末装置において、情報管理手段は、情報量取得手段により、複数種類のコンテンツデータに関するコンテンツ保持端末情報の情報量を取得し、取得した複数種類の情報量のうち、情報量が多いコンテンツ保持端末情報から順に削除することを特徴とする。
【００３３】
また、請求項６に係る本発明では、請求項１〜５のいずれか１項に記載の端末装置において、情報管理手段は、第１配信システム用に確保した記憶領域に、現在ダウンロード可能なコンテンツデータのリスト情報を記憶し、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域からリスト情報を削除して、リスト情報を記憶していた領域を第２配信システム用の記憶領域として機能させることを特徴とする。
【００３４】
また、請求項７に係る本発明では、請求項１〜６のいずれか１項に記載の端末装置において、情報管理手段は、第１配信システム用に確保した記憶領域に、他の端末装置を識別するための端末識別情報と他の端末装置の所在情報とを含む他端末情報を記憶し、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域から他端末情報の少なくとも一部を削除して、他端末情報を記憶していた領域を第２配信システム用の記憶領域として機能させることを特徴とする。
【００３５】
また、請求項８に係る本発明では、請求項１又は請求項２に記載の端末装置において、情報管理手段は、第１配信システム用に確保した記憶領域に、第１配信システムに参加していて、コンテンツデータを保持している他の端末装置の所在情報と他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報と、現在ダウンロード可能なコンテンツデータのリスト情報とを記憶すると共に、他の端末装置を識別するための端末識別情報と、他の端末装置の所在情報とを含む他端末情報とを記憶させ、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域から、コンテンツ保持端末情報及びリスト情報を削除すると共に、他端末情報の一部を削除することを特徴とする。
【００３６】
また、請求項９に係る本発明では、請求項８に記載の端末装置において、第１配信システム用に確保している記憶領域に記憶した情報において、情報管理手段による削除の優先順位は、コンテンツ保持端末情報、リスト情報、他端末情報の順であることを特徴とする。
【００３７】
また、請求項１０に係る本発明では、請求項１〜９のいずれか１項に記載の端末装置において、第１配信システムに参加している端末装置数を検出する参加端末数検出手段を有し、情報管理手段は、参加端末数検出手段により検出した端末装置数が所定の閾値を超えている場合に、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させることを特徴とする。
【００３８】
また、請求項１１に係る本発明では、請求項１〜１０のいずれか１項に記載の端末装置において、第１配信システム用に確保している記憶領域から削除する情報を保存しておくための他の記憶手段を備え、第１配信システムに参加した状態で、第２配信システムに参加したとき、情報管理手段は、第１配信システムに記憶している情報の一部を他の記憶手段に保存した後、他の記憶手段に保存した情報を記憶していた領域を、第２配信システム用の記憶領域として機能させ、第２配信システムから離脱した後に、他の記憶手段に保存した情報を、再度、第１配信システム用に確保した記憶領域に記憶させることを特徴とする。
【００３９】
また、請求項１２に係る本発明では、
前記第２配信システム用に確保する記憶領域は、前記第２配信システムによりストリーミング受信したコンテンツデータを一時的に蓄積するリングバッファを備え、
前記情報管理手段は、請求項１〜１１のいずれか１項に記載の端末装置において、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域の一部をリングバッファとして機能させることを特徴とする。
【００４０】
また、請求項１３に係る本発明では、請求項１〜１２のいずれか１項に記載の端末装置において、第２配信システムによりコンテンツデータを受信する際の受信速度を検出する受信速度検出手段を有し、情報管理手段は、第１配信システムに参加した状態で、第２配信システムに参加したとき、受信速度検出手段により取得した受信速度に応じて、第１配信システム用に確保している記憶領域のうち、第２配信システム用の記憶領域として機能させる領域を拡張又は縮小することを特徴とする。
【００４１】
また、請求項１４に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第１配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムとを有するコンテンツ配信システムであって、端末装置は、第１配信システムへ参加しているときに、第１配信システム用に確保される記憶領域と、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させる情報管理手段とを有することを特徴とするコンテンツ配信システム。
【００４２】
また、請求項１５に係る本発明では、コンピュータを、請求項１〜１３のいずれかに記載の端末装置における各手段として機能させるためのプログラムを提供する。
【００４３】
また、請求項１６に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第１配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第２配信システムへ参加可能な端末装置における情報管理方法であって、第１配信システムへ参加しているときに、第１配信システム用に記憶領域を確保するステップと、第１配信システムに参加した状態で、第２配信システムに参加したとき、第１配信システム用に確保した記憶領域に記憶している情報の一部を削除するステップと、削除した情報が記憶されていた第１配信システム用に確保した記憶領域を、第２配信システム用の記憶領域として機能させるステップと、を有することを特徴とする。
【発明の効果】
【００４４】
請求項１及び請求項１４〜１６に記載の本発明によれば、第１配信システムに参加している状態で、第２配信システムに参加したときに、端末装置の記憶部において、第１配信システム用に確保している記憶領域の一部を第２配信システム用の記憶領域として機能させることにより、第２配信システム用の記憶領域を十分に確保することがきるので、第２配信システムによるコンテンツデータのストリーミング受信に支障をきたすことがなく、第２配信システムに参加していないときに、予め記憶部に第２配信システム用の記憶領域を確保しておく必要もないため、端末装置の記憶部を有効に利用することができる。
【００４５】
請求項２に記載の本発明によれば、情報管理手段は、端末装置の記憶部に第２配信システム用の記憶領域を十分に確保できるだけの空き領域がある場合に、第１配信システム用の記憶領域を第２配信システム用の記憶領域として機能させる処理を行わなくて済むので、その分、情報管理手段の処理負担を軽減することができる。
【００４６】
請求項３、６〜８に記載の本発明によれば、削除しても第１配信システムによるコンテンツデータの受信に支障のない情報を削除して、この削除した情報を記憶していた記憶領域を第２配信システム用の記憶領域として機能させることができるので、第１配信システムに参加している状態で、第２配信システム用の記憶領域として十分な記憶領域を確保することができる。
【００４７】
請求項４及び請求項５に記載の本発明によれば、第１配信システムのデータ受信に支障をきたすことがない。
【００４８】
請求項９に記載の本発明によれば、第１配信システム用の記憶領域において、第１配信システムによりコンテンツデータの受信を行う際に、支障をきたすおそれの低い情報から順に削除することができる。
【００４９】
請求項１０に記載の本発明によれば、自身が保持している情報を必要とする他の端末装置は、第１配信システムに参加している他の端末装置から取得することができるので、第１配信システム用の記憶領域に記憶している情報を削除しても、第１配信システムに参加している他の端末装置に支障をきたすことがない。
【００５０】
請求項１１に記載の本発明によれば、第１配信システム用の記憶領域から削除した情報が再度必要になった場合に、他の記憶手段に記憶した情報を改めて第１配信システム用の記憶領域に記憶させることができるので、第１配信システムによるコンテンツの受信に支障をきたすことがない。
【００５１】
請求項に１２記載の本発明によれば、第２配信システムで使用するリングバッファとして十分な記憶領域を確保することができるので、第１配信システムに参加している状態であっても、第２配信システムによるコンテンツデータの受信及びコンテンツデータの中継を確実に行うことができる。
【発明を実施するための最良の形態】
【００５２】
以下、本発明の最良の実施形態を図面を参照して説明する。なお、以下に説明する実施形態は、配信する情報を音楽データや映像データ等のコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００５３】
[コンテンツ配信システムの構成等]
本実施形態におけるコンテンツ配信システムは、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて、そのコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第１配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にストリーミング配信する第２配信システムとを有している。
【００５４】
そして、本実施形態における端末装置は、上記第１配信システムに参加している状態で、上記第２配信システムへ参加可能に構成されている。
【００５５】
また、本実施形態では第１配信システムの一例として、複数の端末装置間でコンテンツデータを送受信するコンテンツ配信システムは種々あるが、本実施形態においては、Ｐ２Ｐグリッド型配信システムについて、特に、分散ハッシュテーブル（ＤＨＴ（Distributed Hash Table））を利用することにより端末装置間のコンテンツデータを送受信するコンテンツ配信システムであって、Ｐａｓｔｒｙ型と呼ばれるコンテンツ配信システムを例に挙げて説明する。
【００５６】
また、第２配信システムの一例として、サーバ−クライアント型の放送形態、ツリー状の階層構造による放送形態などがあるが、本実施形態においては、コンテンツ配信装置からストリーミング配信されるコンテンツデータを、ツリー状の階層構造を構成する端末装置がＰ２Ｐによって受信し、中継する放送形態のコンテンツ配信システムを例に挙げて説明する。
【００５７】
図１は、本実施形態に係るコンテンツ配信システムＳの概要構成例を示す図である。図１に示す物理接続形態のように、コンテンツ配信システムＳを構成するコンテンツ配信装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８、接続管理装置３、コンテンツ投入装置４、コンタクト先紹介装置５は、インターネットに代表されるネットワーク６上に分散配置されている。
【００５８】
コンテンツ配信装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８、接続管理装置３、コンテンツ投入装置４、コンタクト先紹介装置５には、各装置を識別する端末識別情報（以下、「端末ＩＤ」という。）としての固有の製造番号（たとえば、ＭＡＣアドレス）及びＩＰ（Internet Protocol）アドレス（所在情報）が割り当てられており、これら装置は、ネットワーク６にルータ１０等を介して接続されている。そして、目的の接続先装置のＩＰアドレスを宛先ＩＰアドレス、自装置のＩＰアドレスを送信元ＩＰアドレスとしたヘッダを含むパケットを送信することによって通信接続が可能となっている。
【００５９】
なお、コンテンツ配信システムＳに直接関係ない装置もネットワーク６に接続されるが、ここでは省略している。また、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８のいずれかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置２という場合がある。
【００６０】
図１に示す例では、コンテンツ配信装置１、接続管理装置３、コンテンツ投入装置４、コンタクト先紹介装置５は、それぞれ独立した装置としているが、一つの装置においてこれらの装置の機能を実現するようにしてもよい。この場合にはこれらの装置のＩＰアドレスは同一のものとなり、ポート番号などで区別されることになる。
【００６１】
[１．１．第１配信システムについて]
次に、図２を参照して、コンテンツ配信システムＳにおける第１配信システムの概要構成等について説明する。図２は、本実施形態に係るコンテンツ配信システムＳにおける第１配信システムを示す図である。この第１配信システムは、Ｐ２Ｐグリッド型配信システムであり、分散ハッシュテーブル（以下、「ＤＨＴ」（Distributed Hash Table）という。）を利用することによりネットワーク６上に分散配置された複数の端末装置２間でコンテンツデータの送受信を行うコンテンツ配信システムである。
【００６２】
［１．１．１  ＤＨＴの概要］
まず、本実施形態に係るＤＨＴを利用したアルゴリズムについて説明する。
【００６３】
コンテンツ配信システムＳの第１配信システムにおいて、当該端末装置２同士が、互いに情報をやり取りする際には、お互いの所在情報としてのＩＰアドレスを知っていなければならない。
【００６４】
例えば、複数の端末装置間でコンテンツデータを互いに共有するシステムにおいては、ネットワーク６に参加している各端末装置２が互いにネットワーク６に参加している全ての端末装置２のＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全ての端末装置２のＩＰアドレスを覚えておくのは現実的ではない。また、任意の端末装置の電源が頻繁にＯＮ或いはＯＦＦとすると、各端末装置２において記憶している当該任意の端末装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００６５】
そこで、１台の端末装置２では、ネットワーク６に参加している全ての端末装置２のうち、必要最低限の一部の端末装置２のＩＰアドレスだけを記憶しておき、ＩＰアドレスを記憶していない端末装置２については、各端末装置２間で互いに情報を転送し合うことによりコンテンツデータを届けるシステムが考案されている。
【００６６】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図２に示すような、オーバーレイネットワークが構築されることになる。つまり、このオーバーレイネットワークは、既存のネットワーク６を用いて形成された仮想的なリンク（論理接続）を構成するネットワークを意味する。
【００６７】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワークを前提としており、このオーバーレイネットワーク上に配置された端末装置２を、コンテンツ配信システムＳの第１配信システムに参加している端末装置２という。
【００６８】
コンテンツ配信システムＳの第１配信システムに参加している各端末装置２を識別するための端末識別情報である端末ＩＤとして、それぞれの端末装置２毎にユニークな番号（固有番号）を付与する。この番号は、端末装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、２128≒340×1036台の端末装置を運用できる。
【００６９】
より具体的には、各端末装置２の端末ＩＤは、それぞれの端末装置２のＩＰアドレス或いは製造番号等の端末装置２毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められた端末ＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値を端末ＩＤとする。
【００７０】
また、コンテンツ配信システムＳの第１配信システムに参加している複数の端末装置２には、図２に示すように、一の端末装置２から他の端末装置２に配信されるコンテンツデータがコンテンツ投入装置４によって分散して端末装置２に投入されるが、当該コンテンツデータにも、各コンテンツデータを識別するために、それぞれのコンテンツデータ毎の固有のコンテンツ識別情報（以下、「コンテンツＩＤ」と呼ぶ。）を付与する。
【００７１】
そして、当該コンテンツＩＤは、端末ＩＤと同様の長さ（例えば、128bit等）とし、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、上記端末ＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、端末装置２のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）端末ＩＤを有する端末装置２が、コンテンツデータを保持する端末装置２（以下、「コンテンツ保持端末装置」と呼ぶ。）へのリンク情報、すなわちコンテンツ保持端末装置の所在情報であるＩＰアドレスを保持する。
【００７２】
コンテンツ保持端末装置は、コンテンツ投入装置４によってランダムに決定される。すなわち、コンテンツ投入装置４は、コンテンツデータを保持すべき１以上の端末装置２をランダムに決定し、このように決定した端末装置２にコンテンツデータを送信する。コンテンツ投入装置４からコンテンツデータを受信した端末装置２は、コンテンツデータを記憶部に保持することによってコンテンツ保持端末装置として機能する。これにより、コンテンツデータが偏りなくコンテンツ配信システムＳ上に分散して配置される。
【００７３】
なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツのタイトルと著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組み合わせとすればよい。本実施形態においては、コンテンツのタイトルは重複しないものとし、コンテンツのタイトルをキーワードとするものとする。
【００７４】
このように、各端末装置２及び各コンテンツデータに付与された端末ＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成するため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitで端末ＩＤ及びコンテンツＩＤを付与し、図示したものである。図中丸点は端末ＩＤを、四角形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００７５】
次に、どの端末装置２に、どのコンテンツデータが管理されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理する端末装置２は、そのコンテンツＩＤに近い端末ＩＤを有する端末装置２である」という規則とする。
【００７６】
ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤと端末ＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各端末装置２に割り振る際に、一貫していればよい。図２に示す例では、この定義に基づいて、コンテンツＩＤａは、当該コンテンツＩＤａに近い端末ＩＤ（以下、「端末ＩＤａ」と呼ぶ。）を有する端末装置２に管理され、コンテンツＩＤｂは、当該コンテンツＩＤｂに近い端末ＩＤ（以下、「端末ＩＤｂ」と呼ぶ。）を有する端末装置２に管理され、コンテンツＩＤｃは、当該コンテンツＩＤｃに近い端末ＩＤ（以下、「端末ＩＤｃ」と呼ぶ。）を有する端末装置２に管理される。
【００７７】
なお、ここで「管理」というのは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータがいずれの端末装置２に保持されているかを知っている」ことを意味する。すなわち、図２において、端末ＩＤａを有する端末装置２は、コンテンツＩＤａを有するコンテンツデータがいずれの端末装置２に保持されているかを知っており、端末ＩＤｂを有する端末装置２及び端末ＩＤｃを有する端末装置２も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータがいずれの端末装置２に保持されているかを知っているということになる。
【００７８】
このように、あるコンテンツデータがいずれの端末装置２に保持されているかを知っている端末装置２を、そのコンテンツデータのルート端末装置と呼び、このルート端末装置は、自身がルート端末装置となっているコンテンツデータのコンテンツＩＤと、そのコンテンツデータを保持しているコンテンツ保持端末装置のＩＰアドレスとを関連付けたコンテンツ保持端末情報を他の端末装置より最も多く保持している。
【００７９】
そして、図２においては、端末ＩＤａを有する端末装置２が、コンテンツＩＤａを有するコンテンツデータのルート端末装置であって、端末ＩＤｂを有する端末装置２が、コンテンツＩＤｂを有するコンテンツデータのルート端末装置であって、端末ＩＤｃを有する端末装置２が、コンテンツＩＤｃを有するコンテンツデータのルート端末装置である。
【００８０】
ここで、コンテンツ投入装置４は、コンテンツ配信システムＳ内の端末装置２をコンテンツ保持端末装置とするためにコンテンツデータを端末装置２へ配布する機能のほか、端末装置２に配布した現在第１配信システムでダウンロードが可能な複数のコンテンツデータ（言い換えれば、コンテンツ保持端末装置が保持しているコンテンツデータ）をそのコンテンツのタイトルとコンテンツＩＤとを関連付けたリスト情報が含まれたカタログ情報を生成して端末装置２へ提供する機能を有している。
【００８１】
また、コンテンツ配信システムＳの第１配信システムにおいては、コンタクト先紹介装置５が配置されている。このコンタクト先紹介装置５は、コンテンツ配信システムＳの第１配信システムに参加していない端末装置２からこの第１配信システムへの参加要求があったときに、未参加の端末装置２が参加メッセージを送信する既参加の端末装置２（以下、「コンタクト先端末装置」と呼ぶ。）の所在情報を通知する機能を有している。
【００８２】
[１．１．２．ルーティングテーブルの作成]
次に、図３〜５を参照して、ＤＨＴで用いるルーティングテーブルの作成方法の一例、及び、作成したルーティングテーブルの構成について説明する。
【００８３】
ここで、本実施形態の端末装置２は、ルーティングテーブルとして、他の端末装置２へ情報等を送信する際に、主として用いられるメインテーブルＭＲと、当該メインテーブルＭＲの代替として順次用いられるサブテーブルＲ１〜Ｒ３との複数枚のテーブルから構成されるルーティングテーブルＲＴを備えている。
【００８４】
図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図であり、図４は、メインテーブルＭＲの構成を示す説明図であり、図５は、メインテーブルＭＲとサブテーブルＲ１〜Ｒ３とにより構成されたルーティングテーブルＲＴの全体構成を示す説明図である。
【００８５】
本実施形態の端末装置２では、ルーティングテーブルＲＴを作成する場合に、まず、以下のようにしてメインテーブルＭＲを作成する。
【００８６】
すなわち、図３（ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８bitの４進数で表すことにする。そして、端末装置２Ｎの端末ＩＤを「1133」とし、この端末装置２ＮのメインテーブルＭＲを作る例について説明する。
【００８７】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とした場合、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の自然数、以下同様。）で分けられる。端末装置２Ｎは、当該端末装置２Ｎ自身の端末ＩＤが「1133」であるため、図３（ａ）中左下「1XXX」のエリアに存在することになる。そして、端末装置２Ｎは、自分の存在するエリア（すなわち、「1XXX」のエリア）以外のエリア（すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア）に存在する端末装置２をランダムに選択し、当該端末ＩＤの所在情報、すなわち、当該端末ＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４がレベル１のテーブルの一例である。このテーブルでは、「0XXX」のエリアの端末ＩＤとして「0100」、「2XXX」のエリアの端末ＩＤとして「2133」、「3XXX」のエリアの端末ＩＤとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル１の２列目は端末装置２Ｎ自身を示しているため、ＩＰアドレスを記憶する必要はない。
【００８８】
（レベル２のルーティング）
次に、図３（ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「1XXX」を更に４分割し、更に４つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11xx」以外のエリアに存在する端末装置２をランダムに選択し、当該端末ＩＤの所在情報であるＩＰアドレスをレベル２のテーブルに記憶する。図４がレベル２のテーブルの一例である。このテーブルでは、「10XX」のエリアの端末ＩＤとして「1003」、「12XX」のエリアの端末ＩＤとして「1221」が、「13XX」のエリアの端末ＩＤとして「1313」がそれぞれ選択されている状態を示している。なお、レベル２の２列目は端末装置２Ｎが存在するエリア「11XX」であり、後述するレベル３にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアに端末装置２が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００８９】
（レベル３のルーティング）
更に、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「11XX」を更に４分割し、更に４つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在する端末装置２をランダムに選択し、当該端末ＩＤの所在情報であるＩＰアドレスをレベル３のテーブルに記憶する。図４がレベル３のテーブルの一例である。レベル３の４列目は端末装置２Ｎが存在するエリアであり、後述するレベル４にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアに端末装置が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００９０】
このようにして、レベル４まで同様にメインテーブルＭＲを図４に示す如く作成することにより、８bitのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００９１】
そして、端末装置２は、上記メインテーブルＭＲの作成と同様にして、サブテーブルＲ１〜Ｒ３を作成し、図５に示す構成のルーティングテーブルＲＴを作成する。
【００９２】
この構成において、メインテーブルＭＲはレベル１〜４までの４つのレベル分のエントリＥを合計１６個（４つのレベル×４つのエリア）含んでいる。また、サブテーブルＲ１は、レベル１及び２の２つのレベル分のエントリＥを合計８個（２つのレベル×４つのエリア）含んでおり、更にサブテーブルＲ２及びＲ３は、各々、レベル１のみのエントリＥを４個（１つのレベル×４つのエリア）夫々含んでいる。すなわち、ルーティングテーブルＲＴとしては、各テーブルにおけるレベル数を、メインテーブルＭＲからみて指数関数的に減少させている。
【００９３】
そして、各エントリＥには、対応するレベルのルーティング先（転送先）の端末装置２を示す端末ＩＤ及びＩＰアドレス等を含む他端末情報に加えて、当該ルーティング先の端末装置２までメッセージ等が到達するまでに中継される端末装置２の数であるホップ数が、当該ルーティング先の端末装置２までのネットワーク上の距離（換言すれば、当該ルーティング先の端末装置２までメッセージ等を到達させる際の容易性）を示す情報として記述されている。なお、当該端末ＩＤ、ＩＰアドレス等及びホップ数を、纏めて以下「ノード情報」と称する。
【００９４】
また、ルーティングテーブルＲＴを構成するメインテーブルＭＲ、サブテーブルＲ１〜Ｒ３においては、各テーブル内の同一レベル且つ同一エリアに相当するエントリＥには、当該同一エリアに属する転送先となり得る端末装置２のノード情報が、ホップ数の少ない端末装置２から順にメインテーブルＭＲ、サブテーブルＲ１〜Ｒ３に夫々一端末装置２分だけ記述されている。
【００９５】
より具体的には、例えば図５に例示するメインテーブルＭＲのエントリＭＥ１に注目した場合、当該エントリＭＥ１内に記述されているノード情報により示される端末装置２と同じエリアに属する他の１つの端末装置２を示すノード情報が、当該エントリＭＥ１と同一レベル同一エリアに相当するサブテーブルＲ１のエントリＲ１Ｅ１、サブテーブルＲ２のエントリＲ２Ｅ１及びサブテーブルＲ３のエントリＲ３Ｅ１内に夫々記述されている。
【００９６】
そして、メインテーブルＭＲのエントリＭＥ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数は、サブテーブルＲ１のエントリＲ１Ｅ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数より少なく、当該エントリＲ１Ｅ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数は、サブテーブルＲ２のエントリＲ２Ｅ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数より少なく、更に当該エントリＲ２Ｅ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数は、サブテーブルＲ３のエントリＲ３Ｅ１内に記述されている端末ＩＤにより示される端末装置２までのホップ数より少なくなっている。
【００９７】
なお、図５に示すルーティングテーブルＲＴにおいて、エントリＭＥ１、Ｒ１Ｅ１、Ｒ２Ｅ１及びＲ３Ｅ１内に夫々記述されている端末ＩＤにより示される端末装置２までのホップ数を相互に等しく構成することも可能である。この場合は、他の端末装置２からメッセージを受け取った時刻が最近の端末装置２を示す端末ＩＤがエントリＭＥ１内に記述されることになる。
【００９８】
このような構成を備えるルーティングテーブルＲＴを用いて、他の端末装置２へメッセージ等を送信（転送）する場合、例えばメインテーブルＭＲのエントリＭＥ１内に記述されている端末ＩＤにより示される端末装置２が、例えば当該端末装置２自体が第１配信システムから離脱した等の理由により当該第１配信システム内に存在しなくなったことが認識された場合、他のルーティング先の端末装置２を新たに探索することなく、サブテーブルＲ１のエントリＲ１Ｅ１内に記述されているノード情報により示される（同じエリア内の）他の端末装置２を新たなルーティング先に直ちに切り換えて必要なＤＨＴルーティング処理を継続する。
【００９９】
そして、当該他の端末装置２をルーティング先としたメッセージ等の送信においては、元々エントリＲ１Ｅ１に記述されていたノード情報をエントリＭＥ１内に書き換えると共に、元々エントリＲ２Ｅ１に記述されていたノード情報をエントリＲ１Ｅ１内に書き換え、更に元々エントリＲ３Ｅ１に記述されていたノード情報をエントリＲ２Ｅ１内に書き換えるルーティングテーブルＲＴの更新を行い、新たなメッセージ等の送信に備える。
【０１００】
更に、例えば現在エントリＭＥ１内に記述されている端末ＩＤにより示される端末装置２よりもホップ数が少ない同一レベル同一エリア内の他の端末装置２が発見された場合には、その新たに発見された端末装置２を示すノード情報を新たにエントリＭＥ１内に記述し、元々エントリＭＥ１に記述されていたノード情報をエントリＲ１Ｅ１内に書き換えると共に、元々エントリＲ１Ｅ１に記述されていたノード情報をエントリＲ２Ｅ１内に書き換え、更に元々エントリＲ２Ｅ１に記述されていたノード情報をエントリＲ３Ｅ１内に書き換えるルーティングテーブルＲＴの更新を行い、新たなメッセージ等の送信に備える。
【０１０１】
そして、全ての各端末装置２は、以上説明したルーティングテーブルＲＴを、夫々作成して保持することになる。このように、各端末装置２は、第１配信システムにおける複数の端末装置２のうち一部の端末装置２の端末ＩＤ（端末識別情報）とＩＰアドレス（所在情報）等とを関連付けたルーティングテーブルＲＴを有しており、このルーティングテーブルＲＴは後述の第１配信システム用記憶領域２５０（図１４参照。）に記憶される。
【０１０２】
ところで、本実施形態の端末装置２は、第１配信システムに未参加のときには、第１配信システムに参加している他の端末装置２の所在情報などを知らない。そのため、端末装置２は、第１配信システムに参加するときには、次の項で説明するように、ルーティングテーブルを生成する。
【０１０３】
なお、本実施形態の端末装置２は、電源が投入されると同時に第１配信システムに参加（接続）するためのアプリケーションを起動するように構成しており、電源が投入されている間は、常時第１配信システムに参加している状態を維持するように構成している。
【０１０４】
[１．１．３．第１配信システムへの参加]
次に、図６を参照して、コンテンツ配信システムＳにおける第１配信システムに未参加の（電源が投入されていない）端末装置２に電源が投入されて、当該第１配信システムへ参加する方法の一例について説明する。図６は、第１配信システムに未参加の端末装置２（以下、「新規参加端末装置２Ｍ」と呼ぶ。）が当該第１配信システムへ参加する様子の一例を示す図である。ここでは、新規参加端末装置２Ｍがコンテンツ配信システムＳにおける第１配信システムに参加する手順について説明する。
【０１０５】
まず、第１配信システムに未参加である新規参加端末装置２Ｍは、電源が投入されると、第１配信システムに参加するためのアプリケーションを起動して、新規参加端末装置２Ｍが備える後述の主記憶装置２０５内の第１配信システム用兼第２配信システム用記憶部２０５ｂ（図１３、図１４参照。）に、上記したルーティングテーブルＲＴや、後述のインデックステーブル２２２等といった第１配信システムで用いる各種情報を記憶する領域として、第１配信システム用の記憶領域を確保する。
【０１０６】
その後、新規参加端末装置２Ｍは、コンテンツ配信システムＳの第１配信システムに参加するために、コンタクト先紹介装置５に対して、参加メッセージを送信すべき端末装置２（以下、「コンタクト先端末装置」と呼ぶ。）の所在情報を要求（以下、「コンタクト先端末装置の問い合わせ」と呼ぶ。）する。
【０１０７】
新規参加端末装置２Ｍは、コンタクト先紹介装置５から参加メッセージを送信すべきコンタクト先端末装置の所在情報が送られてくると、コンタクト先端末装置に対して参加メッセージを送信する。ここで、参加メッセージのあて先識別情報は、新規参加端末装置２Ｍの端末ＩＤとなっている。すなわち、新規参加端末装置２Ｍは、第１配信システムに参加する際に、自装置２のＩＰアドレスのハッシュ値「2133」を宛先識別情報とした参加メッセージを生成する。
【０１０８】
コンタクト先端末装置は、新規参加端末装置２Ｍから送信された参加メッセージを受信すると、この参加メッセージがコンタクト先端末装置宛のメッセージであるか否かを判定する。コンタクト先端末装置宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルＲＴとに基づいて行われる。具体的には、宛先識別情報がコンタクト先端末装置宛の識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、コンタクト先端末装置自身が保持しているルーティングテーブルＲＴに記憶されている端末装置２の端末ＩＤから、一番近い端末装置２の端末ＩＤが、自身であるか他の端末装置２であるかを判定する。
【０１０９】
そして、コンタクト先端末装置の端末ＩＤよりも他の端末装置の端末ＩＤの方が宛先識別情報に近いとき、参加メッセージを受信したコンタクト先端末装置は、コンタクト先端末装置自身が保持しているルーティングテーブルＲＴのレベル２を参照して、「2XXX」のエリアに属す端末装置２のうち、ＩＰアドレスを知っている端末装置２Ｂに対して参加メッセージを転送するとともに自端末装置２が保持しているルーティングテーブルのレベル１のテーブルの情報を、新規参加端末装置２Ｍへ送信する。
【０１１０】
このように、コンテンツＩＤの桁を上から順に適合していく要領で参加メッセージの転送を行い、順次ルーティングテーブルＲＴの各レベルの情報を送信する。最終的に宛先識別情報に最も近い端末装置２に辿り着いたところで参加メッセージの転送は終了する。なお、参加メッセージなどのメッセージを目的の端末装置２へ辿り着くまでに、上述のように転送する仕組みをＤＨＴルーティングと呼ぶ。
【０１１１】
こうして、新規参加端末装置２Ｍは、参加メッセージを受信した端末装置２からルーティングテーブルＲＴの各レベルの情報を上位レベルの情報から順に取得するようにしている。新規参加端末２はこのようにして、第１配信システムに参加するために必要なルーティングテーブルＲＴを生成する。
【０１１２】
［１．１．４．コンテンツデータの検索方法］
次に、図７を参照して、コンテンツデータを保持している端末装置２の検索方法の一例について説明する。図７は、ＤＨＴルーティングによりコンテンツデータを保持している端末装置２が検索される様子の一例を示す図である。
【０１１３】
ここでは、端末ＩＤ「1133」の端末装置２Ｎが、コンテンツＩＤ「3020」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの受信を要求する端末装置を「リクエスト端末装置」と呼ぶ。
【０１１４】
リクエスト端末装置２Ｎは、自己が保持しているルーティングテーブルＲＴのレベル１のテーブルを参照して、コンテンツＩＤ「3020」と同じエリアの端末ＩＤを持つ端末装置の端末ＩＤを宛先識別情報としてコンテンツ保持端末情報（コンテンツ保持端末装置の所在情報を含む情報）の送信要求（以下、「コンテンツ検索メッセージ」と呼ぶ。）を送信する。すなわち、コンテンツＩＤ「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属す端末装置２のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルＲＴにＩＰアドレスが記憶されている）端末装置２Ａ（端末ＩＤ「3213」）に対してコンテンツ検索メッセージを送信する。このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツＩＤを含むものであり、このコンテンツＩＤはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
【０１１５】
図７に示す例によれば、端末ＩＤが「3213」である端末装置２ＡのＩＰアドレスがリクエスト端末装置２Ｎのルーティングテーブル（図４参照。）に記憶されているので、リクエスト端末装置２Ｎは、端末ＩＤが「3213」である端末装置２Ａに対してコンテンツ検索メッセージを送信する。
【０１１６】
次に、コンテンツ検索メッセージを受信した端末装置２Ａは、このコンテンツ検索メッセージが自端末装置２Ａ宛のメッセージであるか否かを判定する。自端末装置２Ａ宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルＲＴとに基づいて行われる。具体的には、宛先識別情報が自端末装置２Ａの端末ＩＤと近いか否かが判定される。即ち、宛先識別情報に対して、端末装置２Ａ自身が保持しているルーティングテーブルＲＴに記憶されている端末装置２の端末ＩＤから、一番近い端末装置２の端末ＩＤが、自身であるか他の端末装置２であるかを判定する。ここでは、自端末装置２Ａの端末ＩＤよりも他の端末装置２の端末ＩＤの方が、宛先識別情報に近いため、端末装置２Ａは、当該端末装置２Ａ自身が保持しているルーティングテーブルＲＴのレベル２のテーブルを参照して、「30XX」のエリアに属す端末装置２のうち、ＩＰアドレスを知っている端末装置２Ｂ（端末ＩＤ「3031」）に対してコンテンツ検索メッセージを転送する。
【０１１７】
このように、コンテンツＩＤの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理する端末装置２Ｃ（端末ＩＤ「3011」）、すなわちルート端末装置に辿り着くと、当該ルート端末装置は、コンテンツ検索メッセージに含まれるコンテンツＩＤ「3020」を、自身が管理している後述のインデックスキャッシュ情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持端末装置のＩＰアドレス等をリクエスト端末装置２Ｎに返信するようになっている。
【０１１８】
こうして、リクエスト端末装置２Ｎは、上記ルート端末装置２Ｃから、コンテンツ保持端末情報（コンテンツＩＤ「3020」のコンテンツデータの所在情報、即ち、コンテンツＩＤ「3020」のコンテンツデータを保持するコンテンツ保持端末装置のＩＰアドレス）を受信して知ることになり、当該コンテンツ保持端末装置へ所望のコンテンツに関するダウンロード要求を送信することにより、このダウンロード要求を受信したコンテンツ保持端末装置から、そのコンテンツデータをダウンロードして取得することになる。
【０１１９】
［１．１．５．インデックステーブルへの登録方法］
コンテンツ配信システムＳにおける第１配信システムの中で、新しいコンテンツデータをネットワーク６上において他の端末装置２に見えるように公開する際の手法について述べる。
【０１２０】
本実施形態におけるコンテンツ配信システムＳの第１配信システムは、図８に示すように、コンテンツ投入装置４が各コンテンツ保持端末装置となる端末装置２に対して、各コンテンツ保持端末装置毎の管理対象コンテンツとなるコンテンツデータを送信する。コンテンツ投入装置４から管理対象のコンテンツデータを受信したコンテンツ保持端末装置は、後述のハードディスク装置２０３（図１３参照。）に受信したコンテンツデータを記憶する。
【０１２１】
当該コンテンツデータを配布されたコンテンツ保持端末装置は、図８及び図９に示すように、当該コンテンツ保持端末装置のＩＰアドレス及び端末ＩＤを含むコンテンツ保持端末情報の登録要求メッセージ（以下、「コンテンツ登録メッセージ」と呼ぶ。）を、コンテンツの名称等から求めたコンテンツＩＤと同じ端末ＩＤを持つ端末装置２に向けて（この端末装置２が実在するか否かはこの時点ではわからない。）送信する。そして、このコンテンツ登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルＲＴに従って、次々と転送されていき、当該コンテンツ登録メッセージに含まれるコンテンツＩＤに最も近い端末ＩＤを有する端末装置２まで転送されたところで、その端末装置２がもはや送信先の端末装置２が他にないと判断すると、当該端末装置２自身がそのコンテンツのルート端末装置となるべきだと判断し、図９に示すように、当該コンテンツ登録メッセージに含まれるコンテンツ保持端末情報である当該コンテンツＩＤ、コンテンツ保持端末装置のＩＰアドレス、及び補助情報（タイトル、ジャンル、拡張情報等の属性情報や、監督名等の著作権情報やストリーミング時間等）をインデックスキャッシュ情報として後述のインデックステーブル２２２（図１３参照。）に記憶する。
【０１２２】
このようにルート端末装置のインデックステーブル２２２にコンテンツ保持端末装置の所在情報であるＩＰアドレスが登録されると、以後リクエスト端末装置からのコンテンツ検索メッセージに対してインデックステーブルに登録したコンテンツ保持端末装置の所在情報をリクエスト端末装置へ返信する。このようにして本実施形態では、コンテンツ投入装置４から配布されたコンテンツをコンテンツ保持端末装置に登録し、ルート端末装置を介して検索できるようにすることで、他の端末装置にコンテンツを公開する。
【０１２３】
インデックステーブル２２２は、図１０に示すように、コンテンツＩＤやコンテンツ保持端末装置の所在情報（所在情報）であるＩＰアドレスなどを含むコンテンツ保持端末情報を記憶するためのテーブルである。このインデックステーブル２２２には、コンテンツＩＤやコンテンツ保持端末装置のＩＰアドレスのほか、コンテンツ保持端末装置を紹介した時刻等がコンテンツ保持端末情報として１行（所定記憶エリア）毎に記憶される。
【０１２４】
また、本実施形態において、このコンテンツ保持端末情報は、コンテンツ保持端末装置からルート端末装置へ転送される際に、その転送経路上に存在する各端末装置２（コンテンツ保持端末情報を転送した端末装置２）のインデックステーブル２２２にも、インデックスキャッシュ情報として記憶される。
【０１２５】
[１．２．第２配信システムについて]
次に、本実施形態のコンテンツ配信システムＳにおける第２配信システムについて、図１及び図１１及び図１２を参照して説明する。
【０１２６】
コンテンツ配信システムＳの第２配信システムは、図１に示すように、コンテンツ配信装置１を頂点として複数の端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８がツリー状の階層構造で多層に論理接続されており、コンテンツ配信装置１からコンテンツデータが当該ツリー状の階層構造の上流に接続されている端末装置２から下流に接続されている端末装置２にかけて順次各端末装置２の中継機能によってストリーミング配信されるように構成される。このツリー状の階層構造は、コンテンツ配信装置１が配信する放送チャンネル毎に構成される。
【０１２７】
このコンテンツ配信システムＳの第２配信システムにおいては、放送チャンネル毎にコンテンツ配信装置１を頂点（ここでは、便宜上第０階層とする。）として複数の端末装置２がツリー状の階層構造で多層に論理接続されるように接続管理装置３によって管理される。なお、本実施形態においては、ツリー状の階層構造として説明するが、これに限られず、複数の端末装置２がチェーン状の階層構造で多層に論理接続されるようにしてもよい。また、端末装置２ａ１，２ａ２は便宜上端末装置２ａと、端末装置２ｂ１〜２ｂ４は便宜上端末装置２ｂと、端末装置２ｃ１〜２ｃ８は便宜上端末装置２ｃという場合がある。
【０１２８】
ここで、第２配信システムにおけるコンテンツデータの配信動作について、図１１を参照して簡単に説明する。図１１はコンテンツ配信システムＳにおける第２配信システムの配信動作説明図である。
【０１２９】
図１１に示すように、コンテンツ配信装置１によって第２配信システムでストリーミング配信されるコンテンツデータは、コンテンツ投入装置４によってコンテンツ配信装置１へ投入される。すなわち、コンテンツデータは、コンテンツ投入装置４からコンテンツ配信装置１へ送信され、コンテンツ配信装置１において受信して後述のハードディスク装置２０３（図１３参照。）に保持される。
【０１３０】
コンテンツ配信システムＳにおける第２配信システムに参加していない端末装置２、言い換えれば放送チャンネルのいずれのツリー状の階層構造も構成していない端末装置２は、第２配信システムに参加する場合、まず、第２配信システムに参加するためのアプリケーションを起動し、自装置２が備える後述の主記憶装置２０５（図１３参照。）に第２配信システム用の記憶領域を確保し、その後、接続管理装置３へ接続先紹介要求を送信する。
【０１３１】
なお、ここで確保される第２配信システム用の記憶領域は、後述のリングバッファ２２０等として機能するものである。
【０１３２】
接続管理装置３は、図１１に示すように、コンテンツ配信システムＳにおける第２配信システムに参加していない端末装置２から接続先紹介要求を受信すると、第２配信システムのツリー状の階層構造の状態等に基づいて、その端末装置２がストリーミング配信を受けるための上流の装置として接続する接続先候補（コンテンツ配信装置１又は端末装置２）を選択する。そして、接続管理装置３は、このように選択した接続先候補の所在情報（接続先候補のＩＰアドレスやポート番号など）及び通信プロトコル等を端末装置２に通知する。また、接続先紹介要求は、他のチャンネルに切り替えるときや、ツリー状の階層構造における上流に接続している端末装置２との接続が切断されたときに接続管理装置３から送信される。
【０１３３】
なお、コンテンツ配信システムＳにおいて、すでに通信プロトコルやポート番号が固定されているときには、端末装置２へのポート番号及び通信プロトコルは通知しなくてもよい。ここで、通信プロトコルとして、ＭＭＳ（Microsoft Media Server）プロトコル、ＲＴＳＰ(Real Time Streaming Protocol)等が用いられる。また、コンテンツデータの形式として、ＡＳＦ（Advanced Streaming Format）、ＷＭＡ（Windows(登録商標) Media Audio）、ＷＭＶ（Windows(登録商標) Media Video）等が用いられる。
【０１３４】
端末装置２は、接続管理装置３から接続先候補の所在情報を受信すると、その所在情報を宛先として接続先候補に対し、第２配信システムへの参加（接続）を要求し、これにより端末装置２がコンテンツ配信システムＳの第２配信システムにおけるツリー状の階層構造へ組み込まれる。すなわち、端末装置２はコンテンツ配信装置１から配信されるコンテンツデータを受信可能となる。
【０１３５】
コンテンツ配信システムＳにおける第２配信システムは、このように端末装置２が次々と各チャンネルに参加することによって、コンテンツ配信装置１を頂点として複数の端末装置２がツリー状の階層構造で多層に論理接続される。そして、コンテンツ配信装置１から配信されるコンテンツデータは、各端末装置２の中継機能により順次ツリー状の階層構造における下流の端末装置２へ中継されて複数の端末装置２にストリーミング配信される。
【０１３６】
すなわち、図１１に示すように、コンテンツ配信装置１から端末装置２ａ１，２ａ２（第1層の端末装置）へコンテンツデータが送信され、端末装置２ａ１，２ａ２はコンテンツデータを受信すると、下流の端末装置２ｂ１〜２ｂ４（第２階層の端末装置）へ受信したコンテンツデータを順次中継する。端末装置２ｂ１〜２ｂ４はコンテンツデータを受信すると、下流の端末装置２ｃ１〜２ｃ８（第３階層の端末装置）へ受信したコンテンツデータを順次中継する。なお、図１１においては、理解を容易にするため、複数の放送チャンネルのうち一つの放送チャンネルの階層構造のみを表している。
【０１３７】
なお、端末装置２は、組み込まれたツリー状の階層構造の位置の上流の端末装置２又はコンテンツ配信装置１の所在情報と、組み込まれたツリー所の階層構造の位置の下流の端末装置２の所在情報とを後述のハードディスク装置２０３に記憶しており、このように記憶した所在情報に基づいて、コンテンツデータの中継を行うようにしている。また、配信されるコンテンツデータは、複数のパケットに分割されて順次配信されるものであり、このようにパケットに分割されて配信されるデータをコンテンツパケットという。
【０１３８】
このように端末装置２へ配信されるコンテンツデータは、放送チャンネル毎にそのツリー状の階層構造を構成する端末装置２へ配信される。配信されるコンテンツデータには、音楽や映画などコンテンツのデータのほか、再生時刻情報が含まれている。そして、コンテンツデータを受信した複数の端末装置２は、順次送信されるコンテンツデータの再生を再生時刻情報に基づいて行う。
【０１３９】
ここで、端末装置２におけるリングバッファ２２０について説明する。図１２は、端末装置２におけるリングバッファ２２０を用いてコンテンツデータを受信し、再生或いは下流の端末装置２へ中継する構成を概念的に表した図である。
【０１４０】
端末装置２は、第２配信システムに参加したときに、参加した放送チャンネルにおけるツリー状の階層構造の上流の装置からストリーミング配信されるコンテンツパケットをストリーミング受信器によって順次受信し、受信したコンテンツパケットに含まれるコンテンツデータをリングバッファ２２０に一時的に蓄積する。リングバッファ２２０に一時的に蓄積されたコンテンツデータは、その再生時刻になると、端末装置２の再生手段であるプレイヤによってリングバッファ２２０から取り出されて再生される。
【０１４１】
ここで、図１２に示すように、リングバッファ２２０には時計回りの方向で新しいコンテンツデータが順次蓄積され、最も古いコンテンツデータが新しいコンテンツデータに書き換わるように構成されている。すなわち、ストリーミング受信器によってリングバッファ２２０に書き込まれるポイントをＡとすると、このポイントＡが時計回りに移動していくのである。
【０１４２】
なお、図１２におけるリングバッファ２２０は概念的に示したものであり、実際にリング形状をしているのではなく、端末装置２の制御手段が、記憶領域における所定アドレス領域に蓄積した最も古いコンテンツデータを順次新しいコンテンツデータに書き換えることにより実現するものである。
【０１４３】
また、コンテンツデータには上述のように再生時刻情報が格納されており、プレイヤはリングバッファ２２０に蓄積したコンテンツデータのうち、現時刻と合致する再生時刻情報を有するコンテンツデータ（ここでは、図１２中Ｂのポイントのコンテンツデータ）をリングバッファ２２０から取り出して順次再生する。
【０１４４】
このようなリングバッファ２２０によって、再生時刻前のコンテンツデータを蓄積しながら、再生時刻までにネットワーク６の状態に依存して間欠的に発生するコンテンツパケットの損失に対処する。言い換えれば、コンテンツ配信装置１は、パケットの損失補完処理を行えるだけのマージンを確保しながらコンテンツデータを配信している。なお、パケットの損失補完処理とは、ある一定時間待っても上位装置からのパケットが届かない場合に、上位装置にパケットの再送要求を行い、上位装置から再度パケットを送信させる処理をいう。損失補完処理ではこのように一連の処理を行わなければならず、ある程度時間がかかるため、上述のようにマージンの確保が必要となる。
【０１４５】
ここで、ツリー状の階層構造の下流に他の端末装置２が２台接続されている場合、図１２に示すように、端末装置２に２つのストリーミング送信器が設けられる。このストリーミング送信器は、リングバッファ２２０に格納されているコンテンツデータを所定量毎にコンテンツパケットのデータ領域に格納してコンテンツパケットを生成し、それぞれ下流に接続された他の端末装置２へこのコンテンツパケットを順次送信する。
【０１４６】
本実施形態の端末装置２では、ツリー状の上流の装置から送信されるコンテンツパケットに含まれるコンテンツデータを取り出してリングバッファ２２０に蓄積するようにしているが、コンテンツパケットをそのままリングバッファ２２０に蓄積するようにしてもよい。いずれにせよ、ストリーミング送信器は、ストリーミング受信器によって受信したコンテンツパケットの送信先及び送信元の情報を置き換えたコンテンツパケットをツリー状の階層構造における下流の端末装置２に送信することになる。なお、ストリーミング受信器は後述のストリーミング受信手段に対応し、プレイヤは後述のストリーミング再生手段に対応し、ストリーミング送信器は後述のストリーミング中継手段に対応する。
【０１４７】
このように端末装置２は、第２配信システムに参加した際に、コンテンツデータを一時的に蓄積するリングバッファ２２０を確保することによって、コンテンツパケットをプリバッファリングしながらパケット損失に対する補完を行い、ネットワーク６の経路上で発生するパケット損失の影響を回避するようにしている。
【０１４８】
以上のように、コンテンツ配信システムＳの第２配信システムでは、コンテンツ配信装置１から送信されたコンテンツデータが複数の端末装置２にストリーミング配信され、複数の端末装置２において同時刻にコンテンツを再生することができる。すなわち、コンテンツ配信システムＳは、Ｐ２Ｐを用いて複数の端末装置２への放送形式のストリーミング配信を実現している。
【０１４９】
[３．端末装置２の構成等の説明]
次に、本実施形態に係る端末装置２の構成等について、図１３〜図１５を参照して具体的に説明する。
【０１５０】
図１３は、端末装置２の構成を示すブロック図であり、図１４は、端末装置の主記憶装置２０５内における第１配信システム用兼第２配信システム用記憶部２０５ｂを示す説明図であり、図１５は、情報管理手段により第１配信システム用に確保される記憶領域と第２配信システム用に確保される記憶領域とを示す説明図である。
【０１５１】
本実施形態の端末装置２は、一般のパーソナルコンピュータ或いは専用端末を適用することができ、上記した第１配信システムに参加している状態で、上記第２配信システムにも参加することができるように構成しており、具体的には、図１３に示すように構成している。
【０１５２】
すなわち、この端末装置２は、図１３に示すように、ＣＰＵ（Central Processing Unit）２０２と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置２０５と、第１配信システムに参加するためのアプリケーションや第２配信システムに参加するためのアプリケーション等といった各種データ等を記憶するハードディスク装置２０３と、ネットワーク６を介してネットワーク上のコンテンツ配信装置１、接続管理装置３、コンテンツ投入装置４、コンタクト先紹介装置５及び他の端末装置２との間で有線通信による通信を行うためのネットワークインタフェース２０４と、ユーザの操作により所定の情報を入力可能なキーボード２０７やマウス２０８等の入力手段を制御する周辺機器制御チップ２０６と、ＣＰＵ２０２からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述の内蔵ディスプレイ２１０に表示するビデオチップ２０９と、ビデオチップ２０９から送信される信号に応じた表示を行う内蔵ディスプレイ２１０と、ＦＭ音源（Frequency Modulation）やＷａｖｅ  Ｔａｂｌｅ音源などの音源を有する音源チップ２１１と、音源チップ２１１から出力されるオーディオ信号を音波に変換する内蔵スピーカ２１２とを備えて構成され、これらの各種構成要素はシステムバス２０１を介して相互に接続されている。
【０１５３】
なお、本実施形態においては、ＣＰＵ２０２と主記憶装置２０５とで制御部２３０を構成している。また、ネットワークインタフェース２０４は、ルータ１０ｂを介して、ネットワーク６に接続されている。このルータ１０ｂは、図１に示すルータ１０に相当するものである。
【０１５４】
また、上述したようなキーボード２０７やマウス２０８では、コンテンツ配信システムＳにおけるコンテンツの購入などの操作が可能である。
【０１５５】
（主記憶装置２０５について）
また、主記憶装置２０５は、端末装置２のコンピュータとしての基本的な機能を提供するためのＯＳ（オペレーティングシステム）プログラム２１７、内蔵ディスプレイ２１０を制御するための画面制御プログラム２１８、第１配信システム又は第２配信システムにより受信したコンテンツデータをデコードして再生するためのデコーダプログラム２１９等が記憶されているプログラム記憶部２０５ａを備えている。
【０１５６】
また、この主記憶装置２０５には、第１配信システムに参加しているときに、第１配信システム用に確保される記憶領域（以下、「第１配信システム用記憶領域２５０」という。）として機能し、第２配信システムに参加しているときに、第２配信システム用に確保される記憶領域（以下、「第２配信システム用記憶領域２５１」という。）として機能する第１配信システム用兼第２配信システム用記憶部２０５ｂを備えている。
【０１５７】
この第１配信システム用兼第２配信システム用記憶部２０５ｂは、制御部２３０が第１配信システムに参加するためのアプリケーションを起動すると、第１配信システム用記憶領域２５０として機能して、以下の情報を記憶する。
【０１５８】
すなわち、第１配信システム用記憶領域２５０は、図１４（ａ）に示すように、ＤＨＴルーティングで用いるルーティングテーブルＲＴ、コンテンツ保持端末装置のＩＰアドレスやコンテンツ保持端末装置が保持するコンテンツＩＤ等を含むコンテンツ保持端末情報（以下、「インデックスキャッシュ情報」ともいう。）を記載したインデックステーブル２２２、現在ダウンロード可能なコンテンツのタイトルや作者やジャンル等が記載されたコンテンツデータのリスト情報であるカタログ情報２２４、ＤＨＴルーティングの際に用いる各種メッセージ情報２２５、コンテンツ購入プログラム２２１等といった第１配信システムによりコンテンツデータを受信するための各種情報を記憶するようにしている。
【０１５９】
一方、第１配信システム用兼第２配信システム用記憶部２０５ｂは、制御部２３０が第１配信システムに参加している状態で、第２配信システムに参加するためのアプリケーションを実行すると、第１配信システム用記憶領域２５０の一部を第２配信システム用記憶領域２５１として機能させて、以下の情報を記憶する。
【０１６０】
すなわち、第２配信システム用記憶領域２５１は、コンテンツ配信装置１から直接又は他の端末装置２に中継されてストリーミング配信されるコンテンツデータをストリーミング受信及びツリー状の階層構造における下流の端末装置２へストリーミング送信するためのストリーム制御プログラム２１５、ツリー状の階層構造に接続された一層上流の端末装置２（或いはコンテンツ配信装置１）の所在情報（ＩＰアドレスやポート番号）とツリー状の階層構造に接続された一層下流の端末装置２の所在情報の管理等を行うためのトポロジー管理プログラム２１６、ストリーミング受信したコンテンツデータを順次一時的に記憶するリングバッファ２２０等といった第２配信システムによりコンテンツデータをストリーミング受信及びストリーミング配信するための情報を記憶するようにしている。
【０１６１】
ここで、ＯＳプログラム２１７は、ＣＰＵ２０２によって読み出されて実行されることにより、キーボード２０７やマウス２０８の入出力に関する機能や、主記憶装置２０５やハードディスク装置２０３などのメモリ管理などの端末装置２であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム２１７がＣＰＵ２０２によって実行された状態で、上述のストリーム制御プログラム２１５、トポロジー管理プログラム２１６、画面制御プログラム２１８、デコーダプログラム２１９、コンテンツ購入プログラム２２１等が主記憶装置２０５から読み出されて実行される。
【０１６２】
なお、ＯＳプログラム２１７、ストリーム制御プログラム２１５、トポロジー管理プログラム２１６、画面制御プログラム２１８、デコーダプログラム２１９、コンテンツ購入プログラム２２１等は、例えば、ネットワーク６に接続されたサーバ等から主記憶装置２０５にダウンロードされるようにしてもよく、また、ＣＤ−ＲＯＭ等の記憶媒体に記録されてから当該記憶媒体を介して、主記憶装置２０５に読み込まれるようにしてもよい。
【０１６３】
（制御部２３０について）
制御部２３０は、上述のようにＣＰＵ２０２と主記憶装置２０５とから構成され、ＣＰＵ２０２が主記憶装置２０５に記憶された各種プログラム２１５〜２１９、２２１、ハードディスク装置２０３に記憶している各種アプリケーションを読み出して実行することにより、端末装置２全体を統括制御し、かつ、後述する記憶容量検出手段、情報量取得手段、参加端末数検出手段、受信速度検出手段、情報管理手段、カタログ情報受信手段、識別情報取得手段、コンテンツデータ記憶制御手段、ダウンロード処理手段、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段、メッセージ宛先判定手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末装置情報返信手段、コンテンツ識別情報演算手段、コンテンツ登録メッセージ生成手段、コンテンツ登録メッセージ送信手段、メッセージ転送手段、コンテンツ再生手段、接続手段、ストリーミング受信手段、ストリーミング中継手段、ストリーミング再生手段、表示制御手段、デコード手段等として機能するようになっている。
【０１６４】
なお、ＣＰＵ２０２がハードディスク装置２０３に記憶されている第１配信システムに参加するためのアプリケーション又は第２配信システムに参加するためのアプリケーションを起動することによって、記憶容量検出手段、情報量取得手段、参加端末数検出手段、受信速度検出手段、情報管理手段として、また、ＣＰＵ２０２がコンテンツ購入プログラム２２１を実行することによって、カタログ情報受信手段、識別情報取得手段、コンテンツデータ記憶制御手段、ダウンロード処理手段、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段、メッセージ宛先判定手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末情報返信手段、コンテンツ識別情報演算手段、コンテンツ登録メッセージ生成手段、コンテンツ登録メッセージ送信手段、メッセージ転送手段等、コンテンツ再生手段として、更にＣＰＵ２０２がストリーム制御プログラム２１５を実行することによってストリーミング受信手段、ストリーミング中継手段等として、またＣＰＵ２０２がトポロジー管理プログラム２１６を実行することによって、接続手段等として、またＣＰＵ２０２が画面制御プログラム２１８を実行することによって表示制御手段等として、更にＣＰＵ２０２がデコーダプログラム２１９を実行することによってデコード手段、ストリーミング再生手段等として、それぞれ機能するようになっている。
【０１６５】
（記憶容量検出手段について）
記憶容量検出手段は、第２配信システムに参加することにより必要となる記憶領域の容量を検出するものである。
【０１６６】
すなわち、この記憶容量検出手段は、第２配信システムにより受信しようとするコンテンツデータの情報量（ビットレート）から、そのコンテンツデータをストリーミング受信するために必要となるリングバッファ２２０の記憶容量を算出すると共に、このリングバッファ２２０の容量とストリーム制御プログラム２１５と、トポロジー管理プログラム２１６とを記憶可能な記憶容量との合計を算出することによって、第２配信システムに参加することにより必要となる記憶領域の容量を検出する。
【０１６７】
また、記憶容量検出手段は、リングバッファ２２０として必要な記憶容量を算出する際に、後述の受信速度検出手段による検出結果に基づいて、第２配信システムにより単位時間にストリーミング受信するコンテンツデータ量を算出すると共に、この算出結果に基づいて必要となるリングバッファ２２０の記憶容量を算出することもできる。
【０１６８】
（情報量取得手段について）
情報量取得手段は、自身が保持しているコンテンツ保持端末情報において、削除対象のコンテンツ保持端末情報を管理している端末装置（ルート端末装置）から、その端末装置が保持しているコンテンツ保持端末情報の情報量を取得することによって、その端末装置が保持しているノード情報の量を取得するものである。
【０１６９】
（参加端末数検出手段について）
参加端末数検出手段は、第１配信システムに参加している端末装置２の数を検出するものである。
【０１７０】
ここで、第１配信システムに参加している端末装置２の数を検出する方法としては、自端末装置２が記憶しているルーティングテーブルＲＴを参照し、ルーティングテーブルＲＴに記載されている端末装置２の数から第１配信システムに参加している端末装置２の数を概算することによって検出するようにしている。
【０１７１】
また、第１配信システムに参加している端末装置２の数を検出する方法としては、第１配信システムに参加している全端末装置２の接続状態を管理しているコンタクト先紹介装置５から現在第１配信システムに参加している端末装置２の数取得するように構成することもできる。
【０１７２】
（受信速度検出手段について）
受信速度検出手段は、端末装置２が第２配信システムに参加したときに、ツリー状の階層構造に接続された一層上流の端末装置２（或いはコンテンツ配信装置１）から、その装置が使用している通信回線の種類を取得し、その通信回線（光回線、ＡＤＳＬ回線、通常の電話回線等）の種類から、その装置と自端末装置２との間の通信速度（ビットレート）を間接的に検出する。
【０１７３】
ここで受信速度検出手段は、通信回線の種類によって通信速度を検出するようにしているが、これに限定するものではなく、たとえば、ツリー状階層構造に接続された一層上流の端末装置２（或いはコンテンツ配信装置１）から、コンテンツデータを送信してもらう前に、所定のファイルサイズのデータをスピードテスト用のデータとして送信してもらい、そのデータの受信が完了するまでに要した時間から、通信速度を検出するように構成してもよい。
【０１７４】
（情報管理手段について）
情報管理手段は、端末装置２が第１配信システムに参加するときに、主記憶装置２０５の第１配信システム用兼第２配信システム用記憶部２０５ｂに、第１配信システム用記憶領域２５０を確保し、当該端末装置２が第１配信システムに参加している状態で、第２配信システムに参加したときに、第１配信システム用記憶領域２５０の一部を第２配信システム用記憶領域２５１として機能させるものである。
【０１７５】
すなわち、この情報管理手段は、端末装置２に電源が投入されると、まず、主記憶装置２０５内の第１配信システム用兼第２配信システム用記憶部２０５ｂに第１配信システム用記憶領域２５０を確保する。
【０１７６】
このとき、情報管理手段は、図１５（ａ）に示すように、第１配信システムによりコンテンツデータをダウンロードするために必要なだけの記憶領域を第１配信システム用記憶領域２５０として確保し、この第１配信システム用記憶領域２５０内に、第１配信システムによりコンテンツデータのダウンロードを行うために必要なコンテンツ購入プログラム２２１、ルーティングテーブルＲＴ、インデックステーブル２２２、カタログ情報２２４、各種メッセージ情報２２５等（図１４（ａ）参照。）を記憶させる。
【０１７７】
これら第１配信システム用記憶領域２５０内に記憶させる各種情報は、前回端末装置２の電源を切る前に、ハードディスク装置２０３に保存しておいた情報である。ただし、ルーティングテーブルＲＴとインデックステーブル２２２とカタログ情報に関しては、一旦ハードディスク装置２０３から読み出して第１配信システム用記憶領域２５０に記憶した後、これらの情報が最新のものであるか否かの判断を行い、最新のものでないと判断した場合には、随時最新の情報に更新するように構成している。
【０１７８】
こうして情報管理手段は、第１配信システム用兼第２配信システム用記憶部２０５ｂに第１配信システム用記憶領域２５０を確保して、第１配信システムによるコンテンツデータのダウンロードに備える。
【０１７９】
その後、ユーザが端末装置２を第１配信システムに参加させている状態で、第２配信システムに参加させるために、キーボード２０７又はマウス２０８を操作すると、情報管理手段は、上記した記憶容量検出手段の検出結果に応じて、図１５（ｂ）に示すように第１配信システム用記憶領域２５０に記憶している情報のうちの一部を削除する。
【０１８０】
すなわち情報管理手段は、記憶容量検出手段の検出結果に応じて、第１配信システム用記憶領域２５０の一部を第２配信システム用記憶領域２５１として機能させるか否かを判断する。
【０１８１】
このとき、情報管理手段は、記憶容量検出手段により算出された、第２配信システムによりコンテンツデータをストリーミング受信するのに必要なリングバッファ２２０の記憶容量とストリーム制御プログラム２１５とトポロジー管理プログラム２１６とを記憶可能な記憶容量の合計と、第１配信システム用兼第２配信システム用記憶部２０５ｂにおける空き領域の記憶容量とを比較し、この空き領域の記憶容量よりも記憶容量検出手段により算出された記憶領域の方が大きいと判断した場合に、第１配信システム用記憶領域２５０に記憶している情報のうちの一部を削除する。
【０１８２】
一方、情報管理手段は、記憶容量検出手段により検出された記憶容量よりも、第１配信システム用兼第２配信システム用記憶部２０５ｂの空き領域の記憶容量の方が大きいと判断した場合には、この空き領域を第２配信システム用記憶領域２５１として機能させる。
【０１８３】
これにより、情報管理手段は、第１配信システム用兼第２配信システム用記憶部２０５ｂに、第２配信システム用記憶領域２５１を十分に確保できるだけの空き領域がある場合に、第１配信システム用記憶領域２５０を第２配信システム用記記憶領域として機能させるための処理を行わなくて済むので、その分、当該情報管理手段の処理負担を軽減することができる。
【０１８４】
また、情報管理手段は、第１配信システム用記憶領域２５０に記憶している情報の一部を削除する場合、上記情報量取得手段により取得した情報量に応じて、第１配信システム用記憶領域２５０内のインデックステーブル２２２を構成しているコンテンツ保持端末情報を削除するか否かの判断を行う。
【０１８５】
すなわち、情報管理手段は、情報量取得手段により削除対象のコンテンツ保持端末情報を管理しているルート端末装置から、そのルート端末装置が保持している削除対象のコンテンツ保持端末情報の情報量を取得し、取得した情報量が所定の閾値を越えている場合に、第１配信システム用記憶領域２５０内のインデックステーブル２２２から削除対象のコンテンツ保持端末情報を削除する。
【０１８６】
このとき削除するコンテンツ保持端末情報は、仮に削除しても、再び必要になった場合には、他の端末装置２から取得することができる情報であるため、第１配信システムによるコンテンツデータの受信に支障をきたすことがない。
【０１８７】
また、情報管理手段は、削除対象のコンテンツ保持端末情報を複数種類管理している場合には、情報量取得手段により、複数のルート端末装置から複数種類のコンテンツデータに関するコンテンツ保持端末情報の情報量を取得し、これら取得した複数種類の情報量のうち、情報量が多いコンテンツ保持端末情報から順に削除するようにしている。
【０１８８】
そのため、削除したコンテンツ保持端末情報が再度必要になった場合であっても、そのコンテンツ情報を保持しているルート端末装置がネットワーク６上に多数存在しているため、削除したコンテンツ保持端末情報を、そのルート端末装置から容易に取得することができる。
【０１８９】
一方、情報管理手段は、情報量取得手段により取得した情報量が所定の閾値を超えていない場合には、第１配信システム用記憶領域２５０に記憶しているコンテンツ保持端末情報以外の情報を削除する。
【０１９０】
このように、第１配信システム用記憶領域２５０に記憶しているコンテンツ保持端末情報以外の情報を削除する場合に、情報管理手段は、第１配信システム用記憶領域２５０からカタログ情報若しくは、ルーティングテーブルＲＴを構成するノード情報の一部を削除する。
【０１９１】
また、情報管理手段は、上記受信速度検出手段により取得した受信速度に応じて、第１配信システム用記憶領域２５０として確保している記憶領域のうち、第２配信システム用記憶領域２５１として機能させる領域を拡張又は縮小する。
【０１９２】
すなわち、受信速度検出手段により取得した受信速度が比較的低い場合には、単位時間にリングバッファ２２０に蓄積されるコンテンツデータのデータ量が比較的少ないため、リングバッファ２２０として機能させる記憶領域を縮小させても、リングバッファ２２０へ第２配信システムによりストリーミング受信したコンテンツデータを確実に蓄積することができる。
【０１９３】
そのため、情報管理手段は、受信速度検出手段により取得した受信速度が比較的低い場合には、第１配信システム用記憶領域２５０として確保している記憶領域のうち、第２配信システム用記憶領域２５１として機能させる領域を縮小させ、第１配信システム用記憶領域２５０から削除する情報量を低減させるようにしている。
【０１９４】
一方、受信速度検出手段により取得した受信速度が比較的高い場合には、単位時間にリングバッファ２２０に蓄積されるコンテンツデータのデータ量が比較的多いため、リングバッファ２２０として機能させる記憶領域を拡張しなければ、第２配信システムによりストリーミング受信するコンテンツデータを確実に蓄積することができない。
【０１９５】
そのため、情報管理手段は、受信速度検出手段により取得した受信速度が比較的高い場合には、第１配信システム用記憶領域２５０として確保している記憶領域のうち、第２配信システム用記憶領域２５１として機能させる領域を拡大し、第１配信システム用記憶領域２５０から削除する情報量を増大させる。
【０１９６】
このように、第１配信システム用記憶領域２５０から削除する情報量が多くなった場合に、情報管理手段は、第１配信システム用記憶領域２５０に記憶している情報のうち、インデックステーブル２２２を構成しているコンテンツ保持端末情報又はカタログ情報のいずれか一方を削除する。
【０１９７】
また、情報管理手段は、コンテンツ保持端末情報とカタログ情報とのいずれか一方を削除しても、リングバッファ２２０として必要となる記憶領域を十分に確保できないと判断した場合に、コンテンツ保持端末情報とカタログ情報との両方を第１配信システム用記憶領域２５０から削除する。
【０１９８】
そして、情報管理手段は、コンテンツ保持端末情報とカタログ情報との両方を削除しても、リングバッファ２２０として必要となる記憶領域を十分に確保できないと判断した場合には、ルーティングテーブルＲＴを構成するノード情報の一部を削除する。
【０１９９】
このとき、情報管理手段は、他の端末装置２の端末ＩＤとその端末装置２のＩＰアドレス等、ＤＨＴルーティングを行う際に必要不可欠な情報に関しては削除せず、自端末装置２からルート端末装置へ情報を転送する際の転送経路上に存在する端末装置の数（ポップ数）を示す情報等、削除してもＤＨＴルーティングを行う際に支障をきたさない情報を削除するようにしている。
【０２００】
そして、第１配信システムに記憶している情報において、情報管理手段による削除の優先順位は、コンテンツ保持端末情報、カタログ情報、ルーティングテーブルＲＴに記載されているノード情報の一部の順としている。
【０２０１】
すなわち、情報管理手段は、第１配信システム用記憶領域２５０から情報を削除する際に、まず、コンテンツ保持端末情報を削除し、それでもリングバッファ２２０として十分な記憶領域を確保できなければカタログ情報を削除し、それでもリングバッファ２２０として十分な記憶領域を確保できなければノード情報の一部を削除するようにしている。
【０２０２】
このように削除の優先順位を設けたことにより、情報管理手段は、第１配信システム用記憶領域２５０から情報を削除する際に、削除してもＤＨＴルーティングに支障をきたすおそれの低い情報、換言すれば、第１配信システムによりコンテンツデータのダウンロードを行う際に支障をきたすおそれの低い情報から順に削除することができる。
【０２０３】
また、情報管理手段は、上記参加端末数検出手段により検出した端末装置２の数が所定の閾値を超えている場合に、第１配信システム用記憶領域２５０の一部を削除する。
【０２０４】
すなわち、情報管理手段は、第１配信システムに所定数よりも多い端末装置２が参加していれば、第１配信システム用記憶領域２５０に記憶している情報を削除しても、その情報が必要になった場合、第１配信システムに参加している他の端末装置２からその情報を取得することができる。
【０２０５】
しかも、当該端末装置２が所定のコンテンツデータのルート端末装置であった場合、第１配信システム用記憶領域２５０に記憶している情報を削除しても、自身が保持している情報を必要とする端末装置２は、第１配信システムに参加している他の端末装置２からその情報を取得することができ、第１配信システムに参加している他の端末装置２に支障をきたすことがない。
【０２０６】
また、情報管理手段は、第１配信システム用記憶領域２５０において削除対象となる情報量が多く、後にその情報が必要になった場合、その情報を他の端末装置２等から取得することが困難であると判断した場合、図１５（ｂ）に示すように、第１配信システム用記憶領域２５０から情報を削除する前に、削除対象の情報を一旦ハードディスク装置２０３へ保存しておく。
【０２０７】
この場合、ハードディスク装置２０３は、第１配信システム用記憶領域２５０から削除する情報を保存しておくための他の記憶手段として機能する。
【０２０８】
このようにして、情報管理手段は、第１配信システム用記憶領域２５０から情報を削除した後、図１５（ｃ）に示すように、第１配信システム用記憶領域２５０において、削除した情報若しくはハードディスク装置２０３に保存した情報を記憶していた領域を第２配信システム用記憶領域２５１として機能させ、この第２配信システム用記憶領域２５１内に、第２配信システムによりコンテンツデータのダウンロードを行うために必要なストリーム制御プログラム２１５、トポロジー管理プログラム２１６、リングバッファ２２０等（図１４（ｂ）参照。）を記憶させる。
【０２０９】
こうして情報管理手段は、第１配信システム用兼第２配信システム用記憶部２０５ｂに第２配信システム用記憶領域２５１を確保して、第２配信システムによるコンテンツデータのストリーミング受信に備える。
【０２１０】
そして、情報管理手段は、端末装置２が第２配信システムから離脱した後に、図１５（ｄ）に示すように、第２配信システム用記憶領域２５１に記憶している情報を削除する。
【０２１１】
その後、情報管理手段は、ハードディスク装置２０３内に第１配信システム用記憶領域２５０から削除した情報を保存している場合、図１５（ｄ）に示すように、その情報をハードディスク装置２０３から読み出して、再度、第１配信システム用兼第２配信システム用記憶部２０５ｂに確保した第１配信システム用記憶領域２５０に記憶させ、第１配信システム用兼第２配信システム用記憶部２０５ｂを図１５（ａ）に示す状態へ戻す。
【０２１２】
また、情報管理手段は、ハードディスク装置２０３内に第１配信システム用記憶領域２５０から削除した情報を保存していない場合、第１配信システム用記憶領域２５０から削除した情報を、他の端末装置２等から取得して、再度、第１配信システム用兼第２配信システム用記憶部２０５ｂに確保した第１配信システム用記憶領域２５０に記憶させ、第１配信システム用兼第２配信システム用記憶部２０５ｂを図１５（ａ）に示す状態へ戻す。
【０２１３】
このように情報管理手段は、第１配信システムに参加した状態で、第２配信システムに参加したときに、第１配信システム用記憶領域２５０の一部を第２配信システム用記憶領域２５１として機能させることにより、第２配信システムで使用するリングバッファ２２０として十分な容量の記憶領域を確保することができるので、第２配信システムによるコンテンツデータのストリーミング受信に支障をきたすことがなく、第２配信システムに参加していないときには、第２配信システム用記憶領域２５１を確保しておく必要がないため、端末装置２の主記憶装置２０５を有効に利用することができる。
【０２１４】
（カタログ情報受信手段について）
カタログ情報受信手段は、コンテンツ投入装置４から送信されるカタログ情報を受信する機能を有している。コンテンツ投入装置４から送信されるカタログ情報は、第１配信システムにおいて現在ダウンロード可能なコンテンツデータのタイトルとコンテンツＩＤとが関連付けられた情報であり、自端末装置２が第１配信システムに参加したときにコンテンツ投入装置４へカタログ情報の送信要求を行うことによって、コンテンツ投入装置４から送信されるものである。また、コンテンツ投入装置４は新たにコンテンツ配信装置１又は端末装置２に対して所定数のコンテンツデータを投入したときには、更新したカタログ情報を各端末装置２へ送信するようにしている。
【０２１５】
（識別情報取得手段について）
識別情報取得手段は、ユーザにより所望のコンテンツデータに関してダウンロード要求の操作があると、ダウンロード要求されたコンテンツデータを第１配信システムで取得するために、ダウンロード要求されたコンテンツデータの識別情報であるコンテンツＩＤを取得する。すなわち、識別情報取得手段は、カタログ情報受信手段によって受信したカタログ情報からダウンロード要求されたコンテンツデータの識別情報であるコンテンツＩＤを取得する。
【０２１６】
なお、識別情報取得手段は、ダウンロード要求されたコンテンツデータのコンテンツＩＤのみをコンテンツ投入装置４から取得するようにしてもよい。この場合、識別情報取得手段は、ダウンロード要求されたコンテンツデータのタイトルをコンテンツ投入装置４へ送信して、ダウンロード要求されたコンテンツデータのコンテンツＩＤを取得する。
【０２１７】
また、識別情報取得手段は、後述するコンテンツ識別情報演算手段によってダウンロード要求されたコンテンツデータのコンテンツＩＤを求めるようにしてもよい。すなわち、ダウンロード要求されたコンテンツデータのタイトルをキーワードとして上記ハッシュ関数によりハッシュ化することによってコンテンツＩＤを求めるのである。このようにダウンロード要求されたコンテンツデータのタイトルをキーワードとしてコンテンツＩＤを求めることにより、端末装置２における第１配信システムでのダウンロード処理がし易くなる。なお、第１配信システムによってダウンロード可能なコンテンツのタイトルは、コンテンツ投入装置４から一覧表などの形式で取得し、コンテンツ識別情報演算手段は、この一覧表であるカタログ情報等からコンテンツのタイトルを取得することで、コンテンツＩＤを算出することができる。
【０２１８】
（コンテンツデータ記憶制御手段について）
コンテンツデータ記憶制御手段は、第１配信システムによってダウンロードしたコンテンツデータをハードディスク装置２０３のコンテンツデータ記憶領域に記憶する。
【０２１９】
（ダウンロード処理手段について）
ダウンロード処理手段は、識別情報取得手段によって取得されたコンテンツデータのコンテンツＩＤに基づいて、ダウンロード要求されたコンテンツデータを第１配信システムに参加しているコンテンツ保持端末装置からダウンロードする機能を有しており、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段などから構成されている。
【０２２０】
（コンテンツ保持端末情報受信手段について）
コンテンツ保持端末情報受信手段は、まず、識別情報取得手段によって取得されたコンテンツデータのコンテンツＩＤに基づいて、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置を検索する。
【０２２１】
コンテンツ保持端末装置の検索は、識別情報取得手段によって取得されたコンテンツＩＤを宛先識別情報としたコンテンツ検索メッセージを生成し、そのコンテンツＩＤと同じエリアの端末ＩＤを持つ端末装置２のＩＰアドレスをルーティングテーブルＲＴから取り出して、その端末装置２へコンテンツ検索メッセージを送信することによって行う。
【０２２２】
そして、このコンテンツ保持端末情報受信手段は、コンテンツ検索メッセージに対して、識別情報取得手段によって取得されたコンテンツＩＤのコンテンツデータを保持するコンテンツ保持端末装置のＩＰアドレスをルート端末装置から受信する。
【０２２３】
このようにして、コンテンツ保持端末情報受信手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置に関するコンテンツ保持端末情報を受信するのである。
【０２２４】
（ダウンロード送信要求手段）
ダウンロード送信要求手段は、コンテンツ保持端末情報受信手段によって受信したコンテンツ保持端末情報に対応したコンテンツ保持端末装置に、ダウンロード要求されたコンテンツデータの送信をネットワーク６を介して要求（以下、「ダウンロード送信要求」と呼ぶ。）する。このダウンロード送信要求は、コンテンツ保持端末装置のＩＰアドレスを宛先として、ダウンロード要求に対応するコンテンツデータのコンテンツＩＤを設定するものである。なお、コンテンツ保持端末情報受信手段によって検索されたコンテンツ保持端末装置が複数ある場合には、近隣のコンテンツ保持端末装置の一つに対してダウンロード送信要求が行われる。
【０２２５】
ここで、「近隣のコンテンツ保持端末装置」とは、ダウンロード送信要求を行う端末装置２が、コンテンツ保持端末装置とＤＨＴルーティングにおいて端末ＩＤが近い端末装置、或いは、物理ネットワークにおいて近いコンテンツ保持端末装置を意味する。特に、ダウンロード送信要求を行うコンテンツ保持端末装置を物理ネットワークにおいて近いコンテンツ保持端末装置とする場合には、コンテンツ保持端末装置からのコンテンツデータのダウンロードを短時間で行うことができる。なお、「物理ネットワークにおいて近い」とは、ダウンロード送信要求を行う端末装置からのメッセージ到達時間が短い、或いはダウンロード送信要求を行う端末装置からのポップ数（ルータを経由する数）が少ない等を意味する。
【０２２６】
（ダウンロードデータ受信手段について）
ダウンロードデータ受信手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置からダウンロード要求されたコンテンツデータをネットワーク６を介して受信する。コンテンツ保持端末装置から送信されるコンテンツデータは、第２配信システムのようなストリーミング形式ではなく、ダウンロード形式のデータである。
【０２２７】
ダウンロード受信手段により受信したコンテンツデータは、制御部２３０によって、ハードディスク装置２０３のコンテンツデータ記憶領域（コンテンツデータ記憶手段に相当）に記憶される。
【０２２８】
（メッセージ宛先判定手段について）
メッセージ宛先判定手段は、ネットワーク６を介して受信したメッセージの宛先識別情報とルーティングテーブルＲＴとに基づいて、受信したメッセージが自端末装置２宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、上述のコンテンツ検索メッセージ、コンテンツ登録メッセージなどである。
【０２２９】
受信したメッセージが自端末装置２宛であるか否かの判定は、メッセージに含まれる宛先端末ＩＤ（宛先識別情報）を取り出し、主記憶装置２０５に記憶したルーティングテーブルＲＴに基づいて判定する。すなわち、各種のメッセージをネットワークインタフェース２０４を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルＲＴに記憶した端末ＩＤとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブルＲＴ上の端末ＩＤが自端末装置２の端末ＩＤであると判定すると、自端末装置２宛のメッセージであると判定する。
【０２３０】
（コンテンツ保持端末情報選択手段について）
コンテンツ保持端末情報選択手段は、メッセージ宛先判定手段によりネットワーク６を介して受信したメッセージが自端末装置２宛であり、かつコンテンツ検索メッセージであると判定すると、インデックステーブル２２２からコンテンツ検索メッセージが対象とするコンテンツＩＤのコンテンツデータを保持するコンテンツ保持端末装置のＩＰアドレスを選択する。なお、インデックステーブル２２２にコンテンツ保持端末装置のＩＰアドレスが複数ある場合には、それらを全部或いはいくつか選択する。
【０２３１】
（コンテンツ保持端末情報返信手段について）
コンテンツ保持端末情報返信手段は、コンテンツ保持端末情報選択手段によって選択されたコンテンツ保持端末装置のＩＰアドレスを、リクエスト端末装置へネットワーク６を介して返信する。
【０２３２】
（コンテンツ識別情報演算手段について）
コンテンツ識別情報演算手段は、コンテンツデータの固有情報を上記の如く所定のハッシュ関数によって演算することによってコンテンツデータの識別情報であるコンテンツＩＤを演算する。
【０２３３】
（コンテンツ登録メッセージ生成手段について）
コンテンツ登録メッセージ生成手段は、コンテンツ投入装置４からコンテンツデータを受信したとき、受信したコンテンツデータをコンテンツデータ記憶手段であるハードディスク装置２０３に記憶する。又、コンテンツデータのコンテンツのタイトルをコンテンツ識別情報演算手段によって演算したコンテンツＩＤを宛先識別情報とし、自端末装置の端末ＩＤ及びＩＰアドレスを含むコンテンツ登録メッセージを生成する。
【０２３４】
（コンテンツ登録メッセージ送信手段について）
コンテンツ登録メッセージ送信手段は、コンテンツ登録メッセージ生成手段によって生成したコンテンツ登録メッセージを、ハードディスク装置２０３に記憶したコンテンツデータのコンテンツＩＤに基づいて、ルーティングテーブルＲＴに記憶された端末装置２の端末ＩＤから送信先端末装置を選択して送信する。例えば、図４及び図５に示すようなルーティングテーブルＲＴを有しており、かつハードディスク装置２０３に記憶したコンテンツデータのコンテンツＩＤが「1221」である場合、コンテンツ登録メッセージ送信手段は、ルーティングテーブルＲＴから端末ＩＤ「1221」を送信先端末装置として選択し、当該端末ＩＤ「1221」の端末装置のＩＰアドレス「21.13.21.13」を取り出す。そして、当該ＩＰアドレス「21.13.21.13」を送信先端末装置としてコンテンツ登録メッセージを送信する。なお、このコンテンツ登録メッセージの宛先識別情報は「1221」となる。
【０２３５】
（メッセージ転送手段について）
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク６を介して受信したメッセージが自端末装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、転送先の端末装置のＩＰアドレスをルーティングテーブルＲＴから取り出し、転送先の端末装置２へ受信したメッセージを転送する。
【０２３６】
（コンテンツ再生手段について）
コンテンツ再生手段は、ハードディスク装置２０３に記憶したコンテンツデータを取り出して再生するものであり、ビデオチップ２０９及び音源チップ２１１を動作させることによりコンテンツデータが再生される。
【０２３７】
（接続手段について）
接続手段は、端末装置２をコンテンツ配信システムＳの第２配信システムへ参加させるために、接続先紹介要求をネットワーク６を介して接続管理装置３へ送信し、その後、接続管理装置３からネットワーク６を開始して通知された接続先候補に接続する。
【０２３８】
より具体的には、接続手段は、端末装置２をコンテンツ配信システムＳの第２配信システムへ参加させるために、接続管理装置３へ登録要求をネットワーク６を介して送信して接続管理装置３へ登録し、更に接続先紹介要求をネットワーク６を介して送信して接続管理装置３へ接続先候補を要求する機能を有している。この登録要求や接続先紹介要求には、自端末装置２のＩＰアドレス等を含む。
【０２３９】
また、接続手段は、接続管理装置３へ送信した接続先紹介要求に対して、接続管理装置３からネットワーク６を介して通知される接続先候補の情報、すなわち接続先候補の端末装置２の所在情報であるＩＰアドレスやポート番号などの情報（以下、接続先候補の情報を含めて、「接続先候補」と略すことがある。）を受信する機能を有する。
【０２４０】
更に、接続手段は、受信した接続先候補の情報に基づいて、その接続先候補への論理接続を行う機能を有する。すなわち、接続手段は、接続先候補の情報に基づいて、接続先候補のＩＰアドレス及びポート番号等をあて先とした接続要求を行い、接続先候補との論理接続を行う。このように接続先候補と接続することによって第２配信システムに参加、すなわち自端末装置２をツリー状の階層構造の一部に組み込むことが可能となる。
【０２４１】
（ストリーミング受信手段について）
ストリーミング受信手段は、ネットワークインタフェース２０４を介して第２配信システムによって上流装置、すなわちツリー状の階層構造における上流に論理接続したコンテンツ配信装置１又は上流に接続された端末装置２からコンテンツパケットとして送信されるコンテンツデータをストリーミング受信し、このようにストリーミング受信したコンテンツデータをリングバッファ２２０に順次記憶する。なお、コンテンツデータ受信手段や後述のコンテンツデータ中継手段は、公知のストリーミング配信用プロトコルを用いることができるほか、独自の専用プロトコルを用いるようにすることもできる。
【０２４２】
（ストリーミング中継手段について）
ストリーミング中継手段は、第２配信システムにおける上流装置、すなわちコンテンツ配信装置１又はツリー状の階層構造における上流に接続された端末装置２からネットワーク６を介してストリーミング受信されたコンテンツデータを、下流に接続された他の端末装置２へネットワーク６を介して転送する。
【０２４３】
（ストリーミング再生手段について）
ストリーミング再生手段は、ネットワークインタフェース２０４を介して第２配信システムによって上流装置からストリーミング受信してリングバッファ２２０に順次記憶されたコンテンツデータを順次再生する機能を有している。
【０２４４】
このストリーミング再生手段は、音源チップ２１１やビデオチップ２０９を動作させることによってこの機能を実現しており、リングバッファ２２０に格納したコンテンツデータを順次取り出して、所定のコンテンツデータ形式（たとえば、Ｗａｖｅ形式）に変換して音源チップ２１１やビデオチップ２０９へ入力し、コンテンツの再生を行う。
【０２４５】
ストリーミング再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータは、そのコンテンツデータがオーディオ情報を含む場合には、そのオーディオ情報が音源チップ２１１によってオーディオ信号へ変換された後、内蔵スピーカ２１２から出力される。
【０２４６】
また、ストリーミング再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータは、そのコンテンツデータに映像情報が含まれるときには、後述の表示制御手段による制御によってこの映像情報が内蔵ディスプレイ２１０に表示される。
【０２４７】
また、ストリーミング再生手段は、リングバッファ２２０に格納されたコンテンツデータに含まれる再生開始時刻情報に基づいて、当該コンテンツデータを再生するタイミングを決定する。すなわち、再生手段は、リングバッファ２２０に格納されたコンテンツデータをその再生開始時刻で内蔵スピーカ２１２や内蔵ディスプレイ２１０に出力するように構成されている。
【０２４８】
（表示制御手段について）
表示制御手段は、ビデオチップ２０９及び内蔵ディスプレイ２１０を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、内蔵ディスプレイ２１０にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
【０２４９】
（デコード手段について）
デコード手段は、他の端末装置２から送信されるコンテンツデータ等をディスプレイ２１０に表示し、スピーカ２１２から出力するためにデコードする。すなわち、他の端末装置２から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばＡＳＦ、ＷＭＡ、ＷＭＶ等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータをディスプレイ２１０やスピーカ２１２から出力できるようにデコードする。
【０２５０】
[２．接続管理装置の動作]
次に、本実施形態における接続管理装置３の動作について、図１６に示すフローチャートを参照して説明する。ここで、接続管理装置３は、汎用のパーソナルコンピュータにより構成されており、図１６に示すフローチャートは、接続管理装置３の制御部が行う処理を示すものである。
【０２５１】
接続管理装置３の制御部は、電源が投入されると、図１６に示すように、まず、電源ＯＦＦか否かの判断を行う。ここで接続管理装置３の制御部は、接続管理装置３の電源をＯＦＦにする操作がなされたと判断した場合（ステップＳ１：Ｙｅｓ）に処理を終了し、電源をＯＦＦにする操作がなされていないと判断した場合（ステップＳ１：Ｎｏ）に、処理をステップＳ２へ移す。
【０２５２】
ステップＳ２において接続管理装置３の制御部は、第１配信システムに参加しようとする端末装置２から接続先紹介要求を受信したか否かの判断を行い、接続先紹介要求を受信したと判断した場合（ステップＳ２：Ｙｅｓ）に、処理をステップＳ３へ移し、接続先紹介要求を受信していないと判断した場合（ステップＳ２：Ｎｏ）に、その他の処理を行い（ステップＳ４）、その後処理をステップＳ１へ移す。
【０２５３】
ステップＳ３において接続管理装置３の制御部は、接続先紹介要求を送信してきた端末装置２へ、第１配信システムに参加している現在接続可能な端末装置２のＩＰアドレスを送信する接続先候補紹介処理を行い、その後、処理をステップＳ１へ移す。
【０２５４】
こうして接続管理装置３の制御部は、電源が投入されている間、ステップＳ１〜Ｓ４の処理を繰り返し、第１配信システムに参加しようとする端末装置２へ接続先候補となる端末装置を紹介する。
【０２５５】
[３．端末装置の動作]
次に、本実施形態に係る端末装置の動作について、図１７〜図３３に示すフローチャートを参照して具体的に説明する。以下の各処理は、端末装置２の制御部２３０が上述した各手段として機能することによって実行されるものである。なお、以下の説明では、端末装置２の制御部２３０を単に制御部２３０と称する。
【０２５６】
（メイン処理）
制御部２３０を構成するＣＰＵ２０２は、電源が投入されると、まず初期設定動作を行い、その後、ハードディスク装置２０３に記憶している第１配信システムに参加するためのアプリケーションを起動して、制御部２３０としての機能を動作させ、主記憶装置２０５内の第１配信システム用兼第２配信システム用記憶部２０５ｂに第１配信システム用記憶領域２５０を確保する。
【０２５７】
そして、制御部２３０は、ハードディスク装置２０３から読み出したコンテンツ購入プログラムと各種メッセージ情報とを第１配信システム用記憶領域２５０に記憶し、その後、図１７に示すメイン処理を実行する。なお、ルーティングテーブルＲＴ、インデックステーブル２２２、カタログ情報２２４に関しては、制御部２３０がメイン処理を実行することによって、第１配信システム用記憶領域２５０に順次記憶する。
【０２５８】
このメイン処理において制御部２３０は、図１７に示すように、参加メッセージ送信処理を行う（ステップＳ１１）。
【０２５９】
ここで制御部２３０は、第１配信システムに参加している全ての端末装置２の接続状態を管理しているコンタクト先紹介装置５へ、コンテンツ配信システムＳの第１配信システムに参加するために、参加メッセージを送信すべきコンタクト先端末装置の所在情報を要求する。
【０２６０】
そして、制御部２３０は、コンタクト先紹介装置５から参加メッセージを送信すべきコンタクト先端末装置の所在情報が送られてくると、コンタクト先端末装置に対して参加メッセージを送信する。なお、このとき送信する参加メッセージの宛先識別情報は、自身の端末ＩＤとなっている。制御部は、自装置２のＩＰアドレスのハッシュ値を宛先識別情報とした参加メッセージを送信するのである。
【０２６１】
次に、制御部２３０は、ルーティングテーブル作成処理を行う（ステップＳ１２）。ここで制御部２３０は、以下のようにしてルーティングテーブルＲＴを作成する。
【０２６２】
すなわち、参加メッセージを受信したコンタクト先端末装置は、自身が保持しているルーティングテーブルＲＴに基づいて、この参加メッセージを他の端末装置へ転送すると共に、自身が保持しているルーティングテーブルＲＴのレベル１のテーブルの情報を新規参加端末装置２Ｍである当該端末装置へ送信する。
【０２６３】
そして、参加メッセージが転送された他の端末装置も同様に、自身が保持しているルーティングテーブルＲＴに基づいて参加メッセージを転送すると共に、自身が保持しているルーティングテーブルＲＴのレベル２のテーブルの情報を新規参加端末装置２Ｍである当該端末装置へ送信する。
【０２６４】
このようにして参加メッセージは、順次他の端末装置２へ転送されていき、最終的に宛先識別情報に最も近い端末装置２に辿り着いたところで参加メッセージの転送は終了する。
【０２６５】
そして、制御部２３０は、参加メッセージの転送経路となった各端末装置２から、その端末装置２が保持しているルーティングテーブルの情報を順次受信して第１配信システム用記憶領域２５０に記憶することにより、自身のルーティングテーブルＲＴの各レベルの情報を上位レベルから順に登録して、第１配信システムに参加するために必要なルーティングテーブルＲＴを生成する。
【０２６６】
次に制御部２３０は、カタログ情報取得処理を行う（ステップＳ１３）。このとき制御部２３０は、コンタクト先端末装置等といった第１配信システムに参加している他の端末装置からカタログ情報２２４を受信して、第１配信システム用記憶領域２５０に記憶する。
【０２６７】
次に制御部２３０は、ユーザにより電源をＯＦＦ状態にする操作がなされたか否かの判断を行い（ステップＳ１４）、電源をＯＦＦ状態にする操作がなされたと判断した場合（ステップＳ１４：Ｙｅｓ）に、メイン処理を終了し、電源をＯＦＦ状態にする操作がなされていないと判断した場合（ステップＳ１４：Ｎｏ）に、処理をステップＳ１５へ移す。
【０２６８】
ステップＳ１５において制御部２３０は、現在第２配信システムに参加中であるか否かの判断を行い、第２配信システムに参加中であると判断した場合（ステップＳ１５：Ｙｅｓ）に、処理をステップＳ１８へ移し、第２配信システムに参加中でないと判断した場合（ステップＳ１５：Ｎｏ）に、処理をステップＳ１６へ移す。
【０２６９】
ステップＳ１８において制御部２３０は、図３１に示す後述の第２配信システム参加中処理を行った後、処理をステップＳ１９へ移す。
【０２７０】
次に、ステップＳ１６において制御部２３０は、第２配信システムに参加するか否かの判断を行う。ここで制御部２３０は、ユーザにより第２配信システムに参加するための操作が為されたか否かによって、第２配信システムに参加するか否かの判断を行う。
【０２７１】
そして制御部２３０は、第２配信システムに参加すると判断した場合（ステップＳ１６：Ｙｅｓ）に、処理をステップＳ１７へ移し、第２配信システムに参加しないと判断した場合（ステップＳ１６：Ｎｏ）に、処理をステップＳ１９へ移す。
【０２７２】
また、ステップＳ１７において制御部２３０は、図２３に示す後述の第２配信システムへの参加処理を行った後、処理をステップＳ１９へ移す。
【０２７３】
ステップＳ１９において制御部２３０は、第２配信システムのメッセージを受信したか否かの判断を行い、受信したと判断した場合（ステップＳ１９：Ｙｅｓ）に処理をステップＳ２０へ移し、受信していないと判断した場合（ステップＳ１９：Ｎｏ）に、処理をステップＳ２１へ移す。
【０２７４】
ステップＳ２０において制御部２３０は、図３３に示す後述の第２配信システムのメッセージに対応した処理を行い、その後、処理をステップＳ１４へ移す。
【０２７５】
またステップＳ２１において制御部２３０は、第１配信システムのメッセージを受信したか否かの判断を行い、受信したと判断した場合（ステップＳ２１：Ｙｅｓ）に、処理をステップＳ２２へ移し、受信していないと判断した場合（ステップＳ２１：Ｎｏ）に、処理をステップＳ２３へ移す。
【０２７６】
ステップＳ２２において制御部２３０は、図１８に示す後述の第１配信システムのメッセージに対応した処理を行った後、処理をステップ１４へ移す。なお、ステップＳ２３において制御部２３０は、第１及び第２配信システムによるコンテンツデータの受信とは別のその他の処理を行い、その処理が終了すると処理をステップＳ１４へ移す。
【０２７７】
そして、制御部２３０は、端末装置２に電源が投入されている間、これらステップＳ１１〜Ｓ２３の処理を繰り返し行う。
【０２７８】
（第１配信システムのメッセージに対応した処理）
次に、端末装置２の制御部２３０が、図１７に示すメイン処理のステップＳ２２で行う第１配信システムのメッセージに対応した処理について、図１８を参照して説明する。
【０２７９】
第１配信システムのメッセージに対応した処理において、制御部２３０は、図１８に示すように、第１配信システムのメッセージを受信すると、受信したメッセージがコンテンツ登録メッセージであるか否かの判断を行い（ステップＳ３１）、コンテンツ登録メッセージであると判断した場合（ステップＳ３１：Ｙｅｓ）に処理をステップＳ３２へ移し、コンテンツ登録メッセージでないと判断した場合（ステップＳ３１：Ｎｏ）に処理をステップＳ３３へ移す。
【０２８０】
ステップＳ３２において制御部２３０は、図１９、図２０に示す後述のインデックステーブルへの登録処理を行い、その後、処理をステップＳ３６へ移す。
【０２８１】
ステップＳ３３において制御部２３０は、受信した第１配信システムのメッセージがコンテンツ検索メッセージであるか否かの判断を行い、コンテンツ検索メッセージであると判断した場合（ステップＳ３３：Ｙｅｓ）に処理をステップＳ３４へ移し、コンテンツ検索メッセージでないと判断した場合（ステップＳ３３：Ｎｏ）にその他の処理（ステップＳ３５）を行った後、処理をステップＳ３６へ移す。
【０２８２】
ステップＳ３４において制御部２３０は、自身が保持するインデックステーブル２２２を参照して、受信したコンテンツ検索メッセージによる検索対象のコンテンツに対応するインデックスキャッシュ情報を検索し、そのインデックスキャッシュ情報が見つかった場合には、そのインデックスキャッシュ情報をコンテンツ検索メッセージの送信元の端末装置２へ返信し、その後、処理をステップＳ３６へ移す。なお、制御部２３０は、検索対象のコンテンツに対応するインデックスキャッシュ情報が見つからない場合、このステップＳ３４の処理をスルーして処理をステップＳ３６へ移す。
【０２８３】
次に、ステップＳ３６において制御部２３０は、自身がコンテンツ登録メッセージにおける登録対象のコンテンツ、若しくは、コンテンツ検索メッセージにおける検索対象のコンテンツのルート端末装置であるか否かの判断を行い、ルート端末装置であると判断した場合（ステップＳ３６：Ｙｅｓ）に処理をステップＳ３７へ移し、ルート端末装置でないと判断した場合（ステップＳ３６：Ｎｏ）に処理をステップＳ３８へ移す。
【０２８４】
ステップＳ３７において制御部２３０は、自身が保持するルーティングテーブルＲＴに基づいて、受信した第１配信システムのメッセージを次の転送先に転送し、その後、処理をステップＳ３８へ移す。
【０２８５】
ステップＳ３８において制御部２３０は、図２１、図２２に示す後述のルーティングテーブルへの登録処理を行うことによって、コンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報を、自身が保持するルーティングテーブルＲＴに登録して、第１配信システムのメッセージに対応した処理を終了する。
【０２８６】
（インデックステーブルへの登録処理１）
次に、制御部２３０が、図１８に示す第１配信システムのメッセージに対応した処理のステップＳ３２で行うインデックステーブルへの登録処理１について、図１９を参照して説明する。
【０２８７】
インデックステーブルへの登録処理１において制御部２３０は、図１９に示すように、現在第２配信システムに参加中であるか否かの判断を行い（ステップＳ４１）、第２配信システムに参加中であると判断した場合（ステップＳ４１：Ｙｅｓ）に、このインデックステーブルへの登録処理を終了して、処理を図１８に示すステップＳ３６へ移す。
【０２８８】
一方、制御部２３０は、現在第２配信システムに参加中でないと判断した場合（ステップＳ４１：Ｎｏ）に処理をステップＳ４２へ移し、コンテンツ登録メッセージに含まれるインデックスキャッシュ情報を、自身が保持するインデックステーブル２２２へ登録し、その後、このインデックステーブルへの登録処理を終了して、処理を図１８に示すステップＳ３６へ移す。
【０２８９】
（インデックステーブルへの登録処理２）
上記インデックステーブルへの登録処理１において制御部２３０は、第２配信システムに参加中でなければ、受信した全てのコンテンツ登録メッセージに対応したコンテンツのインデックスキャッシュ情報をインデックステーブル２２２に登録するようにしているが、複数種類のコンテンツデータのうちの一部のコンテンツデータに関するインデックスキャッシュ情報だけを、登録対象のインデックスキャッシュ情報としてインデックステーブル２２２に登録してよもよい。
【０２９０】
この場合、たとえば、ユーザは、予め所定のジャンルに含まれるコンテンツデータに関するインデックスキャッシュ情報だけを登録対象のインデックスキャッシュ情報としてインデックステーブル２２２に登録するように端末装置２の設定を行っておく。
【０２９１】
そして、制御部２３０は、登録対象のインデックスキャッシュ情報のみを登録する場合に、図２０に示すインデックステーブルへの登録処理２を行う。
【０２９２】
すなわち、インデックステーブルへの登録処理２において制御部２３０は、図２０に示すように、第２配信システムに参加中であるか否かの判断を行い（ステップＳ５１）、第２配信システムに参加中であると判断した場合（ステップＳ５１：Ｙｅｓ）に処理をステップＳ５２へ移し、第２配信システムに参加中でないと判断した場合（ステップＳ５１：Ｎｏ）に処理をステップＳ５３へ移す。
【０２９３】
ステップＳ５２において制御部２３０は、受信したコンテンツ登録メッセージに含まれているインデックスキャッシュ情報が登録対象のインデックスキャッシュ情報であるか否かの判断を行い、登録対象のインデックスキャッシュ情報であると判断した場合（ステップＳ５２：Ｙｅｓ）に処理をステップＳ５３へ移し、登録対象のインデックスキャッシュ情報でないと判断した場合（ステップＳ５２：Ｎｏ）に、このインデックステーブルへの登録処理２を終了して、処理を図１８に示すステップＳ３６へ移す。
【０２９４】
また、ステップＳ５３において制御部２３０は、コンテンツ登録メッセージに含まれるインデックスキャッシュ情報を、自身が保持するインデックステーブル２２２へ登録した後、このインデックステーブルへの登録処理２を終了して、処理を図１８に示すステップＳ３６へ移す。
【０２９５】
（ルーティングテーブルへの登録処理１）
次に、制御部２３０が、図１８に示す第１配信システムのメッセージに対応した処理のステップＳ３８で行うルーティングテーブルへの登録処理１について、図２１を参照して説明する。
【０２９６】
ルーティングテーブルへの登録処理１において制御部２３０は、図２１に示すように、第２配信システムに参加中であるか否かの判断を行い（ステップＳ６１）、第２配信システムに参加中であると判断した場合（ステップＳ６１：Ｙｅｓ）に、このルーティングテーブルへの登録処理１を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０２９７】
また、ステップＳ６２において制御部２３０は、コンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報を、自身が保持するルーティングテーブルＲＴに登録した後、このルーティングテーブルへの登録処理１を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０２９８】
（ルーティングテーブルへの登録処理２）
上記ルーティングテーブルへの登録処理１において制御部２３０は、第２配信システムに参加中でなければ、受信した全てのコンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報をルーティングテーブルＲＴに登録するようにしているが、複数種類のノード情報のうち一部のノード情報だけを、登録対象のノード情報としてルーティングテーブルＲＴに登録してよもよい。
【０２９９】
この場合、たとえば、ユーザは、所定のジャンルに含まれるコンテンツに関するコンテンツ登録メッセージ及びコンテンツ検索メッセージ中のノードだけを登録対象のノード情報としてルーティングテーブルＲＴに登録するように端末装置２の設定を行っておく。
【０３００】
そして、制御部２３０は、登録対象のノード情報のみを登録する場合に、図２２に示すルーティングテーブルへの登録処理２を行う。
【０３０１】
すなわちルーティングテーブルへの登録処理２において制御部２３０は、図２２に示すように、第２配信システムに参加中であるか否かの判断を行い（ステップＳ７１）、第２配信システムに参加中であると判断した場合（ステップＳ７１：Ｙｅｓ）に処理をステップＳ７２へ移し、第２配信システムに参加中でないと判断した場合（ステップＳ７１：Ｎｏ）に処理をステップＳ７３へ移す。
【０３０２】
ステップＳ７２において制御部２３０は、受信したコンテンツ登録メッセージ又はコンテンツ検索メッセージに含まれているノード情報が登録対象のノード情報であるか否かの判断を行い、登録対象のノード情報であると判断した場合（ステップＳ７２：Ｙｅｓ）に処理をステップＳ７３へ移し、登録対象のノード情報でないと判断した場合（ステップＳ７２：Ｎｏ）に、このルーティングテーブルへの登録処理２を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０３０３】
また、ステップＳ７３において制御部２３０は、ノード情報を自身が保持するルーティングテーブルＲＴへ登録した後、ルーティングテーブルへの登録処理２を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０３０４】
（第２配信システムへの参加処理）
次に、制御部２３０が、図１７に示すメイン処理のステップＳ１７で行う第２配信システムへの参加処理について、図２３を参照して説明する。
【０３０５】
第２配信システムへの参加処理において制御部２３０は、図２３に示すように、第２配信システムで必要となる記憶容量を検出し（ステップＳ８１）、その後、処理をステップＳ８２へ移す。
【０３０６】
このとき、制御部２３０は、第２配信システムにより受信しようとするコンテンツデータの情報量（データサイズ）から、そのコンテンツデータをストリーミング受信するために必要となるリングバッファ２２０の容量を算出することによって、第２配信システムに参加することにより必要となる記憶領域の容量を検出する。
【０３０７】
ここで制御部２３０は、第２配信システムにより受信するコンテンツデータの情報量に基づいて、必要となるリングバッファ２２０の容量を検出するようにしているが、これ以外に、自装置２へコンテンツデータをストリーミング配信する他の端末装置２の通信速度に基づいて、必要となるリングバッファ２２０の容量を検出してもよい。
【０３０８】
次に、ステップＳ８２において制御部２３０は、図２４に示す後述の各種情報の削除処理を行った後、処理をステップＳ８３へ移す。
【０３０９】
ステップＳ８３において制御部は、接続管理装置３から接続先候補のノード情報を受信し、その後、処理をステップＳ８４へ移す。
【０３１０】
ここで制御部２３０は、接続管理装置３へ接続先紹介要求を送信することにより、接続管理装置３から、第２配信システムのツリー状階層構造において接続先候補となる端末装置の所在情報（接続先候補のＩＰアドレスやポート番号など）及び通信プロトコル等を含むノード情報を受信するのである。
【０３１１】
次に、ステップＳ８４において制御部２３０は、接続先候補へコンテンツデータの配信要求を送信し、その後、この第２配信システムへの参加処理を終了し、処理を図１７に示すメイン処理のステップＳ１９へ移す。
【０３１２】
（各種情報の削除処理）
次に、制御部２３０が、図２３に示す第２配信システムへの参加処理で行う各種情報の削除処理について、図２４を参照して説明する。
【０３１３】
各種情報の削除処理において制御部２３０は、図２４に示すように、第２配信システム用の空き領域があるか否かの判断を行う（ステップＳ９１）。
【０３１４】
ここで、制御部２３０は、第１配信システム用記憶領域２５０が確保されている第１配信システム用兼第２配信システム用記憶部２０５ｂに、ステップＳ８１で検出した記憶容量を十分に確保できるだけの空き領域があるか否かの判断を行い（ステップＳ９１）、空き領域があると判断した場合（ステップＳ９１：Ｙｅｓ）に、この各種情報の削除処理を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移し、空き領域がないと判断した場合（ステップＳ９１：Ｎｏ）に処理をステップＳ９２へ移す。
【０３１５】
ステップＳ９２において制御部２３０は、優先順位に従った情報削除処理を行う。ここで制御部２３０は、第１配信システム用記憶領域２５０に記憶している各種情報の中で、削除しても第１配信システムによるコンテンツデータの受信に支障をきたさない情報から順に削除する。
【０３１６】
具体的に説明すると、制御部２３０は、第２配信システム用記憶領域として十分な記憶容量を確保できるまで、インデックステーブル２２２内のインデックスキャッシュ情報、カタログ情報、ルーティングテーブルＲＴ内のノード情報の一部、の順で順次情報を削除する。
【０３１７】
そして、制御部２３０は、ステップＳ９２の処理を行った後に、この優先順位に従った情報削除処理を終了し、その後、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３１８】
そして、
（インデックスキャッシュ情報の削除処理１）
次に、制御部２３０が、図２４に示す優先順位に従った情報削除処理において、削除の優先順位が最も高いインデックスキャッシュ情報の削除処理１について、図２５を参照して説明する。このインデックスキャッシュ情報の削除処理１では、制御部２３０は、自身が保持している全てのインデックスキャッシュ情報を削除する。
【０３１９】
インデックスキャッシュ情報の削除処理１において制御部２３０は、自身が保持する第１配信システム用記憶領域２５０内のインデックステーブル２２２における全てのインデックスキャッシュ情報をハードディスク装置２０３の所定領域に保存し（ステップＳ１０１）その後、処理をステップＳ１０２へ移す。
【０３２０】
ステップＳ１０２において制御部２３０は、第１配信システム用記憶領域２５０から全てのインデックスキャッシュ情報を削除し、その後、このインデックスキャッシュ情報の削除処理１を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３２１】
（インデックスキャッシュ情報の削除処理２）
また、制御部２３０は、全てのインデックスキャッシュ情報を削除しなくても、一部のインデックスキャッシュ情報だけを削除すれば、第２配信システム用記憶領域として十分な記憶容量を確保できる場合、図２６に示すインデックスキャッシュ情報の削除処理２を行う。
【０３２２】
このインデックスキャッシュ情報の削除処理２において、制御部２３０は、全インデックスキャッシュ情報のなかで、自分がルート端末装置でないコンテンツのインデックスキャッシュ情報だけを削除する。なお、ここでは、インデックステーブル２２２に２つのインデックスキャッシュ情報が記憶されており、自装置２は、１番目のインデックスキャッシュ情報のルート端末装置であり、２番目のインデックスキャッシュ情報のルート端末でない場合を例に挙げて説明する。
【０３２３】
このインデックスキャッシュ情報の削除処理２において、制御部２３０は、まず、第１配信システム用記憶領域２５０内の所定の記憶領域に、変数ＮＵＭ＝０を記憶させ（ステップＳ１１１）、その後、処理をステップＳ１１２へ移す。
【０３２４】
ステップＳ１１２において制御部２３０は、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいか否かの判断を行い、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいと判断した場合（ステップＳ１１２：Ｙｅｓ）に処理をステップＳ１１３へ移す。
【０３２５】
一方、制御部２３０は、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭより小さいと判断した場合に、このインデックスキャッシュ情報の削除処理２を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３２６】
ここでは、自装置２が現在保持しているインデックスキャッシュ情報の数が２であり、ＮＵＭ（＝０）よりも大きいため、ステップＳ１１２の判断の結果（ステップＳ１１２：Ｙｅｓ）、処理がステップＳ１１３へ移行する。
【０３２７】
ステップＳ１１３において制御部２３０は、自装置２がＮＵＭ＋１番目のインデックスキャッシュ情報のルート端末装置であるか否かの判断を行い、ルート端末装置であると判断した場合（ステップＳ１１３：Ｙｅｓ）に処理をステップＳ１１６へ移し、ルート端末装置でないと判断した場合（ステップＳ１１３：Ｎｏ）に処理をステップＳ１１４へ移す。
【０３２８】
ここで、自装置２は、ＮＵＭ＋１（０＋１＝１）番目のインデックスキャッシュ情報のルート端末装置であるので、ステップＳ１１３の判断の結果（ステップＳ１１３：Ｙｅｓ）、処理がステップＳ１１６へ移行する。
【０３２９】
ステップＳ１１６において制御部２３０は、変数ＮＵＭを１インクリメントする処理（ＮＵＭ＋１）を行い、その後、処理をステップＳＳ１１２へ移す。
【０３３０】
次に、ステップＳ１１２において制御部２３０は、再度、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいか否かの判断を行う。ここでは、自装置２が現在保持しているインデックスキャッシュ情報数が２であり、ＮＵＭ（＝１）よりも大きいため、ステップＳ１１２の判断の結果（ステップＳ１１２：Ｙｅｓ）、処理がステップＳ１１３へ移行する。
【０３３１】
次に、ステップＳ１１３において制御部２３０は、自装置２がＮＵＭ＋１（１＋１＝２）番目のインデックスキャッシュ情報のルート端末装置であるか否かの判断を行う。
【０３３２】
ここで、自装置２は、ＮＵＭ＋１（１＋１＝２）番目のインデックスキャッシュ情報のルート端末装置でないため、ステップＳ１１３の判断の結果（ステップＳ１１３：Ｎｏ）、処理がステップＳ１１４へ移行する。
【０３３３】
ステップＳ１１４において制御部２３０は、自装置２がルート端末装置でないインデックスキャッシュ情報（２番目のインデックスキャッシュ情報）をハードディスク装置２０３の所定領域に保存する処理を行い、その後、処理をステップＳ１１５へ移す。
【０３３４】
ステップＳ１１５において制御部２３０は、ハードディスク装置２０３へ保存したインデックスキャッシュ情報を第１配信システム用記憶領域から削除する処理を行い、その後、処理をステップＳ１１６へ移す。
【０３３５】
次に、ステップＳ１１６において制御部２３０は、変数ＮＵＭを１インクリメント（ＮＵＭ＝１＋１＝２）する処理を行い、その後、処理をステップＳ１１２へ移す。
【０３３６】
次に、ステップＳ１１２において制御部２３０は、再度、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいか否かの判断を行う。ここでは、自装置２が現在保持しているインデックスキャッシュ情報をステップＳ１１５において１つ削除しているため、現在保持しているインデックスキャッシュ情報数が１であり、変数ＮＵＭよりも小さいため、ステップ１１２の判断の結果（ステップＳ１１２：Ｎｏ）、インデックスキャッシュ情報の削除処理３を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３３７】
（インデックスキャッシュ情報の削除処理３）
また、制御部２３０は、インデックスキャッシュ情報の全て、若しくは、インデックスキャッシュ情報の一部を削除する場合の変形例として、図２７に示すインデックスキャッシュ情報の削除処理３を行うことができる。
【０３３８】
このインデッククス情報の削除処理３において、制御部２３０は、自装置２が保持しているインデックスキャッシュ情報について、そのインデックスキャッシュ情報のルート端末装置保持しているインデックスキャッシュ情報の情報量に基づいて、インデックスキャッシュ情報を削除する。
【０３３９】
すなわち、インデックスキャッシュ情報の削除処理３において、制御部は、図２７に示すように、第１配信システム用記憶領域２５０内の所定の領域に、変数ＮＵＭ＝０を記憶させ（ステップＳ１２１）、その後、処理をステップＳ１２２へ移す。
【０３４０】
ステップＳ１２２において制御部２３０は、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいか否かの判断を行い、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭよりも大きいと判断した場合（ステップＳ１２２：Ｙｅｓ）に処理をステップＳ１２３へ移す。
【０３４１】
一方、制御部２３０は、現在保持しているインデックスキャッシュ情報数が変数ＮＵＭより小さいと判断した場合に、このインデックスキャッシュ情報の削除処理３を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３４２】
ステップＳ１２３において制御部２３０は、ルート端末装置から情報量取得処理を行い、その後、処理をステップＳ１２４へ移す。
【０３４３】
ここで、制御部２３０は、現在保持しているインデックスキャッシュ情報の中で削除対象となっているインデックスキャッシュ情報のルート端末装置から、そのルート端末装置が保持している削除対象のインデックスキャッシュ情報と同じインデックスキャッシュ情報数を取得する。
【０３４４】
次に、ステップＳ１２４において制御部２３０は、ルート端末装置から取得した情報量が、予め設定しておいた閾値よりも大きいか否かの判断を行い、取得した情報量が閾値よりも大きいと判断した場合（ステップＳ１２４：Ｙｅｓ）に処理をステップＳ１２５へ移し、取得した情報量が閾値よりも小さいと判断した場合（ステップＳ１２４：Ｎｏ）に処理をステップＳ１２７へ移す。
【０３４５】
ステップＳ１２５において制御部２３０は、自身が保持している削除対象のインデックスキャッシュ情報をハードディスク装置２０３の所定領域に保存し、その後、処理をステップＳ１２６へ移す。
【０３４６】
ステップＳ１２６において制御部２３０は、ハードディスク装置２０３へ保存したインデックスキャッシュ情報を第１配信システム用記憶領域２５０から削除するインデックする情報削除処理を行い、その後、処理をステップＳ１２７へ移す。
【０３４７】
ステップＳ１２７において制御部２３０は、変数ＮＵＭを１インクリメントする処理（ＮＵＭ＋１）を行い、その後、処理をステップＳ１２２へ移す。
【０３４８】
（カタログ情報削除処理）
制御部２３０は、上記のようにして第１配信システム用記憶領域２５０からインデックスキャッシュ情報を削除しても、第２配信システム用記憶領域２５１として十分な記憶容量を確保できない場合に、図２８に示すカタログ情報削除処理を行うことにより、第１配信システム用記憶領域２５０からカタログ情報を削除する。
【０３４９】
カタログ情報削除処理において制御部２３０は、図２８に示すように、第１配信システム用記憶領域２５０に記憶しているカタログ情報を、ハードディスク装置２０３内の所定の領域に保存（ステップＳ１３１）した後、第１配信システム用記憶領域２５０から全カタログ情報を削除（ステップＳ１３２）し、その後、このカタログ情報削除処理を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３５０】
（ノード情報の削除処理１）
また、制御部２３０は、上記のようにして第１配信システム用記憶領域２５０からインデックスキャッシュ情報とカタログ情報とを削除しても、第２配信システム用記憶領域２５１として十分な記憶容量を確保できない場合に、図２９に示すノード情報の削除処理１を行うことにより、第１配信システム用記憶領域２５０からルーティングテーブルＲＴの一部を削除する。
【０３５１】
ノード情報の削除処理１において制御部２３０は、選択したノード情報をハードディスク装置２０３へ保存する処理（ステップＳ１４１）を行う。ここで制御部２３０は、予めルーティングテーブルＲＴ内のノード情報のなかで削除対象のノード情報を選択しておき、第１配信システム用記憶領域２５０からインデックスキャッシュ情報とカタログ情報とを削除しても、第２配信システム用記憶領域２５１として十分な記憶容量を確保できない場合に、予め選択したノード情報をハードディスク装置２０３へ保存する。
【０３５２】
次に、制御部２３０は、予め選択したノード情報を第１配信システム用記憶領域２５０から削除し（ステップＳ１４２）、その後、このノード情報の削除処理１を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３５３】
（ノード情報の削除処理２）
また、制御部２３０は、ルーティングテーブルＲＴの一部を削除する場合に、上記ノード情報の削除処理１に替えて、図３０に示すノード情報の削除処理２を行うことによって、第１配信システム用記憶領域２５０からノード情報の一部を削除することもできる。
【０３５４】
このノード情報の削除処理２において制御部２３０は、ルーティングテーブルＲＴを参照して、サブテーブルＲ１〜Ｒ３があるか否かの判断を行い（ステップＳ１５１）、サブテーブルＲ１〜Ｒ３があると判断した場合（ステップＳ１５１：Ｙｅｓ）に処理をステップＳ１５２へ移し、サブテーブルＲ１〜Ｒ３がないと判断した場合（ステップＳ１５１：Ｎｏ）に、このノード情報の削除処理２を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３５５】
また、ステップＳ１５２において制御部２３０は、サブテーブル削除処理を行う。ここで制御部２３０は、削除しても第１配信システムによるコンテンツデータの受信に支障をきたすおそれの低いサブテーブルＲ３から順に削除するようにしている。
【０３５６】
そして、制御部２３０は、このサブテーブル削除処理を行った後に、このノード情報の削除処理２を終了して、処理を図２３に示す第２配信システムへの参加処理のステップＳ８３へ移す。
【０３５７】
そして、制御部２３０は、上記したインデックスキャッシュ情報の削除処理１〜３、カタログ情報削除処理、ノード情報の削除処理１〜２等の処理により、第１配信システム用記憶領域２５０に記憶している情報を削除し、この削除した情報が記憶されていた領域を第２配信システム用記憶領域２５１として機能させるのである。
【０３５８】
この第２配信システム用記憶領域には、上記したように、第２配信システムによりコンテンツデータを受信するために必要となる、ストリーム制御プログラム２１５、トポロジー管理プログラム２１６、リングバッファ２２０等が記憶（格納）される。
【０３５９】
（第２配信システム参加中処理）
次に、制御部２３０が、図１７に示すメイン処理のステップＳ１８で行う第２配信システム参加中処理について、図３１を参照して説明する。
【０３６０】
この第２配信システム参加中処理において制御部２３０は、図３１に示すように、自装置２が第２配信システムから離脱するか否かの判断を行い（ステップＳ１６１）、離脱すると判断した場合（ステップＳ１６１:Ｙｅｓ）に処理をステップＳ１６５へ移し、離脱しないと判断した場合（ステップＳ１６１：Ｎｏ）に処理をステップＳ１６２へ移す。
【０３６１】
ステップＳ１６２において制御部２３０は、ツリー状の階層構造において自身の上流側に接続している端末装置２からストリーミング受信したコンテンツデータをストリーミング再生する受信コンテンツ再生処理を行い、その後、処理をステップＳ１６３へ移す。
【０３６２】
ステップＳ１６３において制御部２３０は、下流の装置（ツリー状の階層構造において自身の下流の端末装置２）と接続しているか否かの判断を行い、下流の装置と接続していると判断した場合（ステップＳ１６３：Ｙｅｓ）に処理をステップＳ１６４へ移し、下流の装置と接続していないと判断した場合（ステップＳ１６３：Ｎｏ）に、この第２配信システム参加中処理を終了して、処理を図１７に示すメイン処理のステップＳ１９へ移す。
【０３６３】
また、ステップＳ１６５において制御部２３０は、上流の装置へ中継停止要求メッセージ送信処理を行う。すなわち、制御部２３０は、ツリー状の階層構造において自装置２の上流側に接続している端末装置２に対して、自装置２へのコンテンツデータの配信停止を要求するメッセージを送信するのである。
【０３６４】
次に、制御部２３０は、ステップＳ１６６において、図３２に示す後述の保存情報読み込み処理を行い、その後、この第２配信システム参加中処理を終了して、処理を図１７に示すメイン処理のステップＳ１９へ移す。
【０３６５】
なお、本実施形態の第２配信システムにおけるコンテンツ配信装置１は、放送形態によるコンテンツデータの配信を一つのチャンネルで行うようにしているため、この第２配信システム参加中処理において制御部２３０は、上記のように、第２配信システムから離脱すると判断した場合、上流の装置へ中継停止メッセージを送信した後、すぐに保存情報の読み込み処理を行うようにしているが、コンテンツ配信装置１が複数のチャンネルで複数種類のコンテンツデータを放送形態により配信しており、この端末装置２が現在複数のチャンネルで同時に複数のコンテンツデータの配信を受けている場合には、第２配信システムから離脱すると判断した後、以下のような処理を行う。
【０３６６】
すなわち、制御部２３０は、図３１に示すステップＳ１６１において第２配信システムから離脱すると判断した場合、現在配信を受けている全てのチャンネルからのコンテンツデータの受信を停止するのか、それとも、一部のチャンネルからのコンテンツデータの受信だけを停止するのかを判断する。
【０３６７】
ここで制御部２３０は、一部のチャンネルからのコンテンツデータの受信だけを停止すると判断した場合に、受信を停止するチャンネル用に確保しているリングバッファ２２０の領域を縮小する処理を行い、その後、処理を図３１に示すステップＳ１６６へ移して保存情報の読み込み処理を行う。
【０３６８】
一方、制御部２３０は、現在配信を受けている全てのチャンネルからのコンテンツデータの受信を停止すると判断した場合、第２配信システム用記憶領域２５１に記憶している情報を削除して、第１配信システム用兼第２配信システム用記憶部２０５ｂ全体を第１配信システム用記憶領域２５０として使用可能な状態にする処理を行い、その後、処理を図３１に示すステップＳ１６６へ移して保存情報の読み込み処理を行う。
【０３６９】
（保存情報の読み込み処理）
次に、制御部２３０が、図３１に示す第２配信システム参加中処理のステップＳ１６８で行う保存情報の読み込み処理について、図３２を参照して説明する。
【０３７０】
この保存情報の読み込み処理において制御部２３０は、図３２に示すように、ハードディスク装置２０３内にインデックスキャッシュ情報が保存されているか否かの判断を行い（ステップＳ１７１）、インデックスキャッシュ情報が保存されていると判断した場合（ステップＳ１７１：Ｙｅｓ）に処理をステップＳ１７２へ移し、インデックスキャッシュ情報が保存されていないと判断した場合（ステップＳ１７１：Ｎｏ）に処理をステップＳ１７３へ移す。
【０３７１】
ステップ１７２において制御部２３０は、ハードディスク装置２０３に保存されているインデックスキャッシュ情報を読み込み、第１配信システム用記憶領域２５０に再度記憶する処理を行い、その後、処理をステップＳ１７３へ移す。
【０３７２】
ステップＳ１７３において制御部２３０は、ハードディスク装置２０３内にノード情報が記憶されているか否かの判断を行い、ノード情報が記憶されていると判断した場合（ステップＳ１７３：Ｙｅｓ）に処理をステップＳ１７４へ移し、ノード情報が記憶されていないと判断した場合（ステップＳ１７３：Ｎｏ）に処理をステップＳ１７５へ移す。
【０３７３】
ステップＳ１７４において制御部２３０は、ハードディスク装置２０３からノード情報を読み込み、第１配信システム用記憶領域２５０に再度記憶する処理を行い、その後、処理をステップＳ１７５へ移す。
【０３７４】
ステップＳ１７５において制御部２３０は、ハードディスク装置２０３にカタログ情報が記憶されているか否かの判断を行い、カタログ情報が記憶されていると判断した場合（ステップＳ１７５：Ｙｅｓ）に処理をステップＳ１７６へ移し、カタログ情報が記憶されていないと判断した場合（ステップＳ１７５：Ｎｏ）に、この保存情報の読み込み処理を終了して、処理を図１７に示すメイン処理のステップＳ１９へ移す。
【０３７５】
ステップＳ１７６において制御部２３０は、ハードディスク装置２０３からカタログ情報を読み込み、第１配信システム用記憶領域に再度記憶する処理を行い、その後、この保存情報の読み込み処理を終了して、処理を図１７に示すメイン処理のステップＳ１９へ移す。
【０３７６】
（第２配信システムのメッセージに対応した処理）
次に、制御部２３０が、図１７に示すメイン処理のステップＳ２０で行う第２配信システムのメッセージに対応した処理について、図３３を参照して説明する。
【０３７７】
この第２配信システムのメッセージに対応した処理において、制御部２３０は、受信した第２配信システムのメッセージが、ツリー状の階層構造において下流に接続している端末装置２からのコンテンツデータの中継要求メッセージであるか否かの判断を行い（ステップＳ１８１）、中継要求メッセージであると判断した場合（ステップＳ１８１：Ｙｅｓ）に処理をステップＳ１８２へ移し、中継メッセージでないと判断した場合（ステップＳ１８１：Ｎｏ）に処理をステップＳ１８３へ移す。
【０３７８】
ステップＳ１８２において制御部２３０は、ツリー状の階層構造において上流に接続している端末装置２からストリーミング受信したコンテンツデータを、ツリー状の階層構造において下流に接続している端末装置２へストリーミング配信する受信コンテンツ中継処理を行い、その後、この第２配信システムのメッセージに対応した処理を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０３７９】
また、ステップＳ１８３において制御部２３０は、受信した第２配信システムのメッセージが、ツリー状の階層構造において下流に接続している端末装置２からのコンテンツデータの中継停止要求メッセージであるか否かの判断を行い、中継停止要求メッセージであると判断した場合（ステップＳ１８３：Ｙｅｓ）に処理をステップＳ１８４へ移し、中継停止要求でないと判断した場合（ステップＳ１８３：Ｎｏ）に、この第２配信システムのメッセージに対応した処理を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０３８０】
ステップ１８４において制御部２３０は、ツリー状の階層構造において上流に接続している端末装置２からストリーミング受信したコンテンツデータのストリーミング中継を停止する受信コンテンツ中継停止処理を行い、その後、この第２配信システムのメッセージに対応した処理を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【０３８１】
また、ステップＳ１８５において制御部２３０は、第１及び第２配信システムによるコンテンツデータの受信とは別のその他の処理を行い、その後、この第２配信システムのメッセージに対応した処理を終了して、処理を図１７に示すメイン処理のステップＳ１４へ移す。
【図面の簡単な説明】
【０３８２】
【図１】本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。
【図２】本実施形態に係るコンテンツ配信システムの第配信システムの配信動作説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】ルーティングテーブルにおけるメインテーブルの一例を示す図である。
【図５】ルーティングテーブルを示す説明図である。
【図６】端末装置が第１配信システムへ参加する様子の一例を示す図である。
【図７】ＤＨＴルーティングによりコンテンツデータを保持している端末装置が検索される様子の一例を示す図である。
【図８】ＤＨＴルーティングによりコンテンツデータが端末装置に保持される様子の一例を示す図である。
【図９】ＤＨＴルーティングにより登録メッセージがルート端末装置に送信される一例を示す図である。
【図１０】インデックステーブルの一例を示す図である。
【図１１】本実施形態に係るコンテンツ配信システムの第２配信システムの配信動作説明図である。
【図１２】リングバッファの機能を概念的に表した図である。
【図１３】端末装置の概略構成例を示す図である。
【図１４】第１配信システム用記憶領域及び第２配信システム用記憶領域を示す説明図である。
【図１５】第１配信システム用記憶領域及び第２配信システム用記憶領域を示す説明図である。
【図１６】接続管理装置における処理を示すフローチャートである。
【図１７】端末装置におけるメイン処理を示すフローチャートである。
【図１８】第１配信システムのメッセージに対応した処理を示すフローチャートである。
【図１９】インデックステーブルへの登録処理１を示すフローチャートである。
【図２０】インデックステーブルへの登録処理２を示すフローチャートである。
【図２１】ルーティングテーブルへの登録処理１を示すフローチャートである。
【図２２】ルーティングテーブルへの登録処理２を示すフローチャートである。
【図２３】第２配信システムへの参加処理を示すフローチャートである。
【図２４】各種情報の削除処理を示すフローチャートである。
【図２５】インデックスキャッシュ情報の削除処理１を示すフローチャートである。
【図２６】インデックスキャッシュ情報の削除処理２を示すフローチャートである。
【図２７】インデックスキャッシュ情報の削除処理３を示すフローチャートである。
【図２８】カタログ情報削除処理を示すフローチャートである。
【図２９】ノード情報の削除処理１を示すフローチャートである。
【図３０】ノード情報の削除処理２を示すフローチャートである。
【図３１】第２配信システム参加中処理を示すフローチャートである。
【図３２】情報読み込み処理を示すフローチャートである。
【図３３】第２配信システムのメッセージに対応した処理を示すフローチャートである。
【符号の説明】
【０３８３】
Ｓ  コンテンツ配信システム
１  コンテンツ配信装置
２  端末装置
３  接続管理装置
４  コンテンツ投入装置
５  コンタクト先紹介装置
６  ネットワーク
１３０，２３０，３３０，４３０，５３０  制御部
２３０  制御部
２０３  ハードディスク装置
２０５  主記憶装置
２０５ｂ  第１配信システム用兼第２配信システム用記憶部
２５０  第１配信システム用記憶領域
２５１  第２配信システム用記憶領域
【図１】
2008067089.tif 000003
【図２】
2008067089.tif 000004
【図３】
2008067089.tif 000005
【図４】
2008067089.tif 000006
【図５】
2008067089.tif 000007
【図６】
2008067089.tif 000008
【図７】
2008067089.tif 000009
【図８】
2008067089.tif 000010
【図９】
2008067089.tif 000011
【図１０】
2008067089.tif 000012
【図１１】
2008067089.tif 000013
【図１２】
2008067089.tif 000014
【図１３】
2008067089.tif 000015
【図１４】
2008067089.tif 000016
【図１５】
2008067089.tif 000017
【図１６】
2008067089.tif 000018
【図１７】
2008067089.tif 000019
【図１８】
2008067089.tif 000020
【図１９】
2008067089.tif 000021
【図２０】
2008067089.tif 000022
【図２１】
2008067089.tif 000023
【図２２】
2008067089.tif 000024
【図２３】
2008067089.tif 000025
【図２４】
2008067089.tif 000026
【図２５】
2008067089.tif 000027
【図２６】
2008067089.tif 000028
【図２７】
2008067089.tif 000029
【図２８】
2008067089.tif 000030
【図２９】
2008067089.tif 000031
【図３０】
2008067089.tif 000032
【図３１】
2008067089.tif 000033
【図３２】
2008067089.tif 000034
【図３３】
2008067089.tif 000035