JP6352535B2 - プログラム・コードを実行するための要求に対するプログラム的イベント検出及びメッセージ生成 - Google Patents

プログラム・コードを実行するための要求に対するプログラム的イベント検出及びメッセージ生成 Download PDF

Info

Publication number
JP6352535B2
JP6352535B2 JP2017516160A JP2017516160A JP6352535B2 JP 6352535 B2 JP6352535 B2 JP 6352535B2 JP 2017516160 A JP2017516160 A JP 2017516160A JP 2017516160 A JP2017516160 A JP 2017516160A JP 6352535 B2 JP6352535 B2 JP 6352535B2
Authority
JP
Japan
Prior art keywords
event
computing system
user
program code
virtual computing
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.)
Active
Application number
JP2017516160A
Other languages
English (en)
Other versions
JP2017534967A (ja
Inventor
ティモシー アレン ワグナー
ティモシー アレン ワグナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2017534967A publication Critical patent/JP2017534967A/ja
Application granted granted Critical
Publication of JP6352535B2 publication Critical patent/JP6352535B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • 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
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Description

関連出願の相互参照
本出願の出願人は、2014年9月30日に、以下の米国特許出願を同時に提出している。
代理人整理番号 名称
SEAZN,982A MESSAGE−BASED
COMPUTATION REQUEST
SCHEDULING
SEAZN.983A LOW LATENCY
COMPUTATIONAL
CAPACITY PROVISIONING
SEAZN.984A AUTOMATIC MANAGEMENT
OF LOW LATENCY
COMPUTATIONAL
CAPACITY
SEAZN.989A THREADING AS A SERVICE
SEAZN,991A PROCESSING EVENT
MESSAGES FOR USER
REQUESTS TO EXECUTE
PROGRAM CODE
SEAZN.997A DYNAMIC CODE
DEPLOYMENT AND
VERSIONING
上記に参照された出願の開示は、参照によりその全体が本明細書に組み込まれる。
一般的に述べれば、コンピューティング・デバイスは、データを交換するために、通信ネットワーク、または一連の通信ネットワークを利用する。企業や組織は、サード・パーティに対して運用をサポートしたりサービスを提供するために、数多くのコンピューティング・デバイスを相互接続するコンピュータ・ネットワークを運営している。コンピューティング・システムは、単一の地理的位置に配置することができ、または複数の分離した地理的位置に配置することができる(例えば、私設または公衆通信ネットワークを介して相互接続する)。具体的には、本明細書では一般に「データセンター」と呼ばれるデータセンターまたはデータ処理センターは、データセンターのユーザにコンピューティング・リソースを提供するための多数の相互接続されたコンピューティング・システムを含むことができる。データセンターは、組織のために運営される私設のデータセンター、または一般の人々のため、もしくはその利益のために運営される公的データセンターであってもよい。
データセンター・リソースの利用の増加を促進するために、仮想化技術は、単一の物理コンピューティング・デバイスが、データセンターのユーザに対して独立したコンピューティング・デバイスとして見え、そして動作する、仮想マシンの1つ以上のインスタンスをホストすることを可能にし得る。仮想化により、単一の物理コンピューティング・デバイスは、仮想マシンを動的に作成、維持、削除、または管理することができる。同様にユーザは、単一のコンピューティング・デバイスやネットワーク化されたコンピューティング・デバイスの構成などを含めて、データセンターからのコンピュータ・リソースを要求し、数を変えながら仮想マシン・リソースの提供を受けることができる。
いくつかのシナリオでは、仮想マシン・インスタンスは、特定の機能性を提供するために多くの仮想マシン・インスタンス・タイプに従って構成することができる。例えば、様々なコンピューティング・デバイスは、コンピューティング・デバイスが異なる所望の機能性を提供することを可能にするため、またはより効率的に同様の機能性を提供するために、オペレーティング・システムまたはオペレーティング・システム構成、仮想化ハードウェア・リソース及びソフトウェア・アプリケーションの異なる組み合わせに関連付けられ得る。これらの仮想マシン・インスタンス・タイプ構成は、しばしば、仮想マシンが一度起動されると実行されるソフトウェア(例えば、構成及びデータ・ファイルを共に備えるOS及びアプリケーションなど)を含む静的データを含むデバイス・イメージ内に含まれる。デバイス・イメージは、通常、インスタンスを作成または初期化するために使用されるディスクに記憶される。従って、コンピューティング・デバイスは、所望のソフトウェア構成を実装するためにデバイス・イメージを処理することができる。
本開示の前述の態様及び付随する多くの利点は、添付の図面と併せて以下の詳細な説明を参照することにより、より良く理解されるようになるに従って、より容易に理解されるであろう。
仮想計算システムにおいてプログラム・コードを実行するためのユーザ要求に対するイベント・メッセージを処理するための例示的な環境を示すブロック図である。 プログラム・コードを実行するためのユーザ要求に対するイベント・メッセージを処理する、仮想計算システムのフロントエンドを提供するコンピューティング・デバイスの一般的なアーキテクチャを示す図である。 例示的な一態様による、仮想計算システムのフロントエンドと通信する補助システムによって実施される、イベント通知及びメッセージ生成ルーチンを説明する流れ図である。 別の例示的な態様による、仮想計算システムのフロントエンドによって実施されるイベント・メッセージ処理ルーチンを説明する流れ図である。
企業や組織は、コンピューティング操作(例えば、スレッド、プログラム、ソフトウェア、ルーチン、サブルーチン、プロセスなどを含むコードの実行)を行うために、もはや独自のデータセンターを取得し管理する必要はない。クラウド・コンピューティングの出現により、従来はハードウェア・コンピューティング・デバイスが提供していたストレージ・スペースとコンピューティング・パワーを、今やインターネット上で数分で取得及び設定できる。従って、開発者は、物理マシンの取得の心配をすることなく、所望の量のコンピューティング・リソースを迅速に購入できる。そのようなコンピューティング・リソースは、通常、仮想コンピューティング・リソースまたは仮想マシン・インスタンスの形態で購入される。これらの仮想マシンのインスタンスは、それぞれのオペレーティング・システムや他のソフトウェア・コンポーネントを使用して物理コンピューティング・デバイス上でホストされるものであり、物理コンピュータと同じ方法で使用できる。
しかし、仮想コンピューティング・リソースを購入しても、開発者は相変わらず、購入する仮想マシン・インスタンスの数とタイプ、及びそれらを保持する期間を決定する必要がある。例えば、仮想マシン・インスタンスを使用するコストは、タイプ及び賃貸時間数によって異なる場合がある。それに加えて、仮想マシンをレンタルできる最小時間は、通常、数時間のオーダーである。さらに、開発者は、仮想マシンにインストールするハードウェア及びソフトウェア・リソース(例えば、オペレーティング・システムのタイプ及び言語ランタイムなど)を指定しなければならない。開発者が持っているその他の懸念として含まれるのが、過度の利用率(例えば、コンピューティング・リソースの獲得が少なすぎて性能問題で苦労)、低い利用率(例えば、コードの実行に必要以上に多くのコンピューティング・リソースを獲得し、そのために過払い)、トラフィックの変化の予測(例えば、スケール・アップまたはダウン時期を知るため)及び、ユーザが望むのは秒あるいはミリ秒のオーダーのコンピューティング能力でさえあり得るのに、3〜10分またはそれ以上かかる可能性のある、インスタンスと言語ランタイム立ち上げの遅延である。従って、サービス・プロバイダによって提供される仮想マシン・インスタンスをユーザが利用できるようにする改良された方法が望まれる。
本開示の態様によれば、ユーザ要求が受信されると直ちに使用準備が整えられている予め初期化された仮想マシン・インスタンスのプールを維持することによって、ユーザ・コードを実行することに関連する(例えば、インスタンス及び言語ランタイムの起動時間といった)遅延(レイテンシと呼ばれることもある)を大幅に短縮することができる。
一般的に説明すると、本開示の態様は、仮想マシン・インスタンス及びそこに作成されるコンテナの管理に関する。具体的には、仮想計算システムにおける仮想マシン・インスタンスの管理を容易にするシステム及び方法が開示される。仮想計算システムは、1つ以上のソフトウェア・コンポーネント(例えば、オペレーティング・システム、言語ランタイム、ライブラリなど)がロードされた仮想マシン・インスタンスのプールを維持する。プール内の仮想マシン・インスタンスは、プログラム・コードを実行するためのユーザの要求に対応するように指定することができる。プログラム・コードは、仮想マシン・インスタンス上に作成された分離したコンテナで実行できる。プール内の仮想マシン・インスタンスは、要求が受信される時までに既に起動され、特定のオペレーティング・システム及び言語ランタイムがロードされているため、要求を処理できる計算能力を(例えば、仮想マシン・インスタンス上で作成された1つ以上のコンテナにおいてユーザ・コードを実行することによって)見つけることに関連する遅延が、大幅に削減される。
特定の実施形態では、メッセージ・キュー、メッセージ・バス、または任意の他のメッセージ中間サービスが提供されて、第1のプログラム的環境(例えば、補助サービス)で生成されたイベント・メッセージを、本明細書に記載の仮想環境によって提供されるプログラム的環境システムへ伝送または通信するのを容易にする。第1のプログラム的環境から仮想計算システムへのトリガされたイベントの伝播及び伝送をさらに容易にするために、トリガされたイベント、トリガされたイベントに応答してユーザ・コードを実行する要求に関連するユーザ、及び、仮想計算システムが、イベント・メッセージを、仮想計算システムによるさらなる処理のためのユーザ要求に変換することを可能にするプログラム的情報を記述する情報、を含むようにイベント・メッセージを生成することができる。イベント・メッセージ及び/またはそこに含まれるプログラム的情報は、補助サービスにおけるイベント・メッセージの作成/生成、及び仮想計算システムにおけるイベント・メッセージの変換/処理の両方を容易にするための、スキーマ、コード・モデル、またはアプリケーション・プログラミング・インタフェース(「API」)に従って構築することができる。
別の態様では、仮想計算システムは、1つ以上の物理コンピューティング・デバイス上に仮想マシン・インスタンスのプールを維持することができ、そこでは各仮想マシン・インスタンスには1つ以上のソフトウェア・コンポーネントがロードされる。仮想計算システムが、ユーザのプログラム・コードを実行するための1つ以上のコンピューティング制約を指定するユーザのプログラム・コードを実行する要求を受信すると、仮想計算システムは、その要求によって指定された1つ以上のコンピューティング制約に基づいてユーザのプログラム・コードを実行させるための仮想マシン・インスタンスを選択し、ユーザのプログラム・コードが、選択された仮想マシン・インスタンス上で実行されるようにすることができる。
本明細書に記載されるシステム及び方法によって提供される1つの利点は、補助サービスでトリガされるイベントと、それに対応する、様々な仮想マシン・インスタンス上のユーザ・コードの実行との間の、暗黙的で自動的なレート・マッチング及びスケーリングである。そのため、仮想計算システムは、イベントがまれに(例えば、1日に1回)トリガされるか、またはより大きい規模(例えば、毎秒数百回または数千回)であっても、オン・デマンドでイベントに応答することができる。
次に、本開示の特定の実施形態及び例示的な用途を、図面を参照して説明する。これらの実施形態及び応用例は、本開示を例示するものであり、本開示を限定するものではない。
図1を参照して、仮想環境100の一実施形態を説明するブロック図を説明する。図1に示す実施例は、ユーザ・コンピューティング・デバイス102のユーザ(例えば、開発者など)が、仮想計算システム110によって提供される仮想コンピューティング・リソースを使用して様々なプログラム・コードを実行することができる、仮想環境100を含む。
説明として、デスクトップ・コンピュータ、ラップトップ、及び携帯電話を含む、仮想計算システム110と通信する様々な例示的ユーザ・コンピューティング・デバイス102が示される。一般に、ユーザ・コンピューティング・デバイス102は、デスクトップ、ラップトップ、携帯電話(またはスマートフォン)、タブレット、キオスク、無線デバイス、及び他の電子デバイスなどの任意のコンピューティング・デバイスとすることができる。さらに、ユーザ・コンピューティング・デバイス102は、例えば異なるウェブ・サービスが互いにプログラム的に通信して本明細書に記載された1つ以上の技術を実行する、同じまたは異なるデータセンター上で動作するウェブ・サービスを含むことができる。さらに、ユーザ・コンピューティング・デバイス102は、インターネット・アプライアンス及び接続デバイスなどのモノのインターネット(IoT)デバイスを含むことができる。仮想計算システム110は、ユーザ・コンピューティング・デバイス102に、ユーザ・コードを生成及びアップロードし、ユーザを呼び出し(例えば、仮想計算システム110上でユーザ・コードを実行する要求を提出し)、イベント・ベースのジョブまたは定期的ジョブをスケジューリングし、ユーザ・コードを追跡し、及び/またはそれらの要求及び/またはユーザ・コードに関する他のロギングまたは監視情報を見るための、1つ以上のユーザ・インタフェース、コマンド・ライン・インタフェース(CLI)、アプリケーション・プログラミング・インタフェース(API)及び/または他のプログラム的インタフェースを提供することができる。1つ以上の実施形態は、本明細書ではユーザ・インタフェースを使用するものとして説明することができるが、そのような実施形態は、追加的または代替的に、任意のCLI、API、または他のプログラム的インタフェースを使用できることが理解されるべきである。
ユーザ・コンピューティング・デバイス102は、ネットワーク104を介して仮想計算システム110にアクセスする。ネットワーク104は、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせであってもよい。さらに、ネットワーク104は、パーソナル・エリア・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、(例えば、ラジオまたはテレビ用の)無線放送ネットワーク、ケーブル・ネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはそれらの組み合わせであってもよい。例えば、ネットワーク104は、おそらくはインターネットなどの様々な別個の当事者によって運営される、公衆アクセス可能なリンクされたネットワークのネットワークであってもよい。いくつかの実施形態では、ネットワーク104は、企業イントラネットまたは大学イントラネットなどのプライベートまたはセミ・プライベート・ネットワークであってもよい。ネットワーク104は、Global System for Mobile Communications(GSM)ネットワーク、符号分割多元接続(CDMA)ネットワーク、Long Term Evolution(LTE)ネットワーク、または任意の他のタイプの無線ネットワークなどの1つ以上の無線ネットワークを含むことができる。ネットワーク104は、インターネットまたは他の前述のタイプのネットワークのいずれかを介して通信するためのプロトコル及びコンポーネントを使用することができる。例えば、ネットワーク104によって使用されるプロトコルは、Hypertext Transfer Protocol(HTTP)、HTTP Secure(HTTPS)、Message Queue Telemetry Transport(MQTT)、Constrained Application Protocol(CoAP)及び同様のものを含むことができる。インターネットまたは他の前述のタイプの通信ネットワークのいずれかを介して通信するためのプロトコル及びコンポーネントは、当業者には周知であり、従って、本明細書では詳細には説明しない。
仮想計算システム110は、1つ以上のコンピュータ・ネットワークを使用して相互接続された複数のコンピュータ・システムを含む分散コンピューティング環境で動作するものとして図1に示す。仮想計算システム110はまた、図1に説明されているよりも少ないまたはより多い数のデバイスを有するコンピューティング環境内で動作することもできる。従って、図1の仮想計算システム110の描写は、例示的であり、本開示を限定するものではないと考えるべきである。例えば、仮想計算システム110またはその様々なコンポーネントは、本明細書で説明するプロセスの少なくとも一部を実施するために、様々なウェブ・サービス・コンポーネント、ホスト型または「クラウド」コンピューティング環境、及び/またはピア・ツー・ピア・ネットワーク構成を実装することができる。
さらに、仮想計算システム110は、ハードウェア及び/またはソフトウェアで実施されてもよく、例えば、本明細書で説明される様々な機能を実行するためのコンピュータ実行可能命令を実行するように構成された物理コンピュータ・ハードウェア上に実装された1つ以上の物理または仮想サーバを含んでも良い。1つ以上のサーバは、例えば、1つ以上のデータセンター内に、地理的に分散されていても地理的に同じ場所に配置されていてもよい。
図1に説明する環境では、仮想環境100は、フロントエンド120、ウォーミング・プール・マネージャ130、及びワーカ・マネージャ140を含む仮想計算システム110を含む。図示の例では、仮想マシン・インスタンス(「インスタンス」)152、154がウォーミング・プール・マネージャ130によって管理されるウォーミング・プール130A内に示され、またインスタンス156、158は、ワーカ・マネージャ140によって管理されるアクティブ・プール140A内に示される。仮想計算システム110内の様々なコンポーネントの説明は本質的に論理的であり、1つ以上のコンポーネントが、単一のコンピューティング・デバイスまたは複数のコンピューティング・デバイスによって実施され得る。例えば、インスタンス152、154、156、158は、異なる様々な地理的領域内の1つ以上の物理コンピューティング・デバイス上に実装することができる。同様に、フロントエンド120、ウォーミング・プール・マネージャ130、及びワーカ・マネージャ140の各々は、複数の物理コンピューティング・デバイスにまたがって実装することができる。あるいは、フロントエンド120、ウォーミング・プール・マネージャ130、及びワーカ・マネージャ140のうちの1つ以上は、単一の物理コンピューティング・デバイス上に実装することができる。いくつかの実施形態では、仮想計算システム110は、複数のフロントエンド、複数のウォーミング・プール・マネージャ、及び/または複数のワーカ・マネージャを含むことができる。図1の例では、4つの仮想マシン・インスタンスが示されているが、本明細書に記載される実施形態はそのように限定されるものではなく、当業者は、仮想計算システム110が、任意の数の物理コンピューティング・デバイスを使用して実装された任意の数の仮想マシン・インスタンスを含むことができることを理解するであろう。同様に、単一のウォーミング・プール及び単一のアクティブ・プールが図1の例に示されているが、本明細書に記載された実施形態はそのように限定されるものではなく、当業者は、仮想計算システム110が任意の数のウォーミング・プール及びアクティブ・プールを備えることができることを理解するであろう。
図1の実施例では、仮想計算システム110はネットワーク104に接続されているように説明される。いくつかの実施形態では、仮想計算システム110内の任意のコンポーネントは、ネットワーク104を介して、仮想環境100の他のコンポーネント(例えば、監視/ロギング/課金サービス107、ストレージ・サービス108、インスタンス・プロビジョニング・サービス109、メッセージ・キュー・サービス105、及び/または仮想計算システム110と通信することができる他のサービスを含み得る、ユーザ・コンピューティング・デバイス102及び補助サービス106)と通信することができる。他の実施形態では、仮想計算システム110のすべてのコンポーネントが仮想環境100の他のコンポーネントと通信することができるわけではない。実施例では、フロントエンド120のみがネットワーク104に接続され、仮想計算システム110の他のコンポーネントは、フロントエンド120を介して仮想環境100Aの他のコンポーネントと通信することができる。いくつかの実施形態では、任意の補助サービス106は、本明細書でより詳細に説明するように、補助サービスのユーザによって指定されたイベントを注意深く見守り、仮想計算システム110による処理のためのイベント・メッセージの生成をトリガするために、イベント・トリガリング・サービス106Aとして動作するように構成することができる。従って、例えば、ストレージ・サービス108は、ストレージ・サービス108上で発生するイベントに応答して仮想計算システム110上でユーザ・コードを実行する能力を提供するために、イベント・トリガリング・サービス106Aとして動作するように構成することができる。
一実施形態では、1つ以上の補助サービス106は、仮想計算システム110上のユーザ・コードの実行をトリガするためにイベントに対してポーリングまたはクエリされるように登録または構成することができる。そのような登録または構成は、ユーザ・コンピューティング・デバイス102に提供される1つ以上のユーザ・インタフェースを介して提供したり有効にすることができる。例えば、ユーザ・インタフェースは、イベント・トリガリング・サービス106A上のイベントがイベント・メッセージの生成をトリガするように、またはイベント・トリガリング・サービス106Aが、中間ポーリング・システムなどによるイベントに対して定期的にポーリングされるか、またはクエリされるように、ユーザが補助サービス106をイベント・トリガリング・サービス106Aとして選択または指定するオプションを提供することができる。
一実施形態では、イベント・トリガリング・サービス106Aは、イベントまたはイベント・タイプを、仮想計算システム110上で実行される特定のプログラム・コードに関連付けるように構成されてもよい(すなわち、イベント・トリガリング・サービス106Aは、そのイベントを特定のプログラム・コードに関連付けるデータを記憶するか、またはそのデータにアクセスしてもよい)。別の実施形態では、イベント・トリガリング・サービス106Aは、必ずしもイベントまたはイベント・タイプを仮想計算システム110上で実行される特定のプログラム・コードと関連付ける必要はないが、むしろイベント・トリガリング・サービス106Aは、仮想計算システム110が、仮想計算システム110上で実行されるプログラム・コードに関連付けられていると解釈するように構成されているイベント・メッセージを生成してもよい(すなわち、仮想計算システム110は、イベントを特定のプログラム・コードに関連付けるデータを記憶するか、またはそのデータにアクセスしてもよい)。別の実施形態では、中間システムまたはサービスは、プログラム・コードを実行するためのイベント・メッセージの解釈及びルーティングを処理するように構成され、イベント・トリガリング・サービス106A及び仮想計算システム110のいずれも、イベントとプログラム・コードの関連付けデータを記憶するかまたはそのデータにアクセスすることが出来ないようにしてもよい。例えば、イベント・トリガリング・サービス106Aは、実行されるべき任意の特定のプログラム・コードに対して不可知論的なイベント・メッセージを生成することができ、イベント・メッセージは、イベント・メッセージ及び関連するメタデータを評価して、どのプログラム・コードを応答して実行するかを決定し、プログラム・コードを実行する対応する要求を開始する仮想計算システム110(または中間システム)に経路指定することができる。
上述したように、任意の補助サービス106は、イベント・トリガリング・サービス106Aとして動作するように構成することができる。これらには、限定するものではないが、リモート・ストレージ・システム、データベース・システム、メッセージ・キュー・システム(例えば、仮想計算システム110によって提供されるメッセージ・キュー・サービス、仮想計算システム110とは分離したユーザまたはクライアントによって所有及び/または運用されるメッセージ・キュー・システムなど)、ウェブ・サービス、監査サービス、(例えば、仮想計算システムの健全性状態を監視するための)健全性監視サービス、ロギング・サービス、課金サービス、(例えば、仮想コンピューティング環境のライフサイクル及び/または所有権などを管理するための)リソース管理システム、などが含まれる。
ユーザは、仮想計算システム110を使用して、そこにあるユーザ・コードを実行することができる。例えば、ユーザは、ユーザが開発したウェブまたはモバイル・アプリケーションに関連するコードを実行することを望む場合がある。そのコードを実行する1つの方法は、インフラストラクチャをサービスとして提供し、ユーザのニーズに合わせて仮想マシン・インスタンスを構成し、構成された仮想マシン・インスタンスを使用してコードを実行するサービス・プロバイダから、仮想マシン・インスタンスを取得することである。あるいは、ユーザは、仮想計算システム110にコード実行要求を送信することができる。仮想計算システム110は、計算能力(例えば、以下にさらに詳細に記述するコンテナ、インスタンスなど)の取得及び構成を、コード実行要求に基づいて処理し、計算能力を使用してコードを実行することができる。仮想コンピューティング・システム110は、ボリュームに基づいて自動的にスケール・アップ及びスケール・ダウンすることができるので、ユーザは過度の使用(例えば、コンピューティング・リソースの獲得が少なすぎて性能問題となること)または使用不足(例えば、コードを実行するために必要以上に多くのコンピューティング・リソースを獲得し、従って過払いとなること)の心配をしなければならない、という負担から解放される。
フロントエンド120は、仮想計算システム110上でユーザ・コードを実行するために(時にはイベント・メッセージの形式である)すべての要求を受信して処理する。一実施形態では、フロントエンド120は、仮想計算システム110によって提供される他のすべてのサービスへのフロント・ドアの役割を果たす。フロントエンド120は要求を処理し、要求が適切に許可されていることを確認する。例えば、フロントエンド120は、要求に関連付けられたユーザが、要求で指定されたユーザ・コードにアクセスすることを許可されているかどうかを判定することができる。
本明細書で使用されるユーザ・コードは、特定のプログラム言語で書かれた任意のプログラム・コード(例えば、プログラム、ルーチン、サブルーチン、スレッドなど)を指していてもよい。本開示では、用語「コード」、「ユーザ・コード」及び「プログラム・コード」は、互換的なものとして使用される場合がある。そのようなユーザ・コードは、例えば、ユーザによって開発された特定のウェブ・アプリケーションまたはモバイル・アプリケーションに関連して、特定のタスクを達成するために実行されてもよい。例えば、ユーザ・コードはJavaScript(登録商標)(node.js)、Java(登録商標)、Python、及び/またはRubyで記述することができる。要求は、ユーザ・コード(またはその位置)と、ユーザ・コードを実行するために使用される1つ以上の引数を含むことができる。例えば、ユーザは、ユーザ・コードを、そのユーザ・コードを実行する要求と共に提供することができる。別の例では、要求は、その名前またはその一意的なIDによって、以前にアップロードされたプログラム・コードを(例えば、コードをアップロードするためのAPIを使用して)識別することができる。さらに別の例では、コードは要求に含まれるとともに、要求が仮想計算システム110によって受信される前に、別の場所(例えば、ストレージ・サービス108、または仮想計算システム110の内部のストレージ・システム)にアップロードされてもよい。仮想計算システム110は、要求が処理される時点でコードが利用可能である場所に基づいて、そのコード実行戦略を変更することができる。
フロントエンド120は、ユーザからのハイパーテキスト転送プロトコル・セキュア(HTTPS)要求に応答して、そのようなユーザ・コードを実行する要求を受信することができる。また、HTTPS要求に含まれる任意の情報(例えば、ヘッダ及びパラメータ)は、ユーザ・コードを実行するときに処理され、利用されてもよい。上述したように、コード実行要求を含むメッセージをフロントエンド120に転送するために、例えばHTTP、MQTT、及びCoAPを含む他のプロトコルを使用することができる。フロントエンド120は、ユーザが自動要求生成をトリガするために登録したイベントのようなイベントが検出されたとき、そのようなユーザ・コードを実行する要求を受信することもできる。例えば、ユーザは、ユーザ・コードを補助サービス106に登録して、特定のイベントが発生する(例えば、新しいファイルがアップロードされる)ときにいつでも、ユーザ・コードを実行するための要求がフロントエンド120に送られる、ということを指定することによって、補助サービス106をイベント・トリガリング・サービス106Aとして動作するように補助サービス106を構成することができる。あるいは、ユーザは、定期的ジョブ(例えば、24時間毎にユーザ・コードを実行する)を登録していてもよい。そのような例では、定期的ジョブのためのスケジュールされた時間に到達すると、ユーザ・コードの実行要求がフロントエンド120に送信され得る。定期的またはスケジュールされたジョブは、この開示の技術を使用して、例えば、タイマ・サービスによって生成されたイベントとしてジョブをモデル化するために、実施することができる。例えば、タイマ・サービスは、ユーザ・コードを実行する時間であることを示すイベント・メッセージを生成することができ、仮想計算システム110は、タイマ・サービスを利用して仮想計算システム110にユーザ・コードを実行することを思い出させることによって、特定の時間にコードを実行する処理を実施することができる。さらに別の例では、フロントエンド120は着信コード実行要求のキューを含むか、またはそれにアクセスすることができ、ユーザのバッチ・ジョブが仮想計算システムの作業キューから除去されると、フロントエンド120はユーザ要求を処理することができる。さらに別の例では、要求は、仮想計算システム110内の別のコンポーネントまたは図1に図示されていない他のサーバまたはサービスから発生してもよい。
さらに別の例では、要求は、仮想計算システム110内の別のコンポーネントまたは図1に説明されていない他のサーバまたはサービスから発生してもよい。いくつかの実施形態では、ユーザ・コードを実行/起動する要求は、ユーザ・コンピューティング・デバイス102または補助サービス106に関連付けられたイベントに応答して生成されてもよい。例えば、エンドユーザが、ユーザ・コンピューティング・デバイスから、イベント・トリガリング・サービス106Aとして動作するように構成された補助サービス(ストレージ・サービス108など)に新しいイメージをアップロードすることに応答して、イベント・トリガリング・サービス106Aは、イメージのサムネイルを生成するためのコードを実行/起動する要求をトリガすることができる。コードは、アクティブ・プール120でホストされるか、またはストレージ・サービス108から仮想計算システム110にダウンロードされる。
上述した例のいずれにおいても、そして本開示全体を通じて、ユーザ・コードを実行する要求を表すイベント・メッセージは、メッセージ・キュー・サービス105によって最初に受信され、メッセージ・キューに提供されるか、または置かれる。メッセージ・キュー・サービス105は、補助サービス106のコンポーネントとして、または異なるコンポーネントとして実装することができる。特定の実施形態では、フロントエンド120は、定期的にメッセージ・キュー・サービス105をポーリングして、処理のためにイベント・メッセージを識別し、検索することができる。メッセージ・イベントは、ユーザ・コードを実行する要求の自動生成をトリガするためにユーザが登録したイベントが検出されたときに応答した形でなど、例えばメッセージ・キュー・サービス105によってメッセージ・キューに入れられる。場合によっては、そのようなイベントを検出し、イベント・メッセージの生成をトリガし、イベント・メッセージをメッセージ・キュー・サービス105に提供することが望ましく、またはより実用的であり得る。例えば、実施形態に応じて、メッセージ・キュー・サービス105は、特定のメッセージ・イベントがより高い優先度を受けるように、メッセージ・イベントの順序付けを可能にするように構成されてもよい。別の例では、メッセージ・キュー・サービス105は、データベース操作、バッチ処理に適した特定のタイプのデータなどの特定のタイプのプログラム的イベントの伝送を容易にするように、具体的にまたは特別に構成され得る。一実施形態では、メッセージ・キュー・サービス105は、メッセージのストリーミング及び/または順序付けられた伝送(例えば、断片化データのセットとして)を提供するように構成され得る。次に、フロントエンド120は、メッセージ・キュー・サービス105をポーリングし、仮想計算システム110によるさらなる処理のためにイベント・メッセージを検索することができる。
別の実施形態では、メッセージ・キュー・サービス105の代わりに、またはそれと組み合わせて、フロントエンド120は、イベント・トリガリング・サービス106Aに直接クエリして、イベント・トリガリング・サービス106Aによって提供されるAPIの呼び出しなどのさらなる処理のためにイベント・メッセージを要求することができる。別の実施形態では、イベント・トリガリング・サービス106Aは、1つ以上のAPI及び関数コールを介してフロントエンド120と直接的にインタフェースすることができる。例えば、イベントが検出され、イベント・メッセージが生成されると、イベント・トリガリング・サービス106Aは、イベント・メッセージをフロントエンド120に直接提供するために、フロントエンド120によって提供されるAPIを、必ずしもイベント・メッセージをメッセージ・キュー・サービス105に提供せずに呼び出すことができる。
ユーザ要求は、ユーザ・コードと共に使用される1つ以上のサード・パーティ・ライブラリ(ネイティブ・ライブラリを含む)を指定することができる。一実施形態では、ユーザ要求は、ユーザ・コード及び任意のライブラリ(及び/またはその記憶場所の識別)を含むパッケージ・ファイル(例えば、圧縮ファイル、ZIPファイル、RARファイルなど)を含む。いくつかの実施形態では、ユーザ要求は、実行されるプログラム・コード、プログラム・コードが書かれている言語、要求に関連付けられたユーザ、及び/またはプログラム・コードを実行するために予約されるコンピュータ・リソース(例えば、メモリなど)を示すメタデータを含む。例えば、プログラム・コードは、要求とともに提供されてもよく、ユーザによって前もってアップロードされてもよく、仮想計算システム110によって提供されてもよく(例えば、標準ルーチン)、及び/またはサード・パーティによって提供されてもよい。いくつかの実施形態では、そのようなリソース・レベルの制約(例えば、特定のユーザ・コードを実行するためにどれだけのメモリが割り当てられるか)は、特定のユーザ・コードに対して指定され、各ユーザ・コードの実行中には変化してはいけない。このような場合、仮想計算システム110は、それぞれの個々の要求が受信される前にそのようなリソース・レベルの制約にアクセスすることができ、個々の要求はそのようなリソース・レベルの制約を指定することはできない。いくつかの実施形態では、ユーザ要求は、要求がユーザ・コードを実行しなければならないどのような種類の許可であるかを示す許可データなどの、他の制約を指定してもよい。そのような許可データは、(例えば、私設ネットワーク上の)私的資源にアクセスするために仮想計算システム110によって使用されてもよい。
いくつかの実施形態では、ユーザ要求は、ユーザ要求を処理するために採用すべき動作を指定することができる。そのような実施形態では、ユーザ要求は、ユーザ要求に関連するユーザ・コードが実行される1つ以上の実行モードを可能にするためのインジケータを含むことができる。例えば、要求は、ユーザ・コードの実行に関連して生成され得るデバッグ及び/またはロギング出力がユーザに(例えば、コンソール・ユーザ・インタフェースを介して)戻して提供される、デバッグモードでユーザ・コードを実行すべきかどうかを示す、フラグまたはヘッダを含むことができる。このような例では、仮想計算システム110は、要求を検査してフラグまたはヘッダを探すことができ、もしそれが存在するなら、仮想計算システム110は、ユーザ・コードが実行されるコンテナの動作(例えば、ファシリティのロギングをすること)を修正し、出力データがユーザに返されるようにすることができる。いくつかの実施形態では、動作/モード・インジケータは、仮想計算システム110によってユーザに提供されるユーザ・インタフェースによって要求に追加される。ソース・コード・プロファイリング、リモート・デバッギングなどの他の機能も、要求に示された指示に基づいて有効または無効にされる。
いくつかの実施形態では、仮想計算システム110は、複数のフロントエンド120を含むことができる。そのような実施形態では、例えば、ラウンド・ロビン方式で、複数のフロントエンド120に着信要求及び/またはイベント・メッセージを配信するために、ロード・バランサが提供されてもよい。
ウォーミング・プール・マネージャ130は、仮想計算システム110が仮想計算システム110上でユーザ・コードを実行する要求を受信したときに、その仮想マシン・インスタンスがワーカ・マネージャ140によって使用される準備ができていることを保証する。図1に説明する例では、ウォーミング・プール・マネージャ130は、着信ユーザ・コード実行要求を処理するために使用され得る事前に初期化され、事前構成された仮想マシン・インスタンスのグループ(プールと呼ばれることもある)である、ウォーミング・プール130Aを管理する。いくつかの実施形態では、ウォーミング・プール・マネージャ130は、仮想計算機システムを仮想計算システム110内の1つ以上の物理コンピューティング・マシン上で起動させ、仮想マシン・インスタンス上で実行されるコード実行要求を受信する前にウォーミング・プール130Aに追加されるようにする。他の実施形態では、ウォーミング・プール・マネージャ130は、補助仮想マシン・インスタンス・サービス(例えば、インスタンス・プロビジョニング・サービス109)と通信して、新しいインスタンスを作成してウォーミング・プール130Aに追加する。例えば、ウォーミング・プール・マネージャ130は、ウォーミング・プール130A内の利用可能な容量に基づいて、追加のインスタンスをウォーミング・プール130Aに追加させて、着信要求を処理することができる。いくつかの実施形態では、ウォーミング・プール・マネージャ130は、フロントエンド120によって受信されたコード実行要求にサービスを提供するために使用され得る計算能力を取得及び維持するために、仮想計算システム110内の物理コンピューティング・デバイス及び1つ以上の仮想マシン・インスタンス・サービスの両方を利用し得る。いくつかの実施形態では、仮想計算システム110は、ウォーミング・プール130A内の利用可能な能力を制御(例えば、増加または減少)するための1つ以上の論理ノブまたはスイッチを備えることができる。例えば、システム管理者は、そのようなノブまたはスイッチを使用して、ピーク時にウォーミング・プール130A内の利用可能な能力(例えば、プレ・ブートされたインスタンスの数)を増加させることができる。いくつかの実施形態では、ウォーミング・プール130A内の仮想マシン・インスタンスは、ユーザのコードを実行する特定のユーザ要求から独立した所定のセットの構成に基づいて構成することができる。所定のセットの構成は、ユーザ・コードを実行するための様々なタイプの仮想マシン・インスタンスに対応することができる。ウォーミング・プール・マネージャ130は、現在または以前のユーザ・コード実行に関する1つ以上のメトリックに基づいて、ウォーミング・プール130A内の仮想マシン・インスタンスのタイプ及び数を最適化することができる。
図1に示すように、インスタンスは、オペレーティング・システム(OS)及び/またはその上にロードされた言語ランタイムを有することができる。例えば、ウォーミング・プール・マネージャ130によって管理されるウォーミング・プール130Aは、インスタンス152、154を含む。インスタンス152は、OS152A及びランタイム152Bを含む。インスタンス154は、OS154Aを含む。いくつかの実施形態では、ウォーミング・プール130A内のインスタンスは、以下でより詳細に説明するコンテナ(オペレーティング・システムのコピー、ランタイム、ユーザ・コードなどをさらに含むことができる)も含むことができる。インスタンス152が1つのランタイムを含むように図1に示されているが、他の実施形態では、図1に示されるインスタンスは、2つ以上のランタイムを含むことができ、その各々は、異なるユーザ・コードを実行するために使用され得る。いくつかの実施形態では、ウォーミング・プール・マネージャ130は、ウォーミング・プール130A内のインスタンスのリストを維持することができる。インスタンスのリストは、インスタンスの構成(例えば、OS、ランタイム、コンテナなど)をさらに指定することができる。
いくつかの実施形態では、任意のユーザの要求を処理するために、ウォーミング・プール130A内の仮想マシン・インスタンスを使用することができる。一実施形態では、ウォーミング・プール130A内のすべての仮想マシン・インスタンスは、同一または実質的に同様の方法で構成されている。別の実施形態では、ウォーミング・プール130A内の仮想マシン・インスタンスは、異なるユーザのニーズに合わせて異なるように構成され得る。例えば、仮想マシン・インスタンスは、異なるオペレーティング・システム、異なる言語ランタイム、及び/または異なるライブラリがそこにロードされてもよい。さらに別の実施形態では、ウォーミング・プール130A内の仮想マシン・インスタンスは、同一または実質的に同様の方法(例えば、同じOS、言語ランタイム、及び/またはライブラリ)で構成されて得るが、それらのインスタンスのいくつかは、異なるコンテナ構成を有してもよい。例えば、2つのインスタンスにPythonとRubyの両方のランタイムがある場合があるが、1つのインスタンスにはPythonコードを実行するようにコンテナを構成し、もう1つのインスタンスにはRubyコードを実行するようにコンテナを構成できる。いくつかの実施形態では、それぞれが同一構成の仮想マシン・インスタンスを有する複数のウォーミング・プール130Aが提供される。
ウォーミング・プール・マネージャ130は、各仮想マシン・インスタンスが、仮想計算システム110上で実行されるプログラム・コードを実行するためのユーザ要求によって要求または指定され得る動作条件のうちの少なくとも1つを満たすように、ウォーミング・プール130A内の仮想マシン・インスタンスを事前設定することができる。一実施形態では、動作条件は、実行可能性があるユーザ・コードを書き込むことができるプログラム言語を含むことができる。例えば、そのような言語は、Java(登録商標)、JavaScript(登録商標)、Python(登録商標)、Ruby(登録商標)及び同様なものを含むことができる。いくつかの実施形態では、ユーザ・コードを実行する要求を満たすことができる仮想マシン・インスタンスの事前初期化を容易にするために、ユーザ・コードを書き込むことができる言語のセットは、(いくつかの実施形態では4つ以上の言語のセットが提供されるが、例えば、4つの言語のセットなどの)所定のセットに限定されてもよい。例えば、ユーザが仮想計算システム110によって提供されるユーザ・インタフェースを介して要求を構成している場合、ユーザ・インタフェースは、ユーザ・コードを実行するための所定の動作条件の1つを指定するようにユーザに促すことができる。別の例では、仮想計算システム110によって提供されるサービスを利用するためのサービスレベル合意(SLA)は、ユーザ要求が満足すべき一セットの条件(例えば、プログラミング言語、コンピューティング・リソースなど)を指定することができ、仮想計算システム110は、要求が、要求を処理する際の条件のセットを満たす、と仮定してもよい。別の例では、要求において指定された動作条件は、要求を処理するために使用される計算能力の量、要求のタイプ(例えば、HTTPかトリガされたイベントか)、要求に対するタイムアウト(例えば、以降は要求が終了され得る閾値時間)、セキュリティ・ポリシー(例えば、ウォーミング・プール130A内のどのインスタンスがどのユーザによって使用可能であるかを制御することができる)、などを含むことができる。
ワーカ・マネージャ140は、着信コード実行要求を処理するために使用されるインスタンスを管理する。図1に説明する例では、ワーカ・マネージャ140は、1人以上のユーザに現在割り当てられている仮想マシン・インスタンスのグループ(プールと呼ばれることもある)であるアクティブ・プール140Aを管理する。仮想マシン・インスタンスは、本明細書では特定のユーザに割り当てられているものとして説明されているが、いくつかの実施形態では、インスタンスはユーザのグループに割り当てられ、それによりインスタンスは、ユーザのグループに結び付けられ、そのグループのあらゆるメンバがインスタンス上のリソースを利用することができる。例えば、同じグループ内のユーザは、同じセキュリティ・グループに属してもよく(例えば、セキュリティ証明書に基づいて)、その結果、別のメンバのコードが同じインスタンス上の別のコンテナ内で実行された後に、その特定のインスタンス上のメンバのコードを実行することが、セキュリティ上のリスクをもたらすことはない。同様に、ワーカ・マネージャ140は、どのコンテナでどの要求を実行できるか、及びどのインスタンスをどのユーザに割り当てることができるか、を指示する1つ以上のポリシーに従ってインスタンス及びコンテナを割り当てることができる。例示的なポリシーは、インスタンスが同じアカウントを共有するユーザの集合(例えば、仮想計算システム110によって提供されるサービスにアクセスするためのアカウント)に割り当てられることを指定することができる。いくつかの実施形態では、同じユーザ・グループに関連する要求は、(例えば、それに関連付けられたユーザ・コードが同一である場合)同じコンテナを共有することができる。いくつかの実施形態では、要求はグループの異なるユーザの間の区別せず、単純に、要求に関連するユーザが属するグループを示す。
図1に示すように、インスタンスはオペレーティング・システム(OS)、言語ランタイム、及びコンテナを有することができる。コンテナは、OSの個々のコピー、ならびにその上にロードされたランタイムとユーザ・コードを有することができる。図1の例では、ワーカ・マネージャ140によって管理されるアクティブ・プール140Aは、インスタンス156、158を含む。インスタンス156は、OS156A、ランタイム156B、156C、及びコンテナ156D、156Eを有する。コンテナ156Dは、OS156Aのコピー、ランタイム156Bのコピー、及びコード156D−1のコピーを含む。コンテナ156Eは、OS156Aのコピー、ランタイム156Cのコピー、及びコード156E−1のコピーを含む。インスタンス158は、OS158A、ランタイム158B、158C、158E、158F、コンテナ158D、及びコード158G、158Hを有する。コンテナ158Dは、OS158Aのコピー、ランタイム158Bのコピー、及びコード158D−1のコピーを有する。図1に説明するように、インスタンスにはユーザ・コードがロードされ、それらのインスタンス内のコンテナにはユーザ・コードがロードされる。いくつかの実施形態では、ワーカ・マネージャ140は、アクティブ・プール140A内のインスタンスのリストを維持することができる。インスタンスのリストは、インスタンスの構成(例えば、OS、ランタイム、コンテナなど)をさらに指定することができる。いくつかの実施形態では、ワーカ・マネージャ140は、ウォーミング・プール130A内の(例えば、インスタンスの数及びタイプを含む)インスタンスのリストにアクセスすることができる。他の実施形態では、ワーカ・マネージャ140は、ウォーミング・プール130A内の仮想マシン・インスタンスの知識は持たず、ウォーミング・プール・マネージャ130から計算能力を要求する。
図1に説明する例では、ユーザ・コードは、コンテナ(例えば、コンテナ156D、156E、158D)と呼ばれる分離された計算システムで実行される。コンテナは、仮想マシン・インスタンス内で、そのインスタンス上で使用可能なリソースを使用して作成された、論理的ユニットである。例えば、ワーカ・マネージャ140は、ユーザ・コードを実行する要求で指定された情報に基づいて、アクティブ・プール140A内のインスタンスの1つに、新しいプールを作成するか、既存のコンテナを配置し、要求に関連するユーザ・コードの実行を処理するために、そのコンテナを要求に割り当てる。一実施形態では、そのようなコンテナはLinuxコンテナとして実装される。アクティブ・プール140A内の仮想マシン・インスタンスは、その上に作成された1つ以上のコンテナを有することができ、(例えば、コンテナの1つまたはインスタンスのローカル・キャッシュのいずれかに)ロードされたユーザに関連する1つ以上のプログラム・コードを有する。各コンテナは、その中で利用可能にされているクレデンシャル情報を有することができ、そのため、コンテナで実行されるユーザ・コードは、対応するクレデンシャル情報がアクセスすることができるものすべてにアクセスすることができる。
要求がいったんフロントエンド120によって首尾よく処理されると、ワーカ・マネージャ140は、仮想計算システム110上のユーザ・コードを実行する要求を処理する能力を見出す。例えば、アクティブ・プール140A内に、同じユーザ・コードがロードされたコンテナ(例えば、コンテナ156Dに示されたコード156D−1)を有する特定の仮想マシン・インスタンスが存在する場合、ワーカ・マネージャ140は、そのコンテナを要求に割り当て、ユーザ・コードをコンテナ内で実行させる。あるいは、ユーザ・コードが仮想マシン・インスタンスの1つ(例えば、インスタンス158に記憶されているがいずれの個々のコンテナにも属さないコード158G、158H)のローカルキャッシュ内で利用可能である場合、ワーカ・マネージャ140は、そのようなインスタンス上に新しいコンテナを作成し、そのコンテナを要求に割り当て、ユーザ・コードをコンテナにロードして実行させる。
ワーカー・マネージャ140が、要求に関連するユーザ・コードがアクティブ・プール140A内のいずれかのインスタンス(例えば、インスタンスのコンテナまたはローカル・キャッシュのいずれか)上に見つからないと判定した場合、ワーカー・マネージャ140は、アクティブ・プール140A内のいずれかのインスタンスが、現在、要求に関連付けられたユーザに割り当てられて、現在の要求を処理するための計算能力を有しているか、を判定する。そのようなインスタンスが存在する場合、ワーカ・マネージャ140は、そのインスタンス上に新しいコンテナを作成し、コンテナをその要求に割り当てることができる。あるいは、ワーカ・マネージャ140は、ユーザに割り当てられたインスタンス上に既存のコンテナをさらに構成し、コンテナをその要求に割り当てることができる。例えば、ワーカ・マネージャ140は、現在のユーザ要求によって求められる特定のライブラリがそこにロードされている場合、既存のコンテナを使用してユーザ・コードを実行することが可能だと判定することができる。そのような場合、ワーカ・マネージャ140は、特定のライブラリ及びユーザ・コードをコンテナにロードし、そのコンテナを使用してユーザ・コードを実行することができる。
アクティブ・プール140Aが現在そのユーザに割り当てられているインスタンスをまったく含まない場合、ワーカ・マネージャ140はウォーミング・プール130Aから新しい仮想マシン・インスタンスを引き出し、そのインスタンスを要求に関連付けられたユーザに割り当て、インスタンス上に新たなコンテナを作成し、コンテナを要求に割り当て、ユーザ・コードがダウンロードされてコンテナ上で実行されるようにする。
ユーザ・コードは、図1のストレージ・サービス108などの補助サービス106からダウンロードすることができる。図1に説明するデータ108Aは、1つ以上のユーザによってアップロードされたユーザ・コード、そのようなユーザ・コードに関連付けられたメタデータ、または本明細書で説明される1つ以上の技術を実行するために仮想計算システム110によって利用される他の任意のデータを含むことができる。図1に説明する例ではストレージ・サービス108のみが示されているが、仮想環境100は、ユーザ・コードをダウンロードすることができる他のレベルのストレージ・システムを含んでもよい。例えば、各インスタンスは、コンテナが作成されたインスタンスに物理的(例えば、インスタンスが実行されている物理的コンピューティング・システム上にあるローカル・ストレージ)、または論理的(例えば、インスタンスとネットワーク通信し、仮想計算システム110の内部または外部に提供されるネットワーク接続ストレージ・システム)に関連付けられた1つ以上のストレージ・システムを有することができる。あるいは、コードは、ストレージ・サービス108によって提供されるウェブ・ベースのデータ・ストアからダウンロードされてもよい。
ワーカ・マネージャ140が、ユーザ・コード実行要求に対応するために使用することができるウォーミング・プール130A内の仮想マシン・インスタンスの1つを見つけると、ウォーミング・プール・マネージャ130またはワーカ・マネージャ140は、インスタンスをウォーミング・プール130Aから取り出し、それを要求に関連付けられたユーザに割り当てる。割り当てられた仮想マシン・インスタンスは、ウォーミング・プール130Aから取り出され、アクティブ・プール140Aに配置される。いくつかの実施形態では、仮想マシン・インスタンスが特定のユーザにいったん割り当てられると、同じ仮想マシン・インスタンスを使用して他のどのようなユーザの要求も処理することはできない。それにより、ユーザ・リソースの混在を防ぐことで、ユーザにセキュリティ上のメリットがもたらされる。あるいは、いくつかの実施形態では、異なるユーザに属する(または異なるユーザに関連する要求に割り当てられた)複数のコンテナが、単一の仮想マシン・インスタンス上に共存することができる。そのようなアプローチは、利用可能な計算能力の活用を改善することができる。
いくつかの実施形態では、仮想計算システム110は、仮想マシン・インスタンスのローカル・キャッシュと(例えば、ネットワーク104を介してアクセス可能な)ウェブ・ベースのネットワーク・ストレージとの間のキャッシング・システムの中間レベルとして機能するようにユーザ・コードが記憶される、分離したキャッシュを維持することができる。ワーカ・マネージャ140が要求を処理する際に遭遇する様々なシナリオは、図4を参照して以下により詳細に説明される。
ユーザ・コードが実行された後、ワーカ・マネージャ140は、ユーザ・コードを実行するために使用されたコンテナを破棄して、占有したリソースをインスタンス内の他のコンテナが使用するために解放することができる。あるいは、ワーカ・マネージャ140は、コンテナを稼働させたままにして、そのコンテナを使用して、同じユーザからの追加の要求を処理することができる。例えば、同じユーザ・コードに関連付けられた別の要求がコンテナに既にロードされているなら、その要求は同じコンテナに割り当てることが可能であり、それによって新しいコンテナの作成及びユーザ・コードのコンテナへのロードに関連する遅延がなくなる。いくつかの実施形態では、ワーカ・マネージャ140は、ユーザ・コードを実行するために使用されたコンテナが作成されたインスタンスを破棄することができる。あるいは、ワーカー・マネージャ140は、同じユーザからの追加の要求を処理するために、それを使用するようにインスタンスを稼動状態に保ってもよい。ユーザ・コードが実行完了した後にコンテナ及び/またはインスタンスを稼働状態に維持するかどうかの決定は、閾値時間、ユーザのタイプ、ユーザの平均要求ボリューム、及び/または他の動作条件に基づくことができる。例えば、アクティビティ(例えば、コードの実行)なしに閾値時間(例えば、5分、30分、1時間、24時間、30日など)が経過した後、コンテナ及び/または仮想マシン・インスタンスがシャットダウン(例えば、削除、終了など)され、それに割り当てられたリソースが解放される。いくつかの実施形態では、コンテナが破棄される前に経過した閾値時間は、インスタンスが破棄される前に経過した閾値時間よりも短い。
いくつかの実施形態では、仮想計算システム110は、着信コード実行要求を処理するときに、1つ以上の補助サービス106にデータを提供することができる。例えば、仮想計算システム110は、監視/ロギング/課金サービス107と通信することができる。監視/ロギング/課金サービス107は、仮想計算システム110上のコンテナ及びインスタンスの状態などの、仮想計算システム110から受信した監視情報を管理するための監視サービスと、仮想計算システム110上でコンテナ及びインスタンスによって実行される動作などの、仮想計算システム110から受信したロギング情報を管理するためのロギング・サービスと、(例えば、監視サービス及びロギング・サービスによって管理される監視情報及び/又はロギング情報に基づいて)仮想計算システム110上でユーザ・コードを実行することに関連する課金情報を生成するための課金サービスとを含むことができる。上述したような(例えば、仮想計算システム110に代わって)監視/ロギング/課金サービス107によって実行され得るシステム・レベルの動作に加えて、監視/ロギング/課金サービス107は、仮想計算システム110上で実行されるユーザ・コードに代わって、アプリケーション・レベルのサービスを実行する。例えば、監視/ロギング/課金サービス107は、仮想計算システム110上で実行されるユーザ・コードに代わって、様々な入力、出力、または他のデータ及びパラメータを監視及び/またはロギングすることができる。単一のブロックとして示されているが、監視、ロギング及び課金サービス107は、分離したサービスとして提供されてもよい。
いくつかの実施形態では、ワーカ・マネージャ140は、ワーカ・マネージャ140によって管理されるインスタンス及びコンテナ(例えば、アクティブ・プール140A内のインスタンス及びコンテナ)のヘルス・チェックを実行することができる。例えば、ワーカ・マネージャ140によって実行されるヘルス・チェックは、ワーカ・マネージャ140によって管理されるインスタンス及びコンテナが、(1)ネットワーク及び/またはスタートアップ構成の設定ミス、(2)使い尽くされたメモリ、(3)ファイル・システムの破損、(4)互換性のないカーネル、及び/またはインスタンスとコンテナのパフォーマンスを損なう可能性のあるその他の問題、という課題を抱えているかを判定することを含んでいてもよい。一実施形態では、ワーカ・マネージャ140は定期的に(例えば、5分毎、30分毎、1時間毎、24時間毎など)ヘルス・チェックを実施する。いくつかの実施形態では、ヘルス・チェックの頻度は、ヘルス・チェックの結果に基づいて自動的に調整することができる。他の実施形態では、ヘルス・チェックの頻度は、ユーザ要求に基づいて調整することができる。いくつかの実施形態では、ワーカ・マネージャ140は、ウォーミング・プール130A内のインスタンス及び/またはコンテナについて同様のヘルス・チェックを実行することができる。ウォーミング・プール130A内のインスタンス及び/またはコンテナは、アクティブ・プール140A内のインスタンス及びコンテナと一緒に、または別々に管理されてもよい。いくつかの実施形態では、ウォーミング・プール130A内のインスタンス及び/またはコンテナの健全性がアクティブ・プール140Aとは別に管理される場合、ウォーミング・プール・マネージャ130は、ワーカ・マネージャ140の代わりに、ウォーミング・プール130A内のインスタンス及び/またはコンテナ上で上述したヘルス・チェックを実行してもよい。
いくつかの実施形態では、仮想計算システム110は、ユーザ・コードの実行を、(例えば、フロントエンド120によって)それが受信された直後に開始するように適合される。時間幅は、(例えば、ユーザに関連する仮想マシン・インスタンス上のコンテナ内の)ユーザ・コードの実行の開始と、(例えば、フロントエンドによって受信される)ユーザ・コードを実行する要求の受信との間の時間差として決定することができる。別の時間幅は、(1)イベント・トリガリング・サービス上のイベントの検出と、(2a)(例えばフロントエンドによって受信された)ユーザ・コードを実行する要求の受信、及び/または(2b)(例えば、ユーザに関連する仮想マシン・インスタンス上のコンテナ内の)ユーザ・コードの実行の開始、との間の時間差として決定することができる。別の時間幅は、(1)イベント・メッセージの(例えば、イベント・トリガリング・サービス上からの直接的または間接的)検索、アクセス、または受信と、(2)ユーザ・コードを実行する要求の処理の(例えば、ユーザに関連付けられた仮想マシン・インスタンス上のコンテナ内での)開始、との間の時間差として決定することができる。仮想計算システム110は、所定の継続時間より短い時間幅内にユーザ・コードの実行を開始するように適合されている。一実施形態では、所定の継続時間は500ミリ秒である。別の実施形態では、所定の継続時間は300ミリ秒である。別の実施形態では、所定の継続時間は100ミリ秒である。別の実施形態では、所定の継続時間は50ミリ秒である。別の実施形態では、所定の継続時間は10ミリ秒である。別の実施形態では、所定の継続時間は、10ミリ秒〜500ミリ秒の範囲から選択される任意の値であってもよい。いくつかの実施形態では、仮想計算システム110は、1つ以上の条件が満たされる場合、所定の継続時間よりも短い時間幅内にユーザ・コードの実行を開始するように適合される。例えば、1つ以上の条件は、(1)ユーザ・コードは、要求が受信された時点で、アクティブ・プール140A内のコンテナにロードされているか、(2)ユーザ・コードは、要求が受信された時点で、アクティブ・プール140Aのインスタンスのコード・キャッシュに記憶されているか、(3)アクティブ・プール140Aは、要求が受信された時点で、要求に関連付けられたユーザに割り当てられたインスタンスを含んでいるか、(4)ウォーミング・プール130Aは、要求が受信された時点で、要求を処理する能力を有するか、のうちのいずれか1つを含み得る。
ワーカ・マネージャ140は、着信コード実行要求を処理する計算能力(例えば、コンテナ)を見つけるためのインスタンス割当てユニットと、それらのコンテナ上のユーザ・コードの実行を容易にするユーザ・コード実行モジュールとを含むことができる。フロントエンド120の例示的な構成は、図2を参照して以下により詳細に説明される。
図2は、仮想計算システム110内のプログラム・コードを実行するためのユーザ要求に対するイベント・メッセージを処理する、(フロントエンド120として参照される)コンピューティング・システムの一般的なアーキテクチャを示す。図2に示すフロントエンド120の一般的なアーキテクチャは、本開示の態様を実装するために使用され得るコンピュータ・ハードウェア及びソフトウェア・モジュールの構成を含む。ハードウェア・モジュールは、以下に詳細に説明するように、物理的な電子デバイスで実装することができる。フロントエンド120は、図2に示すものよりも多くの(またはより少ない)要素を含むことができる。しかしながら、実現可能な開示を提供するために、これらの一般的な従来の要素のすべてを示す必要はない。さらに、図2に説明する一般的なアーキテクチャは、図1に説明する他のコンポーネントのうちの1つ以上を実施するために使用されてもよい。説明されているように、フロントエンド120は、処理ユニット190、ネットワーク・インタフェース192、コンピュータ可読媒体ドライブ194、入出力デバイス・インタフェース196を含み、それらのすべてが通信バスを介して互いに通信することができる。ネットワーク・インタフェース192は、1つ以上のネットワークまたはコンピューティング・システムへの接続を提供することができる。従って、処理ユニット190は、ネットワーク104を介して他のコンピューティング・システムまたはサービスから情報及び指示を受信することができる。処理ユニット190は、メモリ180との間で通信することもでき、入出力デバイス・インタフェース196を介してオプションのディスプレイ(図示せず)の出力情報をさらに提供することができる。入出力デバイス・インタフェース196は、オプションの入力デバイス(図示せず)からの入力を受け入れることもできる。
メモリ180は、本開示の1つ以上の態様を実施するために処理ユニット190が実行するコンピュータ・プログラム命令(いくつかの実施形態では、モジュールとしてグループ化される)を含むことができる。メモリ180は、一般に、RAM、ROM、及び/または他の持続的、補助的、または非一時的なコンピュータ可読媒体を含む。メモリ180は、ワーカ・マネージャ140の一般的な管理及び動作において処理ユニット190によって使用されるコンピュータ・プログラム命令を提供するオペレーティング・システム184を記憶することができる。メモリ180は、本開示の態様を実施するための、コンピュータ・プログラム命令及びその他の情報をさらに含むことができる。例えば、一実施形態では、メモリ180は、例えばコンピューティング・デバイスにインストールされるブラウザまたはアプリケーションなどのナビゲーション及び/またはブラウジング・インタフェースを介して、コンピューティング・デバイス上に表示するためのユーザ・インタフェース(及び/またはそのための命令)を生成するユーザ・インタフェース・ユニット182を含む。さらに、メモリ180は、例えばユーザ・プログラム・コード及び/またはライブラリにアクセスするために、1つ以上のデータ・レポジトリ(図示せず)を含み及び/またはそれらと通信することができる。
メモリ180は、ユーザ・インタフェース・ユニット182に加えて、及び/またはそれと組み合わせて、イベント/要求処理ユニット188を含むことができ、イベント/要求処理ユニット188は、処理ユニット190によって実行され得る、イベント・メッセージ・ポーリング・ユニット186A及びイベント・メッセージ変換ユニット186Bを含むことができる。一実施形態では、ユーザ・インタフェース・ユニット182、イベント・メッセージ・ポーリング・ユニット186A、及びイベント・メッセージ変換ユニット186Bは、個別にまたは集合的に、例えば、実行されるユーザ・コードへの要求のためのイベント・メッセージの処理などの、本開示に説明するような様々な態様を実装する。別の実施形態では、例えば、イベント・ソースまたはメッセージ・キューをポーリングし、少なくともフロントエンド120及び/または仮想コンピューティング・システム100の別のコンポーネントによるさらなる処理のためのイベント・メッセージを準備するために、初期メッセージ変換または処理を実行するように構成されたポーリング・フリートを介して、分離したポーリング・サービスを実施することができる。
イベント・メッセージ・ポーリング・ユニット186Aは、ユーザ・コードを実行する要求に向けて処理されるべきイベント・メッセージを定期的にポーリングする。例えば、イベント・メッセージ・ポーリング・ユニット186Aは、メッセージ・キュー・サービス105またはその他のメッセージ・キュー・サービスまたはメッセージ・バスなどのメッセージ・キューに定期的にアクセスして、イベント・メッセージが仮想計算システム110による処理のためにメッセージ・キューに配置されているか、を判定または検出することができる。イベント・メッセージは、例えば、図3を参照して本明細書で説明するルーチンに従ってメッセージ・キューに置かれてもよい。メッセージ・キュー内のイベント・メッセージを判定または検出することに応答して、メッセージ・ポーリング・ユニット186Aは、メッセージ・キューからメッセージ・イベントを検索し、本明細書でさらに説明するイベント・メッセージのさらなる処理を開始することができる。別の実施形態では、イベント・メッセージ・ポーリング・ユニット186Aは、メッセージ・キューからではなく、イベント・トリガリング・サービス106Aを直接ポーリングすることができる。例えば、特定のタイプのデータベースなどのイベント・トリガリング・サービスの中には、必ずしも中間メッセージ・キューに依存する必要がない、イベント・メッセージの直接ポーリングをサポートするものもある。
イベント・メッセージ変換ユニット186Bは、(例えば、メッセージ・キュー105などのメッセージ・キューからアクセスされた、または検索された)イベント・メッセージの、ユーザ・コード(例えば、上記で前に参照によりその全体が本明細書に組み込まれている、2014年9月30日に出願された「THREADING AS A SERVICE」と題する米国特許出願第__/___,___号(代理人整理番号SEAZN.989A)に記載されているプロセスに従ってさらなる処理の準備がなされている)を実行する要求への変換を管理する。イベント・メッセージの変換については、本明細書の図4を参照してより詳細に説明する。一実施形態では、イベント・メッセージが処理されるときに、仮想計算システム110による迅速な変換及び/または即時関数呼び出しを容易にするために、リモート・プロシージャ・コールを表す形式でイベント・メッセージが生成される。このような実施態様は、イベント・トリガに応答する補助システムと、イベント・トリガに応答して補助システムによって生成されるイベント・メッセージを処理する仮想計算システム110との間の、高度な関数的透明性と待ち時間の低減を可能にする。
イベント・メッセージ・ポーリング・ユニット186A及びイベント・メッセージ変換ユニット186Bは、フロントエンド120の一部として図2に示されているが、他の実施形態では、イベント・メッセージ・ポーリング・ユニット186A及びイベント・メッセージ変換ユニット186Bのすべてまたは一部は、仮想計算システム110の他のコンポーネント及び/または別のコンピューティング・デバイスによって実装されてもよい。例えば、本開示の特定の実施形態では、仮想計算システム110と通信する別のコンピューティング・デバイスが、フロントエンド120の一部として説明されるモジュール及びコンポーネントと同様に動作するいくつかのモジュールまたはコンポーネントを含むことができる。いくつかの実施形態では、フロントエンド120は図2に説明する以外のコンポーネントをさらに含んでもよい。
次に図3を参照して、イベント・トリガリング・サービス106Aとして動作するように構成されたストレージ・サービス108などの、補助サービス106の1つ以上のコンポーネントによって実施されるルーチン300が説明される。ルーチン300は、イベント・トリガリング・サービス106Aによる実施に関して説明されているが、当業者であれば、ユーザ・デバイス102または仮想計算システム110などの代替コンポーネントがルーチン300を実施してもよく、あるいは、1つ以上のブロックが、異なるコンポーネントによって、または分散されて実施されてもよいことを理解するであろう。
例示的なルーチン300のブロック302において、イベント・トリガリング・サービス106Aは、仮想計算システム110上のユーザ・コードの実行をトリガまたは起動するように指定されたイベントまたは動作を検出する。例えば、いくつかの実施形態では、イベント・トリガリング・サービス106Aは、1つ以上のイベントのイベント通知を有効化またはアクティブ化するように構成できる。一実施形態では、イベント・トリガ及び通知構成設定は、ユーザによって提供または指定されてもよい。例えば、ユーザが仮想計算システム110及び/またはストレージ・サービス108にユーザ・コードを提供またはアップロードするとき、ユーザは、その時点で、イベント・トリガリング・サービス106Aが注意深く見守るべき、及び1つ以上のイベントの検出に応答して、対応するユーザ・コードの関数またはルーチンが実行されるべき、1つ以上のイベントを指定してもよい。1つの説明的な例として、ユーザは、サムネイル画像を生成するためのユーザ・コードをアップロードし(または事前にアップロードするか、または他の方法で仮想計算システム110に提供しておき)、さらに、サムネイル画像を生成するコードが、新しい画像を補助システム(画像共有システムなど)にアップロードしているエンド・ユーザに応答して実行されるべきであることを指定することができる。この例では、画像共有システムは次に画像アップロード・イベントを監視または検出する。いくつかの実施形態では、イベント・トリガ及び通知構成設定は、例えばユーザ・コードと共に提供され得る構成ファイルまたは他のデータ・フォーマットによって提供または指定され得る。様々な実施形態では、ユーザ・コードをアップロードしているユーザと、イベント・トリガリング・サービス(新しい画像のアップロードなど)として構成された補助サービスに関して何らかの他の動作を実行するエンド・ユーザは、分離した別個のユーザまたはエンティティであってもよい。
次に、ブロック304において、イベント・トリガリング・サービス106Aは、検出された動作/イベントに関連してイベント・メッセージを生成する。例えば、イベント・トリガリング・サービス106Aは、ユーザによって以前に提供されたイベント・トリガ及び通知構成設定に従ってイベント・メッセージを生成することができる。構成設定は、例えば、トリガされたイベントに応答して仮想計算システムによって実行されるユーザ・コードに関連するスキーマ、コード・モデル、またはAPIを指定することができる。例えば、イベント・メッセージは、とりわけ、ユーザに関連するユーザ・アカウント識別子、仮想計算システム上で呼び出される関数を識別する関数識別子、及び関数呼び出しと共に提供されるべき任意の入力パラメータ(必須及び/またはオプション)を含む1つ以上のイベント・メッセージ・パラメータを含むように生成することができる。
いくつかの実施形態では、イベント・メッセージは、実行されるプログラム・コード、プログラム・コードが書き込まれる言語、要求に関連付けられたユーザ、及び/またはプログラム・コードを実行するために予約されるコンピュータ・リソース(例えば、メモリなど)を示すデータまたはメタデータを含むことができる。例えば、イベント・メッセージは、「言語ランタイムX」を使用して「オペレーティング・システムA」上でユーザ・コードが実行されるべきであることを指定することができる。イベント・メッセージが仮想計算システム110によって処理されると(例えば図4参照)、仮想計算システム110またはそのコンポーネントのうちの1つは、「オペレーティング・システムA」及び「言語ランタイムX」で事前設定され、ユーザに割り当てられた仮想マシン・インスタンスを見つけることができる。次に、仮想計算システム110は、コンテナを、その中のユーザ・コードを実行するために仮想マシン・インスタンス上に作成することができる。コードを有するコンテナが仮想マシン・インスタンス上に既に存在する場合、仮想計算システム110は、コンテナが利用可能になると、コンテナ上での実行に対する現在の要求をバッファすることができる。
一実施形態では、イベント・メッセージ(または、少なくとも、イベント・メッセージの一部)のフォーマットは、イベント・トリガリング・サービス106Aが、イベント・メッセージにおいて、仮想計算システム上で関数を起動するために必要とされ得る関連する情報を提供するために、最小限の処理を実行するだけでよいように、標準的なリモート・プロシージャ・コールを表すことができる。例えば、このような標準的なリモート・プロシージャ・コール・フォーマットは、仮想計算システム110とは異なるオペレーティング・システムまたは言語ランタイムを実行する補助システム106が、そのような標準フォーマットで生成されたイベント・メッセージを介して仮想計算システム110とシームレスに通信することを可能にする。一実施形態では、リモート・プロシージャ・コールのフォーマットは、ユーザによって提供され、実行されるユーザ・コードと一致するか、対応するように設計される。例えば、画像アップロード・イベントが検出された場合、イベント・メッセージのフォーマットは、「invoke(generateThumbnail、userID、imageName、imagePath)」、または「generateThumbnail(userID、imageName、imagePath)」、または類似のものなどの、仮想計算システム上で応答して実行される関数へのリモート・プロシージャ・コールを表すことができる。
いくつかの実施形態では、イベント・トリガリング・サービス106Aと仮想計算システム110との間に信頼できる関係または安全な関係が確立されるインスタンスのように、イベント・メッセージは、仮想計算システム110によって実行されるユーザ・コードをさらに含むことができる。例えば、ユーザは、仮想計算システム110にユーザ・コードを提供する代わりに、または提供することに加えて、ユーザ・コードをイベント・トリガリング・サービス106Aに提供することができ、さらに、ユーザ・コードが実行時に実行するために仮想計算システム110へのイベント・メッセージを提供される、ということを指示する。別の実施形態では、イベント・メッセージは、仮想計算システム110によって実行されるユーザ・コードの位置(URIなど)を含むことができ、それにより仮想計算システム110がURIを介して遠隔からユーザ・コードを呼び出すことができる。
ブロック306において、イベント・トリガリング・サービス106Aは、仮想計算システムによるさらなる処理のためにイベント・メッセージを提供する。例えば、一実施形態では、イベント・メッセージは、メッセージ・キュー105などのメッセージ・キューに提供される。メッセージ・キュー・サービス105は、(例えば、図1に示すように)補助システム106のコンポーネントであってもよく、または補助システム106及び/または仮想計算システム110とネットワーク160上で通信する、分離したシステムまたはサービスであってもよい。イベント・メッセージの特定のフォーマットは、イベント・メッセージを伝送するために使用されるメッセージ・キューに関連する仕様に少なくとも部分的に基づいてもよい。さらに、使用されている特定のメッセージ・キューは、生成され、仮想計算システムに提供されるイベント・メッセージのタイプに基づいてもよい。例えば、特定のメッセージ・キューは、データベース操作に関するメッセージを伝送するのに適しており、従って、データベース・イベント・トリガに応答して生成されたイベント・メッセージが、特定のメッセージ・キューを使用して提供されてもよい。仮想計算システムがどのようにしてイベント・メッセージにアクセスし処理するかについては、図4を参照して以下でより詳細に説明する。別の実施形態では、イベント・メッセージは、中間メッセージ・キューを必要とせずに、仮想計算システム110によるアクセスのために提供されるか、または利用可能にされてもよい。例えば、イベント・トリガリング・サービス106Aは、イベント・トリガリング・サービス106Aから1つ以上の利用可能なイベント・メッセージを要求するために、仮想計算システム110が呼び出すことができるAPIを提供または使用可能にすることができる。次に、仮想計算システム100は、処理のためにイベント・メッセージをアクセス及び/または検索するために、メッセージ・キューをポーリングする代わりに、またはそれと組み合わせて、例えば定期的にAPIを呼び出すことができる。
図3のルーチン300はブロック302〜306を参照して上記に説明されたが、本明細書に記載された実施形態はそのように限定はされず、本開示の趣旨から逸脱することなく、1つ以上のブロックを省略、変更または交換することができる。
次に図4を参照して、仮想計算システム110(例えば、フロントエンド120)の1つ以上のコンポーネントによって実施されるルーチン400を説明する。ルーチン400は、フロントエンド120による実施に関して説明されているが、当業者であれば、代替コンポーネントがルーチン400を実施してもよく、または1つ以上のブロックが異なるコンポーネントによって、または分散されて実施されてもよいことを理解するであろう。
例示的なルーチン400のブロック402において、フロントエンド120は、オプションで、ユーザ・コードを実行する要求を表すことができるイベント・メッセージについてメッセージ・キュー(例えば、メッセージ・キュー105)を定期的にポーリングすることができる。例えば、ブロック402は、イベント・トリガリング・サービス106Aがメッセージ・キューを介してイベント・メッセージを提供するシナリオでは、図3のブロック306からのイベント・メッセージング・プロセスを継続することができる。
次に、ブロック404において、フロントエンド120は、仮想計算システム110による処理のためにイベント・メッセージにアクセスするか、またはそれを検索する。一実施形態では、イベント・メッセージは、メッセージ・キューからアクセスされるか、または検索される。イベント・メッセージの検索により、イベントに関連するさらなる処理の重複を防止するために、メッセージ・キューからイベント・メッセージが除去される。別の実施形態では、イベント・メッセージは、仮想計算システム110による処理の準備が整ったイベント・メッセージをフロントエンド120が要求及び受信することができるイベント・トリガリング・サービスによって提供される、APIの呼び出しなどによって、イベント・トリガリング・サービスから直接アクセスまたは検索されてもよい。イベント・メッセージは、図3を参照して上述した情報及びメタデータの任意のものを含むことまたは備えることができ、例えばその中に含まれるのは、ユーザに関連するユーザアカウント識別子、仮想計算システム上で呼び出される関数を識別する関数識別子、及び関数の呼び出しと共に提供される任意の入力パラメータ(必須及び/またはオプション)を含む1つ以上のイベント・メッセージ・パラメータである。
ブロック406において、フロントエンド120は、ユーザ・コードを実行する要求が、仮想計算システム110によってさらに処理され得るように、イベント・メッセージをユーザ・コードを実行する要求に変換する(例えば、上記で前に参照によりその全体が本明細書に組み込まれている、2014年9月30日に出願された「THREADING AS A SERVICE」と題する米国特許出願第__/___,___号(代理人整理番号SEAZN.989A)に記載されていることを含む)。イベント・メッセージの変換は、イベント・メッセージを構文解析して、関数識別子、任意の入力パラメータ、及びイベント・トリガに応答して実行されるべきユーザによって指定されたユーザ・コードを実行する要求を生成するために必要とされ得る他のメタデータを、識別及び/または抽出することを含むことができる。例えば、イベント・メッセージは、既知または定義されたスキーマまたは他のフォーマットに準拠してもよいイベント・ペイロード(例えば、イベント・データ)に関する情報、例えばイベント・メッセージ・バスまたはイベント・トリガリング・サービス(例えば、メッセージ・キュー・サービスによって提供されるイベント・メッセージの暗黙のリースの一部であり得る)によって提供されるイベント・ラッパーまたは「エンベロープ」、及び/または、イベント・メッセージが署名された識別情報、イベント・プロデューサまたはイベント・トリガのソースの識別情報(例えば、どのイベント・トリガリング・サービスがイベントをトリガしたかなど)、イベント・メッセージが伝送されたメッセージ・キューの名称または所有者を含むイベントに関連するイベント・メタデータ、などのうち少なくとも1つ以上を含むかまたは備えることができる。
図3を参照して説明したように、一実施形態では、イベント・メッセージのフォーマットは、メッセージ・キューから一旦検索されると、フロントエンド120が、ユーザ・コードを実行するための対応する要求を生成するために最小限の処理しか必要としないように、標準リモート・プロシージャ・コールを表す。例えば、画像アップロード・イベントが検出された場合、イベント・メッセージのフォーマットは、「invoke(generateThumbnail、userID、imageName、imagePath)」、または「generateThumbnail(userID、imageName、imagePath)」、または類似のものなどの、仮想計算システム上で応答して実行される関数へのリモート・プロシージャ・コールを表すことができる。従って、一実施形態では、フロントエンド120は、このリモート・プロシージャ・コールを抽出し、指定された関数を直ちに起動して要求を開始することができる。さらに、図3を参照して上記に論じたように、ユーザ・コードの実行要求は、ユーザ・コードを実行する要求の追加入力として含まれる「言語ランタイムX」を使用して、ユーザ・コードが「オペレーティング・システムA」上で実行されるべきであることをさらに指定することができる。
ブロック408において、フロントエンド120は、オプションで、セキュリティアクセスを検証し、及び/またはイベント・メッセージと共に提供されるユーザ・アカウント識別子に関連するユーザを認証し、ユーザが指定されたユーザ・コードにアクセスする権限を有すると判定する。いくつかの実施形態では、セキュリティ及び/または認証は、分離したプロセスで、またはユーザ・コードを実行するための要求の処理の一部として、省略または実行されてもよい。いくつかの実施形態では、セキュリティ及び/または認証は、ブロック406で実行される変換の前など、ルーチン400の早期に実行されてもよい。
ブロック410において、フロントエンド120は、ユーザ・コードを実行する要求を仮想計算システム110に提供する。特定の実施形態では、フロントエンド120自体は、例えば、上記で前に参照によりその全体が本明細書に組み込まれている、2014年9月30日に出願された「THREADING AS A SERVICE」と題する米国特許出願第__/___,___号(代理人整理番号SEAZN.989A)に記載されているように、さらに要求の処理を実行する。要求は、プログラミング言語で構成されたプログラム・コードを含むことができる。Java(登録商標)、PHP、C ++、Python(登録商標)などの様々なプログラム言語を使用してユーザ・コードを作成できる。要求は、コード実行要件に関する構成情報を含むことができる。例えば、要求には、プログラム・コードが書かれたプログラム言語に関する情報、言語ランタイムに関する情報、及び/またはユーザ・コードを実行するための言語ライブラリに関する情報を含めることができる。構成情報は、ユーザ・コードをホストできる仮想マシン・インスタンスに関する特定の情報を含む必要はない。
図4のルーチン400はブロック402〜410を参照して上記に説明されたが、本明細書に記載された実施形態はそのように限定はされず、本開示の趣旨から逸脱することなく、1つ以上のブロックを省略、変更または交換することができる。例えば、ブロック402は、フロントエンド120がユーザ・デバイス102からイベント・メッセージを受信するように変更することができる。
図4のルーチン400は、異なる順序で実行され得る異なるプロセスまたはルーチンを含み得る。1つの代替例が以下のように提供されるが、他の変形も可能である。まず、イベント・メッセージを(利用可能な場合にはスキーマを使用して)解析するフロントエンド120によって、イベント・メッセージを受信またはアクセスすることができる。フロントエンド120は、解析されたイベント・メッセージを、イベントに関する情報、イベントのソース所有者、及び仮想計算システム110に提供され得る他の情報を決定または確立するために、追加のイベントメタデータ(例えば、イベント・ラッパー、メッセージ・キュー識別情報またはイベント・トリガのソースに関する情報)と組み合わせることができる。次に、フロントエンド120は、必要に応じて少なくとも初期認証及び/またはセキュリティ・チェックを実行して、安全なアクセス及びユーザ・コードの関連する実行を検証することができる。次に、フロントエンド120は、イベントに応答して呼び出される適切なプログラムまたはユーザ・コードにメッセージをルーティングするために、解析されたイベント・メッセージ及び追加のイベントメタデータを評価することができる。次に、フロントエンド120は、例えば、メッセージ及び/またはイベントメタデータの内容を、引数、変数、及びイベント・メッセージを処理するために選択されたユーザ・コードのプログラミング言語内の他の入力に変換することによって、ユーザ・コードを実行する要求にイベント・メッセージをマッピングすることができる。例えば、イベント・メッセージの署名者またはプロバイダに関連付けられた識別情報を含むユーザ・コードを実行する要求に、追加情報を加えることができる。次に、フロントエンド120は、プログラミング言語の関数、方法、または他のエントリポイントを(オプションとして、イベント・メッセージ及び/またはイベント・メタデータの態様に基づく条件で)呼び出して、要求の処理を開始することができる。
ユーザ・コードを実行する要求の処理中に、フロントエンド120は、イベント・メッセージまたはペイロードの処理を容易にするために追加の処理を実行し続けることができる。例えば、元のイベント・メッセージまたはペイロードが1つ以上のサブ・イベントの集合体を含む場合、各サブ・イベントは、一度に1つずつユーザ・コードを介して実行するために仮想計算システム110に中継されてもよい。フロントエンド120は、元の集合イベント・メッセージ・ペイロードを、複数の単一イベントに分割することを管理するように構成されてもよい。フロントエンド120は、例えば、元のイベント・メッセージの処理の一部として必要とされる中間または集合チェックポイント・サービスを容易にするように構成することもできる。例えば、複数のイベントを含む集合イベント・メッセージは、第1のイベントのいくつかが、後の第2、または第3のイベントの前に最初に処理及び完了されることを必要とする場合があり、この場合、フロントエンド120は、第1イベントの処理を容易にし、仮想計算システムによる処理/実行のために、後の第2または第3のイベントをルーティングする前に、第1イベントの完了ステータスをチェックするようにさらに構成することができる。
イベント・メッセージに対するユーザ・コードの処理/実行の後、フロントエンド120は、追加の後処理を提供するようにさらに構成されてもよい。例えば、フロントエンド120は、特定のクリーンアップ操作(例えば、関連するイベント・メッセージ/ラッパーに関するリースの解放)を実行し、結果計算を実行し、戻り値を(必要な場合)提供じ、チェックポイント操作(例えば上述のように、集合イベント・メッセージに関するサブ・イベントの処理の最中または処理の間に発生する可能性がある)を実行することができる。いくつかの実施形態では、フロントエンド120は、ユーザプログラムに代わって、イベントの完了(成功または不成功)に関連するロギング、監視、アラーム/通知、及び/または他のレポートを実行することができる。場合によっては、そのようなロギング、監視などは、ユーザ・コード自体の実行中に行われるロギング、監視、及び関連プロセスに加えて実行することができる。例えば、フロントエンド120は、イベントの結果(及びイベントに応答したユーザ・コードの関連する実行)について、例えばイベント・トリガリング・サービス106Aまたはユーザに戻して報告するように構成することができる。
当業者であれば、本開示に記載された機能の全てが、開示されたコンポーネント及び移動通信デバイスの1つ以上の物理プロセッサによって実行されるソフトウェアで具体化されてもよいことが理解されるであろう。ソフトウェアは、任意のタイプの不揮発性ストレージに持続的に記憶されてもよい。
特に言及しない限り、または使用されている文脈の中で他の意味で理解されない限り、とりわけ「can」、「could」、「might」または「may」などの条件付き言語は、一般に、特定の機能、構成要素及び/またはステップを、特定の実施形態が含むが、他の実施形態は含まない、ということを伝えることを意図するものである。従って、そのような条件付き言語は、機能、構成要素及び/またはステップが1つ以上の実施形態に何らかの形で必要であるということ、もしくは、1つ以上の実施形態が、これらの機能、構成要素及び/またはステップは任意の特定の実施形態に含まれるか、または実施されることになるかを、ユーザ入力またはプロンプティング有無にかかわらず検出するための論理を含む必要があるということを、暗示することを一般に意図してはいない。
本明細書に記載され、及び/または添付の図に示された流れ図における任意のプロセス記述、構成要素、またはブロックは、プロセス内の特定の論理関数またはステップを実施するための1つ以上の実行可能命令を含むモジュール、セグメント、またはコード部分を潜在的に表すものとして理解されるべきである。関連する機能に応じて、要素または機能が削除され、実質的に同時にまたは逆の順序を含めて、示されているかまたは議論された順序とは順不同に実行される代替実施形態は、本明細書に記載された実施形態の範囲内に含まれるということが、当業者には理解されるであろう。上述のデータ及び/またはコンポーネントは、CD■ROM、DVD■ROMまたはネットワーク・インタフェースなどのコンピュータ実行可能コンポーネントを格納することが可能なコンピュータに関連付けられたドライブ機構を使用して、コンピュータ可読記憶媒体に記憶され、コンピューティング・デバイスのメモリにロードされる、ということが、さらに理解されるであろう。さらに、コンポーネント及び/またはデータは、単一のデバイスに含めることができ、または任意の方法で分散させることができる。従って、汎用コンピューティング・デバイスは、上述した様々なデータ及び/またはコンポーネントの処理及び/または実行を伴う本開示のプロセス、アルゴリズム、及び方法を実施するように構成されてもよい。
上記の実施形態には多くの変形及び修正がなされてもよく、その構成要素は他の許容可能な例の中にあると理解されるべきであることを強調すべきである。そのような変更及び変形のすべては、本明細書で本開示の範囲内に含まれ、以下の請求項によって保護されることが意図される。
本開示の実施形態は、以下の条項を考慮して説明することができる。
1.仮想計算システム上でプログラム・コードを実行する要求のためのイベント・メッセージを提供するシステムであって、
少なくともユーザのプログラム・コードに関する情報を取り扱うプログラム的イベントを記憶するように構成された電子データ記憶と、
特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含むイベント・トリガリング・コンピューティング・システムであって、前記イベント・トリガリング・コンピューティング・システムがメッセージ・キュー・システムと通信する前記イベント・トリガリング・コンピューティング・システムを含み、前記イベント・トリガリング・コンピューティング・システムが少なくとも、
前記イベント・トリガリング・コンピューティング・システム上でイベントを検出し、前記イベントは第1の時点に検出され、
前記ユーザの前記プログラム・コードに関する情報を取り扱う前記プログラム的イベントに基づいて、前記イベントが仮想計算システム上の前記ユーザのプログラム・コード実行をトリガするように指示されているかを判定することであって、前記プログラム的イベントが前記電子データ記憶からアクセスされる情報を取り扱い、前記仮想計算システムが前記プログラム・コードを第2の時点に実行開始するように構成され、前記第1の時点と前記第2の時点との間の差として決定される時間幅が所定の継続時間よりも短いものであり、前記判定し、
前記イベントが前記ユーザの前記プログラム・コードの実行をトリガするように指定されていると判定することに応答して、前記データ記憶からアクセスされる前記ユーザのプログラム・コードに関する情報を取り扱う前記プログラム的イベントに、少なくとも部分的に基づいてイベント・メッセージを生成することであって、
前記イベント・メッセージは、前記仮想計算システム上のインスタンス上のコンテナ上の前記ユーザの代わりに前記プログラム・コードを実行するために使用可能なスキーマにおいて編成された、ユーザ・アカウント識別子及びプログラム的情報を少なくとも含み、前記プログラム的情報は、少なくとも(1)前記検出されたイベントに応答して前記実行するプログラム・コードの関数、及び(2)前記プログラム・コードの実行のための1つ以上のイベント・メッセージ・パラメータを指示し、前記生成し、
前記イベント・メッセージを中間メッセージ・キュー・システムに提供することであって、前記中間メッセージ・キュー・システムはさらに前記仮想計算システムと通信する、前記提供する、
ように構成された、
前記システム。
2.前記イベント・トリガリング・システムがリモート・ストレージ・システムであり、前記イベント・メッセージが前記リモート・ストレージ・システムにアップロードされるデータ・ファイルに応答して生成される、条項1に記載の前記システム。
3.前記イベント・トリガリング・システムがデータベース・システムであり、前記イベント・メッセージが前記データベース・システムにおいてアップデートされるデータベース・テーブルに応答して生成される、条項1に記載の前記システム。
4.前記所定の継続時間が100msである、条項1に記載の前記システム。
5.特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含む補助コンピューティング・システムであって、少なくとも、
仮想計算システム上でユーザのプログラム・コードの実行をトリガするように指定されたイベントを検出し、前記イベントは第1の時点に検出され、
前記イベントの検出に応答して、電子データ記憶からアクセスされる前記ユーザの前記プログラム・コードに関する情報を取り扱うプログラム的イベントに少なくとも部分的に基づいて、イベント・メッセージを生成するように構成される、前記補助コンピューティング・システムを含み、
前記イベント・メッセージは、前記仮想計算システム上のプログラム・コードの実行のためのユーザ・アカウント識別子及びメタデータを少なくとも含み、前記イベント・メタデータは前記実行するプログラム・コードの関数及び前記関数に対する1つ以上の入力パラメータを識別し、前記仮想計算システムは、第2の時点に前記プログラム・コードを開始するように構成され、前記第1の時点と前記第2の時点との間の差として決定される時間幅は所定の継続時間より短いものであり、
前記イベント・メッセージを中間メッセージ・キュー・システムに提供し、前記中間メッセージ・キュー・システムはさらに前記仮想計算システムと通信する、
前記システム。
6.前記補助コンピューティング・システムがリモート・ストレージ・システムであり、前記検出されたイベントが前記リモート・ストレージ・システムにアップロードされるデータ・ファイルである、条項5に記載の前記システム。
7.前記補助コンピューティング・システムがデータベース・システムであり、前記検出されたイベントが前記データベース内のデータベース・テーブル更新操作である、条項5に記載の前記システム。
8.前記補助コンピューティング・システムが前記仮想計算システムから分離して個別のサード・パーティ・コンピューティング・システムである、条項5に記載の前記システム。
9.前記イベント・メタデータが、実行する前記プログラムの前記関数に関するイベント・メッセージを処理するために、前記補助コンピューティング・システム及び前記仮想計算システムの両方によって使用される共有スキーマに従ってフォーマットされる、条項5に記載の前記システム。
10.前記共有スキーマがリモート・プロシージャ・コールの形式である、条項9に記載の前記システム。
11.前記イベント・メタデータが、少なくとも(1)オペレーティング・システムであって、前記プログラム・コードがその上で実行されるべき前記オペレーティング・システム、及び(2)前記プログラム・コードが書かれているプログラム言語、のインジケータを含む、条項5に記載の前記システム。
12.特定の実行可能命令と共に構成された1つ以上のコンピューティング・デバイスによって実施されるように、
イベント・トリガリング・サービス上のイベントを検出し、前記イベントは仮想計算システム上のユーザのプログラム・コードの実行をトリガするように指示され、前記検出は第1の時点に生じ、
前記イベントの検出に応答して、電子データ記憶からアクセスされる前記ユーザの前記プログラム・コードに関する情報を取り扱うプログラム的イベントに少なくとも部分的に基づいて、イベント・メッセージを生成し、
前記イベント・メッセージは、ユーザ・アカウント識別子及び前記仮想計算システム上のプログラム・コードの実行のために使用可能なイベント・メタデータを少なくとも含み、
前記イベント・メッセージを前記仮想計算システムに提供する
ことを含む、コンピュータによる実施方法。
13.前記イベント・トリガリング・サービスが、前記仮想計算システムから分離した個別のサード・パーティ・コンピューティング・システムによって提供される、条項12に記載の前記コンピュータによる実施方法。
14.前記仮想計算システムが、第2の時点に前記プログラム・コードの実行を開始するように構成され、前記第1の時点と前記第2の時点との間の差として決定される時間幅は所定の継続時間より短い、条項12に記載の前記コンピュータによる実施方法。
15.前記イベント・メッセージが、前記仮想計算システムからの要求に応答して前記仮想計算システムに直接提供される、条項14に記載の前記コンピュータによる実施方法。
16.前記イベント・メッセージが、中間メッセージ・キューによって前記仮想計算システムに間接的に提供される、条項12に記載の前記コンピュータによる実施方法。
17.1つ以上のコンピューティング・デバイスによって実行されると、
第1の時点で補助サービス上のイベントを検出し、前記イベントは仮想計算システム上のユーザのプログラム・コードの実行をトリガするように指示され、
前記イベントの検出に応答して、前記ユーザの前記プログラム・コードに関する情報を取り扱うイベントに少なくとも部分的に基づいて、イベント・メッセージを生成し、
前記イベントは電子データ記憶からアクセスされた情報を取り扱い、前記イベント・メッセージは、少なくともアカウント識別子及び前記仮想計算システム上のプログラム・コードの実行のためのイベント・メタデータを含み、前記イベント・メタデータは、前記実行するプログラム・コードの関数及び前記関数に対する1つ以上の入力パラメータを決定するために、前記仮想計算システムによって使用可能なデータを含み、
前記仮想計算システム上の前記プログラム・コードの実行のために前記イベント・メッセージを提供し、前記仮想計算システムは、第2の時点に前記プログラム・コードの実行を開始するように構成され、前記第1の時点と前記第2の時点との間の差として決定される時間幅は所定の継続時間より短いものである
ことを含む操作を実行するように、前記1つ以上のコンピューティング・デバイスを構成する、コンピュータ実行可能命令を記憶する、コンピュータ可読の非一時的記憶媒体。
18.前記補助サービスが、前記仮想計算システムから分離した個別のサード・パーティ・コンピューティング・システムによって提供される、条項17に記載の前記コンピュータ可読の非一時的記憶媒体。
19.前記補助サービスがリモート・ストレージ・サービスであり、前記イベントが前記リモート・ストレージ・システム上のデータ・ファイル・アップロード・イベントであり、前記実行するプログラム・コードの前記関数が、前記リモート・ストレージ・システム上の前記データ・ファイル・アップロード・イベントの検出に応答して実行されるように指示された、ファイル・アップロード・イベント・ハンドラである、条項17に記載の前記コンピュータ可読の非一時的記憶媒体。
20.前記イベント・メタデータが、実行する前記プログラムの前記関数に関するイベント・メッセージを処理するために、前記補助サービス及び前記仮想計算システムの両方によって使用される共有スキーマに従ってフォーマットされる、条項17に記載の前記コンピュータ可読の非一時的記憶媒体。

Claims (14)

  1. 仮想計算システム上でプログラム・コードを実行する要求のためのイベント・メッセージを提供するシステムであって、
    少なくともユーザのプログラム・コードに関する情報を取り扱うプログラム的イベントを記憶するように構成された電子データ記憶と、
    特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含むイベント・トリガリング・コンピューティング・システムと、を含み、
    前記イベント・トリガリング・コンピューティング・システムが少なくとも、
    前記イベント・トリガリング・コンピューティング・システム上でイベントを第1の時点に検出
    前記電子データ記憶の前記ユーザのプログラム・コードに関する情報を取り扱うプログラム的イベントに基づいて、前記プログラム的イベントが仮想計算システム上の前記ユーザのプログラム・コード実行をトリガするように指示されているかを判定し、
    前記イベントが前記ユーザの前記プログラム・コードの実行をトリガするように指定されていると判定することに応答して、前記データ記憶からアクセスされる前記ユーザのプログラム・コードに関する情報を取り扱う前記プログラム的イベントに基づいて、イベント・メッセージを生成
    前記イベント・メッセージは、前記仮想計算システム上のインスタンス上のコンテナ上の前記ユーザの代わりに前記プログラム・コードを実行するために使用可能なスキーマにおいて編成された、ユーザ・アカウント識別子並びにプログラム的情報を少なくとも含み、前記プログラム的情報は、少なくとも(1)前記検出されたイベントに応答して前記実行されるプログラム・コードの関数、及び(2)前記プログラム・コードの実行のために使用される1つ以上のパラメータの少なくとも一方を含み
    前記仮想計算システムは前記第1の時点との間の差が所定の継続時間よりも短い第2の時点に前記プログラム・コードの実行を開始する、システム。
  2. 前記イベント・トリガリング・コンピューティング・システムがリモート・ストレージ・システムであり、前記イベント・メッセージが前記リモート・ストレージ・システムにアップロードされるデータ・ファイルに応答して生成される、請求項1に記載の前記システム。
  3. 前記イベント・トリガリング・コンピューティング・システムがデータベース・システムであり、前記イベント・メッセージが前記データベース・システムにおいてアップデートされるデータベース・テーブルに応答して生成される、請求項1に記載の前記システム。
  4. 前記所定の継続時間が100msである、請求項1から請求項3のいずれか一項に記載の前記システム。
  5. 特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含む補助コンピューティング・システムであって、少なくとも、
    仮想計算システム上ユーザのプログラム・コードの実行をトリガするように指定されたイベントを補助コンピューティング・システムによって第1の時点に検出
    前記イベントの検出に応答して、電子データ記憶からアクセスされる前記ユーザの前記プログラム・コードに関する情報を取り扱うプログラム的イベントに基づいて、イベント・メッセージを生成
    前記イベント・メッセージは、(1)ユーザに関連するユーザ・アカウント識別子、(2)前記実行されるプログラム・コードの関数及び(3)前記関数に対して入力される1つ以上の入力パラメータの少なくとも1つを含み、
    前記仮想計算システムは、前記第1の時点と第2の時点との間の差所定の継続時間より短い前記第2の時点に前記プログラム・コードを開始する、システム。
  6. 前記補助コンピューティング・システムがリモート・ストレージ・システムであり、前記検出されたイベントが前記リモート・ストレージ・システムにアップロードされるデータ・ファイルである、請求項5に記載の前記システム。
  7. 前記補助コンピューティング・システムがデータベース・システムであり、前記検出されたイベントが前記データベース内のデータベース・テーブル更新操作である、請求項5に記載の前記システム。
  8. 前記補助コンピューティング・システムが前記仮想計算システムから分離して個別のサード・パーティ・コンピューティング・システムである、請求項5に記載の前記システム。
  9. 前記イベント・メッセージが、前記補助コンピューティング・システム及び前記仮想計算システムの両方によって使用される共有スキーマに従ってフォーマットされる、請求項5に記載の前記システム。
  10. 前記共有スキーマがリモート・プロシージャ・コールの形式である、請求項9に記載の前記システム。
  11. 前記イベント・メッセージが、少なくとも(1)オペレーティング・システムであって、前記プログラム・コードがその上で実行されるべき前記オペレーティング・システム、及び(2)前記プログラム・コードが書かれているプログラム言語、のインジケータを含む、請求項5から請求項10のいずれか一項に記載の前記システム。
  12. イベント・トリガリング・サービス上の仮想計算システム上のユーザのプログラム・コードの実行をトリガするように指示する、第1の時点に生じるイベントを検出し、
    前記イベントの検出に応答して、電子データ記憶からアクセスされる前記ユーザの前記プログラム・コードに関する情報を取り扱うプログラム的イベントにに基づいて、(1)ユーザに関連するユーザ・アカウント識別子及び(2)前記仮想計算システム上のプログラム・コードの実行のために使用する1つ以上のパラメータの少なくとも1つを含む、イベント・メッセージを生成し、
    前記イベント・メッセージを前記仮想計算システムに提供する、ことを含み、
    前記仮想計算システムが、前記第1の時点との間の差が所定の継続時間よりも短い第2の時点に前記プログラム・コードの実行を開始する
    コンピュータによる実施方法。
  13. 前記イベント・トリガリング・サービスが、前記仮想計算システムから分離した個別のサード・パーティ・コンピューティング・システムによって提供される、請求項12に記載の前記コンピュータによる実施方法。
  14. 前記イベント・メッセージが、前記仮想計算システムからの要求に応答して前記仮想計算システムに直接提供される、請求項12に記載の前記コンピュータによる実施方法。
JP2017516160A 2014-09-30 2015-09-29 プログラム・コードを実行するための要求に対するプログラム的イベント検出及びメッセージ生成 Active JP6352535B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/502,648 US9323556B2 (en) 2014-09-30 2014-09-30 Programmatic event detection and message generation for requests to execute program code
US14/502,648 2014-09-30
PCT/US2015/052838 WO2016053973A1 (en) 2014-09-30 2015-09-29 Programmatic event detection and message generation for requests to execute program code

Publications (2)

Publication Number Publication Date
JP2017534967A JP2017534967A (ja) 2017-11-24
JP6352535B2 true JP6352535B2 (ja) 2018-07-04

Family

ID=55584498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516160A Active JP6352535B2 (ja) 2014-09-30 2015-09-29 プログラム・コードを実行するための要求に対するプログラム的イベント検出及びメッセージ生成

Country Status (6)

Country Link
US (4) US9323556B2 (ja)
EP (2) EP3201768B1 (ja)
JP (1) JP6352535B2 (ja)
CN (1) CN107111508B (ja)
CA (1) CA2962633C (ja)
WO (1) WO2016053973A1 (ja)

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811363B1 (en) * 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9830175B1 (en) * 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9858048B1 (en) 2016-03-16 2018-01-02 Amazon Technologies, Inc. Deterministic execution for visually developed operations
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10135837B2 (en) 2016-05-17 2018-11-20 Amazon Technologies, Inc. Versatile autoscaling for containers
US10452440B1 (en) * 2016-06-07 2019-10-22 PC Drivers Headquarters, Inc. Systems and methods of optimized tuning of resources
CN107508787B (zh) * 2016-06-14 2019-03-01 腾讯科技(深圳)有限公司 一种任务执行方法、装置及系统
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
WO2018005500A1 (en) 2016-06-28 2018-01-04 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
EP3479229A1 (en) 2016-06-30 2019-05-08 Amazon Technologies Inc. On-demand code execution using cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US20180091449A1 (en) * 2016-09-26 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Event-driven policy-based distributed container management system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US20180113748A1 (en) * 2016-10-21 2018-04-26 Hewlett Packard Enterprise Development Lp Automated configuration of virtual infrastructure
US20180121260A1 (en) * 2016-10-31 2018-05-03 Intuit Inc. Defining variability schemas in an application programming interface (api)
US10430249B2 (en) * 2016-11-02 2019-10-01 Red Hat Israel, Ltd. Supporting quality-of-service for virtual machines based on operational events
US10409642B1 (en) 2016-11-22 2019-09-10 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US10783016B2 (en) 2016-11-28 2020-09-22 Amazon Technologies, Inc. Remote invocation of code execution in a localized device coordinator
US10216540B2 (en) 2016-11-28 2019-02-26 Amazon Technologies, Inc. Localized device coordinator with on-demand code execution capabilities
US10608973B2 (en) 2016-11-28 2020-03-31 Amazon Technologies, Inc. Embedded codes in messaging protocol communications
US10452439B2 (en) 2016-11-28 2019-10-22 Amazon Technologies, Inc. On-demand code execution in a localized device coordinator
US10417049B2 (en) 2016-11-28 2019-09-17 Amazon Technologies, Inc. Intra-code communication in a localized device coordinator
CN110352401B (zh) 2016-11-28 2023-02-17 亚马逊技术有限公司 具有按需代码执行能力的本地装置协调器
US10372486B2 (en) 2016-11-28 2019-08-06 Amazon Technologies, Inc. Localized device coordinator
EP3545414A1 (en) * 2016-11-28 2019-10-02 Amazon Technologies Inc. On-demand code execution in a localized device coordinator
US10637817B2 (en) 2016-11-28 2020-04-28 Amazon Technologies, Inc. Managing messaging protocol communications
US20180196666A1 (en) * 2017-01-11 2018-07-12 Machine Zone, Inc. System and method for managing dynamic design data for a virtual environment
US10776081B2 (en) * 2017-03-21 2020-09-15 O.C. Tanner Company Systems and methods for utilizing webhooks integrated in platform-as-a-service supported application development and deployment
KR102611085B1 (ko) * 2017-04-07 2023-12-08 킴벌리-클라크 월드와이드, 인크. 소셜 미디어 대화에 응답하여 자원을 할당하기 위한 방법 및 시스템
EP3388943A1 (en) * 2017-04-13 2018-10-17 Nokia Solutions and Networks Oy Method and apparatus for managing events in a network that adopts event-driven programming framework
US11048995B2 (en) * 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
JP6677677B2 (ja) * 2017-06-21 2020-04-08 株式会社東芝 情報処理装置、情報処理システム、情報処理方法およびプログラム
US10725763B1 (en) 2017-06-28 2020-07-28 Amazon Technologies, Inc. Update and rollback of configurations in a cloud-based architecture
US10379838B1 (en) * 2017-06-28 2019-08-13 Amazon Technologies, Inc. Update and rollback of code and API versions
US10409654B2 (en) 2017-07-13 2019-09-10 International Business Machines Corporation Facilitating event-driven processing using unikernels
US10565044B2 (en) * 2017-11-14 2020-02-18 Sap Se Message handling related to non-parallelizable functionality
CN109840103B (zh) * 2017-11-27 2022-10-25 西门子(中国)有限公司 应用程序容器的更新方法、装置和存储介质
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10552141B1 (en) * 2018-02-26 2020-02-04 Amazon Technologies, Inc. Upgrading an execution environment for event-driven functions
US10884788B2 (en) * 2018-04-03 2021-01-05 Amazon Technologies, Inc. On-demand code execution with limited memory footprint
WO2019195086A1 (en) 2018-04-03 2019-10-10 Walmart Apollo, Llc Customized service request permission control system
US10120926B1 (en) * 2018-05-31 2018-11-06 Capital One Services, Llc Attribute sharing platform for data processing systems
CN109032884B (zh) * 2018-06-11 2021-05-28 平安科技(深圳)有限公司 一种监控数据的处理方法、服务器及计算机可读存储介质
CN108958930A (zh) * 2018-06-19 2018-12-07 北京百度网讯科技有限公司 容器资源的处理方法、装置及设备
EP3811209A1 (en) 2018-06-25 2021-04-28 Amazon Technologies Inc. Execution of auxiliary functions in an on-demand network code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11316857B2 (en) * 2018-07-11 2022-04-26 Cyber Ark Software Ltd. Automated creation of dynamic privileged access resources
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN109189463A (zh) * 2018-08-28 2019-01-11 杭州百腾教育科技有限公司 一种对程序代码自动进行判断的控制方法及控制装置
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11449815B2 (en) * 2018-11-08 2022-09-20 Airslate, Inc. Automated electronic document workflows
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11200331B1 (en) 2018-11-21 2021-12-14 Amazon Technologies, Inc. Management of protected data in a localized device coordinator
US11327814B2 (en) * 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
CN110032568B (zh) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
US11232192B2 (en) * 2019-01-03 2022-01-25 NeuVector, Inc. Automatic deployment of application security policy using application manifest and dynamic process analysis in a containerization environment
CN109873863B (zh) * 2019-01-18 2021-10-15 北京百度网讯科技有限公司 服务的异步调用方法和装置
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
CN109992418B (zh) * 2019-03-25 2023-01-06 华南理工大学 Sla感知的多租户大数据平台资源优先级调度方法及系统
US11372654B1 (en) 2019-03-25 2022-06-28 Amazon Technologies, Inc. Remote filesystem permissions management for on-demand code execution
CN113692577A (zh) * 2019-03-27 2021-11-23 亚马逊技术有限公司 延续工作流
US10958713B2 (en) * 2019-04-30 2021-03-23 Verizon Digital Media Services Inc. Function manager for an edge compute network
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
WO2020264431A1 (en) 2019-06-28 2020-12-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
WO2021061932A1 (en) 2019-09-27 2021-04-01 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
WO2021061620A1 (en) 2019-09-27 2021-04-01 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
WO2021061820A1 (en) 2019-09-27 2021-04-01 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
CN114586010B (zh) 2019-09-27 2023-05-09 亚马逊技术有限公司 对象存储服务的输出路径中对象过滤代码的按需执行
WO2021167659A1 (en) * 2019-11-14 2021-08-26 Trideum Corporation Systems and methods of monitoring and controlling remote assets
WO2021108435A1 (en) 2019-11-27 2021-06-03 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
CN111158928B (zh) * 2019-12-18 2024-04-05 东软集团股份有限公司 分布式系统及通信方法
US11163619B2 (en) * 2019-12-30 2021-11-02 Motorola Solutions, Inc. Timer-based message handling for executing stateful services in a stateless environment
CN113127162B (zh) * 2019-12-31 2022-04-26 阿里巴巴集团控股有限公司 自动化任务执行方法、装置、电子设备及计算机存储介质
US11171853B2 (en) * 2020-01-30 2021-11-09 Ciena Corporation Constraint-based event-driven telemetry
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
EP4222630A1 (en) 2020-09-29 2023-08-09 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US20220269523A1 (en) * 2021-02-25 2022-08-25 The Bank Of New York Mellon System and method of code execution at a virtual machine allowing for extendibility and monitoring of customized applications and services
US20220292065A1 (en) * 2021-03-15 2022-09-15 Microsoft Technology Licensing, Llc Distributed deduplication of incoming cloud computing requests
CN113254238B (zh) * 2021-06-21 2021-09-07 中国人民解放军国防科技大学 一种基于事件驱动的流-固耦合模块集成方法和装置
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11875190B2 (en) 2022-03-15 2024-01-16 Liveperson, Inc. Methods and systems for AI-based load balancing of processing resources in distributed environments
US11875195B2 (en) 2022-03-15 2024-01-16 Liveperson, Inc. Methods and systems for dynamic load balancing of processing resources in distributed environments
WO2023192308A1 (en) 2022-03-30 2023-10-05 Amazon Technologies, Inc. Tightly coupled parallel applications on a serverless computing system
US20240103942A1 (en) 2022-09-27 2024-03-28 Amazon Technologies, Inc. On-demand code execution data management

Family Cites Families (498)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949254A (en) 1988-09-29 1990-08-14 Ibm Corp. Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
US5283888A (en) 1991-08-27 1994-02-01 International Business Machines Corporation Voice processing interface unit employing virtual screen communications for accessing a plurality of primed applications
US5970488A (en) 1997-05-05 1999-10-19 Northrop Grumman Corporation Real-time distributed database system and method
JPH1153326A (ja) 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
US6463509B1 (en) 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6501736B1 (en) 1999-03-19 2002-12-31 Lucent Technologies Inc. System for increasing the call capacity of a wireless communication system
US6523035B1 (en) 1999-05-20 2003-02-18 Bmc Software, Inc. System and method for integrating a plurality of disparate database utilities into a single graphical user interface
US7472349B1 (en) 1999-06-01 2008-12-30 Oracle International Corporation Dynamic services infrastructure for allowing programmatic access to internet and other resources
US6708276B1 (en) 1999-08-03 2004-03-16 International Business Machines Corporation Architecture for denied permissions in Java
US20050027611A1 (en) 1999-08-26 2005-02-03 Wharton Brian K. Electronic commerce systems and methods providing multiple-vendor searches
US6854114B1 (en) 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
DE10048942B4 (de) 1999-12-01 2008-07-03 International Business Machines Corp. Verfahren und System zur Wartung von Software über ein Netz
JP2001331333A (ja) 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム及び計算機システムの制御方法
US20040098154A1 (en) 2000-10-04 2004-05-20 Mccarthy Brendan Method and apparatus for computer system engineering
US8719326B2 (en) 2003-08-18 2014-05-06 S.F. Ip Properties 14 Llc Adaptive data transformation engine
JP2002287974A (ja) 2001-03-26 2002-10-04 Ricoh Co Ltd アプリケーションプログラムの登録制御及び起動制御に係る方法及び該制御装置
US7009939B2 (en) 2001-05-21 2006-03-07 Lucent Technologies Inc. Adaptive resource management in a communication system
KR20040022451A (ko) 2001-07-16 2004-03-12 유킹 렌 임베디드 소프트웨어 업데이트 시스템
US20040205493A1 (en) 2001-08-08 2004-10-14 Simpson Shell S. Web based imaging application that creates customized content based on user selections
US7028030B2 (en) 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US7594182B2 (en) 2001-10-12 2009-09-22 National Insturments Corporation Dynamic and user-defined events for a graphical program
US7174566B2 (en) 2002-02-01 2007-02-06 Intel Corporation Integrated network intrusion detection
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US8527408B2 (en) 2002-05-06 2013-09-03 Bottom Line Technologies (De), Inc. Integrated payment system
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7228354B2 (en) 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7386855B2 (en) 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
JP2004102597A (ja) 2002-09-09 2004-04-02 Fujitsu Ltd コンパイル処理プログラム、コンパイル処理方法、およびコンパイル処理プログラム記録媒体
CN100518176C (zh) 2002-12-02 2009-07-22 Sap股份公司 实现有状态网络应用的会话返回
US7031958B2 (en) 2003-02-06 2006-04-18 International Business Machines Corporation Patterned based query optimization
US7774191B2 (en) 2003-04-09 2010-08-10 Gary Charles Berkowitz Virtual supercomputer
US20050193113A1 (en) 2003-04-14 2005-09-01 Fujitsu Limited Server allocation control method
US20040249947A1 (en) 2003-05-22 2004-12-09 Hewlett-Packard Development Company, L.P. Concurrent cluster environment
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7441244B2 (en) 2003-12-10 2008-10-21 International Business Machines Corporation Workload scheduler with cumulative weighting indexes
US7743029B2 (en) 2003-12-30 2010-06-22 Sap Ag Log configuration and online deployment services
US20050193283A1 (en) 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
JP2005198201A (ja) 2004-01-09 2005-07-21 Ntt Docomo Inc ネットワークトポロジー構成方法及びノード
US7665090B1 (en) 2004-03-08 2010-02-16 Swsoft Holdings, Ltd. System, method, and computer program product for group scheduling of computer resources
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7587721B2 (en) 2004-05-20 2009-09-08 Sap Ag Sharing objects in runtime systems
US7359834B2 (en) 2004-08-13 2008-04-15 Sun Microsystems, Inc. Monitoring system-calls to identify runaway processes within a computer system
US20060080678A1 (en) 2004-09-07 2006-04-13 Bailey Mark W Task distribution method for protecting servers and tasks in a distributed system
US8146073B2 (en) 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
JP2006107599A (ja) 2004-10-04 2006-04-20 Sekisui Chem Co Ltd 光ディスク
US20060129684A1 (en) 2004-11-10 2006-06-15 Chutney Technologies, Inc. Apparatus and method for distributing requests across a cluster of application servers
US8321554B2 (en) 2004-12-17 2012-11-27 International Business Machines Corporation System and program to automatically identify a server on which to deploy an application
FR2881854B1 (fr) 2005-02-04 2008-01-11 Radiotelephone Sfr Procede de gestion securisee de l'execution d'une application
CN100337218C (zh) 2005-02-23 2007-09-12 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
WO2006112980A2 (en) 2005-03-16 2006-10-26 Cluster Resources, Inc. Reserving resources in an on-demand compute environment from a local compute environment
US20060242647A1 (en) 2005-04-21 2006-10-26 Kimbrel Tracy J Dynamic application placement under service and memory constraints
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7707579B2 (en) 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US8571913B2 (en) 2005-08-04 2013-10-29 Jeffrey K. Johnson System and method for managing data within a calendaring framework
WO2007022454A2 (en) 2005-08-18 2007-02-22 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
US7730464B2 (en) 2005-09-14 2010-06-01 Microsoft Corporation Code compilation management service
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
JP4650203B2 (ja) 2005-10-20 2011-03-16 株式会社日立製作所 情報システム及び管理計算機
US7756972B2 (en) 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
US8266609B2 (en) 2005-12-07 2012-09-11 Microsoft Corporation Efficient placement of software transactional memory operations around procedure calls
US7725574B2 (en) 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7818798B2 (en) 2006-02-03 2010-10-19 Microsoft Corporation Software system with controlled access to objects
JP2010518462A (ja) 2006-02-13 2010-05-27 マリア ガオス 選択されたアプリケーションに基づきプラットフォーム・エミュレーションを生成して実行するシステムおよび方法
US20070220009A1 (en) 2006-03-15 2007-09-20 Morris Robert P Methods, systems, and computer program products for controlling access to application data
US7792944B2 (en) 2006-03-31 2010-09-07 Amazon Technologies, Inc. Executing programs based on user-specified constraints
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8190682B2 (en) 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7716446B1 (en) 2006-04-27 2010-05-11 Vmware, Inc. System and method for cooperative virtual machine memory scheduling
US9754265B2 (en) 2006-05-01 2017-09-05 At&T Intellectual Property I, L.P. Systems and methods to automatically activate distribution channels provided by business partners
US8046765B2 (en) 2006-07-25 2011-10-25 Hewlett-Packard Development Company, L.P. System and method for determining allocation of resource access demands to different classes of service based at least in part on permitted degraded performance
US8209695B1 (en) 2006-07-28 2012-06-26 Hewlett-Packard Development Company, L.P. Reserving resources in a resource-on-demand system for user desktop utility demand
US8015294B2 (en) 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US7823186B2 (en) 2006-08-24 2010-10-26 Novell, Inc. System and method for applying security policies on multiple assembly caches
CA2557343C (en) 2006-08-28 2015-09-22 Ibm Canada Limited-Ibm Canada Limitee Runtime code modification in a multi-threaded environment
US7996855B2 (en) 2006-09-15 2011-08-09 Oracle International Corporation Personal messaging application programming interface for integrating an application with groupware systems
US20150052258A1 (en) 2014-09-29 2015-02-19 Weaved, Inc. Direct map proxy system and protocol
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
US8010990B2 (en) 2006-10-26 2011-08-30 Intel Corporation Acceleration of packet flow classification in a virtualized system
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8185893B2 (en) 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US7644204B2 (en) 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
US8315171B2 (en) 2006-10-31 2012-11-20 Oracle America, Inc. Adaptive management of computing resources
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8112747B2 (en) * 2006-11-27 2012-02-07 Sap Ag Integrated software support for a distributed business application with seamless backend communications
CN101196974B (zh) 2006-12-06 2011-08-24 国际商业机器公司 用于软件应用程序的自动配置的方法和系统
US8996864B2 (en) 2006-12-22 2015-03-31 Virtuallogix Sa System for enabling multiple execution environments to share a device
WO2008084826A1 (ja) 2007-01-11 2008-07-17 Nec Corporation プロビジョニングシステム、方法、及び、プログラム
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US8655623B2 (en) 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method
US20080201455A1 (en) 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
US8793676B2 (en) 2007-02-15 2014-07-29 Microsoft Corporation Version-resilient loader for custom code runtimes
JP5018133B2 (ja) 2007-02-27 2012-09-05 富士通株式会社 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
US8065682B2 (en) 2007-02-27 2011-11-22 Microsoft Corporation Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
US8856782B2 (en) * 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
GB2461193B (en) 2007-03-20 2011-11-23 Fujitsu Ltd Update system, program execution device, and computer program
US8065676B1 (en) 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
US8219987B1 (en) 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US8051266B2 (en) 2007-06-11 2011-11-01 International Business Machines Corporation Automatic memory management (AMM)
US9495152B2 (en) 2007-06-22 2016-11-15 Red Hat, Inc. Automatic baselining of business application service groups comprised of virtual machines
US20090006897A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Automated service testing
US8161476B2 (en) 2007-07-04 2012-04-17 International Business Machines Corporation Processor exclusivity in a partitioned system
US8074229B2 (en) 2007-07-18 2011-12-06 Sap Ag Co-execution of objects from divergent runtime environments
US20090055810A1 (en) 2007-08-21 2009-02-26 Nce Technologies Inc. Method And System For Compilation And Execution Of Software Codes
WO2009029549A2 (en) 2007-08-24 2009-03-05 Virtualmetrix, Inc. Method and apparatus for fine grain performance management of computer systems
US8171473B2 (en) 2007-08-31 2012-05-01 International Business Machines Corporation Method and apparatus for determining a service cluster topology based on static analysis
US7827299B2 (en) 2007-09-11 2010-11-02 International Business Machines Corporation Transitioning between historical and real time data streams in the processing of data change messages
US8402472B2 (en) * 2007-09-14 2013-03-19 International Business Machines Corporation Network management system event notification shortcut
US20090172715A1 (en) 2007-09-28 2009-07-02 Xcerion Ab Network operating system
US8166304B2 (en) 2007-10-02 2012-04-24 International Business Machines Corporation Support for multiple security policies on a unified authentication architecture
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8127284B2 (en) 2007-10-16 2012-02-28 Microsoft Corporation On-demand loading of types of software code of a program executing on a computing device
US8566835B2 (en) 2007-12-13 2013-10-22 Hewlett-Packard Development Company, L.P. Dynamically resizing a virtual machine container
US20110040812A1 (en) 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US8473956B2 (en) 2008-01-15 2013-06-25 Microsoft Corporation Priority based scheduling system for server
US8560694B2 (en) 2008-02-01 2013-10-15 Microsoft Corporation Virtual application server with version control
US9928260B2 (en) 2008-02-11 2018-03-27 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
US8156503B2 (en) 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
US8387075B1 (en) 2008-03-28 2013-02-26 Emc Corporation Common scheduling and synchronization primitives
US7886021B2 (en) 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US10127059B2 (en) 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US20090300599A1 (en) 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems
JP5120121B2 (ja) 2008-07-15 2013-01-16 コニカミノルタビジネステクノロジーズ株式会社 中継サーバ、中継方法および中継プログラム
JP5157717B2 (ja) 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
US20100036925A1 (en) 2008-08-07 2010-02-11 Tactara, Llc Alias management platforms
JP5215779B2 (ja) 2008-09-01 2013-06-19 キヤノン株式会社 情報処理装置及び情報処理方法
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8381231B2 (en) 2008-09-09 2013-02-19 Dell Products L.P. Deployment and management of virtual containers
US20100094816A1 (en) 2008-09-09 2010-04-15 Lockheed Martin Corporation Safety-Critical Data Checking In Object-Oriented Systems
US20100070678A1 (en) 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8468535B1 (en) 2008-09-23 2013-06-18 Gogrid, LLC Automated system and method to provision and allocate hosting resources
US20100106926A1 (en) 2008-10-25 2010-04-29 International Business Machines Corporation Second failure data capture problem determination using user selective memory protection to trace application failures
US9141381B2 (en) 2008-10-27 2015-09-22 Vmware, Inc. Version control environment for virtual machines
US9176786B2 (en) 2008-11-04 2015-11-03 Novell, Inc. Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function
US8214795B2 (en) 2008-11-26 2012-07-03 Optumsoft, Inc. Efficient automated translation of procedures in constraint-based language
US20100131959A1 (en) 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8769206B2 (en) 2009-01-20 2014-07-01 Oracle International Corporation Methods and systems for implementing transcendent page caching
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8336049B2 (en) 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
JP5419500B2 (ja) 2009-03-12 2014-02-19 キヤノン株式会社 プログラムおよび情報処理装置
WO2010116676A1 (ja) 2009-03-30 2010-10-14 日本電気株式会社 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
US8321558B1 (en) 2009-03-31 2012-11-27 Amazon Technologies, Inc. Dynamically monitoring and modifying distributed execution of programs
US9563866B2 (en) 2009-04-06 2017-02-07 Accenture Global Services Limited Estimating a computing job complexity
US8291416B2 (en) 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US10768611B2 (en) 2009-06-16 2020-09-08 Applied Materials, Inc. Counter and timer constraints
US8955108B2 (en) 2009-06-17 2015-02-10 Microsoft Corporation Security virtual machine for advanced auditing
US8140668B2 (en) 2009-06-24 2012-03-20 Red Hat Israel, Ltd. Pre-scheduling the timelines of virtual machines
US8799879B2 (en) 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
CA2674402C (en) 2009-07-31 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Optimizing on demand allocation of virtual machines using a stateless preallocation pool
US8271653B2 (en) 2009-08-31 2012-09-18 Red Hat, Inc. Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
US20110055683A1 (en) 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
JP5069730B2 (ja) * 2009-09-15 2012-11-07 ヤフー株式会社 イベント通知機能提供装置、イベント通知機能提供方法及びイベント通知機能提供プログラム
US8448165B1 (en) 2009-09-15 2013-05-21 Symantec Corporation System and method for logging operations of virtual machines
US8276139B2 (en) 2009-09-30 2012-09-25 International Business Machines Corporation Provisioning virtual machine placement
US8412856B2 (en) 2009-10-26 2013-04-02 Sony Computer Entertainment America Llc. File input/output scheduler using immediate data chunking
US9086922B2 (en) 2009-10-26 2015-07-21 Microsoft Technology Licensing, Llc Opportunistically scheduling and adjusting time slices
US8875128B2 (en) 2009-11-30 2014-10-28 Red Hat Israel, Ltd. Controlling permissions in virtualization environment using hierarchical labeling
US8311032B2 (en) 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US8689213B2 (en) 2009-12-14 2014-04-01 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US8683465B2 (en) 2009-12-18 2014-03-25 International Business Machines Corporation Virtual image deployment with a warm cache
US20110154353A1 (en) 2009-12-22 2011-06-23 Bmc Software, Inc. Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
JP5282046B2 (ja) 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
US8346935B2 (en) 2010-01-15 2013-01-01 Joyent, Inc. Managing hardware resources by sending messages amongst servers in a data center
US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8478878B2 (en) 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
US8271814B2 (en) 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
US8413142B2 (en) 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US9229783B2 (en) 2010-03-31 2016-01-05 International Business Machines Corporation Methods and apparatus for resource capacity evaluation in a system of virtual containers
US8996611B2 (en) 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8713565B2 (en) * 2010-04-28 2014-04-29 International Business Machines Corporation Automated tuning in a virtual machine computing environment
US8566792B2 (en) 2010-05-07 2013-10-22 Salesforce, Inc. Validating visual components
US9461996B2 (en) 2010-05-07 2016-10-04 Citrix Systems, Inc. Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application
EP2569698B1 (en) 2010-05-10 2019-07-10 Citrix Systems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
JP5513997B2 (ja) 2010-06-07 2014-06-04 日本電信電話株式会社 通信システムおよび通信システム更新方法
US8656387B2 (en) 2010-06-17 2014-02-18 Gridcentric Inc. Method and system for workload distributing and processing across a network of replicated virtual machines
US8887163B2 (en) 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
US8739170B1 (en) 2010-06-30 2014-05-27 Amazon Technologies, Inc. Managing requests for computing capacity
US8473949B2 (en) 2010-07-08 2013-06-25 Microsoft Corporation Methods for supporting users with task continuity and completion across devices and time
US20120016721A1 (en) 2010-07-15 2012-01-19 Joseph Weinman Price and Utility Optimization for Cloud Computing Resources
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8612413B2 (en) 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US8490088B2 (en) 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8694400B1 (en) 2010-09-14 2014-04-08 Amazon Technologies, Inc. Managing operational throughput for shared resources
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP5653151B2 (ja) 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US8661120B2 (en) 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8661076B2 (en) 2010-09-23 2014-02-25 Salesforce.Com, Inc. Business networking information feed alerts
CN103154926B (zh) 2010-09-30 2016-06-01 亚马逊技术股份有限公司 用专用实施资源进行虚拟资源成本追踪
CN103154890B (zh) 2010-10-12 2016-04-13 富士通株式会社 模拟装置、方法以及程序
US9069610B2 (en) 2010-10-13 2015-06-30 Microsoft Technology Licensing, Llc Compute cluster with balanced resources
US8607054B2 (en) 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US8375389B2 (en) 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US9753713B2 (en) 2010-10-22 2017-09-05 Microsoft Technology Licensing, Llc Coordinated upgrades in distributed systems
US9645839B2 (en) 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US8756696B1 (en) 2010-10-30 2014-06-17 Sra International, Inc. System and method for providing a virtualized secure data containment service with a networked environment
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US9081613B2 (en) 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
RO127693A2 (ro) 2010-12-02 2012-07-30 Adobe Systems Incorporated Transmitere html nativă integrată
US20120151479A1 (en) 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US8745734B1 (en) 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8713566B2 (en) 2011-01-31 2014-04-29 International Business Machines Corporation Method and system for delivering and executing virtual container on logical partition of target computing device
US8555281B1 (en) 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
US8495648B1 (en) 2011-02-28 2013-07-23 Amazon Technologies, Inc. Managing allocation of computing capacity
US9015709B2 (en) 2011-03-08 2015-04-21 Rackspace Us, Inc. Hypervisor-agnostic method of configuring a virtual machine
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
WO2012125564A1 (en) 2011-03-11 2012-09-20 Resource Interactive, Llc Payment card industry data security standard compliant proxy service
US8429282B1 (en) 2011-03-22 2013-04-23 Amazon Technologies, Inc. System and method for avoiding system overload by maintaining an ideal request rate
US8910156B1 (en) 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency
US20140129667A1 (en) 2011-06-14 2014-05-08 Nec Corporation Content delivery system, controller and content delivery method
FR2977116A1 (fr) 2011-06-27 2012-12-28 France Telecom Procede de fourniture de service d'execution de logiciel a la demande
US9450838B2 (en) 2011-06-27 2016-09-20 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
WO2013002777A1 (en) 2011-06-29 2013-01-03 Hewlett-Packard Development Company, L.P. Application migration with dynamic operating system containers
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US8671407B2 (en) 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US8819679B2 (en) 2011-07-28 2014-08-26 International Business Machines Corporation Methods and systems for on-boarding applications to a cloud
US8533715B2 (en) 2011-08-09 2013-09-10 International Business Machines Corporation Virtual machine management
US9152405B2 (en) 2011-08-22 2015-10-06 International Business Machines Corporation Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud
WO2013029051A2 (en) 2011-08-25 2013-02-28 to fuVIRTUSTREAM, INC. Systems and methods of host-aware resource management involving cluster-based resource pools
US9516368B2 (en) 2011-08-25 2016-12-06 At&T Intellectual Property I, L.P. System for consolidating heterogeneous data centers through virtualization of services
US8898676B2 (en) 2011-08-26 2014-11-25 Vmware, Inc. Management of software updates for software components in a virtualized environment of a datacenter using dependency relationships
US8832035B2 (en) 2011-08-30 2014-09-09 Netapp, Inc. System and method for retaining deduplication in a storage object after a clone split operation
US8635607B2 (en) 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US20130061220A1 (en) 2011-09-06 2013-03-07 Xerox Corporation Method for on-demand inter-cloud load provisioning for transient bursts of computing needs
US8863082B2 (en) 2011-09-07 2014-10-14 Microsoft Corporation Transformational context-aware data source management
JP5740257B2 (ja) 2011-09-08 2015-06-24 株式会社日立ソリューションズ OSGiプログラム、OSGiシステム
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
US8839035B1 (en) 2011-09-14 2014-09-16 Amazon Technologies, Inc. Cloud-based test execution
US8825863B2 (en) 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US8825964B1 (en) 2011-09-26 2014-09-02 Emc Corporation Adaptive integration of cloud data services with a data storage system
US9225772B2 (en) 2011-09-26 2015-12-29 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US9497136B1 (en) 2011-09-28 2016-11-15 Emc Corporation Method and system for providing usage metrics to manage utilzation of cloud computing resources
US8424026B1 (en) * 2011-10-03 2013-04-16 Cisco Technology, Inc. Execution of applications distributed across a plurality of computing devices
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US8914515B2 (en) 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
US9213503B2 (en) * 2011-10-30 2015-12-15 Hewlett-Packard Development Company, L.P. Service provider management of virtual instances corresponding to hardware resources managed by other service providers
US9003141B2 (en) 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
EP2782039B1 (en) 2011-11-15 2021-10-13 Japan Science and Technology Agency Program analysis/verification service provision system, control method for same, control program, control program for directing computer to function, program analysis/verification device, program analysis/verification tool management device
CA2889387C (en) 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement
US8924954B2 (en) 2011-11-22 2014-12-30 Huawei Technologies Co., Ltd. Application software installation method and application software installation apparatus
TW201322022A (zh) 2011-11-24 2013-06-01 Alibaba Group Holding Ltd 分散式資料流處理方法及其系統
US8826277B2 (en) 2011-11-29 2014-09-02 International Business Machines Corporation Cloud provisioning accelerator
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc FLEXIBLE AND DYNAMIC INTEGRATION SCHEMES OF A TRAFFIC MANAGEMENT SYSTEM WITH VARIOUS NETWORK OPERATORS TO REDUCE NETWORK TRAFFIC
US8769519B2 (en) 2011-12-08 2014-07-01 Microsoft Corporation Personal and pooled virtual machine update
US8694995B2 (en) 2011-12-14 2014-04-08 International Business Machines Corporation Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
US9635132B1 (en) 2011-12-15 2017-04-25 Amazon Technologies, Inc. Service and APIs for remote volume-based block storage
US9609020B2 (en) 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US20130179894A1 (en) 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US9170849B2 (en) 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US20130185729A1 (en) * 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures
US9223607B2 (en) * 2012-01-17 2015-12-29 Microsoft Technology Licensing, Llc System for replicating or migrating virtual machine operations log by throttling guest write iOS based on destination throughput
US9208007B2 (en) 2012-01-18 2015-12-08 International Business Machines Corporation Open resilience framework for simplified and coordinated orchestration of multiple availability managers
KR101658070B1 (ko) 2012-01-26 2016-09-22 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 연속 월드 스위치 보안을 갖는 데이터 센터
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9110728B2 (en) 2012-01-31 2015-08-18 Vmware, Inc. Elastic allocation of computing resources to software applications
WO2013119195A1 (en) 2012-02-06 2013-08-15 Empire Technology Development Llc Multicore computer system with cache use based adaptive scheduling
TWI459296B (zh) 2012-02-21 2014-11-01 Hon Hai Prec Ind Co Ltd 增加伺服器的虛擬機配置數量的方法
US20130227710A1 (en) 2012-02-27 2013-08-29 Computer Associates Think, Inc. System and method for securing leased images in a cloud environment
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9009734B2 (en) 2012-03-06 2015-04-14 Autodesk, Inc. Application level speculative processing
US8725702B1 (en) 2012-03-15 2014-05-13 Symantec Corporation Systems and methods for repairing system files
US9026658B2 (en) 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
US20130263117A1 (en) 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio
US9462081B2 (en) 2012-04-17 2016-10-04 Igt Cloud based virtual environment validation
US9256413B2 (en) 2012-04-17 2016-02-09 Sap Se Automatic identification of services
US8997093B2 (en) 2012-04-17 2015-03-31 Sap Se Application installation management by selectively reuse or terminate virtual machines based on a process status
US9183019B2 (en) 2012-04-25 2015-11-10 Empire Technology Development Llc Certification for flexible resource demand applications
US8918510B2 (en) 2012-04-27 2014-12-23 Hewlett-Packard Development Company, L. P. Evaluation of cloud computing services
BR112014018142A8 (pt) 2012-04-30 2017-07-11 Hewlett Packard Development Co Sistema de gestão automática de eventos para uma rede na nuvem, método para administrar eventos para serviços na nuvem e sistema de gerenciamento de eventos em nuvem
US8955091B2 (en) 2012-04-30 2015-02-10 Zscaler, Inc. Systems and methods for integrating cloud services with information management systems
US8843935B2 (en) 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
GB2501757A (en) * 2012-05-04 2013-11-06 Ibm Instrumentation of software applications for configuration thereof
EP2663052B1 (en) 2012-05-09 2021-02-24 Netflix, Inc. API Platform That Includes Server-Executed Client-Based Code
WO2013171787A2 (en) 2012-05-15 2013-11-21 Hitachi, Ltd. File storage system and load distribution method
US8850432B2 (en) 2012-05-30 2014-09-30 Red Hat, Inc. Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system
US8904402B2 (en) 2012-05-30 2014-12-02 Red Hat, Inc. Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system
US8799236B1 (en) 2012-06-15 2014-08-05 Amazon Technologies, Inc. Detecting duplicated content among digital items
US9317689B2 (en) 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US8782632B1 (en) 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
US9342326B2 (en) * 2012-06-19 2016-05-17 Microsoft Technology Licensing, Llc Allocating identified intermediary tasks for requesting virtual machines within a trust sphere on a processing goal
US9141432B2 (en) 2012-06-20 2015-09-22 International Business Machines Corporation Dynamic pending job queue length for job distribution within a grid environment
US8959484B2 (en) 2012-06-21 2015-02-17 Microsoft Corporation System for hosted, shared, source control build
US8869157B2 (en) 2012-06-21 2014-10-21 Breakingpoint Systems, Inc. Systems and methods for distributing tasks and/or processing recources in a system
US8832820B2 (en) 2012-06-25 2014-09-09 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment
US10031782B2 (en) 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US20140007097A1 (en) 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US9298497B2 (en) 2012-07-13 2016-03-29 Wisconsin Alumni Research Foundation Computer processor providing exception handling with reduced state storage
US9396008B2 (en) 2012-07-13 2016-07-19 Ca, Inc. System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts
US9152443B2 (en) 2012-07-13 2015-10-06 Ca, Inc. System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing
US8972956B2 (en) 2012-08-02 2015-03-03 International Business Machines Corporation Application deployment in heterogeneous environments
US9563480B2 (en) 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
US20140059552A1 (en) 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
US9110844B2 (en) 2012-08-27 2015-08-18 Microsoft Technology Licensing, Llc State maintenance as a service
US9575871B2 (en) 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US9379995B2 (en) 2012-09-11 2016-06-28 Vmware, Inc. Resource allocation diagnosis on distributed computer systems based on resource hierarchy
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9507586B2 (en) 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US8745755B2 (en) 2012-10-12 2014-06-03 Citrix Systems, Inc. Controlling device access to enterprise resources in an orchestration framework for connected devices
US9081682B2 (en) 2012-10-15 2015-07-14 Red Hat Israel, Ltd. Virtual machine installation image caching
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9600316B2 (en) 2012-10-17 2017-03-21 Microsoft Technology Licensing, Llc Augmented allocation of virtual machines for application
US9229759B2 (en) 2012-10-17 2016-01-05 Microsoft Technology Licensing, Llc Virtual machine provisioning using replicated containers
US20160019536A1 (en) 2012-10-17 2016-01-21 Royal Bank Of Canada Secure processing of data
US9262212B2 (en) 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines
CN104854929B (zh) 2012-11-05 2019-05-17 Lg电子株式会社 在支持超高频带的无线接入系统中生成同步信号的方法和设备
US9038068B2 (en) 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
EP2884394A4 (en) 2012-11-19 2016-04-27 Hitachi Ltd ADMINISTRATION SYSTEM AND DELIVERY METHOD
US9052935B1 (en) 2012-11-27 2015-06-09 Symantec Corporation Systems and methods for managing affinity rules in virtual-machine environments
US9092837B2 (en) 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9363367B2 (en) 2012-12-05 2016-06-07 Future Dial, Inc. Using automatically collected device problem information to route and guide users' requests
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9086902B2 (en) 2012-12-18 2015-07-21 International Business Machines Corporation Sending tasks between virtual machines based on expiration times
US9063795B2 (en) 2012-12-19 2015-06-23 International Business Machines Corporation Adaptive resource usage limits for workload management
US9459856B2 (en) 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US9384517B2 (en) 2013-03-14 2016-07-05 Google Inc. Rendering
US9304793B2 (en) * 2013-01-16 2016-04-05 Vce Company, Llc Master automation service
US8886769B2 (en) 2013-01-18 2014-11-11 Limelight Networks, Inc. Selective content pre-warming in content delivery networks based on user actions and content categorizations
US9329888B2 (en) * 2013-01-28 2016-05-03 International Business Machines Corporation Computing optimized virtual machine allocations using equivalence combinations
US10552774B2 (en) 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
JP5953421B2 (ja) 2013-02-25 2016-07-20 株式会社日立製作所 仮想サーバおよび非仮想サーバ混在環境におけるテナントネットワーク構成の管理方法
US9336031B2 (en) 2013-02-27 2016-05-10 International Business Machines Corporation Managing allocation of hardware resources in a virtualized environment
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9524489B2 (en) 2013-03-14 2016-12-20 Samsung Electronics Co., Ltd. Computing system with task transfer mechanism and method of operation thereof
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US9910896B2 (en) 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US10430332B2 (en) 2013-03-25 2019-10-01 Salesforce.Com, Inc. System and method for performance tuning of garbage collection algorithms
US8893088B2 (en) 2013-04-02 2014-11-18 Apple Inc. Dynamic program evaluation for system adaptation
US20160048606A1 (en) 2013-04-13 2016-02-18 Kiss Digital Media Pty Ltd. Methods, Systems, Apparatus, Products, Articles and Data Structures for Cross-Platform Digital Content
US9329881B2 (en) 2013-04-23 2016-05-03 Sap Se Optimized deployment of data services on the cloud
US9929916B1 (en) 2013-05-02 2018-03-27 Aspen Technology, Inc. Achieving stateful application software service behavior in distributed stateless systems
US10572124B2 (en) 2013-05-20 2020-02-25 Citrix Systems, Inc. Bound based contextual zoom
US9628332B2 (en) 2013-05-20 2017-04-18 Microsoft Technology Licensing, Llc Resource allocation to game titles in a remote gaming environment
US9110732B1 (en) 2013-06-07 2015-08-18 Amazon Technologies, Inc. Proxy for injecting configuration information
US9489227B2 (en) 2013-06-10 2016-11-08 Electronics And Telecommunications Research Institute Apparatus and method for virtual desktop service
US9141461B2 (en) * 2013-06-23 2015-09-22 Intel Corporation Machine check architecture execution environment for non-microcoded processor
US9652617B1 (en) 2013-06-25 2017-05-16 Amazon Technologies, Inc. Analyzing security of applications
US9948640B2 (en) 2013-08-02 2018-04-17 Ologn Technologies Ag Secure server on a system with virtual machines
US9990499B2 (en) 2013-08-05 2018-06-05 Netflix, Inc. Dynamic security testing
US9111037B1 (en) 2013-08-21 2015-08-18 Ca, Inc. Method and apparatus to enable mainframe computer testing for software testing management platform
US9591003B2 (en) 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
US20150074659A1 (en) 2013-09-06 2015-03-12 Vmware, Inc. Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software
US9298633B1 (en) 2013-09-18 2016-03-29 Emc Corporation Adaptive prefecth for predicted write requests
US20150106805A1 (en) 2013-10-15 2015-04-16 Cisco Technology, Inc. Accelerated instantiation of cloud resource
US10193963B2 (en) 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9805202B2 (en) 2013-11-13 2017-10-31 Evident.io, Inc. Automated SDK ingestion
US9298485B2 (en) 2013-11-19 2016-03-29 International Business Machines Corporation Maintaining virtual machines for cloud-based operators in a streaming application in a ready state
US9417918B2 (en) 2013-11-20 2016-08-16 International Business Machines Corporation Computing session workload scheduling and management of parent-child tasks
CN104142858B (zh) 2013-11-29 2016-09-28 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置
US20160306613A1 (en) 2013-12-03 2016-10-20 Hewlett Packard Enterprise Development Lp Code routine performance prediction using test results from code integration tool
US9164754B1 (en) 2013-12-18 2015-10-20 Amazon Technologies, Inc. Runtime patching of native-code programs
US9477507B2 (en) 2013-12-20 2016-10-25 Vmware, Inc. State customization of forked virtual machines
US9501345B1 (en) 2013-12-23 2016-11-22 Intuit Inc. Method and system for creating enriched log data
US10809866B2 (en) 2013-12-31 2020-10-20 Vmware, Inc. GUI for creating and managing hosts and virtual machines
CN104765620B (zh) 2014-01-02 2018-01-26 国际商业机器公司 一种程序模块部署的方法和系统
EP2894564A1 (en) 2014-01-10 2015-07-15 Fujitsu Limited Job scheduling based on historical job data
US10218703B2 (en) 2014-01-20 2019-02-26 Hewlett-Packard Development Company, L.P. Determining a permission of a first tenant with respect to a second tenant
US10133741B2 (en) 2014-02-13 2018-11-20 Amazon Technologies, Inc. Log data service in a virtual environment
WO2015130262A1 (en) 2014-02-25 2015-09-03 Hewlett-Packard Development Company, L.P. Multiple pools in a multi-core system
US10296362B2 (en) 2014-02-26 2019-05-21 Red Hat Israel, Ltd. Execution of a script based on properties of a virtual device associated with a virtual machine
US9110770B1 (en) 2014-03-04 2015-08-18 Amazon Technologies, Inc. Assessing quality of code in an open platform environment
US20150254248A1 (en) 2014-03-07 2015-09-10 Printeron Inc. System for suggesting network resource for use by a network terminal based on network resource ranking
US9632835B2 (en) 2014-03-17 2017-04-25 Ca, Inc. Deployment of virtual machines to physical host machines based on infrastructure utilization decisions
US10044761B2 (en) 2014-03-18 2018-08-07 British Telecommunications Public Limited Company User authentication based on user characteristic authentication rules
JP2015210718A (ja) 2014-04-28 2015-11-24 富士通株式会社 記憶制御装置、ストレージシステム、および記憶制御プログラム
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9678778B1 (en) 2014-05-07 2017-06-13 Google Inc. Virtual cluster as a service (VCIaaS)
US20150324229A1 (en) 2014-05-09 2015-11-12 International Business Machines Corporation Propagation of task progress through the use of coalesced time intervals
US20150332195A1 (en) 2014-05-13 2015-11-19 Linkedln Corporation Facilitating performance monitoring for periodically scheduled workflows
US9250893B2 (en) 2014-05-14 2016-02-02 Western Digital Technologies, Inc. Virtualized and automated software build system
CA2969422A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
US9525893B2 (en) 2014-05-28 2016-12-20 Verizon Patent And Licensing Inc. Methods and systems for managing storage of media program copies within a network digital video recording system
US9703681B2 (en) 2014-05-29 2017-07-11 Microsoft Technology Licensing, Llc Performance optimization tip presentation during debugging
US9390260B2 (en) 2014-06-09 2016-07-12 Lehigh University Methods for enforcing control flow of a computer program
US9361102B2 (en) 2014-06-09 2016-06-07 Lehigh University Methods for enforcing control flow of a computer program
US9218176B1 (en) 2014-06-13 2015-12-22 International Business Machines Corporation Software deployment in a distributed virtual machine environment
US20150371244A1 (en) 2014-06-23 2015-12-24 Ca, Inc. Forecasting information technology workload demand
US9424065B2 (en) 2014-06-26 2016-08-23 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools
US10432699B2 (en) * 2014-06-26 2019-10-01 Vmware, Inc. Crowd-sourced operational metric analysis of virtual appliances
US9361145B1 (en) 2014-06-27 2016-06-07 Amazon Technologies, Inc. Virtual machine state replication using DMA write records
US20150378762A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Monitoring and dynamic configuration of virtual-machine memory-management
US9483299B2 (en) 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
US20160294614A1 (en) 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US9983901B2 (en) 2014-07-09 2018-05-29 Google Llc Dynamic shard allocation adjustment
CN107077691B (zh) 2014-07-14 2021-07-13 甲骨文国际公司 用于确定数据库高速缓存命中的基于年龄的策略
US20160026486A1 (en) 2014-07-25 2016-01-28 Soft Machines, Inc. An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture
US9875121B2 (en) 2014-09-17 2018-01-23 International Business Machines Corporation API server
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9652273B2 (en) 2014-10-02 2017-05-16 Vmware, Inc. Method and system for creating a hierarchy of virtual machine templates in a virtualized computing system
TWI537827B (zh) 2014-10-06 2016-06-11 第五代虛擬科技股份有限公司 應用軟體試用系統、方法及其伺服器與使用者裝置
US9501420B2 (en) 2014-10-22 2016-11-22 Netapp, Inc. Cache optimization technique for large working data sets
US9930133B2 (en) 2014-10-23 2018-03-27 Netapp, Inc. System and method for managing application performance
US9569124B2 (en) 2014-11-04 2017-02-14 Rubrik, Inc. Deduplication of virtual machine content
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
US9661011B1 (en) 2014-12-17 2017-05-23 Amazon Technologies, Inc. Techniques for data routing and management using risk classification and data sampling
US20160191420A1 (en) 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
US10033570B2 (en) 2015-01-15 2018-07-24 International Business Machines Corporation Distributed map reduce network
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9921864B2 (en) 2015-02-26 2018-03-20 Vmware, Inc. Dynamic host performance tuning of a network stack
US9965309B2 (en) 2015-03-23 2018-05-08 Empire Technology Development Llc Virtual machine placement
US9632846B2 (en) 2015-04-02 2017-04-25 Microsoft Technology Licensing, Llc Complex event processor for historic/live/replayed data
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US20160350099A1 (en) 2015-05-29 2016-12-01 Hewlett Packard Enterprise Development Lp Application deployment to virtual machines
US9785424B2 (en) 2015-06-05 2017-10-10 Apple Inc. Capability attributes based application packaging
US9612865B2 (en) 2015-06-15 2017-04-04 International Business Machines Corporation Managed services coordinator
US10481982B2 (en) 2015-06-16 2019-11-19 Mongodb, Inc. System and method for facilitating replication in a distributed database
US9921885B2 (en) 2015-06-19 2018-03-20 Vmware, Inc. Resource management for containers in a virtualized environment
US9880837B2 (en) 2015-06-24 2018-01-30 Vmware, Inc. Artifact manager for release automation
US11429442B2 (en) 2015-06-29 2022-08-30 Vmware, Inc. Parallel and distributed computing using multiple virtual machines
US9946874B2 (en) 2015-08-06 2018-04-17 International Business Machines Corporation Authenticating application legitimacy
US10198281B2 (en) 2015-08-28 2019-02-05 Vmware, Inc. Hybrid infrastructure provisioning framework tethering remote datacenters
US10235209B2 (en) 2015-08-28 2019-03-19 Vmware, Inc. Hybrid task framework
US10083073B2 (en) 2015-09-14 2018-09-25 Dynatrace Llc Method and system for real-time causality and root cause determination of transaction and infrastructure related events provided by multiple, heterogeneous agents
US10007710B2 (en) 2015-09-21 2018-06-26 Splunk Inc. Adaptive control of data collection requests sent to external data sources
CN106548262B (zh) 2015-09-21 2020-11-06 阿里巴巴集团控股有限公司 用于处理任务的资源的调度方法、装置和系统
US10104123B2 (en) 2015-09-23 2018-10-16 Ca, Inc. Fetching a policy definition library from a policy server at mobile device runtime of an application package to control access to mobile device resources
IN2015CH05184A (ja) 2015-09-28 2015-10-16 Wipro Ltd
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9514037B1 (en) 2015-12-16 2016-12-06 International Business Machines Corporation Test program scheduling based on analysis of test data sets
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9787779B2 (en) 2015-12-21 2017-10-10 Amazon Technologies, Inc. Analyzing deployment pipelines used to update production computing services using a live pipeline template process
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US11089152B2 (en) 2016-02-08 2021-08-10 Aawaaz Inc. Placement of a missed call
EP3430556B1 (en) 2016-03-15 2021-01-20 Carbon Black, Inc. System and method for process hollowing detection
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
CN108885568B (zh) 2016-03-30 2022-01-28 亚马逊技术有限公司 用于通过按需代码执行环境处理数据源内的多个数据项的系统和计算机实现的方法
US10139876B2 (en) 2016-06-23 2018-11-27 Vmware Inc. Efficient reboot of an operating system executed in a virtual machine
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US9596350B1 (en) 2016-07-21 2017-03-14 Genesys Telecommunications Laboratories, Inc. Virtual interactions in contact center operations
US10089135B2 (en) 2016-08-09 2018-10-02 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template
US9977670B2 (en) 2016-08-10 2018-05-22 Bank Of America Corporation Application programming interface for providing access to computing platform definitions
US20180060221A1 (en) 2016-08-24 2018-03-01 Google Inc. Multi-layer test suite generation
US10831641B2 (en) 2016-09-08 2020-11-10 At&T Intellectual Property I, L.P. Method and apparatus for determining a performance impact by a software upgrade of a mobile user endpoint device
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US20180239636A1 (en) 2017-02-22 2018-08-23 Nutanix, Inc. Task execution framework using idempotent subtasks
US10754685B2 (en) 2017-03-03 2020-08-25 Microsoft Technology Licensing Llc Cross-device task registration and resumption
EP3379413A1 (en) 2017-03-21 2018-09-26 Nokia Solutions and Networks Oy Optimization of a software image layer stack
US10445140B1 (en) 2017-06-21 2019-10-15 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US11047837B2 (en) 2017-09-06 2021-06-29 Green Ocean Sciences, Inc. Mobile integrated device and electronic data platform for chemical analysis
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
EP3811209A1 (en) 2018-06-25 2021-04-28 Amazon Technologies Inc. Execution of auxiliary functions in an on-demand network code execution system
US10817331B2 (en) 2018-06-25 2020-10-27 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system

Also Published As

Publication number Publication date
CA2962633C (en) 2023-04-04
WO2016053973A9 (en) 2017-05-18
JP2017534967A (ja) 2017-11-24
WO2016053973A1 (en) 2016-04-07
US9652306B1 (en) 2017-05-16
CN107111508B (zh) 2020-12-11
CN107111508A (zh) 2017-08-29
EP3633506A1 (en) 2020-04-08
US9323556B2 (en) 2016-04-26
EP3201768A4 (en) 2018-10-03
US9760387B2 (en) 2017-09-12
US20160239318A1 (en) 2016-08-18
EP3201768A1 (en) 2017-08-09
US20160092251A1 (en) 2016-03-31
US20170371724A1 (en) 2017-12-28
CA2962633A1 (en) 2016-04-07
EP3201768B1 (en) 2019-12-04
US10824484B2 (en) 2020-11-03

Similar Documents

Publication Publication Date Title
JP6352535B2 (ja) プログラム・コードを実行するための要求に対するプログラム的イベント検出及びメッセージ生成
US11467890B2 (en) Processing event messages for user requests to execute program code
US11561811B2 (en) Threading as a service
US20220391238A1 (en) Low latency computational capacity provisioning
CN108369534B (zh) 代码执行请求路由
JP6363796B2 (ja) 動的コードデプロイメント及びバージョニング
JP6463494B2 (ja) プログラムコードの低レイテンシ実行のためのセキュリティプロトコル
JP6522128B2 (ja) リソースサイジングの自動管理システム、方法及び非一時的コンピュータ可読記憶媒体
US9977691B2 (en) Adjusting variable limit on concurrent code executions based on communication between frontends
US11228658B1 (en) Pre-caching data for use upon execution of program code

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

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: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180606

R150 Certificate of patent or registration of utility model

Ref document number: 6352535

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