(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
したがって、従来技術においては、2つ以上のCDNドメインを通じて配給されるセグメントの効果的なローカライゼーションの必要性が存在する。特に、複数のCDNドメインにおけるセグメントのローカライゼーションのための方法およびシステムに対する必要性が存在する。セグメントは最小限の遅延でクライアントに配信され、これにより、例えばパニング、ズーミング、タイトリング、高解像度から低解像度バーションへのシームレスなスイッチングなどのようなユーザ相互作用の機能性を要求するコンテンツ再生(play-out)デバイスへのコンテンツ・サービス提供を可能にする。
【課題を解決するための手段】
【0008】
本発明の目的は、先行技術において公知となっている欠点の内少なくとも1つを削減または除去することである。そして、本発明の第1の態様において、好ましくはセグメント化またはフラグメント化されたコンテンツの位置特定をする方法を提供する。ここでは、セグメント化されたコンテンツは、第1のコンテンツ位置データベースに関連付けられた第1のコンテンツ配信ネットワークと第2のコンテンツ位置データベースに関連付けられた第2のコンテンツ配信ネットワークとを少なくとも介して配給することができる。当該方法は、第1コンテンツ位置データベースのデータベース・エントリへの1つ以上のポインタを含む、上記セグメント化されたコンテンツに関連付けられたマニフェスト・ファイル・テンプレートを抽出するステップ、上記第1または第2コンテンツ配信ネットワーク内の配信ノードの位置を決定するために上記1つ以上のデータベース・エントリを用いるステップであって、上記配信ノードが上記データベース・エントリに関連付けられたセグメントを配信するように構成されるステップ、および上記マニフェスト・ファイル・テンプレートのポインタを上記決定した位置で置き換えることによって、上記セグメント化されたコンテンツの位置特定をするために、マニフェスト・ファイルを生成するステップを含むことができる。
【0009】
一実施形態では、上記セグメント化されたコンテンツは、第1または第2コンテンツ配信ネットワークを介して配給される。
【0010】
一実施形態では、上記マニフェスト・ファイル・テンプレートは、上記第1コンテンツ配信ネットワークによって抽出することができ、および/または上記第2コンテンツ配信ネットワークによって抽出することができる。
【0011】
一実施形態では、上記マニフェスト・ファイル・テンプレートが、上記セグメント化されたコンテンツの少なくとも一部を、位置特定をするための位置特定要求の受信に応じて抽出することができる。
【0012】
更なる実施形態では、上記位置特定要求はユーザ(即ちクライアント)要求であり、好ましくは、セグメント化されたコンテンツを要求する。更なる別の実施形態では、上記位置特定要求は、ネットワーク内のコンテンツ制御機能、好ましくはIPTV制御機能、オプションとしてIMSベース機能から要求することができる。
【0013】
一実施形態では、本方法は、上記データベース・エントリの少なくとも1つについて、上記第1または第2のコンテンツ配信ネットワークが上記データベース・エントリの内少なくとも1つに関連付けられたセグメントを配信するのに最適かを決定するステップを含むことができる。
【0014】
他の実施形態において、本方法は、上記第2コンテンツ配信ネットワーク内の配信ノードの位置を決定するために、上記第2コンテンツ位置データベースへ要求を送るステップであって、上記配信ノードが上記データベース・エントリの内少なくとも1つに関連付けられたセグメントを配信するのに適しているステップを含む。
【0015】
一実施形態では、上記第2コンテンツ位置データベースに送られる上記要求は、転送され、オプションとして修正される、位置特定要求である。
【0016】
更なる実施形態では、上記第2コンテンツ位置データベースに送られる上記要求は、1つ以上のセグメント識別子を含む部分マニフェスト・ファイルを含むことができる。
【0017】
一実施形態では、上記決定された位置は、第2コンテンツ配信ネットワークから第1コンテンツ配信ネットワークへと送信される。
【0018】
更なる実施形態では、上記決定された一は、好ましくは更新された、部分マニフェスト・ファイルの一部として送信される。
【0019】
また他の実施形態では、上記好ましくは最適なコンテンツ配信ネットワークは、上記位置特定要求に基づいて、好ましくは上記要求に関連付けられた位置情報に基づいて決定することができる。
【0020】
一実施形態では、上記第1コンテンツ位置データベースにおける上記データベース・エントリが、セグメントを配信するように構成される配信ノードの位置特定をするための1つ以上のロケータを含む、データベース位置へのポインタを含むことができる。
【0021】
他の実施形態では、上記第1コンテンツ位置データベースの上記データベース・エントリが、上記第2コンテンツ配信ノードの上記コンテンツ位置データベースへの1つ以上のポインタを含む、データベース位置へのポインタを含む。
【0022】
他の態様において、本発明は、第1のコンテンツ位置データベースを備える第1のコンテンツ配信ネットワークから第2のコンテンツ位置データベースを備える第2のコンテンツ配信ネットワークに対し、セグメント化されたコンテンツの少なくとも一部を移動するための方法に関連する。本方法は、上記第1コンテンツ位置データベースのデータベース・エントリへの1つ以上のポインタを備える上記セグメント化されたコンテンツに関連付けられたマニフェスト・ファイル・テンプレートを抽出するステップ、上記マニフェスト・ファイル・テンプレートで識別されるセグメントの少なくとも一部についてセグメント測定基準を決定するステップ、上記セグメント測定基準に基づいて、1つ以上のセグメントを選択して上記第2コンテンツ配信ネットワークに移動するステップ、部分マニフェスト・ファイルを、上記選択した1つ以上のセグメントに関連付けられる上記マニフェスト・ファイル・テンプレート内のポインタを、上記選択したセグメントを配信するように構成された、上記第1コンテンツ配信ネットワーク内の配信ノードの1つ以上の位置で置き換えることによって生成するステップ、そして、上記部分マニフェスト・ファイルを上記第2コンテンツ配信ネットワークに送信するステップを含む。代替として、1つ以上のセグメントを第2コンテンツ配信ネットワークに移動する選択処理は、セグメント測定基準に基づくのではなく、別のもの、例えば好ましくはランダムに基づくものを有する。このような実施形態では、セグメント測定基準を決定するステップは、除外することができる。
【0023】
一実施形態において、本発明は更に、上記第2コンテンツ配信ネットワークに要求して、上記部分マニフェスト・ファイルで識別されるセグメントの少なくとも一部を収集するステップを含むことができる。
【0024】
更なる態様において、本発明は、セグメント化されたコンテンツの位置特定をするための制御機能モジュールに関することができる。ここでは、上記コンテンツが、第1のコンテンツ位置データベースに関連付けられた第1のコンテンツ配信ネットワーク、および第2のコンテンツ位置データベースに関連付けられた第2のコンテンツ配信ネットワークを少なくとも介して配給される。当該制御機能モジュールは、上記第1コンテンツ位置データベースのデータベース・エントリへの1つ以上のポインタを含むマニフェスト・ファイル・テンプレートを抽出し、上記第1または第2コンテンツ配信ネットワーク内にある配信ノードであって、上記データベース・エントリに関連付けられたセグメントを配信するように構成されている配信ノードについて位置を決定するために、上記1つ以上のデータベース・エントリを用い、ポインタを上記決定した位置で置き換えることによって、上記セグメント化されたコンテンツの位置特定をするためにマニフェスト・ファイルを生成するように構成される。
【0025】
更なる別の態様において、本発明は、クライアントに関することができる。ここでは、当該クライアントは、先に説明した制御機能モジュールと通信するように構成される。当該クライアントは、上記セグメント化されたコンテンツの少なくとも一部の位置特定をするために、位置特定要求を上記制御機能モジュールに送信し、上記第1および/または第2配信ネットワーク内の配信ノードに関連付けられた位置情報を含むマニフェスト・ファイルを受信し、そして、上記位置情報に基づいて、少なくとも1つの上記配信ノードにセグメントについての要求を送信するように構成される。 更なる実施形態では、上記制御機能モジュールは、第1のコンテンツ配信ネットワークに関連付けられることができる。上記クライアントは、第1コンテンツ配信ネットワーク、または第2コンテンツ配信ネットワークから上記マニフェスト・ファイルを受信するように構成される。
【0026】
本発明はまた、コンピュータの有するメモリ内で起動されると、先に説明した方法が有するステップを実行するように構成されるソフトウェア・コード片を備えるコンピュータ・プログラム製品に関することができる。
【0027】
本発明について、テンプの図面を参照してこれにより更に説明する。図面は本発明による実施形態を概略的に示すことになる。如何なる方法をもってしても、本発明がこれら特定の実施形態に限定されないことが理解されるべきである。
【発明を実施するための形態】
【0029】
図1は、本発明の一実施形態による、セグメント化されたコンテンツをクライアントに配信するためのコンテンツ配信システムを示す。コンテンツ配信システムは、コンテンツ配信ネットワーク(CDN)、例えば第1CDN102および第2CDN104、並びに、トランスポート・ネットワーク107を介して1つ以上のクライアント108に接続されるコンテンツ・ソース106を備えることができる。コンテンツ・ソースは、コンテンツ・プロバイダ・システムCPS、コンテンツ準備システム、または他のCDNに関連付けることができる。CPSは、コンテンツ、例えばビデオ・タイトルを消費者に供給するように構成することができ、消費者は、クライアントを用いてそのコンテンツを購入および受け取ることができる。
【0030】
通常、端末はコンテンツ処理デバイス、例えば、電子タブレット、スマートフォン、ノートブック、メディア・プレーヤのような(モバイル)コンテンツ再生デバイスに関する。実施形態の中には、端末を、セットトップ・ボックスや、または、コンテンツ再生デバイスにより将来の消費のためにコンテンツを処理および一時格納するように構成されるコンテンツ記憶デバイスとするものもある。
【0031】
各CDNは、配信ノード110,112,114および少なくとも1つの中央CDNノード116,118を備えることができる。各配信ノードは、コントローラ120,122,124およびコンテンツの格納およびバッファのためのキャッシュ126,128,130を備え、またはこれらに関するものとすることができる。各中央CDNノードは、外部ソース、例えばコンテンツ・プロバイダ若しくは別のCDNからのコンテンツ収集(ingestion)を制御するための収集ノード(ingestion node)(即ち、コンテンツ開始機能であるCOF(content origin function))125,127、情報を保持するために、凡そコンテンツをCDN内に格納したコンテンツ位置データベース134,136、並びに、コンテンツの1つ以上のコピーについて配信ノードへの配給を制御するため、およびクライアントを適切な配信ノードにリダイレクトする(処理はまた要求ルーティングとして知られている)ためのCDN制御機能(CDNF)123,128を備え、またはこれらに関するものとすることができる。配給は、CDN全体を通じてクライアントに対してコンテンツ配信の充分な帯域幅が保証されるように制御することができる。一実施形態では、CDNは、ETSI TS 182 019に説明されるCDNに関連してもよい。
【0032】
消費者は、要求をWebポータル(WP)132に送ることによって、コンテンツ、例えばビデオ・タイトルをCPS131から購入することができる。Webポータル(WP)132は、購買可能コンテンツを識別するタイトル参照を提供するように構成される。要求に応答して、クライアントは、CDNが有するCDNCFについてWPからのタイトル参照の少なくとも一部、および選択されたコンテンツを配信することが可能な位置情報、例えばURLを受け取ることができる。
【0033】
CDNCFは、1つ以上の配信ノードに関連付けられたクライアント位置情報を送ることができる。配信ノードは、クライアントに選択されたコンテンツを配信するように構成される。通例、CDNCFは、クライアントに選択されたコンテンツを配信するのに最適なCDN内の配信ノードを選択することができる。配信ノードを選択するための基準には、クライアントの位置、および配信ノードの処理負荷を含んでもよい。
【0034】
クライアントは、HTTPおよび/またはDNSシステムを含むさまざまな公知の技術を用いて、CDN内の配信ノードとコンタクトすることができる。更には、コンテンツをクライアントに配信するために、様々なストリーミング・プロトコルを用いることができる。このようなプロトコルには、HTTPおよびRTPタイプのストリーミング・プロトコルが含まれる。好ましい実施形態では、HTTP適応ストリーミング(HAS)、DVB適応ストリーミング、DTG適応ストリーミング、MPEG DASH、ATIS適応ストリーミング、IETF HTTP Liveストリーミング、およびこれらに関連したプロトコルのような適応可能ストリーミング・プロトコルが用いられることもある。
【0035】
CDNは、セグメント化されたコンテンツを収集および配給するように構成される。未だセグメント化されておらず、またはフラグメント化(fragment)されていないコンテンツはまた、時折、オリジナル・コンテンツ(Original Content)と称される場合もある。公知のセグメント化ストリーミング・システムとして、時分割、例えばHTTP適応ストリーミング(HAS)、クオリティ・ベースのセグメント化、例えばスケーラブル・ビデオ・コーディング(VCS)、および/または空間的なセグメント化、例えばタイル状ビデオ(tiled video)に基づくものであってもよい。これらシステムは、共通して、コンテンツが多数のセグメント(ピースまたはパーツ)で組織され、MPEGまたはAVIのような公知のトランスポート・コンテナ・フォーマットによりフォーマット化することができる。セグメントはまた、時折チャンク(Chunks)とも称される場合もある。セグメントは、それらの自体のURLによって別個にアドレス指定可能であり、また、ファイル・システム・パースペクティブから単一ファイルとして格納される。幾つかのHTTPベース・コンテンツ・ストリーミング技術では、代替としてフラグメント(Fragment)という用語が用いられる場合もある。フラグメントは、他のタイプのチャンクであり、コンテンツ・フラグメント化(コンテンツ・セグメント化の代替として)の結果として形成される。
【0036】
フラグメント化(または仮想セグメント化)(例えばマイクロソフト社のSmooth Streamingにおいて用いられる)では、同一のチャンク・コレクションに属する全てのチャンクまたはフラグメントが単一ファイルの一部として共に格納される。このタイプのチャンク化されたコンテンツを格納するのを可能にする数多くのコンテナ・フォーマットがあるものの、フラグメント化されたMP4が最も広く使用されている。フラグメント化について、タイムスタンプにより、バイト範囲により、または他の方法のいずれかにより、特定のチャンクは、関心を有することを一意に識別する識別子を用いて共通ファイルURLをサブフィックス(subfix)することによよってアドレス指定可能となる。本発明の実施形態はまた、セグメント化ではなくフラグメント化が用いられるシステムまたは技術に適用することに留意すべきである。つまり、本適用の目的では、従来技術にみられるように、セグメントという用語は、セグメント、フラグメント、またはより広い用語であるチャンクのいずれをも最適に反映するために使用することができる。
【0037】
セグメント間の関係は、特定のデータ構造で説明することができる。これより後はこのデータ構造をマニフェスト・ファイルと称するものとし、特定のファイル名の拡張子.mf,.xmlおよび.m3u8を用いて格納および識別することができる。このマニフェスト・ファイルは、1つ以上の配信ノードにおける異なるセグメントの位置および名前を更に記述することができる。
【0038】
セグメント、特にポピュラーなセグメントでは、CDN内の複数の配信ノードから抽出することができる。更に、特定の状況では、セグメントは、他のCDNドメイン内の配信ノードから抽出しなければならない。CDNCFは、セグメントが抽出される位置を管理することができる。そのためには、CDNCFは、コンテンツ位置データベース134,136を使用することができる。他の実施形態では、コンテンツ位置データベースは、ETSITS 182 019にて説明されるように、アセット位置機能(Asset Location Function:ALF)と関係するものとすることができる。
【0039】
図2は、本発明の一実施形態によるコンテンツ位置データベースを示す。コンテンツ位置データベースは、特定タイプのファイル名に関連付けられるエントリを含んだメイン位置テーブル202を備えることができる。各エントリは更に、位置ポインタを含む。位置ポインタは、CDNF(例えばCDNA)のCDNドメイン内または別のCDNドメイン(例えばCDN B)内の配信ノードを位置特定するための1つ以上のファイル・ロケータ、例えばURLを含むデータベース・レコード204−212を参照する。例えば、ファイル名「Movie−2」に関連付けられるデータベース・エントリは、「ビデオ・ファイル(Video file)」タイプのファイルに関連し、CDN Aの第1および第2の配信ノードに関連付けられる第1および第2のキャッシュを位置特定する2つのURLを含むデータベースをポイントする位置ポインタ「Movie−2_Location」を含む。
【0040】
同様に、データベース・エントリ216は、ファイル名「Movie−4」に関連付けられ、「静的マニフェスト・ファイル(Static Manifest File)」タイプのファイルに関連し、CDN A内の配信ノードへのURLを含むレコードに向けてポイントする位置ポインタ「Movie−4_Location」を含む。CDNAは、データベース・エントリで識別されるマニフェスト・ファイルを配信するように構成される。静的マニフェスト・ファイルのタイプは、ユーザ要求に基づき動的には適合されないが、CDNノード上に格納されているものと同一の形態でクライアントに配信されるマニフェスト・ファイルのことを指す。この静的マニフェスト・ファイルは、数多くのセグメントを識別し、ここでセグメントは、マニフェスト・ファイルそれ自体と同一の位置に格納される。
【0041】
更なるデータベース・エントリ218は、「Movie−5」に関連付けられ、所謂「マニフェスト・ファイル・テンプレート(Manifest File Template)」として識別され、このようなマニフェスト・ファイル・テンプレートを配信するように構成されるCDN A内の配信ノードのキャッシュを位置特定するためのURLを含むレコードに向けてポイントした位置ポインタ「Movie−5_Location」を含む。
【0042】
マニフェスト・ファイル・テンプレートのタイプは、数多くのセグメント名、例えばMovie−5_1を識別するマニフェスト・ファイルのことを指す。通常の(静的)マニフェスト・ファイルと対照的に、マニフェスト・ファイル・テンプレートは、特定セグメントを配信するように構成されるコンテンツ配信ノードへのURLを含まない。代替として、複数のセグメント名のそれぞれまたは少なくとも一部は、コンテンツ位置データベースのデータベース・エントリへのポインタ、例えば、cdncf.cdn_A.com/res/Movie-5_1.segに関連付けることができる。ポインタは、セグメントの位置(1または複数)に関する情報を見つけるのに用いることができる。
【0043】
以下に更に詳細に説明するように、マニフェスト・ファイル・テンプレートは、所謂動的マニフェスト・ファイル(DMF)を生成するために、CDNが使用することができる。なお、マニフェスト・ファイル・テンプレートは、エンド・ユーザには何ら配信されず、動的マニフェスト・ファイルをビルドするための基礎としてのみ使用されることに留意すべきである。
【0044】
動的マニフェスト・ファイルは、静的マニフェスト・ファイルの代替であり、セグメント化されたコンテンツの位置特定のために用いられる。ここでは、セグメントは、1つ以上のCDNドメイン内に位置する複数の配信ノードにわたって配給することができる。このようなセグメントの配給は、より多くの配信ノードに対し、より頻繁には要求されないセグメントよりも、より頻繁に要求される(即ちポピュラーな)セグメントを有する記憶を可能にし、その結果、このようなセグメントについて効率的な配信および記憶が保証される。
【0045】
動的マニフェスト・ファイルは、ユーザ要求に関連付けられた情報に基づいて保証することができる。例えば、動的マニフェスト・ファイルは、セグメント化されたコンテンツを要求しているユーザの位置に基づいて保証してもよい。ユーザの位置情報、例えばIPアドレスを用いて、CDNCFは、どの配信ノードがセグメントをユーザに配信するのに最適かについて決定することができる。
【0046】
更なるデータベース・エントリ220および222は、セグメントのタイプがMovie−5_1およびMovie−5_2に関連し、データベース・エントリで識別されるセグメントを配信するように構成された配信ノードの位置特定をするためのURLを含むレコードへの位置ポインタを含む。更にまた、位置ポインタMovie−5_1_Locationに関連付けられたレコードに示されるように、位置はまた、更なるCDNドメイン(CDNB)のCDNCF機能への参照として規定することができる。この場合、このような位置参照はまた、コンテンツ識別子を収容し、更なるドメイン(この例ではMovie-5.1. seg)内の特定のセグメントを一意に識別することができる。以下により詳細に説明するように、このような参照は、他のCDNドメイン内のセグメントを抽出する機構を可能にする。なお、1つのCDNドメインのCDNCFは、別のCDNドメインのコンテンツ位置データベースへの直接アクセスを有しないことを留意すべきである。別のCDNドメインの特定セグメントの位置を取得するために、通常は他のドメインが有するCDNF機能を通じて要求がなされることになり、ここでは、コンテンツ識別子が、必要とされるセグメントを識別するのに使用される。
【0047】
図3は、本発明の一実施形態による、マニフェスト・ファイル(MF)またはマニフェスト・ファイル・テンプレートについての包括的なデータ構造を示す。MFは、ヘッダ部304およびセグメント部306を含むことができる。ヘッダ部は、セグメント部において定義されたセグメントについてのグローバル・セグメント情報を含むことができる。グローバル情報には、ファイルの名前、セグメントのタイプおよびフォーマット、セグメント化のタイプ、並びにセグメント間の関係(例えばセグメント間の一時的または空間的な関係)が含まれる。セグメント部は、コンテンツ片(piece)を搬送する個々のセグメントに関するローカル・セグメント情報308を含むことができる。ローカル・セグメント情報には、セグメントの名前およびサイズ、再生期間、セグメント内に搬送されるコンテンツの解像度、セグメントの位置(例えば時間または場所に関する)、並びにCDNドメイン内の配信ノードを位置特定するためのロケータを含むことができる。すでに
図2を参照して説明したように、ロケータは(例えば静的MFにおいて用いられるような)URLの形態、または(例えばMFテンプレートで用いられるような)コンテンツ位置データベースにおけるデータベース・エントリへのポインタを有することができる。
【0048】
図4および
図5はフロー・チャートおよびシーケンス図を示し、それぞれが、本発明の一実施形態による、セグメント化された、好ましくは空間的にセグメント化されたコンテンツを収集する処理に関する。
【0049】
図4の処理は、CDNCFが、ソース、例えばコンテンツ・プロバイダ、CDNまたは他のコンテンツ処理エンティティから発生したコンテンツ収集についての要求を受信することで開始する(ステップ402)。要求は、位置情報、例えばURL、およびコンテンツ識別子を含むことができる。これに応答して、CDNCFはファイルを受信することができる(ステップ404)。ファイルは、マニフェスト・ファイルMFまたは通常のコンテンツ・ファイルのいずれかに関することができる。
【0050】
CDNCFがMFを検出する場合(ステップ406,408)、CDNCFは受信したMFをパースし(ステップ410)、その結果、MF内にリストされたセグメントに関連付けられた位置情報、例えばURLを抽出する。CDNCFは、次いで、受信したMFに基づきセグメントの収集を実行するよう、収集ノードに指示することができる(ステップ412)。任意で、この収集ノードは、例えば、トランスコーディングのような、受信したセグメントへの付加的な処理を実行することができる。
【0051】
処理負荷、データ・トラフィック、および/またはCDN内の配信ノードに関連付けられる地理的近接情報(CDNの測定基準(metrics))に基づいて、CDNCFは、次いで1つ以上の配給ノードに関連付けられたキャッシュにセグメントを配給することができる(ステップ414)。その後に、CDNCFは、セグメントが配給された配信ノードの位置に関連付けられた位置情報を付加することにより、MFを更新することができる(ステップ416)。なお、CDNCFが、更新されたMFに挿入するURLは、フルパスのURLで構成した絶対URL、またはMFそれ自体の位置に対するパスのみを収容した相対URLのいずれかとできることに留意すべきである。CDNCFは、配信ノードを用いて更新(修正)したMFを格納し(ステップ418)、CDNCFに関連付けられたコンテンツ位置データベース内に新規のエントリを生成することができる(ステップ420)。次いで、CDNCFは、「静的マニフェスト」タイプをMFに割り当て(ステップ422)、新規のレコードを生成して、更新したMFを将来の使用のために抽出される位置を格納し(ステップ424)、CDNCFを通じてアクセス可能なコンテンツ位置データベース内の新規エントリに対してポイントするURLを生成する(ステップ426)。このURLは、次いで、ソースに送ることができる(ステップ436)。
【0052】
ソースについてソース収集要求が通常のコンテンツに関連付けられている場合には、そのコンテンツは、1つ以上の選択された配信ノードにおけるキャッシュに配給することができる(ステップ428)。コンテンツ位置データベースにおいてファイルの新規データベース・エントリを生成することができる(ステップ430)。このエントリは、格納したファイルに関連付けられたURLを格納するレコード(ステップ432)や、データベース内の当該新規エントリへポイントするURL(ステップ434)を含む。このURLは、次いで、ソースに送ることができる(ステップ436)。
【0053】
図5のシーケンス図は、セグメントを収集するための方法についてより詳細に示す。この例では、CDNCFおよびソースは、コンテンツの収集を制御するHTTPベースのプロトコルを使用することができる。この処理は、ソースがコンテンツの収集要求(ingestion request)をCDNCFに送ることで開始することができる(ステップ502)。この要求は、Movie−4.smfという名前のMFへポイントするURLを含む。CDNCFは、MFを抽出することができ(ステップ504および506)、そして、そのMFをパースすることができる(ステップ508)。その結果、空間的なセグメント・ファイル位置を(例えば1つ以上のURLの形態で)抽出することができる。
【0054】
URLを用いて、CDNCFは、CDN収集ノードに、MFにおいて識別されるセグメントをフェッチ(fetch)するよう指示する(ステップ510)。セグメントを受信した(ステップ512−518)後に、収集ノードは、コンテンツの抽出およびCDN内の配信ノードのキャッシュへの配給に成功したことをCDNCFに通知することができる。
【0055】
CDNCFは次いで、そこからセグメントがMFに抽出されることになる配信ノードの位置を挿入することによってMFを更新することができる(ステップ520)。更新されたMFは、選択された配信ノードのキャッシュにセグメントと共に格納することができる(ステップ522)。MFの位置は、CDNCFに関連付けられたコンテンツ位置データベースに保存することができる(ステップ524)。更に、CDNCFは、応答をソースに送り戻すことができる(ステップ526)。ここで、この応答はCDNのCDNCFを通じてアクセス可能なコンテンツ位置データベースのエントリをポイントするURLを含むことができる。
【0056】
図6は、
図4および
図5を参照して説明した、セグメントの収集の前後におけるMFの部分的な例を示す。ソースから受信した静的MF602は、
図3を参照して説明したデータ構造を有することができる。MFはファイル名、例えばセグメント化のタイプ(この例では空間的なセグメント化)のようなセグメント化に関する情報、セグメント数、およびセグメント間の(空間的)関係を含むことができる。MFは更に、4つの別個のセグメントである、Movie−4−1.seg、Movie−4−2.seg、Movie−4−3.seg、およびMovie−4−4.segがソース・ドメイン内の特定の場所であるcache.source.com/res/ において格納されていることを示すことができる。
【0057】
セグメントの収集の後、CDNCFは、更新した静的MF604を生成することができる。この静的MF604は、(空間的な)セグメントであるMovie−4−1.seg、Movie−4−2.seg、Movie−4−3.seg、およびMovie−4−4.segを含んだ第1の配信ノードcache_1.cdn_A.com/res/ に向けてポイントするURLの形態で、更新したセグメント位置を含む。
なお、静的マニフェスト・ファイルおよび関連付けられたセグメントが複数の配信ノードにホストされ、絶対URLが用いられる場合には、MFは各配信ノードについて異なるURLを有することになるという点に留意すべきである。相対URLが用いられている場合には、異なる配信ノードのマニフェスト・ファイルは同一ものになろう。
【0058】
したがって、上記から、MFは、CDNへ制御したセグメント収集を可能にできることになる。収集の後、MFは、セグメントが格納されるCDNの位置を識別する。
【0059】
先に示したように、静的MFは所与の数のセグメントの位置を識別するMFに関する。MFは、ユーザに依存するのではなく、予め規定されているという意味において静的である。静的MFは、通常、MFそれ自体と同一の配信ノードに格納されたセグメント位置をポイントすることになるが、これは厳密には必要とされない。
【0060】
静的MFにおけるセグメントは、しかしながら、頻繁におよび余り頻繁にではなく、要求されたセグメントに関するものとしてもよい。
【0061】
したがって、セグメントの測定基準(例えば総合的なポピュラー度、即ち特定位置または領域からの要求の数)に基づいて、セグメントは、CDNおよび任意には他のCDN内の複数の配給ノードを通じて再配給することができる。次いで、セグメント化されたコンテンツについてMFの配信をユーザが要求するときに、所謂動的MFを、ユーザ要求と関連付けられた情報に基づいて生成することができる。例えば、動的MFは、配信ノードにおけるコンテンツのセグメントの位置を含んで生成することができ、セグメント位置の内幾つかはユーザの位置に近接し、その結果、要求されたセグメントの効率的なローカル配信が発生される。その一方で、他のセグメント位置は、余り頻繁に要求されないコンテンツのセグメントについて、ユーザからより遠隔なものとすることができる。
【0062】
動的MFは、所謂MFテンプレートに基づいて生成される。
【0063】
図7Aおよび
図7Bは、本発明の一実施形態による、静的MFをMFテンプレートに更新するフロー・チャートおよびシーケンス図を示す。
【0064】
図7Aの処理は、静的MFにおいて定義されるセグメントのセグメント測定基準(metrics)を集めることで開始することができる。セグメント測定基準は、セグメントが要求され視聴される頻度、そこからセグメントが要求されたユーザ位置、例えばIPアドレス、および静的MFにおいてセグメント間の差異を測定できる如何なるの他の測定基準にも関することができる(ステップ702)。重大な差異が存在する場合には、MFテンプレートを作成する処理がトリガされることができる(ステップ704)。この処理は、次のステップを含むことができる。即ち、静的MFの抽出(ステップ708)、静的MFからのセグメント位置の抽出(ステップ710)、およびセグメント位置についてコンテンツ位置データベースのエントリの作成(ステップ712)である。ここで、セグメント測定基準に基づいて、CDNCFは、1つ以上のセグメント、特に頻繁に要求されたセグメントのコピーをCDN内の2つ以上の配給ノードに配給するように決定することができる。したがって、データベース・エントリは、異なる配給ノードの位置特定をするために2つ以上のURLを含むことができ、これら配給ノードは、特定のセグメント(
図2の「Movie−5_1」のデータベース・エントリと同様であり、所定のセグメントMovie_5−1.segを配信するように構成される2つの配信ノードのURLを他の間で有するレコードへの位置ポインタを有する。)を配信するように構成される。
【0065】
その後に、静的MF内の位置をコンテンツ位置データベースのポインタで置き換えることによって、静的MFは、MFテンプレートに書き換えられることができる(ステップ714および716)。MFの「タイプ」を「マニフェスト・ファイル・テンプレート」に変更する(ステップ718)ことによって、MFテンプレート作成処理を終了することができる。
【0066】
図7Bは、MFテンプレートの生成についてより詳細に示す。この処理は、CDNCFが静的MFのセグメント測定基準における重大な差異を検出することで開始することができる(ステップ720)。CDNCFは、次いで、MFが格納された1つ以上の配信ノードが有するキャッシュから、静的MFのMovie−4.mfを抽出することができる(ステップ722および724)。CDNCFは、次いで、データベース内のセグメント位置を入力する処理を実行し、また、CDNのコンテンツ位置データベースへのポインタを含むMFテンプレートに静的MFを書き換えることができる(ステップ726および728)。その後に、(新規の)MFテンプレートは、1つ以上の配信ノードのキャッシュに送り戻され、そこで(古い、静的な)MFと置き換える(ステップ730−736)。
【0067】
図8は、本発明の一実施形態によるMFテンプレートの形成を示す。
図7を参照して説明した更新処理の間、古い静的MF802はMFテンプレート804に更新され、そこで、セグメント位置のURLは、ポインタによってCDNCFを通じてアクセス可能なCDN Aのコンテンツ位置データベースのエントリに置き換えられる。
【0068】
セグメントの測定基準に基づいてCDN(CDN A)内のセグメントの記憶を再配給する処理の後に、CDNCFは更に、特定のセグメントを他のCDN(CDN B)の方へ移動する処理を開始することができる。この処理は、
図9に示される。第1ステップ902では、セグメント測定基準は、視聴頻度、セグメントを要求したユーザのユーザ位置(IPアドレス)、および他の関連の測定基準に基づいて集めることができる。
【0069】
これらセグメント測定基準から、特定のセグメントが、CDN Aのグラフィカルな位置から離れた地理的位置に位置した大規模グループのユーザから要求されたということを、例えば明らかにすることができる。その場合、CDNCFは、これらユーザの地理的位置に近接するCDNBに対してそれらセグメントをプッシュするように決定することができる(ステップ904)。
【0070】
したがって、CDNCFは、CDN A内の配信ノードのセグメント位置を含む所謂部分マニフェスト・ファイル(部分MF)を用意および一時的に格納することができる(ステップ906および908)。部分MFは、MFテンプレートにおけるデータベース・エントリのサブセットがURLによって置き換えられ、それに対し、他のデータベース・エントリは削除されるという意味において「部分的」である。特に、CDNBによって収集されるのが必要となるセグメントに関連付けられたMFテンプレート内のデータベース・エントリは、それらセグメントを配信するように構成されたCDNA内の配信ノードを位置特定するURLで置き換えられる。CDN Bによって収集されることになっていないセグメントのデータベース・エントリへのポインタは、除去されると共に「空である(empty)」とマークされる。
【0071】
部分MFは、引き続いて、CDN BのCDNCFに送信される。CDNCFは、それらのセグメントの収集(ステップ910)をそれ自体のCDN内に行うために、部分MFの空でないセグメントのURLを用いることができる。CDNBでのセグメントの収集の後に、CDN AのCDNCFは、CDN BからURLを受信する。そのURLは、CDNBのCDNCFにポイントし、CDN Bで収集されたセグメントを一意に識別するコンテンツ識別子のリストを含む(ステップ912)。CDNAのCDNCFは、受信したURLを用いてそのコンテンツ位置データベースを更新する。
【0072】
代替として、CDN Bが部分MFにリストされたセグメントを収集した後に、CDN BのCDNCFは、そのCDNCFへのURLおよび収集したセグメントの位置を示す識別子のリストを送信するのではなく、CDNBによって更新された更新部分MFをポイントするURLを送信する。このURLは、収集したセグメントのCDN B内の関連する位置をこれより含む。CDNAのCDNCFは次いで、部分MFをCDN Bから抽出し、それをパースして、配給されたセグメントのURLを用いてCDN Aのコンテンツ位置データベースに読み込む(populate)ことができる。代替として、CDNAは、CDN Bから受信したURLおよびセグメント識別子に基づくクエリ文字列として生成したURLを用いてコンテンツ位置データベースに読み込むことができる。
【0073】
このように、CDN Aのコンテンツ位置データベースの特定のエントリは、他のCDNへのURL(CDN BのCDNCFへの位置ポインタを有する
図2の「Movie_5−1.seg」のデータベース・エントリ、およびCDNBにおいてセグメントMovie−5_1.segを抽出するためにCDN Bの特定セグメントを一意に識別する識別子と同様)を含むことができる。
【0074】
図10は、部分MFを用いた第1のCDNから第2のCDNへのセグメント収集についてより詳細に示したシーケンス図を示す。この処理は、特定のセグメントがCDNBに移されるべきとCDNFが決定することでトリガすることができる(ステップ1002)。そのために、CDNAのCDNCFは、部分MFのcdn_B−Movie−4.mfを用意することができ、これをキャッシュに格納することができる(ステップ1004)。その後、CDNAのCDNCFは、CDN BのCDNCFに要求を送信することでき(ステップ1006)、部分MFで規定されたセグメントを収集するようCDNのCDNFに指示する。部分MFは、収集要求内のURLに基づいてCDNBのCDNCFによって位置特定することができる(ステップ1008−1010)。代替として、CDNBのCDNCFに送信される収集要求の本体に、部分MFを含んでもよい。部分MFに基づいて、CDNBは引き続き、部分MFで規定されるセグメントを収集する。この収集処理は、
図5を参照して説明した処理と同様である(ステップ1012)。この処理の間、CDNBは、どの配信ノードがセグメントを配信するために構成できるかを自主的に決定することができる。収集処理が完了した後にCDNAが受信する唯一の情報は、CDN BのCDNCFへポイントしたURL、およびCDNBのセグメントを一意に識別する識別子のリスト、または、マニフェスト・ファイルの更なる抽出に用いることができるCDNBにおける更新した部分MFにポイントするURLおよびセグメント位置のいずれかである(ステップ1014)。
【0075】
CDN Aから受信した部分マニフェスト・ファイルに示されたセグメントを有するCDNBによる実際の収集への代替として、CDN B、好ましくはCDN BのCDNCFは、これら識別したセグメントを、CDN Bの位置(キャッシュ/ノード)に予め割り当てすることができ、また、これにより、これら位置を用いて部分マニフェストを更新することができる。実際のセグメントは、次いで、後の瞬間に、CDNBによって収集することができる。例えば、これらセグメントがマニフェスト・ファイルに基づいてクライアントによって要求されるときである。このような機構はまた、「プル(pull)」モデルと称される。
【0076】
図11は、
図10に関して説明した処理における、コンテンツ収集のために用いる部分MFの形成について示す。
図7を参照してより詳細に説明したように、部分MFは、MFテンプレート1102に基づいて構築することができる。ここで、セグメントMovie−4−1.segおよびMovie−4−2.segに関連付けられたMFテンプレートにおける最初の2つのデータベース・エントリは、これらセグメントを配信するよう構成された配信ノードを位置特定するURLによって置き換えられる。他の2つのデータベース・エントリは、空のままであり、その結果、それらセグメントはCDNBによって収集されない。
【0077】
したがって、
図3−
図10を参照して説明した処理に基づいて、CDNはMFテンプレートへのエントリおよび様々な配信ノードに格納されるセグエメントに関連付けられるエントリを含むコンテンツ位置データベースをビルドすることができる。当該様々な配信ノードは、CDNドメインおよび/または他のCDNのCDNドメイン内に位置することができる。MFテンプレートは、ユーザ要求に応答して、複数の動的MF(DMF)を作成するのに使用することができる。この動的MFは、要求されたセグメントを抽出するための位置を含み、セグメント測定基準、例えば頻度および要求の地理的位置に関連した測定基準に基づいて最適化される。動的MFの位置は、異なるCDNドメイン内の配信ノードの位置に関することができる。このようにして、動的MFは、別のCDNドメイン内に格納されたセグメント毎にリダイレクト遅延を甘受することなく、ユーザが、当該動的MFで特定される様々な配信ノードからセグエメントを効率的かつ直接に抽出するのを可能にする。この処理について、以下に、
図12−
図18を参照してより詳細に説明する。
【0078】
図12は、本発明の一実施形態による、ユーザ要求を提供する方法のフロー・チャートを示す。この処理は、CDCNFがコンテンツ名および識別子を含むユーザ要求を受信することで開始することができる(ステップ1202)。名前は、ファイル・タイプおよび位置に分解する(resolve)ことができる。更に、ユーザ要求に関連付けられたユーザ位置は、IPアドレスに基づいて決定することができる。
【0079】
CDNCFは次いで、コンテンツ位置データベースを用いて、分解されたファイル・タイプがMFテンプレートに関連するか否かを決定することができる(ステップ1204)。その場合ではないときは、CDNCFは、ユーザ位置および現在のCDNの負荷のような様々な測定基準を用いて、単一の配信ノードまたは要求されたコンテンツの配信に最適なCDNドメインを決定することができる。分解ファイル・タイプがMFテンプレートに関連する場合には、CDNCFは、コンテンツ一データベースを使用して、1つ以上の配信ノードのURLを含む動的MFを生成することができる(ステップ1208)。当該配信ノードは、要求されたセグエメントを共に配信するのに最適である。生成された動的MFは、CDNCFによって一時的に格納してもよく、また、DMFを位置特定するためのURLは、ユーザ応答内で送信される(ステップ1210)。
【0080】
図13は、本発明の一実施例によるDMFを生成する処理のシーケンス図を示す。この処理は、ユーザ要求、または例えばIPTV制御機能のようなネットワーク内のコンテンツ制御機能からの要求を送信することで開始することができる(ステップ1302および1304)。当該コンテンツ制御機能は、CDNのコンテンツ位置データベースのエントリMovie−4.mfへポイントするURL、およびCDN AのCDNFへのIPアドレスの形態でのユーザ位置を含む。CDNCFは、データベース・ルックアップを実行し、要求内のデータベース・エントリがMFテンプレートのタイプに関連するかを決定する(ステップ1306)。ここで、MFテンプレートであるMovie−4.mfは、CDN Aの特定の配信ノードのキャッシュに位置する。引き続き、MFテンプレートが抽出され(ステップ1308および1310)、また、MFテンプレートに基づいて、DMFがMFテンプレート内のデータベース・エントリを書き換えることによって生成される(ステップ1312)。DMFは、引き続き、ユーザまたはコンテンツ制御機能に送信される(ステップ1314)。
【0081】
図14は、本発明の一実施形態による、ユーザ要求に関連付けられたDMFの形成について示す。MFテンプレート1402は、特定のユーザ1404と関連付けられたDMFを生成するための基礎として用いることができる。DMFを生成する処理は、DMF内のセグメントをユーザに配信するのに最適な配信ノードが、2つのCDN、即ち、CDN AおよびCDN Bに位置するかを決定することができる。
【0082】
図15は、
図13で説明したユーザ要求またはコンテンツ制御機能に関連付けられたDMFを生成する処理についてのフロー・チャートを示す。この処理は、CDNCFがユーザまたはコンテンツ制御機能によって示されたコンテンツ要求に関連付けられたMFテンプレートを抽出することで開始することができる(ステップ1502)。
【0083】
その後に、ループが開始する。ここでは、MFテンプレート内のセグメント名は、コンテンツ位置データベース内のエントリへのポインタであり、位置(URL)に分解される。ユーザまたはコンテンツ制御情報(例えば、IPアドレス)に基づいて、セグメントに配信するのに最適なドメイン(例えば、最近接または最適利用可能なもの)が決定される(ステップ1504)。このドメインがユーザ要求またはコンテンツ制御機能要求に関連付けられたドメイン(CDNA)である場合には(ステップ1506)、セグメントを配信するのに最適なCDN A内の配信ノードの位置(URL)が選択される(ステップ1508)。このURLは、引き続き、MFテンプレートのセグメント名として挿入されることができる(ステップ1514)。
【0084】
他のドメインがセグメントを配信するのにより適していると決定される場合は、要求は、オプションとしてユーザ位置(例えばIPアドレス)を含むことができ、そのCDNのCDNCFに送信される(ステップ1510)。この要求に応答して、URLは、CDNから受け取ることができる(ステップ1512)。このURLは、引き続き、MFテンプレートのセグメント名に、付加されることができる(ステップ1514)。
【0085】
この処理は、MFテンプレート内の全てのセグメントについて繰り返され、これにより、DMFを形成し、CDNCFに関連付けられたキャッシュ上に一時的に格納される。URLは、このようにして生成されたDMFの位置特定をするために、生成することができる(ステップ1518)。
【0086】
本発明の一実施形態では、DMFを生成しているCDNCFは、他のCDNの特定のCDNCFに向けられた全ての位置特定要求を単一の要求に束ねる。このことは、異なるCDNSのCDNCF間の通信をより効率的なものとし、他のCDNドメインのCDNCFの負荷を低減するのを可能にする。そうするために、CDNAのCDNCFは、新規な部分MFを作成するとよい。新規な部分MFは、CDN BのCDNCFによって関連したセグメントを収集するのに使用されるのではなく、特定のユーザに対して最適なセグメントの位置についてCDN Aに教えるのに使用される。
【0087】
図16は、
図13においてより詳細に説明したような、ユーザ要求またはコンテンツ制御機能に関連付けられたDMFを生成する処理を例示したシーケンス図である。この処理は、MFテンプレートMovie_4.mfに基づいてDMFを生成するトリガで開始することができる(ステップ1602)。その後に、
図15を参照して説明した処理を用いて、MFテンプレートのセグメント毎に、セグメントをユーザまたはコンテンツ制御機能の所与の位置に配信する最適な配信ノードが決定される(ステップ1604)。2つのセグメントであるMovie_4−1.segおよびMovie_4−2.segについて、最適の配信ノードが、CDN Bのドメインに位置されるべきことが決定される(ステップ1606)。これら2つのセグメントについて、CDNCFは、CDNBのCDNCFのURL、CDN Bのセグメントを一意に識別する2つの識別子、およびユーザ位置を含むセグメント位置特定要求を転送する(ステップ1608)。代替として、先に説明したように、この要求は部分識別子を収容する部分MFを含むことができる。CDNBのCDNCFは、データベース・エントリを検査し、且つユーザ位置に基づいてCDN Bの配給に最適な配信ノードの位置(URL)を決定することにより、位置特定要求をハンドリングする(ステップ1610)。こうして決定された位置は、CDNAのCDNCFに戻され(ステップ1612)、また、MFテンプレートに挿入され(ステップ1614)、その結果、動的MFが完成する。
【0088】
したがって、
図16を参照して説明した処理は、CDN相互接続方式を提供し、1つのCDNが、1つ以上のセグメントの位置を他のCDNから要求するのを可能にする。ここでは、戻される位置は、ユーザ、またはネットワーク内のIPTV制御機能のようなコンテンツ制御機能に対するセグメントの配信に最適な配信ノードに関連するものとすることができる。
【0089】
図17は、本発明の一実施形態による、CDN AからCDN Bへのセグメント位置特定要求をハンドリングするフロー図を示す。第1ステップ1702では、CDNB、即ち受信ドメインは、CDN A、即ち発信ドメインから1つ以上のセグメントを位置特定する要求を受信する。この要求に応答して、CDNB、特にCDN BのCDNCFは、1つ以上のセグメント識別子を、タイプおよび位置、例えば(1セットの)URL(1または複数)に分解する。ここで、最適な配信ノードの位置が選択され(ステップ1704)、そして応答においてCDNAに戻される(ステップ1706)。一実施形態では、処理は再帰的なものであり、ここでは、CDNBはCDN Cに委任された幾つかのセグメントを有し、そして、CDNBは、
図15および
図16で説明した処理と類似の処理を実行する。
【0090】
図18は、本発明の一実施形態による、セグメント化されたコンテンツをDMFに基づいて第1および第2のCDNから抽出する処理についてのシーケンス図を示す。この場合には、ユーザ(クライアント)またはコンテンツ制御機能は、CDNAまたはCDN BからDMFを受信しており、そして、DMFにおいて規定されたセグメントの位置を決定する。例えば、
図18の例では、DMFの位置に基づいて、クライアントは、CDNBにおける第1および第2の配信ノードから第1および第2のセグメントを直接的に要求および受信することができ(ステップ1804,1806およびステップ1810,1812)、並びにCDN Aの配信ノードから第3のセグメントを要求および受信することができる(ステップ1816)。
【0091】
図10に関連付けて最後の段落で説明した代替案に関し、ステップ1804で要求したセグメントがCDN−ノードBによって予め収集されておらず(且つキャッシュ_5(cash_5)には未だに存在しない)場合には、ステップ1804は、キャッシュ5でのステップに続き、ステップ1806によりクライアントに配信されないうちに、「取り逃がした(missing)」セグメントをCDN Aから要求し、引き続きキャッシュ_5によるセグメントを受信する。このようなモデルはまた、「プル(pull)」モデルとも称される。
【0092】
したがって、動的に生成された複数のDMFは、異なるCDNドメインからのコンテンツの直接抽出を可能にする。DMFは、DMFで規定された異なるセグメント間の素早いスイッチングを可能にする。セグメント抽出は、リダイレクト・タイプの機構を必要とせず、異なるCDNドメインにセグメントを位置特定することができる。これにより、セグメント化されたコンテンツについて素早く且つ効率的な抽出を提供する。このようなコンテンツ抽出機構は、コンテンツ・サービスにおいて利用することができる。このサービスは、コンテンツとのユーザ相互作用、例えば、パニング(panning)、ズーミング、チルティング(tilting)、およびストリームの様々なバージョン間のシームレスなスイッチングを可能にする。
【0093】
任意の一実施形態に関連して説明した如何なる特徴もが、単独で、または説明した他の特徴と組み合わせて使用することができ、且つ、如何なる他の実施形態もが有する1つ以上の特徴との組み合わせ、または如何なる他の実施形態の任意の組み合わせにおいて使用することができるということが理解されるべきである。
【0094】
本発明の一実施形態は、コンピュータ・システムで使用するためのプログラム製品として実施することができる。プログラム製品のプログラム(1または複数)は、(本願明細書において説明した方法を含む)本実施形態の機能を規定し、且つ、様々なコンピュータ可読記憶媒体上に収容することができる。例示のコンピュータ可読記憶媒体は、以下を含むが、これに限定されるものではない。即ち、(i)非書き込み可能記憶媒体(例えば、CD―ROMドライブによって読み込み可能なCD―ROMディスク、フラッシュ・メモリ、ROMチップまたは如何なるタイプのソリッドステート不揮発性半導体メモリのようなコンピュータ内のリード・オンリー・メモリ・デバイス)であり情報が永続的に格納されるもの、そして、(ii)書き込み可能な記憶媒体(例えば、ディスケット・ドライブ内のフロッピー(登録商標)・ディスク、ハードディスク・デバイス、または如何なるタイプのソリッドステート・ランダム・アクセス半導体メモリ)であり、変更可能な情報が格納されるものである。本発明は、上記津名した実施形態に限定されることはなく、添付の特許請求した範囲内で変更することができる。