JP2023516565A - ホスト名のプレローカライゼーション - Google Patents
ホスト名のプレローカライゼーション Download PDFInfo
- Publication number
- JP2023516565A JP2023516565A JP2022549310A JP2022549310A JP2023516565A JP 2023516565 A JP2023516565 A JP 2023516565A JP 2022549310 A JP2022549310 A JP 2022549310A JP 2022549310 A JP2022549310 A JP 2022549310A JP 2023516565 A JP2023516565 A JP 2023516565A
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- client computing
- localization
- cdn
- edge server
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/69—Types of network addresses using geographic information, e.g. room number
Abstract
本開示の例は、ホスト名のプレローカライゼーションに関する。例において、サービスは、コンテンツ配信ネットワーク(CDN)を使用して、サービスに関連付けられたコンピューティング機能の少なくとも一部を提供する。クライアントコンピューティングデバイスを、コンピューティング機能に関連付けられたCDNの特定のエッジサーバにダイレクトするために、プレローカライズされたホスト名が使用され得る。例において、サービスは、CDNによって提供されるコンピューティング機能に対する開始要求をクライアントコンピューティングデバイスから受信する。サービスは、プレローカライゼーション情報を含むプレローカライゼーション要求を生成し、プレローカライゼーション要求をCDNに提供する。従って、CDNは、プレローカライゼーション情報に基づいて、エッジサーバに関連付けられたプレローカライズされたホスト名を生成する。プレローカライズされたホスト名は、サービスに提供され、次に、クライアントコンピューティングデバイスに提供され、これにより、クライアントコンピューティングデバイスをCDNの特定のエッジサーバにダイレクトする。
Description
[関連出願の相互参照]
本願は、PCT国際特許出願として2021年2月17日に出願され、2020年3月4日出願の米国特許出願第62/985,050号および2020年12月23日出願の米国特許出願第17/131,852号の優先権および利益を主張し、それらの開示はその全体が参照によりここに組み込まれている。
本願は、PCT国際特許出願として2021年2月17日に出願され、2020年3月4日出願の米国特許出願第62/985,050号および2020年12月23日出願の米国特許出願第17/131,852号の優先権および利益を主張し、それらの開示はその全体が参照によりここに組み込まれている。
コンテンツ配信ネットワーク(CDN)のホスト名は、CDNのエッジサーバのためのインターネットプロトコル(IP)アドレスに解決され、これにより、クライアントコンピューティングデバイスがエッジサーバからコンテンツにアクセスすることが可能となる。しかしながら、ホスト名を解決するときに利用可能な情報は限定されており、これにより、CDN内の他のサーバと比較して最適以下のエッジサーバの選択がもたらされ得る。例えば、選択されたエッジサーバは、要求されたコンテンツを有しない場合があり、そのため、エッジサーバは、キャッシュ要求を満たす前に、要求されたコンテンツを最初にキャッシュまたは別様にアクセスする必要があり得る。
これらおよび他の一般的な考慮事項に関して、本明細書に開示される態様がなされている。また、比較的具体的な問題が論じられているものの、実施例は、背景技術または本開示の他の箇所において特定された具体的な問題の解決のみに限定されるものではないことを理解するべきである。
本開示の例は、ホスト名のプレローカライゼーションに関する。例において、サービスは、コンテンツ配信ネットワーク(CDN)を使用して、サービスに関連付けられたコンピューティング機能の少なくとも一部を提供する。従って、サービスは、CDNに関連付けられたホスト名を提供して、かかる機能性のためにクライアントコンピューティングデバイスをCDNにダイレクトする。プレローカライズされたホスト名は、コンピューティング機能に関連付けられたCDNの特定のエッジサーバにクライアントコンピューティングデバイスをダイレクトするために使用され得る。より一般的に、クライアントコンピューティングデバイスをCDN全体にダイレクトするのと比較して(例えば、その後、要求を処理するのに使用され得る近接するデータセンタを特定するためにDNSベースのローカライゼーション技法が使用され得る)。
例において、サービスは、CDNによって提供されるコンピューティング機能に対する開始要求をクライアントコンピューティングデバイスから受信する。結果として、サービスは、プレローカライゼーション情報を含むプレローカライゼーション要求を生成し、プレローカライゼーション要求をCDNに提供する。従って、CDNは、プレローカライゼーション情報に基づいて、CDNのエッジサーバに関連付けられたプレローカライズされたホスト名を生成する。プレローカライズされたホスト名は、サービスに提供され、次に、開始要求に応答してクライアントコンピューティングデバイスに提供され、これにより、クライアントコンピューティングデバイスをCDNの特定のエッジサーバにダイレクトする。
この概要は、詳細な説明でさらに後述される概念から選択したものを、簡易的な形式で紹介するために提供される。この概要は、特許請求されている主題の重要な特徴または必須の特徴を特定することも、特許請求されている主題の範囲を限定するために用いられることも意図されていない。例の追加的な態様、特徴、および/または利点は、部分的には以下の説明において記載され、部分的には説明から明らかであり、または、本開示の実施によって学習され得る。
以下の図を参照して非限定的および非網羅的な例を説明する。
以下の詳細な説明では、その一部を形成し、特定の実施形態または例が例示によって示されている添付図面を参照する。本開示から逸脱することなく、これらの態様が組み合わされ得、他の態様が利用され得、構造的な変更がなされ得る。実施形態は、方法、システム、またはデバイスとして実施され得る。従って、実施形態は、ハードウェア実装、完全にソフトウェア実装、またはソフトウェアおよびハードウェアの態様を組み合わせた実装の形態を取り得る。従って、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は添付の特許請求の範囲およびそれらの均等物によって定義される。
コンテンツ配信ネットワーク(CDN)は、クライアントコンピューティングデバイスからの要求を処理するのに使用されるエッジサーバのセットを含む。例において、1または複数のエッジサーバがデータセンタの一部を形成し、CDNのデータセンタは、1または複数の地理的領域内のクライアントコンピューティングデバイスにサービス提供するために地理的に分散し得る。例えば、データセンタは、クライアントコンピューティングデバイスからの要請がデータセンタのエッジサーバ間で分散されるように、共通の地理的位置において複数のエッジサーバを含む。クライアントコンピューティングデバイスからのクライアントの要求をデータセンタ内の特定のエッジサーバにダイレクトするべく、CDNに関連付けられた権威ドメインネームシステム(DNS)サーバが、CDNのホスト名を、特定のエッジサーバに関連付けられたインターネットプロトコル(IP)アドレスに解決する。いくつかの例では、特定のエッジサーバは、要求しているクライアントコンピューティングデバイスに関連付けられた地理的位置に少なくとも部分的に基づいて、および/または、データセンタ内でエッジサーバを選択する(本明細書で「ローカライゼーション」と称されるプロセス)ためのラウンドロビン技法に従って選択される。クライアントコンピューティングデバイスは次に、他の例の中でも、特定のエッジサーバと通信して、要求を送信し、応答を受信し、および/またはコンテンツにアクセスする。
しかしながら、CDNのホスト名を解決するためのDNS解決要求の一部として提供される限定された情報が原因で、クライアントコンピューティングデバイスからの要求を処理するのによく適したエッジサーバを特定するのが困難であり得る。例えば、データセンタ内のエッジサーバは各々が1または複数の責任(例えば、異なるタイプの要求を処理する、コンテンツの特定のサブセットを処理するなど)を割り当てられ得、それにより、ホスト名(および、いくつかの例では、位置)に基づくDNS解決要求の解決が、クライアントコンピューティングデバイスからの要求を処理するのによく適していないエッジサーバのためのIPアドレスがもたらされる一方、データセンタの異なるエッジサーバ(または異なるデータセンタ)に代わりにかかる責任が割り当てられ、従って、より良好な選択であり得る。
例えば、選択されたエッジサーバがクライアントコンピューティングデバイスによって要求されたコンテンツを担っていない場合、エッジサーバは、コンテンツ要求を満たすべく、別のサーバ(例えば、データセンタ内の別のエッジサーバ、異なるデータセンタからのエッジサーバ、オリジンサーバなど)からのコンテンツを最初にキャッシュし得る。これにより、さもなければクライアントコンピューティングデバイスにサービス提供するのに利用可能であり得るリソースが、代わりに、要求されたコンテンツをエッジサーバに伝達するのに使用されるため(データセンタ内の別のエッジサーバは、要求されたコンテンツを既に有し得る、または他の例では少なくともそれを担っている場合があるにもかかわらず)、CDN内の利用可能なコンピューティングリソースが有効に利用されない場合がある。
従って、本開示の態様は、ホスト名のプレローカライゼーションに関する。例において、CDNは、サービスのユーザに関連付けられたクライアントコンピューティングデバイスの要求を処理するためにサービスによって使用される。様々なサービスはいずれも、本明細書に記載の態様によるCDNを使用し得る。例示的なサービスには、ビデオストリーミングサービス、ビデオゲームサービス、クラウドコンピューティングサービス、またはウェブアプリケーションサービスが含まれるが、これらに限定されるものではない。例えば、ビデオストリーミングサービスは、ストリーミングコンテンツを提供するためにCDNを使用し得、これにより、ビデオストリーミングサービスの提供に関連付けられる計算要求の少なくとも一部をCDNにオフロードし得る。サービスがコンテンツに対する開始要求をクライアントコンピューティングデバイスから受信すると(例えば、クライアントコンピューティングデバイスのユーザがサービスからのビデオストリーミングを開始したことの結果として)、サービスは、要求されたコンテンツを示すプレローカライゼーション情報を含むプレローカライゼーション要求をCDNに提供する。
プレローカライゼーション情報は、要求されたコンテンツを担うエッジサーバに関連付けられたホスト名を決定するためにCDNによって使用され、これにより、要求されたコンテンツがCDN内の別のサーバから最初にキャッシュされなければならない可能性が低減される。決定されたプレローカライゼーションのホスト名を示すプレローカライゼーション応答がサービスに提供される。結果として、サービスは、ホスト名を使用して、クライアントコンピューティングデバイスを決定されたエッジサーバにダイレクトするクライアントコンピューティングデバイスに対する応答を生成し、これにより、コンテンツにアクセスするために、クライアントコンピューティングデバイスに決定されたエッジサーバと通信させる。つまり、「プレローカライゼーション」(および結果的な「プレローカライズされた」ホスト名)は、クライアントコンピューティングデバイスからの要求を処理するためのCDNのエッジサーバを特定するべく、DNSサーバによって実行され得るローカライゼーションの代替として、またはそれに加えて使用される。
本明細書で使用される場合、開始要求は、サービスがクライアントコンピューティングデバイスから受信する要求であり、これに応答して、サービスは、クライアントコンピューティングデバイスをCDNにダイレクトする。例において、サービスは、CDN(例えば、そのサービスが顧客である)とは別個であり、サービスは、CDNのエッジサーバ/データセンタに加え、クライアントコンピューティングデバイスによって利用される1または複数のサーバコンピューティングデバイスを含む。一例として、サービスの1または複数のサーバコンピューティングデバイスは、クライアントコンピューティングデバイスによってアクセスされるウェブサイトを提供するために使用され得、その後、開始要求が、クライアントコンピューティングデバイスを、サービスのサーバコンピューティングデバイスではなくむしろCDNにダイレクトさせる(例えば、本明細書に記載の態様によるプレローカライズされたホスト名に基づいて)。
ビデオストリーミングサービスの例に戻ると、ビデオストリーミングサービスは、ユーザが「再生」を選択した、または、ビデオストリーミングサービスによって提示されたビデオのカタログからビデオを選択したことの指示を受信した後に、クライアントコンピューティングデバイスから開始要求を受信し得る。いくつかの例では、開始要求はそのような指示を含む。例において、ビデオストリーミングサービスは、ビデオストリーミングサービスによって提供されるコンテンツの供給を担うCDNの顧客であり得る。従って、ビデオストリーミングサービスは開始要求に対する応答を提供し得、これにより、クライアントコンピューティングデバイスがCDNからのコンテンツにアクセスするようにダイレクトされる。別の例として、開始要求は、ビデオゲームサービスがプレーヤのコンピューティングデバイスをCDNにダイレクトして、CDNのサーバを使用して選択されたゲームモードをプレイするように、プレーヤがビデオゲーム内のゲームモードを選択するときにビデオゲームサービスによって受信され得る。つまり、開始要求は、サービスがそのためにCDNを使用する様々なコンピューティング機能のいずれかと関連付けられ得ることが理解され、これには、他の例の中でも、コンテンツ(例えば、1または複数のファイル、ビデオ、および/またはオーディオストリームなど)の提供、サーバ側処理(例えば、オンラインゲーム、クラウドコンピューティング、ウェブアプリケーションなど)、ならびにオーディオ/ビデオ会議が含まれるが、これらに限定されるものではない。
サービスは、プレローカライゼーション要求を生成し、プレローカライズされたホスト名を取得するべくCDNに対してプレローカライゼーション要求を提供し得る。プレローカライゼーション要求は、クライアントコンピューティングデバイスについての情報を含み得るプレローカライゼーション情報を含み、これには、IPアドレス、地理的位置、ソフトウェアおよび/もしくはハードウェア能力(例えば、1または複数のサポートされたコーデック、ハードウェア復号が利用可能であるかどうかなど)、ならびに/またはデバイスタイプ(例えば、タブレット、ラップトップ、モバイルデバイスなど)が含まれるが、これらに限定されるものではない。別の例として、プレローカライゼーション情報は、開始要求に関する情報を含み得、これには、関連付けられたコンピューティング機能に関する情報(例えば、要求されたコンテンツ、サーバ側処理に関連付けられた1または複数のデータベースなど)、開始要求が関連付けられるサービスの指示、要求のユニフォームリソースロケータ(URL)、ならびに/または関連するクライアントコンピューティングデバイスに関する情報(例えば、ビデオゲームおよび/もしくはテレビ会議のシナリオでそうであり得るように)が含まれるが、これらに限定されるものではない。プレローカライゼーション情報は、他の例の中でも、クライアントから受信される開始要求に基づいて、サービスによって生成された情報に基づいて、またはそれらの任意の組み合わせで生成され得る。
プレローカライゼーション要求は、アプリケーションプログラミングインターフェース(API)を介して通信され得る。一例として、CDNは、レプレゼンテーショナルステートトランスファ(representational state transfer)(REST)ソフトウェアアーキテクチャに従ったウェブインターフェースを提供し得、プレローカライゼーション情報は、APIを介してプレローカライゼーション要求の一部として受信され、それに応答してプレローカライズされたホスト名が提供される。様々な他の技法のいずれかがプレローカライゼーション情報および関連付けられるプレローカライズされたホスト名を通信するのに使用され得ることが理解される。
例において、プレローカライズされたホスト名の生成は決定論的であり得、そのため、プレローカライゼーション情報の少なくとも同じサブセットを提供することにより同じプレローカライズされたホスト名が与えられる。例えば、プレローカライゼーション情報によって示される要求されたコンテンツをハッシュし、要求されたコンテンツを担うデータセンタ内のエッジサーバを特定するためにハッシュアルゴリズムが使用される。そのような例において、ハッシュされた要求されたコンテンツの値を1または複数のエッジサーバに適宜に関連付けるために、ハッシュテーブルが使用され得る。ハッシュテーブルが、クライアントコンピューティングデバイスの位置に対する特定のデータセンタの近接性(例えば、プレローカライゼーション情報によって示され得るように)に応じて決定されるように、ハッシュテーブルは特定のデータセンタと関連付けられ得る。追加的または代替的なプレローカライゼーション情報に基づいてプレローカライズされたホスト名を生成するために類似の技法が使用され得ることが理解される。さらに、ハッシュおよび関連付けられたハッシュテーブルに基づいてエッジサーバを特定することに加えて、またはそれに代わって、代替的な技法が使用され得る。例えば、コンピューティング機能および1または複数のホスト名を関連付けるルックアップテーブルが使用され得る。さらに、複数のエッジサーバが決定されたホスト名に関連付けられ得ることが理解される(例えば、同じデータセンタ内および/または複数のデータセンタ間で)。
いくつかの例において、プレローカライゼーションの決定は、サービス自体が、本明細書に記載のプレローカライズされたホスト名を生成するための技法を実装するように、CDNによって提供されるAPIを介してではなくむしろサービスによって実行され得る。そのような例において、エッジサーバ情報、および/またはプレローカライズされたホスト名の決定に関連付けられるアルゴリズムがサービスに提供され得、いくつかの例では、周期的に更新され得る。別の例として、クライアントコンピューティングデバイスは、クライアントコンピューティングデバイスがAPIを介して適宜にプレローカライズされたホスト名を要求するように、サービスではなくむしろCDNによって提供されるAPIを使用し得る。クライアントコンピューティングデバイスは、それに応答してプレローカライズされたホスト名を受信し、次に、プレローカライズされたホスト名を特定のエッジサーバのIPアドレスに適宜に解決し得る。
他の例において、サービスは、プレローカライズされたホスト名をクライアントコンピューティングデバイスに提供する必要はなく、代わりに、CDNにより広く関連付けられたホスト名を使用してクライアントコンピューティングデバイスをCDNにダイレクトし得る(例えば、上で論じたDNS解決技法に従ってホスト名がローカライズされ得るように)。最終的には、クライアントコンピューティングデバイスは、CDNのエッジサーバと通信し得る。エッジサーバは、クライアントコンピューティングデバイスから受信した要求に応答して、本明細書に記載のプレローカライゼーション技法と同様の態様を実行し得、これにより、プレローカライズされたホスト名を使用してクライアントコンピューティングデバイスを異なるエッジサーバにリダイレクトし得る。
図1は、ホスト名のプレローカライゼーションの態様が実施され得る例示的なシステム100の概要を示す。示されるように、システム100は、クライアントコンピューティングデバイス102と、サービス104と、データセンタ106と、中間DNSサーバ108と、権威DNSサーバ110と、プレローカライゼーションエンジン112と、ネットワーク122とを含む。クライアントコンピューティングデバイス102、サービス104、データセンタ106、中間DNSサーバ108、権威DNSサーバ110、およびプレローカライゼーションエンジン112は、ネットワーク122を通じて通信するように示されている。ネットワーク122は、他の例の中でも、ローカルエリアネットワーク、ワイドエリアネットワーク、1または複数のセルラネットワーク、および/またはインターネットを含み得る。
クライアントコンピューティングデバイス102は、モバイルコンピューティングデバイス、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、またはデスクトップコンピューティングデバイスを含むがこれらに限定されるものではない様々なコンピューティングデバイスのいずれかであり得る。例において、クライアントコンピューティングデバイス102はサービス104と通信する。サービス104は、他の例の中でも、ビデオストリーミングサービス、ビデオゲームサービス、クラウドコンピューティングサービス、またはウェブアプリケーションサービスを含むがこれらに限定されるものではない様々なサービスのいずれかであり得る。サービス104は、クライアントコンピューティングデバイス102によって利用されるコンピューティング機能の少なくとも一部を提供するためにCDNを使用し得る。例えば、サービス104は、クライアントコンピューティングデバイス104が利用可能なコンテンツを閲覧するために相互作用するウェブサイトをホストし得るが、クライアントコンピューティングデバイス102が、CDNによってサービス104のためにホストされる特定のコンテンツに対する要求を送信するとき、クライアントは、コンテンツを取得するためにCDNにダイレクトされる。示されるように、データセンタ106、中間DNSサーバ108、権威DNSサーバ110、および/またはプレローカライゼーションエンジン112は、破線ボックス111によって示されるように、そのようなCDNの少なくとも一部を形成し得る。他の例では、システム100に関して説明された例示的なCDNの特定の要素は、サードパーティ(例えば、中間DNSサーバ108、データセンタ106など)によって提供され得ることが理解される。さらに、特定要素に関して本明細書に記載の機能性は、様々な他の技法のいずれかに応じて分散され得る。例えば、プレローカライゼーションエンジン112は、代わりに、データセンタ106の一部であり得る。
データセンタ106は、オリジンサーバ117、エッジサーバ118および120、および負荷分散サーバ121を含むように示されている。他の例では、オリジンサーバ117は、サードパーティによって動作され得る、および/または、データセンタ106と通信可能に結合された異なるデータセンタに配置され得る。オリジンサーバ117およびエッジサーバ118および120は、本明細書に記載の態様によるCDNのコンピューティング機能を提供する。例において、エッジサーバ118および120は各々が、データセンタ106内の関連付けられた責任のセットを有する。例えば、サービス104は、エッジサーバ118がコンテンツの第1のサブセットを担い、エッジサーバ120がコンテンツの第2のサブセットを担うように、データセンタ106が担うコンテンツのカタログを有し得る。オリジンサーバ117は、そのようなコンテンツをクライアントコンピューティングデバイス102に提供するべく、エッジサーバ118および120がオリジンサーバ117からのコンテンツのそれらのそれぞれのサブセットからのコンテンツをキャッシュするように、コンテンツのカタログを格納し得る。例において、サブセット間に重複がないように、第1のサブセットおよび第2のサブセットは相互排他的であり得る。他の例において、第1のサブセットおよび第2のサブセットの少なくとも一部は重複し得る。複数の複数のデータセンタが使用され得ることが理解される。例えば、CDNのデータセンタは、エッジサーバとクライアントコンピューティングデバイスとの間のレイテンシを改善するべく、地理的に分散され得る。
例において、サービス104のクライアント要求プロセッサ114は、クライアントコンピューティングデバイス102から受信した要求を処理する。クライアント要求プロセッサ114は、例えば、開始要求に応答して、クライアントコンピューティングデバイス102をCDNに関連付けられた(例えば、エッジサーバ118または120のうちの1つに関連付けられた)ホスト名にダイレクトし得る。結果として、クライアントコンピューティングデバイス102は、中間DNSサーバ108と通信して、ホスト名をエッジサーバ118および120のうちの1つのIPアドレスに解決する。中間DNSサーバ108は、権威DNSサーバ110と通信して、ホスト名のIPアドレスを決定し、これを中間DNSサーバ108がクライアントコンピューティングデバイス102に提供する。例において、権威DNSサーバ110は、上記のようにDNS要求をローカライズする。例えば、権威DNSサーバ110は、(例えば、クライアントコンピューティングデバイス102または中間DNSサーバ108などの)DNS解決要求に関連付けられた位置を決定し得、決定された位置に少なくとも部分的に基づいてエッジサーバ118または120のIPアドレスを返し得る。しかしながら、例において、権威DNSサーバ110による特定のエッジサーバ118または120の割り当ては、ランダムであり得る、および/または、そのようなエッジサーバ118および120に実際に格納されているコンテンツもしくはそれにより提供されるサービスに関して目に見えない場合がある。他の例において、権威DNSサーバ110は、データセンタ106のために負荷分散サーバ121のIPアドレス(いくつかの例では、負荷分散サーバ121が省略され得ることを示すように破線ボックスを使用して示される)を返し得、データセンタ106は次に、要求を処理するための特定のエッジサーバ118または120を割り当て得る。しかしながら、再び、要求を処理するための特定のエッジサーバ118または120のそのような割り当ては、ランダムであり得る、および/または、そのようなエッジサーバ118および120に実際に格納されているコンテンツもしくはそれにより提供されるサービスに関して目に見えない場合がある。
クライアントコンピューティングデバイス102は、IPアドレスを使用して、エッジサーバ118または120と適宜に通信する。システム100は1つのオリジンサーバ117、2つのエッジサーバ118および120、1つのクライアントコンピューティングデバイス102、1つの中間DNSサーバ108、ならびに1つの権威DNSサーバ110に関して説明されているが、他の例では任意の数のそのような構成要素が使用され得ることが理解される。例えば、クライアントコンピューティングデバイス102は、権威DNSサーバ110と直接通信してもよく、または、別の例において、所与のホスト名のためのIPアドレスを最終的に解決するために複数の中間DNSサーバが使用され得る。
例において、サービス104によりクライアントコンピューティングデバイス102に提供されるホスト名は、クライアントコンピューティングデバイス102を、エッジサーバ118および120のうちの特によく適した一方にダイレクトするべく、(例えば、権威DNSサーバ110によるローカライゼーションに先立って、またはそれを伴わずに)プレローカライズされ得る。サービス104は、ホスト名プレローカライザ116をさらに含むように示されている。ホスト名プレローカライザ116は、プレローカライゼーションエンジン112と通信してプレローカライズされたホスト名を決定し、これは次に、クライアント要求プロセッサ114を介してクライアントコンピューティングデバイス102に提供される。一例として、ホスト名プレローカライザ116はプレローカライゼーション情報を含むプレローカライゼーション要求を生成し、プレローカライゼーション要求をプレローカライゼーションエンジン112に提供する。例において、クライアント要求プロセッサ114は、受信した開始要求に関する情報を提供し、その少なくとも一部は、プレローカライゼーション情報を生成するのに使用され得る。例えば、プレローカライゼーション情報は、クライアントコンピューティングデバイス102についての情報および/または受信した開始要求に関する情報を含み得る。プレローカライゼーション要求は、本明細書に記載の態様によるAPIを使用してプレローカライゼーションエンジン112に提供され得る。
プレローカライゼーションエンジン112はプレローカライゼーション要求を受信し、それに応答して、プレローカライズされたホスト名を提供する。プレローカライゼーションエンジン112は、エッジサーバデータストア124を含むように示され、エッジサーバデータストア124にCDNのエッジサーバに関する情報が格納され得る。例示的なエッジサーバ情報には、他の例の中でも、1または複数の関連付けられた責任、コンピューティングリソースの現在のもしくは将来の利用、地理的位置、ならびに/または、エッジサーバが関連付けられている1または複数のサービスが含まれるが、これらに限定されるものではない。例において、複数のプレローカライゼーションエンジンが使用されている。例えば、プレローカライゼーションエンジンは、地理的に分散していてもよく、いくつかの例では、CDNのデータセンタと一緒に配置されていてもよい。エッジサーバデータストア124は、エッジサーバ情報のフルセットを含んでもよく(例えば、CDN内のエッジサーバごとに)、または、エッジサーバ情報のサブセットを含んでもよい(例えば、地理的に近接するエッジサーバのため、特定のサービスに関連付けられたエッジサーバのため、など)ことが理解される。
エッジサーバデータストア124により格納されたエッジサーバ情報は、プレローカライゼーション情報に基づいてプレローカライズされたホスト名を決定するためにプレローカライゼーションエンジン112によって使用される。例において、プレローカライゼーションエンジン112は、決定論的アルゴリズムに従ってプレローカライズされたホスト名を決定し、そのため、プレローカライゼーション情報の少なくとも同じサブセットには同じプレローカライズされたホスト名が与えられる。
例えば、プレローカライゼーション情報によって示される要求されたコンテンツをハッシュするためにハッシュアルゴリズムが使用され得る。一例では、エッジサーバデータストア124内のハッシュテーブルは、ハッシュされた要求されたコンテンツの値を1または複数のエッジサーバに適宜に関連付け得る。特定のデータセンタに関連付けられたハッシュテーブルが、プレローカライゼーション情報によって示される位置に対する特定のデータセンタの近接性に応じて決定されるように、ハッシュテーブルは特定のデータセンタと関連付けられ得る。従って、ハッシュテーブルにより示されるエッジサーバのホスト名は、プレローカライゼーション情報のためのプレローカライズされたホスト名としてプレローカライゼーションエンジン112により(例えば、ホスト名プレローカライザ116に)提供され得る。追加的または代替的なプレローカライゼーション情報に基づいてプレローカライズされたホスト名を生成するために類似の技法が使用され得ることが理解される。例えば、コンテンツ要求は、どのエッジサーバが担当であるか、つまり、要求されたコンテンツを有し得る可能性が最も高いかを特定するために、適格なサーバのセット(例えば、データセンタ106内のエッジサーバ118)にわたって動的にハッシュされ得る。さらに、プレローカライゼーション情報をハッシュすることに加えて、またはそれに代わって、他の技法が使用され得る。例えば、コンピューティング機能を1または複数のホスト名を関連付けるルックアップテーブルが使用され得る。従って、クライアントコンピューティングデバイス102は、プレローカライズされたホスト名を受信し(例えば、クライアント要求プロセッサ114を介して)、中間DNSサーバ108および/または権威DNSサーバ110を介してプレローカライズされたホスト名を解決する。クライアントコンピューティングデバイス102は、次に、プレローカライズされたホスト名に関連付けられたエッジサーバ118または120と通信する。
他の例では、クライアントコンピューティングデバイス102は、サービス104からプレローカライズされていないホスト名を受信する。ホスト名は、クライアントコンピューティングデバイス102がエッジサーバ(例のために、エッジサーバ118)と通信してコンテンツに適宜にアクセスする(または、CDNの代替的または追加的なコンピューティング機能を利用する)ように、エッジサーバ118または120のうちの1つのIPアドレスに解決され得る。エッジサーバ118は、それが要求されたコンピューティング機能を担っているかどうかを決定し、層である場合には、クライアントコンピューティングデバイス102との通信を継続し得る。しかしながら、エッジサーバ118が、それが要求されたコンピューティング機能を担っていないと決定した場合、エッジサーバ118はプレローカライゼーション情報を含むプレローカライゼーション要求を生成し、プレローカライゼーション要求をプレローカライゼーションエンジン112に提供し得る。これに応答して、エッジサーバ118は、コンピューティング機能を担っているエッジサーバ、例えばエッジサーバ120のためのプレローカライズされたホスト名を受信する。エッジサーバ118は、次に、プレローカライズされたホスト名をクライアントコンピューティングデバイス102に提供し、これにより、クライアントコンピューティングデバイス102をエッジサーバ120にリダイレクトする。
図2Aは、本明細書に記載の態様による、プレローカライゼーション要求を処理してホスト名のプレローカライゼーションを実行するための例示的な方法200の概要を示す。例において、方法200の態様は、図1のプレローカライゼーションエンジン112のようなプレローカライゼーションエンジンによって実行される。方法200は、動作202で開始され、ここでプレローカライゼーション情報を含むプレローカライゼーション要求が受信される。プレローカライゼーション要求は、図1におけるサービス104のホスト名プレローカライザ116のような、サービスのホスト名プレローカライザから受信される。他の例では、プレローカライゼーション要求は、図1のエッジサーバ118または120のようなエッジサーバから受信される(例えば、クライアントコンピューティングデバイスを別のエッジサーバにリダイレクトするべく)。別の例では、プレローカライゼーション要求は、図1のクライアントコンピューティングデバイス102のようなクライアントコンピューティングデバイスから受信され得る。例において、プレローカライゼーション要求はAPIを介して受信される。つまり、プレローカライゼーション要求は、様々な技法を使用して様々なソースのいずれかから受信され得ることが理解される。
プレローカライゼーション要求において受信されたプレローカライゼーション情報は、他の例の中でも、クライアントコンピューティングデバイスおよび/または開始要求に関する情報を含み得る。クライアントコンピューティングデバイスに関する例示的なプレローカライゼーション情報には、IPアドレス、地理的位置、ソフトウェアおよび/もしくはハードウェア能力、ならびに/またはデバイスタイプが含まれるが、これらに限定されるものではない。別の例として、開始要求に関するプレローカライゼーション情報には、要求されたコンテンツに関する情報、関連付けられたコンピューティング機能、開始要求が関連付けられているサービスの指示、要求のURL、および/または関連するクライアントコンピューティングデバイスに関する情報が含まれるが、これらに限定されるものではない。
フローは動作204に進み、ここで、エッジサーバのセットに関連付けられるデータセンタが特定される。例において、データセンタは、図1のエッジサーバデータストア124のようなエッジサーバデータストアによって格納された情報に基づいて特定される。動作204は、例えば、プレローカライゼーション情報によって示される地理的位置に近接するデータセンタを特定するために、動作202で受信したプレローカライゼーション情報の少なくとも一部を評価することを含み得る。別の例として、データセンタ(または、少なくともその中のエッジサーバのサブセット)は、プレローカライゼーション情報によって示されるサービスとの関連付けに基づいて決定され得る。本明細書に記載の例に加えて、またはそれに代わって、様々な他のプレローカライゼーション情報のいずれを使用してもよいことが理解される。動作204は、他の例では方法200から動作204が省略され得ることを示すために、破線ボックスを使用して示されている。例えば、プレローカライズされたホスト名を生成するときに近接するデータセンタが特定されない場合があり、そのため、ローカライゼーションは代わりに、クライアントコンピューティングデバイスがプレローカライズされたホスト名の解決を要求するときに権威DNSサーバによって実行され得る。
動作206において、プレローカライゼーション情報に基づいて、特定されたデータセンタからプレローカライズされたホスト名が決定される。動作206の態様は、図1のエッジサーバデータストア124のようなエッジサーバデータストアによって格納され得るエッジサーバ情報を評価することを含み得る。例えば、プレローカライゼーション情報によって示された要求されたコンテンツをハッシュし、要求されたコンテンツを担っている1または複数のエッジサーバに関するホスト名を決定するために、ハッシュアルゴリズムが使用され得る。そのような例では、ハッシュされた要求されたコンテンツの値をエッジサーバのホスト名と適宜に関連付けるためにハッシュテーブルが使用され得る。動作204が実行される例では、ハッシュテーブルは、動作204で特定されたデータセンタに関連付けられ得る。追加または代替のプレローカライゼーション情報に基づいてプレローカライズされたホスト名を生成するために類似の技法が使用され得ることが理解される。さらに、プレローカライゼーション情報をハッシュすることに加えて、またはそれに代わって、他の技法が使用され得る。例えば、コンピューティング機能を1または複数のホスト名を関連付けるルックアップテーブルが使用され得る。さらに、複数のエッジサーバが決定されたホスト名に関連付けられ得ることが理解される(例えば、同じデータセンタ内および/または複数のデータセンタ間で)。そのような例では、エッジサーバは、他の選択技法の中でも、コンピューティングリソースの現在の使用量の評価に基づいてランダムに、または、権威DNSサーバによって実行されるホスト名ローカライゼーションの一部として選択され得る。
フローは動作208に進み、ここで、決定されたプレローカライズされたホスト名を含む応答が提供される。例において、図1におけるサービス104のホスト名プレローカライザ116のようなサービスのホスト名プレローカライザに応答が提供される。エッジサーバが、クライアントコンピューティングデバイスをリダイレクトするために、動作202で受信したローカライゼーション要求を提供した例では、応答は、図1のエッジサーバ118または120のようなエッジサーバに提供され得る。いくつ下の例では、応答は、図1のクライアントコンピューティングデバイス102のようなクライアントコンピューティングデバイスに提供される。フローは動作208で終了する。
図2Bは、本明細書に記載の態様による、ホスト名のプレローカライゼーションを使用してクライアントコンピューティングデバイスを異なるエッジサーバにリダイレクトするための例示的な方法220の概要を示す。例において、方法220の態様は、図1のエッジサーバ118または120のようなエッジサーバによって実行される。方法220は動作222で開始され、ここで、コンテンツ要求がクライアントコンピューティングデバイスから受信される。コンテンツ要求は、クライアントコンピューティングデバイスからの開始要求に応答して、サービスがクライアントコンピューティングデバイスをエッジサーバにダイレクトした結果として受信され得る。いくつかの例では、クライアントコンピューティングデバイスは、プレローカライズされたホスト名を使用してエッジサーバにダイレクトされていてもよい。
決定224において、エッジサーバが要求されたコンテンツを担っているかどうかが決定される。例において、決定は、他の例の中でも、エッジサーバによってキャッシュされるコンテンツのセット、またはエッジサーバが担っているコンテンツのリストを評価することを含む。つまり、エッジサーバは、要求されたコンテンツを担うために、必ずしも要求されたコンテンツをすぐに利用可能にする必要はないことが理解される。方法220は、エッジサーバがコンテンツのサブセットを担っている一例として説明されたが、様々な追加的または代替的なコンピューティング機能および関連付けられる責任のいずれかを有するエッジサーバのために類似の技法が使用され得ることが理解される。
決定224において、エッジサーバが要求されたコンテンツを担っていると決定された場合、フローは動作226へと「YES」に分岐し、ここで、要求されたコンテンツはクライアントコンピューティングデバイスに提供される。例において、要求されたコンテンツを提供することは、エッジサーバのキャッシュからコンテンツにアクセスすることを含む。他の例では、要求されたコンテンツは、他の例の中でも、別のエッジサーバから、または、オリジンサーバからキャッシュされ得る。フローは動作226で終了する。
しかしながら、エッジサーバが要求されたコンテンツを担っていないと決定された場合、フローは代わりに動作228へと「NO」に分岐し、ここで、プレローカライゼーション情報が生成される。例において、プレローカライゼーション情報は、動作222で受信したコンテンツ要求に少なくとも部分的に基づいて生成される。例えば、コンテンツ要求は、本明細書に記載の態様による、1または複数のヘッダ、クッキー、および/または、クライアントコンピューティングデバイスについておよび/もしくは要求されたコンピューティング機能についてのプレローカライゼーション情報を生成するのに使用され得る他の情報を含み得る。
動作230に移動すると、プレローカライゼーション情報に基づいて、プレローカライズされたホスト名が決定される。例において、プレローカライズされたホスト名は、プレローカライゼーション要求を生成し、プレローカライゼーション要求を、図1のプレローカライゼーションエンジン112のようなプレローカライゼーションエンジンに提供することによって決定される。他の例では、エッジサーバは、プレローカライゼーション情報に基づいてプレローカライズされたホスト名を決定するべく、図2Aにおいて方法200に関して上で記載したプレローカライゼーション態様の少なくとも一部を実行し得る。
フローは動作232に進み、ここで、クライアントコンピューティングデバイスはプレローカライズされたホスト名にリダイレクトされる。一例として、クライアントコンピューティングデバイスへのリダイレクトはハイパーテキストトランスポートプロトコル(HTTP)302応答として提供され、これにより、クライアントコンピューティングデバイスを異なるURLにダイレクトする。別の例として、クライアントコンピューティングデバイスによって実行されると、クライアントコンピューティングデバイスをプレローカライズされたホスト名にダイレクトさせる命令を含む応答がクライアントコンピューティングデバイスに提供される。様々なリダイレクト技法のいずれかが使用され得ることが理解される。フローは動作232で終了する。
図2Cは、本明細書に記載の態様による、サービスによるホスト名のプレローカライゼーションを実行するための例示的な方法240の概要を示す。例において、方法240の態様は、図1のサービス104のようなサービスによって実行される。方法240は動作242で開始され、ここで、開始要求がクライアントコンピューティングデバイス(例えば、図1のクライアントコンピューティングデバイス102)から受信される。上記のように、開始要求は、他の例の中でも、コンテンツの提供、サーバ側処理、およびオーディオ/ビデオ会議を含むがこれらに限定されるものではない、そのためにサービスがCDNを使用する様々なコンピューティング機能のいずれかに関連付けられ得る。
動作244において、プレローカライゼーション要求が生成される。プレローカライゼーション要求はプレローカライゼーション情報を含む。プレローカライゼーション情報は、動作242で受信した開始要求に少なくとも部分的に基づいて生成される。上記のように、プレローカライゼーション情報は、クライアントコンピューティングデバイスについての情報を含み得、これには、IPアドレス、地理的位置、ソフトウェアおよび/もしくはハードウェア能力、ならびに/またはデバイスタイプが含まれるが、これらに限定されるものではない。別の例として、プレローカライゼーション情報は、開始要求に関する情報を含み得、これには、要求されたコンテンツに関する情報、関連付けられたコンピューティング機能、開始要求が関連付けられているサービスの指示、要求のURL、および/または関連するクライアントコンピューティングデバイスに関する情報が含まれるが、これらに限定されるものではない。
フローは動作246に進み、ここで、プレローカライゼーション要求は、図1のプレローカライゼーションエンジン112のようなプレローカライゼーションエンジンに提供される。例において、プレローカライゼーション要求は、APIを使用してプレローカライゼーションエンジンに提供される。動作248において、プレローカライズされたホスト名を含むプレローカライゼーション応答が受信される。いくつかの例では、動作246および248は省略されてもよく、サービスは代わりに、本明細書で説明したように、プレローカライゼーション情報およびエッジサーバ情報に基づいてプレローカライズされたホスト名を生成してもよい。
動作250において、動作242で受信した開始要求に対する応答が生成される。応答は、プレローカライズされたホスト名の指示を含み、これにより、クライアントコンピューティングデバイスをCDNに関連付けられたプレローカライズされたホスト名にダイレクトする。例えば、応答は、少なくともプレローカライズされたホスト名を含む、そこからコンテンツにアクセスする1または複数のホスト名のリストを含み得、これにより、クライアントコンピューティングデバイスのメディアプレーヤがプレローカライズされたホスト名を使用してコンテンツにアクセスすることを可能にする。フローは動作252に進み、ここで、応答がクライアントコンピューティングデバイスに提供される。方法240は動作252で終了する。
図3Aは、クライアントコンピューティングデバイスからの開始要求に応答してホスト名のプレローカライゼーションを実行し、エッジサーバにおいてクライアントコンピューティングデバイスからのコンテンツ要求を適宜に処理するための例示的な方法300の概要を示す。図3Aは、クライアントコンピューティングデバイス302(例えば、図1のクライアントコンピューティングデバイス102)、サービス304(例えば、サービス104)、プレローカライゼーションエンジン306(例えば、プレローカライゼーションエンジン112)、およびエッジサーバ308(例えば、エッジサーバ118または120)を含む。
方法300は動作310で開始され、ここで、コンテンツに対する開始要求がクライアントコンピューティングデバイス302からサービス304に送信される。開始要求は、そのためにサービス304がCDNを使用するコンピューティング機能またはコンテンツに対する要求であり得る(例えば、かかる機能性はエッジサーバ308によって提供され得る)。サービス304は動作312において開始要求を受信する。従って、サービス304は、動作314においてプレローカライゼーション要求を生成し、これは動作316においてプレローカライゼーションエンジン306に提供される。本明細書で説明したように、プレローカライゼーション要求は、開始要求および/またはクライアントコンピューティングデバイス302に関するプレローカライゼーション情報を含む。
プレローカライゼーションエンジン306は動作318においてプレローカライゼーション要求を受信する。例において、プレローカライゼーション要求はAPIを介してサービス304から受信される。フローは動作320に進み、ここで、プレローカライゼーションエンジン306は、動作318で受信したプレローカライゼーション情報に基づいてプレローカライズされたホスト名を決定する。動作320は、図2Aに関して上で説明した方法200の少なくとも一部を実行することを含み得る。つまり、決定されたプレローカライズされたホスト名は、クライアントコンピューティングデバイス302によって提供された開始要求に関連付けられたコンピューティング機能を担っているエッジサーバに関連付けられ得る。他の例では、動作316~324においてサービス304がプレローカライゼーションエンジン306と通信するのではなくむしろ、そのようなプレローカライゼーション態様は代わりに、サービス304によって実行され得る。
決定されたプレローカライズされたホスト名は動作322においてサービス304に提供され、動作324においてサービス304によって受信される。従って、サービス304は、動作326において、受信した開始要求に対する応答を提供し、応答は、プレローカライゼーションエンジン306から受信したプレローカライズされたホスト名を含む。つまり、サービス304は、クライアントコンピューティングデバイス302を、プレローカライゼーションエンジン306によって決定されたCDNに関連付けられるプレローカライズされたホスト名にダイレクトする。
クライアントコンピューティングデバイス302は、動作328において、プレローカライズされたホスト名を含む開始要求に対する応答を受信し、その後、クライアントコンピューティングデバイス302は、動作330において、プレローカライズされたホスト名によって示されるエッジサーバ(例えば、エッジサーバ308)からのコンテンツを要求する。例において、動作330は、エッジサーバ308に関連付けられたIPアドレスを取得するべく、プレローカライズされたホスト名に対するDNS解決要求を発行することを含む。例えば、クライアントコンピューティングデバイス302は、中間DNSサーバ(例えば、図1の中間DNSサーバ108)または権威DNSサーバ(例えば、権威DNSサーバ110)と通信して、プレローカライズされたホスト名を解決し得る。例において、プレローカライズされたホスト名は、DNS解決の一環としてローカライズされ、近接するデータセンタが特定され、プレローカライズされたホスト名が、その中のエッジサーバのIPアドレスに解決される。他の例では、プレローカライゼーション応答は、エッジサーバ308のIPアドレスを含む。
エッジサーバ308は、動作332においてコンテンツに対する要求を受信し、動作334において要求されたコンテンツを適宜に提供する。例において、エッジサーバ308は、要求されたコンテンツのコピーを有する一方、他の例では、エッジサーバ308は、他の例の中でも、別のエッジサーバまたはオリジンサーバから要求されたコンテンツに最初にアクセスし得る。クライアントコンピューティングデバイス302は、動作336において、要求されたコンテンツをエッジサーバ308から受信する。方法300は、クライアントコンピューティングデバイス302がコンテンツにアクセスするためにサービス304によってエッジサーバ308にダイレクトされる一例として説明されたが、様々な追加的または代替的なコンピューティング機能および関連付けられるエッジサーバの責任のいずれかのためにクライアントコンピューティングデバイス302をエッジサーバ308にダイレクトするために類似の技法が使用され得ることが理解される。方法300は動作336で終了する。
図3Bは、クライアントコンピューティングデバイスを異なるエッジサーバにダイレクトするべくエッジサーバにおいてホスト名のプレローカライゼーションを実行するための例示的な方法350の概要を示す。図3Bは、図3Aに関して上で論じた要素を含み、従って、以下で必ずしも詳細に再説明しない。図3Bは、CDNに関連付けられたエッジサーバ352および354(例えば、図1のエッジサーバ118または120)をさらに含む。例において、エッジサーバ352および354の各々は、CDNのコンピューティング機能の提供を担い、そのため、一方のエッジサーバは、他方のエッジサーバよりもクライアントコンピューティングデバイスからの要求への処理によりよく適している場合がある。一例として、エッジサーバ354はクライアントコンピューティングデバイス302によって要求されたコンテンツを担い得る一方、エッジサーバ352はそのようなコンテンツを担わない場合がある。従って、エッジサーバ352を使用してクライアントコンピューティングデバイス302からの要求を満たすことは、追加の計算負荷をもたらし得、従って、CDN内の非効率を引き起こし得る。つまり、方法350は、クライアントコンピューティングデバイス302をエッジサーバ352の代わりにエッジサーバ354にダイレクトする。
方法350は動作360で開始され、ここで、クライアントコンピューティングデバイス302はエッジサーバ352からコンテンツを要求する。例において、コンテンツ要求は、サービス(例えば、図1のサービス104または図3のサービス304)がホスト名を使用してクライアントコンピューティングデバイス302をCDNにダイレクトした結果として生成される(例えば、クライアントコンピューティングデバイス302からの開始要求に応答して)。例において、ホスト名は、本明細書で説明したようにDNS解決プロセスの一環としてローカライズされ、そのため、クライアントコンピューティングデバイス302は、エッジサーバ352に関連付けられたIPアドレスを受信し、その後、使用する。
コンテンツ要求は、動作362においてエッジサーバ352によって受信され、動作364において、エッジサーバ352は、要求されたコンテンツが別のエッジサーバによって提供されることを決定する。方法350は、エッジサーバ352および354がコンテンツを提供する一例として説明されたが、様々な追加的または代替的なコンピューティング機能および関連付けられるエッジサーバの責任のいずれのために類似の技法が使用され得ることが理解される。例において、エッジサーバ352は、要求されたコンテンツを自身で取得してクライアントに供給するのではなくむしろ、コンテンツ要求を異なるエッジサーバにダイレクトするべきであると決定する。従って、エッジサーバ352は、動作366においてプレローカライゼーション要求を生成し、動作368においてプレローカライゼーションエンジン306に提供する。本明細書で説明したように、プレローカライゼーション要求は、コンテンツ要求および/またはクライアントコンピューティングデバイス302に関するプレローカライゼーション情報を含む。
プレローカライゼーションエンジン306は、動作370でプレローカライゼーション要求を受信する。例において、プレローカライゼーション要求はAPIを介してエッジサーバ352から受信される。フローは動作372に進み、ここで、プレローカライゼーションエンジン306は、動作370で受信したプレローカライゼーション情報に基づいてプレローカライズされたホスト名(例えば、エッジサーバ354のための)を決定する。動作372は、図2Aに関して上で説明した方法200の少なくとも一部を実行することを含み得る。つまり、決定されたプレローカライズされたホスト名は、クライアントコンピューティングデバイス302によって提供されたコンテンツ要求に関連付けられたコンピューティング機能を担っているエッジサーバに関連付けられ得る。他の例では、動作366~376においてエッジサーバ352がプレローカライゼーションエンジン306と通信するのではなくむしろ、そのようなプレローカライゼーション態様は代わりに、エッジサーバ352によって実行され得る。
決定されたプレローカライズされたホスト名は、動作374においてエッジサーバ352に提供され、動作376においてエッジサーバ352によって受信される。従って、エッジサーバ352は、動作378において、プレローカライズされたホスト名を使用してクライアントコンピューティングデバイス302をリダイレクトする。例において、リダイレクトは、HTTP302の応答としてクライアントコンピューティングデバイスに提供され、または、別の例として、応答は、クライアントコンピューティングデバイス302によって実行されると、クライアントコンピューティングデバイス302をプレローカライズされたホスト名にダイレクトさせる命令を含む。様々なリダイレクト技法のいずれかが使用され得ることが理解される。
クライアントコンピューティングデバイス302は、動作380において、プレローカライズされたホスト名を含むリダイレクト命令を受信し、その後、クライアントコンピューティングデバイス302は、プレローカライズされたホスト名を使用して、動作382においてエッジサーバ354からコンテンツを要求する。例において、動作382は、エッジサーバ354に関連付けられたIPアドレスを取得するべく、プレローカライズされたホスト名に対するDNS解決要求を発行することを含む。例えば、クライアントコンピューティングデバイス302は、中間DNSサーバ(例えば、図1の中間DNSサーバ108)または権威DNSサーバ(例えば、権威DNSサーバ110)と通信して、プレローカライズされたホスト名を解決し得る。他の例では、リダイレクト命令は、エッジサーバ354のIPアドレスを含む。
エッジサーバ354は、動作384においてコンテンツに対する要求を受信し、動作386において要求されたコンテンツを適宜に提供する。例において、エッジサーバ354は、要求されたコンテンツのコピーを有する一方、他の例では、エッジサーバ354は、他の例の中でも、別のエッジサーバまたはオリジンサーバから要求されたコンテンツに最初にアクセスし得る。クライアントコンピューティングデバイス302は、動作388において、要求されたコンテンツをエッジサーバ354から受信し、その後、方法350は終了する。
図4は、本実施形態のうちの1または複数が実装され得る好適な動作環境400の一例を示す。これは、好適な動作環境の一例に過ぎず、使用または機能性の範囲に関していかなる限定も提案することを意図するものではない。使用に好適であり得る他の周知のコンピューティングシステム、環境、および/または構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、スマートフォンのようなプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいずれかを含む分散型コンピューティング環境などが含まれるが、これらに限定されるものではない。
その最も基本的な構成において、動作環境400は典型的には、少なくとも1つの処理ユニット402とメモリ404とを含み得る。コンピューティングデバイスの正確な構成およびタイプによっては、メモリ404(他のものの中でも、API、プログラムなど、および/または、本明細書に開示されるシステムおよび方法を実装または実行するための他のコンポーネントもしくは命令などを格納する)は、揮発性(例えば、RAM)、不揮発性(例えば、ROM、フラッシュメモリなど)、またはそれら2つの何らかの組み合わせであり得る。この最も基本的な構成は、破線ライン406によって図4に示されている。さらに、環境400はまた、ストレージデバイス(取り外し可能408および/または取り外し不可能410)を含み、これには、磁気または光学のディスクまたはテープが含まれるがこれらに限定されるものではない。同様に、環境400はまた、キーボード、マウス、ペン、音声入力などのような入力デバイス414、および/または、ディスプレイ、スピーカ、プリンタなどのような出力デバイス416を有し得る。また、LAN、WAN、ポイントツーポイントなどのような1または複数の通信接続412も環境に含まれ得る。
動作環境400は、少なくともいくつかの形態のコンピュータ可読媒体を含み得る。コンピュータ可読媒体は、処理ユニット402、または動作環境を含む他のデバイスによってアクセスされ得る任意の利用可能な媒体であり得る。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータのような情報の格納のための任意の方法または技術で実装された、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含み得る。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を格納するのに使用され得る任意の他の非一時的媒体を含み得る。コンピュータ記憶媒体は、通信媒体を含まない場合がある。
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波もしくは他の搬送メカニズムのような変調データ信号における他のデータを具現化し得、任意の情報伝達媒体を含む。「変調データ信号」という用語は、信号に情報を符号化する様式で、その特性のうちの1または複数が設定または変更されている信号を意味し得る。例えば、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、ならびに音波、RF、赤外線、および他の無線媒体のような無線媒体を含み得る。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
動作環境400は、1または複数のリモートコンピュータへの論理接続を使用してネットワーク環境において動作する単一のコンピュータであり得る。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであり得、典型的には、上で説明した要素の多くまたは全て、ならびにさほど言及されていない他のものを含む。論理接続は、利用可能な通信媒体によってサポートされる任意の方法を含み得る。そのようなネットワーキング環境はオフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて普及している。
本明細書に記載の異なる態様は、本明細書に開示したシステムおよび方法を実装および実行するために、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの組み合わせを使用して用いられ得る。本開示を通じて特定のデバイスが特定の機能を実行しているものとして引用されているものの、当業者であれば、これらのデバイスは例示目的で提供され、本明細書で開示した機能性を実行するために、本開示の範囲から逸脱することなく、他のデバイスが用いられ得ることを認識する。
上述のように、いくつかのプログラムモジュールおよびデータファイルがシステムメモリ404に格納され得る。処理ユニット402で実行される間、プログラムモジュール(例えば、アプリケーション、入出力(I/O)管理、および他のユーティリティ)は、例えば図2A~2Cおよび3A~3Bに示される方法のような、本明細書に記載の動作方法の段階のうちの1または複数を含むがこれらに限定されるものではないプロセスを実行し得る。
さらに、本発明の例は、ディスクリート電子素子を含む電気回路、論理ゲートを含むパッケージ化もしくは統合電子チップ、マイクロプロセッサを利用する回路、または、電子的要素もしくはマイクロプロセッサを含むシングルチップにおいて実施され得る。例えば、本発明の例は、図4に示されるコンポーネントの各々または多くが単一の集積回路に統合され得るシステムオンチップ(SOC)を介して実施され得る。そのようなSOCデバイスは、1または複数の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニット、および様々なアプリケーション機能を含み得、その全ては、単一の集積回路としてチップ基板上に統合(または「バーン」(burned))されている。SOCを介して動作する場合、本明細書に記載の機能性は、単一の集積回路(チップ)上で動作環境400の他のコンポーネントと統合された特定用途向けロジックを介して動作され得る。本開示の例はまた、例えば、AND、OR,およびNOTのような論理演算を実行可能な他の技術を使用して実施され得、これには、機械、光学、流体、および量子技術が含まれるがこれらに限定されるものではない。さらに、本発明の例は、汎用コンピュータ内で、または他の回路もしくはシステムにおいて実施され得る。
本開示は、可能な実施形態の一部のみを示す添付図面を参照して本技術のいくつかの態様を説明した。しかしながら、他の態様は、多くの異なる形式で具現化されてもよく、本明細書に記載される実施形態に限定されるものと解釈されるべきはない。むしろ、これらの態様は、本開示が、徹底的かつ完全であり、当業者に可能な実施形態の範囲を完全に伝達するように提供された。
本明細書において特定の態様が説明されたものの、技術の範囲はそれらの特定の実施形態に限定されるものではない。当業者は、本技術の範囲および主旨内にある他の実施形態または改善を認識するであろう。従って、具体的な構造、作動、または媒体は、例示的な実施形態としてのみ開示されている。本技術の範囲は、以下の特許請求の範囲およびその中の任意の均等物によって定義される。
[他の可能な項目]
[項目1]
システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに動作可能に接続され、前記少なくとも1つのプロセッサによって実行されると前記システムに動作のセットを実行させる命令を格納するメモリとを備え、前記動作のセットは、
コンテンツ配信ネットワーク(CDN)において、前記CDNとは別個であるサービスによって提供されるコンテンツを、前記CDNを使用して配信する前記サービスからプレローカライゼーション要求を受信することであって、前記プレローカライゼーション要求がプレローカライゼーション情報を含み、前記プレローカライゼーション情報が、前記CDNによって格納される特定のコンテンツの指示を含む、受信することと、
前記プレローカライゼーション情報に基づいて、前記特定のコンテンツを担う前記CDNのエッジサーバに関連付けられたプレローカライズされたホスト名を生成することと、
前記プレローカライゼーション要求に応答して、前記CDNの前記エッジサーバに対して前記プレローカライズされたホスト名を提供することと、
前記CDNの前記エッジサーバにおいて前記コンテンツに対する要求をクライアントコンピューティングデバイスから受信することと、
前記コンテンツを前記クライアントコンピューティングデバイスに提供することと
を含む、システム。
[項目2]
前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成することが、前記地理的位置に基づいて、前記エッジサーバに関連付けられたデータセンタを特定することを含む
項目1に記載のシステム。
[項目3]
前記プレローカライズされたホスト名を生成することが、
前記CDNに関連付けられたエッジサーバのセットを評価して、前記特定のコンテンツを担うエッジサーバを特定することと、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成することと
を含む、項目1に記載のシステム。
[項目4]
前記プレローカライズされたホスト名を生成することが、
前記特定のコンテンツに基づいてハッシュを生成することと、
ハッシュアルゴリズムに従って前記エッジサーバを特定することと
を含む、項目1に記載のシステム。
[項目5]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタのエッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目1に記載のシステム。
[項目6]
前記特定のコンテンツがビデオコンテンツを含み、前記サービスが、再生のためのビデオコンテンツをリスト化したウェブサイトを含む、項目1に記載のシステム。
[項目7]
前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、項目1に記載のシステム。
[項目8]
プレローカライズされたホスト名を使用して、クライアントコンピューティングデバイスをコンテンツ配信ネットワーク(CDN)にダイレクトするための方法であって、前記方法が、
サービスにおいて前記クライアントコンピューティングデバイスから、前記CDNによって提供されるコンピューティング機能に関する、前記サービスに対する開始要求を受信する段階であって、前記サービスが前記CDNとは別個である、受信する段階と、
前記開始要求、および前記クライアントコンピューティングデバイスについての情報に少なくとも部分的に基づいて、プレローカライゼーション情報を生成する段階と、
前記プレローカライゼーション情報に基づいて、前記CDNの特定のエッジサーバに関連付けられるプレローカライズされたホスト名を決定する段階であって、前記CDNが複数のエッジサーバを含み、前記特定のエッジサーバが前記コンピューティング機能を担う、決定する段階と、
前記サービスによって、前記プレローカライズされたホスト名を含む前記開始要求に対する応答を前記クライアントコンピューティングデバイスに送信し、これにより、前記クライアントコンピューティングデバイスを前記CDNの前記特定のエッジサーバにダイレクトする段階と
を備える、方法。
[項目9]
前記プレローカライズされたホスト名を決定する段階が、
前記プレローカライゼーション情報を含むプレローカライゼーション要求を生成する段階と、
前記プレローカライゼーション要求を前記CDNのプレローカライゼーションエンジンに提供する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を含む応答を受信する段階と
を含む、項目8に記載の方法。
[項目10]
前記プレローカライズされたホスト名を決定する段階が、前記CDNに関連付けられたエッジサーバのセットを評価して、前記コンピューティング機能を担う特定のエッジサーバを特定する段階を含む、項目8に記載の方法。
[項目11]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記特定のエッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目8に記載の方法。
[項目12]
前記プレローカライゼーション情報が、
前記コンピューティング機能の指示、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つを含む、項目8に記載の方法。
[項目13]
前記開始要求が、前記クライアントコンピューティングデバイスについての情報を含む、項目8に記載の方法。
[項目14]
プレローカライズされたホスト名を生成するための方法であって、前記方法が、
プレローカライゼーション情報を含むプレローカライゼーション要求を受信する段階であって、前記プレローカライゼーション情報が、コンテンツ配信ネットワーク(CDN)に関連付けられたコンピューティング機能の指示を含む、受信する段階と、
前記プレローカライゼーション情報に基づいて、前記コンピューティング機能を担う前記CDNのエッジサーバに関連付けられるプレローカライズされたホスト名を生成する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を提供して、クライアントコンピューティングデバイスを前記CDNの前記エッジサーバにダイレクトする段階と
を備える、方法。
[項目15]
前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成する段階が、前記地理的位置に基づいて前記エッジサーバに関連付けられるデータセンタを特定する段階を含む、
項目14に記載の方法。
[項目16]
前記プレローカライズされたホスト名を生成する段階が、
前記CDNに関連付けられるエッジサーバのセットを評価して、前記コンピューティング機能を担うエッジサーバを特定する段階と、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成する段階と
を含む、項目14に記載の方法。
[項目17]
前記プレローカライズされたホスト名を生成する段階が、
示された前記コンピューティング機能に基づいてハッシュを生成する段階と、
ハッシュアルゴリズムに従って前記エッジサーバを特定する段階と
を含む、項目14に記載の方法。
[項目18]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記エッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目14に記載の方法。
[項目19]
前記プレローカライゼーション要求が、前記CDNに関連付けられたサービスから受信され、前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの開始要求に関する情報をさらに含む、項目14に記載の方法。
[項目20]
前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、項目14に記載の方法。
[他の可能な項目]
[項目1]
システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに動作可能に接続され、前記少なくとも1つのプロセッサによって実行されると前記システムに動作のセットを実行させる命令を格納するメモリとを備え、前記動作のセットは、
コンテンツ配信ネットワーク(CDN)において、前記CDNとは別個であるサービスによって提供されるコンテンツを、前記CDNを使用して配信する前記サービスからプレローカライゼーション要求を受信することであって、前記プレローカライゼーション要求がプレローカライゼーション情報を含み、前記プレローカライゼーション情報が、前記CDNによって格納される特定のコンテンツの指示を含む、受信することと、
前記プレローカライゼーション情報に基づいて、前記特定のコンテンツを担う前記CDNのエッジサーバに関連付けられたプレローカライズされたホスト名を生成することと、
前記プレローカライゼーション要求に応答して、前記CDNの前記エッジサーバに対して前記プレローカライズされたホスト名を提供することと、
前記CDNの前記エッジサーバにおいて前記コンテンツに対する要求をクライアントコンピューティングデバイスから受信することと、
前記コンテンツを前記クライアントコンピューティングデバイスに提供することと
を含む、システム。
[項目2]
前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成することが、前記地理的位置に基づいて、前記エッジサーバに関連付けられたデータセンタを特定することを含む
項目1に記載のシステム。
[項目3]
前記プレローカライズされたホスト名を生成することが、
前記CDNに関連付けられたエッジサーバのセットを評価して、前記特定のコンテンツを担うエッジサーバを特定することと、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成することと
を含む、項目1に記載のシステム。
[項目4]
前記プレローカライズされたホスト名を生成することが、
前記特定のコンテンツに基づいてハッシュを生成することと、
ハッシュアルゴリズムに従って前記エッジサーバを特定することと
を含む、項目1に記載のシステム。
[項目5]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタのエッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目1に記載のシステム。
[項目6]
前記特定のコンテンツがビデオコンテンツを含み、前記サービスが、再生のためのビデオコンテンツをリスト化したウェブサイトを含む、項目1に記載のシステム。
[項目7]
前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、項目1に記載のシステム。
[項目8]
プレローカライズされたホスト名を使用して、クライアントコンピューティングデバイスをコンテンツ配信ネットワーク(CDN)にダイレクトするための方法であって、前記方法が、
サービスにおいて前記クライアントコンピューティングデバイスから、前記CDNによって提供されるコンピューティング機能に関する、前記サービスに対する開始要求を受信する段階であって、前記サービスが前記CDNとは別個である、受信する段階と、
前記開始要求、および前記クライアントコンピューティングデバイスについての情報に少なくとも部分的に基づいて、プレローカライゼーション情報を生成する段階と、
前記プレローカライゼーション情報に基づいて、前記CDNの特定のエッジサーバに関連付けられるプレローカライズされたホスト名を決定する段階であって、前記CDNが複数のエッジサーバを含み、前記特定のエッジサーバが前記コンピューティング機能を担う、決定する段階と、
前記サービスによって、前記プレローカライズされたホスト名を含む前記開始要求に対する応答を前記クライアントコンピューティングデバイスに送信し、これにより、前記クライアントコンピューティングデバイスを前記CDNの前記特定のエッジサーバにダイレクトする段階と
を備える、方法。
[項目9]
前記プレローカライズされたホスト名を決定する段階が、
前記プレローカライゼーション情報を含むプレローカライゼーション要求を生成する段階と、
前記プレローカライゼーション要求を前記CDNのプレローカライゼーションエンジンに提供する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を含む応答を受信する段階と
を含む、項目8に記載の方法。
[項目10]
前記プレローカライズされたホスト名を決定する段階が、前記CDNに関連付けられたエッジサーバのセットを評価して、前記コンピューティング機能を担う特定のエッジサーバを特定する段階を含む、項目8に記載の方法。
[項目11]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記特定のエッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目8に記載の方法。
[項目12]
前記プレローカライゼーション情報が、
前記コンピューティング機能の指示、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つを含む、項目8に記載の方法。
[項目13]
前記開始要求が、前記クライアントコンピューティングデバイスについての情報を含む、項目8に記載の方法。
[項目14]
プレローカライズされたホスト名を生成するための方法であって、前記方法が、
プレローカライゼーション情報を含むプレローカライゼーション要求を受信する段階であって、前記プレローカライゼーション情報が、コンテンツ配信ネットワーク(CDN)に関連付けられたコンピューティング機能の指示を含む、受信する段階と、
前記プレローカライゼーション情報に基づいて、前記コンピューティング機能を担う前記CDNのエッジサーバに関連付けられるプレローカライズされたホスト名を生成する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を提供して、クライアントコンピューティングデバイスを前記CDNの前記エッジサーバにダイレクトする段階と
を備える、方法。
[項目15]
前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成する段階が、前記地理的位置に基づいて前記エッジサーバに関連付けられるデータセンタを特定する段階を含む、
項目14に記載の方法。
[項目16]
前記プレローカライズされたホスト名を生成する段階が、
前記CDNに関連付けられるエッジサーバのセットを評価して、前記コンピューティング機能を担うエッジサーバを特定する段階と、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成する段階と
を含む、項目14に記載の方法。
[項目17]
前記プレローカライズされたホスト名を生成する段階が、
示された前記コンピューティング機能に基づいてハッシュを生成する段階と、
ハッシュアルゴリズムに従って前記エッジサーバを特定する段階と
を含む、項目14に記載の方法。
[項目18]
前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記エッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、項目14に記載の方法。
[項目19]
前記プレローカライゼーション要求が、前記CDNに関連付けられたサービスから受信され、前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの開始要求に関する情報をさらに含む、項目14に記載の方法。
[項目20]
前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、項目14に記載の方法。
Claims (20)
- システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに動作可能に接続され、前記少なくとも1つのプロセッサによって実行されると前記システムに動作のセットを実行させる命令を格納するメモリとを備え、前記動作のセットは、
コンテンツ配信ネットワーク(CDN)において、前記CDNとは別個であるサービスによって提供されるコンテンツを、前記CDNを使用して配信する前記サービスからプレローカライゼーション要求を受信することであって、前記プレローカライゼーション要求がプレローカライゼーション情報を含み、前記プレローカライゼーション情報が、前記CDNによって格納される特定のコンテンツの指示を含む、受信することと、
前記プレローカライゼーション情報に基づいて、前記特定のコンテンツを担う前記CDNのエッジサーバに関連付けられたプレローカライズされたホスト名を生成することと、
前記プレローカライゼーション要求に応答して、前記CDNの前記エッジサーバに対して前記プレローカライズされたホスト名を提供することと、
前記CDNの前記エッジサーバにおいて前記コンテンツに対する要求をクライアントコンピューティングデバイスから受信することと、
前記コンテンツを前記クライアントコンピューティングデバイスに提供することと
を含む、システム。 - 前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成することが、前記地理的位置に基づいて、前記エッジサーバに関連付けられたデータセンタを特定することを含む
請求項1に記載のシステム。 - 前記プレローカライズされたホスト名を生成することが、
前記CDNに関連付けられたエッジサーバのセットを評価して、前記特定のコンテンツを担うエッジサーバを特定することと、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成することと
を含む、請求項1または2に記載のシステム。 - 前記プレローカライズされたホスト名を生成することが、
前記特定のコンテンツに基づいてハッシュを生成することと、
ハッシュアルゴリズムに従って前記エッジサーバを特定することと
を含む、請求項1から3のいずれか一項に記載のシステム。 - 前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記エッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、請求項1から4のいずれか一項に記載のシステム。
- 前記特定のコンテンツがビデオコンテンツを含み、前記サービスが、再生のためのビデオコンテンツをリスト化したウェブサイトを含む、請求項1から5のいずれか一項に記載のシステム。
- 前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、請求項1から6のいずれか一項に記載のシステム。 - プレローカライズされたホスト名を使用して、クライアントコンピューティングデバイスをコンテンツ配信ネットワーク(CDN)にダイレクトするための方法であって、前記方法が、
サービスにおいて前記クライアントコンピューティングデバイスから、前記CDNによって提供されるコンピューティング機能に関する、前記サービスに対する開始要求を受信する段階であって、前記サービスが前記CDNとは別個である、受信する段階と、
前記開始要求、および前記クライアントコンピューティングデバイスについての情報に少なくとも部分的に基づいて、プレローカライゼーション情報を生成する段階と、
前記プレローカライゼーション情報に基づいて、前記CDNの特定のエッジサーバに関連付けられるプレローカライズされたホスト名を決定する段階であって、前記CDNが複数のエッジサーバを含み、前記特定のエッジサーバが前記コンピューティング機能を担う、決定する段階と、
前記サービスによって、前記プレローカライズされたホスト名を含む前記開始要求に対する応答を前記クライアントコンピューティングデバイスに送信し、これにより、前記クライアントコンピューティングデバイスを前記CDNの前記特定のエッジサーバにダイレクトする段階と
を備える、方法。 - 前記プレローカライズされたホスト名を決定する段階が、
前記プレローカライゼーション情報を含むプレローカライゼーション要求を生成する段階と、
前記プレローカライゼーション要求を前記CDNのプレローカライゼーションエンジンに提供する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を含む応答を受信する段階と
を含む、請求項8に記載の方法。 - 前記プレローカライズされたホスト名を決定する段階が、前記CDNに関連付けられたエッジサーバのセットを評価して、前記コンピューティング機能を担う特定のエッジサーバを特定する段階を含む、請求項8または9に記載の方法。
- 前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記特定のエッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、請求項8から10のいずれか一項に記載の方法。
- 前記プレローカライゼーション情報が、
前記コンピューティング機能の指示、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つを含む、請求項8から11のいずれか一項に記載の方法。 - 前記開始要求が、前記クライアントコンピューティングデバイスについての情報を含む、請求項8から12のいずれか一項に記載の方法。
- プレローカライズされたホスト名を生成するための方法であって、前記方法が、
プレローカライゼーション情報を含むプレローカライゼーション要求を受信する段階であって、前記プレローカライゼーション情報が、コンテンツ配信ネットワーク(CDN)に関連付けられたコンピューティング機能の指示を含む、受信する段階と、
前記プレローカライゼーション情報に基づいて、前記コンピューティング機能を担う前記CDNのエッジサーバに関連付けられるプレローカライズされたホスト名を生成する段階と、
前記プレローカライゼーション要求に応答して、前記プレローカライズされたホスト名を提供して、クライアントコンピューティングデバイスを前記CDNの前記エッジサーバにダイレクトする段階と
を備える、方法。 - 前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの地理的位置の指示をさらに含み、
前記プレローカライズされたホスト名を生成する段階が、前記地理的位置に基づいて前記エッジサーバに関連付けられるデータセンタを特定する段階を含む、
請求項14に記載の方法。 - 前記プレローカライズされたホスト名を生成する段階が、
前記CDNに関連付けられるエッジサーバのセットを評価して、前記コンピューティング機能を担うエッジサーバを特定する段階と、
特定された前記エッジサーバを示す前記プレローカライズされたホスト名を生成する段階と
を含む、請求項14または15に記載の方法。 - 前記プレローカライズされたホスト名を生成する段階が、
示された前記コンピューティング機能に基づいてハッシュを生成する段階と、
ハッシュアルゴリズムに従って前記エッジサーバを特定する段階と
を含む、請求項14から16のいずれか一項に記載の方法。 - 前記プレローカライズされたホスト名が、少なくとも、第1のデータセンタの前記エッジサーバおよび第2のデータセンタの第2のエッジサーバに関連付けられている、請求項14から17のいずれか一項に記載の方法。
- 前記プレローカライゼーション要求が、前記CDNに関連付けられたサービスから受信され、前記プレローカライゼーション情報が、前記クライアントコンピューティングデバイスの開始要求に関する情報をさらに含む、請求項14から17のいずれか一項に記載の方法。
- 前記プレローカライゼーション情報が、
前記クライアントコンピューティングデバイスのIPアドレス、
前記クライアントコンピューティングデバイスの地理的位置、
前記クライアントコンピューティングデバイスの1または複数のソフトウェア、
前記クライアントコンピューティングデバイスの1または複数のハードウェア能力、
クライアントコンピューティングデバイスタイプ、または
開始要求に関する情報
のうちの少なくとも1つをさらに含む、請求項14から18のいずれか一項に記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062985050P | 2020-03-04 | 2020-03-04 | |
US62/985,050 | 2020-03-04 | ||
US17/131,852 US11902241B2 (en) | 2020-03-04 | 2020-12-23 | Hostname pre-localization |
US17/131,852 | 2020-12-23 | ||
PCT/US2021/018385 WO2021178136A1 (en) | 2020-03-04 | 2021-02-17 | Hostname pre-localization |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023516565A true JP2023516565A (ja) | 2023-04-20 |
Family
ID=77556380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022549310A Pending JP2023516565A (ja) | 2020-03-04 | 2021-02-17 | ホスト名のプレローカライゼーション |
Country Status (8)
Country | Link |
---|---|
US (1) | US11902241B2 (ja) |
EP (1) | EP4115580B1 (ja) |
JP (1) | JP2023516565A (ja) |
KR (1) | KR20220148898A (ja) |
AU (1) | AU2021231673A1 (ja) |
CA (1) | CA3168502A1 (ja) |
PL (1) | PL4115580T3 (ja) |
WO (1) | WO2021178136A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11470154B1 (en) * | 2021-07-29 | 2022-10-11 | At&T Intellectual Property I, L.P. | Apparatuses and methods for reducing latency in a conveyance of data in networks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10541974B2 (en) * | 1998-02-23 | 2020-01-21 | Transperfect Global, Inc. | Intercepting web server requests and localizing content |
WO2014075211A1 (en) | 2012-11-13 | 2014-05-22 | Telefonaktiebolaget L M Ericsson (Publ) | Service node selection in a communications network based on application server information |
US9660874B2 (en) * | 2012-12-13 | 2017-05-23 | Level 3 Communications, Llc | Devices and methods supporting content delivery with delivery services having dynamically configurable log information |
US20150046591A1 (en) | 2013-08-09 | 2015-02-12 | Zhongwen Zhu | Dynamic edge server allocation |
US8819187B1 (en) | 2013-10-29 | 2014-08-26 | Limelight Networks, Inc. | End-to-end acceleration of dynamic content |
US10735528B1 (en) * | 2015-12-14 | 2020-08-04 | Amazon Technologies, Inc. | Geographic relocation of content source in a content delivery network |
-
2020
- 2020-12-23 US US17/131,852 patent/US11902241B2/en active Active
-
2021
- 2021-02-17 KR KR1020227034360A patent/KR20220148898A/ko unknown
- 2021-02-17 EP EP21710832.3A patent/EP4115580B1/en active Active
- 2021-02-17 PL PL21710832.3T patent/PL4115580T3/pl unknown
- 2021-02-17 WO PCT/US2021/018385 patent/WO2021178136A1/en unknown
- 2021-02-17 AU AU2021231673A patent/AU2021231673A1/en active Pending
- 2021-02-17 JP JP2022549310A patent/JP2023516565A/ja active Pending
- 2021-02-17 CA CA3168502A patent/CA3168502A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
PL4115580T3 (pl) | 2024-04-22 |
US11902241B2 (en) | 2024-02-13 |
AU2021231673A1 (en) | 2022-09-22 |
US20210281542A1 (en) | 2021-09-09 |
EP4115580B1 (en) | 2023-12-27 |
EP4115580A1 (en) | 2023-01-11 |
CA3168502A1 (en) | 2021-09-10 |
WO2021178136A1 (en) | 2021-09-10 |
KR20220148898A (ko) | 2022-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11115500B2 (en) | Request routing utilizing client location information | |
US9535968B2 (en) | System for distributing nameless objects using self-certifying names | |
US9118680B1 (en) | Opportunistic routing | |
US11546447B2 (en) | Systems and methods for processing requests for content of a content distribution network | |
US11805093B2 (en) | Systems and methods for processing requests for content of a content distribution network | |
US20120323986A1 (en) | System and Method for Providing an Adjunct Device in a Content Delivery Network | |
US10075553B1 (en) | Systems and methods for automatically rewriting network page code | |
JP2023516565A (ja) | ホスト名のプレローカライゼーション | |
US11095605B1 (en) | Request routing utilizing encoded DNS-based messaging parameters | |
JP2016005271A (ja) | コンテンツ中心ネットワークにおけるインタレストによる消費者状態の割り当て |