(57)【要約】複数の仮想マシン・インスタンス（ＶＭ）およびデータ・センタ内における他のコンピューティング・インフラストラクチャおよびネットワーク・インフラストラクチャを管理する方法およびシステムが提供される。ユーザは、コンピューティング・デバイスまたはコンピューティング資源（物理的であるか仮想的であるかを問わない）をマスタ・オートメーション・オブジェクトとして指定する（例えば、仮想マシン・インスタンスが、コマンド・レプリケーションを行うための仮想テンプレートとして指定されるかもしれない）。その後、そのユーザは、前記マスタ・オブジェクトと複数の物理および／または仮想コンピューティング資源より成る１つのセットとの間の関連付けを確立し、それらコンピューティング資源は、指定された複数のコマンドより成る１つのセットであって前記マスタ・オブジェクトに送出されたものをレプリケートすべきである。その後、オートメーション・サービスが、前記マスタ・オブジェクトに送出された複数のコマンドをインターセプト／オブザーブし、それらインターセプト／オブザーブされたコマンドを、前記マスタ・オブジェクトにリンクされる各コンピューティング資源に送出する。【選択図】図２
2016507100.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピューティング資源を管理する方法であって、
指定されたコマンドであって、指定されたコンピューティング資源によって実行されるべきものの出現を検出するために、前記指定されたコンピューティング資源を監視する監視工程と、
前記コマンドが前記指定されたコンピューティング資源に送出されたと判定されると実行される特定工程および実行工程であって、
前記特定工程は、前記指定されたコンピューティング資源にリンクされる（linkded)１または複数のコンピューティング資源を特定し、
前記実行工程は、前記指定されたコマンドを、前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源の各々の上で実行する方法。
【請求項２】
前記指定されたコンピューティング資源は、コマンド・レプリケーション(command replication)を行うために仮想テンプレートとして指定された仮想マシンのインスタンスである請求項１に記載の方法。
【請求項３】
前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスは、仮想マシン・テンプレートからスポーンされ(spawned)、その仮想マシン・テンプレートからスポーンされる追加的なインスタンスは、前記仮想テンプレートにリンクされる前記１または複数のコンピューティング資源に追加される請求項２に記載の方法。
【請求項４】
前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源のうちの少なくとも１つは、コマンド・レプリケーション(command replication)を行うために第２の仮想テンプレートとして指定された第２の仮想マシンを含む請求項２に記載の方法。
【請求項５】
前記コマンドは、前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスを設定する(configure)ためのコマンドを含む請求項２に記載の方法。
【請求項６】
前記コマンドは、前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスによってホスティングされるゲスト・オペレーティング・システムを設定する(configure)ためのコマンドを含む請求項２に記載の方法。
【請求項７】
複数の指令を含むコンピュータ読み取り可能記録媒体であって、前記複数の指令は、コンピューティング・デバイス内において実行されると、複数の工程を実行することにより、複数のコンピューティング資源を管理するものであって、
前記複数の工程は、
指定されたコマンドであって、指定されたコンピューティング資源によって実行されるべきものの出現を検出するために、前記指定されたコンピューティング資源を監視する監視工程と、
前記コマンドが前記指定されたコンピューティング資源に送出されたと判定されると実行される特定工程および実行工程であって、
前記特定工程は、前記指定されたコンピューティング資源にリンクされる（linkded)１または複数のコンピューティング資源を特定し、
前記実行工程は、前記指定されたコマンドを、前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源の各々の上で実行するコンピュータ読み取り可能記録媒体。
【請求項８】
前記指定されたコンピューティング資源は、コマンド・レプリケーション(command replication)を行うために仮想テンプレートとして指定された仮想マシンのインスタンスである請求項７に記載のコンピュータ読み取り可能記録媒体。
【請求項９】
前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスは、仮想マシン・テンプレートからスポーンされ(spawned)、その仮想マシン・テンプレートからスポーンされる追加的なインスタンスは、前記仮想テンプレートにリンクされる前記１または複数のコンピューティング資源に追加される請求項８に記載のコンピュータ読み取り可能記録媒体。
【請求項１０】
前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源のうちの少なくとも１つは、コマンド・レプリケーション(command replication)を行うために第２の仮想テンプレートとして指定された第２の仮想マシンを含む請求項８に記載のコンピュータ読み取り可能記録媒体。
【請求項１１】
前記コマンドは、前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスを設定する(configure)ためのコマンドを含む請求項８に記載のコンピュータ読み取り可能記録媒体。
【請求項１２】
前記コマンドは、前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスによってホスティングされるゲスト・オペレーティング・システムを設定する(configure)ためのコマンドを含む請求項８に記載のコンピュータ読み取り可能記録媒体。
【請求項１３】
前記指定されたコンピューティング資源は、ネットワーク・スイッチング・デバイスとネットワーク・ルーティング・デバイスとのうちのいずれかを含む請求項７に記載のコンピュータ読み取り可能記録媒体。
【請求項１４】
前記リンクされるコンピューティング資源のうちの１つまたは複数のものは、ホスト・サーバ上で実行される仮想マシン・インスタンスを含む請求項７に記載のコンピュータ読み取り可能記録媒体。
【請求項１５】
前記複数の工程は、さらに、前記指定されたコマンドが、前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源の各々の上で実行されることが成功したか否か示す印(indication)を記録する工程を含む請求項７に記載のコンピュータ読み取り可能記録媒体。
【請求項１６】
コンピューティング環境内において複数のコンピューティング資源を管理するコンピューティング・システムであって、
オートメーション・サービス(service、ソフトウエア）をホスティングするサーバを含み、
前記オートメーション・サービスは、
インターセプタ／オブザーバ・コンポーネントと、
レプリケーション・コンポーネントと
を含み、
前記インターセプタ／オブザーバ・コンポーネントは、
指定されたコマンドであって、指定されたコンピューティング資源によって実行されるべきものの出現を検出するために、前記指定されたコンピューティング資源を監視することと、前記コマンドが前記指定されたコンピューティング資源に送出されたと判定されると、前記コマンドを表す印(indication)を前記レプリケーション・コンポーネントに送出することとを行うように構成されており、
前記レプリケーション・コンポーネントは、
前記指定されたコンピューティング資源にリンクされる（linkded)１または複数のコンピューティング資源を特定することと、前記指定されたコマンドを、前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源の各々の上で実行することとを行うように構成されているコンピューティング・システム。
【請求項１７】
前記指定されたコンピューティング資源は、コマンド・レプリケーション(command replication)を行うために仮想テンプレートとして指定された仮想マシンのインスタンスである請求項１６に記載のコンピューティング・システム。
【請求項１８】
前記仮想テンプレートとして指定された前記仮想マシンの前記インスタンスは、仮想マシン・テンプレートからスポーンされ(spawned)、その仮想マシン・テンプレートからスポーンされる追加的なインスタンスは、前記仮想テンプレートにリンクされる前記１または複数のコンピューティング資源に追加される請求項１７に記載のコンピューティング・システム。
【請求項１９】
前記リンクされるコンピューティング資源のうちの１つまたは複数のものは、ホスト・サーバ上で実行される仮想マシン・インスタンスを含む請求項１６に記載のコンピューティング・システム。
【請求項２０】
前記レプリケーション・コンポーネントは、さらに、前記指定されたコマンドが、前記指定されたコンピューティング資源にリンクされる前記１または複数のコンピューティング資源の各々の上で実行されることが成功したか否か示す印(indication)を記録するように構成されている請求項１６に記載のコンピューティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明のいくつかの具体例は、概略的には、複数のコンピューティング資源(computing resources、計算資源)を管理する(manage)技術に関する。より具体的には、本発明のいくつかの具体例は、複数のデータ・センタ(data center、コンピュータやデータ通信などの装置を設置・運用することに特化した施設の総称）・システム(data center systems、データ・センタで用いられる複数のシステム）の構成(configuration、設定状態、構成態様）および／または状態(state、作動状態)を同時にかつダイナミックに(dynamically、動的に、状況に応じて変化する特性で)制御する(control)ために用いられる仮想テンプレート・サービス(a virtual template service、仮想テンプレートを提供するサービス、機能、機能特徴部、ソフトウエア、プログラム、ルーチン）を提供する。
【背景技術】
【０００２】
一般に、１つの仮想化コンピューティング環境(a vritualized computing embironment、仮想コンピューティング環境、仮想化計算環境、仮想化環境)であって、例えば、数千台のコンピューティング・サーバ(computing servers、計算サーバ）をホスティングするデータ・センタ（a data center、１つのデータ・センタなど）のようなものにおいては、複数の仮想マシン(virtual machine、物理コンピュータ上で起動され、ソフトウエアによって構築された仮想コンピュータ)・インスタンス(instance、稼働・処理・実行を行う実体、仮想マシンを構築するために物理コンピュータ上で実行されるプログラム、ソフトウエア）（ＶＭｓ）が、１台または複数台のホスト・コンピュータ(host computers、前記データ・センタ内において前記コンピューティング・サーバをホスティングするコンピュータなど）上で動作する(run)ように構成される。各仮想マシンは、ホスト・コンピュータ(a host computer、１台のホスト・コンピュータなど）の複数のＣＰＵ・メモリ資源(CPU and memory resources、ＣＰＵおよびメモリに関する複数の資源）を用い、自身のオペレーティング・システムおよびいくつかのアプリケーション・プログラムを実行する。そのようにすることにより、各仮想マシンが、見掛け上、他から独立した(separate)１つのスタンドアローン型(stand-alone、自立型）のコンピュータ・システムとして動作する(operate)ことが可能となる。前記仮想化環境(the virtuallized environment、前記仮想化コンピューティング環境）の管理者(administrator、ユーザ)は、１台のホスト・コンピュータ上における前記複数の仮想マシンの各々のために(for、ごとに、について）プロビジョンされる(provisioned、準備されて割り当てられる）複数のＣＰＵ・メモリ資源の量を指定することが可能である。いくつかの仮想化環境(virtualized environment、前記仮想化コンピューティング環境）においては、いくつかの管理ツール(administrative tools、管理を行うために使用されるツール)が、各仮想マシン・インスタンス(virtual machine instance、仮想マシンのインスタンス、仮想マシンを作動させるためにハードウエアによって実行されるソフトウエア）を個別に起動させ、停止させ、そして、設定する（configure、構成する)ために用いられる。さらに、いくつかの管理ツール(administrative tools)が、異なる複数台のホスト・コンピュータ上での資源の稼働率(usage、利用状況）を監視するとともに、複数の仮想マシン・インスタンスのレベルにおける（at a level、複数の仮想マシン・インスタンスを対象にした） 負荷分散サービス(load balancing service、負荷分散を行うサービス、機能、機能特徴部、ソフトウエア、プログラム、ルーチン）を提供するかもしれない。この種のソフトウエアにより、複数の仮想マシンが１台のホスト・コンピュータから別のホスト・コンピュータに、例えば、作業負荷が高い(busy）ホスト・コンピュータから余剰の能力を有する(has excess capacity、余力のある）ホスト・コンピュータに移行させられる(migrate)。
【０００３】
前記仮想コンピューティング・システムおよび物理コンピューティング・システム(virtual and physical computing systems）であってデータ・センタ内にあるものを、それらコンピューティング・システムに付随した(associated)ネットワーキング(networking、ネットワークを形成する）・システムおよびストレージ・システム(networking and storage systems）であってデータ・センタ内にあるもののハードウエアと共に管理しつつ、マス・コンフィギュレーション・アップデート(mass configuration update、複数の仮想マシンの構成を更新すること)を行うか、または、個別に(individually、デバイスごとに、コマンドごとに)、同じコマンドを複数のデバイス（物理デバイスであるか仮想デバイスであるかを問わない）に送出することがしばしば必要である。例えば、今日における企業のソルーション／アプリケーション(solutions/applications)はしばしば複数の仮想マシンであって共通の特性を有するように設定されたもの、例えば、複数の仮想マシンより成る１つのグループ（a group of virtual machines、１つの仮想マシン群）が、共通のオペレーティング・システム（ＯＳ）、共通のネットワーキング構成(networking configuration、ネットワークを形成するための構成）、例えば、サブネット、ドメインおよびＤＮＳ(domain name server、ドメイン・ネーム・サーバ)のそれぞれの割り当て（assignments)、共通のアプリケーションを共有するかもしれない。
【０００４】
例えばウェブ・サービスを提供するために、１つの構成(one configuration、設定条件）を有する複数のＶＭより成る１つのグループ（１つのＶＭ群）が複数のウェブ・サーバを提供し、一方、第２のグループ(a second group、第２のＶＭ群）が複数のアプリケーション・サーバを提供し、また、第３のグループ(a third、第３のＶＭ群）が複数のデータベース・システムを提供することが可能である。さらに、各グループ(each group、各ＶＭ群）は、前記データ・センタ・ネットワーク(the data center network、前記データ・センタが用いるネットワーク）内の、他のサブネットと重複しない(distinct、他のサブネットとは異なる)１つのサブネットのうちの一部であるように構成することが可能である。しかし、そのサブネットが、それらグループのうちの１つについて変更を加えることが必要であると、その１つのグループ内の各マシン(machine、仮想マシン）を、個々に再設定すること、すなわち、固有のスクリプト(one-off script)を、前記変更が行われるとその影響を受けるグループ（the affected group、前記１つのグループ(that group))に前記変更を加えるように記述して用いることが必要となる。同様に、前記ウェブ・サーバのアプリケーションが更新され、かつ、前記第２のＶＭ群内の、仮想化された複数のＣＰＵの構成(configuration)に対する変更が必要である場合を仮定する（例えば、処理能力をより専用化すること(more dedicated processing capabilities)を実現することを目的として）。この場合、前記ウェブ・サーバ提供用のＶＭ群内の各仮想マシンは、個別に(indivivually、各仮想マシンごとに）再設定されること、すなわち、スクリプトをこの特定のオペレーション(this specific operation、前記変更を前記第２のＶＭ群内の前記仮想化された複数のＣＰＵの構成に加えること）を実行するように記述することが必要となるであろう。種々の他の構成上の要求(configuration requirements、設定状態についての要求)または管理オペレーション(administrative operations)が、複数の仮想マシンの間、想定された１つのホスト(a given host、データ・センタ内のホスト・コンピュータであって仮想マシンをホスティングするものなど)上の複数の仮想マシンを管理する複数のハイパーバイザー(hypervisors、仮想マシンを稼働させるためにサーバに直接インストールされる制御プログラム）の間、または、前記複数のホスト(hosts、データ・センタ内の複数台のホスト・コンピュータであって仮想マシンをホスティングするものなど)自身の構成(confiiguration)の間において実行されることが頻繁に必要である。同様な事案が、データ・センタ内の他のコンピューティング資源についても発生する。例えば、データ・センタ内にある複数のネットワーキング・スイッチ（物理的であるか仮想的であるかを問わない）より成る１つのグループまたは他のネットワーキング・インフラストラクチャが、同じ構成変更(configuration changes)を用いて更新されることが必要であるかもしれない。
【０００５】
それら事例の各々においては、種々の管理オペレーションが、各仮想マシンまたはデータ・センタ内の他のコンピューティング資源を個別に設定する（および再設定する）ために用いられるかもしれない。しかし、このようにすることは、簡単な変更を完遂するために多くの時間を必要とする可能性がある。
【発明の概要】
【０００６】
この書類に開示されているもののいくつかの具体例には、複数のコンピューティング資源を管理する方法が含まれる。この方法は、概略的に、指定されたコマンドであって、指定されたコンピューティング資源(a designated computing resource、前記複数のコンピューティング資源のうちのいずれかであって指定されたもの）によって実行されるべきものの出現を検出するために、前記指定されたコンピューティング資源を監視する工程を含むことが可能である。前記コマンドが前記指定されたコンピューティング資源に送出された(sent、送信された）と判定されると、前記指定されたコンピューティング資源にリンクされる(linked、連動する、接続される）１または複数のコンピューティング資源が特定されるかもしれない。さらに、前記指定されたコマンド(the specified command)は、前記指定されたコンピューティング資源にリンクされる(linked）前記１または複数のコンピューティング資源の各々の上で実行される。
【０００７】
他のいくつかの具体例は、複数の指令を含むコンピュータ読み取り可能記録媒体であって、前記複数の指令により、プロセッシング・ユニット(processing unit) が、この書類に開示されているいくつかの方法についての１または複数の側面を実施することが可能であるもの、または、プロセッサ、メモリおよびアプリケーション・プログラムであってこの書類に開示されているいくつかの方法についての１または複数の側面を実施するように設定されたものを有するシステムを含むが、それら以外のものを排除しない。
【図面の簡単な説明】
【０００８】
本発明のいくつかの特徴であって上述されたものが詳細に理解され得るように、簡単に説明された本発明についてのより具体的な文章による説明が、いくつかの実施形態を参照することによって行われ、それら実施形態のうちの一部が、添付された複数枚の図面に示されている。しかし、注目すべきことは、それら添付された図面は、本発明の典型的ないくつかの実施態様のみを示しており、よって、本発明の範囲を限定するものと考えるべきではないということであり、なぜなら、本発明は、同様に効果的である他のいくつかの実施形態を包含して(admit to)もよいからである。
【０００９】
【図１】図１は、仮想化環境を提供するように構成された統合(integrated）コンピューティング・プラットフォーム(platform、基礎技術、基盤）であって一実施形態に従うものを示している。
【００１０】
【図２】図２は、マスタ・オブジェクトに対して行われた変更(changes、変更点、変更内容、複数回の変更）を、前記マスタ・オブジェクトにリンクされる(linked、接続される）複数のコンピューティング資源より成る１つのセット（１つのコンピューティング資源群）にレプリケートする(replicate、前記マスタ・オブジェクトと同じ内容のレプリカ（複製）を前記１つのセット（前記１つのコンピューティング資源群）上に作成し、内容を両者間で同期させる、複製する）ように構成されたマスタ・オートメーション・システムであって一実施形態に従うものを示している。
【００１１】
【図３】図３は、仮想テンプレートにリンクされる複数のコンピューティング資源より成る１つのセット（１つのコンピューティング資源群）のための前記仮想テンプレートとして用いられる１つの仮想マシン・インスタンスの一参考例であって一実施形態に従うものを示している。
【００１２】
【図４】図４は、構成(configuration、設定状態、設定)および／または状態(state、作動状態)の変更(changes、変更点、変更内容、複数回の変更）を、マスタ・オブジェクトにリンクされる複数のコンピューティング資源より成る１つのセット（１つのコンピューティング資源群）にレプリケートするために用いられるように前記マスタ・オブジェクトを設定する方法であってこの書類に開示されているものの一実施形態に従うものを示している。
【００１３】
【図５】図５は、マスタ・オブジェクトに対して行われた変更(changes、変更点、変更内容、複数回の変更）を、前記マスタ・オブジェクトにリンクされる複数のコンピューティング資源より成る１つのグループ（１つのコンピューティング資源群）にレプリケートする方法であって一実施形態に従うものを示している。
【００１４】
理解を助けるために、前記複数枚の図面に共通である同一の要素を示すために、同一の符号が、可能である限り、用いられる。考慮されることは、ある実施形態において開示された要素が、特記なしで、他のいくつかの実施形態において効果的に用いられることが可能であるということである。
【発明を実施するための形態】
【００１５】
本発明のいくつかの実施形態により、複数の仮想マシン・インスタンス(virtual machine instance、仮想マシンのインスタンス、仮想マシンを作動させるために実行されるプログラム、ソフトウエア）（ＶＭｓ）とデータ・センタ内の他のコンピューティング・インフラストラクチャおよびネットワーク・インフラストラクチャ(computing and network infrastructure）とを管理する(manage)メカニズム(mechanism、機構、仕組み、構成）が提供される。一実施態様においては、ユーザが、コンピューティング・デバイスまたはコンピューティング資源（a compurting device or resource、１つのコンピューティング・デバイスまたは１つのコンピューティング資源）（物理的であるか仮想的であるかを問わない）をマスタ・オートメーション・オブジェクト（a master automation object、１つのマスタ・オートメーション・オブジェクト、１つのマスタ・オブジェクト、マスタとしての役割を有するオブジェクト）として指定する。その後、今回の管理者(the administrator、前記ユーザ)は、前記マスタ・オブジェクト(master object、前記マスタ・オートメーション・オブジェクト)と、複数の物理的および／または仮想的なコンピューティング資源より成る１つのセット（１つのコンピューティング資源群）であって、指定された複数のコマンドより成る１つのセット（１つのコマンド群）であって前記マスタ・オブジェクトに送出されたものをレプリケートすべきものとの間の関連付け(an association)を確立する。オートメーション・サービス(automation service、オートメーションまたは自動化を行うサービス、機能、機能特徴部、ソフトウエア、プログラム、ルーチン）が、その後、前記マスタ・オブジェクトに送出された複数のコマンドをインターセプト／オブザーブし(intercept/observe、傍受／観察し、傍受または観察し、接受または観察し、知得し、１つのコマンド群にアクセスし）、そのインターセプト／オブザーブされた(intercepted/observed、傍受／観察された、傍受または観察された、接受または観察された、知得された、アクセスされた）複数のコマンドを、前記マスタ・オブジェクトにリンクされる(linked、連動する、接続される）各コンピューティング・デバイスに送出する。前記コマンドは、それ自身、ユーザにより、種々の方式によって実行を開始されるかもしれず、その種々の方式には、例えば、コマンド・ライン・インタラクション（ＣＬＩ）(command line interaction)、ファンクション・コール(function calls)、ＧＵＩを介した入力（マウスの動き／クリック）、プロシージャ・コール(procedure calls)、メッセージ・ハンドリング(message handling)、スクリプト・インプット／エグゼキューション／アウトプット(script input/execution/output)などがある。
【００１６】
それらオペレーション(operations、処理、工程、プロセス）は、マスタ・オブジェクトとして使用される特定のコンピューティング資源に合わせて個別の調整される(tailor)かもしれない。しかし、複数の例としては、複数の仮想マシンより成る１つのグループ（１つの仮想マシン群）についてのスナップショット・オペレーション(snapshot operation、プログラムやデータのファイルを特定のタイミングで取得して保存する処理）の開始と、複数のコンピューティング資源（例えば、複数のＶＭインスタンス、複数の物理ホスト、複数のルータなど）より成る１つの広範囲のグループ（１つのコンピューティング資源群）についてのＤＮＳ設定値の更新と、リバート(revert、復帰）・スナップショット・オペレーションの、複数の仮想マシンより成る１つのグループ（１つの仮想マシン群）への送出(sending a revert snapshot operation、１つの仮想マシン群にリバート・スナップショット・オペレーションを実行させること）と、複数のネットワーク・スイッチを用いた１つのＶＬＡＮの作成または設定とがある。
【００１７】
一実施態様においては、前記マスタ・オブジェクトと、そのマスタ・オブジェクトにリンクされる複数のオブジェクトより成る前記１つのセット(the set of linked objects、前記１つのオブジェクト群、前記１つの仮想マシン群）とが、全体的な(general、概略的な）タイプおよび構成(configuration、設定状態）に関して同一であり、例えば、１つの仮想マシン・インスタンスが１つの仮想テンプレートとして指定され、その仮想テンプレートは、前記マスタ・オブジェクトにリンクされる複数の仮想マシン・インスタンスより成る１つのグループ（１つの仮想マシン・インスタンス群）のためのものであり、それら複数の仮想マシン・インスタンスは、共通のゲスト・オペレーティング・システムと、共通のバーチャライゼーション構成(virtualization configuration、仮想化を実行するための構成、構成態様、コンフィギュレーション）とを共有する。しかし、いくつかの事例においては、複数のオペレーションが、コンピューティング資源についての互いに異なる複数のタイプ上で実行される(performed against)かもしれない（例えば、複数のＤＮＳエントリ(entries、記載事項）を種々のコンピューティング資源上でセッティングすること）。例えば、１つの仮想テンプレートに関連付けられた１つのスイッチが、その仮想テンプレートに対して行われた複数のコマンドまたは複数の構成設定値(configuration settings)と同じもののうちのいくつかをサポートするかもしれない（例えば、複数のネットワーク・スイッチおよび複数の仮想マシン・ホスト(virtual machine hosts、複数の仮想マシンの複数のホスト・コンピュータなど）上でＶＬＡＮを作成しまたは設定すること）。よって、当該仮想テンプレート・サービスによってレプリケートされた複数のコマンドより成る前記１つのセット（前記１つのコマンド群）は、前記仮想テンプレートにリンクされる前記複数のコンピューティング資源に適合するように個別に調整される（tailor)かもしれない。
【００１８】
例えば、一実施態様においては、１つのＶＭインスタンスが、１つのマスタ・オブジェクト−仮想テンプレートとも称される−として指定されることが可能であり、また、複数の仮想マシンより成る１つのグループ（１つの仮想マシン群）が、前記仮想テンプレートにリンクされるかもしれない。ひとたびリンクされる(linked、前記１つのグループが前記仮想テンプレートにリンクされる）と、前記仮想テンプレートに対して行われるいかなる変更も、前記仮想テンプレートにリンクされる複数のＶＭより成る前記１つのグループ（前記１つの仮想マシン群）にレプリケートされる(replicated、いかなる変更も、それのレプリカが、前記１つの仮想マシン群上に作成される、いなかる変更も前記１つの仮想マシン群に反映される）。その実際のコマンドまたはオペレーション(actual command or operation、設定変更のために実際に用いられるコマンドまたはオペレーション）は、種々の利用可能な設定ツール(configuration tools)および管理ツールを用いることにより、前記仮想テンプレート・マシン(virtual template machine、仮想テンプレートとして指定された仮想マシン）上で実行される。この実施態様においては、仮想テンプレート・サービス(virtual template service、仮想テンプレートを用いて仮想マシンを発生させることを行うソフトウエアなど）が、設定変更（configuration changes、構成変更、複数回の構成変更）を監視してその設定変更の内容を、前記仮想テンプレートにリンクされる前記複数の仮想マシンのうちの残りの部分（およびデータ・センタの他のいくつかのシステム）にレプリケートする責任を負う。
【００１９】
仮想テンプレートについての上述の例を続けて説明すると、管理ツールにより、ユーザが、自ら選択したＶＭを、前記仮想テンプレートとして作用するように指定することが可能となる。一実施態様においては、その仮想テンプレートが、ストレージもメモリも割り当てられていない１つのＶＭインスタンスであり、よって、それら資源（these resources、ストレージおよびメモリ）に対して行われる変更が、前記仮想テンプレートにリンクされるＶＭのうちのいずれにもレプリケートされない。しかし、これに対し、前記仮想テンプレートとして指定された前記ＶＭインスタンス上のネットワーク構成およびバーチャライゼーション構成(virtualization configuration)は、前記仮想テンプレートにリンクされた複数の仮想マシンより成る１つのセット（１つの仮想マシン群）上の、目標の構成(desired configuration)に概して合致すべきである。その後、その仮想テンプレートは、仮想テンプレート・サービスに登録される。前記管理者は、さらに、１または複数のＶＭインスタンス（または他のいくつかのコンピューティング資源）より成る１つのグループを前記仮想テンプレート・サービスに登録する。その管理者は、さらに、複数のオペレーションであって、前記仮想テンプレート上で実行されると、前記リンクされた複数のＶＭ上でも実行されるべきものを特定する(specify)。
【００２０】
注目されたいことは、与えられた(given、指定された）１つのＶＭが、複数の仮想テンプレートにリンクされるかもしれないということである。同様に、１つの仮想テンプレートが、別の仮想テンプレートにリンクされ、それにより、互いに連続した(cascading)複数回の変更が、前記１つのＶＭにリンクされる複数のＶＭより成る複数のグループ（複数のＶＭ群）上で実行されることが可能であるということである。一実施態様においては、前記仮想テンプレート・サービスが、さらに、発見コンポーネント(discovery component、発見を行う構成要素）を有し、その発見コンポーネントは、複数の候補ＶＭを、リンクされる複数の仮想マシンより成る前記１つのセット（前記１つの仮想マシン群）内に包含されるように特定する(identify、識別する）ように構成されている。
【００２１】
前記仮想テンプレート・サービスは、概略的に、前記仮想テンプレートに対して行われるいくつかのオペレーションをインターセプト（またはオブザーブ）し、その後、それらの変更を、前記仮想テンプレートにリンクされる前記複数の仮想マシンに伝搬する(propagate、遺伝させる)（または、同じコマンド（the same command、前記インターセプトされたオペレーションもしくはそれに対応するコマンド）を前記複数の仮想マシン上で実行する）ように構成されている。例えば、スナップショット・オペレーションが前記仮想テンプレート上で実行される事例を想定する。この事例においては、前記仮想テンプレート・サービスが前記オペレーション（前記テンプレート上で実行されるもの）をインターセプトする。その後、同じスナップショット・オペレーションが、前記仮想テンプレートにリンクされる各ＶＭ上で実行される。別の例としては、あるオペレーションが、仮想ネットワーク・インターフェース・カードを前記仮想テンプレートに追加するように実行される事例を想定する。この事例においては、前記仮想テンプレート・サービスが、今回のオペレーション(this operation、仮想ネットワーク・インターフェース・カードを仮想テンプレートに追加するというオペレーション）をインターセプトし、前記仮想テンプレートにリンクされる各仮想マシン上で、ネットワーク・インターフェース・カードを追加するためのオペレーション(an add network interface card)を実行する。
【００２２】
より概略的に説明するに、いくつかのコマンドが、（ｉ）前記仮想マシンのコンテナ(container、独立したサーバと同様の振る舞いをする区画)上で、スナップショット・オペレーションまたはリバート・オペレーションのようなものとして実行されるか、または（ｉｉ）前記仮想マシン自体上で、特定の構成設定値(configuration settings)を変更するようなもの、例えば、ネットワーキング・サブネット、ＤＮＳ（ドメイン・ネーム・サーバ）もしくは他のサービス・アドレスに対して行われる変更、もしくは、前記ゲスト・オペレーティング・システム(guest operating system、仮想マシンのオペレーティング・システム）に臨まされるいくつかのコンポーネントに対して行われる変更として実行されるかもしれない。１つの仮想テンプレートおよびそれにリンクされる複数の仮想マシンについての上述の例においては、前記いくつかのオペレーションが、ＶＭのスナップショット(snapshot、ＶＭの状態を保存すること）の作成、先行するスナップショットへのリバート(revert、復帰）、いくつかのネットワーク・コンポーネントの追加／削除、あるドメインへの参加もしくは退出、パワー・オン／オフもしくはリブート(reboot)、ＶＭ上での他のいくつかの管理コマンドの実行などを含むかもしれない。あるコマンドが前記仮想テンプレート上で実行される(performed to)と、それと同じオペレーションも、その仮想テンプレートにリンクされる各ＶＭ上で自動的に実行される。もちろん、いくつかのオペレーションはレプリケートされず、例えば、前記仮想テンプレートのＩＰアドレスに対して行われる変更は、前記リンクされる複数の仮想マシンにレプリケートされない。
【００２３】
データ・センタの他のハードウエアまたは仮想化コンピューティング資源について行われるプロセスも同様である。例えば、スイッチ（物理的であるか仮想的であるかを問わない）が、マスタ・オブジェクトにリンクされる複数のオブジェクトにコマンドをレプリケートするための前記マスタ・オブジェクトとして指定されるかもしれない。データ・センタの複数のスイッチより成る１つのグループ（１つのスイッチ群）であって、特定の構成設定値または状態設定値（configuration or state settings)を共有すべきものが、前記マスタ・オブジェクトであるように指定されたもの(the one、スイッチ）にリンクされるかもしれない。その後、前記マスタ・スイッチ(the master switch、前記マスタ・オブジェクトとして指定された前記スイッチ）上で実行される(performed to)特定のいくつかのコマンドが、そのマスタ・スイッチにリンクされる各スイッチにレプリケートされる。
【００２４】
続く説明においては、本発明のいくつかの実施態様について言及される。しかし、本発明は、ここに説明されるいくつかの実施態様に限定されない。その代わり、後述の複数の特徴および複数の要素の任意の組合せが、互いに異なるいくつかの実施態様に関連するか否かを問わず、本発明を実施する対象として考慮される。さらに、本発明のいくつかの実施態様が、他の可能ないくつかの解決手段および／または先行技術に勝るいくつかの効果を達成するかもしれないが、ある効果(a particular advantage、特定の利点）が、想定される実施態様によって達成されるか否かということが本発明にとっての限定になる(limiting of the invention、本発明に該当するか否かを左右する）ことはない。よって、後述のいくつかの側面、特徴、実施態様および効果は、例示にすぎず、付随する複数の請求項に明示されている場合を除き、複数の請求項のいくつかの要素であると判断されることもいくつかの限定であると判断されることもない。同様に、「本発明」についての言及は、この書類に開示されている任意の発明主題を一般化するものとして理解するべきではなく、また、付随する複数の請求項に明示されている場合を除き、複数の請求項の要素であると判断されるべきでも限定であると判断されるべきでもない。
【００２５】
本発明のいくつかの側面が、システム、方法またはコンピュータ・プログラム・プロダクト(computer program product）として具体化されるかもしれない。したがって、本発明のいくつかの側面は、全体的にハードウエアである実施態様、全体的にソフトウエアである実施態様（ファームウエア、常駐ソフトウエア、マイクロコードなどを含む）またはソフトウエアの側面とハードウエアの側面とが組み合わされた実施態様という形態を取るかもしれず、この書類においては、それら実施態様のすべてを全体的に、「回路」、「モジュール」または「システム」と称する。さらに、本発明のいくつかの側面は、１または複数のコンピュータ読み取り可能媒体であってそれにコンピュータ読み取り可能なコードが具現化されたものとして具現化されるコンピュータ・プログラム・プロダクトという形態を取るかもしれない。
【００２６】
この書類に添付されているいくつかの図面内のフローチャートおよびブロック図は、本発明の種々の実施態様に従い、システム、方法およびコンピュータ・プログラム・プロダクトが取り得るいくつかの実施例のアーキテクチャ(architecture、ハードウエア基本設計概念)、ファンクショナリティ(functionality、機能)およびオペレーション(operation、動作、運用)を図示している。ここに、フローチャートまたはブロック図内の各ブロックは、モジュール、セグメントまたはコードの一部を表現しているかもしれず、各ブロックは、特定された論理的な機能を実行するための１または複数の実行可能な指令を有する。別のいくつかの実施態様においては、注目するブロックにおいて明記されたいくつかの機能が、前記複数の図面に明記された順序とは異なる順序で発生するかもしれない。例えば、互いに連続して図示されている２つのブロックが、関与するファンクショナリティに依存し、実際には、実質的に同時に実行されるかもしれないし、それらブロックが、時折、逆の順序で実行されるかもしれない。ブロック図および／またはフローチャートによる説明内の各ブロック、および、ブロック図および／またはフローチャートによる説明内の複数のブロックのいくつかの組合せ（combinations of blocks、複数のブロックより成る組合せ）は、ハードウエアをベースにした専用のシステムによって実行することが可能であり、そのシステムは、特定の機能、特定の作用、または、専用のハードウエアおよび専用のコンピュータ指令群の組合せを実行する。
【００２７】
本発明のいくつかの実施態様は、クラウド・コンピューティング・インフラストラクチャを経由してエンド・ユーザに提供されるかもしれない。クラウド・コンピューティングは一般に、スケーラブルなコンピューティング資源をネットワーク上のサービスとして提供することを意味する。より形式的には、クラウド・コンピューティングは、前記コンピューティング資源と、それの基礎を構成する技術的アーキテクチャ（例えば、サーバ、ストレージ、ネットワーク）との間におけるアブストラクション(abstraction)を提供するコンピューティング能力(computing capability、計算能力)として定義されるかもしれず、そのアブストラクションにより、コンフィギュラブルな(configurable、設定変更可能な）複数のコンピューティング資源より成る共有プールへの、便利でかつオンデマンドのネットワーク・アクセスを可能とし、その共有プールを構成する複数のコンピューティング資源は、管理作業またはサービス・プロバイダのインタラクション(interaction、情報のやりとり）が最小である状態で、迅速にプロビジョンされる(provisioned、準備されて割り当てられる)とともにリリースされることが可能である。よって、クラウド・コンピューティングにより、ユーザが、「前記クラウド」内のいくつかの仮想コンピューティング資源（例えば、ストレージ、データ、アプリケーションが該当し、さらに、完備された(complete、すべての要素が備わっている)仮想化コンピューティング・システムも該当する）にアクセスすることが、それの基礎となる物理システム（または、その物理システムのロケーション）であって前記いくつかのコンピューティング資源（the computing recourses、前記いくつかの仮想化コンピューティング資源）を提供するために用いられるものの如何を問わず、可能である。ユーザは、前記クラウド内に駐在する前記複数の資源のうちの如何なるものにも、如何なる時期にも、そして、前記インターネット上の如何なる場所からでも、アクセスすることが可能である。本発明の文脈においては、クラウドをベースとするアプリケーションが、ユーザが、仮想マシン・インスタンス（または他のコンピューティング資源）をマスタ・オブジェクトとして指定することが可能であるとともに、ユーザが、他のいくつかのコンピューティング資源より成る１つのグループ（例えば、クラウドをベースとするサービスによってホスティングされる複数の仮想マシンより成る１つのグループ）であって前記マスタ・オブジェクトに送出されるいかなるコマンドもレプリケートされるべき相手であるものを指定することも可能であるように構成されるかもしれない。
【００２８】
さらに注記するに、説明の便宜上、いくつかの実施態様が、この書類中に、マスタ・オブジェクトの１つの参考例としての仮想テンプレートとして指定された仮想マシンを用いるものとして説明されている。しかし、当業者であれば、本発明のいくつかの実施態様が、データ・センタ内にある広範囲にわたる種々の物理コンピューティング資源および／仮想コンピューティング資源、例えば、他のいくつかのＶＭをホスティングする物理サーバ、物理サーバそれ自体、ネットワーク・インフラストラクチャ、例えば、ルータおよびスイッチなどを含むものと共に用いられるように適合させられる(adapted、構成される）かもしれない。
【００２９】
図１は、統合コンピューティング・プラットフォーム１０２であって、仮想化環境を実現するように構成されるとともに、この書類に開示されているものの一実施形態に従うものを示している。管理者(administrator、アドミニストレータ）１５０は、統合コンピューティング・プラットフォーム１０２を既存のコンピューティング環境（例えば、データ・センタ１００）内に配備することを希望する。そのデータ・センタ１００は、複数のサーバ（サーバ１０４１，１０４２，１０４Ｍとして図示されている）であって１または複数のサービス(service、プログラムなど）１０６を実行する(run)ものを有するかもしれないる。それらサーバ１０４は、従来のコンピューティング・コンポーネント（例えば、プロセッサ、メモリ、ストレージ）を有してもよいし、または、そのような物理ハードウエア上で実行される複数の仮想マシン（ＶＭ）であってもよい。それらサーバ１０４上で動作する(run)複数のサービス１０６は、複数のアプリケーションをユーザに提供し、それらアプリケーションは、例えば、ディレクトリ・サービス、ウェブ・サーバ、データベース・サーバ、アカウンティング、アプリケーション・サービング、ファイル管理、ストレージ、バックアップ・サービスなどを含む。後に詳述するように、前記管理者は、統合コンピューティング・プラットフォーム１０２を、複数の物理資源および複数の仮想資源（例えば、複数のＶＭ）であって統合コンピューティング・プラットフォーム１０２の内部において動作するものが既存のデータ・センタ１００の複数のサービス１０６と通信するように、配備することを希望するかもしれない。
【００３０】
図示されているように、コンピューティング・プラットフォーム１０２は、仮想化インフラストラクチャ１２０をサポートするように構成された物理インフラストラクチャ１１０を有する。図１に示すこの実施態様においては、物理インフラストラクチャ１１０が、複数のサーバ１１６１ないし１１６Ｎ（それらは「ホスト」と称されることがある）のような複数のハードウエア資源と、ＳＡＮ１１８のような、１または複数のストレージ・アレイ・ネットワーク（ＳＡＮ）とを有し、それらハードウエア資源とストレージ・アレイ・ネットワーク（ＳＡＮ）とは、ネットワーク１１４によって互いに接続される。仮想化インフラストラクチャ１２０は、バーチャライゼーション環境１２４であって、それ自身、１または複数の仮想マシン１４０を有するものを有するかもしれない。コンピューティング・プラットフォーム１０２は、他の複数のコンピューティング・システム、例えば、複数のワークステーション、複数のパーソナル・コンピュータ、複数のデータ・センタ・サーバのようなものに、インターネットのようなネットワーク１２８を介してリンクされることが可能である。一実施態様においては、コンピューティング・プラットフォーム１０２を構成する複数のコンポーネント（例えば、サーバ、ネットワーク、ストレージ、ソフトウエアなど）が、単一の統合フレームワークであって「コンバージド・インフラストラクチャ」と称されることがあるものに組織化されるかもしれない。コンピューティング・プラットフォーム１０２を構成する前記複数のコンポーネントにより、仮想化サーバ、仮想化ストレージおよび仮想化ネットワーク資源であって１つの企業内における複数のアプリケーションおよび／または複数の組織体によって共有されるものより成る１つのプールが提供される。
【００３１】
一実施態様によれば、物理インフラストラクチャ１１０は、「コンピューティング・ブロック」ベーズド(based、を基礎とする、系、関連)インフラストラクチャに組織化されるかもしれず、ここに、複数の物理インフラストラクチャ・ユニットが、構成上の反復単位（repeatable units of construction、他の構成単位と接続されて一緒に動作することが可能な構成単位、相互作動性を有する複数の構成単位）によって特徴付けられ、それら反復単位は、性能と、動作特性と、パワー、スペースおよび冷却についてのディスクリートな複数の要求値とに関して互いに類似し、それにより、迅速な配備(deployment)、統合(integration)およびスケーラビリティを促進する。例えば、前記「コンピューティング・ブロック」は、物理インフラストラクチャ１１０上に置かれた複数の性能要求に基づき、複数のハードウエア資源のプロビジョン(provision、デバイスを運用可能な状態にするためのあらゆる作業、運用可能にするための準備)をダイナミックに(dynamically、動的に、状況に応じて変化する特性で）行うかもしれない。物理インフラストラクチャ１１０の一例は、VCE Company, LLC.（ブイシーイー  カンパニー  エルエルシー)から市販されているVblock（登録商標）Systemである。
【００３２】
物理インフラストラクチャ１１０は、さらに、インフラストラクチャ・マネージャ(manager、インフラストラクチャの種々の運用状態を統合管理するソフトウエア）１１２を有しており、そのインフラストラクチャ・マネージャ１１２は、物理インフラストラクチャ１１０の設定(configuration)と、プロビジョニング(provisioning、運用化のための準備)と、ポリシー・コンプライアンス(policy compliance、ポリシー（要望）の順守）とのそれぞれの管理を行うように構成されている。インフラストラクチャ・マネージャ１１２は、複数のハードウエア資源（例えば、コンピューティング資源、ネットワーキング資源、ストレージ資源）のプロビジョニングを管理するためのインタフェースを提供する。一実施態様においては、インフラストラクチャ・マネージャ１１２が、個別の複数のコンピューティング・ブロックのそれぞれの設定(configuration）と、プロビジョニング(provisioning、運用化のための準備)と、コンプライアンスとをそれぞれ管理するために、物理インフラストラクチャ１１０の各ユニット内に搭載されるかもしれない。インフラストラクチャ・マネージャ１１２は、ＩＴサービス・カタログ（IT service catalogs、顧客向けに利用可能なＩＴサービスの一覧）およびワークフロー・エンジン(workflow engines、ルート上のフローを管理するソフトウエア・アプリケーション）への配備および統合を単純化し、さらに、トラブルシューティングおよびフォールト管理のために複数の個々のコンポーネントへの緻密なアクセス(granular access)を提供しつつ、前記プロビジョニングの全工程を抽象化する(abstract)ことにより、コンピューティング・ブロック・プラットフォームの配備を劇的に単純化するかもしれない。
【００３３】
一実施態様においては、インフラストラクチャ・マネージャ１１２が、複数のＩＰアドレスおよびシステム証明書(credentials、認証)から成るリストを、新たにプロビジョンされたシステムを割り当てるために有する構成(a configuration)を有するかもしれない。プラットフォーム・マネージャ１３０および／または仮想化インフラストラクチャ１２０は、物理インフラストラクチャ１１０の管理および／または設定のために、物理インフラストラクチャ１１０のインフラストラクチャ・マネージャ１１２に接続されて通信するかもしれない。インフラストラクチャ・マネージャの一例は、EMC Ionix Unified インフラストラクチャ・マネージャ(UIM)であってＥＭＣコーポレーションから市販されているものを有する。同様に、ネットワーク１１４は、ネットワーク・マネージャを有するかもしれず、そのネットワーク・マネージャは、複数のネットワーク・デバイス（例えば、複数のスイッチ、複数のルータ）の設定と、複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）および他のネットワークについて、アドレッシング(addressing、アドレス割り当て）、複数のサブネット（subnets)、および複数の構成(configurations)を管理することとを行うように構成される。ネットワーク・マネージャの一例は、Cisco System, Inc.から市販されているCisc IOS コマンド・ライン・インタフェース(CLI)を介してアクセス可能なCisco Switchを有する。
【００３４】
仮想化インフラストラクチャ１２０は、バーチャライゼーション環境(virtualization environment、仮想化を行う環境、仮想化実現環境）１２４を有し、そのバーチャライゼーション環境１２４は、１つの従来のコンピューティング・デバイスの複数のコンポーネント、例えば、プロセッサ、システム・メモリ、ハード・ディスク・ドライブを、１または複数の仮想マシン１４０を実行するために模擬する（すなわち、仮想化する）ように構成されている。例えば、各仮想マシン１４０は、仮想プロセッサおよび仮想システム・メモリであってあるアプリケーションを実行するように構成されたものを有することが可能である。図１の実施態様と同様な実施態様の一実施例においては、バーチャライゼーション環境(virtualization environment）１２４が、サーバ１１６１ないし１１６ｎ上にあるVMware vSphere（登録商標）ベーズドまたはVMware ESX（登録商標）ベーズドのハイパーバイザ(hypervisor)技術であってカリフォルニア州パロ・アルトに所在のVMware, Inc.によって提供されたものを動作することによって実現されるかもしれない（ただし、認識すべきことは、他の任意の仮想化技術であって、Xen（登録商標）およびマイクロソフト社のHyper-V仮想化技術を有するものが、この書類での教示に適合するように利用されるかもしれないということである）。上述のように、ハイパーバイザ・アプリケーションは、仮想化インフラストラクチャ１２０のような仮想化ＩＴインフラストラクチャを構築するとともに管理するファンデーション(a foundation、基礎)を提供するかもしれない。そのハイパーバイザは、プロセッサ、メモリ、ストレージおよびネットワーキング資源を、複数の仮想マシンであって、変更されていない(unmodified、未修正の)複数のオペレーティング・システムおよび変更されていない(unmodified、未修正の)複数のアプリケーションを動作させるものに抽象化する(abstract、仮想化する）かもしれない。
【００３５】
一実施態様においては、バーチャライゼーション・マネージャ(virtualization manager、仮想化を行うマネージャ、仮想化実行マネージャ）１２２が、仮想化インフラストラクチャ１２０を管理するために用いられるソフトウエアを提供する。バーチャライゼーション・マネージャ１２２は、複数のサードパーティ(third-party)管理ツールと統合することを可能にする複数のＡＰＩより成る１つのセットにより、エンドツーエンド(end-to-end、通信を行う二者間、通信を行う二者間を接続する経路全体）のデータセンタ管理を実現するかもしれない。バーチャライゼーション・マネージャ１２２は、仮想化インフラストラクチャ１２０内の複数のＶＭ１４０のプロビジョンを管理することと、複数のＶＭ１４０を、それらＶＭ１４０のコンピューティング、ネットワークおよびストレージのそれぞれの構成(configurations、構成条件、設定状況）が仮想化インフラストラクチャ１２０内において他の複数のＶＭ１４０との間で相互作動性(interoperability)を有するのに適したものとなるように設定することとを行うように構成される(configure）かもしれない。バーチャライゼーション・マネージャ１２２の一例は、VMware vCenter仮想化マネージメント・プラットフォームであってVMware, Inc.から市販されているものであるかもしれない。
【００３６】
図示されているように、コンピューティング・プラットフォーム１０２は、さらに、プラットフォーム・マネージャ１３０をも有し、そのプラットフォーム・マネージャ１３０は、仮想化インフラストラクチャ１２０と物理インフラストラクチャ１１０とに前記通信ネットワークを介して接続される。そのプラットフォーム・マネージャ１３０は、あるアプリケーションをコンピューティング・プラットフォーム１０２内に配備するために用いられる物理インフラストラクチャ１１０および仮想化インフラストラクチャ１２０からの(from、から生成される）複数の資源のプロビジョンおよび設定(configure)を行うように構成されている。例えば、仮想化インフラストラクチャ１２０が、ピーク・トラフィック(peak traffic、最繁通信期間、通信量最大期間）の間、現在動作しているアプリケーションのスケーリング(scale、そのアプリケーションのサイズを増加させたり減少させたりして調整すること)を行うために、更なる複数のＶＭを要求する場合には、プラットフォーム・マネージャ１３０は、バーチャライゼーション・マネージャ１２２と連携する(coordinate)することが可能であり、その目的は、更なる複数の仮想マシンを、そのようなニーズをサポートするためにインスタント化する(instantiate、仮想マシンのインスタンスを作成する)とともに、そのインスタント化された複数の仮想マシンを、それら仮想マシンのネットワーク設定条件(settings)が既存の仮想マシンのネットワーク設定条件に合致するように、設定することにある。
【００３７】
さらに、本発明の文脈においては、プラットフォーム・マネージャ１３０が、オートメーション・サービス・コンポーネントを有するかもしれず、そのオートメーション・サービス・コンポーネントは、後に詳述される。この種のコンポーネントは、１または複数のソフトウエア・アプリケーションを提供してもよく、そのソフトウエア・アプリケーションの用途は、マスタ・オブジェクトを指定すること、例えば、仮想マシン・インスタンスを仮想テンプレートとして指定すること、いくつかのコンピューティング資源（例えば、ＶＭ）を前記マスタ・オブジェクトにリンクする（またはリンク解除する(unlink））ためにいくつかのコンピューティング資源（例えば、ＶＭ）を指定すること、または、前記マスタ・オブジェクト上で実行されると、リンクされる複数のコンピューティング資源より成る前記１つのグループ（１つのコンピューティング資源群）にレプリケートされるべきコマンドもしくはオペレーションを特定することにある。オートメーション・サービス・コンポーネントの詳細な例が、図２および図３に対して後述されている。
【００３８】
図示されているように、プラットフォーム・マネージャ１３０は、資源発見(resource discovery、情報資源の発見）サービス１３２を有しており、その資源発見サービス１３２は、前記新たに配備されたコンピューティング・プラットフォーム１０２を、データ・センタ１００のうちの残りの部分に接続することを要求する(seek）システム管理者１５０にとって関心のある複数の資源（例えば、複数のサーバ１０４、複数のサービス１０６）を特定する(identify、識別する、他のものから区別する）ように構成されている。いくつかの実施態様においては、その資源発見サービス１３２が、コンピューティング・プラットフォーム１０２と、既存のデータ・センタ１００のうちの残りの部分との間の通信を可能にするように構成されることが必要であるネットワーク１０８の複数のネットワーク・スイッチおよび複数のブレード(blades、サーバ基板)を特定する(identify、識別する、他のものから区別する）かもしれない。本発明の文脈においては、前記資源発見サービスが、いくつかのＶＭおよびデータ・センタ１００内の他のいくつかのコンピューティング資源であって、想定されたマスタ・オートメーション・オブジェクトと互換性を有するものを特定する（identify、識別する）かもしれない。例えば、資源発見サービス１３２は、想定された仮想テンプレートにリンクされるかもしれないいくつかのＶＭを特定する(identify)ように構成されるかもしれない。この種のＶＭは、任意の適切な基準を用いて特定される（identify、識別される）かもしれない。
【００３９】
一実施態様においては、プラットフォーム・マネージャ１３０が、資源発見サービス１３３によって特定された前記いくつかの資源に基づいてインフラストラクチャ・テンプレート１３９を生成するように構成される。そのインフラストラクチャ・テンプレート１３９は、統合コンピューティング・プラットフォーム１０２がこれから配備されようとしている(being deploymed、配備中である）対象である既存のコンピューティング環境（例えば、データ・センタ１００）を記述する複数のインフラストラクチャ・パラメータを有する。それらインフラストラクチャ・パラメータであってインフラストラクチャ・テンプレート１３８によって特定されるもののいくつかの例としては、コンピューティング・プラットフォーム１０２のネットワーク１１４が、既存のデータ・センタ１００のネットワーク１０８との接続のために使用すべきである複数のＶＬＡＮ識別子と、データ・センタ１００内において動作するＤＮＳサーバの複数のＩＰアドレスと、コンピューティング・プラットフォーム１０２の複数のＶＭ１４０に割り当てられるべき複数のＩＰアドレス、複数のサブネット・マスクおよびゲートウェイＩＰアドレスの範囲(ＩＰアドレス範囲、サブネット・マスク範囲およびゲートウェイＩＰアドレス範囲）とがある。いくつかの実施態様においては、インフラストラクチャ・テンプレート１３８が、コンピューティング・プラットフォーム１０２内に配備されるあるアプリケーション(an application、１つのアプリケーション）に固有であるように発生させられるかもしれない。したがって、インフラストラクチャ・テンプレート１３８内に含まれる複数のインフラストラクチャ・パラメータは、コンピューティング・プラットフォーム１０２内において実行される前記アプリケーション(the application、今回のアプリケーション）によって要求される具体的な設定状態(configurations、設定状況、環境設定状態、構成態様、設定値、コンフィギュレーション値）、設定条件(settings、初期設定、パラメータなど)および情報を取り扱うかもしれない。
【００４０】
いくつかの実施態様においては、プラットフォーム・マネージャ１３０が、複数のインフラストラクチャ・テンプレート１３８が、コンバージド・インフラストラクチャ（例えば、コンピューティング・プラットフォーム１０２）の他の複数のインスタンス(instance、稼働・処理・実行を行う実体）間で容易に転送されることが可能となるように、それらインフラストラクチャ・テンプレート１３８のインポートおよびエクスポートを行うように構成されるかもしれない。プラットフォーム・マネージャ１３０は、さらに、コンピューティング・プラットフォーム１０２の既知の構成(configurations、設定状況、構成条件、コンフィギュレーションズ）および設定値(settings、設定条件、セッティングス)のバックアップと、既知のインフラストラクチャ・テンプレート１３８の実証および配備と、他のそのような管理的タスクの実行とを目的として、それらインフラストラクチャ・テンプレート１３８のインポートおよびエクスポートをも行うかもしれない。
【００４１】
一実施態様においては、プラットフォーム・マネージャ１３０が、資源設定(resource configuration、資源を設定する、資源を構成する、資源の内容を設定する）サービス１３４を、インフラストラクチャ・テンプレート１３８に基づいてコンピューティング・プラットフォーム１０２の複数の物理資源および複数の仮想資源を設定するために有する。例えば、資源設定サービス１３４は、コンバージド・インフラストラクチャ（例えば、コンピューティング・プラットフォーム１０２）と既存のデータ・センタ１００との間での通信を可能にするために、インフラストラクチャ・テンプレート１３８に基づいて前述の複数のネットワーク・スイッチおよび複数のブレードを設定するかもしれない。別の例においては、資源設定サービス１３４が、インフラストラクチャ・テンプレート１３８の複数のインフラストラクチャ・パラメータに基づき、コンピューティング・プラットフォーム１０２内において動作する複数のＶＭ１４０の複数のネットワーク・インタフェース・カード（ＮＩＣ）を設定するかもしれない。さらに、前記オートメーション・コンポーネント（the automation component、前記オートメーション・サービス・コンポーネント）が、仮想テンプレートとして指定される仮想マシンのネットワーク・インタフェースについてのいくつかの特定のパラメータ（例えば、ＤＮＳアドレス・セッティング）を設定するように用いられる場合に、このオートメーション・コンポーネントは、このような設定変更(a configuration change)を、リンクされる複数の仮想マシンより成る１つのグループにレプリケートするかもしれない。
【００４２】
例えば、図２は、マスタ・オートメーション・サービス２００を示しており、そのマスタ・オートメーション・サービス２００は、一実施態様に従い、マスタ・オブジェクト２０５に送出された変更オペレーションを、そのマスタ・オブジェクト２０５にリンクされる複数のコンピューティング資源２５０上にレプリケートするように構成されている。このマスタ・オートメーション・サービス２００は、ソフトウエア・アプリケーションを提供し、そのソフトウエア・アプリケーションは、マスタ・オブジェクト２０５として指定されるコンピューティング資源が何であるかを管理するとともに、データ・センタ内のコンピューティング資源２５０が何であって、そのコンピューティング資源２５０にレプリケートされるいくつかのオペレーション２２５が何であるかを管理するために用いられる。図示されているように、マスタ・オペレーション・サービス２００は、オブザーバ／インターセプタ・コンポーネント(observer/interceptor component、情報知得コンポーネント)２１５と、タスク・レプリケータ(task replicator)２２０とを有する。オブザーバ／インターセプタ・コンポーネント２１５は、オペレーション／コマンド２２５１の発生を検出するためにマスタ・オブジェクト２０５を監視するように構成されたソフトウエア・コンポーネントを提供する。例えば、オブザーバ／インターセプタ・コンポーネント２１５は、制御用メッセージ(control message)または制御用コマンド(control command)を特定する(identify、識別する）ために、マスタ・オートメーション・オブジェクト２０５に送出されたネットワーク・トラフィックを監視するように構成されるかもしれない。これに代えて（または、これに加えて）、オブザーバ／インターセプタ・コンポーネント２１５は、特定の構成設定値に対して行われる変更（例えば、前記ＤＮＳサーバのセッティングにおける変更）を検出するためにマスタ・オートメーション・コンポーネント２０５を監視するかもしれない。別の代替案として、マスタ・オートメーション・オブジェクト２０５上のプラグイン(plug-in)、デーモン（daemon、バックグラウンドプロセスとして動作するプログラム)または他のソフトウエア・エージェントが、監視されているセッティングにある変更が発生すると、オブザーバ／インターセプタ・コンポーネント２１５に信号を出力するように構成されるかもしれない。
【００４３】
オペレーション２２５についての他のいくつかの例であってコンポーネント２１５によってオブザーブ／インターセプトされるかもしれないものは、スナップショット・オペレーションを、データ・センタのコンピューティング資源２５０内の複数の仮想マシンより成る１つのグループに送出する工程と、複数の仮想マシンより成る１つのグループを、先行するスナップショットにリバートする工程と、ネットワーク構成のセッティングを更新する工程、例えば、データ・センタのコンピューティング資源２５０のためのＤＮＳセッティングを更新する工程と、複数のネットワーク・スイッチ内のＶＬＡＮのための共有属性を作成／設定する工程とを有する。さらに一般的に説明すると、マスタ・オブジェクト２０５に送出されるかまたはマスタ・オブジェクト２０５によって実行されることが可能な任意のコマンド（コマンドと称するか、オペレーションと称するか、構成設定作業（configuration setting)と称するか、その他の名称で称するかを問わない）が、データ・センタのコンピューティング資源２５０内の複数のコンピューティング資源より成る、対応する１つのグループにレプリケートされる候補である。したがって、複数のコマンドより成る前記特定の１つのセットは、特定の事例の必要性に適合するように個別に調整されるかもしれない。
【００４４】
一実施態様においては、オブザーバ／インターセプタ・コンポーネント(observer/interceptor component、情報知得コンポーネント、observer/interceptor)２１５が、あるオペレーション／コマンドがマスタ・オブジェクト２０５による実行が完了したかまたはマスタ・オブジェクト２０５への送出が完了した後、そのオブザーバ／インターセプタ・コンポーネント２１５が、同じコマンドを、タスク・レプリケータ・コンポーネント２２０に送出する。今度は、そのタスク・レプリケータ・コンポーネント(task replicator component、タスク・レプリケータ）２２０が、それと同じコマンドまたはオペレーションを、データ・センタの複数のコンピューティング資源２５０であってマスタ・オブジェクト２０５にリンクされるもののうちの１または複数のものに送出する（または実行する）。
【００４５】
例えば、マスタ・オートメーション・サービス２０５が、ＶＭインスタンス内において動作する仮想化ネットワーク・スイッチであるとともに、ユーザが、この仮想化ネットワーク・スイッチによって用いられるＤＮＳサーバ・アドレスの更新を行うためにあるオペレーションを実行する状況を想定する。オブザーバ／インターセプタ・コンポーネント(observer/interceptor component)２１５によって知得されると、前記更新は、データ・センタのコンピューティング資源２５０であって前記仮想化スイッチ（すなわち、マスタ・オブジェクト２０５）にリンクされるものにレプリケートされるべきものとして認識される。今度は、タスク・レプリケータ２２０が、レプリケートされたタスク２３０として図示されているように、前記ＤＮＳアドレスの更新を、ネットワーク・スイッチ２４０および２４５とコンピューティング・ホスト２３５１−２にレプリケートするためのオペレーションを実行する。注記すべきことは、この例においては、コンピューティング・ホスト２３５１−２に対して行われる更新が、コンピューティング・ホストによって用いられる物理構成を更新する工程と、コンピューティング・ホスト２３５１−２によってホスティングされる仮想化スイッチまたは複数の仮想マシン・インスタンスのための構成(a configuration)を更新する工程とを含むかもしれないということである。
【００４６】
さらに、オブザーバ／インターセプタ２１５およびタスク・レプリケータ(task replicator)２２０は、実行されるオペレーションが何であるかということと、発生する任意のエラー、例えば、タスク・レプリケータ２２０が、データ・センタの複数のコンピューティング資源２５０のうちのいずれか１つの上でＤＮＳサーバのアドレスを更新することが不可能であったことを示す印(an indication）とのログ(log、履歴、記録）を保存する(maintain、記憶する)かもしれない。さらに、一実施態様においては、データ・センタの複数のコンピューティング資源１５０のうちのいずれか１つが、それ自体、オートメーション・サービス２００によって監視されるマスタ・オブジェクトである。この種の事例においては、いくつかのオペレーションが、互いに異なる複数のマスタ・オートメーション・オブジェクトにリンクされる複数のコンピューティング資源より成る複数のグループに送出される(cascaded to)かもしれない。
【００４７】
図３は、仮想テンプレートとして用いられる仮想マシン・インスタンスの参考例であって、一実施態様に従うものを示しており、前記仮想テンプレートは、その仮想テンプレートにリンクされる複数の仮想マシン・インスタンスより成る１つのセットのためのものでる。さらに具体的には、図３は、図２のマスタ・オートメーション・サービス２００の一例を示しており、そのマスタ・オートメーション・サービス２００は、マスタ・オートメーション・オブジェクトとして指定された仮想マシンを用い、このマスタ・オートメーション・サービス２００においては、前記仮想マシンの構成(configuration)または状態(state）に対して行われる特定の変更が、その仮想マシンにリンクされる複数の仮想マシン３５０より成る１つのセットにレプリケートされる。
【００４８】
図示されているように、仮想テンプレート・サービス・ホスト３００が、物理（または仮想）コンピューティング・システム上で動作するソフトウエア・アプリケーションを提供する。この仮想テンプレート・サービス・ホスト３００は、概略的には、ユーザが、仮想マシンを仮想テンプレート３０５として指定し、複数のＶＭ３５０より成る１つのセットを仮想テンプレート３０５にリンクする（およびリンク解除する）ことが可能であるように構成されており、仮想テンプレート３０５に適用されるコマンドまたはオペレーションを検出するためにモニタ／オブザーブするために用いられる複数のコンポーネント。例えば、図示されているように、仮想テンプレート・サービス・ホスト３００は、オブザーバ／インターセプタ・コンポーネント(observer/interceptor component、情報知得コンポーネント)３１５と、コマンド・レプリケーション・コンポーネント３２０と、ログ３２５とを有する。
【００４９】
オブザーバ／インターセプタ・コンポーネント(observer/interceptor component)３１５は、仮想マシン３５０にレプリケートされるべき複数のオペレーションまたはコマンドより成る１つのセットであって選択されたものを検出するために、仮想テンプレート３０５として指定された仮想マシンを監視するように構成されたソフトウエアを提供する。例示すると、管理ツール３０２が、種々のオペレーションを仮想テンプレート３０５に対して実行するために用いられるかもしれない。例えば、管理ツール３０２は、いくつかの目的のために用いられるかもしれず、その目的は、仮想テンプレート３０５のスナップショットの作成（またはそのスナップショットへのリバート）、ネットワーク・インターフェース・コンポーネントの追加／削除、ドメインへの参加（または脱退）、仮想マシンのパワーオン／オフもしくはリブート(reboot、再起動)、コマンドをＶＭコンテナ(container)上で実行すること、もしくは、前記ゲスト・オペレーティング・システムの複数の構成要素を設定すること、または、動作しているＶＭを削除することにある。さらに概略的に説明すると、コンポーネント３１５によってインターセプトされた複数のコマンドは、ユーザにより、種々の方法で開始されるかもしれず、その種々の方法には、例えば、ＣＬＩインタラクション(interaction)、ファンクション・コール(function calls)、ＧＵＩを介した入力（マウスの動き／クリック）、プロシージャ・コール(procedure calls)、メッセージ・ハンドリング(message handling)、スクリプト・インプット／エグゼキューション／アウトプット(script input/execution/output)などがある。もちろん、複数のコマンドまたはオペレーションの特定のタイプまたはセットであって、前記リンクされる複数の仮想マシン３５０より成る前記１つのセットにレプリケートされるものは、個々の事例の要求に適合するように個別に調整されるかもしれない。
【００５０】
さらに、サービス・ホスト(the service host、前記仮想テンプレート・サービス・ホスト）３００は、さらに、仮想テンプレート３０５にリンクされることが可能である新規のＶＭを発見するようにも構成されるかもしれない。例えば、一実施態様においては、仮想テンプレート３０５が、１つ（または複数の）仮想マシン（ＶＭ）テンプレートにリンクされるかもしれない。注記すべきことは、この文脈においては、ＶＭテンプレート(VM template、仮想マシン・テンプレート）が、物理ホスト上でスポーンされる(spawned、前記ＶＭテンプレートのスポーンが作成される、元のテンプレートと同じ新規のテンプレートを作成する、複数の新規テンプレートを同時に発生させる）かもしれない仮想マシン・インスタンスのためのテンプレートを意味するということである。よって、ユーザは、想定されたＶＭテンプレート(VM template、仮想マシン・テンプレート）から仮想マシン・インスタンスを作成するとともに、最終的に発生する仮想マシン・インスタンスを、コマンド・レプリケーション(command replication)のための仮想テンプレート３０５として指定するかもしれない。ひとたび完了する(done、前記作成および前記指定が完了する）と、オブザーバ／インターセプタ・コンポーネント(observer/interceptor component)３１５は、新規の仮想マシン・インスタンスが同じＶＭテンプレート(VM template、仮想マシン・テンプレート）からスポーンされる(spawned、前記仮想マシン・インスタンスのスポーンが作成される）タイミングを特定し、その新規のＶＭインスタンスは、仮想テンプレート３０５にリンクされるべきであると推奨する（または、オブザーバ／インターセプタ・コンポーネント３１５が自動的に新規のインスタンスを仮想テンプレート３０５にリンクする）かもしれない。一実施態様においては、この種の仮想マシン・インスタンスが、任意の後続するコマンド(any subsequent commands)であってオブザーバ／インターセプタ・コンポーネント３１５によって監視されるとともに当該仮想マシン・インスタンスにレプリケートされるものを有するかもしれない。しかし、これに代えて、新規の仮想マシン・インスタンスがスポーンされ(spawned、前記仮想マシン・インスタンスのスポーンが作成され）、それが、複数の仮想マシン３５０より成る前記１つのセットに追加されると、オブザーバ／インターセプタ・コンポーネント３１５は、任意の、先行して適用されたコマンド／オペレーション(any previously applied commands/operation)であって仮想テンプレート３０５に適用されるものをレプリケートするかもしれない（例えば、ログ３２５を消去する（parse)することにより）。
【００５１】
ひとたびオブザーバ／インターセプタ・コンポーネント(observer/interceptor component)３１５が、管理ツール３０２から仮想マシン・テンプレート３０５に送出されたコマンド／オペレーション(command/operation、コマンドおよび／またはオペレーション）を知得すると、そのオブザーバ／インターセプタ・コンポーネント３１５は、前記コマンド／オペレーションをコマンド・レプリケーション・コンポーネント３２０に送出する。今度は、そのコマンド・レプリケーション・コンポーネント３２０が、前記リンクされる複数の仮想マシン３３０を特定し、前記コマンドを、上述の各仮想マシン３３０上に送出し（または、各仮想マシン３３０上で前記オペレーションを実行し）、そのときのコマンドは、図３において、レプリケートされたコマンド３４０として示されている。加えて、コマンド・レプリケーション・コンポーネント３２０は、前記複数の仮想マシン３３０のうちのいずれか１つにレプリケートされた各コマンド／オペレーションの成功（または失敗）を記録するかもしれない。
【００５２】
図４は、この書類に開示されているものの一実施態様に従い、マスタ・オブジェクトが、構成および／または状態の変更を、前記マスタ・オブジェクトにリンクされる複数のコンピューティング資源より成る１つのセットにレプリケートするために用いられるように、前記マスタ・オブジェクトを構成する(configure、設定する）方法４００を示している。図示されているように、この方法４００は、ステップ４０５において開始され、そのステップ４０５においては、当該オートメーション・サービスが、コマンド・レプリケーションを行うために、あるコンピューティング資源を仮想テンプレートとして指定するために前記コンピューティング資源を特定する(identify、識別する）。例えば、ユーザは、コマンド・レプリケーションを行うためにある仮想マシン・インスタンスを前記仮想テンプレートとして作用させるためにその仮想マシン・インスタンスを選択する（または、新規の仮想マシン・インスタンスをスポーンする(spawned、前記仮想マシン・インスタンスのスポーンを作成する）ために、当該オートメーション・サービスによって提供される前記ソフトウエアと対話するかもしれない。注記したように、仮想マシン・インスタンスに加えて、データ・センタ内の他のインフラストラクチャであって例えばスイッチまたはルータ（仮想的であるか物理的であるかを問わない）のようなものが、コマンド・レプリケーションを行うために、マスタ・オブジェクトとして指定されるかもしれない。
【００５３】
ステップ４１０において、前記ユーザが、複数の仮想マシン（および／または他のコンピューティング資源）より成る１つのグループ（１つのコンピュータ資源群）を前記マスタ・オブジェクトにリンクさせるために、前記１つのグループを特定する。これに代えて（または、これに加えて）、前記発見サービス(the discovery service、前記資源発見サービス）は、複数の候補仮想マシン・インスタンスより成る１つのセットを前記仮想テンプレートにリンクさせるために、前記１つのセットを特定するかもしれない。ステップ４１５において、前記ユーザが、ステップ４０５において指定された前記マスタ・オブジェクト上で実行されるかもしれない複数のオペレーション、複数のコマンド、複数の構成設定値(configuration setting values)または他の複数のアクションより成る１つのセットを特定するかもしれず、その１つのセットは、ステップ４１０において特定された、複数のコンピューティング資源より成る前記１つのセット(the set、前記１つのグループ、前記１つのコンピュータ資源群）にレプリケートされるべきものである。ステップ４２０において、当該オートメーション・サービスが、ステップ４１５において特定されたコマンド、オペレーション、その他同様のもののうちの任意のものの出現を検出するように前記マスタ・オブジェクトを監視するかもしれない。例えば、前述のように、インターセプタ／オブザーバ・コンポーネントが、管理ツールまたは設定ツールから送信された複数のコマンドの出現を検出するように仮想テンプレートを監視するかもしれない。さらに、ひとたびオブザーブされる(observed、前記コマンドがオブザーブされる、知得される、検出される）と、前記コマンドは、コマンド・レプリケーション・コンポーネントに送出され、そのコマンド・レプリケーション・コンポーネントにおいては、今度は、前記コマンドを、前記マスタ・オブジェクトにリンクされる複数のコンピューティング資源のうちの１または複数のものにレプリケートする（例えば、前記コマンドを、マスタ・オブジェクトにリンクされる複数の仮想マシンより成る１つのセットにレプリケートする）。
【００５４】
図５は、一実施態様に従い、マスタ・オブジェクトに対して行われた変更を、そのマスタ・オブジェクトにリンクされる複数のコンピューティング資源より成る１つのグループにレプリケートする方法５００を示している。この方法５００は、図４に示されている方法４００のうちのステップ４２０についての具体例を示している。
【００５５】
図示されているように、方法５００は、ステップ５０５から開始され、そのステップ５０５においては、前記オブザーバ／インターセプタ・コンポーネント(observer/interceptor component、情報知得コンポーネント)が、仮想テンプレートとして指定された仮想マシン・インスタンスに送出された（または、指定された他のマスタ・オブジェクトに送出された）コマンドの出現を検出するように監視する。前記仮想テンプレートに送出されたコマンド（または他のオペレーション）を監視した後、ステップ５１５において、前記オブザーバ／インターセプタ・コンポーネントが、前記コマンドが、前記仮想テンプレートにリンクされる１または複数のオブジェクト、例えば、前記仮想テンプレートにリンクされる複数の仮想マシンより成る１つのセットにレプリケートされるべきものであるか否かを判定する。その判定が肯定的であれば、前記オブザーバ／インターセプタ・コンポーネントが、前記コマンドを前記コマンド・レプリケーション・コンポーネントに送出する。今度は、ステップ５２０において、前記オブザーバ／インターセプタ・コンポーネントが、前記コマンドを、リンクされる各仮想マシン（または、他のコンピューティング資源）にレプリケートする。ステップ５２５において、当該オートメーション・サービスは、前記コマンドが各仮想マシンにレプリケートされることが成功したか否かを判定する。ステップ５２５の判定が否定的であれば、例外(exception、プログラムの実行時に発生するエラー）またはエラー(error、構文エラーなど）が提起される(raised)か、または、前記ログに記入される。ステップ５２５の判定が肯定的であれば、当該オートメーション・サービスは、リンクされる各仮想マシン（または、他のコンピューティング資源）へのレプリケーションの実行が成功したことを反映する記入事項(entry、エントリー、印）を前記ログ内に記録するかもしれない。その後、方法５００は、ステップ５１０に戻り、そのステップ５１０においては、当該オートメーション・サービスが、引き続き、レプリケートされるべき追加のコマンドの出現を検出するように前記仮想テンプレートを監視する。
【００５６】
有利なことに，前述のように、本発明のいくつかの実施態様により、仮想マシン・インスタンス（ＶＭ)およびデータ・センタ内の他のシステムを管理するメカニズムが提供される。一実施態様においては、ユーザが、コンピューティング・デバイスまたはコンピューティング資源を、マスタ・オートメーション・オブジェクトとして指定する。その後、その管理者は、前記マスタ・オブジェクトと、複数の物理および／または仮想コンピューティング資源より成る１つのセットであって、指定された複数のコマンドまたは設定用オペレーション（configuration operation)より成る１つのセットであって前記マスタ・オブジェクトに送出されたもののレプリケーションを行うべきものとの間の関連付け(an association）を確立する。その後、オートメーション・サービスが、前記マスタ・オブジェクトに送出されたコマンド（または前記マスタ・オブジェクト上で実行されたオペレーション）をインターセプト／オブザーブする(intercept/observe、知得する）とともに、そのインターセプト／オブザーブされたコマンドを、前記マスタ・オブジェクトにリンクされる各コンピューティング・デバイスに送出する。
【００５７】
この書類に開示されているものの種々の実施態様は、コンピュータ・システムと共に使用されるプログラム・プロダクトとして実現することが可能である。そのプログラム・プロダクトのうちの１または複数のプログラムは、前記種々の実施態様の複数の機能（この書類の記載されている複数の方法を含む）を定義し、また、種々のコンピュータ読み取り可能な記録媒体上に格納されることが可能である。例示的なコンピュータ読み取り可能な記録媒体としては、（ｉ）書換え不能な記録媒体（例えば、コンピュータ内のＲＯＭデバイスであって、ＣＤ−ＲＯＭドライブによって読み取り可能なＣＤ−ＲＯＭディスク、フラッシュ・メモリ、ＲＯＭチップまたは他の任意の形式の固体非不揮発半導体メモリ）であって、情報が永久に保存されるもの、および（ｉｉ）書換え可能な記録媒体（例えば、ハードディスク・ドライブ、ＵＳＢフラッシュ・メモリ・デバイスなど）であって、編集可能な情報が保存されるものがあるが、それらに限定されない。
【００５８】
本発明が、これまで具体的ないくつかの実施態様を参照して説明されてきており、多数の具体的な細部が、本発明のより完全な理解のために記述されている。しかし、当業者であれば、種々の改良および変更を、本発明のより広範な主旨および範囲から逸脱することなく、それら実施態様に施すことが可能であることが理解される。したがって、上述の文章による説明および複数の図面は、限定的な意味で考慮されるのではなく例示的な意味で考慮されるべきである。
【００５９】
これまでの説明は、この書類に開示されているもののいくつかの実施態様に向けられているが、この書類に開示されているものに対する別のおよび更なるいくつかの実施態様を、この書類に開示されているものの基本的な範囲から逸脱することなく、想起することが可能であり、また、この書類に開示されているものの範囲は、後述の特許請求の範囲の記載によって決まる。
【図１】
2016507100.tif 000003
【図２】
2016507100.tif 000004
【図３】
2016507100.tif 000005
【図４】
2016507100.tif 000006
【図５】
2016507100.tif 000007
【国際調査報告】
2016507100.tif 000008
2016507100.tif 000009
2016507100.tif 000010