(57)【要約】【課題】  ストリーム型コンテンツ配信において、データの連続性を考慮して最適なデータ要求先通信端末を選択できる通信端末等を提供する。【解決手段】  通信端末４００は、コンテンツ識別子、コンテンツ保有データ範囲およびコンテンツ受信状態を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成するメッセージ作成部４３４と、制御メッセージを自通信端末以外の通信端末に対して送信させるよう指示し、外部通信端末から受信する制御メッセージから、外部通信端末が保有するコンテンツリストを取得し、当該コンテンツのデータを外部通信端末に送信するよう指示し、当該コンテンツのデータを外部通信端末に要求するメッセージ管理部４３５と、コンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応するコンテンツリストを作成または更新するよう指示するコンテンツ管理部４３３とを備える。【選択図】      図２０
2017049630.tif 000002
【特許請求の範囲】
【請求項１】
自通信端末が保有するコンテンツの識別子、前記コンテンツの保有データ範囲および前記コンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成するメッセージ作成部と、
前記制御メッセージを前記自通信端末以外の通信端末に対して送信させるよう指示し、且つ、前記自通信端末以外の外部通信端末から受信する前記制御メッセージから、前記外部通信端末が保有するコンテンツリストを取得し、
前記外部通信端末から前記自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを前記外部通信端末に送信するよう指示し、
前記外部通信端末が保有するコンテンツの再生要求を前記自通信端末が受けると、当該コンテンツのデータを前記外部通信端末に要求する、
メッセージ管理部と、
前記外部通信端末に要求した前記コンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応する前記コンテンツリストを作成または更新するよう指示し、
前記自通信端末に対する前記コンテンツの再生要求に応じて前記外部通信端末から前記コンテンツのデータを受信し、当該データを再生させる、
コンテンツ管理部、
と備える通信端末。
【請求項２】
前記データを再生させる画面において、前記自通信端末および前記外部通信端末が保有するコンテンツに対応するコンテンツリストを表示し、当該コンテンツに対する動作指示を受けつける、コンテンツ表示部
を更に備える請求項１に記載の通信端末。
【請求項３】
前記メッセージ作成部は、前記自通信端末が保有するコンテンツを表す第１コンテンツリストに加え、前記外部通信端末から受信した制御メッセージに含まれる第２コンテンツリストも含めた制御メッセージを作成する、
請求項１又は２に記載の通信端末。
【請求項４】
前記メッセージ作成部は、前記第１コンテンツリストおよび前記第２コンテンツリストを含めた制御メッセージを作成する際、前記第１および第２コンテンツリストに前記自通信端末からデータ送信元となる前記外部通信端末までの通信ホップ数を示す情報を付加する、
請求項１乃至３のいずれかに記載の通信端末。
【請求項５】
前記メッセージ作成部は、所定値を超える前記ホップ数を有する前記第２コンテンツリストは、制御メッセージに含めない、
請求項１乃至４のいずれかに記載の通信端末。
【請求項６】
前記メッセージ管理部は、前記第１コンテンツリストおよび前記第２コンテンツリストを含めた制御メッセージを受信すると、前記制御メッセージに含まれるコンテンツリスト毎に、前記第１コンテンツリストに紐付られるコンテンツを保有する通信端末の識別子と、前記第２コンテンツリストに紐付られるコンテンツを送信した通信端末の識別子を取得する、
請求項１乃至５のいずれかにのいずれかに記載の通信端末。
【請求項７】
前記自通信端末が受信しているコンテンツのデータ受信が停止したことを検知すると、前記第１または第２コンテンツリストを取得し、取得した前記第１または第２コンテンツリストに含まれる、前記コンテンツを保有する通信端末の識別子、前記コンテンツを送信した通信端末の識別子、前記コンテンツの識別子、前記コンテンツの保有データ範囲、前記コンテンツの受信状態を示す情報および前記通信ホップ数の内の少なくとも一つ以上を用いて、当該データ受信が停止した位置から継続して受信することが可能な通信端末を選択するコンテンツ要求先選択部を更に備え、
前記メッセージ作成部は、選択された前記データ受信が停止した位置から継続して受信することが可能な通信端末に対し、当該コンテンツの送信要求を作成する、
請求項１乃至６のいずれかに記載の通信端末。
【請求項８】
請求項１乃至請求項７のいずれかに記載の通信端末を複数備え、
前記複数の通信端末の各々は、前記制御メッセージを送受信しあい、送受信した前記制御メッセージを基に、前記通信端末の各々が保有するコンテンツのデータを送受信しあう、
通信システム
【請求項９】
自通信端末が保有するコンテンツの識別子、前記コンテンツの保有データ範囲および前記コンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成し、
前記制御メッセージを前記自通信端末以外の通信端末に対して送信させるよう指示し、且つ、前記自通信端末以外の外部通信端末から受信する前記制御メッセージから、前記外部通信端末が保有するコンテンツリストを取得し、
前記外部通信端末から前記自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを前記外部通信端末に送信するよう指示し、
前記外部通信端末が保有するコンテンツの再生要求を前記自通信端末が受けると、当該コンテンツのデータを前記外部通信端末に要求し、
前記外部通信端末に要求した前記コンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応する前記コンテンツリストを作成または更新するよう指示し、
前記自通信端末に対する前記コンテンツの再生要求に応じて前記外部通信端末から前記コンテンツのデータを受信し、当該データを再生させる、
通信方法。
【請求項１０】
コンピュータに、
自通信端末が保有するコンテンツの識別子、前記コンテンツの保有データ範囲および前記コンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成し、
前記制御メッセージを前記自通信端末以外の通信端末に対して送信させるよう指示し、且つ、前記自通信端末以外の外部通信端末から受信する前記制御メッセージから、前記外部通信端末が保有するコンテンツリストを取得し、
前記外部通信端末から前記自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを前記外部通信端末に送信するよう指示し、
前記外部通信端末が保有するコンテンツの再生要求を前記自通信端末が受けると、当該コンテンツのデータを前記外部通信端末に要求し、
前記外部通信端末に要求した前記コンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応する前記コンテンツリストを作成または更新するよう指示し、
前記自通信端末に対する前記コンテンツの再生要求に応じて前記外部通信端末から前記コンテンツのデータを受信し、当該データを再生させる
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末等に関し、特に、通信ネットワークを利用してストリーム型のコンテンツを配信する通信端末等に関する。
【背景技術】
【０００２】
近年、インターネットなどの通信媒体を介した音声や映像等のストリーム型コンテンツの配信サービスが普及している。このようなストリーム型コンテンツの配信および視聴方法として、クライアントサーバ型の配信方法とピアツーピア（Ｐ２Ｐ：Peer-to-Peer）型の配信方法とが利用されている。
【０００３】
クライアントサーバ型配信では、ユーザのＰＣ（Personal Computer）、スマートフォン、タブレット端末等の通信端末は、ストリーム型コンテンツの配信を実現するストリーミングサーバに接続し、当該サーバからストリーム型コンテンツのデータを配信、視聴する。このため、接続する通信端末の数が多くなればなるほど、ストリーミングサーバの負荷が高くなり、サーバの性能やネットワーク帯域が不足するという課題がある。
【０００４】
一方、Ｐ２Ｐ型の配信方法（Ｐ２Ｐストリーミング）では、各ユーザの通信端末はサーバのような配信装置に接続せず、通信端末同士がお互いにストリーム型コンテンツのデータを送受信し、ストリーミング型コンテンツの配信を実現する。具体的に、各通信端末は、ストリーム型コンテンツのデータを受信すると同時に再生しながら、当該データを蓄積し、必要に応じて他の端末へ配信する。これにより、サーバへ負荷が集中するクライアントサーバ型の配信方法に比べて、通信負荷を分散、軽減することが可能となる。
【０００５】
特許文献１は、携帯用通信端末（以下、通信端末と記載）等を用いたＰ２Ｐストリーミングにおいて、各通信端末が、自端末の再生開始時刻や映像品質等の要求条件に最適なコンテンツデータを保有する他の通信端末に、コンテンツデータの送信を要求する手法を開示する。当該手法では、各通信端末は、自端末の保有するストリーム型コンテンツデータの時間範囲と当該データのデータ損失に関する情報の少なくとも片方を他の通信端末に公開する。ストリーム型コンテンツの受信および再生を行いたい通信端末は、他の通信端末が公開している上記保有情報を元に、自身が要求する再生開始時刻や品質などの条件に最も合う通信端末を選択し、送信要求を行う。
【０００６】
特許文献２は、ユーザの意思でコンテンツ等を入手可能なマルチポップピアツーピア通信を行う手法を開示する。
【０００７】
特許文献３は、複数の情報処理装置が設置される環境において、無線アドホックネットワークを構成する各装置の位置情報に基づき、各装置間で情報を動的に共有する手法について開示する。
【０００８】
非特許文献１は、移動により通信端末同士が接近した際に、エピデミック法に基づいて記憶内容を示す情報を交換し、記憶内容を同期させる手法を開示する。図２３は、エピデミック法によって記憶内容を同期させる通信システムの構成例を示す説明図である。図２３に示すように、当該通信システムは、通信端末１および通信端末２を備える。通信端末１、２は、自端末が記憶しているコンテンツのリストであるサマリーベクタを含む制御メッセージを、隣接する通信端末１、２同士で周期的に送受信する。そして、各通信端末１、２は、自端末以外の通信端末から受信したサマリーベクタに基づいて、制御メッセージの送信元である通信端末に記憶されているコンテンツと、自通信端末が記憶しているコンテンツとの差分を検出する。図２３に示す例では、通信端末１にコンテンツＡ、Ｂ、Ｃが記憶され、通信端末２にコンテンツＡ、Ｂが記憶されている。したがって、通信端末１に記憶されているコンテンツと通信端末２に記憶されているコンテンツとの差分はコンテンツＣである。よって、通信端末２は、その差分を無くすために、制御メッセージの送信元である通信端末１に対し、コンテンツＣの送信を要求する。通信端末１は、この要求に応じてコンテンツＣを通信端末２に送信する。この処理により通信端末１、２に記憶されているコンテンツは同期される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１４９０４０号公報
【特許文献２】特開２００８−０９２５２４号公報
【特許文献３】特開２００６−３０３７６２号公報
【非特許文献】
【００１０】
【非特許文献１】A. Vahdat, D. Becker, “Epidemic Routing for Partially−Connected Ad Hoc Networks,” Tech. Report CS−200006, Duke University, Apr. 2000
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したＰ２Ｐストリーミングのように、ストリーミングサーバを介さずに通信端末同士がお互いに直接ストリーム型コンテンツのデータ送受信を行うことを想定する。この想定の下では、自通信端末が要求するストリーム型コンテンツデータの全てを、自通信端末の近辺の他の通信端末（データ送信元通信端末）が保有していれば、この通信端末同士間で全てのデータを送受信することが可能である。しかしながら、当該他の通信端末が当該データの一部のみしか保有していない場合、自通信端末は、その他のコンテンツデータを保有する別の通信端末にデータ送信元を切り替えながら、当該コンテンツを受信および再生する必要がある。
【００１２】
特許文献１および非特許文献１に記載の手法は、各通信端末は自身の保有するストリーム型コンテンツデータの時間範囲を他の通信端末に公開している。しかしながら、当該手法では、連続するストリーム型コンテンツのデータを保有する通信端末が近辺に存在しない場合に、コンテンツの受信および再生を継続できないという問題がある。
【００１３】
特許文献２に記載の手法は、ある通信端末からネットワーク中の他の通信端末までの経路上の通信端末とそのホップ数の管理方法について記載されているが、複数の通信端末中のある通信端末が保有するコンテンツに対して、当該コンテンツの保有端末と、当該コンテンツリストの送信元通信端末のうち、最適な組み合わせを選択することについては記載していない。
【００１４】
特許文献２および特許文献３に記載の手法は、コンテンツに直接関係するコンテンツ名やコンテンツ時間範囲等の情報を端末間で送受信するが、当該コンテンツを自端末と他端末間で受信中であるか否かを判定してコンテンツの連続性を保つことについては考慮されていない。
【００１５】
本発明は、上記の問題点を解決するべくなされた。本発明は、通信ネットワークを経由したストリーム型コンテンツの配信において、当該コンテンツのストリームデータの連続性を考慮して最適なデータ要求先通信端末を選択することができる通信端末等を提供することを主たる目的とする。
【課題を解決するための手段】
【００１６】
上記の課題を解決するために、本発明の第１の観点は、自通信端末が保有するコンテンツの識別子、コンテンツの保有データ範囲およびコンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成するメッセージ作成部と、
制御メッセージを自通信端末以外の通信端末に対して送信させるよう指示し、且つ、自通信端末以外の外部通信端末から受信する制御メッセージから、外部通信端末が保有するコンテンツリストを取得し、
外部通信端末から自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを外部通信端末に送信するよう指示し、
外部通信端末が保有するコンテンツの再生要求を自通信端末が受けると、当該コンテンツのデータを外部通信端末に要求する、
メッセージ管理部と、
外部通信端末に要求したコンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応するコンテンツリストを作成または更新するよう指示し、
自通信端末に対するコンテンツの再生要求に応じて外部通信端末からコンテンツのデータを受信し、当該データを再生させる、
コンテンツ管理部
とを備える通信端末である。
【００１７】
本発明の第２の観点は、上記に記載の通信端末を複数備え、
複数の通信端末の各々は、制御メッセージを送受信しあい、送受信した制御メッセージを基に、通信端末の各々が保有するコンテンツのデータを送受信しあう、
通信システムである。
【００１８】
本発明の第３の観点は、自通信端末が保有するコンテンツの識別子、コンテンツの保有データ範囲およびコンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成し、
制御メッセージを自通信端末以外の通信端末に対して送信させるよう指示し、且つ、自通信端末以外の外部通信端末から受信する制御メッセージから、外部通信端末が保有するコンテンツリストを取得し、
外部通信端末から自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを外部通信端末に送信するよう指示し、
外部通信端末が保有するコンテンツの再生要求を自通信端末が受けると、当該コンテンツのデータを外部通信端末に要求し、
外部通信端末に要求したコンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応するコンテンツリストを作成または更新するよう指示し、
自通信端末に対するコンテンツの再生要求に応じて外部通信端末からコンテンツのデータを受信し、当該データを再生させる、
通信方法である。
【００１９】
本発明の第４の観点は、コンピュータに、
自通信端末が保有するコンテンツの識別子、コンテンツの保有データ範囲およびコンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成し、
制御メッセージを自通信端末以外の通信端末に対して送信させるよう指示し、且つ、自通信端末以外の外部通信端末から受信する制御メッセージから、外部通信端末が保有するコンテンツリストを取得し、
外部通信端末から自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを外部通信端末に送信するよう指示し、
外部通信端末が保有するコンテンツの再生要求を自通信端末が受けると、当該コンテンツのデータを外部通信端末に要求し、
外部通信端末に要求したコンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応するコンテンツリストを作成または更新するよう指示し、
自通信端末に対するコンテンツの再生要求に応じて外部通信端末からコンテンツのデータを受信し、当該データを再生させる
処理を実行させるプログラムである。
【発明の効果】
【００２０】
本発明によれば、通信ネットワークを経由したストリーム型コンテンツの配信において、当該コンテンツのストリームデータの連続性を考慮して最適なデータ要求先通信端末を選択することができる通信端末等を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係る通信端末から成る通信システムの構成例を示す図である。
【図２】本発明の第１の実施形態に係る通信端末の構成例を示すブロック図である。
【図３】制御メッセージのデータ構成例を示す図である。
【図４】通信端末情報のデータ構成例を示す図である。
【図５】コンテンツ情報のデータ構成例を示す図である。
【図６】入出力部の画面例を示す図である。
【図７】本発明の第１の実施形態に係る通信端末が各種メッセージを受信、またはタイマーが発動した動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係る通信端末がコンテンツの受信を要求する場合の動作を示すフローチャートである。
【図９】本発明の第２の実施形態に係る通信端末から成る通信システムの構成例を示す図である。
【図１０】本発明の第２の実施形態に係る通信端末の構成例を示すブロック図である。
【図１１】通信端末情報のデータ構成例を示す図である。
【図１２】コンテンツ情報のデータ構成例を示す説明図である。
【図１３】制御メッセージのデータ構成例を示す図である。
【図１４】コンテンツ情報の例を示す図である。
【図１５】コンテンツ情報の例を示す図である。
【図１６Ａ】本発明の第２の実施形態における通信端末がメッセージを受信、またはタイマーが発動した際の動作を示すフローチャートである。
【図１６Ｂ】本発明の第２の実施形態における通信端末がメッセージを受信、またはタイマーが発動した際の動作を示すフローチャートである。
【図１７】本発明の第２の実施形態における通信端末がコンテンツ情報を更新する動作を示すフローチャートである。
【図１８】本発明の第３の実施形態の通信端末の構成例を示すブロック図である。
【図１９】本発明の第３の実施形態に係る通信端末がメッセージを受信、またはタイマーが発動した際の動作を示すフローチャートである。
【図２０】本発明の第４の実施形態の通信端末の構成例を示すブロック図である。
【図２１】通信端末がアクセスポイントを介して通信を行うように構成された無線通信システムの例を示すブロック図である。
【図２２】本発明の各実施形態における通信端末のハードウェア構成例を示すブロック図である。
【図２３】従来技術に関する通信システムの構成例を示す図である。
【発明を実施するための形態】
【００２２】
次に図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を模式的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。
【００２３】
＜本発明の第１の実施形態＞
（通信システム）
本発明の第１の実施形態に係る通信システム１０について図１を参照して説明する。本発明の第１の実施形態に係る通信システムでは、ストリーミングサーバを介さずに通信端末同士がお互いに直接ストリーム型コンテンツのデータを送受信する。この場合、ストリーム型コンテンツを保有する通信端末が一部のデータのみしか保有していない場合、当該ストリーム型コンテンツを要求する通信端末は、当該コンテンツのデータを受信および再生しながら、当該データを送信する他の通信端末に要求元を切り替えて、このコンテンツのデータを連続して受信および再生する。
【００２４】
図１に示す通信システム１０は、同様の構成を有する通信端末１００ａ〜１００ｈを備えている。この内、通信端末１００ａ、１００ｂ、１００ｃおよび１００ｄは、無線通信可能な位置に存在し、通信端末１００ａがあるストリーム型コンテンツを連続再生したいとする。以下の様に通信端末１００ｂ、１００ｃ、１００ｄは、各々ストリーム型コンテンツの一部を有しているとする。
・通信端末１００ｂがストリーム型コンテンツの開始から１００秒後までのデータを保有、
・通信端末１００ｃがストリーム型コンテンツの開始１５０秒後から２００秒後までのデータを保有、
・通信端末１００ｄがストリーム型コンテンツの開始２０秒後から９５秒後までのデータを保有。
【００２５】
この時、ストリーム型コンテンツを再生したい通信端末１００ａは、まず通信端末１００ｂに対してストリーム型コンテンツのデータ送信を要求し、１００秒後までのデータを受信および再生する。しかし、コンテンツの開始から１００秒が経過した直後のデータ（１００秒後からのデータ）を保有している通信端末が存在しないため、続きのデータを連続して受信することができない。従って、通信端末１００ａは、コンテンツの連続性を犠牲（即ち、例えば、開始１００秒から１５０秒までのコンテンツをスキップする）にして通信端末１００ｃに対して続きのデータの送信を要求するか、あるいはそこで当該コンテンツの受信および再生をあきらめざるを得ない。
【００２６】
しかし、もし通信端末１００ｃおよび通信端末１００ｄが継続して当該コンテンツのデータを受信しているならば、通信端末１００ａは少し（例えば、５秒）待つことで、当該コンテンツの開始から１００秒後以降のデータを通信端末１００ｄから受信することが可能となる。
【００２７】
また、通信可能範囲の制約等により通信端末１００ａは直接通信できないが、通信端末１００ｄは直接通信可能な通信端末１００ｅが存在し、当該通信端末１００ｅが当該コンテンツの開始から１００秒後以降のデータを保有していた場合、通信端末１００ａは通信端末１００ｄを経由して、当該コンテンツの続きのデータを受信および再生することが可能である場合もある。このように、次に再生すべきデータを保有する通信端末に通信を切り替える際に、最も消失データが少なく、かつ、将来の切り替え頻度が小さくなる通信端末を選択することで、連続してコンテンツを視聴することが可能となる。このような機能を実行する本発明の第１の実施形態に係る通信端末について以下に説明する。
【００２８】
（通信端末）
本発明の第１の実施形態に係る各通信端末１００ａ〜１００ｈ（以下、これらを纏めて通信端末１００と記載することがある）は、無線通信機能を有する。無線通信機能は、無線ＬＡＮ（Local Area Network）、例えば、Ｗｉ−Ｆｉ（Wireless Fidelity、登録商標）通信に接続する機能である。本実施形態では、通信システム１０に含まれている各通信端末１００は、例えば、アドホックモード（IEEE 802.11無線LANの動作モードのひとつで、それぞれの端末に設置された無線LANのアダプタが、互いに直接通信をする方式）で互いの間の通信が可能である。この他、各通信端末１００の間は、有線通信ネットワークを介して互いに通信するように構成されていてもよい。
【００２９】
各通信端末１００は、自通信端末（以下の説明においては自通信端末を「通信端末１００ａ」と記載する）以外の通信端末１００ｂ〜１００ｈ（以下の説明においては自通信端末１００ａ以外の通信端末を「他の通信端末１００′」と記載する）との間で、自通信端末１００ａが保有するコンテンツを他の通信端末１００′に周知させるための制御メッセージ（図３参照）と、コンテンツのデータとを送受信しあう。
【００３０】
本実施形態に係る通信端末１００の構成例を図２に示す。通信端末１００は、入出力部１１０、コンテンツ表示部１２０、コンテンツ配信制御部１３０、記憶部１４０および通信部１５０を備える。
【００３１】
入出力部１１０は、通信端末１００に備え付けられたディスプレイ、タッチパネル、カメラ、マイク、ソフトウェアキーボードおよびタッチパネル等の入出力装置である。これらの入出力装置は有線又は無線を介して通信端末１００と接続されている。
【００３２】
記憶部１４０は、ハードディスク、内部メモリ等の記憶媒体である。図２に示すように記憶部１４０は、「通信端末情報」１４１と、コンテンツのデータ（不図示）およびこれに対応する「コンテンツ情報」１４２とを記憶する。通信端末情報１４１は、コンテンツのデータを送受信しあう他の通信端末１００′を識別するための情報（図４参照）である。コンテンツ情報１４２は、自通信端末１００ａが保有するコンテンツに関する情報（図５参照）である。尚、コンテンツは、音声や映像等のストリーム型のデータファイルであってもよいし、ストリーム型データの一部であってもよい。また、コンテンツは、入出力部１１０のカメラやマイクを通して撮影、録音されているデータの一部であってもよい。
【００３３】
尚、通信端末情報１４１とコンテンツ情報１４２は、通信端末１００同士間で送受信する制御メッセージ１３４ａ（図３参照）の基となる情報である。制御メッセージ１３４ａには通信端末識別子とコンテンツリストとが含まれている。詳細は後述する。
【００３４】
図４に、通信端末情報１４１のデータ構成例を示す。通信端末情報１４１は、自通信端末１００ａとの間で無線通信により通信可能な他の通信端末１００′に関する情報である。通信端末情報１４１は、「通信端末識別子」１４１Ａ、「有効期限」１４１Ｂおよび「コンテンツリスト」１４１Ｃを備える。
【００３５】
通信端末識別子１４１Ａは、通信端末情報１４１の送信元である通信端末１００を特定可能な識別子（例えば、ＩＰアドレスやユーザ名、通信端末名）である。通信端末識別子１４１Ａは、制御メッセージ（図３参照）に含められる。
【００３６】
有効期限情報１４１Ｂは、通信端末情報１４１の有効期限を示す。有効期限情報１４１Ｂは、例えば、制御メッセージを受信した日時から所定時間Ｔ経過後の日時を示す情報である。コンテンツ配信制御部１３０は、有効期限情報１４１Ｂによって示される日時が到来すると、メッセージ管理部１３５に、有効期限が到来した（失効した）通信端末情報１４１を記憶部１４０から削除させる。所定時間Ｔを長くし過ぎると、自通信端末１００ａとの間で通信不可能となった後も、過去に通信していた他の通信端末１００′に関する不要な通信端末情報１４１が記憶部１４０に記憶され続ける。通信不可能になる場合とは、自通信端末１００ａと、自通信端末１００ａが記憶する通信端末識別子１４１Ａに対応する他の通信端末１００′との少なくとも片方が移動して、無線LANの通信可能範囲から逸脱してしまう場合等である。逆に、所定時間Ｔを短くし過ぎると、自通信端末１００ａとの間で通信可能な状態でも、通信中の他の通信端末１００′に関する必要な通信端末情報１４１が記憶部１４０から削除される。したがって、所定時間Ｔは、制御メッセージの送信周期よりも長い時間であることが好ましい。
【００３７】
コンテンツリスト１４１Ｃは、通信端末識別子１４１Ａに紐付られた他の通信端末１００′が保有するコンテンツリストである。
【００３８】
図５にコンテンツ情報１４２のデータ構成例を示す。コンテンツ情報１４２は、各通信端末１００自らが保有する全てのコンテンツ毎に紐付られた「コンテンツ識別子」１４２Ａ、「保有データ範囲」１４２Ｂおよび「受信状態情報」１４２Ｃ等である。
【００３９】
コンテンツ識別子１４２Ａは、コンテンツのデータ送信元である他の通信端末１００′が保有するコンテンツ識別子である。
【００４０】
保有データ範囲１４２Ｂは、コンテンツ毎に、コンテンツのデータ内で保有しているデータの範囲を示す。この範囲は、例えば、当該データのうち、先頭データからの最小のオフセットと最大のオフセットとの組で表すことができる。例えば、自通信端末１００ａがコンテンツＡのデータとして、オフセットとして１０００バイトから４９９９バイトのデータを保有している場合、保有データ範囲１４２Ｂとして、１０００から４９９９として記憶する。この際、コンテンツＡのデータオフセット１０００バイトから４９９９バイトの一部のデータが、通信中に何らかの理由によりパケットを受け取ることができず、欠落している場合も上記のように記憶する。
【００４１】
なお、映像コンテンツの場合、ＭＰＥＧ（Moving Picture Experts Group）方式の映像データ圧縮技術が使われることが多い。この圧縮技術では、映像コンテンツを、Ｉフレーム（Intra Picture）、Ｐフレーム（Predictive Picture）、Ｂフレーム（Bidirectionally Predictive Picture）、又は、それらを一定の個数にまとめたＧＯＰ（Group Of Picture）単位で圧縮処理する。このため、これらフレームおよびＧＯＰに予め識別子を付与し、これらの識別子を用いて保有データの範囲を指定することもできる。
【００４２】
上記のような手法で、保有データ範囲１４２Ｂは、各通信端末１００が互いに保有しているコンテンツのデータ範囲を認識し、一部のデータが欠落していた場合も認識可能とする。しかしこの手法は一例であり、その他の手法を用いてもよい。
【００４３】
受信状態情報１４２Ｃは、自通信端末１００ａが、あるコンテンツを他の通信端末１００′から受信中であるか否かを示す情報である。自通信端末１００ａは、他の通信端末１００′からコンテンツを受信中に、当該コンテンツの受信が停止したことを検知する。受信状態情報としては、例えば、フラグを利用する。この場合、コンテンツの受信が開始されれば‘１’（受信中）、コンテンツの受信を停止すると‘０’（受信中でない）のフラグを立てる。
【００４４】
受信状態情報１４２Ｃを用いて、コンテンツの受信停止を検知するには様々な手法がある。例えば、１）コンテンツ受信中の自通信端末１００ａが、当該コンテンツの送信停止を通知する「停止通知メッセージ」を受信する。２）コンテンツ受信中の自通信端末１００ａが、当該コンテンツの送信元である他の通信端末１００′に対して、当該コンテンツの送信停止を要求する「停止要求メッセージ」を送信する。３）当該コンテンツを送受信中の通信端末１００同士の間が、少なくとも片方の移動により双方向通信可能な最大距離より離れることで、当該コンテンツのデータ送受信が一定時間以上停止している場合、当該通信端末１００同士の少なくとも受信側の通信端末１００にこの停止状態を検知する機能を備えさせ（タイマー等）データ送受信の停止を検知する。
【００４５】
通信部１５０は、自通信端末１００ａと他の通信端末１００′との間で、ネットワーク処理や無線ＬＡＮ通信におけるアドホックモード等を実行するモジュールである。これらのモジュールは、例えば、ＯＳ（Operating System）のカーネルによって制御されるＴＣＰ（Transmission Control Protocol）やＵＤＰ（User Datagram Protocol）等に関するトランスポート層の処理、ＩＰ（Internet Protocol）等に関するネットワーク層の処理およびＭＡＣ（Media Access Control）等に関する処理を行う。
【００４６】
コンテンツ配信制御部１３０は、データ送受信部１３１、コンテンツリスト作成部１３２、コンテンツ管理部１３３、メッセージ作成部１３４およびメッセージ管理部１３５を備える。
【００４７】
データ送受信部１３１は、自通信端末１００ａと他の通信端末１００′との間で、通信部１５０を介して、データの送受信を行い、当該送受信の際にデータ種類の判別を行う。
【００４８】
データ送受信部１３１は、コンテンツの送受信を行う。即ち、自通信端末１００ａが保有するコンテンツのデータを他の通信端末１００′に送信し、他の通信端末１００′が保有するコンテンツのデータを自通信端末１００ａ側で受信する。
【００４９】
データ送受信部１３１は、自通信端末１００ａと他の通信端末１００′との間で使用される様々なメッセージを送受信する。例えば、データ送受信部１３１は、自通信端末１００ａと他の通信端末１００′との間で、通信部１５０を介して、制御メッセージの送受信を定期的に行う。即ち、自通信端末１００ａが生成した制御メッセージ１３４ａを他の通信端末１００′に送信し、他の通信端末１００′が生成した制御メッセージ１３４ａを自通信端末１００ａ側で受信する。この他、データ送受信部１３１は、コンテンツ要求メッセージ、停止要求メッセージ、停止通知メッセージ等に対しても同様の処理を行う。
【００５０】
コンテンツリスト作成部１３２は、自通信端末１００ａが保有するコンテンツの情報を示すコンテンツリスト（図３参照）を作成する。
【００５１】
コンテンツ管理部１３３は、コンテンツを管理する。具体的には、コンテンツ管理部１３３は、データ送受信部１３１を介して、コンテンツを他の通信端末１００′との間で送受信する。コンテンツ管理部１３３は、データ送受信部１３１が受信するコンテンツのデータを記憶部１４０に格納（更新）する。またはデータ送受信部１３１が他の通信端末１００′に送信すべきデータを記憶部１４０から取り出す。
【００５２】
コンテンツ管理部１３３は、記憶部１４０に記憶されているコンテンツおよびコンテンツ情報１４２を、コンテンツ表示部１２０を介して入出力部１１０に表示させる。
【００５３】
コンテンツ管理部１３３は、メッセージ管理部１３５を介して、他の通信端末１００′からコンテンツ要求メッセージを受信すると、送信要求されているコンテンツの保有データ範囲の先頭オフセットからのデータを記憶部１４０から読み出し、データ送受信部１３１を介して送信する。このとき、コンテンツ要求メッセージには、所望の配信データ開始位置が含められていてもよい。当該配信データ開始位置が含まれたコンテンツ要求メッセージを受信すると、コンテンツ管理部１３３は、当該開始位置から記憶部１４０内のコンテンツのデータを読み出す。
【００５４】
コンテンツ管理部１３３は、コンテンツのデータを記憶部１４０に記憶させながら、記憶部１４０に記憶されている当該コンテンツのコンテンツ情報１４２を更新する。この際、当該コンテンツのコンテンツ情報１４２が記憶されていなければ、当該コンテンツに対するコンテンツ情報１４２を生成し、記憶部１４０に記憶させる。また、コンテンツ管理部１３３は、受信したデータをコンテンツ表示部１２０に引き渡す。
【００５５】
また、コンテンツのデータを送信中の通信端末１００のコンテンツ管理部１３３は、当該コンテンツに関する自身の保有データの最後まで送信してしまった場合など、データの送信を停止する場合には、メッセージ作成部１３４に当該データの停止通知メッセージを作成させる。
【００５６】
また、コンテンツ管理部１３３は、受信しているコンテンツのデータ送信元である通信端末１００からのデータ受信が一定時間停止すると、当該送信元の通信端末１００との接続が切断されたと判断し、受信が停止したと判断する。この場合、停止通知メッセージの受信と同様、コンテンツ管理部１３３は当該コンテンツに対するコンテンツ情報１４２の受信状態情報を「受信中でない」に変更する。コンテンツ管理部１３３は、受信が停止した場合、コンテンツ情報１４２の受信状態情報を「受信中でない」に変更すると同時に、受信が停止したことをコンテンツ表示部１２０に通知し、入出力部１１０にコンテンツのデータ受信および再生が停止したことを表示するよう指示する。
【００５７】
コンテンツ管理部１３３は、コンテンツのデータ受信および再生中に、入出力部１１０を介してユーザから当該コンテンツの再生を停止する指示を受けると、このデータの受信を停止する。この場合コンテンツ管理部１３３は、メッセージ作成部１３４に当該コンテンツのデータ送信元である他の通信端末１００′に送信する停止要求メッセージの作成を依頼する。また、コンテンツ管理部１３３は、コンテンツ表示部１２０に、入出力部１１０に対し、コンテンツのデータ再生停止を表示するよう指示する。
【００５８】
停止要求メッセージを受信した他の通信端末１００′のコンテンツ管理部１３３は、当該コンテンツのデータ送信を停止する。なお、停止要求メッセージを受信した通信端末１００のコンテンツ管理部１３３は、当該メッセージを受信したことを示す確認応答メッセージを停止要求メッセージの送信元である通信端末１００に返信し、停止要求メッセージの送信元である通信端末１００は、その確認応答メッセージを受信した時点で、コンテンツのデータ送信が停止したと判断してもよい。
【００５９】
コンテンツ表示部１２０は、コンテンツのデータを再生し、入出力部１１０に表示させる。なお、このデータの送受信において、データ受信を行う通信端末１００のコンテンツ管理部１３３がパケットのロスなどにより一部のデータの欠落を検知した場合は、当該コンテンツの送信元である通信端末１００に対して、当該欠落データの再送要求を行っても良い。このような再送処理は、ＡＣＫ（Acknowledgement；確認応答）やＮＡＣＫ（Negative ACK；否定応答）などを用いた方法が一般的に知られており、これらの方法を用いることで実現できるため、処理の詳細については省略する。
【００６０】
メッセージ作成部１３４は、通信端末１００間で使用される様々なメッセージ、例えば制御メッセージ、コンテンツ要求メッセージ、停止要求メッセージおよび停止通知メッセージ等を作成する。
【００６１】
制御メッセージ１３４ａの構成例を図３に示す。制御メッセージ１３４ａは、「通信端末識別子」と「コンテンツリスト」とを備える。通信端末識別子は、自通信端末１００ａを特定可能な識別子であり、図４に示す通信端末情報１４１の通信端末識別子１４１Ａと同じ情報であって良い。コンテンツリストは保有するコンテンツのデータに関する情報であり、通信端末１００が複数のコンテンツを保有する場合、コンテンツ毎に対応するコンテンツ識別子、保有データ範囲、受信状態情報を生成する。例えば、保有コンテンツ総数がＭである場合、通信端末１００は、コンテンツ＃１、コンテンツ＃２、…、コンテンツ＃Ｍ（図３参照）のように全てのコンテンツに対応するリストを作成する。メッセージ作成部１３４に作成された制御メッセージ１３４ａは、データ送受信部１３１により隣接する通信端末１００に送信される。制御メッセージ１３４ａは、ブロードキャストで送信されてもよい。
【００６２】
コンテンツ要求メッセージは、自通信端末１００ａに必要なコンテンツのデータを他の通信端末１００′に対して要求するためのメッセージである。
【００６３】
停止要求メッセージは、自通信端末１００ａで再生不要となったデータの送信の停止の依頼を、当該コンテンツのデータ送信元である他の通信端末１００′に通知するためのメッセージである。
【００６４】
停止通知メッセージは、自通信端末１００ａが保有し且つ他の通信端末１００′に送信中の場合に、他の通信端末１００′にこのコンテンツのデータ送信を停止する旨を通知する為のメッセージである。
【００６５】
メッセージ管理部１３５は、自通信端末１００ａと他の通信端末１００′との間で送受信するメッセージの管理を行う。
【００６６】
メッセージ管理部１３５は、他の通信端末１００′が送信した制御メッセージを受信すると、当該制御メッセージから送信元の通信端末識別子と、コンテンツリストとを抽出する。更に、メッセージ管理部１３５は、抽出した通信端末識別子およびコンテンツリストを基に、以下の処理を行う。
【００６７】
すなわち、メッセージ管理部１３５は、制御メッセージの送信元である他の通信端末１００′が保有するコンテンツのコンテンツ識別子、保有データ範囲および受信状態情報を、入出力部１１０（ディスプレイ）に表示させるようコンテンツ表示部１２０に指示する。そして、メッセージ管理部１３５は、抽出した通信端末識別子、前述した有効期限情報、および、受信した制御メッセージに含まれるコンテンツリストを含む通信端末情報１４１を生成して記憶部１４０に記憶する。更に、メッセージ管理部１３５は、有効期限情報１４１Ｂに記された有効期限が到来した（失効した）通信端末情報１４１を、失効日時に記憶部１４０から消去する。
【００６８】
メッセージ管理部１３５は、制御メッセージを送信する所定のタイミングに、メッセージ作成部１３４に制御メッセージの作成を依頼する。更に、メッセージ管理部１３５は、生成された制御メッセージを隣接する他の通信端末１００′へ対して送信させるようデータ送受信部１３１に依頼する。制御メッセージは、所定の周期、または、例えば、新たなコンテンツを登録した時、受信した時など必要に応じて、繰り返し送信される。
【００６９】
メッセージ管理部１３５は、受信中のコンテンツのデータ送信元である通信端末１００に対して、当該データの送信を停止することを要求するメッセージ（停止要求メッセージ）を作成するよう、メッセージ作成部１３４に指示する。また、メッセージ管理部１３５は、データ送受信部１３１が他の通信端末１００′から受信中のコンテンツのデータ送信を停止することを通知するメッセージ（停止通知メッセージ）を受信したことを検知すると、当該コンテンツに対応する記憶部１４０のコンテンツ情報１４２の受信状態情報を「受信中でない」に変更する。
【００７０】
メッセージ管理部１３５は、コンテンツリストを所定条件で分割し、分割後のコンテンツリストを含む制御メッセージをそれぞれメッセージ作成部１３４に作成させてもよい。例えば、複数のコンテンツのうちの一部のコンテンツについてのコンテンツリストを含む制御メッセージと、残りのコンテンツについてのコンテンツリストを含む制御メッセージ等である。なお、メッセージ管理部１３５は、分割したコンテンツリストを含む制御メッセージの送信をデータ送受信部１３１に指示する場合に、付加的情報を当該制御メッセージに含ませるようメッセージ作成部１３４に指示する。付加的情報とは、コンテンツリストが分割されていることを示す情報や、当該制御メッセージに含まれているコンテンツリストが、いくつに分割されたうちの何番目であるのかをそれぞれ示す情報等である。メッセージ管理部１３５が制御メッセージにそのような情報を含ませることにより、複数の制御メッセージに含まれるコンテンツリストによって、自通信端末１００ａの記憶部１４０に記憶されている全コンテンツ、その保有データ範囲および受信状態情報を、他の通信端末１００′に通知することができる。
【００７１】
メッセージ管理部１３５は、新たに生成した通信端末情報１４１と同じ通信端末識別子を有する通信端末情報１４１が記憶部１４０に記憶されている場合には、更新処理を行ってもよい。更新処理とは、メッセージ管理部１３５が、既に記憶されている古い通信端末情報１４１の内容を新たな通信端末情報１４１の内容によって更新することである。
【００７２】
メッセージ管理部１３５は、他の通信端末１００′からコンテンツ要求メッセージを受信すると、当該コンテンツ要求メッセージをコンテンツ管理部１３３に送信し、コンテンツのデータ送信を促す。
【００７３】
コンテンツ表示部１２０は、自通信端末１００ａまたは他の通信端末１００′が保有しているコンテンツ名と当該コンテンツの保有通信端末識別子、当該通信端末の保有データ範囲、受信状態情報の一覧を入出力部１１０に表示する。また、コンテンツ表示部１２０は、ユーザからの受信および再生等の指示を受け付けるためのユーザインタフェースを提供する。
【００７４】
図６は、コンテンツ表示部１２０が入出力部１１０に表示させる表示画面例を示す図である。当該表示画面は、視聴領域１２０ａ、コンテンツ一覧領域１２０ｂおよび視聴コンテンツ名領域１２０ｃを含む。
【００７５】
コンテンツ一覧領域１２０ｂは、自通信端末１００ａと他の通信端末１００′とが保有するコンテンツ毎のコンテンツ名、当該コンテンツを保有する通信端末の識別子、当該通信端末が保有するデータ範囲、受信状態情報を表示する。これらの情報は、所定動作をトリガとして又は一定間隔毎にコンテンツ管理部１３３が更新した情報である。
【００７６】
所定動作をトリガとする場合は、メッセージ管理部１３５が他の通信端末１００′から受信した制御メッセージを基に、記憶部１４０内の当該他の通信端末１００′に対応する通信端末情報１４１の更新を行ったことをトリガとして行う。あるいは、コンテンツ管理部１３３がコンテンツのデータ受信、または受信停止を検知し、記憶部１４０に記憶されている当該コンテンツのコンテンツ情報１４２を更新したことをトリガとして行う。一定時間間隔毎に実行する場合は、コンテンツ表示部１２０がコンテンツ配信制御部１３０にデータの更新を問い合わせ、更新されたデータを読み込んで表示する。
【００７７】
ユーザは、コンテンツ一覧領域１２０ｂ（即ち、各通信端末１００が備えるコンテンツ、データ範囲、受信状態情報）を参照し、受信および再生したいコンテンツを有する通信端末１００を選択する。この選択の結果、視聴領域１２０ａにその画像、映像（コンテンツプレビューを含む）の少なくとも一部が表示される。更にユーザが当該画面において再生操作を行うことによりその映像は再生される。なお、この際、受信および再生したいコンテンツを自通信端末が保有していれば、自通信端末が補修するデータを再生する。
【００７８】
再生操作とは、視聴領域１２０ａに表示される再生アイコン（不図示）へのタップ処理等を指す。
【００７９】
ユーザに選択された通信端末１００がコンテンツの要求に応答し、このコンテンツのデータを送信すると、自通信端末１００ａにおいて当該データを受信し、コンテンツ表示部１２０が受信したデータを再生して、視聴領域１２０ａに表示する。上記の処理により、ユーザは所望するコンテンツの視聴が可能になる。
【００８０】
コンテンツ表示部１２０は、記憶部１４０に記憶されている通信端末情報１４１およびコンテンツ情報１４２の保有データ範囲を基に、視聴領域１２０ａに、再生中のコンテンツの経過時間等を表示してもよい。コンテンツ表示部１２０は、コンテンツの再生を開始すると、視聴コンテンツ名領域１２０ｃにおいて視聴中のコンテンツ名や、コンテンツの配信元である通信端末識別子、当該配信元である通信端末の受信状態情報等を表示してもよい。
【００８１】
また、コンテンツの受信および再生中に、当該コンテンツの配信元である通信端末１００からコンテンツ管理部１３３が停止通知メッセージを受信することがある。これは配信中のデータが、配信元である通信端末１００が保有するデータ範囲の上限に達する時等に発生する。この場合、コンテンツ管理部１３３は受信停止の旨をコンテンツ表示部１２０に通知し、コンテンツ表示部１２０はこの通知を入出力部１１０に表示する。
【００８２】
これにより、ユーザは視聴中コンテンツの再生が停止されることを事前に把握することができ、続きのデータを保有する他の通信端末１００′をコンテンツ一覧領域１２０ｂから選択し、選択した他の通信端末１００′に対して続きのデータの送信を要求することができる。なお、入出力部１１０はユーザからコンテンツの受信および再生の停止操作（指示）を受けることがある。停止操作は、視聴領域１２０ａに表示される停止アイコン（不図示）へのタップ処理等を指す。停止指示を受けると、コンテンツ表示部１２０はコンテンツ配信制御部１３０にコンテンツのデータ受信を停止する旨を通知し、コンテンツ配信制御部１３０は、停止要求メッセージをコンテンツのデータ送信元である他の通信端末１００′に送信する。
【００８３】
（通信端末の動作）
次に、本発明の第１の実施形態の通信端末１００の動作について説明する。
【００８４】
まず、本発明の第１の実施形態の通信端末１００が、制御メッセージ、コンテンツ要求メッセージ、停止通知メッセージ、停止要求メッセージ、コンテンツデータを受信した場合、または、コンテンツの受信中においてある一定時間データの受信が止まったことを検知するためのタイマーが発動した場合の動作を説明する。なお、本発明の第１の実施形態の通信端末１００においては、コンテンツ配信制御部１３０のデータ送受信部１３１は、所定の周期、または必要に応じて、繰り返し制御メッセージを送信する。制御メッセージの内容については、既に説明を行っているのでここでは説明を省略する。
【００８５】
図７は、本発明の第１の実施形態の通信端末１００が、上述した各種メッセージを受信、またはタイマーが発動した際の動作を示すフローチャートである。
【００８６】
通信端末１００の通信部１５０は、物理層（ＰＨＹ）において、フレーム（データ）の受信を検知すると、ＭＡＣ層や、ＩＰ層、トランスポート層などのネットワークプロトコル処理に従い、コンテンツ配信制御部１３０のデータ送受信部１３１にデータを入力する。データ送受信部１３１は、通信部１５０から入力されたデータを組み立てて、当該データが上述した各種メッセージのいずれのメッセージに応じたデータであるか否かを確認し、データ種別に応じて図７に示す動作を行う。また、コンテンツ配信制御部１３０のコンテンツ管理部１３３は、コンテンツ受信中においてデータの受信が一定時間停止することを検知するためのタイマーを用いるが、このタイマーが発動した、即ち規定の時間を経過した場合も、図７に示す動作を行う。
【００８７】
まず、ステップＡ１において、通信端末１００のデータ送受信部１３１（図２参照）は、通信部１５０から受信したデータが制御メッセージであるか否かを確認する。受信したデータが制御メッセージである場合（ステップＡ１のＹｅｓ）、データ送受信部１３１は、受信した制御メッセージをメッセージ管理部１３５に渡し、処理はステップＡ２に進められる。また、受信したデータが制御メッセージでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ１のＮｏ）、処理はステップＡ３に進められる。
【００８８】
ステップＡ２において、制御メッセージを受信したメッセージ管理部１３５は、当該制御メッセージの送信元である他の通信端末１００′の通信端末情報１４１を生成し、生成した通信端末情報１４１を記憶部１４０に格納する。メッセージ管理部１３５は、記憶部１４０に既に同じ通信端末識別子を有する通信端末情報１４１が格納されている場合、当該通信端末情報１４１の有効期限情報およびコンテンツリストの更新を行い、更新した情報をコンテンツ表示部１２０に通知して、処理はステップＡ９に進められる。
【００８９】
ステップＡ３において、データ送受信部１３１は、通信部１５０から受信したデータがコンテンツのデータであるか否かを確認する。受信したデータがコンテンツのデータである場合（ステップＡ３のＹｅｓ）、データ送受信部１３１は、受信したデータをコンテンツ管理部１３３に渡し、処理はステップＡ４に進められる。また、受信したデータがコンテンツのデータでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ３のＮｏ）、処理はステップＡ６に進められる。
【００９０】
ステップＡ４において、コンテンツ管理部１３３は、受信したコンテンツのデータを記憶部１４０に記憶する。また、コンテンツ管理部１３３は、記憶部１４０内の当該コンテンツに対応するコンテンツ情報１４２（図５参照）の保有データ範囲を更新し、受信状態状況が「受信中でない（例えば、‘０’）」であれば、これを「受信中（例えば、‘１’）」に変更する。コンテンツ管理部１３３は、記憶部１４０内に当該コンテンツに対応するコンテンツ情報１４２が無ければ、新たにコンテンツ情報１４２を作成する。さらに、コンテンツ管理部１３３は、受信しているコンテンツの保有データ範囲、受信状態情報について、変更があればコンテンツ表示部１２０に通知し、コンテンツ表示部１２０はその情報を入出力部１１０に表示する。この際、コンテンツ管理部１３３は、当該コンテンツの再生処理を行う必要があれば、受信したコンテンツのデータもコンテンツ表示部１２０に送信する。なお、コンテンツ表示部１２０におけるコンテンツの再生処理は、ＭＰＥＧ等の映像データ圧縮技術を用いた再生処理であり、既存の技術を用いて行うため、詳細な説明は省略する。
【００９１】
ステップＡ５において、コンテンツ管理部１３３は、当該コンテンツのデータ受信が予め定められた一定時間の間停止することを検知するため、タイマーをセットし、処理はステップＡ６に進められる。このようなタイマーを用いたタイムアウト処理は、既存の技術を用いて行うため、詳細な説明は省略するが、先に受信したデータメッセージに対するタイマーが起動している場合は、それをリセットすることも含む。
【００９２】
ステップＡ６において、データ送受信部１３１は、通信部１５０から受信したデータが停止通知メッセージであるか否かを確認する。受信したデータが停止通知メッセージである場合（ステップＡ６のＹｅｓ）、データ送受信部１３１は、受信した停止通知メッセージをメッセージ管理部１３５に渡し、処理はステップＡ７に進められる。また、受信したデータが停止通知メッセージでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ６のＮｏ）、処理はステップＡ８に進められる。
【００９３】
ステップＡ７において、メッセージ管理部１３５は停止通知メッセージを受信すると、当該停止通知メッセージの送信元である通信端末１００からのコンテンツのデータ送信が停止することを検知し、記憶部１４０に記憶された当該コンテンツに対するコンテンツ情報１４２の受信状態情報を「受信中でない」に変更し、更新した受信状態情報をコンテンツ表示部１２０に通知し、処理はステップＡ９に進められる。
【００９４】
ステップＡ８において、コンテンツ管理部１３３は、ステップＡ５においてセットしているタイマーが予め設定された一定時間を経過すると、コンテンツのデータ受信が停止したと判断する。具体的には、データ送受信部１３１が各種メッセージを受信せず、このタイマーが発動した場合（ステップＡ８のＹｅｓ）、コンテンツ管理部１３３は受信中のデータが一定時間到着しなかったことから、コンテンツのデータ送信元である通信端末１００との接続が切断されたと判断し、受信が停止したと判断する。この場合、停止通知メッセージの受信と同様、コンテンツ管理部１３３は当該コンテンツに対するコンテンツ情報１４２の受信状態情報を「受信中でない」に変更し、ステップＡ７と同様、更新した受信状態情報をコンテンツ表示部１２０に通知し、処理はステップＡ９に進められる。一方、ステップＡ５においてセットしているタイマーが予め設定された一定時間を経過していない場合（ステップＡ８のＮｏ）、処理はステップＡ１０に進められる。
【００９５】
ステップＡ９において、データ送受信部１３１から他の通信端末１００′の保有するコンテンツ情報、または、コンテンツ管理部１３３からコンテンツの受信状況などの情報が通知されると、コンテンツ表示部１２０は、それらの情報を入出力部１１０に表示し、処理はステップＡ１０に進められる。具体的な表示方法については、図６で説明した表示方法と同様であるため、ここでは詳細な説明は省略する。
【００９６】
ステップＡ１０において、データ送受信部１３１は、通信部１５０から受信したデータがコンテンツ要求メッセージであるか否かを確認する。受信したデータがコンテンツ要求メッセージである場合（ステップＡ１０のＹｅｓ）、データ送受信部１３１は、受信したコンテンツ要求メッセージをメッセージ管理部１３５に入力し、処理はステップＡ１１に進められる。また、受信したデータがコンテンツ要求メッセージでない場合（ステップＡ１０のＮｏ）、処理はステップＡ１２に進められる。
【００９７】
ステップＡ１１において、メッセージ管理部１３５はコンテンツ要求メッセージを受信すると、当該メッセージに格納されているコンテンツ要求メッセージの送信元である通信端末識別子、コンテンツ識別子、及び送信データ開始位置を確認し、これらをコンテンツ管理部１３３に通知する。コンテンツ管理部１３３は、記憶部１４０に記憶されている当該コンテンツ識別子に対応するコンテンツのデータのうち、送信データ開始位置からのデータを読み出し、コンテンツ要求メッセージの送信元である通信端末１００に対して、データ送受信部１３１、通信部１５０を介して送信を開始し、処理はステップＡ１２に進められる。このようなデータの送受信については、ＵＤＰやＴＣＰなどの一般的な通信プロトコルを用いてデータの送受信を行っても良いし、コンテンツ管理部１３３が独自にＡＣＫやＮＡＣＫを用いて信頼性のある方法で送受信を行っても良い。なお、本処理においてコンテンツのデータ送受信が開始されると、図７に示すフローチャートの処理とは独立に当該送受信通信端末間でデータの送受信が継続される。
【００９８】
図７には図示しないが、コンテンツ管理部１３３は、データの送信中に保有データの最後まで送信してしまった場合や、通信端末の電源を切るためなど、コンテンツのデータ送信を終了する場合は、当該データの送信先通信端末に対して停止通知メッセージを送信し、コンテンツのデータ送信を停止することができる。
【００９９】
ステップＡ１２において、データ送受信部１３１は、通信部１５０から受信したデータが停止要求メッセージであるか否かを確認する。受信したデータが停止要求メッセージである場合（ステップＡ１２のＹｅｓ）、データ送受信部１３１は、受信した停止要求メッセージをメッセージ管理部１３５に入力し、処理はステップＡ１３に進められる。また、受信したデータが停止要求メッセージでない場合（ステップＡ１２のＮｏ）、処理を終了する。
【０１００】
ステップＡ１３において、メッセージ管理部１３５は停止要求メッセージを受信すると、当該メッセージの送信元である通信端末１００との間で送受信を行っているコンテンツのデータ送信処理を停止するようコンテンツ管理部１３３に指示し、処理を終了する。なお、停止要求メッセージには、送信処理を停止したいコンテンツ識別子や送信元通信端末の識別子が格納されている。さらに、メッセージ管理部１３５は、当該メッセージを受信したことを示す確認応答メッセージを停止要求メッセージの送信元の通信端末１００に返信してもよい。
【０１０１】
以上、自通信端末１００ａが保有するコンテンツを、他の通信端末１００′に対して送信する場合について説明した。次は、自通信端末１００ａが、他の通信端末１００′が保有するコンテンツを受信する場合について説明する。図８は、本発明の第１の実施形態に係る通信端末１００がコンテンツの受信を要求する場合の動作を示すフローチャートである。
【０１０２】
ステップＢ１において、自通信端末１００ａのデータ送受信部１３１は、現在、他の通信端末１００′からコンテンツのデータを受信中か否かを確認する。他の通信端末１００′から当該データを受信中である場合（ステップＢ１のＹｅｓ）、処理はステップＢ２に進められる。他の通信端末１００′から当該データを受信していない場合（ステップＢ１のＮｏ）、処理はステップＢ５に進められる。
【０１０３】
ステップＢ２において、自通信端末１００ａは、現在受信および再生中のコンテンツのデータ受信を停止する。具体的には、入出力部１１０に表示されている画面に、例えば、停止ボタンを提示し、ユーザが当該ボタンに接触、押下する等して停止指示を受信するか、あるいは、ユーザに当該ボタンに接触、押下等するように促し、ユーザから停止指示を受信することで、実行される。入出力部１１０はユーザから停止指示が出されたことを、コンテンツ表示部１２０を介して、コンテンツ配信制御部１３０のメッセージ作成部１３４に入力する。メッセージ作成部１３４は、ユーザからの停止指示を受け取ると、受信中のデータの送信停止を依頼するための停止要求メッセージを作成する。作成された停止要求メッセージは、データ送受信部１３１および通信部１５０を介して、当該コンテンツのデータ送信元の通信端末１００に対して送信され、処理はステップＢ３に進められる。なお、停止要求メッセージには、自通信端末１００ａの識別子（停止要求元である通信端末の識別子）と、停止を要求するコンテンツを識別可能な情報とが少なくとも含まれる。
【０１０４】
ステップＢ３において、停止要求メッセージを送信後、コンテンツ管理部１３３は、当該コンテンツのデータ受信は停止したと判断し、記憶部１４０に記憶された当該コンテンツに対するコンテンツ情報１４２の受信状態情報を「受信中」から「受信中でない」に変更する。コンテンツ管理部１３３は、上記の受信停止処理が完了したことをコンテンツ表示部１２０に通知し、処理はステップＢ４に進められる。
【０１０５】
なお、停止要求メッセージを受信した他の通信端末１００′のメッセージ管理部１３５は、当該停止要求メッセージを受信したことを表す確認応答メッセージを、停止要求メッセージの送信元である他の通信端末１００′に返信する。尚、停止要求メッセージを送信した自通信端末１００ａは、その確認応答メッセージを受信した時点で、コンテンツのデータ送信が停止したと判断してもよい。
【０１０６】
ステップＢ４において、コンテンツのデータ受信停止処理が完了したことをコンテンツ管理部１３３から通知されたコンテンツ表示部１２０は、当該コンテンツの受信が正しく停止したことを入出力部１１０に表示し、処理はステップＢ５に進められる。
【０１０７】
ステップＢ５において、コンテンツ表示部１２０は、入出力部１１０のコンテンツ一覧領域１２０ｂにコンテンツリストを表示し、ユーザが所望のコンテンツと当該コンテンツのデータを保有する他の通信端末１００′を選択するよう促す。ユーザがコンテンツと当該データを保有する他の通信端末１００′とを選択すると、コンテンツ表示部１２０は選択された情報を読み取り、コンテンツ管理部１３３に通知する。この後、処理はステップＢ６に進められる。
【０１０８】
この際、コンテンツ表示部１２０は、当該他の通信端末１００′が保有しているコンテンツのデータ範囲の中から送信を希望する配信データ開始位置をユーザが指定できるような入力欄を入出力部１１０に表示させ、そこに入力された配信データ開始位置情報を読み取ってコンテンツ管理部１３３に通知してもよい。
【０１０９】
ステップＢ６において、コンテンツ管理部１３３は、メッセージ作成部１３４に、所望のコンテンツのデータを保有する他の通信端末１００′に対し、所望のデータを、保有データの先頭オフセットから送信するように要求するコンテンツ要求メッセージを作成するよう依頼する。メッセージ作成部１３４は、作成したコンテンツ要求データを、依頼する他の通信端末１００′に送信する。
【０１１０】
尚、このコンテンツ要求データの送信後、コンテンツ配信制御部１３０は、当該データの受信が開始されるのを待機し、受信が始まれば図７に示した処理（ステップＡ１〜Ａ１３）を行う。
【０１１１】
コンテンツ表示部１２０から配信データ開始位置の通知を受ける場合には、メッセージ管理部１３５は、その開始位置もコンテンツ要求メッセージに含めるようメッセージ作成部１３４に依頼する。また、コンテンツ管理部１３３は、予め設定された一定時間を待っても当該コンテンツ要求メッセージを基に要求するコンテンツのデータパケットを受信しない場合は、何らかの原因でコンテンツ要求メッセージが送信先の他の通信端末１００′に届かなかったものと判断し、コンテンツのデータ受信が始まらないことをコンテンツ表示部１２０に通知し、コンテンツ表示部１２０はこの通知を入出力部１１０に表示する。これにより、再度、コンテンツの要求を行うようユーザに促す。
【０１１２】
本発明の第１の実施形態に係る通信端末は、通信ネットワークを経由したストリーム型コンテンツの配信において、当該コンテンツのストリームデータの連続性を考慮して最適なデータ要求先通信端末を選択することができる。即ち、自通信端末１００ａにて再生したい所望コンテンツのデータを保有する送信元の通信端末１００を切り替える際に、最も消失データが少なく、かつ、将来の切り替え頻度が小さくなる通信端末１００を選択することができる。これにより、自通信端末１００ａは、安定的にデータを受信し、コンテンツを視聴することができる。
【０１１３】
本実施形態では、通信端末１００は、制御メッセージに含めるコンテンツリストにおける各コンテンツに対して、当該コンテンツの作成、あるいは登録した通信端末識別子の情報を含めて送信し、コンテンツ表示部１２０は当該情報を入出力部１１０に表示させてもよい。この場合、ユーザは、コンテンツを作成、登録した通信端末を優先的に選択することができる。
【０１１４】
＜本発明の第２の実施形態＞
第１の実施形態では、隣接する通信端末１００からコンテンツの配信元通信端末として最も適切な通信端末を選択することができた。第２の実施形態では、隣接する通信端末に隣接する通信端末をも含めたネットワーク内に存在する全ての通信端末から、コンテンツの配信元通信端末として最も適切な通信端末を選択することを可能とする通信端末等について説明する。
【０１１５】
図９は、本発明の第２の実施形態に係る通信端末２００の複数から構成される通信システムを示す図である。複数の通信端末２００を区別するために、図９中の４つの通信端末２００を、各々通信端末２００ａ、２００ｂ、２００ｃ、２００ｄと記載する。通信端末２００ａ〜２００ｄは、各々コンテンツＡ、Ｂ、Ｃ、Ｄを保有している。また、通信端末２００ａ、２００ｂ、２００ｃは、互いに通信可能範囲１Ａに存在している（図中の点線の円は各通信端末の通信可能範囲を示す）。通信端末２００ｂ、２００ｃ、２００ｄは互いに通信可能範囲１Ｂに存在している。この場合、通信端末２００ａ、２００ｄの間は直接制御メッセージを送受信することは不可能であるが、互いに隣接し合う通信端末２００ｂ、２００ｃを介せば、制御メッセージを送受信し、ひいては、コンテンツのデータ送受信が可能となる。以下、このような実施形態を可能とする通信端末２００について詳細に説明する。
【０１１６】
（通信端末）
本発明の第２の実施形態に係る通信端末２００の構成例を図１０に示す。通信端末２００は、入出力部１１０、コンテンツ表示部２２０、コンテンツ配信制御部２３０、記憶部２４０および通信部１５０を備える。尚、コンテンツ表示部２２０、コンテンツ配信制御部２３０および記憶部２４０以外の構成は、第１の実施形態と同様であるため、図２と同じ符号を付して、説明を省略する。また、説明の便宜の為、自通信端末は「自通信端末２００ａ」、自通信端末２００ａに隣接する他の通信端末（図９に示す通信端末２００ｂ、２００ｃ）には「隣接する通信端末２００′」、自通信端末２００ａには隣接しないが他の通信端末２００′には隣接する通信端末（図９に示す通信端末２００ｄ）は「非隣接通信端末２００″」と記載する。
【０１１７】
記憶部２４０は、通信端末情報２４１とコンテンツ情報２４２とを記憶する。
【０１１８】
通信端末情報２４１は、隣接する他の通信端末２００′から送信される制御メッセージを受信した際に生成され、記憶部２４０に格納される。具体的に、通信端末情報２４１は、第１の実施形態と同様に、通信端末識別子１４１Ａと、有効期限情報１４１Ｂとを含む。なお、第１の実施形態においては（図４参照）コンテンツリストが含まれていたが、本実施形態における通信端末情報２４１には、コンテンツリストは含まれない。コンテンツリストはコンテンツ情報２４２として記憶される（図１２参照）。
【０１１９】
コンテンツ情報２４２について説明する。第１の実施形態における通信端末情報１４１は、隣接する他の通信端末１００′が送信する制御メッセージを受信した場合に、図４に示すような通信端末情報１４１として記憶部１４０に格納する。この際、図４に示す通信端末情報１４１のコンテンツリスト１４１Ｃは、当該制御メッセージの送信元通信端末が保有するコンテンツリストである。これに対し、第２の実施形態における通信端末情報２４１は、隣接する通信端末２００′が送信する制御メッセージを受信すると、図１１に示す通信端末情報２４１として記憶部２４０に格納される。図１１は、通信端末２００の記憶部２４０に記憶される通信端末情報２４１の構成例を示す。他の通信端末２００′から制御メッセージを受信した自通信端末２００ａは、図１１に示すような通信端末情報２４１を生成し、記憶部２４０に格納する。なお、第１の実施形態における通信端末情報１４１では、さらにコンテンツリストが含まれていたが、本実施形態における通信端末情報２４１ではコンテンツリストは含まず、コンテンツリストは後述するコンテンツ情報２４２として記憶する。
【０１２０】
第１の実施形態におけるコンテンツ情報１４２は、自通信端末２００ａが保有するコンテンツに関する情報である。それに対し、第２の実施形態におけるコンテンツ情報２４２は、自通信端末２００ａが保有するコンテンツに関するものだけでなく、受信した隣接の通信端末２００からの制御メッセージに含まれるコンテンツ情報も含められる。
【０１２１】
コンテンツ情報２４２は、自通信端末２００ａが隣接する他の通信端末２００′からコンテンツのデータまたは制御メッセージを受信したときに更新される。
【０１２２】
具体的に、コンテンツ情報２４２は、「コンテンツ識別子」１４２Ａと、「保有通信端末リスト」２４２Ｄとを備える。保有通信端末リスト２４２Ｄは、「通信端末識別子」、「保有通信端末識別子」、「保有データ範囲」および「受信状態情報」を含む。コンテンツ情報２４２はコンテンツ毎に存在する。具体的には、コンテンツ情報２４２は、自通信端末２００ａが保有する全てのコンテンツおよび隣接する通信端末２００′から受信する制御メッセージ（図１３参照）のコンテンツリストに含まれる全てのコンテンツの各々に対し存在する。
【０１２３】
「通信端末識別子」は、制御メッセージを受信した場合の当該制御メッセージの送信元である通信端末の識別子である。自通信端末２００ａが保有するコンテンツである場合は、自通信端末の識別子となる。
【０１２４】
「保有通信端末識別子」は、当該コンテンツを保有する通信端末の識別子である。制御メッセージを受信した場合は、その制御メッセージ内のコンテンツリストに含まれる保有通信端末識別子である。自通信端末２００ａが保有するコンテンツの場合には、自通信端末の識別子である。
【０１２５】
「保有データ範囲」は、保有通信端末識別子に紐付られた通信端末２００が保有するデータ範囲である。
【０１２６】
「受信状態情報」は、保有通信端末識別子に紐付られた通信端末２００が当該コンテンツのデータを受信中であるか否かを示す情報である。
【０１２７】
保有データ範囲および受信状態情報に関しては、第１の実施形態と同様であるため説明を省略する。
【０１２８】
コンテンツ配信制御部は２３０、データ送受信部２３１、コンテンツリスト作成部２３２、コンテンツ管理部２３３、メッセージ作成部２３４およびメッセージ管理部２３５を備える。尚、コンテンツ管理部２３３、メッセージ作成部２３４およびメッセージ管理部２３５以外の構成は第１の実施形態と同様であるため、説明は省略する。
【０１２９】
メッセージ作成部２３４について説明する。第１の実施形態において、メッセージ作成部１３４は、自通信端末１００ａが保有するコンテンツ毎に、保有データ範囲と当該コンテンツを受信中か否かを示す受信状態情報とを組にしたコンテンツリストを有する制御メッセージ１３４ａ（図３参照）を作成する。
【０１３０】
これに対して、本実施形態のメッセージ作成部２３４は、自通信端末２００ａが保有するコンテンツ毎および隣接する通信端末２００′が保有するコンテンツ毎に、保有データ範囲と受信状態情報とを組にしたコンテンツリストを有する制御メッセージ２３４ａ（図１２参照）を作成する。制御メッセージ２３４ａに含める保有通信端末リストは、自通信端末２００ａのコンテンツ情報２４２（図１２参照）の内の、保有通信端末リスト２４２Ｄを基に作成される。
【０１３１】
コンテンツ管理部２３３は、コンテンツのデータの受信を開始すると、当該データが自通信端末２００ａ宛てか、隣接する通信端末２００′宛てかを判断する。自通信端末２００ａ宛ての場合、コンテンツ管理部２３３は、当該データをコンテンツ表示部２２０に引き渡す。隣接通信端末２００′宛ての場合、コンテンツ管理部２３３は、受信したコンテンツのデータをコンテンツ要求メッセージの送信元である隣接通信端末２００′に送信するようデータ送受信部２３１に指示する。
【０１３２】
コンテンツ管理部２３３は、隣接する通信端末２００′に送信したコンテンツは自通信端末２００ａが要求したコンテンツではないことを示す情報を、その基となるコンテンツ要求メッセージの送信元通信端末識別子と共に記憶部２４０に格納する（不図示）。
【０１３３】
メッセージ管理部２３５について説明する。第１の実施形態におけるメッセージ管理部１３５は、自通信端末１００ａ宛のコンテンツ要求メッセージや停止要求メッセージを受信し、受信したメッセージの内容に応じた処理を行う。また、メッセージ管理部１３５は、自通信端末１００ａが送信中のコンテンツを停止する場合、当該コンテンツを受信中の他の通信端末１００′に対して、その送信を停止することを通知するようメッセージ作成部２３４に指示を出す。
【０１３４】
これらの処理に加えて、本実施形態のメッセージ管理部２３５は、自通信端末２００ａが保有していないコンテンツのコンテンツ要求メッセージを受信した場合、当該コンテンツを保有する隣接する通信端末２００′または当該コンテンツの保有端末について制御メッセージで通知してきた隣接する通信端末２００′に対して、コンテンツ要求メッセージを送信するようメッセージ作成部２３４に指示する。
【０１３５】
コンテンツの停止要求メッセージを受信した場合、メッセージ管理部２３５は、当該コンテンツは自通信端末２００ａが要求したコンテンツであるか否かを、記憶部２４０に格納された転送情報を基に判断し、自通信端末２００ａが要求したコンテンツでなければ、当該コンテンツを要求するコンテンツ要求メッセージの送信先である隣接通信端末２００′に対して、停止通知メッセージを転送するようデータ送受信部２３１に指示する。同様に、停止通知メッセージを受信した場合、メッセージ管理部２３５は、当該コンテンツは自通信端末２００ａが要求したコンテンツであるか否かを記憶部２４０に格納された転送情報を基に判断し、自通信端末２００ａが要求したコンテンツでなければ、当該コンテンツを要求するコンテンツ要求メッセージの送信元である隣接通信端末２００′に対して、停止通知メッセージを転送するようデータ送受信部２３１に指示する。
【０１３６】
ここで、各通信端末２００が所定周期または必要に応じて互いに送受信する「制御メッセージ」について説明する。図１３は、第２の実施形態における制御メッセージ２３４ａの構成例を示す図である。制御メッセージは、「通信端末識別子」と「コンテンツリスト」とを含む。尚、図１１〜１３において、同じデータ項目名を有するデータの内容は同じである。
【０１３７】
通信端末識別子は、通信端末情報２４１を基に作成される。
【０１３８】
コンテンツリストは、コンテンツ毎に「コンテンツ識別子」と「保有通信端末リスト」とを備える。保有通信端末リストは「保有通信端末識別子」、「保有データ範囲」、「受信状態情報」を備える。保有通信端末リストは、コンテンツ情報２４２（図１２参照）を基に作成される。
【０１３９】
ここで、コンテンツ情報２４２の作成例１について図１４を用いて説明する。通信端末２００ｃ（図９参照）が制御メッセージを隣接する通信端末２００ａに送信した場合に、通信端末２００ａのメッセージ管理部２３５はコンテンツ情報２４２を作成する。図９に示す通信端末２００ｃは、通信端末２００ａ、２００ｄが送信した制御メッセージを受信しているものとすると、通信端末２００ｃが送信する制御メッセージに、自らが保有するコンテンツＣだけでなく、コンテンツＡ、Ｄの情報を含めて他の通信端末２００′に送信する。この制御メッセージを受信した通信端末２００ａのメッセージ管理部２３５は、自らが保有しているコンテンツＡに加えて、通信端末２００ｃから受信した制御メッセージに含まれているコンテンツの情報をコンテンツ情報２４２に加える。この際、コンテンツＡは通信端末２００ａが保有しているコンテンツであり、通信端末識別子、保有通信端末識別子は共に“２００ａ”であることから、コンテンツＡについては更新しない。また、メッセージ管理部２３５は、新たに通知を受けたコンテンツＣ、Ｄについては、通信端末２００ｃから受信した制御メッセージに含まれるコンテンツ識別子と保有通信端末識別子の通りとし、通信端末識別子は当該制御メッセージの送信元通信端末である“２００ｃ”とする。また、メッセージ管理部２３５は、コンテンツＣを保有するのは通信端末２００ｃ、コンテンツＤを保有するのは通信端末２００ｄであるため、コンテンツ情報２４２の保有通信端末識別子をコンテンツＣは“２００ｃ”、コンテンツＤは“２００ｄ”と入力する。
【０１４０】
次に、上記の作成例１の後、更に制御メッセージが送信された場合のコンテンツ情報２４２の作成例２について図１５を参照して説明する。作成例１の後に、通信端末２００ｂ（図９参照）が制御メッセージを隣接する通信端末２００ａに送信すると、通信端末２００ａのメッセージ管理部２３５はコンテンツ情報２４２を更新する。
【０１４１】
通信端末２００ｂは、通信端末２００ａ、２００ｃ、２００ｄが送信した制御メッセージを受信していることから、自らが送信する制御メッセージに、通信端末２００ｂが保有するコンテンツＢだけでなく、コンテンツＡ、Ｃ、Ｄの情報を含めて送信する。この制御メッセージを受信した通信端末２００ａのメッセージ管理部２３５は、自らが保有しているコンテンツＡに加えて、通信端末２００ｂから受信した制御メッセージに含まれているコンテンツの情報をコンテンツ情報２４２に加える。この際、メッセージ管理部２３５は、コンテンツＡについては、通信端末識別子、保有通信端末識別子は共に自通信端末を示す“２００ａ”であることから、コンテンツＡについては更新しない。また、メッセージ管理部２３５は、コンテンツＣについても、通信端末識別子、保有通信端末識別子が共に“２００ｃ”であり、制御メッセージを直接受信できる自通信端末２００ａに対し隣接する通信端末２００′が保有しているコンテンツであるため、更新しない。コンテンツＢは、新たに通知を受けたコンテンツであることから、メッセージ管理部２３５は、通信端末識別子、保有通信端末を“２００ｂ”と入力して新たに追加する。コンテンツＤについては、通信端末識別子が図１４に示す“２００ｃ”から図１５に示す“２００ｂ”に変更されたため、メッセージ管理部２３５は、保有通信端末は通信端末２００ｄのまま、最新の情報として通信端末識別子を“２００ｂ”に更新する。
このように、コンテンツ情報２４２の作成にあたっては、隣接する通信端末２００′から制御メッセージを受信すると、制御メッセージに含まれる各コンテンツに対して、コンテンツ情報２４２の保有端末リストに含まれる保有通信端末識別子と保有通信端末識別子を確認する。その結果、当該コンテンツのコンテンツ情報２４２の保有端末リストに含まれる通信端末識別子と保有通信端末識別子が同一であれば当該情報は更新しない。また、制御メッセージに含まれるコンテンツの保有通信端末識別子と当該コンテンツのコンテンツ情報２４２の保有端末リストに含まれる保有通信端末識別子が同一の情報であれば、新たに受信した制御メッセージの送信元通信端末の識別子を通信端末識別子として更新する。これにより、常に最新の情報をコンテンツ情報２４２として管理することができる。
【０１４２】
また、同一のコンテンツであっても保有通信端末識別子がコンテンツ情報２４２で管理されていない通信端末２００が保有していれば、同一のコンテンツに対して当該情報も管理する。なお、通信端末情報２４１で管理している通信端末の有効期間が切れた場合、当該通信端末が通信端末識別子として管理されているコンテンツ情報２４２についても有効期間が切れたものとし、無効な情報として扱う。
【０１４３】
コンテンツ表示部２２０は、自通信端末２００および隣接する他の通信端末２００′が保有するコンテンツ名、当該コンテンツの保有通信端末識別子、当該保有通信端末の保有データ範囲および受信状態情報から成る一覧を入出力部１１０（ディスプレイ等）に表示する。また、コンテンツ表示部２２０は、ユーザからのコンテンツの受信、再生および再生停止要求などを受け付けるためのユーザインタフェースを提供する。これに加え、本実施形態におけるコンテンツ表示部２２０は、コンテンツ情報２４２に紐付られた全てのコンテンツ（非隣接通信端末２００″が保有するコンテンツも含む）の一覧を、入出力部１１０に表示する。
【０１４４】
具体的にコンテンツ表示部２２０は、コンテンツ一覧領域１２０ｂ（図６参照）に、コンテンツ情報２４２（図１２参照）のコンテンツ識別子１４２Ａに紐付られたコンテンツと、保有通信端末リスト２４２Ｄに含まれる通信端末識別子、保有データ範囲および受信状態情報を表示する。受信状態情報は、「受信中」、「非受信中」、「受信可能」という３つの状態で表される。この際、「受信中でない」には自通信端末２００ａがコンテンツを保有していることも含まれる。
【０１４５】
ここで、「受信可能」な状態のコンテンツとは、保有通信端末リスト２４２Ｄにおける「通信端末識別子」と「保有通信端末識別子」とが一致しないコンテンツである。例として、図９を再度参照すると、自通信端末２００ａが欲するコンテンツを、隣接する他の通信端末２００ｂまたは２００ｃは、当該保有データ範囲の当該コンテンツを受信あるいは保有していないが、その通信端末２００ｂ、２００ｃを経由して、隣接しない通信端末２００ｄから当該コンテンツのデータを受信することが可能であることを意味する。
【０１４６】
自通信端末２００ａのユーザが受信および再生したいコンテンツとして、「受信可能」なコンテンツの通信端末２００ｄを選択した場合、自通信端末２００ａは、先ず、隣接する通信端末２００ｂ、あるいは２００ｃにコンテンツ要求メッセージを送信し、このコンテンツ要求メッセージを受けた通信端末２００ｂ、あるいは２００ｃが、更に隣接する通信端末２００ｄに対してコンテンツ要求メッセージを送信する。このようにデータ配信は、ホップバイホップで送信される。ポップとは、ある通信端末１００から次の通信端末１００へデータを渡すことを指す（この場合、通信端末２００ｂから次の通信端末２００ｃ）。データを保有する通信端末からデータを所望する通信端末へデータを引き渡す際には、複数の通信端末がポップ処理を行うことがある。この引き渡し回数を通信ポップ数と呼ぶ。
【０１４７】
コンテンツ要求メッセージを受けた通信端末２００ｄは、保有するコンテンツのデータをホップバイホップ送信し、自通信端末２００ａは当該データを受信することが可能となる。
【０１４８】
（通信端末の動作）
本発明の第２の実施形態の通信端末２００の動作について説明する。本実施形態の通信端末２００の動作では、図７に示す本発明の第１の実施形態の通信端末が各種メッセージを受信、またはタイマーが発動した動作を示すフローチャートにおけるステップＡ２、ステップＡ９、ステップＡ１０のＹｅｓ以降の処理が異なる。
【０１４９】
図１６Ａおよび図１６Ｂは、本発明の第２の実施形態に係る通信端末２００が各種メッセージを受信、またはタイマーが発動した際の動作を示すフローチャートである。
【０１５０】
まず、図１６Ａに示すステップＡ１において、通信端末２００のデータ送受信部２３１（図１０参照）は、通信部１５０から受信したデータが制御メッセージであるか否かを確認する。受信したデータが制御メッセージである場合（ステップＡ１のＹｅｓ）、データ送受信部２３１は、受信した制御メッセージをメッセージ管理部２３５に渡し、処理はステップＡ１４に進められる。また、受信したデータが制御メッセージでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ１のＮｏ）、処理はステップＡ３に進められる。
【０１５１】
ステップＡ１４において、データ送受信部２３１から制御メッセージを受信したメッセージ管理部２３５は、当該制御メッセージの送信元の通信端末２００に対応する通信端末情報２４１を生成し、記憶部２４０に格納する。またはメッセージ管理部２３５は、記憶部２４０に記憶されている通信端末情報２４１に含まれる有効期限情報の更新を行う。
【０１５２】
コンテンツ管理部２３３は、受信した制御メッセージに含まれるコンテンツリストの情報から、記憶部２４０に記憶されているコンテンツ情報２４２の更新を行う。コンテンツ管理部２３３は、更新した情報をコンテンツ表示部１２０に通知し、処理はステップＡ１５に進められる。尚、コンテンツ情報２４２の更新方法については、後述する。
【０１５３】
ステップＡ３において、データ送受信部２３１は、通信部１５０から受信したデータがコンテンツのデータであるか否かを確認する。受信したデータがコンテンツのデータである場合（ステップＡ３のＹｅｓ）、データ送受信部２３１は、受信したデータをコンテンツ管理部２３３に渡し、処理はステップＡ４に進められる。また、受信したデータがコンテンツのデータでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ３のＮｏ）、処理はステップＡ６に進められる。
【０１５４】
ステップＡ４において、コンテンツ管理部２３３は、受信したコンテンツのデータを記憶部２４０に記憶する。また、コンテンツ管理部２３３は、記憶部２４０内の当該コンテンツに対応するコンテンツ情報２４２（図１２参照）の保有データ範囲を更新し、受信状態状況を変更する。コンテンツ管理部２３３は、記憶部２４０内に当該コンテンツに対応するコンテンツ情報２４２が無ければ、新たにコンテンツ情報２４２を作成する。さらに、コンテンツ管理部２３３は、受信しているコンテンツの保有データ範囲、受信状態情報について、変更があればコンテンツ表示部２２０に通知し、コンテンツ表示部２２０はその情報を入出力部１１０に表示する。この際、コンテンツ管理部２３３は、当該コンテンツの再生処理を行う必要があれば、受信したコンテンツのデータもコンテンツ表示部２２０に送信する。
【０１５５】
ステップＡ５において、コンテンツ管理部２３３は、当該コンテンツのデータ受信が予め定められた一定時間の間停止することを検知するため、タイマーをセットし、処理はステップＡ６に進められる。
【０１５６】
ステップＡ６において、データ送受信部２３１は、通信部１５０から受信したデータが停止通知メッセージであるか否かを確認する。受信したデータが停止通知メッセージである場合（ステップＡ６のＹｅｓ）、データ送受信部２３１は、受信した停止通知メッセージを、メッセージ管理部２３５を介してコンテンツ管理部２３３に渡し、処理はステップＡ７に進められる。また、受信したデータが停止通知メッセージでない、あるいはデータ受信が停止したことを検知するタイマーが発動した場合（ステップＡ６のＮｏ）、処理はステップＡ８に進められる。
【０１５７】
ステップＡ７において、コンテンツ管理部２３３は、受信した停止通知メッセージの送信元である通信端末１００からのコンテンツのデータ送信が停止することを検知し、記憶部２４０に記憶された当該コンテンツに対するコンテンツ情報２４２の受信状態情報を「受信中でない」に変更し、更新した受信状態情報をコンテンツ表示部２２０に通知し、処理はステップＡ１５に進められる。
【０１５８】
ステップＡ８において、コンテンツ管理部２３３は、ステップＡ５においてセットしているタイマーが予め設定された一定時間を経過すると、コンテンツのデータの受信が停止したと判断する。具体的には、データ送受信部２３１が各種メッセージを受信せず、このタイマーが発動した場合（ステップＡ８のＹｅｓ）、コンテンツ管理部２３３は受信中のコンテンツのデータが一定時間到着しなかったことから、当該データの送信元である通信端末２００との接続が切断されたと判断し、受信が停止したと判断する。この場合、停止通知メッセージの受信と同様、コンテンツ管理部２３３は当該コンテンツに対するコンテンツ情報２４２の受信状態情報を「受信中でない」に変更し、更新した受信状態情報をコンテンツ表示部２２０に通知し、処理はステップＡ１５に進められる。一方、ステップＡ５においてセットしているタイマーが予め設定された一定時間を経過していない場合（ステップＡ８のＮｏ）、処理はステップＡ１０に進められる。
【０１５９】
ステップＡ１５において、データ送受信部２３１からコンテンツ情報２４２またはコンテンツ管理部２３３からコンテンツの受信状態情報が通知されると、コンテンツ表示部２２０は、それらの情報を入出力部１１０に表示し、処理はステップＡ１０に進められる。具体的な表示方法については、第１の実施形態における表示方法と同様であるため、ここでは詳細な説明は省略する。
【０１６０】
図１６Ｂに示すステップＡ１０において、データ送受信部２３１は、通信部１５０から受信したデータがコンテンツ要求メッセージであるか否かを確認する。受信したデータがコンテンツ要求メッセージである場合（ステップＡ１０のＹｅｓ）、データ送受信部２３１は、受信したコンテンツ要求メッセージをメッセージ管理部２３５に送信する。メッセージ管理部２３５はこのメッセージをコンテンツ管理部２３３に入力し、処理はステップＡ１６に進められる。また、受信したデータがコンテンツ要求メッセージでない場合（ステップＡ１０のＮｏ）、処理はステップＡ１２に進められる。
【０１６１】
ステップＡ１６において、コンテンツ管理部２３３は受信したコンテンツ要求メッセージで要求されているコンテンツおよび当該コンテンツのデータ送信開始位置が、自通信端末２００ａが保有しているコンテンツのデータに含まれているかを確認する。確認の結果、自通信端末２００ａが保有しているデータの場合（ステップＡ１６のＹｅｓ）、処理はステップＡ１１に進められる。自通信端末２００ａが保有していないデータの場合（ステップＡ１６のＮｏ）、処理はステップＡ１７に進められる。
【０１６２】
ステップＡ１７において、メッセージ管理部２３５は、記憶部２４０に記憶されているコンテンツ情報２４２を参照し、受信したコンテンツ要求メッセージが要求しているコンテンツおよび当該コンテンツのデータ送信開始位置を保有している他の通信端末２００′を検索する。この結果、それらのデータを保有する他の通信端末２００′がコンテンツ情報２４２に含まれている場合、つまり、当該コンテンツの保有通信端末リストを参照した結果、要求されたデータ送信開始位置が保有データ範囲に含まれている場合（ステップＡ１７のＹｅｓ）、処理はステップＡ１９に進められる。一方、それらのデータがコンテンツ情報２４２に含まれていない場合（ステップＡ１７のＮｏ）、当該コンテンツ要求メッセージの転送先は存在しないと判断し、処理はステップＡ１８に進められる。
【０１６３】
ステップＡ１８において、コンテンツ管理部２３３は、受信したコンテンツ要求メッセージの転送先は存在しないため、当該コンテンツの送信は中止されたことを当該コンテンツ要求メッセージの送信元通信端末２００に返信する。
【０１６４】
ステップＡ１９において、コンテンツ管理部２３３は、記憶部２４０に記憶されているコンテンツ情報２４２から、要求されたコンテンツのデータ送信開始位置を保有データ範囲に含むリストの通信端末識別子を読み出す。コンテンツ管理部２３３は、読み出した通信端末識別子に対してコンテンツ要求メッセージを送信するよう指示する。また、コンテンツ管理部２３３は、記憶部２４０に当該コンテンツは自通信端末２００ａが要求したコンテンツではないことを、そのコンテンツ要求メッセージの送信元通信端末識別子と共に記憶し、当該コンテンツのデータの受信が開始されるのを待つ。コンテンツ管理部２３３は、当該データの受信が始まると、自通信端末２００ａに対してコンテンツ要求メッセージを送信してきた送信元である他の通信端末２００′に対して、当該コンテンツのデータの転送を開始する。この転送開始については、ステップＡ１１の処理と同様であるため、詳細な説明は省略する。
【０１６５】
なお、上述したステップＡ１９では、コンテンツ要求メッセージを他の通信端末２００′に送信した後、コンテンツのデータの受信が開始されるまで待っていたが、本処理とは独立に別の各種メッセージを受信、またはタイマーが発動した動作を並行して行っても良い。
【０１６６】
ステップＡ１２において、データ送受信部２３１は、通信部１５０から受信したデータが停止要求メッセージであるか否かを確認する。受信したデータが停止要求メッセージである場合（ステップＡ１２のＹｅｓ）、データ送受信部２３１は、受信した停止要求メッセージをメッセージ管理部２３５に送信する。メッセージ管理部２３５はこのメッセージをコンテンツ管理部２３３に入力し、処理はステップＡ１３に進められる。また、受信したデータが停止要求メッセージでない場合（ステップＡ１２のＮｏ）、処理を終了する。
【０１６７】
ステップＡ１３において、コンテンツ管理部２３３は受信した停止要求メッセージの送信元である通信端末２００との間で送受信を行っているコンテンツを自通信端末が保有していればのデータ送信処理を停止し、処理を終了する。また、コンテンツ管理部２３３は受信した停止要求メッセージの送信元である通信端末２００との間で送受信を行っているコンテンツを他の通信端末２００′から受信しながら送信していれば、当該停止要求メッセージを他の通信端末２００′に転送した上で、通信端末２００との間で送受信を行っているコンテンツを自通信端末が保有していればのデータ送信処理を停止し、処理を終了する。
【０１６８】
図１７は、本発明の第２の実施形態の通信端末２００がコンテンツ情報２４２を更新する場合の動作（図１６Ａに示すステップＡ１４）を示すフローチャートである。
【０１６９】
まず、ステップＣ１において、制御メッセージ２３４ａを受信したメッセージ管理部２３５は、当該制御メッセージに含まれるコンテンツリストの先頭から順番に（図１３においてはコンテンツ♯１〜コンテンツ♯Ｍの順で）、当該コンテンツ♯Ｍに含まれる保有通信端末情報を処理対象として選択する。以下、このコンテンツ♯Ｍに含まれるコンテンツ識別子、保有通信端末識別子、保有データ範囲、受信状態情報の組を「処理対象エントリ」と称呼する。
【０１７０】
ステップＣ２において、メッセージ管理部２３５は、処理対象エントリのコンテンツ識別子が、記憶部２４０に記憶されるコンテンツ情報２４２に含まれているコンテンツ識別子と一致するか判断する。当該コンテンツ識別子がコンテンツ情報２４２に含まれている場合（ステップＣ２のＹｅｓ）、処理はステップＣ３に進められる。当該コンテンツ識別子がコンテンツ情報２４２に含まれていない場合（ステップＣ２のＮｏ）、処理はステップＣ５に進められる。
【０１７１】
ステップＣ３において、メッセージ管理部２３５は、記憶部２４０に記憶されているコンテンツ情報２４２のコンテンツリストから、処理対象エントリのコンテンツ識別子と同一のコンテンツ識別子をもつ保有通信端末リストを処理対象とする。メッセージ管理部２３５は、このコンテンツ情報２４２の処理対象となる保有通信端末リストから、処理対象エントリの保有通信端末識別子と同一のエントリが存在するか否かを検索する。同一のエントリが存在する場合（ステップＣ３のＹｅｓ）、メッセージ管理部２３５は、処理をステップＣ４に進める（この際、コンテンツ情報２４２における当該エントリを「処理対象コンテンツ情報エントリ」と呼ぶ）。同一のエントリが存在しない場合（ステップＣ３のＮｏ）、メッセージ管理部２３５は、処理をステップＣ５に進める。
【０１７２】
ステップＣ４において、コンテンツ管理部２３３は、処理対象コンテンツ情報エントリの保有通信端末識別子と通信端末識別子が同一であるか否かを判断する。これらの識別子が同一である場合（ステップＣ４のＹｅｓ）、コンテンツ管理部２３３は、処理をステップＣ７に進める。処理対象コンテンツ情報エントリの保有通信端末識別子と通信端末識別子とが同一でない場合（ステップＣ４のＮｏ）、コンテンツ管理部２３３は、処理をステップＣ６に進める。
【０１７３】
ステップＣ５において、メッセージ管理部２３５は、処理対象エントリのコンテンツ識別子が記憶部２４０に記憶されているコンテンツ情報２４２に含まれていない場合（ステップＣ２から遷移した場合）、当該処理対象エントリに対するコンテンツ情報２４２を作成し、追加する。または、コンテンツ管理部２３３は、コンテンツ情報２４２の処理対象エントリのコンテンツ識別子の保有通信端末リストに、処理対象エントリの保有通信端末識別子と同一の保有通信端末識別子をもつエントリが存在しなかった場合（ステップＣ４から遷移した場合）、当該処理対象エントリに対するコンテンツ情報２４２を作成し、追加する。
【０１７４】
この際、これらのコンテンツ情報２４２のコンテンツ識別子、保有通信端末リストの保有通信端末識別子、保有データ範囲および受信状態情報は、処理対象エントリと同一とし、保有通信端末リストの通信端末識別子は当該制御メッセージの送信元通信端末識別子とする。これらの処理が終わると、処理はステップＣ７に進められる。
【０１７５】
ステップＣ６において、メッセージ管理部２３５は、処理対象コンテンツ情報エントリを当該処理対象エントリの情報で更新する。この際、これらの処理対象コンテンツ情報エントリの保有データ範囲、受信状態情報は、処理対象エントリと同一とし、処理対象コンテンツ情報エントリの通信端末識別子は当該制御メッセージの送信元通信端末識別子とする。この処理が終わると、処理はステップＣ７に進められる。
【０１７６】
ステップＣ７において、メッセージ管理部２３５は、受信した制御メッセージに含まれるコンテンツリスト、及びコンテンツリストの各コンテンツに対する保有通信端末リストの全てのエントリの情報に対して、ステップＣ２からの処理を行ったかを確認する。全てのエントリに対して処理が完了している場合（ステップＣ７のＹｅｓ）、処理を終了する。まだ処理を終えていないエントリが存在する場合、残っているエントリの先頭のエントリを処理対象として、ステップＣ１からの処理を繰り返す。
【０１７７】
本発明の第２の実施形態によれば、自通信端末２００ａが保有するコンテンツのみでなく、隣接する他の通信端末２００′が保有するコンテンツに対しても、各コンテンツの受信および再生を行っているか否かの受信状態情報を管理し、それを制御メッセージに格納して隣接する通信端末２００′に通知する。自通信端末２００ａは、隣接する通信端末２００′から受信した制御メッセージに含まれる保有コンテンツおよび当該コンテンツの保有データ範囲、受信状態情報を一覧表示させる。これにより、自通信端末２００ａから、または隣接する通信端末２００′を介して、ネットワーク中に存在する全ての端末（非隣接通信端末２００″を含む）から、所望のコンテンツのデータ配信元通信端末２００として最も適切な通信端末２００を選択することができる。
【０１７８】
本実施形態では、第１の実施形態と同様、通信端末２００は、制御メッセージ内のコンテンツリストにおける各コンテンツに対して、当該コンテンツの作成、あるいは登録した通信端末識別子の情報を含めて送信し、当該情報を入出力部１１０に表示させてもよい。同様に、入出力部１１０からユーザが入力したコマンドをコンテンツ表示部２２０が受信すると、そのコマンドに従って、コンテンツの再生情報、コンテンツのリスト、保有通信端末リスト、各通信端末の保有データ範囲および受信状態情報などの各種情報を入出力部１１０に表示させてもよい。
【０１７９】
また、本実施形態では、自通信端末２００ａが受信した制御メッセージに含まれるコンテンツリストが有する各保有通信端末リストの各エントリに対して、通信ホップ数を記録して配信し、コンテンツ表示部１２０は入出力部１１０のコンテンツ一覧に通信ホップ数も合わせて表示させてもよい。つまり、通信端末２００は、隣接通信端末から受信した制御メッセージに含まれるコンテンツリストの各エントリに対し、自通信端末２００ａに関わるエントリの通信ホップ数は１に、隣接する通信端末２００′に関わるエントリの通信ホップ数は２に、非隣接通信端末２００″に関わるエントリの通信ポップ数は３等として制御メッセージに含めて配信する。通信端末２００のコンテンツ表示部１２０は、コンテンツ情報２４２に記憶しているこの通信ホップ数の情報もコンテンツ一覧に含めて入出力部１１０に表示する。これにより、ユーザはコンテンツのデータ配信元通信端末２００の選択において、配信遅延に影響する通信ホップ数も考慮に入れて選択することが可能となる。上述したコンテンツの作成、あるいは登録を行った通信端末識別子の情報と合わせて利用することも可能である。
【０１８０】
本実施形態では、自通信端末２００ａが受信した制御メッセージに含まれるコンテンツリストを全て格納して、隣接する通信端末２００′に通知していた。しかし、各通信端末２００は、制御メッセージに含まれるコンテンツリストの各保有通信端末リストの各エントリに対して、ＴＴＬ（Time To Live）を設定し、制御メッセージに含まれる各エントリの情報の拡散範囲を制限することもできる。これにより、各通信端末２００は所定ホップ数以上離れた通信端末２００に対して、コンテンツのデータ送信を要求することを防止できる。ひいては、コンテンツのデータ配信遅延を抑制することができる。このようなＴＴＬを用いた情報の拡散防止については、従来の手法を応用することで実現できるため、詳細な説明は省略する。
【０１８１】
＜第３の実施形態＞
第１および第２の実施形態においては、通信端末１００、２００は、ユーザに次の送信元端末を選択するよう促していた。第３の実施形態では、この選択処理を自動化する。すなわち、ユーザの要求によりコンテンツのデータ受信および再生を開始した後、当該データ受信が停止した場合に、最も適した配信元通信端末を自ら自動的に選択し、当該データの受信を継続する通信端末３００について説明する。
【０１８２】
（通信端末）
図１８に、本発明の第３の実施形態に係る通信端末３００の構成例を示す。通信端末３００は、入出力部１１０、コンテンツ表示部１２０、コンテンツ配信制御部３３０、記憶部１４０および通信部１５０を備える。尚、コンテンツ配信制御部３３０以外の構成は、第１の実施形態と同様であるため、図２と同じ符号を付して、説明を省略する。
【０１８３】
コンテンツ配信制御部３３０は、データ送受信部１３１、コンテンツリスト作成部１３２、コンテンツ管理部１３３、メッセージ作成部１３４、メッセージ管理部１３５およびコンテンツ要求先選択部３０１を含む。尚、コンテンツ要求先選択部３０１以外の部は第１の実施形態と同様であるため説明を省略する。
【０１８４】
コンテンツ要求先選択部３０１は、記憶部１４０に記憶されたコンテンツ情報１４２の情報を参照し、コンテンツのデータ配信元通信端末として最も適切な通信端末３００を選択し、選択した通信端末識別子をメッセージ管理部１３５に通知する。この通知を受けたメッセージ管理部１３５は、当該通信端末識別子をもつ通信端末３００に対して、コンテンツ要求メッセージを送信するよう、メッセージ作成部１３４に指示する。
【０１８５】
例えば、ユーザが、入出力部１１０に表示されたコンテンツ一覧領域１２０ｂ（図６参照）から受信および再生したいコンテンツを発見し、当該コンテンツに対応する受信したいデータ範囲、受信状態情報などを参照して、受信したい通信端末を選択した場合を想定する。
【０１８６】
この場合、ユーザの自通信端末３００ａは、当該選択された他の通信端末３００′に対してコンテンツ要求メッセージを送信し、当該コンテンツのデータ受信を開始する。しかし、当該データの送信を要求した他の通信端末３００′が当該コンテンツの受信を行っておらず、一定範囲のデータまでしか保有していない場合、当該通信端末３００′が保有するデータ以降のデータを受信することはできない。
【０１８７】
第１、第２の実施形態では、このような場合、データの受信が停止したことを入出力部１１０に表示し、改めてユーザが受信を継続させたい通信端末を選択していた。本実施形態では、受信が停止した時点で、コンテンツ要求先選択部３０１が続きのデータの送信に最も適した通信端末を選択し、メッセージ管理部１３５を通じてコンテンツ要求メッセージを送信し、受信を継続する。
【０１８８】
（通信端末の動作）
本発明の第３の実施形態に係る通信端末３００の動作について説明する。図１９は、本実施形態に係る通信端末３００がメッセージを受信したまたはタイマーが発動した際の動作を示すフローチャートである。本実施形態の通信端末３００の動作では、図７に示す本発明の第１の実施形態の通信端末がメッセージを受信、またはタイマーが発動した動作を示すフローチャートにおけるステップＡ９の後にステップＡ２０の処理を行う点が異なる。それ以外の動作は、第１の実施形態における通信端末１００の動作と同様であるため、説明を省略する。
【０１８９】
ステップＡ２０において、メッセージ管理部１３５は、停止通知メッセージを受信した（ステップＡ６）、または、タイマーの発動により、コンテンツのデータ受信が停止したと判断する（ステップＡ８）。この時、コンテンツ受信停止処理（ステップＡ７）やデータの受信が停止したことを入出力部１１０に表示（ステップＡ９）した後、コンテンツ要求先選択部３０１に停止したデータ位置からの当該コンテンツのデータを要求する通信端末の選択処理を開始するよう通知する。コンテンツ要求先選択部３０１は、記憶部１４０に記憶されたコンテンツ情報１４２から、当該コンテンツの停止したデータ位置を保有データ範囲に含む通信端末の情報（以下「エントリ」と記載）を検索する。上記の条件に一致する通信端末３００のエントリが１つしか無ければ、その通信端末３００をコンテンツのデータ送信要求先として選択する。上記の条件に一致する通信端末のエントリが２つ以上存在した場合、保有データ範囲や受信状態情報を用いて、例えば下記のような方針により、最適な通信端末を選択する。
【０１９０】
＜１＞停止したデータ位置を保有データ範囲に含み、保有データ範囲の上限値が最も大きい通信端末、
（１）このような通信端末が複数存在する場合は、受信状態情報が「受信中」を示す通信端末を選択し、
（２）上記（１）を満たす通信端末が複数存在する場合は、それらの通信端末からランダムに選択する。
【０１９１】
＜２＞保有データ範囲の上限値が要求開始データ位置よりも小さく、かつその上限値と要求開始データ位置の差分が最も小さく、かつ受信状態情報が「受信中」を示す通信端末、
（１）このような通信端末が複数存在する場合は、それらの通信端末からランダムに選択する。
＜３＞保有データ範囲の下限値が要求開始データ位置よりも大きく、かつその下限値と要求開始データ位置の差分が最も小さい通信端末、
（１）このような通信端末が複数存在する場合は、受信状態情報が「受信中」を示す通信端末を選択し、
（２）上記（１）を満たす通信端末が複数存在する場合は、それらの通信端末からランダムに選択する。
【０１９２】
コンテンツ要求先選択部３０１は、コンテンツのデータ送信を要求する通信端末３００を選択すると、当該通信端末識別子をメッセージ管理部１３５に通知する。通知を受けたメッセージ管理部１３５は当該通信端末３００に対してコンテンツ要求メッセージを送信するようメッセージ作成部１３４に指示する。この際、上記の＜１＞または＜２＞の条件を満たした通信端末３００への配信開始データ位置は、一端停止したデータ位置であり、＜３＞の条件を満たした通信端末３００への配信開始データ位置は、当該通信端末３００の保有データ範囲の下限値である。
【０１９３】
本発明の第３の実施形態によれば、通信端末３００は、ユーザの要求によりコンテンツのデータ受信および再生を開始した後、当該データ受信が停止した場合に、配信元通信端末を自動的に選択し、当該データの受信を継続することができる。
【０１９４】
例えば、上記の方針では、＜１＞を満たす通信端末を選択することにより、停止したデータ位置から連続して当該データの受信を継続することができ、かつ、受信中であることからその後も継続して当該データの受信を続けることが可能となる。＜１＞を満たす通信端末が存在しない場合、＜２＞を満たす通信端末を選択することで、しばらくの間ストリームが停止する恐れはあるものの、受信中であるコンテンツのデータが要求開始データ位置を満たした時点からデータの消失なくデータを受信することが可能となる。尚、＜１＞または＜２＞を満たす通信端末が存在しない場合、ストリームデータの消失が発生してしまうが、そのデータ消失区間を最も小さくしつつ、継続して同一通信端末からのデータ受信が可能となる。つまり、本発明の第１の実施形態における効果を、ユーザを介在させず、自動的に提供することが可能となる。
【０１９５】
なお、上記の方針は通信端末３００の選択方針はあくまで一例に過ぎず、保有データ範囲と受信状態情報とを参照することで、様々な方針に従った最適な通信端末を選択することが可能である。
【０１９６】
また、本実施形態では、ステップＡ９でデータの受信が停止したことを入出力部１１０に表示しているが、これを表示せずに、継続して選択した通信端末３００からデータ受信を継続してもよい。
【０１９７】
本実施形態では、コンテンツ表示部１２０が図６に示すような画面を入出力部１１０に表示しているが、この表示画面のうちコンテンツ一覧領域１２０ｂには当該コンテンツを保有する通信端末を個別に表示せず、当該コンテンツを保有する通信端末の保有データ範囲の和集合のみを表示させてもよい。ユーザは、コンテンツと、配信開始データ位置とをのみ要求してもよい。この場合、その要求を受け取ったコンテンツ要求先選択部３０１は、上記のような方針に従い、コンテンツのデータ配信元として最適な通信端末を選択し、選択された通信端末に対し、コンテンツ要求メッセージを送信してもよい。
【０１９８】
さらに、本実施形態では、本発明の第１の実施形態を用いて説明したが、第２の実施形態にコンテンツ要求先選択部３０１を追加してもよい。この場合、コンテンツ要求先選択部３０１は、隣接する通信端末３００のみではなく、ネットワーク中に存在する全ての通信端末３００から、コンテンツ要求先となる通信端末３００を選択することができる。さらに、上述したような実施例１および２も第２の実施形態を用いた場合に適用できることはもちろんである。
【０１９９】
＜第４の実施形態＞
本発明の第４の実施形態に係る通信端末４００について説明する。本実施形態に係る通信端末４００は、図２０に示すように、メッセージ作成部４３４、メッセージ管理部４３５およびコンテンツ管理部４３３を備える。
【０２００】
メッセージ作成部４３４は、自通信端末が保有するコンテンツの識別子、コンテンツの保有データ範囲およびコンテンツの受信状態を示す情報を備えるコンテンツリストを少なくとも１つ含む制御メッセージを作成する。
【０２０１】
メッセージ管理部４３５は、（ａ）制御メッセージを自通信端末以外の通信端末に対して送信させるよう指示し、且つ、自通信端末以外の外部通信端末から受信する制御メッセージから、外部通信端末が保有するコンテンツリストを取得し、（ｂ）外部通信端末から自通信端末が保有するコンテンツの送信要求を受けると、当該コンテンツのデータを外部通信端末に送信するよう指示し、（ｃ）外部通信端末が保有するコンテンツの再生要求を自通信端末が受けると、当該コンテンツのデータを外部通信端末に要求する。
【０２０２】
コンテンツ管理部４３３は、（ｄ）外部通信端末に要求したコンテンツのデータの少なくとも一部を受信した場合、当該コンテンツに対応するコンテンツリストを作成または更新するよう指示し、（ｅ）自通信端末に対するコンテンツの再生要求に応じて外部通信端末からコンテンツのデータを受信し、当該データを再生させる。
【０２０３】
本発明の第４の実施形態に係る通信端末によると、通信ネットワークを経由したストリーム型コンテンツの配信において、当該コンテンツのストリームデータの連続性を考慮して最適なデータ要求先通信端末を選択することができる。
（変形例）
上述した各実施形態では、各通信端末１００、２００、３００、４００は、例えば、無線ＬＡＮのアドホックモードを用いて直接各通信端末間で通信を行う。しかし、通信端末１００〜４００は、無線ＬＡＮのアクセスポイントを介して互いの間の通信を行うように構成されてもよい。図２１は、各通信端末がアクセスポイント６００を介して通信を行うように構成された無線通信システム６０１の例を示すブロック図である。図２１に示す例では、通信端末１００ａ〜１００ｈがアクセスポイント６００を介して互いの間の通信を行っている。また、アクセスポイントを用いず、各通信端末１００ａ〜１００ｈのうちの１つがアクセスポイントと同様の働きを行う接続形態（例えば、Ｗｉ−Ｆｉダイレクト）で、各通信端末１００ａ〜１００ｈが接続されても良い。
【０２０４】
この構成によれば、通信端末１００〜４００で直接に通信を行うことができない場合であっても、無線ＬＡＮのアクセスポイント６００を介して互いの間の通信を行い、第１〜第４の実施形態における効果と同様な効果を奏することができる。
【０２０５】
（ハードウェア構成）
本発明の各実施形態において、通信端末のコンテンツ配信制御部１３０、２３０、３３０および通信端末４００における各構成要素は、機能単位のブロックを示している。通信端末のコンテンツ配信制御部１３０等における各構成要素の一部又は全部は、例えば図２、１０、１８、２０に示すような情報処理装置とプログラムとの任意の組み合わせにより実現される。これを実現する情報処理装置５００の一例を図２２に示す。情報処理装置５００は、一例として、以下のような構成を含む。
【０２０６】
・ＣＰＵ５０１
・ＲＯＭ５０２
・ＲＡＭ５０３
・ＲＡＭ５０３にロードされるプログラム５０４
・プログラム５０４を格納する記憶装置５０５
・記録媒体５０６の読み書きを行うドライブ装置５０７
・通信ネットワーク５０９と接続する通信インターフェース５０８
・データの入出力を行う入出力インターフェース５１０
・各構成要素を接続するバス５１１
各実施形態における通信端末のコンテンツ配信制御部１３０等の各構成要素は、これらの機能を実現するプログラム５０４をＣＰＵ５０１が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム５０４は、例えば、予め記憶装置５０５やＲＡＭ５０３に格納されており、必要に応じてＣＰＵ５０１が読み出す。なお、プログラム５０４は、通信ネットワーク５０９を介してＣＰＵ５０１に供給されてもよいし、予め記録媒体５０６に格納されており、ドライブ装置５０７が当該プログラムを読み出してＣＰＵ５０１に供給してもよい。
【０２０７】
通信端末の実現方法には、様々な変形例がある。例えば、通信端末は、構成要素毎にそれぞれ別個の情報処理装置５００とプログラムとの任意の組み合わせにより実現されてもよい。また、通信端末が備える複数の構成要素が、一つの情報処理装置５００とプログラムとの任意の組み合わせにより実現されてもよい。
【０２０８】
また、通信端末の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【０２０９】
通信端末の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０２１０】
通信端末の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０２１１】
上述した各実施形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施形態のみに限定されるものではなく、趣旨を逸脱しない範囲で、種々の変更が可能であることは勿論である。
【符号の説明】
【０２１２】
１Ａ      ：通信可能範囲
１Ｂ      ：通信可能範囲
１０      ：通信システム
１００    ：通信端末
１００ａ  ：通信端末
１００ｂ  ：通信端末
１００ｃ  ：通信端末
１００ｄ  ：通信端末
１００ｅ  ：通信端末
１００ｆ  ：通信端末
１００ｇ  ：通信端末
１００ｈ  ：通信端末
１００′  ：通信端末
１１０    ：入出力部
１２０    ：コンテンツ表示部
１２０ａ  ：視聴領域
１２０ｂ  ：コンテンツ一覧領域
１２０ｃ  ：視聴コンテンツ名領域
１３０    ：コンテンツ配信制御部
１３１    ：データ送受信部
１３２    ：コンテンツリスト作成部
１３３    ：コンテンツ管理部
１３４    ：メッセージ作成部
１３４ａ  ：制御メッセージ
１３５    ：メッセージ管理部
１４０    ：記憶部
１４１    ：通信端末情報
１４１Ａ  ：通信端末識別子
１４１Ｂ  ：有効期限情報
１４１Ｃ  ：コンテンツリスト
１４２    ：コンテンツ情報
１４２Ａ  ：コンテンツ識別子
１４２Ｂ  ：保有データ範囲
１４２Ｃ  ：受信状態情報
１５０    ：通信部
２００    ：通信端末
２００ａ  ：通信端末
２００ｂ  ：通信端末
２００ｃ  ：通信端末
２００ｄ  ：通信端末
２００′  ：通信端末
２００″  ：非隣接通信端末
２２０    ：コンテンツ表示部
２３０    ：コンテンツ配信制御部
２３１    ：データ送受信部
２３２    ：コンテンツリスト作成部
２３３    ：コンテンツ管理部
２３４    ：メッセージ作成部
２３４ａ  ：制御メッセージ
２３５    ：メッセージ管理部
２４０    ：記憶部
２４１    ：通信端末情報
２４２    ：コンテンツ情報
２４２Ｄ  ：保有通信端末リスト
３００    ：通信端末
３００ａ  ：通信端末
３００′  ：通信端末
３０１    ：コンテンツ要求先選択部
３３０    ：コンテンツ配信制御部
４００    ：通信端末
４３３    ：コンテンツ管理部
４３４    ：メッセージ作成部
４３５    ：メッセージ管理部
５００    ：情報処理装置
５０１    ：ＣＰＵ
５０２    ：ＲＯＭ
５０３    ：ＲＡＭ
５０４    ：プログラム
５０５    ：記憶装置
５０６    ：記録媒体
５０７    ：ドライブ装置
５０８    ：通信インターフェース
５０９    ：通信ネットワーク
５１０    ：入出力インターフェース
５１１    ：バス
６００    ：アクセスポイント
６０１    ：通信システム
【図１】
2017049630.tif 000003
【図２】
2017049630.tif 000004
【図３】
2017049630.tif 000005
【図４】
2017049630.tif 000006
【図５】
2017049630.tif 000007
【図６】
2017049630.tif 000008
【図７】
2017049630.tif 000009
【図８】
2017049630.tif 000010
【図９】
2017049630.tif 000011
【図１０】
2017049630.tif 000012
【図１１】
2017049630.tif 000013
【図１２】
2017049630.tif 000014
【図１３】
2017049630.tif 000015
【図１４】
2017049630.tif 000016
【図１５】
2017049630.tif 000017
【図１６Ａ】
2017049630.tif 000018
【図１６Ｂ】
2017049630.tif 000019
【図１７】
2017049630.tif 000020
【図１８】
2017049630.tif 000021
【図１９】
2017049630.tif 000022
【図２０】
2017049630.tif 000023
【図２１】
2017049630.tif 000024
【図２２】
2017049630.tif 000025
【図２３】
2017049630.tif 000026