(57)【特許請求の範囲】
【請求項１】
タグを有する少なくとも１つの埋め込みリソースを含むコンテンツリソースについてのクライアントデバイスからの要求をオリジンシステムにより受信する段階と、
前記タグを識別すると、少なくとも１つの配信パラメータを用いて修正埋め込みリソースを、前記オリジンシステムにより、前記オリジンシステムから分離したコンテンツ配信ネットワークから取得する段階と、
前記修正埋め込みリソースを有する前記コンテンツリソースを、前記オリジンシステムにより前記クライアントデバイスに配信する段階であって、前記修正埋め込みリソースは、前記埋め込みリソースと関連付けられたコンテンツを配信できる前記コンテンツ配信ネットワーク内のノードへのダイレクトリンクを含む、段階と、
を備える
コンテンツ配信方法。
【請求項２】
前記タグは一意のタグである、請求項１に記載のコンテンツ配信方法。
【請求項３】
前記要求はｈｔｔｐ接続を介して受信され、前記少なくとも１つの配信パラメータは前記クライアントデバイスのＩＰアドレスを含み、
前記ＩＰアドレスに基づく情報を、前記コンテンツ配信ネットワークのアプリケーションプログラミングインターフェース（ＡＰＩ）に伝達する段階と、
前記ＡＰＩと関連して、前記埋め込みリソースと関連付けられたパラメータを取得する段階と、
前記ＩＰアドレスと前記パラメータとに基づいて、前記埋め込みリソースに関連付けられた前記コンテンツを供給できる、前記コンテンツ配信ネットワーク内にある前記ノードについてのロケーション情報を識別する段階と、
前記ノードへの前記ダイレクトリンクを含むように前記修正埋め込みリソースを生成する段階と、
をさらに備える
請求項１または２に記載のコンテンツ配信方法。
【請求項４】
前記パラメータは人気度パラメータである、請求項３に記載のコンテンツ配信方法。
【請求項５】
前記パラメータは配信プロトコルパラメータである、請求項３に記載のコンテンツ配信方法。
【請求項６】
前記情報は前記ＩＰアドレスである、請求項３から５のいずれか一項に記載のコンテンツ配信方法。
【請求項７】
前記情報は地理情報である、請求項３から５のいずれか一項に記載のコンテンツ配信方法。
【請求項８】
前記ロケーション情報は、ＩＰアドレス、仮想ＩＰアドレス、および１つまたは複数の絶対ユニフォームリソースロケータのうちの少なくとも１つを含む、請求項３から７のいずれか一項に記載のコンテンツ配信方法。
【請求項９】
前記要求はｈｔｔｐ接続を介し、前記少なくとも１つの配信パラメータは前記クライアントデバイスについてのロケーション識別子であり、
前記ロケーション識別子に基づいて、前記埋め込みリソースをサービス供給するコンテンツ配信ノードに関連する前記修正埋め込みリソースを生成すべく、前記ロケーション識別子を、前記オリジンシステムにより、アプリケーションプログラミングインターフェース（ＡＰＩ）に渡す段階をさらに備える、請求項１から８のいずれか一項に記載のコンテンツ配信方法。
【請求項１０】
前記コンテンツリソースはハイパーテキストマークアップ言語（ＨＴＭＬ）ドキュメントであり、前記埋め込みリソースはリンクである、請求項１から９のいずれか一項に記載のコンテンツ配信方法。
【請求項１１】
コンテンツ配信ネットワークであって、
アプリケーションプログラミングインターフェース（ＡＰＩ）を提供し、
前記ＡＰＩにおいて、埋め込みリソース、および前記埋め込みリソースに関連付けられた少なくとも１つのパラメータを、前記コンテンツ配信ネットワークから分離したオリジンシステムから受信し、
前記埋め込みリソースに関連付けられたコンテンツを取得するための前記コンテンツ配信ネットワーク内のノードへのダイレクトリンクを提供する修正埋め込みリソースを生成し、
前記コンテンツ配信ネットワークにより、前記修正埋め込みリソースを前記オリジンシステムに配信し、
前記コンテンツを取得すべく、前記ノードにおいて、クライアントデバイスから要求を受信し、
前記コンテンツを前記クライアントデバイスに提供するための、
コンピュータ可読命令を含む非一時的コンピュータ可読媒体と通信している少なくとも１つのプロセッサ
を備える、コンテンツ配信ネットワーク。
【請求項１２】
前記コンピュータ可読命令はさらに、リソース内で前記埋め込みリソースと、前記修正埋め込みリソースとを置換するためのものである、請求項１１に記載のコンテンツ配信ネットワーク。
【請求項１３】
前記リソースはＨＴＭＬドキュメントであり、前記修正埋め込みリソースはリンクである、請求項１１または１２に記載のコンテンツ配信ネットワーク。
【請求項１４】
前記修正埋め込みリソースは、前記埋め込みリソースに関連付けられた前記コンテンツを取得すべく、前記ノードとの通信を促すためのＩＰアドレスと、前記埋め込みリソースに関連付けられた前記コンテンツを取得すべく、前記ノードとの通信を促すための仮想ＩＰアドレスと、前記埋め込みリソースに関連付けられた前記コンテンツを取得すべく、前記ノードとの通信を促すための１つまたは複数の絶対ユニフォームリソースロケータと、のうちの少なくとも１つを含む、請求項１１から１３のいずれか一項に記載のコンテンツ配信ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本特許協力条約（ＰＣＴ）出願は、２０１４年１２月３１日に出願された「ネットワークアドレスの解決」と題する米国仮特許出願第６２／０９８，９３０号に基づく優先権を主張し、その全内容が参照により全ての目的に対して本明細書に完全に組み込まれる。
【０００２】
本開示の態様は、ネットワークアドレスの解決に関し、特に、ＨＴＭＬドキュメント内または要求クライアントに返される他のコンテンツ内に、リンク解決情報を埋め込むために、解決の流れ（ｓｔｒｅａｍ）にアプリケーションプログラミングインターフェースを導入することを伴う。
【背景技術】
【０００３】
インターネットおよびワールドワイドウェブ（「ウェブ」）はユビキタスになった。今や、数千もしくは数万ものコンテンツプロバイダ（パブリッシャ）がインターネット（特に、ウェブ）を利用して世界中の多数のクライアントにあらゆるコンテンツを提供している。そのコンテンツの一部または全部を供給する仕事の負荷を下げるために、今や、多くのコンテンツプロバイダがコンテンツ配信ネットワーク（ＣＤＮ）に加入している。ＣＤＮを用いると、コンテンツは、１つまたは複数のコンテンツプロバイダサーバに代わって、ＣＤＮから（例えば、ＣＤＮ内の１つまたは複数のサーバから）クライアントに供給され得る。キャッシュを用いるＣＤＮでは、供給される前、またはそのコンテンツへの具体的な要求に応答して、ＣＤＮサーバの一部または全部においてコンテンツがキャッシュされてもよい。ＣＤＮのエッジサーバ内にコンテンツをキャッシュすると、コンテンツの提供においてエッジサーバよりも効率性に劣る中間層サーバ、オリジンサーバ、または他のロケーションから、コンテンツを取得する必要がないので、ＣＤＮのパフォーマンスが向上する。
【０００４】
コンテンツは、ネットワークから定常的にアクセスされている。例えば、テレビの番組や映画は、今や多数のウェブサイトからアクセスされ得る。印刷された新聞はウェブに移行しており、ポータルを提供している。これを通じ、何らかの形式のコンピューティングデバイス（例えば、ＰＣ、スマートフォン、またはタブレット）を動作させるクライアントは、ブラウザを用いて、ショートビデオクリップ、記事、画像およびオーディオトラックなどの多数の形式のコンテンツにアクセスし得る。ソフトウェアのアップデートおよびパッチは、以前はディスクで提供され、受信者へ送付されるのみだったが、現在はネットワーク接続のみを使用してデバイスに定期的に配布される。これらの形式のコンテンツの全ては、ＣＤＮを用いて配信されてよい。
【０００５】
特にこれらの観察を念頭に置き、本開示における様々な態様が発案され開発された。 
【発明の概要】
【０００６】
本開示における実施形態は、タグを有する少なくとも１つの埋め込みリソースを含むコンテンツリソースへの要求を受信するオペレーションを含むコンテンツ配信方法を伴う。タグを識別すると、少なくとも１つの配信パラメータを用い、修正埋め込みリソースを生成する。また、修正埋め込みリソースを有するコンテンツリソースを配信する。
【０００７】
実施形態はまた、アプリケーションプログラミングインターフェース（ＡＰＩ）を生成するためのコンピュータ可読命令を含む非一時的コンピュータ可読媒体と通信している、少なくとも１つのプロセッサを備えるコンテンツ配信デバイスを含んでもよい。ＡＰＩでは、埋め込みリソース、およびその埋め込みリソースに関連付けられた少なくとも１つのパラメータを受信する。命令はさらに、埋め込みリソースを取得するためのコンテンツ配信ネットワーク内のロケーションに関する情報を提供する、修正埋め込みリソースを生成することを含んでよい。
【０００８】
実施形態はまた、少なくとも１つの埋め込みリソースを含む、ＨＴＭＬドキュメントなどのオブジェクトドキュメントを備える非一時的コンピュータ可読媒体を含んでもよく、少なくとも１つの埋め込みリソースは、埋め込みリソースを置換するための修正埋め込みリソースを構築すべく、埋め込みリソースが解析されるようにするタグを含み、修正埋め込みリソースは、修正埋め込みリソースを有するドキュメントを受信するブラウザに、埋め込みリソースに関連付けられたコンテンツを取得すべく、コンテンツ配信ネットワークとの通信を開始させる、非一時的コンピュータ可読媒体。
【０００９】
最後に、実施形態はまた、サーバとのＨＴＴＰ接続を開始する段階を備えるコンテンツ配信方法を含んでもよく、そのＨＴＴＰ接続はサーバが入手可能なクライアントＩＰアドレスを含む。少なくとも１つの埋め込みリソースを含むＨＴＭＬドキュメントを受信し、埋め込みリソースはコンテンツ配信ネットワークへの参照を含み、これによりコンテンツ配信ネットワークへの参照がクライアントＩＰアドレスにより影響を受ける。また、参照を用い、少なくとも１つの埋め込みリソースと関連付けられたコンテンツを取得すべく、コンテンツ配信ネットワークに直接要求を開始する。 
【００１０】
上記および他の実施形態について、以下により詳細に説明する。
【図面の簡単な説明】
【００１１】
本明細書中に説明される本開示の、上述のおよびその他の目的、特徴、利点は、添付の図面に示されるように、それらの発明概念の特定の実施形態の以下の説明から明らかである。また、図面では、異なる図を通して、同様の参照符号は同じ部分を示し得る。図面は本開示の典型的な実施形態のみを示しており、従って範囲を限定するものとはみなされるべきではない。
【００１２】
【図１】一例において、ＨＴＭＬドキュメントなどのネットワークアセットに含めるための、ＤＮＳをバイパスするＣＤＮのノードへの接続を提供する埋め込みリソースの生成に関するネットワーク図およびメッセージフローである。
【００１３】
【図２】タグ付けされたリソースを識別し、その後に、埋め込みリソースに関連付けられたコンテンツを供給可能なＣＤＮのノードを識別するために、様々なパラメータをＡＰＩに渡すことにより修正埋め込みリソースを提供する方法を示すフロー図である。
【００１４】
【図３】タグ付けされたリソースを含む要求されたアセットの中に埋め込むための修正リソースを生成する方法を示すフロー図である。
【００１５】
【図４】一例において、ＨＴＭＬドキュメントなどのネットワークアセットに含めるためのＤＮＳをバイパスするＣＤＮのノードへの接続を提供する、ＣＤＮ内からの埋め込みリソースの生成に関するネットワーク図およびメッセージフローである。
【００１６】
【図５】タグ付けされたリソースを識別し、その後に、埋め込みリソースに関連付けられたコンテンツを供給可能なＣＤＮのノードを識別するために、様々なパラメータをＣＤＮ内のＡＰＩに渡すことにより修正埋め込みリソースを提供する方法を示すフロー図である。
【００１７】
【図６】本明細書に記載の様々なシステムおよび方法を実装し得る計算システムの例である。
【発明を実施するための形態】
【００１８】
本開示に記載の態様は、クライアントへコンテンツを供給すべく、コンテンツ配信ネットワーク（ＣＤＮ）内にあり得るエッジサーバ、ラック、クラスタまたは他のデバイスを選択するための、システムおよび方法を伴う。本開示に記載の態様は、ＣＤＮから配信されるリソースのユニフォームリソースロケータ（ＵＲＬ）を構築するときに、代わりにＡＰＩを呼び出すこと、またはＣＤＮにクエリを行うことによるエッジ選択に従来のドメイン名システム（ＤＮＳ）サーバを使用すること、への代替案を伴う。ＡＰＩ呼び出しは、リソース名、リソースを要求するクライアントのロケーション及び／またはクライアントのロケーションを決定するのに用いられ得るクライアントのＩＰアドレスを含んでよく、及び／または、要求されている（またはリソース内に埋め込まれている）リソースの人気度も含んでよい。ＡＰＩまたはこれに関連付けられた他の計算エンジンは、ターゲットまたは複数のターゲット（ＣＤＮからのコンテンツを供給可能なノード）のリストを生成し、コンテンツ（または埋め込みコンテンツ）が供給され得る元の１つまたは複数のロケーションを提供する。ある特定の形式において、ＡＰＩは、１つまたは複数のクラスタエッジサーバに対し１つまたは複数の仮想ＩＰアドレス（ＶＩＰ）を返し得る。ＡＰＩはまたコンテンツの要求に用いるプロトコルを返し得る。ＡＰＩはまた、コンテンツがそこから取得され得る絶対ＵＲＬのリスト、及び／または、呼び出し中のアプリケーションにおけるＵＲＬ構築に用いられる可能性のあるホストネーム及び／またはＩＰアドレスのリストを返し得る。
【００１９】
本明細書において用いられる「コンテンツ」という用語は、あらゆる形式のあらゆる種類のデータを意味し、その表現に関わらず、かつ、それが表すものに関わらない。「コンテンツ」という用語は、限定されるものではないが、静的及び／または動的な画像、テキスト、ストリーミングオーディオを含むオーディオコンテンツ、ストリーミングビデオを含むビデオコンテンツ、ウェブページ、コンピュータプログラム、ドキュメント、ファイル等を含んでよい。何らかのコンテンツは、例えば、ＨＴＭＬ及びＸＭＬなどのマークアップ言語を用いて、他のコンテンツに埋め込まれてよい。コンテンツは、特に特定の要求に応答して、生成もしくは形成される、または構成されるコンテンツを含む。「リソース」という用語は、場合により、本明細書において、コンテンツを指すものとして用いられる。
【００２０】
図１は本開示の態様を実施するためのネットワーク構成の一例を示し、図２および図３は方法を説明する。図示されたネットワークは、要求のサービス供給およびコンテンツ提供に伴う他の多くのコンポーネントを含むであろう。しかし、本図においてはシステムに伴う一部のコンポーネントにのみ焦点を当てており、他の従来のコンポーネントもネットワーク内に存在することを当業者は容易に理解するであろう。コンテンツ配信に関して、本例においては、要求は、ブラウザなどのユーザエージェント１２を動作させるコンピューティングデバイス１０から生じる。コンピューティングデバイスは、ブラウザを稼働させることが出来、ネットワーク接続を介し、ユーザにコンテンツを要求する能力を提供することが出来る、パーソナルコンピュータ、シンクライアント、タブレット、スマートフォン、セットトップボックス、またはケーブルボックスなどの何らかの形式のコンピューティングデバイスであってよく、または、ネットワークとやり取りし、そこからコンテンツを要求することに適した、他の何らかのアプリケーションであってもよい。ユーザデバイスは、公衆ネットワークに展開されたコンシューマデバイスであってよく、プライベートネットワークに展開されたエンタープライズデバイスであってよく、または何らかの他のタイプのデバイスであってよい。ネットワーク接続は、多くの例において、１つまたは複数のリゾルバ１４を動作させるインターネットサービスプロバイダ（ＩＳＰ）により供給されるであろう。リゾルバ（ＤＮＳリゾルバとも称される）が、要求されたリソースのネットワークアドレスの解決（例えば、ドメイン名をＩＰアドレスへと変換すること）に使用されるクライアント側のデバイスである。一般的に、リゾルバは、多くの異なるコンポーネントを伴い得るＤＮＳインフラストラクチャ１６にコンタクトし（例えば、クエリを行い）、リソースのネットワークアドレスを解決する（オペレーション２００）。
【００２１】
本開示の態様を示すべく、ユーザがブラウザのウェブページに、アドレスｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍを入力する場合を検討する。ブラウザ１２はリゾルバ１４にコンタクトし、続いてリゾルバ１４はＤＮＳ１６からウェブページのインターネットプロトコル（ＩＰ）アドレスを要求する。ＤＮＳは、ブラウザにウェブページをレンダリングするであろうハイパーテキストマークアップ言語（ＨＴＭＬ）ドキュメント２０の配信が可能なオリジンサーバ１８のＩＰアドレスを返す。ＨＴＭＬドキュメントを取得すべく、クライアントデバイスはオリジンサーバ１８とＴＣＰ接続を確立し、これによりＨＴＴＰプロトコル通信をカプセル化してよい（オペレーション２１０）。オリジンサーバが、クライアントに配信するコンテンツのオリジナルコピーを管理し、及び／または他のノードへコンテンツのコピーの配信を管理するデバイス（またはデバイスの集まり）である。本開示は、オリジンサーバへの接続に関して示されているが、代わりに、要求されるリソースを供給すべくＤＮＳにおいて指定される他の何らかのデバイスと接続されてよい。本例において、オリジンサーバはデータベース２２と接続されており、これは埋め込みリソース２４を有するＨＴＭＬドキュメント２０を含む、ストレージアプライアンスなどの何らかの形式のストレージデバイス（または複数のデバイス）に格納されたリソースを整理および管理する。ＨＴＭＬドキュメントは、ブラウザがウェブページｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／の表示に使用しているものである。本例において、埋め込みリソース２４Ａは何らかの形式のコンテンツへのリンクであり、ウェブページが表示されたとき、ユーザはこのリンクを選択することでこのコンテンツを取得することが出来る。
【００２２】
埋め込みリソースは、リソースアドレス計算エンジン３０がＡＰＩ２６への呼び出しを介してコンタクトされることを示すタグを含んでよい（オペレーション２２０）。例えば、ＨＴＭＬドキュメントは以下の形式の埋め込みリソースを含んでよい。
http://${CALLAPI:ADDRONLY}/path/resource.txt
または
${CALLAPI:F'ULLURL,path=$ENV{PATH},pop=$POP}
【００２３】
双方の例において、タグは「＄」であり、オリジンサーバ１８にアドレス（のみ）または完全なＵＲＬを取得させるべくＡＰＩ２６を呼び出しさせる。従って、オリジンサーバのＨＴＭＬドキュメント２０内のタグ付けされたリソース２４Ａの存在により、オリジンサーバはＡＰＩを呼び出し、この結果、要求クライアントに返されるＨＴＭＬドキュメントは、コンテンツが取得され得るアドレス、またはＣＤＮへのＵＲＬを有する修正埋め込みリソース２４Ｂを含む。
【００２４】
オリジンサーバは要求を受信したとき（または要求を受信する少し前のある時点で）、埋め込みリソースのアドレスをフォーマットするため計算エンジン３０と通信すべく、ＡＰＩを呼び出す。タグ付けされた埋め込みリソースの存在はＡＰＩ呼び出しを促す。本例において、埋め込みリソースのアドレスは静的ではない。その代わり、要求クライアントへのコンテンツの供給に最適なアドレスが返される。従って、シンプルな例において、ＨＴＭＬドキュメントは、リソースを識別するであろうタグ付けされた埋め込みリソース２４Ａと共に最初に公開され、人気度などの他の属性もまた含んでよい。仮にユーザはニューヨークにいて、そのことはＡＰＩ呼び出し内のクライアントＩＰアドレスに基づき、要求クライアントのＩＰアドレスまたは地理情報などの情報を含むことにより判断されてよく、また、ＣＤＮがカリフォルニアおよびニューヨークの双方から要求されたコンテンツを供給することが出来る場合、カルフォルニアからコンテンツを供給するのは、コスト、待ち時間、品質、最適なＣＤＮの利用等を含む多数の理由から最適ではないかもしれない。本システムではその代わりに、ＡＰＩ／計算エンジンは、ニューヨークのノードへとクライアントを誘導するであろう埋め込みリソース２４Ｂ（修正埋め込みリソースとも称される）を作成させてよい。本明細書ではＡＰＩ呼び出し（または複数の呼び出し）に関連する計算エンジンとの組み合わせで説明しているが、修正埋め込みリソースを計算し、返すために他のアプリケーションを使用してよい。いくつかの例において、１つのＡＰＩのみ言及されているが、そのような言及は、インターフェースのみならずＡＰＩへの入力を処理し修正埋め込みリソースを生成するための、関連する計算ルーチンおよび機能等もまた含むことを認識されたい。いずれにしても、修正埋め込みリソースが生成されリソースと交代し、そこで修正リソースはコンテンツ供給可能なノードと識別する（オペレーション２３０）。
【００２５】
ＡＰＩは、様々なソースからのアドレスを決定する際に用いられる情報を取得してよい。まず、オリジンサーバからの要求は情報を含んでよい。クライアントはＴＣＰ接続を介してオリジンサーバにコンタクトするので、クライアントＩＰアドレスはクライアントからの要求の中に含まれ得る。従って、オリジンサーバはクライアントＩＰアドレスをＡＰＩに送信してよく、及び／またはオリジンサーバは、ＡＰＩと共有するための情報２８を取得または生成すべくクライアントＩＰを用いてもよい。例えば、オリジンサーバはクライアントＩＰアドレスに基づき、クライアントの地理情報を取得してよく、または、ＩＰアドレスをＡＰＩに送信してもよく、ＡＰＩはクライアントの地理情報を取得してよい。クライアントのロケーションは、埋め込みリソースへの要求を供給するために最適なノードを選択する際に用いられてよい。コンテンツを直接供給すべくＩＰアドレスを埋め込むことにより、クライアントデバイスはＤＮＳをバイパスしてよく、また、代わりに埋め込みリソースのソースに直接接続してよいことに留意されたい。いずれにせよ、修正埋め込みリソース２４Ｂを有するＨＴＭＬドキュメント２０はクライアントデバイスに返される（オペレーション２４０）。
【００２６】
オリジンサーバ、またはオリジンサーバを管理するカスタマに関連付けられた他のデバイスはまた、コンテンツの人気度情報を取得してもよい。例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／がオンラインビデオプロバイダのホームページであり、埋め込みリソースは劇場で人気だった最近リリースの映画のものである場合を検討する。このような例においては、ビデオプロバイダによって映画がリリースされるとき、それは最初非常に人気があるものであり得、この人気度はトラックされＡＰＩ（およびその計算エンジン）に共有され得る。同じ例において、カスタマは、例えば、ビデオの最初のリリースは契約者（ユーザベース）の間で非常に人気であるだろう、というその理解に基づいて、人気度を「高」にプリセットし得る。人気度のスケールは多数の可能な形式があり得、１＝低、２＝中、３＝高というものや、１が不人気で１０が最も人気がある１〜１０のスケール、等である。カスタマが定義する人気度は、オリジンにおいて最初に定義されるようＨＴＭＬページのタグ付けされた埋め込みリソースに含まれてよく、また、ＡＰＩへの別の入力として提供されてもよい。スケールはコンテンツの要求数に基づいてよく、それは個々の時間（例えば、一日当たり、一分当たり、一秒当たり、等の要求数）に基づいてよい。最後に、人気度は予測され得、また地域化もされ得る。例えば、リソースがニュース記事の場合、何らかの特定の地域において、または何らかの特定の時に、最初に人気となり得る。例えば、早朝の国内ニュース速報記事が米国の東海岸で実際に人気になり得る。カスタマはそれから、西海岸におけるその人気度を予測し得、システムは自動的に、全ての要求に対し人気度を「高」の値に設定し得る。 
【００２７】
地理情報を含むクライアント情報及び人気度に加え、オリジンサーバはまた、ポリシー情報、政治情報、制限等などの他の情報も渡してよい。例えば、何らかのコンテンツの配信は地理的に限定され得る。例えば、リアルタイムのスポーツコンテンツの取得は、そのイベントに参加しているチームのどちらか一方または両方の地域に限定され得る。何らかのコンテンツには地政学的な配信制限があり得る。この情報もまた、ＣＤＮに別々に格納されてよく、または別々にＣＤＮからアクセス可能であってよく、修正埋め込みリソースに渡される、または修正埋め込みリソースを生成するのに用いられてよい。図３を参照すると、計算エンジンは、他の情報とともにＣＤＮ情報を受信するが、それはその情報を、コンテンツを受信可能なノード、ノードの集まりまたはＶＩＰ等、を識別するために用いてよい（オペレーション３００）。
【００２８】
同様の情報はＡＰＩに提供され得る、または、他のソースからのＡＰＩによりアクセス可能であり得る。例えば、ＣＤＮは、自身で人気度情報を管理してよく、それをトラックしてもよく、これはＣＤＮの他のカスタマに起因する要求を説明し得る。よくある場合として、ＣＤＮは多数のカスタマを有するであろうし、またそのカスタマへの一部または全部のコンテンツ配信を担うであろう。さらに、多くの例では、カスタマは同じコンテンツを有する複数のウェブプロパティを有するだろう。従って、クライアントは、コンテンツの取得のために、それらのウェブプロパティのいずれかにコンタクトしてよい。従って、ＣＤＮは何らかのコンテンツの人気度についてより大きな視点を有する。
【００２９】
いずれにしても、ＡＰＩ２６は、タグ付けされたリソース、または修正するよう識別されたリソースに関連する、オリジンサーバから（または何らかの他の要求ソースから）の要求を受信すると、計算エンジン３０へのインターフェースを提供する。計算エンジン３０は、コンテンツを供給するために、ＣＤＮ内の１つまたは複数のノード３２を決定すべく、ＡＰＩを通じエンジンに渡される情報を用いる。（オペレーション３１０）。計算エンジンは、そこからコンテンツを供給するノードを決定する際に、クライアントＩＰ、カスタマ（例えば、カスタマＩＤを通して）、一部または全部の形式の人気度、リソースの配信プロトコル、および様々な他の形式の情報を考慮し用いてよい（オペレーション３２０）。例えば、計算エンジンは、コンテンツを供給するクライアントに最も近いノード（ＣＳ１）を選ぶべく、地理情報を用いてよい。計算エンジンはさらにネットワークトラフィックを考慮してよく、最も近いノードがビジーすぎる場合、近くにあってよりビジーではない別のノード（例えば、ＣＳ２）を選択してよい。コンテンツが何らかの人気度閾値に達し、再度要求される可能性がある場合、計算エンジンはさらに、ＩＰアドレスと共に、ノードにコンテンツのコピーをキャッシュさせる命令を埋め込んでよい。いくつかの例において、例えば、ノードはまだコンテンツを有してないことがあり得、要求を受信すると、オリジンサーバ、別のノード、または他の場所からコンテンツを要求しなくてはならない。そのような例において、命令はノードにコンテンツをキャッシュし保持させ、次の要求を直接供給することが出来るであろう。
【００３０】
ＡＰＩは、コンテンツがそこから取得され得る絶対ＵＲＬ、及び／または、呼び出し中のアプリケーションにおけるＵＲＬ構築に用いられる可能性のあるホストネーム及び／またはＩＰアドレスのリストを返す（オペレーション３３０）。同様に、オリジンサーバはＡＰＩにドキュメントを渡してよく、ＡＰＩは修正埋め込みリソースが直接埋め込まれるようにし、修正されたドキュメントをオリジンサーバに返す。従って、クライアントブラウザがウェブページを表示するとき、例えば、修正埋め込みリソース（例えば、リンク）はコンテンツを配信可能な、ＣＤＮ内にあるノード（例えば、エッジサーバ）の絶対ＵＲＬを含んでよい。ユーザがリンクを選択するとき、ブラウザはコンテンツのノードに直接コンタクトするだろう。ホストネームの場合、埋め込みリソースは、ＣＤＮのネームサーバ３４が直接コンタクトされるようにＣＤＮへの具体的な参照を含んでよく、ＣＤＮが任意の形式のインテリジェントトラフィックマネジメント（ＩＴＭ）または他の形式のエッジ選択を実行し、要求を処理可能なＣＤＮ内にあるノードのＩＰアドレスを返し得るように、任意の他のＤＮＳ処理をバイパスする。ホストネームもまたＡＰＩにより決定された要求を供給可能なノードへの参照を含むであろう、という場合があり得る。そのような場合、ホストネームは、要求を供給するロケーションの近くに用意されたＣＤＮロケーションを参照するが、絶対ＵＲＬに対して、あるレベルのフェイルオーバーまたは負荷バランシング等を可能にする。そのような場合、ホストネームは、要求を供給可能な様々なマシンに関連付けられたＶＩＰにマッピングされ得る。
【００３１】
ＡＰＩ、および要求を供給する最適ノードを解決するためにそれを呼び出すことを伴い得る、代替の実装では、それはＡＰＩにコンタクトして最適ネットワークアドレスを構築するプロセスは、ＣＤＮによって代わりに担われ、カスタマオリジンサーバまたはＣＤＮ外の他のデバイスを必ずしも伴わない。実施形態はＡＰＩを伴うものとして本明細書に説明されているが、ＡＰＩは、異種のシステムが情報を計算エンジンに均一かつ予測可能に渡し、計算エンジンが情報を返すための便利かつ効率的な方法であることに留意されたい。しかしながら、計算エンジンとの通信方法および計算エンジンへの情報伝達には、他の形式のものもまた可能である。さらに、ＡＰＩはエンジンの機能性を含んでよく、必ずしも計算エンジン機能からの個々のメカニズムとして見なされなくてよい。
【００３２】
ここで図４および図５を参照すると、図１〜３のシステムおよびプロセスと同一の方式で、クライアントデバイス４０がブラウザ４２を用いてネットワークリソースへ初期要求をし、要求は受信される（オペレーション５１０）。例えば、クライアントはｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍを要求する。クライアントリゾルバ４４はＤＮＳ４６にクエリを行い、それは要求されたコンテンツと関連付けられたオリジンサーバ・ネームサービス（ＯＳ−ＮＳ）４８からＣＮＡＭＥを返す（オペレーション５２０）。ＣＮＡＭＥはＤＮＳで用いられるメカニズムで、別のドメインの名前またはアドレスを特定する。この場合、ＣＮＡＭＥはＣＤＮ５０のドメインを指し、例えば、ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ．ｃ．ｃｄｎ．ｎｅｔ．である。そのような場合、クライアントデバイス（または他のアクセスデバイス）はシームレスに、ネームサーバ５２、またはｃｄｎ．ｎｅｔドメインのサーバにコンタクトするよう誘導されるだろう。ネームサーバは要求を解決し、ＣＤＮへのエントリポイント、例えば、ページ５６をそこから取得するノード５４を返すだろう。しかしながら、上述の例のように、クライアントがどのようにＣＤＮに誘導されているかに関わらず、クライアントデバイスからのＣＤＮへの要求はＨＴＴＰ接続を伴ってよく、要求デバイスのＩＰアドレス（クライアントＩＰ）および要求されたページに関する情報を含んでよい（オペレーション５３０）。ページ（例えば、ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ）は１つまたは複数の埋め込みリソースを有し、それは上述されたタグ付けされたリソース５８Ａであってよい。従って、ページ宛にコンタクトされるＣＤＮノード（例えば、エッジサーバまたはＣＤＮオリジンサーバ）はタグ付けされた埋め込みリソース５８Ａの存在を認識し、要求クライアントデバイス４０へ返されるページ内に含めるための埋め込みリソース（「修正埋め込みリソース」と称される）５８Ｂを返すために、ＡＰＩ／計算ノード６０にコンタクトするだろう（オペレーション５４０および５５０）。
【００３３】
ＡＰＩ／計算エンジンは、様々な可能なソースからの様々なタイプの情報へのアクセスを有するだろう。例えば、上述のように、ＡＰＩは情報を渡されてよく、また他のソースからの情報を受信してよい。その情報は、ページ内の埋め込みリンクのアドレスを生成するため計算エンジンにより用いられ得る。ページおよび埋め込みリンク（例えば、リソースへのリンク）は要求クライアントへ返される。可能な一例において、埋め込みリソースはリソースを配信するために、ＶＩＰまたはエッジサーバへのダイレクトリンクを含んでよい。計算エンジンは、修正埋め込みリソース５８Ｂを生成するとき、クライアントリゾルバのロケーション、クライアントのロケーション（クライアントＩＰに基づき）、ポリシー、ＣＤＮによりトラックされた人気度または元々の埋め込みリソースに含まれる人気度、地理的な制限、プロトコル、および他のパラメータを考慮してよく、その情報は格納され、計算され、またはＣＤＮ情報格納６２からアクセスされてよい。従って、ページ５６（例えば、ＨＴＭＬドキュメント）がクライアントデバイス４０に返され、修正埋め込みリソース５８Ｂが選択されるとき、クライアントデバイス（例えば、ブラウザ）は直接、ＡＰＩ／計算エンジンにより定義されたノードにコンタクトしてよく、そうでなければリソースを取得するためＣＤＮにコンタクトしてよい。
【００３４】
図６は、計算システム６００の例示的な概略図を示す。計算システム６００は、本明細書に記載の様々なデータを収集し、オリジンサーバ、ＣＤＮ−ＯＳまたはそれ以外からの要求を受信し、および最適なＣＤＮノードを決定すべくデータおよび要求を処理し得る、ＣＤＮノード計算エンジン（およびＡＰＩ）６０８を実装する。アプリケーション６０８の計算システムはバス６０１（すなわち、インターコネクト）、少なくとも１つのプロセッサ６０２または他の計算要素、少なくとも１つの通信ポート６０３、メインメモリ６０４、リムーバブルストレージ媒体６０５、リードオンリメモリ６０６、および大容量ストレージデバイス６０７を含む。プロセッサ６０２は、任意の既知のプロセッサであってよく、限定されないが、例えば、Ｉｎｔｅｌ（登録商標）  Ｉｔａｎｉｕｍ（登録商標）またはＩｔａｎｉｕｍ  ２（登録商標）プロセッサ、ＡＭＤ（登録商標）  Ｏｐｔｅｒｏｎ（登録商標）もしくはＡｔｈｌｏｎ  ＭＰ（登録商標）プロセッサ、またはＭｏｔｏｒｏｌａ（登録商標）系列のプロセッサなどである。通信ポート６０３は、モデムに基づくダイアルアップ接続を使用するＲＳ−２３２ポート、１０／１００イーサネット（登録商標）ポート、カッパもしくはファイバを用いたギガビットポート、またはＵＳＢポートのうちのいずれかであり得る。通信ポート６０３は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）またはコンピュータシステム６００が接続する任意のネットワーク、などのネットワークに応じて選ばれてよい。ランデブーアプリケーションは、周辺デバイス（例えば、入力／出力（Ｉ／Ｏ）ポート６０９を介したディスプレイスクリーン６３０、入力デバイス６１６）と通信していてよい。
【００３５】
メインメモリ６０４はランダムアクセスメモリ（ＲＡＭ）または当技術分野において通常知られている任意の他のダイナミックストレージデバイスであり得る。リードオンリメモリ６０６は、プロセッサ６０２への命令などの静的情報を格納するための、プログラマブルリードオンリメモリ（ＰＲＯＭ）チップなどの任意の静的ストレージデバイスであり得る。大容量ストレージデバイス６０７は情報と命令を格納すべく用いられ得る。例えば、Ａｄａｐｔｅｃ（登録商標）系列の小型コンピュータシリアルインターフェース（ＳＣＳＩ）ドライブなどのハードディスク、光ディスク、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）などのディスクアレイ、例えばＡｄａｐｔｅｃ（登録商標）系列のＲＡＩＤドライブなど、または任意の他の大容量ストレージデバイスが用いられてよい。
【００３６】
バス６０１は、１つ以上のプロセッサ６０２を、他のメモリ、ストレージおよび通信ブロックと通信可能に結合する。バス６０１は、使用されるストレージデバイスに応じ、ＰＣＩ／ＰＣＩ−Ｘ、ＳＣＳＩまたはユニバーサルシリアルバス（ＵＳＢ）に基づくシステムバス（または他のもの）であり得る。リムーバブルストレージ媒体６０５はあらゆる種類の外部ハードドライブ、サムドライブ、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、書き換え可能なコンパクトディスク（ＣＤ−ＲＷ）、デジタルビデオディスクリードオンリメモリ（ＤＶＤ−ＲＯＭ）等、であり得る。
【００３７】
本明細書に記載の実施形態はコンピュータプログラム製品として提供されてよく、コンピュータプログラム製品は、コンピュータ（または他の電子デバイス）にプロセスを実行させるようプログラムすべく用いられ得る命令をその内部に格納する機械可読媒体を含んでよい。機械可読媒体は、限定されないが、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、ＲＯＭ、ＲＡＭ、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気カードもしくは光学カード、フラッシュメモリ、または電子的命令の格納に適した他のタイプの媒体／機械可読媒体を含んでよい。
【００３８】
図示されるように、メインメモリ６０４は埋め込みリソースアプリケーション６５０−１で符号化され、それは、本明細書に記載のＡＰＩ／計算エンジンに関連して説明される機能を含んでよく、また上述および以下にさらに説明されるような機能性をサポートする。例えば、一実施形態において、アプリケーション６５０−１は本明細書に記載の様々なプロセス及び／または命令を含んでよく、または実装してよい。アプリケーション６５０−１（及び／または本明細書に記載の他のリソース）は、本明細書に記載の種々の実施形態に係る処理機能をサポートする、データ及び／またはロジック命令（例えば、メモリ、またはディスクなどの別のコンピュータ可読媒体に格納されるコード）などのソフトウェアコードとして実施され得る。一実施形態のオペレーションの間、プロセッサ６０２は、６５０−１のロジック命令を起動、作動、実行、解釈、または実施するために、バス６０１の使用を介してメインメモリ６０４にアクセスする。
【００３９】
上述の説明は、例示的なシステム、方法、技術、命令シーケンス及び／または、本開示の技術を具現化するコンピュータプログラム製品を含む。しかしながら、記載の開示は、これらの具体的な詳細なしに実施されてよいことは理解されよう。本開示においては、開示された方法は、デバイスに可読な命令セットまたはソフトウェアとして実装されてよい。さらに、開示された方法における段階の具体的な順序または階層は例示的なアプローチの一例であることは理解されよう。設計上の優先事項に基づき、方法における段階の具体的な順序または階層は、開示される主題内に留まりながら再配置され得ることは理解されよう。添付の方法の請求項は、サンプルの順番における様々な段階の要素を提示し、また、提示された具体的な順序または階層に必ずしも限定されることを意味しない。
【００４０】
記載の開示はコンピュータプログラム製品またはソフトウェアとして提供されてよく、それは命令をその内部に格納する機械可読媒体を含んでよく、その命令はコンピュータシステム（または他の電子デバイス）に本開示に係るプロセスを実行させるようプログラムすべく用いられてよい。機械可読媒体は、マシン（例えば、コンピュータ）によって可読な形式（例えば、ソフトウェア、処理アプリケーション）で情報を格納する任意のメカニズムを含む。機械可読媒体は、限定されるものではないが、磁気記憶媒体、光記憶媒体（例えば、ＣＤ−ＲＯＭ）、磁気光記憶媒体、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能メモリ（例えば、ＥＰＲＯＭまたはＥＥＰＲＯＭ）、フラッシュメモリ、または電子的命令の格納に適した他のタイプの媒体を含んでよい。
【００４１】
本開示およびその付随する利点の多くは前述の記載により理解されると考えられる。また、開示される主題から逸脱することなく、または、その本質的な利点の全てを犠牲にすることなしに、コンポーネントの形式、構成および配置において様々な変更が施されてよいことは明らかであろう。記載の形式は単に説明上のものに過ぎず、このような変更を網羅し含むことが、以下の特許請求の範囲の意図するところである。 
【００４２】
様々な実施形態に関して本開示は説明されてきたが、これらの実施形態は例示的なものであり本開示の範囲はそれらに限定されないことは理解されよう。多くのバリエーション、変更、追加および改善が可能である。より一般的に、本開示に係る実施形態は特定の実施のコンテキストにおいて説明されてきた。機能性は、本開示の様々な実施形態において、異なるブロックで分割もしくは結合されてよく、または異なる用語で説明されてもよい。これらおよび他のバリエーション、変更、追加および改善は、以下の特許請求の範囲において定義される本開示の範囲に該当し得る。
【図１】
0006485980.tif 000002
【図２】
0006485980.tif 000003
【図３】
0006485980.tif 000004
【図４】
0006485980.tif 000005
【図５】
0006485980.tif 000006
【図６】
0006485980.tif 000007