(57)【要約】      （修正有）【課題】複数のクライアント装置間でデータの転送を行う通信ネットワークにおいて、データ転送を継続できない場合であっても、データの受信を継続することができる。【解決手段】一のクライアント装置から転送されたデータを受信するクライアント装置において、当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持する接続候補保持手段と、前記一のクライアント装置に関する所定のイベントの発生を検知するイベント発生検知手段と、前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択する接続先選択手段と、前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するデータ転送要求手段と、を有する。【選択図】図１
2010257305.tif 000002
【特許請求の範囲】
【請求項１】
データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置であって、
当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持する接続候補保持手段と、
前記一のクライアント装置に関する所定のイベントの発生を検知するイベント発生検知手段と、
前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択する接続先選択手段と、
前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するデータ転送要求手段と、を有することを特徴とするクライアント装置。
【請求項２】
前記データは順序性を有する複数のデータであり、前記各データは該順序性を示す識別情報を含む場合、
前記データ転送要求手段は、一の前記識別情報に対応するデータ以降の前記複数のデータを、当該クライアント装置に転送するよう要求することを特徴とする請求項１に記載のクライアント装置。
【請求項３】
受信した前記データを一時的に蓄積するバッファを有し、
前記イベント発生検知手段は、前記バッファに蓄積された前記データの量が所定の閾値より少なくなった場合に、前記所定のイベントが発生したことを検知することを特徴とする請求項１乃至３の何れか一に記載のクライアント装置。
【請求項４】
データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置の制御方法であって、
接続候補保持手段が、当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持するステップと、
イベント発生検知手段が、前記一のクライアント装置に関する所定のイベントの発生を検知するステップと、
接続先選択手段が、前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択するステップと、
データ転送要求手段が、前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するステップと、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーミング配信における技術に関する。
【背景技術】
【０００２】
従来、ストリーミング配信は、各クライアントがストリーミング配信サーバへ配信要求を行い、配信サーバが各クライアントへストリーミング配信を実施していた。つまり、クライアントとストリーミング配信サーバとが１対１のユニキャスト配信を行う形態である。
【０００３】
一般的にストリーミングに用いられる動画データ等は大容量であり、配信先であるクライアント数が増加すればそれに比例してネットワークの利用帯域は非常に大きくなり、配信サーバの処理負担も大きい。また、コンテンツの配信中は、これらネットワーク及び配信サーバの処理負担は大きいまま継続される。
【０００４】
このネットワーク及び配信サーバの処理負担を軽減させる方法の一つとして、クライアントが受信したストリーミングデータを別のクライアントへ転送するＰ２Ｐ（Peer to Peer）を利用したストリーミング配信方法が考えられている（特許文献１等）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−８２９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記のＰ２Ｐを利用したストリーミング配信方法では、データ転送を請け負っていたクライアントが何らかの理由により当該データ転送を中止することがあることを考慮する必要がある。この場合、当該クライアントを介してストリーミングデータを受信していた別のクライアントは、転送を受けていたデータを受信することができなくなるという問題点がある。また、データ転送を受けていたクライアントが別ルートでデータ配信を受ける場合、配信ルートの変更に時間が掛かれば、配信ルート変更処理の間はストリーミングデータの受信が中断されてしまうという問題点がある。
【０００７】
そこで、本発明では、複数のクライアント装置間でデータの転送を行う通信ネットワークにおいて、データ転送を行っていたクライアント装置が当該データ転送を継続できない場合であっても、データの受信を継続するクライアント装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示のクライアント装置の一形態では、データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置であって、当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持する接続候補保持手段と、前記一のクライアント装置に関する所定のイベントの発生を検知するイベント発生検知手段と、前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択する接続先選択手段と、前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するデータ転送要求手段と、を有することを特徴とする。
【発明の効果】
【０００９】
開示のクライアント装置では、複数のクライアント装置間でデータの転送を行う通信ネットワークにおいて、データ転送を行っていたクライアント装置が当該データ転送を継続できない場合であっても、データの受信を継続することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態に係るクライアント装置を含むデータ配信システムの機能ブロック図である。
【図２】本実施の形態に係るクライアント装置を含むデータ配信システムの構成図である。
【図３】本実施の形態に係るデータ構成の一例を示す図である。
【図４】本実施の形態に係る閲覧者リストの一例を示す図である。
【図５】本実施の形態に係る接続先候補リストの一例を示す図である。
【図６】本実施の形態に係る接続中子リストの一例を示す図である。
【図７】本実施の形態に係る受信データバッファの一例の模式図である。
【図８】本実施の形態に係る受信データバッファ管理情報リストの一例を示す図である。
【図９】本実施の形態に係るクライアント装置を含むデータ配信システムにおける配信処理の流れを示すシーケンス図である。
【図１０】本実施の形態に係るクライアント装置を含むデータ配信システムにおける親クライアント切り替え処理（その１）の流れを示すシーケンス図である。
【図１１】本実施の形態に係るクライアント装置を含むデータ配信システムにおける親クライアント切り替え処理（その２）の流れを示すシーケンス図である。
【図１２】本実施の形態に係るクライアント装置を含むデータ配信システムにおけるセカンダリ接続先の変更処理の流れを示すシーケンス図である。
【図１３】本実施の形態に係るクライアント装置を含むデータ配信システムにおける子クライアント停止時処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１１】
図面を参照しながら、本発明を実施するための最良の形態について説明する。
【００１２】
（本実施の形態に係るクライアント装置の動作原理）
図１を用いて、本実施の形態に係るクライアント装置１００の動作原理について説明する。図１は、クライアント装置１００を含むデータ配信システム２００の機能ブロック図である。図１で示すように、データ配信システム２００は、クライアント装置１００、データ配信装置１７０、一のクライアント装置１８０、他のクライアント装置１９０を有する。
【００１３】
データ配信システム２００において、一のクライアント装置１８０はデータ配信装置１７０が配信するストリーミングデータ（以下、単にデータという。）を一旦受信し、受信したデータをクライアント装置１００に転送する。また、他のクライアント装置１９０もデータ配信装置１７０が配信するデータを受信しており、クライアント装置１００に転送することが可能である。
【００１４】
図１で示すようにクライアント装置１００は、接続先候補保持手段１１０、イベント発生検知手段１２０、接続先選択手段１３０、データ転送要求手段１４０、接続先候補情報１５０、バッファ１６０を有する。
【００１５】
接続先候補保持手段１１０は、接続先候補情報１５０を保持する。ここで、接続先候補情報１５０とは、データ配信システム２００内のクライアント装置のうち、クライアント装置１００が接続しているクライアント装置であって、データ配信装置１７０により配信されるデータの転送を依頼することが可能なクライアント装置のリスト情報である。接続先候補情報１５０では複数のクライアント装置をリスト化し、各クライアント装置には優先順位を付与する。データ配信システム２００における配信開始時の処理としては、クライアント装置１００がデータ配信装置１７０に対してデータの配信要求を行い、データ配信装置１７０から接続先候補情報１５０を取得する。続いて、接続先候補情報１５０内で優先順位の最も高い一のクライアント装置１８０にデータの転送を要求（接続）し、一のクライアント装置１８０からデータの転送を受ける。
【００１６】
また、接続先候補情報１５０では、クライアント装置１００とのネットワーク距離（例えば、伝搬遅延時間）が近いクライアント装置ほど高い優先順位を付与される。さらに、接続先候補情報１５０では、当該ネットワーク距離の条件に加え、接続先となるクライアント装置の処理能力、通信経路のトラフィックを考慮して、優先順位を付与しても良い。
【００１７】
また、接続先候補情報１５０は、クライアント装置間の接続状態、各クライアント装置の処理能力、及びデータ配信システム２００内のトラフィック状況を保持する他の装置、例えば、データ配信装置１７０で生成され、クライアント装置１００に通知される。こうすることによって、データ配信システム２００内の各クライアント装置が接続先候補情報１５０を生成するための情報を個別に収集する必要がないため、データ配信システム２００内のデータ通信量を低く抑えることができる。また、各クライアント装置に特別な機能を要求する必要がないため、データ配信システム２００の構築が容易となる。
【００１８】
バッファ１６０は、一のクライアント装置１８０から転送されるデータを受信した後、当該受信データを一時的に蓄積させるためのバッファであり、蓄積されたデータは、先入れ先出しの規則に従い、蓄積時から一定時間経過後消去される。
【００１９】
イベント発生検知手段１２０は、データ転送を受けている一のクライアント装置１８０から、所定のイベントが発生した旨の通知を取得する。ここで、所定のイベントには、視聴停止等何らかの理由により、一のクライアント装置１８０がクライアント装置１００に対するデータ転送を停止することが含まれる。そして、イベント発生検知手段１２０は、上記通知を取得した場合に、一のクライアント装置１８０で所定のイベントが発生したことを検知する。
【００２０】
また、イベント発生検知手段１２０は、バッファ１６０に蓄積されるデータ量を監視し、当該蓄積されるデータ量が所定の閾値を下回った場合に、一のクライアント装置１８０又は通信経路上で所定のイベントが発生したことを検知する。このように、イベント発生検知手段１２０は、バッファ１６０に蓄積されるデータ量を監視することにより、一のクライアント装置１８０から正常にデータが転送されているか否かを確認することができる。そのため、イベント発生検知手段１２０は、バッファ１６０に蓄積されるデータ量が所定の閾値を下回った場合、一のクライアント装置１８０から正常にデータが転送されていないと判断する。
【００２１】
また、イベント発生検知手段１２０は、バッファ１６０の使用率（＝「バッファ１６０の蓄積データ量」／「バッファ１６０の記憶容量」）が所定の閾値を下回った場合に、一のクライアント装置１８０又は通信経路上で所定のイベントが発生したことを検知する形態としても良い。この場合も、接続先選択手段１３０は、バッファ１６０の使用率を監視することにより、一のクライアント装置１８０から正常にデータが転送されているか否かを確認することができる。
【００２２】
接続先選択手段１３０は、一のクライアント装置１８０に関する所定のイベントの発生が検知された場合、接続先候補情報１５０の中から、一のクライアント装置１８０に代わってデータの転送を依頼する他のクライアント装置１９０を１つ選択する。また、接続先選択手段１３０は、接続先候補情報１５０の中から、一のクライアント装置１８０に次ぐ優先順位を付与されている他のクライアント装置１９０を選択する。
【００２３】
データ転送要求手段１４０は、他のクライアント装置１９０に対し、クライアント装置１００にデータの転送を行うよう依頼（要求）する。そして、他のクライアント装置１９０は、クライアント装置１００からの依頼に応じ、クライアント装置１００に対するデータの転送を開始する。
【００２４】
ここで、装置間で転送するストリーミングデータは、動画像データ又は音声データであり、個々の画像データ又は音声データには各データを識別する識別情報が含まれている。当該識別情報は、時刻情報でも良く、一連の動画像データ又は音声データ内でデータの順序性を示すシーケンス番号でも良い。データ転送要求手段１４０の別形態では、特定の識別情報を含む画像データ又は音声データ以降のデータをクライアント装置１００に転送するよう依頼（要求）する。こうすることにより、データ転送先の切り替え前後で、受信するデータが不連続とならないようにすることができる。
【００２５】
上記のような動作原理に基づき、開示のクライアント装置１００では、複数のクライアント装置間でデータの転送を行う通信ネットワークにおいて、データ転送を行っていたクライアント装置が当該データ転送を継続できない場合であっても、データの受信を継続することができる。
【００２６】
ここで、クライアント装置１００はＣＰＵ（Central Processing Unit）、ＲＯＭ（Read-Only Memory）、ＨＤＤ（Hard Disc Drive）等を備える。そして、クライアント装置１００が有する各手段は、ＣＰＵがＲＯＭ又はＨＤＤに記憶された各手段に対応するプログラムを実行することにより実現される。また、クライアント装置１００が有する各手段は、当該各手段に関する処理をハードウェアとして実現しても良い。
【００２７】
（本実施の形態に係るクライアント装置を含むデータ配信システムによる処理例）
図２乃至図１３を用いて、クライアント装置１００を含むデータ配信システム２００による処理例を説明する。図２で示すように、データ配信システム２００は、ストリーミング配信サーバ１７０、クライアントＡ１８０、クライアントＢ１００、クライアントＣ１９０、クライアントＤ、クライアントＭを有する。
【００２８】
ここで、ストリーミング配信サーバ１７０は、アクセスポイント１、１０を介してクライアントＡ１８０、クライアントＣ１９０に、アクセスポイント１、１１を介してクライアントＭにそれぞれ接続し、各クライアントに対しストリーミングデータ（以下、単にデータという。）を配信する。そして、クライアントＡ１８０は、クライアントＢ１００に対しデータを転送し、クライアントＢ１００は、クライアントＤに対しデータを転送する。
【００２９】
また、図３で示すように、ストリーミング配信サーバ１７０は、閲覧者リスト２１０を有し、各クライアントは、接続先候補リスト１５０、接続中子リスト２２０、受信データバッファ１６０、受信データバッファ管理情報リスト２３０を有する。
【００３０】
図４に閲覧者リスト２１０の一例を示す。閲覧者リスト２１０は、データ配信クライアントのネットワーク上のＩＤ（ＩＰアドレス等）である「閲覧クライアント」、「閲覧クライアント」からストリーミング配信サーバ１７０までの接続経路である「ルート情報」を保持する。さらに、閲覧者リスト２１０では、「閲覧クライアント」毎に、その他の「閲覧クライアント」の中から所定の基準で決定される「接続先候補」を設定する。「接続候補先」は、接続済みである接続先を示す「プライマリ接続先」と、「プライマリ接続先」がストリーミング配信サーバ１７０との接続を停止する場合等、接続の切り替え先候補を示す「セカンダリ接続先」とで構成される。
【００３１】
図５に接続先候補リスト１５０の一例を示す。図５では、クライアントＢ１００が有する接続先候補リスト１５０の例を示し、クライアントＡ１８０からデータの転送を受けており、接続の切り替え先候補はクライアントＣ１９０で有ることを示している。また、接続先候補リスト１５０は、接続先候補保持手段１１０によって保持される。
【００３２】
図６に接続中子リスト２２０の一例を示す。図６では、クライアントＡ１８０が有する接続中子リスト２２０の例を示し、クライアントＡ１８０はクライアントＢ１００に対しデータの転送を行っていることを示している。
【００３３】
図７に受信データバッファ１６０の一例を示す。図７では、識別情報として時刻「００：０１：５０」を含む受信データを先頭に配置し、時刻「００：０２：２０」を含む受信データを最後尾に配置して、データを一時蓄積していることを示す。また、図７では、受信データバッファ１６０の記憶領域には空きがあることを示している。
【００３４】
図８に受信データバッファ管理情報リスト２３０の一例を示す。図８では、受信データバッファ１６０から抽出した先頭データの識別情報「００：０１：５０」、最後尾データの識別情報「００：０２：２０」、及び先頭データと最後尾データとの時刻差に適用する閾値を含む。当該閾値は、データ転送元である親クライアントとの接続異常を検知するために使用する。
【００３５】
（１）データ配信システム２００における配信処理
図９で示すシーケンス図を用いて、データ配信システム２００におけるストリーミングデータ配信処理について説明する。ここでは、クライアントＡ１８０がストリーミング配信サーバ１７０からストリーミングを視聴している状態で、クライアントＢ１００が新たにデータの配信要求を行う場合の処理の流れを説明する。
【００３６】
Ｓ１０でストリーミング配信サーバ１７０が、クライアントＡ１８０に対しデータの配信を行っている。Ｓ２０でクライアントＢ１００が、ストリーミング配信サーバ１７０に対しデータの配信開始を要求する。Ｓ３０でストリーミング配信サーバ１７０が、クライアントＢ１００の要求を受け付け、当該要求に応じて下記の処理を行う。
【００３７】
Ｓ３０でストリーミング配信サーバ１７０は、クライアントＢ１００・ストリーミング配信サーバ１７０間の経路情報を収集する。そして、ストリーミング配信サーバ１７０は、図４で示すように閲覧者リスト２１０の「閲覧クライアント」としてクライアントＢ１００を登録すると共に、収集した経路情報を「ルート情報」に登録する。次に、ストリーミング配信サーバ１７０は、閲覧者リスト２１０の「閲覧クライアント」に登録されているクライアントの中から、クライアントＢ１００にデータ転送可能なクライアントを２つ選択し、「接続先候補」に登録する。図４で示すように、ストリーミング配信サーバ１７０は、クライアントＢ１００にデータ転送可能なクライアントとしてクライアントＡ１８０及びクライアントＣ１９０を選択する。その後、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＡ１８０を登録し、「セカンダリ接続先」としてクライアントＣ１９０を登録する。
【００３８】
Ｓ４０でストリーミング配信サーバ１７０が、クライアントＢ１００に対し、閲覧者リスト２１０の「プライマリ接続先」及び「セカンダリ接続先」に登録された２つのクライアントを通知する。つまり、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＡ１８０を通知し、「セカンダリ接続先」としてクライアントＣ１９０を通知する。
【００３９】
Ｓ５０でクライアントＢ１００が、ストリーミング配信サーバ１７０の通知を受信し、受信した通知内容に基づき接続先候補リスト１５０を生成する。つまり、クライアントＢ１００は、「プライマリ接続先」をクライアントＡ１８０とし、「セカンダリ接続先」をクライアントＣ１９０とする通知を受信し、図５で示すように受信内容に基づく接続先候補リスト１５０を生成、保持する。
【００４０】
Ｓ６０でクライアントＢ１００が、接続先候補リスト１５０において「プライマリ接続先」に設定されるクライアントＡ１８０に対し、データ転送（配信）の開始要求を行う。Ｓ７０でクライアントＡ１８０が、クライアントＢ１００の要求を受信すると共に、データ転送先としてクライアントＢ１００を登録する。つまり、クライアントＡ１８０は、図６で示すように、自身がデータ転送を行う子クライアントとしてクライアントＢ１００を登録する。Ｓ８０でクライアントＡ１８０が、図６で示す接続中子リスト２２０に登録されたクライアントＢ１００に対し、データ転送を開始する。
【００４１】
一方、Ｓ９０でストリーミング配信サーバ１７０がデータの配信を終了する場合、Ｓ１００でストリーミング配信サーバ１７０が、クライアントＡ１８０に対し「データ配信を終了する旨」を表す情報を含むデータを配信する。そして、Ｓ１１０でクライアントＡ１８０が、クライアントＢ１００に対し、ストリーミング配信サーバ１７０から受信した「データ配信を終了する旨」を表す情報を含むデータを転送する。
【００４２】
上記のような処理によって、データ配信システム２００では、所謂Ｐ２Ｐを利用したストリーミングデータの配信を行うことができる。
【００４３】
（２）データ配信システム２００における親クライアント切り替え処理（その１）
図１０で示すシーケンス図を用いて、データ配信システム２００において親クライアントを切り替える処理について説明する。ここでは、上記（１）で説明したようにクライアントＢ１００がクライアントＡ１８０からデータの転送を受けている状態において、クライアントＢ１００のデータ転送元をクライアントＣ１９０に切り替える処理の流れを説明する。
【００４４】
Ｓ１２０−Ｓ１４０では、ストリーミング配信サーバ１７０がクライアントＡ１８０及びクライアントＣ１９０にデータ配信を行い、クライアントＡ１８０がクライアントＢ１００にデータ転送を行っている。Ｓ１５０、Ｓ１６０でクライアントＡ１８０が、図６で示す接続中子リスト２２０を参照し、接続中子リスト２２０に登録されているクライアントＢ１００及びストリーミング配信サーバ１７０に対しデータの視聴停止を通知する。
【００４５】
Ｓ１７０でクライアントＢ１００が、クライアントＡ１８０の視聴停止通知を受信した後、図５で示す接続先候補リスト１５０において「セカンダリ接続先」に設定したクライアントＣ１９０に対しデータ転送の開始要求を行う。Ｓ１７０における処理は、イベント発生検知手段１２０、接続先選択手段１３０、及びデータ転送要求手段１４０による処理に該当する。
【００４６】
さらに、クライアントＢ１００は、クライアントＣ１９０に対し、図７で示す受信データバッファ１６０内の最後尾にあるデータの時刻情報を通知し、通知した時刻情報以降の時刻情報を含むデータを転送するよう要求する。つまり、クライアントＢ１００は、受信データバッファ１６０内の最後尾にあるデータの時刻情報「００：０２：２０」を通知し、時刻情報「００：０２：２１」の識別情報を含むデータ以降のデータを転送するよう要求する。この処理は、データ転送要求手段１４０による処理に該当する。
【００４７】
Ｓ１９０でクライアントＣ１９０が、クライアントＢ１００の要求を受信すると共に、データ転送先としてクライアントＢ１００を登録する。つまり、クライアントＣ１９０は、図６で示すように、自身がデータ転送を行う子クライアントとしてクライアントＢ１００を登録する。
【００４８】
Ｓ２００でクライアントＣ１９０が、図６で示す接続中リスト２２０に登録されたクライアントＢ１００に対し、時刻情報「００：０２：２１」以降の識別情報を含むデータの転送を開始する。こうすることにより、データ転送元の変更を行う場合でも、クライアントＢ１００は連続性のあるデータを途切れ無く受信することができる。
【００４９】
一方、Ｓ２１０でストリーミング配信サーバ１７０が、クライアントＡ１８０の視聴停止通知を受信した後、図４で示す閲覧者リスト２１０のうち視聴停止通知を行ったクライアントＡ１８０を「接続先候補」とする内容を更新する。具体的には、ストリーミング配信サーバ１７０は、閲覧者リスト２１０のクライアントＢ１００に係る「プライマリ接続先」を従来「セカンダリ接続先」であったクライアントＣ１９０に設定し、「セカンダリ接続先」をクライアントＡ１８０以外のクライアントの中から適宜設定する。
【００５０】
Ｓ２２０でストリーミング配信サーバ１７０が、クライアントＢ１００に対し、閲覧者リスト２１０の「プライマリ接続先」及び「セカンダリ接続先」に登録された２つのクライアントを通知する。つまり、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＣ１９０を通知し、「セカンダリ接続先」として新たに設定したクライアントを通知する。Ｓ２３０でクライアントＢ１００が、ストリーミング配信サーバ１７０の通知を受信し、受信した通知内容に基づき接続先候補リスト１５０を更新する。Ｓ２３０における処理は、接続先候補保持手段１１０による処理に該当する。
【００５１】
（３）データ配信システム２００における親クライアント切り替え処理（その２）
図１１で示すシーケンス図を用いて、データ配信システム２００において親クライアントを切り替える処理について説明する。ここでは、上記（１）で説明したようにクライアントＢ１００がクライアントＡ１８０からデータの転送を受けている状態において、クライアントＢ１００のデータ転送元をクライアントＣ１９０に切り替える処理の流れを説明する。
【００５２】
Ｓ２４０−Ｓ２６０では、ストリーミング配信サーバ１７０がクライアントＡ１８０及びクライアントＣ１９０にデータ配信を行い、クライアントＡ１８０がクライアントＢ１００にデータ転送を行っている。
【００５３】
Ｓ２７０でクライアントＢ１００が、図７で示す受信データバッファ１６０に蓄積されるデータ量の監視を行う中で、蓄積されるデータ量の不足を検知する。具体的には、クライアントＢ１００は、図８で示す受信データバッファ管理情報リスト２３０を参照し、蓄積データの「先頭時刻」と「最後尾時刻」との差を算出し、算出した差と検出閾値とを比較する。そして、クライアントＢ１００は、算出した差が検出閾値より小さい場合、蓄積されるデータ量の不足、つまり、データ転送元との接続に不具合があることを検知する。こうすることにより、子クライアントは親クライアントからの受信データ不足を検知したことを切っ掛けにして、自律的に親クライアントの切り替えを行うことで、子クライアントはデータの受信を継続することができる。
【００５４】
Ｓ２８０、Ｓ２９０でクライアントＢ１００が、データ転送元であるクライアントＡ１８０との接続の不具合を検知した後、図５で示す接続先候補リスト１５０において「セカンダリ接続先」に設定したクライアントＣ１９０に対しデータ転送の開始要求を行う。Ｓ２８０、２９０における処理は、イベント発生検知手段１２０、接続先選択手段１３０、及びデータ転送要求手段１４０による処理に該当する。
【００５５】
さらに、クライアントＢ１００は、クライアントＣ１９０に対し、図７で示す受信データバッファ１６０内の最後尾にあるデータの時刻情報を通知し、通知した時刻情報以降の時刻情報を含むデータを転送するよう要求する。つまり、クライアントＢ１００は、受信データバッファ１６０内の最後尾にあるデータの時刻情報「００：０２：２０」を通知し、時刻情報「００：０２：２１」以降の識別情報を含むデータを転送するよう要求する。この処理は、データ転送要求手段１４０による処理に該当する。
【００５６】
Ｓ３００でクライアントＣ１９０が、クライアントＢ１００の要求を受信すると共に、データ転送先としてクライアントＢ１００を登録する。つまり、クライアントＣ１９０は、図６で示すように、自身がデータ転送を行う子クライアントとしてクライアントＢ１００を登録する。
【００５７】
Ｓ３１０でクライアントＣ１９０が、図６で示す接続中子リスト２２０に登録されたクライアントＢ１００に対し、時刻情報「００：０２：２１」以降の識別情報を含むデータの転送を開始する。こうすることにより、データ転送元の変更を行う場合でも、クライアントＢ１００は連続性のあるデータを途切れ無く受信することができる。
【００５８】
Ｓ３２０でクライアントＢ１００が、ストリーミング配信サーバ１７０に対し、図４で示す閲覧者リスト２１０の「接続先候補」を変更するよう要求する。Ｓ３３０でストリーミング配信サーバ１７０が、クライアントＢ１００の変更要求を受信した後、クライアントＡ１８０に対し、子クライアントであるクライアントＢ１００へのデータ転送の停止要求を通知する。Ｓ３４０でクライアントＡ１８０が、ストリーミング配信サーバ１７０の停止要求を受信した後、図６で示す接続中子リスト２２０からクライアントＢ１００を削除する。
【００５９】
一方、Ｓ３５０でストリーミング配信サーバ１７０が、図４で示す閲覧者リスト２１０のうちクライアントＡ１８０を「接続先候補」とする内容を更新する。具体的には、ストリーミング配信サーバ１７０は、閲覧者リストのクライアントＢ１００に係る「プライマリ接続先」を従来「セカンダリ接続先」であったクライアントＣ１９０に設定し、「セカンダリ接続先」をクライアントＡ１８０以外のクライアントの中から適宜設定する。
【００６０】
Ｓ３６０でストリーミング配信サーバ１７０が、クライアントＢ１００に対し、閲覧者リスト２１０の「プライマリ接続先」及び「セカンダリ接続先」に登録された２つのクライアントを通知する。つまり、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＣ１９０を通知し、「セカンダリ接続先」として新たに設定したクライアントを通知する。Ｓ３７０でクライアントＢ１００が、ストリーミング配信サーバ１７０の通知を受信し、受信した通知内容に基づき接続先候補リスト１５０を更新する。Ｓ３７０における処理は、接続先候補保持手段１１０による処理に該当する。
【００６１】
（４）データ配信システム２００におけるセカンダリ接続先の変更処理
図１２で示すシーケンス図を用いて、データ配信システム２００においてセカンダリ接続先を変更する処理について説明する。ここでは、上記（１）で説明したようにクライアントＢ１００がクライアントＡ１８０からデータの転送を受けている状態において、クライアントＢ１００の「セカンダリ接続先」であるクライアントＣ１９０を変更する処理の流れを説明する。
【００６２】
Ｓ３８０−Ｓ４００では、ストリーミング配信サーバ１７０がクライアントＡ１８０及びクライアントＣ１９０にデータ配信を行い、クライアントＡ１８０がクライアントＢ１００にデータ転送を行っている。
【００６３】
Ｓ４１０でクライアントＣ１９０が、ストリーミング配信サーバ１７０に対し、ストリーミングの視聴停止を通知する。Ｓ４２０でストリーミング配信サーバ１７０が、クライアントＣ１９０の視聴停止通知を受信した後、図４で示す閲覧者リスト２１０のうち視聴停止通知を行ったクライアントＣ１９０を「接続先候補」とする内容を更新する。具体的には、ストリーミング配信サーバ１７０は、閲覧者リスト２１０のクライアントＢ１００に係る「セカンダリ接続先」をクライアントＣ１９０以外のクライアントの中から適宜設定する。
【００６４】
Ｓ４３０でストリーミング配信サーバ１７０が、クライアントＢ１００に対し、閲覧者リスト２１０の「プライマリ接続先」及び「セカンダリ接続先」に登録された２つのクライアントを通知する。つまり、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＡ１８０を通知し、「セカンダリ接続先」として新たに設定したクライアントを通知する。Ｓ４４０でクライアントＢ１００が、ストリーミング配信サーバ１７０の通知を受信し、受信した通知内容に基づき接続先候補リスト１５０を更新する。Ｓ４４０における処理は、接続先候補保持手段１１０による処理に該当する。
【００６５】
（５）データ配信システム２００における子クライアント停止時処理
図１３で示すシーケンス図を用いて、データ配信システム２００において子クライアントが視聴停止する場合の処理について説明する。ここでは、上記（１）で説明したようにクライアントＢ１００がクライアントＡ１８０からデータ転送を受け、さらにクライアントＢ１００がクライアントＤにデータ転送を行っている状態において、クライアントＢ１００が視聴停止する場合の処理の流れを説明する。
【００６６】
Ｓ４５０−Ｓ４７０では、ストリーミング配信サーバ１７０がクライアントＡ１８０にデータ配信を行い、クライアントＡ１８０がクライアントＢ１００にデータ転送を行い、クライアントＢ１００がクライアントＤにデータ転送を行っている。Ｓ４８０−５００でクライアントＢ１００が、図６で示すような接続中子リスト２２０を参照しクライアントＤに視聴停止を通知し、親クライアントであるクライアントＡ１８０に視聴停止を通知する。
【００６７】
Ｓ５１０でクライアントＡ１８０が、クライアントＢ１００の視聴停止通知を受信した後、図６で示す接続中子リスト２２０からクライアントＢ１００を削除し、クライアントＢ１００へのデータ転送を停止する。Ｓ５２０でクライアントＢ１００が、ストリーミング配信サーバ１７０に対し視聴停止を通知する。
【００６８】
Ｓ５３０でストリーミング配信サーバ１７０が、クライアントＢ１００の視聴停止通知を受信した後、図４で示す閲覧者リストのうち視聴停止通知を行ったクライアントＢ１００を「接続先候補」とする内容を更新する。具体的には、ストリーミング配信サーバ１７０は、閲覧者リスト２１０のクライアントＤ１００に係る「プライマリ接続先」を従来「セカンダリ接続先」であったクライアントＥ（図２では図示せず）に設定し、「セカンダリ接続先」をクライアントＢ１００以外のクライアントの中から適宜設定する。
【００６９】
Ｓ５４０でストリーミング配信サーバ１７０が、クライアントＤに対し、閲覧者リスト２１０の「プライマリ接続先」及び「セカンダリ接続先」に登録された２つのクライアントを通知する。つまり、ストリーミング配信サーバ１７０は、「プライマリ接続先」としてクライアントＥを通知し、「セカンダリ接続先」として新たに設定したクライアントを通知する。Ｓ５５０でクライアントＤが、ストリーミング配信サーバ１７０の通知を受信し、受信した通知内容に基づき接続先候補リスト１５０を更新する。なお、Ｓ５６０において、クライアントＤは、上記（２）で説明した親クライアント切り替え処理（その１）を実施することにより、データの受信を継続することができる。
【００７０】
（総括）
開示のクライアント装置では、複数のクライアント装置間でデータの転送を行う通信ネットワークにおいて、データ転送を行っていたクライアント装置が当該データ転送を継続できない場合であっても、データの受信を継続することができる。
【００７１】
また、上記では配信対象ストリーム（データ）が１つ場合で説明したが、配信対象ストリーム毎に上記の処理を行なうように構成することにより、多チャンネルのストリームに適用することも可能である。
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
（付記１）
データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置であって、
当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持する接続候補保持手段と、
前記一のクライアント装置に関する所定のイベントの発生を検知するイベント発生検知手段と、
前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択する接続先選択手段と、
前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するデータ転送要求手段と、を有することを特徴とするクライアント装置。
（付記２）
前記データは順序性を有する複数のデータであり、前記各データは該順序性を示す識別情報を含む場合、
前記データ転送要求手段は、一の前記識別情報に対応するデータ以降の前記複数のデータを、当該クライアント装置に転送するよう要求することを特徴とする付記１に記載のクライアント装置。
（付記３）
受信した前記データを一時的に蓄積するバッファを有し、
前記イベント発生検知手段は、前記バッファに蓄積された前記データの量が所定の閾値より少なくなった場合に、前記所定のイベントが発生したことを検知することを特徴とする付記１又は２の何れか一に記載のクライアント装置。
（付記４）
データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置の制御方法であって、
接続候補保持手段が、当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持するステップと、
イベント発生検知手段が、前記一のクライアント装置に関する所定のイベントの発生を検知するステップと、
接続先選択手段が、前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択するステップと、
データ転送要求手段が、前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するステップと、を有することを特徴とする制御方法。
（付記５）
前記データは順序性を有する複数のデータであり、前記各データは該順序性を示す識別情報を含む場合、
前記データ転送要求手段は、一の前記識別情報に対応するデータ以降の前記複数のデータを、当該クライアント装置に転送するよう要求することを特徴とする付記４に記載の制御方法。
（付記６）
受信した前記データを一時的に蓄積するバッファを有し、
前記イベント発生検知手段は、前記バッファに蓄積された前記データの量が所定の閾値より少なくなった場合に、前記所定のイベントが発生したことを検知することを特徴とする付記４又は５の何れか一に記載の制御方法。
（付記７）
データ配信装置と複数のクライアント装置とを有する通信ネットワークにおいて、一のクライアント装置に接続され、該データ配信装置から配信されるデータを受信した該一のクライアント装置から転送された該データを受信するクライアント装置に、
接続候補保持手段が、当該クライアント装置に前記データを転送する候補として、複数の前記クライアント装置に関する情報を保持するステップと、
イベント発生検知手段が、前記一のクライアント装置に関する所定のイベントの発生を検知するステップと、
接続先選択手段が、前記イベント発生検知手段により前記所定のイベントの発生が検知された場合、前記接続候補保持手段により保持する前記情報のうち一の前記候補を選択するステップと、
データ転送要求手段が、前記接続先選択手段により選択された前記候補に対し、当該クライアント装置に前記データを転送するよう要求するステップと、を実行させるためのクライアント装置制御プログラム。
（付記８）
前記データは順序性を有する複数のデータであり、前記各データは該順序性を示す識別情報を含む場合、
前記データ転送要求手段は、一の前記識別情報に対応するデータ以降の前記複数のデータを、当該クライアント装置に転送するよう要求することを特徴とする付記７に記載のクライアント装置制御プログラム。
（付記９）
受信した前記データを一時的に蓄積するバッファを有し、
前記イベント発生検知手段は、前記バッファに蓄積された前記データの量が所定の閾値より少なくなった場合に、前記所定のイベントが発生したことを検知することを特徴とする付記７又は８の何れか一に記載のクライアント装置制御プログラム。
【符号の説明】
【００７２】
１００  クライアント装置（クライアントＢ）
１１０  接続先候補保持手段
１２０  イベント発生検知手段
１３０  接続先選択手段
１４０  データ転送要求手段
１５０  接続先候補情報（接続先候補リスト）
１６０  バッファ（受信データバッファ）
１７０  データ配信装置（ストリーミング配信サーバ）
１８０  一のクライアント装置（クライアントＡ）
１９０  他のクライアント装置（クライアントＣ）
２００  データ配信システム
２１０  閲覧者リスト
２２０  接続中子リスト
２３０  受信データバッファ管理情報リスト
【図１】
2010257305.tif 000003
【図２】
2010257305.tif 000004
【図３】
2010257305.tif 000005
【図４】
2010257305.tif 000006
【図５】
2010257305.tif 000007
【図６】
2010257305.tif 000008
【図７】
2010257305.tif 000009
【図８】
2010257305.tif 000010
【図９】
2010257305.tif 000011
【図１０】
2010257305.tif 000012
【図１１】
2010257305.tif 000013
【図１２】
2010257305.tif 000014
【図１３】
2010257305.tif 000015