(57)【特許請求の範囲】
【請求項１】
システムであって、
１つ以上のプロセッサと実行可能命令を含むメモリとを有する、１つ以上のコンピューティングデバイスを備え、前記実行可能命令が前記１つ以上のプロセッサによって実行されると、前記実行可能命令は、前記１つ以上のプロセッサに、プロバイダ・コンピュータシステムを実装し、
前記プロバイダ・コンピュータシステムは、
プロバイダサービスの１つ以上のリソースと、前記プロバイダサービスの外部の他のプロバイダの１つ以上のリソースを特定するテンプレートに少なくとも部分的に基づくリソースの構成を作成し、前記リソースの構成は、前記プロバイダサービスによってプロビジョンされて、他のプロバイダによってプロビジョンされたリソースと統合されたコンピューテイングリソースを含み、
少なくともテンプレートに基づいて、他のリソースを初期化し、かつ前記他のリソースとコンピューティングリソースを統合する他のプロバイダと通信するように構成され、統合は前記他のリソースと前記コンピューティングリソースの１つ以上の接続の構成を含み、
少なくとも部分的にテンプレートに基づく前記コンピューティングリソースをプロビジョンするよう、
構成されることを特徴とするシステム。
【請求項２】
前記１つ以上のプロセッサによって実行されるとき、前記１つ以上のプロセッサが、前記テンプレートに基づくリソースの構成を作成するよう構成されたワークフロー処理システムを実装させる付加実行可能命令を更に含むことを特徴とする請求項１に記載のシステム。
【請求項３】
ワークフロー処理システムが、タイマーをさらに備え、前記ワークフロー処理システムは、タイマーがタイムアウト閾値を超えると、リソーススタックが作成に失敗するように構成される、請求項２に記載のシステム。
【請求項４】
前記他のリソースと前記コンピューティングリソースとの間の１つ以上の接続を構成するために、前記実行可能命令は、前記プロバイダ・コンピュータシステムに、前記テンプレートに少なくとも部分的に基づいて、テンプレートによって定義されたリソース間の依存関係が順守されるように、リソースの構成内のリソースの構築を指示させることを特徴とする請求項１に記載のシステム。
【請求項５】
前記他のリソースは、前記コンピューティングリソースを提供するプロバイダサービスの内部要件に従わないことを特徴とする請求項１に記載のシステム。
【請求項６】
方法であって、
リソースプロバイダの１つ以上のコンピュータシステムの制御下で、プログラム命令を実行する前記１つ以上のコンピュータシステムが：
少なくとも：
前記リソースプロバイダによって提供される１つ以上のコンピューティングリソースから選択されたコンピューティングリソースと、
前記リソースプロバイダの外部の他のプロバイダによって提供される他のリソース、
を特定する構成テンプレートによって定義されるリソースの構成を構築するリクエストを受信することを実行するように構成され、
前記リソースの構成を、少なくとも、
少なくとも部分的に前記構成テンプレートに基づいて前記コンピューティングリソースをプロビジョニングすることと、
前記リソースの前記構成内で使用するための前記他のリソースを構成するように前記他のプロバイダに命令する通知を、前記他のプロバイダへ送信することと、
前記他のプロバイダから、前記他のリソースの構成成功の指示を含む、前記通知への応答を受信することと、
前記構築されたリソースの構成の使用を有効にすること、
によって構築すること、
を実行するよう構成されたことを特徴とする方法。
【請求項７】
前記リソースの構成を変更するリクエストを受信することと、
前記他のプロバイダへ、前記他のリソースを変更するように前記他のプロバイダに命令する、変更通知を送信することと、
前記他のプロバイダから、変更成功の指示を含む、前記変更通知への応答を受信することと、
前記リソースの構成に対する前記変更の使用を有効にすることと、
をさらに含む、請求項６に記載の方法。
【請求項８】
前記リソースの構成内で使用するための他のリソースを構成するように，前記他のプロバイダとは異なるプロバイダに命令する他の通知を前記異なるプロバイダに送信することと、
前記異なるプロバイダから、前記異なるプロバイダの前記他のリソースの構成成功の他の指示を含む、前記他の通知への他の応答を受信すること、をさらに含む請求項６に記載の方法。
【請求項９】
前記異なるプロバイダへ、通知を送信することが、管理セクションとペイロードとを含むように前記通知を構築することをさらに含み、前記管理セクションが、前記他のリソースの前記構成に関する情報を含み、前記ペイロードが、前記異なるプロバイダによって定義された特性を含む、請求項８に記載の方法。
【請求項１０】
前記他のプロバイダは、前記リソースプロバイダの内部要件に従わないことを特徴とする請求項８に記載の方法。
【請求項１１】
前記構成テンプレートによって定義された前記リソースの間の依存関係が順守されるように、少なくとも部分的に前記構成テンプレートに基づいて、前記リソースの構成内のリソースの構築の順序を決定すること、
をさらに含む、請求項６に記載の方法。
【請求項１２】
前記構成テンプレートは、前記選択されたコンピューティングリソースと前記他のリソースを前記リソースの前記構成内に統合するための定義を更に特定し、少なくとも部分的に前記構成テンプレートに基づく前記コンピューティングリソースのプロビジョニングは、前記構成テンプレートによって特定された定義に従う前記コンピューティングリソースのプロビジョニングを含む、ことを特徴とする請求項６に記載の方法。
【請求項１３】
リソースプロバイダのコンピュータシステムの１つ以上のプロセッサによって実行される、コンピュータ実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、
前記コンピュータ実行可能命令は、
前記リソースプロバイダの１つ以上のコンピューティングリソースから選択されたリソース、
前記リソースプロバイダの前記１つ以上のコンピューティングリソースの外部の他のリソース、
を含むリソースの構成を構築するリクエストを受信するよう構成され、
前記リソースの構成を構築するよう構成され、前記構築は、
前記リソースプロバイダの前記リソースのプロビジョニング、
前記リソースの前記構成内で使用するための前記他のリソースの構成の命令、
前記リソースプロバイダの前記コンピューティングリソースの外部の前記他のリソースの構成成功の指示の受信、を含み、
前記リソースの前記構築された構成の使用を可能にするよう、
構成されたことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項１４】
他のプロバイダは、前記他のリソースを提供し、
前記他のリソースの構成内で使用するための前記他のリソースの前記構成を命令するため、
前記コンピュータ実行可能命令は、
さらに、前記リソースの構成内で使用するための前記他のリソースを構成するために、前記他のプロバイダに命令する前記他のリソースの前記他のプロバイダへの通知を送信することと、
前記他のリソースの構成成功の指示を受信するために、前記コンピュータ実行可能命令は、さらに、前記他のプロバイダからの前記通知への応答を受信することと、  さらに実行するように構成されることを特徴とする、請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記コンピュータ実行可能命令は、
前記リソースの構成を変更するリクエストを受信することと、
前記他のプロバイダへ、前記他のリソースを変更するために、前記他のプロバイダに命令する変更通知を送信することと、
前記他のプロバイダから、変更成功の指示を含む、通知への応答を受信することと、
前記リソースの構成に対する前記変更の使用を有効にすることと、
をさらに実行するように構成されることを特徴とする、請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
組織は、その運営のサポートに多様なコンピューティングリソースを利用する場合がある。コンピューティングは、コンピューティングリソース、データストレージリソース、およびネットワークリソース等、多種多様なリソースを含む。コンピューティングリソースはしばしば、サービスとしても提供される。このようなサービスのプロバイダは、アプリケーションをホストするマシン、アプリケーションデータを記憶するストレージ、反復するデータリクエストに迅速に応答するキャッシュ、およびリソース間の通信を有効にするためにネットワーキングへのアクセスを提供する場合がある。リソースは、データセンター（単数または複数）に物理的にホストされ、他者によって遠隔かつプログラム的に管理される場合がある。データセンターサービスを利用することによって、顧客は、ハードウェアの必要性が予想される購入ではなく、プロバイダからのコンピューティングおよび／またはリソースの使用に対して代価を支払うことができる。これによって、顧客は、需要に応じてコンピューティングサービスの使用を拡大および縮小することが可能になる。
例えば、アプリケーションは、開発者または管理者が使用を監視して予想するのではなく、必要に応じてさらに多くのストレージをリクエストするように構成されてもよい。このオンデマンドのインフラストラクチャモデルは、サービスとしてのインフラストラクチャ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）（ＩａａＳ）と呼ぶことができる。ＩａａＳモデル内のリソースの集合体はしばしば、リソーススタックと呼ばれる。
【０００２】
他のプロバイダモデルとして、サービスとしてのプラットフォーム（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）（ＰａａＳ）およびサービスとしてのソフトウェア（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）（ＳａａＳ）が挙げられる。ＰａａＳモデルでは、プロバイダは、開発者がアプリケーションを構築することができる実行環境を提供する。例えば、プロバイダは、オペレーティングシステム、プログラミング言語実行環境、データベース、および顧客がウェブアプリケーションを構築することができるウェブサーバーを提供することができる。ＳａａＳモデルでは、プロバイダは、顧客によってアクセスされてもよいアプリケーションを提供する。例えば、顧客は、アプリケーションに対する単一のインターフェースしか見ることができないが、ＳａａＳプロバイダは、クライアントの需要を満たすようにアプリケーションを動的に拡大することができる。
【図面の簡単な説明】
【０００３】
本開示に従う様々な実施形態が、以下の図面を参照して説明される。
【０００４】
【図１】少なくとも１つの実施形態に従う、リソーススタックを含むシステムの図示例を示す。
【図２】少なくとも１つの実施形態に従う、リソーススタックを含むシステムの図示例を示す。
【図３】少なくとも１つの実施形態に従う、メッセージの図示例を示す。
【図４】少なくとも１つの実施形態に従う、使用することができるプロセスの図示例を示す。
【図５】少なくとも１つの実施形態に従う、使用することができるプロセスの図示例を示す。
【図６】少なくとも１つの実施形態に従う、使用することができるプロセスの図示例を示す。
【図７】多様な実施形態を実装することができる環境を示す。
【発明を実施するための形態】
【０００５】
以下の説明において、多様な実施形態を説明する。説明を目的として、実施形態の完全な理解を提供するために、特定の構成および詳細を記載する。しかしながら、当業者には、特定の詳細を用いることなく実施形態を実践できることも明らかであろう。さらに、周知の特徴は、説明される実施形態を曖昧にしないために、省略または簡素化される場合がある。
【０００６】
本明細書に説明かつ提案される技法は、第２のプロバイダとの通知システムを使用して、第２のプロバイダからのカスタムリソースをリソーススタックに統合するリソーススタックテンプレートから、リソーススタックプロバイダによって管理されるリソーススタックを作成することを含む。例えば、リソーススタックプロバイダは、リソーススタックを形成する相互依存的リソースの集合体を作成するためのツールを提供してもよい。リソーススタックプロバイダは、リソーススタックに含めることができる、リソーススタックプロバイダが管理するリソースのカタログを有してもよい。リソーススタックプロバイダによって管理されないリソースを含む、他のリソースは、カスタムリソースがカスタムリソースプロバイダによって管理される場合であっても、カスタムリソースとしてリソーススタック内で使用するためにカタログに依然として含まれてもよい。これによって、リソーススタックプロバイダの内部要件に従わないリソースが、リソーススタックに含まれることが可能になる。カスタムリソースプロバイダは、リソーススタックの一部としてカスタムリソースを作成、読み出し、更新、および破壊するためのリクエストを通信する際に使用するために、リソーススタックプロバイダに対して、テンプレート、統合、構成、および／または通信情報を提供してもよい。テンプレートの適切な構築は、リソーススタックを組み立てるテンプレートを構築するユーザーに提供される文書に記述されてもよい。
【０００７】
一実施形態において、顧客は、リソーススタックを定義するテンプレートを作成、選択、またはさもなければ指定することができる。リソーススタックは、リソーススタックプロバイダから利用可能なリソースと、第２のプロバイダによって提供される１つ以上のカスタムリソースとを含むことができる。テンプレートはまた、カスタムリソースを含む、リソーススタック内のリソースをまとめて連結すること、およびリソースを構成することに関する情報も提供することができる。リソーススタックが作成されるとき、リソーススタックテンプレートが順守されてもよい。リソース間の依存関係が決定されてもよく、リソースのインスタンス化の順番が決定される。リソーススタックプロバイダから利用可能なリソースがプロビジョニングされてもよい。カスタムリソースは、カスタムリソースのプロバイダに、リソーススタックとのカスタムリソースのリクエストされた統合、およびリクエストされた構成詳細を通知することによって初期化することができる。カスタムリソースプロバイダは、カスタムリソースの初期化に成功すると、統合成功の指示と共に応答することができる。リソーススタック内のリソースおよびカスタムリソースのプロビジョニングおよび統合に成功した後、リソーススタックは使用を有効にすることができる。
カスタムリソースを統合するこのリソーススタックの利点は、他のシステムによって管理されるリソースをリソーススタックに統合できることである。これによって、リソーススタックが、プロバイダを通じて利用可能ではない可能性がある、またはリソーススタックのプロバイダからのソリューションより好ましい可能性がある、他のプロバイダからのＩａａＳ、ＰａａＳ、およびＳａａＳソリューションを統合することを可能にすることができる。
【０００８】
カスタムリソースの初期化は、リソーススタックプロバイダからの通知への応答において、カスタムリソースのプロバイダによって実行されてもよい。通知は、カスタムリソースのプロバイダが、カスタムリソースをリソーススタックに統合することを可能にする情報を含む、またはさもなければ参照することができる。一実施形態において、リソーススタックプロバイダは、非依存部分とペイロードとを含むメッセージを構築する。非依存部分は、カスタムリソースに影響されず、リソーススタックおよび／またはテンプレートに関する情報を含むことができる。ペイロードは、カスタムリソースの構成に特定の情報を含むことができる。カスタムリソースのプロバイダは、次いで、通知と関連するリソーススタックと併用するためのカスタムリソースを初期化するために、通知からの情報を使用することができる。カスタムリソースプロバイダは、次いで、リソーススタックとの統合に成功した指示をリソーススタックプロバイダに提供することができる。一実施形態において、この指示は、成功／失敗識別子、カスタムリソースと相互作用する際に使用するためのカスタムリソース識別子、およびデフォルト設定等のカスタムリソースに特定の付加情報を含むことができる。いくつかの実施形態において、指示は、戻りメッセージを介して返される。他の実施形態において、指示は、ストレージ場所に応答を入れることによって返される。一実施形態において、メッセージサービスが使用され、プロトコルがメッセージ受信側によって選択されてもよい。
【０００９】
例えば、ウェブアプリケーションテンプレートは、ウェブサーバー、データベース、および外部電子メールサービスを含むことができる。テンプレートは、ウェブサーバー、データベース、および外部メインサービス間の１つ以上の依存関係を指定することができる。例えば、１つの指定された依存関係は、ウェブサーバーが稼動する前に、データベースおよび外部電子メールサービスがアクティブでなければならないことを要求することができる。スタック管理システムは、リソーススタックを作成するリクエストを受信することができる。テンプレートを使用して、スタック管理システムは、テンプレートによって指定された何らかの依存関係を順守しながら、リソーススタックのリソースをプロビジョニングするワークフローが作成されるようにすることができる。スタック管理システムのワークフロー処理システムは、ワークフローを実行し、リソーススタックの他のリソースの前に、データベースがプロビジョニングされるようにすることができる。ワークフロー処理システムは次いで、電子メールサービスとリソーススタックとの統合がリクエストされたことを、外部電子メールサービスの管理システムに通知することができる。外部電子メールサービスの管理システムは、外部電子メールサービスをリソーススタックと統合する必要性が通知されたことに応答して、外部電子メールサービスを初期化してリソーススタックと統合することができる。外部電子メールサービスの初期化に成功すると、外部電子メールサービスの管理システムは次いで、電子メールサービスとリソーススタックの統合成功の指示を返すことができる。この戻りは、外部電子メールサービスがネットワークスタック内で適切に動作するために必要な認証情報等、ウェブサーバーが外部電子メールサービスを使用するために有用な詳細情報を含むことができる。
【００１０】
データベースおよび外部電子メールサービスがプロビジョニング、初期化、および／または構成された後、ウェブサーバーがプロビジョニングされてもよい。ワークフロー処理システムは、仮想コンピュータシステムとして実装されてもよいウェブサーバーが、ウェブサーバーがリソーススタック内のリソースを使用することを可能にするマシンイメージおよび構成を使用して、プロビジョニングされるようにすることができる。マシンイメージは、特定のオペレーティングシステムを備える仮想コンピュータシステムを初期化するために使用される一連のデータであってもよい。いくつかの実施形態において、マシンイメージは、ハードウェアホストが、仮想コンピュータシステムとしてアクティブにし、動作するように、マシンイメージを利用することを可能にするために、永続的データストレージサービスからアクセスされ、ネットワーク上からコンピューティングリソースサービス（例えば、プログラム実行サービス）へ動作可能に接続されるブロックデータ記憶装置サービスに提供されてもよい。ウェブサーバーがアクティブになると、ワークフロー処理システムは、この例では、リソーススタックの使用を有効にすることができる。リソーススタックの使用を有効にすることは、リソーススタックがプロビジョニングされるエンティティに、リソーススタックのプログラム上の制御を提供するように、１つ以上の内部システムを再構成することを含むことができる。
【００１１】
いくつかの実施形態において、通知のために伝送されるメッセージの非依存部分は、スタック識別子、論理リソース識別子、一意識別子、名前空間、およびコンテキスト情報を含む。スタック識別子は、リソーススタックを参照するために使用することが可能である値を提供することができる。論理リソース識別子は、テンプレート内のカスタムリソースを参照する識別子であってもよい。一意識別子は、重複メッセージを廃棄できるように、メッセージを一意に識別することができる。名前空間は、同様な識別子の明確化を可能にするために、識別子の境界を定義することができる。コンテキスト情報は、識別子等、リソーススタック構築に関する情報を提供することができる。一実施形態において、コンテキストは、カスタムリソースがスタック内のリソースと通信時にスタック内の特定のリソースを参照することができるように、スタック内に存在するリソースの一意識別子および／または構成を含む。
【００１２】
前述のように、リソーススタックのリソースをプロビジョニングする間、リソーステンプレートの依存関係が順守されてもよい。依存関係は、明示的または暗示的であってもよい。明示的依存関係は、テンプレートによって指定されてもよい。例えば、明示的依存関係は、テンプレートによって、第１のリソースは、第２のリソースをアクティブにさせた後に第１のリソースを構築することができると定義されてもよい。テンプレート内の依存関係の定義はそれ自体が明示的であってもよく、および／または、例えば、テンプレートのスキーマ内のリソースの相対的位置による等、暗示的であってもよい。別の例において、明示的な依存関係は、リソースの構築の線形順序または有向非巡回グラフ（ＤＡＧ）を通じて示されてもよい。暗示的な依存関係は、テンプレート内に記述されなくてもよく、他の情報源から決定されてもよい。いくつかの実施形態において、暗示的な依存関係を決定する外部ルールセットが与えられる。他の実施形態において、暗示的な依存関係を決定するために、リソース間の接続および／または構成情報が使用されてもよい。
【００１３】
テンプレートで使用するためのカスタムリソース定義は、カスタムリソースのプロバイダによって作成され、顧客によって使用されて、リソーススタックを定義するテンプレート内のリソーススタック定義内のカスタムリソースを統合してもよい。一実施形態において、カスタムリソースのプロバイダは、テンプレートを入力するために使用されてもよい、カスタムリソースに関する有効な情報を定義する。プロバイダはまた、テンプレートおよびカスタムリソースと併用されてもよい、通知および／または通知内のペイロードを構築する生成機能もプロバイダに提供することができる。生成機能は、少なくとも部分的にテンプレートおよび／またはリソーススタック実装詳細に基づいて、テンプレート内のカスタムリソース定義を少なくとも１つのペイロードに変換するように構成される、コンピュータシステム上に実装されたプログラミングモジュールであってもよい。プロバイダはまた、通知に応答してプロバイダからの応答を取得し、カスタムリソースを統合するようにリソーススタック内のリソースに構成および／または変更を提供する構成機能も提供することができる。構成機能は、カスタムリソースの他のリソースとの統合を終了するために、カスタムリソースプロバイダからの応答に対する応答で実行される、コンピュータシステム上に実装されたプログラミングモジュールであってもよい。
【００１４】
いくつかの実施形態において、リソーススタックプロバイダおよびカスタムリソースプロバイダは、１つのサービスプロバイダのサブエンティティである。例えば、サービスプロバイダは、データベース、仮想マシン、および記憶装置のプロビジョニングを管理するリソーススタックプロバイダを含む。サービスプロバイダはまた、検索機能、電子メール、ログ公開、および監視サービス等、リソーススタックプロバイダによって管理されないが、カスタムリソースを通じて統合することが可能であるサービスも含むことができる。
一実施形態において、リソーススタックプロバイダは、リソースの選択を管理し、管理機能を既に有する管理されたリソースのためのカスタムリソース構築を提供する。例えば、リソーススタックプロバイダは、電子メールおよび検索サービス等のサービスのためのカスタムリソース構築を可能にしながら、仮想マシンおよびストレージ等のインフラストラクチャを提供することができる。サービスは実際には、スタック管理システムとは異なるプロバイダによって管理される別のリソーススタックから構築されてもよい。
【００１５】
本明細書に記載および示唆される技術はまた、カスタムリソースを含む、リソースをまとめて作成、読み出し、更新、および破壊するためにリソーススタックを使用することができる方式を提供する。一実施形態において、ユーザーは、他を保存しながら、１つのリソーススタックの構成要素をアップグレードすることを選択することができる。例えば、ユーザーは、特定のタイプの仮想マシンインスタンスを、より高い演算能力を備える仮想マシンインスタンス等、１つ以上の点でより能力が高い仮想マシンインスタンスにアップグレードするように選択することができる。ユーザーは、より高い能力のインスタンスを含むように本来のスタックテンプレートを変更、またはユーザーインターフェースを使用してより高い能力のインスタンスを選択し、変更をリクエストすることができる。これに応答して、より高い能力のインスタンスがプロビジョニングされてもよい。仮想マシンインスタンスに依存するリソーススタックの設定は、ホスト名および／またはインターネットプロトコル（ＩＰ）アドレス等、より高い能力のインスタンスの新しい設定を使用するように変更されてもよい。別の実施形態において、カスタムリソースは、更新されたカスタムリソースに一致するように変更され、設定が更新されてもよい。例えば、テンプレートは、カスタムリソースから追加監視サービスを選択するように変更されてもよく、または、ユーザーは、ウェブブラウザ等、ユーザーインターフェースから追加監視サービスを選択することができる。通知は、リクエストされた変更に関する情報を含めて、監視サービスのプロバイダへ送信されてもよい。リソーススタックとの統合成功の指示が返されてもよい。指示と共に含まれる情報は、変更を統合するために、リソーススタック内の他のリソースをさらに構成および／または変更するために使用されてもよい。変更の統合に成功した後、変更を含むリソーススタックが使用されてもよい。
【００１６】
一実施形態において、カスタムリソースの使用によって、顧客のアカウントのコストが増加する場合がある。コストは、カスタムリソースに関係するアカウント、またはスタック管理システムに関係するアカウントに適用されてもよい。一実施形態において、カスタムリソースのプロバイダが、カスタムリソースの使用状況に関してリソーススタックのプロバイダに伝達して、統一請求が課されてもよい。顧客は、リソーススタックプロバイダから受理した統一請求に対して代価を支払うことができ、リソーススタックプロバイダが、その後、カスタムリソースのプロバイダに支払うことができる。いくつかの実施形態において、カスタムリソースプロバイダは、リソーススタックの使用に対する使用料金のうちのある割合を受領することができる。
【００１７】
プロビジョニングという用語は、コンピューティングリソースの使用に対する割り当てを含むように広義に解釈されることを意味する。いくつかの実施形態において、これはコンピューティングリソースの使用を準備することを含む。一実施形態において、リソースのプロビジョニングは、サーバーの割り当て、オペレーティングシステムのインストール、リソース上に配置されるソフトウェアのインストールおよび構成、ならびに構築されたリソースの使用を有効にすることを含む。例えば、プロビジョニングシステムは、ウェブサーバーとして使用するサーバーを選択することができる。プロビジョニングシステムは次いで、ウェブサーバーとしてサーバーを使用するために準備するワークフローを作成することができる。ワークフローの一部として、マシンイメージがサーバーにロードされてもよい。マシンイメージは、オペレーティングシステム、ウェブホスティングソフトウェア、および／または設定を含むことができる。マシンイメージをロードした後、サーバーは、オペレーティングシステムを起動させられ、任意のさらなるソフトウェアおよび／または設定を受信してもよい。このような設定は、ドメイン名および／またはウェブサイト、ならびにセキュリティ構成を含むことができる。プロビジョニングが完了した後、サーバーは、ウェブサーバーとして使用され、リソーススタックに含まれるために管理システムに返されてもよい。
【００１８】
ここで図１を参照すると、少なくとも１つの実施形態に従う、リソーススタック１０２を含むシステム１００の図示例が示される。ユーザーは、ウェブアプリケーションをサポートするシステム等、システムの作成を自動化するためにリソーススタック１０２を定義するテンプレート１０４を作成することができる。テンプレート１０４は、リソースを定義し、リソーススタック１０２のリソース１０４、１０６、および１０８の接続、プロパティ、依存関係、識別、および／または設定を定義することができる。テンプレート１０４はまた、テンプレート１０４内に定義されたリソース間のリンクを定義することもできる。リンクすることは、ネットワーク上から相互通信し、リクエストを伝送し、応答を受信し、さもなければ相互動作するように、リソーススタックのリソースを構成することを含むことができる。テンプレートは、リソーススタック内部のリソースに利用可能な接続性および／または通信経路を定義する、リソーススタックで使用するためのネットワークトポロジ等、リソーススタックの接続を定義することができる。本明細書で使用される場合、接続は、２つ以上のリソース間の通信経路として考えられてもよい。テンプレート１０４は、テンプレート１０４内で定義されるようにリソーススタック１０２を作成するために、スタック管理システム１１０へ提出されてもよい。スタック管理システム１１０は、テンプレート１０４をパースし、リソーススタック１０２内のリソース１０４、１０６、および１０８の構築の順序を決定することができる。スタック管理システム１１０は、リソーススタック１０２のプロビジョニングを管理するために、プロビジョニングシステム１１１と通信することができる。プロビジョニングシステム１１１は、スタック管理システム１１０のプロバイダによって管理されるリソース１０４および１０８をプロビジョニングするようにリソースプロビジョニングシステム１１２にリクエストすることができる。カスタムリソース１０６は、カスタムリソースメッセージング１１４を通じる通知を通じて、カスタムリソースマネージャー１１６から、カスタムリソース１０６の初期化をリクエストすることによって初期化されてもよい。通知は、リソース１０４および１０８とのあらゆる接続を含む、カスタムリソース１０６をリソーススタック１０２に統合するために必要な情報を含むことができる。カスタムリソースマネージャー１１６は次いで、カスタムリソースメッセージング１１４を通じて、統合成功の指示を返すことができる。
指示は、スタック管理システムによって、リソーススタック１０２内のリソース１０４および／または１０８に適用される場合がある、カスタムリソースを識別する一意識別子を含む、設定を含むことができる。カスタムリソースの例は、電子メールサービス、ウェブサイト監視ソリューション、ログポーリングサービス、および他のＩａａＳ、ＰａａＳ、またはＳａａＳサービスを含むことができる。
【００１９】
図示例として、リソーススタック１０２は、アプリケーションサーバー、データベース、および検索エンジンを含むことができる。検索エンジンは、スタック管理システム１１０のプロバイダの責任範囲外で管理されるカスタムリソース１０６であってもよい。管理責任範囲のこのような分離の例は、スタック管理システムのプロバイダの外でホストされるハードウェア上に実装されたリソースを含むことができる。分離管理の別の例は、スタック管理システムの同じプロバイダによって制御されるが、スタック管理システムのプロバイダ以外のエンティティによって管理されるリソース上に実装されたサービスを含む。
分離管理のまた別の例は、スタック管理システムの同じプロバイダによって実装されるが、カスタムリソースのユーザーからサービスの複雑性を隠すために別のエンティティとして管理されるサービスを含む。リソーススタック１０２は、アプリケーションの開発者によって作成されるテンプレート１０４によって定義されてもよい。アプリケーションサーバーおよびデータベースのテンプレートの定義は、スタック管理システム１１０によって認識される条件および変数を使用することができる。検索エンジンのテンプレート内の定義は、スタック管理システム１１０によって認識されるリソーススタックとの統合を定義する条件、およびカスタムリソースマネージャー１１６によって認識される条件および／またはオプションも含むことができる。顧客は、テンプレート１０４を使用してリソーススタック１０２の構築をリクエストすることができる。スタック管理システム１１０は、リソーススタック１０２内のアプリケーションサーバー、データベース、および検索エンジンの依存関係を決定することができる。
【００２０】
決定された依存関係を順守するために、スタック管理システム１１０は、リソースプロビジョニングシステム１１２にリソースを構築するようにリクエストする際に、プロビジョニングシステム１１１が依存関係に従った順序でリソースをプロビジョニングするようにさせることができる。示される実施形態において、リソースプロビジョニングシステム１１２は最初に、アプリケーションサーバーおよびデータベースを構築する。プロビジョニングシステム１１１は次いで、リソーススタック１０２および検索エンジン特定の構成に関する情報を含む、カスタムリソースマネージャー１１６への通知を作成することができる。構成は、構成生成機能等、プログラムによって提供されてもよく、カスタムリソースのプロバイダによってプロビジョニングシステム１１１に提供される。構成生成機能は、テンプレートに含まれるカスタムリソース定義と関連付けられ、定義に遭遇すると実行されてもよい。通知は、カスタムリソースメッセージングシステム１１４、プロトコル、または他の伝送によってカスタムリソースマネージャー１１６へ送信されてもよい。カスタムリソースマネージャーは、検索エンジンが、通知に提供された情報を使用して、データベースおよびアプリケーションサーバーと統合するようにさせることができる。カスタムリソースマネージャー１１６は次いで、使用する検索エンジンに関する情報および／またはリソーススタック１０２内のリソースの構成に導入される情報も含むことができる、成功の指示を返すことができる。リソーススタック１０２内のリソースのインスタンス化および構成後、リソーススタック１０２は、使用が有効になってもよい。
【００２１】
カスタムリソースメッセージング１１４は、いくつかの異なる方式で実装されてもよい。いくつかの実施形態において、通知サービスが使用される。カスタムリソースマネージャー１１６は、カスタムリソースの初期化リクエストに関係する通知サービスのサブジェクトをサブスクライブすることができる。通知サービスは、受信側が、他のサービスが公開をリクエストする可能性があるサブジェクト（いくつかの適切なメッセージングシステムでは、ときにはトピックと称される）を作成することを可能にすることができる。いくつかの実施形態において、受信側は、公開されたメッセージの受信のために使用されるプロトコルを定義することができる。例えば、電子メールサービスのカスタムリソースマネージャー１１６は、電子メールサービスに対するカスタムリソース管理リクエストのサブジェクトを作成することができる。メッセージの送達は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、または他のプロトコル等のプロトコル、あるいはあるシステムから別のシステムへメッセージを伝送するために適切なプロトコルの組み合わせを含め、カスタムリソースマネージャー１１６によりカスタマイズされることができる。通知サービスは次いで、プロビジョニングシステム１１１から受信すると、カスタムリソースマネージャー１１６へメッセージをプッシュすることができる。
一実施形態において、通知は、指定された場所の記憶装置上にデポジットされてもよい。
プロビジョニングシステム１１１またはカスタムリソースマネージャー１１６等の受信側は、アクションが必要かどうかを決定するために、その場所を定期的にポーリングすることができる。別の実施形態において、メッセージを渡すために、アプリケーションプログラミングインターフェース（ＡＰＩ）の呼出しが使用される。ＡＰＩインターフェースは、プロビジョニングシステム１１１による複数のＡＰＩをサポートする複雑性を簡素化するために標準化されてもよい。いくつかの実施形態において、前述の方法の組み合わせが使用されてもよい。例えば、通知の伝送のために通知サービスが使用されてもよく、通知に対する応答はストレージに応答を入れることによって行われてもよい。プロビジョニングシステム１１１とカスタムリソースマネージャー１１６との間の通信はセキュアであってもよい。例えば、メッセージの検証が発生してもよい。カスタムリソースマネージャーによって検証可能な電子（例えば、デジタル）署名でプロビジョニングシステム１１１によって電子的に署名された通知だけが、カスタムリソースマネージャー１１６によって実行される。カスタムリソースマネージャーによって署名された応答だけがスタック管理システムによって許容されてもよい。
【００２２】
リソーススタック１０２内のリソース１０４、１０６、および１０８を変更することは、リソーススタック１０２の統合を維持しながら、発生してもよい。例えば、データベースインスタンスは、より高い容量のデータベースインスタンスへアップグレードされてもよい。新しいデータベースインスタンスがプロビジョニングされてもよく、より小型のデータベースインスタンスからのデータが新しいデータベースインスタンスへ提供されてもよい。リソーススタック１０２内のより小型のデータベースへの接続は、新しいデータベースインスタンスを使用するように変更されてもよい。プロビジョニングシステム１１１によって管理されるリソースは、より直接的に変更されてもよい。カスタムリソース１０６は、データベースの変更情報を含むカスタムリソースマネージャー１１６への通知を通じて情報を知らされてもよい。リソーススタック１０２との統合成功の指示は、変更がカスタムリソース１０６に成功して適用されたことを確認することができる。
【００２３】
いくつかの実施形態において、リソーススタック１０２は全体的に変更されてもよい。
一実施形態において、テンプレート１０４は、リソーススタック１０２を拡張するためのオプションを定義する。これらのオプションを使用して、ユーザーは、拡張されてもよいリソースがどれか、または全てのリソースであることを示すことができる。プロビジョニングシステム１１１は、リソースプロビジョニングシステム１１２が、プロビジョニングシステム１１１によって管理されるリソースを変更するようにさせ、カスタムリソースマネージャー１１６に、リソーススタック１０２に対する変更、およびカスタムリソース１０６のリクエストされた拡大を通知することができる。他の実施形態において、リソーススタックは、コピーを形成、バックアップ、または削除されるためでさえも操作されてもよい。コピー操作中、リソースプロビジョニングシステム１１２は、コンピューティングリソースの管理のための所定のプロセスに従ってコンピューティングリソースをコピーし、そのコピーをリソーススタックに関するメタデータの一部として参照する。プロビジョニングシステム１１１は次いで、カスタムリソースメッセージング１１４を通じて、カスタムリソースマネージャー１１６へ通知を送信して、カスタムリソース１０６のコピーを形成することができる。カスタムリソースマネージャー１１６は、カスタムリソース１１４のコピーへの参照を含めて、成功の指示を返すことができる。カスタムリソース１１４のコピーへの参照は、次いで、リソーススタックメタデータとともに記憶されてもよい。
コピーを再構築するリクエストにおいて、コピーの再構築は、リソーススタックメタデータを使用して、カスタムリソースを含む、リソースを参照することができる。別の実施形態において、リソーススタックは全てが削除されてもよい。スタック識別子に一致するリソーススタックの削除をリクエストするリクエストが受信されてもよい。プロビジョニングシステム１１１は、リソースプロビジョニングシステム１１２が、プロビジョニングシステム１１１によって管理されるリソース１０４および１０８のプロビジョニングを解除するようにさせることができる。カスタムリソース１１４の廃棄または引退をリクエストするカスタムリソースマネージャー１１６への通知が送信されてもよい。廃棄または引退成功の指示は、プロビジョニングシステム１１１を介して、スタック管理システム１１０へ返されてもよい。成功または失敗は、その後、スタックの削除をリクエストした当事者に返されてもよい。
【００２４】
図示の目的のために、本開示全体でテンプレートが使用される。しかしながら、本明細書に記載されるテンプレートを必ずしも使用しない、リソーススタックを作成する他の方法が使用されてもよいことを認識されたい。一例として、コンピューティングリソースプロバイダの顧客は、スタックを作成する命令を提供するＡＰＩ呼出しを通じて作成されるようにさせてもよい。別の実施形態において、リソーススタックの表現を含むストレージ場所を識別するメッセージは、リソーススタックを作成するリクエストを含む。
【００２５】
図１の実装の例において、図２は、プロバイダ２０６によって管理される、ロードバランサ２１４、アプリケーションサーバー２１６、およびデータベース２１８のリソースを含むリソーススタック２０４を表す図を示す。リソーススタック２０４は、この図示例において、プロバイダ２０６の外部の業者２０８によって管理される電子メールサービス２２０も含む。テンプレート２０２は、リソーススタック２０４、およびリソース２１４、２１６、２１８、および２２０の間の接続を定義することができる。示される例において、アプリケーションサーバー２１６は、ロードバランサ２１４、データベース２１８、および電子メールサービス２２０に接続される。テンプレート２０２は、アプリケーションサーバー２１６が初期化される前に、電子メールサービス２２０およびデータベース２１８が初期化される等、依存関係も定義することができる。テンプレート２０２はまた、構成生成機能が実行されるようにして、少なくとも構成情報を生成してカスタムリソースマネージャー２２４へ送信させるカスタムリソース条件も含むことができる。
【００２６】
リソーススタック２０４を作成するリクエストの結果、スタック管理システム２１０は、依存関係を決定することができ、決定された依存関係に従って、プロビジョニングシステム２１１にリソース２１４、２１６、２１８、および２２０をインスタンス化するようにリクエストすることができる。これらの依存関係は、インスタンス化の順序および／または各ノードがリソースで、各有向辺が依存関係である有向非巡回グラフによって表現されてもよい。示される実施形態において、プロビジョニングシステム２１１は、リソースプロビジョニングシステム２１２が、依存関係のために、アプリケーションサーバー２１６よりも前にロードバランサ２１４およびデータベース２１８をプロビジョニングするようにさせることができる。スタック管理システム２１０はまた、プロビジョニングシステム２１１にアプリケーションサーバー２１６をプロビジョニングするようにリクエストする前に、テンプレート２０２の情報およびリソーススタック２０４の構成に基づいて、カスタムリソースマネージャー２２４のための構成を提供する構成生成機能も実行することができる。プロビジョニングシステム２１１は次いで、電子メールサービス２２０のカスタムリソースマネージャー２２４へ、生成された構成情報を含む通知が送信されるようにすることができる。カスタムリソースマネージャーは次いで、電子メールサービス２２０をリソーススタック２０４と統合することができ、より具体的には、アクセス認証情報を提供すること等によって、アプリケーションサーバー２１６への接続のために電子メールサービス２２０を準備する。カスタムリソースマネージャー２２４は、アプリケーションサーバー２１６を構成するために使用されてもよい、アクセス認証情報等の構成および他の情報を含む、メッセージ等の成功の指示を返すことができる。依存関係が満たされた後、プロビジョニングシステム２１１は次いで、リソースプロビジョニングシステム２１２が、アプリケーションサーバー２１６をプロビジョニングするようにさせることができる。プロビジョニングシステム２１１は、リソーススタック内の動作のためにリソースプロビジョニングシステム２１２にアプリケーションサーバーを準備させるリクエストにおいて、ロードバランサ２１４、データベース２１８、および電子メールサービス２２０からの構成をさらに含むことができる。リソーススタックの作成を終了した後、リソーススタックはサービスが有効になってもよい。一実施形態において、何らかのリソースがインスタンス化に失敗またはスタック作成がタイムアウト期間を超えた場合、スタックは失敗と見なすことができ、失敗の理由が返される。いくつかの実施形態において、全てのインスタンス化が成功したリソースは、さらに処理されて破壊される。
【００２７】
スタック管理システム２１０および／またはプロビジョニングシステム２１１は、リソース２１４、２１６、２１８、および２２０の各々に関する情報を含むため、リソーススタック２０４にリクエストされた変更は、リソース２１４、２１６、２１８、および２２０へ中継されてもよい。例えば、追加のアプリケーションサーバー２１６に関する情報は、ロードバランスのオプションとして使用するために、プロビジョニングシステム２１１によって、ロードバランサ２１４へ中継されてもよい。アプリケーションサーバー２１６への追加はまた、電子メールサービス２２０が承認されている追加からの接続に従って動作するように、通知２２２を通じて電子メールサービス２２０にも報告されてもよい。変更時に中継する情報は、テンプレートに定義されても、プロバイダに固有であっても、カスタムリソースを運用する業者によって定義されても、またはさもなければ、スタック管理システム２１０および／またはプロビジョニングシステム２１１へ提供されてもよい。
【００２８】
ここで図３を参照すると、少なくとも一実施形態に従うメッセージ３００の図示例が示される。メッセージは、スタック管理システム２１０が、テンプレート内のカスタムリソースの定義に遭遇し、プロビジョニングシステム２１１がカスタムリソースを構築することをリクエストした結果、図２のプロビジョニングシステム２１１から、カスタムリソースマネージャー２２４へ伝送されてもよい。図２のプロビジョニングシステム２１１は、図３に示されるこのメッセージ３００等の通知２２２をカスタムリソースマネージャー２２４へ送信することができる。メッセージ３００は、リソース非依存部分３０４と、カスタムリソースに特定の情報に関するペイロード３１４とを含むことができる。リソース非依存部分３０４は、リソーススタックに関する情報と、リソーススタック内のカスタムリソースの特性とを含むことができる。示される実施形態において、プロビジョニングシステム３０１は、コンテキスト３０５、スタック識別子３０６、論理関連識別子３０８、名前空間３１０、およびリソース識別子３１２を含むメッセージのリソース非依存部分３０４を組み立てる。一意識別子等のコンテキスト３０５は、重複および／または以前のメッセージが廃棄されてもよいように、メッセージを一意に識別することができる。コンテキスト３０５はまた、リソーススタック構築に関する情報も提供する。スタック識別子３０６は、リソーススタックを参照するために使用することが可能な値を提供することができる。論理関連識別子３０８は、このメッセージ３００の作成をトリガーした、テンプレート内で使用されるカスタムリソースを参照する識別子であってもよい。名前空間３１０は、同様な識別子の明確化を可能にするために、識別子の境界を定義することができる。リソース識別子３１２は、アドレスが指定されているカスタムリソースへのプロビジョニングシステム３０１の参照を提供することができる。
【００２９】
メッセージ３００は、ペイロード３１４も含むことができる。スタック管理システムは、スタック管理システムがペイロード３１４内の情報を操作することなく、メッセージ３００に添付されているべき情報ブロブ（ｂｌｏｂ）（すなわち、任意の情報）としてペイロード３１４を取り扱うことができる。示される実施形態において、ペイロードは、テンプレート３０３によって、スタック管理システム３０２を通じてメッセージ３００に含まれるように処理されると定義されてもよい。スタック管理システム３０２を通じてテンプレート３０３を処理すると、カスタムリソースマネージャーにテンプレート３０３の指示が提供される。別の実施形態において、ペイロードは、テンプレート３０３をパースし、得られたペイロードをペイロード３１４に含めるためにスタック管理システム３０２に与えるパースシステムと登録されている構成生成機能によって構築されてもよい。パースシステムは、テンプレートを、リソーススタック内のリソースを構築、構成、およびさもなければ動作するために使用されてもよい、定義等のトークンにパースすることができる。
カスタムリソース条件をパースした後、パースシステムは、テンプレート３０３からの構成生成機能情報および／またはリソーススタック情報を渡して、構成を完了することができる。構成生成機能は次いで、メッセージ３００に添付されるペイロード３１４を生成する。このペイロード３１４は、メッセージ３００のリソース非依存部分３０４に含まれない場合があるカスタムリソースに特定の構成３１８を含むことができる。例えば、図２の電子メールサービスは、ドメイン、ネームサーバー、および個別の電子メールアドレスを定義する構成３１８がペイロードに提供されてもよい。
【００３０】
ここで図４を参照すると、少なくとも１つの実施形態に従う使用することができるプロセス４００の図示例が示される。プロセスは、スタック管理システム１１０、カスタムリソースマネージャー１１６、プロビジョニングシステム１１１、リソーススタック１０２、リソース１０４および１０８、ならびにカスタムリソース１０６を含む、図１に関連して上述したシステムによって集合的に等、任意の好適なシステムによって達成されてもよい。スタック管理システムは、リソーススタックを作成するリクエストを受信４０２することができる。例えば、開発者は、新しいバージョンのウェブアプリケーションをテストする目的のために、リソーススタックを定義するテンプレートへのアクセスをテスターに与えることができる。テスターは、新しいバージョンのテストが達成されてもよいように、リソーススタックがプログラム実行サービス内のテスト環境に作成されることをリクエストすることができる。プログラム実行サービスは、テンプレートリクエストが承認されるかを決定することができ、承認された場合、リクエストをスタック管理システムへ提供することができる。
【００３１】
図示されるように、スタック管理システムは、並行して、その制御下のリソースをプロビジョニング４０３し、スタック管理システムの制御下にないカスタムリソースを初期化するように、カスタムリソースマネージャーへメッセージを送信４０４することができる。しかしながら、リソースをプロビジョニング４０３し、メッセージを送信４０４することは、順次に実行されてもよく、必ずしも並列である必要がないことに注意されたい。スタック管理システムは、メッセージを送信した結果として、応答４０６を受信することができる。応答は、カスタムリソースの初期化成功を示し、カスタムリソースマネージャーによって認識される識別子および／または認証情報等、カスタムリソースに関する情報を提供することができる。いくつかの実施形態において、カスタムリソースは、最終的には一定であってもよく、したがって、成功の指示は、カスタムリソースが使用できる状態にあることの指示とは異なる場合がある。例えば、最終的に一定のストレージは、成功の指示としてストレージのリクエストを確認応答することができるが、ストレージはそれより後まで利用可能にはならない場合がある。応答およびリソースを使用して、スタック管理システムは、カスタムリソースと統合するようにリソーススタック内のリソースを構成４０８することができる。統合の後、リソーススタックは、有効４１０になってもよい。いくつかの実施形態において、有効になったリソーススタックは直後に使用されてもよい。
別の実施形態において、有効になったリソーススタックはカスタマイズのために利用可能になるが、その目的とする使用にはアクティブではない。
【００３２】
プロセス４００の実施形態の図示例として、スタック管理システムは、日次増分バックアップを記憶するオフサイトバックアップサービスに接続されたウェブサーバーを用いてスタックを作成するリクエストを受信することができる。スタック管理システムは、ウェブサーバーをプロビジョニングし、ウェブサーバーの日次増分バックアップの場所の初期化をリクエストするメッセージをオフサイトバックアップサービスへ送信することができる。一実施形態において、場所は、バックアップのために提供されるストレージエリアへアクセスするために使用されるＵＲＬであってもよい。オフサイトバックアップサービスは、ウェブサーバーの日次増分バックアップを受信するように構成された場所、およびオフサイトバックアップサービスとの接続をセキュアにするために使用される情報を識別する応答を返すことができる。一実施形態において、接続をセキュアにするために使用される情報は、オフサイトバックアップサービスへの接続を暗号化する際に使用される認証情報であってもよい。スタック管理システムは次いで、この場所情報を使用して、日次増分バックアップのためにウェブサーバーを構成することができる。リソーススタックの構成が完了した後、ウェブサーバーおよびバックアップサービスを含むリソーススタックは、ユーザーがカスタマイズまたは配備することが可能であってもよい。
【００３３】
プロセス４００（あるいは本明細書に記載される任意の他のプロセス、あるいはその変形および／または組み合わせ）のうちのいくつかまたは全ては、実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で実行されてもよく、１つ以上のプロセッサ上、ハードウェアによって、またはこれらの組み合わせによって、集合的に実行するコード（例えば、実行可能命令、１つ以上のコンピュータプログラム、または１つ以上のアプリケーション）として実装されてもよい。コードは、例えば、１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式において、コンピュータ可読記憶媒体上に記憶されてもよい。コンピュータ可読記憶媒体は非一時的であってもよい。
【００３４】
図５は、カスタムリソースを含むリソーススタックを管理する際に使用されてもよいプロセス５００の図示例を示す。プロセス５００は、上述のプロセス４００の変形であってもよい。さらに、プロセスは、スタック管理システム１１０、カスタムリソースマネージャー１１６、プロビジョニングシステム１１１、リソーススタック１０２、リソース１０４および１０８、ならびにカスタムリソース１０６を含む、図１に関連して上述したシステムによって集合的に等、任意の好適なシステムによって達成されてもよい。スタック管理システムは、リソーススタック内のリソースを記述するテンプレートからリソーススタックを構築するリクエストを受信５０２することができる。例えば、開発者は、新しいバージョンのウェブアプリケーションをテストする目的のために、リソーススタックを定義するテンプレートへのアクセスをテスターに与えることができる。テスターは、新しいバージョンのテストが達成されてもよいように、リソーススタックがプログラム実行サービス内のテスト環境に作成されることをリクエストすることができる。プログラム実行サービスは、テンプレートリクエストが承認されるかを決定することができ、承認された場合、リクエストをスタック管理システムへ提供することができる。スタック管理システムは、リソーススタック内のリソース間の依存関係を決定５０４することができる。上述のように、依存関係を決定することは、依存関係の宣言、スタック管理システムによる依存関係の決定、デフォルトの規則、あるいはリソース依存関係の他の暗示的または明示的定義を含む、多様な方式で決定されてもよい。
【００３５】
決定された依存関係を使用して、スタック管理システムは、一実施形態において、テンプレート内で定義されたリソースの構築の順序を決定５０６する。決定された順序の最初のリソースから開始して、スタック管理システムは、検証するテンプレートの次のリソースにアクセス５０８する。テンプレートの次のリソースを例に対して検証することは、リソースがカスタムリソースであるかの決定を行う５１０ことを含むことができる。リソースがカスタムリソース５１０ではないが、スタック管理システムによって管理されると決定５１０された場合、リソースはプロビジョニング５１２され、テンプレートによって定義された他のリソースへの接続を構成すること等によって、スタックに統合５１４される。プロセス５００の実行は、リソースの構築が既定の時間（タイムアウト）を超えたかどうかを決定５２４することを含むことができる。タイムアウトはタイマーによって測定されてもよい。いくつかの実施形態において、タイムアウトはグローバルであり、リソーススタック全体に適用される。他の実施形態において、リソーススタックの各リソースは個別のタイムアウトが与えられる。１〜１０時間、またはより具体的には４時間等のタイムアウトを超えた５２４と決定５２４された場合、スタックの作成は失敗５２５になってもよい。失敗した場合、一実施形態において、スタック管理システムによって管理されるインスタンス化されたリソースは、破壊されてもよい。リソースを破壊することは、リソースをサポートするインフラストラクチャが、利用可能なインフラストラクチャのプールに返されてもよいように、リソースのプロビジョニングを解除することを含むことができる。インスタンス化されたカスタムリソースもまた、インスタンス化されたカスタムリソースの管理システムに、カスタムリソースを破壊する通知を送信することによって破壊されてもよい。いくつかの実施形態において、カスタムリソースの廃棄はデータの廃棄になり得るため、破壊通知は、ユーザーの介在なしには送信されない。この失敗への反応は、テンプレート情報、ユーザー設定、および／またはカスタムリソースのプロバイダによるデフォルトの設定によって制御されてもよい。タイムアウトを超えず５２４、スタックの作成が完了５２６した場合、スタックは使用が有効５２８になってもよい。リソーススタックの構築がタイムアウトを超えなかったと決定５２４された場合、リソーススタックの構築が完了したかどうかの決定５２６が行われてもよい。リソーススタックの構築が完了していないと決定５２６された場合、次のリソースが検証５０８されてもよく、プロセス５００は上述のように進むことができる。
【００３６】
しかしながら、リソースがカスタムではないと決定５１０された場合、スタック管理システムは、テンプレート情報、リソーススタック情報、およびカスタムリソースのユーザーおよび／またはプロバイダによって提供された他の情報に基づいて、カスタムリソースマネージャーへのメッセージを構築５１６することができる。メッセージは次いで、合意されているメッセージングシステムまたはプロトコルに従って、カスタムリソースマネージャーへ送信５１８されてもよい。スタック管理システムは次いで、カスタムリソースマネージャーによるリソーススタックとの統合成功の指示を受信５２０することができる。
例えば、指示は、メッセージ、ＡＰＩ呼出し、ストレージ場所でのデポジット、またはスタック管理システムとの他の通信によって送信されてもよい。図示されていないが、失敗が発生した場合、失敗の指示も提供されることを認識されたい。このような失敗は、カスタムリソースマネージャーに送信された不正な構成、カスタムリソース作成の失敗、および／またはカスタムリソース作成の不十分な権限を含むことができる。プロセス５００は、このような失敗を処理するように適切に適合されてもよい。スタック管理システムは次いで、統合タスクを実行５２２して、カスタムリソースの統合を終了することができる。
動作５０８〜動作５２４までのリソースインスタンス化のサイクルは次いで、リソーススタックが完全にインスタンス化されていない５２６、かつタイムアウトを超えていない５２４場合に繰り返すことができる。さもなければ、タイムアウトを超えていない５２４、かつインスタンス化するリソースがもうない５２６場合、スタックは、配備および／または個人化等、さらなる使用が有効５２８であってもよい。
【００３７】
いくつかの実施形態において、通知サービスは、メッセージ５１８を送信し、成功の指示を受信５２０するために使用される。一実施形態において、通知サービスが使用される。カスタムリソースマネージャー１１６は、カスタムリソースの初期化リクエストに関係する通知サービスのサブジェクトをサブスクライブすることができる。メッセージの配信は、ＨＴＴＰ、ＦＴＰ、電子メール、ＳＭＳ、キューまたは他のプロトコル等、プロトコルを含めて、カスタムリソースマネージャー１１６によってカスタム化されてもよい。通知サービスは次いで、プロビジョニングシステム１１１から受信すると、カスタムリソースマネージャー１１６へメッセージをプッシュすることができる。別の実施形態において、通知は、指定された場所の記憶装置上にデポジットされてもよい。プロビジョニングシステム１１１またはカスタムリソースマネージャー１１６等の受信側は、アクションが必要かどうかを決定するために、その場所をポーリングすることができる。別の実施形態において、メッセージを渡すために、アプリケーションプログラミングインターフェース（ＡＰＩ）の呼出しが使用される。ＡＰＩインターフェースは、プロビジョニングシステム１１１による複数のＡＰＩをサポートする複雑性を簡素化するために標準化されてもよい。他の実施形態において、前述の方法の組み合わせが使用されてもよい。例えば、通知の伝送のために通知サービスが使用されてもよく、通知に対する応答はストレージに応答を入れることによって行われてもよい。メッセージの照合も発生してもよい。一実施形態において、プロビジョニングシステム１１１によって署名された通知だけがカスタムリソースマネージャーによって実行される。
【００３８】
ここで図６を参照すると、少なくとも１つの実施形態に従うカスタムリソースマネージャーによって使用され得るプロセス６００の図示例が示される。プロセスは、スタック管理システム１１０、カスタムリソースマネージャー１１６、プロビジョニングシステム１１１、リソーススタック１０２、リソース１０４および１０８、ならびにカスタムリソース１０６を含む、図１に示されるシステムによって達成されてもよい。カスタムリソースマネージャーは、提供されたカスタムリソースをリソーススタックと統合するリクエストを受信６０２することができる。カスタムリソースマネージャーは、リクエストを非依存部分およびペイロードにパース６０４することができる。カスタムリソースマネージャーは次いで、ペイロードを使用して、リソーススタックの一部として構築するカスタムリソースの構成を決定する。いくつかの実施形態において、非依存部分が使用、または排他的に使用されて、カスタムリソースの構成を決定することもできる。決定された構成に少なくとも部分的に基づいて、カスタムリソースマネージャーは、カスタムリソースを初期化６０８し、リソーススタックと統合するようにカスタムリソースを構成することができる。例えば、カスタムリソースは、スタック管理システムのプロバイダとは別のデータセンター内の業者によって提供されてもよい。カスタムリソースの初期化は、カスタムリソースをプロビジョニングすること、サービスを設定すること、データベースエントリを作成すること、認証情報を構築すること、およびさもなければリソーススタックと統合するためにカスタムリソースを準備することを含むことができる。別の例において、カスタムリソースは、スタック管理システムのプロバイダのサブエンティティによって提供されてもよい。カスタムリソースの初期化は、サブエンティティの管理下での第２のリソーススタックの構築を含むことができる。第２のリソーススタックは、カスタムリソースとして取り扱われるので、第２のリソーススタックの作成および管理は、それらのリソーススタック内のカスタムリソースのユーザーに透明的であってもよい。
【００３９】
カスタムリソースの初期化成功が成功した場合、カスタムリソースマネージャーは、成功の指示、およびハンドル、カスタムリソースの物理的情報源識別子および／または識別、ならびに他の設定等、リソーススタックの任意の付加情報を返すことができる。例えば、カスタムリソースが監視ソリューションである場合、付加情報は、作成されている警告を含むことができる。いくつかの実施形態において、非依存部分の一部または全ては、メッセージが属するリソーススタックを識別するために返される。他の実施形態において、顧客が自己構成を選択することができるため、付加情報は、スタック管理システムがアクセスするためではなく、顧客がアクセスするために返される。一例において、カスタムリソースは、３次元プリンタであってもよく、構成情報は設計であってもよい。通知を受信すると、３次元プリンタは設計を構築することができる。設計を完了すると、３次元プリンタは、カスタムリソースの構築成功の指示を送信することができる。別の例において、カスタムリソースは、人間の知識に基づくリソース等、クラウドソースのリソースであってもよい。１つの質問が人々の集団に投げかけられてもよく、最も共通する回答が選択され、成功の指示の一部として返されてもよい。
【００４０】
カスタムリソースマネージャーはまた、カスタムリソースを変更するリクエストも受信することができる。リクエストもまたパースされてもよく、リクエストされた変更が決定される。カスタムリソースは、決定されたリクエストに従って変更され、リソーススタックに再統合されてもよい。いくつかの実施形態において、この再統合は、例えば、ホスト名、アドレス、または他の識別情報がいくつかの接触点を増加または減少するように変更および／または縮小拡大される場合、再構成を要求する場合がある。変更が統合されると、カスタムリソースマネージャーは、統合成功の指示をスタック管理システムに返すことができる。
【００４１】
カスタムリソース管理がスタック管理システムの制御外である場合、カスタムリソースの失敗は異なる様式で取り扱われてもよい。例えば、カスタムリソースプロバイダは、プロバイダのデータセンターが破損していたために応答することを拒否する場合がある。通知からのタイムアウトは、スタック管理システムが確認応答を待機する時間が長すぎないように保護することができる。タイムアウトの超過は次いで、リソーススタックの構築をリクエストした呼出し元エンティティに報告されてもよい。いくつかの実施形態において、呼出し元エンティティは、検出された失敗に反応するように選択することができる。一実施形態において、リソーススタック動作中の失敗は、呼出し元エンティティに報告されてもよい。呼出し元エンティティは、現在のテンプレートまたはカスタムリソースの代わりに異なるテンプレートまたはカスタムリソースを代用する等、反応するように選択することができる。別の実施形態において、作成、読み出し、更新、および破壊等のリソーススタック動作以外の動作の失敗が検出されてもよく、反応は他のシステムによって決定されてもよい。いくつかの実施形態において、反応はリソーススタックを変更するリクエストを含むことができる。
【００４２】
リソーススタックプロバイダは、そのカタログを市場形式で提供することができる。顧客は、プロバイダによって管理されたリソース、および／またはカスタムリソースプロバイダによって管理されたカスタムリソースを選択することができる。いくつかの実施形態において、市場からの選択は、リソーススタックのテンプレートに含まれてもよい。一実施形態において、カスタムリソースプロバイダは、リソーススタックに含める利用可能なリソースのカタログに含まれる一回限りまたは反復料金を支払うことができる。プロバイダは次いで、カスタムリソースの使用によって発生するコスト、またはリソースの構築に対する料金を受領することができる。
【００４３】
テンプレートは、リソーススタックのリソースの識別、リソースのプロパティ、パラメータ、リソーススタックのリソース間の相互接続、リソーススタック外の接続、リソーススタックの構成、リソースを実行させるセットアップ動作、およびリソースを実行させる動作を含む、リソーススタックの多様な態様を定義することができる。一実施形態において、テンプレートは、リソースの階層定義を含むことができる。例えば、テンプレートは、リソースのサブ定義、カスタムリソース、リソースで実行またはリソースによって実行する動作、およびリソース間の接続を含むリソーススタックの定義を用いて開始することができる。リソースの各サブ定義は、リソースに適用可能なオプション、記述、パラメータ、接続、サブリソースまたは他の関連定義を含むサブ定義をさらに含むことができる。
【００４４】
図７は、多様な実施形態に従う態様を実装するための例示的環境７００の態様を示す。
理解されるように、説明の目的でウェブベースの環境が使用されるが、多様な実施形態を実装するために、必要に応じて異なる環境が使用されてもよい。その環境は、適切なネットワーク７０４上からリクエスト、メッセージ、または情報を送信および受信し、かつデバイスのユーザーに情報を戻して伝達するように動作可能な任意の適切なデバイスを含み得る、１つの電子クライアントデバイス７０２を含む。そのようなクライアントデバイスの例として、パーソナルコンピュータ、携帯電話、手持ち式メッセージングデバイス、ラップトップコンピュータ、セットトップボックス、個人データアシスタント、電子ブックリーダー等が挙げられる。ネットワークとして、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワーク、もしくはそれらの組み合わせを含む、任意の適切なネットワークを挙げることができる。そのようなシステムに使用される構成要素は、選択されるネットワークの種類および／または環境に少なくともある程度依存し得る。そのようなネットワークを介して通信するためのプロトコルおよび構成要素が周知であり、本明細書において詳細に議論されない。ネットワーク上での通信は、有線または無線接続およびこれらの組み合わせによって有効にされ得る。この例において、環境がリクエストを受信し、かつそれに応答してコンテンツをサービスするためのウェブサーバー７０６を含むように、ネットワークはインターネットを含むが、他のネットワークについては、当業者には明らかなように、同様の目的をサービスする代替のデバイスを使用することができる。
【００４５】
例示的な環境は、少なくとも１つのアプリケーションサーバー７０８と、データストア７１０とを含む。連鎖されるか、またはさもなければ構成されてもよい、適切なデータストアからデータを入手する等のタスクを実行するために相互作用し得る、いくつかのアプリケーションサーバー、層、もしくは他の要素、プロセス、または構成要素が存在し得ることを理解されたい。本明細書で使用される「データストア」という用語は、データの記憶、アクセス、および回収能力のある任意のデバイスまたはデバイスの組み合わせを指し、任意の標準、分散型、またはクラスタ化環境において、任意の組み合わせおよび任意の数のデータサーバー、データベース、データ記憶デバイス、およびデータ記憶媒体を含んでもよい。アプリケーションサーバーは、クライアントデバイスの１つ以上のアプリケーションの態様を実行するために、必要に応じて、アプリケーションのデータアクセスおよびビジネスロジックの大部分を処理する、データストアと統合するための任意の適切なハードウェアおよびソフトウェアを含むことが可能である。アプリケーションサーバーは、データストアと協働してアクセス制御サービスを提供し、ユーザーに転送される文字、図、音声、および／またはビデオ等のコンテンツを生成することができ、そのコンテンツを、本例において、ＨＴＭＬ、ＸＭＬ、または別の適切な構造化された言語の形態で、ウェブサーバーによってユーザーにサービスしてもよい。全てのリクエストおよび応答の処理、ならびにクライアントデバイス７０２とアプリケーションサーバー７０８との間のコンテンツの送達は、ウェブサーバーによって処理することができる。本明細書の他の箇所で議論されるように、本明細書で検討される構造化されたコードは、任意の適切なデバイスまたはホストマシン上で実行することができるため、ウェブおよびアプリケーションサーバーは必要とされず、単に例示の構成要素に過ぎないことを理解されたい。
【００４６】
データストア７１０は、特定の態様に関するデータを記憶するための、いくつかの別々のデータテーブル、データベース、または他のデータ記憶機構および媒体を含むことができる。例えば、示されたデータストアは、本番データ７１２およびユーザー情報７１６を記憶するための機構を含み、これらは、本番環境でコンテンツを提供するために使用することができる。データストアはまた、報告書作成、分析または他のこのような目的のために使用することができる、ログデータ７１４を記憶するための機構も含むことが示される。ページイメージ情報等のデータストアに記憶されること、および権限情報にアクセスすることが必要になる可能性があり、必要に応じて上記の列挙された機構のうちのいずれか、またはデータストア７１０の追加の機構に記憶することができる、多くの他の態様が存在する可能性があることを理解されたい。データストア７１０は、それと関連するロジックを通じて、アプリケーションサーバー７０８から命令を受信し、かつそれに応答してデータを取得、更新、またはさもなければ処理するように動作可能である。一例において、ユーザーは、所定の種類の項目についての検索リクエストを提出する場合がある。この場合、データストアは、ユーザーの身元を検証するためにユーザー情報にアクセスする場合があり、その種類の項目についての情報を取得するためにカタログ詳細情報にアクセスすることができる。情報は、次いで、ユーザーがユーザーデバイス７０２上のブラウザを介して表示することが可能であるウェブページ上の結果リスト等において、ユーザーに返すことができる。関心の特定の項目の情報は、ブラウザの専用ページまたはウィンドウに表示することができる。
【００４７】
それぞれのサーバーは、典型的には、そのサーバーの一般管理および動作についての実行可能なプログラム命令を提供するオペレーティングシステムを含み、かつ典型的には、サーバーのプロセッサによって実行されると、サーバーがその目的とする機能を実行することを可能にする命令を記憶するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ等）を含む。サーバーのオペレーティングシステムおよび一般的な機能性の好適な実装例は、既知であるか、または市販されており、当業者によって、特に本明細書における本開示を考慮して容易に実装される。
【００４８】
一実施形態の環境は、１つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する分散型コンピューティング環境である。しかしながら、当業者は、そのようなシステムが、図７に図示されるよりも少ないまたは多い数の構成要素を有するシステムにおいて同等に良好に動作することができることを理解するであろう。したがって、図７のシステム７００の描写は、本質的に例示的であり、かつ本開示の範囲を限定しないと見なされるべきである。
【００４９】
前述は、以下の付記を考慮するとさらに理解することができる。
【００５０】
１．リソーススタックを作成するためのコンピュータによって実装される方法であって、コンピューティングリソースプロバイダの、実行可能命令を用いて構成された、１つ以上のコンピュータシステムの制御下で、コンピューティングリソースプロバイダによって、少なくとも、コンピューティングリソースプロバイダによって提供される複数のコンピューティングリソースから選択されたコンピューティングリソースと、第２のプロバイダによって提供されるカスタムコンピューティングリソースと、コンピューティングリソースおよびカスタムコンピューティングリソースをリソーススタックに統合するための定義と、を指定する、構成テンプレートによって定義されたリソーススタックを構築するリクエストを受信することと、リソーススタックを、少なくとも、少なくとも部分的に構成テンプレートに基づいてコンピューティングリソースをプロビジョニングすることと、リソーススタック内で使用するためのカスタムリソースを構成するように第２のプロバイダに命令する通知を、第２のプロバイダへ送信することと、第２のプロバイダから、カスタムリソースの構成成功の指示を含む、通知への応答を受信することと、によって構築することと、構築されたリソーススタックの使用を有効にすることと、を含む、コンピュータによって実装される方法。
【００５１】
２．第３のプロバイダへ、リソーススタック内で使用するための第２のカスタムリソースを構成するように第３のプロバイダに命令する、第２の通知を送信することと、第３のプロバイダから、第２のカスタムリソースの構成成功の第２の指示を含む、第２の通知への第２の応答を受信することと、をさらに含む、付記１に記載のコンピュータによって実装される方法。
【００５２】
３．第２のプロバイダへの通知を送信することが、管理セクションとペイロードとを含むように通知を構築することを含み、管理セクションが、リソーススタックの構成に関する情報を含み、ペイロードが、第２のプロバイダによって定義された特性を含む、付記１に記載のコンピュータによって実装される方法。
【００５３】
４．スタック識別子によって識別されたリソーススタックを変更する第２のリクエストを受信することと、第２のプロバイダへ、少なくとも第２のリクエストに基づいてカスタムリソースを変更するように第２のプロバイダに命令する、第２の通知を送信することと、第２のプロバイダから、変更成功の第２の指示を含む、通知への第２の応答を受信することと、リソーススタックに対する変更の使用を有効にすることと、をさらに含む、付記１に記載のコンピュータによって実装される方法。
【００５４】
５．第２のプロバイダが第三者のプロバイダである、付記１に記載のコンピュータによって実装される方法。
【００５５】
６．構成テンプレートによって定義されたリソース間の依存関係が順守されるように、構成テンプレートに少なくとも部分的に基づいて、リソーススタック内のリソースの構築の順序を決定することと、をさらに含む、付記１に記載のコンピュータによって実装される方法。
【００５６】
７．リソーススタックを管理するためのコンピュータによって実装される方法であって、実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で、コンピューティングリソースとカスタムリソースとを含むリソーススタックを構築するリクエストを受信することと、コンピューティングリソースをプロビジョニングすることと、カスタムリソースマネージャーへ、カスタムリソースのリソーススタックとの統合をリクエストするメッセージを送信することと、カスタムリソースマネージャーから、カスタムリソースのリソーススタックとの統合成功を示す応答を受信することと、プロビジョニングされたコンピューティングリソースとカスタムリソースとを含むリソーススタックの動作を有効にすることと、を含む、コンピュータによって実装される方法。
【００５７】
８．カスタムリソースマネージャーへメッセージを送信することが、管理セクションとカスタムリソースペイロードを含むようにメッセージを構築することをさらに含み、管理セクションは、スタック識別子、カスタムリソースへの論理関連識別子、およびリソーススタックのコンテキストをさらに含む、付記７に記載のコンピュータによって実装される方法。
【００５８】
９．管理されたリソースへメッセージを送信することが、管理セクションとカスタムリソースペイロードとを含むようにメッセージを構築することをさらに含み、カスタムリソースペイロードが、カスタムリソースマネージャーに特定の情報を含む、付記７に記載のコンピュータによって実装される方法。
【００５９】
１０．リソース間の定義された依存関係が順守されるように、リソースを構築する順序を決定することをさらに含む、付記７に記載のコンピュータによって実装される方法。
【００６０】
１１．リソーススタックを管理するアカウントの下でのカスタムリソースの使用量に対して請求記録を生成することをさらに含む、付記７に記載のコンピュータによって実装される方法。
【００６１】
１２．第１のプロバイダによって、コンピューティングリソースおよびリソーススタックを管理することをさらに含み、第１のプロバイダが、カスタムリソースを管理する第三者のプロバイダとは別である、付記７に記載のコンピュータによって実装される方法。
【００６２】
１３．リソーススタックを管理するためのコンピュータシステムであって、１つ以上のプロセッサと、実行可能命令を含むメモリとを有する１つ以上のコンピューティングデバイスを備え、実行可能命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、少なくとも、少なくとも部分的にテンプレートに基づいてリソーススタックを作成するように構成された第１のプロバイダのワークフロー処理システムであって、リソーススタックが、カスタムリソースと統合されたコンピューティングリソースを含み、カスタムリソースが第２のプロバイダによって管理される、ワークフロー処理システムと、少なくともテンプレートに基づいて、カスタムリソースを初期化し、かつカスタムリソースをコンピューティングリソースと統合するように、第２のプロバイダと通信するように構成された、カスタムリソース通知システムと、少なくとも部分的に前記テンプレートに基づいて、コンピューティングリソースをプロビジョニングするように構成された、第１のプロバイダのプロビジョニングシステムと、を実装させる、コンピュータシステム。
【００６３】
１４．カスタムリソースマネージャーが、リソーススタックの一部として、前記カスタムリソースを作成、読み出し、更新、および破壊するように構成されたアプリケーションプログラミングインターフェースをさらに含む、付記１３に記載のコンピュータシステム。
【００６４】
１５．コンピューティングリソースをプロビジョニングするために、プロビジョニングシステムによって使用されるマシンイメージをさらに備える、付記１３に記載のコンピュータシステム。
【００６５】
１６．ワークフロー処理システムが、タイマーをさらに備え、ワークフロー処理システムが、タイマーがタイムアウト閾値を超えると、リソーススタックが作成に失敗するように構成される、付記１３に記載のコンピュータシステム。
【００６６】
１７．カスタムリソース通知システムが、カスタムリソースマネージャーと第２のプロバイダとの間のメッセージングシステムとのリンクをさらに備え、メッセージングシステムが、第２のプロバイダによるプロトコルの選択を可能にするように構成される、付記１３に記載のコンピュータシステム。
【００６７】
１８．コンピューティングリソースの使用量から生じるコスト情報と統合するように、第２のプロバイダからコスト情報を受信する統一請求システムをさらに備える、付記１３に記載のコンピュータシステム。
【００６８】
１９．コンピュータシステムの１つ以上のプロセッサによって実行されると、コンピュータシステムに、少なくとも、カスタムリソースマネージャーによって、リソーススタック内のカスタムリソースマネージャーによって提供されるカスタムリソースを含むリクエストをスタック管理システムから受信することと、カスタムリソースマネージャーによって、テンプレートの指示を受信することと、少なくとも部分的にリクエストとテンプレートの指示とに基づいてリソーススタックと統合するようにカスタムリソースを準備することと、カスタムリソースがリソーススタックと統合されるというリクエストに対する応答を送信することと、を生じさせる、実行可能命令を集合的にその上に記憶している、１つ以上のコンピュータ可読記憶媒体。
【００６９】
２０．リクエストを受信することが、非依存部分とペイロード部分とを含むリクエストを受信することをさらに含み、ペイロードが、カスタムリソースマネージャーの仕様を順守し、カスタムリソースのための構成を含む、付記１９に記載のコンピュータ可読記憶媒体。
【００７０】
２１．応答を送信することが、リクエストの非依存部分に含まれたリソーススタック識別子と論理関連識別子とを備える応答を構築することをさらに含む、付記２０に記載のコンピュータ可読記憶媒体。
【００７１】
２２．リクエストを受信することが、リクエストが受信されるサブジェクトをサブスクライブすることと、リクエストが送達されるプロトコルを選択することと、サブジェクトへのメッセージの公開後にリクエストを受信することと、をさらに含む、付記１９に記載のコンピュータ可読記憶媒体。
【００７２】
２３．リソーススタックと統合するようにカスタムリソースを準備することが、空のリソーススタック状態から、空ではないリソーススタック状態へリソーススタックを遷移させることをさらに含む、付記１９に記載のコンピュータ可読記憶媒体。
【００７３】
２４．命令が、実行されると、コンピュータシステムに、少なくとも、リソーススタックによるカスタムリソースの使用によって発生したコストを含むメッセージを、リソーススタックに関係するアカウント情報を受信することに責任を持つ管理システムへ送信させる、命令をさらに含む、付記１９に記載のコンピュータ可読記憶媒体。
【００７４】
多様な実施形態は、いくつかの場合には、いくつかのアプリケーションのうちのいずれかを操作するために使用することができる、１つ以上のユーザーコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる、多種多様な動作環境で実装することができる。ユーザーまたはクライアントデバイスは、標準のオペレーティングシステムを稼動しているデスクトップまたはラップトップコンピュータ等のいくつかの汎用パーソナルコンピュータ、ならびにモバイルソフトウェアを稼動し、いくつかのネットワークおよびメッセージングプロトコルをサポートすることが可能であるセルラー、ワイヤレス、およびハンドヘルドデバイスのうちのいずれかを含むことができる。このようなシステムはまた、多種多様な市販のオペレーティングシステム、ならびに開発およびデータベース管理等の目的の他の周知のアプリケーションのうちのいずれかを稼動するいくつかのワークステーションを含むことができる。これらのデバイスはまた、ネットワークを介して通信することが可能なダミー端末、シンクライアント、ゲームシステム、および他のデバイス等、他の電子デバイスを含むことができる。
【００７５】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋ等、多種多様な市販されているプロトコルのうちのいずれかを使用する通信をサポートするために、当業者が熟知であろう、少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公共回線電話網、赤外線ネットワーク、無線ネットワーク、およびこれらの任意の組み合わせであり得る。
【００７６】
ウェブサーバーを利用する実施形態において、ウェブサーバーは、ＨＴＴＰサーバー、ＦＴＰサーバー、ＣＧＩサーバー、データサーバー、Ｊａｖａサーバー、およびビジネスアプリケーションサーバーを含む、多様なサーバーまたは中間層アプリケーションのうちのいずれかを稼動することができる。サーバー（単数または複数）はまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃またはＣ＋＋等の任意のプログラム言語、あるいはＰｅｒｌ、Ｐｙｔｈｏｎ、またはＴＣＬ等の任意のスクリプト言語、ならびにこれらの組み合わせ等、で作成された１つ以上のスクリプトまたはプログラムとして実装されてもよい、１つ以上のウェブアプリケーションを実行することによって等、ユーザーデバイスからのリクエストに応答して、プログラムまたはスクリプトを実行することが可能であってもよい。サーバー（単数または複数）はまた、これらに限定されないが、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）から市販されているデータベースサーバーを含んでもよい。
【００７７】
環境は、上記のように、多様なデータストアならびに他のメモリおよび記憶媒体を含むことができる。これらは、コンピュータのうちの１つ以上にローカル（および／または内部に存在）、あるいはネットワーク全体のコンピュータのうちのいずれかまたは全てからリモートの記憶媒体等、多様な場所に存在することができる。特定の組の実施形態において、情報は、当業者が熟知のストレージエリアネットワーク（以下「ＳＡＮ」）の中に存在してもよい。同様に、コンピュータ、サーバー、または他のネットワークデバイスに帰属する機能を実施するために必要な任意のファイルが、必要に応じて、ローカルおよび／またはリモートで記憶されてもよい。システムがコンピュータデバイスを含む場合、そのようなデバイスは各々、バスを介して電気的に連結されてもよいハードウェア要素を含むことができ、要素として、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド）、および少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカ）が挙げられる。かかるシステムはまた、ランダムアクセスメモリ（以下「ＲＡＭ」）、または読み出し専用メモリ（以下「ＲＯＭ」）、ならびに取り外し可能媒体デバイス、メモリカード、フラッシュカード等のディスクドライブ、光学式記憶装置、およびソリッドステート記憶装置等の１つ以上の記憶装置を含んでもよい。
【００７８】
かかるデバイスはまた、コンピュータ可読記憶媒体リーダー、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）、および上記のような実働メモリも含むことができる。コンピュータ可読記憶媒体リーダーは、コンピュータ可読情報を一時的および／またはより永久的に含み、記憶、伝送、および呼び出すための、リモート、ローカル、固定、および／または取り外し可能記憶装置、ならびに記憶媒体を代表する、コンピュータ可読記憶媒体と接続、またはこれを受容するように構成することができる。システムおよび多様なデバイスはまた典型的に、クライアントアプリケーションまたはウェブブラウザ等、オペレーティングシステムおよびアプリケーションプログラムを含む、いくつかのソフトウェアアプリケーション、モジュール、サービス、または少なくとも１つの実働メモリデバイス内部に位置する他の要素を含む。代替の実施形態は、上記とは異なる多くの変形形態を有してもよいことを理解されたい。例えば、カスタマイズされたハードウェアが使用される場合もあり、および／または特定の要素が、ハードウェア、ソフトウェア（アプレット等の移植可能ソフトウェアを含む）、または両方に実装される場合がある。さらに、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスへの接続が採用されてもよい。
【００７９】
コード、またはコードの一部を含むための記憶媒体およびコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を記憶するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶および／または伝送のための任意の方法または技術において実装された揮発性および不揮発性、取り外し可能および非取り外し可能な媒体等、しかしこれらに限定されない、当技術分野において周知または使用される任意の適当な媒体を含むことができる。本明細書に提供された開示および教示に基づいて、当業者は、多様な実施形態を実装するための他の方式および／または方法を理解するであろう。
【００８０】
本明細書および図面は、したがって、制限の意味ではなく、説明として解釈されるべきである。しかしながら、請求項に記載の本発明の広義の精神および範囲から逸脱することなく、そこに多様な修正および変更が行われてもよいことは自明である。
【００８１】
他の変形形態は、本開示の精神内にある。このように、開示される技法は、多様な修正および代替の構築の影響を受けやすいが、その特定の例示実施形態を図面に示し、詳細に上述した。しかしながら、本発明を開示される特定の形態（単数または複数）に限定する意図はなく、対照的に、この意図は、添付の請求項によって定義される本発明の精神および範囲内に該当する全ての修正、代替構築、および均等物を網羅することであることを理解されたい。
【００８２】
「１つ」（「ａ」および「ａｎ」）および「その」（「ｔｈｅ」）の用語の使用は、開示される実施形態の文脈における（特に以下の請求項の文脈における）類似の参照は、本明細書にその他明記または文脈によって明確に否定される場合を除き、単数および複数の両方を網羅すると解釈される。「備える」、「有する」、「含む」、および「含有する」という用語は、その他特に明記されない限り、無制限の用語（すなわち、「含むが、限定されない」を意味する）として解釈されることとする。「接続される」という用語は、何らかの介在が存在する場合であっても、部分的または全体的に内部に含まれる、それに添付、または結合すると解釈される。本明細書における値の範囲の記載は、本明細書にその他記載のない限り、その範囲内に該当する各個別の値を個別に参照する簡潔な方法として機能することを目的とするに過ぎず、各個別の値は、本明細書に個別に記載されているかのようにその仕様に組み入れられる。本明細書に記載される全ての方法は、本明細書にその他記載のない限り、または文脈によって明確に否定されない限り、任意の適切な順序で実行することができる。本明細書に提供される任意および全ての例、または例示的言語（例えば「等」）の使用は、本発明の実施形態をより明確にすることを意図するに過ぎず、その他請求されない限り、本発明の範囲に限定を課すものではない。本明細書のいずれの記載事項も、請求項に記載されていないいずれかの要素が本発明の実践に不可欠であることを示していると解釈されてはならない。
【００８３】
本開示の好ましい実施形態は、本発明を実行するために本発明人に周知の最良の様式を含めて、本明細書に記載される。これらの好ましい実施形態の変形は、前述の説明を一読すると当業者には明らかになり得る。本発明人は、当業者が、このような変形を適切に採用することを期待し、本発明人は、本発明が本明細書に具体的に記載される以外に実践されることを意図する。したがって、本発明は、該当法によって許可されるように、本明細書に添付の請求項に記載される対象項目の修正および均等物を全て含む。さらに、その全ての可能な変形における上述の要素の任意の組み合わせは、その他本明細書に明記または文脈によって明確に否定されない限り、本発明によって網羅される。
【００８４】
本明細書に引用される、文献、特許明細書、および特許を含む全ての参考文献は、各参考文献が個別かつ具体的に参照により組み入れられ、その全体が本明細書に記載されているのと同じ程度において、参照により組み入れられる。
【図１】
0006322694.tif 000002
【図２】
0006322694.tif 000003
【図３】
0006322694.tif 000004
【図４】
0006322694.tif 000005
【図５】
0006322694.tif 000006
【図６】
0006322694.tif 000007
【図７】
0006322694.tif 000008