【文献】
大高 明浩,複数ネットワークへの同時接続を実現する名前解決技術,NTT技術ジャーナル,社団法人電気通信協会,2003年11月 1日,第15巻 第11号,34頁-37頁
(58)【調査した分野】(Int.Cl.,DB名)
前記キャッシュが第1の部分及び第2の部分に分割され、前記第1の部分が前記第1のタイプのコンテンツをキャッシュするためのものであり、前記第2の部分が前記第2のタイプのコンテンツをキャッシュするためのものである、請求項1に記載の装置。
前記コンテンツが第1のタイプのものであるか否かを判定する前記ステップが、前記要求に関連付けられたドメインをCDNエッジ・トラフィック・ドメインのリストと比較する、請求項1に記載の装置。
前記CDNから受信した前記キャッシュ処理命令が、TTL(time-to-live)満了時刻、「ノー・ストア」命令、及び前記コンテンツを前記キャッシュからパージするべきか否かを示すデータの1つである、請求項1に記載の装置。
第三者のコンテンツ配信ネットワーク(CDN)に関連して実行されるコンテンツ配信方法であって、前記CDNが、一連のエッジ・サーバ及び、前記CDNがサービスする1つ以上のコンテンツ・プロバイダ・ドメインに対して権限を有するDNSを含むものであり、
前記方法が、
前記CDNとは別個のネットワークにおいてキャッシュを配備し、
前記キャッシュと少なくとも1つのエッジ・サーバとの間に情報チャネルを確立し、
前記情報チャネルを用いて前記コンテンツ・プロバイダ・ドメインに関連付けられたコンテンツをどのように前記キャッシュから供給するかを制御すること、
を含み、
前記1つ以上のコンテンツ・プロバイダ・ドメインに関連付けられた所与のコンテンツに対する要求に応答して、前記コンテンツが前記キャッシュ内に存在して新しいものである場合に、前記キャッシュが前記所与のコンテンツに対する要求に同期して前記CDNと通信することにより、前記情報チャネルを介して前記CDNから少なくとも1つのキャッシュ処理命令を受信し、前記所与のコンテンツをどのように前記キャッシュから供給するかを制御することを特徴とする方法。
【発明を実施するための形態】
【0013】
図1に示すような既知のシステムにおいて、分散コンピュータ・システム100をCDNとして構成し、インターネットに一連のマシーン102a−102nが分散していると想定する。多くの場合、マシーンの多くはインターネットのエッジの近傍に、すなわちエンドユーザ・アクセス・ネットワークに又はそれに隣接して配置されたサーバである。ネットワーク・オペレーションズ・コマンド・センタ(NOCC)104は、システム中の種々のマシーンの動作を管理する。第三者、例えばウェブ・サイト106が、コンテンツ(例えば、HTML、埋め込まれたページ・オブジェクト、ストリーミング・メディア、ソフトウェア・ダウンロード等)の配信を分散コンピュータ・システム100に、特に「エッジ」サーバにオフロードする。多くの場合、コンテンツ・プロバイダは、所与のコンテンツ・プロバイダ・ドメイン又はサブ・ドメインを(例えばDNS CNAMEによって)サービス・プロバイダの権
限あるドメイン・ネーム・サービスにより管理されるエッジ・トラフィック・ドメインにエイリアシング処理することによってそのコンテンツ配信をオフロードする。このようなコンテンツを希望するエンド・ユーザを分散コンピュータ・システムに差し向けることによって、より確実にかつ効率的にコンテンツを得ることができる。詳しくは図示しないが、分散コンピュータ・システムはその他のインフラストラクチャ、例えばエッジ・サーバから使用及び他のデータを収集し、そのデータを1つの領域又は一連の領域を通して集約し、これを他のバックエンド・システム110、112、114、及び116に通すことによって、モニタリング、ロッギング、警告、請求書作成、管理その他の運用管理機能を容易にすることができる分散データ収集システム108も含むことができる。分散ネットワーク・エージェント118は、ネットワーク及びサーバ負荷をモニターして、ネットワーク、トラフィック、及び負荷データを、CDNの管理下にあるコンテンツ・ドメインに
対して権
限を持つDNS機構115に提供する。分散データ伝送機構120を利用することによって、制御情報(例えばコンテンツを管理し、負荷平衡を容易にする等を目的とするメタデータ)をエッジ・サーバに配分することができる。
【0014】
一実施形態においては、上述のCDNリソースは、既存のインターネット・インフラストラクチャ(第三者のネットワーク、コロケーション設備、サーバ、ルータ等)上の「オーバーレイ」として実施される。
【0015】
図2に示すように、所与のマシーン200は、1つ以上のアプリケーション206a−206nをサポートするオペレーテイング・システム・カーネル(Linux又は変形等)204を動作させるコモディティ・ハードウェア(例えばIntel Pentiumプロセッサ)202を含む。コンテンツ配信サービスを容易にするため、例えば所与のマシーンは典型的に、HTTP(ウェブ)プロキシ207、ネームサーバ208、ローカル・モニタリング・プロセス210、分散データ収集プロセス212等の一連のアプリケーションを実行する。ストリーミング・メディアでは、マシーンは通常、サポートされるメディア・フォーマットの要件に応じて、Windows Media Server(WMS)又はフラッシュ・サーバ等の1つ以上のメディア・サーバを含む。
【0016】
CDNエッジ・サーバは、好ましくは構成システムを利用するエッジ・サーバに配分されている構成ファイルを利用して、好ましくはドメイン特化型、カスタマ特化型の1つ又は2つ以上の広範なコンテンツ配信特性を提供するように構成されている。所与の構成ファイルは、XMLをベースとし、1つ以上の高度のコンテンツ処理特性を容易にする一連のコンテンツ処理規則及び命令を含むことが好ましい。構成ファイルは、データ伝送機構を介してCDNエッジ・サーバに配信することができる。米国特許第7,111,057号は、エッジ・サーバ・コンテンツ制御情報を配信及び管理するための有用なインフラストラクチャを開示しており、これ及び他のエッジ・サーバ制御情報は、CDNサービス・プロバイダ自体、又は(エクストラネット等を介して)オリジン・サーバを運用するコンテンツ・プロバイダ・カスタマによって設定することができる。このコンテンツ制御情報をエッジ・サーバで受信したコンテンツ要求に適用するための技法が、米国特許第7,240,100号に記載されている。この開示内容は引用により本願にも含まれるものとする。この開示によれば、クライアント要求は、CDNの権
限あるDNSによって識別されたエッジ・サーバで受信される。クライアント要求はHTTPホスト・ヘッダを含み、そのコンテンツが最初にチェックされて、この要求がCDNの管理下のコンテンツに対するものである(従って、コンテンツが以前に他のものによって要求されたことがあり今なおキャッシュ内に存在するならばエッジ・サーバ・キャッシュで利用可能であり得る)ことを検証する。要求がCDN管理コンテンツに対するものである場合、要求にXML構成内の規則を適用し、適切な応答をクライアント要求に戻す。
【0017】
CDNは、米国特許第7,472,178号に記載されたもののような記憶サブシステムを含むことができる。CDNは、カスタマ・コンテンツの中間キャッシングを提供するためにサーバ・キャッシュ階層を運用することができる。このようなキャッシュ階層サブシステムの一例が米国特許第7,376,716号に記載されている。CDNは、米国特許出願公開公報第20040093419号に記載されたように、クライアント・ブラウザ、エッジ・サーバ、及びカスタマ・オリジン・サーバ間でセキュアなコンテンツ配信を提供することができる。これに記載されたセキュアなコンテンツ配信は、一方ではクライアントとエッジ・サーバ・プロセスとの間で、他方ではエッジ・サーバ・プロセスとオリジン・サーバ・プロセスとの間でSSLベースのリンクを実施する。これによって、SSLによって保護されたウェブ・ページ及び/又はそのコンポーネントを、エッジ・サーバを介して配信することができる。
【0018】
エクステンダ
上述のことを背景として、ここで本開示の主題について説明する。本開示によれば、CDN「エクステンダ」は、1個のソフトウェア又は装置(このようなソフトウェアを含むラック搭載型の機器等)であり、これは、(1)CDN対応コンテンツを供給することができ、(2)これをCDNの制御下で実行するが、(3)必ずしもCDNの一部として完全に管理されない。これらのプロパティを以下で説明する。
図3に見られるように、エクステンダ300はCDNの配信機能を、CDNの完全に管理されたサーバを(技術的又は他の理由で)配備することができないネットワーク内に深く拡張する。この機能は、モバイル・ネットワーク、有線ネットワーク、又はCDNオーバーレイ・ネットワーク・リソース及びサービスが利用可能でない又は実現されない他のいずれかのネットワーキング環境において実施可能である。
【0019】
「エクステンダ」という用語は記述の目的で用いており、開示する主題の範囲を限定するために用いるものではない。
【0020】
一般化すると、エクステンダはCDNのエッジを越えてパッシブ・ウェブ・キャッシング・プロキシとして動作する。通常、エクステンダは、CDNにおけるカスタマ構成メタデータに直接アクセスせず、要求をCDNエッジに転送してエッジから受信した応答ヘッダに基づいてコンテンツをキャッシング/供給することによってCDNとインタラクトする。
【0021】
好ましくは、エクステンダはCDNの一部として完全に管理される必要はないが、いくつかのその機能を利用する。これについては後に説明する。このため、エクステンダはパブリック・ルーティング可能なインターネット・プロトコル(IP)・アドレス又はインターネットに対するオープン・ポートを有する必要はない。CDNネットワーク・オペレーションズ・コマンド・センタ(
図1のNOCC104等)は、これをモニターする必要はない。また、エクステンダは分散データ収集サービス(
図1のシステム108等)にリポートする必要はない。同様に、CDN NOCC103は、構成、プロビジョニング、及び/又は運営・管理のためにエクステンダに対する(例えばSSH等を介した)アクセスを確保する必要ない。NOCCはエクステンダに対するソフトウェア更新をインストールする必要はなく、エクステンダは構成データ更新又は他の制御データを受信する必要はない。エクステンダは、CDNマッピング・サービスが提供するいずれのマッピング制御のもとにもある必要はない。簡潔に言えば、エクステンダはサービスとして管理される必要はない。後に説明するように、エクステンダはネットワーク・オペレータに提供されるソフトウェア又はデバイスであり、この管理及びモニターはそのネットワーク・オペレータに任される。
【0022】
エクステンダは、CDNの一部として必ずしも管理されることはなく、完全に管理されることもないが、全ての形態のCDNコンテンツ(すなわちCDNを介してCDNSPが配信するためにコンテンツ・プロバイダによってオフロードされたコンテンツ)を配信することが好ましい。更に、エクステンダは、オンデマンド・メディアを含むキャッシャブル・コンテンツをキャッシュ及び配信することができる。また、エクステンダは、非キャッシャブル・コンテンツ、セキュアなコンテンツ、及びライブ・メディアを配信することができる。
【0023】
CDNコンテンツを配信するために、エクステンダはCDNの制御下で動作する。この制御は必須である。なぜなら通常、正しいコンテンツがカスタマ・メタデータ規則に従って配信されることを(CDNカスタマが)希望するからである。更に、CDNSPはそのコンテンツがエクステンダのキャッシュから配信される場合であっても、配信についてそのカスタマ(例えばコンテンツ・プロバイダ)に課金することを希望する。同様に、CDNカスタマ(コンテンツ・プロバイダ)はそのコンテンツの配信をモニターしリポートすることを希望する。
【0024】
この制御を容易にするため、エクステンダは好ましくは全ての要求について、好ましくは本明細書では「情報チャネル」と称することがあるHTTPベースのアプリケーション・プログラミング・インタフェース(API)を用いてCDNリソース(例えば完全に管理され構成されたCDNサーバ)と通信する。具体的には、本明細書の技法に従って、エクステンダがCDNコンテンツに対する要求を受信した時はいつでも、すでにそのコンテンツがキャッシュされているか否かには関わらず、エクステンダはCDNサーバに対してHTTP要求を行うことが好ましい。通常は完全に管理されたCDNサーバは、次いで(コンテンツのための)メタデータ規則を用い(適用し)、HTTP応答を返信して、エクステンダが受信した要求に対してどのように応答するべきかをエクステンダに命令する。好ましくは、CDNサーバのHTTP応答は、必要な場合に配信されるデータと、必要に応じてエクステンダがそのローカル・キャッシュ内でそのデータ・オブジェクトを正しくインデックスすることを可能とする適切なキャッシュ・キーと、を含む。CDNサーバ(典型的にエッジ・サーバ)は、要求内の情報を用いて、ログを記述し(例えば請求書作成及び履歴リポートのため)、リアルタイム・リポートのためにデータをデータ収集システム108に記述し、他のいずれかの必要なアクションを実行する。
【0025】
エクステンダは、CDNカスタマ・コンテンツを供給することに加えて、キャッシャブルな非CDNカスタマ・コンテンツにトランスペアレントなキャッシングを行うことができる。トランスペアレントなキャッシングにより、エクステンダはインラインで実施され、一連のエンド・ユーザ
の全てのHTTP要求を受信する。CDNコンテンツに対する要求の場合、エクステンダはエクステンダAPIを用いて上述のように動作する。非CDNコンテンツの場合、エクステンダは従来のトランスペアレントなキャッシュのように動作する。しかしながら、従来のトランスペアレントなキャッシュとは異なり、エクステンダはURIに加えて、データ・オブジェクトを一意に識別しキャッシュするための情報(コンテンツ長及びチェックサム等)を用いることができる。
【0026】
図4は、CDNコンテンツ及び非CDNコンテンツの双方を処理する「デュアル式」に動作するエクステンダの代表的な動作を示す。この動作は、プロセッサで実行される一連のプログラム命令としてソフトウェアで実施される。動作はステップ400で開始し、エクステンダにおいてエンド・ユーザからの要求を受信する。上記のように、エクステンダは、CDNオーバーレイ・ネットワークとは別個のネットワーク内に又はこのネットワークに関連付けて配置されているが、エクステンダはエクステンダAPIを介してCDNとインターオペレートする機能を有する。ステップ402において、要求がCDNカスタマ・コンテンツに対するものであるか否かを判定するためにテストを実行する。この判定を行うための簡単な技法について、後に説明する
図5を参照して以下に記載する。ステップ402におけるテストの結果、要求がCDNカスタマ・コンテンツに対するものであることが示されると、ルーチンは分岐してステップ404に進む。ステップ404において、要求されたコンテンツがすでにエクステンダのキャッシュ内に存在するか否かを判定するためにテストを実行する。存在する場合、ルーチンは続いてステップ406に進み、IMS(if-modified-since)要求をCDNに(及び、特にCDNDNSによって決定されるようなCDNエッジ・サーバに)送信する。CDNから受信した応答に基づいて、ルーチンは続いてステップ408に進み、エクステンダは要求側のエンド・ユーザに適切なHTTP応答コード又及び/又はコンテンツ要求を供給する。しかしながら、ステップ404の
テストの結果、要求されたコンテンツがエクステンダのキャッシュ内に存在しないことが示された場合(又はコンテンツが存在するが新しくない場合)、ルーチンは分岐してステップ410に進む。このステップでは、エクステンダはコンテンツをフェッチするためのHTTPGET要求をCDNに送信する。CDNから受信した応答に基づいて、プロセスは前述したように続いてステップ408に進む。
【0027】
ステップ402におけるテストの結果、要求されたコンテンツがCDNカスタマ・コンテンツでないことが示された場合、ルーチンは分岐してステップ412に進む。このステップでは、コンテンツがエクステンダ・キャッシュ内に存在するか否かを判定するためにテストを行う。ステップ412におけるテストの結果がネガティブである場合、エクステンダはGET要求をオリジン・サーバ(権威エンティティ)に送信する。これがステップ414である。応答に基づいて、ルーチンは続いて前述したようなステップに進む。しかしながら、ステップ414におけるテストの結果、コンテンツがエクステンダ・キャシュから供給されるために利用可能であることが示された場合、ステップ416においてコンテンツが有効であるか否かを判定するためにテストを行う。有効である場合、ステップ418においてコンテンツを要求側エンド・ユーザに供給する。コンテンツがキャッシュ内にあるが有効でない場合、エクステンダはIMSをオリジン・サーバに送信してコンテンツを有効化することができるか否かを判定する。これがステップ420である。応答に基づいて、ルーチンは続いて前述のようにステップ408に進む。これによりプロセスは完了する。
【0028】
このように、エクステンダは、非CDNコンテンツのためのインテリジェントでトランスペアレントなウェブ・プロキシとして機能し、一方でCDNカスタマ・コンテンツも供給する(更に、適宜キャッシュする)。プロセス・フローのステップ402は、エンド・ユーザ要求に関連付けられたドメインがCDNカスタマに属するか否かの判定を含む。このドメインはHTTPホスト・ヘッダに含むことができる。この判定を行うための簡単であるが効率的な方法は、ドメインに対するDNSルックアップをエクステンダに実行させることである。通常、CDNカスタマでは、CNAME(正規名:canonical name)のトップ・レベル・ドメイン(TLD)・サフィックスは、1つ以上の一連のCDNエッジ・トラフィック・ドメインに属するネームである。最後のCNAMEのTLDドメインをエッジ・トラフィック・ドメインのリスト(このようなネームはめったに変化しないので、これは比較的短いはずである)と比較することによって、エクステンダは、コンテンツがCDNカスタマ・コンテンツであるか又は非CDNカスタマ・コンテンツであるかを判定することができる。
図5は、カスタマ・ドメイン「...bestbuy.com」に対するサンプルのDNSルックアップを示し、その結果、CDNに関連付けられた(すなわちCDNを識別する)TLDサフィックス「akamai.net」を含む最後のCNAMEを戻す。DNSルックアップの実行の代替的な手法は、エクステンダが利用する(subscribe)ことができるエッジ・トラフィック・ドメインのリストを公表する等によって、HTTPヘッダ内のこのような情報を渡すことである。上述の(DNSルックアップを用いた)手法は有利であるが、その理由は、情報(カスタマがCDNに対する特定のドメインをCNAMEしたか否か)を1つのDNS TTL(time-to-live)内で全てのエクステンダ・インスタンスに伝播可能であるからであり、更に、エクステンダからのDNSルックアップによってトラフィックを供給するためのコンテンツ・プロバイダの地勢に基づいたポリシーを捕獲するからである。
【0029】
上述のように、エクステンダは、CDNエッジ・サーバからのコンテンツ及びキャッシュ制御命令に関する受信情報に基づいてCDNカスタマ・コンテンツをキャッシュ及び供給する。このため、実質上、CDN(及び特にエッジ・サーバ)はエクステンダのための「オリジン」・サーバとして機能する。エクステンダがCDNカスタマのコンテンツに対する要求を受信するたびに(上述のようにDNSルックアップにより判定される)、エクステンダはCDNサーバ(DNSルックアップが戻したIPの1つ)に前進し、コンテンツをフェッチするか、又はコンテンツがすでにキャッシュ内に存在する場合はこれを有効化する(好ましくはIMSによって)。デフォルトで、この前進要求は、エクステンダのキャッシュ内のオブジェクトについて同期して行われる。あるいは、前進動作は、例えばコンテンツ・プロバイダ、エクステンダが配置されているネットワークに関連付けたネットワーク・オペレータ等の要求時に非同期で実行することができる。好ましくは、エッジ・サーバが何バイトをエンド・ユーザに供給したかを正確にログすることを可能とするために、エクステンダからの前進要求は、エンド・ユーザがIMS要求を行ったか否かを示す適切なHTTPヘッダを含む。エンド・ユーザに部分的なオブジェクトが供給された場合、エクステンダはCDNエッジ・サーバにHTTP POST要求を行って、コンテンツ・プロバイダの代わりに何バイトを供給したかを正確に示すことができる。
【0030】
CDNエッジ・サーバがエクステンダに応答する場合、1つ以上のHTTP応答ヘッダにおいて一部又は全ての利用可能なキャッシュ制御情報を伝達することが好ましい。このキャッシュ制御情報は、例えばTTL満了時刻、(必要な場合)コンテンツ・プロバイダ・カスタマに固有の適切なキャッシュ・キー、オブジェクトが「ノー・ストア(no-store)」であるか否か、キャッシュされたオブジェクトをパージするべきか否か(パージに明示ヘッダは必要ない。HTTP404の供給によってオブジェクトをキャッシュから削除すべきことをエクステンダに知らせることができる)等を含む。所望の場合、CDNエッジ・サーバは、エクステンダによってプリフェッチするべきオブジェクトのリストを含むヘッダを用いて応答することができる。更に、CDNエッジ・サーバは、特定のメタデータ・タグをエクステンダに伝達して、そのコンテンツ処理動作を更にカスタマイズすることができる。更に別の代替案では、CDNエッジ・サーバは、オブジェクトのポピュラリティに関するヒントをエクステンダに与えるヘッダを含む。この情報は次いでエクステンダのキャッシュ置換アルゴリズムにおいて用いられる。
【0031】
好ましくは、エクステンダは、ユーザが発生したコンテンツ(これに限定されない)を含む第三者のコンテンツをキャッシュ及び供給する。所望の場合、エクステンダは、ターゲットの一連の(非CDN)コンテンツ・プロバイダのみからのコンテンツをキャッシュするように構成することができる。このように、エクステンダは、既製のトランスペアレントなキャッシュよりもはるかに高いキャッシュ・ヒット率を与える。このために、エクステンダは好ましくはウェブ・ベース又はコマンド・ライン構成インタフェースを含み、これによってオペレータは、エクステンダ配備によってキャッシュすべきドメイン、サブディレクトリ、及びコンテンツ・タイプ/ファイル拡張子のリストを動的に構成する。一実施形態において、このターゲットのトランスペアレントな構成はネットワーク・オペレータ又はCDNによって手動で発生される。構成は、オペレータのネットワークにおけるエクステンダ・インスタンスについて同一であってもよいし異なる場合があってもよい。
【0032】
明確に定義されたHTTPベースのAPIを用いることによって、エクステンダはCDNにとって通常のブラウザと極めて似たものに見える。一実施形態では、エクステンダから(CDNに対する)HTTP要求は、米国特許第6,108,703号及び関連特許に記載されたもの等の従来のCDNベースのマッピング技法を用いて最も近いCDNエッジ・サーバにマッピングされるが、これは必須ではない。エクステンダが特定のCDNエッジ・サーバ又はエッジ・サーバ・クラスタの位置を特定する他の方法もあり得る。所望の場合、エクステンダはCDNサーバとの通信において永続的な接続及び他の最適化されたプロトコルを用いることができる。永続的な接続は、コンテンツのいくつかのドメイン又はクラスについて使用可能である。最適化されたプロトコルの例は、TCPウィンドウ・サイズ及びRTOを履歴データに基づいて調節するもの等とすることができる。エクステンダは、多数のエッジ・サーバから平行してコンテンツをフェッチすることでスループットを最大化することができる。
【0033】
好ましくは、エクステンダはCDNエッジ・サーバとのインタラクションが可能となる前に認証され権
限を与えられる。これによって、CDNサーバが正当なエクステンダに対してのみ応答を配信することが確実となる。この目的のためにHMACキー交換プロトコルを使用可能である。同様に、好ましくは、CDNはエクステンダ・インスタンスを監査して、正当でないとわかった場合にクレデンシャルを取り消すことができる。これを達成するため、API及び、正当なエクステンダであることの意味を定義する動作仕様に対してテスト・スイートを評価する。エクステンダ・クレデンシャルは、このテスト・スイートに合格したソフトウェア又はデバイスにのみ与えられ、そのソフトウェア又はデバイスが後にテスト・スイートによる監査に不合格となるとクレデンシャルは取り消される。1つの限定でない実施形態では、クレデンシャルは認証及び権
限付与のための標準的な機構を用いた共有の秘密又は証明書の形態である。クレデンシャルは、各CDNエクステンダ又はエクステンダ・ファミリーのための識別子を含むことができる。例えば、所与のネットワークで配備される全てのエクステンダは、リポートの目的のために共通の識別子を共有することができる。これらのエクステンダがAPIを呼び出した場合、その識別子はCDNにログされ、これが例えばエクストラネット(ウェブ・ベースのセキュアなカスタマ・ポータル等)を介したリポートを可能とする。次いで、ネットワーク・オペレータはポータルにアクセスし、そのネットワークでエクステンダからどのくらいのトラフィックが配信されたかを示すリポートを見ることができる。好ましくは、エクステンダが供給した全ての第三者のトラフィックをCDN(エッジ・サーバ)にリポートして、これを後のデータ収集システムによるリポートのためにログ及び処理することができる。ログ・ボリュームを低減するため、(エッジ要求及び供給したバイト、オリジン要求及びフェッチしたバイト等に関する)データは、全てのヒットを別個にリポートするのでなく集約ベースでリポートする。
【0034】
好ましくは、エクステンダはネットワーク固有のプロトコル最適化をサポートする。多くの場合、ネットワークプロパティ(帯域幅、レイテンシ、ジッタ等)は、上流セグメント(エクステンダと、エクステンダがマップされるCDNエッジ・サーバとの間)に比べて下流セグメント(エクステンダとエンド・ユーザ・デバイスとの間)では大きく異なる。エクステンダにおいてTCPを終端させることによって、2つのセグメント間で異なるTCPパラメータ及び異なる最適化を適用することができ、これによって全体的なスループット及び効率を向上させる。
【0035】
また、エクステンダは、低レベルのネットワーク情報を捕
捉し、これをコンテンツ適合(アダプテーション)及び認証の目的のためにアプリケーション・レイヤに渡す機能も有することができる。例えば、モバイル・ネットワークに統合したエクステンダは、モバイル通信プロトコルに埋め込まれた低レベルのデバイス情報を見ることができる。デバイス識別及び関連情報を取得するため、エクステンダはネットワーク・オペレータの1つ又は複数の制御チャネルにアクセスする。このような場合、エクステンダはその情報を抽出し、それをエクステンダがCDNに対して行うHTTP APIコールに含ませるように構成することができる。ここでデバイス情報はHTTPヘッダにあるので、このような情報をCDN(又はカスタマのオリジン・インフラストラクチャ)において用いて、ターゲットのモバイル・デバイスのためのコンテンツ適合を行うことができる。
【0036】
同様に、認証のため、低レベルのモバイル通信プロトコルに存在する識別子(例えばSIM識別子)を抽出し、CDNに返されるHTTP APIコールに含ませることができる。ここでこの識別子はHTTPヘッダにあるので、識別子をカスタマの認証システムの一部として用いることができる。これらのSIM識別子は強力な認証コードであり、これによって簡単な形態の2要素認証を可能とする。例えば、モバイル・ネット・バンキング(e-banking)・アプリケーションでは、モバイル・デバイス及びパスワードを有することでユーザを認証することができる。更に、HTTPレイヤにおけるこの統合は、カスタマ(この例では銀行)がCDNと単一の統合を行うだけで良いことを意味する。それらは各モバイル・ネットワーク・オペレータと別個の統合を行う必要はない。
【0037】
このため、エクステンダがCDNエッジ・サーバに前進すると、エッジ・サーバは正当なエクステンダと通信中であることを検証することができ、エッジ・サーバはエクステンダが属するオペレータを識別することができる。
【0038】
エクステンダは、「マイクロ・エクステンダ(micro-Extender)」としてスケールダウンした方法で実施することができる。この場合も、本明細書における用語は限定として解釈するべきではない。通常、マイクロ・エクステンダは、CDNコンテンツに対する要求の識別及びそれらの要求の近傍CDNエッジ・サーバに対する転送等、基本的なエクステンダの機能性のサブセットを提供する。UMTSネットワークの場合、このような機構を用いると、CDN関連要求は、パケット・コアを経て極めて遠くであり得るインターネット・ゲートウェイに向かう必要はない。代わりに、CDN関連要求はずっと近くにあるCDNサーバに向かう。更に、要求は上述のように低レベルのプロトコル・パラメータを含む場合がある。
【0039】
一連のエクステンダは、同位置に配置するか、又はクラスタ内で相互に近く配置することができ、この場合、それらに負荷共有ルーチンを実施することができる。これによって、追加の負荷の処理もしくはフェイルオーバのため又は双方のために、単一の位置に多数のエクステンダを有することができる。クラスタ内のエクステンダからノー・ストア・コンテンツを(例えばICPを介して)フェッチすることができる。
【0040】
更に一般的には、どのようにオペレータがターゲット・ネットワークに統合することを希望するか又はどのようにトラフィックをリダイレクトするかに応じて、特定のネットワーク実施
例が多数の異なるタイプのエクステンダを用いることができる。簡単な統合はDNSベースのリダイレクトを用いる。この場合、エクステンダはCDNコンテンツに対する要求のみを受信する。エクステンダはトランスペアレントなキャッシングを実行せず、低レベルのプロトコル・パラメータをピックアップしない。別の可能な統合は、ウェブ・キャッシュ通信プロトコル(WCCP)を用いて、あるポート上の全てのHTTP要求をエクステンダにリダイレクトする。
図6は、この技法を用いた代表的な実施
例を示す。この例では、エクステンダ602、604、及び606は、ネットワーク内のルータ608に関連付けられている。周知のように、WCCPはトラフィックをトランスペアレントなキャッシング・プロキシに差し向けるための最も一般的に用いられる方法である。これによって、1つ(WCCPv1)又は2つ以上(WCCPv2)のルータがキャッシング・サーバ・クラスタをローカル・コンテンツ・プロキシとして用いることができる。キャッシュ・サーバ・クラスタ内で1つのサーバがリーダとして選ばれる。この統合はトランスペアレントなキャッシングを可能とするが、低レベルのプロトコル・パラメータをピックアップすることは可能でない。最後に、この統合は、通信経路に直接的にインラインであるエクステンダによって実行可能である。この統合では、その経路上のプロトコルにエクステンダを特化する必要がある。このような場合、エクステンダは低レベルのプロトコル・パラメータをピックアップする。この後者のタイプの統合は、他の場合にアクセス可能でないネットワーク内の深くには好都合である。
【0041】
上述のエクステンダの各プロセスは、特殊目的マシーンとして、1つ以上のプロセッサにおいて実行可能な一連のプログラム命令としてコンピュータ・ソフトウェアで実施することが好ましい。本明細書における主題が提供される代表的なマシーンは、Linux又はLinux変形オペレーティング・システム及び1つ以上のアプリケーションを実行してここに記載した機能性を実現するIntel Pentiumベースのコンピュータとすることができる。上述のプロセスの1つ以上は、記載した機能性を実行するためのコンピュータ・プログラムとしてすなわち一連のコンピュータ命令として実施される。
図7は、ラック搭載型のハードウェア機器として実施された代表的なエクステンダを示す。エクステンダ700は、1つ以上のプロセッサ702、ディスク・ストア704、メモリ706、オペレーティング・システム708、トランスペアレントな接続キャッシュ710、アプリケーション及びプラグイン712、ウェブ・ベースのコンフィギュレータ714、及びネットワークI/Oサポート716を含む。トランスペアレントな接続キャッシュ710は、1つ以上のアプリケーション712によって修正又は制御されて本明細書に記載した機能性を提供するApache Traffic Server(HTTP/1.1準拠のキャッシング・プロキシ・サーバ)等の既知のプロキシ・キャッシング・ソフトウェアを用いて実施可能である。キャッシュ710は、CDNカスタマ・コンテンツをキャッシュするための第1の部分及び非CDNコンテンツをキャッシュするための第2の部分に細分(分割)することができる。
【0042】
更に、本明細書における主題は、いずれかの特定のタイプの電気通信ネットワーク、プロトコル、又は技術と共に用いることに限定されない。例示の目的のみで、本開示は、代表的なモバイル・サービス・プロバイダのネットワーキング環境として
のUMTS/GSMネットワーク
に関連して本発明を記載する。本発明は同様に、CDMAネットワーキング環境において、又は、限定ではないがEPC(Evolved Packet Core)、4G/LTE、WLAN(WiFiを含む)等を含む他の既知の環境又は後に開発された環境において実施可能である。同様に、CDN実施形態も例示的なものであり、他の形態のCDNアーキテクチャ(例えば少数のデータ・センタに大きなサーバ・クラスタを配備するもの、大きなピアリング・ポイントの近傍又は大きなピアリング・ポイントにサーバを配置するもの等)が、本明細書に記載したようにモバイル又は有線のネットワークとインターオペレートすることができる。
【0043】
例示的な状況において、エクステンダは、オペレータのコア・ネットワーク・インフラストラクチャ(例えばSGSN、GGSN等を含むことができるモバイル・オペレータのゲートウェイ・サイト)に関連付けてUMTS3G準拠のネットワーク内で実施され、モバイル接続デバイス(例えばスマートフォン又はタブレット)に対するコンテンツ(CDNコンテンツを含む)の配信を容易にするために用いられる。
【0044】
上述のように、エクステンダは、例えばネットワーク・オペレータによる動的な構成管理を可能とするウェブ・ベースの構成インタフェースを含むことが好ましい。この動的な構成は多数の選択肢を含む。1つの選択肢は、どのCDNカスタマ・コンテンツをキャッシュ可能とするかを指定する(ドメイン及びコンテンツ・タイプのリストとして指定される)能力である。デフォルトの選択肢は、CDNエッジ・サーバからのキャッシュ制御命令に基づいたオーバーライドによって全てのCDNカスタマ・コンテンツをキャッシュすることである。別の選択肢は、どの第三者のコンテンツをキャッシュ可能とするかを指定する(ドメイン及びコンテンツ・タイプのリストとして指定される)能力である。デフォルトの選択肢は、全ての第三者のコンテンツをキャッシュすることである。更に別の選択肢は、CDNカスタマ・コンテンツ対第三者コンテンツのためにディスク・キャッシュ空間を分割すること、及び/又は特定のドメイン又はドメインのセットのためにディスク・キャッシュ空間を分割する選択肢である。更に別の選択肢は、エクステンダの利用可能なスループットを分割して、CDNカスタマ・コンテンツ及び第三者のトランスペアレントにキャッシュしたコンテンツのために所望のレベル/割合のスループットを達成する選択肢である。
【0045】
好ましくは、ネットワーク・オペレータは、CDNがオペレータのエクステンダ配備からどのくらいのトラフィックを供給しているかを決定することができる。これらのリポートは、分散データ・システムによって処理されるログ又は他のデータに基づいている。それらは例えば、供給される
トラフィックの総計、CDNカスタマ・トラフィック対非CDNカスタマ・トラフィック
の比較、
特定したウェブ・サイト
のトラフィック、エンド・ユーザの
地理的位置によるトラフィック
の内訳、エクステンダ・クラスタ又は
その地理的位置によるトラフィック
の内訳等を含むことができる。エクステンダは、かかるデータをSNMP又は他のネットワーク管理ソフトウェアもしくはシステムを介してエクスポートすることができる。
【0046】
上述のように、エクステンダはキャッシュを実施する。すでに説明したように、このキャッシュはトランスペアレントに(CDNに)接続したキャッシュである。所望の場合、エクステンダは、(CDNによって提供される情報に基づいた)グローバル・ポピュラリティによって影響されるキャッシュ排除(エビクション)率を実現することができ、オペレータは構成インタフェースを用いてエクステンダ配備で発生したポピュラリティ・データを共有することができる。所望の場合、CDNエッジ・サーバは、ネットワーク条件、予測データ、コンテンツ規則等の追加データをエクステンダに提供して、CDN及び非CDNトラフィックの双方に関してエクステンダの動作に影響を与えるようにプログラムすることができる。
【0047】
CDNエッジ・サーバがクライアントに応答を供給しなかったであろう場合、エクステンダはクライアントに応答を供給しない。好ましくは、
エクステンダがキャッシュから応答を供給するのは、応答が差し向けられたCDNエッジ・サーバが同じ応答をクライアントに供給したであろう場合
である。上述の手法では、エクステンダにおいてキャッシュ・ヒットがあった場合、エクステンダはCDNエッジ・サーバにクエリを実行する。CDNエッジ・サーバ(及び特にそのウェブ・キャッシング・プロキシ)は、その特定の要求のためにエクステンダがキャッシュされたコンテンツを用いるべきか、又はCDNエッジ・サーバから受信した新しいコンテンツを供給するべきかを決定する。この状況において、
任意所与の要求について、何をどのくらい長くキャッシュ可能であるかを決定するビジネス・ロジックをCDNエッジ・サーバにおいて実施する。換言すると、エクステンダは処理をCDNに委ねる。1つの代替案は、ビジネス・ロジックの一部をエクステンダに移して、全ての要求についてエクステンダがCDNと接触しなくてもよくすることである。この変形では、エクステンダは、どのようにCDNエッジ・サーバが
ある特定の要求を処理するか(従ってその機能性自体を引き継ぐことができるか)に関して何らかの不変量のアプリオリの知識を取得するか、又はどのようにその処理自体を実行するかについて命令を(エッジ・サーバから)受信する。更に別の代替案では、エクステンダは、クライアント要求についてキャッシュした応答をクライアントに供給することが安全であるか否かを独立して決定可能とするための充分な情報をCDNエッジ・サーバから受信する。エクステンダが、そのキャッシュから特定の要求に応答することが安全であると判定できない場合、CDNに前進する。この手法は、CDNエッジ・サーバが知っている情報をすでにエクステンダに伝達した後にこの情報が変化したという状況では
制約があり得る。これに対処するため、他の考慮事項よりも優先して、エクステンダがキャッシュしたコンテンツを再有効化する最小頻度を課すことができる。
【0048】
あるCDN−エクステンダ動作状況において、CDNエッジ・サーバが、(要求されたURLに適用可能なカスタマ・メタデータに従って)応答がURLのみに依存すると判定することができる場合、エッジ・サーバはフェッチしたオブジェクトのキャッシュ可能性及び残りのTTLを応答ヘッダ内でエクステンダに伝達することが好ましい。この結果エクステンダは、残りのTTLの持続時間中にそのようなオブジェクトをキャッシュすることが安全であることがわかる。しかしながら、CDNエッジ・サーバが、応答が要求URLのみに依存すると判定できない場合は、この事実を応答ヘッダ内でエクステンダに伝達し、この場合エクステンダは応答をキャッシュしない場合がある。CDNエッジ・サーバが、(例えば要求されたURLに適用可能なカスタマ・メタデータに従って)応答が要求URLによって及び特定の要求ヘッダ・フィールドによって充分に決定されると判定可能である場合、好ましくはエッジ・サーバは特定の要求ヘッダ・フィールドを「Vary」応答ヘッダ内にリスト化する。応答−変更タグが安全マッチ(ホスト要求ヘッダ又はURL上のマッチ等)以外のマッチ(条件)内に現れるCDNエッジ・サーバにおけるいずれかのカスタマ構成によって、CDNエッジ・サーバがエクステンダに応答して特別な制御ビットをセットすることが好ましい。
【0049】
上記は本発明のいくつかの実施形態によって実行される動作の特定の順序を記載したが、このような順序は例示的なものであり、代替的な実施形態では、異なる順序での動作の実行、いくつかの動作の組み合わせ、いくつかの動作の重複等があり得ることは理解されよう。本明細書における所与の実施形態の参照は、記載する実施形態が特定の特性、構造、又は特徴を含む場合があるが、全ての実施形態がその特定の特性、構造、又は特徴を必ずしも含むものではないことを示している。
【0050】
開示した主題を方法又はプロセスの状況において記載したが、主題の開示は本明細書における動作を実行するための装置にも関する。この装置は、必要な目的のために特別に構築することができ、又はコンピュータに記憶したコンピュータ・プログラムによって選択的に活性化又は再構成される汎用コンピュータを含むことができる。このようなコンピュータ・プログラムは、限定ではないが、光ディスク、CD−ROM、及び光磁気ディスクを含むいずれかのタイプのディスク、読み出し専用メモリ(CD−ROM)、ランダム・アクセス・メモリ(RAM)、磁気もしくは光カード、又は電子命令を記憶するために適切ないずれかのタイプの媒体等のコンピュータ読み取り可能記憶媒体に記憶することができ、その各々はコンピュータ・システム・バスに結合される。
【0051】
システムの所与のコンポーネントを別個に記載したが、それらの機能のいくつかは、所与の命令、プログラム・シーケンス、コード部分等において組み合わせるか共有することが可能であることは当業者には認められよう。
【0052】
我々の発明を記載したので、以下のように特許請求を行う。