JP2018526752A - エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体 - Google Patents

エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP2018526752A
JP2018526752A JP2018512277A JP2018512277A JP2018526752A JP 2018526752 A JP2018526752 A JP 2018526752A JP 2018512277 A JP2018512277 A JP 2018512277A JP 2018512277 A JP2018512277 A JP 2018512277A JP 2018526752 A JP2018526752 A JP 2018526752A
Authority
JP
Japan
Prior art keywords
content
request
event
server
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.)
Granted
Application number
JP2018512277A
Other languages
English (en)
Other versions
JP6445222B2 (ja
Inventor
ラーダークリシュナン,マニガンダン
ザカレンコ,オレクシイ
ハワード,クレイグ・ウェズリー
ビジャヤラガバン,ヴェンカテッシュ
カティヤー,シュバム
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/852,272 external-priority patent/US11895212B2/en
Priority claimed from US14/852,256 external-priority patent/US10848582B2/en
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2018526752A publication Critical patent/JP2018526752A/ja
Application granted granted Critical
Publication of JP6445222B2 publication Critical patent/JP6445222B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための方法、システム、及びコンピュータ可読記憶媒体が開示される。コンテンツに対する要求は、クライアントデバイスからエッジサーバで受信される。コンテンツは、エッジサーバのコンテンツキャッシュからまたはエッジサーバに結合された配信元サーバから求められる。イベントに遭遇することを含む、要求の処理が開始される。イベントは、カスタマによって指定される機能と関連付けられる。イベントと関連付けられた機能は、プロセス分離を使用し、エッジサーバで実行される。コンテンツは、機能の実行に少なくとも部分的に基づいて生成される。コンテンツは、エッジサーバからクライアントデバイスに送信される。
【選択図】図1

Description

多くの会社及び他の組織は、その事業を支援するために、(例えば、ローカルネットワークの一部として)同一場所に配置されている、または代わりに(例えば、1つ以上のプライベート仲介ネットワークもしくはパブリック仲介ネットワークを介して接続される)複数の別個の地理的位置に配置されているコンピューティングシステムを用いて等、多数のコンピューティングシステムを相互接続するコンピュータネットワークを運用している。例えば、相当数の相互接続されたコンピューティングシステムを収容する分散システムが日常的になっている。係る分散システムは、クライアントと対話するサーバにバックエンドサービスを提供してよい。また、係る分散システムは、コンピューティングリソースをカスタマに提供するためにエンティティによって運用されるデータセンタを含むこともある。一部のデータセンタ事業者は、多様なカスタマによって所有されるハードウェアにネットワークアクセス、電力、及び安全な設置施設を提供する。一方、他のデータセンタ事業者はそのカスタマによる使用のために利用できるハードウェアリソースも含む「フルサービス」施設を提供する。分散システムの規模及び範囲が拡大するにつれ、リソースをセットアップする、運営する、及び管理するタスクはますます複雑になってきた。
例えば、コンテンツ配信ネットワークまたはコンテンツ配布ネットワーク(CDN)は、エンドユーザーにコンテンツを効率的に配信するために異なる地理的位置全体で分散システムを利用してよい。CDNは、例えばウェブページ及びその構成要素、ストリーミングメディア、ダウンロード可能メディア、アプリケーションデータ等の多様なタイプのコンテンツを提供してよい。CDNの目標は、コンテンツ配信のための高可用性及び低遅延を含んでよい。CDNを実装する分散システムは、多くの場合複数の基幹回線を介して多くの地理的位置に遠隔のポイントオブプレゼンスを含むことがあり、これにより優れた性能を有する異なるユーザーにコンテンツを提供できる。これらの遠隔のポイントオブプレゼンスは、エッジ位置と称されることがある。
一実施形態に従って、エッジ位置でのカスタマイズ可能なイベントトリガ型計算(event−triggered computation)のための例のシステム環境を示す図である。 一実施形態に従って、イベントと関連付けられた、カスタマ指定機能を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。 一実施形態に従って、計算をトリガするためのイベントの例を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。 一実施形態に従って、エッジサーバでのイベントトリガ機能の安全な実行を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。 一実施形態に従って、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための方法を示すフローチャートである。 一実施形態に従って、エッジ位置への読み取り専用データの複製を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。 一実施形態に従って、複製された読み取り専用データストアを使用する、エッジサーバでのイベントトリガ機能の安全な実行を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。 一実施形態に係る、エッジ位置への読み取り専用データの複製のための方法を示すフローチャートである。 一部の実施形態で使用され得る例のコンピューティングデバイスを示す図である。
実施形態は本明細書でいくつかの実施形態及び例示的な図面についての例として説明されるが、当業者は、実施形態が説明される実施形態または図面に限定されないことを認識するであろう。図面及びその詳細な説明は、実施形態を開示される特定の形式に限定することを意図しておらず、逆に、その意図は、添付の特許請求の範囲によって定義される精神及び範囲に含まれる全ての変形、均等物及び代替物に及ぶことを理解するべきである。本明細書で使用される見出しは、構成的な目的だけで使用され、明細書及び特許請求の範囲の範囲を限定するために使用することを意図していない。本出願を通じて使用されるように、単語「may(してよい)」は、必須の意味(すなわち、must(しなければならない)を意味する)ではなく、許容的な意味(すなわち、having the potential to(する可能性がある)を意味する)で使用される。同様に、単語「include(含む)」、「including(含む)」、及び「includes(含む)」は「including,but not limited to(を含むが、これに限定されるものではない)」を意味する。
エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための方法、システム、及びコンピュータ可読記憶媒体の多様な実施形態が説明される。本明細書に説明される技術を使用し、コンテンツ配信ネットワーク(CDN)のカスタマは、多様なタイプのコンテンツ配信イベントと関連付けられた機能を供給、選択、またはそれ以外の場合構成してよい。機能、及び機能のイベントとの関連付けは、CDNのエッジサーバに反映されてよい。適切な要求がエッジサーバで受信されると、関連付けられた機能がエッジサーバで実行されてよい。エッジサーバは、機能を実行することによって、エッジサーバでキャッシュからのコンテンツに対する要求を修正し、配信元サーバからのコンテンツに対する要求を修正し、エッジサーバでのキャッシュからのコンテンツに対する要求に対する応答を修正し、配信元サーバからのコンテンツに対する要求に対する応答を修正し、メトリックスまたはログエントリを生成するための要求分解を修正する、または要求と関連付けられたエラーを生じさせてよい。機能は、安全な実行環境でプロセス分離のための技術を使用し、実行されてよい。一実施形態では、読み取り専用データストアがエッジサーバに反映されてよい。読み取り専用データストアはカスタマ特有であってよく、特定のカスタマによる使用のために、そのカスタマの代わりにコンテンツを生成し及び/またはクライアントに配信する際に、供給及び/または修正されてよい。コンテンツに対する要求を処理する際に、エッジサーバは、データストアから取り出されたデータの要素を活用する機能(例えば、カスタマ指定機能)を実行してよい。このようにして、コンテンツの生成及び/またはエッジ位置からユーザーへの配信はカスタマイズされ得る。
図1は、一実施形態に従って、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境を示す図である。コンテンツ配信ネットワーク(CDN)100は、1つ以上のネットワーク190を介してクライアントデバイス180A〜180Nにコンテンツを配信するために対話する複数のコンピューティングデバイスを含んでよい。CDN100は、例えばウェブページ及びその構成要素、ストリーミングメディア、ダウンロード可能メディア、アプリケーションデータ、クライアントデバイスでの実行を目的としたプログラムコード等の多様なタイプのコンテンツを提供してよい。一実施形態では、CDN100は、1つ以上の配信元サーバ110及び複数のエッジサーバ120A〜120Nを含んでよい。配信元サーバ(複数可)110は、コンテンツストレージ111にコンテンツの要素を持続的に記憶してよく、例えばコンテンツストレージ111のコンテンツの要素に基づいてコンテンツを動的に生成してよい。エッジサーバ120A〜120Nは、配信元サーバ(複数可)110から最初に入手されたコンテンツの要素をキャッシュに格納してよい。したがって、エッジサーバ120A〜120Nのそれぞれは、例えばエッジサーバ120A用のコンテンツキャッシュ121A、エッジサーバ120B用のコンテンツキャッシュ121B、及びエッジサーバ120N用のコンテンツキャッシュ121N等のコンテンツキャッシュを含んでよい。
一実施形態では、CDN100からコンテンツを求めているクライアントは、配信元サーバ(複数可)110とよりむしろ、おもにエッジサーバ120A〜120Nと対話してよい。クライアントデバイス180A〜180Nからのコンテンツに対する要求を処理するとき、エッジサーバ120A〜120Nは最初にそのローカルコンテンツキャッシュからコンテンツを配信しようと試みてよい。コンテンツがローカルにキャッシュに格納されていない場合、エッジサーバは配信元サーバ(複数可)110から要求されたコンテンツを入手してよい。コンテンツキャッシュ121A〜121Nは、(例えば、コンテンツの要素が設定可能な期間内にクライアントによって要求されなかった場合)コンテンツの要素が期限切れとなり、キャッシュから削除され得るようにキャッシング方針を実装してよい。しかしながら、コンテンツの要素は必ずしも配信元サーバ(複数可)110のコンテンツストレージ111から期限切れとならないことがある。コンテンツストレージ111及び/またはコンテンツキャッシュ121A〜121Nを実装するために、任意の適切なストレージ技術が使用されてよい。
配信元サーバ(複数可)110は、エッジサーバ120A〜120Nよりも(例えば、特定の領域内で)より中心に位置してよい。本明細書で使用されるように、用語「エッジサーバ」は概してエッジ位置にあるコンテンツサーバを指し、用語「エッジ位置」は概して(地理及び/またはネットワークトポロジーの観点から)なんらかのメトリックに従ってエンドユーザーにより近い位置を指す。本明細書中で使用されるように、用語「配信元サーバ」は、概して1つ以上のエッジサーバにコンテンツを提供するコンテンツサーバを指す。エッジサーバ120A〜120Nは、さまざまな地理的位置、またはエッジ位置と称されることがあるネットワークトポロジーの位置で分散されてよい。エッジサーバ120A〜120Nは、それらが概して配信元サーバ(複数可)110よりも高い性能で多様な位置のクライアントデバイス180A〜180Nにコンテンツを提供できるように異なる位置に配置されてよい。一実施形態では、エッジサーバ120A〜120Nを使用するコンテンツ配信のより高い性能は、ネットワーク待ち時間、ネットワーク帯域幅使用、ページロード回数、及び/または任意の他の適切なメトリック(複数可)の観点から測定されてよい。例えば、コンテンツに対する特定の要求の場合、特定のクライアントデバイスは、例えばクライアントデバイスと選択されたエッジサーバとの間のネットワークホップの数を削減することによって、ネットワーク待ち時間を最小限に抑えるまたはそれ以外の場合性能を最大限にするように特定のエッジサーバにルート設定されてよい。また、コンテンツを配信するためのエッジサーバ120A〜120Nの使用はより高い可用性及び/またはより低いコストを実現することもある。
エッジサーバ120A〜120Nは、カスタマイズ可能なイベントトリガ型計算を実装することによって、クライアントデバイス180A〜180Nからのコンテンツ要求の処理中に任意の適切なイベントでカスタマ指定機能またはユーザー指定機能を実行してよい。例えば、カスタマ指定機能はクライアントからのコンテンツ要求を修正し、コンテンツ要求に対する応答を修正し、配信元サーバ(複数可)に対する発信元の要求を修正し、配信元サーバ(複数可)に対する発信元の要求に対する応答を修正し、(例えば、要求されたコンテンツを配信できないときにクライアントに対する)エラー通知を修正し、及び/またはコンテンツ要求を処理した後にメトリックス及び/またはログエントリを生成してよい。一実施形態では、カスタマイズ可能なイベント駆動計算は、コンテンツを生成する及び/またはクライアントデバイス180A〜180Nに配信するためにエッジサーバ120A〜120Nに複製された読み取り専用データストアを使用してよい。エッジサーバ120A〜120Nのそれぞれは、1つ以上のモジュール、構成要素、またはカスタマイズ可能なイベントトリガ型計算を実装する機能性の他の要素を含んでよい。例えば、各エッジサーバ120A〜120Nは、エッジサーバ120Aでのイベントトリガ型計算機能122A、エッジサーバ120Bでのイベントトリガ型計算機能122B、及びエッジサーバ120Nでのイベントトリガ型計算機能122N等のイベントトリガ型計算の機能を含んでよい。
CDN100及びクライアントデバイス180A〜180Nは、例えばネットワーク(複数可)190等、1つ以上の適切なネットワークを使用し、互いに通信で結合されてよい。クライアントデバイス180A〜180Nは、多様なクライアントまたはユーザーを表してよい、または相当してよい。クライアントデバイス180A〜180Nは、任意の適切な位置または地域にわたって分散されてよい。一実施形態によると、クライアントデバイス180A〜180Nは、CDN100からのコンテンツを消費するブラウザプログラムまたは他のアプリケーションを実行するように構成されてよい。例えば、クライアントデバイス180A〜180Nは、CDN100からのコンテンツに対するHTTP(ハイパーテキスト転送プロトコル)要求を生成するウェブブラウザを実行してよい。クライアントデバイス180A〜180Nのそれぞれは、1つ以上のコンピューティングデバイスを使用し、実装されてよく、1つ以上のコンピューティングデバイスのいずれかは図9に示される例のコンピューティングデバイス3000によって実装されてよい。
CDN100は複数のコンピューティングデバイスを含んでよく、複数のコンピューティングデバイスのいずれかは図9に示される例のコンピューティングデバイス3000によって実装されてよい。多様な実施形態では、CDN100の機能の部分は、同じコンピューティングデバイスによってまたは任意の適切な数の異なるコンピューティングデバイスによって提供されてよい。一実施形態では、エッジサーバについて本明細書に説明される機能の部分は、複数のコンピューティングデバイス及び/またはストレージリソース全体で分散されてよい。例えば、コンテンツキャッシュ121A及びイベントトリガ型計算122Aは、ネットワークまたは他の相互接続を使用して結合される異なるコンピューティングデバイスを使用し、実装されてよい。CDN100の構成要素のいずれかが異なるコンピューティングデバイスを使用し、実装される場合、次いで構成要素及びそのそれぞれのコンピューティングデバイスは、例えばネットワークを介して通信で結合されてよい。(例えば、コンテンツストレージ111、コンテンツキャッシュ121A〜121N、及びイベントトリガ型計算122A〜122N等)示されている構成要素のそれぞれは、そのそれぞれの機能を実施するために使用できるソフトウェア及びハードウェアの任意の組み合わせを表してよい。
CDN100は、図示されていない追加の構成要素、図示されているよりも少ない構成要素、または図示されている構成要素の異なる組み合わせ、構成、及び量を含むことがあることが意図される。例えば、3つのエッジサーバ120A、120B、及び120Nが例及び説明のために図示されているが、エッジサーバの異なる量及び構成が使用されてよいことが意図される。さらに、3つのクライアントデバイス180A、180B、及び180Nが例及び説明のために示されているが、異クライアントデバイスの異なる量及び構成が使用されてよいことが意図される。
一部の実施形態では、発信元サーバ(複数可)110、エッジサーバ120A〜120N、及び/またはクライアントデバイス180A〜180Nは、仮想計算インスタンス及び/または物理計算インスタンスを使用し、実装されてよい。仮想計算インスタンス及び/または物理計算インスタンスは、計算リソース、メモリリソース、ストレージリソース、及びネットワークリソースを管理するプロバイダネットワークによってクライアントに提供され、セットアップされ、保守されてよい。仮想計算インスタンスは、(CPUのタイプ及び数、メインメモリのサイズ等を示すことによって指定されてよい)指定された計算能力、ならびに指定されたソフトウェアスタック(例えば、同様にハイパーバイザの上部で実行してよいオペレーティングシステムの特定のバージョン)を有する1つ以上のサーバを含んでよい。1つ以上の仮想計算インスタンスは、図9に示される例のコンピューティンデバイス3000によって実装されてよい。
一実施形態では、CDN100の適切な構成要素は、多様なサーバまたはCDNの他の構成要素(配信元サーバ(複数可)110、エッジサーバ120A〜120N、及び/またはその構成要素モジュール)を実装するための仮想計算インスタンスを選択及び/またはセットアップしてよい。例えば、仮想計算インスタンスは利用可能なコンピューティングインスタンスの適切なプールからセットアップされてよい。一実施形態において、追加のコンピューティングインスタンスは、必要に応じてCDN100に追加されてよい。一実施形態において、コンピューティングインスタンスは、コンピューティングインスタンスが特定の時点で必要とされない場合、利用可能なコンピューティングインスタンスのプールに返されてよい。
一実施形態では、CDN100の機能はプロイダネットワークを使用し、カスタマに提供されてよい。CDN100のカスタマは、CDNにコンテンツ(例えば、カスタマによって供給または選択されるコンテンツ)をクライアントデバイス180A〜180Nに配信させるようとするエンティティ(例えば、人物、企業、及び/または他の組織)を表してよい。例えば、CDN100の機能性は、ウェブアクセス可能サービスとしてカスタマに提示されてよい。インターネット及び/または他のネットワークを介してクライアントの分散された集合に、アクセス可能な1つ以上のウェブサービス(例えば、多様なタイプのクラウドベースコンピューティングまたはストレージ)を提供するために、企業または公共部門組織等のエンティティによってセットアップされたネットワークは、プロバイダネットワークと称されてよい。プロバイダネットワークは、例えばプロバイダによって提供されるインフラ及びサービスを実装し、分配するために使用される、物理的なコンピュータサーバ及び/または仮想化コンピュータサーバ、ストレージデバイス、ネットワーク機器の集合体等の多様なリソースプールをホストする多数のデータセンタを含んでよい。一部の実施形態では、リソースは、例えば仮想のまたは物理的な計算インスタンスまたはストレージインスタンス等の「インスタンス」と呼ばれる単位でクライアントに提供されてよい。仮想計算インスタンスは、例えば、(CPUのタイプ及び数、メインメモリのサイズ等を示すことによって指定されてよい)指定された計算能力、ならびに指定されたソフトウェアスタック(例えば、同様にハイパーバイザの上部で実行してよいオペレーティングシステムの特定のバージョン等)を有する1つ以上のサーバを含んでよい。コンピュータサーバ、ストレージデバイス、ネットワークデバイス等を含む、異なる実施形態でプロバイダネットワークのリソースを実装するために、いくつかの異なるタイプのコンピューティングデバイスを単独でまたは組み合わせて使用してよい。
図2は、一実施形態に従って、イベントと関連付けられた、カスタマ指定機能を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す図である。エッジサーバ120A〜120Nでのイベントトリガ型計算は、1人以上のカスタマまたはCDN100の他のユーザーによってカスタマイズされてよい。一実施形態では、カスタマ入力114は、イベントトリガ型計算を実行するためのカスタマ構成115を指定する、定義する、またはそれ以外の場合(少なくとも部分的に)決定するために使用されてよい。上述されたように、CDN100のカスタマは、CDNにコンテンツ(例えば、カスタマによって供給または選択されるコンテンツ)をクライアントデバイス180A〜180Nに配信させようとするエンティティ(例えば、人物、企業、及び/または他の組織)を表すことがあり、これによりコンテンツはカスタマの代わりにクライアントに配信されると言われることがある。カスタマ入力114は、CDN100の特定のカスタマによって提供される入力を表してよく、カスタマ構成115はそのカスタマのための構成を表してよい。一実施形態では、構成サーバ210によって維持される追加カスタマ構成は、追加カスタマのための追加の構成を含んでよい。一実施形態では、カスタマ構成115は、特定のカスタマのための特定のアプリケーションまたはデータセットに関してよく、特定のカスタマは追加のアプリケーションまたは追加のデータセットのための追加カスタマ構成を指定してよい。したがって、カスタマ構成115は、特定のカスタマのための(及びおそらくそのカスタマのための特定のアプリケーションまたは特定のデータセット)のためのイベントトリガ型計算方針を表してよい。
カスタマ入力114は、アプリケーションプログラミングインタフェース(API)及び/またはグラフィカルユーザインタフェース(GUI)等の任意の適切なインタフェース(複数可)を使用し、カスタマによって提供されてよい。例えば、カスタマ構成115を修正するためのGUIは、ウェブページでコントロールを使用し、提示されてよく、カスタマはウェブページにアクセスしてカスタマ構成を修正するためにウェブブラウザを使用してよい。カスタマ入力114は、カスタマ構成115を指定するために構成サーバ210等の集中型の構成要素に提供されてよい。カスタマ構成115は、次いで構成サーバ210からエッジサーバ120A〜120Nに反映されてよい。また、(例えば、追加カスタマ入力に基づいた)カスタマ構成115に対する更新も構成サーバ210で行われ、次いでエッジサーバ120A〜120Nにプッシュされてよい。このようにして、同じイベントトリガ型計算方針は、例えばエッジサーバ120A〜120N等の複数のエッジサーバ全体で特定のカスタマ(及びおそらくそのカスタマのための特定のアプリケーションまたは特定のデータセット)のために実装されてよい。構成サーバ210は、エッジサーバ120A〜120Nに関して任意の適切な場所に配置されてよく、図9に示される例のコンピューティングデバイス3000によって実装されてよい。
一実施形態では、カスタマ構成115は多様なイベントタイプと多様な機能を関連付けてよい、またはリンクしてよい。図2の例に示されるように、カスタマ構成115は、複数のイベントタイプ116A〜116Nのいずれかのための関連付けられた機能を指定してよい。例えば、カスタマ入力114に基づいて、イベントタイプ116Aは機能117Aと関連付けられてよく、イベントタイプ116Nは機能117Nと関連付けられてよい。イベントタイプ116A〜116N及び機能117A〜117Nは図解及び例のために示されているが、任意の適切な数及び構成のイベントタイプ及び機能がカスタマ構成115と使用されてよいことが意図される。一実施形態では、特定のイベントタイプは関連付けられた機能を有さないことがある。イベントタイプ116A〜116Nは概して、コンテンツの準備及び/またはエッジサーバ120A〜120Nの1つからクライアント装置180〜180Nの1つへの配信の間に遭遇することがあるイベントに関し得る。イベントタイプの例は、図3に関して以下に説明される。
機能117A〜117N及び対応するイベントタイプ116A〜116Nとの機能117A〜117Nの関連付けは、例えばカスタマ入力114を使用し、カスタマによって指定されてよい。一実施形態では、機能117A〜117Nはカスタマによって構成サーバ210にアップロードされてよい。一実施形態では、機能117A〜117Nは、カスタマによって所定の機能のセットから選択されてよい。所定の機能の少なくともいくつかはカスタマ及び/または追加カスタマによって提供されてよい。機能117A〜117Nは、エッジサーバ120A〜120Nに対して(解釈、コンパイル、及び/またはジャストインタイムコンパイルの使用を含む)任意の適切な実行技術を使用して実行できる(プログラム命令を含む)プログラムコードのセットを含んでよい。したがって、機能117A〜117Nはスクリプト言語、高水準プログラミング言語、コンパイルしたプログラム、または任意の他の適切なフォーマットもしくはフォーマットの組み合わせを含む、任意の適切なフォーマットでカスタマによって指定されてよい。一実施形態では、機能117A〜117Nの1つ以上は入力のソースとして読み取り専用データソースを指してよい。読み取り専用データストアは同じカスタマによって指定されてよく、機能117A〜117Nとの使用のためにエッジサーバ120A〜120Nに反映されてよい。
図3は、一実施形態に従って、計算をトリガするためのイベントの例を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す。一実施形態では、イベントタイプ116A〜116Nは、コンテンツ要求151、コンテンツ応答152(例えば、コンテンツ要求151に対する応答)、発信元要求153、発信元応答154(例えば、発信元要求153に対する応答)、エラー通知155、及び/または要求分解156等のコンテンツ配信に関係するイベントを含んでよい。一実施形態では、これらのイベントの1つ以上は、特定のカスタマによって特定の機能と関連付けられてよく、特定の機能は、そのカスタマのためのコンテンツ配信をカスタマイズするために対応するイベントのときにまたは後に実行されてよい。イベント151〜156の1つ以上は、(コンテンツの生成及び/または取り出しならびにコンテンツの配信を含む)クライアントデバイス180Aからのコンテンツ要求の処理中に遭遇することがある。一部の状況では、イベント151〜156の全てにコンテンツに対する特定の要求の処理で遭遇することがあるわけではない。
一実施形態では、エッジサーバでの機能の実行は、サービスリソースまたはストレージリソース等の、エッジサーバにとってローカルであるリソースにアクセスすることを含んでよい。一実施形態では、機能の実行は、例えばエッジサーバ120A〜120N及び発信元サーバ(複数可)110以外のサーバにアクセスするためにネットワークを使用し、プロバイダネットワークのリソースにアクセスすることを含んでよい。例えば、プロバイダネットワークのアクセス可能なリソースは、仮想化されたコンピューティングリソース、仮想化されたストレージリソース、及び多様なタスクを実行するように構成された多様なサービスを含んでよい。
コンテンツ要求イベント151は、コンテンツに対する要求がクライアントデバイス180Aからエッジサーバ120Aによって受信されるときに発生してよい。コンテンツ要求イベント151は、コンテンツ要求のための(例えば、CACHEまたはPROXY要求のための)要求ヘッダがクライアントデバイス180Aから受信されるときに発生してよい。任意の適切な機能は、コンテンツ要求イベント151に応えてエッジサーバ120Aによって実行されてよい。例えば、コンテンツ要求イベント151と関連付けられた機能は、コンテンツ要求自体を修正するために実施(例えば、実行)されてよい。例えば、コンテンツ要求イベント151と関連付けられた機能は、コンテンツ要求のルートの設定を変更するために、コンテンツ要求のプロトコルを変更するために、及び/または発信元要求のためのヘッダを修正するために実施(例えば、実行)されてよい。一実施形態では、コンテンツ要求イベント151と関連付けられた機能は、コンテンツキャッシュ121Aまたは発信元サーバ(複数可)110からコンテンツを取り出すことなく、コンテンツ要求に対する応答を動的に生成するために実施(例えば、実行)されてよい。
コンテンツ応答イベント152は、コンテンツがコンテンツに対する要求に応じて、その要求を発行したクライアントデバイス180Aに送信されると発生してよい。任意の適切な機能は、コンテンツ応答イベント152に応えてエッジサーバ120Aによって実施されてよい。例えば、コンテンツ応答イベント152と関連付けられた機能は、コンテンツ応答自体を修正するために実施(例えば、実行)されてよい。
発信元要求イベント153は、エッジサーバ120Aが発信元サーバ(複数可)110からコンテンツを要求するために準備しているときに発生してよい。例えば、発信元要求は、コンテンツがコンテンツキャッシュ121Aで見つけられないときに発信元サーバ(複数可)110からコンテンツを入手するために発行されてよい。したがって、要求されたコンテンツがコンテンツキャッシュ121Aで見つけられる場合、発信元要求イベント153に遭遇しないことがある。任意の適切な機能は、発信元要求イベント153に応えてエッジサーバ120Aによって実施されてよい。発信元要求イベント153と関連付けられた機能は、発信元要求自体を修正するために実施(例えば、実行)されてよい。例えば、発信元要求イベント153と関連付けられた機能は、発信元要求のルート設定を変更する、発信元要求のプロトコルを変更する、及び/または発信元要求に許可ヘッダを追加するために実施(例えば、実行)されてよい。一実施形態では、発信元要求イベント153と関連付けられた機能は、コンテンツキャッシュ121Aまたは発信元サーバ(複数可)110からコンテンツを取り出すことなく、発信元要求に対する応答を動的に生成するために実施(例えば、実行)されてよい。
発信元応答イベント154は、コンテンツが発信元要求に応えて、発信元サーバ(複数可)110からエッジサーバ120Aによって受信されると発生してよい。再び、要求されたコンテンツがコンテンツキャッシュ121Aで見つけられる場合、発信元応答イベント155に遭遇しないことがある。一実施形態では、発信元応答イベント154は、コンテンツがエッジサーバ120Aによって受信されるが、コンテンツがコンテンツキャッシュ121Aに格納される前に発生してよい。任意の適切な機能は、発信元応答イベント154に応えてエッジサーバ120Aによって実施されてよい。例えば、発信元応答イベント154と関連付けられた機能は、発信元応答自体を修正するために実施(例えば、実行)されてよい。
コンテンツ要求151の処理中の任意の適切な点でエラーが生じる、またはエラーに遭遇すると、エラーイベント155が発生することがある。例えば、エラーは、要求されたコンテンツをクライアントデバイス180Aに配信できない場合生じてよい。任意の適切な機能は、エラーイベント155に応えてエッジサーバ120Aによって実施されてよい。例えば、エラーイベント155と関連付けられた機能は、例えばクライアントデバイス180Aに送信されるエラー等、エラーページまたは他のエラー通知をフェッチする、修正する、またはそれ以外の場合生じさせるために実施(例えば、実行)されてよい。
要求分解イベント156は、コンテンツ応答152またはエラー155の後に発生することがある。要求分解156は、コンテンツに対する要求を処理することに関係する1つ以上の性能メトリックス及びまたはログエントリを生成してよい。任意の適切な機能は、要求分解イベント156に応えてエッジサーバ120Aによって実行されてよい。例えば、要求分解イベント156と関連付けられた機能は、1つ以上のメトリックス及び/またはログエントリを生成し、それらをメトリックス及びログ160のレポジトリに記憶するために実施(例えば、実行)されてよい。
図4は、一実施形態に従って、エッジサーバでのイベントトリガ機能の安全な実行を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す。イベントトリガ型計算機能122Aは、例えばプロセス分離のための1つ以上の技術を使用し、安全な方法でコンテンツ配信をカスタマイズするための機能を実施(例えば、実行)してよい。本明細書で使用されるように、用語「プロセス分離」は概して、第1の機能が第2の機能(または第2の機能と関連付けられたデータ)に直接的に影響を及ぼすまたはアクセスすることができないように、機能の処理の互いからの分離を含む。一実施形態では、エッジサーバ120A〜120Nのいずれかは、プロセス分離を使用し、カスタマ指定機能を実行するための1つ以上の構成要素を含む、安全な実行環境を実装してよい。プロセス分離を提供するための安全な実行環境の実装は、カスタマ指定機能での任意のプログラムコードの安全な実行を許可してよい。エッジサーバ120Aでは、コンテンツ要求処理モジュール130Aは、コンテンツに対する要求をクライアントデバイス180Aから受信してよい。上述されるように、コンテンツに対する要求を処理する際に、(例えば、イベント151〜156のように)1つ以上のコンテンツ配信イベントに遭遇することがある。例えば、要求を処理することは、コンテンツがすでにコンテンツキャッシュ121Aに記憶されていない場合、エッジサーバ120Aが発信元サーバ(複数可)110からコンテンツ112を要求することを含んでよい。カスタマ構成115で機能と関連付けられるイベントに遭遇するとき、エッジサーバ120Aでのトリガモジュール131Aはその機能の実行を開始してよい。
イベントトリガ型計算122Aは、イベントと機能との間の関連付けを決定するためにカスタマ構成115を参照してよい。一実施形態では、各機能は、対応するイベントによってトリガされた後専用の分離されたコンテナで実行されてよい。エッジサーバ120Aは、複数のコンテナ142Aを含んでよい。コンテナ142Aは、複数の機能の実行にプロセス分離を提供してよい。コンテナ142Aのそれぞれは、コンテンツ配信イベントと関連付けられた機能の実行のために安全な実行環境を実装してよい。コンテナ142Aを実装するために、任意の適切な技術が使用されてよい。一実施形態では、コンテナ142Aのいずれかは、機能を実施できるバーチャルマシンを実装してよい。任意の適切なバーチャルマシン技術は、コンテナ142Aを実装するために使用されてよい。一実施形態では、コンテナ142Aのいずれかは、機能を実施できるLinux(登録商標)コンテナを実装してよい。各Linuxコンテナは、専用の計算リソース、メモリリソース、入出力リソース、及びネットワークリソースを含む仮想環境を提供してよい。コンテナ142Aは集合的に、1人のカスタマのためのまたは複数のカスタマのための機能の実行のために使用されてよい。コンテナ142Aのいずれも、使用時に、1人の特定のカスタマのためにどんなときでも機能を実行するために使用され得ることが意図される。
コンテナ142Aは、コンテナマネージャモジュール140Aによって管理されてよい。例えば、コンテナマネージャ140Aは、コンテナをインスタンス化し、コンテナをリサイクルまたはリセットし、コンテナを破壊し、コンテナ142Aを管理するための任意の他の適切なタスクを実施してよい。トリガモジュール131Aは、例えばコンテナマネージャ140Aに特定の機能の実行のためにコンテナをインスタンス化またはそれ以外の場合準備するように命令するために、コンテナマネージャ140Aに制御メッセージを送信してよい。トリガモジュール131Aは、機能実行メッセージを要求ルート設定モジュール141Aに送信してよく、要求ルート設定モジュール141Aは特定の機能の実行を開始するためにそれらのメッセージを適切なコンテナに転送してよい。一実施形態では、特定の機能のためのコンテナが、対応するイベントに遭遇する前にインスタンス化されてよく、要求ルート設定モジュール141Aは、対応するイベントがトリガされるときにそれらの事前設定されたコンテナに実行要求を送ってよい。一実施形態では、特定の機能のためのコンテナは、対応するイベントに遭遇した後にインスタンス化されてよく、要求ルート設定モジュール141Aは、対応するイベントがトリガされるときにそれらのコンテナに実行要求を送ってよい。コンテナでの機能の実行の結果は、例えばコンテナ142Aからコンテナ要求処理モジュールまたはトリガモジュール131Aに直接的に等、任意の適切な方法でコンテンツ要求処理モジュール130Aに送り返されてよい。
図5は、一実施形態に従って、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための方法を示すフローチャートである。505に示されるように、機能はコンテンツ配信のためのイベントのタイプと関連付けられてよい。機能は、コンテンツ配信ネットワーク(CDN)の1人以上のカスタマからのカスタマ入力に基づいたイベントと関連付けられてよい。機能は、カスタマ(複数可)によって指定されてよい、または使用可能な機能のセットからカスタマ(複数可)によって選択されてよい。機能は、概して(コンテンツの生成または取り出し、及びコンテンツの配信を含む)CDNからのコンテンツに対する要求の処理で実行できる、またはそれ以外の場合実施できる(プログラム命令を含む)プログラムコードのセットを含んでよい。イベントは、コンテンツ要求、コンテンツ応答(例えば、コンテンツ要求に対する応答)、発信元要求、発信元応答(例えば、発信元要求に対する応答)、エラー通知、及び/または要求分解等のコンテンツ配信に関係するイベントを含んでよい。一実施形態では、(例えば、カスタマ入力に基づいて)読み取り専用データストアも指定されてよい。
510に示されるように、カスタマ指定機能はCDNの複数のエッジサーバに送信されてよい。一実施形態では、機能はエッジサーバに反映される前に、例えば構成サーバ等の集中型の場所でイベントに指定されてよい。また、エッジサーバに機能を送信することは、機能と対応するイベントタイプとの間の関連付けを送信することを含んでもよい。一実施形態では、読み取り専用データストアもエッジサーバに反映されてよい。
515に示されるように、コンテンツ要求は、クライアントデバイスからエッジサーバで受信されてよい。要求は、エッジサーバのコンテンツキャッシュからまたは配信元サーバからのコンテンツに対する要求を表してよい。エッジサーバはコンテンツを生成する要求の処理を開始してよく、処理は1つ以上のイベントに遭遇することを含んでよい。520〜535に示されるように、エッジサーバは多様なイベントを順に処理し、任意の関連付けられた機能を実施してよい。このようにして、コンテンツはイベントによってトリガされる1つ以上のカスタマ指定機能の実行に(少なくとも部分的に)基づいて生成されてよい。520に示されるように、エッジサーバは、機能が(例えば、カスタマによって指定されるように)現在のイベントにリンクされるかどうかを判断してよい。リンクされる場合、次いで525に示されるように、機能はエッジサーバで実行されてよい、またはそれ以外の場合実施されてよい。一実施形態では、機能は、コンテナが追加のコンテナで実行中の追加の機能から分離され得るように、プロセス分離を使用し、コンテナで実行されてよい。機能の実行は、エッジサーバに複製される読み取り専用データストアから1つ以上の要素を取り出し、使用することを含んでよい。530に示されるように、要求の処理と関連付けられる全てのイベントに遭遇したかどうかが判断されてよい。遭遇していない場合、次いで535に示されるように、方法は次のイベントに進んでよい。全てのイベントに遭遇すると、540に示されるように、エッジサーバはクライアントデバイスにコンテンツを送信してよい。
本明細書で説明されるCDNは、異なるカスタマのためのカスタマ指定機能が同じエッジサーバで異なるイベントによってトリガされ得るようにマルチテナンシーのための技術を実装してよい。一実施形態では、追加コンテンツに対する追加要求はエッジサーバで受信されてよい。追加要求は、例えばエッジサーバのコンテンツキャッシュからまたは発信元サーバから等、異なるカスタマからのコンテンツに対する要求を表してよい。エッジサーバはコンテンツを生成する追加要求の処理を開始してよく、処理は1つ以上のイベントに遭遇することを含んでよい。520〜535に関して上述されるように、エッジサーバは多様なイベントを反復し、あらゆる関連付けられた機能を実施してよい。このようにして、追加コンテンツは、異なるカスタマによって指定される1つ以上のイベントトリガ機能の実行に(少なくとも部分的に)基づいて生成されてよい。エッジサーバは、全てのイベントに遭遇するとクライアントデバイスにコンテンツを送信してよい。
図6は、一実施形態に従って、エッジ位置への読み取り専用データの複製を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す。エッジサーバ120A〜120Nでのイベントトリガ型計算は、1人以上のカスタマまたはCDN100の他のユーザーによってカスタマイズされてよい。一実施形態では、カスタマ入力614は、イベントトリガ型計算を実行するために使用可能な読み取り専用データストア615を指定する、定義する、またはそれ以外の場合(少なくとも部分的に)決定するために使用されてよい。上述されたように、CDN100のカスタマは、CDNにコンテンツ(例えば、カスタマによって供給または選択されるコンテンツ)をクライアントデバイス180A〜180Nに配信させようとするエンティティ(例えば、人物、企業、及び/または他の組織)を表すことがあり、これによりコンテンツはカスタマの代わりにクライアントに配信されると言われることがある。カスタマ入力614はCDN100の特定のカスタマによって提供される入力を表すことがあり、読み取り専用データストア615はその特定のカスタマのためのデータストアを表すことがある。一実施形態では、追加の読み取り専用データストアは、同じカスタマのために及び/または追加カスタマのために構成サーバ210によって維持されてよい。一実施形態では、読み取り専用データストア615は特定のカスタマのための特定のアプリケーションまたはデータセットに関することがあり、特定のカスタマは追加のアプリケーションまたは追加のデータベースのための追加の読み取り専用データストアを指定してよい。
カスタマ入力614は、例えばアプリケーションプログラミングインタフェース(API)及び/またはグラフィカルユーザーインタフェース(GUI)等の任意の適切なインタフェース(複数可)を使用し、カスタマによって提供されてよい。例えば、カスタマは、適切なAPIを使用し、読み取り専用データストア615のためのデータの要素を構成サーバ210にアップロードし、それによって読み取り専用データストア615をポピュレートしてよい。カスタマ入力614は、読み取り専用データストア615の要素を指定するために、構成サーバ210等の集中型構成要素に提供されてよい。読み取り専用データストア615は、次いで構成サーバ210からエッジサーバ120A〜120Nに反映されてよい。また、(例えば、追加カスタマ入力に基づいた)読み取り専用データストア615への更新は、構成サーバ210で行われてもよく、次いでエッジサーバ120A〜120Nにプッシュされてよい。このようにして、同じ読み取り専用データストア615を使用するイベントトリガ型計算は、例えばエッジサーバ120A〜120N等の複数のエッジサーバ全体で、特定のカスタマのために(及びそのカスタマのためのおそらく特定のアプリケーションまたは特定のデータセットのために)実装されてよい。構成サーバ210は、エッジサーバ120A〜120Nに関して任意の適切な場所に配置されてよく、図9に示される例のコンピューティングデバイス3000によって実装されてよい。
読み取り専用データストア615を実装するために、任意の適切な技術が使用されてよい。一実施形態では、読み取り専用データストア615は、複数のキー‐値対を記憶するキー‐値データストアであってよい。図6の例に示されるように、読み取り専用データストア615のデータの要素は、キー616A及び関連付けられた値617A、キー616B及び関連付けられた値617B、ならびにキー616N及び関連付けられた値617Nを含んでよい。しかしながら、任意の適切な数及び構成のデータ要素が、読み取り専用データストア615を使用し、維持され得ることが意図される。一実施形態では、カスタマによって指定される機能の1つ以上は、入力のソースとして読み取り専用データストア615を参照してよい。読み取り専用データストア及び機能は同じカスタマによって指定されてよく、ともにエッジサーバ120A〜120Nに反映されてよい。
図7は、一実施形態に従って、複製された読み取り専用データストアを使用する、エッジサーバでのイベントトリガ機能の安全な実行を含む、エッジ位置でのカスタマイズ可能なイベントトリガ型計算のための例のシステム環境の追加の態様を示す。イベントトリガ型計算機能122は、例えばプロセス分離のための1つ以上の技術を使用し、安全な方法でコンテンツ配信をカスタマイズするための機能を実施(例えば、実行)してよい。本明細書で使用されるように、用語「プロセス分離」は概して、第1の機能が第2の機能(または第2の機能と関連付けられたデータ)に直接的に影響を及ぼすまたはアクセスすることができないように、機能の処理の互いからの分離を含む。一実施形態では、エッジサーバ120A〜120Nのいずれかは、プロセス分離を使用し、カスタマ指定機能を実行するための1つ以上の構成要素を含む、安全な実行環境を実装してよい。エッジサーバ120Aでは、コンテンツ要求処理モジュール130Aは、コンテンツに対する要求をクライアントデバイス180Aから受信してよい。上述されるように、コンテンツに対する要求を処理する際に、(例えば、イベント151〜156のように)1つ以上のコンテンツ配信イベントに遭遇することがある。例えば、要求を処理することは、コンテンツがすでにコンテンツキャッシュ121Aに記憶されていない場合、エッジサーバ120Aが発信元サーバ(複数可)110からコンテンツ112を要求することを含んでよい。カスタマ構成115で機能と関連付けられるイベントに遭遇するとき、エッジサーバ120Aでのトリガモジュール131Aはその機能の実行を開始してよい。機能の実行は、例えば1つ以上のキーと関連付けられた1つ以上の値等、読み取り専用データストア615からデータの1つ以上の要素を取り出し、使用することを含んでよい。生成され、要求側のデバイス180Aに送信されるコンテンツは、このようにして読み取り専用データストア615からのデータの要素を含むことがある、またはそれ以外の場合に読み取り専用データストア615からのデータの要素に(少なくとも部分的に)基づくことがある。
イベントトリガ型計算122Aは、イベントと機能との間の関連付けを決定するためにカスタマ構成115を参照してよい。一実施形態では、各機能は、対応するイベントによってトリガされた後専用の分離されたコンテナで実行されてよい。エッジサーバ120Aは、複数のコンテナ142Aを含んでよい。コンテナ142Aは、複数の機能の実行にプロセス分離を提供してよい。コンテナ142Aのそれぞれは、コンテンツ配信イベントと関連付けられた機能の実行のために安全な実行環境を実装してよい。コンテナ142Aを実装するために、任意の適切な技術が使用されてよい。一実施形態では、コンテナ142Aのいずれかは、機能を実施できるバーチャルマシンを実装してよい。任意の適切なバーチャルマシン技術は、コンテナ142Aを実装するために使用されてよい。一実施形態では、コンテナ142Aのいずれかは、機能を実施できるLinuxコンテナを実装してよい。各Linuxコンテナは、専用の計算リソース、メモリリソース、入出力リソース、及びネットワークリソースを含む仮想環境を提供してよい。コンテナ142Aは集合的に、1人のカスタマのためのまたは複数のカスタマのための機能の実行のために使用されてよい。コンテナ142Aのいずれも、使用時に、1人の特定のカスタマのためにどんなときでも機能を実行するために使用され得ることが意図される。
コンテナ142Aは、コンテナマネージャモジュール140Aによって管理されてよい。例えば、コンテナマネージャ140Aは、コンテナをインスタンス化し、コンテナをリサイクルまたはリセットし、コンテナを破壊し、コンテナ142Aを管理するための任意の他の適切なタスクを実施してよい。トリガモジュール131Aは、例えばコンテナマネージャ140Aに特定の機能の実行のためにコンテナをインスタンス化またはそれ以外の場合準備するように命令するために、コンテナマネージャ140Aに制御メッセージを送信してよい。トリガモジュール131Aは、機能実行メッセージを要求ルート設定モジュール141Aに送信してよく、要求ルート設定モジュール141Aは特定の機能の実行を開始するためにそれらのメッセージを適切なコンテナに転送してよい。一実施形態では、特定の機能のためのコンテナが、対応するイベントに遭遇する前にインスタンス化されてよく、要求ルート設定モジュール141Aは、対応するイベントがトリガされるときにそれらの事前設定されたコンテナに実行要求を送ってよい。一実施形態では、特定の機能のためのコンテナは、対応するイベントに遭遇した後にインスタンス化されてよく、要求ルート設定モジュール141Aは、対応するイベントがトリガされるときにそれらのコンテナに実行要求を送ってよい。コンテナでの機能の実行の結果は、例えばコンテナ142Aからコンテナ要求処理モジュールまたはトリガモジュール131Aに直接的に等、任意の適切な方法でコンテンツ要求処理モジュール130Aに送り返されてよい。
図8は、一実施形態に係る、エッジ位置への読み取り専用データの複製のための方法を示すフローチャートである。805に示されるように、読み取り専用データストアが指定されてよい。データストアは、例えばカスタマがデータストアのためのデータの要素及び/または利用可能な要素の集合からのデータの選択された要素をアップロードすることによって等、コンテンツ配信ネットワーク(CDN)のカスタマによって指定されてよい。データストアは複数のキー‐値対を含んでよい。一実施形態では、カスタマは、イベントと関連付けられた1つ以上の機能を指定してもよい。機能は、概して(コンテンツの生成または取り出し、及びコンテンツの配信を含む)CDNからのコンテンツに対する要求の処理で実行できる、またはそれ以外の場合実施できる(プログラム命令を含む)プログラムコードのセットを含んでよい。イベントは、コンテンツ要求、コンテンツ応答(例えば、コンテンツ要求に対する応答)、発信元要求、発信元応答(例えば、発信元要求に対する応答)、エラー通知、及び/または要求分解等のコンテンツ配信に関係するイベントを含んでよい。
810に示されるように、読み取り専用データストアは、CDNの複数のエッジサーバに送信されてよい。エッジサーバのそれぞれは、おそらくオフサーバストレージを含むエッジサーバによって管理されるストレージリソースにデータストアのローカルコピーを維持してよい。読み取り専用データストアは、エッジサーバに反映される前に、例えば構成サーバ等の集中型の場所で指定されてよい。エッジサーバに読み取り専用データストアを送信することは、読み取り専用データストアのローカルコピーまたはインスタンスをポピュレートするためにエッジサーバにデータを送信することを含んでよい。一実施形態では、カスタマ指定機能(複数可)もCDNの複数のエッジサーバに送信されてよい。また、エッジサーバに機能を送信することは、機能と対応するイベントタイプとの間の関連付けを送信することを含んでもよい。
815に示されるように、コンテンツ要求は、クライアントデバイスからエッジサーバで受信されてよい。要求は、エッジサーバのコンテンツキャッシュからまたは配信元サーバからのコンテンツに対する要求を表してよい。820に示されるように、エッジサーバはコンテンツを生成する要求の処理を開始してよく、処理は1つ以上の機能を実施することを含んでよい。要求されたコンテンツを生成するために、1つ以上の機能はエッジサーバでの読み取り専用データストアからデータの要素を取り出し、使用してよい。一実施形態では、1つ以上の機能は、読み取り専用データストアのローカルコピーからのデータを入力として参照するパラメータを含んでよい。コンテンツ要求の処理では、1つ以上のイベントに遭遇することがある。特定の機能は特定のイベントと関連付けられてよく、これにより(例えば、読み取り専用データストアも指定したカスタマによって指定される)機能のそれぞれは、コンテキスト要求の処理で対応するイベントに遭遇するときに実施されてよい。エッジサーバでの機能を実施することは、読み取り専用データストアのローカルコピーからデータを取り出し、使用することを含んでよい。825に示されるように、エッジサーバはクライアントデバイスにコンテンツを送信してよい。
例示的なコンピュータシステム
少なくとも一部の実施形態では、本明細書に記載される技術の内の1つまたは複数の一部または全てを実装するコンピュータシステムは、1つ以上のコンピュータ可能媒体を含む、またはそれにアクセスするように構成されたコンピュータシステムを含んでよい。図9は、係るコンピューティングデバイス3000を示す。示される実施形態では、コンピューティングデバイス3000は、入出力(I/O)インタフェース3030を介してシステムメモリ3020に結合された1つ以上のプロセッサ3010を含む。コンピューティングデバイス3000さらに、I/Oインタフェース3030に結合されたネットワークインタフェース3040を含む。
多様な実施形態では、コンピューティングデバイス3000は、1つのプロセッサ3010を含むユニプロセッサシステム、またはいくつかのプロセッサ3010(例えば、2つ、4つ、8つもしくは別の適切な数)を含むマルチプロセッサシステムであってよい。プロセッサ3010は、命令を実行することが可能な任意の適切なプロセッサを含んでよい。例えば、多様な実施形態では、プロセッサ3010は、例えばx86、PowerPC、SPARCもしくはMIPS ISA、または任意の他の適切なISA等の、さまざまなインストラクションセットアーキテクチャ(ISA)のいずれかを実装するプロセッサであってよい。マルチプロセッサシステムでは、プロセッサ3010のそれぞれは、通常同じISAを実装してよいが、必ずしも同じISAを実装しないことがある。
システムメモリ3020は、プロセッサ(複数可)3010によってアクセス可能なプログラム命令及びデータを記憶するように構成されてよい。多様な実施形態では、システムメモリ3020は、スタティックランダムアクセスメモリ(SRAM)、同期型RAM(SDRAM)、不揮発性/フラッシュタイプのメモリまたは任意の他のタイプのメモリ等のいずれかの適切なメモリ技術を使用し、実装されてよい。示される実施形態では、上述されたそれらの方法、技術、及びデータ等の1つ以上の所望の機能を実装するプログラム命令及びデータは、コード(つまり、プログラム命令)3025及びデータ3026としてシステムメモリ3020内に記憶されて、示される。
一実施形態において、I/Oインタフェース3030は、プロセッサ3010と、システムメモリ3020と、ネットワークインタフェース3040またはほかの周辺インタフェースを含むデバイス内のあらゆる周辺装置との間のI/Oトラフィックを調整するように構成されてよい。一部の実施形態では、I/Oインタフェース3030は、データ信号をある構成要素(例えば、システムメモリ3020)から別の構成要素(例えば、プロセッサ3010)による使用に適切なフォーマットに変換するために任意の必要なプロトコル、タイミング、または他のデータ変換を実施してよい。一部の実施形態では、I/Oインタフェース3030は、例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形等の多様なタイプの周辺バスを通じて取り付けられたデバイスに対するサポートを含んでよい。一部の実施形態では、I/Oインタフェース3030の機能は、例えば、ノースブリッジ及びサウスブリッジ等の2つ以上の別々の構成要素に分けられてよい。また、一部の実施形態では、システムメモリ3020へのインタフェース等のI/Oインタフェース3030の機能のいくつかまたは全ては、プロセッサ3010に直接的に組み込まれてよい。
ネットワークインタフェース3040は、コンピューティングデバイス3000と1つまたは複数のネットワーク3050に取り付けられた他のデバイス3060との間でデータを交換できるように構成されてよい。多様な実施形態では、ネットワークインタフェース3040は、例えば、イーサネット(登録商標)ネットワークのタイプ等のいずれか適切な有線汎用データネットワークまたは無線汎用データネットワークを介した通信をサポートしてよい。さらに、ネットワークインタフェース3040は、例えばアナログ音声ネットワークもしくはデジタルファイバ通信ネットワーク等の電気通信/電話ネットワークを介した、ファイバチャネルSAN等のストレージエリアネットワークを介した、または任意の他の適切なタイプのネットワーク及び/もしくはプロトコルを介した通信をサポートしてよい。
一部の実施形態では、システムメモリ3020は、対応する方法及び装置の実施形態を実装するための、上述されたプログラム命令及びデータを記憶するように構成されたコンピュータ可読(つまり、コンピュータアクセス可能)媒体の一実施形態であってよい。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能媒体上で受信、送信、または記憶されてよい。一般的に、コンピュータ可読媒体は、例えばI/Oインタフェース3030を介してコンピューティングデバイス3000に結合されたディスクまたはDVD/CD等の磁気媒体または光学媒体等の非一過性の記憶媒体またはメモリ媒体を含んでよい。また、非一過性のコンピュータ可読記憶媒体は、システムメモリ3020または別のタイプのメモリとしてコンピューティングデバイス3000の一部の実施形態に含められることがある、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等の任意の揮発性媒体または不揮発性媒体を含んでもよい。さらに、コンピュータ可読媒体は、例えばネットワークインタフェース3040を介して実装されるように、伝送媒体、または例えばネットワーク及び/または無線リンク等の通信媒体を介して伝達される電気信号、電磁信号、もしくはデジタル信号を含んでよい。図9に示されるもの等の複数のコンピューティングデバイスの部分または全ては、多様な実施形態で説明された機能を実装するために使用されてもよく、例えば、さまざまな異なるデバイス及びサーバ上で実行するソフトウェア構成要素は、機能を提供するために協働してよい。一部の実施形態では、説明される機能の部分は、ストレージデバイス、ネットワークデバイス、またはコンピュータシステムを使用し、実装されてよい。本明細書で使用される用語「コンピューティングデバイス」は、少なくとも全てのこれらのタイプのデバイスを指し、これらのタイプのデバイスに制限されない。
多様な実施形態はさらに、上述の説明に従って実装される命令及び/もしくはデータを受信すること、送信すること、またはコンピュータ可読媒体上で記憶することを含むことがある。一般的には、コンピュータ可読媒体は、例えば、ディスクまたはDVD/CD−ROM、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性媒体または不揮発性媒体等の磁気媒体または光学媒体等の、記憶媒体またはメモリ媒体を含んでよい。一部の実施形態では、コンピュータ可読媒体は伝送媒体、または例えばネットワーク及び/もしくは無線リンク等の通信媒体を介して伝達される電気信号、電磁信号、またはデジタル信号等の信号を含んでもよい。
図面に示され、本明細書で説明される多様な方法は、方法の実施形態の例を表している。方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施されてよい。多様な方法では、ステップの順序は変更されてよく、多様な要素が追加、並べ替え、結合、省略、修正等されてよい。ステップの多様なステップは、(例えば、ユーザー入力によって直接的にプロンプトで促されることなく)自動的に及び/または(例えば、プログラム命令に従って)プログラムで実施されてよい。
本明細書で本発明の説明に使用される用語は、特定の実施形態を説明する目的のためであり、本発明を制限することを意図していない。本発明の明細書及び添付の特許請求の範囲で使用されるように、単数形「a」、「an」、及び「the」は、文脈上明確に他の意味を示すべき場合を除いて、複数形も同様に含むことが意図される。また、本明細書で使用される用語「and/or(及び/または)」は、関連付けられ、示されている項目の1つ以上のありとあらゆる考えられる組み合わせを指し、包含することも理解される。用語、「includes(含む)」、「including(含む)」、「comprises(含む)」、及び/または「comprising(含む)」は、本明細書で使用されるとき、記載されている特徴、整数、ステップ、動作、要素、及び/または構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/またはそれらの群の存在または追加を除外しないことがさらに理解される。
本明細書で使用されるように、用語「if(場合)」は、状況に応じて、「when(とき)」または「upon(時)」または「in response to determining(〜判断することに応えて)」、または「in response to detecting(〜検出することに応えて)」、を意味すると解釈されてよい。同様に、句「if it is determined(が判断される場合)」または「if [a stated condition or event] is detected([記載される条件またはイベント]が検出される場合)」は、状況に応じて、「upon determining(判断時)」または「in response to determining(〜判断することに応えて)」、または「in response to detecting [the stated condition or event](〜[記載される状態またはイベント]を検出することに応えて)」、を意味すると解釈されてよい。
また、用語、第1の、第2の等は本明細書で多様な要素を記述するために使用されることがあるが、これらの要素はこれらの用語によって制限されるべきではないことも理解される。これらの用語は、ある要素を別の要素と区別するために使用されるにすぎない。例えば、本発明の範囲から逸脱することなく、第1の接点は第2の接点と呼ぶことができ、同様に第2の接点は第1の接点と呼ぶことができるだろう。第1の接点及び第2の接点はともに接点であるが、それらは同じ接点ではない。
上記の事項は、以下の条項を考慮してより良く理解され得る。
1.システムであって、
発信元サーバ及びエッジサーバを備えるコンテンツ配信ネットワークを実装するように構成された複数のコンピューティングデバイスを備え、前記エッジサーバが、前記発信元サーバから取り出されたコンテンツを記憶するように構成されたコンテンツキャッシュを備え、前記エッジサーバが、
機能のイベントとの関連付けを受信することであって、前記機能及び前記関連付けが前記コンテンツ配信ネットワークのカスタマからの入力に少なくとも部分的に基づいて決定される、前記機能のイベントとの関連付けを受信することと、
クライアントデバイスから、前記コンテンツキャッシュからまたは前記発信元サーバからのコンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理が、前記機能と関連付けられた前記イベントに遭遇することを含む、前記要求の処理を開始することと、
前記エッジサーバでの1つ以上の他の機能の実行に関してプロセス分離を使用し、前記イベントと関連付けられた前記機能を実行することと、
前記機能の実行に少なくとも部分的に基づいて前記コンテンツを生成することと、
前記クライアントデバイスに前記コンテンツを送信することと、を行うように構成される、前記システム。
2.前記イベントが前記クライアントデバイスからのコンテンツに対する前記要求の受領、または前記配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記機能を実行する際に、前記エッジサーバが、
前記コンテンツキャッシュからのコンテンツに対する前記要求または前記発信元サーバからのコンテンツに対する前記要求を修正する、ように構成される、条項1に記載のシステム。
3.前記イベントが、前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または前記配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実行する際に、前記エッジサーバが、
前記コンテンツキャッシュからのコンテンツに対する前記要求への応答、または前記発信元サーバからのコンテンツに対する前記要求への前記応答を修正する、ように構成される、条項1に記載のシステム。
4.前記コンテンツが、前記コンテンツキャッシュからまたは前記配信元サーバから前記コンテンツを取り出すことなく、前記機能の実行に少なくとも部分的に基づいて生成される、条項1に記載のシステム。
5.コンピュータ実装方法であって、
クライアントデバイスからエッジサーバで、コンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理がイベントに遭遇することを含み、前記イベントがカスタマによって指定される機能と関連付けられる、前記要求の処理を開始することと、
前記エッジサーバで、前記イベントと関連付けられた前記機能を実施することであって、前記機能を実施することが前記エッジサーバで1つ以上の他の機能に関して分離される、前記機能を実施することと、
前記機能を実施することに少なくとも部分的に基づいて前記コンテンツを生成することと、
前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、
を含む、前記コンピュータ実装方法。
6.前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記機能を実施することが、
前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記発信元サーバからのコンテンツに対する前記要求を修正すること、を含む、条項5に記載の方法。
7.前記イベントが、前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実施することが、
前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答、または前記発信元サーバからのコンテンツに対する前記要求に対する前記応答を修正すること、を含む、条項5に記載の方法。
8.前記イベントと関連付けられた前記機能を実施することが、
前記要求を処理することと関連付けられた1つ以上のメトリックスまたはログエントリを生成することと、を含む、条項5に記載の方法。
9.前記コンテンツが、前記エッジサーバでのコンテンツキャッシュからまたは配信元サーバから前記コンテンツを取り出すことなく、前記機能を実施することに少なくとも部分的に基づいて生成される、条項5に記載の方法。
10.前記機能を分離することが、前記エッジサーバでのコンテンツで前記機能を実行すること、及び前記エッジサーバでの1つ以上の他のコンテナで前記1つ以上の他の機能を実行することを含む、条項5に記載の方法。
11.前記コンテナがバーチャルマシンを備え、前記1つ以上の他のコンテナが1つ以上の他のバーチャルマシンを備える、条項10に記載の方法。
12.前記イベントと関連付けられた前記機能を実施することが、
追加サーバでプロバイダネットワークのリソースにアクセスすること
を含む、条項5に記載の方法。
13.前記エッジサーバで、追加のコンテンツに対する追加要求を受信することと、
前記追加要求の処理を開始することであって、前記追加要求の前記処理が追加イベントに遭遇することを含み、前記追加イベントが異なるカスタマによって指定される異なる機能と関連付けられる、前記追加要求の処理を開始することと、
前記エッジサーバで、前記追加イベントと関連付けられた前記異なる機能を実施することであって、前記異なる機能を実施することが、前記エッジサーバでの前記機能の実行に関して分離される、前記異なる機能を実施することと、
前記異なる機能を実施することに少なくとも部分的に基づいて前記追加コンテンツを生成することと、をさらに含む、条項5に記載の方法。
14.コンピュータ可読記憶媒体であって、
クライアントデバイスからエッジサーバで、コンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理がイベントを実行することを含み、前記イベントがユーザー定義プログラムコードと関連付けられる、前記要求の処理を開始することと、
前記エッジサーバで、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することであって、前記ユーザー定義プログラムコードが前記エッジサーバでの他のユーザー定義プログラムコードの実行に関して分離技術を使用し、実行される、前記ユーザー定義プログラムコードを実行することと、
前記ユーザー定義プログラムコードの実行に少なくとも部分的に基づいて前記コンテンツを生成することと、
前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、を実行するコンピュータ実行可能なプログラム命令を記憶する、前記コンピュータ可読記憶媒体。
15.前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記発信元サーバからのコンテンツに対する前記要求を修正すること、を含む、条項14に記載のコンピュータ可読記憶媒体。
16.前記イベントが、前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または前記配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答、または前記発信元サーバからのコンテンツに対する前記要求に対する前記応答を修正すること、を含む、条項14に記載のコンピュータ可読記憶媒体。
17.前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記要求を処理することと関連付けられた1つ以上のメトリックスまたはログエントリを生成することと、を含む、条項14に記載のコンピュータ可読記憶媒体。
18.前記コンテンツが、前記エッジサーバでのコンテンツキャッシュからまたは配信元サーバから前記コンテンツを取り出すことなく、前記ユーザー定義プログラムコードの実行に少なくとも部分的に基づいて生成される、条項14に記載のコンピュータ可読記憶媒体。
19.前記分離技術を使用することが、前記エッジサーバでのコンテンツで前記ユーザー定義プログラムコードを実行すること、及び前記エッジサーバでの1つ以上の他のコンテナで前記他のユーザー定義プログラムコードを実行することを含む、条項14に記載のコンピュータ可読記憶媒体。
20.コンピュータ実行可能な前記プログラム命令が、
前記エッジサーバで、追加のコンテンツに対する追加要求を受信することと、
前記追加要求の処理を開始することであって、前記追加要求の前記処理が追加イベントを実施することを含み、前記追加イベントが異なるユーザーによって指定される異なるユーザー定義プログラムコードと関連付けられる、前記追加要求の処理を開始することと、
前記エッジサーバで、前記追加イベントと関連付けられた前記異なるユーザー定義プログラムコードを実行することであって、前記異なるユーザー定義プログラムコードが前記エッジサーバでの前記ユーザー定義プログラムコードの実行に関して前記分離技術を使用し、実行される、前記異なるユーザー定義プログラムコードを実行することと、
前記異なるユーザー定義プログラムコードの実行に少なくとも部分的に基づいて前記追加コンテンツを生成することと、をさらに実行する、条項14に記載のコンピュータ可読記憶媒体。
さらに、上記の事項は、以下の条項を考慮してより良く理解され得る。
21.システムであって、
発信元サーバ及びエッジサーバを備えるコンテンツ配信ネットワークを実装するように構成された複数のコンピューティングデバイスを備え、前記エッジサーバが、前記発信元サーバから取り出されたコンテンツを記憶するように構成されたコンテンツキャッシュを備え、前記エッジサーバが、
読み取り専用データストア、及び機能のイベントとの関連付けを受信することであって、前記読み取り専用データストア、前記機能、及び前記関連付けが、前記コンテンツ配信ネットワークのカスタマからの入力に少なくとも部分的に基づいて決定される、前記受信することと、
クライアントデバイスから、前記コンテンツキャッシュからまたは前記発信元サーバからのコンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理が、前記機能と関連付けられた前記イベントに遭遇することを含む、前記要求の処理を開始することと、
前記イベントと関連付けられた前記機能を実行することであって、前記機能が前記読み取り専用データストアを入力として指定し、前記機能の実行が前記読み取り専用データストアからの1つ以上の要素の取り出しを含む、前記実行することと、
前記機能の実行に少なくとも部分的に基づいて前記コンテンツを生成することと、
前記クライアントデバイスに前記コンテンツを送信することと、を行うように構成される、前記システム。
22.前記イベントが前記クライアントデバイスからのコンテンツに対する前記要求の受領、または前記配信元サーバからのコンテンツに対する要求の準備を含み、前記イベント関連付けられた前記機能を実行する際に、前記エッジサーバが、
前記コンテンツキャッシュからのコンテンツに対する前記要求または前記発信元サーバからのコンテンツに対する前記要求を修正する、ように構成される、条項21に記載のシステム。
23.前記イベントが、前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または前記配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実行する際に、前記エッジサーバが、
前記コンテンツキャッシュからのコンテンツに対する前記要求への応答、または前記発信元サーバからのコンテンツに対する前記要求への前記応答を修正する、ように構成される、条項21に記載のシステム。
24.前記コンテンツが、前記コンテンツキャッシュからまたは前記配信元サーバから前記コンテンツを取り出すことなく、前記機能の前記実行に少なくとも部分的に基づいて生成される、条項21に記載のシステム。
25.コンピュータ実装方法であって、
読み取り専用データストアをエッジサーバに複製することと、
クライアントデバイスから前記エッジサーバで、コンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理がイベントに遭遇することを含み、前記イベントがカスタマによって指定される機能と関連付けられ、前記機能が読み取り専用データストアを入力として指定する、前記要求の処理を開始することと、
前記読み取り専用データストアからデータを取り出すことを含む、前記エッジサーバで前記イベントと関連付けられた前記機能を実施することと、
前記機能を実施することに少なくとも部分的に基づいて前記コンテンツを生成することと、
前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、を含む、前記コンピュータ実装方法。
26.前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記機能を実施することが、
前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記発信元サーバからのコンテンツに対する前記要求を修正すること、を含む、条項25に記載の方法。
27.前記イベントが、前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実施することが、
前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答、または前記発信元サーバからのコンテンツに対する前記要求に対する前記応答を修正すること、を含む、条項25に記載の方法。
28.前記イベントと関連付けられた前記機能を実施することが、
前記要求を処理することと関連付けられた1つ以上のメトリックスまたはログエントリを生成することと、を含む、条項25に記載の方法。
29.前記コンテンツが、コンテンツキャッシュからまたは配信元サーバから前記コンテンツを取り出すことなく、前記機能を実施することに少なくとも部分的に基づいて生成される、条項25に記載の方法。
30.前記エッジサーバでの1つ以上の他の機能の実行に関してプロセス分離を使用し、前記機能が実行される、条項25に記載の方法。
31.前記読み取り専用データストアが複数のキー‐値対を備える、条項25に記載の方法。
32.前記読み取り専用データストアが前記カスタマによって指定される、条項25に記載の方法。
33.前記イベントと関連付けられた前記機能を実施することが、
追加サーバでプロバイダネットワークのリソースにアクセスすること、を含む、条項25に記載の方法。
34.コンピュータ可読記憶媒体であって、
エッジサーバ及び複数の追加エッジサーバに読み取り専用データストアを複製することであって、前記読み取り専用データストアがコンテンツ配信ネットワークのカスタマによって指定される、前記読み取り専用データストアを複製することと、
クライアントデバイスから前記エッジサーバで、コンテンツに対する要求を受信することと、
前記要求の処理を開始することであって、前記要求の前記処理がイベントを実行することを含み、前記イベントがユーザー定義プログラムコードと関連付けられ、前記ユーザー定義プログラムコードが前記読み取り専用データストアを入力として指定する、前記要求の処理を開始することと、
前記エッジサーバで、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することであって、前記ユーザー定義プログラムコードが前記エッジサーバでの他のユーザー定義プログラムコードの実行に関して分離技術を使用し、実行される、前記ユーザー定義プログラムコードを実行することと、
前記ユーザー定義プログラムコードの実行に少なくとも部分的に基づいて前記コンテンツを生成することであって、前記ユーザー定義プログラムコードの前記実行が前記読み取り専用データストアからの前記データの取り出しを含む、前記コンテンツを生成することと、
前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、を実行するコンピュータ実行可能なプログラム命令を記憶する、前記コンピュータ可読記憶媒体。
35.前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記発信元サーバからのコンテンツに対する前記要求を修正すること、を含む、条項34に記載のコンピュータ可読記憶媒体。
36.前記イベントが、前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答、または前記発信元サーバからのコンテンツに対する前記要求に対する前記応答を修正すること、を含む、条項34に記載のコンピュータ可読記憶媒体。
37.前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
前記要求を処理することと関連付けられた1つ以上のメトリックスまたはログエントリを生成することと、を含む、条項34に記載のコンピュータ可読記憶媒体。
38.前記コンテンツが、コンテンツキャッシュからまたは配信元サーバから前記コンテンツを取り出すことなく、前記ユーザー定義プログラムコードの実行に少なくとも部分的に基づいて生成される、条項34に記載のコンピュータ可読記憶媒体。
39.前記ユーザー定義プログラムコードが、前記エッジサーバでの他のユーザー定義プログラムコードに関してプロセス分離を使用し、実行される、条項34に記載のコンピュータ可読記憶媒体。
40.前記読み取り専用データストアが複数のキー‐値対を備える、条項34に記載のコンピュータ可読記憶媒体。
結論
特許請求の範囲に記載された主題の完全な理解を提供するために、多数の具体的な詳細が本明細書に述べられている。しかしながら、特許請求の範囲に記載された主題がこれらの具体的な詳細なしに実施され得ることは、当業者により理解されるであろう。他の例では、当業者によって知られるだろう方法、装置、またはシステムは特許請求の範囲に記載された主題を不明瞭にしないために、詳細には説明されていない。本開示の利点を有する当業者に明白であるように、多様な修正及び変更が行われてよい。全てのそのような修正及び変更を含むことが意図され、したがって、上記説明は制限的な意味ではなく例示的な意味で考えられるべきである。

Claims (15)

  1. システムであって、
    配信元サーバ及びエッジサーバを備えるコンテンツ配信ネットワークを実装するように構成された複数のコンピューティングデバイスを備え、前記エッジサーバが、前記配信元サーバから取り出されたコンテンツを記憶するように構成されたコンテンツキャッシュを備え、前記エッジサーバが、
    機能のイベントとの関連付けを受信することであって、前記機能及び前記関連付けが前記コンテンツ配信ネットワークのカスタマからの入力に少なくとも部分的に基づいて決定される、前記機能のイベントとの関連付けを受信することと、
    クライアントデバイスから、前記コンテンツキャッシュからまたは前記配信元サーバからのコンテンツに対する要求を受信することと、
    前記要求の処理を開始することであって、前記要求の前記処理が、前記機能と関連付けられた前記イベントに遭遇することを含む、前記要求の処理を開始することと、
    前記エッジサーバでの1つ以上の他の機能の実行に関してプロセス分離を使用し、前記イベントと関連付けられた前記機能を実行することと、
    前記機能の実行に少なくとも部分的に基づいて前記コンテンツを生成することと、
    前記クライアントデバイスに前記コンテンツを送信することと、を行うように構成される、システム。
  2. 前記イベントが前記クライアントデバイスからのコンテンツに対する前記要求の受領、または前記配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントに関連付けられた前記機能を実行する際に、前記エッジサーバが、
    前記コンテンツキャッシュからのコンテンツに対する前記要求または前記配信元サーバからのコンテンツに対する前記要求を修正する、ように構成される、請求項1に記載のシステム。
  3. 前記イベントが、前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または前記配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実行する際に、前記エッジサーバが、
    前記コンテンツキャッシュからのコンテンツに対する前記要求への応答、または前記配信元サーバからのコンテンツに対する前記要求への前記応答を修正する、ように構成される、請求項1に記載のシステム。
  4. 前記コンテンツが、前記コンテンツキャッシュからまたは前記配信元サーバから前記コンテンツを取り出すことなく、前記機能の実行に少なくとも部分的に基づいて生成される、請求項1に記載のシステム。
  5. コンピュータ実装方法であって、
    クライアントデバイスからエッジサーバで、コンテンツに対する要求を受信することと、
    前記要求の処理を開始することであって、前記要求の前記処理がイベントに遭遇することを含み、前記イベントがカスタマによって指定される機能と関連付けられる、前記要求の処理を開始することと、
    前記エッジサーバで、前記イベントと関連付けられた前記機能を実施することであって、前記機能を実施することが前記エッジサーバで1つ以上の他の機能に関して分離される、前記機能を実施することと、
    前記機能を実施することに少なくとも部分的に基づいて前記コンテンツを生成することと、
    前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、
    を含む、コンピュータ実装方法。
  6. 前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記機能を実施することが、
    前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記配信元サーバからのコンテンツに対する前記要求を修正すること、を含む、請求項5に記載の方法。
  7. 前記イベントが、前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求に対する応答の生成、または配信元サーバからのコンテンツに対する要求に対する応答の受領を含み、前記イベントと関連付けられた前記機能を実施することが、
    前記コンテンツキャッシュからのコンテンツに対する前記要求に対する応答、または前記配信元サーバからのコンテンツに対する前記要求に対する前記応答を修正すること、を含む、請求項5に記載の方法。
  8. 前記イベントと関連付けられた前記機能を実施することが、
    前記要求を処理することと関連付けられた1つ以上のメトリックスまたはログエントリを生成することと、を含む、請求項5に記載の方法。
  9. 前記コンテンツが、前記エッジサーバでのコンテンツキャッシュからまたは配信元サーバから前記コンテンツを取り出すことなく、前記機能を実施することに少なくとも部分的に基づいて生成される、請求項5に記載の方法。
  10. 前記機能を分離することが、前記エッジサーバでのコンテンツで前記機能を実行すること、及び前記エッジサーバでの1つ以上の他のコンテナで前記1つ以上の他の機能を実行することを含む、請求項5に記載の方法。
  11. 前記コンテナがバーチャルマシンを備え、前記1つ以上の他のコンテナが1つ以上の他のバーチャルマシンを備える、請求項10に記載の方法。
  12. 前記イベントと関連付けられた前記機能を実施することが、
    追加サーバでプロバイダネットワークのリソースにアクセスすること
    を含む、請求項5に記載の方法。
  13. 前記エッジサーバで、追加コンテンツに対する追加要求を受信することと、
    前記追加要求の処理を開始することであって、前記追加要求の前記処理が追加イベントに遭遇することを含み、前記追加イベントが異なるカスタマによって指定される異なる機能と関連付けられる、前記追加要求の処理を開始することと、
    前記エッジサーバで、前記追加イベントと関連付けられた前記異なる機能を実施することであって、前記異なる機能を実施することが、前記エッジサーバでの前記機能の実行に関して分離される、前記異なる機能を実施することと、
    前記異なる機能を実施することに少なくとも部分的に基づいて前記追加コンテンツを生成することと、をさらに含む、請求項5に記載の方法。
  14. コンピュータ可読記憶媒体であって、
    クライアントデバイスからエッジサーバで、コンテンツに対する要求を受信することと、
    前記要求の処理を開始することであって、前記要求の前記処理がイベントを実行することを含み、前記イベントがユーザー定義プログラムコードと関連付けられる、前記要求の処理を開始することと、
    前記エッジサーバで、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することであって、前記ユーザー定義プログラムコードが前記エッジサーバでの他のユーザー定義プログラムコードの実行に関して分離技術を使用し、実行される、前記ユーザー定義プログラムコードを実行することと、
    前記ユーザー定義プログラムコードの実行に少なくとも部分的に基づいて前記コンテンツを生成することと、
    前記エッジサーバから前記クライアントデバイスに前記コンテンツを送信することと、を実行するコンピュータ実行可能なプログラム命令を記憶する、コンピュータ可読記憶媒体。
  15. 前記イベントが、前記クライアントデバイスからのコンテンツに対する前記要求の受領、または配信元サーバからのコンテンツに対する要求の準備を含み、前記イベントと関連付けられた前記ユーザー定義プログラムコードを実行することが、
    前記エッジサーバでのコンテンツキャッシュからのコンテンツに対する前記要求、または前記配信元サーバからのコンテンツに対する前記要求を修正すること、を含む、請求項14に記載のコンピュータ可読記憶媒体。
JP2018512277A 2015-09-11 2016-09-09 エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体 Active JP6445222B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/852,272 2015-09-11
US14/852,272 US11895212B2 (en) 2015-09-11 2015-09-11 Read-only data store replication to edge locations
US14/852,256 US10848582B2 (en) 2015-09-11 2015-09-11 Customizable event-triggered computation at edge locations
US14/852,256 2015-09-11
PCT/US2016/050969 WO2017044761A1 (en) 2015-09-11 2016-09-09 System, method and computer-readable storage medium for customizable event-triggered computation at edge locations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018221978A Division JP6723329B2 (ja) 2015-09-11 2018-11-28 エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体

Publications (2)

Publication Number Publication Date
JP2018526752A true JP2018526752A (ja) 2018-09-13
JP6445222B2 JP6445222B2 (ja) 2018-12-26

Family

ID=56959074

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018512277A Active JP6445222B2 (ja) 2015-09-11 2016-09-09 エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体
JP2018221978A Active JP6723329B2 (ja) 2015-09-11 2018-11-28 エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018221978A Active JP6723329B2 (ja) 2015-09-11 2018-11-28 エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体

Country Status (7)

Country Link
EP (2) EP3348042B1 (ja)
JP (2) JP6445222B2 (ja)
KR (4) KR102285827B1 (ja)
CN (2) CN108028853B (ja)
AU (5) AU2016319754B2 (ja)
CA (1) CA2997194A1 (ja)
WO (1) WO2017044761A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP4300160A3 (en) 2016-12-30 2024-05-29 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
KR20230152180A (ko) 2017-12-10 2023-11-02 매직 립, 인코포레이티드 광학 도파관들 상의 반사―방지 코팅들
CA3086206A1 (en) 2017-12-20 2019-06-27 Magic Leap, Inc. Insert for augmented reality viewing device
US10685493B2 (en) * 2017-12-24 2020-06-16 Facebook, Inc. Systems and methods for delivering augmented reality content
EP3503502B1 (en) * 2017-12-24 2023-05-24 Meta Platforms, Inc. Systems and methods for delivering augmented reality content
US11068281B2 (en) * 2018-03-02 2021-07-20 Fastly, Inc. Isolating applications at the edge
US10755676B2 (en) 2018-03-15 2020-08-25 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
US11885871B2 (en) 2018-05-31 2024-01-30 Magic Leap, Inc. Radar head pose localization
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
US11598651B2 (en) 2018-07-24 2023-03-07 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
US11112862B2 (en) 2018-08-02 2021-09-07 Magic Leap, Inc. Viewing system with interpupillary distance compensation based on head motion
US10795458B2 (en) 2018-08-03 2020-10-06 Magic Leap, Inc. Unfused pose-based drift correction of a fused pose of a totem in a user interaction system
JP2022523852A (ja) 2019-03-12 2022-04-26 マジック リープ, インコーポレイテッド 第1および第2の拡張現実ビューア間でのローカルコンテンツの位置合わせ
CN110046045B (zh) * 2019-04-03 2021-07-30 百度在线网络技术(北京)有限公司 语音唤醒的数据包处理方法和装置
EP3963565A4 (en) * 2019-05-01 2022-10-12 Magic Leap, Inc. CONTENT DELIVERY SYSTEM AND PROCEDURES
WO2021021670A1 (en) 2019-07-26 2021-02-04 Magic Leap, Inc. Systems and methods for augmented reality
EP4058979A4 (en) 2019-11-15 2023-01-11 Magic Leap, Inc. VIEWING SYSTEM FOR USE IN A SURGICAL ENVIRONMENT
US10965737B1 (en) * 2019-11-29 2021-03-30 Amazon Technologies, Inc. Cloud computing in communications service provider networks
US11418995B2 (en) 2019-11-29 2022-08-16 Amazon Technologies, Inc. Mobility of cloud compute instances hosted within communications service provider networks
KR102235622B1 (ko) * 2020-11-30 2021-04-01 연세대학교 산학협력단 IoT 환경에서의 협력 에지 캐싱 방법 및 그를 위한 장치
CN112783778A (zh) * 2021-01-28 2021-05-11 网宿科技股份有限公司 测试方法、装置、网络设备及存储介质
CN112988127A (zh) * 2021-01-28 2021-06-18 网宿科技股份有限公司 Cdn业务定制方法及系统
CN112988126A (zh) * 2021-01-28 2021-06-18 网宿科技股份有限公司 Cdn业务定制方法及系统
WO2022182384A1 (en) * 2021-02-24 2022-09-01 Level 3 Communications, Llc Uniformity of instructions for content requests and responses in a content delivery network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09275554A (ja) * 1996-04-05 1997-10-21 Graphics Commun Lab:Kk ストリームデータ転送方法および装置
JP2013065125A (ja) * 2011-09-16 2013-04-11 Ricoh Co Ltd 画面共有システム、画面共有端末、電子黒板システムおよびプログラム
US20130159472A1 (en) * 2011-12-14 2013-06-20 Level 3 Communications, Llc Content delivery network

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001290546A1 (en) 2000-08-22 2002-03-04 Akamai Technologies, Inc. Dynamic content assembly on edge-of-network servers in a content delivery network
US7809813B2 (en) * 2002-06-28 2010-10-05 Microsoft Corporation System and method for providing content-oriented services to content providers and content consumers
US20060080702A1 (en) * 2004-05-20 2006-04-13 Turner Broadcasting System, Inc. Systems and methods for delivering content over a network
US20090164550A1 (en) 2007-12-20 2009-06-25 Nortel Networks Limited Media monitoring
CN102216923B (zh) * 2008-11-17 2014-01-29 亚马逊技术有限公司 请求路由和利用客户位置信息来更新路由信息
US8316106B2 (en) * 2008-12-05 2012-11-20 At&T Intellectual Property Ii, Lp System and method for assigning requests in a content distribution network
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8769614B1 (en) * 2009-12-29 2014-07-01 Akamai Technologies, Inc. Security framework for HTTP streaming architecture
US8612413B2 (en) * 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
WO2013049079A2 (en) * 2011-09-26 2013-04-04 Limelight Networks, Inc. Dynamic request handling using cloud-computing capabilities
US9294582B2 (en) * 2011-12-16 2016-03-22 Microsoft Technology Licensing, Llc Application-driven CDN pre-caching
US20150134730A1 (en) * 2012-04-30 2015-05-14 Nec Europe Ltd. Method for performing dns resolution in a network, content distribution system and client terminal for deployment in a content distribution system
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
US9699519B2 (en) 2012-10-17 2017-07-04 Netflix, Inc. Partitioning streaming media files on multiple content distribution networks
US9654354B2 (en) * 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with delivery services network
US9654579B2 (en) * 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
CN104113568B (zh) * 2013-04-18 2017-09-05 华为技术有限公司 接收请求的方法及cdn服务器
US9722885B2 (en) * 2013-08-08 2017-08-01 Level 3 Communications, Llc Content delivery methods and systems
EP3057286A4 (en) * 2013-10-07 2017-05-10 Telefonica Digital España, S.L.U. Method and system for configuring web cache memory and for processing request
US20150100667A1 (en) * 2013-10-08 2015-04-09 WePow, Inc. Optimizing content delivery
CN104796469B (zh) * 2015-04-15 2018-04-03 北京中油瑞飞信息技术有限责任公司 云计算平台的配置方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09275554A (ja) * 1996-04-05 1997-10-21 Graphics Commun Lab:Kk ストリームデータ転送方法および装置
JP2013065125A (ja) * 2011-09-16 2013-04-11 Ricoh Co Ltd 画面共有システム、画面共有端末、電子黒板システムおよびプログラム
US20130159472A1 (en) * 2011-12-14 2013-06-20 Level 3 Communications, Llc Content delivery network

Also Published As

Publication number Publication date
AU2021240176A1 (en) 2021-10-28
KR102285827B1 (ko) 2021-08-04
KR102117058B1 (ko) 2020-05-29
EP3348042B1 (en) 2020-08-12
CN112839111B (zh) 2024-02-02
CN112839111A (zh) 2021-05-25
JP6723329B2 (ja) 2020-07-15
JP2019032903A (ja) 2019-02-28
KR102161161B1 (ko) 2020-09-29
AU2020220160B2 (en) 2021-07-01
AU2023200859A1 (en) 2023-03-16
AU2016319754A1 (en) 2018-03-29
KR102367792B1 (ko) 2022-02-28
KR20200062373A (ko) 2020-06-03
EP3742707A1 (en) 2020-11-25
AU2019203266B2 (en) 2020-05-21
CA2997194A1 (en) 2017-03-16
KR20180048761A (ko) 2018-05-10
CN108028853B (zh) 2021-03-30
KR20210099174A (ko) 2021-08-11
KR20200113033A (ko) 2020-10-05
AU2023200859B2 (en) 2024-03-07
JP6445222B2 (ja) 2018-12-26
CN108028853A (zh) 2018-05-11
AU2016319754B2 (en) 2019-02-21
EP3348042A1 (en) 2018-07-18
AU2020220160A1 (en) 2020-09-10
AU2019203266A1 (en) 2019-05-30
WO2017044761A1 (en) 2017-03-16
AU2021240176B2 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
JP6445222B2 (ja) エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体
US20210075881A1 (en) Customizable event-triggered computation at edge locations
US9672053B2 (en) Service request processing
JP6521324B2 (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
US8539068B2 (en) Methods and systems for providing customized domain messages
US20240155045A1 (en) Read-only data store replication to edge locations
US9503351B1 (en) Deployment feedback for system updates to resources in private networks
US10176059B2 (en) Managing server processes with proxy files
US10165088B2 (en) Providing unit of work continuity in the event initiating client fails over
US11663058B1 (en) Preemptive filtering of events of an event bus with a deterministic filter

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181128

R150 Certificate of patent or registration of utility model

Ref document number: 6445222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250