(57)【要約】【課題】コンテンツの再生をより途切れにくくする。【解決手段】  割り当て部１８２は、ダウンロードが指示されたコンテンツデータを、所定の数のセグメントに分割し、さらにセグメントのそれぞれを、送信ノードとしてのサーバ５２の数のパートに分割する。割り当て部１８２は、次にダウンロードするセグメントを構成するパートのそれぞれの送信をサーバ５２−１乃至サーバ５２−Ｎのそれぞれに割り当てる。通信制御部１８３−１乃至通信制御部１８３−Ｎは、それぞれサーバ５２−１乃至サーバ５２−Ｎに割り当てられたパートの送信を要求する送信要求信号を生成し、通信網５３を介してサーバ５２−１乃至サーバ５２−Ｎのそれぞれに送信する。本発明は、動画像や音楽などのストリーミングデータを配信する、ストリーミング配信システムに適用することができる。【選択図】図７
2006244054.tif 000002
【特許請求の範囲】
【請求項１】
通信網を介して接続されている複数の送信装置のそれぞれから送信されてくるデータを受信する情報処理装置において、
これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする前記第２のデータを、さらに前記送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、前記第３のデータのそれぞれの送信を対応する前記送信装置のそれぞれに割り当てる割り当て手段と、
前記送信装置のそれぞれに割り当てた前記第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、前記第３のデータに対応する前記送信装置にそれぞれ送信する送信手段と、
それぞれの前記送信装置から送信されてきた、前記第３のデータのそれぞれを受信する受信手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第３のデータを前記送信装置から受信する速度を示す情報を記憶する記憶手段をさらに備え、
前記割り当て手段は、前記情報を基に、前記第３のデータの大きさをそれぞれ変化させて、前記第２のデータを前記第３のデータのそれぞれに分ける
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
通信網を介して接続されている複数の送信装置のそれぞれから送信されてくるデータを受信する情報処理装置の情報処理方法において、
これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする前記第２のデータを、さらに前記送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、前記第３のデータのそれぞれの送信を対応する前記送信装置のそれぞれに割り当てる割り当てステップと、
前記送信装置のそれぞれに割り当てた前記第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、前記第３のデータに対応する前記送信装置のそれぞれへの送信を制御する送信制御ステップと、
それぞれの前記送信装置から送信されてきた、前記第３のデータのそれぞれの受信を制御する受信制御ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
通信網を介して接続されている複数の送信装置のそれぞれから送信されてくるデータを受信する受信処理用のプログラムであって、
これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする前記第２のデータを、さらに前記送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、前記第３のデータのそれぞれの送信を対応する前記送信装置のそれぞれに割り当てる割り当てステップと、
前記送信装置のそれぞれに割り当てた前記第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、前記第３のデータに対応する前記送信装置のそれぞれへの送信を制御する送信制御ステップと、
それぞれの前記送信装置から送信されてきた、前記第３のデータのそれぞれの受信を制御する受信制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
通信網を介して接続されている複数の送信装置のそれぞれから送信されてくるデータを受信する受信処理を、コンピュータに行わせるプログラムにおいて、
これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする前記第２のデータを、さらに前記送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、前記第３のデータのそれぞれの送信を対応する前記送信装置のそれぞれに割り当てる割り当てステップと、
前記送信装置のそれぞれに割り当てた前記第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、前記第３のデータに対応する前記送信装置のそれぞれへの送信を制御する送信制御ステップと、
それぞれの前記送信装置から送信されてきた、前記第３のデータのそれぞれの受信を制御する受信制御ステップと
を含むことを特徴とするプログラム。
【請求項６】
第１のデータを記憶する記憶手段と、
相手がこれから受信しようとする前記第１のデータを予め定められた所定の大きさに分けた第２のデータを、前記相手がそれぞれ順番に受信する場合、前記相手から送信されてきた、前記相手が次に受信しようとする前記第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号を受信する受信手段と、
前記要求信号に基づいて、記憶している前記第１のデータから、送信が要求された第３のデータを取得する取得手段と、
取得した第３のデータを、前記相手に送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項７】
相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、前記相手がそれぞれ順番に受信する場合、前記相手から送信されてきた、前記相手が次に受信しようとする前記第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、
前記要求信号に基づいて、記憶している前記第１のデータから、送信が要求された第３のデータを取得する取得ステップと、
取得した第３のデータの前記相手への送信を制御する送信制御ステップと
を含むことを特徴とする情報処理方法。
【請求項８】
相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、前記相手がそれぞれ順番に受信する場合、前記相手から送信されてきた、前記相手が次に受信しようとする前記第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、
前記要求信号に基づいて、記憶している前記第１のデータから、送信が要求された第３のデータを取得する取得ステップと、
取得した第３のデータの前記相手への送信を制御する送信制御ステップと
を含むことを特徴とする情報処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【請求項９】
相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、前記相手がそれぞれ順番に受信する場合、前記相手から送信されてきた、前記相手が次に受信しようとする前記第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、
前記要求信号に基づいて、記憶している前記第１のデータから、送信が要求された第３のデータを取得する取得ステップと、
取得した第３のデータの前記相手への送信を制御する送信制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
通信網を介して接続されている複数の送信装置と、それぞれの前記送信装置から送信されてくるデータを受信する受信装置とからなる情報処理システムにおいて、
前記受信装置は、
これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする前記第２のデータを、さらに接続されている前記送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、前記第３のデータのそれぞれの送信を対応する前記送信装置のそれぞれに割り当てる割り当て手段と、
前記送信装置のそれぞれに割り当てた前記第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、前記第３のデータに対応する前記送信装置にそれぞれ送信する送信手段と
を備え、
前記送信装置のそれぞれは、
前記第１のデータを記憶する記憶手段と、
前記受信装置から送信されてきた、前記要求信号を受信する受信手段と、
前記要求信号に基づいて、記憶している前記第１のデータから、送信が要求された前記第３のデータを取得する取得手段と、
取得した前記第３のデータを、前記受信装置に送信する送信手段と
を備え、
前記受信装置は、
前記送信装置のそれぞれから送信されてきた、前記第３のデータのそれぞれを受信する受信手段をさらに備える
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、記録媒体、プログラム、並びに情報処理システムに関し、特に、より効率よくストリーミングすることができるようにした情報処理装置および方法、記録媒体、プログラム、並びに情報処理システムに関する。
【背景技術】
【０００２】
昨今、インターネットなど、種々の通信媒体を利用して、映像（動画像）や音楽などのコンテンツを配信するサービスが一般に行われている。コンテンツの配信は、例えば、コンテンツを再生するための画像データや音声データ（以下、適宜、コンテンツデータと称する）を記録しているサーバが、インターネットを介して、コンテンツデータをクライアントあてに送信したり、ピアツーピア（Peer To Peer）などのネットワークにおいて、コンテンツデータを記録している送信ノードとしてのクライアント（送信装置）が、ネットワークを介して、コンテンツデータを受信ノードとしてのクライアント（受信装置）に送信することによって行われる。
【０００３】
特に、近年、送信ノードとしては信頼性が低いとされてきたパーソナルコンピュータなどの性能が高くなり、送信ノードとしての信頼性が高くなったことや、ネットワークの帯域がより広くなったこと、さらに、パーソナルコンピュータなどの各ノードが、常に（常時）ネットワークに接続されるようになってきたことなどにより、ネットワーク上において、より大きいデータを、より確実に伝送できるようになってきた。そのため、ダウンロード型やライブ型の伝送方式のサービスに加えて、プログレッシブダウンロード型の伝送方式のサービスがより多く提供されるようになってきている。
【０００４】
ダウンロード型の伝送方式のサービスにおいては、コンテンツを配信（送信）する側の装置（以下、サーバと称する）が、既にエンコードが完了しているコンテンツデータを、受信側の装置（以下、クライアントと称する）に送信する。クライアントは、サーバから送信されてきたコンテンツデータを受信してから（コンテンツデータのダウンロードが完了した後）コンテンツデータを再生する。
【０００５】
一方、ライブ型の伝送方式のサービスにおいては、例えば、サーバが、撮像した映像に対応するコンテンツデータをリアルタイムでエンコードし、エンコードによって得られたコンテンツデータを直ちにクライアントあてに送信する。そして、クライアントは、サーバから送信されてきたコンテンツデータを受信するとともに、これに並行して、受信されたコンテンツデータを基にコンテンツを再生する。すなわち、サーバは、コンテンツデータをストリーミング配信し、クライアントは、サーバから送信されてきたコンテンツデータを受信して、順次再生する。
【０００６】
また、プログレッシブダウンロード型の伝送方式のサービスにおいては、サーバが、既にエンコードが完了しているコンテンツデータを、クライアントあてに送信する。そして、ライブ型の伝送方式における場合と同様に、クライアントは、サーバから送信されてきたコンテンツデータを受信するとともに、これに並行して、受信されたコンテンツデータを基にコンテンツを再生する。
【０００７】
コンテンツ（コンテンツデータ）をプログレッシブダウンロード型の伝送方式で配信する場合、エンコードされたコンテンツデータが出力される速度（ビットレート）が、クライアントがコンテンツデータをダウンロードする速度（コンテンツデータを受信するビットレート）よりも十分に大きいときには、クライアントは、自分自身が持つ（割り当てられた）ネットワークの帯域を最大限に利用してコンテンツデータをダウンロードし、そのコンテンツデータを一時的に記憶しておくことにより、サーバやネットワークに問題が発生しても、コンテンツを連続して視聴できる部分（コンテンツデータ）を可能な限り確保することができる。
【０００８】
例えば、インターネットなどの帯域保障がされないネットワークにおいて、クライアントが、サーバからコンテンツデータをダウンロードする場合、ネットワーク上において、コンテンツデータ（が格納されたパケット）を伝送する途中で、パケットのロスや伝送の遅延などの擾乱（問題）が発生し、これによる帯域の縮退やコネクション断がある程度の確率で発生する。しかしながら、プログレッシブダウンロード型の伝送方式においては、クライアントは、自分自身が持つネットワークの帯域やハードディスクのディスク容量などのリソースを最大限に用いて、コンテンツデータを可能な限りダウンロード（受信）しておくことによって、パケットのロスやコネクション断などが発生した場合においても、既にダウンロードされたコンテンツデータ（キャッシュされたコンテンツデータ）を用いて、コネクションの張りなおしや帯域が元に戻るまでの間、シーンの連続性を損ねることなく（再生を途切れさせることなく）コンテンツを視聴し続けることができる。
【０００９】
ところで、コンテンツデータをより迅速にダウンロードするために、コンテンツデータを分割してダウンロードする方法が提案されている。例えば、FlashGetなどのダウンロードアプリケーションプログラムを用いて、所望するコンテンツデータを複数のデータに分割して（分けて）、分割されたデータのそれぞれを、１つのサーバから一斉（同時）にダウンロードする方法が提案されている。
【００１０】
しかしながら、通常、コンテンツデータのダウンロードは、例えば、TCP（Transmission Control Protocol）セッションの１セッションで行われるため、サーバに負荷がかかり過ぎないように、サーバ側での１セッションあたりの最大転送レートが制限されることがある。また、TCPでのセッションでは、パケットロスが生じた場合に、大幅にパケットの転送レートを落としたり、遅延の大きいネットワークにおいては、最大スループットが制限される。
【００１１】
したがって、クライアントが、１つのサーバからコンテンツデータをダウンロードする場合、コンテンツデータを分割してダウンロードしたとしても、クライアントは、自分自身が持つ帯域を有効に利用することができないことがある。
【００１２】
このような問題を解決する方法として、コンテンツデータを複数のデータに分割し、分割したデータを、それぞれ複数のサーバ（ミラーサーバ）からダウンロードする方法が提案されている（例えば、特許文献１参照）。また、コンテンツデータを複数のデータに分割して、それぞれ複数のサーバからダウンロードする方法として、例えば、Star Downloaderなどのダウンロードアプリケーションプログラムを用いて、コンテンツデータを複数のデータに分割し、それぞれ複数のサーバからダウンロードする方法も提案されている。例えば、サーバＡおよびサーバＢが、それぞれ同一のコンテンツデータＡを記録しているとすると、クライアントは、コンテンツデータＡを、データＡおよびデータＢの２つのデータに分け、データＡをサーバＡからダウンロードし、データＢをサーバＢからダウンロードする。
【００１３】
このように、１つのコンテンツデータを複数のデータに分けて（分割して）、複数のサーバからダウンロードすることにより、クライアントは、自分自身が持つ帯域を有効に利用することができる。また、この場合、クライアントがコンテンツデータをダウンロードする速度は、各サーバが持つ帯域を加算した値（速度）となるので、コンテンツデータをより迅速にダウンロードすることができる。
【００１４】
また、ピアツーピアネットワークにおいては、コンテンツデータをピアツーピアネットワークに接続されている複数のクライアントに分散させることによって、コンテンツデータをダウンロードすることができる可能性を向上させている。
【００１５】
換言すれば、WinnyやBittorrentなどのピアツーピアネットワークに接続されている、受信ノードとしてのクライアントは、例えば、それぞれのネットワークに対応したクライアントソフトウェアを用いて、送信ノードとしての他のクライアントからコンテンツデータをダウンロードする。ここで、送信ノードとしてのクライアントは、一般に、パーソナルコンピュータであり、専用のサーバに比べて自分自身が持つ帯域やCPU（Central Processing Unit）の処理能力、すなわち、コンテンツデータの送信能力の面で劣るため、受信ノードとしてのクライアントが、コンテンツデータをダウンロードするときに、十分なダウンロード速度が得られないことがある。そこで、ピアツーピアネットワークにおいては、受信ノードとしてのクライアントは、１つのコンテンツデータを複数のデータに分割して（分けて）、それぞれのデータを、複数の送信ノードとしてのクライアントから、それぞれダウンロードすることによって、各クライアントの送信能力の不足を補っている。
【００１６】
【特許文献１】特開２００３−１５７１９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ところで、上述した、コンテンツデータを複数のサーバ（または送信ノード）から分割してダウンロードする方法は、主に、ダウンロード型の伝送方式でコンテンツデータを配信することが想定されており、プログレッシブダウンロード型の伝送方式での配信は、視野に入れられていない。例えば、ピアツーピアネットワークにおいては、コンテンツ（コンテンツデータ）を配信する場合、送信ノードとしてパーソナルコンピュータが利用されるため、送信能力などの安定性が保証されないので、最終的に、受信ノードが、コンテンツデータをダウンロードすることができればよいという観点から、コンテンツの配信は、通常、ダウンロード型の伝送方式で行われる。
【００１８】
したがって、プログレッシブダウンロード型の伝送方式で配信されるコンテンツ（コンテンツデータ）を、複数のサーバから分割してダウンロードする場合、ダウンロードが完了したコンテンツデータのうち、連続して再生することができるコンテンツデータの量が少なく、非常に効率が悪くなってしまう。
【００１９】
例えば、図１に示すように、１つのコンテンツデータを、データ１１−１乃至データ１１−５に分けて、複数のサーバからダウンロードしたとする。ここで、図中、横軸は、コンテンツデータの再生時刻を示している。また、データ１１−１乃至データ１１−５のうち、黒い部分は、既にサーバからのダウンロードが完了した部分を示しており、白い部分は、サーバからのダウンロードが完了していない部分、すなわち、まだダウンロードしていない部分を示している。
【００２０】
コンテンツ（コンテンツデータ）を再生する場合、コンテンツデータは、再生時刻ｔ０の部分から再生が開始され、再生時刻ｔ１０の部分で再生が終了する。すなわち、クライアントは、データ１１−１乃至データ１１−５の順番で、データ１１−１乃至データ１１−５のそれぞれを用いて、コンテンツを再生する。クライアントは、このコンテンツデータを、再生時刻ｔ０から再生時刻ｔ２までのデータ１１−１、再生時刻ｔ２から再生時刻ｔ４までのデータ１１−２、再生時刻ｔ４から再生時刻ｔ６までのデータ１１−３、再生時刻ｔ６から再生時刻ｔ８までのデータ１１−４、および再生時刻ｔ８から再生時刻ｔ１０までのデータ１１−５のそれぞれに分ける。そして、データ１１−１乃至データ１１−５を、それぞれ異なるサーバからダウンロードする。
【００２１】
図１の例においては、データ１１−１のうちの、再生時刻ｔ０から再生時刻ｔ１の部分のデータ、データ１１−２のうちの、再生時刻ｔ２から再生時刻ｔ３の部分のデータ、およびデータ１１−３のうちの、再生時刻ｔ４から再生時刻ｔ５の部分のデータが、既にダウンロードされている。また、データ１１−４のうちの、再生時刻ｔ６から再生時刻ｔ７の部分のデータ、およびデータ１１−５のうちの、再生時刻ｔ８から再生時刻ｔ９の部分のデータも、既にダウンロードされている。
【００２２】
したがって、この場合、クライアントにおいては、コンテンツデータを基に再生されるコンテンツのうち、再生時刻ｔ０から再生時刻ｔ１までのコンテンツデータに対応する部分を連続して再生することができる。しかしながら、既にダウンロードが完了している再生時刻ｔ２から再生時刻ｔ３の部分のデータは、データ１１−１のダウンロードが完了するまで、すなわち、まだダウンロードされていない再生時刻ｔ１から再生時刻ｔ２の部分のデータのダウンロードが完了するまで、コンテンツの再生に用いることができない。
【００２３】
同様に、既にダウンロードが完了している再生時刻ｔ４から再生時刻ｔ５の部分のデータ、再生時刻ｔ６から再生時刻ｔ７の部分のデータ、および再生時刻ｔ８から再生時刻ｔ９の部分のデータも、現時点においては、コンテンツの再生に用いることができない。
【００２４】
ここで、例えば、図１において、データ１１−１をクライアントあてに送信しているサーバに問題が発生し、サーバが、再生時刻ｔ１から再生時刻ｔ２まで部分のデータを、クライアントに送信することができなくなってしまった場合、データ１１−２乃至データ１１−５のダウンロードが完了したとしても、データ１１−２乃至データ１１−５のそれぞれは、再生時刻ｔ１から再生時刻ｔ２までのデータのダウンロードが完了するまでは、対応する部分のコンテンツの再生に用いることができない。すなわち、クライアントを操作するユーザは、データ１１−２乃至データ１１−５のダウンロードが完了しているにも関わらず、視聴しようとしているコンテンツのうち、再生時刻ｔ０から再生時刻ｔ１までのコンテンツデータに対応する部分しかコンテンツを視聴することができない。
【００２５】
同様に、データ１１−１を送信するサーバのデータの送信速度が、データ１１−２乃至データ１１−５のそれぞれを送信するサーバの送信速度のそれぞれよりも小さい（遅い）場合、データ１１−２乃至データ１１−５のダウンロードが完了したとしても、ユーザは、コンテンツデータを基に再生されるコンテンツのうち、データ１１−１のダウンロードが完了している部分に対応する部分までしかコンテンツを再生することができない。
【００２６】
以上のように、１つのコンテンツデータを複数のデータに分けて（分割して）、分割したデータをそれぞれ異なるサーバからダウンロードした場合、コンテンツデータをダウンロードする速度を速くすることはできるが、ダウンロードが完了したコンテンツデータのうち、連続して再生することができるコンテンツデータの量が少なく、効率が悪いため、１つのサーバのデータの送信速度が、他のサーバの送信速度に比べて非常に小さいときや、コンテンツデータを伝送するネットワーク、またはコンテンツデータを送信するサーバなどに問題が発生したときには、視聴しているコンテンツの再生が途切れてしまうことがあるという課題があった。
【００２７】
本発明は、このような状況に鑑みてなされたものであり、コンテンツデータをより迅速に、かつより効率よくダウンロードし、コンテンツデータが、プログレッシブダウンロード型の伝送方式で配信される場合に、ネットワークやサーバに問題が発生したときにおいても、コンテンツの再生をより途切れにくくすることができるようにするものである。
【課題を解決するための手段】
【００２８】
本発明の情報処理装置は、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当て手段と、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、第３のデータに対応する送信装置にそれぞれ送信する送信手段と、それぞれの送信装置から送信されてきた、第３のデータのそれぞれを受信する受信手段とを備えることを特徴とする。
【００２９】
情報処理装置には、第３のデータを送信装置から受信する速度を示す情報を記憶する記憶手段をさらに設け、割り当て手段には、第３のデータを送信装置から受信する速度を示す情報を基に、第３のデータの大きさをそれぞれ変化させて、第２のデータを第３のデータのそれぞれに分けさせるようにすることができる。
【００３０】
本発明の情報処理方法は、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当てステップと、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、第３のデータに対応する送信装置のそれぞれへの送信を制御する送信制御ステップと、それぞれの送信装置から送信されてきた、第３のデータのそれぞれの受信を制御する受信制御ステップとを含むことを特徴とする。
【００３１】
本発明の記録媒体のプログラムは、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当てステップと、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、第３のデータに対応する送信装置のそれぞれへの送信を制御する送信制御ステップと、それぞれの送信装置から送信されてきた、第３のデータのそれぞれの受信を制御する受信制御ステップとを含むことを特徴とする。
【００３２】
本発明のプログラムは、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当てステップと、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、第３のデータに対応する送信装置のそれぞれへの送信を制御する送信制御ステップと、それぞれの送信装置から送信されてきた、第３のデータのそれぞれの受信を制御する受信制御ステップとをコンピュータに実行させることを特徴とする。
【００３３】
本発明の情報処理装置および方法、記録媒体、並びにプログラムにおいては、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータが、さらに送信装置のそれぞれに対応する第３のデータのそれぞれに分けられることにより、第３のデータのそれぞれの送信が対応する送信装置のそれぞれに割り当てられ、送信装置のそれぞれに割り当てられた第３のデータのそれぞれの送信を要求する要求信号のそれぞれが、第３のデータに対応する送信装置にそれぞれ送信され、それぞれの送信装置から送信されてきた、第３のデータのそれぞれが受信される。
【００３４】
本発明の情報処理装置は、第１のデータを記憶する記憶手段と、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号を受信する受信手段と、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得手段と、取得した第３のデータを、相手に送信する送信手段とを備えることを特徴とする。
【００３５】
本発明の情報処理方法は、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得ステップと、取得した第３のデータの相手への送信を制御する送信制御ステップとを含むことを特徴とする。
【００３６】
本発明の記録媒体のプログラムは、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得ステップと、取得した第３のデータの相手への送信を制御する送信制御ステップとを含むことを特徴とする。
【００３７】
本発明のプログラムは、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップと、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得ステップと、取得した第３のデータの相手への送信を制御する送信制御ステップとをコンピュータに実行させることを特徴とする。
【００３８】
本発明の情報処理装置および方法、記録媒体、並びにプログラムにおいては、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータを、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータのうちの、１つの第３のデータの送信を要求する要求信号が受信され、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータが取得され、取得された第３のデータが相手に送信される。
【００３９】
本発明の情報処理システムにおいては、受信装置は、これから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに接続されている送信装置のそれぞれに対応する第３のデータのそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当て手段と、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、第３のデータに対応する送信装置にそれぞれ送信する送信手段とを備え、送信装置のそれぞれは、第１のデータを記憶する記憶手段と、受信装置から送信されてきた、要求信号を受信する受信手段と、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得手段と、取得した第３のデータを、受信装置に送信する送信手段とを備え、受信装置は、送信装置のそれぞれから送信されてきた、第３のデータのそれぞれを受信する受信手段をさらに備えることを特徴とする。
【００４０】
本発明の情報処理システムにおいては、受信装置がこれから受信しようとする第１のデータを、予め定められた所定の大きさに分けた第２のデータをそれぞれ順番に受信する場合、受信装置によって、次に受信しようとする第２のデータが、さらに接続されている送信装置のそれぞれに対応する第３のデータのそれぞれに分けられることにより、第３のデータのそれぞれの送信が対応する送信装置のそれぞれに割り当てられ、送信装置のそれぞれに割り当てられた第３のデータのそれぞれの送信を要求する要求信号のそれぞれが、第３のデータに対応する送信装置にそれぞれ送信され、送信装置のそれぞれによって、受信装置から送信されてきた、要求信号が受信され、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータが取得され、取得された第３のデータが、受信装置に送信される。そして、受信装置によって、送信装置のそれぞれから送信されてきた、第３のデータのそれぞれがさらに受信される。
【００４１】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００４２】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【発明の効果】
【００４３】
本発明によればコンテンツデータをダウンロードすることができる。特に、本発明によれば、コンテンツデータをより迅速に、かつより効率よくダウンロードし、コンテンツデータが、プログレッシブダウンロード型の伝送方式で配信される場合に、ネットワークやサーバに問題が発生したときにおいても、コンテンツの再生をより途切れにくくすることができる。
【発明を実施するための最良の形態】
【００４４】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００４５】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００４６】
請求項１に記載の情報処理装置は、これから受信しようとする第１のデータ（例えば、図５に示すコンテンツデータ）を、予め定められた所定の大きさに分けた第２のデータ（例えば、図５のセグメント７１−１乃至セグメント７１−６、セグメント７１）をそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置（例えば、図２のサーバ５２−１乃至サーバ５２−Ｎ、サーバ５２）のそれぞれに対応する第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）のそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当て手段（例えば、図８の算出部２５３）と、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、第３のデータに対応する送信装置にそれぞれ送信する送信手段（例えば、図７の送信部２０３−１乃至送信部２０３−Ｎ、送信部２０３）と、それぞれの送信装置から送信されてきた、第３のデータのそれぞれを受信する受信手段（例えば、図７の受信部２０４−１乃至受信部２０４−Ｎ、受信部２０４）とを備えることを特徴とする。
【００４７】
請求項２に記載の情報処理装置は、第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）を送信装置（例えば、図２のサーバ５２−１乃至サーバ５２−Ｎ、サーバ５２）から受信する速度を示す情報を記憶する記憶手段（例えば、図８の受信履歴記憶部２５５）をさらに備え、割り当て手段（例えば、図８の算出部２５３）は、第３のデータを送信装置から受信する速度を示す情報を基に、第３のデータの大きさをそれぞれ変化させて、第２のデータを第３のデータのそれぞれに分けることを特徴とする。
【００４８】
請求項３に記載の情報処理方法は、これから受信しようとする第１のデータ（例えば、図５に示すコンテンツデータ）を、予め定められた所定の大きさに分けた第２のデータ（例えば、図５のセグメント７１−１乃至セグメント７１−６、セグメント７１）をそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに送信装置（例えば、図２のサーバ５２−１乃至サーバ５２−Ｎ、サーバ５２）のそれぞれに対応する第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）のそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当てステップ（例えば、図１０のステップＳ６４の処理およびステップＳ７２の処理）と、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれの、第３のデータに対応する送信装置のそれぞれへの送信を制御する送信制御ステップ（例えば、図１０のステップＳ６５の処理）と、それぞれの送信装置から送信されてきた、第３のデータのそれぞれの受信を制御する受信制御ステップ（例えば、図１０のステップＳ６６の処理）とを含むことを特徴とする。
【００４９】
なお、請求項４に記載の記録媒体および請求項５に記載のプログラムも、上述した請求項３に記載の情報処理方法と基本的に同様の処理であるため、繰り返しになるのでその説明は省略する。
【００５０】
請求項６に記載の情報処理装置は、第１のデータ（例えば、図５に示すコンテンツデータ）を記憶する記憶手段（例えば、図７の記録部２２３−１乃至記録部２２３−Ｎ、記録部２２３）と、相手がこれから受信しようとする第１のデータを予め定められた所定の大きさに分けた第２のデータ（例えば、図５のセグメント７１−１乃至セグメント７１−６、セグメント７１）を、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）のうちの、１つの第３のデータの送信を要求する要求信号を受信する受信手段（例えば、図７の受信部２２１−１乃至受信部２２１−Ｎ、受信部２２１）と、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得手段（例えば、図７の取得部２２２−１乃至取得部２２２−Ｎ、取得部２２２）と、取得した第３のデータを、相手に送信する送信手段（例えば、図７の送信部２２４−１乃至送信部２２４−Ｎ、送信部２２４）とを備えることを特徴とする。
【００５１】
請求項７に記載の情報処理方法は、相手がこれから受信しようとする第１のデータ（例えば、図５に示すコンテンツデータ）を予め定められた所定の大きさに分けた第２のデータ（例えば、図５のセグメント７１−１乃至セグメント７１−６、セグメント７１）を、相手がそれぞれ順番に受信する場合、相手から送信されてきた、相手が次に受信しようとする第２のデータをさらに所定の数に分けた第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）のうちの、１つの第３のデータの送信を要求する要求信号の受信を制御する受信制御ステップ（例えば、図１５のステップＳ１１１の処理）と、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得ステップ（例えば、図１５のステップＳ１１２の処理）と、取得した第３のデータの相手への送信を制御する送信制御ステップ（例えば、図１５のステップＳ１１３の処理）とを含むことを特徴とする。
【００５２】
なお、請求項８に記載の記録媒体および請求項９に記載のプログラムも、上述した請求項７に記載の情報処理方法と基本的に同様の処理であるため、繰り返しになるのでその説明は省略する。
【００５３】
請求項１０に記載の情報処理システムにおいては、受信装置（例えば、図２のクライアント５１）は、これから受信しようとする第１のデータ（例えば、図５に示すコンテンツデータ）を、予め定められた所定の大きさに分けた第２のデータ（例えば、図５のセグメント７１−１乃至セグメント７１−６、セグメント７１）をそれぞれ順番に受信する場合、次に受信しようとする第２のデータを、さらに接続されている送信装置（例えば、図２のサーバ５２−１乃至サーバ５２−Ｎ、サーバ５２）のそれぞれに対応する第３のデータ（例えば、図５に示すパート１１１−１乃至パート１１１−６、パート１１１、パート１１２−１乃至パート１１２−６、パート１１２）のそれぞれに分けることにより、第３のデータのそれぞれの送信を対応する送信装置のそれぞれに割り当てる割り当て手段（例えば、図８の算出部２５３）と、送信装置のそれぞれに割り当てた第３のデータのそれぞれの送信を要求する要求信号のそれぞれを、第３のデータに対応する送信装置にそれぞれ送信する送信手段（例えば、図７の送信部２０３−１乃至送信部２０３−Ｎ、送信部２０３）とを備え、送信装置のそれぞれは、第１のデータを記憶する記憶手段（例えば、図７の記録部２２３−１乃至記録部２２３−Ｎ、記録部２２３）と、受信装置から送信されてきた、要求信号を受信する受信手段（例えば、図７の受信部２２１−１乃至受信部２２１−Ｎ、受信部２２１）と、要求信号に基づいて、記憶している第１のデータから、送信が要求された第３のデータを取得する取得手段（例えば、図７の取得部２２２−１乃至取得部２２２−Ｎ、取得部２２２）と、取得した第３のデータを、受信装置に送信する送信手段（例えば、図７の送信部２２４−１乃至送信部２２４−Ｎ、送信部２２４）とを備え、受信装置は、送信装置のそれぞれから送信されてきた、第３のデータのそれぞれを受信する受信手段（例えば、図７の受信部２０４−１乃至受信部２０４−Ｎ、受信部２０４）をさらに備えることを特徴とする。
【００５４】
本発明は、動画像や音楽などのストリーミングデータを配信するストリーミング配信システムに適用することができる。
【００５５】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【００５６】
図２は、本発明に係るコンテンツ配信システムを説明する図である。このコンテンツ配信システムにおいては、クライアント５１およびサーバ５２−１乃至サーバ５２−Ｎ（サーバ５２−５乃至サーバ５２−（Ｎ−１）は図示せず）のそれぞれが、互いに通信網５３を介して接続されている。
【００５７】
クライアント５１およびサーバ５２−１乃至サーバ５２−Ｎから構成されるネットワークは、いわゆるピアツーピアネットワークであり、クライアント５１およびサーバ５２−１乃至サーバ５２−Ｎのそれぞれは、通信網５３を介して接続されている装置（クライアント５１およびサーバ５２−１乃至サーバ５２−Ｎ）のうち、所望するコンテンツデータを記録している装置を検索し、検索された装置からコンテンツデータをダウンロードすることができる。また、クライアント５１およびサーバ５２−１乃至サーバ５２−Ｎのそれぞれは、通信網５３を介して接続されている装置からの要求に応じて、記録しているコンテンツデータを、通信網５３を介してコンテンツデータの送信を要求してきた装置あてに送信することができる。
【００５８】
図２では、説明のため、コンテンツデータを受信（ダウンロード）する装置をクライアント５１とし、クライアント５１あてにコンテンツデータを送信する装置をサーバ（サーバ５２−１乃至サーバ５２−Ｎ）と称する。なお、以下、サーバ５２−１乃至サーバ５２−Ｎのそれぞれを個々に区別する必要のない場合、単にサーバ５２と称する。
【００５９】
ユーザが、クライアント５１を操作して、所望のコンテンツデータをダウンロードする場合、クライアント５１は、通信網５３を介して接続されているサーバ５２−１乃至サーバ５２−Ｎのうち、所望するコンテンツデータを記録しているサーバ５２を検索する。
【００６０】
例えば、クライアント５１は、所定のコンテンツデータを記録しているサーバ５２の検索を要求する検索要求信号を生成して、生成した検索要求信号を、通信網５３を介してサーバ５２−１およびサーバ５２−２あてに送信する。
【００６１】
サーバ５２−１およびサーバ５２−２は、それぞれクライアント５１から送信されてきた検索要求信号を受信する。そして、サーバ５２−１またはサーバ５２−２は、自分自身が所定のコンテンツデータを記録している場合、コンテンツデータを記録している旨の信号を生成し、生成した信号を、通信網５３を介してクライアント５１あてに送信する。
【００６２】
一方、サーバ５２−１またはサーバ５２−２が、所定のコンテンツデータを記録していない場合、サーバ５２−１またはサーバ５２−２は、受信した検索要求信号を、通信網５３を介して他のサーバ５２あてに送信する。例えば、サーバ５２−１は、受信した検索要求信号を、通信網５３を介してサーバ５２−３およびサーバ５２−４あてに送信し、サーバ５２−２は、受信した検索要求信号を、通信網５３を介してサーバ５２−５およびサーバ５２−６あてに送信する。
【００６３】
サーバ５２−１またはサーバ５２−２が検索要求信号を受信した場合と同様に、サーバ５２−３乃至サーバ５２−６のそれぞれは、検索要求信号を受信し、自分自身がコンテンツデータを記録している場合、コンテンツデータを記録している旨の信号を生成して、通信網５３を介してクライアント５１あてに送信し、自分自身がコンテンツデータを記録していない場合、受信した検索要求信号を、通信網５３を介して他のサーバ５２あてに送信する。
【００６４】
このようにすることで、クライアント５１には、所望するコンテンツデータを記録しているサーバ５２から、コンテンツデータを記録している旨の信号が送信されてくる。クライアント５１は、このコンテンツデータを記録している旨の信号を受信することによって、サーバ５２のうち、所望するコンテンツデータを記録しているサーバ５２を検索することができる。
【００６５】
そして、クライアント５１は、コンテンツデータを記録しているサーバ５２が検索されると、所望するコンテンツデータを複数のデータに分割して（分けて）、分割したそれぞれのデータを、それぞれコンテンツデータを記録しているサーバ５２からダウンロードする。例えば、サーバ５２−１およびサーバ５２−２が、所望するコンテンツデータを記録している場合、クライアント５１は、コンテンツデータを複数のデータに分割する分割位置を指定し、それぞれのデータをサーバ５２−１またはサーバ５２−２からダウンロードする。
【００６６】
次に、図３乃至図５を参照して、クライアント５１が、コンテンツデータを分割してダウンロードする方法について説明する。なお、図４および図５において、図３における場合と対応する部分には、同一の符号を付してあり、繰り返しになるのでその説明は、適宜、省略する。
【００６７】
例えば、クライアント５１が、これから受信しようとするコンテンツデータを分割して、２つのサーバ５２−１およびサーバ５２−２からダウンロードする場合、図３に示すように、コンテンツデータが、所定の大きさのデータであるセグメント７１−１乃至セグメント７１−６の、６つのデータに分割されるように、その分割位置を指定する。
【００６８】
コンテンツデータをセグメント７１−１乃至セグメント７１−６のそれぞれに分割する場合、例えば、セグメント７１−１の大きさが、セグメント７１−２乃至セグメント７１−６のそれぞれの大きさよりも小さくなるように分割位置を指定するなど、セグメント７１−１乃至セグメント７１−６の大きさがそれぞれ異なるように分割位置を指定してもよく、また、セグメント７１−１乃至セグメント７１−６が、それぞれ同じ大きさのデータとなるように分割位置を指定してもよい。
【００６９】
例えば、セグメント７１−１乃至セグメント７１−６が、それぞれ同じ大きさのデータとなるように分割する場合、セグメント７１−１乃至セグメント７１−６のそれぞれの大きさは、例えば、コンテンツデータに対応するコンテンツを、１分間再生するために必要なデータの大きさなどとされる。以下、セグメント７１−１乃至セグメント７１−６のそれぞれを個々に区別する必要のない場合、単にセグメント７１と称する。
【００７０】
次に、クライアント５１は、セグメント７１が、コンテンツデータをダウンロードするサーバ５２の数のデータに分割されるように分割位置を指定する。したがって、図３の例においては、クライアント５１は、コンテンツデータを、サーバ５２−１およびサーバ５２−２から分割してダウンロードするので、セグメント７１がそれぞれ２つのデータに分割されるように、それぞれのデータの分割位置を指定する。なお、以下、セグメント７１を分割したデータをパートと称する。
【００７１】
すなわち、クライアント５１は、セグメント７１−１をパート８１−１およびパート８２−１に分割し、セグメント７１−２をパート８１−２およびパート８２−２に分割し、セグメント７１−３をパート８１−３およびパート８２−３に分割する。
【００７２】
同様に、クライアント５１は、セグメント７１−４をパート８１−４およびパート８２−４に分割し、セグメント７１−５をパート８１−５およびパート８２−５に分割し、セグメント７１−６をパート８１−６およびパート８２−６に分割する。
【００７３】
さらに、クライアント５１は、パート８１−１乃至パート８１−６のそれぞれの送信を、サーバ５２−１に割り当て、パート８２−１乃至パート８２−６のそれぞれの送信を、サーバ５２−２に割り当てる。そして、クライアント５１は、サーバ５２−１およびサーバ５２−２とそれぞれセッションを張り（コネクションを確立させ）、サーバ５２−１からパート８１−１乃至パート８１−６をそれぞれダウンロードし、サーバ５２−２からパート８２−１乃至パート８２−６をそれぞれダウンロードする。
【００７４】
すなわち、クライアント５１は、まず、サーバ５２−１からパート８１−１をダウンロードし、パート８１−１のダウンロードが完了した後、サーバ５２−１からパート８１−２をダウンロードする。そして、パート８１−２のダウンロードが完了した後、サーバ５２−１からパート８１−３をダウンロードし、同様にして、順番にパート８１−４乃至パート８１−６のそれぞれを、サーバ５２−１からダウンロードする。
【００７５】
また、クライアント５１は、パート８１−１乃至パート８１−６のダウンロードと並行して、パート８２−１乃至パート８２−６のそれぞれを、サーバ５２−２からダウンロードする。すなわち、クライアント５１は、まず、サーバ５２−２からパート８２−１をダウンロードし、パート８２−１のダウンロードが完了した後、サーバ５２−２からパート８２−２をダウンロードする。そして、パート８２−２のダウンロードが完了した後、サーバ５２−２からパート８２−３をダウンロードし、同様にして、順番にパート８２−４乃至パート８２−６のそれぞれを、サーバ５２−２からダウンロードする。
【００７６】
なお、以下、パート８１−１乃至パート８１−６のそれぞれを個々に区別する必要のない場合、単にパート８１と称する。また、以下、パート８２−１乃至パート８２−６のそれぞれを個々に区別する必要のない場合、単にパート８２と称する。
【００７７】
また、以下、クライアント５１がコンテンツデータを分割するとは、クライアント５１がコンテンツデータそのものを分割するのではなく、クライアント５１がこれから受信しようとするコンテンツデータを、所定の大きさ（量）のデータに分けるための大きさ（または分割位置）を指定することをいう。したがって、クライアント５１は、コンテンツデータを分割する位置を指定することによって、すなわち、コンテンツデータのうちの送信を要求する部分（パート）を指定することによって、複数のサーバ５２からコンテンツデータを分割してダウンロードする。
【００７８】
ところで、セグメント７１を、大きさの等しいパートに分割して、サーバ５２−１およびサーバ５２−２からダウンロードする場合、クライアント５１は、例えば、図４に示すように、セグメント７１を、大きさの等しい２つのパートに分割する。ここで、図中、横軸は、コンテンツデータを基に再生されるコンテンツの再生時刻を示しており、コンテンツ（コンテンツデータ）を再生する場合、コンテンツは、再生時刻ｔ３０の部分から再生が開始され、再生時刻ｔ３８の部分で再生が終了する。
【００７９】
また、パート１０１−１乃至パート１０１−６、およびパート１０２−１乃至パート１０２−６のそれぞれのうち、黒い部分は、既にサーバ５２からのダウンロードが完了した部分を示しており、白い部分は、サーバ５２からのダウンロードが完了していない部分、すなわち、まだダウンロードしていない部分を示している。
【００８０】
クライアント５１は、セグメント７１−１を、それぞれ大きさが等しいパート１０１−１およびパート１０２−１に分割し、セグメント７１−２を、それぞれ大きさが等しいパート１０１−２およびパート１０２−２に分割し、セグメント７１−３を、それぞれ大きさが等しいパート１０１−３およびパート１０２−３に分割する。
【００８１】
同様に、クライアント５１は、セグメント７１−４を、それぞれ大きさが等しいパート１０１−４およびパート１０２−４に分割し、セグメント７１−５を、それぞれ大きさが等しいパート１０１−５およびパート１０２−５に分割し、セグメント７１−６を、それぞれ大きさが等しいパート１０１−６およびパート１０２−６に分割する。
【００８２】
そして、クライアント５１は、パート１０１−１乃至パート１０１−６のそれぞれの送信をサーバ５２−１に割り当て、パート１０２−１乃至パート１０２−６のそれぞれの送信をサーバ５２−２に割り当てる。そして、クライアント５１は、図３における場合と同様に、パート１０１−１から順番に、パート１０１−１乃至パート１０１−６を、それぞれサーバ５２−１からダウンロードし、パート１０２−１から順番に、パート１０２−１乃至パート１０２−６を、それぞれサーバ５２−２からダウンロードする。
【００８３】
なお、以下、パート１０１−１乃至パート１０１−６を個々に区別する必要のない場合、単に、パート１０１と称する。また、以下、パート１０２−１乃至パート１０２−６を個々に区別する必要のない場合、単に、パート１０２と称する。
【００８４】
図４における例においては、クライアント５１において、既にパート１０１−１乃至パート１０１−５のサーバ５２−１からのダウンロードが完了しており、パート１０１−６のうちの、再生時刻ｔ３６から再生時刻ｔ３７までの部分のダウンロードが完了している。また、クライアント５１において、既にパート１０２−１およびパート１０２−２のサーバ５２−２からのダウンロードが完了しており、パート１０２−３のうちの、再生時刻ｔ３３から再生時刻ｔ３４までの部分のダウンロードが完了している。
【００８５】
この場合、クライアント５１は、セグメント７１−１およびセグメント７１−２と、セグメント７１−３の再生時刻ｔ３２から再生時刻ｔ３４までの部分のデータとを用いて、コンテンツを連続して再生することができる。すなわち、ユーザは、再生時刻ｔ３０から再生時刻ｔ３４までのコンテンツデータに対応する部分のコンテンツを、連続して視聴することができる。
【００８６】
例えば、現時点において、コンテンツの再生時刻ｔ３１に対応する部分が再生されているとすると、コンテンツデータのうちの、再生時刻ｔ３０から再生時刻ｔ３４までの部分のダウンロードが完了しているので、サーバ５２−２や通信網５３に問題が発生して、パート１０２−３のダウンロードが中断されたとしても、クライアント５１は、少なくとも、コンテンツを、再生時刻ｔ３４に対応する部分までは再生することができる。したがって、再生時刻ｔ３４に対応する部分のコンテンツの再生が終了するまでに、パート１０２−３のダウンロードが再開されれば、コンテンツを途切れさせることなく再生することができる。
【００８７】
このように、コンテンツデータをセグメント７１に分割してダウンロードすることによって、セグメント７１のダウンロードが完了するごとに、コンテンツを連続して再生するために用いられるコンテンツデータ（キャッシュされたコンテンツデータ）が増加する。ここで、セグメント７１を、大きさが等しいＮ個のパートに分割して、それぞれサーバ５２−１乃至サーバ５２−Ｎからダウンロードする場合における、コンテンツを連続して再生するために用いられる、キャッシュされたコンテンツデータが増加する速度（以下、キャッシュ増加速度と称する）をＭ１とすると、キャッシュ増加速度Ｍ１は、式（１）により近似される（式（１）により表される値に近づく）。
【００８８】
Ｍ１≒ｍｉｎ（Ｓｉ）×Ｎ                                ・・・（１）
【００８９】
ここで、Ｓｉは、クライアント５１がサーバ５２−ｉ（但し、１≦ｉ≦Ｎ）からパートをダウンロードするダウンロード速度であり、ｍｉｎ（Ｓｉ）は、Ｓ１乃至ＳＮのうちの最も小さいダウンロード速度を示す。なお、ここで、ダウンロード速度とは、クライアント５１がサーバ５２からデータ（パート）をダウンロードするビットレートをいう。
【００９０】
したがって、例えば、図４の例においては、パート１０１のダウンロード速度Ｓ１よりもパート１０２のダウンロード速度Ｓ２の方が小さく（遅く）、セグメント７１は、２つのパート（パート１０１およびパート１０２）に分割されるので、図４の例におけるキャッシュ増加速度Ｍ１は式（１）より、“２（Ｓ２）”（（Ｓ２）×２）となる。
【００９１】
一方、図１に示したように、コンテンツデータを複数のデータ（図４の例におけるセグメント７１）に分割して、分割したデータをそれぞれサーバ５２からダウンロードする場合のキャッシュ増加速度Ｍ２は、例えば、式（２）により近似される。
【００９２】
Ｍ２≒Ｓ１                                            ・・・（２）
【００９３】
ここで、Ｓ１は、コンテンツの再生を開始する部分のデータのダウンロード速度を示している。すなわち、図１の例においては、データ１１−１のダウンロード速度となる。なお、より詳細には、図１の例において、データ１１−１のダウンロードが完了すると、例えば、その後、データ１１−２のダウンロードが完了するまでは、キャッシュ増加速度Ｍ２は、データ１１−２のダウンロード速度となる。
【００９４】
したがって、全てのパートまたはデータのダウンロード速度が等しいと仮定して、すなわち、式（１）におけるＳｉと、式（２）におけるＳ１とが等しい（例えば、“Ｓｉ＝Ｓ１”とする）と仮定して、キャッシュ増加速度Ｍ１と、キャッシュ増加速度Ｍ２とを比較すると、Ｍ１の値は“ＮＳ１”（Ｓ１×Ｎ）となり、Ｍ２の値はＳ１となるから、Ｍ１の値は、Ｍ２の値のＮ倍となる。
【００９５】
このように、コンテンツデータをセグメント７１に分割し、さらに、セグメント７１をそれぞれ大きさが等しい複数のパートに分割して、それぞれのパートを複数のサーバ５２からダウンロードすることによって、キャッシュ増加速度をより大きくすることができる。これにより、クライアント５１は、コンテンツを連続して再生するために用いられる、キャッシュされたコンテンツデータを、より多く記憶（確保）しておくことができるので、サーバ５２や通信網５３に問題が発生した場合に、コンテンツの再生が途切れてしまう可能性をより低くすることができる。
【００９６】
ところで、図４において、パート１０１−４およびパート１０１−５は、ダウンロードが完了しているにも関わらず、パート１０２−３の再生時刻ｔ３４から再生時刻ｔ３５までの部分がダウンロードされていないため、対応するコンテンツを再生するためのデータとして用いることができない。
【００９７】
これは、パート１０１のダウンロード速度と、パート１０２のダウンロード速度が異なるにも関わらず、セグメント７１をそれぞれ等しい大きさのパート１０１とパート１０２とに分割した（分けた）からである。そこで、図５に示すように、それぞれのパートの大きさを、パートのダウンロード速度に応じて定めることによって、キャッシュ増加速度をより大きくすることができる。すなわち、パートのダウンロード速度に応じてパートの大きさを変化させることによって、ダウンロードが完了したコンテンツデータの量に対する、連続したコンテンツの再生に用いることができるコンテンツデータ（キャッシュされたコンテンツデータ）の量の割合をより大きくすることができる。
【００９８】
図５において、横軸は、コンテンツデータを基に再生されるコンテンツの再生時刻を示しており、コンテンツ（コンテンツデータ）を再生する場合、コンテンツは、再生時刻ｔ５０の部分から再生が開始され、再生時刻ｔ５３の部分で再生が終了する。
【００９９】
また、パート１１１−１乃至パート１１１−６、およびパート１１２−１乃至パート１１２−６のうち、黒い部分は、既にサーバ５２からのダウンロードが完了した部分を示しており、白い部分は、サーバ５２からのダウンロードが完了していない部分、すなわち、まだダウンロードしていない部分を示している。
【０１００】
クライアント５１は、まず、セグメント７１−１を、それぞれ大きさが等しいパート１１１−１およびパート１１２−１に分割する。そして、クライアント５１は、パート１１１−１の送信をサーバ５２−１に割り当て、パート１１２−１の送信をサーバ５２−２に割り当てて、パート１１１−１をサーバ５２−１からダウンロードし、パート１１２−１をサーバ５２−２からダウンロードする。
【０１０１】
次に、パート１１１−１およびパート１１２−１のダウンロードが完了すると、クライアント５１は、パート１１１−１のダウンロード速度、およびパート１１２−１のダウンロード速度に基づいて、セグメント７１−２をパート１１１−２およびパート１１２−２に分割する。ここで、例えば、パート１１２−１のダウンロード速度よりも、パート１１１−１のダウンロード速度が大きい場合、クライアント５１は、パート１１２−２の大きさよりもパート１１１−２の大きさが大きくなるように、セグメント７１−２をパート１１１−２およびパート１１２−２に分割する。
【０１０２】
なお、より詳細には、パート１１１−１およびパート１１２−１のダウンロードが完了すると、クライアント５１は、パート１１１−１のダウンロード速度、およびパート１１２−１のダウンロード速度に基づいて、セグメント７１−２乃至セグメント７１−６を、それぞれ、パート１１１−２乃至パート１１１−６、およびパート１１２−２乃至パート１１２−６に分割する。
【０１０３】
そして、クライアント５１は、パート１１１−２の送信をサーバ５２−１に割り当て、パート１１２−２の送信をサーバ５２−２に割り当てて、パート１１１−２をサーバ５２−１からダウンロードし、パート１１２−２をサーバ５２−２からダウンロードする。
【０１０４】
パート１１１−２およびパート１１２−２のダウンロードが完了すると、クライアント５１は、セグメント７１−２をパート１１１−２およびパート１１２−２に分割した場合と同様に、パート１１１−２、およびパート１１２−２のそれぞれのダウンロード速度に基づいて、セグメント７１−３をパート１１１−３およびパート１１２−３に分割して、パート１１１−３をサーバ５２−１からダウンロードし、パート１１２−３をサーバ５２−２からダウンロードする。
【０１０５】
さらに、クライアント５１は、セグメント７１−４乃至セグメント７１−６のそれぞれを、パート１１１−３乃至パート１１１−５、およびパート１１２−３乃至パート１１２−５のそれぞれのダウンロード速度に基づいて、パート１１１−４乃至パート１１１−６、およびパート１１２−４乃至パート１１２−６にそれぞれ分割する。
【０１０６】
そして、クライアント５１は、サーバ５２−１から、パート１１１−４乃至パート１１１−６を、それぞれ順番にダウンロードし、サーバ５２−２から、パート１１２−４乃至パート１１２−６を、それぞれ順番にダウンロードする。なお、以下、パート１１１−１乃至パート１１１−６のそれぞれを、個々に区別する必要のない場合、単に、パート１１１と称する。また、以下、パート１１２−１乃至パート１１２−６のそれぞれを、個々に区別する必要のない場合、単に、パート１１２と称する。
【０１０７】
図５の例においては、クライアント５１において、既にパート１１１−１乃至パート１１１−４のサーバ５２−１からのダウンロードが完了しており、また、パート１１２−１乃至パート１１２−４のサーバ５２−２からのダウンロードが完了している。したがって、この場合、クライアント５１は、セグメント７１−１乃至セグメント７１−４の部分のコンテンツデータを用いて、コンテンツを連続して再生することができる。すなわち、ユーザは、再生時刻ｔ５０から再生時刻ｔ５２までのコンテンツデータに対応するコンテンツを、連続して視聴することができる。
【０１０８】
例えば、現時点において、コンテンツの再生時刻ｔ５１に対応する部分が再生されているとすると、コンテンツデータのうち、再生時刻ｔ５０から再生時刻ｔ５２までの部分のダウンロードが完了しているので、サーバ５２や通信網５３に問題が発生して、パート１１１またはパート１１２のダウンロードが中断されたとしても、クライアント５１は、少なくとも、コンテンツの再生時刻ｔ５２に対応する部分までは再生することができる。したがって、コンテンツの再生時刻ｔ５２に対応する部分の再生が終了するまでに、パート１１１またはパート１１２のダウンロードが再開されれば、コンテンツを途切れさせることなく再生することができる。
【０１０９】
ここで、図５に示したように、既にダウンロードが完了した、１つのセグメント７１を構成するＮ個のパートのそれぞれのダウンロード速度に基づいて、次にダウンロードするセグメント７１をＮ個のパートに分割して、サーバ５２−１乃至サーバ５２−Ｎからそれぞれパートをダウンロードする場合における、キャッシュ増加速度Ｍ３は、式（３）により近似することができる（サーバ５２−１乃至サーバ５２−Ｎのそれぞれの送信能力の分散が極小のとき、式（３）で表される値に近づく）。
【０１１０】
Ｍ３≒ΣＳｉ                                          ・・・（３）
【０１１１】
なお、式（３）において、Ｓｉは、クライアント５１がサーバ５２−ｉ（但し、１≦ｉ≦Ｎ）からパートをダウンロードするダウンロード速度であり、Σは、ｉを１からＮに変えてのＳｉの和（合計）をとることを表す。
【０１１２】
したがって、例えば、図５の例においては、パート１１１のダウンロード速度をＳ１とし、パート１１２のダウンロード速度をＳ２とすると、Ｍ３は（Ｓ１＋Ｓ２）となる。
【０１１３】
また、図４におけるパート１０１のダウンロード速度と、図５におけるパート１１１のダウンロード速度が等しく（例えば、Ｓ１とする）、さらに、図４におけるパート１０２のダウンロード速度と、図５におけるパート１１２のダウンロード速度が等しい（例えば、Ｓ２とする）と仮定して、図４の例におけるキャッシュ増加速度Ｍ１と、図５の例におけるキャッシュ増加速度Ｍ３とを比較する。このとき、例えば、Ｓ１がＳ２より大きいとすると、Ｍ１の値は“２（Ｓ２）”（Ｓ２×２）となり、Ｍ３の値は（Ｓ１＋Ｓ２）となり、Ｍ３の値は、Ｍ１の値よりも“（Ｓ１−Ｓ２）”（（Ｓ１＋Ｓ２）−２（Ｓ２））だけ大きくなる。したがって、既にダウンロードしたパートのダウンロード速度に応じて、次にダウンロードするセグメントのパートの大きさを変化させることによって、ダウンロードが完了したコンテンツデータの量に対する、連続したコンテンツの再生に用いることができるコンテンツデータの量の割合をより大きくすることができる。すなわち、ダウンロードが完了したコンテンツデータのうちの、連続したコンテンツの再生に用いることができない部分を少なくして、キャッシュされたコンテンツデータの量を、ダウンロードが完了したコンテンツデータの量により近づけることができる。
【０１１４】
このように、それぞれのパートの大きさを、パートのダウンロード速度に応じて定めることによって、キャッシュ増加速度をより大きくすることができる。これにより、クライアント５１は、コンテンツを連続して再生するために用いられるコンテンツデータを、より多く記憶（確保）しておくことができるので、サーバ５２や通信網５３に問題が発生した場合に、コンテンツの再生が途切れてしまう可能性をより低くすることができる。
【０１１５】
次に、図６は、クライアント５１の構成の例を示すブロック図である。
【０１１６】
CPU１３１は、ROM（Read Only Memory）１３２、または記録部１３８に記録されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）１３３には、CPU１３１が実行するプログラムやデータなどが適宜記憶される。これらのCPU１３１、ROM１３２、およびRAM１３３は、バス１３４により相互に接続されている。
【０１１７】
CPU１３１にはまた、バス１３４を介して入出力インターフェース１３５が接続されている。入出力インターフェース１３５には、キーボード、マウス、スイッチなどよりなる入力部１３６、ディスプレイ、スピーカ、ランプなどよりなる出力部１３７が接続されている。CPU１３１は、入力部１３６から入力される指令に対応して各種の処理を実行する。
【０１１８】
入出力インターフェース１３５に接続されている記録部１３８は、例えばハードディスクなどで構成され、CPU１３１が実行するプログラムや各種のデータを記録する。通信部１３９は、例えば、ネットワークカードなどからなり、インターネット、その他のネットワークなどの通信網５３を介して、外部の装置と通信する。
【０１１９】
また、通信部１３９は、通信網５３を介してプログラムを取得し、記録部１３８に記録させるようにしてもよい。
【０１２０】
入出力インターフェース１３５に接続されているドライブ１４０は、磁気ディスク１６１、光ディスク１６２、光磁気ディスク１６３、或いは半導体メモリ１６４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部１３８に転送され、記録される。
【０１２１】
なお、サーバ５２は、クライアント５１と同様に構成されるので、その説明は省略する。
【０１２２】
図７は、クライアント５１のCPU１３１およびサーバ５２のCPUが、それぞれプログラムを実行することによって実現される、クライアント５１およびサーバ５２の機能の構成を示すブロック図である。
【０１２３】
ユーザが、所定のコンテンツデータのダウンロードをクライアント５１に指示すると、クライアント５１は、ユーザによってダウンロードが指示されたコンテンツデータを記録しているサーバ５２と通信するために、サーバ５２とのコネクションを確立させる。なお、以下では、クライアント５１がサーバ５２とのコネクションを確立させる例として、いわゆる2wayでコネクションを確立させる場合について説明するが、いわゆる3wayでコネクションを確立させることも可能である。
【０１２４】
すなわち、クライアント５１は、通信の開始を要求する通信要求信号を生成し、生成した通信要求信号を、通信網５３を介してサーバ５２あてに送信する。サーバ５２は、クライアント５１から送信されてきた通信要求信号を受信する。サーバ５２は、通信要求信号を受信すると、通信要求信号を受信した旨の応答信号を生成し、生成した応答信号を、通信網５３を介してクライアント５１あてに送信する。
【０１２５】
クライアント５１は、サーバ５２から応答信号が送信されてくるので、サーバ５２から送信されてきた応答信号を受信する。そして、応答信号を受信することによって、サーバ５２とのコネクションが確立されたので、クライアント５１は、ユーザからダウンロードが指示されたコンテンツデータをセグメントに分け、さらにセグメントをパートに分けて、各パートの送信を、それぞれサーバ５２−１乃至サーバ５２−Ｎのいずれかに割り当てる。そして、クライアント５１は、サーバ５２のそれぞれに割り当てたパート（コンテンツデータ）の送信を要求する送信要求信号を生成する。
【０１２６】
クライアント５１は、生成した送信要求信号を、通信網５３を介してサーバ５２にそれぞれ送信する。サーバ５２は、クライアント５１から送信されてきた送信要求信号を受信し、記録しているコンテンツデータのうちのクライアント５１から要求された部分（パート）を、通信網５３を介してクライアント５１あてに送信する。そして、クライアント５１は、サーバ５２から送信されてきたコンテンツデータ（パート）を受信する。
【０１２７】
クライアント５１は、管理部１８１、割り当て部１８２、通信制御部１８３−１乃至通信制御部１８３−Ｎ、および再構成部１８４を含むように構成される。
【０１２８】
管理部１８１は、図示せぬアプリケーションプログラムなどの上位レイヤと、割り当て部１８２および再構成部１８４とのデータの授受を制御（仲介）する。管理部１８１は、登録制御部２０１およびコンテンツ出力部２０２を備えている。
【０１２９】
ユーザが、所望のコンテンツデータのダウンロードを指示すると、例えば、管理部１８１には、アプリケーションプログラムから、通信網５３を介してクライアント５１に接続されている送信ノードとしてのサーバ５２の数、すなわち、ユーザが所望するコンテンツデータを記録しているサーバ５２の数、サーバ５２のＩＰ（Internet Protocol）アドレス、サーバ５２の処理能力などから定められたデータの送信能力などが含まれている、ノード情報が供給される。また、アプリケーションプログラムから管理部１８１には、ノード情報とともに、ユーザによってダウンロードが指示されたコンテンツデータを特定する情報、コンテンツデータの大きさ（データのサイズ）、コンテンツデータを分割するセグメントの数、１つのセグメントの大きさ（データのサイズ）などが含まれている初期設定情報が供給される。
【０１３０】
さらに、アプリケーションプログラムが、管理部１８１にノード情報を供給した後、新たに、ユーザが所望するコンテンツデータを記録しているサーバ５２が検出されると、アプリケーションプログラムから管理部１８１には、新たに検出されたサーバ５２のＩＰアドレス、サーバ５２の送信能力などが含まれている追加ノード情報が供給される。
【０１３１】
管理部１８１の登録制御部２０１は、アプリケーションプログラムから供給されたノード情報、初期設定情報、または追加ノード情報を割り当て部１８２に供給する。また、管理部１８１のコンテンツ出力部２０２は、再構成部１８４から供給されたコンテンツデータ（が格納されているパケット）をアプリケーションプログラムに供給する。
【０１３２】
割り当て部１８２は、管理部１８１から供給されたノード情報を記憶する。割り当て部１８２は、管理部１８１から追加ノード情報が供給されると、供給された追加ノード情報に含まれている情報が、記憶しているノード情報に含まれるように、ノード情報を更新する。また、割り当て部１８２は、管理部１８１から供給された初期設定情報を記憶するとともに、初期設定情報を通信制御部１８３−１乃至通信制御部１８３−Ｎにそれぞれ供給する。
【０１３３】
さらに、クライアント５１と、サーバ５２−１乃至サーバ５２−Ｎのそれぞれとのコネクションが確立されると、割り当て部１８２には、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれから、コネクションが確立された旨の信号が供給される。割り当て部１８２は、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれから、コネクションが確立された旨の信号が供給されると、サーバ５２にそれぞれ割り当てられた、コンテンツデータのパートを特定する情報が含まれている割り当て情報を生成し、生成した割り当て情報を、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれに供給する。
【０１３４】
すなわち、割り当て部１８２から、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれには、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれが通信するサーバ５２−１乃至サーバ５２−Ｎのそれぞれに割り当てられた、コンテンツデータのパートを特定する情報が含まれている割り当て情報が供給される。なお、以下、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれを個々に区別する必要のない場合、単に、通信制御部１８３と称する。
【０１３５】
割り当て部１８２は、通信制御部１８３−１乃至通信制御部１８３−Ｎのそれぞれから供給された受信情報を基に、受信履歴を更新する。ここで、受信情報とは、通信制御部１８３がサーバ５２から受信したパートを特定する情報、パートのダウンロード速度などが含まれている情報であり、通信制御部１８３から割り当て部１８２には、通信制御部１８３がパートのダウンロード（受信）が完了するたびに、そのパートのダウンロード速度が含まれている受信情報が供給される。また、受信履歴の詳細は後述するが、受信履歴には、各サーバ５２のセグメント（パート）ごとの受信情報が含まれている。
【０１３６】
通信制御部１８３−１は、サーバ５２−１とのデータの送受信を制御する。送信制御部１８３−１は、送信部２０３−１および受信部２０４−１を備えている。
【０１３７】
通信制御部１８３−１は、割り当て部１８２から供給された初期設定情報を一時的に記憶するとともに、サーバ５２−１とのコネクションを確立させるために、通信要求信号を生成する。通信制御部１８３−１の送信部２０３−１は、通信制御部１８３−１が生成した通信要求信号を、通信網５３を介してサーバ５２−１あてに送信する。
【０１３８】
通信制御部１８３−１の受信部２０４−１は、サーバ５２−１から送信されてきた応答信号を受信する。通信制御部１８３−１は、応答信号を受信すると、コネクションが確立された旨の信号を生成し、生成したコネクションが確立された旨の信号を、割り当て部１８２に供給する。
【０１３９】
通信制御部１８３−１は、割り当て部１８２から割り当て情報が供給されると、割り当て情報が含まれる送信要求信号を生成する。通信制御部１８３−１の送信部２０３−１は、通信制御部１８３−１が生成した送信要求信号を、通信網５３を介してサーバ５２−１あてに送信する。
【０１４０】
通信制御部１８３−１の受信部２０４−１は、サーバ５２−１から送信されてきたコンテンツデータを受信する。より詳細には、通信制御部１８３−１の受信部２０４−１は、サーバ５２−１から送信されてきた、コンテンツデータ（のパート）が格納されているパケットを受信する。通信制御部１８３−１は、受信したコンテンツデータが格納されているパケットを、再構成部１８４に供給する。
【０１４１】
また、サーバ５２−１が、要求されたコンテンツデータ（のパート）を送信すると、サーバ５２−１からパートの送信が終了した旨の終了通知信号が送信されてくるので、通信制御部１８３−１の受信部２０４−１は、サーバ５２−１から送信されてきた終了通知信号を受信する。通信制御部１８３−１は、終了通知信号を受信すると、受信したパートのダウンロード速度などが含まれている受信情報を生成し、生成した受信情報を割り当て部１８２に供給する。
【０１４２】
通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれは、サーバ５２−２乃至サーバ５２−Ｎのそれぞれとのデータの送受信を制御する。通信制御部１８３−２乃至通信制御部１８３−Ｎは、それぞれ送信部２０３−２乃至送信部２０３−Ｎ、および受信部２０４−２乃至受信部２０４−Ｎを備えている。
【０１４３】
通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれは、割り当て部１８２から供給された初期設定情報を一時的に記憶するとともに、それぞれ、サーバ５２−２乃至サーバ５２−Ｎとのコネクションを確立させるために、通信要求信号を生成する。通信制御部１８３−２の送信部２０３−２乃至通信制御部１８３−Ｎの送信部２０３−Ｎは、通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれが生成した通信要求信号を、通信網５３を介してサーバ５２−２乃至サーバ５２−Ｎあてにそれぞれ送信する。
【０１４４】
通信制御部１８３−２の受信部２０４−２乃至通信制御部１８３−Ｎの受信部２０４−Ｎのそれぞれは、サーバ５２−２乃至サーバ５２−Ｎのそれぞれから送信されてきた応答信号を受信する。通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれは、応答信号を受信すると、コネクションが確立された旨の信号を生成し、生成したコネクションが確立された旨の信号を、割り当て部１８２に供給する。
【０１４５】
通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれは、割り当て部１８２から割り当て情報が供給されると、割り当て情報が含まれる送信要求信号を生成する。通信制御部１８３−２の送信部２０３−２乃至通信制御部１８３−Ｎの送信部２０３−Ｎのそれぞれは、通信制御部１８３−２乃至通信制御部１８３−Ｎのそれぞれが生成した送信要求信号を、通信網５３を介してサーバ５２−２乃至サーバ５２−Ｎあてに送信する。
【０１４６】
通信制御部１８３−２の受信部２０４−２乃至通信制御部１８３−Ｎの受信部２０４−Ｎは、サーバ５２−２乃至サーバ５２−Ｎから送信されてきたコンテンツデータを受信する。より詳細には、通信制御部１８３−２の受信部２０４−２乃至通信制御部１８３−Ｎの受信部２０４−Ｎは、サーバ５２−２乃至サーバ５２−Ｎから送信されてきた、コンテンツデータ（のパート）が格納されているパケットをそれぞれ受信する。通信制御部１８３−２乃至通信制御部１８３−Ｎは、受信したコンテンツデータが格納されているパケットを、再構成部１８４に供給する。
【０１４７】
また、サーバ５２−２乃至サーバ５２−Ｎのそれぞれが、要求されたコンテンツデータ（のパート）を送信すると、サーバ５２−２乃至サーバ５２−Ｎのそれぞれからパートの送信が終了した旨の終了通知信号が送信されてくるので、通信制御部１８３−２の受信部２０４−２乃至通信制御部１８３−Ｎの受信部２０４−Ｎは、サーバ５２−２乃至サーバ５２−Ｎから送信されてきた終了通知信号を受信する。通信制御部１８３−２乃至通信制御部１８３−Ｎは、終了通知信号を受信すると、受信したパートのダウンロード速度などが含まれている受信情報を生成し、生成した受信情報を割り当て部１８２に供給する。
【０１４８】
以下、送信部２０３−１乃至送信部２０３−Ｎのそれぞれを、個々に区別する必要のない場合、単に送信部２０３と称する。また、以下、受信部２０４−１乃至受信部２０４−Ｎのそれぞれを、個々に区別する必要のない場合、単に受信部２０４と称する。
【０１４９】
再構成部１８４は、通信制御部１８３から供給されたコンテンツデータのパート（パケット）を、必要に応じて一時的に記憶し、記憶しているパートを連続したコンテンツデータのストリームに再構成する。再構成部１８４は、出力制御部２０５および記憶部２０６を備えている。
【０１５０】
再構成部１８４の出力制御部２０５は、通信制御部１８３からパケットが供給されると、パケットのヘッダに含まれている、コンテンツデータの再生の順番を示すシーケンス番号を検査する。そして、再構成部１８４の出力制御部２０５は、パケットに含まれているシーケンス番号が、再構成部１８４の出力制御部２０５が記憶している、出力すべきシーケンス番号と同じ番号である場合、通信制御部１８３からから供給されたパケットを管理部１８１に供給する。
【０１５１】
例えば、パケットのヘッダに含まれているシーケンス番号は、パケットに格納されているパートの始点位置を表す値となっている。すなわち、例えば、コンテンツデータの位置を、コンテンツデータの先頭の位置を“０”として、データが1KB増えるごとにインクリメントした値で表し、パートの先頭の位置に対応するコンテンツデータのデータの位置を、パートの始点位置とする。例えば、パケットに格納されているパートの開始位置が“０”である場合、パケットのシーケンス番号は、“０”となる。
【０１５２】
したがって、例えば、再構成部１８４の出力制御部２０５が記憶している、出力すべきシーケンス番号が“０”であり、通信制御部１８３から供給されたパケットのシーケンス番号が“０”である場合、再構成部１８４の出力制御部２０５は、通信制御部１８３から供給された、シーケンス番号が“０”であるパケットを、管理部１８１に供給する。
【０１５３】
また、再構成部１８４の出力制御部２０５は、管理部１８１にパケットを供給すると、出力すべきシーケンス番号を更新する。例えば、再構成部１８４の出力制御部２０５が、シーケンス番号が“０”であるパケットを管理部１８１に供給し、そのパケットに格納されているパートの大きさ（サイズ）が“1100KB”である場合、構成部１８４の出力制御部２０５は、出力すべきシーケンス番号を、１１００だけ増加させて、“１１００“とする。
【０１５４】
一方、再構成部１８４の出力制御部２０５は、通信制御部１８３からから供給されたパケットのシーケンス番号が、出力すべきシーケンス番号と同じ番号でない場合、通信制御部１８３から供給されたパケットを、管理部１８１に供給せずに、再構成部１８４の記憶部２０６に供給する。
【０１５５】
また、再構成部１８４の出力制御部２０５は、記憶部２０６に記憶されているパケットのうち、パケットのシーケンス番号が、出力すべきシーケンス番号と同じ番号であるパケットを、記憶部２０６から取得し、管理部１８１に供給する。
【０１５６】
再構成部１８４の記憶部２０６は、再構成部１８４の出力制御部２０５から供給されたパケットを一時的に記憶する。また、再構成部１８４の記憶部２０６は、記憶しているパケットを、再構成部１８４の出力制御部２０５に供給する。
【０１５７】
サーバ５２−１乃至サーバ５２−Ｎのそれぞれは、受信部２２１−１乃至受信部２２１−Ｎ、取得部２２２−１乃至取得部２２２−Ｎ、記録部２２３−１乃至記録部２２３−Ｎ、および送信部２２４−１乃至送信部２２４−Ｎをそれぞれ備えている。
【０１５８】
受信部２２１−１乃至受信部２２１−Ｎのそれぞれは、クライアント５１から送信されてきた通信要求信号または送信要求信号をそれぞれ受信し、受信した通信要求信号または送信要求信号を、取得部２２２−１乃至取得部２２２−Ｎのそれぞれに供給する。
【０１５９】
取得部２２２−１乃至取得部２２２−Ｎのそれぞれは、受信部２２１−１乃至受信部２２１−Ｎのそれぞれから、通信要求信号が供給されると、通信要求信号を受信した旨の応答信号を生成し、生成した応答信号を送信部２２４−１乃至送信部２２４−Ｎのそれぞれに供給する。
【０１６０】
また、取得部２２２−１乃至取得部２２２−Ｎのそれぞれは、受信部２２１−１乃至受信部２２１−Ｎのそれぞれから、送信要求信号が供給されると、記録部２２３−１乃至記録部２２３−Ｎのそれぞれが記録しているコンテンツデータから、送信が要求されたコンテンツデータのパートを取得し、取得したパート（コンテンツデータ）を、例えば、TCP方式のパケットに格納する。なお、このとき、取得部２２２−１乃至取得部２２２−Ｎのそれぞれは、送信要求信号を基に、パートが格納されるパケットにシーケンス番号を付与し、そのシーケンス番号をパケットのヘッダに格納する。取得部２２２−１乃至取得部２２２−Ｎのそれぞれは、コンテンツデータのパートを格納したパケットを、送信部２２４−１乃至送信部２２４−Ｎのそれぞれに供給する。
【０１６１】
記録部２２３−１乃至記録部２２３−Ｎのそれぞれは、コンテンツデータを記録している。記録部２２３−１乃至記録部２２３−Ｎのそれぞれは、記録しているコンテンツデータ（の一部（パート））を取得部２２２−１乃至取得部２２２−Ｎのそれぞれに供給する。
【０１６２】
送信部２２４−１乃至送信部２２４−Ｎのそれぞれは、取得部２２２−１乃至取得部２２２−Ｎのそれぞれから供給された、コンテンツデータが格納されているパケット、または応答信号を、通信網５３を介してクライアント５１あてに送信する。
【０１６３】
なお、以下、受信部２２１−１乃至受信部２２１−Ｎのそれぞれを、個々に区別する必要のない場合、単に受信部２２１と称する。また、以下、取得部２２２−１乃至取得部２２２−Ｎのそれぞれを、個々に区別する必要のない場合、単に取得部２２２と称する。
【０１６４】
さらに、以下、記録部２２３−１乃至記録部２２３−Ｎのそれぞれを、個々に区別する必要のない場合、単に記録部２２３と称する。さらに、また、以下、送信部２２４−１乃至送信部２２４−Ｎのそれぞれを、個々に区別する必要のない場合、単に送信部２２４と称する。
【０１６５】
図８は、図７の割り当て部１８２の機能の構成を示すブロック図である。
【０１６６】
割り当て部１８２は、設定部２５１、ノード情報記憶部２５２、算出部２５３、再割り当て制御部２５４、および受信履歴記憶部２５５を含むように構成される。
【０１６７】
設定部２５１は、管理部１８１から供給されたノード情報を、ノード情報記憶部２５２に供給して、記憶させる。また、設定部２５１は、管理部１８１から追加ノード情報が供給されると、供給された追加ノード情報をノード情報記憶部２５２に供給して、ノード情報記憶部２５２に、追加ノード情報を基にノード情報を更新させる。
【０１６８】
さらに、設定部２５１は、管理部１８１から供給された初期設定情報を、算出部２５３および通信制御部１８３に供給する。設定部２５１は、通信制御部１８３からコネクションが確立された旨の信号が供給されると、コンテンツデータのダウンロードの開始を指示する信号を生成し、算出部２５３に供給する。
【０１６９】
ノード情報記憶部２５２は、設定部２５１の制御のもと、設定部２５１から供給されたノード情報を記憶する。なお、ノード情報には、上述したように、送信ノードとしてのサーバ５２の数、サーバ５２の送信能力、サーバ５２のＩＰアドレスなどが含まれている。また、ノード情報記憶部２５２は、設定部２５１の制御のもと、設定部２５１から供給された追加ノード情報を基に、記憶しているノード情報を更新する。
【０１７０】
算出部２５３は、設定部２５１から供給された、初期設定情報を一時的に記憶する。また、算出部２５３は、設定部２５１から、コンテンツデータのダウンロードの開始を指示する信号が供給されると、初期設定情報、およびノード情報記憶部２５２が記憶しているノード情報を参照して、ダウンロードが指示されたコンテンツデータを、初期設定情報に従い複数のセグメントに分割し、さらに、それぞれのセグメントを、ノード情報に含まれている送信ノードとしてのサーバ５２の数のパートに分割する。より詳細には、算出部２５３は、ダウンロードが指示されたコンテンツデータを、初期設定情報に従い複数のセグメントに分割する分割位置を指定し、さらに、それぞれのセグメントを、送信ノードとしてのサーバ５２の数のパートに分割する分割位置を指定する。
【０１７１】
そして、算出部２５３は、再生を開始する部分のデータ（コンテンツデータ）が含まれている、１番目のセグメント（例えば、図５の例におけるセグメント７１−１）のパートの送信を、それぞれ異なるサーバ５２に割り当てて、割り当てたパートを特定するための割り当て情報を生成する。そして、算出部２５３は、生成した割り当て情報を、通信制御部１８３に供給する。
【０１７２】
以下、再生を開始する部分のデータ（コンテンツデータ）が含まれているセグメントを、１番目のセグメントと称し、１番目のセグメントからダウンロードする順番に（再生される順番に）、ｎ番目（ｎは整数）のセグメントと称する。
【０１７３】
また、算出部２５３は、再割り当て制御部２５４から、２番目以降のセグメント（例えば、図５の例におけるセグメント７１−２乃至セグメント７１−６）のパートをダウンロードするための、再割り当てを指示する信号が供給されると、初期設定情報、ノード情報記憶部２５２が記憶しているノード情報、および受信履歴記憶部２５５が記憶している受信履歴を参照して、まだダウンロードが完了していないセグメントを、ノード情報に含まれている、送信ノードとしてのサーバ５２の数のパートに分割し直す（分割位置を指定し直す）。そして、算出部２５３は、次にダウンロードするセグメントのパートの送信を、それぞれ異なるサーバ５２に割り当てて、割り当てたパートを特定するための割り当て情報を生成する。そして、算出部２５３は、生成した割り当て情報を、通信制御部１８３に供給する。
【０１７４】
なお、以下、２番目以降のセグメントを、複数のパートに分割し直して、それぞれのパートの送信をサーバ５２に割り当てる処理を、再割り当てを行うとも称する。
【０１７５】
再割り当て制御部２５４は、通信制御部１８３から供給された受信情報を、受信履歴記憶部２５５に供給して、供給した受信情報を基に、受信履歴記憶部２５５に、受信履歴記憶部２５５が記憶している受信履歴を更新させる。
【０１７６】
再割り当て制御部２５４は、受信履歴記憶部２５５に受信履歴を更新させてから、再割り当てを指示する信号を生成し、生成した再割り当てを指示する信号を、算出部２５３に供給する。また、再割り当て制御部２５４は、コンテンツデータのダウンロードが完了（終了）すると、コンテンツデータのダウンロードが完了した旨の信号を生成し、生成したダウンロードが完了した旨の信号を設定部２５１に供給する。
【０１７７】
受信履歴記憶部２５５は、受信履歴を記憶している。なお、上述したように、受信履歴には、各サーバ５２のセグメント（パート）ごとの受信情報が含まれている。受信履歴記憶部２５５は、再割り当て制御部２５４の制御のもと、再割り当て制御部２５４から供給された受信情報を基に、記憶している受信履歴を更新する。
【０１７８】
次に、図９のフローチャートを参照して、コンテンツデータを２つのセグメントに分割する場合における、後述するクライアント５１によるコンテンツデータの受信の処理、およびサーバ５２が、クライアント５１から要求されたコンテンツデータを送信する処理の概要を説明する。なお、図９のフローチャートの説明においては、クライアント５１が、１つのサーバ５２からコンテンツデータのパートをダウンロードする処理を説明するが、実際には、クライアント５１は、これに並行して、複数のサーバ５２からコンテンツデータのパートをダウンロードする処理を実行する。
【０１７９】
管理部１８１から割り当て部１８２に初期設定情報が供給されると、ステップＳ１１において、割り当て部１８２は、供給された初期設定情報を記憶するとともに、初期設定情報を通信制御部１８３に供給する。割り当て部１８２から通信制御部１８３に初期設定情報が供給されると、ステップＳ１２において、通信制御部１８３は、サーバ５２とのコネクションを確立させるために、通信要求信号を生成し、通信網５３を介して、サーバ５２あてに送信する。
【０１８０】
ステップＳ４１において、サーバ５２は、クライアント５１から送信されてきた通信要求信号を受信し、通信要求信号を受信した旨の応答信号を生成する。ステップＳ４２において、サーバ５２は、生成した応答信号を、通信網５３を介してクライアント５１あてに送信する。
【０１８１】
ステップＳ１３において、通信制御部１８３は、サーバ５２から送信されてきた応答信号を受信する。これにより、クライアント５１とサーバ５２とのコネクションが確立されたので、ステップＳ１４において、通信制御部１８３は、コネクションが確立された旨の信号を生成し、割り当て部１８２に供給する。
【０１８２】
通信制御部１８３から割り当て部１８２に、コネクションが確立された旨の信号が供給されると、ステップＳ１５において、割り当て部１８２は、割り当て情報を生成し、生成した割り当て情報を通信制御部１８３に供給する。ステップＳ１６において、通信制御部１８３は、割り当て部１８２から供給された割り当て情報を含む送信要求信号を生成し、生成した送信要求信号を、通信網５３を介して、サーバ５２あてに送信する。
【０１８３】
ステップＳ４３において、サーバ５２は、クライアント５１から送信されてきた送信要求信号を受信する。ステップＳ４４において、サーバ５２は、クライアント５１から送信が要求されたコンテンツデータのパートを、通信網５３を介して、クライアント５１あてに送信する。
【０１８４】
ステップＳ１７において、通信制御部１８３は、サーバ５２から送信されてきたパートを受信して、再構成部１８４に供給する。再構成部１８４は、通信制御部１８３から供給されたパートを、必要に応じて一時的に記憶し、管理部１８１を介してアプリケーションプログラムに供給する。
【０１８５】
また、パートの送信が終了すると、ステップＳ４５において、サーバ５２は、パートの送信が終了した旨の終了通知信号を、通信網５３を介してクライアント５１あてに送信する。そして、ステップＳ１８において、通信制御部１８３は、サーバ５２から送信されてきた終了通知信号を受信する。ステップＳ１９において、通信制御部１８３は、受信情報を生成して、割り当て部１８２に供給する。
【０１８６】
ステップＳ２０において、割り当て部１８２は、通信制御部１８３から供給された、受信情報を基に、受信履歴を更新する。そして、割り当て部１８２は、２番目のセグメントのパートをダウンロードするために、再割り当てを行い、割り当て情報を生成して通信制御部１８３に供給する。なお、ステップＳ２１乃至ステップＳ２４の処理、およびステップＳ４６乃至ステップＳ４８の処理のそれぞれは、ステップＳ１６乃至ステップＳ１９の処理、およびステップＳ４３乃至ステップＳ４５の処理のそれぞれと同様であるので、その説明は省略する。
【０１８７】
このようにして、クライアント５１は、コンテンツデータを複数のセグメントに分割し、さらに、各セグメントを複数のパートに分割してサーバ５２からダウンロードする。また、サーバ５２は、記録しているコンテンツデータのうちの、クライアント５１から要求された部分（パート）を、クライアント５１あてに送信する。
【０１８８】
管理部１８１から、割り当て部１８２の設定部２５１に、初期設定情報およびノード情報が供給されると、クライアント５１は、ノード情報を更新する処理（後述するノード情報の更新の処理）と並行して、コンテンツデータの受信の処理を実行する。
【０１８９】
まず、図１０のフローチャートを参照して、図９で説明した、クライアント５１による、コンテンツデータの受信の処理の詳細を説明する。
【０１９０】
ステップＳ６１において、設定部２５１は、管理部１８１から供給された初期設定情報を、算出部２５３および通信制御部１８３に供給する。算出部２５３は、設定部２５１から供給された初期設定情報を記憶する。
【０１９１】
ステップＳ６２において、通信制御部１８３は、サーバ５２とのコネクションを確立させる。すなわち、通信制御部１８３は、設定部２５１から供給された初期設定情報を記憶し、さらに、通信要求信号を生成する。通信制御部１８３の送信部２０３は、通信制御部１８３が生成した通信要求信号を、通信網５３を介して、サーバ５２あてに送信する。そして、これに応じてサーバ５２から応答信号が送信されてくると、通信制御部１８３の受信部２０４は、サーバ５２から送信されてきた応答信号を受信する。応答信号を受信すると、通信制御部１８３は、コネクションが確立された旨の信号を生成し、割り当て部１８２に供給する。
【０１９２】
通信制御部１８３から、コネクションが確立された旨の信号が供給されると、ステップＳ６３において、設定部２５１は、ダウンロードの開始を指示する信号を生成し、生成したダウンロードの開始を指示する信号を、算出部２５３に供給する。
【０１９３】
設定部２５１から算出部２５３に、ダウンロードの開始を指示する信号が供給されると、ダウンロードの開始が指示されたので、ステップＳ６４において、算出部２５３は、記憶している初期設定情報、およびノード情報記憶部２５２が記憶しているノード情報を参照して、割り当て情報を生成し、生成した割り当て情報を、通信制御部１８３に供給する。
【０１９４】
例えば、初期設定情報に、１つのセグメントの大きさが“2300KB”であり、コンテンツデータを分割するセグメントの数が“６”である情報が含まれており、ノード情報に含まれている、送信ノードとしてのサーバ５２の数が“２”である場合、算出部２５３は、１つのセグメントの大きさを2300KBとして、図５に示すように、ダウンロードが指示されたコンテンツデータを６つのセグメント７１−１乃至セグメント７１−６に分割する（セグメント７１−１乃至セグメント７１−６に分割されるように分割位置を指定する）。
【０１９５】
次に、算出部２５３は、セグメント７１を、送信ノードとしてのサーバ５２の数に分割する（分割位置を指定する）。すなわち、算出部２５３は、セグメント７１が２つのパート１１１およびパート１１２に分割されるように分割位置を指定する。なお、このとき、算出部２５３は、パート１１１およびパート１１２の大きさがそれぞれ等しくなるようにセグメント７１を分割する。したがって、この場合、算出部２５３は、パート１１１およびパート１１２の大きさが、それぞれ1150KB（２３００／２）となるようにセグメント７１を分割する。
【０１９６】
セグメント７１を分割すると、算出部２５３は、パート１１１の送信を、例えば、サーバ５２−１に割り当て、パート１１２の送信を、サーバ５２−１とは異なるサーバ５２−２に割り当てる。そして、算出部２５３は、パート１１１−１を特定するための割り当て情報、およびパート１１２−１を特定するための割り当て情報を、それぞれ生成する。算出部２５３は、生成したパート１１１−１を特定するための割り当て情報を、通信制御部１８３−１に供給し、パート１１２−１を特定するための割り当て情報を、通信制御部１８３−２に供給する。
【０１９７】
割り当て情報には、例えば、図１１に示すように、ダウンロードするコンテンツデータを特定するための情報、コンテンツデータを分割するセグメントの大きさを示す情報、セグメントを特定するための情報、パートの始点位置を示す情報、およびパートの終点位置を示す情報が含まれている。
【０１９８】
図１１の例においては、ダウンロードするコンテンツデータが、コンテンツデータＡである情報が含まれており、コンテンツデータを分割するセグメントの大きさが、2300KBである情報が含まれている。
【０１９９】
また、セグメントを特定するための情報として“１／６”が含まれている。ここで、“１／６”は、この情報によって特定されるセグメントが、コンテンツデータを構成する６つのセグメントのうちの、１番目（先頭）のセグメントであることを示している。したがって、例えば、図５において、１番目のセグメントは、コンテンツデータを構成するセグメント７１のうち、再生を開始する位置のデータ、すなわち、再性時刻ｔ５０に対応するデータが含まれているセグメント７１−１をいう。
【０２００】
さらに、図１１に示す割り当て情報には、パートの始点位置が“０”である情報、およびパートの終点位置が“１１５０”である情報が含まれている。ここで、パートの始点位置および終点位置は、コンテンツデータの先頭の位置を“０”として、データが1KB増えるごとにインクリメントした値で表されている。したがって、この場合、始点位置が“０”であり、終点位置が“１１５０”であるパートは、コンテンツデータの先頭から1150KBのデータである。すなわち、このパートは、コンテンツデータの先頭をパートの先頭（開始位置）とする、大きさが1150KBのデータとなる。
【０２０１】
図１０のフローチャートの説明に戻り、ステップＳ６５において、通信制御部１８３は、算出部２５３から供給された割り当て情報を含む、送信要求信号を生成し、通信制御部１８３の送信部２０３は、通信制御部１８３が生成した送信要求信号を、通信網５３を介してサーバ５２あてに送信する。
【０２０２】
サーバ５２は、送信要求信号を受信すると、それに応じて送信が要求されたコンテンツデータのパートを送信してくるので、ステップＳ６６において、通信制御部１８３の受信部２０４は、サーバ５２から送信されてきたコンテンツデータのパートを受信する。そして、通信制御部１８３は、受信されたパートを再構成部１８４に供給する。
【０２０３】
また、サーバ５２において、コンテンツデータのパートの送信が終了すると、サーバ５２は、終了通知信号を送信してくるので、ステップＳ６７において、通信制御部１８３の受信部２０４は、サーバ５２から送信されてきた終了通知信号を受信する。
【０２０４】
ステップＳ６８において、通信制御部１８３は、通信制御部１８３の受信部２０４が受信したパートの受信情報を生成し、生成した受信情報を割り当て部１８２に供給する。例えば、ステップＳ６８において、通信制御部１８３は、図１２に示す受信情報を生成する。
【０２０５】
受信情報には、パートを送信してきた、送信ノードとしてのサーバを特定する情報、受信したパートが含まれているセグメントを特定する情報、受信したパートの開始位置を示す情報、受信したパートの終点位置を示す情報、ダウンロードしたパートのダウンロード速度を示す情報、およびパートをダウンロードする処理のスループットの変動の大きさを示す情報が含まれている。
【０２０６】
図１２では、受信情報には、“サーバＰ”である、送信ノードとしてのサーバを特定する情報、および“１／６”であるセグメントを特定する情報が含まれている。ここで、“１／６”は、コンテンツデータを構成する６つのセグメントのうちの、１番目のセグメントを表している。また、受信情報には、“０”であるパートの始点位置を示す情報、“１１５０”であるパートの終点位置を示す情報、“3Mbps”であるダウンロード速度を示す情報、および“0Mbps”であるスループットの変動の大きさを示す情報が含まれている。
【０２０７】
なお、上述したように、始点位置が“０”であり、終点位置が“１１５０”であるパートは、コンテンツデータの先頭から1150KBのデータである。また、受信情報に、スループットの変動の大きさ（絶対値）ではなく、スループットの変動の分散値が含まれるようにしてもよい。
【０２０８】
図１０の説明に戻り、ステップＳ６９において、再割り当て制御部２５４は、通信制御部１８３から供給された受信情報を、受信履歴記憶部２５５に供給し、受信履歴記憶部２５５に、受信履歴を更新させる。
【０２０９】
ここで、受信履歴には、例えば、図１３に示すように、各セグメントを構成するパートのそれぞれの受信情報が含まれている。図１３では、１番目のセグメントを構成するパートの受信情報、および２番目のセグメントを構成するパートの受信情報が含まれている。また、１番目のセグメントを構成するパートの受信情報として、“サーバＰ”から受信したパートの受信情報、および“サーバＱ”から受信したパートの受信情報が含まれている。
【０２１０】
１番目のセグメントを構成するパートの受信情報のうち、“サーバＰ”から受信したパートの受信情報には、“０”であるパートの始点位置を示す情報、“１１５０”であるパートの終点位置を示す情報、“3Mbps”であるダウンロード速度を示す情報、および“0Mbps”であるスループットの変動の大きさを示す情報が含まれており、“サーバＱ”から受信したパートの受信情報には、“１１５０”であるパートの始点位置を示す情報、“２３００”であるパートの終点位置を示す情報、“2Mbps”であるダウンロード速度を示す情報、および“0Mbps”であるスループットの変動の大きさを示す情報が含まれている。
【０２１１】
また、２番目のセグメントを構成するパートの受信情報として、“サーバＰ”から受信したパートの受信情報、および“サーバＱ”から受信したパートの受信情報が含まれている。２番目のセグメントを構成するパートの受信情報のうち、“サーバＰ”から受信したパートの受信情報には、“２３００”であるパートの始点位置を示す情報、“３６８０”であるパートの終点位置を示す情報、“3Mbps”であるダウンロード速度を示す情報、および“0Mbps”であるスループットの変動の大きさを示す情報が含まれており、“サーバＱ”から受信したパートの受信情報には、“３６８０”であるパートの始点位置を示す情報、“４６００”であるパートの終点位置を示す情報、“3Mbps”であるダウンロード速度を示す情報、および“1Mbps”であるスループットの変動の大きさを示す情報が含まれている。
【０２１２】
図１０の説明に戻り、ステップＳ７０において、再割り当て制御部２５４は、受信履歴記憶部２５５が記憶している受信履歴を参照して、コンテンツデータのダウンロードが完了（終了）したか否かを判定する。例えば、受信履歴記憶部２５５が、図１３に示す受信履歴を記憶している場合、コンテンツデータが、６つのセグメントに分割されており、１番目のセグメントおよび２番目のセグメントのダウンロードが完了しているが、３番目乃至６番目のセグメントのダウンロードが完了していないので、再割り当て制御部２５４は、コンテンツデータのダウンロードが完了していないと判定する。
【０２１３】
ステップＳ７０において、コンテンツデータのダウンロードが完了していないと判定された場合、ステップＳ７１に進み、再割り当て制御部２５４は、パートの送信の割り当てをし直す、再割り当てを指示する信号を生成し、生成した再割り当てを指示する信号を、算出部２５３に供給する。
【０２１４】
再割り当て制御部２５４から算出部２５３に、再割り当てを指示する信号が供給されると、ステップＳ７２において、算出部２５３は、パートの送信の再割り当てが指示されたので、初期設定情報、ノード情報記憶部２５２が記憶しているノード情報、および受信履歴記憶部２５５が記憶している受信履歴を参照して、まだダウンロードされていないセグメントを、パートに分割して、パートごとの割り当て情報を生成する。そして、算出部２５３は、生成した割り当て情報を、通信制御部１８３に供給して、ステップＳ６５に戻り、上述した処理を繰り返す。
【０２１５】
例えば、図５に示すコンテンツデータのうち、セグメント７１−１のダウンロードが終了しており、セグメント７１−２乃至セグメント７１−６のダウンロードが終了していない場合、算出部２５３は、ノード情報および受信履歴を参照して、セグメント７１−２乃至セグメント７１−６のそれぞれを、ノード情報に含まれている、送信ノードとしてのサーバ５２の数によって示される数に分割する。
【０２１６】
例えば、ノード情報に含まれている、送信ノードとしてのサーバ５２の数が“２”である場合、算出部２５３は、セグメント７１−２乃至セグメント７１−６を、それぞれ２つのパートに分割する。このとき、パートの大きさは、例えば、受信履歴に含まれている、パートのダウンロード速度を基に、式（４）を計算して定める。
【０２１７】
Ｐｉ＝Ｖｉ×Ｄ／（ΣＶｉ）                            ・・・（４）
【０２１８】
ここで、Ｐｉは、サーバ５２−ｉ（但し、１≦ｉ≦Ｎ）に割り当てるパートの大きさを示しており、Ｖｉは、前回、サーバ５２−ｉからダウンロードしたパートのダウンロード速度を示している。また、Σは、ｉを１からＮに変えてのＶｉの和（合計）をとることを表し、Ｄは、セグメントの大きさを示す。
【０２１９】
したがって、例えば、図５に示すセグメント７１の大きさが2300KBであり、パート１１１−１のサーバ５２−１からのダウンロード速度が“3Mbps”であり、パート１１２−１のサーバ５２−２からのダウンロード速度が“2Mbps”であり、さらに、セグメント７１−２乃至セグメント７１−６を、それぞれ、パート１１１−２乃至パート１１１−６、およびパート１１２−２乃至パート１１２−６に分割して、パート１１１−２乃至パート１１１−６をサーバ５２−１からダウンロードし、パート１１２−２乃至パート１１２−６をサーバ５２−２からダウンロードする場合、パート１１１−２乃至パート１１１−６のそれぞれの大きさは、式（４）から、1380KB（３×２３００／（２＋３））と算出される。
【０２２０】
そして、算出部２５３は、セグメント７１−２乃至セグメント７１−６をそれぞれ分割すると、パート１１１の送信を、サーバ５２−１に割り当て、パート１１２の送信を、サーバ５２−２に割り当てる。そして、算出部２５３は、パート１１１−２を特定するための割り当て情報、およびパート１１２−２を特定するための割り当て情報を、それぞれ生成する。算出部２５３は、生成したパート１１１−２を特定するための割り当て情報を、通信制御部１８３−１に供給し、パート１１２−２を特定するための割り当て情報を、通信制御部１８３−２に供給する。
【０２２１】
なお、セグメントをパートに分割するとき、セグメントの大きさおよびダウンロード速度を基に、パートの大きさを定めると説明したが、例えば、受信履歴に含まれているスループットの変動の大きさを用いて、サーバ５２に割り当てるパートの大きさを変化させるようにしてもよい。この場合、例えば、スループットの変動が少ないサーバ５２に、より大きいパート（の送信）が割り当てられる。すなわち、スループットの変動が大きいサーバ５２には、そのサーバ５２の送信能力と比べて小さいパート（の送信）が割り当てられる。
【０２２２】
また、再割り当てを行う場合、ノード情報記憶部２５２のノード情報が更新されて、新たな送信ノードとしてのサーバ５２が追加されたとき、新たに追加されたサーバ５２からのダウンロード速度として、予め定められた所定の値を用いて式（４）を算出し、再割り当てを行う。したがって、例えば、新たに、ノード情報にサーバ５２−３の情報が追加された場合、式（４）において、ダウンロード速度Ｖ３の値を、例えば、2Mbpsとして式（４）を計算する。さらに、また、予め定められた所定の時間が経過するごとに、再割り当ての処理を行うようにすることも可能である。
【０２２３】
図１０の説明に戻り、ステップＳ７０において、コンテンツデータのダウンロードが完了したと判定された場合、コンテンツデータの受信の処理は終了する。
【０２２４】
このようにして、クライアント５１は、コンテンツデータを複数のセグメントに分割（する分割位置を指定）し、さらに、各セグメントを複数のパートに分割（する分割位置を指定）して、１つのセグメントを構成するパートのそれぞれの送信を異なるサーバ５２に割り当てる。そして、クライアント５１は、サーバ５２から、それぞれ割り当てたパートをダウンロードする。
【０２２５】
このように、コンテンツデータを複数のセグメントに分割し、さらに、各セグメントを複数のパートに分割して、１つのセグメントを構成するパートのそれぞれを、異なるサーバ５２からダウンロードするようにしたので、クライアント５１は、コンテンツデータをより迅速にダウンロードすることができる。
【０２２６】
また、各セグメントを、それぞれ複数のパートに分割し、それぞれのパートの大きさを、前回ダウンロードしたパートのダウンロード速度に応じて定めるようにしたので、コンテンツデータを、より効率よくダウンロードすることができ、その結果、ダウンロードが完了したコンテンツデータの量に対する、連続したコンテンツの再生に用いることができるコンテンツデータの量の割合をより大きくすることができる。これにより、サーバ５２や通信網５３に問題が発生した場合に、コンテンツの再生が途切れてしまう可能性をより低くすることができる。
【０２２７】
次に、図１４のフローチャートを参照して、管理部１８１から、割り当て部１８２の設定部２５１に、初期設定情報およびノード情報が供給された場合に、コンテンツデータの受信の処理と並行して実行される、クライアント５１によるノード情報の更新の処理を説明する。
【０２２８】
ステップＳ９１において、設定部２５１は、管理部１８１から供給されたノード情報を、ノード情報記憶部２５２に供給し、供給したノード情報を、ノード情報記憶部２５２に記憶させる。ノード情報には、通信網５３を介してクライアント５１に接続されている、ユーザが所望するコンテンツデータを記録しているサーバ５２の数、サーバ５２のＩＰアドレス、サーバ５２の送信能力などが含まれている。
【０２２９】
ステップＳ９２において、設定部２５１は、管理部１８１から追加ノード情報が供給されたか否かを判定する。ステップＳ９２において、追加ノード情報が供給されたと判定された場合、ステップＳ９３に進み、設定部２５１は、管理部１８１から供給された追加ノード情報をノード情報記憶部２５２に供給し、ノード情報記憶部２５２に、供給した追加ノード情報を基に、ノード情報を更新させて、ステップＳ９４に進む。
【０２３０】
例えば、ステップＳ９３において、設定部２５１は、追加ノード情報に含まれている、新たに検出されたサーバ５２の送信能力やＩＰアドレスなどの情報が、ノード情報記憶部２５２が記憶しているノード情報に追加されるように、ノード情報記憶部２５２にノード情報を更新させる。
【０２３１】
一方、ステップＳ９２において、追加ノード情報が供給されていないと判定された場合、ノード情報を更新させないので、ステップＳ９３の処理はスキップされ、ステップＳ９４に進む。
【０２３２】
ステップＳ９４において、設定部２５１は、再割り当て制御部２５４から供給される、ダウンロードが完了した旨の信号を基に、コンテンツデータが完了したか否かを判定する。ステップＳ９４において、ダウンロードが完了したと判定された場合、ノード情報を更新する必要がないので、ノード情報の更新の処理は終了する。
【０２３３】
一方、ステップＳ９４において、ダウンロードが完了していないと判定された場合、ステップＳ９２に戻り、上述した処理を繰り返す。
【０２３４】
このようにして、クライアント５１は、記憶しているノード情報を更新する。このように、追加ノード情報が供給されるたびにノード情報を更新することによって、クライアント５１は、より多くのサーバ５２から、所望するコンテンツデータを分割してダウンロードすることができる。
【０２３５】
図９のフローチャートを参照して説明したように、クライアント５１が、サーバ５２とのコネクションを確立させると、サーバ５２にはクライアント５１から、コンテンツデータのパートの送信を要求する、送信要求信号が送信されてくる。サーバ５２は、クライアント５１から送信要求信号が送信されてくるたびに、コンテンツデータの送信の処理を実行する。
【０２３６】
図１５のフローチャートを参照して、サーバ５２による、コンテンツデータの送信の処理を説明する。
【０２３７】
ステップＳ１１１において、受信部２２１は、クライアント５１から送信されてきた、送信要求信号を受信し、受信した送信要求信号を取得部２２２に供給する。
【０２３８】
ステップＳ１１２において、取得部２２２は、受信部２２１から供給された送信要求信号を参照して、記憶部２２３から、送信が要求されたコンテンツデータのパートを取得し、取得したコンテンツデータのパートを、送信部２２４に供給する。また、取得部２２２は、コンテンツデータのパートを送信部２２４に供給してから、コンテンツデータの送信が終了した旨の終了通知信号を生成し、生成した終了通知信号を送信部２２４に供給する。
【０２３９】
例えば、受信部２２１から、図１１に示す割り当て情報を含む送信要求信号が供給された場合、取得部２２２は、記録部２２３に記憶されているコンテンツデータＡから、コンテンツデータＡの先頭から、1150KBまでの部分のデータをパートとして取得（抽出）する。より詳細には、ステップＳ１１２において、取得部２２２は、記憶部２２３から取得したパートを、例えば、TCP方式のパケットに格納して、そのパケットを送信部２２４に供給する。また、例えば、取得部２２２は、パートを格納するパケットのヘッダに、格納するパートの始点位置と同じ値のシーケンス番号を格納する。
【０２４０】
ステップＳ１１３において、送信部２２４は、取得部２２２から供給されたコンテンツデータのパートを、通信網５３を介してクライアント５１あてに送信する。
【０２４１】
ステップＳ１１４において、送信部２２４は、取得部２２２から供給された終了通知信号を、通信網５３を介してクライアント５１あてに送信し、コンテンツデータの送信の処理は終了する。
【０２４２】
このようにして、サーバ５２は、クライアント５１から送信が要求されたコンテンツデータのパートを取得し、クライアント５１あてに送信する。このように、コンテンツデータから、クライアント５１から送信が要求された部分をパートとして取得し、クライアント５１あてに送信することで、サーバ５２にかかる負荷を軽減させることができ、また、コンテンツデータを、より効率よくクライアント５１に送信することができる。
【０２４３】
以上のように、本発明によれば、コンテンツデータを複数のセグメントに分割し、さらに、各セグメントを複数のパートに分割して、１つのセグメントを構成するパートのそれぞれを、異なるサーバからダウンロードするようにしたので、クライアントは、コンテンツデータをより迅速にダウンロードすることができる。
【０２４４】
また、本発明によれば、各セグメントを、それぞれ複数のパートに分割し、それぞれのパートの大きさを、前回ダウンロードしたパートのダウンロード速度に応じて定めるようにしたので、コンテンツデータを、より効率よくダウンロードすることができ、これにより、ネットワークやサーバに問題が発生した場合においても、コンテンツの再生をより途切れにくくすることができる。
【０２４５】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２４６】
この記録媒体は、図６に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１６１（フレキシブルディスクを含む）、光ディスク１６２（CD-ROM(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disc)を含む）、光磁気ディスク１６３（ＭＤ(Mini-Disc)（商標）を含む）、若しくは半導体メモリ１６４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM１３２や、記録部１３８に含まれるハードディスクなどで構成される。
【０２４７】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２４８】
また、クライアント５１が、ピアツーピアネットワークに接続されていると説明したが、ピアツーピアネットワーク上に、いわゆるスーパーノードと称されるサーバ５２、またはセンターサーバを設けて、クライアント５１が、スーパーノードまたはセンターサーバから、他のサーバ５２のノード情報を取得するようにしてもよい。
【０２４９】
さらに、例えば、図１６に示すように、サーバクライアント方式のネットワークに、クライアント５１を接続してコンテンツデータをダウンロードするようにしてもよい。
【０２５０】
この場合、通信網３０１には、クライアント５１、管理サーバ３０２、および配信サーバ３０３−１乃至配信サーバ３０３−３が、接続されている。クライアント５１が、コンテンツデータをダウンロードする場合、クライアント５１は、管理サーバ３０２から、クライアント５１が所望するコンテンツデータを記録している、配信サーバ（例えば、配信サーバ３０３−１乃至配信サーバ３０３−３）のＩＰアドレスや、配信サーバの送信能力などの情報を取得する。クライント５１は、管理サーバ３０２から取得した情報を参照して、所望するコンテンツデータを、複数のセグメントに分割し、さらに、セグメントを複数のパートに分割して、それぞれのパートの送信を、配信サーバ３０３−１乃至配信サーバ３０３−３にそれぞれ割り当てる。そして、クライアント５１は、配信サーバ３０３−１乃至配信サーバ３０３−３のそれぞれから、送信を割り当てたパートをダウンロードする。
【０２５１】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２５２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２５３】
【図１】従来のコンテンツデータを分割してダウンロードする方法を説明する図である。
【図２】本発明に係るコンテンツ配信システムを説明する図である。
【図３】コンテンツデータを分割してダウンロードする方法を説明する図である。
【図４】コンテンツデータを分割してダウンロードする方法を説明する図である。
【図５】コンテンツデータを分割してダウンロードする方法を説明する図である。
【図６】クライアントの構成の例を示すブロック図である。
【図７】クライアントおよびサーバの機能の構成を示すブロック図である。
【図８】割り当て部の機能の構成を示すブロック図である。
【図９】コンテンツデータを２つのセグメントに分割する場合における、クライアントによるコンテンツデータの受信の処理、およびサーバが、クライアントから要求されたコンテンツデータを送信する処理を説明するフローチャートである。
【図１０】コンテンツデータの受信の処理を説明するフローチャートである。
【図１１】割り当て情報を説明する図である。
【図１２】受信情報を説明する図である。
【図１３】履歴情報を説明する図である。
【図１４】ノード情報の更新の処理を説明するフローチャートである。
【図１５】コンテンツデータの送信の処理を説明するフローチャートである。
【図１６】本発明に係るコンテンツ配信システムを説明する図である。
【符号の説明】
【０２５４】
５１  クライアント，  ５２−１乃至５２−Ｎ，５２  サーバ，  １３１  CPU，  １３２  ROM，  １３３  RAM，  １３８  記録部，  １６１  磁気ディスク，  １６２  光ディスク，  １６３  光磁気ディスク，  １６４  半導体メモリ，  １８２  割り当て部，  １８３−１乃至１８３−Ｎ，１８３  通信制御部，  ２０３−１乃至２０３−Ｎ，２０３  送信部，  ２０４−１乃至２０４−Ｎ，２０４  受信部，  ２２１−１乃至２２１−Ｎ，２２１  受信部，  ２２２−１乃至２２２−Ｎ，２２２  取得部，  ２２３−１乃至２２３−Ｎ，２２３  記録部，  ２２４−１乃至２２４−Ｎ，２２４  送信部，  ２５１  設定部，  ２５２  ノード情報記憶部，  ２５３  算出部，  ２５４  再割り当て制御部，  ２５５  受信履歴記憶部
【図１】
2006244054.tif 000003
【図２】
2006244054.tif 000004
【図３】
2006244054.tif 000005
【図４】
2006244054.tif 000006
【図５】
2006244054.tif 000007
【図６】
2006244054.tif 000008
【図７】
2006244054.tif 000009
【図８】
2006244054.tif 000010
【図９】
2006244054.tif 000011
【図１０】
2006244054.tif 000012
【図１１】
2006244054.tif 000013
【図１２】
2006244054.tif 000014
【図１３】
2006244054.tif 000015
【図１４】
2006244054.tif 000016
【図１５】
2006244054.tif 000017
【図１６】
2006244054.tif 000018