(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6693670
(24)【登録日】2020年4月20日
(45)【発行日】2020年5月13日
(54)【発明の名称】コンテンツ配信フレームワークにおけるリクエスト処理
(51)【国際特許分類】
G06F 13/00 20060101AFI20200427BHJP
【FI】
G06F13/00 520C
【請求項の数】21
【全頁数】15
(21)【出願番号】特願2017-530707(P2017-530707)
(86)(22)【出願日】2015年12月15日
(65)【公表番号】特表2018-500671(P2018-500671A)
(43)【公表日】2018年1月11日
(86)【国際出願番号】US2015065835
(87)【国際公開番号】WO2016100351
(87)【国際公開日】20160623
【審査請求日】2018年12月14日
(31)【優先権主張番号】14/570,743
(32)【優先日】2014年12月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508140877
【氏名又は名称】レベル スリー コミュニケーションズ,エルエルシー
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ニュートン、クリストファー
【審査官】
木村 雅也
(56)【参考文献】
【文献】
特開2004−086317(JP,A)
【文献】
国際公開第2013/005758(WO,A1)
【文献】
米国特許出願公開第2014/0173018(US,A1)
【文献】
米国特許第08799372(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
コンテンツ配信ネットワーク(CDN)で動作可能な、コンピュータにより実施される方法であって、
前記CDNにおけるノードにより、
(A)コンテンツについてのリクエストを受信する段階と、
(B)前記リクエストについての情報を判断する段階と、
(C)(B)での前記判断に基づいて、
(C)(1)前記コンテンツについての十分な情報が判断された場合、前記リクエストを処理する適切なコンテンツ配信(CD)サービスに前記リクエストを割り当て、
(C)(2)前記コンテンツについての不十分な情報が判断された場合、前記リクエストを処理する包括的CDサービスに前記リクエストを割り当てる段階と、
(D)(C)(2)において前記リクエストが前記包括的CDサービスに割り当てられた場合には、前記包括的CDサービスは、
(D)(1)前記リクエストを処理し、かつ
(D)(2)前記コンテンツについての更新済み情報を提供する段階と
を備え、
前記コンテンツについての前記十分な情報は、前記コンテンツのサイズを含む、方法。
【請求項2】
前記受信されたリクエストは、オリジンサーバに格納されたコンテンツのためのものであり、前記リクエストについての情報を判断する前記段階は、前記コンテンツについての情報を判断することの試みを含み、前記判断に基づいて(C)を実行する前記段階は、(B)での判断の試みに基づき、
(C)(1)は、前記コンテンツについての十分な情報が判断されるとき、前記適切なCDサービスが前記リクエストを処理することを判断し、前記割り当ては、前記リクエストを処理する前記判断された適切なCDサービスに前記リクエストを割り当て、前記適切なCDサービスは、前記CDNにおける異なるノードを含み、
前記コンテンツについての前記不十分な情報は前記コンテンツの前記サイズについての情報の不足を含み、
前記コンテンツについての前記更新済み情報は、前記コンテンツのサイズを含む、
請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記適切なCDサービスおよび前記包括的CDサービスは、CDサービスのキャッシングから選択される、請求項1または2に記載の方法。
【請求項4】
前記リクエストは、リソースについてのHTTPリクエストである、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記リクエストは、URIまたはURLを含み、(B)において前記リクエストについての情報を判断する前記段階は、前記URLから前記リクエストに関連付けられている前記コンテンツについての前記情報へのマッピングにアクセスする段階を有する、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記URLは、特定のリソースに対応し、前記特定のリソースについての前記情報は、前記特定のリソースのサイズを含む、請求項5に記載の方法。
【請求項7】
(D)(2)において前記コンテンツについての更新済み情報を提供する前記段階は、前記マッピングを更新する段階を有する、請求項5または6に記載の方法。
【請求項8】
前記マッピングは、1または複数のデータベースに保持される、請求項5から7のいずれか一項に記載の方法。
【請求項9】
(E)(C)(1)において前記リクエストが前記適切なCDサービスに割り当てられた場合には、前記適切なCDサービスは、
(E)(1)前記リクエストを処理し、かつ
(E)(2)前記コンテンツについての更新済み情報を提供する段階
をさらに備える、請求項1から8のいずれか一項に記載の方法。
【請求項10】
コンテンツ配信ネットワーク(CDN)において動作可能な、コンピュータにより実施される方法であって、
前記CDNにおけるノードにより、
(A)コンテンツについてのリクエストを受信する段階と、
(B)前記コンテンツのカテゴリを判断する段階と、
(C)(B)での前記判断に基づいて、
(C)(1)前記コンテンツの前記カテゴリが判断された場合、前記コンテンツの前記カテゴリに基づいて、前記リクエストを処理する適切なコンテンツ配信(CD)サービスに前記リクエストを割り当て、
(C)(2)前記コンテンツの前記カテゴリが判断されなかった場合、前記リクエストを処理する包括的CDサービスに前記リクエストを割り当てる段階と、
(D)(C)(2)において前記リクエストが前記包括的CDサービスに割り当てられた場合には、前記包括的CDサービスは、
(D)(1)前記リクエストを処理し、かつ
(D)(2)前記コンテンツの前記カテゴリを提供する段階と
を備え、前記コンテンツの前記カテゴリは、前記コンテンツのサイズに基づく、方法。
【請求項11】
前記受信されたリクエストは、オリジンサーバに格納されたコンテンツのためのものであり、前記カテゴリを判断する前記段階は、前記カテゴリを判断することの試みを含み、前記判断に基づいて(C)を実行する前記段階は、(B)での判断の試みに基づき、
(C)(1)は、前記コンテンツのカテゴリが判断されるとき、前記適切なCDサービスが前記リクエストを処理することを判断し、前記割り当ては、前記コンテンツのカテゴリに基づいて、前記リクエストを処理する前記判断された適切なCDサービスに前記リクエストを割り当て、前記適切なCDサービスは、前記CDNにおける異なるノードを含む、
請求項10に記載のコンピュータにより実施される方法。
【請求項12】
前記リクエストはHTTPリクエストであり、前記コンテンツは1または複数のリソースを含む、請求項10または11に記載の方法。
【請求項13】
プログラムであって、
コンテンツ配信サービス(CDN)において動作可能なコンピュータに、
(A)コンテンツについてのリクエストを受信する段階と、
(B)前記リクエストについての情報を判断する段階と、
(C)(B)での前記判断に基づいて、
(C)(1)前記コンテンツについての十分な情報が判断された場合、前記リクエストを処理する適切なコンテンツ配信(CD)サービスに前記リクエストを割り当て、
(C)(2)前記コンテンツについての不十分な情報が判断された場合、前記リクエストを処理する包括的CDサービスに前記リクエストを割り当てる段階と、
(D)(C)(2)において前記リクエストが前記包括的CDサービスに割り当てられた場合には、前記包括的CDサービスは、
(D)(1)前記リクエストを処理し、かつ
(D)(2)前記コンテンツについての更新済み情報を提供する段階と
を実行させ、前記コンテンツについての前記十分な情報は、前記コンテンツのサイズを含む、プログラム。
【請求項14】
前記リクエストについての判断された前記情報は、前記コンテンツについての情報であり、
(C)(1)は、前記コンテンツについての十分な情報が判断されるとき、前記適切なCDサービスが前記リクエストを処理することを判断し、前記割り当ては、前記リクエストを処理する前記判断された適切なCDサービスに前記リクエストを割り当て、前記適切なCDサービスは、前記CDNにおける異なるノードを含み、
前記コンテンツについての前記不十分な情報は前記コンテンツのサイズについての情報の不足を含み、
前記コンテンツについての前記更新済み情報は、前記コンテンツのサイズを含む、
請求項13に記載のプログラム。
【請求項15】
前記適切なCDサービスおよび前記包括的CDサービスは、CDサービスのキャッシングから選択される、請求項13または14に記載のプログラム。
【請求項16】
前記リクエストは、リソースについてのHTTPリクエストである、請求項13から15のいずれか一項に記載のプログラム。
【請求項17】
前記リクエストは、URIまたはURLを含み、(B)において前記リクエストについての前記情報を判断する前記段階は、前記URLから前記リクエストに関連付けられている前記コンテンツについての前記情報へのマッピングにアクセスする段階を有する、請求項13から16のいずれか一項に記載のプログラム。
【請求項18】
前記URLは、特定のリソースに対応し、前記特定のリソースについての前記情報は、前記特定のリソースのサイズを含む、請求項17に記載のプログラム。
【請求項19】
(D)(2)において前記コンテンツについての更新済み情報を提供する前記段階は、前記マッピングを更新する段階を有する、請求項17または18に記載のプログラム。
【請求項20】
前記マッピングは、1または複数のデータベースに保持される、請求項17から19のいずれか一項に記載のプログラム。
【請求項21】
(E)(C)(1)において前記リクエストが前記適切なCDサービスに割り当てられた場合には、前記適切なCDサービスは、
(E)(1)前記リクエストを処理し、かつ
(E)(2)前記コンテンツについての更新済み情報を提供する段階
をさらに備える、請求項13から20のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照 本特許協力条約(PCT)特許出願は、2014年12月15日に出願された、"REQUEST PROCESSING IN A CONTENT DELIVERY NETWORK"と題する非仮出願第14/570,743号の優先権を主張する。当該非仮出願は、その全体がここに参照により組み込まれる。
【0002】
著作権の宣言 本特許文献は、著作権保護の対象となる資料を含む。著作権者は、本特許文献または米国特許商標局のファイルにおけるあらゆる関連資料の複製に対して異議を唱えるものではないが、そうでなければ、いかなる理由があろうとも全ての著作権を留保する。
【0003】
参照による組み込み 以下の米国特許出願および米国特許出願公開は、ここに、全ての目的で、参照により本明細書に完全に組み込まれる。1. 2012年12月12日に出願された、"Content Delivery Network"という発明の名称の米国特許出願公開第2013/0159472号明細書、2. 2012年12月12日に出願された、"Content Delivery Network"という発明の名称の米国特許出願公開第2013/0159473号明細書、3. 2014年6月17日に出願された、"Origin Server‐Side Channel In A Content Delivery Framework"という発明の名称の米国特許出願公開第2014/0344399号明細書、4. 1998年2月10日に出願された、"Optimized Network Resource Location"という発明の名称の米国特許第6,185,598号明細書、5. 2009年2月23日に出願され、2011年9月6日に登録された、"Load‐Balancing Cluster"という発明の名称の米国特許第8,015,298号明細書、および6. 2010年9月13日に出願され、2013年7月16日に登録された、"Load‐Balancing Cluster"という発明の名称の米国特許第8,489,750号明細書。
【0004】
本発明は、コンテンツ配信およびコンテンツ配信ネットワークに関し、より具体的には、コンテンツ配信ネットワークにおけるリクエスト処理に関する。
【図面の簡単な説明】
【0005】
本発明のその他の目的、特徴、および特性、並びに、関連する構造の要素の動作および機能に関する方法、製造の部分および経済性の組み合わせは、添付の図面を参照して以下の記載および添付の特許請求項を考慮することによって、より明らかになるであろう。これらの全てが、本明細書の一部分を形成する。
【0006】
【
図1】本明細書の例示的な実施形態に従った例示的なコンテンツ配信フレームワークの態様を示す。
【0007】
【
図2(A)】本明細書の例示的な実施形態に従った例示的なコンテンツ配信ネットワーク(CDN)の態様を示す。
【
図2(B)】本明細書の例示的な実施形態に従った例示的なコンテンツ配信ネットワーク(CDN)の態様を示す。
【0008】
【
図3(A)】本明細書の例示的な実施形態に従った処理の態様を示すフローチャートである。
【
図3(B)】本明細書の例示的な実施形態に従った処理の態様を示すフローチャートである。
【0009】
【
図4】本明細書の例示的な実施形態に従ったコンピューティングの態様を示す。
【発明を実施するための形態】
【0010】
用語解説そうでないように使用されない限り、本明細書において使用されるように、以下の用語または略語は、以下の意味を有する。
【0012】
CDNは、コンテンツ配信ネットワークを意味する。
【0013】
DNSは、ドメイン名システムを意味する。
【0014】
HTTPは、ハイパーテキストトランスファープロトコルを意味する。
【0015】
HTTPSは、HTTPセキュリティを意味する。
【0016】
URIは、ユニフォームリソース識別子を意味する。
【0017】
URLは、ユニフォームリソースロケータを意味する。
【0018】
バックグラウンドおよび概要 コンテンツ配信ネットワーク(CDN)は、1または複数のコンテンツプロバイダの代わりに、好ましくは公衆インターネットを介して、クライアントに効率的にコンテンツ(例えばリソース)を配信する。コンテンツプロバイダは、オリジンソース(オリジンサーバまたはオリジン)を介して、自身のコンテンツ(例えばリソース)を提供する。CDNは、反対方向に(クライアントからオリジンサーバに)コンテンツを効率的に送信するためのオーバー・ザ・トップ搬送メカニズムも提供できる。エンドユーザ(クライアント)およびコンテンツプロバイダの両方が、CDNを使用することから恩恵を受ける。CDNを使用することで、コンテンツプロバイダは、自身のサーバ(例えば、自身のオリジンサーバ)から負担を取り除くこと(および、それにより、サーバにかかる負荷を低減すること)が可能である。クライアントは、より短い遅延でコンテンツを取得することが可能なことにより恩恵を受ける。
【0019】
例示的なCDNは、両方とも2012年12月12に出願された米国特許出願公開第2013/0159472号明細書および第2013/0159473号明細書、ならびに2014年6月17日に出願された米国特許出願公開第2014/0344399号明細書、および1998年2月10日に出願された米国特許第6,185,598号明細書において説明されている。これらのそれぞれの全内容は、全ての目的で、参照により本明細書に完全に組み込まれている。
【0020】
本明細書において使用されるように、クライアントは、例えばエンドユーザがシステム内でリクエスト(例えば、HTTPSリクエストを含む、DNSリクエストおよびHTTPリクエスト)を出すべく使用するエージェント(例えば、ブラウザ、セットトップボックス、または他のアプリケーション)である。CDNまたは他の媒介者が使用されない場合、そのようなリクエストは、加入者自身のサーバ(例えば、加入者のオリジンサーバ)またはインターネット上の他のコンポーネントに直接向かい得る。コンテンツプロバイダが(例えば、米国特許出願公開第2013/0159472号明細書および第2013/0159473号明細書において説明されるように)CDサービスに加入している場合、エンドユーザのリクエストを、場合によっては途中でコンテンツを変換およびキャッシングして、オリジンリクエストにマッピングし得る中間CDサービスに様々なリクエストが向かい得る。
【0021】
それぞれの別個のオリジン(例えばオリジンサーバ)は通常、1加入者と関連付けられているが、加入者は、加入者が所有しCDNが提供するオリジンを含む、任意の数のオリジンと関連付けられ得る。
【0022】
CDNがインタラクトし得る物理オリジンは、実際には、一連の媒介者からコンテンツ(おそらく例えば、加入者の実際のオリジンサーバで最終的に終わる別個のコンテンツ取得システムの要素)を取得する媒介者であり得る。しかしながら、CDNの内部構成要素が関連している限り、オリジンは、コンテンツが直接取得されるシステム上の境界の外にあるサービスである。
【0023】
本明細書において使用されるように、エンドユーザは、サービスプロバイダエンティティにより提供されるいくつかのインターネットサービス(例えば、ウェブサイト、ストリーミングサービス等)を最終的に消費するエンティティ(例えば、人または組織)である。このプロバイダエンティティは、場合によっては、本説明において加入者と称される。なぜなら、プロバイダエンティティは、自身のコンテンツを(例えば自身のオリジンから自身の消費者へ)効率的に配信するためにCDNサービスに加入しているからである。CDNは、自身の加入者と加入者のエンドユーザとの間に付加価値のある媒介(例えば、キャッシング、変形等)を提供し得る。
【0024】
CDNにおけるリクエスト処理 コンテンツ配信フレームワーク100の例示的な動作態様が、ここで
図1を参照して説明される。クライアント102(例えば、クライアント1 102‐1、クライアント2 102‐2…クライアントk 102‐kを含む)は、1または複数の加入者の代わりにコンテンツを供給するCDN104を介して、コンテンツをリクエストする。クライアントは、一般に自身のリクエストがCDNにより処理されているのを認識しておらず、またそうであるのが好ましいことが理解されるべきである。特定のコンテンツ(C)についての特定のクライアントリクエスト(R)は、当該リクエストを処理する、CDN内のCDサービスに送信される。クライアントリクエストは、CDNの一部である集中メカニズムにより、または任意の既知のやり方で、CDサービスに送信され得る。
図1の図面において、リクエスト(R)はプロキシ(スライサとも称される)106に送信される。クライアントの観点からだと、プロキシ106はリクエストを処理している。しかしながら、プロキシ106は、クライアントのリクエストを処理し得る多数の他のCDサービス(例えばサーバ)のフロントエンドであり得る。
図1の図面に示されるように、プロキシ106は、親108の1つを、クライアントリクエスト(R)を処理するものとして選択し得る。プロキシ106は、スイッチ等であり得る。
【0025】
理解されるべきであるように、プロキシ106は、クライアントから受信するリクエストを変更および/または拡張し得る(例えば、プロキシ106は、URLを正規化し得る。)。この理由で、クライアントからプロキシへのリクエストはRで示される一方、プロキシから親へのリクエストはR'で示される。同様に、親からオリジンへのリクエストは、R"で示される。多くの場合、RはR'と同一であり得、R'はR"と同一であり得る。同様に、オリジンにより親に提供されるコンテンツCは、クライアントに提供される前に変更および/または拡大され得る。従って、親からクライアントへの応答5について、表記C'が付される。多くの場合、CはC'と同一であり得、いかなる変更についても要件はない。コンテンツの変更は、メタデータの追加、再フォーマット等を含み得る。
【0026】
選択される親CDサービスは、与えられるリクエストの種類について適切なものであることが好ましい。例えば、いくつかのCDサービスが、大きいリソースを供給するのに効率的になるような方法で構成または調整され得る一方、他のCDサービスは、小さいリソースを供給する際により効率的になるよう構成または調整され得る。ノードの調整/構成は、どれだけの物理メモリをノードが有しているか、ノードのディスクドライブの数/サイズ、ノードがスピニングドライブまたはソリッドステートドライブ(SSD)のいずれを有しているか、および何のソフトウェアがノード上で動作しているかを含み得る。当業者であれば、本説明を読むと、どの種類のリソースを供給するのに特定のマシンまたはCDNノードが最も良い装備を有しているかを、これらの属性が組み合わさって特定していることに気付くであろうし、これを理解するであろう。例えば、多数のスピニングドライブを備えるものの、メモリが多くないマシンは、ディスクからストリーミングされ得る非常に大きいリソースを供給するのに好適であり得る。逆に、非常に人気というわけではない多数の小さいリソースのライブラリのために、マシンは、当該リソースへのアクセス時間が十分に早くなるよう、多数のSSDを有する必要があるであろう。もしそうであれば、多くの物理メモリを備えるマシンは、ディスクに向かう必要があるよりもはるかに効率的にメモリに適合する大きいまたは小さいリソースのワーキングセットに良く対処し得る。CPU能力が高いマシンは、多くの操作(例えば、スクラビング、エッジサイドインクルード(edge‐side‐include)または他の「アプリケーションアットジエッジ(application at the edge)」)処理を必要とするリソース用に好ましいであろう。
【0027】
一般的に、リクエストされたコンテンツをプロキシ106がより認識しているほど、その親CDサービスの選択はより良い(より適切な)ものになるはずである。これに関連して、プロキシ106は、1または複数の属性データベース110をクエリして、リクエストされたコンテンツ(例えばリソース)について属性を判断し得る。属性データベース110は、リソースのサイズのような属性を提供するのが好ましい。本明細書の好ましい例示的な実施形態において、クライアントリクエストは、URIまたはURL形式のHTTPリクエスト(HTTPSリクエストを含む)であり、属性データベース110は、URLを使用して指標化され得る。本明細書において使用されるように、特定のリクエストに対する適切なCDサービスは、その特定のリクエストを処理するよう十分に構成されているもの(例えば、ハードウェアおよび/またはソフトウェア)であり得る。他のCDサービスが特定のリクエストを処理することが可能であり得る一方、適切なCDサービスはその特定のリクエストを効率的に(または少なくとも他のCDサービスと同程度効率的に)処理するのが好ましいであろうことが理解されるべきである。
【0028】
言及されたように、プロキシ106は、クライアントリクエストを処理するのに適切な親CDサービス(例えばサーバ)を選択する。選択されたCDサービス(例えば親サーバ)は、場合によってはプロキシスライサ106を介して、リクエストされたコンテンツ(R)をリクエスティングクライアントに提供し得る。いくつかの場合において、選択されたCDサービスは、コンテンツのプロバイダに関連付けられているオリジンサーバ112のような別の位置から、リクエストされたコンテンツを取得し得る。説明されたように、プロキシは、どの特定のコンテンツ(例えばリソース)がリクエストされているかに基づいてリクエストを適切なバックエンドマシンに送るコンタクトポイントとして機能する。つまり、プロキシは、コンテンツについての全てのリクエストを受信し得るが、大きいリソースについてのフィルリクエストを大きいリソース用に調整されたそれらのマシンに、および、小さいリソースについてのフィルリクエストを小さいリソース用に調整されたそれらのマシンに(すなわち、どのような基準がマシンの調整に対応付けられていようと)送信する。
【0029】
ここで
図2(A)を参照して、リクエスト処理の態様が、リクエストを適切な親サーバに割り当てるのに十分な(または任意の)情報をプロキシ106が有していない場合について説明される。クライアント102は(
図2(A)のA1で)、コンテンツについてのリクエストRをする。リクエストRはプロキシ106に送信される。プロキシ106は(202で)、属性データベース110におけるリクエストRについての情報を検索する。この場合、データベース110には、プロキシ106が適切な判断をすることを可能にするには不十分な情報がある。特に、いくつかの実装において、プロキシ106は、リクエストRに関連付けられているコンテンツのサイズについての情報を有していない可能性がある。次に、プロキシ106は(A2で)、包括的(または任意の)親CDサービス108‐GにリクエストRを送信する/割り当てる。
【0030】
本明細書において使用されるように、包括的CDサービスとは、リクエストRの処理が可能であり得る任意のCDサービスを指すが、当該包括的サービスは、リクエストを処理するのに適切または最適でない可能性がある。
【0031】
親CDサービス108‐Gは、リクエストRに関連付けられているコンテンツ(例えば適切なオリジンサービス112)を(A3で)リクエストし、次に、リクエストされたコンテンツCを、(場合によってはプロキシ106を介して)リクエスティングクライアントに(A4〜A5で)提供する。また、親CDサービス108‐Gは、好ましくはコンテンツCのサイズを含む、コンテンツCについての情報を追跡および保持する。次に、親CDサービス108‐Gは(204で)、コンテンツCについての情報を含む属性データベース110を更新し得る。いくつかの場合において、親CDサービス108‐Gは、また(または代わりに)、Cを含むヘッダにコンテンツCについての属性のいくつかを提供し得る。
【0032】
以前に処理されているコンテンツについてのリクエストをプロキシ106が受信した場合、Cについての情報は、既にデータベース110に存在する可能性がある。ここで
図2(B)を参照して示されるように、クライアント102は(B1で)、リクエストRをする。リクエストは、Rに関連付けられているコンテンツCについての情報を判断するプロキシ106に送信される。例えば、プロキシ106は(202で)、データベース110をクエリして、コンテンツCについての属性データ(例えば、コンテンツCのサイズ)を取得し得る。この場合、プロキシ106は、十分な情報を有するので、適切なCDサービス(例えば親#A 108‐A)にリクエストR'を割り当てる(B2)。CDサービス108‐Aは、(B3で)リクエストを処理し、リクエストされたコンテンツを(場合によってはプロキシ106を介して)リクエスティングクライアントに提供する。
【0033】
リクエストを処理するCDサービス108‐Aは、例えばコンテンツCの人気度についての情報を追加すべく、属性データベース110にアクセスし得、および/または属性データベース110を更新し得ることに留意されたい。
【0034】
様々なエンティティによる処理の態様が、
図3(A)〜3(B)の例示的なフローチャートを参照して説明される。プロキシ106による処理の態様を示す、
図3(A)のフローチャートを参照すると、プロキシ106は(302で)、コンテンツ(C)についてのリクエスト(R)を得る。プロキシ106は(304で)、リクエストされたコンテンツC(例えば、Cのサイズまたは人気度)についての十分な情報をプロキシ106が有しているかどうか判断する。プロキシ106は、1または複数のデータベースにアクセスして、コンテンツCについての情報を判断し得る。適切なCDサービス(例えば親サーバ)へのリクエストの割り当てをするためのコンテンツCについての十分な情報をプロキシ106が有していない、かつ、確認できない場合には、プロキシ106は(308で)、リクエストRを包括的CDサービス(G)(例えば包括的親サーバ)に送信する。一方、適切なCDサービスへのリクエストの割り当てをするための、リクエストされたコンテンツについての十分な情報を自身が有している(または確認できる)とプロキシ106が(304で)判断した場合には、プロキシ106は(306で)、リクエストを適切なCDサービス(例えばサーバ)に送信し得る。
【0035】
包括的サーバ(G)(例えば、(308で)プロキシ106からのリクエストを受信した包括的サーバ)による処理の態様を示す、
図3(B)のフローチャートを参照すると、包括的サーバ(G)は(310で)、コンテンツCについてのリクエストRを取得する。この場合、リクエストはサーバGに到達している。なぜなら、プロキシ106は、適切なサーバを選択するための、コンテンツCについての十分な情報を有していなかったからである。しかしながら、依然として、これは、包括的サーバGがコンテンツCについての情報を有している、または認識している場合であり得る。包括的サーバGがコンテンツCについての情報を認識している、またはコピーを有している場合には、Cについての当該情報は、属性データベースにおいて更新される。包括的サーバGは、リクエストされたコンテンツのコピーを例えばオリジンサーバから(312で)得、次に(314で)、コンテンツCをリクエスティングクライアントに供給する。次に、包括的サーバは(316で)、コンテンツCについて自身が確認済みの情報(例えばコンテンツのサイズ)を含むよう、属性データベースを更新する。また(または代わりに)、必要な場合、包括的サーバは、リソースのカテゴリを示すメタデータを応答に付け得る。この次に当該リソースについてリクエストが当該プロキシスライサで受信される時に、包括的サーバは、キャッシュされたメタデータを利用して、適切な親ホストにフィルリクエストを送信する可能性がある。次のリクエストが異なるスライサに到達した場合、包括的サーバは、当該リクエストを適切な親に転送する可能性がある同一の包括的親に連絡し得る。(306で送信された)リクエストが適切なサーバにより処理された場合、適切なサーバはまた、コンテンツCについて自身が確認済みの情報を含むよう属性データベースを更新し得ることが理解されるべきである。同様に、適切なサーバはまた(または代わりに)、リソースのカテゴリを示すメタデータを応答に付け得る。
【0036】
CDNはその失効時にリソースについて再学習する必要があり得ることが理解されるべきである。この理由で、リクエストを処理するCDサービスは、リソースについての現在の情報に基づいてデータベースを更新する(またはデータベースを更新させる)ことが好ましい。
【0037】
従って、CDNがリクエストのカテゴリを自身がそれらを認識するとおりに判断し得るシステムが説明される。CDNは、コンテンツ(例えばリソース)について、および、それぞれのリソースがどのカテゴリに該当するであろうかについて、自身がリソースについてのリクエストを認識するとおりに学習し得、適切に適応し得る。
【0038】
コンピューティング
図4は、本明細書において説明された処理を実行するのに使用され得るプロキシ、親サーバまたは他のコンピューティングデバイスを実装したコンピューティングシステム400の例示的な概略図である。コンピューティングシステムは、バス402(すなわち相互接続)、少なくとも1つのプロセッサ404、少なくとも1つの通信ポート414、メインメモリ406、リムーバブルストレージ媒体410、リードオンリーメモリ408、および大容量ストレージデバイス412を含む。プロセッサ404は、これに限定されるものではないが、インテル(登録商標)Itanium(登録商標)もしくはItanium 2(登録商標)プロセッサ、AMD(登録商標)Opteron(登録商標)もしくはAthlon MP(登録商標)プロセッサ、またはモトローラ(登録商標)の一連のプロセッサ、のような任意の既知のプロセッサであり得る。通信ポート414は、モデムベースのダイヤルアップ接続と共に使用するためのRS‐232ポート、10/100イーサネット(登録商標)ポート、銅もしくはファイバを使用したギガビットポート、またはUSBポートのいずれでもあり得る。通信ポート414は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはコンピュータシステムが接続する任意のネットワーク、のようなネットワークに応じて選択されてよい。サーバは、入出力(I/O)ポート420を介して周辺機器(例えば、ディスプレイスクリーン416、入力デバイス418)と通信し得る。
【0039】
メインメモリ406は、ランダムアクセスメモリ(RAM)または当技術分野において一般に知られている任意の他の動的ストレージデバイスであり得る。リードオンリーメモリ408は、プロセッサ404に対する命令のような静的情報を格納するためのプログラマブルリードオンリーメモリ(PROM)チップのような、任意の静的ストレージデバイスであり得る。大容量ストレージデバイス412は、情報および命令を格納するのに使用され得る。例えば、Adaptec(登録商標)の小型コンピュータシリアルインタフェース(SCSI)ドライブのファミリのようなハードディスク、光学ディスク、Adaptec(登録商標)のRAID(Redundant Array of Independent Disks)ドライブのファミリのようなRAIDのような一連のディスク、または任意の他の大容量ストレージデバイスが使用され得る。
【0040】
バス402は、プロセッサ404を他のメモリ、ストレージおよび通信ブロックと通信可能に連結する。バス402は、使用されるストレージデバイスに応じて、PCI/PCI‐X、SCSIもしくはユニバーサルシリアルバス(USB)ベースのシステムバス(またはその他)であり得る。リムーバブルストレージ媒体410は、あらゆる種類の外部ハードドライブ、フロッピー(登録商標)ドライブ、IOMEGA(登録商標)Zipドライブ、コンパクトディスク―リードオンリーメモリ(CD‐ROM)、コンパクトディスク―リライタブル(CD‐RW)、デジタルビデオディスク―リードオンリーメモリ(DVD‐ROM)等であり得る。
【0041】
本明細書における実施形態は、コンピュータプログラムプロダクトとして提供され得る。コンピュータプログラムプロダクトは、プロセスを実行するようコンピュータ(または他の電子デバイス)をプログラムするのに使用され得る命令が格納された機械可読媒体を含み得る。機械可読媒体は、限定されるものではないが、フロッピー(登録商標)ディスク、光学ディスク、CD‐ROM、光磁気ディスク、ROM、RAM、消去可能プログラマブルリードオンリーメモリ(EPROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、磁気カードもしくは光カード、フラッシュメモリ、または電子命令を格納するのに適した他のタイプの媒体/機械可読媒体を含み得る。
【0042】
示されるように、メインメモリは、様々な図面および他の箇所に関して上記で説明された機能をサポートする1または複数のアプリケーション/サービス422で符号化され得る。例えば、一実施形態において、アプリケーション422は、本明細書に記載される様々な処理および/または命令を含み得、またはそうでなければ実施し得る。アプリケーション422(および/または本明細書において説明される他のリソース)は、本明細書において説明される異なる実施形態に従った処理機能をサポートするデータおよび/または論理命令のようなソフトウェアコード(例えば、メモリに、またはディスクのような別のコンピュータ可読媒体に格納されたコード)として具現化され得る。一実施形態の動作の間、プロセッサ404は、アプリケーション422の論理命令を起動するため、動作させるため、実行するため、解釈するため、またはそうでなければ行うために、バス402の使用を介してメインメモリ406にアクセスする。アプリケーション422の実行により、アプリケーションプロセス424において、処理機能が生成される。言い換えると、プロセス424は、コンピュータシステム400のプロセッサ404内で、またはプロセッサ404上で動作しているアプリケーション422の1または複数の部分を表す。
【0043】
上記説明は、本開示の技術を具現化する例示的なシステム、方法、技術、命令、シーケンスおよび/またはコンピュータプログラムプロダクトを含む。しかしながら、説明された開示はこれらの具体的詳細なく実施され得ることが理解されよう。本開示において、開示される方法は、デバイスにより読み取り可能な命令またはソフトウェアのセットとして実施され得る。さらに、開示される方法におけるステップの特定の順序または階層は例示的な手法の例であることが理解されよう。設計上の優先性に基づいて、方法におけるステップの特定の順序または階層は、再編成され得るものの、開示される主題内に留まることが理解されよう。添付の方法の請求項は、例としての順序での様々なステップの要素を示しており、示される特定の順序または階層に限定されることを必ずしも意味しない。
【0044】
結論 特許請求の範囲を含め、本明細書において使用されるように、「少なくともいくつか」という表現は、「1または複数」を意味し、1つだけという場合を含む。従って、例えば、「少なくともいくつかのサービス」という表現は、「1または複数のサービス」を意味し、1つのサービスの場合を含む。
【0045】
特許請求の範囲を含め、本明細書において使用されるように、「に基づいて」という表現は、「に部分的に基づいて」または「に少なくとも部分的に基づいて」を意味し、排他的なものではない。従って、例えば、「ファクタXに基づいて」という表現は、「ファクタXに部分的に基づいて」または「ファクタXに少なくとも部分的に基づいて」を意味する。「のみ」という文言を用いて具体的に述べられていない限り、「Xに基づいて」という表現は、「Xのみに基づいて」を意味するものではない。
【0046】
特許請求の範囲を含め、本明細書において使用されるように、「を使用して」という表現は、「を少なくとも使用して」を意味し、排他的なものではない。従って、例えば、「Xを使用して」という表現は、「少なくともXを使用して」を意味する。「のみ」という文言を用いて具体的に述べられない限り、「Xを使用して」という表現は、「Xのみを使用して」を意味するものではない。
【0047】
一般に、特許請求の範囲を含め、本明細書において使用されるように、「のみ」という文言が表現中で具体的に使用されない限り、その表現に解釈されるべきではない。
【0048】
特許請求の範囲を含め、本明細書において使用されるように、「別個」という表現は、「少なくとも部分的に別個」を意味する。具体的に述べられない限り、別個は完全に別個を意味するものではない。従って、例えば、「XはYとは別個である」という表現は、「Xは少なくとも部分的にYとは別個である」を意味し、「XはYとは完全に別個である」を意味するものではない。従って、特許請求の範囲を含め、本明細書において使用されるように、「XはYとは別個である」という表現は、Xは少なくともいくつかの点でYとは異なることを意味する。
【0049】
特許請求の範囲を含め、本明細書において使用されるように、リストはアイテムを1つだけ含んでよく、そうでないと述べられない限り、多数のアイテムのリストが任意の特定のやり方で順序付けられる必要はない。リストは、複製のアイテムを含んでよい。例えば、本明細書において使用されるように、「CDNサービスのリスト」という表現は、1または複数のCDNサービスを含んでよい。
【0050】
説明および特許請求の範囲における「第1」および「第2」という文言は、区別または識別するために使用されるものであって、連続的または数的限定を示すものではないことが理解されるべきである。同様に、(「(a)」、「(b)」等のような)文字または数的符号の使用は、区別および/または識別を助けるために使用されるものであって、いかなる連続的または数的限定もしくは順序も示すものではない。
【0051】
具体的に示され、述べられない限り、いずれのフロー図においても、符号付けされたボックスのいずれによっても、順序は示唆されない。切り離された複数のボックスが図中に示されている場合、それらのボックスに関連付けられた動作は、完全に、または部分的に並列である場合を含め、任意の順序で実行されてよい。
【0052】
現在のところ最も実際的かつ好ましいと思われる実施形態に関連して本発明を説明してきたものの、本発明は、開示される実施形態に限定されるべきでなく、それどころか、添付の特許請求の主旨および範囲内に含まれる様々な変更および同等の構成を網羅することが意図されているということが理解されるべきである。