(57)【要約】【課題】ストリーミングコンテンツをコンテンツ配信サーバから入手すると同時に表示を行おうとした場合、１台の配信サーバから入手しようとすると、表示または演奏前にバッファリングを行うため、表示または演奏開始に時間がかかってしまう。【解決手段】複数のキャッシュサーバを用意し、クライアントからはマルチキャスト通信を用いて全てのキャッシュサーバにコンテンツ入手要求を出す。キャッシュサーバは、クライアントと自身の間の通信速度を測定し、コンテンツ配信サーバに送信する。コンテンツ配信サーバが、受信した通信速度に応じて、キャッシュサーバごとにストリーミングコンテンツを配信するサイズを決定し、各キャッシュサーバが指定された部分コンテンツをクライアントに送信する。【選択図】        図６
2004253922.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信方法であって、
クライアントコンピュータから複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する第２のステップと、
クライアントコンピュータにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第３のステップと
を備えることを特徴とするストリーミングコンテンツの配信方法。
【請求項２】
クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信方法であって、
クライアントコンピュータから複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する第２のステップと、
コンテンツ配信サーバにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第３のステップとを備えることを特徴とするストリーミングコンテンツの配信方法。
【請求項３】
クライアントコンピュータからストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに対し所望のストリーミングコンテンツの配信要求を送信し、当該ストリーミングコンテンツの複製を格納している複数のキャッシュサーバから要求元のクライアントコンピュータにストリーミングコンテンツを配信させるストリーミングコンテンツの配信方法であって、クライアントコンピュータからコンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、
配信要求を受信したコンテンツ配信サーバにおいて配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、
特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する第２のステップと、
配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受けたクライアントコンピュータにおいて当該複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第３のステップと、
配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する第４のステップと、
クライアントコンピュータにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第５のステップと
を備えることを特徴とするストリーミングコンテンツの配信方法。
【請求項４】
クライアントコンピュータからストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに対し所望のストリーミングコンテンツの配信要求を送信し、当該ストリーミングコンテンツの複製を格納している複数のキャッシュサーバから要求元のクライアントコンピュータにストリーミングコンテンツを配信させるストリーミングコンテンツの配信方法であって、クライアントコンピュータからコンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、
配信要求を受信したコンテンツ配信サーバにおいて配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、
特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する第２のステップと、
配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受けたクライアントコンピュータにおいて当該複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第３のステップと、
配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する第４のステップと、
コンテンツ配信サーバにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第５のステップとを備えることを特徴とするストリーミングコンテンツの配信方法。
【請求項５】
クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信システムであって、
クライアントコンピュータが、
複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段と、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから受信する手段とを備え、
各キャッシュサーバが、
クライアントコンピュータからのストリーミングコンテンツの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する手段と、クライアントコンピュータから受信した分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段と
を備えることを特徴とするストリーミングコンテンツの配信システム。
【請求項６】
クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信システムであって、
クライアントコンピュータが、
複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
各キャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する手段と、コンテンツ配信サーバから指定された分割位置で分割した部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段とを備え、
コンテンツ配信サーバが、
各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段を備えることを特徴とするストリーミングコンテンツの配信システム。
【請求項７】
クライアントコンピュータからストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに対し所望のストリーミングコンテンツの配信要求を送信し、当該ストリーミングコンテンツの複製を格納している複数のキャッシュサーバから要求元のクライアントコンピュータにストリーミングコンテンツを配信させるストリーミングコンテンツの配信システムであって、
クライアントコンピュータが、
コンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、コンテンツ配信サーバから配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受取る手段と、通知を受けた複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
コンテンツ配信サーバが、
クライアントコンピュータからの配信要求に対し配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する手段を備え、
複数のキャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する手段と、クライアントコンピュータから指定された分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段と
を備えることを特徴とするストリーミングコンテンツの配信システム。
【請求項８】
クライアントコンピュータからストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに対し所望のストリーミングコンテンツの配信要求を送信し、当該ストリーミングコンテンツの複製を格納している複数のキャッシュサーバから要求元のクライアントコンピュータにストリーミングコンテンツを配信させるストリーミングコンテンツの配信システムであって、
クライアントコンピュータが、
コンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、コンテンツ配信サーバから配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受取る手段と、通知を受けた複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
コンテンツ配信サーバが、
配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段とを備え、
複数のキャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、コンテンツ配信サーバに通知する手段と、コンテンツ配信サーバから指定された分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段と
を備えることを特徴とするストリーミングコンテンツの配信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットを利用してコンテンツ配信サーバから映像や音楽などのストリーミングコンテンツを入手する際に、複数のキャッシュサーバからストリーミングコンテンツの一部分を同時に受信することによって、ストリーミングコンテンツの視聴に際して、バッファリングの時間を短縮するために適した技術に関するものである。
【０００２】
【従来の技術】
ブロードバンドが各家庭から利用できるようになり、映像や音声などのストリーミングコンテンツをインターネット経由で入手して視聴することが容易になってきている。しかし、インターネットを経由してストリーミングコンテンツを視聴しようとした場合、他のトラフィックの影響で通信速度が変化し、快適にストリーミングコンテンツを受信・視聴することが出来ない場合がある。この問題に対処するために、ストリーミングコンテンツを複数のサーバに複製しておき、コンテンツ配信サーバがストリーミングコンテンツ入手依頼を受信した時に、クライアントに対して最も快適にストリーミングコンテンツを送信できる複製サーバを選択してクライアントに返却し、クライアントは返却された複製サーバからコンテンツを受信する技術が、次の特許文献１で開示されている。
【０００３】
【特許文献１】
特開２００２−２４１７０号公報
また、最適な送信網・送信経路を選択する技術が、次の特許文献２で開示されている。
【０００４】
【特許文献２】
特開２００２−７７２５７号公報
また、配信データを予め分割して複数のサーバに分散して格納しておき、クライアントの要求があった時に、複数のサーバから同時に送信することで、受信時間を短縮する技術が、次の特許文献３で開示されている。
【０００５】
【特許文献３】
特開２００２−３２２８０号公報
【０００６】
【発明が解決しようとする課題】
しかし、複製サーバや送信経路を選択することによっても、１台のコンテンツ配信サーバからストリーミングコンテンツを順に入手するために、ストリーミングコンテンツの入手を開始してから、画面表示や演奏を開始するには、ストリーミングコンテンツ全体を入手するのに必要な時間と表示や演奏に必要な時間に差異があるため（すなわち、ストリーミングコンテンツ全体を入手するのに必要な時間が表示や演奏に必要な時間より長いため）、その分のバッファリングが行われてしまい、ストリーミングコンテンツの視聴を開始するまでに時間がかかるという問題がある。
また、特開２００２−３２２８０号公報に開示されているように、ストリーミングコンテンツを予め分割して複数のサーバに分散しておく方法にあっては、ストリーミングコンテンツ全体をダウンロードする場合には効果があるが、ストリーミングコンテンツの場合、部分コンテンツの配置によって、クライアントとサーバ間の通信速度の影響によってストリーミングコンテンツを入手するための時間がかかってしまい、ストリーミングコンテンツ視聴の途中にバッファリングが生じてしまい、ストリーミングコンテンツを快適に視聴できない可能性がある。
【０００７】
本発明の目的は、ストリーミングコンテンツのバッファリングの時間を短縮し、ストリーミングコンテンツを快適に視聴、表示することに貢献することができるストリーミングコンテンツ配信方法及びシステムを提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るストリーミングコンテンツの配信方法は、クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信方法であって、
クライアントコンピュータから複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する第２のステップと、クライアントコンピュータにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第３のステップとを備えることを特徴とする。
【０００９】
また、クライアントコンピュータから複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する第２のステップと、コンテンツ配信サーバにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第３のステップと
を備えることを特徴とする。
【００１０】
また、クライアントコンピュータからコンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信したコンテンツ配信サーバにおいて配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する第２のステップと、配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受けたクライアントコンピュータにおいて当該複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第３のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する第４のステップと、クライアントコンピュータにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第５のステップとを備えることを特徴とする。
【００１１】
また、クライアントコンピュータからコンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第１のステップと、配信要求を受信したコンテンツ配信サーバにおいて配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する第２のステップと、配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受けたクライアントコンピュータにおいて当該複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する第３のステップと、配信要求を受信した複数のキャッシュサーバにおいてクライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する第４のステップと、コンテンツ配信サーバにおいて各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信し、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから要求元のクライアントコンピュータに配信させる第５のステップとを備えることを特徴とする。
【００１２】
本発明に係るストリーミングコンテンツの配信システムは、クライアントコンピュータからストリーミングコンテンツの複製を格納している複数のキャッシュサーバに対し所望のストリーミングコンテンツの配信要求を送信し、所望のストリーミングコンテンツをクライアントコンピュータに配信させるストリーミングコンテンツ配信システムであって、
クライアントコンピュータが、
複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段と、分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを各キャッシュサーバから受信する手段とを備え、
各キャッシュサーバが、
クライアントコンピュータからのストリーミングコンテンツの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する手段と、クライアントコンピュータから受信した分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段と
を備えることを特徴とする。
【００１３】
また、クライアントコンピュータが、
複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
各キャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、要求されたストリーミングコンテンツのオリジナルを格納しているコンテンツ配信サーバに送信する手段と、コンテンツ配信サーバから指定された分割位置で分割した部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段とを備え、
コンテンツ配信サーバが、
各キャッシュサーバから受信した到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段を備えることを特徴とする。
【００１４】
また、クライアントコンピュータが、
コンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、コンテンツ配信サーバから配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受取る手段と、通知を受けた複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
コンテンツ配信サーバが、
クライアントコンピュータからの配信要求に対し配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する手段を備え、
複数のキャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、要求元のクライアントコンピュータに返信する手段と、クライアントコンピュータから指定された分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段とを備えることを特徴とする。
【００１５】
また、クライアントコンピュータが、
コンテンツ配信サーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、コンテンツ配信サーバから配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバの通知を受取る手段と、通知を受けた複数のキャッシュサーバに対し配信対象のストリーミングコンテンツの識別情報を含む配信要求を送信する手段と、各キャッシュサーバから配信対象のストリーミングコンテンツを分割した部分ストリーミングコンテンツを受信する手段とを備え、
コンテンツ配信サーバが、
配信対象のストリーミングコンテンツの複製を配信可能な複数のキャッシュサーバを特定し、特定した複数のキャッシュサーバを要求元のクライアントコンピュータに通知する手段と、各キャッシュサーバから受信した配信要求の到達所要時間の情報に応じて、各キャッシュサーバに配信させるストリーミングコンテンツの分割位置を決定し、各分割位置の情報を各キャッシュサーバに送信する手段とを備え、
複数のキャッシュサーバが、
クライアントコンピュータからの配信要求の到達所要時間を計算し、コンテンツ配信サーバに通知する手段と、コンテンツ配信サーバから指定された分割位置の情報で示される位置で分割された部分ストリーミングコンテンツを要求元のクライアントコンピュータに配信する手段とを備えることを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明に係るストリーミングコンテンツ配信システムの実施の一形態を図面を用いて説明する。
図１は、本発明の実施の形態を示すシステム構成図である。
ここで示すシステムは、インターネットデータセンタ１に設置され、ストリーミングデータを格納し、コンテンツ配信プログラム（後述）が稼動しているコンテンツ配信サーバコンピュータ２と、複数のＩＳＰ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）６、７内に設置され、ストリーミングデータの複製を格納しているキャッシュサーバコンピュータ３，５が、ネットワークを通じてインターネット８に繋がっている。また、利用者がストリーミングコンテンツを視聴するクライアントコンピュータ４が、ユーザが契約しているＩＳＰ９とのネットワーク接続１０を使用して、同様にインターネットに接続している。
【００１７】
図２は、コンテンツ配信サーバコンピュータ２、キャッシュサーバコンピュータ３、５とクライアントコンピュータ４のブロック構成図である。
コンテンツ配信サーバコンピュータ２は、ＣＰＵ２１Ａ、メモリ２１Ｂからなる端末装置２１、コンテンツ配信プログラム２２Ａと、ストリーミングデータ２２Ｂが格納されている外部記憶装置２２と、通信ポート２３から構成されている。
キャッシュサーバコンピュータ３、５は、ＣＰＵ３１Ａ、メモリ３１Ｂからなる端末装置３１と、複製コンテンツ配信プログラム３２Ａと、ストリーミングデータの複製であるコンテンツキャッシュ３２Ｂが格納されている外部記憶装置３２と、通信ポート３３から構成されている。
クライアントコンピュータ４は、ＣＰＵ４１Ａ、メモリ４１Ｂからなる端末装置４１、コンテンツ視聴プログラム４２Ａとコンテンツ受信プログラム４２Ｂ、が格納されている外部記憶装置４２と、通信ポート４３から構成されている。
これらのコンテンツ配信サーバコンピュータ１、キャッシュサーバコンピュータ３，５及びクライアントコンピュータ４は、データを通信するためのＩＳＰ接続のネットワーク１０とインターネット８で接続されている。
【００１８】
図３は、コンテンツ配信サーバコンピュータ２上で稼働するコンテンツ配信プログラム２２Ａの構成を示す機能ブロック図である。
コンテンツ配信プログラム２２Ａは、コンテンツ視聴プログラム４２Ａと複製コンテンツ配信プログラム３２Ａからの要求を受け取るコンテンツ配信コントロールプログラム２２０１、ストリーミングコンテンツをキャッシュサーバコンピュータ３，５に配布するコンテンツ送信プログラム２２０２、ストリーミングコンテンツの情報を管理するコンテンツ管理プログラム２２０３、キャッシュサーバコンピュータ３，５にどのストリーミングコンテンツの複製を行っているかを管理するキャッシュ情報管理プログラム２２０４、ストリーミングコンテンツの利用料金計算を行うコンテンツ利用料金管理プログラム２２０５からなる。
【００１９】
図４は、キャッシュサーバコンピュータ３、５上で稼働する複製コンテンツ配信プログラム３２Ａの構成を示す機能ブロック図である。
複製コンテンツ配信プログラム３２Ａは、コンテンツ受信プログラム４２Ｂから要求を受け取る複製コンテンツ配信コントロールプログラム３２０１、ストリーミングコンテンツを送信する複製コンテンツ送信プログラム３２０２、コンテンツ送信プログラム２２０２から複製コンテンツを受信するコンテンツ受信プログラム３２０３、外部記憶装置３２中に格納された複製コンテンツ（コンテンツキャッシュ）３２Ｂを管理するコンテンツ管理プログラム３２０４からなる。
【００２０】
図５は、クライアントコンピュータ４上で稼働するコンテンツ受信プログラム４２Ｂの構成を示す機能ブロック図である。
コンテンツ受信プログラム４２Ｂは、複数のキャッシュサーバコンピュータ３，５からストリーミングコンテンツの部分コンテンツを受信して外部記憶装置４２内のバッファ（図示せず）に格納するコンテンツ格納プログラム４２０１と、コンテンツ視聴プログラム４２Ａに対してバッファからストリーミングコンテンツを提供するコンテンツ提供プログラム４２０２からなる。
【００２１】
図６は、クライアントコンピュータ４、コンテンツ配信サーバコンピュータ２、キャッシュサーバコンピュータ３間でやりとりされる命令、データの流れの例を示した図である。
まず、クライアントコンピュータ４からコンテンツ配信サーバコンピュータ２に対し、ストリーミングコンテンツ名を指定して受信要求命令を送信する（ステップ６０１）。コンテンツ配信サーバコンピュータ２は、ストリーミングコンテンツ名に対応するマルチキャストグループアドレスとストリーミングコンテンツＩＤ、ストリーミングコンテンツのサイズをクライアントコンピュータ４に返信する（ステップ６０２）。
【００２２】
クライアントコンピュータ４は、ストリーミングコンテンツ名とストリーミングコンテンツＩＤを指定して、マルチキャストグループアドレスに対し配信要求命令を送信する（このとき、マルチキャストグループに参加している複数のキャッシュサーバコンピュータ３，５に配信要求命令が送信される）（ステップ６０３）。マルチキャストグループに参加しており、配信要求命令を受信したキャッシュサーバコンピュータ３は、ストリーミングコンテンツＩＤに対応しているストリーミングコンテンツ（コンテンツキャッシュ）が外部記憶装置３２中にあるかを確認し、外部記憶装置３２中に存在した場合は、クライアントコンピュータ４からの配信要求命令を受信するのに要した遅延時間の値とストリーミングコンテンツＩＤとともに送信可能命令としてコンテンツ配信サーバコンピュータ２に対して送信する（ステップ６０４）。ここで、遅延時間の値は、配信要求命令に含まれているタイムスタンプ（配信命令を発した時刻）とキャッシュサーバが受信した時刻によって求めることができる。また、配信要求命令を受信した際に、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）メッセージをクライアントコンピュータに送信し、返信を受信するまでに要した時間を遅延時間としても構わない。
【００２３】
複数のキャッシュサーバコンピュータ３，５から送信可能命令を受信したコンテンツ配信サーバコンピュータ２は、受信した遅延時間の値に応じて、送信するストリーミングコンテンツのサイズを分割する演算を行い、分割した部分コンテンツの送信開始位置と送信終了位置を各キャッシュサーバコンピュータ３，５に返却する（ステップ６０５）。
キャッシュサーバコンピュータ３、５は、それぞれ、クライアントコンピュータ４に対しストリーミングコンテンツの分割位置、すなわち送信開始位置と送信終了位置の情報を返却する（ステップ６０６）。
【００２４】
クライアントコンピュータ４では、キャッシュサーバコンピュータ３、５から受信した送信開始位置と送信終了位置からストリーミングデータを全て受信できることを確認すると、各キャッシュサーバコンピュータ３，５に対してデータ送信要求を送り（ステップ６０７）データ受信を開始する（ステップ６０８）。
クライアントコンピュータ４では、各キャッシュサーバコンピュータ３，５から受信したストリーミングデータをバッファに格納しつつ、ストリーミングデータの先頭から再生を開始する（ステップ６０９）。
クライアントコンピュータ４では、ストリーミングデータの受信を終わったキャッシュサーバコンピュータ３，５との接続を終了する（ステップ６１０）。キャッシュサーバコンピュータ３，５は送信終了をコンテンツ配信サーバコンピュータ２に送信して（ステップ６１１）処理を終了する。
【００２５】
図７は、コンテンツ配信プログラム２２Ａを構成するコンテンツ送信コントロールプログラム２２０１が利用する、送信可能キャッシュサーバアドレスバッファ７００の構成例である。
送信可能キャッシュサーバアドレスバッファ７００は、ストリーミングコンテンツＩＤ７０１と送信可能キャッシュサーバリスト７０２の組からなっており、送信可能キャッシュサーバリスト７０２は、キャッシュサーバコンピュータ３，５のアドレス（ＩＰアドレス）７０３、遅延時間７０４、ストリーミングコンテンツ配信開始位置７０５と配信終了位置７０６と次の送信可能キャッシュサーバリストへのポインタ７０７からなる。次の送信可能キャッシュサーバリスト（７０７）がない場合は、ポインタの値は「０」である。
この送信可能キャッシュサーバアドレスバッファ７００は、配列やハッシュテーブルなどのテーブル中に複数格納され、このテーブルは、外部記憶装置中２２に、データベースのエントリとして、あるいはファイルとして格納されていても構わない。
【００２６】
図８は、コンテンツ配信プログラム２２Ａを構成するコンテンツ管理プログラム２２０３とキャッシュ情報管理プログラム２２０４が利用するコンテンツ管理テーブル８００の構成例である。
コンテンツ管理テーブル８００は、ストリーミングコンテンツ名称８０１と、ストリーミングコンテンツが外部記憶装置２２に格納されている位置８０２、ストリーミングデータのサイズ８０３、キャッシュサーバコンピュータのアドレス８０４、マルチキャストグループアドレス８０５の組からなる。このテーブル８００は、外部記憶装置２２中にデータベースのエントリとして、あるいはファイルとして格納されていても構わない。
【００２７】
図９は、コンテンツ配信プログラム２２Ａを構成するコンテンツ利用料金管理プログラム２２０５が利用するコンテンツ利用料金管理テーブル９００の構成例である。
コンテンツ利用料金管理テーブル９００は、コンテンツの名称９０１、コンテンツサイズ９０２、利用料金９０３からなる。このテーブル９００は、外部記憶装置２２中にデータベースのエントリとして、あるいはファイルとして格納されていても構わない。
【００２８】
図１０は、キャッシュサーバコンピュータ３，５における複製コンテンツ配信プログラム３２Ａを構成する複製コンテンツ配信コントロールプログラム３２０１と複製コンテンツ送信プログラム３２０２が利用する、コンテンツ送信テーブル１０００の構成例である。
コンテンツ送信テーブル１０００は、ストリーミングコンテンツＩＤ１００１、ストリーミングデータが外部記憶装置３２に格納されている位置１００２、コンテンツ送信開始位置１００３、コンテンツ送信終了位置１００４の組からなる。このテーブル１０００は、外部記憶装置３２中にデータベースのエントリとして、あるいはファイルとして格納されていても構わない。
【００２９】
図１１は、複製コンテンツ配信プログラム３２Ａを構成するコンテンツ管理プログラム３２０４が利用する、複製コンテンツ管理テーブル１１００の構成例である。
複製コンテンツ管理テーブル１１００は、ストリーミングコンテンツ名称１１０１と、ストリーミングデータが外部記憶装置に格納されている位置１１０２ストリーミングデータのサイズ１１０３の組からなる。このテーブル１１００は、外部記憶装置３２中にデータベースのエントリとして、あるいはファイルとして格納されていても構わない。
【００３０】
図１２は、クライアントコンピュータ４上のコンテンツ受信プログラム４２Ｂを構成するコンテンツ格納プログラム４２０１が使用するバッファ１２００の格納状態の例を示す図である。
図１２（１）では、４台のキャッシュサーバコンピュータ１２０１、１２０２、１２０３，１２０４から同時にストリーミングコンテンツの一部分を入手している状態（斜線で示す部分）であることを示している。
図１２（２）は、キャッシュサーバコンピュータ１２０１からのストリーミングコンテンツを受信し終わった状態を示している。この後、キャッシュサーバコンピュータ１２０２から受信しているストリーミングデータをストリーミング視聴プログラム４２Ａに転送することになるが、キャッシュサーバコンピュータ１２０２から受信予定のサイズ分のコンテンツをそのコンテンツを表示するために要する時間内に受信することが困難であると判断した場合は、キャッシュサーバコンピュータ１２０２から受信予定のバッファの残りを分割し、先ほど部分コンテンツの受信を終了したキャッシュサーバコンピュータ１２０１から分割した後半部分のコンテンツを受信するようにする（図１２（３））。
【００３１】
以後、ストリーミングコンテンツ配信サービスを構成する各プログラムの動作をフローチャートを用いて詳細に説明する。
図１３は、コンテンツ配信サーバコンピュータ２上で稼動するコンテンツ配信プログラム２２Ａを構成するコンテンツ配信コントロールプログラム２２０１の動作を示すフローチャートである。
コンテンツ配信コントロールプログラム２２０１が開始すると、クライアントコンピュータ４のコンテンツ受信プログラム４２Ｂ、キャッシュサーバコンピュータ３，５の複製コンテンツ配信プログラム３２Ａからの接続を待つ（ステップ１３０１）。
そして、いずれからかの接続を受け付け、命令を受信したならば、クライアントコンピュータ４のコンテンツ受信プログラム４２Ｂからの接続かどうかを判断し（ステップ１３０２）、コンテンツ受信プログラム４２Ｂからの接続であれば、受信した命令がアドレス入手依頼かコンテンツ入手依頼かを判断する（ステップ１３０３）。
【００３２】
命令がアドレス入手依頼の場合は、命令とともに受信していたコンテンツ名称を取り出す（ステップ１３０４）。
次に、ユニークなストリーミングコンテンツＩＤと、送信可能キャッシュサーバアドレスバッファ７００（図７）を生成する（ステップ１３０５）。そして、生成したストリーミングコンテンツＩＤと、受信したコンテンツ名称に対応するストリーミングコンテンツの複製を格納しているキャッシュサーバコンピュータが属しているマルチキャストグループのマルチキャストアドレスと、ストリーミングコンテンツのサイズを返却し（ステップ１３０６）、ストリーミングコンテンツＩＤと１対１に対応するコンテンツ配信タイマーを起動し（ステップ１３０７）、ステップ１３０１から繰り返す。
【００３３】
ステップ１３０３において、命令がコンテンツ入手依頼であれば、命令とともに受信していた、ストリーミングコンテンツＩＤとコンテンツ配信開始位置と配信終了位置を取出し（ステップ１３０８）、ストリーミングコンテンツＩＤに対応するコンテンツのストリーミングデータを配信開始位置から配信終了位置まで、クライアントコンピュータ４上のコンテンツ受信プログラム４２Ｂに送信し（ステップ１３０９）、ステップ１３０１から繰り返す。
ステップ１３０２において、接続がキャッシュサーバ３，５の複製コンテンツ配信プログラム３２Ａからのものであった場合、接続時に受信した命令が送信可能命令かどうか判断し（ステップ１３１０）、送信可能命令であれば、命令とともに受信していた遅延時間とストリーミングコンテンツＩＤを取り出す（ステップ１３１１）。
【００３４】
次に、ストリーミングコンテンツＩＤに対応するコンテンツ配信タイマーが起動しているかどうかを判断し（ステップ１３１２）、コンテンツ配信タイマーが終了していれば、送信不要を返答し（ステップ１３１３）、ステップ１３０１から繰り返す。
コンテンツ配信タイマーが終了していなければ（起動中ならば）、遅延時間とキャッシュサーバコンピュータのアドレスを送信可能キャッシュサーバアドレスバッファ７００に格納しておき（ステップ１３１４）、ステップ１３０１から繰り返す。
【００３５】
ステップ１３１０において、命令が送信可能命令でなければ、送信終了命令であるので、命令とともに受信していたストリーミングコンテンツＩＤを取り出し（ステップ１３１５）、キャッシュサーバコンピュータ３，５に対応する送信可能キャッシュサーバアドレスバッファ７００の送信開始位置と送信終了位置から送信データ量を計算し（ステップ１３１６）、コンテンツ利用料金管理プログラム２２０５にコンテンツ名称とキャッシュサーバコンピュータ名、送信データ量を送信し（ステップ１３１７）、ステップ１３０１から繰り返す。
【００３６】
図１４は、図１３のステップ１３０７で起動されたコンテンツ配信タイマーが終了した時に実行されるコンテンツ配信コントロールプログラム２２０１の動作を示すフローチャートである。
このプログラム２２０１が処理を開始すると、送信可能キャッシュサーバアドレスバッファ７００を確認し（ステップ１４０１）、送信可能キャッシュサーバアドレスバッファ７００内にキャッシュサーバアドレスが登録されていない場合は、クライアントコンピュータ４に対して、ストリーミングコンテンツの開始位置（０）と終了位置（コンテンツのサイズ）を送信し（ステップ１４０２）、送信可能キャッシュサーバアドレスバッファ７００を破棄（ステップ１４０４）して終了する。
【００３７】
送信可能キャッシュサーバアドレスバッファ７００内にキャッシュサーバアドレスが登録されている場合は、コンテンツのサイズを遅延時間の逆数に合わせて分割し（ステップ１４０４）、遅延時間の短いキャッシュサーバコンピュータから順にストリーミングデータの先頭からのサイズを割り当て（ステップ１４０５）、送信可能キャッシュサーバアドレスバッファ７００に送信開始位置と送信終了位置を格納しておき（ステップ１４０６）、ストリーミングデータの送信開始位置と送信終了位置を各キャッシュサーバコンピュータに送信し（ステップ１４０７）、ステップ１４０３を実行し終了する。
【００３８】
図１５は、コンテンツ配信サーバコンピュータ２上で稼動するコンテンツ配信プログラム２２Ａを構成するコンテンツ送信プログラム２２０２の動作を示すフローチャートである。
コンテンツ送信プログラム２２０２が起動すると、コンテンツ名称を受け取る（ステップ１５０１）。次に、このコンテンツ名称をコンテンツ管理プログラム２２０３に送信し（ステップ１５０２）、外部記憶装置２２上のストリーミングコンテンツの位置とサイズを入手する（ステップ１５０３）。次に、キャッシュ情報管理プログラム２２０４にコンテンツ名称を送信し（ステップ１５０４）、マルチキャストグループアドレスを入手する（ステップ１５０５）。そして、外部記憶装置２２上のステップ１５０３で入手した位置からストリーミングコンテンツのデータを読み込み（ステップ１５０６）、コンテンツ名称とともにマルチキャストグループアドレス宛に送信し（ステップ１５０７）、ステップ１５０１から繰り返す。
【００３９】
図１６は、コンテンツ配信サーバコンピュータ２上で稼動するコンテンツ配信プログラム２２Ａを構成するコンテンツ管理プログラム２２０３の動作を示すフローチャートである。
コンテンツ管理プログラム２２０３が起動すると、コンテンツ送信プログラム２２０２からコンテンツ名称を入手する（ステップ１６０１）。そして、コンテンツ管理テーブル８００（図８）から、コンテンツ名称に対応するストリーミングコンテンツの外部記憶装置上の位置とサイズを取り出し（ステップ１６０２）、取り出した位置とサイズを返却し（ステップ１６０３）、ステップ１６０１から繰り返す。
【００４０】
図１７は、コンテンツ配信サーバコンピュータ２上で稼動するコンテンツ配信プログラム２２Ａを構成するキャッシュ情報管理プログラム２２０４の動作を示すフローチャートである。
キャッシュ情報管理プログラム２２０４が起動すると、コンテンツ送信プログラム２２０２からコンテンツ名称を受信する（ステップ１７０１）。そして、コンテンツ管理テーブル８００（図８）からコンテンツ名称に対応するストリーミングデータの複製を格納しているキャッシュサーバコンピュータの属するマルチキャストグループアドレスを返却し（ステップ１７０２）、ステップ１７０１から繰り返す。
【００４１】
図１８は、コンテンツ配信サーバコンピュータ２上で稼動するコンテンツ配信プログラム２２Ａを構成するコンテンツ利用料金管理プログラム２２０５の動作を示すフローチャートである。
コンテンツ利用料金管理プログラム２２０５が起動すると、コンテンツ名称とキャッシュサーバコンピュータ名、各キャッシュサーバコンピュータに割り当てたコンテンツ転送サイズを受信する（ステップ１８０１）。そして、コンテンツ料金テーブル９００（図９）からコンテンツ名称に対応するコンテンツ料金を取り出し（ステップ１８０２）、各キャッシュサーバコンピュータへの転送サイズに合わせて分割し（ステップ１８０３）、キャッシュサーバ利用料金テーブル（図示せず）の各キャッシュサーバの利用料金と加算し（ステップ１８０４）、ステップ１８０１から繰り返す。このとき、キャッシュサーバ料金利用テーブルから各プロバイダの課金プログラムへコンテンツ利用料金データを送信して利用者に課金することになるが、課金プログラムの構成や処理内容については本発明の範囲外であるので、詳しい説明は省略する。
【００４２】
図１９は、キャッシュサーバコンピュータ上で稼動する複製コンテンツ配信プログラム３２Ａを構成する複製コンテンツ配信コントロールプログラム３２０１の動作を示すフローチャートである。
複製コンテンツ配信コントロールプログラム３２０１が起動すると、クライアントコンピュータ４上のコンテンツ格納プログラム４２０１から接続を受け付け命令を受信する（ステップ１９０１）。そして、命令がコンテンツ入手確認かコンテンツ入手依頼かどうかを判断し（ステップ１９０２）、コンテンツ入手確認の場合は、ストリーミングコンテンツ名称とストリーミングコンテンツＩＤを入手する（ステップ１９０３）。そして、入手したストリーミングコンテンツ名称をコンテンツ確認命令とともにコンテンツ管理プログラム３２０４に送信し（ステップ１９０４）、コンテンツが存在するかどうかを確認する（ステップ１９０５）。
コンテンツが存在しない場合はコンテンツ格納プログラムからの接続を閉じ（ステップ１９０６）、ステップ１９０１から繰り返す。
【００４３】
コンテンツが存在していた場合は、ストリーミングデータの位置をコンテンツ管理プログラム３２０４から入手し（ステップ１９０７）、クライアントコンピュータ４からの接続の遅延時間を計算し（ステップ１９０８）、コンテンツ配信サーバコンピュータ２上のコンテンツ配信コントロールプログラム２２０１にストリーミングコンテンツＩＤと遅延時間の値を送信する（ステップ１９０９）。これに対して、コンテンツ配信コントロールプログラム２２０１からストリーミングデータの送信開始位置と送信終了位置を受信したならば（ステップ１９１０）、その受信した送信開始位置と送信終了位置と、ステップ１９０３で入手したストリーミングコンテンツＩＤ、ステップ１９０７で入手したストリーミングデータの位置をコンテンツ送信テーブル１０００（図１０）に格納し（ステップ１９１１）、送信開始位置と送信終了位置をクライアントコンピュータ４上のコンテンツ格納プログラム４２０１に送信し（ステップ１９１２）、ステップ１９０１から繰り返す。
【００４４】
ステップ１９０２において、受信した命令がコンテンツ入手依頼の場合は、ストリーミングコンテンツＩＤを受信し（ステップ１９１３）、複製コンテンツ送信プログラム３２０２にストリーミングコンテンツＩＤを渡す（ステップ１９１４）。複製コンテンツ送信プログラム３２０２が処理を終了した後、コンテンツ配信サーバコンピュータ２上のコンテンツ配信コントロールプログラム２２０１に対し、ストリーミングコンテンツＩＤとコンテンツ配信終了命令を送信し（ステップ１９１５）、ステップ１９０１から繰り返す。
【００４５】
図２０は、キャッシュサーバコンピュータ３，５上で稼動する複製コンテンツ配信プログラム３２Ａを構成する複製コンテンツ送信プログラム３２０２の動作を示すフローチャートである。
複製コンテンツ送信プログラム３２０２が開始すると、複製コンテンツ配信コントロールプログラム３２０１からストリーミングコンテンツＩＤを受け取る（ステップ２００１）。コンテンツ送信テーブル１０００（図１０）からストリーミングコンテンツＩＤに対応するストリーミングデータの位置と送信開始位置と送信終了位置を取り出し（ステップ２００２）、クライアントコンピュータ４のコンテンツ格納プログラム４２０１に接続し（ステップ２００３）、ストリーミングデータの送信開始位置から送信終了位置まで送信し（ステップ２００４）、コンテンツ格納プログラム４２０１との接続を閉じ（ステップ２００５）、ステップ２００１から繰り返す。
【００４６】
図２１は、キャッシュサーバコンピュータ３，５上で稼動する複製コンテンツ配信プログラム３２Ａを構成するコンテンツ受信プログラム３２０３の動作を示すフローチャートである。
コンテンツ受信プログラム３２０３が起動すると、コンテンツ配信サーバコンピュータ２上のコンテンツ送信プログラム２２０２から接続を受け付ける（ステップ２１０１）。そして、配信されるコンテンツの名称とストリーミングコンテンツのデータを受信し（ステップ２１０２）、受信したストリーミングデータを外部記憶装置中に格納し（ステップ２１０３）、コンテンツ管理プログラム３２０４にコンテンツ登録命令とともに、コンテンツ名称、コンテンツ格納位置、受信したコンテンツサイズを送信し（ステップ２１０４）、ステップ２１０１から繰り返す。
【００４７】
図２２は、キャッシュサーバコンピュータ３，５上で稼動する複製コンテンツ配信プログラム３２Ａを構成するコンテンツ管理プログラム３２０４の動作を示すフローチャートである。
コンテンツ管理プログラム３２０４が起動すると、複製コンテンツ配信コントロールプログラム３２０１またはコンテンツ受信プログラム３２０３からの接続を受け付け（ステップ２２０１）、命令を受信する（ステップ２２０２）。受信した命令がコンテンツ登録命令かどうかを判断し（ステップ２２０３）、コンテンツ登録命令であれば、コンテンツ名称、コンテンツ格納位置、コンテンツサイズを受け取り（ステップ２２０４）、複製コンテンツ管理テーブル１１００（図１１）に登録し（ステップ２２０５）、ステップ２２０１から繰り返す。
【００４８】
受信した命令がコンテンツ確認命令であれば、コンテンツ名称を受け取り（ステップ２２０６）、複製コンテンツ管理テーブル１１００内に登録されているかを確認し（ステップ２２０７）、登録されていればストリーミングデータの格納位置を返却し（ステップ２２０８）、ステップ２２０１から繰り返す。登録されていない場合は、「−１」を返却し（ステップ２２０９）、ステップ２２０１から繰り返す。「−１」を返却するということは、コンテンツの複製がキャッシュサーバ内に登録されていないことを意味する。
【００４９】
図２３は、クライアントコンピュータ４上で稼働するコンテンツ受信プログラム４２Ｂを構成するコンテンツ格納プログラム４２０１の動作を示すフローチャートである。
コンテンツ格納プログラム４２０１が起動すると、コンテンツ視聴プログラム４２Ａから利用者が指定したコンテンツ名称を受信する（ステップ２３０１）。次に、コンテンツ配信サーバコンピュータ２に接続してコンテンツ名称とマルチキャストアドレス入手依頼命令を送信し（ステップ２３０２）、ストリーミングコンテンツＩＤと、マルチキャストアドレスと、ストリーミングコンテンツのサイズを受信する（ステップ２３０３）。
【００５０】
次に、入手したマルチキャストアドレス宛に、コンテンツ入手確認命令とストリーミングコンテンツ名称とストリーミングコンテンツＩＤを送信し（ステップ２３０４）、キャッシュサーバコンピュータ３，４からコンテンツの受信開始位置と受信終了位置を受信する（ステップ２３０５）。
受信したコンテンツ開始位置と終了位置を組み合わせて全てのコンテンツが受信可能になったか判断し（ステップ２３０６）、受信可能でなければステップ２３０５から繰り返す。受信可能であれば、コンテンツサイズ分のバッファを用意し（ステップ２３０７）、コンテンツ視聴プログラム４２Ａに対し、コンテンツ入手開始とバッファＩＤを返信する（ステップ２３０８）。
【００５１】
次に、コンテンツ開始位置と終了位置を受信した全てのキャッシュサーバコンピュータ３，５に対し、コンテンツ入手依頼命令とストリーミングコンテンツＩＤを送信し（ステップ２３０９）、キャッシュサーバコンピュータごとに指定されたコンテンツ開始位置からストリーミングコンテンツを受信し、対応するバッファの位置に格納する（ステップ２３１０）。
各キャッシュサーバコンピュータ３，５からのコンテンツの受信が終了位置に達したかどうか判断し（ステップ２３１１）、達していない場合は、ステップ２３１０から繰り返す。達していた場合は、最後のキャッシュサーバかどうか判断し（ステップ２３１２）、最後であれば接続を閉じ終了する（ステップ２３１３）。
【００５２】
最後でなければ次のキャッシュサーバからのコンテンツ入手状況をチェックする（ステップ２３１４）。入手状況をチェックした結果、入手済みのコンテンツの表示を行う時間に対し入手量が不足していると判断した場合は、入手していないコンテンツの位置を分割し（ステップ２３１５）、次のキャッシュサーバのコンテンツ終了位置を分割位置に設定し（ステップ２３１６）、コンテンツ入手が終了したキャッシュサーバに対し、コンテンツの開始位置を分割位置に、次のキャッシュサーバの終了位置を終了位置に設定して（ステップ２３１７）、そのキャッシュサーバコンピュータに対しコンテンツ入手依頼命令を送信し（ステップ２３１８）、コンテンツの入手を開始し（ステップ２３１９）、ステップ２３１０から繰り返す。
入手状況をチェックした結果、表示を行う時間に対し入手量が十分と判断した場合は、接続を終了し（ステップ２３２０）、ステップ２３１０から繰り返す。
【００５３】
図２４は、クライアントコンピュータ４上で稼働するコンテンツ受信プログラム４２Ｂを構成するコンテンツ提供プログラム４２０２の動作を示すフローチャートである。
コンテンツ提供プログラム４２０２が起動すると、コンテンツ視聴プログラム４２Ａからコンテンツ入手依頼命令とバッファＩＤを受け付ける（ステップ２４０１）。そして、読み取り位置を「０」に設定し（ステップ２４０２）、読み取り位置がバッファの最後に到達したかを判断する（ステップ２４０３）。バッファの最後に到達していればコンテンツ終了を返却し（ステップ２４０４）、バッファを開放して（ステップ２４０５）、終了する。
バッファの最後に達していなければ、バッファＩＤに対応するバッファからストリーミングデータを取り出し（ステップ２４０６）、読み取り開始位置に取り出したデータサイズを加算し（ステップ２４０７）、コンテンツ視聴プログラム４２Ａに送信し（ステップ２４０８）、ステップ２４０３から繰り返す。
【００５４】
図２５は、クライアントコンピュータ４上で稼働するコンテンツ視聴プログラム４２Ａの動作を示すフローチャートである。
コンテンツ視聴プログラム４２Ａが起動すると、ユーザから視聴したいコンテンツ名称を受け付ける（ステップ２５０１）。受け付けたコンテンツ名称をコンテンツ格納プログラム４２０１に送信し（ステップ２５０２）、コンテンツ入手開始とバッファＩＤを受け取る（ステップ２５０３）。
次にコンテンツ提供プログラム４２０２に対し、コンテンツ入手依頼命令とバッファＩＤを送信し（ステップ２５０４）、コンテンツ提供プログラム４２０２からストリーミングデータを受信する（ステップ２５０５）。受信したデータがコンテンツ終了かを判断し（ステップ２５０６）、コンテンツ終了でなければ、受信したストリーミングデータを画面に表示あるいは音声として再生し（ステップ２５０７）、ステップ２５０５から繰り返す。受信したデータがコンテンツ終了であれば、終了する。
【００５５】
以上のように本実施形態においては、クライアントコンピュータからマルチキャストグループに所属している複数のキャッシュサーバコンピュータに対し、ブロードバンド回線経由で、入手したいストリーミングデータのＩＤ（識別情報）を指定してコンテンツ入手要求（配信要求）を送信する。各キャッシュサーバコンピュータは、入手要求を受けたストリーミングデータを自身がキャッシュしているかどうかを調べ、キャッシュしていた場合は、クライアントコンピュータと自身の間の通信速度（遅延時間）を調査し、そのデータとストリーミングデータのＩＤをコンテンツ配信サーバコンピュータに送信する。コンテンツ配信サーバコンピュータは、複数のキャッシュサーバコンピュータから通信速度を入手し、通信速度に合わせて、各キャッシュサーバコンピュータが送信すべき、ストリーミングコンテンツの分割位置（開始位置と終了位置）を決定し、キャッシュサーバコンピュータに送信する。開始位置と終了位置を受信したキャッシュサーバコンピュータは、ストリーミングコンテンツを指定された開始位置から順に終了位置に達するまでクライアントコンピュータに送信する。クライアントコンピュータ上では、ストリーミングコンテンツ受信プログラムが稼動しており、各キャッシュサーバコンピュータからそれぞれ部分コンテンツを受信する。この時コンテンツの受信に先立って、ストリーミングコンテンツの開始位置と終了位置を入手している。ストリーミングコンテンツ受信プログラムは、予め確保したストリーミングコンテンツ格納用のバッファ中に、各キャッシュサーバコンピュータから受信したストリーミングコンテンツを格納しておき、ストリーミングコンテンツの視聴プログラムに対して、ストリーミングコンテンツの最初からデータを転送し、視聴プログラムが画面に表示あるいは演奏を行っていく。
ストリーミングコンテンツ受信プログラムは１つの部分ストリーミングコンテンツの受信を終了した時点で、次の部分ストリーミングコンテンツの受信状況を確認し、この部分ストリーミングコンテンツを表示または演奏する前に受信ができないと判断すると、前の部分ストリーミングコンテンツを受信したキャッシュサーバから、部分ストリーミングコンテンツの表示または演奏に間に合うように部分ストリーミングコンテンツの残りの一部を同時に受信するようにする。これを全ての部分ストリーミングコンテンツの受信に対して繰り返すことで、所望のストリーミングコンテンツ全体を途切れなく受信する。
【００５６】
これにより、最初の部分ストリーミングコンテンツの受信にかかる時間を短縮することができ、ストリーミングコンテンツの表示あるいは演奏の開始までにかかるバッファリングに要する時間を短縮できる。
また、部分コンテンツの入手が複数のキャッシュサーバコンピュータに分散されるため、１台のキャッシュサーバコンピュータのＣＰＵや通信機能を占有することがなくなり、稼動していないキャッシュサーバコンピュータを効率的に利用することが可能になる。
【００５７】
ところで、上記の実施形態においては、クライアントコンピュータが所望のストリーミングコンテンツの複製を格納しているキャッシュサーバを知らない場合を想定しているが、コンテンツ配信サーバから例えばリスト形式でストリーミングコンテンツの複製が存在するキャッシュサーバのマルチキャストアドレスやコンテンツサイズの通知を受けていた場合、コンテンツ配信サーバに対してキャッシュサーバの所在を問い合わせる手続は不要になる。すなわち、図６におけるステップ６０１，６０２の手続は不要になる。
【００５８】
また、ストリーミングコンテンツの分割位置をコンテンツ配信サーバで決定するようにしているが、クライアントコンピュータで決定するようにすることができる。
図２６は、その場合におけるクライアントコンピュータ、キャッシュサーバコンピュータ、コンテンツ配信サーバコンピュータ相互間のやり取りを示す図であり、図６と異なる点は、キャッシュサーバコンピュータに対しストリーミングコンテンツ名、コンテンツＩＤを含む配信要求を送信したならば、その配信要求の遅延時間の値を各キャッシュサーバコンピュータからクライアントコンピュータに返信させ（ステップ６０４ｂ）、クライアントコンピュータで遅延時間の値（通信状況）に応じたストリーミングコンテンツの分割位置を決定し、その結果を各キャッシュサーバコンピュータに通知する（ステップ６０６ｂ）ようにしたことである。
このようにすることにより、コンテンツ配信サーバコンピュータの負荷を軽減することができる。
なお、図２６においては、図６と同一部分は同一符号で示している。
【００５９】
【発明の効果】
以上のように本発明によれば、クライアントコンピュータ上でストリーミングコンテンツを視聴するにあたり、視聴開始するまでに必要なバッファリング時間を短縮することができ、ユーザにとってはストリーミングコンテンツを快適に視聴または表示でき、利便性を向上することができる。
また、コンテンツ配信業者にとっては、キャッシュサーバコンピュータの利用率の平準化が図られ、ストリーミングデータ配信要求が集中した場合に備えて各ＩＳＰに設置するキャッシュサーバコンピュータの台数を削減することができるなどの効果がある。
【図面の簡単な説明】
【図１】本発明に係るストリーミングコンテンツ配信システムの実施形態を示すシステム構成図である。
【図２】コンテンツ配信サービスを提供するために利用されるコンテンツ配信サーバコンピュータ、キャッシュサーバコンピュータとクライアントコンピュータのブロック構成図である。
【図３】コンテンツ配信サーバコンピュータ上で稼働するコンテンツ配信プログラムの構成を示す機能ブロック図である。
【図４】キャッシュサーバコンピュータ上で稼働する複製コンテンツ配信プログラムの構成を示す機能ブロック図である。
【図５】クライアントコンピュータ上で稼働するコンテンツ受信プログラムの構成を示す機能ブロック図である。
【図６】クライアントコンピュータ、コンテンツ配信サーバコンピュータ、キャッシュサーバコンピュータ間でやりとりされる命令、データの流れの例を示した図である。
【図７】コンテンツ配信プログラムを構成するコンテンツ送信コントロールプログラムが利用する、送信可能キャッシュサーバアドレスバッファの構成例である
【図８】コンテンツ配信プログラムを構成するコンテンツ管理プログラムとキャッシュ情報管理プログラムが利用する、コンテンツ管理テーブルの構成例である。
【図９】コンテンツ配信プログラムを構成するコンテンツ利用料金管理プログラムが利用する、コンテンツ利用料金管理テーブルの構成例である
【図１０】複製コンテンツ配信プログラムを構成する複製コンテンツ送信コントロールプログラムと複製コンテンツ送信プログラムが利用する、コンテンツ送信テーブルの構成例である。
【図１１】複製コンテンツ配信プログラムを構成するコンテンツ管理プログラムが利用する、複製コンテンツ管理テーブルの構成例である。
【図１２】クライアントコンピュータ上のコンテンツ受信プログラムを構成するコンテンツ格納プログラムが使用するバッファの状態例である。
【図１３】コンテンツ配信サーバコンピュータ上で稼動するコンテンツ配信プログラムを構成するコンテンツ配信コントロールプログラムの動作を示すフローチャートである。
【図１４】コンテンツ配信コントロールプログラムがコンテンツ視聴プログラムからコンテンツ受信要求を受けた時に起動されたコンテンツ配信タイマーが終了した時に実行されるコンテンツ配信コントロールプログラムの動作を示すフローチャートである。
【図１５】コンテンツ配信サーバコンピュータ上で稼動するコンテンツ配信プログラムを構成するコンテンツ送信プログラムの動作を示すフローチャートである。
【図１６】コンテンツ配信サーバコンピュータ上で稼動するコンテンツ配信プログラムを構成するコンテンツ管理プログラムの動作を示すフローチャートである。
【図１７】コンテンツ配信サーバコンピュータ上で稼動するコンテンツ配信プログラムを構成するキャッシュ情報管理プログラムの動作を示すフローチャートである。
【図１８】コンテンツ配信サーバコンピュータ上で稼動するコンテンツ配信プログラムを構成するコンテンツ利用料金管理プログラムの動作を示すフローチャートである。
【図１９】キャッシュサーバコンピュータ上で稼動する複製コンテンツ配信プログラムを構成する複製コンテンツ配信コントロールプログラムの動作を示すフローチャートである。
【図２０】キャッシュサーバコンピュータ上で稼動する複製コンテンツ配信プログラムを構成する複製コンテンツ送信プログラムの動作を示すフローチャートである。
【図２１】キャッシュサーバコンピュータ上で稼動する複製コンテンツ配信プログラムを構成するコンテンツ受信プログラムの動作を示すフローチャートである。
【図２２】キャッシュサーバコンピュータ上で稼動する複製コンテンツ配信プログラムを構成するコンテンツ管理プログラムの動作を示すフローチャートである。
【図２３】クライアントコンピュータ上で稼働するコンテンツ受信プログラムを構成するコンテンツ格納プログラムの動作を示すフローチャートである。
【図２４】クライアントコンピュータ上で稼働するコンテンツ受信プログラムを構成するコンテンツ提供プログラム本発明に係るの動作を示すフローチャートである。
【図２５】クライアントコンピュータ上で稼働するコンテンツ視聴プログラムの動作を示すフローチャートである。
【図２６】クライアントコンピュータ側でストリーミングコンテンツの分割位置を決定する場合におけるクライアントコンピュータ、コンテンツ配信サーバコンピュータ、キャッシュサーバコンピュータ間でやりとりされる命令、データの流れの例を示した図である。
【符号の説明】
１…インターネットデータセンタ、２…コンテンツ配信サーバコンピュータ、３，５…キャッシュサーバコンピュータ、４…クライアントコンピュータ、６，７，９…ＩＳＰ、８…インターネット、１０…ＩＳＰ接続、２１，３１，４１…端末装置、２２，３２，４２…外部記憶装置、２３，  ３３，  ４３…通信ポート、２２Ａ…コンテンツ配信プログラム、２２Ｂ…ストリーミングデータ、３２Ａ…複製コンテンツ配信プログラム、３２Ｂ…コンテンツキャッシュ、４２Ａ…コンテンツ視聴プログラム、４２Ｂ…コンテンツ受信プログラム。
【図１】
2004253922.tif 000003
【図２】
2004253922.tif 000004
【図３】
2004253922.tif 000005
【図４】
2004253922.tif 000006
【図５】
2004253922.tif 000007
【図６】
2004253922.tif 000008
【図７】
2004253922.tif 000009
【図８】
2004253922.tif 000010
【図９】
2004253922.tif 000011
【図１０】
2004253922.tif 000012
【図１１】
2004253922.tif 000013
【図１２】
2004253922.tif 000014
【図１３】
2004253922.tif 000015
【図１４】
2004253922.tif 000016
【図１５】
2004253922.tif 000017
【図１６】
2004253922.tif 000018
【図１７】
2004253922.tif 000019
【図１８】
2004253922.tif 000020
【図１９】
2004253922.tif 000021
【図２０】
2004253922.tif 000022
【図２１】
2004253922.tif 000023
【図２２】
2004253922.tif 000024
【図２３】
2004253922.tif 000025
【図２４】
2004253922.tif 000026
【図２５】
2004253922.tif 000027
【図２６】
2004253922.tif 000028