(57)【要約】【課題】ツリー状階層構造にされ、頂点のコンテンツ配信装置から下流の端末装置にコンテンツデータを転送される配信形態において、ツリー状階層構造を管理するために接続管理サーバを別途設ける必要がないコンテンツ配信システム及び方法等を提供すること。【解決手段】コンテンツ配信装置及び複数の端末装置が参加するコンテンツ配信システムにおいて、コンテンツ配信装置を頂点として端末装置がツリー状階層構造に論理接続され、コンテンツデータをコンテンツ配信装置から順次下流の端末装置に転送する配信形態を構成する際に、コンテンツ配信システムに参加している複数の端末装置の一つの端末装置にツリー上階層構造の接続状態を管理させる。【選択図】図８
2008092235.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムにおいて、
前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられており、
前記端末装置は、
当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、
前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブル記憶手段の情報に基づいて、前記階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信して接続先装置と接続する接続処理手段と、
前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するメッセージ宛先判定手段と、
前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶する接続状態情報記憶手段と、
前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであると判定されると、前記接続状態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段と、
を備えるコンテンツ配信システム。
【請求項２】
前記コンテンツ配信装置は、
当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、
自コンテンツ配信装置がコンテンツデータをストリーミング配信するチャンネルを示す前記チャンネル識別情報を宛先識別情報とし、自コンテンツ配信装置の所在情報及び／又は装置識別情報を含むチャンネル登録メッセージを前記ルーティングテーブル記憶手段に基づいて送信するチャンネル登録メッセージ送信処理手段と、
を有することを特徴とする請求項１に記載のコンテンツ配信システム。
【請求項３】
前記コンテンツ配信装置の前記チャンネル登録メッセージ送信処理手段は、
前記チャンネル登録メッセージを定期的に送信する
ことを特徴とする請求項２に記載のコンテンツ配信システム。
【請求項４】
コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信される配信形態であり、前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられるコンテンツ配信システムにおける前記端末装置であって、
当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、
前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブル記憶手段の情報に基づいて、前記階層構造への接続先候補に接続するための接続要求メッセージを送信して接続先装置に接続する接続処理手段と、
前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するメッセージ宛先判定手段と、
前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶する接続状態情報記憶手段と、
前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであるとき、前記接続態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段と、
を備える端末装置。
【請求項５】
前記接続先候補選択手段によって選択された前記接続先候補を、前記接続先紹介要求メッセージを送信した前記端末装置へ前記ネットワークを介して送信する接続先候補送信処理手段を備え、
前記接続処理手段は、受信した接続先候補に接続する
ことを特徴とする請求項４に記載の端末装置。
【請求項６】
前記接続先候補選択手段によって選択された前記接続先候補に対して、前記接続先紹介要求メッセージを送信した前記端末装置と接続させる接続依頼メッセージを送信する接続依頼メッセージ送信処理手段と、
前記接続依頼メッセージを受信した後、当該接続依頼メッセージに記載された接続先端末装置に接続する接続依頼処理手段と、
を備えることを特徴とする請求項４に記載の端末装置。
【請求項７】
前記接続先候補に接続したとき、前記チャンネル識別情報を宛先識別情報とし、前記接続状態情報メッセージを前記ルーティングテーブルに基づいて送信する接続情報通知手段を有する
ことを特徴とする請求項４〜６のいずれかに記載の端末装置。
【請求項８】
前記接続情報通知処理手段は、
前記接続先候補に接続した後、前記チャンネル識別情報を宛先識別情報として、前記接続状態情報メッセージを定期的に前記ルーティングテーブルに基づいて送信する
ことを特徴とする請求項７に記載の端末装置。
【請求項９】
前記メッセージ宛先判定手段は、前記メッセージの宛先識別情報との差が最も小さい前記装置識別情報が自端末装置に割り当てられているときに、前記受信したメッセージが自端末装置宛であると判定する
ことを特徴とする請求項４〜８のいずれか１項に記載の端末装置。
【請求項１０】
コンテンツデータを記憶するコンテンツデータ記憶手段と、
前記コンテンツデータ記憶手段にコンテンツデータを記憶したとき、コンテンツ保持端末装置として機能し、当該記憶したコンテンツデータのコンテンツ識別情報と自端末装置の装置識別情報及び／又は所在情報を含むコンテンツ保持端末装置登録メッセージを生成するコンテンツ保持端末装置登録メッセージ生成手段と、
前記コンテンツ保持端末装置登録メッセージを、前記記憶したコンテンツデータの識別情報を宛先識別情報として、前記ルーティングテーブルから送信先端末装置を選択して送信するコンテンツ保持端末装置登録メッセージ送信処理手段と、
受信したメッセージが前記コンテンツ保持端末装置登録メッセージであるとき、前記コンテンツ保持端末装置登録メッセージに含まれる前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を記憶するコンテンツ保持端末情報記憶手段と、
受信したメッセージが前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を検索するコンテンツ保持端末装置検索メッセージであるとき、前記配信元情報記憶手段に前記コンテンツ保持端末装置検索メッセージのコンテンツデータを保持する前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報の有無を判定する配信元情報判定手段と、
前記配信元情報判定手段が有りと判定すると、前記配信元情報記憶手段から前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を取り出して配信元情報メッセージを生成し、前記コンテンツ保持端末装置検索メッセージを送信した端末装置へ前記配信元情報メッセージを送信する配信元情報メッセージ送信処理手段と、
前記配信元情報メッセージを受信した後、当該配信元情報メッセージに記載されているコンテンツ保持端末装置に、コンテンツデータを要求するコンテンツデータ要求メッセージを送信するコンテンツデータ要求メッセージ送信処理手段と、
を備えたことを特徴とする請求項４〜９いずれか１項に記載の端末装置。
【請求項１１】
コンテンツデータを記憶するコンテンツデータ記憶手段と、
前記コンテンツデータ記憶手段にコンテンツデータを記憶したとき、コンテンツ保持端末装置として機能し、当該記憶したコンテンツデータのコンテンツ識別情報と自端末装置の装置識別情報及び／又は所在情報を含むコンテンツ保持端末装置登録メッセージを生成するコンテンツ保持端末装置登録メッセージ生成手段と、
前記コンテンツ保持端末装置登録メッセージを、前記記憶したコンテンツデータの識別情報を宛先識別情報として、前記ルーティングテーブルから送信先端末装置を選択して送信するコンテンツ保持端末装置登録メッセージ送信処理手段と、
受信したメッセージが前記コンテンツ保持端末装置登録メッセージであるとき、前記コンテンツ保持端末装置登録メッセージに含まれる前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を記憶するコンテンツ保持端末情報記憶手段と、
受信したメッセージが前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を検索するコンテンツ保持端末装置検索メッセージであるとき、前記配信元情報記憶手段に前記コンテンツ保持端末装置検索メッセージのコンテンツデータを保持する前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報の有無を判定する配信元情報判定手段と、
前記配信元情報判定手段が有りと判定すると、前記配信元情報記憶手段に記憶した情報に基づいて、前記コンテンツ保持端末装置検索メッセージを送信した端末装置へ前記コンテンツ保持端末装置からコンテンツデータの配信を行わせるコンテンツデータ配信要求メッセージを生成し、前記コンテンツデータ配信要求メッセージを前記コンテンツ保持端末装置へ送信するコンテンツデータ配信要求メッセージ送信処理手段と、
前記コンテンツデータ配信要求メッセージを受信した後、当該コンテンツデータ配信要求メッセージに記載されているコンテンツデータを、送信先端末装置に送信するコンテンツデータ送信処理手段と、
を備えたことを特徴とする請求項４〜９のいずれか１項に記載の端末装置。
【請求項１２】
コンピュータに、請求項４〜１１のいずれか１項に記載の端末装置の各手段として機能させるためのプログラム。
【請求項１３】
コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムにおけるコンテンツ配信方法において、
前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられており、
前記端末装置が、当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するステップと、
前記端末装置が、前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブルに基づいて、前記階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信するステップと、
前記端末装置が、前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するステップと、
前記端末装置が、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶するステップと、
前記端末装置が、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであるときに、前記記憶された前記接続状態情報から接続先候補を選択するステップと、
を有するコンテンツ配信方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信技術に関する。詳細には、コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、コンテンツ配信装置から送信されるコンテンツデータが階層構造の上流の端末装置から下流の端末装置にかけて順次端末装置の中継機能によってストリーミング配信されるコンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラムに関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などコンテンツのデータ（以下、「コンテンツデータ」と呼ぶ。）のストリーミング配信を行うコンテンツ配信サービスが開始されてきている。ここで、ストリーミング配信とは、クライアント端末装置（以下、単に「端末装置」と呼ぶ。）がストリーミング受信できるストリーミング形式でコンテンツデータを配信する配信方法であり、端末装置はストリーミング配信されるコンテンツデータを受信しながら再生することができる。また、ストリーミング配信形態としては、コンテンツデータの配信時間が決められた放送形式のものと、端末装置からの要求に応じて個々の端末装置にストリーミング配信するオンデマンド形式のものがある。
【０００３】
放送形式のコンテンツ配信サービスは、従来、一つのコンテンツ配信装置から複数の端末装置に対して直接コンテンツの配信を行うものが主流であったが、近年、端末装置間でのコンテンツデータの中継、すなわちＰ２Ｐ通信形態を用いることによりコンテンツ配信装置を増加することなく負荷やトラフィックの集中を低減することができるコンテンツ配信システムが提案されている（例えば、特許文献１参照）。
【０００４】
このコンテンツ配信システムは、コンテンツ配信装置を頂点としたツリー状階層構造で多層に複数の端末装置を論理接続し、コンテンツ配信装置からコンテンツデータを下流の端末装置へ順次配信していくものである。
【０００５】
すなわち、コンテンツ配信装置から配信されたコンテンツデータは、最上位層（第１階層）に位置する端末装置へ配信され、この最上位層に位置する端末装置はコンテンツ配信装置から配信されたコンテンツデータを第２階層に位置する端末装置へ中継し、このコンテンツデータの中継を最下流に位置する端末装置へ配信するまで行うものである。
【特許文献１】特開２００６−４１７８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、端末装置は、ツリー状階層構造に新規に参加するときや、接続していた上流の端末装置（接続先装置）の階層構造からの脱退に伴い新たな接続先装置に接続するときに、階層構造を構成する端末装置のうちどの端末装置に接続すればよいかわからない。
【０００７】
そこで、従来のツリー状階層構造を有するコンテンツ配信システムにおいては、階層構造の接続状態をトポロジー情報として管理し、階層構造の状態が変わるたびにトポロジー情報を更新する接続先管理サーバが設けられており、この接続先管理サーバは、端末装置からの要求に応じて接続先候補を通知するようにしている。
【０００８】
しかしながら、従来のツリー状階層構造を有するコンテンツ配信システムにおいては、別途専用の接続先管理サーバを設けなければならない。しかも、端末装置において予め接続先管理サーバの所在情報を知っておく必要があった。
【０００９】
本発明は、以上の不都合に鑑みてなされたものであり、専用の接続先管理サーバを別途設ける必要がないコンテンツ配信システム及び方法等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に記載の発明は、コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムにおいて、前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられており、前記端末装置は、当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブル記憶手段の情報に基づいて、前記階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信して接続先装置と接続する接続処理手段と、前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するメッセージ宛先判定手段と、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶する接続状態情報記憶手段と、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであると判定されると、前記接続状態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段とを備えることとした。
【００１１】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記コンテンツ配信装置は、当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、自コンテンツ配信装置がコンテンツデータをストリーミング配信するチャンネルを示す前記チャンネル識別情報を宛先識別情報とし、自コンテンツ配信装置の所在情報及び／又は装置識別情報を含むチャンネル登録メッセージを前記ルーティングテーブル記憶手段に基づいて送信するチャンネル登録メッセージ送信処理手段とを有することを特徴とする。
【００１２】
また、請求項３に記載の発明は、請求項２に記載の発明において、前記コンテンツ配信装置の前記チャンネル登録メッセージ送信処理手段は、前記チャンネル登録メッセージを定期的に送信することを特徴とする。
【００１３】
また、請求項４に記載の発明は、コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信される配信形態であり、前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられるコンテンツ配信システムにおける前記端末装置であって、当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶手段と、前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブル記憶手段の情報に基づいて、前記階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信して接続先装置に接続する接続処理手段と、前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するメッセージ宛先判定手段と、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶する接続状態情報記憶手段と、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであるとき、前記接続態情報記憶手段に記憶された前記接続状態情報から接続先候補を選択する接続先候補選択手段とを備えることとした。
【００１４】
また、請求項５に記載の発明は、請求項４に記載の発明において、前記接続先候補選択手段によって選択された前記接続先候補を、前記接続先紹介要求メッセージを送信した前記端末装置へ前記ネットワークを介して送信する接続先候補送信処理手段を備え、前記接続処理手段は、受信した接続先候補に接続する。
【００１５】
また、請求項６に記載の発明は、請求項４に記載の発明において、前記接続先候補選択手段によって選択された前記接続先候補に対して、前記接続先紹介要求メッセージを送信した前記端末装置と接続させる接続依頼メッセージを送信する接続依頼メッセージ送信処理手段と、前記接続依頼メッセージを受信した後、当該接続依頼メッセージに記載された接続先端末装置に接続する接続依頼処理手段とを備えることを特徴とする。
【００１６】
また、請求項７に記載の発明は、請求項４〜６のいずれか１項に記載の発明において、前記接続先候補に接続したとき、前記チャンネル識別情報を宛先識別情報とし、前記接続状態情報メッセージを前記ルーティングテーブルに基づいて送信する接続情報通知手段を有することを特徴とする。
【００１７】
また、請求項８に記載の発明は、請求項７に記載の発明において、前記接続情報送信通知手段は、前記接続先候補に接続した後、前記チャンネル識別情報を宛先識別情報として、前記接続状態情報メッセージを定期的に前記ルーティングテーブルに基づいて送信することを特徴とする。
【００１８】
また、請求項９に記載の発明は、請求項４〜８のいずれか１項に記載の発明において、前記メッセージ宛先判定手段は、前記メッセージの宛先識別情報との差が最も小さい前記装置識別情報が自端末装置に割り当てられているときに、前記受信したメッセージが自端末装置宛であると判定することを特徴とする。
【００１９】
また、請求項１０に記載の発明は、請求項４〜９のいずれか１項に記載の発明において、コンテンツデータを記憶するコンテンツデータ記憶手段と、前記コンテンツデータ記憶手段にコンテンツデータを記憶したとき、コンテンツ保持端末装置として機能し、当該記憶したコンテンツデータのコンテンツ識別情報と自端末装置の装置識別情報及び／又は所在情報を含むコンテンツ保持端末装置登録メッセージを生成するコンテンツ保持端末装置登録メッセージ生成手段と、前記コンテンツ保持端末装置登録メッセージを、前記記憶したコンテンツデータの識別情報を宛先識別情報として、前記ルーティングテーブルから送信先端末装置を選択して送信するコンテンツ保持端末装置登録メッセージ送信処理手段と、受信したメッセージが前記コンテンツ保持端末装置登録メッセージであるとき、前記コンテンツ保持端末装置登録メッセージに含まれる前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を記憶するコンテンツ保持端末情報記憶手段と、受信したメッセージが前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を検索するコンテンツ保持端末装置検索メッセージであるとき、前記配信元情報記憶手段に前記コンテンツ保持端末装置検索メッセージのコンテンツデータを保持する前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報の有無を判定する配信元情報判定手段と、前記配信元情報判定手段が有りと判定すると、前記配信元情報記憶手段から前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を取り出して配信元情報メッセージを生成し、前記コンテンツ保持端末装置検索メッセージを送信した端末装置へ前記配信元情報メッセージを送信する配信元情報メッセージ送信処理手段と、前記配信元情報メッセージを受信した後、当該配信元情報メッセージに記載されているコンテンツ保持端末装置に、コンテンツデータを要求するコンテンツデータ要求メッセージを送信するコンテンツデータ要求メッセージ送信処理手段とを備えることとした。
【００２０】
また、請求項１１に記載の発明は、請求項４〜９のいずれか１項に記載の発明において、コンテンツデータを記憶するコンテンツデータ記憶手段と、前記コンテンツデータ記憶手段にコンテンツデータを記憶したとき、コンテンツ保持端末装置として機能し、当該記憶したコンテンツデータのコンテンツ識別情報と自端末装置の装置識別情報及び／又は所在情報を含むコンテンツ保持端末装置登録メッセージを生成するコンテンツ保持端末装置登録メッセージ生成手段と、前記コンテンツ保持端末装置登録メッセージを、前記記憶したコンテンツデータの識別情報を宛先識別情報として、前記ルーティングテーブルから送信先端末装置を選択して送信するコンテンツ保持端末装置登録メッセージ送信処理手段と、受信したメッセージが前記コンテンツ保持端末装置登録メッセージであるとき、前記コンテンツ保持端末装置登録メッセージに含まれる前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を記憶するコンテンツ保持端末情報記憶手段と、受信したメッセージが前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報を検索するコンテンツ保持端末装置検索メッセージであるとき、前記配信元情報記憶手段に前記コンテンツ保持端末装置検索メッセージのコンテンツデータを保持する前記コンテンツ保持端末装置の装置識別情報及び／又は所在情報の有無を判定する配信元情報判定手段と、前記配信元情報判定手段が有りと判定すると、前記配信元情報記憶手段に記憶した情報に基づいて、前記コンテンツ保持端末装置検索メッセージを送信した端末装置へ前記コンテンツ保持端末装置からコンテンツデータの配信を行わせるコンテンツデータ配信要求メッセージを生成し、前記コンテンツデータ配信要求メッセージを前記コンテンツ保持端末装置へ送信するコンテンツデータ配信要求メッセージ送信処理手段と、前記コンテンツデータ配信要求メッセージを受信した後、当該コンテンツデータ配信要求メッセージに記載されているコンテンツデータを、送信先端末装置に送信するコンテンツデータ送信処理手段とを備えたことを特徴とする。
【００２１】
また、請求項１２に記載の発明は、コンピュータを、請求項４〜１１のいずれか１項に記載の端末装置の各手段として機能させるためのプログラムとした。
【００２２】
また、請求項１３に記載の発明は、コンテンツデータをストリーミング配信するコンテンツ配信装置を頂点として複数の端末装置がネットワーク上に階層構造で多層に論理接続され、前記コンテンツ配信装置から送信される前記コンテンツデータが前記階層構造の上流の端末装置から下流の端末装置にかけて順次前記端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムにおけるコンテンツ配信方法において、前記コンテンツデータがストリーミング配信されるチャンネル毎にチャンネル識別情報が割り当てられ、前記複数の端末装置にはそれぞれ固有の装置識別情報が割り当てられており、前記端末装置が、当該コンテンツ配信システムにおける前記装置識別情報のうち一部の装置識別情報と、当該装置識別情報に対応する装置の所在情報とを関連付けたルーティングテーブルを記憶するステップと、前記端末装置が、前記階層構造へ参加するとき、前記チャンネル識別情報を宛先識別情報とし、前記ルーティングテーブルに基づいて、前記階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信するステップと、前記端末装置が、前記ネットワークを介してメッセージを受信したとき、前記受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自端末装置宛であるか否かを判定するステップと、前記端末装置が、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記コンテンツ配信装置又は前記端末装置の接続状態の情報を含む接続状態情報メッセージであるとき、前記接続状態情報を記憶するステップと、前記端末装置が、前記メッセージ宛先判定手段により前記受信したメッセージが自端末装置宛であり、かつ、前記受信したメッセージが前記接続先紹介要求メッセージであるときに、前記記憶された前記接続状態情報から接続先候補を選択するステップとを有することとした。
【発明の効果】
【００２３】
請求項１，４，１２，１３に記載の発明によれば、チャンネル識別情報と所定の関係を有する装置識別情報が割り当てられる端末装置が、チャンネル識別情報に対応するチャンネルの階層構造の状態を管理する装置としても動作することになる。コンテンツ配信装置又は端末装置の接続状態の情報をこれらの装置から受信して記憶し、自端末装置宛のメッセージが接続先紹介要求メッセージであると判定されると、記憶している接続状態情報から接続先候補を選択するので、コンテンツ配信装置や端末装置の他に別途専用の接続先管理サーバを設けることなく、ツリー状やチェーン状の階層構造を有するコンテンツ配信システムを提供することができる。
【００２４】
また、請求項２に記載の発明によれば、コンテンツ配信装置は、自コンテンツ配信装置のチャンネル識別情報を宛先識別情報とし、自コンテンツ配信装置の所在情報や装置識別情報を含むチャンネル登録メッセージを送信するので、チャンネル識別情報と所定の関係を有する装置識別情報が割り当てられる端末装置に対して、コンテンツ配信装置の所在情報や装置識別情報を登録することができ、コンテンツ配信装置は、コンテンツデータをストリーミング配信されるチャンネルの階層構造におけるコンテンツ配信装置及び端末装置の接続状態を管理する端末装置の所在情報や装置識別情報を予め設定しておく必要がない。
【００２５】
また、請求項３に記載の発明によれば、チャンネル登録メッセージを定期的に送信するので、コンテンツ配信装置において所在情報や装置識別情報の変更が生じた場合であっても、チャンネルの接続状態を管理する端末装置において、その変更処理を容易に行うことができる。
【００２６】
また、請求項５に記載の発明によれば、チャンネルの接続状態を管理する端末装置において、当該チャンネルの接続先候補を、接続先紹介要求メッセージを送信した端末装置へネットワークを介して直接送信するので、接続先紹介要求メッセージを送信した端末装置はこの接続先候補に対して接続を要求することにより、所望のチャンネルに接続することができる。  
【００２７】
また、請求項６に記載の発明によれば、チャンネルの接続状態を管理する端末装置において、接続先紹介要求メッセージに応じて選択した接続先候補が接続先紹介要求メッセージを送信した端末装置に接続するようにしているため、接続先紹介要求メッセージを送信した端末装置は、接続先紹介要求メッセージを送信することにより所望のチャンネルに接続することが可能となる。
【００２８】
また、請求項７に記載の発明によれば、端末装置において、接続先候補に接続したとき、チャンネル識別情報を宛先識別情報とし、接続状態情報メッセージを送信するので、チャンネルの接続状態を管理する端末装置において、接続状態の変更管理が容易になる。
【００２９】
また、請求項８に記載の発明によれば、端末装置において、接続先候補に接続した後、チャンネル識別情報を宛先識別情報として、接続状態情報メッセージを定期的に前記ルーティングテーブルに基づいて送信するので、階層構造を構成する端末装置において所在情報や装置識別情報の変更が生じた場合であっても、チャンネルの接続状態を管理する端末装置において、その変更処理を容易に行うことができる。
【００３０】
また、請求項９に記載の発明によれば、端末装置において、メッセージの宛先識別情報との差が最も小さい装置識別情報が自端末装置に割り当てられているときに、受信したメッセージが自端末装置宛であると判定するので、受信したメッセージが自端末装置宛であるか否かをルーティングテーブルを用いることによって容易に行うことができる。
【００３１】
また、請求項１０に記載の発明によれば、コンテンツデータを保持する端末装置の所在情報等を記憶し、他の端末装置からの要求に応じたコンテンツデータを保持する端末装置に対して、コンテンツデータを送信させるようにしているので、コンテンツ配信装置からのストリーミング配信するコンテンツデータ以外に他の端末装置が保持するコンテンツデータをも取得することができるコンテンツ配信システムを提供することができる。
【００３２】
また、請求項１１に記載の発明によれば、コンテンツデータを保持する端末装置の所在情報等を記憶し、他の端末装置からの要求に応じたコンテンツデータを保持する端末装置の所在情報等を通知するようにしているので、コンテンツ配信装置からのストリーミング配信するコンテンツデータ以外に他の端末装置が保持するコンテンツデータをも取得することができるコンテンツ配信システムを提供することができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信する情報を音楽データや映像データなどのコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００３４】
［１．コンテンツ配信システムの構成等］
図１は、本実施形態に係るコンテンツ配信システムＳの概要構成例を示す図である。図１に示す物理接続形態のように、コンテンツ配信システムＳを構成するコンテンツ配信装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８，２ｅ、コンテンツ投入装置３、コンタクト先紹介装置４は、インターネットに代表されるネットワーク６上に分散配置されている。なお、コンテンツ配信システムＳに直接関係ない装置もネットワーク６に接続されるが、ここでは省略している。また、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８，２ｅのいずれかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置２という場合がある。
【００３５】
コンテンツ配信装置１、端末装置２ａ１，２ａ２，２ｂ１〜２ｂ４，２ｃ１〜２ｃ８，２ｅ、コンテンツ投入装置３、コンタクト先紹介装置４には、各装置を識別する情報としての固有の製造番号（たとえば、ＭＡＣアドレス）及びＩＰ（Internet Protocol）アドレス（所在情報）が割り当てられており、これら装置は、ネットワークの一例としてのネットワーク６にルータ１０等を介して接続されている。ここでは、目的の接続先装置のＩＰアドレスを宛先ＩＰアドレス、自装置のＩＰアドレスを送信元ＩＰアドレスとしたヘッダを含むパケットを送信することによって通信接続が可能となっている。
【００３６】
本実施形態におけるコンテンツ配信システムにおいては、分散ハッシュテーブル（以下、「ＤＨＴ」（Distributed Hash Table）と呼ぶ。）を利用することによりネットワーク上に分散配置されたコンテンツ配信装置と端末装置２との間及び端末装置２間でデータを送受信し、階層構造でのコンテンツデータの配信形態とダウンロード要求でのコンテンツデータの配信形態のいずれをも実施可能とする。
【００３７】
ここでは、階層構造でのコンテンツデータの配信形態として、各放送チャンネル（以下、単に「チャンネル」と呼ぶ。）ごとに、コンテンツデータをストリーミング配信するコンテンツ配信装置１を頂点として複数の端末装置２がネットワーク上に階層構造で多層に論理接続されるように所定の端末装置２によって管理され、コンテンツ配信装置１から送信されるコンテンツデータがチャンネル毎に階層構造の上流の端末装置２から下流の端末装置２にかけて順次端末装置２の中継機能によってストリーミング配信される配信形態を例に挙げ説明する。なお、コンテンツ配信装置１は、一つのチャンネルのコンテンツデータを配信する機能を有することとして以下説明するが、コンテンツ配信装置１で複数のチャンネルのコンテンツデータを配信するようにしてもよい。
【００３８】
また、ダウンロード要求でのコンテンツデータの配信形態として、複数の端末装置２間において、一つの端末装置２からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置２がコンテンツデータを配信する配信形態を例に挙げて説明する。
【００３９】
［１．１  ＤＨＴの概要］
まず、本実施形態に係るＤＨＴを利用したアルゴリズムについて説明する。
【００４０】
コンテンツ配信システムＳにおいて、当該端末装置２同士或いはコンテンツ配信装置１と端末装置２との間で、互いに情報をやり取りする際には、お互いの所在情報としてのＩＰアドレスを知っていなければならない。
【００４１】
コンテンツ配信装置１や各端末装置２が互いにコンテンツ配信システムＳに参加している全ての装置の所在情報を知っておくのが単純な手法であるが、装置数が何万何十万と多数になると、コンテンツ配信システムＳに参加している全ての装置の所在情報を覚えておくのは現実的ではない。また、任意の端末装置２の電源が頻繁にＯＮ或いはＯＦＦとすると、各端末装置２において記憶している当該任意の端末装置２の所在情報の更新が頻繁になり、運用上困難となる。
【００４２】
そこで、各装置において、コンテンツ配信システムＳに参加している全ての装置のうち、必要最低限の一部の装置の所在情報だけを記憶しておき、所在情報を記憶していない装置については、各装置間で互いに情報を転送し合うことによりコンテンツを届けるシステムが考案されている。
【００４３】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図２に示すような、オーバーレイネットワークが構築されることになる。つまり、このオーバーレイネットワークは、既存のネットワーク６を用いて形成された仮想的なリンク（論理接続）を構成するネットワークであり、Ｐ２Ｐグリッド型配信形態である。
【００４４】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワークを前提としており、このオーバーレイネットワーク上に配置されたコンテンツ配信装置１及び端末装置２を、コンテンツ配信システムＳに参加しているコンテンツ配信装置１及び端末装置２という。なお、コンテンツ配信システムＳへの参加は、未だ参加していない装置が、すでに参加している装置に対して参加要求を送ることによって行われる。
【００４５】
（端末ＩＤについて）
コンテンツ配信システムＳに参加しているコンテンツ配信装置１及び端末装置２の識別番号である端末ＩＤとして、それぞれの装置毎にユニークな番号（固有番号）を付与する。この番号は、コンテンツ配信システムＳに参加する装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、２128≒340×1036台の装置を運用できる。
【００４６】
より具体的には、各装置の端末ＩＤは、それぞれの装置のＩＰアドレス或いは製造番号等の装置毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められた端末ＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値を端末ＩＤとする。
【００４７】
（チャンネルＩＤについて）
階層構造でのコンテンツデータの配信形態は、上述のように各チャンネル毎に形成される。これらのチャンネルにも、それぞれのチャンネル毎の固有の識別情報であるチャンネル識別情報（以下、「チャンネルＩＤ」と呼ぶ。）を付与する。
【００４８】
ここで、当該チャンネルＩＤは、端末ＩＤと同様の長さ（例えば、128bit等）とし、例えば、チャンネルの名称（チャンネルのタイトル名）やチャンネルの概要情報（ジャンル）等のキーワードが、上記端末ＩＤを得るときと共通のハッシュ関数によりハッシュ化されることによって生成される（つまり、端末装置２のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置される）。ここでは、そのハッシュ値と最も近い（例えば、上位桁がより多く一致し、端末ＩＤがチャンネルＩＤを越えない）端末ＩＤを有する端末装置２が、チャンネルの階層構造を管理する端末装置２（以下、「接続管理端末装置」と呼ぶ。）となる。
【００４９】
なお、ここで「チャンネルの階層構造の管理」というのは、コンテンツ配信装置１が配信するコンテンツデータをストリーミング受信するためにツリー状階層構造に論理接続されたコンテンツ配信装置１及び端末装置の接続状態情報を管理することを意味する。また、「接続状態情報」には、ツリー状階層構造を構成するコンテンツ配信装置１及び端末装置２のＩＰアドレス、各装置がどの装置と接続されているかを示す接続情報などが含まれる。この接続状態情報の例を図７に示す。この図７については後述で詳説する。
【００５０】
そして、接続管理端末装置は、コンテンツ配信システムＳにおいて、コンテンツ配信装置１を頂点として複数の端末装置２がツリー状階層構造で多層に論理接続されるように管理する。なお、本実施形態においては、ツリー状階層構造として説明するが、これに限られず、複数の端末装置２がチェーン状の階層構造で多層に論理接続されるようにしてもよい。
【００５１】
（コンテンツＩＤについて）
また、ダウンロード要求での配信形態で配信されるコンテンツデータは、コンテンツ投入装置３によって端末装置２に投入されるが、当該コンテンツデータにも、それぞれのコンテンツデータ毎の固有の識別情報（以下、「コンテンツＩＤ」と呼ぶ。）を付与する。
【００５２】
そして、当該コンテンツＩＤは、端末ＩＤと同様の長さ（例えば、128bit等）とし、例えば、コンテンツの名称（コンテンツのタイトル名）やコンテンツの概要情報（あらすじ）等のキーワードが、上記端末ＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（つまり、端末装置２のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置される）。ここでは、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）端末ＩＤを有する端末装置２が、ダウンロード要求での配信形態で配信されるコンテンツデータを保持する端末装置２（以下、「コンテンツ保持端末装置」と呼ぶ。）へのリンク情報、すなわちコンテンツ保持端末装置の所在情報であるＩＰアドレスを保持する。
【００５３】
なお、コンテンツ保持端末装置は、コンテンツ投入装置３によってランダムに決定される。すなわち、コンテンツ投入装置３は、コンテンツデータを保持すべき１以上の端末装置２をランダムに決定し、このように決定した端末装置２にコンテンツデータを送信する。コンテンツ投入装置３からコンテンツデータを受信した端末装置２は、コンテンツデータを記憶部に保持することによってコンテンツ保持端末装置として機能する。これにより、コンテンツデータが偏りなくコンテンツ配信システムＳ上に分散して配置される。
【００５４】
このように、コンテンツ配信装置１、端末装置２及び各コンテンツデータに付与された端末ＩＤ、チャンネルＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成するため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitで端末ＩＤ及びコンテンツＩＤを付与し、図示したものである。図中丸点は端末ＩＤを、四角形はチャンネルＩＤを、菱形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００５５】
［１．２  ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００５６】
まず、図３（ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８bitの４進数で表すことにする。そして、端末装置２Ｎの端末ＩＤを「1133」とし、この端末装置２Ｎのルーティングテーブルを作る一例について説明する。ここでは、端末装置２のルーティングテーブルを作成する例を示しているが、コンテンツ配信装置１のルーティングテーブルに関しても同様である。
【００５７】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とした場合、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の自然数、以下同様。）で分けられる。端末装置２Ｎは、当該端末装置２Ｎ自身の端末ＩＤが「1133」であるため、図３（ａ）中左下「1XXX」のエリアに存在することになる。そして、端末装置２Ｎは、自分の存在するエリア（すなわち、「1XXX」のエリア）以外のエリア（すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア）に存在する端末装置２を適当に選択し、当該端末ＩＤの所在情報、すなわち、当該端末ＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４がレベル１のテーブルの一例である。このテーブルでは、「0XXX」のエリアの端末ＩＤとして「0100」、「2XXX」のエリアの端末ＩＤとして「2213」、「3XXX」のエリアの端末ＩＤとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル１の２列目は端末装置２Ｎ自身を示しているため、所在情報を記憶する必要はない。
【００５８】
（レベル２のルーティング）
次に、図３（ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「1XXX」を更に４分割し、更に４つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11xx」以外のエリアに存在する端末装置２を適当に選択し、当該端末ＩＤの所在情報であるＩＰアドレスをレベル２のテーブルに記憶する。図４がレベル２のテーブルの一例である。このテーブルでは、「10XX」のエリアの端末ＩＤとして「1003」、「12XX」のエリアの端末ＩＤとして「1221」が、「13XX」のエリアの端末ＩＤとして「1313」がそれぞれ選択されている状態を示している。なお、レベル２の２列目は端末装置２Ｎが存在するエリア「11XX」であり、後述するレベル３にてテーブル化されるため所在情報を記憶していない。また、上記エリアに端末装置２が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００５９】
（レベル３のルーティング）
更に、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「11XX」を更に４分割し、更に４つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在する端末装置２を適当に選択し、当該端末ＩＤの所在情報であるＩＰアドレスをレベル３のテーブルに記憶する。図４がレベル３のテーブルの一例である。レベル３の４列目は端末装置２Ｎが存在するエリアであり、後述するレベル４にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアに端末装置が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００６０】
このようにして、レベル４まで同様にルーティングテーブルを図４に示す如く作成することにより、８bitのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００６１】
以上説明した手法に従って作成したルーティングテーブルを、全てのコンテンツ配信装置１及び端末装置２が夫々作成して所有することになる。このように、各コンテンツ配信装置１及び各端末装置２は、コンテンツ配信システムＳにおける全てのコンテンツ配信装置１及び端末装置２のうち一部の端末装置２やコンテンツ配信装置１の端末ＩＤ（識別情報）とＩＰアドレス（所在情報）とを関連付けたルーティングテーブルを有しており、このルーティングテーブルは後述のルーティングテーブル記憶手段に記憶される。
【００６２】
ところで、コンテンツ配信装置１や端末装置２は、コンテンツ配信システムＳに未参加のときには、コンテンツ配信システムＳに参加している他の装置の所在情報などを知らない。そのため、コンテンツ配信装置１や端末装置２は、コンテンツ配信システムＳに参加するときには、以下に説明するように、ルーティングテーブルを生成する。
【００６３】
図５は、コンテンツ配信システムＳに未参加の端末装置２Ｈ（以下、「新規参加端末装置２Ｈ」と呼ぶ。）が当該コンテンツ配信システムＳへ参加する様子の一例を示す図である。なお、コンテンツ配信装置１に関しても同様であるため、ここでは端末装置に関してのみ説明する。
【００６４】
まず、コンテンツ配信システムＳに未参加である新規参加端末装置２Ｈは、コンテンツ配信システムＳに参加するために、コンタクト先紹介装置４に対して、参加メッセージを送信すべき端末装置２（以下、「コンタクト先端末装置」と呼ぶ。）の所在情報を要求する。
【００６５】
新規参加端末装置２Ｈは、コンタクト先紹介装置４から参加メッセージを送信すべきコンタクト先端末装置の所在情報が送られてくると、コンタクト先端末装置に対して参加メッセージを送信する。ここで、参加メッセージの宛先識別情報は、新規参加端末装置２Ｈの端末ＩＤとなっている。すなわち、新規参加端末装置２Ｈは、コンテンツ配信システムＳに参加する際に、自装置２のＩＰアドレスのハッシュ値「2213」を宛先識別情報とした参加メッセージを生成する。
【００６６】
コンタクト先端末装置は、新規参加端末装置２Ｈから送信された参加メッセージを受信すると、コンタクト先端末装置は、この参加メッセージがコンタクト先端末装置宛のメッセージであるか否かを判定する。コンタクト先端末装置宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報がコンタクト先端末装置宛の識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、コンタクト先端末装置自身が保持しているルーティングテーブルに記憶されている端末装置の識別情報から、一番近い端末装置の識別情報が、自身であるか他の端末装置であるかを判定する。そして、コンタクト先端末装置の識別情報よりも他の端末装置の識別情報の方が宛先識別情報に近いとき、参加メッセージを受信したコンタクト先端末装置は、コンタクト先端末装置自身が保持しているルーティングテーブルのレベル２を参照して、「2XXX」のエリアに属す端末装置２のうち、所在情報を知っている端末装置２Ｂに対して参加メッセージを転送するとともに、自端末装置のルーティングテーブル記憶手段に記憶されたルーティングテーブルのレベル１のテーブルの情報を、新規参加端末装置２Ｈへ送信する。
【００６７】
このように、コンテンツＩＤの桁を上から順に適合していく要領で参加メッセージの転送を行い、順次ルーティングテーブルの各レベルの情報を送信する。最終的に宛先識別情報に最も近い端末装置２に辿り着いたところで参加メッセージの転送は終了する。なお、参加メッセージなどのメッセージを目的の端末装置へ辿り着くまでに、上述のように転送する仕組みをＤＨＴルーティングと呼ぶ。
【００６８】
こうして、新規参加端末装置２Ｈは、参加メッセージを受信した端末装置２からルーティングテーブルの各レベルの情報を上位レベルの情報から順に取得するようにしている。新規参加端末２はこのようにして、コンテンツ配信システムＳに参加するために必要なルーティングテーブルを生成する。
【００６９】
［１．３  階層構造でのコンテンツデータの配信形態について］
次に、コンテンツ配信システムＳにおける階層構造でのコンテンツデータの配信形態について説明する。この階層構造は、コンテンツ配信装置１が接続管理端末装置にチャンネルの登録を行い、そのチャンネルに参加しようとする端末装置が接続管理端末装置に接続先候補を要求し、この接続先候補に接続することによって形成されるものである。以下、コンテンツ配信装置１の登録処理、端末装置２の階層構造への参加処理について、順に説明する。
【００７０】
（コンテンツ配信装置１の登録処理について）
まず、コンテンツ配信装置１がコンテンツデータをストリーミング配信するチャンネルをＤＨＴルーティングにより接続管理端末装置に登録を行う手順について説明する。
【００７１】
コンテンツ配信装置１は、ＩＰアドレスを所定のハッシュ関数によりハッシュ化して端末ＩＤを生成する。また、コンテンツデータをストリーミング配信するチャンネルの名称等のキーワードを、端末ＩＤを生成するハッシュ関数と同一のハッシュ関数によってハッシュ化することにより、チャンネルＩＤを生成する。ここでは、コンテンツ配信装置１の端末ＩＤは「0211」、チャンネルＩＤは「2202」であるとする。
【００７２】
コンテンツ配信装置１は、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、チャンネルＩＤ「2202」と同じエリアの端末ＩＤを持つ端末装置の端末ＩＤを送信先の装置とし、チャンネルＩＤ「2202」を宛先識別情報として、自コンテンツ配信装置１の所在情報を示すチャンネル登録メッセージを送信する。すなわち、コンテンツＩＤ「2202」は「2XXX」のエリアであるため、当該「2XXX」のエリアに属す端末装置２のうち、所在情報を知っている（すなわち、自己が保持しているルーティングテーブルに所在情報が記憶されている）端末装置２Ａ（端末ＩＤ「2311」）に対してチャンネル登録メッセージを送信する。チャンネル登録メッセージに含まれる（記載された）情報として、登録を要求するチャンネルに対応するチャンネルＩＤ、コンテンツ配信装置１の所在情報及びコンテンツ配信装置１が下流に接続できる端末装置２の数（以下、「許容下流数」とする。）などがある。
【００７３】
次に、チャンネル登録メッセージを受信した端末装置２Ａは、このチャンネル登録メッセージが自端末装置２Ａ宛のメッセージであるか否かを判定する。自端末装置２Ａ宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自端末装置２Ａの識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、端末装置２Ａ自身が保持しているルーティングテーブルに記憶されている端末装置の識別情報から、一番近い端末装置の識別情報が、自身であるか他の端末装置であるかを判定する。ここでは、自端末装置２Ａの識別情報よりも他の端末装置の識別情報の方が、宛先識別情報に近いため、端末装置２Ａは、当該端末装置２Ａ自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「22XX」のエリアに属す端末装置２のうち、所在情報を知っている端末装置２Ｂ（端末ＩＤ「2213」）に対してチャンネル登録メッセージを転送する。
【００７４】
このように、チャンネルＩＤの桁を上から順に適合していく要領でチャンネル登録メッセージの転送が進み、最終的に当該チャンネルＩＤに対応するチャンネルの階層構造を管理する端末装置２Ｃ（端末ＩＤ「2201」）、すなわちチャンネルＩＤ「2202」の接続管理端末装置に辿り着くと、当該接続管理端末装置は、チャンネル登録メッセージに含まれるチャンネルＩＤ「2202」に対応するツリー状階層構造の接続状態情報のテーブル（以下、「接続状態情報テーブル」とする。）を新規に生成し、後述の接続状態情報記憶手段に記憶するようにしている。例えば、チャンネル登録メッセージに含まれるチャンネルＩＤが「2202」であるとき、図７に示すチャンネルＩＤ「2202」の接続状態情報テーブルが新規に接続状態情報記憶手段に生成され、コンテンツ配信装置１の所在情報であるＩＰアドレスが「92.111.223.76」であり、許容下流数が「２」であるとき、これらがチャンネルＩＤ「2202」の接続状態情報としてチャンネルＩＤ「2202」の接続状態情報テーブルに記憶される。
【００７５】
（端末装置２の階層構造への参加処理について）
次に、図８を参照して、端末装置がチャンネルの階層構造へ参加する方法の一例について説明する。図８は、ＤＨＴルーティングにより端末装置２が、あるチャンネルの階層構造を管理する接続管理端末装置を検索し、チャンネルの階層構造へ参加する様子の一例を示す図である。ここでは、端末ＩＤ「1133」の端末装置２Ｍが、チャンネルＩＤ「2202」の階層構造に参加する際の手順について説明する。なお、以下このように接続管理装置を探し、あるチャンネルの階層構造における接続先候補の情報（以下、接続先候補の情報を含めて、「接続先候補」と略すことがある。）を要求する端末装置を「接続要求端末装置」と呼ぶ。
【００７６】
接続要求端末装置２Ｍは、図８に示すように、自端末装置１が保持するルーティングテーブルに基づいて、チャンネルＩＤ「2202」と同じエリアの端末ＩＤを持つ端末装置の端末ＩＤを宛先とし、チャンネルＩＤ「2202」を宛先識別情報として、チャンネルＩＤ「2202」の階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信する。この接続先紹介要求メッセージは、チャンネルＩＤ「2202」の階層構造を構成する装置のうち、接続可能な端末装置である接続先候補の紹介要求である。そして、この接続先紹介要求メッセージも、上記チャンネル登録メッセージと同様にルーティングテーブルに従って、次々と転送されていき、最終的に当該チャンネルＩＤに対応するチャンネルの階層構造を管理する端末装置２Ｃ（端末ＩＤ「2001」）、すなわちチャンネルＩＤ「2202」の接続管理端末装置２Ｃに辿り着くと、当該接続管理端末装置は、接続先紹介要求メッセージに含まれるチャンネルＩＤ「2202」に対応する接続状態情報テーブルから接続先候補となる装置（コンテンツ配信装置１又は端末装置２）の所在情報等を接続要求端末装置２Ｍに返信するようになっている。具体的には、接続管理端末装置２Ｃは、接続先候補として、下流に接続することが可能な端末装置の数（以下、「下流未接続数」とする。）が１以上のものからいくつかの装置の所在情報を取り出して、接続要求端末装置２Ｍへ通知する。例えば、チャンネルＩＤ「2201」に対応する接続状態情報が図７に示すような状態である場合、接続管理端末装置は、接続状態情報テーブルの登録番号ＮＯ．２に記憶された端末装置２Ｄの所在情報であるＩＰアドレス「31.120.10.23」を取り出して、接続要求端末装置２Ｍに返信する。
【００７７】
接続要求端末装置２Ｍは、接続管理端末装置２Ｃから接続先候補（端末装置２Ｄ）の所在情報を受信すると、その所在情報を宛先として接続先候補の装置（以下、「接続先装置」とする。）に対し、接続要求メッセージを送信して接続を要求し、これにより接続要求端末装置２Ｍが参加を欲するチャンネルの階層構造へ組み込まれる。そして、接続要求端末装置２Ｍでは、コンテンツ配信装置１から配信されるコンテンツデータを直接又は他の端末装置２を介して受信可能となる。
【００７８】
また、チャンネルＩＤ「2201」に対応するチャンネルの階層構造に参加した接続要求端末装置２Ｍは、接続状態情報メッセージを送信する。接続管理端末装置２Ｃは、接続状態情報メッセージを受信すると、この接続状態情報メッセージに基づいて、チャンネルＩＤ「2201」に対応する接続状態情報を更新する。ここで、接続要求端末装置２Ｍから送信される接続状態情報メッセージには、接続要求端末装置２Ｍの所在情報であるＩＰアドレス、接続要求端末装置２Ｍが接続した接続先候補の所在情報であるＩＰアドレス、接続要求端末装置２Ｍの下流に接続することができる装置の数などが含まれており、接続管理端末装置２Ｃは、新規な登録番号を接続状態情報テーブルに追加し、その登録番号に対応させて、接続要求端末装置２ＭのＩＰアドレスと許容下流数とを登録する。また、接続要求端末装置２Ｍが接続した接続先候補のＩＰアドレスに対応する登録番号を接続状態情報テーブルから抽出し、この登録番号を下流装置の番号として、接続要求端末装置２Ｍの登録番号に対応付けて接続状態情報テーブルに記憶する。
【００７９】
このようにコンテンツ配信システムＳは、このように端末装置２が次々と各チャンネルに参加することによって、コンテンツ配信装置１を頂点として複数の端末装置２がツリー状階層構造で多層に論理接続される。そして、コンテンツ配信装置１から配信されるコンテンツデータは、端末装置２の中継機能により順次下流の端末装置２へ中継されて複数の端末装置２にストリーミング配信される。
【００８０】
すなわち、コンテンツ配信装置１には、ネットワーク６を介してコンテンツデータをストリーミング配信する配信手段が設けられており、図１に示すように、コンテンツ配信装置１から端末装置２ａ１，２ａ２（第1層の端末装置）へコンテンツデータが送信され、端末装置２ａ１，２ａ２はコンテンツデータを受信すると、下流の端末装置２ｂ１〜２ｂ４（第２階層の端末装置）へ受信したコンテンツデータを順次中継する。端末装置２ｂ１〜２ｂ４はコンテンツデータを受信すると、下流の端末装置２ｃ１〜２ｃ８（第３階層の端末装置）へ受信したコンテンツデータを順次中継する。なお、図１においては、理解を容易にするため、複数のチャンネルのうち一つのチャンネルの階層構造のみを表している。
【００８１】
端末装置２は、組み込まれた階層構造の位置の上流の端末装置２又はコンテンツ配信装置１の所在情報と、組み込まれた階層構造の位置の下流の端末装置２の所在情報とを後述のハードディスク装置２０３に記憶しており、このように記憶した所在情報に基づいて、コンテンツデータの中継を行うようにしている。また、配信されるコンテンツデータは、複数のパケットに分割されて順次配信されるものであり、このようにパケットに分割されて配信されるデータをコンテンツパケットという。
【００８２】
端末装置２へ配信されるコンテンツデータは、チャンネル毎にその階層構造を構成する端末装置２へ配信される。配信されるコンテンツデータには、音楽や映画などコンテンツのデータのほか、再生時刻情報が含まれている。そして、コンテンツデータを受信した複数の端末装置２は、順次送信されるコンテンツデータの再生を再生時刻情報に基づいて行う。
【００８３】
［１．４  ダウンロード要求でのコンテンツデータの配信形態について］
次に、コンテンツ配信システムＳにおけるダウンロード要求でのコンテンツデータの配信形態について説明する。ダウンロード要求での配信形態で配信されるコンテンツデータは、上述したようにコンテンツ投入装置３によって端末装置２に投入されるものであり、コンテンツデータが投入された端末装置２がコンテンツ保持端末装置となり、新しいコンテンツデータをコンテンツ配信システムＳ上の他の端末装置２に見えるように公開する。このように公開されたコンテンツデータは、コンテンツ配信システムＳ上の端末装置２からＤＨＴルーティングよって検索され、ダウンロードされる。以下、具体的に説明する。
【００８４】
（インデックステーブルへの登録方法）
まず、コンテンツ配信システムＳの中で、ダウンロード可能な新しいコンテンツデータをコンテンツ配信システムＳ上の他の端末装置２に見えるように公開する際の手法について述べる。
【００８５】
コンテンツ投入装置３からコンテンツデータを配布されたコンテンツ保持端末装置は、図９に示すように、当該コンテンツ保持端末装置の所在情報及び識別情報を含むコンテンツ保持端末装置情報の登録要求メッセージ（以下、「コンテンツ保持端末装置登録メッセージ」と呼ぶ。）を、コンテンツの名称等から求めたコンテンツＩＤと同じ端末ＩＤを持つ端末装置に向けて（この端末装置が実在するか否かはこの時点ではわからない。）送信する。そして、このコンテンツ保持端末装置登録メッセージも、上記チャンネル登録メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該コンテンツ保持端末装置登録メッセージに含まれるコンテンツＩＤに最も近い端末ＩＤを有する端末装置２まで転送されたところで、その端末装置２がもはや送信先の端末装置が他にないと判断すると、当該端末装置２自身がそのコンテンツのルート端末装置となるべきだと判断し、図９に示すように、当該コンテンツ保持端末装置登録メッセージに含まれるコンテンツ保持端末装置情報である当該コンテンツＩＤ、コンテンツ保持端末装置の所在情報などをインデックス情報として後述のインデックステーブル２２２に記憶する。ここで、「コンテンツのルート端末装置」とは、自端末装置の端末ＩＤに最も近いコンテンツＩＤのコンテンツデータを保持するコンテンツ保持端末装置登録の所在情報を管理する端末装置である。
【００８６】
このようにルート端末装置のインデックステーブル２２２にコンテンツ保持端末装置の所在情報であるＩＰアドレスが登録されると、端末装置２からコンテンツデータを探し、コンテンツデータの受信を要求することが可能となる。このように、コンテンツデータを探し、コンテンツデータの受信を要求する端末装置を「リクエスト端末装置」と呼ぶ。このようにして本実施形態では、コンテンツ投入装置３から配布されたコンテンツをコンテンツ保持端末装置に登録し、ルート端末装置を介して検索できるようにすることで、他の端末装置にコンテンツを公開する。なお、ルート端末装置でない端末装置もコンテンツ保持端末装置登録メッセージを受信すると、コンテンツ保持端末装置登録メッセージに含まれる情報をインデックステーブル２２２に記憶する。
【００８７】
インデックステーブル２２２は、図１０に示すように、コンテンツ保持端末装置の所在情報であるＩＰアドレスなどを含むコンテンツ保持端末装置情報を記憶するためのテーブルである。このインデックステーブル２２２には、コンテンツ保持端末装置の所在情報のほか、コンテンツ保持端末装置を紹介した時刻等がコンテンツ保持端末装置情報として１行（所定記憶エリア）毎に記憶される。
【００８８】
（コンテンツデータの検索方法について）
次に、図１１を参照して、コンテンツデータを保持しているコンテンツ保持端末装置の検索方法の一例について説明する。図１１は、ＤＨＴルーティングによりコンテンツ保持端末装置が検索される様子の一例を示す図である。
【００８９】
ここでは、端末ＩＤ「1133」の端末装置２Ｎがリクエスト端末装置として、コンテンツＩＤ「3020」を有するコンテンツデータを探す際の手順について説明する。
【００９０】
リクエスト端末装置２Ｎは、図１１に示すように、コンテンツＩＤ「3020」と同じエリアの端末ＩＤを持つ端末装置の端末ＩＤを宛先とし、コンテンツＩＤ「3020」を宛先識別情報として、コンテンツ保持端末装置情報（コンテンツ保持端末装置の所在情報を含む情報）の送信要求（以下、「コンテンツ保持端末装置検索メッセージ」と呼ぶ。）を送信する。そして、このコンテンツ保持端末装置検索メッセージも、上記チャンネル登録メッセージと同様にルーティングテーブルに従って、次々と転送されていき、最終的に当該コンテンツデータを管理する端末装置２Ｆ（端末ＩＤ「3011」）、すなわちルート端末装置に辿り着くと、当該ルート端末装置は、コンテンツ保持端末装置検索メッセージに含まれるコンテンツＩＤ「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持端末装置（ここでは、端末装置２Ｇとする。）の所在情報等をリクエスト端末装置２Ｎに返信するようになっている。
【００９１】
リクエスト端末装置２Ｎは、上記ルート端末装置２Ｆから、コンテンツＩＤ「3020」のコンテンツデータの所在情報、即ち、コンテンツＩＤ「3020」のコンテンツデータを保持するコンテンツ保持端末装置２ＧのＩＰアドレスを受信して知ることになり、コンテンツＩＤ「3020」のコンテンツ保持端末装置２Ｇに、コンテンツデータを要求するコンテンツデータ要求メッセージを送信することにより、当該コンテンツ保持端末装置２Ｇから、そのコンテンツデータをダウンロードして取得することになる。
【００９２】
［２．コンテンツ配信装置１の構成等の説明］
次に、図１２を参照して、コンテンツ配信装置１の構成及び動作について更に詳説する。なお、コンテンツ配信装置１は、以下の示す構成及び動作に加え、端末装置２における動作と同様の動作も行うことができるが、その構成及び動作については、後述で詳説する端末装置２の構成及び動作と同様であるため、端末装置２と同様の部分については省略する。
【００９３】
図１２は、本実施形態におけるコンテンツ配信装置１の概略構成例を示す図である。コンテンツ配信装置１は、一般のサーバコンピュータを適用可能であり、図１２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置としての主記憶装置１０５と、各種データ等を記憶するハードディスク装置１０３と、ネットワーク６を介して端末装置２、コンテンツ投入装置３との間で通信を行うネットワークインタフェース１０４と、所定の情報を入力可能なキーボード１０７やマウス１０８等の入力手段を制御する周辺機器制御チップ１０６と、ＣＰＵ１０２からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述の内蔵ディスプレイ１１０に表示するビデオチップ１０９と、ビデオチップ１０９から送信される信号に応じた表示を行う内蔵ディスプレイ１１０と、ＦＭ音源（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ）やＷａｖｅ  Ｔａｂｌｅ音源などの音源を有する音源チップ１１１と、音源チップ１１１から出力されるオーディオ信号を音波に変換する内蔵スピーカ１１２と、を備えて構成され、これらの各種構成要素はシステムバス１０１を介して相互に接続されている。なお、ネットワークインタフェース１０４は、ルータ１０ａを介してネットワーク６に接続される。このルータ１０ａは、図１に示すルータ１０に相当するものである。
【００９４】
なお、本実施形態においては、ＣＰＵ１０２と主記憶装置１０５とで制御部１３０を構成している。また、コンテンツ配信装置１には、上述のように内蔵ディスプレイ（液晶ディスプレイ等）１１０等が内蔵されており、例えば、コンテンツ配信システムＳを運用する放送運営者は、この内蔵ディスプレイ１１０を見ながら入力手段から所定の情報を入力することができる。なお、本実施形態においては、これら内蔵ディスプレイ１１０や内蔵スピーカ１１２などがコンテンツ配信装置１に内蔵されているが、これに限らず、例えば、別に接続されるものであってもよい。
【００９５】
（主記憶装置１０５ついて）
主記憶装置１０５には、コンテンツ配信装置１のコンピュータとしての基本的な機能を提供するためのＯＳ（オペレーティングシステム）プログラム１１７と、ハードディスク装置１０３の放送コンテンツ記憶領域に記憶されたコンテンツデータを取り出して端末装置２へストリーミング配信するためのストリーム制御プログラム１１５と、自コンテンツ配信装置１の下流に接続された各端末装置２の所在情報（ＩＰアドレス）の管理等を行うためのトポロジー管理プログラム１１６と、内蔵ディスプレイ１１０を制御するための画面制御プログラム１１８と、エンコードされた音楽コンテンツデータをデコードするための音楽デコーダプログラム１１９と、自コンテンツ配信装置１のチャンネルを当該チャンネルの接続管理端末装置となる端末装置２に登録し、後述のルーティングテーブルに基いて、メッセージの送受信を行うためのコンテンツ配信管理プログラム１２１等が記憶されており、これらはＣＰＵ１０２によって読み出され、ＣＰＵ１０２によってこれらのプログラムに従った機能が実行される。また、主記憶装置１０５には、ハードディスク装置１０３に記憶されている放送コンテンツデータ１１３から読み出したコンテンツデータを端末装置２へ送信する前に一時的に記憶するリングバッファ領域１２０と、ＤＨＴルーティングを行うためのルーティングテーブル１２２（図４参照）を記憶するルーティングテーブル記憶領域（ルーティングテーブル記憶手段の一例に対応）とが設けられている。
【００９６】
ここで、ＯＳプログラム１１７は、ＣＰＵ１０２によって読み出されて実行されることにより、キーボード１０７やマウス１０８の入出力に関する機能や、主記憶装置１０５やハードディスク装置１０３などのメモリ管理などのコンテンツ配信装置１であるコンピュータの基本的な機能を実行可能にするものである。
【００９７】
そして、このＯＳプログラム１１７がＣＰＵ１０２によって実行された状態で、上述のストリーム制御プログラム１１５、トポロジー管理プログラム１１６、画面制御プログラム１１８、音楽デコーダプログラム１１９、コンテンツ配信管理プログラム１２１が主記憶装置１０５から読み出されて実行される。
【００９８】
なお、ＯＳプログラム１１７、ストリーム制御プログラム１１５、トポロジー管理プログラム１１６、画面制御プログラム１１８、音楽デコーダプログラム１１９、コンテンツ配信管理プログラム１２１等は、例えば、ネットワーク６に接続されたサーバ等から主記憶装置１０５にダウンロードされるようにしてもよく、また、ＣＤ−ＲＯＭ等の記録媒体に記録されてから当該記録媒体を介して、主記憶装置１０５に読み込まれるようにしてもよい。
【００９９】
（制御部１３０について）
制御部１３０は、上述のようにＣＰＵ１０２と主記憶装置１０５とから構成され、ＣＰＵ１０２が主記憶装置１０５に記憶された各種プログラム１１５〜１１９，１２１を読み出して実行することにより、コンテンツ配信装置１全体を統括制御し、かつ、後述するコンテンツデータ配信手段、トポロジー管理手段、表示制御手段等、再生手段、ルーティングテーブル生成手段、チャンネル登録メッセージ送信処理手段、接続依頼メッセージ受信手段、メッセージ宛先判定手段、メッセージ転送手段、表示制御手段、チャンネル情報送信手段
等として機能するようになっている。なお、ＣＰＵ１０２がストリーム制御プログラム１１５を実行することによって、コンテンツデータ配信手段等として、またＣＰＵ１０２がトポロジー管理プログラム１１６を実行することによって、トポロジー管理手段として、また、ＣＰＵ１０２が画面制御プログラム１１８を実行することによって、表示制御手段等として、ＣＰＵ１０２が音楽デコーダプログラム１１９を実行することによって、再生手段として、ＣＰＵ１０２がコンテンツ配信管理プログラム１２１を実行することによって、ルーティングテーブル生成手段、チャンネル登録メッセージ送信処理手段、接続依頼メッセージ受信手段、メッセージ宛先判定手段、メッセージ転送手段、表示制御手段、チャンネル情報送信手段等として、それぞれ機能するようになっている。更に、ハードディスク装置１０３は、コンテンツデータが記憶されるコンテンツデータ記憶手段として使用される。
【０１００】
（ルーティングテーブル生成手段について）
ルーティングテーブル生成手段は、コンタクト先紹介装置４に対して、参加メッセージを送信すべきコンタクト先端末装置の所在情報を要求し、取得する。そして、コンタクト先端末装置に対して、参加メッセージを送信し、この参加メッセージに対してコンタクト先端末装置から送信される他の端末装置の所在情報及び識別情報とに基いて、ルーティングテーブルを生成する（図５参照）。
【０１０１】
（チャンネル登録メッセージ送信処理手段について）
チャンネル登録メッセージ送信手段は、自コンテンツ配信装置１がコンテンツデータをストリーミング配信するチャンネルを示すチャンネルＩＤを宛先識別情報とし、自コンテンツ配信装置１の所在情報を含むチャンネル登録メッセージをルーティングテーブル１２２に基づいて送信する。
【０１０２】
その後、チャンネル登録メッセージ送信手段は、チャンネル登録メッセージを定期的に送信するようにしている。そのため、コンテンツ配信装置において所在情報の変更が生じた場合であっても、チャンネルの接続状態を管理する端末装置において、その変更処理を容易に行うことができることになる。
【０１０３】
（接続依頼メッセージ受信手段について）
接続依頼メッセージ受信手段は、端末装置２から自コンテンツ配信装置１のチャンネルの階層構造への接続を要求する接続依頼メッセージを受信すると、当該メッセージを送信した端末装置２との論理接続を行い、以降コンテンツ配信手段によって、当該論理接続した端末装置へコンテンツデータの配信が行われる。
【０１０４】
（コンテンツデータ配信手段について）
コンテンツデータ配信手段は、ネットワーク６を介してコンテンツデータをストリーミング配信する。すなわち、ハードディスク装置１０３において記憶されている放送用コンテンツデータを取り出し、ネットワーク６を介して論理接続された端末装置２（例えば、ツリー型に接続された場合には最上階層端末装置）等にストリーミング配信する。
【０１０５】
このコンテンツデータ配信手段による端末装置２等へのストリーミング配信は、以下の手順で実行される。
【０１０６】
コンテンツデータ配信手段は、ハードディスク装置１０３に予め記憶されている放送コンテンツデータ１１３から、放送番組情報に基づいてコンテンツデータを順次取り出してリングバッファ領域１２０に記憶させる。
【０１０７】
その後、コンテンツデータ配信手段は、接続された端末装置２等に対して、リングバッファ領域１２０に記憶したコンテンツデータを所定容量毎に分割しながらコンテンツパケットに格納し、ネットワーク６を介して、このコンテンツパケットへ送信する。
【０１０８】
（トポロジー管理手段について）
コンテンツ配信装置１が放送するチャンネルにはチャンネルＩＤが割り振られており、トポロジー管理手段は、割り振られたチャンネルＩＤに構成されるツリー状階層構造の第１階層に参加している端末装置２の所在情報（ＩＰアドレス）を管理している。そして、上述の配信手段はトポロジー管理手段が管理する端末装置２のＩＰアドレスを宛先アドレスとし、配信用ＩＰアドレスを送信元として端末装置２へコンテンツデータの配信を行う。
【０１０９】
（メッセージ宛先判定手段について）
メッセージ宛先判定手段は、ネットワーク６を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自コンテンツ配信装置１宛であるか否かを判定する。
【０１１０】
受信したメッセージが自コンテンツ配信装置１宛であるか否かの判定は、メッセージに含まれる宛先端末ＩＤ（宛先識別情報）を取り出し、主記憶装置１０５に記憶したルーティングテーブルに基づいて判定する。すなわち、各種のメッセージをネットワークインタフェース１０４を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブル１２２に記憶した端末ＩＤとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル１２２上の端末ＩＤが自コンテンツ配信装置１の端末ＩＤであると判定すると、自コンテンツ配信装置１宛のメッセージであると判定する。
【０１１１】
（メッセージ転送手段について）
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク６を介して受信したメッセージが自コンテンツ配信装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、転送先の端末装置の所在情報をルーティングテーブル１２２から取り出し、転送先の端末装置へ受信したメッセージを転送する。
【０１１２】
（表示制御手段について）
表示制御手段は、ビデオチップ１０９及び内蔵ディスプレイ１１０を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、内蔵ディスプレイ１１０にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
【０１１３】
（再生手段について）
再生手段は、放送コンテンツデータ１１３の中からコンテンツデータを内蔵ディスプレイ１１０に表示したり、内蔵スピーカ１１２から出力したりする機能を有している。
【０１１４】
（チャンネル情報送信手段について）
チャンネル情報送信手段は、自コンテンツ配信装置１からストリーミング配信する所定期間（例えば、１日間や１週間）のコンテンツの内容（以下、「チャンネル情報」と呼ぶ。）をコンタクト先紹介装置４に送信するようにしている。このチャンネル情報には、自コンテンツ配信装置１からストリーミング配信するチャンネルのチャンネルＩＤとコンテンツデータの内容を含む。コンタクト先紹介装置４は、コンテンツ配信装置は、このチャンネル情報に基づいて電子番組ガイド（ＥＰＧ）を生成し、端末装置２へ送信可能としている。
【０１１５】
［３．端末装置２の構成等の説明］
次に、図１３を参照して、端末装置２の構成及び動作について更に詳説する。図１３は、本実施形態における端末装置２の概略構成例を示す図である。
【０１１６】
端末装置２は、一般のパーソナルコンピュータ或いは専用端末を適用可能であり、図１３に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２と、各種プログラム等を記憶（格納）する書き換え可能な主記憶装置２０５と、各種データ等を記憶するハードディスク装置２０３と、ネットワーク６を介してネットワーク上のコンテンツ配信装置１、他の端末装置２、コンテンツ投入装置３及びコンタクト先紹介装置４との間で有線通信による通信を行うためのネットワークインタフェース２０４と、ユーザによる端末装置２の遠隔操作が可能な所定の赤外線信号を送信及び受信するユーザ入力用リモコン２０８と、このユーザ入力用リモコン２０８と赤外線により通信を行うための赤外線ポート２０７と、赤外線ポート２０７を制御する周辺機器制御チップ２０６と、ＣＰＵ２０２からイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込むと共にこのビデオメモリに書き込んだデータを後述の内蔵ディスプレイ２１０に表示するビデオチップ２０９と、ビデオチップ２０９から送信される信号に応じた表示を行う内蔵ディスプレイ２１０と、ＦＭ音源（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ）やＷａｖｅ  Ｔａｂｌｅ音源などの音源を有する音源チップ２１１と、音源チップ２１１から出力されるオーディオ信号を音波に変換する内蔵スピーカ２１２とを備えて構成され、これらの各種構成要素はシステムバス２０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ２０２と主記憶装置２０５とで制御部２３０を構成している。また、ネットワークインタフェース２０４は、ルータ１０ｂを介して、ネットワーク６に接続されている。このルータ１０ｂは、図１に示すルータ１０に相当するものである。
【０１１７】
（主記憶装置２０５について）
主記憶装置２０５には、端末装置２のコンピュータとしての基本的な機能を提供するためのＯＳプログラム２１４と、コンテンツ配信システムＳに参加し、各種メッセージを処理するＤＨＴ処理プログラム２１５と、階層構造でのコンテンツデータの配信形態に参加し、コンテンツ配信装置１から直接又は他の端末装置２に中継されてストリーミング配信されるコンテンツデータをストリーミング受信及び下流の端末装置２へストリーミング送信（中継）するためのストリーミング制御プログラム２１６と、階層構造でのコンテンツデータの配信形態において、ツリー接続された一層上流の端末装置２（或いはコンテンツ配信装置１）の所在情報（ＩＰアドレス）とツリー接続された一層下流の端末装置２の所在情報の管理等を行うためのトポロジー管理プログラム２１７と、ダウンロード要求でのコンテンツデータの配信形態において、コンテンツデータをダウンロードしたり、アップロードしたりするためのコンテンツダウンロード・アップロードプログラム２１８（以下、「コンテンツＤＬ／ＵＬプログラム」とする。）と、内蔵ディスプレイ２１０を制御するための画面制御プログラム２１９と、階層構造でのコンテンツデータの配信形態において、上流の装置からストリーミング受信したコンテンツデータをデコードしてストリーミング再生したり、ダウンロード要求でのコンテンツデータの配信形態において、ダウンロードしてハードディスク装置２０３に記憶したコンテンツデータを再生したりするための音楽デコーダプログラム２２０等が記憶されており、これらはＣＰＵ２０２によって読み出され、ＣＰＵ２０２によってこれらのプログラムに従った機能が実行される。
【０１１８】
また、主記憶装置２０５には、更に、所定の記憶容量を有し、ストリーミング受信したコンテンツデータを順次一時的に記憶するリングバッファ領域２２１、インデックステーブル２２２（図１０参照）を記憶するためのインデックステーブル記憶領域（コンテンツ保持端末情報記憶手段の一例に相当）、ルーティングテーブル２２３（図４参照）を記憶するためのルーティングテーブル記憶領域（ルーティングテーブル記憶手段の一例に相当）、自端末装置２が接続管理装置となったときに、チャンネルの接続状態情報を記憶する接続状態情報テーブルを格納する接続状態情報記憶領域２２４（接続状態情報記憶手段の一例に相当）などが設けられている。
【０１１９】
ここで、ＯＳプログラム２１４は、ＣＰＵ２０２によって読み出されて実行されることにより、ユーザ入力用リモコン２０８の入出力に関する機能や、主記憶装置２０５やハードディスク装置２０３などのメモリ管理などの端末装置２であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム２１４がＣＰＵ２０２によって実行された状態で、上述のＤＨＴ処理プログラム２１５、ストリーミング制御プログラム２１６、トポロジー管理プログラム２１７、コンテンツＤＬ／ＵＬプログラム２１８、画面制御プログラム２１９、音楽デコーダプログラム２２０等が主記憶装置２０５から読み出されて実行される。
【０１２０】
なお、ＯＳプログラム２１４、ストリーミング制御プログラム２１６、ＤＨＴ処理プログラム２１５、ストリーミング制御プログラム２１６、トポロジー管理プログラム２１７、コンテンツＤＬ／ＵＬプログラム２１８、画面制御プログラム２１９、音楽デコーダプログラム２２０等は、例えば、ネットワーク６に接続されたサーバ等から主記憶装置２０５にダウンロードされるようにしてもよく、また、ＣＤ−ＲＯＭ等の記録媒体に記録されてから記録媒体のドライブを介して、主記憶装置２０５に読み込まれるようにしてもよい。
【０１２１】
（ハードディスク装置２０３について）
ハードディスク装置２０３には、コンテンツ投入装置３から投入されたコンテンツデータやダウンロード要求でのコンテンツデータの配信形態において取得したコンテンツデータを記憶するコンテンツデータ記憶領域２２８（コンテンツデータ記憶手段の一例に相当）が設けられている。
【０１２２】
（制御部２３０について）
制御部２３０は、上述のようにＣＰＵ２０２と主記憶装置２０５とから構成され、ＣＰＵ２０２が主記憶装置２０５に記憶された各種プログラム２１４〜２２０を読み出して実行することにより、端末装置２全体を統括制御し、かつ、後述する参加処理手段、メッセージ宛先判定手段、メッセージ転送手段、ストリーミング受信処理手段、ストリーミング中継手段、接続処理手段、接続先候補選択手段、接続先候補送信処理手段、接続情報通知手段、コンテンツ保持端末装置登録メッセージ生成手段、コンテンツ保持端末装置登録メッセージ送信処理手段、配信元情報判定手段、ＥＰＧ取得手段、配信元情報メッセージ送信処理手段、カタログリスト取得手段、ダウンロード処理手段、アップロード処理手段、表示制御手段、デコード手段、ストリーミング再生手段、ダウンロード操作検出手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末装置情報返信手段、コンテンツ再生手段等として機能するようになっている。
【０１２３】
なお、また、ＣＰＵ２０２がＤＨＴ処理プログラム２１５を実行することによって、参加処理手段、メッセージ宛先判定手段、メッセージ転送手段として、ＣＰＵ２０２がストリーミング制御プログラム２１６を実行することによって、ストリーミング受信処理手段、ストリーミング中継手段等として、また、ＣＰＵ２０２がトポロジー管理プログラム２１７を実行することによって、接続処理手段、接続先候補選択手段、接続先候補送信処理手段、接続情報通知手段、コンテンツ保持端末装置登録メッセージ生成手段、コンテンツ保持端末装置登録メッセージ送信処理手段、配信元情報判定手段、ＥＰＧ取得手段、また、ＣＰＵ２０２がコンテンツＤＬ／ＵＬプログラム２１８を実行することによって、配信元情報メッセージ送信処理手段、カタログリスト取得手段、ダウンロード処理手段、アップロード処理手段、ダウンロード操作検出手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末装置情報返信手段等として、また、ＣＰＵ２０２が画面制御プログラム２１９を実行することによって表示制御手段等として、更にＣＰＵ２０２が音楽デコーダプログラム２２０を実行することによってデコード手段、 ストリーミング再生手段、コンテンツ再生手段等として、それぞれ機能するようになっている。
【０１２４】
（参加処理手段について）
参加処理手段は、コンタクト先紹介装置４に対して、参加メッセージを送信すべきコンタクト先端末装置の所在情報を要求し、取得する。そして、コンタクト先端末装置に対して、参加メッセージを送信し、この参加メッセージに対してコンタクト先端末装置から送信される他の端末装置の所在情報及び識別情報とに基いて、ルーティングテーブル２２３を生成する（図５参照）。
【０１２５】
（メッセージ宛先判定手段について）
メッセージ宛先判定手段は、ネットワーク６を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自端末装置２宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、上述の接続状態情報メッセージ、接続先紹介要求メッセージ、チャンネル登録メッセージ、接続依頼メッセージ、コンテンツ保持端末装置登録メッセージ、コンテンツ保持端末装置検索メッセージ、コンテンツデータ要求メッセージなどである。
【０１２６】
受信したメッセージが自端末装置２宛であるか否かの判定は、メッセージに含まれる宛先端末ＩＤ（宛先識別情報）を取り出し、主記憶装置２０５に記憶したルーティングテーブルに基づいて判定する。すなわち、各種のメッセージをネットワークインタフェース２０４を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブル２２３に記憶した端末ＩＤとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル２２３上の端末ＩＤが自端末装置２の端末ＩＤであると判定すると、自端末装置２宛のメッセージであると判定する。
【０１２７】
（メッセージ転送手段について）
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク６を介して受信したメッセージが自端末装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、転送先の端末装置の所在情報をルーティングテーブル２２３から取り出し、転送先の端末装置へ受信したメッセージを転送する。
【０１２８】
（ストリーミング受信処理手段について）
ストリーミング受信処理手段は、ネットワークインタフェース２０４を介して階層構造でのコンテンツデータの配信形態によって上流装置、すなわち上流に論理接続したコンテンツ配信装置１又は上流に接続された端末装置２からコンテンツパケットとして送信されるコンテンツデータをチャンネル（視聴用チャンネル及びザッピング対策チャンネル）毎にストリーミング受信し、このようにストリーミング受信したコンテンツデータをチャンネル毎にリングバッファ領域２２１に順次記憶する。なお、コンテンツデータ受信処理手段や後述のコンテンツデータ中継手段は、公知のストリーミング配信用プロトコルを用いることができるほか、独自の専用プロトコルを用いるようにすることもできる。
【０１２９】
（ストリーミング再生手段について）
ストリーミング再生手段は、ネットワークインタフェース２０４を介して参加しているチャンネルの階層構造における上流の接続先装置からストリーミング受信してリングバッファ領域２２１に順次記憶されたコンテンツデータを順次再生する機能を有している。
【０１３０】
このストリーミング再生手段は、リングバッファ領域２２１に格納したコンテンツデータを順次取り出して、音源チップ２１１やビデオチップ２０９を動作させることによってこの機能を実現しており、所定のコンテンツデータ形式（たとえば、Ｗａｖｅ形式）に変換して音源チップ２１１やビデオチップ２０９へ入力し、コンテンツデータの再生を行う。
【０１３１】
また、ストリーミング再生手段は、リングバッファ領域２２１に格納されたコンテンツデータに含まれる再生開始時刻情報に基づいて、当該コンテンツデータを再生するタイミングを決定する。すなわち、再生手段は、リングバッファ領域２２１に格納されたコンテンツデータをその再生開始時刻で内蔵スピーカ２１２や内蔵ディスプレイ２１０に出力するように構成されている。
【０１３２】
（ストリーミング中継手段について）
ストリーミング中継手段は、階層構造でのコンテンツデータの配信形態における上流の接続先装置、すなわちコンテンツ配信装置１又は上流に接続された端末装置２からネットワーク６を介してストリーミング受信され、リングバッファ領域２２１に一時記憶されたコンテンツデータを順次取り出して、下流に接続された他の端末装置２へネットワーク６を介して転送する。
【０１３３】
（接続処理手段について）
接続処理手段は、端末装置２をコンテンツ配信システムＳの所望のチャンネルの階層構造へ参加させるために、チャンネル選択手段であるリモコン２０８のチャンネル選択ボタンのユーザによる操作によって選択されたチャンネルに関する接続先紹介要求をＤＨＴルーティングを用いて接続管理端末装置へ送信し、その後、接続管理端末装置から通知された接続先候補に接続する。より具体的には、接続処理手段は、参加するチャンネルのチャンネルＩＤをＥＰＧ（電子番組ガイド）から取得し、このチャンネルＩＤを宛先識別情報として、ルーティングテーブル２２３に記憶された情報に基いて、参加するチャンネルの階層構造への接続先候補に接続するための接続先紹介要求メッセージを送信する。この接続先紹介要求メッセージには、端末装置２のユーザがリモコン２０８のチャンネル選択ボタン等を操作することによって選択されるチャンネルのチャンネルＩＤ及び自端末装置２の所在情報等を含む。
【０１３４】
また、接続処理手段は、送信した接続先紹介要求メッセージに対して、接続管理端末装置からネットワーク６を介して通知されるチャンネルの接続先候補の情報、すなわち接続先候補の端末装置の所在情報であるＩＰアドレスなどの情報を受信する接続先候補を得る接続先候補取得手段としての機能を有する。
【０１３５】
更に、接続処理手段は、受信した接続先候補の情報に基づいて、その接続先候補へ接続要求メッセージを送信して接続先候補装置との論理接続を行う接続処理手段機能を有する。すなわち、接続処理手段は、接続先候補の情報に基づいて、接続先候補のＩＰアドレスを宛先とした接続要求を行い、接続先候補との論理接続を行う。このように接続先候補と接続することによって、所望のチャンネル階層構造に参加することになる。なお、このように接続した接続先候補を、上述のように接続先装置ということとする。
【０１３６】
（接続先候補選択手段について）
接続先候補選択手段は、メッセージ宛先判定手段により受信したメッセージが自端末装置２宛であり、かつ、受信したメッセージが接続先紹介要求メッセージであるとき、主記憶装置２０５の接続状態情報記憶領域に記憶された接続状態情報テーブルの接続状態情報から接続先候補を１以上選択する。
【０１３７】
（接続先候補送信処理手段について）
接続先候補送信処理手段は、接続先候補選択手段によって選択された１以上の接続先候補を、接続先紹介要求メッセージを送信した端末装置２へネットワーク６を介して送信する。
【０１３８】
（接続情報通知手段について）
接続情報通知手段は、接続先候補に接続したとき、ＤＨＴルーティングを用い接続管理端末装置に対して、自端末装置２及び自端末装置２が接続した接続先候補の所在情報、自端末装置２の下流に接続することができる端末装置２の数である許容下流数を通知するために接続状態情報メッセージを送信する。この接続状態情報メッセージは、ＤＨＴルーティングを用い接続管理端末装置へ送信するため、接続した階層構造のチャンネルに対応するチャンネルＩＤを宛先識別情報とし、ルーティングテーブル２２３に基づいて送信することになる。
【０１３９】
また、接続情報通知処理手段は、接続先候補に接続した後、ＤＨＴルーティングを用い接続管理端末装置に対して、接続状態情報メッセージを定期的に送信するようにしている。
【０１４０】
（コンテンツ保持端末装置登録メッセージ生成手段について）
コンテンツ保持端末装置登録メッセージ生成手段は、コンテンツ投入装置３からコンテンツデータを受信したとき、受信したコンテンツデータをハードディスク装置２０３のコンテンツデータ記憶領域に記憶する。又、コンテンツデータのコンテンツの名称を所定のハッシュ関数によって演算したコンテンツＩＤを宛先識別情報とし、自端末装置の端末ＩＤ及びＩＰアドレスを含むコンテンツ保持端末装置登録メッセージを生成する。
【０１４１】
（コンテンツ保持端末装置登録メッセージ送信処理手段について）
コンテンツ保持端末装置登録メッセージ送信処理手段は、自端末装置２がコンテンツデータを保持することになりコンテンツ保持端末装置となったことを当該コンテンツデータのルート端末装置となる端末装置に知らせるためにコンテンツ保持端末装置登録メッセージをＤＨＴルーティングを用いて送信する。このコンテンツ保持端末装置登録メッセージには、コンテンツ投入装置３から投入されて保持することになったコンテンツデータに対応するコンテンツＩＤ、さらに自端末装置２の所在情報を含むメッセージである。コンテンツ保持端末装置登録メッセージ送信処理手段は、ＤＨＴルーティングを用いてルート端末装置へ送信するために、保持することになったコンテンツデータに対応するコンテンツＩＤを宛先識別情報とし、ルーティングテーブル２２３に基づいて送信することになる。
【０１４２】
（配信元情報判定手段について）
配信元情報判定手段は、受信したメッセージがコンテンツ保持端末装置の所在情報を検索するコンテンツ保持端末装置検索メッセージであるとき、主記憶装置２０５に記憶されたインデックステーブル２２２の中に、コンテンツ保持端末装置検索メッセージに含まれるコンテンツＩＤと一致するコンテンツＩＤがあるか否かを判定する。すなわち、配信元情報判定手段は、インデックステーブル２２２にコンテンツ保持端末装置検索メッセージの検索対象のコンテンツ保持端末装置の所在情報があるか否かを判定する。
【０１４３】
（配信元情報メッセージ送信処理手段について）
配信元情報メッセージ送信処理手段は、配信元情報判定手段によりインデックステーブル２２２にコンテンツ保持端末装置検索メッセージの検索対象のコンテンツ保持端末装置の所在情報があると判定されると、インデックステーブル２２２から検索対象のコンテンツ保持端末装置の所在情報を取り出して配信元情報メッセージを生成し、コンテンツ保持端末装置検索メッセージを送信した端末装置へこの配信元情報メッセージを送信する。この配信元情報メッセージには、１以上のコンテンツ保持端末装置の所在情報が含まれており、これによりコンテンツ保持端末装置検索メッセージを送信した端末装置は、コンテンツ保持端末装置から所望のコンテンツデータを取得することが可能になる。
【０１４４】
（コンテンツデータ要求メッセージ送信処理手段について）
コンテンツデータ要求メッセージ送信処理手段は、配信元情報メッセージを受信した後、当該配信元情報メッセージに記載されている（含まれている）コンテンツ保持端末装置に、コンテンツデータを要求するコンテンツデータ要求メッセージを送信する。
【０１４５】
（ＥＰＧ取得手段について）
ＥＰＧ取得手段は、コンタクト先紹介装置４から送信される電子番組ガイド（ＥＰＧ）を受信する機能を有している。コンタクト先紹介装置４から送信される電子番組ガイドは、ストリーミング配信要求をすることができるチャンネルの番組内容とチャンネルＩＤとが関連付けられた情報であり、自端末装置２がコンタクト先紹介装置４へ電子番組ガイドの送信要求を行うことによって、コンタクト先紹介装置４から送信されるものである。
【０１４６】
（カタログリスト取得手段について）
カタログリスト取得手段は、コンテンツ投入装置３から送信されるカタログリストを受信する機能を有している。コンテンツ投入装置３から送信される識別情報リストであるカタログリストは、ダウンロード要求をすることができるコンテンツデータの名称とコンテンツＩＤとが関連付けられた情報であり、自端末装置２がコンテンツ投入装置３へカタログリストの送信要求を行うことによって、コンテンツ投入装置３から送信されるものである。
【０１４７】
（ダウンロード操作検出手段について）
ダウンロード操作検出手段は、コンテンツデータのダウンロード要求の操作を検出する機能を有する。例えば、図２０に示すようにダウンロード要求によるコンテンツデータの配信形態においてダウンロード可能なコンテンツデータが内蔵ディスプレイ２１０の所定領域２４に一覧表示されている状態で、ユーザがリモコン２０８を操作して、ダウンロードするコンテンツデータを指定枠２５により指定してダウンロードボタン２６を選択したことを検出することによって、コンテンツデータのダウンロード要求の操作を検出する。なお、内蔵ディスプレイ２１０の所定領域２４に一覧表示される情報は、カタログリスト取得手段により取得された情報である。
【０１４８】
（ダウンロード処理手段について）
ダウンロード処理手段は、識別情報取得手段によって取得されたコンテンツデータの識別情報に基づいて、ダウンロード要求されたコンテンツデータをコンテンツ配信システムＳを構成する端末装置２からダウンロードする機能を有しており、ダウンロード先検索手段、ダウンロード送信要求手段、ダウンロードデータ受信処理手段などから構成されている。
【０１４９】
ダウンロード先検索手段は、カタログリスト取得手段によって取得されたコンテンツデータのコンテンツＩＤに基づいて、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置を検索する。コンテンツ保持端末装置の検索は、カタログリスト取得手段によって取得されたカタログリストに含まれるコンテンツＩＤのうち、ダウンロード操作検出手段により検出したダウンロード対象のコンテンツデータに対応するコンテンツＩＤを宛先識別情報としたコンテンツ検索メッセージを生成し、そのコンテンツＩＤと同じエリアの端末ＩＤを持つ端末装置の所在情報をルーティングテーブル２２３から取り出して、その端末装置へコンテンツ保持端末装置検索メッセージを送信することによって行う。このコンテンツ保持端末装置検索メッセージに対して、当該コンテンツ保持端末装置検索メッセージで指定したコンテンツＩＤのコンテンツデータを保持するコンテンツ保持端末装置の所在情報がルート端末装置から送信される。このようにして、ダウンロード先検索手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置を検索する。
【０１５０】
また、ダウンロード送信要求手段は、ダウンロード先検索手段によって検索されたコンテンツ保持端末装置に、ダウンロード要求されたコンテンツデータの送信をネットワーク６を介して要求（以下、「ダウンロード送信要求」と呼ぶ。）する。このダウンロード送信要求は、コンテンツ保持端末装置の所在情報を宛先として、ダウンロード要求に対応するコンテンツデータのコンテンツＩＤを設定するものである。なお、ダウンロード先検索手段によって検索されたコンテンツ保持端末装置が複数ある場合には、コンテンツ保持端末装置の一つに対してダウンロード送信要求が行われる。
【０１５１】
また、ダウンロードデータ受信処理手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置からダウンロード要求されたコンテンツデータをネットワーク６を介して受信する。コンテンツ保持端末装置から送信されるコンテンツデータは、階層構造でのコンテンツデータの配信形態のようなストリーミング形式ではなく、ダウンロード形式のデータであるが、ストリーミング形式とすることも可能である。
【０１５２】
ダウンロード受信処理手段により受信したコンテンツデータは、制御部２３０によって、ハードディスク装置２０３のコンテンツデータ記憶領域に記憶される。
【０１５３】
（アップロード処理手段について）
アップロード処理手段は、コンテンツ配信システムＳに参加している他の端末装置２からダウンロード要求があると、このダウンロード要求に対応するコンテンツデータをコンテンツデータ記憶手段から取り出して、ダウンロード要求を行った他の端末装置２へ送信する機能を有する。
【０１５４】
（表示制御手段について）
表示制御手段は、ビデオチップ２０９及び内蔵ディスプレイ２１０を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、内蔵ディスプレイ２１０にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
【０１５５】
（デコード手段について）
デコード手段は、他の端末装置２から送信されるコンテンツデータ等を内蔵ディスプレイ２１０に表示し、内蔵スピーカ２１２から出力するためにデコードする。すなわち、他の端末装置２から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばＡＳＦ、ＷＭＡ、ＷＭＶ等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータを内蔵ディスプレイ２１０や内蔵スピーカ２１２から出力できるようにデコードする。
【０１５６】
（コンテンツ保持端末装置情報選択手段について）
コンテンツ保持端末装置情報選択手段は、メッセージ宛先判定手段によりネットワーク６を介して受信したメッセージが自端末装置２宛であり、かつコンテンツ検索メッセージであると判定すると、インデックステーブル２２２からコンテンツ検索メッセージが対象とするコンテンツＩＤのコンテンツデータを保持するコンテンツ保持端末装置の所在情報を選択する。なお、インデックステーブル２２２にコンテンツ保持端末装置の所在情報が複数ある場合には、それらを全部或いはいくつか選択する。
【０１５７】
（コンテンツ保持端末装置情報返信手段について）
コンテンツ保持端末装置情報返信手段は、コンテンツ保持端末装置情報選択手段によって選択されたコンテンツ保持端末装置の所在情報を、リクエスト端末装置へネットワーク６を介して返信する。
【０１５８】
（コンテンツ再生手段について）
コンテンツ再生手段は、ハードディスク装置２０３に記憶したコンテンツデータを取り出して再生するものであり、このとき制御部２３０は、ストリーミング制御プログラム２１６に基づいてビデオチップ２０９及び音源チップ２１１を動作させることによりコンテンツデータが再生される。
【０１５９】
［４．コンテンツ配信システムＳの動作］
以下、コンテンツ配信装置１及び端末装置２の詳細動作について、フローチャートを用いて更に具体的に説明する。
【０１６０】
（コンテンツ配信装置１の処理フローの説明）
まず、コンテンツ配信装置１の更に具体的な動作について、図１４を参照して説明する。図１４は、コンテンツ配信装置１における処理全体を示すフローチャートである。なお、以下の各処理は、コンテンツ配信装置１の制御部１３０が上述した各手段として機能することによって実行されるものである。また、コンテンツ配信装置１は、端末装置２における後述の動作処理と同様の動作処理も行うことができるが、その構成及び動作については、後述で詳説する端末装置２の動作と同様であるため、端末装置２と同様の部分については重複説明を避けるため省略している。
【０１６１】
まず、図１４に示すように、コンテンツ配信装置１の電源がＯＮされると、コンテンツ配信装置１において、ＣＰＵ１０２は、主記憶装置１０５やハードディスク装置１０３のアクセス許可、作業領域を初期化等の初期設定処理を実行し（ステップＳ１００）、各プログラム１１５〜１１９，１２１をＣＰＵ１０２による実行状態とし、制御部１３０としての機能を動作させた後、ステップＳ１０１に処理を移す。
【０１６２】
ステップＳ１０１において、コンテンツ配信装置１の制御部１３０は、コンタクト先紹介装置４へネットワーク６を介して、コンタクト先情報を要求する。このコンタクト先情報の要求に対して、コンタクト先紹介装置４からネットワーク６を介して送信されてくるコンタクト先情報をネットワークインタフェース１０４を介して受信する（ステップＳ１０２）。
【０１６３】
受信したコンタクト先情報には、コンタクト先の端末装置の所在情報が含まれており、制御部１３０は、受信したコンタクト先情報に含まれるコンタクト先の端末装置に対して参加メッセージをネットワーク６を介して送信する（ステップＳ１０３）。この参加メッセージは、自端末装置の識別情報を宛先識別情報としている。
【０１６４】
このように送信した参加メッセージは、コンタクト先の端末装置２から順次転送され、転送できない位置の端末装置２まで辿り着く。そして、参加メッセージを受信した複数の端末装置から各レベル毎のテーブル情報を受信する（ステップＳ１０４）。制御部１３０は、このように受信した複数のテーブル情報に基づいて、ルーティングテーブルを生成し（ステップＳ１０５）、処理をステップＳ１０６に移行する。
【０１６５】
ステップＳ１０６において、制御部１３０は、自コンテンツ配信装置１がコンテンツデータをストリーミング配信するチャンネルを示すチャンネルＩＤを宛先識別情報とし、自コンテンツ配信装置１の所在情報を含むチャンネル登録メッセージをルーティングテーブル記憶領域に記憶したルーティングテーブル１２２に基づいて送信して、処理をステップＳ１０７に移行する。
【０１６６】
ステップＳ１０７において、制御部１３０は、端末装置２から自コンテンツ配信装置１のチャンネルの階層構造への接続を要求する接続依頼メッセージを受信したか否かを判定する。この処理において、接続依頼メッセージを受信したと判定すると（ステップＳ１０７：ＹＥＳ）、制御部１３０は、接続先紹介要求メッセージを送信した端末装置２を下流の装置としてこの端末装置２と論理接続を行い（ステップＳ１０８）、以降制御部１３０は、当該論理接続した端末装置へコンテンツデータの配信を行い（ステップＳ１０９）、処理をステップＳ１１０に移行する。一方、接続依頼メッセージを受信していないと判定すると（ステップＳ１０７：ＮＯ）、制御部１３０は、処理をステップＳ１１０に移行する。
【０１６７】
ステップＳ１１０の処理において、制御部１３０は、図示しないタイマにより、一定時間経過しているか否かを判定する。この処理において、一定時間経過していると判定すると（ステップＳ１１０：ＹＥＳ）、上述のタイマをリセットして再度計時を開始し、処理をステップＳ１０６へ移行し、一定時間経過していないと判定すると（ステップＳ１１０：ＮＯ）、処理をステップＳ１１１に移行する。
【０１６８】
ステップＳ１１１において、制御部１３０は、電源がオフ（ＯＦＦ）であるか否かを判断し、電源がオフであると判定した場合には（ステップＳ１１１：ＹＥＳ）、本処理を終了する一方、電源がオフではないと判定した場合には（ステップＳ１１１：ＮＯ）、ステップＳ１０７から繰り返し処理を実行することとなる。
【０１６９】
以上のように、本実施形態におけるコンテンツ配信装置１においては、コンテンツ配信システムＳに参加している端末装置２のうち、コンテンツ配信装置１が配信するチャンネルの階層構造を管理する管理端末装置となる端末装置２に、コンテンツ配信装置１が配信するチャンネルＩＤ及びコンテンツ配信装置１の所在情報等を登録し、その後管理端末装置からコンテンツ配信装置１が接続先候補であるとして通知された端末装置から接続依頼があると、下流の装置として接続するようにしており、コンテンツ配信システムＳを端末装置にコンテンツ配信装置１が配信するチャンネルの階層構造を管理させることができるため、従来であれば別途必要であった接続先管理サーバを設ける必要がない。
【０１７０】
（端末装置２の処理フローの説明）
次に、端末装置２の更に具体的な動作について、図１５〜図１９を参照して説明する。図１５〜図１９は端末装置２における処理全体を示すフローチャートである。なお、以下の各処理は、端末装置２の制御部２３０が上述した各手段として機能することによって実行されるものである。
【０１７１】
図１５に示すように、端末装置２の電源がＯＮになると、端末装置２のＣＰＵ２０２は、主記憶装置２０５やハードディスク装置２０３のアクセス許可、作業領域確保を初期化等の初期設定動作を実行し、各プログラム２１４〜２２０をＣＰＵ２０２による実行状態とし、制御部２３０としての機能を動作させた後（ステップＳ２００）、ステップＳ２０１に処理を移す。
【０１７２】
ステップＳ２０１において、制御部２３０は、コンテンツ配信システムＳへの参加処理を行った後、ステップＳ２０２に処理を移す。このステップＳ２０１の処理は、図1６におけるＳ２２０〜Ｓ２２６の処理であり、後述で詳説する。
【０１７３】
ステップＳ２０２において、制御部２３０は、コンタクト先紹介装置４に対し、ネットワーク６を介して、コンテンツ配信装置１が配信するチャンネルを選択するための電子番組ガイドを要求する。その後、この要求に対してコンテンツ投入装置３が送信する電子番組ガイドを内蔵ディスプレイ２１０に表示する（例えば、図２０参照）。
【０１７４】
内蔵ディスプレイ２１０に電子番組ガイドを表示した後、制御部２３０は、ユーザからチャンネル選択指示があったか否かを判定する（ステップＳ２０３）。この処理において、ユーザからチャンネル選択指示があったとは、例えば、端末装置２のユーザがリモコン２０８のチャンネル選択ボタン等を操作することによって視聴を要求するチャンネルが選択されたことをいう。
【０１７５】
この処理において、ユーザからのチャンネル選択指示があったと判定すると（ステップＳ２０３：ＹＥＳ）、制御部２３０は、ユーザによって選択されたチャンネルの階層構造への参加処理を行なう（ステップＳ２０４）。このステップＳ２０４の処理は、図1７におけるＳ２３０〜Ｓ２３６の処理であり、後述で詳説する。
【０１７６】
一方、ユーザからのチャンネル選択指示がないと判定すると（ステップＳ２０３：ＮＯ）、制御部２３０は、ユーザからのダウンロード要求があるか否かを判定する（ステップＳ２０５）。この処理において、ユーザからのダウンロード要求とは、例えば、図２０に示すように、一覧表示されている状態で、ユーザが一覧表の中から特定のコンテンツデータをリモコン２０８を操作して指定することを意味する。
【０１７７】
この処理において、ユーザからのダウンロード要求があると判定すると（ステップＳ２０５：ＹＥＳ）、制御部２３０は、ユーザからのダウンロード要求のあったコンテンツデータを他の端末装置２からダウンロードする処理を行なう（ステップＳ２０６）。このステップＳ２０５の処理は、図1８におけるＳ２４０〜Ｓ２４３の処理であり、後述で詳説する。
【０１７８】
一方、ユーザからのダウンロード要求がないと判定すると（ステップＳ２０５：ＮＯ）、制御部２３０は、投入コンテンツデータを受信したか否かを判定する（ステップＳ２０７）。ここで、投入コンテンツデータとは、コンテンツ投入装置３から投入されるコンテンツデータである。
【０１７９】
この処理において、投入コンテンツデータを受信したと判定すると（ステップＳ２０７：ＹＥＳ）、制御部２３０は、投入コンテンツデータをハードディスク装置２０３のコンテンツデータ記憶領域に記憶する（ステップＳ２０８）。その後、制御部２３０は、ハードディスク装置２０３に記憶したコンテンツデータをコンテンツ配信システムＳに参加している端末装置２からダウンロードすることができるように、コンテンツ保持端末装置登録メッセージを送信する（ステップＳ２０９）。
【０１８０】
ステップＳ２０７において、投入コンテンツデータを受信していないと判定すると（ステップＳ２０７：ＮＯ）、制御部２３０は、コンテンツ保持端末装置として自端末装置２が保持するコンテンツデータのダウンロード要求を他の端末装置２から受信したか否かを判定する（ステップＳ２１０）。
【０１８１】
この処理において、他の端末装置２からダウンロード要求を受信したと判定すると（ステップＳ２１０：ＹＥＳ）、制御部２３０は、ダウンロード要求に応じたコンテンツデータをハードディスク装置２０３から取り出し、ダウンロード要求を行なった他の端末装置２へ送信する（ステップＳ２１１）。一方、他の端末装置２からダウンロード要求を受信していないと判定すると（ステップＳ２１０：ＮＯ）、制御部２３０は、上流装置として接続要求を受信したか否かを判定する（ステップＳ２１２）。ここで、上流装置として接続要求とは、自端末装置２が接続先候補として選ばれ、他の端末装置２が自端末装置２の下流に接続することを要求するものである。
【０１８２】
この処理において、上流装置として接続要求を受信したと判定すると（ステップＳ２１２：ＹＥＳ）、制御部２３０は、接続を要求した端末装置を自端末装置２の下流装置として接続する（ステップＳ２１３）。一方、上流装置として接続要求を受信していないと判定すると（ステップＳ２１２：ＮＯ）、制御部２３０は、ＤＨＴメッセージを受信したか否かを判定する（ステップＳ２１４）。ここで、ＤＨＴメッセージとは、コンテンツＩＤ、チャンネルＩＤ，或いは端末ＩＤなどを宛先識別情報としてＤＨＴルーティングされるメッセージを意味する。
【０１８３】
この処理において、制御部２３０は、ＤＨＴメッセージを受信したと判定すると（ステップＳ２１４：ＹＥＳ）、制御部２３０は、受信したメッセージの処理を行なう（ステップＳ２１５）。このステップＳ２１５の処理は、図1９におけるＳ２５０〜Ｓ２６３の処理であり、後述で詳説する。
【０１８４】
ステップＳ２１４においてＤＨＴメッセージを受信していないと判定したとき（ステップＳ２１４：ＮＯ）、或いはＳ２０４、Ｓ２０６、Ｓ２０９、Ｓ２１１、Ｓ２１３、Ｓ２１５の処理が終了したとき、制御部２３０は、チャンネルの階層構造へ参加中であるか否かを判定する（ステップＳ２１６）。
【０１８５】
この処理において、制御部２３０は、チャンネルの階層構造へ参加中であると判定すると（ステップＳ２１６：ＹＥＳ）、図示しないタイマにより、一定時間経過しているか否かを判定する（ステップＳ２１７）。この処理において、一定時間経過していると判定すると（ステップＳ２１７：ＹＥＳ）、上述のタイマをリセットして再度計時を開始し、接続状態情報メッセージをＤＨＴルーティングを用いて接続管理端末装置へ送信する（ステップＳ２１８）。
【０１８６】
ステップＳ２１６においてチャンネルの階層構造へ参加中ではないと判定したとき（ステップＳ２１６：ＮＯ）、Ｓ２１７において一定時間経過していないと判定したとき（ステップＳ２１７：ＮＯ）、或いはステップＳ２１８の処理が終了したとき、制御部２３０は、電源がオフであるか否かを判断する（ステップＳ２１９）。制御部２３０は、電源がオフであると判定した場合には（ステップＳ２１９：ＹＥＳ）、本処理を終了する一方、電源がオフではないと判定した場合には（ステップＳ２１９：ＮＯ）、ステップＳ２０３から繰り返し処理を実行することとなる。
【０１８７】
次に、Ｓ２０４におけるコンテンツ配信システムＳへの参加処理について図１６を参照して具体的に説明する。
【０１８８】
まず、端末装置２の制御部２３０は、コンタクト先紹介装置４へネットワーク６を介して、コンタクト先情報を要求する（ステップＳ２２０）。このコンタクト先情報の要求に対して、コンタクト先紹介装置４からネットワーク６を介して送信されてくるコンタクト先情報をネットワークインタフェース２０４を介して受信する（ステップＳ２２１）。
【０１８９】
受信したコンタクト先情報には、コンタクト先の端末装置の所在情報が含まれており、制御部２３０は、受信したコンタクト先情報に含まれるコンタクト先の端末装置に対して参加メッセージをネットワーク６を介して送信する（ステップＳ２２２）。この参加メッセージは、自端末装置の識別情報を宛先識別情報としている。
【０１９０】
このように送信した参加メッセージは、コンタクト先の端末装置２から順次転送され、転送できない位置の端末装置２まで辿り着く。制御部２３０は、参加メッセージを受信した複数の端末装置から各レベル毎のテーブル情報を受信し（ステップＳ２２３）、このように受信した複数のテーブル情報に基づいて、ルーティングテーブル２２３を生成する（ステップＳ２２４）。
【０１９１】
その後、制御部２３０は、コンテンツ投入装置３へネットワーク６を介して、カタログリストを要求する（ステップＳ２２５）。この要求に対して、カタログリストがコンテンツ投入装置３から送信されると、制御部２３０は、それを受信し、ハードディスク装置２０３に記憶して（ステップＳ２２６）、コンテンツ配信システムＳへの参加処理を終了する。
【０１９２】
次に、Ｓ２０４における階層構造への接続処理について図１７を参照して具体的に説明する。
【０１９３】
まず、制御部２３０は、ステップＳ２０３においてユーザにより選択指示されたチャンネルに対する接続先紹介要求メッセージを送信する（ステップＳ２３０）。この接続先紹介要求メッセージは、ユーザにより選択指示されたチャンネルのチャンネルＩＤが宛先識別情報として設定されるものであり、設定されたチャンネルＩＤを有するチャンネルの接続管理端末装置へＤＨＴルーティングにより送信される。そして、制御部２３０は、この接続先紹介要求メッセージに対して、選択されたチャンネルの接続管理端末装置から接続先候補の情報を受信する（ステップＳ２３１）。なお、このチャンネルＩＤは、電子番組ガイドにその情報が含まれており、ユーザにより選択指示の際に電子番組ガイドから取り出されるものである。
【０１９４】
次に、制御部２３０は、接続管理端末装置から取得した接続先候補への接続要求を行ない、この接続先候補に接続する（ステップＳ２３２）。このように上流装置と接続すると、上流装置からコンテンツデータがストリーミング配信されるので、制御部２３０は、上流装置からのコンテンツデータをストリーミング受信及びストリーミング再生を行なう（ステップＳ２３３）。また、自端末装置２の下流に装置が接続されているときには、制御部２３０は、ストリーミング受信したコンテンツデータを下流の装置にストリーミング中継する。
【０１９５】
さらに、制御部２３０は、接続した接続先候補の所在情報、自端末装置の所在情報及び接続した階層構造のチャンネルＩＤなどを含む接続状態情報メッセージをルーティングテーブル２２３に基づいて接続管理端末装置へ送信し（ステップＳ２３４）、チャンネルの階層構造への参加処理を終了する。
【０１９６】
このように、制御部２３０は、所望のチャンネルの接続先候補に接続した後、チャンネルＩＤを宛先識別情報として、接続状態情報メッセージを定期的にルーティングテーブル２２３に基づいて送信するようにしている。
【０１９７】
次に、Ｓ２０６におけるダウンロード処理について図１８を参照して具体的に説明する。
【０１９８】
まず、制御部２３０は、ユーザからのダウンロード要求があったコンテンツデータを保持する端末装置２の所在情報を検索するために、コンテンツ保持端末装置検索メッセージを生成して送信する（ステップＳ２４０）。このコンテンツ保持端末装置検索メッセージには、自端末装置の所在情報が含まれる。また、ユーザからのダウンロード要求があったコンテンツデータのコンテンツＩＤをカタログリストから取り出して、このコンテンツＩＤをコンテンツ保持端末装置検索メッセージの宛先識別情報とし、ルーティングテーブル２２３に基づいて、当該メッセージを送信する。
【０１９９】
ステップＳ２４０において送信したコンテンツ保持端末装置検索メッセージは、ＤＨＴルーティングにより当該メッセージに含まれるコンテンツＩＤのルート端末装置に辿り着く。このルート端末装置は、このメッセージを受信すると、このコンテンツＩＤに対応するコンテンツデータを保持するコンテンツ保持端末装置の所在情報をインデックステーブル２２２から取り出して、コンテンツ保持端末装置検索メッセージを送信した端末装置に返信する。制御部２３０は、ルート端末装置からネットワーク６を介してコンテンツ保持端末装置の所在情報を取得する（ステップＳ２４１）。
【０２００】
次に、取得したコンテンツ保持端末装置の所在情報に基づいて、制御部２３０は、このコンテンツ保持端末装置に対して、直接ダウンロードを送信するように要求する（ステップＳ２４２）。ダウンロード要求を受けたコンテンツ保持端末装置は、コンテンツデータ記憶領域から対応するコンテンツデータを取り出して、ダウンロード要求を行なった端末装置へ送信する。制御部２３０は、ネットワークインタフェース２０４を介して、コンテンツ保持端末装置から送信されるコンテンツデータをダウンロードして（ステップＳ２４３）、ダウンロード処理を終了する。
【０２０１】
次に、Ｓ２１５における受信メッセージ処理について図１９を参照して具体的に説明する。
【０２０２】
受信メッセージ処理が開始されると、制御部２３０は、受信したメッセージがコンテンツ保持端末装置登録メッセージであるか否かを判定する（ステップＳ２５０）。コンテンツ保持端末装置登録メッセージであると判定すると（ステップＳ２５０：ＹＥＳ）、制御部２３０は、このメッセージに含まれるコンテンツＩＤ及びコンテンツ保持端末装置の所在情報を取り出して、インデックステーブル２２２に登録して（ステップＳ２５１）、処理をステップＳ２５２に移行する。
【０２０３】
ステップＳ２５２において、制御部２３０は、自端末装置２がルート端末装置であるか否かを判定する。端末装置２がルート端末装置であるか否かは、受信したメッセージの宛先識別情報とルーティングテーブル２２３とに基づいて判断される。
【０２０４】
この処理において、自端末装置２がルート端末装置でないと判定すると（ステップＳ２５２：ＮＯ）、制御部２３０は、ルーティングテーブル２２３に基づいてコンテンツ保持端末装置登録メッセージを他の端末装置２へ転送する（ステップＳ２５３）。一方、自端末装置２がルート端末装置であると判定すると（ステップＳ２５２：ＹＥＳ）、制御部２３０は、ステップＳ２５３の処理は行わない。
【０２０５】
ステップＳ２５０において、受信したメッセージがコンテンツ保持端末装置登録メッセージではないと判定すると（ステップＳ２５０：ＮＯ）、制御部２３０は、受信したメッセージがコンテンツ保持端末装置検索メッセージであるか否かを判定する（ステップＳ２５４）。
【０２０６】
この処理において、受信したメッセージがコンテンツ保持端末装置検索メッセージであると判定すると（ステップＳ２５４：ＹＥＳ）、制御部２３０は、インデックステーブル２２２にこのメッセージの検索対象であるコンテンツデータを保持するコンテンツ保持端末装置の所在情報があるか否かを判定する。この判定の結果、コンテンツ保持端末装置の所在情報がインデックステーブル２２２にあるときには、制御部２３０は、インデックステーブル２２２からコンテンツ保持端末装置の所在情報を取り出して、メッセージの送信元の端末装置２へ通知して（ステップＳ２５５）、処理をステップＳ２５２へ移行する。一方で、コンテンツ保持端末装置の所在情報がインデックステーブル２２２にないときには、制御部２３０は、コンテンツ保持端末装置の所在情報の通知を行なわずに、処理をステップＳ２５２へ移行する。
【０２０７】
ステップＳ２５４において、受信したメッセージがコンテンツ保持端末装置検索メッセージではないと判定すると（ステップＳ２５４：ＮＯ）、制御部２３０は、受信したメッセージの宛先識別情報に対して、自端末装置２がルート端末装置であるか否かを判定する（ステップＳ２５６）。すなわち、受信したメッセージの送信目的先の端末装置２が自端末装置２であるか否かを判定するものであり、受信したメッセージの宛先識別情報とルーティングテーブル２２３とに基づいて判定する。具体的には、メッセージの宛先識別情報との差が最も小さい装置ＩＤが自端末装置２に割り当てられているときに、受信したメッセージの送信目的先の端末装置２が自端末装置２であると判定する。
【０２０８】
この処理において、受信したメッセージの宛先識別情報が自端末装置に最も近いわけではないと判定すると（ステップＳ２５６：ＮＯ）、制御部２３０は、処理をステップＳ２５３へ移行する。一方、受信したメッセージの宛先識別情報が自端末装置に最も近いと判定すると（ステップＳ２５６：ＹＥＳ）、制御部２３０は、処理をステップＳ２５７へ移行する。
【０２０９】
ステップＳ２５７において、制御部２３０は、受信したメッセージがチャンネル登録メッセージであるか否かを判定する（ステップＳ２５７）。この処理において、受信したメッセージがチャンネル登録メッセージであると判定すると（ステップＳ２５７：ＹＥＳ）、制御部２３０は、チャンネル登録メッセージに含まれるチャンネルＩＤに対する接続状態情報テーブルを新規に生成して主記憶装置２０５の接続状態情報記憶領域に記憶する（ステップＳ２５８）。一方、受信したメッセージがチャンネル登録メッセージではないと判定すると（ステップＳ２５７：ＮＯ）、制御部２３０は、受信したメッセージが接続先紹介要求メッセージであるか否かを判定する（ステップＳ２５９）。
【０２１０】
この処理において、受信したメッセージが接続先紹介要求メッセージであると判定すると（ステップＳ２５９：ＹＥＳ）、制御部２３０は、主記憶装置１０５に記憶した接続状態情報テーブルから選択した接続先候補を、このメッセージを送信した端末装置２に対して返信する（ステップＳ２６０）。ここで、接続先候補を選択する接続状態情報テーブルは、接続先紹介要求メッセージに含まれるチャンネルＩＤに対応する接続状態情報テーブルを選択することになる。このようにして、自端末装置２が接続管理端末装置であるときに、管理対象のチャンネルの階層構造の状態に基づいて、その接続先をチャンネルの階層構造に参加しようとする端末装置２へ通知することができる。
【０２１１】
一方、受信したメッセージが接続先紹介要求メッセージでないと判定すると（ステップＳ２５９：ＮＯ）、制御部２３０は、受信したメッセージが接続状態情報メッセージであるか否かを判定する（ステップＳ２６２）。この処理において、受信したメッセージが接続状態情報メッセージであると判定すると（ステップＳ２６２：ＹＥＳ）、制御部２３０は、接続状態情報メッセージに含まれるチャンネルＩＤに対応する接続状態情報テーブルを取り出し、この接続状態情報メッセージに含まれる情報を取り出した接続状態情報テーブルに追加又は更新する（ステップＳ２６３）。このようにして、自端末装置２が接続管理端末装置であるときに、管理対象のチャンネルの階層構造の状態を管理することができるようにしている。
【０２１２】
自端末装置がルート端末装置であるとき（ステップＳ２５２：ＹＥＳ）、ステップＳ２５３,Ｓ２５８，Ｓ２６０，Ｓ２６３の処理が終了したとき、或いは受信したメッセージが接続状態情報メッセージではないと判定したとき（ステップＳ２６２：ＮＯ）、制御部２３０は、受信メッセージの処理を終了する。
【０２１３】
以上のように、本実施形態の端末装置２によれば、チャンネル識別情報と所定の関係を有する装置識別情報が割り当てられる端末装置が、チャンネル識別情報に対応するチャンネルの階層構造の状態を管理する装置としても動作することになる。コンテンツ配信装置及び端末装置の接続状態の情報をこれらの装置から受信して記憶し、自端末装置宛のメッセージが接続先紹介要求メッセージであると判定されると、記憶している接続状態情報から接続先候補を選択するので、コンテンツ配信装置及び端末装置の他に別途接続先管理サーバを設けることなく、ツリー状やチェーン状の階層構造を有するコンテンツ配信システムを提供することができる。
【０２１４】
なお、上記実施形態においては、コンテンツ配信装置１や端末装置２の所在情報として、ＩＰアドレスを例に挙げて説明したがこれに限られず、例えば、ＩＰアドレスとポート番号の組み合わせを所在情報としてもよく、ネットワーク６上のコンテンツ配信装置１や端末装置２にアクセスすることができる情報であればよい。
【０２１５】
また、チャンネル登録メッセージにはチャンネルＩＤとコンテンツ配信装置の所在情報とを含めるようにしたが、コンテンツ配信装置の所在情報に代えて、コンテンツ配信装置の装置ＩＤを含むようにしてもよい。さらに、階層構造に参加した接続状態情報の通知には、参加しているチャンネルのチャンネルＩＤと端末装置の所在情報を含めることとしたが、端末装置の所在情報に代えて、端末装置の装置ＩＤを含むようにしてもよい。この場合、接続管理端末装置は、接続状態情報として端末装置やコンテンツ配信装置の装置ＩＤを接続状態情報テーブルに登録する。そして、接続要求端末装置からの接続先紹介要求メッセージに対して、接続先候補の装置ＩＤを接続要求端末装置へ通知する。接続要求端末装置は接続先候補の装置ＩＤに基づいて接続先候補へ接続を要求することになる。このように、チャンネルの階層構造へ参加する際、装置ＩＤによりＤＨＴルーティングにより接続先候補に接続を要求することができることから、ＩＰアドレスが変更となった場合でもＤＨＴルーティングにより接続先候補に接続することが可能性が高くなる。なお、チャンネル登録メッセージや接続状態情報の通知にチャンネルＩＤ、コンテンツ配信装置の端末ＩＤ及び所在情報が含まれるようにしてもよく、この場合、接続管理端末装置は、接続要求端末装置に対してコンテンツ配信装置の端末ＩＤ及び所在情報を通知し、接続要求端末装置は端末ＩＤ及び所在情報のいずれかに基づいて接続先候補との接続を行なうことができる。
【０２１６】
また、コンテンツ保持端末装置登録メッセージやインデックステーブルには、コンテンツ保持端末装置の所在情報に代えて、コンテンツ保持端末装置の端末ＩＤをコンテンツ保持端末装置を特定する情報とするようにしてもよい。この場合、ルート端末装置は、コンテンツ保持端末装置登録メッセージに基づいて、インデックステーブルにコンテンツ保持端末装置の装置ＩＤを登録する。そして、リクエスト端末装置からのコンテンツ保持端末装置検索メッセージに対して、コンテンツ保持端末装置の装置ＩＤを通知する。リクエスト端末装置はコンテンツ保持端末装置の装置ＩＤに基づいてコンテンツデータのダウンロードを要求することになる。このように、ダウンロードを要求する際、装置ＩＤによりＤＨＴルーティングによりコンテンツ保持端末装置に対して要求することができることから、ＩＰアドレスが変更となった場合でもＤＨＴルーティングにより接続先候補に接続することが可能性が高くなる。なお、コンテンツ保持端末装置登録メッセージやインデックステーブルにコンテンツ保持端末装置の端末ＩＤ及び所在情報が含まれるようにしてもよく、この場合、ルート端末装置は、リクエスト端末装置に対してコンテンツ保持端末装置の端末ＩＤ及び所在情報を通知し、リクエスト端末装置は端末ＩＤ及び所在情報のいずれかに基づいてコンテンツ保持端末装置に対してコンテンツデータを要求することができる。
【０２１７】
なお、上記ステップＳ２６０において接続管理端末装置が接続要求端末装置に対して送信する接続先候補は、接続先候補を複数含むリスト形式のものとしてもよい。このとき接続管理端末装置は、接続状態情報テーブルから所定数選択してリスト形式で接続要求端末装置に接続先候補を送信する。接続要求端末装置の制御部は、このように送信される複数の接続先候補から任意の一つの接続先候補を選択し、この接続先候補に接続を要求することができる。したがって、接続要求端末装置の制御部は、接続先候補に接続できないときに、受信した複数の接続先候補から他の接続先候補を選択して接続を要求することができるので、続管理端末装置に対して再度接続先紹介要求メッセージを送信する必要がなくなる。また、接続管理端末装置が接続要求端末装置に対して送信する接続先候補として、接続状態情報テーブルの全ての情報とすることもでき、この場合、接続管理端末装置は接続先候補を選択する必要がなく処理が簡単になる。
【０２１８】
［５．変形例１］
上記実施形態においては、接続管理端末装置が接続要求端末装置に対して接続先紹介要求メッセージに対応するチャンネルの階層構造への接続先候補を送信し、接続要求端末装置が接続先候補に接続を要求するものであったが、接続管理端末装置が接続先候補に対して、接続要求端末装置への接続を依頼するようにしてもよい。
【０２１９】
この場合、図２１に示すように、接続管理端末装置２Ｃは、接続要求端末装置２Ｍから要求されたチャンネルの階層構造への接続先候補をそのチャンネルに対応する接続状態情報テーブルから取り出す。そして、取り出した接続先候補（の所在情報）に基づいて、接続先紹介要求メッセージを送信した接続要求端末装置２Ｍと接続させる接続依頼メッセージを送信する。この接続依頼メッセージには、接続要求端末装置２Ｍの所在情報を含む。接続先候補２Ｄは、接続管理端末装置２Ｃから接続依頼メッセージを受信すると、この接続依頼メッセージに記載された接続先端末装置である接続要求端末装置２Ｍに接続する。
【０２２０】
すなわち、端末装置２の制御部２３０は、接続先候補選択手段によって選択された接続先候補に対して接続依頼メッセージ送信処理手段、他の端末装置２から接続依頼メッセージを受信すると、この接続依頼メッセージに記載された接続先端末装置（接続先紹介要求メッセージを送信した端末装置）に接続する接続依頼処理手段等として機能する。
【０２２１】
このように接続管理端末装置が接続先候補に対して、接続要求端末装置へ接続するように要求する方法で階層構造を形成することも可能である。
【０２２２】
［６．変形例２］
上記実施形態においては、ルート端末装置がリクエスト端末装置に対してコンテンツデータの所在情報を送信し、リクエスト端末装置がコンテンツ保持端末装置から、そのコンテンツデータをダウンロードして取得するものであったが、ルート端末装置がコンテンツ保持端末装置に対して、リクエスト端末装置へのコンテンツデータの送信を要求するようにしてもよい。
【０２２３】
この場合、図２２に示すように、ルート端末装置２Ｆは、リクエスト端末装置２Ｎから要求されたコンテンツデータを保持するコンテンツ保持端末装置２Ｇの所在情報をインデックステーブル２２２から取り出す。そして、当該コンテンツ保持端末装置２Ｇの所在情報に基づいて、リクエスト端末装置２Ｎの所在情報を含めたコンテンツデータを要求するコンテンツデータ要求メッセージをコンテンツ保持端末装置２Ｇへ送信する。コンテンツ保持端末装置２Ｇは、コンテンツデータの送信要求を受信すると、このコンテンツデータの送信要求に含まれるリクエスト端末装置２Ｎの所在情報に対して、コンテンツデータの送信要求に対応するコンテンツデータを送信することになる。
【０２２４】
すなわち、端末装置２の制御部２３０は、リクエスト端末装置２Ｎからコンテンツ保持端末装置検索メッセージをルート端末装置２Ｆとして受信したとき、コンテンツ保持端末装置情報返信手段の機能に代えて、配信元情報記憶手段であるインデックステーブル２２２にコンテンツ保持端末装置検索メッセージのコンテンツデータを保持するコンテンツ保持端末装置の所在情報の有無を判定する配信元情報判定手段、配信元情報判定手段が有りと判定すると、インデックステーブルに記憶した情報に基づいて、コンテンツ保持端末装置からコンテンツデータの配信を行わせるコンテンツデータ配信要求メッセージを生成し、コンテンツ保持端末装置検索メッセージを送信した端末装置へコンテンツデータ配信要求メッセージ記コンテンツ保持端末装置へ送信するコンテンツデータ配信要求メッセージ送信処理手段、コンテンツデータ配信要求メッセージを受信した後、当該コンテンツデータ配信要求メッセージに記載されているコンテンツデータを、送信先端末装置に送信するコンテンツデータ送信処理手段として機能する。
【０２２５】
リクエスト端末装置２Ｎは、ダウンロード先検索手段によってコンテンツ保持端末装置検索メッセージを送信し、ダウンロードデータ受信処理手段は、このコンテンツ保持端末装置検索メッセージに応じたコンテンツデータをコンテンツ保持端末装置２Ｇから受信する。
【０２２６】
このようにルート端末装置がコンテンツ保持端末装置に対して、リクエスト端末装置へのコンテンツデータの送信を要求することも可能である。
【０２２７】
［７．その他の変形例］
また、コンテンツ配信システムＳにおけるＤＨＴルーティング形式として、Ｐａｓｔｒｙ型のコンテンツ配信システムを例にして説明したが、これに限られず、メッセージの転送方法が異なるｋａｄｅｍｌｉａ型、ｃｈｏｒｄ型、Ｖｉｃｅｒｏｙ型、ＣＡＮ型などのコンテンツ配信システムにも本発明を適用可能である。
【図面の簡単な説明】
【０２２８】
【図１】本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。
【図２】本実施形態に係るコンテンツ配信システムの概要動作例を示す図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】図１の端末装置におけるルーティングテーブルの一例を示す図である。
【図５】端末装置が第２配信形態へ参加する様子の一例を示す図である。
【図６】ＤＨＴルーティングによりコンテンツ配信装置が配信するチャンネルが接続管理端末装置に登録される様子の一例を示す図である。
【図７】図１の端末装置における接続状態情報テーブルの一例を示す図である。
【図８】ＤＨＴルーティングによりコンテンツ配信装置が配信するチャンネルの階層構造に端末装置が参加する様子の一例を示す図である。
【図９】ＤＨＴルーティングによりコンテンツデータが端末装置に保持される様子の一例を示す図である。
【図１０】図１の端末装置におけるインデックステーブルの一例を示す図である。
【図１１】ＤＨＴルーティングにより端末装置がダウンロードする様子の一例を示す図である。
【図１２】図１のコンテンツ配信装置の概略構成例を示す図である。
【図１３】図１の端末装置の概略構成例を示す図である。
【図１４】図１のコンテンツ配信装置におけるメイン処理を示すフローチャートである。
【図１５】図１の端末装置におけるメイン処理を示すフローチャートである。
【図１６】端末装置におけるコンテンツ配信システムへの参加処理を示すフローチャートである。
【図１７】端末装置におけるチャンネルの階層構造への接続処理を示すフローチャートである。
【図１８】端末装置におけるダウンロード処理を示すフローチャートである。
【図１９】端末装置における受信メッセージの処理を示すフローチャートである。
【図２０】図１の端末装置における表示画面の一例を示す図である。
【図２１】変形例１におけるコンテンツ配信システムの概要動作例を示す図である。
【図２２】変形例２におけるコンテンツ配信システムの概要動作例を示す図である。
【符号の説明】
【０２２９】
Ｓ  コンテンツ配信システム
１  コンテンツ配信装置
２  端末装置
３  コンテンツ投入装置
４  コンタクト先紹介装置
６  ネットワーク
１３０  コンテンツ配信装置の制御部
２３０  端末装置の制御部
【図１】
2008092235.tif 000003
【図２】
2008092235.tif 000004
【図３】
2008092235.tif 000005
【図４】
2008092235.tif 000006
【図５】
2008092235.tif 000007
【図６】
2008092235.tif 000008
【図７】
2008092235.tif 000009
【図８】
2008092235.tif 000010
【図９】
2008092235.tif 000011
【図１０】
2008092235.tif 000012
【図１１】
2008092235.tif 000013
【図１２】
2008092235.tif 000014
【図１３】
2008092235.tif 000015
【図１４】
2008092235.tif 000016
【図１５】
2008092235.tif 000017
【図１６】
2008092235.tif 000018
【図１７】
2008092235.tif 000019
【図１８】
2008092235.tif 000020
【図１９】
2008092235.tif 000021
【図２０】
2008092235.tif 000022
【図２１】
2008092235.tif 000023
【図２２】
2008092235.tif 000024