特許第5977838号(P5977838)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップの特許一覧 ▶ ネダーランゼ・オルガニサティ・フォーア・トゥーゲパスト−ナトゥールヴェテンシャッペリーク・オンデルゾエク・ティーエヌオーの特許一覧

特許5977838ネットワーク開始コンテンツ・ストリーミング制御
<>
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000002
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000003
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000004
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000005
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000006
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000007
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000008
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000009
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000010
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000011
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000012
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000013
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000014
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000015
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000016
  • 特許5977838-ネットワーク開始コンテンツ・ストリーミング制御 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5977838
(24)【登録日】2016年7月29日
(45)【発行日】2016年8月24日
(54)【発明の名称】ネットワーク開始コンテンツ・ストリーミング制御
(51)【国際特許分類】
   G06F 13/00 20060101AFI20160817BHJP
【FI】
   G06F13/00 540A
   G06F13/00 520D
【請求項の数】15
【全頁数】41
(21)【出願番号】特願2014-549461(P2014-549461)
(86)(22)【出願日】2012年12月27日
(65)【公表番号】特表2015-510161(P2015-510161A)
(43)【公表日】2015年4月2日
(86)【国際出願番号】EP2012076938
(87)【国際公開番号】WO2013098317
(87)【国際公開日】20130704
【審査請求日】2014年8月27日
(31)【優先権主張番号】11196049.8
(32)【優先日】2011年12月29日
(33)【優先権主張国】EP
(31)【優先権主張番号】12156141.9
(32)【優先日】2012年2月20日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】504292093
【氏名又は名称】コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ
(73)【特許権者】
【識別番号】508351406
【氏名又は名称】ネダーランゼ・オルガニサティ・フォーア・トゥーゲパスト−ナトゥールヴェテンシャッペリーク・オンデルゾエク・ティーエヌオー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】ヴァン・ブランデンブルク,レイ
(72)【発明者】
【氏名】ニーアムート,オマー・アジズ
(72)【発明者】
【氏名】ヴァン・デーベンター,マティス・オスカル
【審査官】 佐々木 洋
(56)【参考文献】
【文献】 国際公開第2011/038034(WO,A1)
【文献】 特開2007−097164(JP,A)
【文献】 国際公開第2011/059810(WO,A2)
【文献】 特表2013−520865(JP,A)
【文献】 特表2013−505612(JP,A)
【文献】 特表2015−508596(JP,A)
【文献】 Thorsten Lohmar et al.,‘Dynamic Adaptive HTTP Streaming of Live Content’,2011 IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks WoWMoM 2011,2011年 6月20日,pp. 1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
配信ノードから少なくとも1つのクライアントへのセグメント化されたコンテンツのストリーミングにおけるネットワーク開始制御を可能にする方法であって、
1つ以上のセグメント識別子と、前記1つ以上の識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成される1つ以上コンテンツ配信ノードを位置特定するための位置情報とを含む第1マニフェスト・ファイルを受信するステップと、
前記クライアントにチャネル設定情報を提供するステップと、
記提供されたチャネル設定情報に基づいて、前記少なくとも1つのクライアントと前記配信ノードに関連付けられた制御チャネル・サーバ機能との間に少なくとも1つのストリーミング制御チャネルを確立するステップであって、前記少なくとも1つのクライアントが、前記ストリーミング制御チャネルを通じて、少なくとも1つのマニフェスト・ファイル更新メッセージを受信するように構成される、ステップと
を含む、方法。
【請求項2】
請求項1記載の方法であって、少なくとも1つのマニフェスト・ファイル更新メッセージについて、前記ストリーミング制御チャネルを監視するステップを含む、方法。
【請求項3】
請求項1または2記載の方法であって、
マニフェスト・ファイル更新メッセージを検出するステップと、
前記マニフェスト・ファイル更新メッセージの検出に応答して、第2のマニフェスト・ファイルの少なくとも一部を抽出するステップと、任意に、
前記第2マニフェスト・ファイルに基づいてセグメント・ストリームまたはファイルを要求するステップと
を含む、方法。
【請求項4】
請求項1から3までのいずれか1項記載の方法において、前記チャネル設定情報の少なくとも一部が、前記第1マニフェスト・ファイルにおいて前記クライアントに提供され、前記チャネル設定情報が、前記制御チャネル・サーバ機能を前記ネットワークにおいて位置特定するためのサーバ位置情報を含む、方法。
【請求項5】
請求項1から4までのいずれか1項記載の方法において、前記マニフェスト・ファイル更新メッセージが、第2マニフェスト・ファイルの少なくとも一部を含み、または、前記マニフェスト・ファイル更新メッセージが、前記第2マニフェスト・ファイルの少なくとも一部を位置特定して要求するためのマニフェスト・ファイル位置情報を含む、方法。
【請求項6】
請求項1から5までのいずれか1項記載の方法において、前記セグメント化されたコンテンツが、ストリーミング・プロトコルに基づいて、前記少なくとも1つのクライアントに配信され、および/または前記ストリーミング制御チャネルが、WebSocketプロトコル、SIPプロトコル、XMPPプロトコルおよび/またはそれらの組み合わせに基づいて確立される、方法。
【請求項7】
配信ノードから少なくとも1つのクライアントへのセグメント化されたコンテンツのストリーミングにおけるネットワーク開始制御を可能にする方法であって、
1つ以上のセグメント識別子と、前記1つ以上の識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成される1つ以上コンテンツ配信ノードを位置特定するための位置情報とを含むマニフェスト・ファイルを、少なくとも1つのクライアントに配信するステップと、
前記1つ以上のコンテンツ配信ノードに関連付けられた制御チャネル・サーバ機能と前記少なくとも1つのクライアントとの間に、ストリーミング制御チャネルを設定する要求を受信するステップと、
前記少なくとも1つのストリーミング制御チャネルを確立するステップであって、前記制御チャネル・サーバ機能が、少なくとも1つのマニフェスト・ファイル更新メッセージを前記クライアントに送信するように構成される、ステップと
を含む、方法。
【請求項8】
請求項7記載の方法において、前記1つ以上の配信ノードの少なくとも第1部分が、前記セグメントの少なくとも第1部分を前記クライアントに配信するように構成される第1コンテンツ配信ネットワーク(CDN1)に関連付けられた第1配信ノードとして構成され、および/または前記配信ノードの少なくとも第2部分が、前記セグメントの少なくとも第2部分を前記クライアントに配信するように構成される第2コンテンツ配信ネットワーク(CDN2)に関連付けられた第2配信ノードとして構成される、方法。
【請求項9】
請求項7または8記載の方法であって、
1つ以上のネットワーク・パラメータを監視するステップと、
前記ネットワーク・パラメータに関連付けられた1つ以上の所定の条件が満たされる場合、マニフェスト・ファイル更新メッセージを生成するステップと、
前記マニフェスト・ファイル更新メッセージを前記少なくとも1つのクライアントに送信するステップと、
を含む、方法。
【請求項10】
請求項8記載の方法であって、
前記第1配信ノードおよび/または前記第2配信ノードの内1つ以上に関連付けられた過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更を判定するステップと、
前記判定された過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更に関連付けられた前記1つ以上の第1配信ノードおよび/または第2配信ノードから、少なくとも1つのセグメントを抽出するまたは抽出することを予想する1つ以上のクライアントを識別するステップと、
前記識別されたクライアントの少なくとも一部に関連付けられた1つ以上のストリーミング制御チャネルを決定するステップと、
マニフェスト・ファイル更新メッセージを前記識別されたクライアントの少なくとも一部に、前記1つ以上のストリーミング制御チャネルを通じて送信するステップと
を含む、方法。
【請求項11】
請求項10記載の方法において、前記過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更の内少なくとも一部が、第2CDN2に所属する前記第2配信ノードの少なくとも1つに関連付けられ、前記方法が、
前記第2CDN2が、過剰負荷、障害、またはネットワーク構成変更通知を前記第1CDN1に送信するステップであって、前記通知が、前記過剰負荷、障害、またはネットワーク構成変更に関連付けられた1つ以上の第2配信ノード識別子を含む、ステップを含む、方法。
【請求項12】
少なくとも1つの配信ノードから送信されたセグメント化されたコンテンツの受信を制御するためのコンテンツ処理デバイスにおける使用のためのクライアントであって、第1配信ノードが第1制御チャネル・サーバ機能に関連付けられ、前記クライアントが、
セグメント化されたコンテンツを前記少なくとも1つの配信ノードに配信する要求を送信し、
1つ以上のセグメント識別子と、前記セグメント識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成される1つ以上のコンテンツ配信ノードを位置特定するための位置情報とを含むマニフェスト・ファイルを受信し、
チャネル設定情報を供給され、
1チャネル設定情報に基づいて、前記少なくとも1つのクライアントと前記第1制御チャネル・サーバ機能との間にストリーミング制御チャネルを確立するように構成され、
前記少なくとも1つのクライアントが前記第1制御チャネル・サーバ機能から少なくとも1つのマニフェスト・ファイル更新メッセージを受信するように構成される、クライアント。
【請求項13】
少なくとも1つの配信ノードに関連付けられ、前記配信ノードから1つ以上のクライアントへのセグメント化されたコンテンツのストリーミングにおけるネットワーク開始制御を可能にするための制御チャネル・サーバ機能であって、
セグメント化されたコンテンツを前記1つ以上のクライアントに配信する少なくとも1つの要求を受信し、
1つ以上のセグメント識別子と、前記セグメント識別子に関連付けられた1つ以上のセグメントを前記1つ以上のクライアントに送信するように構成される1つ以上のコンテンツ配信ノードを位置特定するための位置情報と、チャネル設定情報とを含む少なくともマニフェスト・ファイルを生成し、
記マニフェスト・ファイルを前記1つ以上のクライアントの内少なくとも1つに送信し、
前記少なくとも1つのクライアントと前記制御チャネル・サーバ機能との間における少なくとも第1ストリーミング制御チャネルの設定に関与する
ように構成され、
前記設定が、前記チャネル設定情報に基づき、任意に、前記制御チャネル・サーバ機能が、更に、マニフェスト・ファイル更新メッセージを生成し、および/または前記メッセージを、前記第1ストリーミング制御チャネルを通じて前記クライアントに送信するように構成される、制御チャネル・サーバ機能。
【請求項14】
請求項13記載の制御チャネル・サーバ機能において、前記少なくとも1つのマニフェスト・ファイルを生成する動作が、
1つ以上の第1セグメント識別子と、第1コンテンツ配信ネットワーク(CDN1)において1つ以上のコンテンツ配信ノードを位置特定するための第1位置情報とを提供し、
2コンテンツ配信ネットワーク(CDN2)に、1つ以上の第2セグメント識別子と、前記第2コンテンツ配信ネットワーク(CDN2)において1つ以上のコンテンツ配信ノードを位置特定するための第2位置情報とを要求し、
前記1つ以上の第1セグメント識別子および第2セグメント識別子の少なくとも一部と前記第1位置情報および第2位置情報とにそれぞれ基づいて、前記マニフェスト・ファイルを生成する
動作を含む、制御チャネル・サーバ機能。
【請求項15】
コンピュータのメモリにおいて実行されると、請求項1から11までのいずれか1項記載の方法のステップを実行するソフトウェア・コード部を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツのストリーミング制御に関し、特に、セグメント化されたコンテンツのネットワーク開始ストリーミング制御を可能にする方法、セグメント化されたコンテンツの受信を制御するためにコンテンツ処理デバイスにおいて使用するためのクライアント、セグメント化されたコンテンツのストリーミングのネットワーク開始制御を可能にするための制御チャネル・サーバ機能およびデータ構造、ならびにこのような方法を使用するコンピュータ・プログラム製品に関するが、これらに限定されない。
【従来技術】
【0002】
現在、いわゆるコンテンツ・セグメント化を利用するビデオ・ストリーミング技術が拡大しつつある。コンテンツ・セグメント化では、コンテンツ・データ、例えば、ビデオ・データが論理的または仮想的に様々なセグメント・ファイルまたはストリームに分割され、こうしてセグメント化されたコンテンツを生成する。セグメント・ファイルは、コンテンツ・データを構成するファイルに関係することができ、例えば、HTTPまたはFTPというような、ファイル検索プロトコルによって抽出することができる。同様に、セグメント・ストリームは、コンテンツ・データを構成するストリームに関係することができ、ストリーミング・プロトコル、例えば、RTSP/RTPまたはHASによって抽出することができる。セグメント・ファイルまたはストリーム(以後、省略してセグメントと称することもある)は、別々にクライアントに配信することができるが、クライアントにおいて再度組み合わせられると、これらは継ぎ目のないビデオ・ストリームを供給する。
【0003】
コンテンツ・セグメント化プロセスの間、いわゆるマニフェスト・ファイル(manifest file)が生成される。マニフェスト・ファイルは、セグメントを識別し、異なるセグメントとそのセグメントを抽出することができる位置(1つまたは複数)との間の関係を記述する。セグメント化されたコンテンツは、様々な表現で供給することができ、例えば、同じコンテンツであるが、例えば、解像度、オーディオ・チャネルの数、および/またはビットレートが異なる代替バージョンで供給することができる。全ての表現は、異なる表現のセグメントを継ぎ目なく相互交換できるように、時間的に整列される。異なる表現にしたセグメント化されたコンテンツのストリーミングは、適応ストリーミングと呼ばれ、HTTP適応ストリーミング(HAS)のような適応ストリーミング・プロトコルおよび関連プロトコルを使用することができる。
【0004】
HASは、HTTPプロトコルによって、クライアントによって独立して要求されたセグメント単位でビデオをウェブ・サーバから送信することによって、(生の)ビデオ配信を可能にする。Apple社のHTTPライブ・ストリーミング(http://tools.ietf.org/html/draft-pantos-http-live-streaming-07)、Microsoft Smooth Streaming(http://www.iis.net/download/SmoothStreaming)、Adobe社のHTTP動的ストリーミング(http://www.adobe.com/products/ httpdynamicstreaming)、3GPP-DASH TS 26.247透過型端末間パケット交換ストリーミング・サービス(PSS)、HTTP上プログレッシブ・ダウンロードおよび動的適応ストリーミングおよびHTTP上MPEG動的適応ストリーミング(MPEG DASH ISO/IEC 23001−6)というような、種々の商用および標準化されたHASプロトコルが存在する。
【0005】
セグメント化されたコンテンツは、変化する帯域幅要件に動的に適応するために、例えば、高品質ビデオ・ストリームから低品質ビデオ・ストリームに切り替えることによって、使用することができる。更に、セグメント化されたコンテンツは、人気がある(ビデオ)セグメントと人気がない(ビデオ)セグメントとの間で区別することにも対処することができる。例えば、ビデオの開始に通例関連付けられるコンテンツ(トレーラーのような)の方が、終了時にあるコンテンツよりも頻繁に見られる(したがって一層ポピュラである)であろう。同様に、いくつかの使用事例でも、高品質のコンテンツ(例えば、更に解像度が高いHASセグメント)の方が高価であり、または受信デバイスからより多くを求められ、またはより多くの帯域幅が必要になるために、これよりも低ビットレートの低品質ビデオ・コンテンツ(例えば、最低解像度のHASセグメント)の方が頻繁にダウンロードされることもあり得る。以上で述べたセグメント化されたコンテンツの固有性は、コンテンツを消費者に配信するように構成されるコンテンツ配信ネットワーク(CDN)によって有利に使用することができる。CDNは、例えば、人気があり、より頻繁に要求されるコンテンツ・セグメントを当該CDNにおける多数の配信ノードに格納することができ、帯域幅の問題を低減することができ、効率的な配信が保証される。CDNの制御機能(CDNCF)は、CDN内部の位置を集中的に管理することができる。これらの位置のことを以後配信ノードと呼び、ここから、コンテンツ項目(ビデオまたはムービーのような)に関連付けられたコンテンツ・セグメントを抽出する(得る)ことができる。
【0006】
RTP/RTSPまたはRTMPのような多数の異なるストリーミング・プロトコルは、(セグメント化)コンテンツをクライアントにストリーミングすることを実現するために使用することができるが、HTTPまたはHTTPベース・ストリーミング・プロトコルがCDN内部では最も広く使用される。これらのストリーミング・プロトコルは、標準的なHTTP、即ち、ステートレスのクライアント−サーバ・プロトコルを使用して、コンテンツ・セグメントを要求してサーバから受信するが、新たな機能性(functionality)を必要とせず、セグメントを透過的にキャッシュすることができる。更に、殆どの他のストリーミング・ソリューションとは異なり、HTTPトラフィック自体は、通常ファイアウォールやネットワーク・アドレス変換器(NAT)によって自動的に阻止されない。
【0007】
更に、HTTPベース・ストリーミングは、セッションに基づくのではない。これが意味するのは、HTTPサーバは、それがサービスを提供する(serve)種々のクライアントのためにセッションを維持する必要がないということである。このように、HTTPサーバ・アーキテクチャは簡素に保つことができる。しかしながら、このセッションレスの特性(session−less nature)が、HTTPがクライアント開始プロトコル(client−initiated protocol)であるという事実と組み合わせられると、HTTPサーバ、例えば、CDNにおける配信サーバはクライアントとの通信を開始することができないことを意味する。
【0008】
クライアントがCDNに格納されたセグメントにアクセスする(ダウンロードする/抽出する)ことを可能にするために、クライアントにいわゆるマニフェスト・ファイルが供給される。マニフェスト・ファイルは、セグメントのリストを含み、各セグメントが、セグメント識別子(例えば、セグメント・ファイル名)およびセグメント位置(セグメント・ロケータ)、例えば、URLによって識別される。セグメント位置は、当該セグメントにアクセスする(抽出する)ことができるネットワーク・ノードを指し示す。個々のCDNおよび/または実施態様に依存して、既定のマニフェスト・ファイルが、CDNの1つ以上の(配信)ノードに、関連するセグメントと共に格納されてもよく、あるいはマニフェスト・ファイルが、ユーザの要求時に、CDNによって動的に生成されてもよい。
【0009】
このように、消費者(クライアント・デバイス)が特定のセグメント・コンテンツ項目(ビデオのような)を要求すると、CDNは、要求に応じて、顧客(デバイス)に対する要求されたコンテンツ・ファイルの配信を可能にするのに適した(配信)ノード上に格納されたマニフェスト・ファイルを識別することができる。あるいは、CDNは、1つ以上の配信ノードを識別する新たなマニフェスト・ファイルを生成することもできる。これらの配信ノードを併せると、要求されたコンテンツ・セグメントを顧客に配信するのに適したものになる。その後、CDNは、消費者の要求元クライアント(デバイス)に応答して、生成したマニフェスト・ファイルを送ることができる。
【0010】
コンテンツ・セグメントのストリーミングの間、CDNにおけるネットワーク構成および負荷分散が変化する可能性がある。例えば、CDNにおけるあるノードの障害または過剰負荷のために、CDNにおける1つ以上の配信ノードが、もはや、マニフェスト・ファイルにおいて識別されたコンテンツ・ファイルを配信できなくなるという状況に陥る場合もある。また、他の状況では、例えば、法外な過剰負荷の状況では、特定のコンテンツ・セグメントの特定の消費者(コンテンツ受信デバイス)に配信するタスクを、ストリーミング・プロセスの間、1つの配信ノードから当該CDNの他の配信ノードに、または他のCDNにおける配信ノードにさえも移転することによって、過剰負荷状況を防止することが必要になる場合もある。また、特定の消費者のクライアント・デバイスがその位置を変化させたときに、その時点で一層近くなった他の配信ノードに、元のノードからストリーミングを引き受けさせる方が有利であるかもしれないと想像することもできる。配信ネットワークにおいて、クライアントへのセグメントの配信における変更を必要とするまたは保証する他のイベント(即ち、ネットワークにおいて負荷均衡化メカニズムを作動させる)には、計画停電、サーバ移動(Server Migration)、CDN移動等がある。
【0011】
既知の方法では、クライアントに対するセグメント配信の変更は、様々な方法で実現することができる。場合によっては、CDNが、例えば、HTTPリディレクト方式を使用して、セグメント要求を所望の配信ノードにリディレクトすることもできる。このような方式は、しかしながら、クライアントが今後要求するあらゆるセグメントに対して別個のリディレクト応答メッセージ(単にリディレクトと称する)を要求し作動させることがあり、または要求されたセグメント毎に多数のリディレクト応答メッセージさえも要求し作動させることもあり、これによってネットワークにおけるシグナリング負荷の著しい増加を招くことになる。これは、特に、大量の消費者が同じ配信ノードに依存し、同時に同じコンテンツを要求し抽出している場合に該当する。追加のシグナリング負荷がCDNの一部または全部に押し寄せる可能性があるだけでなく、リディレクトがクライアント側において容認できないサービスの中断を引き起こす可能性もある。何故なら、個々のコンテンツ・セグメントの配信は、リディレクトの結果として突然遅延するからである。したがって、リディレクト方式は、ネットワーク構成の変化(例えば、配信ノードの障害の結果)のために、サービス中断を効果的に防止できない場合もある。例えば、コンテンツがクライアント・デバイスにおいて殆どバッファされない状況、多数のリディレクトが発生する状況、または以前の配信ノードと比較して、新たな目標配信ノードがクライアント・デバイスまでかなり長い距離のところに位置する状況においては、サービスの中断は一層顕著になる可能性がある。
【0012】
あるいは、CDNが、新たなネットワーク構成に基づいて、クライアントに対して、新たに更新されたマニフェスト・ファイルを生成することもできる。しかしながら、それ自体の本質のために、HTTPプロトコルは、サーバ側(例えば、CDN)がこのように新たに更新されたマニフェスト・ファイルのクライアントへの送信を直接または率先して開始することを許可せず、またこのような新たに更新されたマニフェスト・ファイルのクライアント要求を開始することも許可しない。クライアントが更新マニフェスト・ファイルを受信するか否かは、このような更新を要求するクライアントの先導(initiative)に完全に依存する(しかしながら、クライアントはネットワーク構成の(保留中の)変化を知ることができない)。同様に、例えば、セグメント化されたコンテンツ・ストリームが、クライアントに以前に供給されたマニフェスト・ファイルにおけるよりも、CDNによって高い表現(higher representation)で利用可能にされた場合、クライアントはこれを知る方法がなく、このような高品質ストリームから利益を得ることができない。クライアントが、例えば、周期的にマニフェスト・ファイルの更新を要求するように構成されるとしても、このような更新方式は、効果的に(素早く)臨機応変に(an on ad−hoc basis)ネットワーク構成の変化に反応し、このような変化によるサービス中断を回避することができない。このような更新頻度が、突然必要とされる構成変更と正確に一致したとしても、単なる偶然に過ぎないであろう。更に、非常に高い更新頻度を実現すると(HTTPベースの要求−応答シグナリング・メカニズムを利用する)、構成変更(例えば、クライアントへのセグメント化されたコンテンツの配信における変化)が必要とされないまたは推奨されない期間であっても、クライアントおよびネットワーク側におけるネットワークおよびプロセッサ負荷に多大なオーバーヘッド・シグナリング負荷を生ずるという欠点がある。
【0013】
したがって、クライアントへのコンテンツのストリーミング制御を改良することができる方法およびシステムが、当技術分野では求められている。
【発明の概要】
【発明が解決しようとする課題】
【0014】
本発明の目的は、先行技術において周知である欠点の少なくとも1つを低減または解消することである。
【課題を解決するための手段】
【0015】
第1の態様において、本発明は、配信ノードから、少なくとも1つのクライアント、好ましくは、MPEG DASH互換適応ストリーミング・クライアントのような、HTTP適応ストリーミング(HAS)クライアントへのセグメント化されたコンテンツのストリーミングのネットワーク開始制御を可能にする方法に関する。この方法は、第1マニフェスト・ファイルを受信するステップであって、好ましくは、前記マニフェスト・ファイルが、1つ以上のセグメントを識別するための1つ以上のセグメント識別子と、前記セグメント識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成された1つ以上のコンテンツ配信ノードを位置特定するための位置情報とを含む、ステップと、クライアントにチャネル設定情報を提供するステップと、および/または前記提供されたチャネル設定情報に基づいて、前記少なくとも1つのクライアントとネットワーク、好ましくは、前記1つ以上の配信ノードの内少なくとも1つに関連付けられた制御チャネル・サーバ機能との間に少なくとも1つのストリーミング制御チャネルを確立するステップとを含む。一実施形態では、これらのステップがクライアントによって実行されてもよい。他の実施形態では、前記少なくとも1つのクライアントが、少なくとも1つのマニフェスト・ファイル更新メッセージを前記ストリーミング制御チャネルを通じて受信するように構成されてもよい。あるいは、制御チャネルが、マニフェスト・ファイル更新の入手可能性を示す更新メッセージ以外に、セグメント・コンテンツのストリーミングに関連するサーバまたはネットワーク側イベントのメッセージを伝達するために、ネットワーク(例えば、制御チャネル・サーバ機能)によって使用されてもよい。このようなイベントは、マニフェスト・ファイル更新を通じて伝達できない情報(例えば、パラメータ)、マニフェスト・ファイル更新とは別にクライアントにこれらを伝達する方が適している(例えば、もっと速く)と考えられる情報に関係するのでもよい。このような実施形態では、クライアントが、代わりに、これら他のイベント・メッセージを受信するおよび/または処理するように構成されてもよい。他の実施形態では、前記少なくとも1つのクライアントが、マニフェスト・ファイルに基づいて、前記セグメント化ファイルの少なくとも一部にアクセスするように構成されてもよい。別の実施形態では、クライアントによるマニフェスト・ファイルの受信が、好ましくは、提供されたチャネル設定情報に基づいて、ネットワークとのストリーミング制御チャネルを設定するようにクライアントを作動させるのでもよい。ストリーミング制御チャネルは、ネットワーク、例えば、CDNが、率先してクライアントにマニフェスト・ファイル更新メッセージを供給し、マニフェスト・ファイル更新の入手可能性を示すことを可能にする。マニフェスト・ファイル更新メッセージは、クライアントが最初に(HTTP)要求をネットワークに送信することを必要とせずに、率先して制御チャネルを通じてクライアントに送信することができる。このように、クライアント上で実行されるストリーミング・プロセスは、ネットワーク構成の変化および/またはネットワークの問題、例えば、突出した過剰負荷状況またはネットワーク障害に素早く反応することができ、これによって、ネットワークは今や先験的にクライアントに知らせることが可能になる。制御チャネルを実現することによって、先行技術型のセグメント化ストリーミング・ソリューションの基礎となる既知の(HTTP)要求−応答メカニズムの限界および欠点を軽減するおよび/または克服することができる。先行技術の一部については、背景の章において詳しく論じられる。
【0016】
一実施形態では、この方法は、前記ストリーミング制御チャネルを監視して、少なくとも1つのマニフェスト・ファイル更新メッセージを求めるステップを含むのでもよい。この実施形態では、このような更新メッセージに対するクライアントによる素早い応答が保証されるように、クライアントが連続的にチャネルを監視して、ネットワークからの更新メッセージを求めるのでもよい。この監視プロセスは、例えば、ストリーミング・プロセスの間に背景プロセスとして実行されてもよい。
【0017】
一実施形態では、この方法は、マニフェスト・ファイル更新メッセージを検出するステップと、任意に、前記マニフェスト・ファイル更新メッセージに応答して、第2マニフェスト・ファイルの少なくとも一部を抽出するステップとの内少なくとも1つを含むのでもよい。他の実施形態では、この方法は、更に、前記第2マニフェスト・ファイルに基づいてセグメント・ストリームまたはファイルを要求するステップを含んでもよい。したがって、クライアントによってネットワークから受信されるマニフェスト・ファイル更新メッセージが、更新されたマニフェスト・ファイルが要求されていることおよび/または入手可能であること、ならびにこの更新されたマニフェスト・ファイルに基づいてストリーミング・プロセスを継続すべきことまたは継続してもよいことを、クライアントに知らせることができる。ここで、マニフェスト・ファイルにおける更新は、ネットワーク構成における変化および/またはネットワーク障害またはネットワーク過剰負荷というようなネットワークの問題のために、要求されるのでもよい。このように、ネットワークは、ネットワークにおけるある種のイベントに応答して、ストリーミング・プロセスの制御を効率的にそして率先して開始することができる。先行技術のHTTPベースのセグメント化ストリーミングのソリューションは、定義上クライアントからの最初の先導を必要とするHTTP要求および応答メカニズムに基づくのであり、このようなストリーミング・プロセスの主体的ネットワーク開始制御は、絶対に不可能である。
【0018】
一実施形態では、前記チャネル設定情報の少なくとも一部が、前記第1マニフェスト・ファイルにおいて前記クライアントに提供されてもよく、あるいは、別のメッセージにおいてクライアントに提供されてもよい。別の実施形態では、前記チャネル設定情報を提供する前記ステップが、前記チャネル設定情報によってクライアントを予め構成するステップを含む。一実施形態では、前記チャネル設定情報が、前記制御チャネル・サーバ機能を前記ネットワークにおいて位置特定するためのサーバ位置情報、好ましくは、少なくとも1つのURLを含んでもよい。したがって、マニフェスト・ファイルは、制御チャネルを設定するために必要とされる情報の少なくとも一部を含むのでもよい。
【0019】
一実施形態では、前記マニフェスト・ファイル更新メッセージの前記少なくとも一部が、第2マニフェスト・ファイルの少なくとも一部を含むのでもよい。この実施形態では、ストリーミング制御チャネルが、マニフェスト・ファイルにおける更新の一部を送信するために使用されてもよい。他の実施形態では、前記マニフェスト・ファイル更新メッセージが、前記第2マニフェスト・ファイルの少なくとも一部を突き止めそして要求するためのマニフェスト・ファイル位置情報、好ましくは、少なくとも1つのURLを含むのでもよい。このように、ネットワークは、簡単で効率的な方法で、更新されたマニフェスト・ファイル(またはその一部)をどこから抽出することができるかについてクライアントに通知することができる。
【0020】
一実施形態では、前記ストリーミング制御チャネルが、WebSocketプロトコルに基づいて確立されてもよい。一実施形態では、コンテンツ配信ネットワーク(CDN)エンティティ、好ましくは、制御チャネル・サーバ機能、およびクライアントが、クライアントと前記CDNエンティティとの間にストリーミング制御チャネルを設定するためにWebSocketプロトコルおよびチャネル設定情報を使用するように構成されたHTTP WebSocket APIを含むのでもよい。WebSocket接続は、通例、標準的なHTTPポート80および443を使用するので、データは容易にファイアウォールおよびNATを横断することができるが、他のポートが使用されてもよい。更に、このプロトコルは、メッセージ・オーバーヘッドが少ないので、スケーラブルなソリューションを提供する。更に、WebSocketはHTTPに基づくので、ファイアウォールの横断に伴う問題を解消するまたは少なくとも実質的に低減することができる。更に、これは他のプロトコルのトンネリングの可能性も提供する。
【0021】
一実施形態では、前記セグメント化されたコンテンツの前記少なくとも一部が、ストリーミング・プロトコル、好ましくはHTTPベース・ストリーミング・プロトコルまたはその派生物に基づいて、前記少なくとも1つのクライアントに配信される。他の実施形態では、ストリーミング制御チャネルが、SIPプロトコル、XMPPプロトコル、および/またはその組み合わせを使用して確立されてもよい。
【0022】
他の態様において、本発明は、配信ノードから少なくとも1つのクライアントへのセグメント化されたコンテンツのストリーミングのネットワーク開始制御を可能にする方法に関する。前記方法は、1つ以上のセグメント識別子と、前記1つ以上の識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成された1つ以上コンテンツ配信ノードを位置特定するための位置情報とを含む第1マニフェスト・ファイルを、少なくとも1つのクライアントに配信するステップと、前記1つ以上のコンテンツ配信ノードに関連付けられた制御チャネル・サーバ機能と前記少なくとも1つのクライアントとの間に、ストリーミング制御チャネルを設定する要求を受信するステップと、および/または前記少なくとも1つのストリーミング制御チャネルを確立するステップの内少なくとも1つを含むのでもよい。一実施形態では、前記制御チャネル・サーバ機能が、前記少なくとも1つのマニフェスト・ファイル更新メッセージを前記クライアントに送信するように構成されるのでもよい。他の実施形態では、前記クライアントが、マニフェスト・ファイルに基づいて前記セグメント化さえたコンテンツの少なくとも一部にアクセスするように構成されてもよい。他の実施形態では、マニフェスト・ファイルが、1つ以上のセグメント識別子、および/または前記1つ以上のセグメント識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成された1つ以上のコンテンツ配信ノードを位置特定するための位置情報を含むことができる。
【0023】
他の実施形態では、前記1つ以上の配信ノードの少なくとも第1部分が、前記セグメントの少なくとも第1部分を前記クライアントに配信するように構成された第1コンテンツ配信ネットワークに関連付けられた第1配信ノードとして構成されてもよく、および/または前記配信ノードの少なくとも第2部分が、前記セグメントの少なくとも第2部分を前記クライアントに配信するように構成された第2コンテンツ配信ネットワーク(CDN2)に関連付けられた第2配信ノードとして構成されてもよい。この実施形態では、セグメントの少なくとも一部が、第2の別のCDNによって、クライアントに配信される。
【0024】
一実施形態では、前記方法が、1つ以上のネットワーク・パラメータ、好ましくは、前記1つ以上の配信ノードに関連付けられた過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更に関連付けられた1つ以上のネットワーク・パラメータの内少なくとも1つを監視するステップと、前記ネットワーク・パラメータに関連付けられた1つ以上の所定の条件が満たされる場合、マニフェスト・ファイル更新メッセージを生成するステップと、任意に、前記マニフェスト・ファイル更新メッセージを前記少なくとも1つのクライアントに送信するステップを含むことができる。
【0025】
一実施形態では、前記方法が、前記第1配信ノードおよび/または第2配信ノードの内1つ以上に関連付けられた過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更を判定するステップと、前記判定された過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更に関連付けられた前記1つ以上の第1配信ノードおよび/または第2配信ノードから、少なくとも1つのセグメントを抽出するかまたは抽出することを予想する1つ以上のクライアントを識別するステップと、前記識別されたクライアントの少なくとも一部に関連付けられた1つ以上のストリーミング制御チャネルを決定するステップと、任意に、マニフェスト・ファイル更新メッセージを前記識別されたクライアントの少なくとも一部に、前記1つ以上のストリーミング制御チャネルを通じて送信するステップとを含むのでもよい。
【0026】
一実施形態では、前記過剰負荷、法外な過剰負荷、障害、またはネットワーク構成変更の内前記少なくとも一部が、第2CDNに所属する前記第2配信ノードの少なくとも1つと関連付けられるのでもよい。他の実施形態では、前記方法が、前記第2CDNが、過剰負荷通知、障害通知、またはネットワーク構成変更通知を前記第1CDNに送信するステップを含むのでもよく、前記過剰負荷または障害通知が、前記過剰負荷または障害に関連付けられた1つ以上の第2配信ノード識別子を含む。
【0027】
一実施形態では、前記方法が、クライアント配信情報を第1CDNデータベースに格納するステップを含み、前記クライアント配信情報が、ストリーミング制御チャネル識別子、クライアント識別子、好ましくは前記クライアントに関連付けられたIPアドレス、前記マニフェスト・ファイルにおいて参照された1つ以上のセグメントをホストする配信ノードに関連付けられた配信ノード識別子、コンテンツ配信ネットワーク識別子、および/またはマニフェスト・ファイル識別子の内少なくとも1つを含むのでもよい。
【0028】
更に他の態様では、本発明は、少なくとも第1および第2コンテンツ配信ネットワーク(CDN1、CDN2)に関連付けられたセグメント化されたコンテンツの1つ以上のクライアントへのストリーミングのネットワーク開始制御を可能する方法に関することもできる。前記第1CDNは、第1制御チャネル・サーバ機能に関連付けられ、前記第2CDNは、第2制御チャネル・サーバ機能に関連付けられる。前記方法は、セグメント化されたコンテンツに関連付けられた第1マニフェスト・ファイルを生成するステップであって、前記第1マニフェスト・ファイルが、1つ以上のセグメントと、前記第1CDNに関連付けられた1つ以上のコンテンツ配信ノードを位置特定するための位置情報とを含む、ステップと、および/または前記第2制御チャネル・サーバ機能に、前記セグメント化されたコンテンツに関連付けられた第2マニフェスト・ファイルを要求するステップであって、前記第2マニフェスト・ファイルが、1つ以上のセグメント、および/または前記第2CDNと関連付けられた1つ以上のコンテンツ配信ノードを位置特定するための位置情報を含むのでもよい、ステップと、前記第1および第2マニフェスト・ファイル、ならびに、任意に、チャネル設定情報に基づいて、更に他のマニフェスト・ファイルを生成するステップと、前記チャネル設定情報に基づいて、前記少なくとも1つのクライアントと前記第1制御チャネル・サーバ機能との間に少なくとも第1ストリーミング制御チャネルを確立するステップであって、前記第1制御チャネル・サーバ機能が、マニフェスト・ファイル更新メッセージを生成し、前記メッセージを前記ストリーミング制御チャネルを通じて前記クライアントに送信するように構成されてもよい、ステップを含むことができる。
【0029】
更に他の態様では、本発明は、コンテンツ処理デバイスにおける使用のためのクライアントに関することもできる。前記クライアントは、セグメント化されたコンテンツを配信する要求を前記サーバに送信し、1つ以上のセグメント識別子と、前記セグメント識別子に関連付けられた1つ以上のセグメントを前記少なくとも1つのクライアントに送信するように構成された1つ以上のコンテンツ配信ノードを位置特定するための位置情報とを含むマニフェスト・ファイルを受信し、第1チャネル設定情報を供給され、および/または前記提供された第1チャネル設定情報に基づいて、前記少なくとも1つのクライアントと前記第1CDNに関連付けられた前記制御チャネル・サーバ機能との間に第1ストリーミング制御チャネルを確立するように構成されるのでもよい。一実施形態では、前記少なくとも1つのクライアントが、前記第1制御チャネル・サーバ機能から少なくとも1つのマニフェスト・ファイル更新メッセージを受信するように構成される。
【0030】
一態様において、本発明は、少なくとも1つの配信ノードに関連付けられ、前記配信ノードから1つ以上のクライアントへのセグメント化されたコンテンツのストリーミングのネットワーク開始制御を可能にするための制御チャネル・サーバ機能に関することもできる。前記制御チャネル・サーバ機能は、セグメント化されたコンテンツを前記1つ以上のクライアントに配信する少なくとも1つの要求を受信するステップと、1つ以上のセグメント識別子と、前記1つ以上のセグメント識別子に関連付けられた1つ以上のセグメントを前記クライアントに送信するように構成された1つ以上のコンテンツ配信ノードを位置特定するための位置情報と、任意に、チャネル設定情報とを含む少なくとも1つのマニフェスト・ファイルを生成するステップと、前記少なくとも1つのマニフェスト・ファイルを前記クライアントに送信するステップと、前記チャネル設定情報に基づいて、前記少なくとも1つのクライアントと前記制御チャネル・サーバ機能との間における少なくとも1つのストリーミング制御チャネルの設定に関与するステップの内少なくとも1つのために構成されてもよい。一実施形態では、前記制御チャネル・サーバ機能が、更に、マニフェスト・ファイル更新メッセージを生成し、前記メッセージを前記第1ストリーミング制御チャネルを通じて前記クライアントに送信するように構成することができる
一実施形態では、前記少なくとも1つのマニフェスト・ファイルを生成する動作が、1つ以上の第1セグメント識別子と、第1コンテンツ配信ネットワーク(CDN1)において1つ以上のコンテンツ配信ノードを位置特定するための第1位置情報とを提供し、第2コンテンツ配信ネットワークに、1つ以上の第2セグメント識別子と、前記第2コンテンツ配信ネットワーク(CDN2)において1つ以上のコンテンツ配信ノードを位置特定するための第2位置情報とを要求し、前記1つ以上の第1および第2セグメント識別子の少なくとも一部と第1および第2位置情報とにそれぞれ基づいて、前記マニフェスト・ファイルを生成する動作を含むことができる。
【0031】
他の実施形態では、前記制御チャネル・サーバ機能が、更に、過剰負荷通知を前記第2コンテンツ配信ネットワークから受信し、前記過剰負荷通知に応答して、マニフェスト・ファイル更新メッセージを前記第1ストリーミング制御チャネルを通じて前記クライアントに送るように構成することができる。
【0032】
更に他の態様では、本発明は、前述のようにクライアントにおける使用のための、データ構造、好ましくは、マニフェスト・ファイルに関することもできる。前記データ構造は、1つ以上のセグメント識別子と、前記1つ以上のセグメント識別子に関連付けられた1つ以上のセグメントを前記クライアントに送信するように構成された1つ以上のコンテンツ配信ノードを位置特定するための位置情報とを含むのでもよい。更に、前記データ構造は、前記チャネル設定情報の少なくとも一部を含む。一実施形態では、前記チャネル設定情報が、前記クライアントとストリーミング制御チャネルを設定するプロセスを開始するように構成された制御チャネル・サーバ機能を含むネットワーク・ノードに関連付けられた位置情報、好ましくは1つ以上のURLを含むことができる。
【0033】
また、本発明は、ソフトウェア・コード部分を含むコンピュータ・プログラム製品にも関し、コンピュータのメモリにおいて実行されると、以上で説明した方法ステップのいずれかに従って、方法ステップを実行する。
【0034】
添付図面を参照して、本発明について更に例示する。添付図面は、本発明による実施形態を模式的に示す。尚、本発明は、これらの具体的な実施形態には全く限定されないことは言うまでもない。
【図面の簡単な説明】
【0035】
図1図1は、クライアントとサーバとの間における従来のHASセッションの全体像を示す。
図2図2は、本発明の一実施形態によるクライアントとサーバとの間におけるプロトコル・フローを示す。
図3図3は、本発明の一実施形態によるクライアント側プロセス・フローを示す。
図4図4は、本発明の一実施形態によるサーバ側プロセス・フローを示す。
図5A図5Aは、本発明の種々の実施形態によるクライアントとサーバとの間におけるプロトコル・フローを示す。
図5B図5Bは、本発明の種々の実施形態によるクライアントとサーバとの間におけるプロトコル・フローを示す。
図5C図5Cは、本発明の種々の実施形態によるクライアントとサーバとの間におけるプロトコル・フローを示す。
図6図6は、本発明の一実施形態によるコンテンツ・ストリーミング・システムを示す。
図7図7は、本発明の一実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。
図8図8は、本発明の一実施形態による配信連続ノード(DCN)機能に関連付けられたプロセス・フローを示す。
図9図9は、本発明の他の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。
図10図10は、本発明の更に他の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。
図11図11は、本発明の別の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。
図12図12は、本発明の一実施形態によるコンテンツ・ストリーミング・システムを示す。
図13図13は、本発明の更に他の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。
図14図14は、本発明の一実施形態によるマニフェスト・ファイルを示す。
【発明を実施するための形態】
【0036】
図1は、端末におけるクライアント130とメディア・サーバ132との間における従来のHASプロトコル・フローの全体像を示す。クライアント130およびサーバ132は、応答および要求プロトコル・メッセージ134,136を含むHASストリーミング・プロトコルのような、ストリーミング・プロトコルによって通信するように構成される。ここでは、端末は、一般に、コンテンツ処理デバイス、例えば、電子タブレット、スマート・フォン、ノートブック、メディア・プレーヤ等というような、(移動体)コンテンツ・プレイ・アウト・デバイスに関係することができる。実施形態では、端末が、コンテンツ・プレイ・アウト・プレーヤによる今後の消費のためにコンテンツを処理し一時的に格納するように構成されたセット・トップ・ボックスまたはコンテンツ記憶デバイスであってもよい場合もある。同様に、メディア・サーバは、コンテンツ提供者またはコンテンツ配信ネットワーク(CDN)の一部であってもよく、またはこれに関連付けられてもよい。
【0037】
このプロトコル・フローは、ユーザがウェブサイト上であるビデオに対するリンクを選択することによって開始することができ(ステップ102)、ULRがマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。マニフェスト・ファイルは、セグメント識別子、例えば、セグメント・ファイル名を含む空間データ構造に関係することができ、セグメント化ビデオ・ファイルおよび1つ以上のネットワーク・ノードを位置特定するための関連する位置情報、例えば、URLを構築する。ネットワーク・ノードは、セグメントをクライアント(配信ノード)に配信するように、または代わりにネットワーク・ノードに配信するように構成される。ネットワーク・ノードは、識別されたセグメントを配信することができると考えられる1つ以上のネットワーク・ノードを決定することができる。更に他の実施形態では、位置情報は、ネットワーク・ノード上の位置も指し示すことができる。例えば、URL関連セグメントは、1つの配信ノードにおいて定められた異なるフォルダを指し示すことができる。
【0038】
好ましくはマニフェスト・ファイル内に含まれる、セグメントに対する参照は、セグメント識別子、および/または当該セグメントを位置特定するためにセグメント識別子に関連付けられた位置情報を含むことができる。
【0039】
更に、マニフェスト・ファイルは、セグメント間の時間的および/または空間的関係を記述する情報も含むことができる。このようなファイルは、特定のファイル名拡張子、例えば、.mf、.xml、および.n3u8を使用して格納および識別することができる。次いで、クライアントはHTTP GET要求を送り、サーバからマニフェスト・ファイルを得ることができる(ステップ104)。応答して、サーバはマニフェスト・ファイルをクライアントに送ることによって応答することができる(ステップ106)。その後、クライアントはマニフェスト・ファイルを解析して、要求されたビデオに関連付けられたセグメントの位置を得る(ステップ108)。
【0040】
クライアントは、ビデオの第1セグメントを、マニフェスト・ファイルに記載された位置に要求し、サーバは、要求されたセグメントをクライアントに送ることによって、この要求に応答する(ステップ110,112)。マニフェスト・ファイルに基づいて、様々なセグメントを抽出することができる(ステップ114,116)。次いで、ある時間量の後、クライアントは、マニフェスト・ファイルを更新する時間であると判断することができ(例えば、既定のタイマが満了したこと、またはクライアントがライブ・ストリームにおいてマニフェスト・ファイルの終端にほぼ達したことに基づいて)、最初のマニフェストを取得した同じ位置に要求を送ることができる(ステップ118)。その後、更新されたマニフェスト・ファイルがクライアントに送られ(ステップ120)、更新されたマニフェスト・ファイルの解析を開始することによって、再度クライアントによって処理することができる。
【0041】
先に既に論じたように、このような従来のHASコンテンツ・ストリーミング・システムは、クライアントとサーバとの間におけるストリーミング・プロセスのサーバに基づく制御を許可しない。これは、予測が難しくストリーミング構成の直接適応化が要求される場当たり的状況における制御も許可しない。
【0042】
図2は、本発明の一実施形態によるクライアントとサーバとの間におけるプロトコル・フローを示す。具体的には、図2は、コンテンツをメディア・サーバ232からクライアント230にストリーミングするためのHTTP適応ストリーミング(HAS)プロトコルのような、ストリーミング・プロトコルに関連付けられたプロトコル・フローを示す。
【0043】
クライアントは、ビデオ・プレイ・アウト機能246によるプレイ・アウトのためにストリームを処理するストリーミング・クライアント機能248と、制御チャネル・クライアント機能244(CCCF)とを含むことができる。同様に、メディア・サーバは、ストリーミング・クライアント機能248にメディアをストリーミングするストリーミング・サーバ機能242を含むことができる。メディア・サーバは、更に、サーバ232内にまたはこれに関連付けられた制御チャネル・サーバ機能(CCSF)、例えば、HAS制御チャネル・サーバ機能234を含むことができる。HAS制御チャネル・サーバ機能234は、CCSFとCCCF244との間におけるストリーミング制御チャネル236の確立を開始するように構成される。ストリーミング制御チャネルは、クライアントとサーバとの間においてストリーミング制御情報、特に、セグメント化されたコンテンツ238のクライアントへのストリーミングの間、サーバから発信してクライアントへのストリーミング制御情報を交換するために使用することができる。
【0044】
ここでは、本プロセスは図1と同様に開始することができる。即ち、ユーザが、ウェブサイト上においてビデオに対するリンクをクリックし(ステップ200)、URLがマニフェスト・ファイルを指し示す(例えば、リディレクトによって)。クライアントは、サーバからマニフェスト・ファイルを得るためにHTTP GET要求を送ることができ、サーバは、マニフェスト・ファイル(この場合、XMLファイル)をクライアントに送ることによって、それに応答する(ステップ202,204)。その後、クライアントはマニフェスト・ファイルを解析して、要求されたコンテンツ・ストリームを構成するセグメントの位置を得る(ステップ206)。この特定的な事例では、しかしながら、サーバにおけるCCSFが、チャネル設定情報をマニフェスト・ファイルに挿入するように構成され、これによって、クライアントにおけるCCCFおよびサーバにおけるCCSFがストリーミング制御チャネルを設定することができる。
【0045】
マニフェスト・ファイルに埋め込まれたチャネル設定情報に基づいて、クライアントにおけるCCCFは、例えば、サーバ−クライアント・ストリーミング制御チャネルを設定するために、チャネル設定要求をサーバにおけるCCSFに送る(ステップ208)。一実施形態では、CCCFおよびCCSFは、WebSocketプロトコルおよびチャネル設定情報を使用してクライアントとサーバとの間にストリーミング制御チャネルを設定するように構成されたHTTP WebSocketAPIを含むことができる。WebSocket接続は、通例、データが容易にファイアウォールおよびNATを移る(transfer)ように、標準的なHTTPポート80および443を使用するが、他のポートを使用してもよい。
【0046】
WebSocketプロトコルの使用には、スケーラビリティに対する少ないメッセージ・オーバーヘッド、プロトコル収束およびファイアウォール横断のためのHTTPの使用、ならびに他のプロトコルのトンネリングの可能性というような、CDNおよびHASのコンテキスト内において様々な利点がある。他の実施形態では、セッション開始プロトコル(SIP)(http://tools.ietf.org/html/rfc3261)が使用され、この場合、クライアントはSIPユーザ・エージェントを構成することができ、サーバはSIPアプリケーション・サーバとなる。
【0047】
更に他の実施形態では、拡張可能メッセージングおよびプレゼンス・プロトコル(XMPP)(http://www.ietf.org/rfc/ rfc3920.txt)が使用され、この場合、クライアントはXMPPクライアントを構成することができ、サーバはXMPPサーバを構成する。SIPおよびXMPPプロトコル・メッセージは双方共、draft-ibc-rtcweb-sip-websocket-00 および draft-moffitt-xmpp-over-websocket-00にしたがって、WebSocketをくぐり抜けることができる。異なるプロトコルについての実施形態の更に詳細な説明は、図5Aから図5Cに設けられる。
【0048】
ストリーミング制御チャネルの設定の間、チャネル・パラメータをCCCFとCCSFとの間で交換することができる(ステップ210)。更に、クライアントから発信するメッセージを処理する(handle)ために、CCSFは専用チャネル処理プロセス(スレッド)を作成することができる(ステップ212)。一旦ストリーミング制御チャネルが確立されたなら(214)、クライアントは、マニフェスト・ファイルにおいて特定されたストリーミング・セグメントの処理を開始することができる。ストリーミング・プロセスは、HASタイプのストリーミング・プロトコルに基づくことができ、HTTP GET要求から開始することができる。HTTP GET要求は、第1セグメントsegment_low-1.aviに関連付けられたURLを含む(ステップ216)。一旦第1セグメントとの配信がHTTP 200 OK応答によって確認されたなら(ステップ218)、クライアントは後続のセグメント segment_high−2.aviを要求することができる(ステップ220,222)。
【0049】
次いで、メディア・サーバにおけるCCSFは、クライアントがそのマニフェスト・ファイルを更新することが必要であると判断することができる。例えば、CCSFが可能なサーバの過剰負荷または障害を検出するかもしれない。したがって、ストリーミング制御チャネルを通じて、任意に新たなマニフェスト・ファイルを指し示すURLを含むマニフェスト更新信号を送ることができる(ステップ224)。マニフェスト・ファイル更新信号を受信すると、CCCFは新たなマニフェスト・ファイルを要求することができる。新たなマニフェスト・ファイルの受信時に、クライアントは新たなマニフェスト(図示せず)に基づいてストリーミングを継続することもできる。
【0050】
一実施形態では、マニフェスト・ファイルにおいてチャネル設定情報を転送する代わりに、チャネル設定情報が端末に予めインストールされてもよく、または別の通信チャネルを通じて他の(ネットワーク)ソースから抽出されてもよい。その場合、クライアントがマニフェスト・ファイルを受信すると、図2のステップ208から214を参照して説明したように、ストリーミング制御チャネルを確立するために、チャネル設定情報を抽出するストリーミング制御チャネル・クライアント機能を作動させる。
【0051】
他の実施形態では、メディア・サーバがセグメントを多数のクライアントにストリーミングするように構成されてもよく、図2を参照して説明したように、ネットワーク開始、例えば、サーバ開始制御を可能にするために、各クライアントにはそれ自体のストリーミング制御チャネルが関連付けられる。このように、サーバは、ネットワーク・パラメータ、例えば、ネットワーク・トラフィックまたはサーバの処理負荷に基づいて、セグメント化されたコンテンツの多数のクライアントに対するストリーミングを制御することができる。例えば、一特定実施形態では、異なるクライアントが異なる登録、例えば、特別登録および通常登録に関連付けられてもよい。メディア・サーバに関連付けられた負荷均衡化機能240が負荷増大を検出すると、CCSFにマニフェスト・ファイル更新を開始するように通知することによって、先験的にその負荷を低減することができ、通常クライアント(の少なくとも一部)には、新たなマニフェスト・ファイルが供給され、これらのクライアントに、低レートおよび/または低(より低い)品質に関連付けられたセグメントを要求させる。
【0052】
マニフェスト・ファイル更新は、種々の方法で実現することができる。一実施形態では、更新されるマニフェスト・ファイルの全体または少なくとも一部が、ストリーミング制御チャネルを通じてクライアントに送られてもよい。別の実施形態では、CCSFがマニフェスト更新トリガをクライアントに、具体的には、CCCFに送るのでもよく、CCCFは、マニフェスト・ファイル更新トリガにおいて識別されるように、更新されたまたは新たなマニフェスト・ファイルを(デフォルト)位置、例えば、元のメディア・サーバ、または新たな位置、例えば、別のメディア・サーバに要求することによって応答する(例えば、URLを使用する)。
【0053】
図3は、本発明の一実施形態によるクライアント側プロセス・フローを示す。具体的には、図3は、セグメントの抽出およびプレイバックのため、ならびに、例えば、図2に示したようなストリーミング制御チャネルを通じてストリーミングのサーバ開始制御を行うためにクライアント上で実行されるプロセスに関連付けられたプロセスを示す。このプロセスは、クライアントが特定のセグメント化されたコンテンツ項目に関連付けられたマニフェスト・ファイルを要求することから開始することができる(ステップ300)。マニフェスト・ファイルは、セグメント位置だけでなく、ストリーミング制御チャネルを設定するためにクライアントによって使用されるチャネル設定情報(WebSocket URL、および例えば、WebSocketサブプロトコル、WebSocketバージョン等を示す可能な何らかのプロトコル)も含むことができる。マニフェスト・ファイルをサーバから受信すると、クライアントはこのマニフェスト・ファイルを解析し(ステップ301および302)、クライアントにおいて少なくとも2つの別のプロセス/スレッド、即ち、セグメントの抽出およびセグメントのプレイバックを処理するためにクライアントにおいてメディア・ストリーミング・クライアント機能によって実行される第1プロセスと、ストリーミング制御チャネルを操作するためにクライアントにおいてCCCFによって実行される第2プロセスとを開始することができる。クライアントは、マニフェスト・ファイルに記載されたセグメント位置を使用して、セグメントを周期的に抽出し、ビデオの終了が検出されるまで(ステップ304)これらを生成する(ステップ303)。更に、クライアントは、マニフェスト・ファイルに埋め込まれたチャネル設定情報を使用して、マニフェスト・ファイルに記載されたURLに基づいてサーバにチャネル設定要求を送り(ステップ305)、クライアント、具体的には、クライアントにおけるCCCFとサーバ、具体的には、サーバに関連付けられたCCSFとの間にストリーミング制御チャネルを確立する(ステップ306)ことができる。次いで、セグメントのストリーミングおよびプレイ・アウトの間、CCCFは、サーバからの着信メッセージを求めて、ストリーミング制御チャネルを聴取する(ステップ307)。また、ストリーミング制御チャネルは、クライアントからサーバへのデータ送信にも使用することができる。
【0054】
サーバからの着信メッセージの場合、CCCFはマニフェスト更新信号(マニフェスト更新トリガ)が受信されたか否かチェックすることができる(ステップ308)。このようなマニフェスト更新信号が受信されていた場合、CCCFは更新マニフェスト(元のマニフェストを受信した位置から、またはマニフェスト更新トリガ・メッセージに指定されるURLから)を要求することができる(ステップ309)。更新マニフェスト・ファイルを受信した後、クライアントはそれを解析し(ステップ302参照)、セグメント識別子のリストおよび関連する位置情報を更新する。
【0055】
図4は、本発明の一実施形態によるサーバ側プロセス・フローを示す。具体的には、図4は、セグメントをクライアントにストリーミングするため、そしてストリーミング制御チャネルを使用してストリーミングのネットワーク開始制御を行うためにメディア・サーバ上で実行されるプロセスのプロセス・フローを示す。このプロセスは、例えば、図2を参照して説明したように、メディア・サーバ上にホストされた種々の機能、即ち、ストリーミング・サーバ機能、制御チャネル・サーバ機能、および、任意に、負荷均衡化機能によって実行することができる。これらの機能は、サーバ負荷を監視し、クライアントからのセグメント要求に応答し、ストリーミング制御チャネルをクライアントと共に設定し維持するために1つ以上のプロセスを実行するように構成することができる。
【0056】
例えば、第1プロセスがメディア・サーバにおけるCCSFによって実行され、クライアントによってサーバに送られるチャネル設定を求める要求の受信を監視することができる(ステップ402)。このような要求が受信された場合、CCSFはストリーミング制御チャネルを設定し、チャネル処理プロセスを開始することができ、たとえば、クライアントから発信した情報またはクライアントに送られる情報が適正に処理される。第2プロセスがメディア・ストリーミング・サーバ機能によって実行され、クライアントからのマニフェスト・ファイルおよび/またはセグメントを求める要求の受信を処理することができる(ステップ400)。このような要求が受信された場合、サーバは要求された情報(セグメントおよび/またはマニフェスト・ファイル)を要求元のクライアントに送ることができる(ステップ401)。第3プロセスは、ネットワーク負荷情報および/またはサーバ負荷情報を監視する負荷均衡化機能に関係することができる。負荷が一定の(最大)閾値に達したまたは近づいた場合、マニフェスト・ファイル更新のために1つ以上のクライアントを選択するように、CCSFに通知することができる(ステップ405)。応答して、CCSFはマニフェスト更新トリガを、選択されたクライアントに送ることができる(ステップ406)。
【0057】
例えば、一実施形態では、サーバに関連付けられた負荷均衡機能は、サーバの処理負荷を低減するために、マニフェスト・ファイル更新を開始するように、CCSFに通知することができる。更新されたマニフェスト・ファイルは、クライアントに、品質が低い方のセグメントに基づいてストリーミングを継続することを命令する。他の実施形態では、CCSFは、サーバの過剰負荷またはサーバ障害を検出し、応答して、1つ以上のクライアントに他のネットワーク・サーバからセグメントを抽出することを命令するために、マニフェスト・ファイル更新を開始することができる。
【0058】
マニフェスト更新プロセスは、様々な方法で実現することができる。一実施形態では、更新されたマニフェスト・ファイルは、CCSFによって、ストリーミング制御チャネルを通じてクライアントにおけるCCCFに送られるのでもよい。他の実施形態では、CCSFがマニフェスト・ファイル更新トリガをクライアントにおけるCCCFに送るのでもよく、応答して、クライアントは更新されたまたは新しいマニフェスト・ファイルをメディア・サーバに要求する。別の実施形態では、マニフェスト・ファイル更新トリガが、別のメディア・サーバの位置情報、例えば、URLを含んでもよく、クライアントが、この位置情報に基づいて、更新されたまたは新しいマニフェスト・ファイルをこの別のメディア・サーバに要求することができる(ステップ406)。
【0059】
図5Aから図5Cは、ネットワーク開始ストリーミング制御を可能にするストリーミング制御チャネルを確立するための種々の非限定的なプロトコル・フローを示す。具体的には、図5Aは、図2と同様のメッセージ・フローを示し、ここでは、HTTP WebSocketプロトコルが、ストリーミング制御チャネルを設定するために使用される。このプロセスは、ユーザが、ウェブサイト上でビデオに対するリンクを選択することから開始することができ(ステップ500a)、URLがマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。応答して、クライアントは、マニフェスト・ファイルをサーバから得るために、HTTP GET要求を送ることができ(ステップ501a)、マニフェスト・ファイルはサーバによってクライアントに(この場合、XMLファイルの形態で)送られる(ステップ502a)。
【0060】
クライアントは、マニフェスト・ファイルを解析して、ビデオを構築するセグメントの少なくとも一部の位置を得て(ステップ503a)、マニフェスト・ファイルに埋め込まれた情報を使用して、WebSocket設定要求 (HTTP GET WS ws://...)をサーバに送ることができる(ステップ504a)。強制WebSocketハンドシェーク(WS draft draft−ietf−hybi−thewebsocketprotocol−17に詳細に説明されるように)を実行した後、サーバは、HTTP 101 SWITCHING PROTOCOLSメッセージを使用して、クライアントからのWebSocket要求を受け入れることができる(ステップ505a)。次いで、着信メッセージを処理してWebSocketを作成するために、サーバは専用プロセス/スレッドを作成し(ステップ506a)、これによってWebSocketストリーミング制御チャネルを確立する。このWebSocketストリーミング制御チャネルは、サーバ開始ストリーミング制御を行うために使用することができる(ステップ507a)。
【0061】
WebSocketプロトコルは、ベスト・エフォート・インターネット接続における全二重双方向通信に対応する(allow for)。サーバおよびクライアント双方がいずれの時点でも、ストリーミング制御チャネル上で同時にでもデータを送ることができる。HTTPヘッダのオーバーヘッドがないデータのみが送られることによって、帯域幅を劇的に広げる。更に、WebSocketはHTTPベース・プロトコルであるので、通常、ファイアウォールまたはネットワーク・アドレス変換器(NAT)によって自動的に阻止されない。
【0062】
図5Bは、図2と同様に、SIPプロトコルを使用してストリーミング制御チャネルを設定するためのメッセージ・フローを示す。このプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択することから開始することができる(ステップ500b)。応答して、クライアントは、HTTP GET要求を送って、マニフェスト・ファイルをサーバから得ることができ(ステップ501b)、URLがマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。マニフェスト・ファイルは、サーバによって(この場合、XMLファイルの形態で)クライアントに送られる(ステップ502b)。
【0063】
クライアントは、マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置を得て(ステップ503b)、マニフェスト・ファイルに埋め込まれた情報を使用して、SIP INVITEメッセージをSIPアプリケーション・サーバに送ることができる(ステップ504b)。この情報は、セッション記述プロトコル・メッセージ[http://www.ietf.org/rfc/rfc4566.txt]としてフォーマットすることができる。サーバは、INVITEメッセージを受け入れ、SIP 200 OKメッセージで応答する(ステップ505b)。次いで、着信メッセージを処理してSIPセッションを作成するために、サーバは専用プロセス/スレッドを作成し(ステップ506b)、これによってSIPベース・ストリーミング制御チャネルを確立する。このSIPベース・ストリーミング制御チャネルは、サーバ開始ストリーミング制御を行うために使用することができる(ステップ507b)。
【0064】
図5Cは、図2と同様に、XMPPプロトコルを使用してストリーミング制御チャネルを設定するためのメッセージ・フローを示す。このプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択することから開始することができ(ステップ500c)、URLがマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。応答して、クライアントは、HTTP GET要求を送って、マニフェスト・ファイルをサーバから得ることができる(ステップ501c)。マニフェスト・ファイルは、サーバによって(この場合、XMLファイルの形態で)クライアントに送られる(ステップ502c)。
【0065】
クライアントは、マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置を得て(ステップ503c)、XMPPサーバのJabber Identifier(JID)のようなマニフェスト・ファイルに埋め込まれた情報を使用して、XMPPセッション要求メッセージを、1つ以上のXML Stanzasの形態でXMLストリーム上でXMPPサーバに送ることができる(ステップ505c)。XMPPサーバは、このセッション要求メッセージを受け入れて、セッション作成結果メッセージで応答する(ステップ506c)。次いで、 着信メッセージを処理してXMPPセッションを作成するために、サーバは専用プロセス/スレッドを作成し(ステップ507c)、これによってXMPPベース・ストリーミング制御チャネルを確立する。XMPPベース・ストリーミング制御チャネルは、サーバ開始ストリーミング制御を行うために使用することができる(ステップ508c)。
【0066】
図6は、本発明の一実施形態にしたがって、セグメント化されたコンテンツをクライアントに配信するコンテンツ・ストリーミング・システム600を示す。具体的には、図6はCDNを含むコンテンツ配信システムのアーキテクチャ全体像を示す。CDNは、CDNにおける1つ以上の配信ノードと1つ以上のクライアントとの間においてネットワーク開始制御ストリーミング・プロセスを設けるように構成される。ネットワーク開始制御は、図2から図5を参照して説明したストリーミング制御チャネル機能性に基づいて実現することができる。
【0067】
この実施形態では、クライアント配信システムは、少なくとも1つのコンテンツ配信ネットワーク(CDN)602、トランスポート・ネットワーク600を介して1つ以上のクライアント603に結合されたコンテンツ・ソース(CS)601を含むことができる。コンテンツ・ソースは、コンテンツ提供システム(CPS)、コンテンツ準備システム、または他のCDNに関係することができる。CPSは、コンテンツ、例えば、オーディオ項目またはビデオ・タイトルを顧客に提供するように構成することができ、顧客は、クライアントを使用して、コンテンツを購入し受信することができる。
【0068】
クライアントには、端末、即ち、コンテンツ処理デバイス、例えば、電子タブレット、スマート・フォン、ノートブック、メディア・プレーヤ等というような、(移動体)コンテンツ・プレイ・アウト・デバイス上で実行するソフトウェア・プログラムを実装することができる。実施形態では、端末がコンテンツ・プレイ・アウト・プレーヤによる今後の消費のためにコンテンツを処理し一時的に格納するように構成されたセット・トップ・ボックスまたはコンテンツ記憶デバイスであってもよい場合もある。
【0069】
CDNは、配信ノード(DN1,DN2)611,612、および少なくとも1つの中央CDNノード(CCN)610を含むことができる。各配信ノードは、コントローラ630、631、ならびにコンテンツを格納およびバッファリングするキャッシュ632、633を含む、またはこれらと関連付けることができる。各CCNは、外部ソース、例えば、コンテンツ提供者または他のCDNからのコンテンツの収集を制御する収集機能(またはコンテンツ起点ノード、COF(content origin function)620、コンテンツがCDN内部のどこに格納されているかについての情報を維持するコンテンツ位置データベース622、およびコンテンツの1つ以上のコピーの配信ノードに対する配給を制御し、更にクライアントをしかるべき配信ノードにリディレクトする(要求ルーティングとしても知られるプロセス)CDN制御機能(CDNCF)621を含むことができ、あるいはこれらと関連付けることができる。配給は、CDN全域にわたって、クライアントに対するコンテンツ配信に十分な帯域幅が保証されるように制御することができる。一実施形態では、CDNは、 ETSI TS 182 019に記載されるように、CDNに関係することができる。
【0070】
顧客は、要求をウェブ・ポータル(WP)661に送ることによって、セグメント化されたコンテンツ、例えば、ビデオ・タイトルをCPS660から購入することができる。ウェブ・ポータル661は、購入可能なビデオ・タイトルを識別するタイトル参照を供給するように構成される。この要求に応答して、クライアントは、タイトル参照の少なくとも一部をWPから受信し、そして選択されたコンテンツを配信することができるCDNのCDNCFの位置情報、例えば、URLを受信することができる。
【0071】
CDNCFは、選択されたコンテンツをクライアントに配信するように構成される1つ以上の配信ノードに関連付けられたクライアント位置情報を送ることができる。セグメントは、CDNにおける1つの配信ノード上にホストされても、あるいは代わりにCDNにおける複数の異なる配信ノードにホストされてもよい。例えば、人気が高いセグメントは、CDNにおける多数の配信ノード上にホストされ、適時の配信を保証できるようにするとよい。通例、CDNCFは、選択されたコンテンツをクライアントに配信するのに最も適した配信ノードをCDNにおいて選択することができる。1つ以上の配信ノードを選択する判断基準は、配信ノードの処理負荷、および/またはクライアントに関連付けられたコンテキスト情報、例えば、クライアントの位置(IPアドレス)および/またはクライアントの登録(例えば、図2を参照して先に説明したような特別登録および通常登録)に基づくことができる。したがって、このように、CDNCFは動的にマニフェスト・ファイルを生成することができ、マニフェスト・ファイルは、セグメントをクライアントに効率的に配信するために最適化される。
【0072】
クライアントは、例えば、従来のDNSシステムを使用して、CDNにおける配信ノードに連絡することができる。更に、コンテンツをメディア・ストリーミング機能652に配信するためには種々のストリーミング・プロトコルを使用することができる。メディア・ストリーミング機能652は、ビデオ・プレイ・アウト機能651によるプレイ・アウトのためにストリームを処理する。このようなプロトコルは、HTTPおよびRTP/RTCP型ストリーミング・プロトコルを含むことができる。好ましい実施形態では、HTTP適応ストリーミング(HAS)のような適応ストリーミング・プロトコル、およびApple社のHTTPライブ・ストリーミング、Microsoft Smooth Streaming、Adobe社のHTTP動的ストリーミング、3GPP−DASH、およびHTTP上MPEG動的適応ストリーミングというような関連プロトコルを使用することができる。
【0073】
CDNは、セグメント化されたコンテンツを収集し配給するように構成される。既知のセグメント化ストリーミング・システムは、HTTP適応ストリーミング(HAS)のような、時間セグメント化に基づくことができる。この場合、コンテンツは、多数のセグメント(断片または部分)に編成することができ、セグメントは、MPEGまたはAVIのような既知のトランスポート・コンテナ・フォーマットにしたがってフォーマットすることができる。
【0074】
セグメント間の関係は、マニフェスト・ファイル内に記述することができ、マニフェスト・ファイルは、特定のファイル名拡張子、例えば、.mf、.xml、および.m3u8を使用して格納および識別することができる。マニフェスト・ファイルは、更に、1つ以上の配信ノード上における異なるセグメントの位置および名前(セグメント識別子)を記述することもできる。セグメント、特に、人気のあるセグメントは、CDNにおける1つよりも多い配信ノードから配信されてもよい。更に、ある状況では、セグメントは、他のCDNドメインにおける配信ノードから抽出されなければならないこともある。この状況については、図12および図13を参照して更に詳しく説明する。CDNCFは、セグメントを抽出することができる位置を管理することができる。このために、CDNCFはコンテンツ位置データベース622を使用することができる。一実施形態では、コンテンツ位置データベースは、 ETSI TS 182 019に記載されるように、アセット位置検出機能(ALF)に関係することができる。
【0075】
更に、CDNは配信連続ノード(DCN)613も含むことができる。配信連続ノード613は、クライアントに関連付けられたストリーミング制御チャネルを設定し管理し、更にクライアントと、これらのクライアントが接続される配信ノード(1つまたは複数)を含むデータベースを維持するように構成される。DCNは、配信連続管理機能(DCMF)640を含むことができる。この機能は、CDNCFの要求−ルーティング(RR)機能から発する通知を監視するプロセスを実行することができる。DCNは、更に、クライアントからのチャネル設定要求を監視し、クライアントにおける制御チャネル・クライアント(CCCF)機能650と共にストリーミング制御チャネルを設定するために、DCNにおいて制御チャネル・サーバ機能(CCSF)641を含むことができる。
【0076】
更に、DCN内におけるまたはDCNに関連付けられた配信連続(DC)データベース642は、クライアント情報(例えば、そのIPアドレス)およびマニフェスト・ファイル情報(即ち、セグメント識別子(例えば、ファイル名)およびこれらのセグメントをホストする配信ノードの少なくとも一部)を格納することができる。配信連続管理機能(DCMF)は、CDNCFまたはCDNにおける別のネットワーク監視機能から発するネットワーク通知、例えば、(過剰)負荷通知または障害通知を監視し、このようなネットワーク通知の受信に応答してマニフェスト・ファイル更新プロセスを開始することができる。DCNにおけるプロセスおよび機能についての詳細については、図8を参照して説明する。
【0077】
図6では、DCNにおける機能、即ち、DCMFおよびCCSFが別のノード(DCN)上に実装されるが、別の実施形態では、これらの機能がCDNCFおよび収集機能を含むCCN610上において完全にまたは部分的に実装されてもよい。
【0078】
図7は、本発明の一実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。具体的には、図7は、CDNにおける1つ以上の配信ノードと1つ以上のクライアントとの間におけるストリーミング・プロセスのネットワーク開始制御を行うように構成されたCDN型コンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。この実施形態では、CDNは、少なくとも第1および第2配信ノード(DN1、DN2)、ならびに図6を参照して説明したようなCDNCF、DCMF、およびCCSFを含むCCNを含むことができる。
【0079】
図7におけるプロセスは、ユーザが、ウェブサイト上においてあるビデオに対するリンクを選択することから開始することができ(ステップ700)、URLがマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。選択するとき、クライアントは、HTTP GET要求をCDNCFに送ってマニフェスト・ファイルを得ることができる(ステップ701)。CDNCFは、マニフェスト・ファイルをクライアントに送ることによって、この要求に応答することができる(ステップ702)。この場合、負荷均衡化機能からの情報に基づいて、CDNCFは、第1配信ノードDN1上に格納されたセグメントに対する参照(例えば、セグメント識別子および/または関連する位置情報)を収容するマニフェスト・ファイルを選択および/または生成することができる。更に、CDNCFは、特定のクライアント(例えば、そのIPアドレスによって定められる)に、特定の(1組の)配信ノード(1つまたは複数)(この例では、配信ノードDN1)に対する参照を収容するマニフェスト・ファイルを送ったという事実を記す。このために、CDNCFは、ビデオ・タイトルの少なくとも一部に関連付けられたクライアント情報(例えば、クライアントのIPアドレス)およびマニフェスト・ファイル情報(例えば、マニフェスト・ファイル識別子、マニフェストID)と、配信連続(DC)データベースにおいてマニフェスト・ファイルによって参照されるセグメントをホストする特定の(1組の)配信ノード(1つまたは複数)の位置情報とを今後の使用のために格納することができる(ステップ703)。
【0080】
ここでは、マニフェスト・ファイル情報は、番号によって識別することができ、配信ノードは、CDN内部で知られる配信ノードによって識別することができる。クライアントは、マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置(例えば、URL)を得ることができる(ステップ704)。更に、クライアントにおけるCCCFは、マニフェスト・ファイルにおけるチャネル設定情報を使用して、CCCFとCDNにおけるCCSFとの間においてストリーミング制御チャネルを設定ことができる(ステップ705a)(CCCFとCCSFとの間にストリーミング制御チャネルを設定するプロセスは、図2および図3を参照して説明したので、ここでは繰り返さない)。
【0081】
ストリーミング制御チャネルを確立する間、CCSFは、DCデータベースに格納された情報を使用して、チャネル設定要求を、特定のクライアントおよび1つ以上の関連する配信ノードに相関付けることができる(ステップ705b)。具体的には、CCSFがDCデータベースに問い合わせて、ストリーミング制御チャネルが設定されるクライアントを求め(クライアントは、例えば、そのIPアドレスによって識別することができる)、一意のストリーミング・チャネル識別子、即ち、チャネルID(例えば、ポート番号、またはWebSocketが使用される場合は、WebSocketID)を、当該クライアントに所属するデータベース・エントリに割り当てることができる。このように、CCSFは、特定のクライアント−チャネルの組み合わせと特定の(1組の)配信ノード(1つまたは複数)および/またはマニフェスト・ファイルに関係付けることができる。
【0082】
一旦ストリーミング制御チャネルが設定されたなら、クライアントは、第1セグメント(この場合、segment_low-1)を第1配信ノードDN1(マニフェスト・ファイルにおいて参照される)に要求することによって、ストリーミング・プロセスを開始することができる(ステップ706)。配信ノードDN1は、要求されたセグメントをクライアントにストリーミングすることによって応答することができる(ステップ707)。
【0083】
ストリーミング・プロセスの間、ある時点において、CDNCF(CDNにおける配信ノードの負荷を監視する負荷均衡機能を含むまたはそれと関連付けられる)は、第1配信ノードDN1上の負荷が(最大)閾値に近づくことを注意することができる(ステップ708)。CDNCFは、CDデータベースに格納された情報をチェックすることによって、どのクライアントが第1配信ノードDN1を使用しているのかチェックするように、DCMFに通知することができる(ステップ709)。次いで、DCMFは、第1配信ノードD1の処理負荷が低減されるように、一部(または全部)のクライアントを第1配信ノードDN1から他の第2配信ノードDN2にリディレクトすることを決定することができる。このために、DCMFは、DCデータベースにおける情報を使用して、CCSFにDCMFによって選択されたクライアントのストリーミング制御チャネルを通じてマニフェスト更新トリガを送るように命令することができる(ステップ710)。
【0084】
マニフェスト更新トリガを受信すると、クライアントにおけるCCCFは、マニフェスト要求をCDNCFに送ることによって、新たなまたは更新されたマニフェスト・ファイルを要求するように作動される(ステップ711)(ステップ701を参照して説明したのと同様に)。CDNCFは、マニフェスト要求を受け、クライアントのために新たなまたは更新されたマニフェスト・ファイルを選択または生成し、このマニフェスト・ファイルをクライアントに送ることができる。
【0085】
一実施形態では、新たなまたは更新されたマニフェスト・ファイルを生成するとき、CDNCFは新たな配信ノードを選択するために、負荷均衡化機能からの情報を使用することができる(ステップ702も参照のこと)。更に、新たなまたは更新されたマニフェスト・ファイルは、第2配信ノードDN2上に格納されたセグメントに対するリンクを収容することもできる。
【0086】
一実施形態では、マニフェスト更新トリガは、新たなまたは更新されたマニフェスト・ファイルを含む別のノードを識別する位置情報、例えば、URLを含むことができる。他の実施形態では、新たなまたは更新されたマニフェスト・ファイルを抽出するようにクライアントに通知するためにマニフェスト更新トリガを送る代わりに、新たなまたは更新されたマニフェスト・ファイルを直接ストリーミング制御チャネルを通じてクライアントに送信することもできる。更新マニフェスト・ファイルがクライアントに返送された後、クライアントは新たなまたは更新されたマニフェスト・ファイルを使用して、第2配信ノード(図示せず)からセグメントのストリームを再開する。
【0087】
クライアントは新たなまたは更新されたマニフェスト・ファイルを受信したので、CDNCFは、703を参照して説明したようにこのステップを実行することによって、DCデータベースにおいてそのクライアントに関連付けられたマニフェスト・ファイル情報を更新することができる。このように、今後のある時点において、過剰負荷の問題が発生した場合、CDNCFはクライアントを再度他の配信ノードにリディレクトすることができるとよい。
【0088】
図8は、本発明の一実施形態による配信連続ノード(DCN)に関連付けられたプロセス・フローを示す。具体的には、図8は、図6を参照して説明したような配信連続ノード(DCN)上にホストすることができる1つ以上の機能の全体像を示す。DCNは、クライアントに関連付けられたストリーミング制御チャネルを設定および管理し、クライアントとこれらが接続される配信ノード(1つまたは複数)とを列挙する表を維持するように構成することができる。他の実施形態では、DCNに関連付けられた機能の全部または少なくとも一部がCCN上にホストされるのでもよい(図7図9図11、および図13参照)。
【0089】
DCNは、配信連続管理機能(DCMF)を含むことができる。この機能は、CDNCFの要求−ルーティング(RR)機能から発する通知を監視するプロセスを実行することができる(ステップ800)。CDNCFがマニフェスト・ファイルをクライアントに送るときはいつでも、またはクライアントを特定の配信ノードにリディレクトするときはいつでも、CDNCFは、どの配信ノードからクライアントがセグメントを抽出することを予想されるかDCNに通知することができる(即ち、クライアントに送られたマニフェスト・ファイルにおいて参照される配信ノード、またはクライアントがリディレクトされる配信ノード)。この通知を受信すると、DCNは、特定のクライアント(例えば、そのIPアドレスによって識別される)を、そのクライアントに送られたマニフェスト・ファイルにおいて参照される配信ノードの少なくとも一部に割り当てるエントリを配信連続(DC)データベースに追加することができる(ステップ801)。
【0090】
更に、制御チャネル・サーバ機能(CCSF)は、クライアントにおけるCCCFからのチャネル設定要求を監視することができる(ステップ802)。要求を受信した場合、適したプロトコル、例えば、WebSocket、SIP、またはXMPPに基づいて、ストリーミング制御チャネルを設定するプロセスを開始する。
【0091】
ストリーミング制御チャネルの確立の間、CCSFはDCデータベースに問い合わせ、ストリーミング制御チャネルが設定されるクライアント(クライアントは、例えば、そのIPアドレスによって識別することができる)を求め、一意のストリーム・チャネル識別子(例えば、ポート番号、またはWebSocketが使用される場合、WebSocket ID)を、そのクライアントに所属するデータベース・エントリに割り当てることができる(ステップ803)。DCMFは、次いで、ネットワーク通知、例えば、CDNCF、CDNCFに関連付けられた負荷均衡化機能、または別のネットワーク監視機能からのネットワーク過剰負荷通知または障害通知を監視する監視プロセスを実行することができる(ステップ804)。一実施形態では、過剰負荷または障害通知は、CDNCFがリディレクトを望むクライアントの数に関する情報を含むこともできる。
【0092】
一旦DCMFがこのような通知(それ自体における配信ノードまたは他のCDN(図示せず)における配信ノードに関する)をDCNCFから受信したなら、DCデータベースに問い合わせて、過剰負荷または障害通知に関連付けられた配信ノードからセグメントを抽出することが予想されるクライアントをチェックすることができる(ステップ805)。DCMFは、次いで、リディレクトすべき1つ以上のクライアントを選択することができる(ステップ806)(この選択は、ステップ804を参照して先に説明したように、リディレクトされるべきクライアントの数に基づくことができる)。その後、DCMFは、そのデータベースに問い合わせて、選択されたクライアントに関連付けられたストリーミング・チャネル(例えば、ストリーミング・チャネル識別子を使用する)を識別し、これらのチャネルの各々を通じてマニフェスト・トリガを送ることができる。
【0093】
DMCFは、更に、クライアントから発信するメッセージを監視するように構成することもできる。一実施形態では、DMCFが新たなまたは更新されたマニフェスト・ファイルを、ストリーミング制御チャネルを通じて、クライアントに送るのでもよい。
【0094】
図9は、本発明の他の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。具体的には、図9は、図7と同様のコンテンツ配信システムとの使用のためのメッセージ・フローを示す。この実施形態では、しかしながら、マニフェスト・ファイルは、CDNCFによってクライアントに配信されるのではなく、配信ノード自体によって配信される。このために、配信ノード、例えば、第1配信ノードDN1は、その配信ノード上のセグメントに対する参照だけを含むマニフェスト・ファイルを含むことができる。
【0095】
図9におけるプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択することから開始することができ(ステップ900)、URLがCDNCFの要求ルーティング(RR)機能を指し示す(例えば、コンテンツ・プロバイダからのリディレクトによって)。クライアントがHTTP GET要求をCDNCFに送った後(ステップ901)、CDNCFのRR機能が、例えば、負荷均衡化機能から得られた情報に基づいて、要求されたマニフェスト・ファイルおよび関連するセグメント化されたコンテンツをクライアントに配信するのに適した配信ノードを選択することができる。CDNCFは、次いで、クライアントに、選択された配信ノード(この特定的な例では、第1配信ノードDN1)上のマニフェスト・ファイルへのURLを収容するHTTP REDIRECTメッセージを送ることができる(ステップ902)。
【0096】
HTTP GET要求をリディレクトするとき、CDNCFはクライアント情報(例えば、クライアントのIPアドレス)およびマニフェスト・ファイル情報(例えば、ビデオ・ファイルの少なくとも一部に関連付けられたマニフェスト・ファイル識別子、またはマニフェストID、およびマニフェスト・ファイルによって参照されるセグメントをホストする特定の(1組の)配信ノード(1つまたは複数))を、今後の使用のために配信連続(DC)データベースに格納することができる(ステップ903)。ここでは、マニフェスト・ファイル識別子は、数値によって識別することができ、配信ノードは、CDN内部において知られている配信ノード識別子によって識別することができる。
【0097】
CDNCFからHTTP REDIRECTメッセージを受信すると、クライアントは新たなHTTP GET要求メッセージを、第1配信ノードに関連付けられたREDIRECTメッセージにおけるURLに送ることができる(ステップ904)。配信ノードDN1は、続いて、要求されたマニフェスト・ファイルをクライアントに送ることによって、応答する(ステップ905)。
【0098】
マニフェスト・ファイルを受信した後、クライアントはこのマニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置を得ることができる(ステップ906)。クライアントにおけるCCCFは、マニフェスト・ファイルにおけるチャネル設定情報を使用して、CCSFとクライアントとの間にストリーミング制御チャネルを設定することができる(ステップ907a)(チャネルを設定するプロセスは、図2および図3において説明したので、ここでは繰り返さない)。
【0099】
ストリーミング制御チャネルの確立の間、CCSFは、DCデータベースに格納された情報を使用することによって、チャネル設定要求を特定のクライアントおよび関連する配信ノードと相関付けることができる(ステップ907b)。具体的には、CCSFはDCデータベースに問い合わせて、ストリーミング制御チャネルが設定されるクライアント(このクライアントは、例えば、そのIPアドレスによって識別することができる)を求め、一意のストリーミング・チャネル識別子(例えば、ポート番号、またはWebSocketが使用される場合、WebSocket ID)を、クライアントに所属するデータベース・エントリに割り当てることができる。このように、CDNにおける機能は、どのクライアント/チャネルの組み合わせが、どの(1組の)配信ノード(1つまたは複数)を使用しているのかチェックすることができる(例えば、この場合、CDNCFは、特定のクライアントが第1配信ノードDN1を使用しており、特定のマニフェスト・ファイルを受信したことをチェックすることができる)。
【0100】
一旦ストリーミング制御チャネルが設定されたなら(例えば、図2および図3において説明したように)、クライアントは、第1配信ノードDN1から得られるセグメントを要求し、受信し、プレイ・アウトし始めることができる(ステップ908)。ストリーミング・プロセスの間、ある時点において、CDNCF(CDNにおける配信ノードの負荷を監視するために負荷均衡化機能を含む、またはこれに関連付けられる)は、第1配信ノードDN1上の負荷が所定の(最大)閾値レベルに達することを通知することができる(ステップ909)。CDNCFは、次に、DCMFを作動させて、DCデータベースに格納された情報をチェックすることによって、どのクライアントが第1配信ノードDN1に関連付けられているか判定することができる(ステップ910)。この情報に基づいて、DCMFは、一部(または全部)のクライアントを第1配信ノードDN1から離れるようにリディレクトすることを決定することができる。
【0101】
このために、CCSFを作動させて、これらのクライアントの制御チャネルを通じてマニフェスト更新トリガを送ることができる(ステップ911)。クライアントがそれらの更新マニフェストを第1配信DN1(デフォルトとして)を受信しないことを確実にするために、マニフェスト更新トリガは、新たなまたは更新されたマニフェスト・ファイルに関連付けられたURLを含むことができる(例えば、第2配信ノードDN2を指し示す)。マニフェスト更新トリガの受信は、クライアントに、新たなマニフェスト・ファイルを要求しなければならないことを伝える。次いで、マニフェスト・ファイル要求を、マニフェスト更新トリガにおいて参照された第2配信ノードDN2に関連付けられたURLに送ることができる(ステップ912)。第2配信ノードDN2は、要求されたマニフェスト・ファイルをクライアントに送ることによって応答することができる。
【0102】
このマニフェスト・ファイルを受信すると、クライアントは、後続のセグメントを、第1配信ノードDN1の代わりに、第2配信ノードDN2に要求することによって、ストリーミング・プロセスを継続することができる(ステップ913)。クライアントは新たなまたは更新されたマニフェスト・ファイルを受信したので、CDNCFは、903を参照して説明したステップを実行することによって、DCデータベースにおいて、そのクライアントに関連付けられたマニフェスト・ファイル情報を更新することができる。このように、今後のある時点において過剰負荷の問題が発生した場合、CDNCFはクライアントを再度他の配信ノードにリディレクトすることができると考えられる。
【0103】
したがって、図9に示す実施形態では、クライアントとCCSFとの間にストリーミング制御チャネルを設定するためのチャネル設定情報を含むマニフェスト・ファイルが、セグメントが格納された配信ノードに格納される。この実施態様では、CDNCFの負荷および複雑さの一部が複数の配信ノードに肩代わりされるという利点がある。図7では、CDNCFは、マニフェスト・ファイルが更新される毎に負荷がCDNCFに追加されるように、マニフェスト・ファイルをホストし、および/または生成する。ある種の実施態様では、例えば、生コンテンツの場合、クライアント開始マニフェスト更新は、非常に頻繁に、例えば、30秒毎に1回起こる場合もあり、これによってCDNCFにかかる負荷が増大する。したがって、クライアント開始マニフェスト要求に応答するタスクを、配信ノードに委託することによって、CDNCFの相当な負荷低減を実現することができる。
【0104】
図10は、本発明の更に他の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。具体的には、図10は、図7と同様のメッセージ・フローを示すが、DCN機能性をCDNCFに追加させる代わりに、CDNが別のノードに配置される。
【0105】
図10におけるプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択し(ステップ1000)、およびCDNCFからマニフェスト・ファイルを得るためにクライアントによって送られるHTTP GET要求の送信(ステップ1001)から開始することができ、URLがCDNCF上にホストされたマニフェスト・ファイルを指し示すことができる(例えば、リディレクトによって)。CDNCFは、マニフェスト・ファイルをクライアントに送ることによって、この要求に応答することができる。この例では、負荷均衡化機能から得られた情報に基づいて、CDNCFは、第1配信ノードDN1上に格納されたセグメントに対する参照を収容するマニフェスト・ファイルを選択することができる(ステップ1002)。
【0106】
CDNCFは、DCNに、具体的には、DCNにおけるDCMFに、特定のクライアント(例えば、そのIPアドレスによって識別される)に、特定の(1組の)配信ノード(1つまたは複数)に対する参照を含む新たなまたは更新されたマニフェスト・ファイルが供給されたことを示す通知を送ることができる(ステップ1003)。DCMFは、クライアント情報(例えば、クライアントのIPアドレス)およびマニフェスト・ファイル情報(例えば、ビデオ・ファイルの少なくとも一部に関連付けられたマニフェスト・ファイル識別子、またはマニフェストID、およびマニフェスト・ファイルによって参照されたセグメントをホストする特定の(1組の)配信ノード(1つまたは複数)の位置情報)を、今後の使用のためにDCデータベースに格納することができる(ステップ1004)。ここでは、マニフェスト・ファイル識別子は数値によって識別することができ、配信ノードは、CDN内部において知られている配信ノード識別子によって識別することができる。
【0107】
クライアントは、マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置(例えば、URL)を得ることができる(ステップ1005)。更に、クライアントは、マニフェスト・ファイルにおけるチャネル設定情報を使用して、CDNへのチャネルを設定することができる(ステップ1006a)。(チャネルを設定するプロセスは、図2および図3において説明したので、ここでは繰り返さない)。
【0108】
ストリーミング制御チャネルの確立の間、CCSFは、DCデータベースに格納された情報を使用することによって、チャネル設定要求を特定のクライアントおよび関連する配信ノードと相関付けることができる(ステップ1006b)。具体的には、CCSFはDCデータベースに問い合わせて、ストリーミング制御チャネルが設定されるクライアント(このクライアントは、例えば、そのIPアドレスによって識別することができる)を求め、一意のストリーミング・チャネル識別子(例えば、ポート番号、またはWebSocketが使用される場合、WebSocket ID)を、クライアントに所属するデータベース・エントリに割り当てることができる。このように、CDNにおける機能、例えば、CDNCF、DCMF、およびCCSFは、特定のクライアント−チャネルの組み合わせを特定の(1組の)配信ノード(1つまたは複数)に関係付けることができる。
【0109】
一旦ストリーミング制御チャネルが設定されたなら、ストリーミング・クライアント機能は、第1配信ノードDN1から得られるセグメントを要求し、受信し、プレイ・アウトし始めることができる(ステップ1007)。ストリーミング・プロセスの間、DCMFは、ネットワーク通知、例えば、CDNCF、CDNCFに関連付けられた負荷均衡化機能、あるいはネットワーク監視機能からのネットワーク過剰負荷または障害通知を監視するための監視プロセスを実行することができる。例えば、ある時点において、全ての配信ノードの負荷を監視するための負荷均衡化機能を含むまたはこれに関連付けられたCDNCFが、DN1にかかる負荷が所定の(最大)閾値に達することを通知することもできる(ステップ1008)。
【0110】
次いで、CDNCFは過剰負荷通知をDCMFに送り、第1配信ノードDN1にかかる負荷が所定の(最大)閾値に近づきつつあることを示すことができる。一実施形態では、過剰負荷通知が、リディレクトすべきクライアントの数に関する情報を含んでもよい(ステップ1009)。DCMFは、DCデータベースにおいてマニフェスト・ファイル情報をチェックすることによって、第1配信ノードDN1を使用しているクライアントを判定することができる(ステップ1010)。
【0111】
DCMFは、次に、リディレクトすべきクライアントを選択し、CCSFを作動させて、これらのクライアントのストリーミング制御チャネルを通じて、マニフェスト更新トリガを送ることができる(ステップ1011)。マニフェスト更新トリガの受信は、ステップ1001を参照して説明したのと同様の方法で、クライアントに、マニフェスト要求をCDNCFに送ることによって新たなマニフェストを要求するように伝えることができる(ステップ1012)。
【0112】
CDNCFは、マニフェスト要求を受信し、クライアントに適した新たなマニフェスト・ファイルを生成または選択することができる(ステップ1013)(例えば、負荷均衡化機能を調べることによって)。この場合、選択されたマニフェスト・ファイルは、例えば、第2配信ノードDN2上に格納されたセグメントに対するリンクを収容することができる。次いで、選択されたマニフェスト・ファイルをクライアントに送ることができる。この新たなマニフェスト・ファイルを受信すると、クライアントは、第1配信ノードDN1の代わりに第2配信ノードDN2に後続のセグメントを要求することによって、ストリーミング・プロセスを継続することができる。
【0113】
クライアントは、異なる配信ノード(即ち、第1配信ノードDN1の代わりに第2配信ノードDN2)上にホストされたセグメントを参照する新たなまたは更新されたマニフェスト・ファイルを受信したので、CDNCFは、クライアントに関連するDCデータベースにおいて1つまたは複数のエントリを更新することができる。そうするために、CDNCFは、CDNにおけるDCMFに、クライアントには新たなまたは更新されたマニフェスト・ファイルが供給されたという通知を送ることができる(ステップ1003を参照して説明したのと同様に)。この通知を受信した後、DCMFはクライアント情報およびマニフェスト・ファイル情報をDCデータベースに格納することができる(ステップ1004を参照して説明したのと同様に)。このように、CDNCFは、第2配信ノードDN2に関連付けられた別の可能な負荷問題を扱うことができる。
【0114】
したがって、図10に示す実施形態では、ストリーミング制御機能を確立し管理する機能が、別のネットワーク・ノード、即ち、DCN上に実装されるので、CCNにおけるCDNCFに必要とされる変化は非常に限定され、既存のCDNCFの実施態様を再利用することができ、これによって、ストリーミング制御チャネル機能性をCDNに追加するときに必要となるコストを抑える。更に、クライアントの数、および関連するアクティブなストリーミング制御チャネルの数が増大した場合、CDNCF全体ではなく、DCNの容量だけをアップグレードすれば済む。このように、この実施形態は、CDNに関連付けられた多数のストリーミング制御チャネルを管理するために、スケーラブルなソリューションを提供する。
【0115】
図11は、本発明の別の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。具体的には、図11は、図7と同様のメッセージ・フローを示す。しかしながら、各マニフェスト・ファイルが1つの配信ノードに対する参照だけを含む代わりに、マニフェスト・ファイルは多数の配信ノードに対する参照を収容することができる。この実施形態では、CDNCFは、マニフェスト・ファイルを作成しホストするように構成することができる。
【0116】
このプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択すること(ステップ1100)、およびCDNCFからマニフェスト・ファイルを得るためにクライアントによって送られるHTTP GET要求の送信(ステップ1101)から開始することができ、URLがCDNCF上にホストされたマニフェスト・ファイルを指し示す(例えば、リディレクトによって)。クライアントからマニフェスト要求を受信すると、CDNCFは新たなマニフェスト・ファイルを作成するか、または異なる配信ノード上にあるセグメントに対する参照を含む既存のマニフェスト・ファイルを選択することができる(ステップ1102)。例えば、一実施形態では、マニフェスト・ファイルは、第1配信ノードDN1上にホストされた低品質セグメントに対する参照、および第2配信ノードDN2上にホストされた高品質セグメントに対する参照を含むことができる。CDNCFは、CDNにおける配信ノードに関連付けられた負荷情報(負荷均衡化機能によって生成される)を使用し、更には任意にクライアントの位置情報(例えば、IPアドレス)を使用して、クライアントに要求されたセグメント(の一部)を配信するのに最も適した配信ノードを選択することができる。この場合、マニフェスト・ファイルは、少なくとも第1配信ノードDN1および第2配信ノードDN2に対する参照を含むことができる。
【0117】
CDNCFは、マニフェスト・ファイルをクライアントに送り(ステップ1103)、クライアント情報(例えば、そのIPアドレス)ならびにマニフェスト・ファイル情報(例えば、クライアントのIPアドレス)およびマニフェスト・ファイル情報(例えば、ビデオ・タイトルの少なくとも一部に関連付けられた、マニフェスト・ファイル識別子、またはマニフェストID、ならびにマニフェスト・ファイルによって参照されるセグメントをホストする特定の(1組の)配信ノード(1つまたは複数)、この場合、第1および第2配信ノードD1およびD2の位置情報)をDCデータベースに格納することができる(ステップ1104)。ここでは、マニフェスト・ファイル識別子は、数値によって識別することができ、配信ノードは、CDN内部で知られている配信ノード識別子によって識別することができる。
【0118】
クライアントは、マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置を得て(ステップ1105)、マニフェスト・ファイルにおけるチャネル設定情報を使用して、クライアントとCCSFとの間にストリーミング制御チャネルを設定することができる(ステップ1106a)。(このチャネルを設定するプロセスは図2および図3において説明したので、ここでは繰り返さない。)
ストリーミング制御チャネルの確立の間、CCSFは、DCデータベースに格納された情報を使用することによって、チャネル設定要求を特定のクライアントおよび関連する(1組の)配信ノード(1つまたは複数)と相関付けることができる(ステップ1106b)。具体的には、CCSFがDCデータベースに問い合わせて、ストリーミング制御チャネルが設定されるクライアントを求め(クライアントは、例えば、そのIPアドレスで識別することができる)、一意のストリーミング・チャネル識別子(例えば、ポート番号、またはWebSocketが使用される場合は、WebSocket ID)を、クライアントに所属するデータベース・エントリに割り当てることができる。このように、CDNにおける機能は、特定のクライアント−チャネルの組み合わせを特定の(1組の)配信ノード(1つまたは複数)に関係付けることができる。
【0119】
一旦ストリーミング制御チャネルが設定されたなら、クライアントは第1および第2配信ノードから発信するセグメントを要求し、受信し、プレイ・アウトすることによって、ストリーミング・プロセスを開始することができる(ステップ1107)。ストリーミング・プロセスの間、ある時点において、CDN内部の配信ノードの負荷を監視するための負荷均衡化機能を含むまたはこれに関連付けられたCDNCFが、第1配信ノードDN1にかかる負荷が所定の(最大)閾値に達するまたは接近することを通知することができる(ステップ1108)。すると、CDNCFは、DCMFを作動させて、DCデータベースにおけるマニフェスト・ファイル情報をチェックすることによって、第1配信ノードDN1と関連付けられたクライアントはどれかチェックすることができる。次いで、DCMFは、どのクライアントがマニフェスト更新を必要とするか判定し、CCSFを作動させて、マニフェスト更新トリガをこれらのクライアントの制御チャネルを通じて送ることができる(ステップ1110)。
【0120】
マニフェスト更新トリガは、マニフェスト要求をCDNCFに送ることによって(ステップ1101)、クライアントが新たなまたは更新されたマニフェスト・ファイルを必要とすることを、クライアントに知らせることができる(ステップ1111)。CDNCFは、マニフェスト要求を受信し、このクライアントに適した新たなマニフェスト・ファイルを作成または選択する(ステップ1102参照)(ステップ1012)。この場合、新たなまたは更新されたマニフェスト・ファイルは、例えば、第1配信ノードDN1に関連付けられたURLを、同じセグメントをホストする他の配信ノードDN(例えば、第3配信ノードDN3)に関連付けられたURLと交換することができる。配信ノードDN2に関連付けられたURLは交換されない。何故なら、第1配信ノードDN1だけが過剰負荷になる危険があったからである。CDNCFは、新たなまたは更新されたマニフェスト・ファイルをクライアントに送ることができ(ステップ1113)、クライアントはその(内部)セグメント・リストを更新し、新たなまたは更新されたマニフェスト・ファイルに列挙されたセグメントを要求することによって、ストリーミング・プロセスを継続することができる。
【0121】
クライアントは新たなまたは更新されたマニフェスト・ファイルを受信したので、CDNCFは、1104を参照して説明したステップを実行することによって、そのクライアントに関連付けられたマニフェスト・ファイル情報をDCデータベースにおいて更新する。このように、今後のある時点において、過剰負荷の問題が発生した場合、CDNCFはこのクライアントを再度他の配信ノードにリディレクトすることができると考えられる。
【0122】
したがって、図11に示す実施形態は、1つのマニフェストによって参照されたセグメントを多数の配信ノードに渡って分散できるという利点があり、各配信ノードは全てのセグメントの内部分集合のみをホストする。これの利点の1つは、CDNが異なるタイプのセグメント間で区別することが可能になることである。セグメント化されたコンテンツでは、あるセグメントが他のセグメントよりも人気がある(一層頻繁に要求される)ことがある。例えば、時間的セグメント化ビデオ・タイトルでは、早い方のセグメントは、遅い方のセグメントよりも頻繁に要求されるのが通例である。他の例では、ビデオ・タイトルが、異なるビデオ品質に関係するセグメントを有し、ある品質が他のよりも人気があるという場合もある。このような場合、CDNは、人気が高い方のセグメントを、人気が低い方のセグメントよりも多くの配信ノードにおいてホストし、スケーラビリティ強化および効率向上に備えることができる。
【0123】
図12は、本発明の他の実施形態によるコンテンツ・ストリーミング・システムを示す。具体的には、図12は、図6を参照して説明したような、CDNベースのコンテンツ配信システムを示す。しかしながら、この実施形態では、本システムは少なくとも2つの相互接続されたCDNを含む。具体的には、このコンテンツ・ストリーミング・システムは、CDN相互接続インターフェース1264を介して少なくとも1つの第2CDN 1204(下流CDNとも称される)に相互接続された第1CDN 1202(上流CDNとも称される)を含み、各CDNは、当該CDN内における1つ以上の配信ノードと1つ以上のクライアントとの間において、ストリーミング・プロセスのネットワーク開始制御を行うように構成される。ネットワーク開始制御は、図2から図5を参照して説明したようなストリーミング制御チャネル機能性に基づいて実現することができる。
【0124】
更に、コンテンツ配信システムは、クライアント1203をホストする1つ以上の端末1204にトランスポート・ネットワーク600を通じて接続されたコンテンツ・ソース1201を含む。コンテンツ・ソースは、コンテンツ・プロバイダ・システムCPS、コンテンツ準備システム、または他のCDNに関係することができる。CPSは、コンテンツ、例えば、ビデオ・タイトルを顧客に提供するように構成することができ、顧客は、ビデオ・プレイ・アウト機能1251によるプレイ・アウトのためにストリームを処理するメディア・ストリーミング機能1252を含むクライアントを使用して、コンテンツを購入し受信することができる。
【0125】
図6と同様、CDNは、配信ノード1211,1212,1215、および少なくとも1つのCCN1210,1223を含むことができる。各配信ノードは、コントローラ1230,1231,1234,およびコンテンツを格納およびバッファリングするキャッシュ1232,1233,1235を含むことができ、またはこれらと関連付けられるのでもよい。各CCNは、外部ソース、例えば、コンテンツ・プロバイダまたは他のCDNからのコンテンツの収集を制御する収集ノード(またはコンテンツ発信機能、COF)1220,1223,コンテンツがCDN内のどこに格納されたかについての情報を維持するコンテンツ位置データベース1222,1225、ならびに配信ノードへのコンテンツの1つ以上のコピーの配給を制御し、更にクライアントをしかるべき配信ノードにリディレクトする(要求ルーティングとしても知られるプロセス)CDN制御機能(CDNCF)1221,1224を備えることができ、またはこれらと関連付けられるのでもよい。顧客は、要求をウェブ・ポータル(WP)1261に送ることによって、コンテンツ、例えば、ビデオ・タイトルをCPS1260から購入することができ、ウェブ・ポータル1261は、図6を参照して説明したのと同様に、購入可能なコンテンツ項目を識別するタイトル参照を供給するように構成される。
【0126】
CDNCFは、コンテンツ位置データベース1222,1225を使用して、セグメントを抽出することができる位置を管理することができる。更に、CDNは、配信連続ノード(DCN)1213,1216も含むことができる。配信連続ノード1213,1216は、クライアントに関連付けられたストリーミング制御チャネルを設定および管理し、クライアント情報およびこれらのクライアントが接続された配信ノード(1つまたは複数)のマニフェスト・ファイル情報を含むデータベースを維持するように構成される。DCNは、単体DCNとして構成される、またはCDNCFに統合されるのでもよい。
【0127】
DCNは、CDNCFの要求ルーティング(RR)機能から発信する通知を監視する配信連続管理機能(DCMF)1240、1243と、クライアントからのチャネル設定要求を監視し、クライアントにおける制御チャネル機能1250と共にストリーミング制御チャネルを設定する制御チャネル・サーバ機能(CCSF)1241、1244と、クライアント情報(例えば、クライアントのIPアドレス)およびマニフェスト・ファイル情報(即ち、セグメント識別子(例えば、ファイル名)およびこれらのセグメントをホストする配信ノードの少なくとも一部に関連付けられた位置情報(例えば、URL))を格納するためにDCN内にあるまたはこれに関連付けられた配信連続(DC)データベース1242,1245を含むことができる。
【0128】
DCMFは、ネットワーク通知、例えば、CDNCFの要求ルーティング(RR)機能、CDNにおける別の過剰負荷機能、またはネットワーク監視機能から発信する過剰負荷または障害通知を監視し、このような通知の受信に応答してマニフェスト・ファイル更新プロセスを開始することができる。マニフェスト・ファイル更新プロセスの詳細については、以下で図13を参照して更に詳しく説明する。
【0129】
図12のコンテンツ配信システムでは、上流CDNが、クライアントへのセグメント配信の一部を、下流CDNに外部委託することができる。例えば、一実施形態では、低品質セグメントが、第1CDN A(例えば、移動体デバイスに対するコンテンツ配信のために構成される)によって突き止められて配信されてもよく、高品質セグメントが、第2CDN Bによって突き止められて配信されてもよい(HDTV技術をサポートする家庭用メディア・デバイス)への高品質セグメントの配信のために構成される)。
【0130】
セグメント配信の一部を下流CDNに外部委託するとき、上流CDN(または、具体的には、上流CDNのCDNCF)が、第1CDN Aにおける1つ以上の配信ノードに対する参照と、第2CDN Bにおける1つ以上の配信ノードに対する参照とを含むマニフェスト・ファイルを生成するプロセスを開始することができる。このようなマニフェスト・ファイルは、CDN間マニフェスト・ファイルと称することもできる。CDN間マニフェスト・ファイルは、更に、クライアントと上流CDN Aとの間にストリーミング制御チャネルを設定するためのチャネル設定情報も含むことができる。
【0131】
CDN間マニフェスト・ファイルを生成するプロセスの間、相互接続インターフェース1264を介してCDN間で情報を交換することができる。具体的には、CDN間マニフェスト・ファイルの生成の間、上流CDNは、下流CDNに外部委託された1つ以上のセグメントに関する位置情報を、下流CDNに要求することができる。応答して、下流CDNは、クライアントに関するコンテキスト情報に基づいて、要求されたセグメントをホストする配信ノードを選択することができる。例えば、下流CDNは、クライアントの位置に地理的に最も近い配信ノードを選択することもできる。この情報は、続いて、CDN間マニフェスト・ファイルの生成のために、上流CDNのCDNCFに送られる。したがって、図13におけるコンテンツ配信システムは、「個人専用とされた」CDN間マニフェスト・ファイルを動的に生成するように構成される。
【0132】
一旦CDN間マニフェスト・ファイルが生成されクライアントに転送されると、このクライアントにおける制御チャネル機能は、CDN間マニフェスト・ファイル内にあるチャネル設定情報を使用して、上流CDNのDCNにおけるCCSFと共にストリーミング制御チャネルを設定し、セグメントの要求およびプレイ・アウトを開始することができる。
【0133】
ストリーミング・プロセスの間、DCMFは、ネットワーク通知、例えば、(過剰)負荷通知または障害通知をCDNCFから受信し、クライアントを1つ以上の他の配信ノードにリディレクトすべきであると判断することができる。このネットワーク通知は、上流CDNまたは下流CDNにおけるネットワーク問題状況に関係することができる。後者の場合、下流CDNのCDNCFは、ネットワーク通知を、相互接続インターフェース1264を介して、上流CDNのCDNCFに送ることができる。
【0134】
図13は、本発明の更に別の実施形態によるコンテンツ・ストリーミング・システムにおける使用のためのメッセージ・フローを示す。具体的には、図13は、図12に示したコンテンツ配信ネットワークにおける使用のためのメッセージ・フローを示し、マニフェスト・ファイルは、異なるCDNに関連付けられた異なる配信ノード上にホストされたセグメントに対する参照を含むことができる。
【0135】
このプロセスは、ユーザが、ウェブサイト上であるビデオに対するリンクを選択することから開始することができ(ステップ1300)、URLが第1CND Aと関連付けられた第1CDNCF上にホストされたマニフェスト・ファイルを指し示す(例えば、リディレクトによって)。このCDNは、上流CDNと称することもある。選択のとき、クライアントは、CDN AのCDNCFからマニフェスト・ファイルを得るために、HTTP GET要求を送ることができる(ステップ1301)。
【0136】
クライアントからマニフェスト要求を受信した後、第1CDNCFは、新たなマニフェスト・ファイルを作成するまたは既存のマニフェスト・ファイルを更新するプロセスを開始することができ、マニフェスト・ファイルは、異なるCDNに関連付けられた異なる配信ノード上にあるセグメントに対する参照を含むことができる(ステップ1302)。例えば、一実施形態では、低品質セグメントが第1CDN Aによって突き止められて配信されてもよい(例えば、移動体デバイスに対するコンテンツ配信のために構成される)。このCDNを上流CDNと称することもある。更に、高品質セグメントは、第2CDN Bによって突き止められて配信されてもよい(例えば、HDTV技術をサポートする家庭用メディア・デバイスに対する高品質セグメントの配信のために構成される)。このCDNを下流CDNと称することもある。少なくとも第1CDN Aに関連付けられた第1配信ノードDN1と、CDN Bに関連付けられた第2配信ノードDN2に対する参照を含むマニフェスト・ファイルを、CDN間マニフェスト・ファイルと称することもある。CDN間マニフェスト・ファイルは、更に、クライアントと上流CDN Aに関連付けられたCDNCFとの間にストリーミング制御チャネルを設定するためのチャネル設定情報も含むことができる。
【0137】
一実施形態では、CDN間マニフェスト・ファイルは、上流CDN Aの第1CDNCFが、CDN Bによってクライアントに配信されるべき所定数のセグメントの位置に対する参照を提供するように、下流CDN Bの第2CDNCFに要求するプロセスに基づいて、生成することができる。
【0138】
第1CDNCFは、次に、CDN間マニフェスト・ファイルをクライアントに送ることができ(ステップ1303)、第1CDNCFはクライアント情報(例えば、そのIPアドレス)およびマニフェスト・ファイル情報を、第1CDNCFに関連付けられたDCデータベースに格納することができる(ステップ1304)。マニフェスト・ファイル情報は、ビデオ・タイトルの少なくと一部に関連付けられたマニフェスト・ファイル識別子、またはマニフェストIDと、第1CDN Aと第2CDN Bに関連付けられた(特定の1組の)配信ノード(1つまたは複数)とに関連付けられた、マニフェスト・ファイルによって参照されるセグメントとをホストする特定の(1組の)配信ノード(1つまたは複数)の位置情報とを含む。ここでは、セグメントはファイル名によって識別することができ、配信ノードは配信ノード識別子によって識別することができる。ここでは、マニフェスト・ファイル識別子は、数値によって識別することができ、配信ノードはCDN内部で知られている配信ノード識別子によって識別することができる。
【0139】
したがって、CDN間マニフェスト・ファイルの生成の間、第1および第2CDNCF間で通信が行われるので、第2CDNCFはCDNマニフェスト・ファイルにおける全てのセグメントを知らなくても、第2CDNCFは、その配信ノード(1つまたは複数)上に配置された所定数のセグメントが(近い)今後クライアントによって要求される可能性があることを知る。したがって、第2CDNCFは、下流CDN(この場合、第2配信ノードDN2)における配信ノードを、第2CDN Bに関連付けられたDCデータベースにおける上流CDN(この場合、第1CDNCF)に対する参照と共に格納することができるので、これらの配信ノードの1つに伴うあらゆるネットワーク問題、例えば、負荷または障害問題を第1CDNCFに通知することができる(ステップ1305)。
【0140】
クライアントは、CDN間マニフェスト・ファイルを解析して、ビデオを構成するセグメントの位置を得て(ステップ1306)、マニフェスト・ファイル内にあるチャネル設定情報を使用して第1CDNCFとクライアントとの間にストリーミング制御チャネルを設定することができる(ステップ1307)(チャネルを設定するプロセスは、図2および図3において説明したので、ここでは繰り返さない)。
【0141】
ストリーミング制御チャネルの確立の間、第1CDN 1に関連付けられたCCSFは、第1DCデータベースに格納された情報を使用することによって、チャネル設定要求を特定のクライアントおよび関連する(1組の)配信ノード(1つまたは複数)と相関付けることができる(ステップ1309)。具体的には、CCSFがDCデータベースに問い合わせて、ストリーミング制御チャネルが設定されるクライアントを求め(クライアントは、そのIPアドレスによって識別することができる)、一意のストリーム・チャネル識別子(例えば、ポート番号、またはWebSocketを使用する場合は、WebSocket ID)を、クライアントに所属するデータベース・エントリに割り当てることができる。このように、第1CDN1における機能は、特定のクライアント−チャネルの組み合わせを特定の(1組の)配信ノード(1つまたは複数)に関係付けることができる。ストリーミング制御チャネルの確立の後、クライアントは、第1(上流)CDN Aに関連付けられた第1配信ノードDN1および第2(下流)CDN Bに関連付けられた第2配信ノードDN2双方から得られるセグメントを要求し、受信し、プレイ・アウトすることによって、ストリーミング・プロセスを開始することができる(ステップ1308)。
【0142】
ストリーミング・プロセスの間、ある時点において、それ自体の配信ノードを監視している第2CDNCFが、ネットワーク問題、例えば、第2配信ノードDN2におけるネットワーク障害を通知する場合や、第2配信ノードDN2にかかる負荷が所定の(最大)閾値に達するまたは接近することを通知する場合もあり得る(ステップ1309)。すると、DCデータベースにおけるCDN間情報に基づいて、第2CDNCFが、ネットワーク通知、例えば、(過剰)負荷通知または障害通知を第1CDNCFに送ることによって、このネットワーク問題を第1CDNCFに通知することができる。過剰負荷通知は、第2CDNにおける配信ノードに対する参照の少なくとも一部、具体的には、CDN間マニフェスト・ファイルに列挙された配信ノードに対する参照を更新する必要があることを、第1CDNCFに知らせることができる(ステップ1310)。
【0143】
したがって、第2CDNCFからネットワーク通知を受信すると、第1CDNCFは、DCMFを作動させて、第1CDNCに関連付けられたDCデータベースに格納されたマニフェスト・ファイル情報に基づいて、第2配信ノードDN2に対する参照を収容したCDN間マニフェスト・ファイルがどのクライアントに送られたのかチェックする(ステップ1311)。次いで、DCMFは、どのクライアントがリディレクトし、そしてCCSFを作動させて、リディレクトされる必要があるクライアントの制御チャネルを通じて、マニフェスト更新トリガを送るか決定することができる(ステップ1312)。マニフェスト更新トリガを受信すると、クライアントは、マニフェスト・ファイル要求を第1CDNCFに送ることによって(ステップ1301と同様)、新たなマニフェスト・ファイルを要求する(ステップ1313)。
【0144】
第1CDNCFは、マニフェスト要求を受信し、ステップ1302を参照して先に説明したのと同様に、第2CDNCFと共同してクライアントに適した、新たなまたは更新されたマニフェスト・ファイルを生成する(ステップ1314)。例えば、一実施形態では、第2CDNCFが、第2CDN(この場合、第2配信ノード)における(殆ど)過剰負荷がかけられた配信ノードに参照するURLを、他の配信ノード、例えば、同じセグメントをホストする第4配信ノードDN4に対するURLと交換し、これらの参照を第1CDNCFに送ることができる。第1CDN Aにおいて配信ノードDN1を参照するURLは交換されない。何故なら、その配信ノードに対しては、過剰負荷シグナリングが第1CDNCFによって受信されないからである。第1CDNCFは、更新されたCDN間マニフェスト・ファイルをクライアントに送ることができる(ステップ1315)。クライアントは、更新されたマニフェスト・ファイルに基づいて、その内部セグメント・リストを更新し、新たなマニフェストにおいて列挙されたURLに、後続のセグメントを要求することによって、ストリーミングを継続することができる。
【0145】
クライアントは新たなまたは更新されたマニフェスト・ファイルを受信したので、第1CDNCFは、1304を参照して説明したステップを実行することによって、このクライアントに関連付けられたマニフェスト・ファイル情報をDCデータベースにおいて更新することができる。更に、第2CDNCFは、下流CDN(この場合第1CDNCF)に対する参照と共に上流CDN(この場合、第4配信ノードDN4)における配信ノードを含むCDN内情報を、第2CDN Bに関連付けられたDCデータベースにおいて、ステップ1305を参照して説明したのと同様に、更新することができる。このように、今後のある時点において、CDN Bにおいて過剰負荷問題が発生した場合、第2CDNCFがクライアントを再度他の配信ノードにリディレクトすることができると考えられる。
【0146】
したがって、図13に示す実施形態は、区分化コンテンツを多数のCDNにわたって配給することを可能にするという利点があり、各CDNは全てのセグメントの内部分集合のみをホストする。この実施形態は、図11を参照して論じたのと同じ種類の利点を提供するが、この場合、異なる配信ノードを多数のCDNにわたって分散させることができる。これの更に別の利点は、上流CDNが一部の作業負荷を他の下流CDNに外部委託することを可能にすることである。更に、この実施形態は特殊化CDNの使用も可能にする。例えば、一実施形態では、第1CDNが移動体デバイスに対する配信に合わせて構成され最適化され、主に低い方の品質のセグメントをホストするのでもよく、一方第2CDNは、HDプレイ・アウト・デバイスに対する配信に合わせて構成され最適化されて、主に高い方の品質のセグメントをホストするのでもよい。
【0147】
尚、以上で説明したCDNの実施形態では、更新マニフェスト・トリガをクライアントに送り、クライアントが更新されたまたは新たなマニフェスト・ファイルを要求することによって応答する代わりに、新たなまたは更新されたマニフェスト・ファイル(の一部)を直接クライアントに、このクライアントへのストリーミング制御チャネルを通じて送ることができることを申し述べておく。
【0148】
図14は、本発明の一実施形態によるマニフェスト・ファイルを示す。具体的には、図14は、特定の1組のセグメントを配信するように構成された配信ノードに対する参照、例えば、URLを含むマニフェスト・ファイルの一実施形態を示す。この特定例では、マニフェスト・ファイルは、ある配信ノードに格納された同じコンテンツに関係する、2つの異なる組のセグメント、例えば、低および高ビットレート・セグメントに対する参照を含むのでもよい。更に、このマニフェスト・ファイルは、チャネル設定情報を含むこともできる。一実施形態では、チャネル設定情報は、ストリーミング制御機能(または、CDNの場合、制御チャネル・サーバ機能)を含むネットワーク・ノートに対する参照を示すチャネル目標パラメータ1400を含むことができる。更に、他の実施形態では、チャネル設定情報が、チャネル・パラメータ1402、即ち、ストリーミング制御機能/制御チャネル・サーバ機能によって使用されるパラメータを含むこともできる。例えば、WebSocketの場合、パラメータはWebSocketサブプロトコル、WebSocketバージョン等の使用に言及するのでもよい。
【0149】
尚、いずれの1つの実施形態に関係して説明されたいずれの特徴も、単独で用いること、または説明された他の特徴と組み合わせて用いることもでき、更に他のいずれかの実施形態の1つ以上の特徴と組み合わせ用いることもでき、あるいは、他のいずれの実施形態のいずれの組み合わせと組み合わせて用いることもできることは、理解されてしかるべきである。本発明の一実施形態は、コンピュータ・システムと共に用いるプログラム生産物として実現することができる。このプログラム生産物のプログラム(1つまたは複数)は、実施形態の機能を定義し(本明細書において説明した方法を含む)、種々のコンピュータ読み取り可能記憶媒体上に収容することができる。例示的なコンピュータ読み取り可能記憶媒体には、(i)情報が永続的に格納される不揮発性記憶媒体(例えば、CD−ROMドライブによって読み取り可能なCD−ROMのようなコンピュータ内部にあるリード・オンリー・メモリ・デバイス、フラッシュ・メモリ、ROMチップ、またはあらゆるタイプのソリッド・ステート不揮発性半導体メモリ)、ならびに(ii)変更可能な情報が格納される書き込み可能記憶媒体(例えば、ディスケット・ドライブ内部にあるフロッピー(登録商標)・ディスク、またはハード・ディスク・ドライブ、またはあらゆるタイプのソリッド・ステート・ランダム・アクセス半導体メモリ)が含まれるが、これらに限定されるのではない。本発明は、以上で説明した実施形態に限定されるのではなく、実施形態は、添付する請求項の範囲内で変更することもできる。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9
図10
図11
図12
図13
図14