JP6559252B2 - アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム - Google Patents

アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム Download PDF

Info

Publication number
JP6559252B2
JP6559252B2 JP2017552458A JP2017552458A JP6559252B2 JP 6559252 B2 JP6559252 B2 JP 6559252B2 JP 2017552458 A JP2017552458 A JP 2017552458A JP 2017552458 A JP2017552458 A JP 2017552458A JP 6559252 B2 JP6559252 B2 JP 6559252B2
Authority
JP
Japan
Prior art keywords
api
backend
endpoint
proxy
request
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
JP2017552458A
Other languages
English (en)
Other versions
JP2018515835A (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 JP2018515835A publication Critical patent/JP2018515835A/ja
Application granted granted Critical
Publication of JP6559252B2 publication Critical patent/JP6559252B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

関連出願の相互参照
本出願の出願人により、2014年9月30日に先に出願された、「THREADING AS A SERVICE」と題する、米国特許出願第14/502,992号に関連する。
さらに、本出願の出願人により、2015年4月8日に同時に出願されている、「ENDPOINT MANAGEMENT SYSTEM AND VIRTUAL COMPUTE SYSTEM」と題する、代理人整理番号SEAZN.1099Aの米国特許出願に関連する。
上記の関連出願の開示は、それらの全体が参照により本明細書に援用される。
一般的に説明されるように、コンピューティング・デバイスは、通信ネットワーク、または一連の通信ネットワークを利用し、データを交換する。企業及び組織は、複数のコンピューティング・デバイスを相互接続し、操作を支援する、または第三者らにサービスを提供するように、コンピュータ・ネットワークを操作する。これらのコンピューティング・システムは、単一の地理的位置に設置される、または複数の、別々の地理的位置(たとえば、プライベートまたはパブリック通信ネットワークを介して相互接続される)に設置されることが可能である。具体的に、複数のデータ・センター、またはデータ処理センターは、本明細書で一般に単数の「データ・センター」と言われ、複数の相互接続されたコンピューティング・システムを含み、コンピューティング・リソースをデータ・センターのユーザへ提供することができる。データ・センターは、組織のために運営されるプライベート・データ・センター、または一般大衆のために、もしくは一般大衆の利益のために運営されるパブリック・データ・センターであってもよい。
データ・センター・リソースの利用率を高めるために、仮想化技術により、単一の物理コンピューティング・デバイスは、データ・センターのユーザへ独立したコンピューティング・デバイスとして出現して動作する仮想マシンの1つ以上のインスタンスをホストすることが可能となる。仮想化に関して、単一の物理コンピューティング・デバイスは、動的方式で仮想マシンを作成する、維持する、削除する、またはその他の方法で管理することが可能である。そして、ユーザは、単一のコンピューティング・デバイス、またはネットワーク化されたコンピューティング・デバイスの構成を含む、データ・センターからコンピュータ・リソースを要求し、さまざまな数の仮想マシン・リソースを提供されることが可能である。
本開示の前述の態様、及び多くの不随する利点は、添付の図面と併せて用いられるときに、同一のものが以下の発明を実施するための形態へ参照によりより良く理解されるようになるにつれ、より容易に理解されるようになるであろう。
例示的な態様により、エンドポイント管理システムを使用してアプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するための例示的な環境を描写するブロック図である。 例示的な態様により、エンドポイント管理システムのさまざまなサブシステム及びユニットについてのさまざまな機能を可能にするために実装されることができるコンピューティング・デバイスの一般的なアーキテクチャを描写する。 例示的な態様により、さまざまなエンドポイント管理構成オプションをユーザに提供する例示的なユーザ・インタフェースを描写する。 例示的な態様により、エンドポイント管理システムにより実装されるようにアプリケーション・プログラミング・インタフェース・プロキシ・ルーチンを図示する流れ図である。 例示的な態様により、エンドポイント管理システムにより実装されるようにアプリケーション・プログラミング・インタフェース・プロキシ・ルーチンを図示する流れ図である。 クライアント・コンピューティング・デバイス、及びサービス・プロバイダ・コンピュータ・ネットワークを含むネットワーク化されたコンピューティング環境の実施形態を図示するブロック図である。
一般的に説明されるように、本開示の態様は、エンドポイント管理システムを記述し、これによりアプリケーション開発者などの、ユーザは、リモートまたは第三者システム上でのプログラム・コードの実行を引き起こすために使用可能なアプリケーション・プログラミング・インタフェース(「API」)の公開を管理し、有効にすることが可能である。具体的に、リモートまたは第三者システム上で特定のタスクを実行するユーザ要求のハンドリングを容易にする、システム及び方法を開示する。エンドポイント管理システムにより、アプリケーション開発者は、リモートまたは第三者システムと関連する第二「バックエンド」APIへマッピングする第一プロキシAPIを定義し、指定することが可能である。リモートまたは第三者システムは、たとえば、ローカル・ネットワーク上のシステム、オープン、または公的にアクセス可能なネットワーク上のシステム、仮想計算環境などの1つ以上のサービスをホストするシステム、及びその他のものを含むことができる。エンドポイント管理システムは、プロキシAPIを実行する要求をユーザ・コンピューティング・システムから受信し、さまざまな構成オプションのユーザ提供の仕様に基づきAPIマッピングを決定する。エンドポイント管理システムは、関連したリモートまたはバックエンド・システムによりプログラム・コードを実行する1つ以上のバックエンドAPI要求を順に生成し、送信する。エンドポイント管理システムは、リモートまたはバックエンド・システムからの応答を受信し、つぎにこの応答と関連する結果を解析し、パースし、及び/または変換し、応答のために出力結果を生成し、ユーザ・コンピューティング・システムへ返すことが可能である。
したがって、本明細書に記述される実施形態で、開発者は、公開されたAPI(たとえば、プロキシAPI)を記述し、ロジック及び1つ以上のエンドポイント(たとえば、バックエンドAPI)を定義することが可能である。たとえば、クラウド・ベースの「プロキシ」APIは、クライアント・デバイスによりエンドポイント管理システムへ呼び出されることができ、エンドポイント管理システムは、プロキシAPIのために選択するエンドポイントがわかる。エンドポイントは、異種(たとえば、ウェブ・サービス、モノのインターネット(「IoT」)・デバイス、他のクラウド・ベースのサービス・プロバイダ機能、データ・センター機能性、及びその他のもの)であることが可能であり、他のAPIを含むことも可能である。たとえば、レガシーSOAPベースAPIへマッピングする、表現状態転送(「REST」)APIを公開することができる。いくつかの実施形態で、プロキシ・フリートは、エンドポイント管理システムの部分として実装され、パフォーマンス、効率、及びスケーラビリティを向上させることができる。本明細書に記述される追加の機能は、単一のプロキシAPI呼び出しに基づき複数の機能性、またはバックエンドAPI呼び出し(依存の、または独立の)をチェーンする、またはリンクする能力と、バックエンドAPI及びサービスの公開を管理するためにエンドポイント管理システムのユーザのための追加のセキュリティ・メカニズムと、効率を改善し、リモート及びバックエンド・システムが複数のプロキシAPIにより使用可能な結果をもたらすことができる繰り返しタスクを実行することを軽減するためにバックエンド・システムから返される結果の動的でインテリジェントなキャッシングと、着信する要求(たとえば、所与の期間に一定数へ要求にサービスを提供することを制限する)、及び受信した要求のメータリングにスロットリングを行うためにユーザ構成可能設定を含む、大量のAPI要求によるリモート及び/またはバックエンド・システムの過負荷を防止するパフォーマンス管理とを含む。
エンドポイント管理システムは、限定されないがハイパーテキスト・トランスファ・プロトコル(「HTTP」)、HTTPセキュア(「HTTPS」)、HTTP2、REST API、リモート・プロシージャ・コール(「RPC」)、バイナリAPI、WebSocket、メッセージ・キュー・テレメトリ・トランスポート(「MQTT」)、制約されたアプリケーション・プロトコル(「CoAP」)、Javaメッセージ・サービス(「JMS」)、高度なメッセージ・キューイング・プロトコル(「AMQP」)、シンプル(またはストリーミング)・テキスト指向メッセージ・プロトコル(「STOMP」)、電子データ交換(「EDI」)、簡易メール転送プロトコル(「SMTP」)、インターネット・メッセージ・アクセス・プロトコル(「IMAP」)、ポスト・オフィス・プロトコル(「POP」)、ファイル転送プロトコル(「FTP」)、オープン・データベース・コネクティビティ(「ODBC」)、Thrift、プロトコル・バッファ、Avro、Cap’n Proto、FlatBuffers、及び他のタイプのプロトコルを含む、さまざまなプロトコル・フォーマットでプロキシ・インタフェースの構成を可能にすることができる。これらのプロトコルのうちのいくつかは、ネットワーク及びデータ・フォーマットを記述し、いくつかは、他のフォーマットについてのコンテナとして機能することができる。上記で記載されたプロトコルへ黙示ではない他のデータ・フォーマットは、たとえば、JavaScriptオブジェクト記法(「JSON」)、拡張可能マークアップ言語(「XML」)、シンプル・オブジェクト・アクセス・プロトコル(「SOAP」)、ハイパーテキスト・マークアップ言語(「HTML」)、コンマ区切り値(「CSV」)、タブ区切り値(「TSV」)、INIファイル、YAMLはマークアップ言語ではない(「YAML」)、バイナリJSON(「BSON」)、MessagePack、Sereal、及びBencodeを含むことができる。これらのいずれかのプロトコル及びデータ・フォーマットは、任意の組み合わせでのAPIプロキシ・マッピングのどちらのエンドポイントにも使用されることができる。たとえば、REST APIをバイナリAPIへマッピングすることができ、HTTP APIをリモート・プロシージャ・コールへマッピングすることができ、第一バイナリAPIを第二バイナリAPIへマッピングすることができる、などである。
本開示の特定の実施形態、及び例示的なアプリケーションは、図面を参照してここで記述される。これらの実施形態、及び例示的なアプリケーションは、限定しないが、本開示を図示することを意図される。
図1を参照して、コンピューティング環境100の実施形態を図示するブロック図を記述する。図1で示される実施例は、コンピューティング環境100を含み、この環境で、ユーザ・コンピューティング・デバイス102のユーザは、ネットワーク104A、及び/またはネットワーク104Bを介して、エンドポイント管理システム106、エンドポイント・プロキシ・システム132、及びバックエンド・システム114により提供される、さまざまなサービスにアクセスすることができる。
図1の実施例で、デスクトップ・コンピュータ、ラップトップ、携帯電話、及びタブレットを含む、さまざまな例示的なユーザ・コンピューティング・デバイス102を示す。一般に、ユーザ・コンピューティング・デバイス102は、パーソナル・コンピューティング・デバイス、ラップトップ・コンピューティング・デバイス、ハンドヘルド・コンピューティング・デバイス、端末コンピューティング・デバイス、モバイル・デバイス(たとえば、携帯電話、スマートフォン、タブレット・コンピューティング・デバイス、電子ブック・リーダなど)、無線デバイス、さまざまな電子機器及び電化製品、ならびに同様のものを含む、多種多様なコンピューティング・デバイスであることが可能である。加えて、ユーザ・コンピューティング・デバイス102は、同一の、または異なるデータ・センター上で実行するウェブ・サービスを含むことができ、そこで、たとえば、異なるウェブ・サービスは、プログラムで相互に通信し、本明細書に記述される1つ以上の技術を実行することができる。さらに、ユーザ・コンピューティング・デバイス102は、インターネット機器、及び接続機器などの、モノのインターネット(IoT)・デバイスを含むことができる。コンピューティング環境100(たとえば、エンドポイント管理システム106)の他のコンポーネントは、それぞれのコンポーネントにより提示される1つ以上のサービスを利用するために、1つ以上のユーザ・インタフェース、コマンド・ライン・インタフェース(CLI)、アプリケーション・プログラミング・インタフェース(API)、及び/または他のプログラマティック・インタフェースを備える、ユーザ・コンピューティング・デバイス102を提供することができる。これらのようなサービスは、ユーザ・コードを生成してアップロードすること、ユーザ・コードを呼び出すこと(たとえば、ユーザ・コード(たとえば、エンドポイント・プロキシ・システム132を介して)を実行する要求を提示すること)、1つ以上のAPIを構成する(たとえば、エンドポイント管理システム106を介して)こと、ユーザ・コード及びAPIの実行の結果をキャッシュすること、及び/またはセキュリティ、パフォーマンス、メータリング、及び他の要因のためのAPI呼び出しの使用状況を監視することを備えることができる。1つ以上の実施形態がユーザ・インタフェースを使用するように本明細書で記述されることができるが、このような実施形態が任意のCLI、API、または他のプログラマティック・インタフェースを、追加で、または代替に使用することができることを理解するであろう。
ユーザ・コンピューティング・デバイス102は、ネットワーク104A経由でエンドポイント・プロキシ・システム132、及び/またはエンドポイント管理システム106にアクセスする。エンドポイント・プロキシ・システム132は、エンドポイントまたはバックエンドAPIの実行(たとえば、バックエンド・システム114上で実行されるような)を管理するように構成されることができる、1つ以上のサーバまたはシステム(たとえば、プロキシ・フリート)を含むことができる。エンドポイント・プロキシ・システム132は、ネットワーク104B経由でバックエンド・システム114、及びエンドポイント結果キャッシュ130などの、コンピューティング環境100の他のコンポーネントにアクセスすることができる。ネットワーク104A及び/または104Bは、いずれかの有線ネットワーク、無線ネットワーク、またはそれらの組み合わせであってもよい。加えて、ネットワーク104A及び/または104Bは、パーソナル・エリア・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、オーバージエア・ブロードキャスト・ネットワーク(たとえば、ラジオまたはテレビ用の)、ケーブル・ネットワーク、衛星ネットワーク、携帯電話網、またはそれらの組み合わせであってもよい。たとえば、ネットワーク104Aは、インターネットのような、できる限りさまざまな別個の当事者らにより運営される、リンクされたネットワークのうちの公的にアクセス可能なネットワークであってもよい。いくつかの実施形態で、ネットワーク104Bは、企業もしくは大学のイントラネットなどのプライベート、もしくはセミプライベート・ネットワーク、またはインターネットなどの公的にアクセス可能なネットワークであってもよい。1つの実施形態で、ネットワーク104Bは、エンドポイント・プロキシ・システム132へ近接して併置される、または設置されることができるため、エンドポイント・プロキシ・システム132、及びバックエンド・システム(複数可)114間でネットワーク104B経由の通信は、パフォーマンスの向上(たとえば、より高速の、及び/またはより効率的な通信)から恩恵を受けることができる。ネットワーク104A及び/または104Bは、モバイル通信用グローバル・システム(GSM)・ネットワーク、符号分割多元接続(CDMA)ネットワーク、ロング・ターム・エボリューション(LTE)・ネットワーク、または任意の他のタイプの無線ネットワークなどの、1つ以上の無線ネットワークを含むことができる。ネットワーク104A及び/または104Bは、インターネット、または他の前述のタイプのネットワークのいずれかを介して通信するためのプロトコル及びコンポーネントを使用することが可能である。たとえば、ネットワーク104A及び/または104Bにより使用されるプロトコルは、ハイパーテキスト・トランスファ・プロトコル(HTTP)、HTTPセキュア(HTTPS)、メッセージ・キュー・テレメトリ・トランスポート(MQTT)、制約されたアプリケーション・プロトコル(CoAP)、及び同様のものを含むことができる。インターネット、または他の前述のタイプの通信ネットワークのいずれかを介して通信するためのプロトコル及びコンポーネントは、当業者に既知であるため、本明細書でより詳細に記述されない。
コンピューティング環境100は、1つ以上のコンピュータ・ネットワークを使用して相互接続されるいくつかのコンピュータ・システムを含む分散コンピューティング環境で動作するように図1で描写される。エンドポイント管理システム106、及び/またはエンドポイント・プロキシ・システム132は、図1で図示されるより少ない、またはより多い数のデバイスを含むコンピューティング環境内で動作することも可能である。したがって、図1のコンピューティング環境100の描写は、例示としてみなされ、本開示への限定とみなされない。たとえば、コンピューティング環境100、またはそのさまざまな構成要素は、さまざまなウェブ・サービス・コンポーネント、ホストされた、または「クラウド」・コンピューティング環境、及び/またはピアツーピア・ネットワーク構成を実装し、本明細書に記述されるプロセスの少なくとも一部分を実装することが可能である。
さらにコンピューティング環境100のさまざまなコンポーネントは、ハードウェア及び/またはソフトウェア内に実装されることができ、たとえば、本明細書に記述されるさまざまな機能を実行するためのコンピュータ実行可能命令を実行するように構成される物理コンピュータ・ハードウェア上に実装される、1つ以上の物理または仮想サーバを含むことができる。1つ以上のサーバは、たとえば、1つ以上のデータ・センターに、地理的に分散される、または地理的に併置されることができる。
図1で図示されるように、エンドポイント・プロキシ・システム132は、レスポンス・ハンドラ108、キャッシュ・マネージャ120、及びパフォーマンス・ユニット124を含む。レスポンス・ハンドラ108は、たとえば、1つ以上のAPIへ対応し、1つ以上のバックエンド・システム(複数可)114上で呼び出される、または引き起こされるプロキシAPIを実行する呼び出しシステム(たとえば、ユーザ・デバイス102を含む)からの要求を受信するように構成されることができる。レスポンス・ハンドラ108は、エンドポイント/APIマッピング定義データ・ソース128と通信し、これにアクセスし、受信した要求についてのAPIマッピング定義をルックアップすることができる。レスポンス・ハンドラ108は、APIマッピング定義に少なくとも部分的に基づき、この要求にサービスを提供するために使用される、単数のバックエンドAPI(または複数のAPI)、及びバックエンド・システム(複数可)を決定することが可能である。レスポンス・ハンドラ108は、要求及びこの要求を提供される任意の関連した入力パラメータをパースする、及び/または解析するように、及びAPIマッピング定義に基づきバックエンドAPIについてのパラメータを入力するために関連した入力パラメータの任意の適切なデータ変換及びマッピングを決定するように構成されることもできる。いくつかの実施形態で、レスポンス・ハンドラ108は、以下でより詳細に記述されるように、プロキシAPI要求についてキャッシュされた結果が利用可能であるかどうかを判定するためにキャッシュ・マネージャ120で確認することができる。つぎにレスポンス・ハンドラ108は、変換されたAPI要求を適切なバックエンド・システム(複数可)114へ送信し、順に応答で返された結果を受信することができる。レスポンス・ハンドラ108は、次に、この結果をパースし、及び/またはこの結果を元の呼び出しシステムへの応答についての出力結果に変換し、この出力結果を提供することができる。APIマッピング定義に部分的に基づき、この結果をパースする、及び/または変換することができる。また、本明細書に記述されるように、さらにハンドリングするために、この結果をキャッシュ・マネージャ120へ提供することができる。
キャッシュ・マネージャ120は、いくつかの方式でバックエンドAPI要求と関連してバックエンド・システム(複数可)114から受信する結果を管理するように構成されることができる。キャッシュ・マネージャ120は、エンドポイント結果キャッシュ130と通信することができ、そこでバックエンドAPI要求と関連するバックエンド・システム(複数可)114から受信する結果を今後のAPIプロキシ要求のために格納し、これらにアクセスすることができる。キャッシュされた結果は、バックエンド・システム(複数可)114からの元のバックエンドAPI結果、及びレスポンス・ハンドラ108が元のバックエンドAPI結果を処理した後に変換された、または出力された結果の両方を含むことができる。
APIマッピング定義に少なくとも部分的に基づき、結果のキャッシングを実行することができる。たとえば、APIマッピング定義は、バックエンドAPIからの結果をキャッシュするかどうかを指定し、キャッシュする場合、その期間を指定する、ユーザ提供の構成設定を含むことができる。したがって、開発者は、一定期間(たとえば、数秒、数分、数時間、数日、数週間、数ヶ月、数年、または任意の他の時間)特定のバックエンドAPIからの結果をキャッシュすることができることを示すことができる。レスポンス・ハンドラ108を参照して上記で説明されるように、プロキシAPI要求を受信し、処理するときに、キャッシュ・マネージャ120は、キャッシュされた結果が利用可能である、有効である、及び/またはその他の方法で期限切れである(たとえば、キャッシュ有効期限を過ぎた)かどうかを判定するキャッシュ・チェックを実行することができる。キャッシュされた結果が利用可能である場合に、キャッシュ・マネージャ120は、エンドポイント結果キャッシュ130からそれらにアクセスし、それらを取得し、それらをレスポンス・ハンドラ108へ提供することができる。
上記で参照されるように、キャッシュ・マネージャ120は、いくつかの方式でバックエンドAPI呼び出しからの結果をキャッシュすることができる。たとえば、特定の実施形態で、エンドポイント・プロキシ・システム132が第一API呼び出しを複数回受信し、第一バックエンドAPIについてのキャッシュされた結果が利用可能である場合、キャッシュ有効期限の期間に関して再度、または複数回、関連した第一バックエンドAPI要求をそれぞれのバックエンド・システム114へ送信する必要なしで、キャッシュされた結果のコピーを提供することができる。別の実施形態で、エンドポイント・プロキシ・システム132は、第一プロキシAPI呼び出しと同一のバックエンドAPIへマッピングする第二プロキシAPI呼び出しを受信することができ、この事例で、レスポンス・ハンドラ108、及び/またはキャッシュ・マネージャ120は、関連したバックエンドAPI要求をそれぞれのバックエンド・システム114へ送信する必要なしで、同一のキャッシュされた結果を提供できることを判定することができる。さらに別の実施例で、第二プロキシAPI呼び出しは、第一バックエンドAPIと、それにもかかわらず同一の結果、または同一の結果の部分を返す第二バックエンドAPIへマッピングすることができる。このような状況で、関連した第二バックエンドAPI要求をそれぞれのバックエンド・システム114へ送信する必要なしで、同一のキャッシュされた結果(またはその関連部分)を提供することができる。
上記で説明されるフレキシブルで、動的なキャッシング機能の例示的な実施例として、それぞれの個人についての氏名、電話番号、及び送り先を含む1セットの記録を含む結果を提供する第一バックエンドAPI、ならびに特定の個人についての送り先を含む結果を提供する第二バックエンドAPIを考察する。第一プロキシAPI呼び出しを受信して処理し、第一バックエンドAPIを実行する場合、キャッシュ・マネージャ120は、1セットの記録をキャッシュすることができる。その後、再度第一プロキシAPI呼び出しを受信する場合、要求をバックエンド・システム(複数可)114へ発行する代わりに、記録のキャッシュされたセットにアクセスすることができる。加えて、特定の個人についての送り先を要求する第二バックエンドAPIに対応する第二プロキシAPI呼び出しを受信する場合、記録のキャッシュされたセットにもアクセスし、第二プロキシAPI呼び出しを実行する要求をバックエンド・システム(複数可)114へ発行する代わりに、出力結果を呼び出しシステムへ提供することができる。したがって、たとえば、キャッシュされた結果が別のバックエンドAPI呼び出しと重複して累積する場合に、そのバックエンドAPIを呼び出す必要なしで、バックエンドAPI呼び出しについての結果をプリエンプティブにキャッシュすることが可能であり得る。
パフォーマンス・ユニット124は、バックエンド・システム(複数可)114へ送信されるバックエンドAPI要求を含むパフォーマンス関連態様を管理するように構成されることができる。たとえば、APIマッピング定義は、バックエンドAPIを呼び出すことができる頻度の限度、または頻度を指定するユーザ提供の構成設定を含むことができる。この機能は、バックエンド・システム114がレガシー・システムである、またはバックエンドAPI要求にサービスを提供することに関して、期限切れである、パフォーマンスが低いもしくは効率の悪い、もしくは過負荷であるものである可能性がある場合に、有益であり得る。したがって、たとえば、ユーザは、一定の時間にわたり一定の回数(たとえば、毎分100回、毎時10回、または任意の他の頻度)、または一定の期間にわたり一定の回数(たとえば、ピーク・サービス時間に受信する要求にスロットリングを行うために)のみ、一定のバックエンドAPIを呼び出すことができることを指定することが可能である。
パフォーマンス・ユニット124と関連して提供され、利用されることができる別のパフォーマンス構成オプションは、メータリング識別子を要求するかどうかを指定する、またはバックエンドAPIの呼び出しシステムの使用を追跡する、もしくは監視するために使用される設定である。このようなメータリング情報は、どのプロキシAPI及び/またはバックエンドAPIを呼び出すか、どのくらいの頻度か、及びどの呼び出しシステムによるかで可視化を可能にすることに貢献することができる。
図1で図示されるように、エンドポイント管理システム106は、マネージャ・ユーザ・コンソール132、セキュリティ・マネージャ122、及びソフトウェア開発者キット(「SDK」)生成サービス126を含む。マネージャ・ユーザ・コンソール132は、1つ以上のユーザ・インタフェースを提供することができ、これらによりシステム管理者及び/または開発者などのユーザは、たとえば、APIマッピング定義、キャッシング・オプション、パフォーマンス・オプション、及びセキュリティ・オプションを含む、APIプロキシ設定を管理することが可能である。マネージャ・ユーザ・コンソール132により生成され、提供されることができる1つの例示的なエンドポイント管理ユーザ・インタフェースは、図3を参照して本明細書に図示され、記述される例示的なユーザ・インタフェース300である。たとえば、ユーザ・コンピューティング・デバイス102を使用して、ネットワーク104A経由で(たとえば、ネットワーク104Aがパブリック・ネットワークとして構成されるときに)、またはネットワーク104B経由で(たとえば、ネットワーク104Bがプライベート・ネットワークとして構成されるときに)、ユーザは、マネージャ・ユーザ・コンソール132、及び関連したユーザ・インタフェースにアクセスすることができる。たとえば、マネージャ・ユーザ・コンソール132は、ユーザ・コンピューティング・デバイス102上でアクセスされ、もしくはインストールされ、エンドポイント管理システム106と通信するように構成されることができる、ウェブ、モバイル、スタンドアロン、または他のアプリケーションを提供することができる。エンドポイント管理システム106を介してユーザにより作成され、改定されるAPIマッピング定義をエンドポイント/APIマッピング定義データ・ソース128に格納することができる。エンドポイント管理システム106は、エンドポイント・プロキシ・システム132へさまざまなAPIマッピング定義を公開する、プッシュする、またはその他の方法で送信するように構成されることができ、これは、本明細書に記述されるさまざまな応答ハンドリング及び関連プロシージャについてのAPI定義を使用することができる。
セキュリティ・マネージャ122は、バックエンド・システム(複数可)114、及びバックエンドAPIへのセキュリティ及びアクセスを管理するように構成されることができる。たとえば、APIマッピング定義は、特定のユーザ(複数可)またはグループ(複数可)のみがバックエンドAPIを呼び出すことを許可されることができるかどうかを指定するための、ユーザ提供の構成設定を含むことができる。プロキシAPI要求は、要求するユーザまたはグループと関連するインジケータ(またはセキュリティ・トークン)を含むことができ、APIマッピング定義に基づき、セキュリティ・マネージャ122は、要求が許可される、または拒否されるかどうかを判定することができる。呼び出しシステム(たとえば、ユーザ・コンピューティング・デバイス102)がバックエンドAPIを呼び出すことを許可されるユーザまたはグループへマッピングするインジケータ、またはセキュリティ・トークンを提供する場合、セキュリティ・マネージャ122は、要求の処理を進行することが可能であることをレスポンス・ハンドラ108へ指示することができる。呼び出しシステムがインジケータ、もしくはセキュリティ・トークンを提供することができない、またはバックエンドAPIを呼び出すことを許可されるユーザもしくはグループへマッピングしないインジケータ、もしくはセキュリティ・トークンを提供する場合、セキュリティ・マネージャ122は、要求の処理を停止する(この事例で、エンドポイント・プロキシ・システム132は、リターン・インジケータを任意選択で提供し、承認がないため要求が拒否されたことを示すことができる)ことをレスポンス・ハンドラ108へ指示することができる。この方式で、たとえば、開発者は、特定のバックエンドAPIへのアクセスを保護する、または限定することができる。
またエンドポイント管理システム106は、ユーザが1つ以上のAPIマッピング定義に基づきSDKを生成することを可能にするSDK生成サービス126を含むことができる。この機能は、新規の1セットのプロキシAPIへレガシー・バックエンドAPIのスイートをマッピングする際に、相当な時間及び労力を費やしているエンドポイント管理システム106のユーザへ特に有益であり得る。APIマッピング定義に基づきSDKを生成し、他のユーザ(より最新式のAPIプロトコルを使用してバックエンド・システム114とインタフェースに接続したい、またはこれを使用したいシステム開発者など)へ提供し、プロキシAPIのスイートを介してバックエンド・システム(複数可)114を利用する他のアプリケーション及びサービスの開発を促進することができる。
エンドポイント管理システム106、及び/またはエンドポイント・プロキシ・システム132のさまざまなサブシステム及びユニットを実装するために使用されることができる例示的な構成は、図2を参照して以下でより詳細に記述される。
図1で示されるように、エンドポイント管理システム106は、エンドポイント・プロキシ・フリート123A,...,Nと通信する。たとえば、第一プロキシ・サーバは、第一プロキシAPIの実行を管理するように構成されることができ、第二プロキシ・サーバは、第二プロキシAPIの実行を管理するように構成されることができ、第nプロキシ・サーバは、第nプロキシAPIの実行を管理するように構成されることができる。または、1つのプロキシ・サーバは、たとえば、バックエンドAPIの類似性、関連したバックエンドAPIについてバックエンド・システム(複数可)114から得られる累積または重複結果、及びその他のものに部分的に基づき、互いに関連する、もしくは互いにグループ化されることができる、複数のプロキシAPIの実行を管理するように構成されることができる。プロキシ・サーバのフリート内で各プロキシ・サーバは、特定のタスクまたはバックエンド・システムに関連するパフォーマンスまたは効率について構成されることができる。たとえば、一方のプロキシ・サーバは、データベース・クエリを含むプロキシAPIの効率的なパフォーマンス及び実行について構成されることができ、他方のプロキシ・サーバは、出力結果へのバックエンドAPI結果の重要なデータ変換を伴うプロキシAPIの効率的なパフォーマンス及び実行について構成されることができる。
図1の実施例で、ネットワーク104A、及びネットワーク104Bに接続されるように、エンドポイント・プロキシ・システム132を図示する。いくつかの実施形態で、エンドポイント・プロキシ・システム132内のいずれかのコンポーネントは、ネットワーク104A、及び/またはネットワーク104Bを介してコンピューティング環境100の他のコンポーネント(たとえば、ユーザ・コンピューティング・デバイス102、及びバックエンド・システム(複数可)114)と通信することが可能である。他の実施形態で、エンドポイント・プロキシ・システム132のすべてのコンポーネントは、コンピューティング環境100の他のコンポーネントと通信することが可能であるとは限らない。1つの実施例で、レスポンス・ハンドラ108のみをネットワーク104Aへ接続することができ、エンドポイント・プロキシ・システム132の他のコンポーネントは、レスポンス・ハンドラ108を介してコンピューティング環境100の他のコンポーネントと通信することができる。
図1の実施例で、ネットワーク104Aに接続されるように、エンドポイント管理システム106を図示する。いくつかの実施形態で、エンドポイント管理システム106内のいずれかのコンポーネントは、ネットワーク104A、及び/またはネットワーク104Bを介してコンピューティング環境100の他のコンポーネント(たとえば、ユーザ・コンピューティング・デバイス102、及びバックエンド・システム(複数可)114)と通信することが可能である。他の実施形態で、エンドポイント管理システム106のすべてのコンポーネントは、コンピューティング環境100の他のコンポーネントと通信することが可能であるとは限らない。1つの実施例で、マネージャ・ユーザ・コンソール132のみをネットワーク104Aへ接続することができ、エンドポイント管理システム106の他のコンポーネントは、マネージャ・ユーザ・コンソール132を介してコンピューティング環境100の他のコンポーネントと通信することができる。
バックエンド・システム(複数可)114は、ユーザ・コンピューティング・デバイス102のこれらと互換性がない、またはその他の方法でユーザ・コンピューティング・デバイス102によりアクセス困難であるプロトコルを有するレガシー・システムを含むことができる。またバックエンド・システム(複数可)114は、デバイス固有プロトコルを含むデバイス(たとえば、IoTデバイス)を含むことができる。
いくつかの実施形態で、エンドポイント・プロキシ・システム132は、バックエンド・システム(複数可)114、または他のシステムもしくはデバイスへのより便利なアクセスをユーザ・コンピューティング・デバイス102へ提供する。これらのような実施形態のいくつかで、エンドポイント・プロキシ・システム132は、デバイス固有プロトコルを含むIoTデバイスと通信することができる。たとえば、IoTデバイスは、温度センサを含むことができ、ユーザは、IoTデバイスからの温度情報を要求することが可能である。別の実施例で、IoTデバイスは、サーモスタットであることができ、ユーザは、それに所与の温度へ温度設定させることが可能であり得る。どのデバイスであるかにより、それは、異なる機能を有することが可能である。すべてのこれらの機能は、機能を操作するために存在するいくつかのタイプのAPI(たとえば、バックエンドAPI)により管理されることができる。エンドポイント・プロキシ・システム132は、必要なプロトコル変換、及び/またはデータ操作を実行し、デバイス固有プロトコルまたは要件について気に留めないで、ユーザがこのようなIoTデバイスとシームレスに通信することを可能にすることができる。たとえば、エンドポイント・プロキシ・システム132は、データについてIoTデバイスにクエリを行う、またはIoTデバイスへコマンドを送信することができる。これらのIoTデバイスから受信する応答を使用して、呼び出し側の要件に基づき呼び出し側へ返すように応答を適合させることができる。
図2は、限定されないが、レスポンス・ハンドラ108、キャッシュ・マネージャ120、セキュリティ・マネージャ122、パフォーマンス・ユニット124、及びSDK生成サービス126を含む、エンドポイント管理システムのさまざまなサブシステム及びユニットのさまざまな機能を可能にするように実装されることができるコンピューティング・デバイス106Aの一般的なアーキテクチャを描写する。図2で描写されるコンピューティング・デバイス106Aの一般的なアーキテクチャは、本開示の態様を実施するために使用されることができるコンピュータ・ハードウェア及びソフトウェア・モジュールの配置を有する。コンピューティング・デバイス106Aは、図2で示される要素より多い(またはより少ない)要素を含むことができる。しかしながら、有効な開示を提供するために、すべてのこれらの一般的な従来の要素を示す必要がない。図示されるように、コンピューティング・デバイス106Aは、処理ユニット190、ネットワーク・インタフェース192、コンピュータ可読媒体ドライブ194、入出力デバイス・インタフェース196を含み、これらのすべては、通信バスの方式で互いに通信することができる。ネットワーク・インタフェース192は、1つ以上のネットワークまたはコンピューティング・システムへ接続性を提供することができる。したがって、処理ユニット190は、ネットワーク104Aまたは104Bを介して他のコンピューティング・システムまたはサービスから情報及び命令を受信することができる。また、処理ユニット190は、メモリ180へ、及びこれから通信し、さらに入出力デバイス・インタフェース196を介して任意選択のディスプレイ(図示せず)についての出力情報を提供することができる。また、入出力デバイス・インタフェース196は、任意選択の入力デバイス(図示せず)から入力を受け付けることができる。
メモリ180は、本開示の1つ以上の態様を実施するために処理ユニット190が実行するコンピュータ・プログラム命令(いくつかの実施形態でモジュールとしてグループ化される)を含むことができる。メモリ180は、RAM、ROM、及び/または他の永続的な、補助的な、または非一時的なコンピュータ可読媒体を一般的に含む。メモリ180は、レスポンス・ハンドラ108の一般的な管理及び操作での処理ユニット190による使用のためにコンピュータ・プログラム命令を提供するオペレーティング・システム184を格納することができる。メモリ180は、本開示の態様を実施するために、コンピュータ・プログラム命令、及び他の情報をさらに含むことができる。たとえば、1つの実施形態で、メモリ180は、たとえば、コンピューティング・デバイス上にインストールされるブラウザまたはアプリケーションなどのナビゲーション及び/またはブラウジング・インタフェースを介して、コンピューティング・デバイス上で表示用のユーザ・インタフェース(及び/または表示用の命令)を生成するユーザ・インタフェース・ユニット182を含む。たとえば、ユーザ・インタフェース・ユニット182は、図3を参照して本明細書に図示され、記述される例示的なユーザ・インタフェース300などの1つ以上のエンドポイント管理構成ユーザ・インタフェースを生成することができる。ユーザ・インタフェースのコンテキストで図2の実施例を記述するが、追加で、または代替で、任意のCLI、API、または他のプログラマティック・インタフェースを使用して、本明細書に記述される1つ以上の実施形態を実施することができることを理解するであろう。加えて、メモリ180は、たとえば、プログラム・コード、パターン・マッチング定義、及び/またはライブラリにアクセスするために、1つ以上のデータ・リポジトリ(図示せず)を含むことができる、及び/またはこれらと通信することができる。
ユーザ・インタフェース・ユニット182に加えて、及び/またはこれと組み合わせて、メモリ180は、エンドポイント管理システム106、及び/またはエンドポイント・プロキシ・フリート132のサブシステム及びユニットの特定のインスタントと関連するさまざまな機能を提供するために処理ユニット190により実行されることができる追加ユニット186A,...,Nを含む。たとえば、レスポンス・ハンドラ108は、バックエンド・システム(複数可)114から受信する応答または結果をパースするために実行されることができる応答パーシング・ユニットを含むことができる。キャッシュ・マネージャ120は、キャッシング・ユニットを含むことができ、これは、バックエンド・システム(複数可)114から受信する結果をキャッシュするかどうか、及びキャッシュされた結果を使用して特定のプロキシAPI要求へ応答するかどうかを判定するために実行されることができる。セキュリティ・マネージャ122は、承認ユニットを含むことができ、これは、プロキシAPI要求が適切なセキュリティ識別を含み、続行することを許可されるかどうかを判定するために実行されることができる。パフォーマンス・ユニット124は、スロットル・ユニットを含むことができ、これは、プロキシAPI要求が現在のデマンド条件下で続行することを許可されるかどうかを判定するために実行されることができる。SDK生成サービス126は、APIマッピング解析ユニットを含むことができ、これは、1セットのAPIマッピング定義を統合されたSDKライブラリに集約するために実行されることができる。
さまざまな実施形態で、エンドポイント管理システム106、エンドポイント・プロキシ・システム132、及び/または別のコンピューティング・デバイスの他のコンポーネントは、追加ユニット186A,...,Nのすべて、または一部分を実装することができる。たとえば、本開示の特定の実施形態で、エンドポイント管理システム106、及び/またはエンドポイント・プロキシ・システム132と通信する別のコンピューティング・デバイスは、コンピューティング・デバイス106Aの部分として図示されるモジュール及びコンポーネントと同様に動作するいくつかのモジュールまたはコンポーネントを含むことができる。
ここで図3を参照し、エンドポイント管理システム106と関連してさまざまなエンドポイント管理構成オプションをユーザに提供する例示的なユーザ・インタフェース300を記述する。さまざまな実施形態で、図3で示されるユーザ・インタフェース300をウェブ・ページとして、モバイル・アプリケーション表示として、スタンドアロン・アプリケーション表示として、ポップアップ・ウィンドウもしくはダイアログ・ボックスとして、電子メール・メッセージとして、または他の通信手段により提示することができる。他の実施形態で、オーディオ、または他の形式の通信を使用して、類似したインタフェースを提示することができる。実施形態で、図3で示されるインタフェースは、インタラクティブであり、さまざまなユーザ・インタラクションへ応答するように構成される。これらのようなユーザ・インタラクションは、マウスでのクリック、キーボードでのタイピング、タッチ・スクリーン上でのタッチ及び/またはジェスチャ、音声コマンド、及び/または同様のものを有することができる。ユーザ・インタフェース300で示される表示要素は、多少の表示要素及びユーザ入力フィールドを実施形態により提示することができる、例示的な目的のためにすぎない。
示されるように、例示的なユーザ・インタフェース300は、複数の表示要素(たとえば、さまざまなAPIマッピング構成オプションの記述)、及びユーザ入力フィールド(たとえば、テキスト・ボックス、チェックまたはラジオ・ボックス、及びその他のもの)を含む。表示要素302で、ユーザ・インタフェースは、たとえば、ユーザがバックエンドAPIについてのシステムまたは接続設定を指定することができるシステム・アクセス/接続設定(表示要素304)、及び関連したテキスト入力フィールドと、ユーザがバックエンドAPI名を指定することができる機能名(表示要素306)、及び関連したテキスト入力フィールドと、ユーザがバックエンドAPIについて1つ以上の入力パラメータを指定することができる入力パラメータ(表示要素308)、及び関連したテキスト入力フィールドと、ユーザがバックエンドAPIにより提供される出力(複数可)のタイプを指定することができる出力結果パラメータ(表示要素308)、及び関連したテキスト入力フィールドと、を含む、複数のエンドポイントAPIオプションを提示する。
表示要素312で、ユーザ・インタフェースは、たとえば、ユーザがプロキシAPI名を指定することができる機能名(表示要素314)、及び関連したテキスト入力フィールドと、ユーザがプロキシAPIについて1つ以上の入力パラメータを指定することができる入力パラメータ(表示要素316)、及び関連したテキスト入力フィールドと、ユーザがプロキシAPIにより提供される出力(複数可)のタイプを指定することができる出力パラメータ(表示要素318)、及び関連したテキスト入力フィールドとを含む、複数のプロキシAPIオプションを提示する。
表示要素322で、ユーザ・インタフェースは、たとえば、エンドポイント管理システムが出力結果をキャッシュするかどうかをユーザが指定することができるキャッシュ結果設定(表示要素324)、及び関連したラジオ・ボックス選択ユーザ入力フィールド、ならびにキャッシュされた結果が有効である有効期限の長さをユーザが指定することができるキャッシュ有効期限(表示要素326)、及び関連したテキスト入力フィールドを含む、複数のキャッシュ・オプションを提示する。
表示要素328で、ユーザ・インタフェースは、たとえば、プロキシ及び/または関連したバックエンドAPI(複数可)を呼び出すことを許可されるユーザ及び/またはグループをユーザが指定することができる制限アクセス設定(表示要素330)、及び関連したテキスト・ボックス・ユーザ入力フィールド、ならびにメータリング識別子要件をプロキシAPIの実行のために強制する、または要求するかどうかをユーザが指定することができるメータリング識別要件設定(表示要素332)、及び関連したラジオ・ボックス選択フィールドを含む、複数のセキュリティ及びユーザ・アクセス・オプションを提示する。
表示要素334で、ユーザ・インタフェースは、たとえば、一定の期間にわたるバックエンドAPI要求の最大数をユーザが指定することができるAPI呼び出しサービス制限設定(表示要素336)、及び関連したテキスト・ボックス・ユーザ入力フィールドを含む、複数のパフォーマンス・オプションを提示する。
表示要素338で、ユーザ・インタフェースは、APIマッピング定義及び設定を保存する保存ボタンを提示し、これは、ユーザにより選択されるときに、エンドポイント管理システムにエンドポイント/APIマッピング定義データ・ソース128内にAPIマッピング定義を保存させることができる。表示要素340は、APIマッピングまたは設定を保存することなく、現在の構成をキャンセルする、または終了するキャンセル・ボタンを提示する。
エンドポイント管理システム106により提供されることができる図3で図示されない別の機能は、APIマッピング定義への変更がAPIマッピングの大きな変更をもたらすことができるインジケータであり得る。たとえば、プロキシAPIの名前、入力パラメータ、及び/または出力パラメータへの変更は、変更されたプロキシAPI定義への更新なしで、大きな変更前にプロキシAPIを使用する呼び出しシステムがプロキシAPIを使用することを不可能にする可能性があるような、大きな変更を有することができる。たとえば、プロキシAPI名を変更する場合、呼び出しシステムは、古い名前を使用してプロキシAPIを呼び出すことが不可能になる、または要求された入力パラメータ(及び/または関連した属性)数が変わる場合、呼び出しシステムは、ここで要求される入力より少ない入力を使用してプロキシAPIを呼び出すことが不可能になる、及びその他のことが不可能になり得る。さまざまな実施例で、エンドポイント管理システム106は、APIプロキシ定義への大きな変更が発生し、ユーザへ警告、またはインジケータを提供することができるときを検出するように構成されることができる。インジケータは、大きな変更を扱う方式に係る提案(たとえば、既存のAPIを変更する代わりに新規のプロキシAPIを作成すること、新規の、または修正された入力及び/または出力パラメータを任意選択で作成すること、既存の属性名または識別子を同じままにし、新規の属性名または識別子のみを追加すること、ならびに既存のAPIプロキシ・マッピング定義を維持する、または保持する類似したタイプのアクション)を任意選択で含むことができる。
ここで図4Aを参照し、エンドポイント管理システム106、及び/またはエンドポイント・プロキシ・システム132の1つ以上のコンポーネント(たとえば、レスポンス・ハンドラ108、キャッシュ・マネージャ120、セキュリティ・マネージャ122、パフォーマンス・ユニット124、及び/またはSDK生成サービス126)により実装されるルーチン400Aを記述する。エンドポイント管理システム106による実装に関してルーチン400Aを記述するが、当業者は、代替のコンポーネントがルーチン400Aを実装することができることを、または異なるコンポーネントにより、もしくは分散方式で、1つ以上のブロックを実装することができることを理解するであろう。
例示的なルーチン400Aのブロック402で、エンドポイント管理システム106は、バックエンドまたはエンドポイントAPI、及び関連したバックエンド・システムとインタフェースで接続するためにAPIマッピング定義を受信する。たとえば、図3を参照して本明細書に図示され、記述されるユーザ・インタフェース300を介して、APIマッピング定義を受信することができる。たとえば、エンドポイント/APIマッピング定義データ・ソース128内に、APIマッピング定義を格納することができる。APIマッピング定義は、本開示全体を通して記述されるように複数の構成オプションを有することができる。
つぎに、ブロック404で、エンドポイント・プロキシ・システム132は、呼び出しシステムからAPIプロキシを介してプログラム・コードを実行する要求を受信する。たとえば、ユーザ・コンピューティング・デバイス102から、要求を受信することができる。
ブロック406で、エンドポイント・プロキシ・システム132は、受信した要求に基づきAPIマッピング定義を決定する。この決定は、たとえば、プロキシAPI名、プロキシAPIと関連する入力パラメータ、呼び出しシステムまたは要求エンティティ、要求(識別トークン、メータリング識別子、または他の識別子などの)を提供する任意のセキュリティまたは識別情報、及びその他のものを含む、受信した要求と関連するさまざまな要因に基づくことができる。
ブロック408で、エンドポイント・プロキシ・システム132は、APIマッピング定義と関連するいくつかの前処理を任意選択で実行する。たとえば、1つの実施形態で、レスポンス・ハンドラ108は、プロキシAPI要求が適切なセキュリティ識別を有し、続行することを許可されるかどうかを判定することができる。または、同一の、もしくは別の実施形態で、レスポンス・ハンドラ108は、キャッシュ・マネージャ120とやり取りし、キャッシュされた結果がプロキシAPI要求へ応答するために利用可能であるかどうか、及び/または使用されるかどうかを判定することができる。または、同一の、または別の実施形態で、レスポンス・ハンドラ108は、パフォーマンス・ユニット124とやり取りし、プロキシAPI要求が現在のデマンド条件下で続行することを許可されるかどうかを判定することができる。たとえば、許可するAPI要求数への一定の制限(APIマッピング定義で示されるような)を超えていると判定することに応答して、パフォーマンス・ユニット124は、プロキシAPI要求を拒否することができる。
ブロック410で、エンドポイント・プロキシ・システム132は、APIマッピング定義で指定されるようにバックエンドAPIを介してバックエンド・システムにより処理するためにAPIプロキシ要求を変換する。たとえば、APIマッピング定義は、プロキシAPI要求と関連する1つ以上の入力パラメータをバックエンドまたはエンドポイントAPI要求についての1つ以上の入力パラメータにマッピングする、パースする、及び/または変換することを指定することができる。またエンドポイント・プロキシ・システム132は、バックエンドAPI要求を送信する特定のバックエンド・システムをAPIマッピング定義から決定することができる。これが完了すると、ルーチン400Aは、図4Bのブロック412へ進行することが可能である。
ここで図4Bを参照すると、ルーチン400Aは、例示的なルーチン400Bで継続する。ルーチン400Bのブロック412で、エンドポイント・プロキシ・システム132は、バックエンドAPIを介してプログラム・コードを実行する要求を特定のバックエンド・システム114へ送信する。いくつかの実施形態で、エンドポイント・プロキシ・システム132は、プロキシAPI要求と関連する複数のバックエンドAPI要求を送信することができ、これはAPIマッピング定義で指定され得る。APIマッピング定義で特定の構成により、複数のバックエンドAPI要求をシリアルに、またはパラレルに送信することができる。たとえば、1つのAPIマッピング定義は、ワークフローを指定することができ、その中で単一のプロキシAPI要求は、複数のバックエンドAPI要求に対応し、これらを含む。複数のバックエンドAPI要求のうちのいくつかは、独立していることができ(たとえば、パラレルで実行されることが可能であり)、また、これらのうちのいくつかは、依存していることができる(たとえば、第二バックエンドAPIの実行は、第一バックエンドAPIの実行から受信する成果結果に依存することができ、この状況で第二バックエンドAPIの実行が後に続く、第一バックエンドAPIのシリアル処理は、必要であり得る)。
ブロック414で、エンドポイント・プロキシ・システム132は、特定のバックエンド・システム114からバックエンドAPI要求(たとえば、プログラム・コードの実行から)の結果を受信する。
つぎに、ブロック416で、エンドポイント・プロキシ・システム132は、APIマッピング定義に少なくとも部分的に基づき受信した結果を変換する。たとえば、APIマッピング定義は、バックエンドAPI要求と関連する1つ以上の結果パラメータをプロキシAPI要求についての1つ以上の出力結果パラメータにマッピングする、パースする、及び/または変換することを指定することができる。たとえば、バックエンド・システム114から受信する結果は、APIマッピング定義にしたがって、一方のフォーマット(たとえば、JSONオブジェクト)に変換される他方のフォーマット(たとえば、XMLドキュメント)内にあることができる。
ブロック418で、エンドポイント・プロキシ・システム132は、受信した結果、及び/または変換された結果を任意選択でキャッシュする。たとえば、APIマッピング定義は、受信した結果、及び/または変換された結果(または両方)をキャッシュするかどうか、またキャッシュする場合に、その期間を示す、ユーザ固有の構成オプションを含むことができる。上記で考察されるように、たとえば、エンドポイント結果キャッシュ130で、これらの結果をキャッシュすることが可能である。
ブロック420で、エンドポイント・プロキシ・システム132は、受信したプロキシAPI要求に応答して、変換された結果を呼び出しシステム(たとえば、ユーザ・コンピューティング・デバイス102)へ提供する。いくつかの実施形態で、エンドポイント・プロキシ・システム132は、プロキシAPI要求と関連する追加のバックエンドAPI要求を送信し続けることができ、これは、APIマッピング定義で指定されることができる。
図4A〜4Bのルーチン400A〜400Bをブロック402〜410、及び412〜420を参照して上記で記述しているが、本明細書に記述される実施形態は、このようなものに制限されず、本開示の趣旨から逸脱することなく、1つ以上のブロックを省略する、修正する、または交換することができる。
図5は、通信ネットワーク104A及び/または104Bを介してサービス・プロバイダ・コンピュータ・ネットワーク501と通信する1つ以上のクライアント・コンピューティング・デバイス(「クライアント」)102を含む、ネットワーク化されたコンピューティング環境500の実施形態を図示するブロック図である。ネットワーク化されたコンピューティング環境500は、異なるコンポーネント、より多い数のコンポーネント、またはより少ない数のコンポーネントを含むことができ、異なって構造化されることが可能である。たとえば、1つより多いサービス・プロバイダ・コンピュータ・ネットワーク501があることが可能であるため、ホスティング・サービス、またはデータ・ストレージ・サービスは、たとえば、確立されたプロトコルまたは合意に基づき、複数のサービス・プロバイダ・コンピュータ・ネットワーク501を介して実装されることが可能である。別の実施例として、サービス・プロバイダ・コンピュータ・ネットワーク501は、多少のコンポーネントを含むことができ、いくつかのコンポーネントは、通信ネットワーク104A及び/または104Bを介して互いと通信することができる。
例示的に、サービス・プロバイダ・コンピュータ・ネットワーク501の顧客は、クライアント102を利用することが可能である。例示的な実施形態で、クライアント102は、ワイド・エリア・ネットワーク、またはローカル・エリア・ネットワークなどの、通信ネットワーク104A及び/または104B経由でサービス・プロバイダ・コンピュータ・ネットワーク501のさまざまなコンポーネントとの通信を確立するために、必要なハードウェア及びソフトウェア・コンポーネントを含む。たとえば、クライアント102には、インターネットまたはイントラネットを介して通信を促進するネットワーキング機器、及びブラウザ・ソフトウェア・アプリケーションが装備されることができる。クライアント102は、中央処理装置及びアーキテクチャ、メモリ、マス・ストレージ、グラフィックス・プロセッシング・ユニット、通信ネットワーク可用性及び帯域幅などのような、さまざまなローカル・コンピューティング・リソースを含むことができる。1つの実施形態で、クライアント102は、サービス・プロバイダ・コンピュータ・ネットワーク501によりホストされる仮想マシン・インスタンスへのアクセス、またはこれ経由での制御を有することができる。またクライアント102は、サービス・プロバイダ・コンピュータ・ネットワーク501により提供されるデータ・ストレージ・リソースへのアクセスを有することができる。
図5への参照を継続し、1つの例示的な実施形態によれば、サービス・プロバイダ・コンピュータ・ネットワーク501は、エンドポイント管理システム106、エンドポイント・プロキシ・システム132、1つ以上のホスト・コンピューティング・デバイス510、ストレージ管理サービス503、及び1つ以上のストレージ・システム507などの、相互接続されたコンポーネントを含むことができ、これらは、1つ以上のサービス・プロバイダと関連する1つ以上のデータ・センターの論理的な関連付けを有する。エンドポイント管理システム106は、1つ以上のコンピューティング・デバイスにより実装されることができる。たとえば、エンドポイント管理システム106は、コンピューティング・デバイスにより実装されることができ、これには、1つ以上の命令を実行する1つ以上のプロセッサ、メモリ、及び1つ以上のクライアント102またはサービス・プロバイダ・コンピュータ・ネットワーク501の他のコンポーネントと通信する通信デバイスが含まれる。いくつかの実施形態で、エンドポイント管理システム106をネットワーク経由で通信することが可能な1つ以上のサーバに実装する。他の実施形態で、1つ以上の仮想マシンは、ホストされたコンピューティング環境内に、エンドポイント管理システム106を実装する。例示的に、エンドポイント管理システム106は、本明細書に開示されるプロキシAPI管理及び構成、ならびに他の関連した機能性を有することが可能である。
1つ以上のコンピューティング・デバイスは、エンドポイント・プロキシ・システム132を実装することもできる。いくつかの実施形態で、エンドポイント・プロキシ・システム132を、ネットワーク経由で通信することが可能な1つ以上のコンピューティング・デバイスに実装する。他の実施形態で、1つ以上の仮想マシン・インスタンスは、ホストされたコンピューティング環境内に、エンドポイント・プロキシ・システム132を実装する。エンドポイント・プロキシ・システム132は、本明細書に記述されるように、プロキシAPIを実行し、バックエンド・システム114と通信する電子的な要求を受信し、これらの要求に応答することができる。
各ホスト・コンピューティング・デバイス510は、1つ以上の仮想マシン・インスタンス514をホストする物理コンピューティング・デバイスであってもよい。ホスト・コンピューティング・デバイス510は、仮想マシン・インスタンス114を管理する、ハイパーバイザなどの、ソフトウェア仮想マシン・マネージャ122を実行することで仮想マシン・インスタンス114をホストすることができる。仮想マシン・インスタンス114は、オペレーティング・システム、及びアプリケーション・ソフトウェアのインスタンスを実行することができる。
いくつかの実施形態で、ホスト・コンピューティング・デバイス510は、それらがクライアント102により直接アクセスできないように、サービス・プロバイダ・コンピュータ・ネットワーク501内で、IPアドレスなどの、プライベート・ネットワーク・アドレスと関連することができる。仮想マシン・インスタンスは、仮想マシン・マネージャ122、及びエンドポイント管理システム106により促進されるように、サービス・プロバイダ・コンピュータ・ネットワーク501のエッジでゲートウェイにより利用可能にされることができるパブリック・ネットワーク・アドレスと関連することができる。その結果、仮想マシン・インスタンス514は、パブリック・ネットワーク・アドレスを介してクライアント102により直接、アドレス指定可能であり得る。当業者は、各ホスト・コンピューティング・デバイス510が他の物理コンピューティング・デバイス・リソース及びソフトウェアを含み、複数の仮想マシン・インスタンスを実行する、または仮想マシン・インスタンスを動的にインスタンス化することを理解するであろう。これらのようなインスタンス化は、クライアント102からの要求などの、特定の要求に基づくことが可能である。
ストレージ管理サービス503は、1つ以上のストレージ・システム507と関連することが可能である。ストレージ・システム507は、仮想マシン・インスタンスにより生成される、もしくは利用される、またはその他の方法でクライアントにより提供されるデータを格納するために使用されるサーバであってもよい。例示的に、ストレージ管理サービス503は、データ・ストレージ・ボリューム内でデータを論理的に編成し、維持することが可能である。たとえば、ストレージ管理サービス503は、ストレージ空間割り当て、入出力操作、メタデータ管理、またはボリュームに関する他の機能性を実行する、または促進することができる。
いくつかの実施形態で、ボリュームは、複数のストレージ・システムにわたり分散されることができ、異なるネットワーク・エリア内のストレージ・システム上でパフォーマンス目的のために複製されることができる。ストレージ・システムは、異なる電源もしくは冷却システムに取り付けられることができる、データ・センターの異なる部屋に、もしくは異なるデータ・センターに設置されることができる、または異なるルータもしくはネットワーク・スイッチに取り付けられることができる。
例示的な実施形態で、ホスト・コンピューティング・デバイス510、またはストレージ・システム507は、コンポーネント、またはコンポーネントの部分が物理的に離れているかどうかにかかわらず、論理的にグループ化されるとみなされる。たとえば、サービス・プロバイダ・コンピュータ・ネットワーク501は、ホスト及びストレージ・コンポーネントを提供するために別々の位置に管理されることができる。加えて、ホスト・コンピューティング・デバイス510は、そのユーザのさまざまな層を最も良く満足させる方式で地理的に分散されることが可能である。当業者は、サービス・プロバイダ・コンピュータ・ネットワーク501がコンテンツ及びリソースの管理用の追加のコンピューティング・デバイス、ならびに同様のものなどの、さまざまな追加のコンピューティング・リソースと関連することが可能であることを理解するであろう。
当業者及びその他の者は、本開示に記述されるすべての機能が開示されたコンポーネント及びモバイル通信デバイスの1つ以上の物理プロセッサにより実行されるソフトウェアで具現化されることができることを理解するであろう。ソフトウェアは、任意のタイプの不揮発性ストレージに永続的に格納されることができる。
条件付き言語、とりわけ、「can(ことが可能である)」、「could(ことが可能である)」、「might(ことができる)」、または「may(ことができる)」などは、特に別段の定めがない限り、またはその他の方法で使用されるように文脈内で理解されない限り、特定の実施形態が特定の特徴、要素、及び/またはステップを含む一方で、他の実施形態は含まない、ことを伝えることを一般的に意図する。したがって、これらのような条件付き言語は、特徴、要素、及び/またはステップが1つ以上の実施形態のために要求される任意の方式内にあることを、またはユーザ入力もしくはプロンプティングの有無にかかわらず、いずれの特定の実施形態でもこれらの特徴、要素、及び/またはステップを含む、もしくは実行するかどうかを決定するためにロジックを1つ以上の実施形態が必ず含むことを、意味することを一般的に意図しない。
本明細書に記述される、及び/または添付の図面で描写される、流れ図内のいずれのプロセス説明、要素、またはブロックも、プロセス内に特定の論理的な機能またはステップを実装するために1つ以上の実行可能な命令を含むコードの、モジュール、セグメント、または部分を潜在的に表現するように理解されるであろう。代替の実施態様は、本明細書に記述される実施形態の範囲内に含まれ、当業者により理解されるように、要素または機能が関連する機能性に依存して、削除される、示される順序と異なる順序で実行される、または実質的に同時にもしくは逆の順序を含むように考察されることができる。上記で記述されたデータ及び/またはコンポーネントがCD−ROM、DVD−ROM、またはネットワーク・インタフェースなどのコンピュータ実行可能コンポーネントを格納するコンピュータ可読記憶媒体と関連するドライブ・メカニズムを使用して、コンピュータ可読媒体に格納され、コンピューティング・デバイスのメモリ内にロードされることができることをさらに理解するであろう。さらに、コンポーネント及び/またはデータは、単一のデバイス内に含まれる、または任意の方式で分散されることが可能である。その結果、汎用コンピューティング・デバイスは、上記で記述されたさまざまなデータ及び/またはコンポーネントの処理及び/または実行で、本開示のプロセス、アルゴリズム、及び方法論を実装するように構成されることができる。
多くの変形形態及び修正形態が上記で記述された実施形態に対して行われることができることを強調し、これらの要素は、他の許容可能な実施例内にあると理解されるであろう。すべてのこれらのような修正形態及び変形形態は、本開示の範囲内の本明細書内に包含され、以下の特許請求の範囲により保護されることを意図される。
以下の条項を考慮して本開示の実施形態を記述することが可能である。
1.アプリケーション・プログラミング・インタフェースのエンドポイント管理を提供するためのシステムであって、
アプリケーション・プログラミング・インタフェース(「API」)・マッピング定義を格納するように構成される電子データ・ストア、及び
特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含むエンドポイント・システム、
を備え、
前記エンドポイント・システムは、前記電子データ・ストアと通信し、少なくとも、
複数のAPIマッピング定義を受信し、各それぞれのAPIマッピング定義は、プロキシAPIを少なくとも1つのエンドポイントAPIと関連付け、
特定のプロキシAPIによりプログラム・コードを実行する呼び出しシステムからの要求を受信し、
前記受信した要求、及び前記特定のプロキシAPIに少なくとも部分的に基づき、前記特定のプロキシAPIと関連するAPIマッピング定義を決定し、
エンドポイントAPIシステムにより処理するために前記要求をエンドポイント要求に変換し、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記エンドポイント要求は、前記エンドポイントAPIシステム上で前記プログラム・コードを実行する命令を含み、
前記エンドポイント要求を前記エンドポイントAPIシステムへ送信し、前記エンドポイントAPIシステム上での前記プログラム・コードの実行を引き起こし、
前記エンドポイントAPIシステムからエンドポイント結果を受信し、前記エンドポイント結果は、前記エンドポイントAPIシステム上での前記プログラム・コードの前記実行から生成され、
前記エンドポイント結果をプロキシ結果に変換し、前記エンドポイント結果は、前記APIマッピング定義に少なくとも部分的に基づき変換され、
返信応答を前記呼び出しシステムへ提供し、前記返信応答は、少なくとも前記プロキシ結果を含む、
ように構成される、前記システム。
2.前記エンドポイント・システムは、それぞれのエンドポイントAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに前記エンドポイント結果のコピーを格納する、ようにさらに構成される、条項1に記載の前記システム。
3.前記エンドポイント・システムは、それぞれのエンドポイントAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記エンドポイント結果のキャッシュされたコピーにアクセスする、ようにさらに構成される、条項1に記載の前記システム。
4.特定のコンピュータ実行可能命令を実行するように適合される1つ以上のハードウェア・コンピューティング・デバイスを備え、アプリケーション・プログラミング・インタフェース(「API」)・マッピング定義を格納するように構成される電子データ・ストアと通信するエンドポイント・プロキシ・システム、
を備え、
前記エンドポイント・プロキシ・システムは、少なくとも、
プロキシAPIを実行するユーザ・コンピューティング・デバイスからの要求を受信し、
前記受信した要求、及び前記プロキシAPIに少なくとも部分的に基づき、前記プロキシAPIと関連するAPIマッピング定義を決定し、
バックエンドAPIシステムにより処理するために前記要求をバックエンド要求に変換し、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記バックエンド要求は、前記エンドポイントAPIシステム上でバックエンドAPIを実行する命令を含み、
前記バックエンド要求を前記エンドポイントAPIシステムへ送信し、前記バックエンド要求は、前記エンドポイントAPIシステム上での前記バックエンドAPIの実行を引き起こすように適合され、
前記バックエンドAPIシステムからバックエンド結果を受信し、前記エンドポイント結果は、前記バックエンドAPIシステム上での前記バックエンドAPIの実行により生成され、
前記バックエンド結果を出力結果に変換し、前記バックエンド結果は、前記APIマッピング定義に少なくとも部分的に基づき変換され、
前記出力結果を前記ユーザ・コンピューティング・デバイスへ提供する、
ように構成される、システム。
5.前記エンドポイント・プロキシ・システムは、それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに前記バックエンド結果のコピーを格納する、ようにさらに構成される、条項4に記載の前記システム。
6.前記エンドポイント・プロキシ・システムは、前記APIマッピング定義と関連するキャッシュ有効期限設定にしたがって、前記第二電子データ・ストアに前記バックエンド結果の前記コピーを格納する、ようにさらに構成される、条項5に記載の前記システム。
7.前記エンドポイント・プロキシ・システムは、それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記バックエンド結果のキャッシュされたコピーにアクセスする、ようにさらに構成される、条項4に記載の前記システム。
8.前記APIマッピング定義は、前記プロキシAPIについて少なくとも関連した構成設定、及び前記バックエンドAPIについて関連した構成設定を備える、条項4に記載の前記システム。
9.前記プロキシAPIについての前記関連した構成設定は、プロキシAPI名、プロキシAPI入力パラメータ、及びプロキシAPI出力結果タイプを備える、条項8に記載の前記システム。
10.前記バックエンドAPIについての前記関連した構成設定は、バックエンドAPI名、バックエンドAPI入力パラメータ、及びバックエンドAPI出力結果タイプを備える、条項8に記載の前記システム。
11.プロキシAPIを実行する前記要求は、第一ネットワーク経由で前記ユーザ・コンピューティング・デバイスから受信され、前記バックエンド結果は、第二ネットワーク経由で前記バックエンドAPIシステムから受信され、前記第二ネットワークは、前記第一ネットワークと別個である、条項4に記載の前記システム。
12.前記エンドポイント・プロキシ・システム、及び前記バックエンド・システムは、前記第二ネットワーク上に併置される、条項11に記載の前記システム。
13.特定の実行可能命令で構成される1つ以上のコンピューティング・デバイスにより実装されるように、
プロキシAPIを実行する呼び出しシステムからの要求を受信すること、
前記受信した要求、及び前記プロキシAPIに少なくとも部分的に基づき、前記プロキシAPIと関連するAPIマッピング定義を決定すること、
バックエンドAPIシステムにより処理するために前記要求をバックエンド要求に変換することであって、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記バックエンド要求は、前記エンドポイントAPIシステム上でバックエンドAPIを実行する命令を含む、前記変換すること、
前記バックエンド要求を前記エンドポイントAPIシステムへ送信することであって、前記バックエンド要求は、前記エンドポイントAPIシステム上での前記バックエンドAPIの実行を引き起こすように適合される、前記送信すること、
前記バックエンドAPIシステムからバックエンド結果を受信することであって、前記エンドポイント結果は、前記バックエンドAPIシステム上での前記バックエンドAPIの実行により生成される、前記受信すること、
前記バックエンド結果を出力結果に変換することであって、前記バックエンド結果は、前記APIマッピング定義に少なくとも部分的に基づき変換される、前記変換すること、
前記出力結果を前記呼び出しシステムへ提供すること、
を備える、コンピュータ実装方法。
14.それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに、前記バックエンド結果のコピーを格納すること、
をさらに備える、条項13に記載の前記コンピュータ実装方法。
15.第二プロキシAPIを実行する第二要求を受信すること、
前記受信した第二要求、及び前記第二プロキシAPIに少なくとも部分的に基づき、前記第二プロキシAPIと関連する第二APIマッピング定義を決定すること、
をさらに備える、条項13に記載の前記コンピュータ実装方法。
16.前記APIマッピング定義に基づき、前記第二プロキシAPIが前記バックエンドAPIへマッピングされることを決定すること、
それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記バックエンド結果のキャッシュされたコピーにアクセスすること、
をさらに備える、条項15に記載の前記コンピュータ実装方法。
17.前記APIマッピング定義に基づき、前記第二プロキシAPIが第二バックエンドAPIへマッピングされることを決定することであって、前記第二バックエンドAPIは、前記バックエンドAPIの実行により生成される1サブセットの前記バックエンド結果である第二バックエンド結果を返すように構成される、前記決定すること、
それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記バックエンド結果のキャッシュされたコピーにアクセスすること、
前記キャッシュされたコピーの変換された出力結果を前記呼び出しシステムへ提供すること、
をさらに備える、条項15に記載の前記コンピュータ実装方法。
18.コンピュータ実行可能命令を格納するコンピュータ可読で、非一時的な記憶媒体であって、前記コンピュータ実行可能命令は、1つ以上のコンピューティング・デバイスにより実行されるときに、前記1つ以上のコンピューティング・デバイスが、
プロキシAPIを実行する呼び出しシステムからの要求を受信すること、
前記受信した要求、及び前記プロキシAPIに少なくとも部分的に基づき、前記プロキシAPIと関連するAPIマッピング定義を決定すること、
バックエンドAPIシステムにより処理するために前記要求をバックエンド要求に変換することであって、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記バックエンド要求は、前記エンドポイントAPIシステム上でバックエンドAPIを実行する命令を含む、前記変換すること、
前記バックエンド要求を前記エンドポイントAPIシステムへ送信することであって、前記バックエンド要求は、前記エンドポイントAPIシステム上での前記バックエンドAPIの実行を引き起こすように適合される、前記送信すること、
前記バックエンドAPIシステムからバックエンド結果を受信することであって、前記エンドポイント結果は、前記バックエンドAPIシステム上での前記バックエンドAPIの実行により生成される、前記受信すること、
前記バックエンド結果を出力結果に変換することであって、前記バックエンド結果は、前記APIマッピング定義に少なくとも部分的に基づき変換される、前記変換すること、
前記出力結果を前記呼び出しシステムへ提供すること、
を備える操作を実行するように構成される、前記非一時的な記憶媒体。
19.前記操作は、それぞれのバックエンドAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに前記バックエンド結果のコピーを格納すること、
をさらに備える、条項18に記載の前記非一時的な記憶媒体。
20.前記操作は、前記APIマッピング定義と関連する承認設定に少なくとも部分的に基づき、前記プロキシAPIを実行する前記要求と関連するユーザ識別子が、承認されたユーザまたはグループとして前記APIマッピング定義に含まれることを判定すること、
をさらに備える、条項18に記載の前記コンピュータ可読で、非一時的な記憶媒体。
21.前記操作は、前記バックエンドAPIシステムと関連する現在のAPI要求作業負荷と、前記APIマッピング定義と関連するパフォーマンス・スロットリング設定の比較に少なくとも部分的に基づき、前記プロキシAPIを実行する前記要求が進行することを許可されることを判定すること、
をさらに備える、条項18に記載の前記コンピュータ可読で、非一時的な記憶媒体。
22.前記APIマッピング定義は、前記プロキシAPIについて少なくとも関連した構成設定、及び前記バックエンドAPIについて関連した構成設定を備える、条項18に記載の前記非一時的な記憶媒体。
23.前記プロキシAPIは、第一プロトコルと関連し、前記バックエンドAPIは、第二プロトコルと関連する、条項18に記載の前記非一時的な記憶媒体。

Claims (15)

  1. アプリケーション・プログラミング・インタフェースのエンドポイント管理を提供するためのシステムであって、
    アプリケーション・プログラミング・インタフェース(「API」)・マッピング定義を格納するように構成される電子データ・ストア、及び
    特定のコンピュータ実行可能命令を実行する1つ以上のハードウェア・コンピューティング・デバイスを含むエンドポイント・システム、
    を備え、
    前記エンドポイント・システムは、前記電子データ・ストアと通信し、少なくとも、
    複数のAPIマッピング定義を受信し、各APIマッピング定義は、プロキシAPIを少なくとも1つのエンドポイントAPIと関連付け、
    特定のプロキシAPIによりプログラム・コードを実行する呼び出しシステムからの要求を受信し、
    前記エンドポイント・システムで、前記要求の処理を進行することが可能であること判定し、
    前記要求の処理を進行するとの判定により、前記受信した要求、及び前記特定のプロキシAPIに少なくとも部分的に基づき、前記特定のプロキシAPIと関連するAPIマッピング定義を決定し、
    エンドポイントAPIシステムにより処理するために前記要求をエンドポイント要求へ変換し、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記エンドポイント要求は、前記エンドポイントAPIシステム上で前記プログラム・コードを実行する命令を含み、
    前記エンドポイント要求を前記エンドポイントAPIシステムに送信し、前記エンドポイントAPIシステム上での前記プログラム・コードの実行を引き起こし、
    前記エンドポイントAPIシステムからエンドポイント結果を受信し、前記エンドポイント結果は、前記エンドポイントAPIシステム上での前記プログラム・コードの前記実行から生成され、
    前記エンドポイント結果をプロキシ結果に変換し、前記エンドポイント結果は、前記APIマッピング定義に少なくとも部分的に基づき変換され、
    前記特定のプロキシAPIと関連する前記APIマッピング定義によって特定された構成設定に従い、前記エンドポイント結果又は前記プロキシ結果の一方又は両方をキャッシュし、
    前記呼び出しシステムへ返信応答を提供し、前記返信応答は、少なくとも前記プロキシ結果を有する、
    ように構成される、前記システム。
  2. 前記エンドポイント・システムは、それぞれのエンドポイントAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに前記エンドポイント結果のコピーを格納する、ようにさらに構成される、請求項1に記載の前記システム。
  3. 前記エンドポイント・システムは、それぞれのエンドポイントAPIシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記エンドポイント結果のキャッシュされたコピーにアクセスする、ようにさらに構成される、請求項1に記載の前記システム。
  4. 特定のコンピュータ実行可能命令を実行するように適合される1つ以上のハードウェア・コンピューティング・デバイスを備え、アプリケーション・プログラミング・インタフェース(「API」)・マッピング定義を格納するように構成される電子データ・ストアと通信するエンドポイント・プロキシ・システム、
    を備え、
    前記エンドポイント・プロキシ・システムは、少なくとも、
    プロキシAPIを実行するユーザ・コンピューティング・デバイスからの要求を受信し、
    前記エンドポイント・プロキシ・システムで、前記要求の処理を進行することが可能であること判定し、
    前記要求の処理を進行するとの判定により、前記受信した要求、及び前記プロキシAPIに少なくとも部分的に基づき、前記プロキシAPIと関連するAPIマッピング定義を決定し、
    バックエンドシステムにより処理するために前記要求をバックエンド要求に変換し、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記バックエンド要求は、前記バックエンドシステム上でバックエンドAPIを実行する命令を含み、
    前記バックエンド要求を前記バックエンドシステムへ送信し、前記バックエンド要求は、前記バックエンドシステム上での前記バックエンドAPIの実行を引き起こすように適合され、
    前記バックエンドシステムからバックエンド結果を受信し、前記バックエンド結果は、前記バックエンドシステム上での前記バックエンドAPIの実行により生成され、
    前記バックエンド結果を出力結果に変換し、前記バックエンド結果は、前記APIマッピング定義に少なくとも部分的に基づき変換され、
    前記プロキシAPIと関連する前記APIマッピング定義によって特定された構成設定に従い、前記バックエンド結果又は前記出力結果の一方又は両方をキャッシュし、
    前記出力結果を前記ユーザ・コンピューティング・デバイスへ提供する、
    ように構成される、システム。
  5. 前記エンドポイント・プロキシ・システムは、それぞれのバックエンドシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに前記バックエンド結果のコピーを格納するように、さらに構成される、請求項4に記載の前記システム。
  6. 前記エンドポイント・プロキシ・システムは、前記APIマッピング定義と関連するキャッシュ有効期限設定にしたがって、前記第二電子データ・ストアに前記バックエンド結果の前記コピーを格納する、ようにさらに構成される、請求項5に記載の前記システム。
  7. 前記エンドポイント・プロキシ・システムは、それぞれのバックエンドシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアから前記バックエンド結果のキャッシュされたコピーにアクセスする、ようにさらに構成される、請求項4に記載の前記システム。
  8. 前記APIマッピング定義は、前記プロキシAPIについて少なくとも関連した構成設定、及び前記バックエンドAPIについて関連した構成設定を備える、請求項4に記載の前記システム。
  9. 前記プロキシAPIについての前記関連した構成設定は、プロキシAPI名、プロキシAPI入力パラメータ、及びプロキシAPI出力結果タイプを備える、請求項8に記載の前記システム。
  10. 前記バックエンドAPIについての前記関連した構成設定は、バックエンドAPI名、バックエンドAPI入力パラメータ、及びバックエンドAPI出力結果タイプを備える、請求項8に記載の前記システム。
  11. プロキシAPIを実行する前記要求は、第一ネットワーク経由で前記ユーザ・コンピューティング・デバイスから受信され、前記バックエンド結果は、第二ネットワーク経由で前記バックエンドシステムから受信され、前記第二ネットワークは、前記第一ネットワークと別個である、請求項4に記載の前記システム。
  12. 前記エンドポイント・プロキシ・システム、及び前記バックエンドシステムは、前記第二ネットワーク上に併置される、請求項11に記載の前記システム。
  13. 特定の実行可能命令で構成される1つ以上のコンピューティング・デバイスにより実装されるように、
    プロキシAPIを実行する呼び出しシステムからの要求を受信すること、
    前記呼び出しシステムで、前記要求の処理を進行することが可能であること判定すること、
    前記要求の処理を進行するとの判定により、前記受信した要求、及び前記プロキシAPIに少なくとも部分的に基づき、前記プロキシAPIと関連するAPIマッピング定義を決定すること、
    バックエンドシステムにより処理するために前記要求をバックエンド要求に変換することであって、前記要求は、前記APIマッピング定義に少なくとも部分的に基づき変換され、前記バックエンド要求は、前記バックエンドシステム上でバックエンドAPIを実行する命令を含む、前記変換すること、
    前記バックエンド要求を前記バックエンドシステムへ送信することであって、前記バックエンド要求は、前記バックエンドシステム上での前記バックエンドAPIの実行を引き起こすように適合される、前記送信すること、
    前記バックエンドシステムからバックエンド結果を受信することであって、前記バックエンド結果は、前記バックエンドシステム上での前記バックエンドAPIの実行により生成される、前記受信すること、
    前記バックエンド結果を出力結果に変換することであって、前記バックエンド結果は、前記APIマッピング定義に少なくとも部分的に基づき変換される、前記変換すること、
    前記プロキシAPIと関連する前記APIマッピング定義によって特定された構成設定に従い、前記バックエンド結果又は前記出力結果の一方又は両方をキャッシュすること、
    前記出力結果を前記呼び出しシステムへ提供すること、
    を備える、コンピュータ実装方法。
  14. それぞれのバックエンドシステムから受信するキャッシュされた結果を格納するように構成される第二電子データ・ストアに、前記バックエンド結果のコピーを格納すること、
    をさらに備える、請求項13に記載の前記コンピュータ実装方法。
  15. 第二プロキシAPIを実行する第二要求を受信すること、
    前記受信した第二要求、及び前記第二プロキシAPIに少なくとも部分的に基づき、前記第二プロキシAPIと関連する第二APIマッピング定義を決定すること、
    前記キャッシュされたコピーの変換された出力結果を、前記呼び出しシステムへ提供すること、
    をさらに備える、請求項13に記載の前記コンピュータ実装方法。
JP2017552458A 2015-04-08 2016-04-07 アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム Active JP6559252B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/682,033 2015-04-08
US14/682,033 US9930103B2 (en) 2015-04-08 2015-04-08 Endpoint management system providing an application programming interface proxy service
PCT/US2016/026514 WO2016164633A1 (en) 2015-04-08 2016-04-07 Endpoint management system providing an application programming interface proxy service

Publications (2)

Publication Number Publication Date
JP2018515835A JP2018515835A (ja) 2018-06-14
JP6559252B2 true JP6559252B2 (ja) 2019-08-14

Family

ID=55754473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017552458A Active JP6559252B2 (ja) 2015-04-08 2016-04-07 アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム

Country Status (6)

Country Link
US (2) US9930103B2 (ja)
EP (2) EP3281113A1 (ja)
JP (1) JP6559252B2 (ja)
CN (1) CN107743616B (ja)
CA (1) CA2980772C (ja)
WO (1) WO2016164633A1 (ja)

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
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
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
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
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
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
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US10733033B2 (en) * 2015-04-17 2020-08-04 Hewlett Packard Enterprise Development Lp Dynamic messaging for an application programming interface
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
US9712513B2 (en) * 2015-10-05 2017-07-18 Kony, Inc. Identity management over multiple identity providers
US11171924B2 (en) 2015-10-14 2021-11-09 Adp, Inc. Customized web services gateway
US10623528B2 (en) * 2015-10-14 2020-04-14 Adp, Llc Enterprise application ecosystem operating system
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
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
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
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
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
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
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
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
US10834586B2 (en) * 2016-07-29 2020-11-10 Amzetta Technologies, Llc System and method for controlling heterogeneous internet of things (IoT) devices using single application
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10164818B2 (en) * 2016-10-05 2018-12-25 International Business Machines Corporation Effective indexing of protocol information
US10567259B2 (en) * 2016-10-19 2020-02-18 Extreme Networks, Inc. Smart filter generator
US9740543B1 (en) * 2016-10-27 2017-08-22 Red Hat, Inc. Multi-endpoint method implementation
US10394538B2 (en) * 2017-02-09 2019-08-27 International Business Machines Corporation Optimizing service deployment in a distributed computing environment
CN107707593B (zh) * 2017-02-21 2018-08-17 贵州白山云科技有限公司 一种提高缓存命中率的动态资源访问加速方法及装置
US10467143B1 (en) * 2017-02-27 2019-11-05 Amazon Technologies, Inc. Event-driven cache
US10467071B2 (en) 2017-03-17 2019-11-05 Accenture Global Solutions Limited Extensible key management system for application program interfaces
US10511574B2 (en) * 2017-03-31 2019-12-17 Hyland Software, Inc. Methods and apparatuses for utilizing a gateway integration server to enhance application security
US10203938B2 (en) * 2017-04-21 2019-02-12 Accenture Global Solutions Limited Application engineering platform
CN108989372B (zh) * 2017-06-02 2021-04-09 华为技术有限公司 服务发现的方法、注册中心和设备
WO2018232022A1 (en) * 2017-06-13 2018-12-20 Equinix, Inc. Service peering exchange
US10771539B2 (en) * 2017-06-16 2020-09-08 Amadeus S.A.S. Systems and methods for cross-cluster service provision
US11238164B2 (en) * 2017-07-10 2022-02-01 Burstiq, Inc. Secure adaptive data storage platform
US11570268B2 (en) * 2017-09-21 2023-01-31 Microsoft Technology Licensing, Llc Proxy system for bot connectivity to communication channels
CN107577629B (zh) * 2017-09-25 2019-12-31 北京因特睿软件有限公司 一种数据接口处理方法、装置、服务器及介质
US10762079B2 (en) 2017-09-29 2020-09-01 Oracle International Corporation System and method for managing a blockchain cloud service
CN111279319A (zh) 2017-09-30 2020-06-12 甲骨文国际公司 容器组的动态迁移
US11429400B2 (en) * 2017-10-20 2022-08-30 Red Hat, Inc. User interface metadata from an application program interface
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10698664B2 (en) * 2017-12-21 2020-06-30 Fujitsu Limited API mashup generation
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations 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
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to 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
JP7077688B2 (ja) 2018-03-15 2022-05-31 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
US10437634B1 (en) * 2018-04-16 2019-10-08 Microsoft Technology Licensing Llc Independently threading API calls to service a request
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
US10705888B2 (en) * 2018-07-05 2020-07-07 Secude Ag Method and system for providing enhanced executable applications
US10904238B2 (en) * 2018-07-13 2021-01-26 Sap Se Access token management for state preservation and reuse
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
US11169985B2 (en) 2018-07-27 2021-11-09 Oracle International Corporation System and method for supporting SQL-based rich queries in hyperledger fabric blockchains
US10999150B2 (en) * 2018-07-27 2021-05-04 Vmware, Inc. Methods, systems and apparatus for dynamically extending a cloud management system by adding endpoint adapter types
US11182379B2 (en) 2018-08-24 2021-11-23 Oracle International Corporation DAG based methods and systems of transaction processing in a distributed ledger
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
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
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
CN109857572B (zh) * 2018-12-29 2022-03-01 阿波罗智能技术(北京)有限公司 实现远程调用的方法、装置、设备及计算机可读存储介质
US10931774B2 (en) * 2019-01-17 2021-02-23 Servicenow, Inc. Discovery and service mapping of application programming interface proxies
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11971861B2 (en) * 2019-03-15 2024-04-30 Microsoft Technology Licensing, Llc Providing scalable and concurrent file systems
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11113029B2 (en) 2019-04-10 2021-09-07 International Business Machines Corporation Probabilistic matching of web application program interface code usage to specifications
US11310328B2 (en) * 2019-05-03 2022-04-19 Sap Se Generic command line interface to an extensible list of cloud platform services
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
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
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
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
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
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to 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
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of 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
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
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
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
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
US11403156B2 (en) * 2019-10-01 2022-08-02 The Bank Of New York Mellon API hub architecture
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
US11334461B2 (en) * 2019-12-12 2022-05-17 Vmware, Inc. Distributed application resource determination based on performance metrics
US11036612B1 (en) * 2019-12-12 2021-06-15 Vmware, Inc. Centralized application resource determination based on performance metrics
CN111131219B (zh) * 2019-12-19 2022-04-05 北京轻元科技有限公司 基于FlatBuffers的物联网高效数据传输方法
US11741410B2 (en) * 2020-01-18 2023-08-29 SkyKick, Inc. Centralized cloud service management
US11520602B2 (en) * 2020-01-27 2022-12-06 Red Hat, Inc. Generating configuration corrections for applications using a classifier model
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
CN111625585B (zh) * 2020-05-22 2021-08-31 中科驭数(北京)科技有限公司 硬件加速数据库的访问方法、装置、主机及存储介质
CN113760478A (zh) * 2020-06-05 2021-12-07 华为技术有限公司 目标作业系统的访问控制方法、装置、设备及介质
CN111800496B (zh) * 2020-06-30 2023-05-02 中国平安财产保险股份有限公司 接口调用方法、装置、计算机设备及存储介质
US11651096B2 (en) 2020-08-24 2023-05-16 Burstiq, Inc. Systems and methods for accessing digital assets in a blockchain using global consent contracts
US11381564B2 (en) * 2020-10-09 2022-07-05 Sap Se Resource security integration platform
US11822538B2 (en) 2020-11-05 2023-11-21 Oracle International Corporation Systems and methods of transaction identification generation for transaction-based environment
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
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
US11887128B1 (en) * 2021-01-25 2024-01-30 Stripe, Inc. Systems and methods for providing an end to end customer portal
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
US11755392B2 (en) * 2021-04-23 2023-09-12 Paypal, Inc. Edge cloud caching using real-time customer journey insights
US11954517B2 (en) * 2021-05-04 2024-04-09 Visa International Service Association Computer-implemented method and system for providing dynamic endpoints for performing data transactions
CN113176913B (zh) * 2021-05-25 2023-03-24 深圳前海微众银行股份有限公司 Java代理的处理方法、装置、终端设备以及存储介质
US11789787B2 (en) * 2021-06-04 2023-10-17 Oracle International Corporation Communicating between applications using api mapping
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US20230342375A1 (en) * 2022-04-20 2023-10-26 Microsoft Technology Licensing, Llc Extension for Third Party Provider Data Access
US20230421519A1 (en) * 2022-06-27 2023-12-28 Twilio Inc. Transferring messaging conversations between user accounts using a software as a service platform
US11922239B1 (en) * 2022-11-11 2024-03-05 Ekahaa Solutions India Pvt Ltd System and method for abstraction of application programming interface creation without code

Family Cites Families (439)

* 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
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
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
FR2801118B1 (fr) * 1999-11-17 2001-12-21 Bull Cp8 Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque
DE10048942B4 (de) 1999-12-01 2008-07-03 International Business Machines Corp. Verfahren und System zur Wartung von Software über ein Netz
KR100357850B1 (ko) * 2000-03-29 2002-10-25 삼성전자 주식회사 코버플락시모듈을 이용한 다양한 프로토콜 공통 서비스를위한 분산객체 지향 통신시스템 및 그 방법
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
US6760908B2 (en) 2001-07-16 2004-07-06 Namodigit Corporation Embedded software update system
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
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
US7308463B2 (en) * 2002-06-26 2007-12-11 Hewlett-Packard Development Company, L.P. Providing requested file mapping information for a file on a storage device
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
CA2508317C (en) 2002-12-02 2012-07-24 Sap Aktiengesellschaft Session-return enabling stateful web applications
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
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
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
US20050268308A1 (en) * 2004-05-28 2005-12-01 Nokia Corporation System and method for implementing a general application program interface
US7359834B2 (en) 2004-08-13 2008-04-15 Sun Microsystems, Inc. Monitoring system-calls to identify runaway processes within a computer 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 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
US8930536B2 (en) 2005-03-16 2015-01-06 Adaptive Computing Enterprises, Inc. Virtual private cluster
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid 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
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
JP2007080161A (ja) * 2005-09-16 2007-03-29 Nec Personal Products Co Ltd データ配信システム、部分コンテンツ格納サーバ、応答高速化方法、及びプログラム
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
US7747565B2 (en) 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for transactional memory
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
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
EP1992123A2 (en) 2006-02-13 2008-11-19 Maria Gaos System and method for generating and executing a platform emulation based on a selected application
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
US8190682B2 (en) 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8095931B1 (en) 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
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
US8315171B2 (en) 2006-10-31 2012-11-20 Oracle America, Inc. Adaptive management of computing resources
US7644204B2 (en) 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
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 国际商业机器公司 用于软件应用程序的自动配置的方法和系统
EP2126694A2 (en) 2006-12-22 2009-12-02 VirtualLogix SA System for enabling multiple execution environments to share a device
JP5262724B2 (ja) 2007-01-11 2013-08-14 日本電気株式会社 プロビジョニングシステム、方法、及び、プログラム
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8793676B2 (en) 2007-02-15 2014-07-29 Microsoft Corporation Version-resilient loader for custom code runtimes
US8176486B2 (en) 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
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
JP5018133B2 (ja) 2007-02-27 2012-09-05 富士通株式会社 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
JP5293595B2 (ja) 2007-03-20 2013-09-18 富士通株式会社 コンピュータプログラム、更新システム、及びプログラム実行装置
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)
US8161476B2 (en) 2007-07-04 2012-04-17 International Business Machines Corporation Processor exclusivity in a partitioned system
EP2015179A1 (en) * 2007-07-13 2009-01-14 Alcatel Lucent A remote management system and method for service objects
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
US8397236B2 (en) 2007-08-24 2013-03-12 Virtualmetrix, Inc. Credit based performance managment 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
WO2009043033A2 (en) 2007-09-28 2009-04-02 Xcerion Aktiebolag 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
US20090158407A1 (en) * 2007-12-13 2009-06-18 Fiberlink Communications Corporation Api translation for network access control (nac) agent
US20110040812A1 (en) 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
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
US7886021B2 (en) 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US8972978B2 (en) 2008-05-02 2015-03-03 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 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
US8560713B2 (en) * 2008-07-31 2013-10-15 Sap Ag Method and system for mediating enterprise service access for smart devices
US20100036925A1 (en) 2008-08-07 2010-02-11 Tactara, Llc Alias management platforms
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
WO2010030703A1 (en) 2008-09-09 2010-03-18 Kace Networks, Inc. Deployment and management of virtual containers
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US20100070678A1 (en) 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
US8458717B1 (en) 2008-09-23 2013-06-04 Gogrid, LLC System and method for automated criteria based deployment of virtual machines across a grid of hosting resources
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
US8775544B2 (en) 2009-02-04 2014-07-08 Citrix Systems, Inc. Methods and systems for dynamically switching between communications protocols
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
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
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
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
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
EP3002703B1 (en) 2009-12-14 2017-08-30 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
US8683465B2 (en) 2009-12-18 2014-03-25 International Business Machines Corporation Virtual image deployment with a warm cache
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
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 株式会社日立製作所 計算機システム及びその可用化方法
US9021046B2 (en) 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
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
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
WO2011143103A2 (en) 2010-05-10 2011-11-17 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
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
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
EP2622504A4 (en) 2010-09-30 2018-01-17 Amazon Technologies, Inc. Virtual resource cost tracking with dedicated implementation resources
EP2629197B1 (en) 2010-10-12 2019-09-11 Fujitsu Limited Simulation device, method, and program
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
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US9645839B2 (en) 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment
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
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
US8555281B1 (en) 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
US9552215B2 (en) 2011-03-08 2017-01-24 Rackspace Us, Inc. Method and system for transferring a virtual machine
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US8886937B2 (en) 2011-03-11 2014-11-11 Resource Interactive, Llc PCI DSS 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
JP5892164B2 (ja) 2011-06-14 2016-03-23 日本電気株式会社 コンテンツ配信システム、制御装置およびコンテンツ配信方法
US9450838B2 (en) 2011-06-27 2016-09-20 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
FR2977116A1 (fr) 2011-06-27 2012-12-28 France Telecom Procede de fourniture de service d'execution de logiciel a la demande
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
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
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
WO2013048986A1 (en) 2011-09-26 2013-04-04 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
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
RU2586016C2 (ru) 2011-11-15 2016-06-10 Японское Агентство По Науке И Технике Система предоставления услуги анализа/верификации программ, способ управления такой системой, машиночитаемая среда хранения, устройство для анализа/верификации программ, устройство для управления средством анализа/верификации программ
US8924954B2 (en) 2011-11-22 2014-12-30 Huawei Technologies Co., Ltd. Application software installation method and application software installation apparatus
EP2783284B1 (en) 2011-11-22 2019-03-13 Solano Labs, Inc. System of distributed software quality improvement
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
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
US8769519B2 (en) 2011-12-08 2014-07-01 Microsoft Corporation Personal and pooled virtual machine update
US9363099B2 (en) * 2011-12-13 2016-06-07 Ericsson Ab UPnP/DLNA with RADA hive
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
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
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
US20130179894A1 (en) 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
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
US8789047B2 (en) 2012-01-26 2014-07-22 Empire Technology Development Llc Allowing world switches between virtual machines via hypervisor world switch security setting
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
KR101629879B1 (ko) 2012-02-06 2016-06-13 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
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
US20130263117A1 (en) 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio
US9026658B2 (en) 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
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
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
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
US8955091B2 (en) 2012-04-30 2015-02-10 Zscaler, Inc. Systems and methods for integrating cloud services with information management systems
US10404551B2 (en) 2012-04-30 2019-09-03 Entit Software Llc Automated event management
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
DK2663052T3 (da) 2012-05-09 2021-04-12 Netflix Inc API Platform, der indbefatter serverudført, klientbaseret kode
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
US9317689B2 (en) 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US8799236B1 (en) 2012-06-15 2014-08-05 Amazon Technologies, Inc. Detecting duplicated content among digital items
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
US8869157B2 (en) 2012-06-21 2014-10-21 Breakingpoint Systems, Inc. Systems and methods for distributing tasks and/or processing recources in a system
US8959484B2 (en) 2012-06-21 2015-02-17 Microsoft Corporation System for hosted, shared, source control build
US8832820B2 (en) 2012-06-25 2014-09-09 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment
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
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
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
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
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
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
US20140108558A1 (en) * 2012-10-12 2014-04-17 Citrix Systems, Inc. Application Management Framework for Secure Data Sharing 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
US20160019536A1 (en) * 2012-10-17 2016-01-21 Royal Bank Of Canada Secure processing of data
US9229759B2 (en) 2012-10-17 2016-01-05 Microsoft Technology Licensing, Llc Virtual machine provisioning using replicated containers
US9262212B2 (en) 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines
EP2916600B1 (en) 2012-11-05 2019-01-30 Lg Electronics Inc. Method and apparatus for generating synchronous signal in wireless access system for supporting super-high frequency band
US9038068B2 (en) 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
CN104583971B (zh) 2012-11-19 2017-07-14 株式会社日立制作所 管理系统和管理方法
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
WO2014128948A1 (ja) 2013-02-25 2014-08-28 株式会社日立製作所 仮想サーバおよび非仮想サーバ混在環境におけるテナントネットワーク構成の管理方法
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
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
US9313203B2 (en) * 2013-03-15 2016-04-12 Symantec Corporation Systems and methods for identifying a secure application when connecting to a network
US10430332B2 (en) 2013-03-25 2019-10-01 Salesforce.Com, Inc. System and method for performance tuning of garbage collection algorithms
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
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
JP5850895B2 (ja) * 2013-09-20 2016-02-03 ヤフー株式会社 検索システム、検索方法、端末装置および検索プログラム
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
WO2015073719A1 (en) 2013-11-13 2015-05-21 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 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置
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
US9665235B2 (en) 2013-12-31 2017-05-30 Vmware, Inc. Pre-configured hyper-converged computing device
CN103731427B (zh) * 2013-12-31 2017-04-12 华为技术有限公司 一种会话处理的方法、设备和系统
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
US20170068574A1 (en) 2014-02-25 2017-03-09 Hewlett Packard Enterprise Development Lp 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
EP3120282B1 (en) 2014-03-18 2019-07-31 British Telecommunications public limited company User authentication
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)
US9250893B2 (en) 2014-05-14 2016-02-02 Western Digital Technologies, Inc. Virtualized and automated software build system
US9213840B2 (en) 2014-05-15 2015-12-15 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
US9361102B2 (en) 2014-06-09 2016-06-07 Lehigh University Methods for enforcing control flow of a computer program
US9390260B2 (en) 2014-06-09 2016-07-12 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
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
US9582301B2 (en) * 2014-09-17 2017-02-28 International Business Machines Corporation Method of defining javascript objects
CN104243479B (zh) * 2014-09-19 2018-05-08 北京电游互动科技有限公司 一种外接设备聚合装置和方法
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
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
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
US10241691B2 (en) 2014-11-04 2019-03-26 Rubrik, Inc. Data management system
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
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
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
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
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US20160350099A1 (en) 2015-05-29 2016-12-01 Hewlett Packard Enterprise Development Lp Application deployment to virtual machines
US9612865B2 (en) 2015-06-15 2017-04-04 International Business Machines Corporation Managed services coordinator
US11106538B2 (en) 2015-06-16 2021-08-31 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
US11429442B2 (en) 2015-06-29 2022-08-30 Vmware, Inc. Parallel and distributed computing using multiple virtual machines
US10235209B2 (en) 2015-08-28 2019-03-19 Vmware, Inc. Hybrid task framework
CN106548262B (zh) 2015-09-21 2020-11-06 阿里巴巴集团控股有限公司 用于处理任务的资源的调度方法、装置和系统
US10007710B2 (en) 2015-09-21 2018-06-26 Splunk Inc. Adaptive control of data collection requests sent to external data sources
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
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
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
US9514037B1 (en) 2015-12-16 2016-12-06 International Business Machines Corporation Test program scheduling based on analysis of test data sets
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
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
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
EP3436927B1 (en) 2016-03-30 2023-12-13 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
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
EP3379413A1 (en) 2017-03-21 2018-09-26 Nokia Solutions and Networks Oy Optimization of a software image layer stack
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls

Also Published As

Publication number Publication date
US9930103B2 (en) 2018-03-27
CN107743616A (zh) 2018-02-27
WO2016164633A1 (en) 2016-10-13
CN107743616B (zh) 2022-03-01
US10623476B2 (en) 2020-04-14
JP2018515835A (ja) 2018-06-14
US20160301739A1 (en) 2016-10-13
CA2980772C (en) 2020-03-24
EP3281113A1 (en) 2018-02-14
EP4064052A1 (en) 2022-09-28
CA2980772A1 (en) 2016-10-13
US20180309819A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
JP6559252B2 (ja) アプリケーション・プログラミング・インタフェース・プロキシ・サービスを提供するエンドポイント管理システム
US11941425B2 (en) Systems and methods for tuning containers in a high availability environment
US10776171B2 (en) Endpoint management system and virtual compute system
JP6935496B2 (ja) メッセージングプロトコル通信の管理
US9143511B2 (en) Validation of conditional policy attachments
US10922357B1 (en) Automatically mapping natural language commands to service APIs
US10795740B2 (en) Parameter delegation for encapsulated services
JP2018088293A (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
US11334529B2 (en) Recommending files for file sharing system
US10891569B1 (en) Dynamic task discovery for workflow tasks
US10762180B2 (en) Broker-based messaging through SQL
US20070209042A1 (en) Grid computing architecture &amp; associated method of invoking/registering network services for subscription
US8949930B1 (en) Template representation of security resources
WO2022072108A1 (en) Adaptive data loss prevention
US11861386B1 (en) Application gateways in an on-demand network code execution system
US10878187B1 (en) Network-based content rendering
US11095748B1 (en) Network-based content rendering
US11962663B1 (en) Server-specified filters for long-lived client requests to fetch data in response to events

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190611

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190716

R150 Certificate of patent or registration of utility model

Ref document number: 6559252

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