IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ センチュリーリンク インテレクチュアル プロパティー エルエルシーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-12
(54)【発明の名称】分散型コンテンツ配信ネットワーク
(51)【国際特許分類】
   G06F 9/50 20060101AFI20231004BHJP
【FI】
G06F9/50 150A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518011
(86)(22)【出願日】2021-09-27
(85)【翻訳文提出日】2023-05-01
(86)【国際出願番号】 US2021052169
(87)【国際公開番号】W WO2022067169
(87)【国際公開日】2022-03-31
(31)【優先権主張番号】63/084,061
(32)【優先日】2020-09-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518236786
【氏名又は名称】センチュリーリンク インテレクチュアル プロパティー エルエルシー
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ケイシー、スティーブン エム.
(72)【発明者】
【氏名】オプファーマン、ステファン
(57)【要約】
本開示の例は、計算エンジン及びデータストアをそれぞれ有するCDNノードからなる分散型CDNに関する。計算エンジンは、分散型CDNのコンピューティング機能に関連付けられたソフトウェアを実行するために使用することができ、現在の又は予想される需要にコンピューティング機能を適合させるために、変化する条件に従って再構成することができる。ノードは、オーバーレイネットワークを介して互いに通信することができる。ノードは、それが要求を処理するべきかどうか、又はオーバーレイネットワークを介してリモートノードへのルートを生成し、それによってリモートノードが要求を処理することを可能にするべきかどうかを判定することができる。別の例では、ノードはそのノードによって現在提供されていない計算リソースを求める要求を受信する場合がある。ノードの計算エンジンはその計算リソースを提供するように再構成することができ、それにより、異なるノードに要求をリダイレクトするのではなく、そのノードが要求に応えることが可能になる。
【特許請求の範囲】
【請求項1】
システムであって、 少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続され、前記少なくとも1つのプロセッサによって実行されたときに前記システムに1組の動作を実施させる命令を記憶するメモリ、前記1組の動作が、
コンテンツ配信ネットワーク(CDN)のコンピューティング機能を求める要求をクライアントデバイスから受信する手順;
コンピューティング機能を求める前記要求を処理することに関連付けられたローカル性能メトリックを生成する手順;
コンピューティング機能を求める前記要求を処理するかどうかを判定するために、リモートCDNノードについてのリモート性能メトリックに少なくとも部分的に基づいて前記ローカル性能メトリックを評価する手順;
コンピューティング機能を求める前記要求を処理するように判定されたとき、
コンピューティング機能を求める前記要求に対する応答を生成する手順;及び
前記クライアントデバイスに前記応答を提供する手順;及び
コンピューティング機能を求める前記要求を処理しないように判定されたとき、
オーバーレイネットワークを介して前記リモートCDNノードへのルートを生成する手順;及び
前記生成されたルートを介して、コンピューティング機能を求める前記要求を処理する指示を前記リモートCDNノードに提供する手順
を有する
を備える、システム。
【請求項2】
前記リモート性能メトリックが第1のリモート性能メトリックであり;
前記リモートCDNノードが第1のリモートCDNノードであり;
前記第1のリモート性能メトリックが、第2のリモートCDNノードについての第2のリモート性能メトリックをさらに含むレイテンシテーブルに記憶されている、
請求項1に記載のシステム。
【請求項3】
前記ローカル性能メトリックを評価する手順が、前記第1のリモート性能メトリックと前記第2のリモート性能メトリックとの比較に基づいて、前記第1のリモートCDNノードが前記第2のリモートCDNノードよりも小さいレイテンシを有すると判定する手順をさらに含む、請求項2に記載のシステム。
【請求項4】
前記リモートCDNノードについての前記リモート性能メトリックが、
前記リモートCDNノードについてのネットワーク応答レイテンシ;
前記リモートCDNノードについての計算エンジン応答レイテンシ;又は
前記リモートCDNノードについてのソフトウェア応答レイテンシ
のうちの少なくとも1つに基づいている、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記リモートCDNノードについての前記ネットワーク応答レイテンシが、前記オーバーレイネットワークを介して前記リモートCDNノードから受信されたアドレス解決プロトコル(ARP)制御メッセージに少なくとも部分的に基づいて決定される、請求項4に記載のシステム。
【請求項6】
前記1組の動作が、
前記生成されたルートを介して、コンピューティング機能を求める前記要求に対する応答を前記リモートCDNノードから受信する手順;及び
前記受信した応答を前記クライアントデバイスに提供する手順
をさらに含む、請求項1から3のいずれか一項に記載のシステム。
【請求項7】
前記1組の動作が、
前記コンピューティング機能に関連付けられた別の要求を前記クライアントデバイスから受信する手順;及び
前記生成されたルートを介して、前記別の要求の指示を前記リモートCDNノードに提供する手順
をさらに含む、請求項1から3のいずれか一項に記載のシステム。
【請求項8】
コンテンツ配信ネットワーク(CDN)内の計算リソースを提供するための方法であって、前記方法が、
計算リソースを求める要求をCDNノードによって受信する段階、ここで前記CDNノードは前記計算リソースを提供しない;
1組のサービス規則を使用して、前記計算リソースを提供するために前記CDNノードの計算エンジンを再構成するかどうかを判定する段階;及び
前記計算エンジンを再構成するという判定に基づいて、
前記要求された計算リソースに関連付けられたソフトウェアを特定する段階;
前記計算エンジンを使用して前記特定されたソフトウェアを実行する段階;及び
前記CDNノードの前記計算エンジンを使用して前記計算リソースを求める前記要求を処理する段階
を備える、方法。
【請求項9】
前記1組のサービス規則が、
時刻に基づくサービス規則;
曜日に基づくサービス規則;又は
予め決められた閾値と比較した、予め決められた期間内の前記計算リソースを求める要求の量に基づくサービス規則
のうちの少なくとも1つを含む、請求項8に記載の方法。
【請求項10】
前記要求された計算リソースに関連付けられた前記ソフトウェアが、
仮想マシン;
コンテナ;又は
ソフトウェアパッケージ
のうちの少なくとも1つを含む、請求項8又は9に記載の方法。
【請求項11】
前記要求された計算リソースに関連付けられた前記ソフトウェアを特定する段階が、別のCDNノードから前記ソフトウェアにアクセスする段階をさらに有する、請求項8又は9に記載の方法。
【請求項12】
前記計算リソースを求める前記要求が、前記要求が計算のコンピューティング機能タイプを求めるものであるという指示を含む、請求項8又は9に記載の方法。
【請求項13】
前記計算リソースを求める前記要求が、前記要求された計算リソースに関連付けられた前記ソフトウェアについての指示をさらに含む、請求項12に記載の方法。
【請求項14】
分散型コンテンツ配信ネットワーク(CDN)内で要求を処理するための方法であって、前記方法が、
コンテンツ配信ネットワーク(CDN)のコンピューティング機能を求める要求をクライアントデバイスから受信する段階;
コンピューティング機能を求める前記要求を処理することに関連付けられたローカル性能メトリックを生成する段階;
コンピューティング機能を求める前記要求を処理するかどうかを判定するために、リモートCDNノードについてのリモート性能メトリックに少なくとも部分的に基づいて前記ローカル性能メトリックを評価する段階;
コンピューティング機能を求める前記要求を処理しないという判定に基づいて、
オーバーレイネットワークを介して前記リモートCDNノードへのルートを生成する段階;及び
前記生成されたルートを介して、コンピューティング機能を求める前記要求を処理する指示を前記リモートCDNノードに提供する段階
を備える、方法。
【請求項15】
前記リモート性能メトリックが第1のリモート性能メトリックであり;
前記リモートCDNノードが第1のリモートCDNノードであり;
前記第1のリモート性能メトリックが、第2のリモートCDNノードについての第2のリモート性能メトリックをさらに含むレイテンシテーブルに記憶されている、
請求項14に記載の方法。
【請求項16】
前記ローカル性能メトリックを評価する段階が、前記第1のリモート性能メトリックと前記第2のリモート性能メトリックとの比較に基づいて、前記第1のリモートCDNノードが前記第2のリモートCDNノードよりも小さいレイテンシを有すると判定する段階をさらに有する、請求項15に記載の方法。
【請求項17】
前記リモートCDNノードについての前記リモート性能メトリックが、
前記リモートCDNノードについてのネットワーク応答レイテンシ;
前記リモートCDNノードについての計算エンジン応答レイテンシ;又は
前記リモートCDNノードについてのソフトウェア応答レイテンシ
のうちの少なくとも1つに基づいている、請求項14から16のいずれか一項に記載の方法。
【請求項18】
前記リモートCDNノードについての前記ネットワーク応答レイテンシが、前記オーバーレイネットワークを介して前記リモートCDNノードから受信されたアドレス解決プロトコル(ARP)制御メッセージに少なくとも部分的に基づいて決定される、請求項17に記載の方法。
【請求項19】
前記生成されたルートを介して、コンピューティング機能を求める前記要求に対する応答を前記リモートCDNノードから受信する段階;及び
前記受信した応答を前記クライアントデバイスに提供する段階
をさらに備える、請求項14から16のいずれか一項に記載の方法。
【請求項20】
前記コンピューティング機能に関連付けられた別の要求を前記クライアントデバイスから受信する段階;及び
前記生成されたルートを介して、前記別の要求の指示を前記リモートCDNノードに提供する段階
をさらに備える、請求項14から16のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、参照によって本明細書にその全体として援用される「Distributed Content Distribution Network」と題する2020年9月28日出願の米国仮出願第63/084,061号の利益を主張するPCT国際特許出願である。
【背景技術】
【0002】
コンテンツ配信ネットワーク(CDN)は、クライアントデバイスにコンピューティング機能を提供するために使用されるノードを備える。しかし、他の例の中でも要求の量及び要求されるコンピューティング機能のタイプの両方に関して変化する需要に直面したとき、CDNの構造を管理することは困難である。こうした困難さは、異なる条件に必ずしも適合可能でない、CDN内の特定用途向けノードを使用するときに特に顕在化し得る。
【0003】
これら及び他の一般的な考慮事項に関して、本明細書に開示される態様がなされている。また、比較的具体的な問題が議論されているものの、実施例は、背景技術又は本開示の他の箇所において特定された具体的な問題の解決のみに限定されるものではないことを理解するべきである。
【発明の概要】
【0004】
本開示の例は、分散型コンテンツ配信ネットワーク(CDN)に関する。分散型CDNはCDNノードからなり、それぞれのCDNノードは計算エンジン及びデータストアを有する。計算エンジンを使用して、仮想マシン、コンテナ、及びソフトウェアパッケージなどの様々なソフトウェアのうちのいずれかを実行することができる。従って、CDNノードは分散型CDNによって提供されるコンピューティング機能に関連付けられたソフトウェアを実行する。CDNノードの計算エンジンは、他の例の中でも、提供されるコンピューティング機能を現在の又は予想される需要に適合させるために、変化する条件に従って再構成され得る。
【0005】
分散型CDNのノードは、VPNなどのオーバーレイネットワークを介して通信することができる。従って、CDNノードはそれがクライアントデバイスからのCDN要求を処理するべきかどうか、又は代替的にCDN要求をリモートCDNノードに仕向けるべきかどうかを判定することができる。要求がリダイレクトされるべきであると判定された場合、CDNノードはオーバーレイネットワークを介したリモートCDNノードへのルートを生成し、それによってクライアントデバイス及びリモートCDNノードがオーバーレイネットワークを介して通信するのを可能にすることができる。別の例では、CDNノードはそのCDNノードによって現在提供されていない計算リソースを求めるCDN要求を受信する場合がある。CDNノードの計算エンジンはその計算リソースを提供するように再構成することができ、それにより、異なるCDNノードに要求をリダイレクトするのではなく、そのCDNノードがCDN要求に応えることが可能になる。
【0006】
この概要は、詳細な説明でさらに以下に説明され概念から選択したものを、簡易的な形式で紹介するために提供される。この概要は、特許請求される主題の重要な特徴又は必須の特徴を特定することも、特許請求される主題の範囲を限定するために使用されることも意図されていない。複数の例の追加的な態様、特徴、及び/又は利点は、部分的には以下の説明において記載され、部分的には説明から明らかであり、又は、本開示の実施によって学習され得る。
【図面の簡単な説明】
【0007】
以下の図を参照して非限定的で非網羅的な例について説明する。
【0008】
図1A】本開示の態様による分散型コンテンツ配信ネットワークを備える例示的なシステムの概要を示す図である。
【0009】
図1B】分散型コンテンツ配信ネットワークを提供及び保持するための例示的な管理エンジンの概要を示す図である。
【0010】
図2A】分散型コンテンツ配信ネットワークによって要求を処理するための例示的な方法の概要を示す図である。
【0011】
図2B】本明細書に説明される態様による、分散型コンテンツ配信ネットワークの組成を構成するための例示的な方法の概要を示す図である。
【0012】
図2C】分散型コンテンツ配信ネットワークを提供するためのノードメトリックを保持するための例示的な方法の概要を示す図である。
【0013】
図3A】コンテンツ配信ネットワークから計算リソースを要求するための例示的な方法の概要を示す図である。
【0014】
図3B】コンテンツ配信ネットワークから計算リソースを提供するための例示的な方法の概要を示す図である。
【0015】
図4】本実施形態のうちの1つ又は複数が実装され得る好適な動作環境の一例を示す図である。
【発明を実施するための形態】
【0016】
以下の詳細な説明では、その一部を形成し、特定の実施形態又は例が例示によって示されている添付図面を参照する。本開示から逸脱することなく、これらの態様が組み合わされ得、他の態様が利用され得、構造的な変更がなされ得る。実施形態は、方法、システム、又はデバイスとして実施され得る。従って、実施形態は、ハードウェア実装、完全にソフトウェア実装、又はソフトウェア及びハードウェアの態様を組み合わせた実装の形態を取り得る。従って、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は添付の特許請求の範囲及びそれらの均等物によって定義される。
【0017】
コンテンツ配信ネットワーク(CDN)は、クライアントデバイスからの要求を処理する1組のCDNノードを備える。複数の例では、CDNはストリーミング機能、キャッシュ機能、及びコンピューティング機能などの様々なタイプのコンピューティング機能を提供する。しかし、こうしたコンピューティング機能を提供するために特定用途向け又はその他の点で専用のノード(例えばストリーミングコンテンツを提供するためのストリーミングノード、コンテンツ伝達を提供するためのキャッシュノード及びオリジンノードなど)が使用される場合がある。さらに、CDNはピーク予想需要を処理するように設計される場合がある。こうした設計において専用ノードを使用することにより、十分に利用されていないCDNノードが生じる、又はCDNによって経験される需要次第でボトルネックが生じる可能性がある。
【0018】
従って、本開示の態様は、分散型CDNに関する技法に関する。例えば、分散型CDNのノードは専用化されず、むしろ変化する条件に応答して適合させることができる。さらに、CDN要求は、そのCDN要求が受信されたノードによって処理される必要はない。むしろ、CDN要求はオーバーレイネットワーク(例えばCDNノード間の仮想プライベートネットワーク)を介して別のCDNノードによって処理されてもよく、それによってCDN要求を異なるノードにリダイレクトする必要性が回避される。別の例として、要求が分散型CDNによって提供される計算リソースを求めるものである場合、要求を受信したノードは、CDN要求を別のCDNノードに仕向けるのではなく、その機能を提供するように動的に再構成されてもよい。従って、本明細書で説明される分散型CDNの態様により、どのノードがこうした要求を処理するのにより適しているかに応じて、そうでない場合は使用されない可能性があるCDN内の余剰なコンピューティング容量を別の目的で使用し、CDN内の異なるCDNノードにCDN要求を仕向ける能力が提供される。
【0019】
CDNは、サービス(例えばCDNの顧客)によって使用されて、サービスのユーザに関連付けられたクライアントコンピューティングデバイスの要求を処理する。様々なサービスはいずれも、本明細書に説明される態様によるCDNを使用し得る。例示的なサービスには、ビデオストリーミングサービス、ビデオゲームサービス、クラウドコンピューティングサービス、又はウェブアプリケーションサービスが含まれるが、これらに限定されるものではない。例えば、ビデオストリーミングサービスは、ストリーミングコンテンツを提供するためにCDNを使用し得、それにより、ビデオストリーミングサービスの提供に関連付けられる計算需要の少なくとも一部をCDNにオフロードし得る。別の例として、ビデオゲームサービスは、他の例の中でもとりわけ、ゲームの更新を配信し、且つ/又は(本明細書では「計算」リソースとも称される)サーバ側処理を実施するためにCDNを使用することができる。従って、サービスは、他の例の中でもとりわけ、コンテンツ(例えば1つ又は複数のファイル、ビデオ、及び/又はオーディオストリーミングなど)の提供、サーバ側処理(例えばオンラインゲーミング、クラウドコンピューティング、ウェブアプリケーションなど)、及びオーディオ/ビデオカンファレンスを含むがこれらに限定されるものではない様々なコンピューティング機能のうちのいずれかにCDNを使用し得ることが理解されよう。従って、クライアントデバイスからCDNによって受信されたCDN要求は、CDNによって提供される任意のこうしたコンピューティング機能に関連付けられ得る。例えば、CDN要求はコンテンツのストリーミングを求めるもの、CDNを介して配信されるコンテンツを求めるもの、又は(例えばソフトウェアがCDNのノードにおいて実行される場合に)計算リソースを求めるものである場合がある。
【0020】
本明細書で説明されるように、CDNのノードは計算エンジン及びデータストアを備える。こうした態様は、他の例の中でもとりわけ、サーバコンピューティングデバイス、ストレージアレイ、ロードバランサ、ネットワークスイッチ、ルータ、又はファイアウォールデバイスを含むがこれらに限定されるものではないノード内の任意の数のデバイスによって提供されてもよく、又はそうでない場合はそれらの中で分散されてもよいことが理解されよう。複数の例では、計算エンジンは、少なくとも1つの中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を備える。計算エンジンは、他のソフトウェアの中でもとりわけ、1つ又は複数の仮想マシン、コンテナ、及び/又はソフトウェアパッケージを実行して、本開示の態様によるCDNのコンピューティング機能を提供することができる。例えば、ストリーミング機能は、データストアを使用してストリーミングコンテンツをバッファする仮想マシン又はコンテナによって提供されてもよく、又は別の例として、キャッシュ機能は、別のCDNノード(例えばオリジンノードとして働くノード)からのコンテンツをデータストアに記憶し、それに応じてそれをクライアントに配信する仮想マシン又はコンテナによって提供されてもよい。
【0021】
他の例では、CDNノードはネットワーク性能、需要特性、及び他のネットワーク属性をモデル化することができ、従ってCDNのノードはこうしたモデル化に従って再構成され得る。CDNノードの計算エンジンは、ネットワークスイッチング、要求のルーティング、ドメイン名システム(DNS)のキャッシング及び/又は解決、又はロードバランシングを含むがこれらに限定されるものではない様々な他の機能のうちのいずれかを提供するために使用され得る。従って、専用ノードを利用するのではなく、クライアントデバイスからの要求に応えること、及び分散型CDNの態様を動作させることの両方に関して、様々なコンピューティング機能のうちのいずれかを提供するようにCDNノードの計算エンジン及びデータストアを構成することができる。例えば、ノードのあるサーバコンピューティングデバイスはストリーミング機能を提供する仮想マシンを実行することができるが、そのノードの別のサービスコンピューティングデバイスは、DNS解決、ルーティング、及び/又はロードバランシング機能を提供する仮想マシンを実行することができる。他の例の中でもとりわけ、複数のサーバコンピューティングデバイスが共通のストレージアレイにアクセスする場合もあり、又は1つ又は複数のストレージデバイスをそれぞれ備える場合もある。
【0022】
さらに、CDNノードは分散型CDNによって所有又は物理的に保持される必要はない。複数の例では、CDNノードはクラウドサービスプロバイダなどの、サードパーティのコンピューティングインフラストラクチャを介して提供される。1つ又は複数の仮想マシンイメージ、コンテナ、及び/又はソフトウェアパッケージがコンピューティングインフラストラクチャに送信され、分散型CDNの一部として動作するように構成されてもよい。さらに、分散型CDNのノードは、関連付けられる動作コストに従って動的に追加され又は取り除かれてもよい。例えば、ある期間にはサードパーティのコンピューティングインフラストラクチャ上で動作するノードを利用することがコスト効率的な場合があるが、他の期間にはCDNが所有するコンピューティングインフラストラクチャを利用することがコスト効率的な場合がある。
【0023】
複数の例では、CDNノードはインターネットを介し、仮想プライベートネットワーク(VPN)などのオーバーレイネットワークを介して互いに接続される。従って、CDNノードはVPNを介して互いに通信することができ、いくつかの例では、VPNを介してクライアントデバイスからの要求に応えることができる。一例として、(本明細書では「ローカル」CDNノードと称される場合がある)第1のCDNノードがCDN要求を受信する場合がある。第1のCDNノードにより、(例えば1つ又は複数の性能メトリックに基づいて)第2のCDNノード(「リモート」CDNノード)がCDN要求を代わりに処理するべきであると判定される場合があり、VPNを介して第2のCDNノードにCDN要求がルーティングされる場合がある。従って、第2のCDNノード及びクライアントデバイスは第1のCDNノード及びVPNを介して通信することができる。従って、第1のCDNノードはクライアントデバイスにとってのVPNへのエントリポイントとして働き、それにより、クライアントデバイスの視点からは、第1のCDNノードがCDN要求を処理しているように見えることがある。任意の数のVPN又は他のオーバーレイネットワークが使用されてもよいことが理解されよう。例えば、ある地理的領域内の複数のCDNノードがVPNを介して相互接続されてもよく、又は別の例として、CDN要求、及びノードを使用して提供される関連付けられたコンピューティング機能のタイプに応じて、様々なVPNが使用されてもよい。
【0024】
異なるCDNノードに要求をルーティングするかどうかを判定するために使用することができる例示的な性能メトリックは、(例えば片方向又は往復レイテンシに関する)ネットワーク応答レイテンシ、(例えばノードの計算エンジンが要求を処理するのにどれだけ長くかかるかに関する)計算エンジン応答レイテンシ、及び/又はソフトウェア応答レイテンシ(例えば計算エンジンによって実行される仮想マシン又はコンテナなどのソフトウェアが要求を処理するのにどれだけ長くかかるか)を含むがこれらに限定されるものではない。複数の例では、性能メトリックを(例えば重み付けした平均、合計などを使用して)組み合わせて、総応答レイテンシを生成することができる。例えば、総応答レイテンシ性能メトリックは、ネットワーク応答レイテンシ、計算エンジン応答レイテンシ、及びソフトウェア応答レイテンシの合計を含むことができる。総応答レイテンシにより、(ネットワーク応答レイテンシを割愛することができるローカルレイテンシ性能メトリックを使用する)CDN要求を受信したノードの能力と、(例えば上に説明したようにVPNを介して)別のノードでCDN要求を処理することに関連付けられるオーバーヘッドとを比較することが可能になり得る。
【0025】
性能メトリックは、履歴平均、サンプリングされた観察、(例えば1つ又は複数の機械学習及び/又は統計モデルに従って)予想されるデータ、及び/又はこれらの任意の組み合わせに基づいて生成され得る。他の例の中でも、性能メトリックはCDN要求を処理するのと同時に計算されてもよく、又は(例えば予め決められた時間間隔に従って、あるイベントの発生に応答してなど)定期的に更新されてもよい。例えば、所与のCDNノードが関連付けられた複数のCDNノードについての総応答レイテンシ及び/又は他の性能メトリックを備えるレイテンシテーブル又は他のマッピングが保持されてもよい。レイテンシテーブルは、CDNに近接し(例えば所与の地理的位置に関連付けられ)、予め決められた閾値を上回るか又は下回る(例えば予め決められたレイテンシを下回る)性能メトリックを有する、特定の数のネットワークホップ内などにある他のCDNノードを含んでもよい。
【0026】
CDNノードの計算エンジン及びデータストアによって提供される柔軟性の結果として、分散型CDNによって提供されるコンピューティング機能を動的に適合させることができる。複数の例では、分散型CDNのCDNノードに関連付けられたログ記録データが、1つ又は複数のモデルに従って解析される。ログ記録データは、システム性能(例えばリソース利用率、1秒当たりの要求など)、システムエラー(例えばハードウェアの故障、ソフトウェアスタックトレース、要求タイムアウトなど)、キャッシュメトリック(例えばヒット率、ミス率など)、及び/又はクライアントデバイスからの要求(例えば要求されたリソース、デバイスタイプ、ソースインターネットプロトコル(IP)アドレス、関連付けられたサービスなど)に関する情報を含むがこれらに限定されるものではない。他の例の中でも、ログ記録データはCDNノード、CDNの顧客であるサービス、及び/又はクライアントデバイスによって生成され得る。従って、ログ記録データは重要な性能インジケータ、メトリック、テレメトリ、不具合情報、及び/又は性能情報に関する場合があることが理解されよう。複数の例では、CDNノードについてのログ記録データの少なくとも一部は、他の構成デバイスの中でも1つ又は複数のサーバコンピューティングデバイス、及び/又はネットワーキングデバイスによって生成される。
【0027】
複数の例では、ログ記録データは、(例えばCDNノードへの、又はCDNノードからの、CDN内の、などの)トラフィックを生成してCDNの現在の状態を査定するCDNプローブによって生成される。例えば、CDNプローブは典型的にはクライアントデバイスによって生成される要求を模倣すること(例えば履歴要求を再実行すること、要求されたコンピューティング機能についての観察されたパターンに従って要求をシミュレートすることなど)ができる。別の例として、CDNプローブはCDNの様々な属性をテストするように設計されたトラフィックを生成することができる。例えば、CDNプローブはサードパーティのコンピューティングインフラストラクチャを使用するCDNノードをテストして、そのCDNノードがいくつかの要件を満たしていることを確実にするために使用可能なログ記録データを生成することができる。いくつかの場合には、CDNプローブはCDNノードとは別個のコンピューティングデバイスでもよく、又は本明細書に説明される計算エンジン及びデータ記憶態様を提供するために使用されるデバイスとは異なる、CDNノード内のデバイスでもよい。別の例として、CDNプローブは他の例の中でも仮想マシンでもよく、コンテナとして、又はCDNノードの計算エンジンによって実行されるソフトウェアパッケージとして提供されてもよい。
【0028】
機械学習モデル又は統計モデルを含むがこれらに限定されるものではない様々なモデルのうちのいずれかを使用して、ログ記録データを解析することができる。例えば、ログ記録データを処理して統計モデルを生成することができ、次いでこれを使用してそれに続くログ記録データを評価することができる。統計モデルは、(例えばリソース利用率、1秒当たりの要求、キャッシュ性能、要求を処理するための時間などに関する)通常の又はルーチンの挙動を示す1つ又は複数の閾値又は範囲を特定することができ、従って、こうした閾値又は範囲を超えるそれに続くログ記録データはそれに応じて分類される。別の例として、アノテーションされたログ記録データを使用して機械学習モデルが生成されてもよく、従って機械学習モデルに基づいてログ記録データを後に分類することが可能になる。例示的な機械学習技法が本明細書に説明されており、様々な教師あり及び教師なし機械学習技法のうちのいずれかが使用され得ることが理解されよう。
【0029】
いくつかの例では、ログ記録データを解析するために複数のモデルが使用される。例えば、最も高い信頼度を有するモデル処理結果を特定するために、1組のモデルからの結果が比較される。いくつかの場合には、モデル性能が経時的に追跡され、従って1つ又は複数のモデル性能メトリック(例えば予測の正確性、平均信頼度スコアなど)に従って複数のモデルをランク付けすることが可能になる。さらに、モデルは、モデルを使用してログ記録データを処理すべき特定のサービス、コンピューティング機能、又は他の場合に関連付けられてもよい。従って、モデルは、すべての場合にログ記録データを処理するために使用される必要はなく、代わりに、モデルがこうしたログ記録データを処理するのによく適している1つ又は複数の特定の場合に関連付けられてもよい。
【0030】
モデル処理結果は、後の解析のために記憶されてもよい。例えば、モデル処理結果を使用してモデルの強さ又は有効性を評価し、それによってCDNの1つ又は複数のノードの構成を適合させ、且つ/又はレポートを生成することができる。一例として、予想される需要に従って、CDNノードが所与の地理的位置の近くに追加され又は取り除かれるべきであること、又はCDNノードによって提供されるコンピューティング機能が変更される(例えば関連付けられた計算エンジンによって提供される機能を追加し、取り除き、又は変える)べきであることが判定される場合がある。追加のアクションは、他の例の中でも(例えばより多くのサーバコンピューティングデバイスを追加すること、ネットワークデバイスを再構成することなどによって)特定されたボトルネックを除去すること、故障しているデバイスを再起動又は交換すること、及び/又は仮想マシンを再イメージすることを含む。こうした動作は、ノードと通信して、ハードウェアデバイス及び/又は仮想マシンをインスタンス化又は非インスタンス化するようにノードに命令することによって自動的に実施されてもよい。こうしたモデル化及びオーケストレーションの態様はサービスコントローラによって実施されてもよく、サービスコントローラは専用タイプのCDNノードとして実装されてもよく、又は本明細書に説明する態様による汎用CDNの計算エンジンによって実行される仮想マシン、コンテナ、及び/又はソフトウェアパッケージとして実装されてもよい。
【0031】
他の例では、CDNノードのコンピューティング機能は、受信されたCDN要求に応答して再構成される。例えば、CDN要求は計算リソースを求める要求である場合があり、要求は計算レシピについての指示を備える。例えば、要求は「計算」のマルチパーパスインターネットメールエクステンション(MIME)タイプ又は媒体タイプ、又は要求が計算リソースを求めるものであるという他の指示を指定する場合がある。要求は、その計算リソースに関連付けられたロボティックプロセスオートメーション(RPA)オブジェクト又はソフトウェアを示すペイロードをさらに備える場合がある。例えば、指示は、グローバル一意識別子(GUID)、統一資源識別子(URI)、又はCDN要求に関連付けられる計算リソースを特定するために使用可能な他の識別子を備えることができる。CDN要求を処理するためにリモートCDNノード(例えば要求された計算リソースを既に提供しているノード)が使用可能かどうか、又は要求されたリソースを提供するようにローカルCDNノードを構成するべきかどうかを判定することができる。判定は、1組のサービス規則を評価することを含み得る。サービス規則により、CDNノードでのリソース利用率、予め決められた期間内に受信された計算リソースを求める要求の数、及び/又は予め決められたスケジュールを含むがこれらに限定されるものではない1つ又は複数の条件が評価され得る。例えば、CDNノードが余剰な容量を有している場合、この1時間以内に受信されたリソースを求める要求の数が予め決められた閾値を超えた場合、又は要求が業務時間中に受信された場合、ローカルCDNノードはCDN要求を処理するように構成され得る。いくつかの場合には、サービス規則は他の例の中でも階層的又は相互依存的であってもよい。
【0032】
従って、ローカルCDNノードを再構成するように判定された場合、要求された計算リソースに関連付けられたソフトウェアをCDNノードの計算エンジンを使用して実行することができ、従ってCDNノードはCDN要求を処理するように再構成される。しかし、1組のサービス規則の評価により、リモートCDNノードを使用してCDN要求に応えるべきであることが代わりに示された場合、それに応じて、(例えばリモートノードを示す応答をCDN要求に提供すること、本明細書に説明するオーバーレイネットワークルート技法を使用することなどによって)CDN要求を代わりにリモートCDNノードへと仕向けることができる。こうした再構成技法はCDN要求に応答して生じるように説明されているが、同様の技法を使用して、こうした要求を受信する前に先回りして(例えば上に説明したサービスコントローラによって決定され得る予想される需要に基づいて)CDNノードを再構成してもよいことが理解されよう。
【0033】
図1Aには、本開示の態様による分散型コンテンツ配信ネットワークを備える例示的なシステム100の概要が示してある。示されているように、システム100はCDNノード102、104及び106、クライアントデバイス108、CDNプローブ111、及びネットワーク132を備える。CDNノード102、104及び106、クライアントデバイス108、及びCDNプローブ111はネットワーク138を介して通信するように示されている。ネットワーク132は、他の例の中でもローカルエリアネットワーク、ワイドエリアネットワーク、1つ又は複数のセルラネットワーク、及び/又はインターネットを含み得る。さらに、CDNノード102、104及び106がオーバーレイネットワーク110を介して互いにさらに通信できることを示すために、CDNノード102、104及び106はオーバーレイネットワーク110の中に示されている。例えば、オーバーレイネットワークはネットワーク132上に形成されたVPNでもよく、従ってネットワーク132のものとは別個の、CDNノード102、104及び106の間の通信が可能になる。VPNは例示的なオーバーレイネットワークとして提供されており、他の例では、追加の又は代替的な技術がノード間通信に使用されてもよいことが理解されよう。さらに、CDNプローブ111はオーバーレイネットワーク110の外部にあるように示されている。他の例ではCDNプローブ111もオーバーレイネットワーク110を介して分散型CDNに接続する場合があり、他の例では複数のこうしたオーバーレイネットワークが使用される場合がある。こうした例では、あるCDNノードが複数のオーバーレイネットワークの構成要素になる場合があることが理解されよう。
【0034】
(例えばCDNプローブ111及びCDNノード102、104及び106を備える)システム100の分散型CDNは、他の例の中でもビデオストリーミングサービス、ビデオゲームサービス、クラウドコンピューティングサービス、又はウェブアプリケーションサービスを含むがこれらに限定されるものではない様々なサービスのうちのいずれかにコンピューティング機能を提供することができる。それに応じて、クライアントデバイス108及びクライアントアプリケーション130は分散型CDNと通信して、こうしたサービスに関連付けられたコンピューティング機能を利用することができる。他の例では、システム100に関して説明される例示的なCDNのいくつかの要素は、様々な他の技法のうちのいずれかに従って配信され得る特定の要素に関して本明細書に説明されるサードパーティ及び/又は機能によって提供される場合があることが理解されよう。
【0035】
クライアントデバイス108は、モバイルコンピューティングデバイス、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、又はデスクトップコンピューティングデバイスを含むがこれらに限定されるものではない様々なコンピューティングデバイスのうちのいずれかであり得る。複数の例では、クライアントデバイス108はネットワーク132を介してCDNノード102、104及び106のうちの1つ又は複数と通信する。クライアントデバイス108はクライアントアプリケーション130を備えるように示されており、これは、他の例の中でもシステム100の分散型CDNを利用するサービスによって提供されるウェブブラウザ又はアプリケーションでもよい。
【0036】
CDNノード102は、管理エンジン112、計算エンジン114、及びデータストア116を備えるように示されている。CDNノード104及び106は、同様の態様(例えばそれぞれ管理エンジン118、計算エンジン120及びデータストア122、及び管理エンジン124、計算エンジン126及びデータストア128)を備える。従って、こうした態様については必ずしも以下で詳細に再度説明しない。
【0037】
CDNノード102の管理エンジン112、計算エンジン114、及びデータストア116は、他の例の中でもサーバコンピューティングデバイス、ストレージアレイ、ロードバランサ、ネットワークスイッチ、ルータ、又はファイアウォールデバイスを含むがこれらに限定されるものではないCDNノード102の1つ又は複数のデバイスによって提供され得る。例えば、計算エンジン114は、CDNノード102のサーバコンピューティングデバイスの少なくとも1つの中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を備える。上に説明したように、計算エンジン114は、他のソフトウェアの中でも1つ又は複数の仮想マシン、コンテナ、及び/又はソフトウェアパッケージを実行して、分散型CDNのコンピューティング機能を提供することができる。同様に、他の例の中でも、データストア116はサーバコンピューティングデバイスの一部でもよく、又はCDNノード102のストレージアレイでもよい。管理エンジン112は計算エンジン114及びデータストア116とは別個のものであるように示されているが、管理エンジン112に関して以下に説明される態様は、計算エンジン114及び/又はデータストア116を使用して実行される仮想マシン、コンテナ、ソフトウェアパッケージ、又は他のソフトウェアとして実装されてもよいことが理解されよう。
【0038】
管理エンジン112により、オーバーレイネットワーク110へのCDNノード102の接続が初期化及び保持される。複数の例では、管理エンジン112は、オーバーレイネットワーク110を介して他のCDNノード(例えばCDNノード104及び106)への、及びそれらからの制御メッセージを送信及び受信する。例えば、例示的な制御メッセージはアドレス解決プロトコル(ARP)の一部でもよく、従って、転送テーブル作成処理を使用して、CDNノード102が通信するCDNノードについての関連付けられたネットワーク応答レイテンシが決定される。別の例として、CDNノードは、計算エンジン応答レイテンシ及び/又はソフトウェア応答レイテンシなどの性能メトリックをブロードキャストすることもできる。複数の例では、ARP制御メッセージに加えて、又はその代替物として、ブロードキャストメッセージを使用してネットワーク応答レイテンシを決定することができる。管理エンジン112は、こうした制御メッセージを処理して、CDNノードについてのこうした性能メトリックを含むレイテンシテーブル又は他のマッピングを生成又は更新することができる。複数の例では、レイテンシテーブル内の性能メトリックは、予測される性能メトリックを生成するために1つ又は複数のモデルに従って処理される。従って、本明細書で説明する要求をルーティングする態様は、他の例の中でも実際の、予測される、又は履歴の性能メトリックに基づく場合があることが理解されよう。
【0039】
管理エンジン112は、クライアントデバイス108のクライアントアプリケーション130からCDN要求を受信することができる。CDN要求は、分散型CDNによって提供される様々なコンピューティング機能のうちのいずれかに関するものでもよい。管理エンジン112は、上に説明したレイテンシテーブルに少なくとも部分的に基づいて、CDNノード102がCDN要求を処理するべきかどうかを判定する。例えば、管理エンジン112はCDN102に関するローカルレイテンシ性能メトリックを保持することができ、これはCDNノード104及び106に関するレイテンシテーブルの総応答レイテンシ性能メトリックと比較され得る。従って、管理エンジン112は、CDN要求が(例えばローカルレイテンシを被る)CDNノード102によって、又は(例えばリモートCDNノードに関連付けられる総応答レイテンシを被る)CDNノード104又は106のうちの一方によってより迅速に処理されることになるかを判定することができる。
【0040】
管理エンジン112により、CDN要求を処理するのにCDNノード102がより適していると判定された(例えばCDNノード102がCDNノード104及び106の総応答レイテンシよりも低いローカルレイテンシを有する)場合、それに応じて、計算エンジン114及び/又はデータストア116を使用してCDN要求が処理される。対照的に、管理エンジン112によってCDNノード104又は106がより適していると判定された(例えばリモートノードのうちの1つがCDNノード102のローカルレイテンシよりも低い総応答レイテンシを示した)場合、管理エンジン112はオーバーレイネットワーク110を介したCDNノード104又は106へのルートを生成し、それによってリモートCDNノードがCDN要求を処理することを可能にする。従って、CDNノード102はクライアントデバイス102にとってのオーバーレイネットワーク110へのエントリポイントとして働き、それによってクライアントデバイス108がリモートCDNノードと通信し、それに応じて、要求されたコンピューティング機能にアクセスすることを可能にする。さらに、オーバーレイネットワーク110により、CDNノード102、104及び106が地理的に互いに関連付けられ(例えば同じデータセンタに配置され)得ないにもかかわらず、CDNノード102、104及び106が論理的に関連付けられることが可能になる。
【0041】
いくつかの例では、CDNノード102はサービスコントローラとして働くことができ、従って管理エンジン112はCDNノード102、104及び/又は106、クライアントデバイス108、及び/又はCDNプローブ111の構成デバイスのログ記録データを集約及び処理する。例えば、CDNプローブ111は、CDNノード102、104及び/又は106との通信に関するトラフィック及び関連付けられたログ記録データを生成することができる。管理エンジン112は、CDN利用率を予想し、それに応じてCDNの構成を適合させるために、集約されたログ記録データを1つ又は複数のモデルに従って処理することができる。例えば、管理エンジン112は、CDNによって提供されるべき1組のコンピューティング機能についての指示を生成することができる。指示されたコンピューティング機能は特定の日付、時間、及び/又は他の条件に関連付けられている場合があり、従ってCDNの構造はこうした条件に基づいて変化する。それに応じて、CDNノード104の管理エンジン118及び/又はCDNノード106の管理エンジン124は、提供されるコンピューティング機能を変更するように計算エンジン120及び計算エンジン126をそれぞれ管理することができる。管理エンジン112は、計算エンジン114を同様に管理することができる。
【0042】
管理エンジン112は、計算リソースを求めるCDN要求をクライアントデバイス108から受信する場合がある。計算エンジン114は要求された計算リソースを提供するように現在構成されていない場合があり、従って管理エンジン112は1組のサービス規則を評価して、別のCDNノード(例えばオーバーレイネットワーク110を介したCDNノード104又は106)にCDN要求を仕向けるかどうか、又は要求された計算リソースを提供するように計算エンジン114を構成するかどうかを判定することができる。上に説明したように、サービス規則により、CDNノード102でのリソース利用率、予め決められた期間内に(例えば他のクライアントデバイスから)受信された計算リソースを求める要求の数、及び/又は予め決められたスケジュールを含むがこれらに限定されるものではない1つ又は複数の条件が評価され得る。例えば、CDNノード102が余剰な容量を有していると判定された場合、この1時間以内に受信された計算リソースを求める要求の数が予め決められた閾値を超えた場合、又は要求が業務時間中に受信された場合、管理エンジン112は、計算エンジン114を使用してCDN要求を処理するようにCDNノード102を構成することができる。
【0043】
図1Bには、分散型コンテンツ配信ネットワークを提供及び保持するための例示的な管理エンジン150の概要が示してある。管理エンジン150は、図1Aの管理エンジン112、118及び124に類似していてもよい。示されているように、管理エンジン150は接続マネージャ152、機能オーケストレータ154、及びメトリック生成装置156を備える。
【0044】
接続マネージャ152により、図1Aのオーバーレイネットワーク110などの1つ又は複数のオーバーレイネットワークへのCDNノードの接続が管理される。複数の例では、接続マネージャ110は、ARP制御メッセージを含むがこれらに限定されるものではない、オーバーレイネットワークに関連付けられた様々な制御メッセージを送信及び受信し、CDNノードに関連付けられた1つ又は複数の性能メトリックをブロードキャストする。接続マネージャ152は、オーバーレイネットワークを介して到達可能な1組のCDNノードを含む転送テーブルを生成することができる。上に言及したように、その中のそれぞれのCDNノードについてのネットワーク応答レイテンシは、転送テーブルを作成及び更新することの一部として決定されてもよい。
【0045】
複数の例では、接続マネージャ152により、受信されたCDN要求がルーティングされる。例えば、接続マネージャ152はクライアントデバイス(例えば図1Aのクライアントデバイス108)からCDN要求を受信し、性能メトリックを評価して、接続マネージャ152が実装されているCDNノードにおいてCDN要求にローカルに応えるべきかどうか、又はCDN要求をリモートCDNノードにルーティングするべきかどうかを判定する。性能メトリック(例えばCDN要求を受信したCDNノードについてのローカルレイテンシと比較される、リモートCDNノードについての総応答レイテンシ)は、以下でより詳細に議論されるメトリック生成装置156によって生成することができる。リモートCDNノードが代わりにCDN要求に応えるべきであると判定された場合、接続マネージャ152によって管理されるオーバーレイネットワークにルートが生成される場合もあり、又はCDN要求に応答してクライアントデバイスをリモートCDNノードにリダイレクトするリダイレクト指示が提供される場合もある。
【0046】
いくつかの場合には、接続マネージャ152はローカルにCDN要求に応えるように判定する場合があるが、CDNノードが(例えば計算リソースを求める)要求されたコンピューティング機能を提供しない場合がある。それに応じて、接続マネージャ152は、要求された計算リソースを提供するように計算エンジン(例えば図1Aの計算エンジン114、120又は126)を構成するよう、機能オーケストレータ154に指示を提供することができる。接続マネージャ152は、上に説明した1組のサービス規則に少なくとも部分的に基づいて、こうした判定を行うことができる。
【0047】
機能オーケストレータ154は、計算エンジン(例えば図1Aの計算エンジン114、120又は126)、及びデータストア(例えばデータストア116、122又は128)によって提供され得る、CDNノードによって提供されるコンピューティング機能を管理する。機能オーケストレータ154は、仮想マシンイメージ、コンテナ、ソフトウェアパッケージ、及び/又は他のソフトウェアを様々なソースのうちのいずれかから取り込み、取り込まれたソフトウェアをデータストアに記憶することができる。例えば、ソフトウェアは別のCDNノード(例えばオリジンノードとして働くCDNノード)から、又は(例えばクライアントデバイスから要求されている計算リソースを提供する)サードパーティから取り込まれてもよい。次いで、計算エンジンにより、ソフトウェアをデータストアから実行することができる。本明細書で説明される態様に従って分散型CDN内で実行されるソフトウェアを配信すべく、様々な他の技法のうちのいずれかが使用されてもよいことが理解されよう。
【0048】
複数の例では、機能オーケストレータ154は、そのCDNノードによって提供されるべき1組のコンピューティング機能を含む指示をサービスコントローラから受信する。いくつかの例では、指示されたコンピューティング機能は特定の日付、時間、及び/又は他の条件に関連付けられている場合があり、従って機能オーケストレータ154は、こうした条件に基づいて、計算エンジン及び/又はデータストアを介して提供されるコンピューティング機能を変化させる。さらに、機能オーケストレータ154は、計算リソースを求めるCDN要求が要求されたという指示を接続マネージャ152から受信する場合がある。それに応じて、機能オーケストレータ154は、それに応じて計算リソースを提供するように計算エンジンを構成することができる。指示は、どの計算リソースが要求されたかを判定しそれに応じて計算リソースを初期化するために使用可能な識別子(例えばGUID、URIなど)を備えることができる。いくつかの例では、機能オーケストレータ154は、関連付けられたCDN要求を最初に受信することなしに、(例えばサービスコントローラから受信され得るスケジュールに従って)こうした計算リソースを先回りして初期化することができる。
【0049】
メトリック生成装置156は、そのCDNノードが関連付けられているCDNノードについての1組の性能メトリックを含むレイテンシテーブル又は他のデータ構造を保持する。複数の例では、レイテンシテーブルは、CDNノードについての様々な他の性能メトリックに基づき得る、それぞれのCDNノードについての総応答レイテンシのみを記憶する。例えば、総応答レイテンシは、所与のCDNノードに関する(例えばARP制御メッセージを使用して接続マネージャ152によって決定され得る)ネットワーク応答レイテンシ、(例えばビーコン制御メッセージから決定され得る)計算エンジン応答レイテンシ、及び(例えばやはりビーコン制御メッセージから決定され得る)ソフトウェア応答レイテンシの合計でもよい。メトリック生成装置156は、それが配置されているCDNノードについてのローカルレイテンシも保持することができ、これはそのCDNノードにおけるローカルな計算エンジン応答レイテンシ及びソフトウェア応答レイテンシの合計を含むことができる。
【0050】
メトリック生成装置156は、様々なモデル、及び/又はそれらの任意の組み合わせのうちのいずれかを使用して、履歴平均、サンプリングされた観察、(例えば1つ又は複数の機械学習及び/又は統計モデルに従って)予想されるデータに基づいて性能メトリックを生成することができる。他の例の中でも、メトリック生成装置156は、接続マネージャ152がCDN要求を処理するのと同時にこうした性能メトリックを計算し且つ/又はレイテンシテーブルを更新してもよく、又はこうした動作を(例えば予め決められた時間間隔に従って、イベントの発生に応答してなど)定期的に実施してもよい。レイテンシテーブルは、そのCDNに近接し(例えば所与の地理的位置に関連付けられ)、予め決められた閾値を下回る性能メトリックを有する、特定の数のネットワークホップ内などにある他のCDNノードを含んでもよい。
【0051】
図2Aには、分散型コンテンツ配信ネットワークによって要求を処理するための例示的な方法200の概要が示してある。複数の例では、方法200の態様は、図1AのCDNノード102、104及び106などのCDNノードによって実施される。方法200は、CDN要求を受信する動作202で開始する。CDN要求はコンテンツのストリーミングを求めるもの、CDNを介して配信されるコンテンツを求めるもの、又は(例えばソフトウェアがCDNのノードにおいて実行される場合に)計算リソースを求めるものである場合がある。CDN要求は、図1Aのクライアントデバイス108などのクライアントデバイスから受信され得る。
【0052】
フローは、CDN要求をローカルに満たすことに関連付けられた性能メトリックを決定する動作204へと進む。性能メトリックは、計算エンジン応答レイテンシ、ソフトウェア応答レイテンシ、又はそれらの組み合わせであるローカルレイテンシのうちの1つ又は複数でもよい。複数の例では、性能メトリックは、図1Bの管理エンジン150のメトリック生成装置156などのメトリック生成装置によって決定される。
【0053】
動作206に移ると、リモートノードの性能メトリックと比較して、決定された性能メトリックが評価される。複数の例では、動作206は、図1Bの管理エンジン150のメトリック生成装置156などのメトリック生成装置によって生成され得るレイテンシテーブルを評価することを含む。レイテンシテーブルのCDNノードをそれらの各性能メトリックに従ってランク付けすることができ、従って最上位にランク付けされたCDNノードは最も好都合な性能メトリックを有する。例えばレイテンシが使用される場合、最上位にランク付けされたCDNノードは最も低いレイテンシを有することができる。上に議論したように、性能メトリックは、ネットワーク応答レイテンシ、計算エンジン応答レイテンシ、ソフトウェア応答レイテンシ、又はこれらの組み合わせである総応答レイテンシのうちの1つ又は複数でもよい。動作206は1つのリモートCDNノードを評価する文脈で議論されているが、他の例では複数のCDNノードが評価されることが理解されよう。
【0054】
判定208では、リモートCDNノードがローカルCDNノードよりもCDN要求を処理するのにより適しているかどうかが判定される。例えば、動作206での評価により、リモートCDNノードの性能メトリックがローカルCDNノードの性能メトリックよりも優れている(例えばレイテンシの場合より小さい)と判定された場合、リモートCDNノードがCDN要求を処理するのにより適していると判定される。他の例では、性能メトリックが他の例の中でもプロセッサ又はメモリ利用率に結び付けられている場合にあり得るように、リモートCDNノードがローカルCDNノードの性能メトリックよりも大きいか又は高い性能メトリックを示すという判定により、ローカルCDNノードがCDN要求を処理するのにより適しているという判定が代わりになされる場合があることが理解されよう。
【0055】
従って、リモートCDNノードがローカルCDNノードよりもCDN要求を処理するのに適していないと判定された場合、フローは動作210へと至る「いいえ」に分岐し、この場合CDN要求はローカルCDNノードによって処理される。CDN要求の処理は、他の例の中でもローカルCDNノードのデータストアからコンテンツを提供すること、又は計算リソースへのアクセスを提供することを含む場合がある。フローは動作210で終了する。
【0056】
しかし、リモートCDNがローカルCDNノードよりもより適していると判定された場合、フローは代わりに動作212へと至る「はい」に分岐し、この場合オーバーレイネットワークを介したリモートCDNノードへのルートが生成される。複数の例では、ルートは、図1Bの管理エンジン150の接続マネージャ152などの接続マネージャによって生成される。複数の例では、ルートは、CDN要求がそこから受信されたクライアントデバイス、リモートCDNノード、及びリモートCDNノードにそれを介してアクセス可能なオーバーレイネットワークの連携を含むことができる。いくつかの場合には、クライアントデバイスが引き続く要求を生成したとき、又はリモートCDNノードを使用して同様のCDN要求に応えるように以前に判定されていた場合にあり得るように、クライアントデバイスがそれを介してリモートCDNノードにアクセスすることができるルートが既に存在することがある。例示的なルーティング技法について説明したが、様々な他の技法のうちのいずれかを使用して、オーバーレイネットワークを介してリモートCDNノードにCDN要求をルーティングしてもよいことが理解されよう。
【0057】
動作214では、リモートCDNノードにCDN要求を提供する。CDN要求は、動作212においてそれを通るルートが生成されたオーバーレイネットワークを使用して、ローカルCDNノードによってリモートCDNノードへと転送され得る。従って、クライアントデバイス及びリモートCDNノードは、オーバーレイネットワークを使用してローカルCDNノードを介して通信する。フローは動作214で終了する。
【0058】
図2Bには、本明細書に説明する態様による、分散型コンテンツ配信ネットワークの組成を構成するための例示的な方法220の概要が示してある。複数の例では、方法220の態様は、図1AのCDNノード102、104及び/又は106などのCDNノードにおいて実行され得るサービスコントローラによって実施される。他の例の中でも、方法220は定期的に(例えば1週間に1度、1日に1度、1時間に1度など)、又は予め決められたイベント(例えば予め決められた閾値を超えた利用率、ノード内の既存のエッジサーバの故障など)の発生に応答して実施されてもよい。
【0059】
方法220は、モデルに従って予想を生成する動作222で開始する。複数の例では、動作222で使用されるモデルは、分散型CDNに関連付けられた(例えばCDNノード、CDNプローブ、及び/又はクライアントデバイスによって生成され得る)ログ記録データに少なくとも部分的に基づいて生成されたものである。上に説明したように、機械学習モデル又は統計モデルを含むがこれらに限定されるものではない様々なモデルのうちのいずれかを使用して、ログ記録データを解析することができる。さらに、いくつかの例では、複数のモデルが使用される場合がある。
【0060】
フローは、CDNのネットワーク組成に基づいて予想される需要を評価する動作224へと進む。複数の例では、評価は、他の例の中でもCDNノードの数、こうしたCDNノードによって提供されるコンピューティング機能、CDNノード間で利用可能な帯域幅、及び/又はCDNノードにおいて利用可能な計算容量(例えば利用可能な計算リソース、ストレージ容量など)を評価することを含む。評価は予め決められたバッファを使用して実施されてもよく、従ってCDNノードは予め決められたバッファだけ予想される需要を超えるコンピューティング機能を提供するように構成される。いくつかの場合には、評価は時間に基づく評価、又は他の条件に基づく評価を実施することを含み、従ってCDNの構造はこうした条件が生じたときに変化することができる。
【0061】
判定226では、CDNの構造を調節するかどうかが判定される。複数の例では、判定は、動作224において実施された評価とCDNの既存の構造とを比較して、評価されたコンピューティング機能をCDNが提供することができるかどうかを判定することを含む。例えば、予想されるトラフィックを、1つ又は複数のCDNノードの評価されたコンピューティング機能と比較することができる。様々な他の技法のうちのいずれかを使用して、生成された予想及び関連付けられた評価とCDNの構造とを比較してもよいことが理解されよう。
【0062】
CDNの構造を調節しないと判定された場合、フローは動作228へと至る「いいえ」に分岐し、方法220はそこで終了する。しかし、CDNの構造を調節すると判定された場合、フローは動作230へと至る「はい」に代わりに分岐し、そこでそのCDNノードに関連付けられたコンピューティング機能についての動作224からの指示が、CDNノードの機能オーケストレータ(例えば図1Bの管理エンジン150の機能オーケストレータ154)に提供される。他の例の中でも、CDNノードは関連付けられた計算エンジン上でソフトウェアを実行させ、こうしたソフトウェアを半実行させ、又は現在実行されているソフトウェアの構成を変化させることができる。上に議論したように、指示は時間、日付、及び/又は他の条件を含む場合があり、CDNノードはそれに応答して再構成されるべきである。動作230は単一のCDNノードに関して議論されているが、動作230は、こうした指示を任意の数のCDNノードに提供することを含む場合があることが理解されよう。CDNの構造を調節するために、様々な他の技法のうちのいずれかが使用されてもよい。
【0063】
動作232では、CDNプローブを使用してCDN性能を評価することができる。CDNプローブは図1AのCDNプローブ111でもよい。例えば、CDNプローブはCDNの現在の状態を査定するためにトラフィックを生成する。例えば、CDNプローブは、典型的にはクライアントデバイスによって生成される要求を模倣してもよく、且つ/又はCDNの様々な属性をテストするように設計されたトラフィックを生成してもよい。従って、動作232では、こうした評価を実施する指示がCDNプローブに提供され得る。動作232の一部として、ログ記録データ又は他の情報がCDNプローブから受信されてもよい。フローは動作224へと戻り、そこで上に説明したようにCDNプローブからの情報を使用してネットワーク組成を評価し、CDN構造を調節することができる。いくつかの例では動作232を省略することができ、方法220が動作230で終了する場合があることを示すために、動作232は破線ボックスを使用して示されている。従って、フローは最終的に動作230又は232で終了する。
【0064】
図2Cには、分散型コンテンツ配信ネットワークを提供するためのノードメトリックを保持するための例示的な方法240の概要が示してある。複数の例では、方法240の態様は図1Aの管理エンジン112、118又は124、又は図1Bの管理エンジン150などの管理エンジンによって実施される。いくつかの例では、こうした態様は図1Bの接続マネージャ152及びメトリック生成装置156などの接続マネージャ及びメトリック生成装置によって実施されてもよい。
【0065】
方法240は、リモートCDNノードから制御メッセージを受信する動作242で開始する。複数の例では、制御メッセージは、図1Aのオーバーレイネットワーク110などのオーバーレイネットワークを介して受信される。制御メッセージは、図1Bの接続マネージャ152などの接続マネージャによって受信されてもよい。上に説明したように、制御メッセージは、他の例の中でもリモートCDNからのARP制御メッセージ又はビーコンでもよい。
【0066】
動作244では、制御メッセージを処理して性能メトリックを生成する。動作244の態様は、図1Bのメトリック生成装置156などのメトリック生成装置によって実施されてもよい。例えば、ARP制御メッセージを処理して、リモートCDNノードに関連付けられたネットワーク応答レイテンシを決定することができる。別の例として、ビーコン制御メッセージは、リモートCDNノードに関する計算エンジン応答レイテンシ、及び/又はリモートCDNノードのソフトウェア応答レイテンシを含むことができる。いくつかの場合には、ビーコンはネットワーク応答レイテンシを生成するために使用可能なタイムスタンプを含む。動作244は、組み合わせられた性能メトリックを生成することを含んでもよい。例えば、総応答レイテンシ性能メトリックは、ネットワーク応答レイテンシ、計算エンジン応答レイテンシ、及びソフトウェア応答レイテンシの合計を含むことができる。
【0067】
フローは、性能メトリックをCDNノードに関連付ける動作246へと進む。複数の例では、この関連付けは、ローカルCDNノードが通信するリモートCDNノードについての性能メトリックを含むレイテンシテーブルに記憶される。更新されたレイテンシテーブルを保持するべく方法240が定期的に実施され得ることを示すために、動作246から動作242への矢印が示されている。さらに動作242-246は単一のリモートCDNノードからの制御メッセージを処理する文脈で説明されているが、他の場合には、こうした処理は複数のCDNノードについての性能メトリックを評価するためにバッチ処理される場合もあり、又は単一の制御メッセージがそれに応じて複数のリモートCDNノードについての性能メトリックを生成するために使用可能な情報を含む場合もあることが理解されよう。フローは、最終的に動作246で終了することができる。
【0068】
図3Aには、コンテンツ配信ネットワークから計算リソースを要求するための例示的な方法300の概要が示してある。複数の例では、方法300の態様は、図1Aのクライアントデバイス108のクライアントアプリケーション130などの、クライアントデバイスのクライアントアプリケーションによって実施される。方法300は、計算要求を生成する動作302で開始する。計算要求は、CDNに関連付けられた1つ又は複数の計算リソースを求めるCDN要求である。計算要求は、「計算」のMIMEタイプ又は媒体タイプを指定する場合があり、又はその要求が計算リソースを求めるものであるという別の指示を備える場合がある。要求は、要求された計算リソースに関連付けられるRPAオブジェクト又はソフトウェアを示すペイロードをさらに備える場合がある。例えば、指示は、要求された計算リソースを特定するために使用可能なGUID、URI、又は他の識別子を備えてもよい。
【0069】
動作304では、CDNノードに計算要求を提供する。複数の例では、要求は、CDNの具体的なCDNノードを特定するために解決され得る、CDNに関連付けられたホスト名を使用して提供される。例えば、ホスト名は、クライアントデバイスに地理的に近接したCDNノードを特定するためにローカライズされてもよい。フローは、CDNノードから計算要求に対する応答を受信する動作306へと進む。
【0070】
フローは、異なるCDNノードが動作304で要求された計算リソースを有している場合にあり得るように、応答がリダイレクト指示を含むかどうかを判定する判定308へと進む。従って、応答がリダイレクト指示を含むと判定された場合、フローは動作312へと至る「はい」に分岐し、この場合動作306において受信された応答によって示されている新しいCDNノードからの計算リソースが利用される。方法300は動作312で終了する。
【0071】
しかし、応答がリダイレクト指示を含まないと判定された場合、フローは動作310へと至る「いいえ」に代わりに分岐し、この場合動作304で要求が提供されたノードを介して計算リソースが利用される。例えば、CDNノードは要求された計算リソースを提供する場合もあり、又は別の例では、上に説明したように、CDNノードはCDN要求がそこを通じて別のノードへとルーティングされるオーバーレイネットワークへのエントリポイントとして働く場合もある。フローは動作310で終了する。
【0072】
図3Bには、コンテンツ配信ネットワークから計算リソースを提供するための例示的な方法350の概要が示してある。複数の例では、方法350の態様は、図1AのCDNノード102、104及び106などのCDNノードによって実施される。方法350は、計算要求を受信する動作352で開始する。計算要求は、CDNに関連付けられた1つ又は複数の計算リソースを求めるCDN要求である。計算要求は、「計算」のMIMEタイプ又は媒体タイプを指定する場合があり、又はその要求が計算リソースを求めるものであるという別の指示を備える場合がある。要求は、要求された計算リソースに関連付けられるRPAオブジェクト又はソフトウェアを示すペイロードをさらに備える場合がある。例えば、指示は、要求された計算リソースを特定するために使用可能なGUID、URI、又は他の識別子を備えてもよい。
【0073】
判定354では、要求された計算リソースがCDNノードによってローカルに提供されるのに利用可能であるかどうかが判定される。例えば、計算要求に関連付けられた識別子を使用して、要求された計算リソースがそのCDNノードの計算エンジンによって既に実行されているかどうかが判定される。計算リソースが利用可能であると判定された場合、フローは動作364へと至る「はい」に分岐し、この場合計算要求はローカルCDNノードにおいて処理される。動作364の態様は以下でより詳細に説明する。
【0074】
しかし、計算リソースがローカルに利用可能でないと判定された場合、フローは動作356へと至る「いいえ」に代わりに分岐し、この場合1組のサービス規則が評価される。サービス規則により、そのCDNノードでのリソース利用率、予め決められた期間内に受信された計算リソースを求める要求の数、及び/又は予め決められたスケジュールを含むがこれらに限定されるものではない、1つ又は複数の条件が評価され得る。いくつかの場合には、サービス規則は他の例の中でも階層的又は相互依存的であってもよい。
【0075】
従って、判定358では、動作356での評価に少なくとも部分的に基づいて、計算リソースがリモートノードから提供されるべきであるかどうかが判定される。計算リソースがリモートCDNノードを使用して提供されるべきであると判定された場合フローは動作360へと至る「はい」に分岐し、この場合計算要求はリモートCDNノードへと仕向けられる。上に説明したように、計算要求は、オーバーレイネットワークを使用し、図2Aの方法200における動作212の態様に従って生成されるルートを介してリモートCDNノードへと仕向けられ得る。別の例として、計算要求はリダイレクト指示を使用してリモートCDNノードへと仕向けられてもよく、リダイレクト指示により、クライアントデバイスはリモートCDNノードと通信する。動作352、356、358及び360は、図1Bの管理エンジン150の接続マネージャ152などの接続マネージャによって実施されてもよい。フローは動作360で終了する。
【0076】
しかし、計算リソースがリモートCDNノードから提供されるべきではないと判定された場合、フローは動作362へと至る「いいえ」に代わりに分岐し、この場合ローカルノードは計算リソースを提供するように構成される。動作362の態様は、図1Bの管理エンジン150の機能オーケストレータ154などの機能オーケストレータによって実施されてもよい。例えば、1組のサービス規則によりCDNノードが余剰な容量を有していることが示された場合、この1時間に受信されたリソースを求める要求の数が予め決められた閾値を超えた場合、又は要求が業務時間中に受信された場合、CDNノードは要求された計算リソースを提供するように構成され得る。複数の例では、動作362は、仮想マシンイメージ、コンテナ、ソフトウェアパッケージ、及び/又は他のソフトウェアを様々なソースのうちのいずれか(例えば別のCDNノード、サードパーティなど)から取り込み、取り込まれたソフトウェアをデータストアに記憶することを含み得る。次いで、CDNノードの計算エンジンにより、ソフトウェアをデータストアから実行することができる。動作364では、要求された計算リソースを実行している計算エンジンを使用して、計算要求がローカルノードにおいて処理される。フローは動作364で終了する。
【0077】
図4は、本実施形態のうちの1つ又は複数が実装され得る好適な動作環境400の一例を示す。これは、好適な動作環境の一例に過ぎず、使用又は機能性の範囲に関していかなる限定も提案することを意図するものではない。使用に好適であり得る他の周知のコンピューティングシステム、環境、及び/又は構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、スマートフォンなどのプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又はデバイスのうちのいずれかを含む分散型コンピューティング環境などが含まれるが、これらに限定されるものではない。
【0078】
その最も基本的な構成において、動作環境400は典型的には、少なくとも1つの処理ユニット402及びメモリ404を含み得る。コンピューティングデバイスの正確な構成及びタイプによっては、(他のものの中でもAPI、プログラムなど、及び/又は本明細書に開示されるシステム及び方法を実装又は実施するための他のコンポーネント又は命令などを記憶する)メモリ404は、(RAMなどの)揮発性、(ROM、フラッシュメモリなどのような)不揮発性、又はそれら2つの何らかの組み合わせであり得る。この最も基本的な構成は、破線ライン406によって図4に示されている。さらに、環境400はまた、ストレージデバイス(取り外し可能408及び/又は取り外し不可能410)を含み、これは磁気又は光学のディスク又はテープを含むがこれらに限定されるものではない。同様に、環境400はまた、キーボード、マウス、ペン、音声入力などのような入力デバイス414、及び/又はディスプレイ、スピーカ、プリンタなどのような出力デバイス416を有し得る。LAN、WAN、ポイントツーポイントなどのような1つ又は複数の通信接続412も環境に含まれ得る。
【0079】
動作環境400は、少なくともいくつかの形態のコンピュータ可読媒体を含み得る。コンピュータ可読媒体は、処理ユニット402、又は動作環境を含む他のデバイスによってアクセスされ得る任意の利用可能な媒体であり得る。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報の記憶のための任意の方法又は技術で実装された、揮発性及び不揮発性の、取り外し可能及び取り外し不可能な媒体を含み得る。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)又は他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイス、又は所望の情報を記憶するのに使用され得る任意の他の非一時的媒体を含み得る。コンピュータ記憶媒体は、通信媒体を含まない場合がある。
【0080】
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は搬送波又は他の搬送メカニズムなどの変調データ信号における他のデータを具現化し得、任意の情報伝達媒体を含む。「変調データ信号」という用語は、信号に情報を符号化する様式で、その特性のうちの1つ又は複数が設定又は変更されている信号を意味し得る。例えば、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、及び音波、RF、赤外線、及び他の無線媒体などの無線媒体を含み得る。上記のうちのいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0081】
動作環境400は、1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク環境において動作する単一のコンピュータであり得る。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、又は他の一般的なネットワークノードであり得、典型的には、上で説明した要素の多く又はすべて、及びさほど言及されていない他のものを含む。論理接続は、利用可能な通信媒体によってサポートされる任意の方法を含み得る。そのようなネットワーク環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット及びインターネットにおいてよく見られる。
【0082】
本明細書に説明する異なる態様は、本明細書に開示したシステム及び方法を実装及び実施するために、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせを使用して利用され得る。本開示を通じて特定のデバイスが特定の機能を実施しているものとして引用されているものの、当業者であれば、これらのデバイスは例示目的で提供され、本明細書で開示した機能を実施するために、本開示の範囲から逸脱することなく、他のデバイスが利用され得ることを理解する。
【0083】
上述のように、複数のプログラムモジュール及びデータファイルがシステムメモリ404に記憶され得る。処理ユニット402で実行される間、プログラムモジュール(例えばアプリケーション、入出力(I/O)管理、及び他のユーティリティ)は、例えば図2A~2C及び3A~3Bに示される方法などの、本明細書に説明されるの動作方法の段階のうちの1つ又は複数を含むがこれらに限定されるものではない処理を実施し得る。
【0084】
さらに、本発明の例は、ディスクリート電子素子を含む電気回路、論理ゲートを含むパッケージ化又は統合電子チップ、マイクロプロセッサを利用する回路、又は電子的要素又はマイクロプロセッサを含むシングルチップにおいて実施され得る。例えば、本発明の例は、図4に示されるコンポーネントの各々又は多くが単一の集積回路に統合され得るシステムオンチップ(SOC)を介して実施され得る。こうしたSOCデバイスは、1つ又は複数の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニット、及び様々なアプリケーション機能を含み得、そのすべては、単一の集積回路としてチップ基板上に統合(又は「バーン」(burned))されている。SOCを介して動作する場合、本明細書に説明される機能は、単一の集積回路(チップ)上で動作環境400の他のコンポーネントと統合された特定用途向けロジックを介して動作され得る。本開示の例はまた、例えばAND、OR,及びNOTなどの論理演算を実施することができる他の技術を使用して実施され得、これには、機械、光学、流体、及び量子技術が含まれるがこれらに限定されるものではない。さらに、本発明の例は、汎用コンピュータ内で、又は他の回路又はシステムにおいて実施され得る。
【0085】
本開示は、考えられる実施形態の一部のみを示す添付図面を参照して本技術のいくつかの態様を説明した。しかし、他の態様は、多くの異なる形式で具現化されてもよく、本明細書に記載される実施形態に限定されるものと解釈されるべきはない。むしろ、これらの態様は、本開示が徹底的且つ完全であり、考えられる実施形態の範囲を当業者に完全に伝達するように提供された。
【0086】
本明細書において特定の態様が説明されたものの、技術の範囲はそれらの特定の実施形態に限定されるものではない。当業者は、本技術の範囲及び主旨内にある他の実施形態又は改善を認識するであろう。従って、具体的な構造、作動、又は媒体は、例示的な実施形態としてのみ開示されている。本技術の範囲は、以下の特許請求の範囲及びその中の任意の均等物によって定義される。
[他の可能な項目]
[項目1]
システムであって、
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続され、前記少なくとも1つのプロセッサによって実行されたときに前記システムに1組の動作を実施させる命令を記憶するメモリ、前記1組の動作が、
コンテンツ配信ネットワーク(CDN)のコンピューティング機能を求める要求をクライアントデバイスから受信する手順;
コンピューティング機能を求める前記要求を処理することに関連付けられたローカル性能メトリックを生成する手順;
コンピューティング機能を求める前記要求を処理するかどうかを判定するために、リモートCDNノードについてのリモート性能メトリックに少なくとも部分的に基づいて前記ローカル性能メトリックを評価する手順;
コンピューティング機能を求める前記要求を処理するように判定されたとき、
コンピューティング機能を求める前記要求に対する応答を生成する手順;及び
前記クライアントデバイスに前記応答を提供する手順;及び
コンピューティング機能を求める前記要求を処理しないように判定されたとき、
オーバーレイネットワークを介して前記リモートCDNノードへのルートを生成する手順;及び
前記生成されたルートを介して、コンピューティング機能を求める前記要求を処理する指示を前記リモートCDNノードに提供する手順、を含む
を備える、システム。
[項目2]
前記リモート性能メトリックが第1のリモート性能メトリックであり;
前記リモートCDNノードが第1のリモートCDNノードであり;
前記第1のリモート性能メトリックが、第2のリモートCDNノードについての第2のリモート性能メトリックをさらに含むレイテンシテーブルに記憶されている、
項目1に記載のシステム。
[項目3]
前記ローカル性能メトリックを評価する手順が、前記第1の性能メトリックと前記第2の性能メトリックとの比較に基づいて、前記第1のリモートCDNノードが前記第2のリモートCDNノードよりも小さいレイテンシを有すると判定する手順をさらに含む、項目2に記載のシステム。
[項目4]
前記リモートCDNノードについての前記リモート性能メトリックが、
前記リモートCDNノードについてのネットワーク応答レイテンシ;
前記リモートCDNノードについての計算エンジン応答レイテンシ;又は
前記リモートCDNノードについてのソフトウェア応答レイテンシ
のうちの少なくとも1つに基づいている、項目1に記載のシステム。
[項目5]
前記リモートCDNノードについての前記ネットワーク応答レイテンシが、前記オーバーレイネットワークを介して前記リモートCDNノードから受信されたアドレス解決プロトコル(ARP)制御メッセージに少なくとも部分的に基づいて決定される、項目4に記載のシステム。
[項目6]
前記1組の動作が、
前記生成されたルートを介して、コンピューティング機能を求める前記要求に対する応答を前記リモートCDNノードから受信する手順;及び
前記受信した応答を前記クライアントデバイスに提供する手順
をさらに含む、項目1に記載のシステム。
[項目7]
前記1組の動作が、
前記コンピューティング機能に関連付けられた別の要求を前記クライアントデバイスから受信する手順;及び
前記生成されたルートを介して、前記別の要求の指示を前記リモートCDNノードに提供する手順
をさらに含む、項目1に記載のシステム。
[項目8]
コンテンツ配信ネットワーク(CDN)内の計算リソースを提供するための方法であって、前記方法が、
計算リソースを求める要求をCDNノードによって受信する段階、ここで前記CDNノードは前記計算リソースを提供しない;
1組のサービス規則を使用して、前記計算リソースを提供するために前記CDNノードの計算エンジンを再構成するかどうかを判定する段階;及び
前記計算エンジンを再構成するという判定に基づいて、
前記要求された計算リソースに関連付けられたソフトウェアを特定する段階;
前記計算エンジンを使用して前記特定されたソフトウェアを実行する段階;及び
前記CDNノードの前記計算エンジンを使用して前記計算リソースを求める前記要求を処理する段階
を備える、方法。
[項目9]
前記1組のサービス規則が、
時刻に基づくサービス規則;
曜日に基づくサービス規則;又は
予め決められた閾値と比較した、予め決められた期間内の前記計算リソースを求める要求の量に基づくサービス規則
のうちの少なくとも1つを含む、項目8に記載の方法。
[項目10]
前記要求された計算リソースに関連付けられた前記ソフトウェアが、
仮想マシン;
コンテナ;又は
ソフトウェアパッケージ
のうちの少なくとも1つを含む、項目8に記載の方法。
[項目11]
前記要求された計算リソースに関連付けられた前記ソフトウェアを特定する段階が、他のCDNノードから前記ソフトウェアにアクセスする段階をさらに有する、項目8に記載の方法。
[項目12]
前記計算リソースを求める前記要求が、前記要求が計算のコンピューティング機能タイプを求めるものであるという指示を含む、項目8に記載の方法。
[項目13]
前記計算リソースを求める前記要求が、前記要求された計算リソースに関連付けられた前記ソフトウェアについての指示をさらに含む、項目12に記載の方法。
[項目14]
分散型コンテンツ配信ネットワーク(CDN)内で要求を処理するための方法であって、前記方法が、
コンテンツ配信ネットワーク(CDN)のコンピューティング機能を求める要求をクライアントデバイスから受信する段階;
コンピューティング機能を求める前記要求を処理することに関連付けられたローカル性能メトリックを生成する段階;
コンピューティング機能を求める前記要求を処理するかどうかを判定するために、リモートCDNノードについてのリモート性能メトリックに少なくとも部分的に基づいて前記ローカル性能メトリックを評価する段階;
コンピューティング機能を求める前記要求を処理しないという判定に基づいて、
オーバーレイネットワークを介して前記リモートCDNノードへのルートを生成する段階;及び
前記生成されたルートを介して、コンピューティング機能を求める前記要求を処理する指示を前記リモートCDNノードに提供する段階
を備える、方法。
[項目15]
前記リモート性能メトリックが第1のリモート性能メトリックであり;
前記リモートCDNノードが第1のリモートCDNノードであり;及び
前記第1のリモート性能メトリックが、第2のリモートCDNノードについての第2のリモート性能メトリックをさらに含むレイテンシテーブルに記憶されている、
項目14に記載の方法。
[項目16]
前記ローカル性能メトリックを評価する段階が、前記第1の性能メトリックと前記第2の性能メトリックとの比較に基づいて、前記第1のリモートCDNノードが前記第2のリモートCDNノードよりも小さいレイテンシを有すると判定する段階をさらに有する、項目15に記載の方法。
[項目17]
前記リモートCDNノードについての前記リモート性能メトリックが、
前記リモートCDNノードについてのネットワーク応答レイテンシ;
前記リモートCDNノードについての計算エンジン応答レイテンシ;又は
前記リモートCDNノードについてのソフトウェア応答レイテンシ
のうちの少なくとも1つに基づいている、項目14に記載の方法。
[項目18]
前記リモートCDNノードについての前記ネットワーク応答レイテンシが、前記オーバーレイネットワークを介して前記リモートCDNノードから受信されたアドレス解決プロトコル(ARP)制御メッセージに少なくとも部分的に基づいて決定される、項目17に記載の方法。
[項目19]
前記生成されたルートを介して、コンピューティング機能を求める前記要求に対する応答を前記リモートCDNノードから受信する段階;及び
前記受信した応答を前記クライアントデバイスに提供する段階
をさらに備える、項目14に記載の方法。
[項目20]
前記コンピューティング機能に関連付けられた別の要求を前記クライアントデバイスから受信する段階;及び
前記生成されたルートを介して、前記別の要求の指示を前記リモートCDNノードに提供する段階
をさらに備える、項目14に記載の方法。
図1A
図1B
図2A
図2B
図2C
図3A
図3B
図4
【国際調査報告】