JP2017536606A - コンテンツ配信ネットワークにおけるロングテールコンテンツ処理 - Google Patents

コンテンツ配信ネットワークにおけるロングテールコンテンツ処理 Download PDF

Info

Publication number
JP2017536606A
JP2017536606A JP2017517004A JP2017517004A JP2017536606A JP 2017536606 A JP2017536606 A JP 2017536606A JP 2017517004 A JP2017517004 A JP 2017517004A JP 2017517004 A JP2017517004 A JP 2017517004A JP 2017536606 A JP2017536606 A JP 2017536606A
Authority
JP
Japan
Prior art keywords
server
content
resource
popularity
content distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2017517004A
Other languages
English (en)
Other versions
JP2017536606A5 (ja
Inventor
ニュートン、クリストファー
ジョーンズ、ケビン
パワー、ウィリアム
Original Assignee
レベル スリー コミュニケーションズ,エルエルシー
レベル スリー コミュニケーションズ,エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by レベル スリー コミュニケーションズ,エルエルシー, レベル スリー コミュニケーションズ,エルエルシー filed Critical レベル スリー コミュニケーションズ,エルエルシー
Publication of JP2017536606A publication Critical patent/JP2017536606A/ja
Publication of JP2017536606A5 publication Critical patent/JP2017536606A5/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

コンテンツ配信ネットワークは、第1ティアのサーバを少なくとも有する。コンテンツ配信方法は、第1ティアのサーバにの第1のサーバにおいて、リソースについての要求をクライアントから取得する段階を含む。リソースが第1のサーバにおいて、又は第1のサーバのピアにおいて入手可能である場合、リソースは、第1のサーバからクライアントに供給される。さもなければ、リソースは人気があるか否かが決定され、リソースは人気があると決定された場合、第1のサーバは、リソースを取得し、第1のサーバは、クライアントにリソースを供給する。リソースが不人気であると決定された場合、サーバは、第1ティアのサーバではなく、第2のサーバに接触してリソースを取得し、第2のサーバは、第1のサーバにリソースを提供する。第1のサーバは、不人気コンテンツをキャッシュしないよう命令される。

Description

[関連出願]
この特許協力条約(PCT)特許出願は、発明の名称を「コンテンツ配信ネットワークにおけるロングテールコンテンツ処理」とする2014年9月30日出願の米国特許出願第62/057,762号からの優先権を主張し、この全内容は、あらゆる目的のために、参照により本明細書に組み込まれる。
本願は、以下の共有に係る同時係属中の特許出願にも関連し、これらの各々の内容は、あらゆる目的のために、参照により本明細書に全体が組み込まれる。
出願番号及び出願日
10/073,938 2002年2月14日
11/715,316 2007年3月8日
11/978,656 2007年10月30日
11/980,672 2007年10月31日
10/259,497 2002年9月30日
11/932,162 2007年10月31日
11/976,648 2007年10月26日
12/408,681 2009年3月21日
本発明は、コンテンツ配信、コンテンツ配信ネットワーク(CDN)、ならびにCDNを用いたフレームワーク及びシステムに関する。
[用語解説]
本明細書において用いられる場合、他に指定されない限り、以下の用語又は略語は、以下の意味を有する。
1.IPは、インターネットプロトコルを意味する。
2.IPアドレスは、インターネットプロトコルにおいて用いられる、サーバ等のような電子デバイスを識別するためのアドレスを意味する。
3.HTTPは、ハイパーテキストトランスファープロトコルを意味する。
4.URLは、ユニフォームリソースロケータを意味する。
5.DNSは、ドメインネームシステムを意味する。
本開示の一実装は、コンテンツ配信ネットワークにおけるコンテンツ配信方法の形式をとってよい。方法は、コンテンツ配信ネットワークの第1ティアのサーバの第1のサーバにおいて、コンテンツ配信ネットワークから入手可能なリソースに対する要求を、要求デバイスから受信する段階と、要求されたリソースに関連付けられる人気度指定(popularity designation)を決定すべく、コンテンツ配信ネットワークに関連付けられる人気度サービスにアクセスする段階と、コンテンツ配信ネットワークの第2のサーバから、リソースを要求する段階と、の動作を含む。さらに、方法は、第1ティアのサーバの第1のサーバにおいて、コンテンツ配信ネットワークのコンテンツサーバからリソースを取得すべく、コンテンツ配信ネットワークの第2のサーバからのリダイレクトコマンドを処理する段階と、取得されたリソースを要求デバイスに提供する段階と、を含む。
本開示の他の実装は、コンテンツ配信ネットワークの形式をとってよい。ネットワークは、第1の複数のサーバを含む第1ティアのサーバであって、第1ティアのサーバのエッジサーバは、コンテンツ配信ネットワークから入手可能なリソースに対する要求を、第1のサーバと通信を行う要求デバイスから受信する、第1ティアのサーバと、第2の複数のサーバを含む第2ティアのサーバであって、第2の複数のサーバの第1のサーバは、コンテンツに対する要求をエッジサーバから受信し、これに応答して、コンテンツサーバからリソースを取得すべく、要求デバイスを対象とするリダイレクトコマンドをエッジサーバに送信する、第2ティアのサーバと、を含んでよい。コンテンツ配信ネットワークは、要求されたリソースに関連付けられる人気度指定を追跡する人気度サービスをさらに含んでよく、エッジサーバは、リダイレクトコマンドを処理し、コンテンツサーバからコンテンツを取得し、取得されたコンテンツを要求デバイスに提供するように構成されてよい。
本開示のさらに他の実装は、コンテンツ配信ネットワークにおけるコンテンツ配信方法の形式をとってよい。方法は、コンテンツ配信ネットワークの第1ティアのサーバの第1のサーバにおいて、コンテンツ配信ネットワークから入手可能なリソースに対する要求を、要求デバイスから受信し、要求されたリソースに関連付けられる人気度指定を決定すべく、コンテンツ配信ネットワークの第1ティアの第1のサーバに関連付けられる人気度サービスにアクセスし、第1ティアのサーバの第1のサーバにおいて、リソースをキャッシュしないという命令を受信する動作を含む。方法は、要求されたリソースに関連付けられる人気度指定に少なくとも基づいて、コンテンツ配信ネットワークの第2のサーバから、リソースを要求する段階と、取得されたリソースを要求デバイスに提供する段階と、をさらに含んでよい。
本発明は、以下の図面を参照して、より良く理解することができる。図面の要素は、必ずしも縮尺に従っておらず、代わりに、本発明の原理を明確に示すように強調が付されている。さらに、同様の参照番号は、いくつかの図を通して、対応する部分を示す。
一般な、階層的マルチティアのコンテンツ配信ネットワーク(CDN)を示す。
CDNにおけるグループ又はクラスタへのサーバの論理的編成を示す。
コンテンツ配信ネットワーク(CDN)を用いたコンテンツ配信フレームワーク(CDF)を示す。
コンテンツ配信フレームワークにおける2段階のコンテンツ配信ネットワークの動作を示す。
図4のCDNの人気度サービスの動作を示すフローチャートである。
特定の人気度サーバにおいて人気度データを維持するための例示的なデータ構造である。
都市エリアCDNアーキテクチャの図である。
CDNから要求クライアントにコンテンツを供給する方法を示すフロー図であり、コンテンツはキャッシュされていない。
CDNから要求クライアントにコンテンツを供給する方法を示すフロー図であり、CDNは、エッジサーバにおいて、コンテンツをキャッシュする。
本開示の実施形態を実装するにあたって利用可能なコンピューティングシステムの例を示すブロック図である。
[背景技術及び概要]
インターネット及びいわゆるワールドワイドウェブ(WWW)が、ユビキタスとなっている。数千の、又は、実に数万ものいわゆるコンテンツプロバイダ(パブリッシャ)が、今やインターネット(及び、特にWWW)を用いて、世界中の数万、又は実に数十万ものクライアントに、あらゆる種類のコンテンツを提供している。
これらのコンテンツのいくつか又は全てを供給するジョブをオフロードすべく、今や多くのコンテンツプロバイダが、いわゆるコンテンツ配信ネットワーク(CDN)に加入している。CDNを用いて、コンテンツプロバイダのコンテンツのいくつか(又は全て)は、コンテンツプロバイダのサーバから供給される代わりに、CDNから(すなわち、CDNにおける1つ又は複数のサーバから)クライアントに供給可能である。キャッシュを行うCDNにおいて、供給されるコンテンツは、供給される前に、又は当該コンテンツに対する具体的な要求に応答して、CDNサーバのいくつか又は全てにおいてキャッシュされてもよい。
特定のパブリッシャは、大きいコンテンツライブラリを有する。ここで、コンテンツのわずかな部分(いわゆる「ショートヘッド」)のみが、キャッシュを行うCDNを通して供給することによって利益を得る程度の人気があり、コンテンツの大部分(いわゆる「ロングテール」)は、時々アクセスされるのみで、概してキャッシュする価値はない。この状況は、特大の音楽又はビデオライブラリを有するコンテンツパブリッシャにとって典型的であろう。いくつかの音楽コンテンツ、すなわち、人気コンテンツは、定期的に要求される場合があるが、一方で、人気がない(不人気とも称される)他の音楽コンテンツは、これまでに要求されたことがあるにせよ、殆ど要求されない場合がある。
本明細書において用いられる「コンテンツ」という用語は、その表現に関わらず、かつ、それが表すものに関わらず、あらゆる形式のあらゆる種類のデータを意味する。コンテンツは、限定されるものではないが、静的及び/又は動的な画像、テキスト、ストリーミングオーディオを含むオーディオコンテンツ、ストリーミングビデオを含むビデオコンテンツ、ウェブページ、コンピュータプログラム、ドキュメント、ファイル等を含んでよい。いくつかのコンテンツは、例えば、HTML及びXMLのようなマークアップ言語を用いて、他のコンテンツに組み込まれてよい。コンテンツは、特定の要求に具体的に応答して、生成もしくは形成される、又は構成されるコンテンツを含む。「リソース」という用語は、場合により、本明細書において、コンテンツを指すものとして用いられる。
コンテンツは、(人気度の様々な測定によって)人気となることもあれば、又は、相対的に無名の状態に動的に埋没することもある。そのため、コンテンツライブラリは、容易に明示的な区分をされることができない。代わりに、CDNは、特定のコンテンツの人気度を追跡し、コンテンツが人気になると、当該コンテンツをエッジに向けて(すなわち、ティア1サーバに向けて)選択的に移行させる。
CDNは、階層的に編成されたサーバの1つ又は複数のティアを有してよい。図1は、複数のティアのサーバを含むコンテンツ配信ネットワーク100を示す。具体的には、図1のCDN100は、ティア1、ティア2、ティア3、…、ティアjと示される、j個のティアのサーバを示す。サーバの各ティアは、サーバグループ(場合により、サーバクラスタと称される)に編成された多数のサーバを含んでよい。ティア1サーバは、エッジサーバとも称され、ティア1は、場合により、「エッジ」又は「CDNのエッジ」とも称される。ティア2サーバ(CDNに存在する場合)は、親サーバとも称される。
例えば、図1のCDN100において、ティア1は、サーバのn個のグループ(「エッジサーバグループ1」、「エッジサーバグループ2」、…、「エッジサーバグループn」と示される)を有し、ティア2(親サーバのティア)は、m個のサーバグループ(i番目のグループが「親サーバグループi」と示あれる)を有し、ティア3は、k個のサーバグループを有する、等である。好ましくは、各ティアは、同じ数のサーバグループを有する。
図2は、図1のCDNにおけるサーバの論理的編成/グループ化を示す。図2の例示的なCDNにおいて、サーバの各ティアは、同じ数(n)のサーバグループを有する。当業者であれば、この説明を読めば、各サーバグループが同じ又は異なる数のサーバを有してよいことを認識及び理解しよう。さらに、サーバグループにおけるサーバの数は、動的に変化してよい。例えば、更なるサーバが、グループにおいて増加した負荷に対処すべく、サーバグループに追加されてよい。
サーバグループにおけるサーバは、ホモジニアス又はヘテロジニアスであってよく、サーバグループにおける各サーバは、同じ名前及び/又はネットワークアドレスを共有する物理的サーバのクラスタを含んでよい。このようなクラスタの例は、(2103年5月21日に出願された、発明の名称を「負荷バランシングクラスタ」とする)共有に係る米国特許第8,886,814号において説明され、その全内容は、あらゆる目的のために、参照により本明細書に組み込まれる。
同じティアかつ同じグループのサーバは、ピア又はピアサーバと称される。
典型的なCDNは、1つのティアのみ、又は2つのティアのサーバを有する。1つのティアのみを有するCDNは、エッジサーバのみを有し、一方で2つのティアを有するCDNは、エッジサーバ及び親サーバを有する。(少なくとも、CDNは、少なくとも1つのティアのサーバ、すなわち、エッジサーバを有さなければならない。)
ティアにおけるサーバのグループ化は、例えば、これらの物理的又は地理的位置に基づいて行われてよい。例えば、特定のCDNは、6個のグループ、すなわち、米国において、西海岸のグループ1、中西部のグループ2、北東部のグループ3及び南東部のグループ4の4つのサーバグループ、ならびにヨーロッパ及びアジアの各々において1つずつのグループを有してよい。
概して、各ティアにおけるサーバのいくつか又は全ては、互いのティアにおけるサーバのいくつか又は全てとデータを交換することができる。つまり、親サーバのいくつか又は全ては、エッジサーバのいくつか又は全てと情報を交換することができる。簡素化のため、図面において、サーバの各ティアは、互いのティアと動作可能に接続可能であるものとして示される。しかしながら、いくつかのCDNにおいて、特定のティアにおけるサーバは、同じグループにおける他のサーバ(すなわち、ピアサーバ)と、及び/又は異なるティアの同じグループにおける他のサーバとのみ情報を交換可能であることが望ましい。例えば、いくつかのCDNにおいて、エッジサーバグループkにおけるエッジサーバは、互いに情報を交換可能である、親サーバグループkにおける全てのサーバと情報を交換可能であり、等である。
コンテンツプロバイダの/顧客のサーバ(又は複数のサーバ)は、オリジンサーバとも称される。コンテンツプロバイダのオリジンサーバは、当該コンテンツプロバイダによって所有され及び/又は動作させられてよく、又は、ホスティングプロバイダのようなサードパーティによって提供され及び/又は動作させられるサーバであってよい。特定のコンテンツプロバイダのホスティングプロバイダは、当該コンテンツプロバイダにCDNサービスを提供してもよい。
CDNは、CDNの加入者から(すなわち、CDN加入者のそれぞれのオリジンサーバから)コンテンツをキャッシュするために利用可能なCDNオリジン/コンテンツキャッシュティアをさらに含んでよい。当業者であれば、この説明を読めば、CDNが1つ又は複数の加入者をサポート可能であること、すなわち、CDNが、多数の加入者をサポートする共有インフラストラクチャとして機能し得ることを認識及び理解しよう。CDNオリジンティアは、多数のサーバからなるものであってもよく、これらのサーバは、(物理的かつ論理的に)多数の領域及び/又はグループに編成されてもよい。CDNオリジンティアにおけるサーバは、必要に応じて(プル)又は予め(プッシュを介して)、加入者のオリジンサーバからコンテンツを取得する。
図1−3に示されるように、人気度サービス102(以下、より詳細に説明される)1つ又は複数のティアにおけるサーバグループの1つ又は複数に関連付けられる。例示的な実施形態において、親サーバグループのいくつかは、これらと関連付けられる人気度サービス102を有する。グループの別個のコンポーネントとして示されるが、人気度サービス102は、グループにおけるサーバの1つ又は複数に統合されてよい。概して、人気度サービス102は、CDNの任意のサーバ又はサーバグループに関連付けられ又は統合されてよい。いくつかの場合、人気度サービスは、CDNサーバのいずれとも別に、それ自体のサーバを有してよい。「人気度サービス」及び「人気度サーバ」という用語は、本明細書において交換可能に用いられる。
動作中、クライアントが、コンテンツ配信フレームワークを用いて供給されるべきコンテンツを要求する場合、クライアントは、CDNのサーバから、又はいくつかの場合には、加入者/顧客のオリジンサーバから、当該コンテンツを供給されてよい。コンテンツ配信フレームワークは、CDN及びオリジンサーバ層を含んでよい。
クライアントは、あらゆる種類のサーバセレクタシステム104を用いた任意の態様で、CDN及び/又はCDNのサーバに向けられてよい。当業者によって理解されるように、サーバセレクタシステム104は、概して、コンテンツが要求クライアントに供給されるべく、当該コンテンツに対するクライアントの要求を適切なサーバに向けるように動作する。適切なサーバは、(コストの何らかの測定によって)クライアントに近いもの及び/又は負荷が重過ぎないものであってよい。あらゆる種類の条件が、「適切」という用語に適用されてよく、静的及び動的の両方のあらゆる種類の情報及びテストが、適切なサーバを決定するために用いられてよい。サーバセレクタシステム104は、例えば、ドメインネームサービス(DNS)サーバ、スタンドアロンデバイス、又はこれらの組み合わせを含んでよく、又はこれらにおいて全体的に又は部分的に動作してよい。例えば、サーバセレクタシステム104は、要求クライアントの位置と、CDNサーバのいくつか又は全てに対する負荷との何らかの組み合わせに少なくとも部分的に基づいて、適切なサーバを選択する単一レベルのDNSサーバを含んでよい。当業者であれば、この説明を読めば、インターネットのようなネットワークにおけるクライアントの位置が、場合により、概略的にのみ決定される場合があること、及び、「クライアントの位置」という用語が、概して、クライアントのネットワークサービスプロバイダに対応するネットワーク位置であると考えられることを認識及び理解しよう。
図面では1つのコンポーネントとして示されるが、サーバセレクタ104は、多数のコンポーネントを含んでよい。例えば、サーバ選択のいくつか又は全ては、エニーキャストルーティングに基づいてなされてよく、そこで、サーバセレクタ104は、ルータ及び関連付けられたテーブルを含んでよい。
現在の好ましい実施形態において、サーバセレクタ104は、同時係属中の、発明の名称を「構成可能な適応的グローバルトラフィック制御及び管理」(US2003−0065762A1として公開)とする2002年9月30日出願の米国特許出願第10/259,497号、及び発明の名称を「ポリシベースのコンテンツ配信ネットワーク選択」とする2007年10月26日出願の米国特許出願第11/976,648号(集合的に、「ITM出願」)において説明されるもののような、インテリジェントトラフィックマネジャ(ITM)/適応的トラフィックコントローラ(ATC)である。これらの各々の全内容は、あらゆる目的のために、参照により本明細書に組み込まれる。いくつかの実施形態において、サーバセレクタ104は、発明の名称を「最適化されたネットワークリソース位置」とする米国特許第6,185,598号において開示されるもののような、「最良の」又は「最適な」サーバセレクタを含んでよい。その全内容は、あらゆる目的のために、参照により本明細書に組み込まれる。第598号特許は、CDNサーバをいわゆるリピータサーバと称し、いわゆる「ベストリピータセレクタ(BRS)メカニズム」を説明する。
図3は、エッジサーバのティア(ティア1)及び親サーバのティア(ティア2)からなる2段階の階層的なCDNを有するコンテンツ配信フレームワーク300を示す。エッジサーバのいくつか又は全ては、親サーバのいくつか又は全てと通信可能である。エッジサーバは、n個のエッジサーバグループに分割され、親サーバは、m個の親サーバグループに分割される。一実施形態において、値mは、値nに等しい、すなわち、本実施形態において、親サーバグループと同じ数のエッジサーバグループが存在する。CDNオリジン/コンテンツキャッシュティアは、様々な加入者のオリジンサーバから取得した加入者コンテンツを格納する。親サーバグループ(図面中、グループ1)の少なくとも1つは、これらと関連付けられた人気度サービス102を有する。好ましくは、1つより多くの親サーバグループが、関連付けられた人気度サービスを有し、より好ましくは、各親サーバグループが、関連付けられた人気度サービスを有する。
上述されたように、人気度サービスは、親ティア内に示されるが、エッジティア内を含め、システム内のいずれかの箇所に配置されてよい。さらに、人気度サービスは、必ずしも全てのコンテンツではないが、特定のコンテンツによって用いられてよい。特定のコンテンツのみが人気度サービスを用いる場合、コンテンツは、人気度サービスを用いるべく、指定されなければならない。
グループにおけるエッジサーバのいくつか又は全ては、人気度サービスを用いて、様々な加入者のロングテールコンテンツを管理してよい。人気度サービスを用いる各エッジサーバは、当該人気度サービスを対象とするものと称される。人気度サービスを対象とするエッジサーバは、場合により、本明細書において、「ロングテールコサーバ」と称される。
図4及び5は、図3のCDNの人気度サービスの動作を示す。クライアント106が(例えば、HTTP GET要求を用いて)コンテンツを要求する場合、当該要求は、当該コンテンツがクライアントに供給されるべく、(例えば、サーバセレクタ104によって)エッジサーバ108に向けられる。特定の指定されたコンテンツに対して、人気度チェックが、キャッシュ動作のフィルサイドにインターポーズされる。図4は、コンテンツ配信フレームワーク300におけるメッセージ及びデータのフローを示し、図5は、図4のCDNの人気度サービスの動作を示すフローチャートである。この特定の説明のため、クライアントの要求はエッジサーバ108に向けられているものと仮定する。(当業者であれば、この説明を読めば、クライアントの初期要求が、例えば、親ティアを含む、CDN階層における任意のティアに向けられてよいことを認識及び理解しよう。)このサーバは、CDNに関連付けられるサーバ選択メカニズム104を用いて、例えば、1つ又は複数のDNSサーバを用いて、要求クライアントの位置、ネットワークにおける負荷、ネットワークトラフィック条件、CDNポリシ、加入者ポリシ等のようなファクタに基づいてエッジサーバを選択することによって、選択される。
クライアント106は、エッジサーバ108からコンテンツを要求する(図5の500)。クライアント106からの要求は、エッジサーバ108に到達する(図4のS1)。エッジサーバ108は、オブジェクトが(ローカルに又はピアに)存在し、かつ、新しいか否かをチェックする(502)。是の場合、エッジサーバ108は、必要であればピアからオブジェクトを取得して、キャッシュからクライアント106にオブジェクトを供給する(S2、504)。
いくつかの実施形態において、システムは、オンネット及びオフネットピア、ならびに同じスイッチピアの間で区別してよい。オンネットピアは、同じバックボーンネットワーク上のピアであり、オフネットピアは、異なるバックボーンネットワーク上に配置されたピアであり、同じスイッチピアは、チェックを実行するエージェントと同じスイッチに直接接続されるピアである。いくつかの実施形態において、エッジサーバ108は、そのピアのいくつかにおける(例えば、同じスイッチピアのみにおける)オブジェクトの探索のみを実行してよい(502)。
オブジェクトがエッジサーバ108又はピアにおいて入手可能ではない場合、エッジサーバ108は、その人気度に基づいて、このオブジェクトが供給されるか否かを確認する(すなわち、オブジェクトの人気度が当該オブジェクトの供給元を決定するために用いられるようにすべく、このオブジェクトが指定されたか否かを確認する)(506)。是の場合、要求は、エッジサーバ108に関連付けられる人気度サービス102、この場合は、同じグループの人気度サーバに送信される(S3a)。
オブジェクトがその人気度に応じて異なる位置から供給されるように指定されたか否かに関する決定(506)は、オブジェクトを要求するために用いられる名前(ホストネーム)に少なくとも部分的に基づいて、なされてよい。
一実装において、CDNは、いくつかのエッジサーバが人気度チェックを(上述されたように)実行し、他のエッジサーバは実行しないという、エッジサーバの組み合わせを提供する。人気度サービスを実行しないものに対して、オブジェクトをフィルするために用いられる名前(ホストネーム)は、親サーバ(人気度サービスを提供する場合もしない場合もある)に対して解決する。親サーバが人気度サービスを提供しない場合、コンテンツは、エッジサーバによって親サーバから取得され、コンテンツは、クライアントに供給される。
コンテンツに対する要求は、オブジェクトに対する初期要求であってよく、又は、オブジェクトの他の部分、すなわち、クライアントに既に供給された初期部分に対する要求であってよい。要求がオブジェクトの第1の部分に対するものである場合(508)、例えば、要求がリソースの第1のバイトに対する要求を含む(すなわち、ファイルの開始後に開始する範囲要求ではない)場合、人気度サービス102は、オブジェクトが現在人気であるか否かを(後述されるように)決定する。他の実装において、オブジェクトの他の部分が要求されてよい。オブジェクトの人気度の決定は、オブジェクトの各部分に対して実行されてよく、又は、リソースの第1のバイトに対する要求に対してのみ実行されてよい。
ここで、要求デバイスにコンテンツを提供する1つの特定の実装が、説明される。代替的な実装が、図7−9を参照して後述される。図5の実施形態において、オブジェクトに対する要求が受信された場合、現在の期間の人気度カウントが、インクリメントされる(510)。その決定に基づいて、人気度サービス102は、3つの可能な応答のうちの1つを、エッジサーバ108に戻す(S3b)。
1.オブジェクトが人気度の第1の/最低のレベルに到達していない場合(512)、人気度サービスは、(オリジンリダイレクトが有効化されている場合)クライアントの要求をオリジンサーバ(又はCDNオリジンキャッシュ)にリダイレクトするという命令(例えば、HTTP302)を、エッジサーバに送信する(514)。
2.オブジェクトの人気度が人気度の第1の/最低のレベルを超えているが、第2のミッドティア閾値をまだ超えていない場合(516)、人気度サービスは、(ミッドティアリダイレクトが有効化されている場合)クライアントの要求を親サーバにリダイレクトするという命令(例えば、HTTP302)を、エッジサーバに送信する(518)。
3.オブジェクトの人気度がミッドティア閾値を超えている(すなわち、オブジェクトが人気である)場合、人気度サービスは、コンテンツ自体を供給するという命令を、エッジサーバに送信する(520)。本実装において、人気度サービスは、オリジンサーバに対する、又は、もしあれば親ティアに対する、「フォローミー」又は「キャッシュ」フラグセットを有するリダイレクト(HTTP302)を、エッジサーバに送信する。
エッジサーバ108が「フォローミー」フラグセットなしのリダイレクトを人気度サービス102から受信した場合(上述のケース1及び2)、これは、リダイレクトをクライアント104に単に転送する(S4a、522、524)。エッジサーバ108が「フォローミー」リダイレクトを受信した場合、これは、リソースを取得及びキャッシュし(526)、クライアントに供給する(528)。人気度サービス102が到達不可能、応答不可能、又は(HTTP404以外の)エラーを示すステータスコードを戻した場合、オブジェクトは、オリジンサーバ又は親ティアからオブジェクトが読み出された後で、エッジのキャッシュサーバから供給される(及び、警告条件が引き上げられる)。
1つの特定の実装において、一度コンテンツがエッジサーバにおいてキャッシュされると、エッジサーバは、当該コンテンツに対する他の要求を得る度に、人気度サービスに(例えば、再バリデーション形式の)通知を送信する。例えば、図5のフローチャートを参照すると、エッジサーバ108は、要求されたコンテンツをそれが有する(又は、ピアから取得可能である)と決定した場合(502)、コンテンツの供給(504)に加えて、又はコンテンツの供給とは別に、さらに、現在の期間におけるオブジェクトの人気度カウントをインクリメントするよう人気度サーバに命令する(530)。この処理は、人気度サーバを、その領域に供給されているコンテンツの相対的人気度について、最新の状態に保つ。
当業者であれば、この説明を読めば、マルチティアCDNにおいて、人気度サービスは、任意のティアに配置されてよく、又は、人気度サービスは、1つより多くのティアに存在してよいことを認識及び理解しよう。
図4の方法を続けると、段階(4a)は、親又はオリジンサーバに、(人気があれば)コンテンツと共に、又は(そうでなければ)リダイレクトと共に返信してよい。ここで、クライアントは、当該ティアに他の要求を行い(5a又は5b)、コンテンツを取得する。しかしながら、上述されたように、CDNの他の実装も検討されてよい。コンテンツがエッジサーバからクライアントに供給されるこのような1つの実装が、コンテンツがCDNによって人気であるとみなされるか否かに関わらず、以下、より詳細に説明される。
本発明はHTTPプロトコルを参照して説明されたが、当業者であれば、この説明を読めば、異なる及び/又は他のプロトコルが利用可能であり、かつ、本発明者らによって検討されていることを認識及び理解しよう。HTTPは、様々な文献、例えば、ハイパーテキストトランスファープロトコル、HTTP/1.1、RFC2616、ネットワークワーキンググループにおいて説明されており、その全内容は、参照により本明細書に組み込まれる。
当業者であれば、この説明を読めば、異なる閾値がCDNにおける各ティアに対して確立されてよいことを認識及び理解しよう。さらに、当業者であれば、この説明を読めば、各コンテンツアイテムが、それと関連付けられたそれ自体の閾値を有してよいことを認識及び理解しよう。このように、システムは、デフォルト閾値をゼロにすることにより、全てのコンテンツを人気度についてチェックすることができる。このように、各要求は、人気度に閾値を自動的に超えさせ、コンテンツをキャッシュさせる。
人気度サーバを領域的に(親キャッシュサーバとペアで)位置決定することによって、人気度及びキャッシュティアは、領域単位で別個に管理されることが可能である。例えば、人気度は、1つ又は複数のティアのCDNサーバを含む大都市エリアに基づいてよい。1つの領域/グループにおいて人気のコンテンツは、(特に、各領域/グループが地理的及び/又は政治的領域に対応する場合)他の領域/グループでは人気がない場合がある。
一実装において、人気度サーバへの集中は、いわゆる「領域的な」近接を優先させてよく、これにより、同じ領域内のクライアントは、当該領域内においてこれらの人気度「票」を投じ、人気リソースの一貫した取り扱いがなされる傾向がある。しかしながら、複数の親キャッシュサーバが適用可能である場合、概して、特定のクライアントを特定の親に集中させる試みはされない。
いくつかの実施形態において、オブジェクト/リソースにおける人気度は、オブジェクト/リソースが様々な期間において要求された回数に基づいて測定される。図6は、特定の人気度サーバに対して人気度データを維持するための例示的なデータ構造である。図6におけるデータ構造600は、いわゆる集計ハッシュ構造である。
いくつかの実施形態において、CDNのいくつか又は全てのサーバは、人気度サーバに関連付けられる(又はこれを対象とする)。人気度サーバを対象とするCDNのサーバ又は他のコンポーネントは、場合により、対象ロングテールコサーバと称される。システムにおける各人気度サーバは、対象ロングテールコサーバ毎に、集計ハッシュ構造600を割り当てる。構成は、割り当てるリソース(ハッシュ)スロットの数を提供する。1つの特定の実装に対して、ハッシュスロットの数は、コサーバ毎に1億スロットのオーダである。各スロットは、多数のタイムバケット、好ましくは16個のタイムバケットに分割され、各バケットは、例えば、4ビットの符号なし整数によって表される。当業者であれば、この説明を読めば、各タイムバケットにおける値のサイズの選択が、人気度閾値、及び超人気リソースをエッジに保持する範囲についてのポリシ決定に依存することを認識及び理解しよう。各タイムバケットは、期間、好ましくは、秒数を表してよい。
スロットに対する要求/コンテンツのマッピングは、オブジェクト名及びおそらくはオブジェクトに対する要求に関連付けられる他の情報の何らかの関数に基づく。一例において、スロットに対するオブジェクトのマッピングは、オブジェクト名(及び、好ましくは、クエリ文字列の一部を含む)に対するハッシュ又は(MD5等のような)メッセージダイジェスト関数に基づく。各スロットは、従って、1つ又は複数のリソースを表してよい。オブジェクトに対して、クエリ/要求が人気度サーバに到達する毎に、ハッシュが演算され、(適切なコサーバに対して)テーブル600におけるスロットが決定され、当該スロットにおけるカウントが用いられる。ハッシュの衝突が生じた場合、従って、1つのスロットが1つより多くのオブジェクトを受信し、そのカウントを表すことが可能となる。この結果は、概して、(キャッシュフィル及び不人気オブジェクトのエッジキャッシュを招く場合があるので)望ましくない。そこで、スロットの数は、実用的な大きさとなるように選択されなければならない。一実装において、要求/コンテンツのユニフォームリソースロケータ(URL)は、衝突を回避すべく、各スロットにより格納されてよい。
一実装において、特に、人気度データが親サーバ又はオリジンサーバに保持される場合、CDNは、オブジェクトの人気度を、更なるメタデータとしてキャッシュに(かつ、リソースがキャッシュにない場合には、スタブリソースとして非オリジンサーバに)格納してよい。さらに、いくつかのオブジェクト又はリソースは、他のリソースと結び付けられたこれらの人気度スコアを有してよいが、必ずしも特定のオブジェクトのスコアに影響しなくてよい。例えば、人気度追跡は、CDNのHTMLリソースのみに対して実行されてよく、特定のHTMLページ内に組み込まれたリソースの人気度は、人気があるとみなされてよい。つまり、組み込まれたリソースではなく、エンクロージングオブジェクトの人気度が用いられてよい。
当業者であれば、この説明を読めば、異なる及び/又は他のデータ構造が人気度カウントを実装するために用いられてよいことを認識及び理解しよう。例えば、殆どの場合、リソースの合計数が人気リソースの数を大きく超えると予想されるので、バランスの良いbツリーがハッシュテーブルにとって望ましい場合がある。さらに、ハッシュの一部のみを用いることによって、ハッシュスロットのサイズを減少させることが可能である。しかしながら、用いられるハッシュのバイト数を減少させることにより、名前の衝突がより多く発生する可能性がある。
人気度に関して上述されたが、当業者であれば、この説明を読めば、要求をリダイレクトすべきか否かを決定するために、人気度と共に(又はこれに代えて)他のファクタが利用可能であることを認識及び理解しよう。ルールベースは、特定のリソースに対する人気度測定を拡張する及び/又は覆すために用いられてよい。ルールベースにおけるルールは、静的又は動的であってよく、CDN管理者及び/又は加入者によって設定されてよい。例えば、加入者は、エッジから供給されるべき特定のコンテンツに対して、その人気度に関わらず、支払いを望まない場合があり、ルールを適宜設定してよい(この特定の結果は、当該特定のコンテンツがエッジにおいてキャッシュされることを一切防止すべく、これに対する閾値を設定することによって実現されてもよい)。
時には、ログマイニングが、実際の加入者コンテンツライブラリにおけるハッシュの衝突を探索するために用いられてよく、ハッシュ関数及びバケットサイズは、必要に応じて調整されてよい。さらに、各タイムバケットの境界において、人気度サービスは、バケットを論理的に「回転」させ、各オブジェクトに対する最も古い集計データをゼロにする。人気度サービスにおけるコサーバの関与が変化(追加もしくは脱落、又はおそらくは、変化の兆候)する場合にはいつでも、データ構造は更新されるべきである。また、一実装において、所与のオブジェクトの人気度は、連続的な期間にわたるその人気度の重み付けされた合計として決定されてよい。より最近の期間は、より高い重みを付与されてよい。
どのコンテンツが人気度サービスによって管理されるべきかを決定すべく、CDNオペレータ及び/又は加入者は、以下の項目を規定してよい。
・コンテンツが管理されるティア、すなわち、(いくつかの場合には)エッジ、中間もしくは親、又はオリジン(加入者の又はストレージティア) 有意義にすべく、中間及びオリジンサービスの少なくとも1つは、有効化されなければならない。
・単に、キャッシュから常に供給されているものではなく、その人気度に基づいて管理されるべきコンテンツ
ネットワークにおける各サーバは、1つ又は複数のネットワークアドレス(例えば、インターネットプロトコル又はIPアドレス)によってアドレス指定されてよい。ネットワークにおける各サーバは、1つ又は複数の名前(いわゆるホストネーム、すなわち、完全に公認されたドメインネーム)によって認識されてもよい。ホストネームは、1つ又は複数のIPアドレスにマッピングされてよい。ホストネームは、1つより多くのサーバに対応(つまり、これらに対して解決)してよい。ITM(上述のITM特許出願において説明された)のようなシステムは、ある種のホストネーム(スーパーネームと称される)が複数のサーバを指すことを可能とし、近傍のサーバに対してスーパーネームを解決する。一実装において、サーバ選択メカニズムはITMであり、各人気度サーバは、近傍の人気度サーバに到達するように解決するスーパーネームを介してアクセスされる。
人気度サーバが親サーバを共有し、又はこれと共に配置される場合、親サーバは、親サーバがアドレス指定された名前を用いて、要求を人気度サービスに向けるか否かを決定してよい。すなわち、人気度サービスを提供する親キャッシュサーバは、人気度要求のために保持されたエイリアスのうちの1つを用いる要求を認証してよく、人気度サービスを考慮してフィルあり/フィルなしを決定し、上述されたように、リダイレクトを戻してよい。
サーバのホストネームは、そのエイリアスとも称される。各ロングテールコサーバは、好ましくは、少なくとも2つのエイリアス(親キャッシュ/サーバティアが用いられる場合は3つ)を有する。これらは、公開されるスーパーネーム、人気度サービス要求に用いられるホストネーム、及び(用いられる場合は)親キャッシュのリダイレクトに用いられるホストネームである。
人気度サーバは、ITMスーパーネームを介してして到達されてよく、ITMは、サーバのセットにわたって、サービスの入手可能性をモニタする。人気度サーバは、典型的には、仮想のIPではなく、実際のIPアドレスを用いて到達され、必ずしもクラスタ内で冗長ではない。冗長性は、スーパーネーム毎に複数のサーバを有することによって提供されてよい。しかしながら、好ましくは、人気度サーバにおける人気度集計を、配置される人気度サーバの数及び分布によって粒度が決定される「領域」単位で別個に人気度を管理することの、予想される望ましい効果と同期させる試みは、なされない。人気度サーバに障害が生じた場合、新たなサーバが所与のエッジ位置に対してアクティブになることから、人気度の応答に不連続が生じるが、これは、周期的なバックグラウンドでの更新によって、(超人気リソースに対して)低減されてよい。
リソース及びキャッシュ戦略についての情報は、以下の項目を含む。
・このコサーバに関連付けられるリソースの予想合計数
・各リソースに対するヒット数を格納するために用いられるバケットの数
・各バケットが表す秒数
この間隔が経過する度に、最も古いバケットにおけるカウントは廃棄され、新たなバケットがカウントゼロで開始する。
・所与のリソースに対する全てのバケットの合計が任意の人気度サーバに対する親の閾値に到達する場合、当該サーバを用いる親キャッシュ(もしあれば)は、リソースのキャッシュを開始する。
・所与のリソースに対する全てのバケットの合計が任意の人気度サーバに対するエッジ閾値に到達した場合、当該サーバを用いるエッジキャッシュは、リソースのキャッシュを開始する。
・リソース名に適用するハッシュアルゴリズム(任意)
規定されていない場合、デフォルトのアルゴリズム(例えば、MD5)が用いられる。
・任意の所与の時点でエッジにおいてキャッシュされるべきこのコサーバのリソースの最大数
この値は、特定の実施形態では無視されてよい。
・任意の所与の時点で親においてキャッシュされるべきこのコサーバのリソースの最大数
この値は、特定の実施形態では無視されてよい。
当業者であれば、この説明を読めば、人気度カウントのみに基づいて、所与のティアにおいて供給を行うという決定が、当該ティアにおける供給容量を考慮しておらず、そのため、オリジンサーバ又は親ティアが十分な容量を有さない場合、このスキームがオリジンサーバ又は親ティアにとって過負荷となり得ることを認識及び理解しよう。さらに、人気度が、要求数における絶対的閾値の観点から測定され、かつ、ライブラリが十分に大きい場合、これは、親又はエッジティアにおいてキャッシュスラッシュを引き起こす場合がある。親及び/又はエッジサーバの人気度閾値レベルの動的な調整が、この状況の原因である場合がある。つまり、CDNにおけるコンテンツの位置及びコンテンツの供給元を規定することによって、CDNが、増加又は減少するコンテンツの「人気度」に応答することを可能とする機能が提供される。
クライアントがオリジンサーバからコンテンツを受信するように要求クライアントにリダイレクトを提供する代わりに、コンテンツサーバ(例えば、エッジサーバ)は、リダイレクトを直接処理してよい。いくつかの例において、リダイレクトが従来のHTTPコマンドであるにも関わらず、いくつかのクライアントデバイス、アプリケーション、ブラウザ等は、警告又はエラーを示発生させることなく、すなわち、リダイレクトが異なるドメイン行きである場合に警告又はエラーを発生させることなく、リダイレクトコマンドを処理することができない。1つのこのような警告又はエラーは、クロスドメインセキュリティ警告と称され、クライアントデバイスがオリジンサーバに適切にリダイレクトすることの防げとなる場合がある。従って、クライアントデバイスの代わりに、エッジ又は他のCDNデバイスに取得すべきコンテンツをリダイレクトによって取得させ、要求クライアントにコンテンツを渡すことによって、このようなエラー及び警告を回避することができる。
図7及び8又は9を参照すると、本明細書において説明されるように、コンテンツ要求(例えば、www.example.com又はwww.example.com/videoに対する解決された要求)は、コンテンツ配信ネットワークのコンテンツサーバにおいて受信される。一例において、コンテンツサーバは、エッジサーバであってよい。コンテンツサーバは、上述された他のティアの1つにおける親サーバ又はオリジンサーバのようなデバイスであり得ることも可能である。
図7は、都市エリアCDNアーキテクチャ700の図である。上述されたネットワーキング環境と同様に、CDNは、CDN704と通信を行うクライアントデバイス702を含む。CDNは、オリジンサーバが(オリジンサーバ710のように)CDN704において具現化されるか、又は(オリジンサーバ714のように)コンテンツプロバイダネットワーク712において具現化されるかに関わらず、サーバのいくつかのティア、すなわち、エッジサーバのティア706、親サーバのティア708、及びオリジンサーバのティアを含む。人気度サービス716も、ミッドティアサーバ708において、CDN702に含まれる。人気度サービス716は、上述されたように動作し、CDN702によって提供される1つ又は複数のオブジェクトの人気度を追跡し、CDNの1つ又は複数のコンポーネントに、オブジェクト又はコンテンツの人気度に基づいて、オブジェクトをキャッシュするよう命令する。
図7では特定のコンポーネントを含むものとして示されるが、様々なサーバティア、オリジン等を有する任意の数の可能なCDNアーキテクチャ構成が、本開示の態様を利用してよいことを理解されたい。1つの具体例において、エッジキャッシュ706は、CDN都市の一部であり、ミッドティアサーバ708は、都市ミッドティアである。従って、人気度は、人気度サービス716によって、都市レベルにおいて、追跡及びコンテンツキャッシュされてよい。このような実装は、人気度分析に対して、あるレベルの地理的識別力を提供する。いくつかのCDN実装において、クライアント702がクライアントデバイスと地理的に近接するコンテンツサーバを付与されるように、DNS解決の間に、あるレベルの地理的近接分析が実行される。多くの例において、特定の大都市領域内でコンテンツを要求するクライアントは、同じ大都市領域でサービスを提供する都市内のコンテンツサーバ706のアドレスを付与される。従って、同じ大都市領域に関連付けられる人気度サービス716を用いることにより、コンテンツは、当該大都市領域内のコンテンツの人気度に基づいて、追跡を行うことが可能となる。このような例において、ローカルスポーツの話、新しい話、ローカルに人気のビデオクリップ等が人気となり、そのコンテンツが人気のある都市のエッジ706にキャッシュされてよいが、そのコンテンツが人気のない地理的エリア及び都市においては、必ずしもキャッシュされなくてよい。
都市ミッドティアサーバ708を用いることによって、多くの利点が実現される。例えば、エッジサーバ706に近接する都市ミッドティア(MMT)サーバを配置することは、エッジサーバと、エッジから到達されるべきミッドティアサーバとを、ルーティングファブリックを用いるのではなく直接接続することによって、レイテンシ及びインフラストラクチャコストを最小化又は低減することができる。さらに、MMT708を用いることは、超人気コンテンツがエッジにおいてキャッシュされつつ、大部分がMMT内に保持されるように、特大のライブラリが、エッジサーバ706付近に保持されることを可能としてよい。最終的に、MMT708の構造は、(コンテンツをストライプすべく複数のホストネームを用いることのような)エンドユーザ/パブリッシャに可視の複雑さを有することなく、容量の線形的なスケール変更が可能であることを意味する。
上述されたように、いくつかの例において、エッジサーバティア706からコンテンツを供給することは、クライアントデバイス702及び/又はCDN704に利益を与える場合がある。より詳細には、エッジサーバ又はキャッシュ706の1つ又は複数は、CDN704に接続されたクライアントデバイス702を対象とするリダイレクトコマンドを処理するように構成されてよい。さらに、エッジサーバ706は、人気コンテンツをキャッシュし、今後の要求に応答してそのコンテンツを供給するように構成されてよく、又は、不人気コンテンツをキャッシュせず、代わりに親708又はオリジンサーバ710、712からそのコンテンツを提供するように構成されてよい。
図8は、CDNから要求クライアントにコンテンツを供給する方法を示すフロー図であり、コンテンツはキャッシュされていない。本実装800において、コンテンツに対する要求は、動作802において、エッジサーバ(例えば、エッジサーバ706)において受信される。一例において、エッジサーバは、エッジサーバがキャッシュされた又は現在の(陳腐化していない)コンテンツのコピーを有するか否かを決定してよい。このような例において、エッジサーバは、要求デバイス(例えば、クライアント702)に要求されたコンテンツを戻す。さもなければ、エッジサーバは、動作804において、初期人気度分析のためにミッドティアと接触する。上述されたように、人気度サービス716によって決定されたように、要求されたものが不人気である場合、リダイレクトコマンドはクライアントデバイス702に戻され、クライアントデバイスをリダイレクトし、コンテンツを有するCDN704の他のサーバからコンテンツを要求する。先述された実施形態において、リダイレクトにより、クライアントデバイス702は、要求されたコンテンツを取得すべく、CDN704を用いて異なるデバイスに、例えば、CDNオリジン710、又は顧客オリジン714に、リダイレクトされていた可能性がある。しかしながら、図8の実施形態において、クライアント702にリダイレクトを戻すことを回避すべく、代わりに、エッジサーバ706は、リダイレクトを処理してよく、さもなければ、コンテンツを取得し、それをクライアントに提供してよい。
一例において、エッジサーバ706は、リダイレクトを直接処理し、コンテンツのコピーのために、コンテンツのソース708、710に接触する。図7に示される実装において、ミッドティア都市サーバ708に関連付けられる人気度サービス716は、要求されたコンテンツの人気度を追跡する。人気度サービス716と接触することによって、CDN704は、動作804において、要求されたコンテンツは人気がないと決定する。
動作806において、エッジサーバ704は、動作806において、コンテンツをホストするミッドティア708又は他のサーバと接触し、コンテンツを受信する。要求されたコンテンツを戻すことに加えて、ミッドティアサーバ708は、キャッシュ又はキャッシュなし命令をさらに戻してよい。このような例において、ミッドティア708は、コンテンツを有してよく、又は、CDNオリジン710、顧客オリジン714、異なるティア又はそれ以外からコンテンツを読み出すことが必要な場合がある。これに関わらず、ミッドティア708は、人気度サービス716と併せて、コンテンツの人気度を決定する、又はさもなければ特定する。不人気コンテンツに対して、ミッドティア708は、コンテンツサーバ706にキャッシュなし命令を戻す。
ミッドティア708がコンテンツを有さない例において、ミッドティア708は、要求されたコンテンツをホストするコンポーネントに、キャッシュなし命令に加えて、リダイレクトを戻す。エッジサーバ706は、クライアント702の代わりに、リダイレクトを処理してよい。特に、エッジサーバ706は、動作808において、(CDNオリジンサーバ710又はクライアントオリジン714のような)コンテンツのホストから、コンテンツを要求する。コンテンツのホストは、そこで、エッジサーバ706にコンテンツを戻す。エッジサーバ706は、動作810において、コンテンツを受信し、要求クライアント702にコンテンツを提供する。このように、エッジサーバ706は、要求デバイス702の代わりにミッドティア708によって戻されたリダイレクトを処理し、リダイレクト処理におけるエラー又は警告の可能性を回避してよい。さらに、エッジサーバ706は、キャッシュなし命令に応答して、コンテンツをキャッシュしない。
代替的な実装において、要求されたコンテンツは、CDN704の人気度サービス716によって、人気があるとみなされてよい。特に、図9は、CDNから要求クライアントにコンテンツを供給する方法900を示すフロー図であり、CDNは、エッジサーバにおいて、コンテンツをキャッシュする。上述されたものと同様に、コンテンツに対する要求は、動作902において、エッジサーバ(例えば、エッジサーバ706)において受信される。これに応答して、エッジサーバは、エッジサーバがキャッシュされた又は現在の(陳腐化していない)コンテンツのコピーを有するか否かを決定してよい。このような例において、エッジサーバは、要求デバイス(例えば、クライアント702)に要求されたコンテンツを戻す。さもなければ、エッジサーバは、動作904において、初期人気度分析のためにミッドティアと接触する。しかしながら、この例において、ミッドティア708は、サービス716の人気度に基づいて、コンテンツは人気があると決定してよい。
コンテンツが、人気度サービス716によって決定されたように、人気がある、又は人気となった場合、コンテンツは、キャッシュ命令と共に、エッジサーバ706に戻される。一例において、エッジサーバ706は、ミッドティア708からコンテンツを受信してよく、又は、上述されたように、リダイレクトを処理してよい。CDN704のどのコンポーネントからコンテンツが受信されるかに関わらず、エッジサーバ706は、動作906において、コンテンツを受信し、キャッシュ命令に応答して、コンテンツサーバにおいて人気コンテンツをキャッシュする。動作908において、エッジサーバ706は、クライアントデバイス702にコンテンツを提供する。このように、エッジサーバ706は、要求デバイスによるコンテンツに対する要求に応答して、クライアントデバイス702に人気コンテンツを提供してよい。
いくつかの実施形態において、エッジサーバ706は、ローカル人気度追跡を実行し、人気度に基づいて、キャッシュを実行してよい。そこで、例えば、しばしば起こることであるが、キャッシュが一杯の場合、サーバは、新しい人気コンテンツが受信された場合に、より人気の低い又は陳腐化したコンテンツを置換してよい。さらに、コンテンツの人気度は、ホームページ単位で(もしくは他の一般的なコンテンツ識別子)、又は(ホームページ経由でアクセス可能なビデオコンテンツのような)コンテンツ単位で、追跡されてよい。また、人気度は、上述されたように、コンテンツに関連付けられるメタデータを用いて追跡されてよい。
図10は、上に開示されたCDNのコンポーネントの実施形態を実装するにあたり利用可能なコンピューティングデバイス又はコンピュータシステム1000の例を示すブロック図である。例えば、上述のコンテンツサーバ706は、図10のコンピューティングデバイスと同様であってよい。コンピュータシステム(システム)は、1つ又は複数のプロセッサ1002−1006を含む。プロセッサ1002−1006は、1つ又は複数の内部レベルキャッシュ(不図示)と、プロセッサバス1012とのインタラクションを方向付けるバスコントローラ又はバスインタフェースユニットとを含んでよい。ホストバス又はフロントサイドバスとしても知られるプロセッサバス1012は、プロセッサ1002−1006をシステムインタフェース1014と結合するために用いられてよい。システムインタフェース1014は、プロセッサバス1012に接続され、システム1000の他のコンポーネントとプロセッサバス1012とのインタフェースをとってよい。例えば、システムインタフェース1014は、メインメモリ1016とプロセッサバス1012とのインタフェースをとるメモリコントローラ1018を含んでよい。メインメモリ1016は、典型的には、1つ又は複数のメモリカードと、制御回路(不図示)とを含む。システムインタフェース1014は、1つ又は複数の入力/出力(I/O)ブリッジ又はI/Oデバイスとプロセッサバス1012とのインタフェースをとるI/Oインタフェース1020をさらに含んでよい。1つ又は複数のI/Oコントローラ及び/又はI/Oデバイスは、図示されるように、I/Oコントローラ1028及びI/Oデバイス1030のようなI/Oバス1026と接続されてよい。
I/Oデバイス1030は、プロセッサ1002−1006に対して情報及び/又はコマンドの選択の通信を行うための英数字及び他のキーを含む、英数字入力デバイスのような入力デバイス(不図示)をさらに含んでよい。他のタイプのユーザ入力デバイスは、プロセッサ1002−1006に対して、方向情報及びコマンド選択の通信を行い、表示デバイスにおけるカーソルの動きを制御するための、マウス、トラックボール、又はカーソル方向キーのようなカーソル制御を含む。
システム1000は、メインメモリ1016と称される動的ストレージデバイス、又はプロセッサ1002−1006によって実行される情報及び命令を格納するためにプロセッサバス1012に結合されるランダムアクセスメモリ(RAM)もしくは他のコンピュータ可読デバイスを含んでよい。メインメモリ1016は、プロセッサ1002−1006によって命令を実行する間、一時的な変数又は他の中間情報を格納するために用いられてもよい。システム1000は、プロセッサ1002−1006に対する静的な情報及び命令を格納するために、プロセッサバス1012に結合されるリードオンリメモリ(ROM)及び/又は他の静的ストレージデバイスを含んでよい。図10に示されるシステムは、本開示の態様を利用可能な、又はこれに従って構成可能なコンピュータシステムの可能な一例に過ぎない。
一実施形態によれば、上述の技術は、メインメモリ1016に含まれる1つ又は複数の命令のうち、1つ又は複数のシーケンスを実行するプロセッサ1004に応答して、コンピュータシステム1000によって実行されてよい。これらの命令は、ストレージデバイスのような他の機械可読媒体からメインメモリ1016に読み出されてよい。メインメモリ1016に含まれる命令のシーケンスを実行することにより、本明細書において説明される処理段階を、プロセッサ1002−1006に実行させてよい。代替的な実施形態において、ソフトウェア命令の代わりに、又はこれらろの組み合わせで、回路が用いられてよい。つまり、本開示の実施形態は、ハードウェア及びソフトウェアコンポーネントの両方を含んでよい。
機械可読媒体は、機械(例えば、コンピュータ)によって可読な形式(例えば、ソフトウェア、処理アプリケーション)で情報を格納又は送信する任意のメカニズムを含む。このような媒体は、限定されるものではないが、不揮発性媒体及び揮発性媒体の形式をとってよい。不揮発性媒体は、光又は磁気ディスクを含む。揮発性媒体は、メインメモリ1016のような動的メモリを含む。機械可読媒体の一般的な形式は、限定されるものではないいが、磁気記憶媒体、光学記憶媒体(例えば、CD−ROM)、磁気光学記憶媒体、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能メモリ(例えば、EPROM又はEEPROM)、フラッシュメモリ、又は電子的命令の格納に適した他のタイプの媒体を含んでよい。
図5、8及び9のフローチャートは、例示に過ぎないことに留意されたい。本発明の代替的な実施形態は、本発明の主旨及び範囲に影響を与えることなく、動作を追加し、動作を省略し、又は動作の順序を変更してよい。前述の内容は、本発明の原理を示したに過ぎない。説明された実施形態に対する様々な変形及び変更は、本明細書の教示を考慮すれば、当業者にとっては明らかである。つまり、当業者であれば、本明細書において明示的に図示又は説明されていないものであっても、多数のシステム、構成及び方法を案出し、本発明の原理、つまり、本発明の主旨及び範囲内において、具現化することができることが理解されよう。上述の説明及び図面から、当業者であれば、図示及び説明された特定の実施形態は、例示目的に過ぎず、本発明の範囲を限定することが意図されるものではないことが理解されよう。特定の実施形態の詳細についての説明は、本発明の範囲を限定することが意図されるものではない。
特許及び特許出願を含む様々な文献が、参照により本願に組み込まれている。組み込まれた文献と本願との間において何らかの矛盾が生じた場合、本明細書のあらゆる定義を含めて、本願が優先する。

Claims (20)

  1. コンテンツ配信ネットワークにおけるコンテンツ配信方法であって、
    前記コンテンツ配信ネットワークの第1ティアのサーバの第1のサーバにおいて、前記コンテンツ配信ネットワークから入手可能なリソースに対する要求を、要求デバイスから受信する段階と、
    要求された前記リソースに関連付けられる人気度指定を決定すべく、前記コンテンツ配信ネットワークに関連付けられる人気度サービスにアクセスする段階と、
    前記コンテンツ配信ネットワークの第2のサーバから、前記リソースを要求する段階と、
    前記コンテンツ配信ネットワークのコンテンツサーバから前記リソースを取得すべく、前記第1ティアのサーバの前記第1のサーバにおいて、前記コンテンツ配信ネットワークの前記第2のサーバからのリダイレクト命令を処理する段階と、
    前記要求デバイスに、取得された前記リソースを提供する段階と、
    を備える、方法。
  2. 要求された前記リソースに関連付けられる前記人気度指定は、要求された前記リソースは人気がないことを示し、前記方法は、前記リソースが前記コンテンツ配信ネットワークの前記コンテンツサーバから取得された場合に、前記第1ティアのサーバの前記第1のサーバにおいて、前記リソースをキャッシュしないという命令を受信する段階をさらに備える、請求項1に記載の方法。
  3. 要求された前記リソースに関連付けられる前記人気度指定は、要求された前記リソースは人気があることを示し、前記方法は、前記リソースが前記コンテンツ配信ネットワークの前記コンテンツサーバから取得された場合に、前記第1ティアのサーバの前記第1のサーバにおいて、前記リソースをキャッシュするという命令を受信する段階をさらに備える、請求項1又は2に記載の方法。
  4. 前記第2のサーバは、前記コンテンツ配信ネットワークの都市ミッドティアサーバである、請求項1から3のいずれか1項に記載の方法。
  5. 前記第2のサーバは、前記コンテンツ配信ネットワークの前記第1ティアのサーバのピアサーバである、請求項1から4のいずれか1項に記載の方法。
  6. 要求された前記リソースに関連付けられる前記人気度指定は、前記リソースの現在の人気度値が第1の予め定められた人気度閾値を超えるか否かについての指示を含む、請求項1から5のいずれか1項に記載の方法。
  7. 前記人気度サービスは、前記コンテンツ配信ネットワークの前記第2のサーバに関連付けられる、請求項6に記載の方法。
  8. 前記人気度サービスは、前記コンテンツ配信ネットワークの前記第1ティアのサーバの前記第1のサーバに関連付けられる、請求項6に記載の方法。
  9. 前記コンテンツ配信ネットワークは、前記第1ティアのサーバとは別の第2ティアのサーバをさらに含み、前記第2のサーバは、前記第2ティアのサーバにある、請求項1から8のいずれか1項に記載の方法。
  10. 前記コンテンツ配信ネットワークの前記第1ティアのサーバの前記第1のサーバにおいて、前記コンテンツ配信ネットワークから入手可能な前記リソースに対する更なる要求を受信する段階と、
    前記リソースが、前記第1ティアのサーバの前記第1のサーバにおいてキャッシュされることを決定する段階と、
    前記リソースに対する前記更なる要求に応答して、前記第1ティアのサーバの前記第1のサーバから、キャッシュされた前記リソースを提供する段階と、
    をさらに備える、請求項2から9のいずれか1項に記載の方法。
  11. コンテンツ配信ネットワークであって、
    第1の複数のサーバを含む第1ティアのサーバであって、前記第1ティアのサーバのエッジサーバは、前記コンテンツ配信ネットワークから入手可能なリソースに対する要求を、前記エッジサーバと通信を行う要求デバイスから受信する、第1ティアのサーバと、
    第2の複数のサーバを含む第2ティアのサーバであって、前記第2の複数のサーバの第1のサーバは、前記リソースに対する要求を前記エッジサーバから受信し、これに応答して、コンテンツサーバから前記リソースを取得すべく、前記要求デバイスを対象とするリダイレクト命令を前記エッジサーバに送信する、第2ティアのサーバと、
    要求された前記リソースに関連付けられる人気度指定を追跡する人気度サービスと、
    を備え、
    前記エッジサーバは、前記リダイレクト命令を処理し、前記コンテンツサーバから前記リソースを取得し、取得された前記リソースを前記要求デバイスに提供する、コンテンツ配信ネットワーク。
  12. 要求された前記リソースに関連付けられる前記人気度指定は、要求された前記リソースは人気がないことを示し、前記第2の複数のサーバの前記第1のサーバは、前記リソースが前記コンテンツサーバから取得された場合に、前記第1ティアのサーバの前記コンテンツサーバにおいて、前記リソースをキャッシュしないという命令を送信する、請求項11に記載のコンテンツ配信ネットワーク。
  13. 要求された前記リソースに関連付けられる前記人気度指定は、要求された前記リソースは人気があることを示し、前記第2の複数のサーバの前記第1のサーバは、前記リソースが前記コンテンツサーバから取得された場合に、前記第1ティアのサーバの前記コンテンツサーバにおいて、前記リソースをキャッシュするという命令を送信する、請求項11又は12に記載のコンテンツ配信ネットワーク。
  14. 前記第2の複数のサーバの前記第1のサーバは、前記コンテンツ配信ネットワークの都市ミッドティアサーバである、請求項11から13のいずれか1項に記載のコンテンツ配信ネットワーク。
  15. 前記第2の複数のサーバの前記第1のサーバは、前記コンテンツ配信ネットワークの前記第1ティアのサーバのピアサーバである、請求項11から14のいずれか1項に記載のコンテンツ配信ネットワーク。
  16. 要求された前記リソースに関連付けられる前記人気度指定は、前記リソースの現在の人気度値が第1の予め定められた人気度閾値を超えるか否かについての指示を含む、請求項11から15のいずれか1項に記載のコンテンツ配信ネットワーク。
  17. 前記人気度サービスは、前記コンテンツ配信ネットワークの前記第2の複数のサーバの前記第1のサーバに関連付けられる、請求項16に記載のコンテンツ配信ネットワーク。
  18. 前記人気度サービスは、前記コンテンツ配信ネットワークの前記第1ティアのサーバの前記コンテンツサーバに関連付けられる、請求項16に記載のコンテンツ配信ネットワーク。
  19. コンテンツ配信ネットワークにおけるコンテンツ配信方法であって、
    前記コンテンツ配信ネットワークの第1ティアのサーバの第1のサーバにおいて、前記コンテンツ配信ネットワークから入手可能なリソースに対する要求を、要求デバイスから受信する段階と、
    要求された前記リソースに関連付けられる人気度指定を決定すべく、前記コンテンツ配信ネットワークの前記第1ティアの前記第1のサーバに関連付けられる人気度サービスにアクセスする段階と、
    前記第1ティアのサーバの前記第1のサーバにおいて、前記リソースをキャッシュしないという命令を受信する段階と、
    要求された前記リソースに関連付けられる前記人気度指定に少なくとも基づいて、前記コンテンツ配信ネットワークの第2のサーバから、前記リソースを要求する段階と、
    取得された前記リソースを前記要求デバイスに提供する段階と、
    を備える方法。
  20. 前記コンテンツ配信ネットワークの前記第2のサーバは、要求された前記リソースを格納するコンテンツサーバである、請求項19に記載の方法。
JP2017517004A 2014-09-30 2015-09-30 コンテンツ配信ネットワークにおけるロングテールコンテンツ処理 Abandoned JP2017536606A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462057762P 2014-09-30 2014-09-30
US62/057,762 2014-09-30
PCT/US2015/053107 WO2016054144A1 (en) 2014-09-30 2015-09-30 Handling long-tail content in a content delivery network

Publications (2)

Publication Number Publication Date
JP2017536606A true JP2017536606A (ja) 2017-12-07
JP2017536606A5 JP2017536606A5 (ja) 2018-11-01

Family

ID=55585684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517004A Abandoned JP2017536606A (ja) 2014-09-30 2015-09-30 コンテンツ配信ネットワークにおけるロングテールコンテンツ処理

Country Status (7)

Country Link
US (3) US10348848B2 (ja)
EP (1) EP3202140A4 (ja)
JP (1) JP2017536606A (ja)
CN (1) CN107079011A (ja)
CA (1) CA2963264A1 (ja)
SG (1) SG11201702599QA (ja)
WO (1) WO2016054144A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022518372A (ja) * 2019-01-29 2022-03-15 シスコ テクノロジー,インコーポレイテッド レイテンシ制約下でのキャッシュのクラスタに対する効率的で柔軟な負荷分散

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10924573B2 (en) * 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
SG11201702599QA (en) 2014-09-30 2017-04-27 Level 3 Communications Llc Handling long-tail content in a content delivery network
US10432723B2 (en) * 2015-09-03 2019-10-01 Toshiba Memory Corporation Storage server and storage system
US10530852B2 (en) 2016-05-19 2020-01-07 Level 3 Communications, Llc Network mapping in content delivery network
CA3072956C (en) * 2017-08-14 2024-06-11 Level 3 Communications, Llc System and method for metro mid-tier mapping in a content delivery network
JP6904183B2 (ja) * 2017-09-12 2021-07-14 富士通株式会社 情報処理装置、プログラム及び情報処理方法
JP6981292B2 (ja) * 2018-02-14 2021-12-15 株式会社リコー プリントシステム、ジョブリスト提供方法、プリントサーバ装置及びプログラム
EP3777097B1 (en) * 2018-03-28 2024-02-07 Telefonaktiebolaget LM Ericsson (publ) Bypass delivery policy based on the usage (i/o operaton) of caching memory storage in cdn
CN110830535B (zh) * 2018-08-10 2021-03-02 网宿科技股份有限公司 一种超热文件的处理方法、负载均衡设备及下载服务器
US10931778B2 (en) * 2019-01-09 2021-02-23 Margo Networks Pvt. Ltd. Content delivery network system and method
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method
CN109672757B (zh) * 2019-02-26 2022-02-25 北京奇艺世纪科技有限公司 文件访问方法及文件访问处理装置
CN110086868B (zh) * 2019-04-25 2022-03-04 北京奇艺世纪科技有限公司 内容推送方法、装置及设备
CN110995827B (zh) * 2019-11-29 2022-01-07 腾讯科技(深圳)有限公司 通信处理方法、装置、计算机可读介质及电子设备
US11695855B2 (en) 2021-05-17 2023-07-04 Margo Networks Pvt. Ltd. User generated pluggable content delivery network (CDN) system and method
WO2023224680A1 (en) 2022-05-18 2023-11-23 Margo Networks Pvt. Ltd. Peer to peer (p2p) encrypted data transfer/offload system and method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069746A1 (en) * 2004-09-08 2006-03-30 Davis Franklin A System and method for smart persistent cache
US20080147974A1 (en) * 2006-12-18 2008-06-19 Yahoo! Inc. Multi-level caching system
EP2274684A4 (en) 2008-04-04 2012-12-05 Level 3 Communications Llc HANDLING LONG TAIL CONTENT IN A CONTENT DELIVERY NETWORK (CDN)
US9762692B2 (en) * 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
US7991883B1 (en) * 2008-12-15 2011-08-02 Adobe Systems Incorporated Server communication in a multi-tier server architecture
US8433771B1 (en) * 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
CN102148813B (zh) * 2010-09-30 2014-02-26 华为技术有限公司 媒体内容的传输方法和系统
US8863204B2 (en) * 2010-12-20 2014-10-14 Comcast Cable Communications, Llc Cache management in a video content distribution network
US8886742B2 (en) * 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US9167049B2 (en) * 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching
CN102647357B (zh) * 2012-04-20 2016-04-13 中兴通讯股份有限公司 一种处理内容路由方法及装置
SG11201702599QA (en) 2014-09-30 2017-04-27 Level 3 Communications Llc Handling long-tail content in a content delivery network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022518372A (ja) * 2019-01-29 2022-03-15 シスコ テクノロジー,インコーポレイテッド レイテンシ制約下でのキャッシュのクラスタに対する効率的で柔軟な負荷分散
JP7405856B2 (ja) 2019-01-29 2023-12-26 シスコ テクノロジー,インコーポレイテッド レイテンシ制約下でのキャッシュのクラスタに対する効率的で柔軟な負荷分散

Also Published As

Publication number Publication date
CN107079011A (zh) 2017-08-18
US20200059530A1 (en) 2020-02-20
US11032387B2 (en) 2021-06-08
EP3202140A4 (en) 2018-03-21
US20180077258A1 (en) 2018-03-15
WO2016054144A1 (en) 2016-04-07
SG11201702599QA (en) 2017-04-27
US20160094471A1 (en) 2016-03-31
US10348848B2 (en) 2019-07-09
CA2963264A1 (en) 2016-04-07
US10462252B2 (en) 2019-10-29
EP3202140A1 (en) 2017-08-09

Similar Documents

Publication Publication Date Title
US11032387B2 (en) Handling of content in a content delivery network
US10778801B2 (en) Content delivery network architecture with edge proxy
US10218806B2 (en) Handling long-tail content in a content delivery network (CDN)
US8930538B2 (en) Handling long-tail content in a content delivery network (CDN)
US11778068B2 (en) Systems and methods for processing requests for content of a content distribution network
US11463401B2 (en) Systems and methods for processing requests for content of a content distribution network
US10924573B2 (en) Handling long-tail content in a content delivery network (CDN)
EP3669529B1 (en) System and method for metro mid-tier mapping in a content delivery network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180919

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20190524