(57)【要約】      （修正有）【課題】ユーザ要求に応答してリソースポリシーに基づいてリソースを管理して割当てるための技術を提供する。【解決手段】リソース管理システムは、サービスの要求を受信する。要求は、サービスを可能にするための割当てリソースについてのプリファレンスを示す。リソース定義は、ユーザに割当てるべきコンピューティングリソースのトポロジを示す。要求によって示される情報に基づいて、リソース管理システムは、要求によって示されたコンピューティングリソースの割当てのための配置ポリシーを決定する。配置ポリシーは、ユーザが要求した１つ以上のコンピューティングリソースの配置を示す。配置ポリシーは、コンピューティングリソースが割当てられるとコンピューティングリソースがどこでどのように配置されるべきかを示す。コンピューティングリソースは、配置ポリシーおよびリソース定義に基づいて割当てられる。【選択図】図５
2020098621.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
サービスの要求を受信することと、
前記要求に基づいて複数のコンピューティングリソースの定義をコンピュータシステムによって特定することとを備え、前記定義は、前記複数のコンピューティングリソースについての１つ以上の特性を示し、前記方法はさらに、
前記複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを前記コンピュータシステムによって決定することと、
前記配置ポリシーおよび前記定義を用いて、リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースを割当てることとを備え、前記リソースインフラストラクチャシステムは１つ以上のデータセンターを含む、方法。
【請求項２】
前記要求は前記定義を含み、前記定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、前記仮想マシン定義は１セットの仮想マシンを特定する、請求項１に記載の方法。
【請求項３】
前記要求は、前記複数のコンピューティングリソースを使用するためのサービスのタイプを示し、前記定義は前記サービスのタイプに基づいて特定される、請求項１または２に記載の方法。
【請求項４】
前記定義は、前記複数のコンピューティングリソースを用いてデプロイメントのためのサービスに基づいて特定される、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記配置コンフィギュレーションに従って、前記リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースの配置を確立することをさらに備え、前記配置コンフィギュレーションは、前記複数のリソースの配置が確立される地理的位置を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記配置コンフィギュレーションは複数のグループを示し、前記配置コンフィギュレーションは、前記複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、前記複数のコンピューティングリソースのうちの第１のコンピューティングリソースが前記配置コンフィギュレーションに基づいて前記第１のグループに割当てられる、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記配置コンフィギュレーションは、他のコンピューティングリソースによる前記複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースをサポートするために前記ハイパーバイザに割当てられる１セットの仮想マシンをさらに示す、請求項７に記載の方法。
【請求項９】
前記配置コンフィギュレーションはパフォーマンスコンフィギュレーションを含み、前記パフォーマンスコンフィギュレーションは、第１のハイパーバイザに割当てられる第１のコンピューティングリソースを示し、かつ、第２のハイパーバイザに割当てられる第２のコンピューティングリソースを示し、前記複数のコンピューティングリソースは前記第１のコンピューティングリソースおよび前記第２のコンピューティングリソースを含む、
請求項１から８のいずれか一項に記載の方法。
【請求項１０】
システムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されて前記１つ以上のプロセッサが読取可能なメモリとを備え、前記メモリは１セットの命令を格納するように構成され、前記命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
サービスの要求を受信させ、
前記要求に基づいて複数のコンピューティングリソースの定義を特定させ、前記定義は、前記複数のコンピューティングリソースについての１つ以上の特性を示し、さらに、
前記複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを決定させ、
前記配置ポリシーおよび前記定義を用いて、リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースを割当てさせ、前記リソースインフラストラクチャシステムは１つ以上のデータセンターを含む、システム。
【請求項１１】
前記リソースインフラストラクチャシステムをさらに備える、請求項１０に記載のシステム。
【請求項１２】
前記要求は前記定義を含み、前記定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、前記仮想マシン定義は１セットの仮想マシンを特定する、請求項１０または１１に記載のシステム。
【請求項１３】
前記要求は、前記複数のコンピューティングリソースを使用するためのサービスのタイプを示し、前記定義は前記サービスのタイプに基づいて特定される、請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記配置コンフィギュレーションは複数のグループを示し、前記配置コンフィギュレーションは、前記複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、前記複数のコンピューティングリソースのうちの第１のコンピューティングリソースが前記配置コンフィギュレーションに基づいて前記第１のグループに割当てられる、請求項１０から１３のいずれか一項に記載のシステム。
【請求項１５】
前記配置コンフィギュレーションは、他のコンピューティングリソースによる前記複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す、請求項１０から１４のいずれか一項に記載のシステム。
【請求項１６】
１セットの命令が格納されている非一時的なコンピュータ読取可能媒体であって、前記命令は、１つ以上のプロセッサによって実行可能であり、前記１つ以上のプロセッサに、
サービスの要求を受信させ、
前記要求に基づいて複数のコンピューティングリソースの定義をコンピュータシステムによって特定させ、前記定義は、前記複数のコンピューティングリソースについての１つ以上の特性を示し、さらに、
前記複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを前記コンピュータシステムによって決定させ、
前記配置ポリシーおよび前記定義を用いて、リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースを割当てさせ、前記リソースインフラストラクチャシステムは１つ以上のデータセンターを含む、非一時的なコンピュータ読取可
能媒体。
【請求項１７】
前記要求は前記定義を含み、前記定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、前記仮想マシン定義は１セットの仮想マシンを特定する、請求項１６に記載の非一時的なコンピュータ読取可能媒体。
【請求項１８】
前記要求は、前記複数のコンピューティングリソースを使用するためのサービスのタイプを示し、前記定義は前記サービスのタイプに基づいて特定される、請求項１６または１７に記載の非一時的なコンピュータ読取可能媒体。
【請求項１９】
前記配置コンフィギュレーションは複数のグループを示し、前記配置コンフィギュレーションは、前記複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、前記複数のコンピューティングリソースのうちの第１のコンピューティングリソースが前記配置コンフィギュレーションに基づいて前記第１のグループに割当てられる、請求項１６から１８のいずれか一項に記載の非一時的なコンピュータ読取可能媒体。
【請求項２０】
前記配置コンフィギュレーションは、他のコンピューティングリソースによる前記複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す、請求項１６から１９のいずれか一項に記載の非一時的なコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１４年８月８日に出願され「RESOURCE MANAGEMENT AND ALLOCATION SYSTEM（リソース管理および割当てシステム）」と題された米国仮出願番号第６２／０３５，
３７０号に基づく利益および優先権を主張する、２０１５年８月６日に出願され「PLACEMENT POLICY-BASED ALLOCATION OF COMPUTING RESOURCES（コンピューティングリソースの配置ポリシーベースの割当て）」と題された米国非仮特許出願番号第１４／８１９，９２２号に基づく利益および優先権を主張する。上記の特許出願の内容全体を、すべての目的のために本明細書に引用により援用する。
【背景技術】
【０００２】
背景
本開示は概してコンピューティングインフラストラクチャシステムに関し、より特定的には、ユーザ要求に応答してリソースポリシーに基づいてリソースを管理して割当てることに関する。
【０００３】
クラウドコンピューティング環境などの分散コンピューティング環境は、最小限の管理努力またはサービスのプロバイダとのインタラクションで迅速にプロビジョニングおよびリリースされ得るコンピューティングリソース（たとえばネットワーク、ネットワーク帯域幅、サーバ、ＰＯＤ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス等）の共有プールに対する簡便なオンデマンドのネットワークアクセスを可能にするためのサービス配信のモデルである。プロバイダは、分散コンピューティング環境を介してさまざまなサービスを提供し得る。これらのサービスは、サービスとしてのソフトウェア（Software as a Service：ＳａａＳ）カテゴリ、サービスとしてのプラットフォー
ム（Platform as a Service：ＰａａＳ）カテゴリ、サービスとしてのインフラストラク
チャ（Infrastructure as a Service：ＩａａＳ）カテゴリ、またはその他の、ハイブリ
ッドサービスを含むサービスのカテゴリの下で提供される１つ以上のサービスを含み得る。
【０００４】
ユーザ（たとえば顧客またはクライアント）は、オーダーまたはサービスサブスクリプションを介して、分散コンピューティング環境によって提供されるサービスの１つ以上をオーダーし得る。次いで、分散コンピューティング環境は、ユーザのサブスクリプションオーダー内に要求されたサービスを提供するために処理（たとえばプロビジョニング、管理、および追跡）を実行する。典型的に、プロバイダ（たとえばクラウドサービスプロバイダ）が１つ以上のサービスにサブスクライブするオーダーまたはサービスサブスクリプションを受信すると、分散コンピューティング環境は、１つ以上のサービスについてのコンピューティングリソースを、要求を行っているユーザに対してプロビジョニングする、または割当てる。しかし、要求を行っているユーザは、コンピューティングリソースがどのようにプロビジョニングされるかに対する制御を有していない。これらの課題は、自動化、パフォーマンス、および使用性の問題を提起し得、これらの問題には、コンピューティングリソースをプロビジョニングする、または割当てる既存の分散コンピューティング環境によって容易に対処することができない。
【０００５】
ＩａａＳサービスプロバイダの場合、コンピューティングリソース（たとえばネットワーク、サーバ、ストレージ、アプリケーション、およびサービス）の要求がクライアントから受信され得、対応するコンピューティングリソースがコンピューティングリソースのプールから要求側に戻される。しかし、ユーザは、コンピューティングリソースの位置に
ついての、またはコンピューティングリソースが（たとえば地理に基づいて、もしくはマシンレベルで）どのようにグループ化されるかに対する制御を有していない。これらの課題は、セキュリティ、パフォーマンス、および分離の問題を提起し得、これらの問題には、リソースを提供する既存のシステムによって容易に対処することができない。
【０００６】
ＩａａＳプロバイダの中には、それらのリソースのうちのいずれか１つが要求されてクリーンアップされる（たとえばリソースプールに戻される）たびに、一般にともに使用されるリソースを予め作成し、リソースをグループでプロビジョニングするものもある。しかし、これらのグループは統計的に定義されており、変化するリソース需要に適応できない場合があり、まだ使用されていないリソースのプロビジョニングおよびクリーンアップを引起こす場合がある。
【発明の概要】
【０００７】
簡単な概要
本開示は概して、リソースの管理およびプロビジョニングを向上させることに関する。リソースは、ユーザが要求したサービスに対して提供され得る。ユーザ要求に基づいてコンピューティングリソースを管理およびプロビジョニングするための特定の技術が開示される。ユーザ要求に基づいて、リソースのプロビジョニングおよびコンフィギュレーションを決定するためにポリシーが特定され得る。そのような技術は、インフラストラクチャセットアップ時間を減らすかなくすために、反復可能な複雑な統合を自動化するために、人間の介入を回避するために、かつコンピューティングリソースのより良い管理および使用性を提供するために実現され得る。
【０００８】
いくつかの実施形態では、本発明は、コンピューティングリソース（たとえばネットワーク、ネットワーク帯域幅、サーバ、ＰＯＤ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス等）のプロビジョニングをポリシーに基づいてある程度制御する能力をユーザに提供する。ポリシーはサービスを要求するためのユーザプリファレンスに基づいて選択され得、これは特有のコンピューティングリソースの要求を含み得る。たとえば、ユーザは、リソースがプロビジョニングされる地理的位置を規定する能力を有し得；サービスがマルチテナントサービスである（たとえば、同一のリソースが２人の別のユーザによって共有され得る）場合、ユーザは、当該ユーザがリソースを共有したくないことを示す能力を有し得；サービスがマルチテナントサービスである場合、ユーザは、特定のテナントに対するアフィニティを示す能力を有し得（たとえば、ユーザは自身がテナントＸとリソースを共有したいことを示す能力を有し得）、または対照的に、ユーザは、自身が特定のテナントと共有したくないことを示す能力を有し得；ユーザは、サービスについての別個のＰＯＤプロビジョニングおよびサービスプロビジョニングを制御する能力を有し得る；等である。
【０００９】
いくつかの実施形態では、要求を受信することができるリソース管理システムが開示される。要求は、１つ以上のサービスのサブスクリプションオーダーに対応し得る。要求は、サービスに対して提供されるリソースを割当てるためのユーザプリファレンスを示し得る。いくつかの実施形態では、要求は、コンピューティングリソースをユーザに割当てるためのリソース定義を示す情報を含み得る。リソース定義は、ユーザに割当てるべきコンピューティングリソースのトポロジを示し得る。トポロジは、どのコンピューティングリソースを割当てるべきか、およびどのようにそれらのコンピューティングリソースを割当てるべきかを示し得る。要求によって示される情報に基づいて、リソース管理システムは、要求によって示されたコンピューティングリソースの割当てのための配置ポリシーを決定し得る。配置ポリシーは、ユーザが要求した１つ以上のコンピューティングリソースの配置を示し得る。配置ポリシーは、コンピューティングリソースが割当てられるとコンピューティングリソースがどこでどのように配置されるべきかを示し得る。
【００１０】
いくつかの実施形態では、要求は、さらにまたは代替的に、コンピューティングリソースの配置を決定するための配置コンフィギュレーションを含み得る。配置コンフィギュレーションは、地理的位置、マルチテナント環境におけるテナントからの特定のコンピューティングリソースの分離、マルチテナント環境におけるテナントとのコンピューティングリソースの共有、コンピューティングリソースの物理的コンフィギュレーション、および１つ以上のコンピューティングリソースユニットへのコンピューティングリソースの論理編成などの、コンピューティングリソースの配置を示し得る。
【００１１】
リソース管理システムによって、ユーザは、コンピューティングリソースのユーザに関連する要因に基づいてコンピューティングリソースの割当てを要求することができる。旧来のシステムでは、ユーザは、セキュリティの考慮事項（たとえばリソースもしくは環境の共有）、パフォーマンスの考慮事項（たとえば仮想マシンへのハイパーバイザの割当て）、ユーザ特有のプリファレンス、または地理的な考慮事項（たとえばパフォーマンスを向上させるためのコンピューティングリソースの地理的位置）などのユーザに関連した特性に基づいてコンピューティングリソースの割当てを要求することができない場合があった。本発明の実施形態は、ユーザのニーズに基づいてコンピューティングリソースの割当ておよび管理に関連するこれらおよび他の問題に対処する。
【００１２】
いくつかの実施形態では、配置ポリシーベースのリソース割当てはコンピューティングシステムによって実現され得る。コンピューティングシステムは、リソース管理システムの一部であり得る。コンピューティングシステムは、本明細書に記載される方法および動作を実現するように構成され得る。さらに他の実施形態はシステムおよび機械読取可能な有形の記憶媒体に関し、これらは本明細書に記載される方法および動作のための命令を利用または格納している。
【００１３】
少なくとも一実施形態において、方法は、サービスの要求を受信することを含み得る。方法は、要求に基づいて複数のコンピューティングリソースの定義を特定することを含み得る。方法は、複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを決定することを含み得る。方法は、配置ポリシーおよび定義を用いて、リソースインフラストラクチャシステムにおいて複数のコンピューティングリソースを割当てることを含み得る。リソースインフラストラクチャシステムは１つ以上のデータセンターを含み得る。
【００１４】
特定の実施形態では、要求は定義を含み得る。定義は、コンピューティングリソースの１つ以上のタイプと、コンピューティングリソースのタイプの各々の量とを示し得る。定義は、プロセッサ定義、メモリ定義、仮想マシン定義、またはこれらの組み合わせを含み得る。仮想マシン定義は１セットの仮想マシンを特定し得る。
【００１５】
特定の実施形態では、要求は、複数のコンピューティングリソースを使用するためのサービスのタイプを示し得る。定義はサービスのタイプに基づいて特定され得る。たとえば、定義は、複数のコンピューティングリソースを用いてデプロイメントのためのサービスに基づいて特定される。
【００１６】
いくつかの実施形態では、方法は、配置コンフィギュレーションに従って、リソースインフラストラクチャシステムにおいて複数のコンピューティングリソースの配置を確立することを含み得る。配置コンフィギュレーションは、ユーザが要求したコンピューティングリソースの配置についての特性を含み得る。たとえば、配置コンフィギュレーションは、複数のリソースの配置が確立される地理的位置を含み得る。いくつかの実施形態では、配置コンフィギュレーションは、コンピューティングリソースの１つ以上のグループを示
し得る。たとえば、配置コンフィギュレーションは、複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定する。複数のコンピューティングリソースのうちの第１のコンピューティングリソースが、配置コンフィギュレーションに基づいて第１のグループに割当てられる。いくつかの実施形態では、配置コンフィギュレーションは、他のコンピューティングリソースによる複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み得る。たとえば、セキュリティコンフィギュレーションは、複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示し得る。セキュリティコンフィギュレーションは、複数のコンピューティングリソースをサポートするためにハイパーバイザに割当てられる１セットの仮想マシンを示し得る。別の例では、配置コンフィギュレーションはパフォーマンスコンフィギュレーションを含む。パフォーマンスコンフィギュレーションは、第１のハイパーバイザに割当てられる第１のコンピューティングリソースを示し得、かつ、第２のハイパーバイザに割当てられる第２のコンピューティングリソースを示し得る。複数のコンピューティングリソースは、第１のコンピューティングリソースおよび第２のコンピューティングリソースを含む。
【００１７】
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１Ａ】本発明の実施形態に係るクラウドインフラストラクチャシステムの論理図である。
【図１Ｂ】本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理システムの簡略図である。
【図２】本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理の例を表わす図である。
【図３】本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理のためのシステムのより詳細な高レベルの図である。
【図４】本発明のいくつかの実施形態に係る１つ以上のコンピューティングリソースの定義を格納するためのデータ構造の例を表わす図である。
【図５】本発明の実施形態に係る配置ポリシーベースのリソース割当てのプロセスを示すフローチャートの図である。
【図６】本発明の実施形態に係る配置ポリシーベースのリソース割当てのプロセスを示すフローチャートの図である。
【図７】実施形態を実現するための分散システムの簡略図である。
【図８】本開示の実施形態に従う、サービスがクラウドサービスとして供給され得るシステム環境の１つ以上のコンポーネントの簡略化したブロック図である。
【図９】本発明の実施形態を実現するために用いられ得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１９】
詳細な説明
以下の説明では、本発明の実施形態が十分に理解されるようにするために、説明の目的で具体的詳細を記載する。しかし、これらの具体的詳細がなくてもさまざまな実施形態を実施できることは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【００２０】
本開示は概して、ユーザプリファレンスに基づいてコンピューティングリソースを管理して割当てることに関する。この開示の目的のために、コンピューティングリソースの管理および割当ては、少なくとも一部は、クラウドコンピューティング環境などの分散コン
ピューティング環境のサービスプロバイダによって提供される１つ以上のサービスにサブスクライブする１つ以上のサブスクリプションオーダーに応答して実行されると仮定する。いくつかの実施形態は、サービスとしてのソフトウェア（ＳａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）、サービスとしてのインフラストラクチャ（ＩａａＳ）を含むサービスモデルの下で提供されるコンピューティングリソースの管理および割当てに関して本明細書に開示されているが、これは限定的であるよう意図されるものではない。ＳａａＳ、ＰａａＳおよびＩａａＳに加えて、本明細書に開示される教示は他のサービスモデルにも適用可能である。たとえば、教示は、コンピューティングリソース（たとえばネットワーク、ネットワーク帯域幅、サーバ、ＰＯＤ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス等）の共有プールに対する簡便なオンデマンドのネットワークアクセスを可能にするためのサービス配信の任意のモデルに適用可能である。
【００２１】
特定の実施形態では、クラウドコンピューティング環境などの分散コンピューティング環境は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様でユーザに与えられる一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。クラウドコンピューティング環境は、クラウドコンピューティング環境においてサービスおよびリソースのユーザのサブスクリプションをプロビジョニング、管理および追跡する機能、クラウドコンピューティング環境においてサービスを利用するユーザに予測可能な作業費用を提供する機能、クラウドコンピューティング環境においてユーザのデータのロバストなアイデンティティドメインの分離および保護を提供する機能、クラウドコンピューティング環境の設計の透過的なアーキテクチャおよび制御をユーザに提供する機能、データ保護の保証とデータプライバシ基準および規制の順守とをユーザに提供する機能、クラウドコンピューティング環境においてサービスを構築およびデプロイするための統合された開発経験をユーザに提供する機能、ならびにクラウドコンピューティング環境においてビジネスソフトウェア、ミドルウェア、データベースおよびインフラストラクチャサービスの間のシームレスな統合をユーザに提供する機能を含むがこれらに限定されるものではない多くの機能を提供することができる。
【００２２】
特定の実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストアおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどの、クラウドコンピューティング環境のユーザがオンデマンドで利用できるようにされる多数のサービスを含み得る。クラウドコンピューティング環境によって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドコンピューティング環境によって提供されるサービスの具体的なインスタンス化は、本明細書ではサービスインスタンスと称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザが利用できるようにされるサービスはいずれも、クラウドサービスと称される。典型的に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、ユーザ自身のオンプレミスサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションをオーダーし、使用し得る。
【００２３】
コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダによってユーザに提供されるかまたはそうでなければ当該技術分野において公知のストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、または他のサービスへの保護されたコンピュータネットワークアクセスを含む。
たとえば、サービスは、インターネットを介したクラウド上のリモートストレージへの、パスワードによって保護されたアクセスを含んでいてもよい。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含んでいてもよい。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含んでいてもよい。
【００２４】
図１Ａは、本発明のいくつかの実施形態に係るクラウドコンピューティング環境１０の論理図である。クラウドコンピューティング環境１０は、クラウドまたはネットワーク化された環境を介してさまざまなサービスを提供し得る。これらのサービスは、ＳａａＳ、ＰａａＳ、ＩａａＳ、またはその他の、ハイブリッドサービスを含むサービスのカテゴリの下で提供される１つ以上のサービスを含み得る。ユーザは、サブスクリプションオーダーを介して、クラウドコンピューティング環境１０によって提供される１つ以上のサービスをオーダーし得る。次いで、クラウドコンピューティング環境１０は、ユーザのサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
【００２５】
クラウドコンピューティング環境１０は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、サービスはパブリッククラウドモデルの下で提供されてもよく、パブリッククラウドモデルでは、クラウドコンピューティング環境１０が（たとえばオラクルが所有する）クラウドサービスを販売する組織によって所有され、サービスは一般的な公営企業またはさまざまな産業企業が利用できるようにされる。別の例として、サービスはプライベートクラウドモデルの下で提供されてもよく、プライベートクラウドモデルでは、クラウドコンピューティング環境１０が単一の組織のために単独で運営され、当該組織内の１つ以上のエンティティにサービスを提供することができる。また、クラウドサービスはコミュニティクラウドモデルの下で提供されてもよく、コミュニティクラウドモデルでは、クラウドインフラストラクチャシステム１００およびクラウドコンピューティング環境１０によって提供されるサービスが関連のコミュニティの中のいくつかの組織によって共有される。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【００２６】
図１Ａに示されるように、クラウドコンピューティング環境１０は、クラウドコンピューティング環境１０によって提供されるサービスのプロビジョニングを可能にする、連携して動作する複数のコンポーネントを含み得る。図１Ａに示される実施形態では、クラウドコンピューティング環境１０は、ＳａａＳプラットフォーム１５と、ＰａａＳプラットフォーム２０と、ＩａａＳプラットフォーム２５と、インフラストラクチャリソース３０と、クラウド管理機能３５とを含む。これらのコンポーネントは、ハードウェアまたはソフトウェアまたはそれらの組み合わせで実現されてもよい。
【００２７】
ＳａａＳプラットフォーム１５は、ＳａａＳカテゴリに分類されるクラウドサービスを提供するように構成される。たとえば、ＳａａＳプラットフォーム１５は、統合された開発およびデプロイメントプラットフォーム上で一連のオンデマンドのアプリケーションを構築および供給する機能を提供し得る。ＳａａＳプラットフォーム１５は、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。ＳａａＳプラットフォーム１５によって提供されるサービスを利用することによって、ユーザは、クラウドコンピューティング環境１０上で実行されるアプリケーションを利用することができる。ユーザは、ユーザが別個のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。
【００２８】
さまざまな異なるＳａａＳサービスが提供され得る。例としては、大規模組織に販売実績管理、企業統合およびビジネスの柔軟性などのためのソリューションを提供するサービ
スが挙げられるが、これらに限定されるものではない。一実施形態では、ＳａａＳサービスは、ユーザ関係管理（UserRelationship Management：ＣＲＭ）サービス４０（たとえ
ばオラクルクラウドによって提供されるフュージョンＣＲＭサービス）、人材管理（Human Capital Management：ＨＣＭ）／才能管理サービス４５などを含んでいてもよい。ＣＲＭサービス４０は、ユーザへの販売活動サイクルの報告および管理に向けられるサービスなどを含んでいてもよい。ＨＣＭ／才能サービス４５は、ユーザへのグローバルな労働力ライフサイクル管理および才能管理サービスの提供に向けられるサービスを含んでいてもよい。
【００２９】
標準化された、共有の、弾性的にスケーラブルなアプリケーション開発およびデプロイメントプラットフォームにおけるＰａａＳプラットフォーム２０によって、さまざまな異なるＰａａＳサービスが提供され得る。ＰａａＳサービスの例としては、共有される共通のアーキテクチャ上で既存のアプリケーションを（オラクルなどの）組織が集約することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する能力が挙げられ得るが、これらに限定されるものではない。ＰａａＳプラットフォーム２０は、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。ユーザは、ユーザが別個のライセンスおよびサポートを購入する必要なく、クラウドコンピューティング環境１０によって提供されるＰａａＳサービスを取得することができる。ＰａａＳサービスの例としては、オラクルＪａｖａ（登録商標）クラウドサービス（Java Cloud Service：ＪＣＳ）、オラクルデータベースクラウドサービス（Oracle Database Cloud Service：ＤＢＣＳ）などが挙げられるが、これらに限定されるものではない。
【００３０】
ＰａａＳプラットフォーム２０によって提供されるサービスを利用することによって、ユーザは、クラウドコンピューティング環境１０によってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態では、クラウドコンピューティング環境１０によって提供されるＰａａＳサービスは、データベースクラウドサービス５０と、ミドルウェアクラウドサービス（たとえばオラクルフュージョンミドルウェアサービス）５５と、Ｊａｖａクラウドサービス６０とを含んでいてもよい。一実施形態では、データベースクラウドサービス５０は、組織がデータベースリソースをプールし、データベースクラウドの形態でデータベース・アズ・ア・サービスをユーザに供給することを可能にする共有のサービスデプロイメントモデルをサポートし得、ミドルウェアクラウドサービス５５は、さまざまなビジネスアプリケーションを開発およびデプロイするためにユーザにプラットフォームを提供し、Ｊａｖａクラウドサービス６０は、クラウドコンピューティング環境１０においてＪａｖａアプリケーションをデプロイするためにユーザにプラットフォームを提供する。図１Ａに示されるＳａａＳプラットフォーム１５およびＰａａＳプラットフォーム２０におけるコンポーネントは、単に例示の目的で示されており、本発明の実施形態の範囲を限定することを意図したものではない。代替的な実施形態では、ＳａａＳプラットフォーム１５およびＰａａＳプラットフォーム２０は、クラウドコンピューティング環境１０のユーザに追加のサービスを提供するための追加のコンポーネントを含んでいてもよい。
【００３１】
ＩａａＳプラットフォーム２０によってさまざまな異なるＩａａＳサービスが提供され得る。ＩａａＳサービスは、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用するユーザのために、ストレージ、ネットワークおよび他の基礎的なコンピューティングリソースなどの基本的なコンピューティングリソースの管理および制御を容易にする。
【００３２】
特定の実施形態では、クラウドコンピューティング環境１０は、クラウドコンピューティング環境１０のユーザにさまざまなサービスを提供するために使用されるリソースを提
供するためのインフラストラクチャリソース３０を含む。一実施形態では、インフラストラクチャリソース３０は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するために、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め作成された、最適化された組み合わせ（たとえばグループまたはセット）を含む。
【００３３】
特定の実施形態では、クラウド管理機能３５は、クラウドコンピューティング環境１０においてクラウドサービス（たとえばＳａａＳ、ＰａａＳ、ＩａａＳサービス）の包括的な管理を提供する。一実施形態では、クラウド管理機能３５は、クラウドインフラストラクチャシステム１０によって受信されたユーザのオーダーまたはサブスクリプションをプロビジョニング、管理および追跡するための機能などを含む。
【００３４】
配置ポリシーベースのリソース割当ておよび管理システムのための、システム、方法、および機械読取可能媒体などのいくつかの実施形態が開示される。図１Ｂは、本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理システム１００の簡略図を表わす。システム１００は、コンピューティングリソースの割当ておよび管理を取扱うリソース管理システム１４０を含み得る。いくつかの実施形態では、システム１００は、たとえばクラウドコンピューティング環境１０などのクラウドコンピューティング環境において実現され得る。リソース管理システム１４０は、クラウンドコンピューティング環境と通信してもよいし、またはクラウドコンピューティング環境において実現されてもよい。リソース管理システム１４０は、クラウドまたはネットワーク化された環境を介してサービスを提供し得る。たとえば、リソース管理システム１４０は、クラウドコンピューティング環境１０の一部としてサービスを提供し得る。いくつかの実施形態では、コンピューティングリソースの管理およびプロビジョニングのために、クラウドコンピューティング環境１０は、サービスの要求に基づいてリソースを割当てるようにリソース管理システム１４０に要求し得る。リソースは、ユーザが示したプリファレンスに基づいて割当てられ得る。
【００３５】
コンピューティングリソースは、処理ユニット（たとえば１つのプロセッサ、複数のプロセッサ、またはマルチコアプロセッサ）、メモリ、１つの仮想マシン、ハイパーバイザ、ネットワーク、ネットワーク帯域幅、サーバ、ＰＯＤ、ストレージ、アプリケーション、複数の仮想マシン、サービス、または他のタイプのコンピューティングリソースを含み得るが、これらに限定されるものではない。ＰＯＤは、以下のうちの１つを表わし得る論理エンティティである：（Ｊａｖａサービスの場合と同様に）予めプロビジョニングされた匿名のシングルテナントデプロイメント；または、（データベースサービスの場合と同様に）複数のテナントをサーブするマルチテナントスタック（物理的または仮想的）。たとえば、ＰＯＤは物理的なスタック上へのサービスのデプロイメントである。ＰＯＤは１つ以上のサービスインスタンスを収容することができる。ＰＯＤは先験的に作成することができるか、または、サービスインスタンスが所与の顧客のために作成されるときにオンデマンドで作成することができる。いくつかの例では、ＰＯＤは、サービスを実行させるためのソフトウェアスタックのインスタンス化である。このため、ＰＯＤを用いてサービスを実行する。たとえば、Ｊａｖａサービスに対応するＰＯＤは仮想マシンのスタックを含んでいてもよい。別の例として、データベースサービスのためのＰＯＤは、データベースのインスタンスを含んでいてもよい。ＰＯＤは、サービスをホストすることのできるサブシステムと見なされてもよい。異なるＰＯＤを異なるサービスのために用いてもよい。
【００３６】
コンピューティングリソースは、コンピューティングリソースの１つ以上のグループに割当てられ得る。コンピューティングリソースの各グループは、本明細書において「コンピューティングリソースユニット」と称される場合がある。図１Ｂは、コンピューティングリソースユニット１０２、１０４、１０６、１０８、１１０、１１２、１１４、１１６
、１１８および１２０の例を示す。各コンピューティングリソースユニットは１つ以上のコンピューティングリソースを含み得る。コンピューティングリソースは、１つ以上のコンピューティングリソースユニットに割当てられ得る。コンピューティングリソースは１つ以上のデータセンターにおいて割当てられ得、データセンターの各々は異なる地理的領域内に位置し得る。各地理的領域は、それら地理的位置との通信を提供する１つ以上のネットワークによって分離され得る。たとえば、コンピューティングリソースユニット１０２、１０４、１０６はネットワーク１２２を介してアクセス可能な英国のデータセンター１５０内に位置し得、コンピューティングリソースユニット１０８はネットワーク１２４を介してアクセス可能な中国のデータセンター１６０内に位置し得、コンピューティングリソースユニット１１８、１２０はネットワーク１２６を介してアクセス可能なインドのデータセンター１８０内に位置し得、コンピューティングリソースユニット１１０、１１２、１１４、１１６はネットワーク１２８を介してアクセス可能な米国のデータセンター１７０内に位置し得る。
【００３７】
ＩａａＳ、ＳａａＳおよびＰａａＳプロバイダなどの旧来のサービスプロバイダは、プロバイダにとって最も費用効果の高い態様でリソースをプロビジョニングして割当てるものであり、ユーザは、ユーザのニーズに最良に適合するようにリソースがどのようにまたはどこでプロビジョニングされるかを規定することはできない。多くの先行技術のシステムは、たとえば、オンデマンドでリソースを提供するという点で反応的である。そのようなシステムでは、リソースは、需要、容量、パフォーマンス、および可用性を含む要因に基づいて割当てられ得る。しかし、これらのシステムは、現在のデマンドに基づいて要求を予想せず、またはリソースのセットを特定および提供しない。さらに、先行技術のシステムでは、ユーザは、コンピューティングリソースのユーザに関連する要因に基づいてコンピューティングリソースの割当てを要求することができない。たとえば、既存のシステムでは、ユーザは、セキュリティの考慮事項（たとえばテナントとのリソースもしくは環境の共有）、パフォーマンスの考慮事項（たとえば仮想マシンへのハイパーバイザの割当て）、ユーザ特有のプリファレンス、または地理的な考慮事項（たとえばパフォーマンスを向上させるためのコンピューティングリソースの地理的位置）に基づいてコンピューティングリソースの割当てを要求することができない場合がある。本発明の実施形態は、ユーザのニーズに基づいてコンピューティングリソースの割当ておよび管理に関連するこれらおよび他の問題に対処する。
【００３８】
リソース管理システム１４０は、図１に示されるコンピューティングリソースへのアクセスをエンドユーザ（たとえば顧客１３０）に提供し得る。たとえば、図１に示されるように、リソース管理システム１４０はユーザ（たとえば顧客１３０）から要求（たとえばリソース要求１３２）を受信することができる。要求は１つ以上のコンピューティングリソースを示す。いくつかの実施形態では、要求は、ＩａａＳ、ＰａａＳおよび／またはＳａａＳの１つ以上のサービスのオーダーまたはサービスサブスクリプションに対応し得るか、または当該オーダーまたはサービスサブスクリプションを含み得る。
【００３９】
要求は、コンピューティングリソースをユーザに割当てるためのリソース定義を示す情報を含み得る。リソースは、ユーザが要求したサービスに基づいてユーザに割当てられ得る。いくつかの実施形態では、要求は、リソース定義に基づくなどして、ユーザに割当てるべきリソースを示し得る。リソース定義は、ユーザに割当てるべきコンピューティングリソースのトポロジを示し得る。トポロジは、どのコンピューティングリソースを割当てるべきか、およびどのようにそれらのコンピューティングリソースを割当てるべきかを示し得る。いくつかの実施形態では、要求は、それらのコンピューティングリソースの配置を決定するための配置コンフィギュレーションを含み得る。配置コンフィギュレーションは、地理的位置、特定のコンピューティングリソースの分離、テナントとのコンピューティングリソースの共有、テナントからのコンピューティングリソースの分離、コンピュー
ティングリソースの物理的コンフィギュレーション、および１つ以上のコンピューティングリソースユニットへのコンピューティングリソースの論理編成などの、コンピューティングリソースの配置を示し得る。
【００４０】
要求によって示された情報に基づいて、リソース管理システム１４０は、要求によって示されたコンピューティングリソースを割当てるための配置ポリシーを決定し得る。配置ポリシーは、たとえばリソース定義などの、要求に含まれている情報に基づいて選択され得る。配置ポリシーは、ユーザが要求した１つ以上のコンピューティングリソースの配置を示し得る。配置ポリシーは、コンピューティングリソースが割当てられるとコンピューティングリソースがどこでどのように配置されるべきかを示し得る。
【００４１】
次に図２を参照して、本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理の例が表わされている。上述のように、典型的なＰａａＳ、ＳａａＳおよびＩａａＳプロバイダでは、ユーザは、自身が要求したコンピューティングリソースのどれが、どのように、どこでプロビジョニングされるかを定義することができない場合がある。代わりに、コンピューティングリソースは典型的に、それらのコンピューティングリソースのプロバイダに基づいて割当てられる。割当ては、プロバイダにとって最も費用効果の高い何らかの態様で起こり得る。しかし、プロバイダによるコンピューティングリソースの割当ては、ユーザにとって最も望ましいものでない場合があり、または、ユーザに最良のユーザ経験を提供しない場合がある。
【００４２】
本発明の実施形態は、ユーザが自身の要求に対する配置ポリシーを定義できるようにすることによって、ファイングレインのリソース割当て機能をユーザに与える。これは、コンピューティングリソースの選択のみでなく、リソースのコンフィギュレーションに対するさらに他の制御をユーザに与えることによって、いくつかの利点をユーザに提供し得る。ユーザが自身のリソースのコンフィギュレーションを制御できるようにすることによって、そのようなリソースのユーザの効率もさらに向上させることができる。
【００４３】
コンピューティングリソースのコンフィギュレーションを可能にすることがそれらのリソースの使用に有益であり得る例は数多くある。たとえば、ユーザは、特にデータが他のユーザのデータと同一のコンピューティングノード上に格納され得る場合、自身のデータのセキュリティに懸念を抱き得る。プロバイダはデータセキュリティについての保証を提供し得るが、そのような保証では不十分なユーザがいる場合もある。ユーザは代わりに、自身のコンピューティングノードを、その他のユーザ（たとえばテナント）と共有しない（たとえば専用である）こと、または他のユーザ（たとえばテナント）と共有することを望む場合がある。ユーザは、コンピューティングリソースを異なる物理システム、データセンター、および／または地理的領域に分離することを要求する、さらに一歩進んだ保護を望む場合がある。いくつかの例では、ユーザは、他のテナントがリソースにアクセス不可能なテナントベースのレベルでのコンピューティングリソースの分離を望む場合がある。
【００４４】
別の例では、ユーザは特定のパフォーマンスまたは冗長要件を有し得る。ユーザは、パフォーマンス要件が確実に満たされているようにするためにコンピューティングリソースのコンフィギュレーションを定義することを好む場合がある。この例では、ユーザはリソース割当てのためのコンフィギュレーションを具体的に定義することを望む場合があり、この場合、コンフィギュレーションはコンピューティングリソースの配列を示す。
【００４５】
ファイングレインのリソース割当てを可能にするために、本発明の実施形態は、ユーザのニーズに対応するようにユーザが複数の配置ポリシーから定義および／または選択することを可能にする。本明細書における配置ポリシーとは、コンピューティングリソースが
ユーザにどのように割当てられるかを定義する規則を指す。配置ポリシーは、いくつかの異なる要因に基づいてリソースの割当てを示し得る。
【００４６】
パフォーマンスが問題である場合、配置ポリシーは、コンピューティングリソースが１つのハイパーバイザまたは１セットのハイパーバイザ上で実行されるようにグループ化され得るように定義され得る。そのような配置ポリシーは、旧来のリソース割当て方法と比較して、ネットワーク通信および要求／応答時間を改善する（たとえばネットワーキング層への呼出を減少させる）ように選択され得、それによってリソースは、コスト効率化のために異なるハイパーバイザ同士またはハイパーバイザのセット同士の間で分配され得る。別の例では、共有のストレージリソースは、パフォーマンスを向上させるために、その関連付けられたコンピュートノードと同一の１つのハイパーバイザまたは１セットのハイパーバイザにおいて最良に割当てられ得る。上述のように、セキュリティの懸念は、専用のハイパーバイザ上でリソースを実行することによって対処され得る。これを用いて、異なるユーザ同士の間の、または別個に維持される必要がある同一のユーザによって制御されるデータのセット同士の間の悪意のアクセスまたは不注意なアクセスからデータを保護することができる。同様に、地理的制約（たとえばリソースをホストするデータセンターの位置についての限定）も、特定のセキュリティ、パフォーマンス、または規制要件を満たすように提供され得る。加えて、特定のリソースを別個のハイパーバイザまたはハイパーバイザのセット上で実行することによって、分離および／または冗長性が維持され得る。これを用いて、（たとえばダウンタイムを減少させるために）他のリソースに影響を及ぼすことなく、故障した場合にデータを保存すること、または、１セットのリソースに対して管理、事務、またはインフラストラクチャ操作（パッチングなど）を実行することができる。いくつかの実施形態では、企業デザイン、統合要件、または他の機能要件は、コンポーネントが同一のハイパーバイザ（たとえばＳＤＩ）の範囲内でのみ相互運用可能であることを要求し得る。
【００４７】
配置ポリシーの例としては、割当てられたリソースが、１セットのハイパーバイザに対して配置された仮想マシン上で実行される、専用のハイパーバイザポリシーが挙げられる。この１セットのハイパーバイザは、それらが他のユーザと共有されないという点で専用である。ベストフィット配置ポリシーによって仮想マシンが１セットのハイパーバイザに割当てられて、コンピューティングリソース利用が最適化され得る。たとえば、１セットのハイパーバイザは、リソースを節約し、リソース利用を最大化し、フラグメンテーションを減少させるために、または他のリソース最適化のために、必要に応じて他のユーザと共有され（かつ、他のリソースを実行し）得る。いくつかの実施形態では、配置ポリシーがユーザによって規定されない場合は、ベストフィット配置ポリシーはデフォルトで選択され得る。コンピューティングリソースの特定の部分がともに実行されるべきである場合は、グループフィット配置ポリシーが使用され得る。仮想マシンはともにグループ化され、同一のハイパーバイザプール内の１つ以上のハイパーバイザ上で実行され得る。配置ポリシーは必要に応じてユーザによってカスタマイズされ、上述の、またはその他の配置ポリシーの１つ以上からの特徴を組込むハイブリッド配置ポリシーが作成され得る。
【００４８】
図２に示されるように、ユーザ２０２は、リソース要求２０４をリソース管理システム１４０に提出し得る。リソース要求２０４は、要求されるコンピューティングリソースのトポロジを定義する定義２０６を含み得る。たとえば、定義２０６は、コンピューティングリソースの１つ以上のタイプと、コンピューティングリソースのタイプの各々の量とを示し得る。定義は、プロセッサ定義、メモリ定義、仮想マシン定義、またはこれらの組み合わせを含み得る。仮想マシン定義は、１セットの仮想マシンを特定し得る。定義２０６は、メモリ、ＣＰＵの数、ストレージ要件、およびユーザが要求した他の仕様などの、個別のコンピュートノードを定義し得る。たとえば、定義２０６内に示されるように、リソース要求２０４は９個の仮想マシンを含み、その各々が独自の仕様（たとえばメモリ、Ｃ
ＰＵの数、およびストレージ）を有している。９個の仮想マシンは、グループ１が３個を含み、グループ２が２個を含み、残りの４個の仮想マシンがグループ化されないように、グループ化される。この定義は、要求された仮想マシンの一部に対して２つのグループが規定されており、残りの仮想マシンにベストフィットポリシーが適用され得るという点で、ハイブリッド配置ポリシーを表わしている。
【００４９】
特定の実施形態では、要求は、複数のコンピューティングリソースを使用するためのサービスのタイプを示し得る。定義はサービスのタイプに基づいて特定され得る。たとえば、定義は、複数のコンピューティングリソースを用いてデプロイメントのためのサービスに基づいて特定される。
【００５０】
定義に基づいて、要求されたリソースが、たとえばリソースプール２０８などのリソースインフラストラクチャシステムによって割当てられ得る。リソースプール２０８は１つ以上のデータセンターを含み得るか、または当該データセンターを用いて実現され得る。いくつかの実施形態では、リソースプール２０８は、サービスプロバイダ（たとえばＩａａＳプロバイダ）によって管理されるハイパーバイザプールであり得る。いくつかの実施形態では、リソースプール２０８は、複数のリモートデータセンターにわたって分散している複数のリソースプールを含み得る。以下にさらに図３を参照して、リソース管理システム１４０の文脈でリソースプールを説明する。複数のコンピューティングリソースの配置は、配置コンフィギュレーションに従ってリソースプール２０８において確立され得る。配置コンフィギュレーションは、ユーザが要求したコンピューティングリソースの配置についての特性を含み得る。
【００５１】
一例では、配置コンフィギュレーションは、複数のリソースの配置が確立される地理的位置を含み得る。いくつかの実施形態では、配置コンフィギュレーションはコンピューティングリソースの１つ以上のグループを示し得る。たとえば、配置コンフィギュレーションは、複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定する。複数のコンピューティングリソースのうちの第１のコンピューティングリソースは、配置コンフィギュレーションに基づいてこの第１のグループに割当てられる。
【００５２】
いくつかの実施形態では、配置コンフィギュレーションは、他のコンピューティングリソースによる複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み得る。たとえば、セキュリティコンフィギュレーションは、複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示し得る。セキュリティコンフィギュレーションは、複数のコンピューティングリソースをサポートするためにハイパーバイザに割当てられる１セットの仮想マシンを示し得る。別の例では、配置コンフィギュレーションはパフォーマンスコンフィギュレーションを含む。パフォーマンスコンフィギュレーションは、第１のハイパーバイザに割当てられる第１のコンピューティングリソースを示し得、かつ、第２のハイパーバイザに割当てられる第２のコンピューティングリソースを示し得る。複数のコンピューティングリソースは、第１のコンピューティングリソースおよび第２のコンピューティングリソースを含む。
【００５３】
図３は、本発明の実施形態に係る配置ポリシーベースのリソース割当ておよび管理のためのシステム３００のより詳細な高レベルの図を表わす。図３に示されるように、ユーザは、コンピュータ（たとえばユーザコンピュータ３０２）を用いてリソース管理システム１４０と通信してリソース要求３０４を送信し得る。リソース要求３０４は、割当てのための１つ以上のコンピューティングリソースの情報を示し得る。少なくとも一実施形態において、リソース要求３０４は、ユーザが要求した１つ以上のコンピューティングリソースを示す定義（たとえばリソース定義３３２）を含み得る。いくつかの実施形態では、リ
ソース要求３０４は、リソース定義によって示されるコンピューティングリソースの割当てのための配置（たとえば物理的位置）についての情報を特定する配置コンフィギュレーション３３４を含み得る。たとえば、配置は、１つ以上のコンピューティングリソースユニットの地理的位置および／または定義を含み得る。リソース要求３０４内の情報を用いて、リソース定義３３２によって特定されるそれらのコンピューティングリソースについての配置ポリシーが決定され得る。
【００５４】
リソース管理システム１４０は、コンピュータシステムを用いて実現され得る。コンピュータシステムは、汎用コンピュータ、専用サーバコンピュータ（一例として、ＰＣサーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバ等を含む）、サーバファーム、サーバクラスタ、分散サーバ、またはその他の適切な配置および／もしくはそれらの組み合わせであり得る１つ以上のコンピュータおよび／またはサーバを含み得る。コンピュータシステムは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、Ｊａｖａサーバ、データベースサーバなどを含む、オペレーティングシステムまたはさまざまな追加のサーバアプリケーションおよび／もしくはミッドティアアプリケーションのいずれかを実行し得る。例示的なデータベースサーバとしては、オラクル、マイクロソフトなどから市販されているものが挙げられるが、これらに限定されるものではない。リソース管理システム１４０は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせを用いて実現され得る。さまざまな実施形態において、リソース管理システム１４０は、上記の開示において記載した１つ以上のサービスまたはソフトウェアアプリケーションを実行するように構成され得る。たとえば、リソース管理システム１４０は、本開示の実施形態に従って本明細書に記載されるような処理を実行するためのコンピューティングシステムに対応し得る。いくつかの実施形態では、リソース管理システム１４０は、上述したものを含み得る１つ以上のコンピュータおよび／またはサーバを含むクラウドインフラストラクチャシステムを用いて実現され得る。
【００５５】
リソース管理システム１４０は、いくつかのサブシステムおよび／またはモジュールを含んでいてもよく、そのいくつかは図示されていない場合がある。リソース管理システム１４０は、図に示されるよりも多いまたは少ないサブシステムおよび／またはモジュールを有していてもよく、２つ以上のサブシステムおよび／もしくはモジュールを組み合わせてもよく、または、サブシステムおよび／もしくはモジュールの異なるコンフィギュレーションもしくは配列を有していてもよい。いくつかの実施形態では、リソース管理システム１４０は、リソース要求インターフェイス３０８と、リソース割当てモジュール３１８と、ポリシーマネージャ３１２とを含み得る。ポリシーマネージャ３１２はポリシー更新モジュール３２８を含み得る。リソース管理システム１４０のサブシステムおよびモジュールは、ソフトウェア（たとえばプログラムコード、プロセッサによって実行可能な命令）で、ハードウェアで、またはこれらの組み合わせで実現され得る。いくつかの実施形態では、ソフトウェアはメモリ（たとえば非一時的なコンピュータ読取可能媒体）内に、メモリデバイス上に、または何らかの他の物理メモリ上に格納され得、１つ以上の処理ユニット（たとえば１つ以上のプロセッサ、１つ以上のプロセッサコア、１つ以上のＧＰＵ等）によって実行され得る。
【００５６】
リソース管理システム１４０は、仮想または非仮想コンピューティング環境において他のサービスおよび／またはソフトウェアアプリケーションを提供し得る。リソース管理システム１４０は、これまでの開示に記載したこれらのサービスまたはソフトウェアアプリケーションの１つ以上を実行するように構成され得る。リソース管理システム１４０によって供給されるサービスは、ＳａａＳサービス、ＰａａＳサービスおよびＩａａＳサービスを含み得るが、これらに限定されるものではない。クライアントシステムがリソース管理システム１４０に通信可能に連結され得る。サービスは、インターネットなどの通信ネ
ットワークを介してアクセス可能であり得る。クライアントシステムを操作するユーザは１つ以上のアプリケーションを使用してリソース管理システム１４０と対話し、リソース管理システム１４０によって提供されるサービスにアクセスし得る。
【００５７】
リソース管理システム１４０は、少なくとも１つのメモリ、１つ以上の処理ユニット（またはプロセッサ）、およびストレージを含み得る。処理ユニットは、ハードウェア、コンピュータ実行可能命令、ファームウェア、またはこれらの組み合わせで適宜実現され得る。処理ユニットのコンピュータ実行可能命令またはファームウェア実装例は、本明細書に記載されるさまざまな動作、機能、方法、および／または処理を実行するために任意の好適なプログラミング言語で書かれたコンピュータ実行可能またはマシン実行可能命令を含み得る。リソース管理システム１４０内のメモリは、処理ユニット上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行時に生成されるデータとを格納し得る。メモリは、揮発性（ランダムアクセスメモリ（ＲＡＭ）など）および／または不揮発性（読取専用メモリ（ＲＯＭ）、フラッシュメモリなど）であり得る。メモリは、コンピュータ読取可能記憶媒体などの任意の種類の永続記憶装置を用いて実現され得る。いくつかの実施形態では、コンピュータ読取可能記憶媒体は、悪意のあるコードを含む電子通信からコンピュータを保護するように構成され得る。コンピュータ読取可能記憶媒体は、プロセッサによって実行されると本明細書に記載される動作を実行する命令を格納し得る。
【００５８】
リソース管理システム１４０は追加のストレージを含み得るか、または当該ストレージに結合され得、当該ストレージは、メモリ記憶装置または他の非一時的なコンピュータ読取可能記憶媒体などの、任意の種類の永続記憶装置を用いて実現され得る。いくつかの実施形態では、ローカルストレージは、１つ以上のデータベース（たとえば文書データベース、リレーショナルデータベース、もしくは他のタイプのデータベース）、１つ以上のファイルストア、１つ以上のファイルシステム、またはこれらの組み合わせを含み得るか、または実現し得る。メモリおよび追加のストレージはすべて、コンピュータ読取可能記憶媒体の例である。たとえば、コンピュータ読取可能記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実現される揮発性または不揮発性の、リムーバブルまたは非リムーバブルな媒体を含み得る。いくつかの実施形態では、リソース管理システム１４０は、ポリシー定義３２０（「ポリシー定義」）のためのデータストアなどの１つ以上のデータストアに結合され得るか、または当該データストアを含み得る。ポリシー定義３２０は、配置ポリシー３２６およびリソース定義３２２を含み得る。
【００５９】
いくつかの実施形態では、リソース管理システム１４０は、たとえばリソースプール３１０などの１つ以上のリソースプールへのアクセスを含み得るか、または提供し得る。リソースプール３１０は、リソースインフラストラクチャシステムによってサポートされ得る。リソースインフラストラクチャシステムは、リソース管理システム１４０によって実現され得るか、またはリソースプール３１０を実現する第三者プロバイダからアクセスされ得る。リソースインフラストラクチャシステムは、ＩａａＳサービスとして実現され得る。リソースプール３１０は、リソース管理システム１４０によって管理されるか、またはリソース管理システム１４０がアクセス可能な１つ以上のデータセンターを用いて実現され得る。リソースプール３１０は、１つ以上のコンピューティングリソースへのアクセスを提供し得る。リソース割当てモジュール３１８は、リソースプール３１０によって提供されるコンピューティングリソースの割当ておよび管理のためのサポートを提供し得る。
【００６０】
リソースプール３１０内のコンピューティングリソースにアクセスするための１つ以上のインデックスが維持され得る。インデックスは、特定のデータセンターにおいてどのリ
ソースが現在利用可能であるか、および／または各データセンターがどのリソースを提供可能であるかを示し得る。たとえば、データセンターインデックス３１４は、接続された各データセンターにおいていくつのハイパーバイザが利用可能であるか、ならびに、それらのハイパーバイザが専用の配置ポリシーについて共有および／または使用され得るか否かを示し得る。同様に、リソースインデックス３１６は、現在利用可能なアプリケーションサーバ、ＲＡＣノード、ストレージノードなどの、どの既存のリソースが任意の所与のデータセンターにおいて利用可能であるかを示し得る。
【００６１】
リソース管理システム１４０は、リソース要求インターフェイス３０８を介してリソース要求（たとえばリソース要求３０４）を受信し得る。リソース要求インターフェイス３０８は、クライアントシステム（たとえば、異なるユーザと関連付けられたクライアントおよび／または同一のユーザと関連付けられた複数のクライアントシステム）の複数のインスタンスと通信得る。いくつかの実施形態では、リソース要求インターフェイス３０８は、ユーザコンピュータ３０２とリソース管理システム１４０との間の通信を容易にするために１つ以上の通信プロトコル（たとえばウェブベースの通信プロトコル）を用いて通信をサポートし得る。いくつかの実施形態では、リソース要求インターフェイス３０８は、プログラミングインターフェイス（たとえばアプリケーションプログラミングインターフェイス（ＡＰＩ））によって定義され得る。プログラミングインターフェイスは、リソースプール３１０からのコンピューティングリソースを要求するための呼出可能機能を含み得る。
【００６２】
リソース要求インターフェイス３０８は、ユーザが要求したコンピューティングリソースを割当てるために、リソース要求をポリシーマネージャ３１２およびリソースプール３１０に通信し得る。リソースプール３１０は、リソース管理システム１４０によって管理される１つ以上のデータセンターにおける１つ以上のリソースプールにアクセスするためのインターフェイスの役割を果たし得る。ポリシーマネージャ３１２は、どのコンピューティングリソースが要求されているか、かつ、１つ以上のリソースプールにおけるコンピューティングリソースを割当てるための配置ポリシーが存在する場合は、どの配置ポリシーに従って要求されているかを決定し得る。ポリシーマネージャ３１２は、リソース割当てモジュール３１８と通信して、配置ポリシーに基づいてリソースの割当てを要求し得る。
【００６３】
ポリシーマネージャ３１２は、１つ以上のポリシー定義３２０を用いてコンピューティングリソースの割当ておよび配置を管理し得る。ポリシー定義は、１つ以上の配置ポリシー３２６および１つ以上のリソース定義３２２を含み得る。配置ポリシーは、コンピューティングリソースをどのように構成するかを示す情報を含み得る。リソース定義は、コンピューティングリソースの１つ以上のタイプと、割当てるべきコンピューティングリソースのタイプの各々の数とを示し得る。リソース定義の例を図４を参照して以下に説明する。リソース定義に割当てられるコンピューティングリソースは、それらのリソースの配置のために決定された配置ポリシーに従って「配置され」得るか、または構成され得る。ポリシー定義は、配置ポリシーに対するリソース定義の関係に基づいて配置ポリシーが特定され得るように、配置ポリシーと１つ以上のリソース定義との関係を示し得る。ポリシー定義は、配置ポリシーと、リソース要求を満たすリソース定義とに基づいて選択され得る。
【００６４】
配置ポリシー３２６の１つ以上は、地理的位置についてのプリファレンス、コンピューティングリソースについてのセキュリティ（たとえば許可されたユーザもしくはテナント）、リソースの分離、コンピューティングリソースの１つ以上のグループ化、または仮想マシンへのハイパーバイザの割当て、といったユーザからの入力に基づいて構成され得る。配置ポリシー３２６の一部は、コンピューティングリソースの配置のより頻繁なまたは
一般的なタイプに基づいて定義され得る。配置ポリシーの例としては、とりわけ、ベストフィット配置ポリシー、分離配置ポリシー、セキュリティ配置ポリシー、およびパフォーマンス配置ポリシーなどの上述したものが挙げられ得る。たとえば、パフォーマンス配置ポリシーは、２つの異なるハイパーバイザとは対照的に単一のハイパーバイザについてのコンピューティングノードのコンフィギュレーションを示し得る。別の例では、セキュリティ配置ポリシーは、リソースプール３１０によって提供される単一のリソースプール内のコンピューティングリソースのコンフィギュレーションを示し得、リソースプールは他のユーザから分離されている。別の例では、分離配置ポリシーは、他のユーザに割当てられたコンピューティングリソースと共有されない単一のリソースプールに分離された１セットのハイパーバイザ上にグループ化されるコンピューティングノードのコンフィギュレーションを示し得る。
【００６５】
いくつかの実施形態では、配置ポリシーは、ユーザからのリソース要求内に提供された、たとえば配置コンフィギュレーション３３４などの配置コンフィギュレーションに基づいて定義され得る。配置コンフィギュレーション３３４は、セキュリティプリファレンス（たとえば、他のユーザと共有されないセキュアなリソースプールへのリソースの割当て）、分離プリファレンス（たとえば、他のリソースプールから切離された特定のプールへのコンピューティングリソースの割当て）、パフォーマンスプリファレンス（たとえば、リソースの特定の数）、または地理的プリファレンス（たとえば、リソースの地理的位置）といった、コンピューティングリソースの配置のための１つ以上のプリファレンスを示す情報を含み得る。
【００６６】
リソース定義３２２の１つ以上は、ユーザから受信した情報に基づいて構成され得る。いくつかの実施形態では、リソース定義は、ユーザコンピュータ３０２を操作するユーザなどのユーザによって構成され得る。リソース定義はコンピューティングリソースの１つ以上の特性を示し得る。たとえば、リソース定義は、リソースのタイプと、割当てるべきリソースの各タイプの量とを示し得る。リソースのタイプは、要求されるサービスに基づいて示され得る。いくつかの実施形態では、リソース定義は、検査、開発、製造などの使用のタイプ毎に構成され得る。リソース定義は、リソース要求３０４内に受信した入力に基づいてリソース定義３２２から選択され得る。リソース要求は、使用のタイプ、またはコンピューティングリソースの使用に関連する１つ以上の属性を示し得、リソース要求内の情報を用いて、要求と一致する１つ以上のリソース定義が特定され得る。いくつかの実施形態では、リソース定義は、たとえばリソース要求３３０内に受信したリソース定義３３２などのリソース定義に基づいて定義され得る。
【００６７】
いくつかの実施形態では、ポリシーマネージャ３１２は、リソース要求３３０に対するリソース定義３２２の中から１つのリソース定義を特定し得る。上述したように、リソース要求３３０はリソース定義を特定するのに有用な情報を含み得る。いくつかの例では、リソース要求３３０はリソース定義の識別子を含み得、当該リソース定義を用いて識別子に基づいてリソース定義が特定され得る。いくつかの実施形態では、リソース定義は、リソース要求３３０内に示されるコンピューティングリソースに対する１つ以上の基準に基づいて特定され得る。基準は、リソースの数、要求されるサービスのタイプ（たとえばデプロイメントのためのサービス）、リソースのタイプ、または使用のタイプ（たとえば製造、開発、もしくは検査）を含み得る。サービスの例としては、ＰａａＳ、ＳａａＳ、および／またはＩａａＳの１つ以上が挙げられ得る。要求は、ＩａａＳサービスに対するインフラストラクチャの１つ以上のコンピューティングリソースを定義し得る。ポリシーマネージャ３１２は、基準と一致するリソース定義３２２の中から１つのリソース定義を選択し得る。いくつかの例では、リソース定義は、リソース定義３２２のうちの基準により近い一致として特定され得る。いくつかの実施形態では、リソース要求３３０は、リソース要求３３０がリソース定義を示し得ないように、サービスの要求を示し得る。代わりに
、リソースは、リソース要求３３０内に示されるサービスに対応して特定されるポリシーに基づいて定義されてもよい。
【００６８】
ポリシーマネージャ３１２は、リソース要求によって要求される１セットのコンピューティングリソースのコンフィギュレーションのための配置ポリシーを決定するように構成され得る。いくつかの実施形態では、１つ以上の基準（たとえば配置コンフィギュレーション３３４）がリソース要求３３０に含まれ得る。リソース要求内の基準を用いて、配置ポリシー３２６の中から１つの配置ポリシーが決定され得る。基準は、コンピューティングリソースの編成（たとえばグループ化）、コンピューティングリソースの配置のための地理的位置、セキュリティ分離特性、共有プリファレンス（たとえばユーザもしくは他のテナントとの共有もしくは非共有）、または特定のタイプのコンピューティングリソースの配列（たとえば仮想マシン割当てに対するハイパーバイザ）を含み得るが、これらに限定されるものではない。ポリシーマネージャ３１２は配置ポリシー３２６を評価して、リソース要求３３０内のユーザが提供した基準と良く一致する配置ポリシーを決定し得る。いくつかの実施形態では、１つ以上の配置ポリシー３２６が、コンピューティングリソースの配置を定義する１つ以上の属性と関連付けられて格納され得る。属性はリソース要求内の基準と比較されて、ユーザの要求により良く一致する配置ポリシーが特定され得る。
【００６９】
ポリシーマネージャ３１２は、ポリシー定義３２０を更新するように構成されるポリシー更新モジュール３２８を含み得る。ポリシー定義３２０は、ユーザコンピュータ３０２から受信した情報に基づいて更新され得る。いくつかの実施形態では、ポリシー更新モジュール３２８は、以前のリソース要求に基づいてポリシー定義３２０を動的に作成または修正し得る。たとえば、ポリシー更新モジュール３２８は、リソース要求に対してより頻繁に選択されるリソース定義および配置ポリシーに基づいて、新たなポリシー定義を作成し得る。要求されるリソースの履歴に基づいて、ポリシー更新モジュール３２８は、要求されるリソースに対する基準により良く一致する１つ以上の新たなリソース定義および／または配置ポリシーを作成し得る。
【００７０】
リソース要求に対して選択されたポリシー定義に基づいて、リソースプール３１０は、ポリシー定義に従って１つ以上のコンピューティングリソースを割当て得る。リソース割当てモジュール３１８は、ポリシー定義の配置ポリシーおよびリソース定義を用いて、リソースプール３１０からコンピューティングリソースを割当て得る。リソース定義を用いて、リソースプール３１０内の割当てるべきコンピューティングリソースが決定され得る。コンピューティングリソースのコンフィギュレーションは、リソース要求に基づいて選択されたポリシー定義の配置ポリシーに基づいて決定され得る。リソース割当てモジュール３１８は、データセンターインデックス３１４およびリソースインデックス３１６を用いて、ポリシー定義に従って割当て用のコンピューティングリソースを特定し得る。データセンターインデックス３１４およびリソースインデックス３１６は、リソース要求に対して割当てられるコンピューティングリソースを反映するように更新され得る。たとえば、ポリシー定義に従ってコンピューティングリソースが割当てられると、データセンターインデックス３１４および／またはリソースインデックス３１６は、ユーザに割当てられたリソースについての情報を示すデータで更新され得る。ユーザの識別子が、ユーザに割当てられたコンピューティングリソースの各々の識別子と関連付けられて格納され得る。データセンターインデックス３１４および／またはリソースインデックス３１６は、ユーザに割当てられたコンピューティングリソースと関連付けられて格納されるユーザの識別子で更新され得る。
【００７１】
リソース割当てモジュール３１８は、リソース要求に対してもはや使用されないコンピューティングリソースの割当てを解除し得る。リソース割当てモジュール３１８は、リソースプール３１０をサポートする１つ以上のデータセンターと通信してコンピューティン
グリソースを割当て得、および／または割当てを解除し得る。たとえば、リソース割当てモジュール３１８は、地理的に離れたデータセンターと通信して、配置ポリシーが異なる地理的場所への割当てを示す配置ポリシーに従ってコンピューティングリソースを割当て得る。リソース割当てモジュール３１８は、リソースプール３１０内のコンピューティングリソースの割当ておよび割当て解除についての情報（たとえばステータス）をポリシーマネージャ３１２に通信し得る。
【００７２】
ポリシーマネージャ３１２は、コンピューティングリソースがリソース要求に対してリソースプール３１０において割当てられたか否かを判断し得る。リソース割当てモジュール３１８から受信した情報に基づいて、ポリシーマネージャ３１２は、通知（たとえば通知３０４）をユーザコンピュータ３０２に送信して、リソース要求３３０と関連付けられているユーザにコンピューティングリソースの割当てを通知するよう要求し得る。通知３０４は、割当てられるコンピューティングリソースと、コンピューティングリソースが割当てられる態様（たとえばコンフィギュレーション）とについての情報を含み得る。
【００７３】
典型的に、クラウドリソースプールなどの共有のリソース環境では、リソースは、コスト、パフォーマンス、および可用性を含む要因に基づいて最適化されるようにプロバイダによって割当てられ得る。そのような例では、ユーザには、ユーザにとって重要なセキュリティ、パフォーマンス、および地理的位置などの考慮事項に基づいたリソースの割当ての要求に対する制御が与えられない。ユーザの要求に基づいてコンピューティングリソースを割当てることによって、ユーザには、共有のリソース環境においてそれらのコンピューティングリソースを割当てる際にさらに他の制御が与えられる。いくつかの実施形態では、ユーザは、セキュリティ、パフォーマンス、およびオペレーションについての重要な考慮事項が確実に対処されるように、コンピューティングリソースのコンフィギュレーションなどの基準を提供し得る。
【００７４】
図４は、本発明のいくつかの実施形態に係る１つ以上のコンピューティングリソースのリソース定義を格納するためのデータ構造４００の例を表わす。データ構造４００は、リソース要求に対するリソース定義の一例を提供している。データ構造４００は、コンピューティングリソースに対するリソース要求に含まれ得る。いくつかの実施形態では、データ構造（たとえばデータ構造４００）の各インスタンスはリソース定義３２２内のリソース定義に対応し得る。コンピューティングリソースは、リソース定義に基づいてリソースプール（たとえばリソースプール３１０）において割当てられ得る。
【００７５】
データ構造４００は、アレイ、レコード、リレーショナルデータベーステーブル、ハッシュテーブル、連結リスト、または他のタイプのデータ構造を含むがこれらに限定されるものではない異なるタイプのデータ構造のうちの１つまたはこれらの組み合わせとして実現され得る。例示を目的として、データ構造４００は特定の数のフィールド（フィールド４０２、４０４、４０６、４０８、４１０および４１２）を有する配列において示されているが、データ構造４００は示されるのとは異なる配列内でより多いまたは少ないフィールドによって定義されてもよい。フィールドの数および／またはタイプは、要求されるコンピューティングリソースに基づいて異なり得る。特定のフィールドに関して示されているデータは、データレコード４００に格納され得るか、またはデータが格納されているメモリの位置を示し得る。
【００７６】
フィールド４０２（「仮想マシン識別子」）は、割当てるべき仮想マシンについての情報を含む。いくつかの実施形態では、フィールド４０２は、データ構造４００のリソース定義に基づいて割当てるべき特有の仮想マシンの識別子を含み得る。フィールド４０４は、リソース定義に割当てるべきプロセッサの数についての情報を含み得る。プロセッサの数はハードウェアプロセッサ（たとえばハードウェアプロセッサ）に対応し得る。フィー
ルド４０６は、割当てるべきメモリの量を示し得る。いくつかの実施形態では、フィールド４０６および／または他のフィールドは、異なるコンピューティングリソースユニットに割当てるべきメモリの量についての情報を含み得、割当てるべきメモリのタイプを示し得る。フィールド４０８は、たとえば仮想マシンの１つ以上の名前などの、仮想マシンについての情報を含み得る。いくつかの実施形態では、フィールド４０８は、ハイパーバイザに対する仮想マシンのコンフィギュレーションについての情報を含み得る。フィールド４０８は、ハイパーバイザに仮想マシンを割当てる配列または編成についての情報を含み得る。フィールド４１０は、コンピューティングリソースに対して実装すべき１つ以上のオペレーティングシステムについての情報を含み得る。フィールド４１０は、実装すべきオペレーティングシステムのタイプを示し得る。フィールド４１２は、データレコード４００によって特定されるコンピューティングリソースの１つ以上のコンピューティングリソースユニットについての情報などのグループ特定情報を含み得る。
【００７７】
いくつかの実施形態では、リソース定義はテキストフォーマットで提供され得る。リソース定義は、図４に示されるようなフォーマットで格納され得る。以下に示すリスティング１は、ユーザによって規定されるリソース定義の例である：
【００７８】
【表１】
2020098621.tif 000003
【００７９】
リスティング１の例に示されるように、２つのグループにおける１３個の仮想マシンがリソース要求内に示されている。いくつかの実施形態では、グループは、明示的なグループＩＤを有さずに、ＶＭの名前に基づいて特定され得る。リスティング１は、顧客関係マネージャ（customer relations manager：ＣＲＭ）デプロイメントに対する例示的なリソース定義を定義している。リソース定義における各ＶＭは、ＶＭ数（ＶＭ＿ＮＯ）、ＣＰＵの規定数（ＶＭ＿ＣＰＵ＿ＣＯＵＮＴ）、メモリの規定量（ＶＭ＿ＭＥＭ＿ＲＥＱＵＩＲＥＤ）、ＶＭ名（ＶＭ＿ＣＯＭＭＥＮＴＳ）、およびオペレーティングシステム定義（ＶＭ＿ＯＳ＿ＴＥＭＰＬＡＴＥ）、およびグループＩＤ（ＧＲＯＵＰ＿ＩＤ）を含む。いくつかの実施形態では、リソース定義はより多いまたは少ない要件を含んでいてもよい。たとえば、いくつかの実施形態では、ＶＭ毎のリソース定義は、プロキシノードを使用すべきか否かを示すフラッグを含み得る。ＶＭ３〜５などのいくつかのＶＭは、ＣＰＵまたはメモリ要件なしで要求され得、これらのＶＭはデプロイメントのためのＩＰアドレスとしてセットアップされ得る。
【００８０】
上述のように、リソースグループは、リソース定義に基づいて自動的に特定され得、および／またはリソース定義において明示的に定義され得る。たとえば、リスティング１では、「ＲＡＣ＿*」と名付けられた各仮想マシンが、リソースプール内のグループとして
特定されて割当てられ得る。いくつかの実施形態では、推奨されるグループがノード名に基づいて特定され、確認のためにユーザに提示され得る。いくつかの実施形態では、明示的なグループＩＤがリソース定義に含まれ得る。たとえば、リスティング１に示されるように、ＶＭ１〜５は１のGroup＿ＩＤを含むのに対して、ＶＭ６〜１３は０のGroup＿ＩＤを含む。いくつかの実施形態では、Group＿ＩＤが既存のグループに対応する場合、新た
に要求されるＶＭは当該既存のグループに追加され得る。
【００８１】
リソース定義に基づいて、要求されたリソースがリソースプール３１０から割当てられ得る。いくつかの実施形態では、リソースプール３１０はＩａａＳプロバイダによって管理されるハイパーバイザプールであり得る。いくつかの実施形態では、リソースプール３１０は、複数のリモートデータセンターにわたって分散している複数のリソースプールを含み得る。
【００８２】
図５は、本発明の実施形態に係る配置ポリシーベースのリソース割当てのプロセスのフローチャート５００を示す。いくつかの実施形態では、フローチャート５００に表わされるプロセスは、図１のリソース管理システム１４０によって実現され得る。コンピューティングリソースは、図３のリソースプール３１０などのリソースインフラストラクチャシステムによって割当てられ得る。リソースインフラストラクチャシステムは、コンピューティングリソースの割当てをサポートするための１つ以上のデータセンターを含み得る。リソースインフラストラクチャシステムは、リソース管理システム１４０に含まれ得るか、またはリソース管理システム１４０によって実現され得る。いくつかの実施形態では、リソース管理システム１４０は、割当てるべきコンピューティングリソースと、それらコンピューティングリソースのコンフィギュレーションのための配置ポリシーとを決定し得、リソース管理システム１４０は、コンピューティングリソースを割当てるようにリソースインフラストラクチャシステムに要求し得る。
【００８３】
フローチャート５００は、サービスの要求を受信することによってステップ５０２において開始し得る。たとえば、リソース管理システム１４０は、コンピューティングリソースに対するリソース要求１３２またはリソース要求３３０を受信し得る。当該サービスは、ＩａａＳサービス、ＰａａＳサービス、またはＳａａＳサービスの１つ以上を含み得る。要求は、顧客などのユーザが操作するコンピュータ（たとえばユーザコンピュータ３０２）から受信され得る。要求内の情報を用いて、割当てるべきコンピューティングリソースおよび／またはそのようなリソースの配置が決定され得る。
【００８４】
要求は、ユーザが要求した１つ以上のコンピューティングリソースを示す情報、または当該１つ以上のコンピューティングリソースを決定するために用いられる情報を含み得る。コンピューティングリソースの例としては、１つ以上の処理ユニット（たとえばプロセッサもしくはマルチコアプロセッサ）、１つ以上のメモリ、１つ以上の仮想マシン、または１つ以上のハイパーバイザが挙げられ得るが、これらに限定されるものではない。いくつかの実施形態では、要求は、ユーザが要求した１つ以上のコンピューティングリソースの定義（たとえばリソース定義）を示し得る。
【００８５】
ステップ５０４において、複数のコンピューティングリソースの定義（たとえばリソース定義）が特定され得る。定義は、割当てるべきコンピューティングリソースの特性（たとえばコンピューティングリソースのタイプ）、およびコンピューティングリソースの量を示し得る。いくつかの実施形態では、定義は要求（たとえばステップ５０２で受信した
要求）に基づいて特定され得る。コンピューティングリソースの１つ以上の定義がユーザによって構成され、要求内に受信した情報に基づいて選択され得る。たとえば、要求は、構成された定義、または構成された定義を選択するための１つ以上の基準を示し得る。いくつかの実施形態では、リソース定義は、要求されたサービスに基づいて特定され得る。サービスは、当該サービスを可能にするためのコンピューティングリソースのタイプおよび量を示すリソース定義に基づいて定義され得る。
【００８６】
ステップ５０６において、複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーが決定され得る。いくつかの実施形態では、要求に含まれている情報に基づいて配置ポリシーが決定され得る。要求は、要求されたコンピューティングリソースの配置についての１つ以上の特性を示し得る。たとえば、要求は配置コンフィギュレーションを含み得る。配置ポリシーは、配置コンフィギュレーションと一致する配置ポリシーを特定することに基づいて、複数の配置ポリシーから選択され得る。いくつかの例では、配置ポリシーは、要求されたコンピューティングリソースの配置についての特性を最良に満たす配置ポリシーとして決定され得る。配置特性は、コンピューティングリソースのグループ化（たとえばコンピューティングリソースのタイプの１つ以上のグループ定義）、１つ以上の位置特性（たとえば地理的位置）、または１つ以上のセキュリティ特性（たとえば分離された環境もしくは分離されたコンピューティングリソース）といった、コンピューティングリソースの配置に関連し得る。
【００８７】
ステップ５０８において、配置ポリシーおよび定義を用いて、コンピューティングリソースが割当てられ得る。たとえば、リソース管理システム１４０は、コンピューティングリソースがリソースプールにおいて割当てられることを要求し得る。配置ポリシー内の情報および定義はリソースインフラストラクチャシステムに提供されて、コンピューティングリソースが割当てられ得る。ステップ５１０において、フローチャート５００のプロセスが終了する。
【００８８】
図６は、本発明の実施形態に係る配置ポリシーベースのリソース割当てのプロセスのフローチャート６００を示す。いくつかの実施形態では、フローチャート６００に表わされるプロセスは、図１のリソース管理システム１４０によって実現され得る。コンピューティングリソースは、図３のリソースプール３１０などのリソースインフラストラクチャシステムによって割当てられ得る。リソースインフラストラクチャシステムは、コンピューティングリソースの割当てをサポートするための１つ以上のデータセンターを含み得る。リソースインフラストラクチャシステムは、リソース管理システム１４０に含まれ得るか、またはリソース管理システム１４０によって実現され得る。いくつかの実施形態では、リソース管理システム１４０は、割当てるべきコンピューティングリソースと、それらコンピューティングリソースのコンフィギュレーションのための配置ポリシーとを決定し得、リソース管理システム１４０は、コンピューティングリソースを割当てるようにリソースインフラストラクチャシステムに要求し得る。
【００８９】
フローチャート６００は、サービスの要求を受信することによってステップ６０２において開始し得る。たとえば、リソース管理システム１４０は、サービスへのサブスクリプションのオーダーを受信し得る。サービスは、ＩａａＳサービス、ＰａａＳサービス、またはＳａａＳサービスの１つ以上を含み得る。要求内の情報を用いて、割当てるべきコンピューティングリソースおよび／またはそのようなリソースの配置が決定され得る。
【００９０】
要求は、ユーザが要求した１つ以上のコンピューティングリソースを示す情報、または当該１つ以上のコンピューティングリソースを決定するために用いられる情報を含み得る。コンピューティングリソースの例としては、１つ以上の処理ユニット（たとえばプロセッサもしくはマルチコアプロセッサ）、１つ以上のメモリ、１つ以上の仮想マシン、また
は１つ以上のハイパーバイザが挙げられ得るが、これらに限定されるものではない。いくつかの実施形態では、要求は、ユーザが要求した１つ以上のコンピューティングリソースの定義（たとえばリソース定義）を示し得る。
【００９１】
いくつかの実施形態では、要求は、要求されたサービスに対する１つ以上の基準（たとえば条件）を含み得る。基準は、１つ以上のコンピューティングリソースがサービスにどのように割当てられるかを示し得る。コンピューティングリソースは、サービスを可能にするためのコンピューティングリソースを含み得る。基準は、コンピューティングリソースを割当てるための配置特性を示し得る。基準は、いつ、どのように、および／またはどのリソースがサービスに割当てられるかを示し得る。たとえば、基準は、コンピューティングリソースのグループ化（たとえばコンピューティングリソースのタイプの１つ以上のグループ定義）、１つ以上の位置特性（たとえば地理的位置）、または１つ以上のセキュリティ特性（たとえば分離された環境もしくは分離されたコンピューティングリソース）を示し得る。いくつかの実施形態では、基準は、リソースをマルチテナント環境において特定のテナントとともに割当てるべきか、または特定のテナントとともに割当てるべきでないかを示し得る。基準は、共有可能なリソースのタイプ、および／または当該リソースのタイプが誰と共有可能であるかを示し得る。
【００９２】
ステップ６０４において、複数のコンピューティングリソースの定義（たとえばリソース定義）が特定され得る。定義は、割当てるべきコンピューティングリソースの特性（たとえばコンピューティングリソースのタイプ）、およびコンピューティングリソースの量を示し得る。いくつかの実施形態では、定義は要求（たとえばステップ６０２で受信した要求）に基づいて特定され得る。たとえば、リソース定義は、ユーザが要求したサービスのタイプに基づいて特定され得る。リソース定義は、サービスの各タイプに対して、または特有のサービスに対して定義され得る。要求がＩａａＳサービスに対するものである場合、当該要求はユーザに割当てるべきリソースを含み得る。当該要求は、ユーザによって構成され、かつ要求内に受信した情報に基づいて選択されるコンピューティングリソースの１つ以上の定義を含み得るか、または特定し得る。いくつかの実施形態では、リソース定義は、要求されたサービスに基づいて特定され得る。サービスは、当該サービスを可能にするためのコンピューティングリソースのタイプおよび量を示すリソース定義に基づいて定義され得る。
【００９３】
いくつかの実施形態では、ステップ６０６において、複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーが決定され得る。いくつかの実施形態では、要求に含まれている基準に基づいて配置ポリシーが決定され得る。要求は、要求されたコンピューティングリソースの配置についての１つ以上の特性を示し得る。たとえば、要求は配置コンフィギュレーションを含み得る。配置ポリシーは、配置コンフィギュレーションと一致する配置ポリシーを特定することに基づいて、複数の配置ポリシーから選択され得る。いくつかの例では、配置ポリシーは、要求されたコンピューティングリソースの配置についての特性を最良に満たす配置ポリシーとして決定され得る。配置特性は、コンピューティングリソースのグループ化（たとえばコンピューティングリソースのタイプの１つ以上のグループ定義）、１つ以上の位置特性（たとえば地理的位置）、または１つ以上のセキュリティ特性（たとえば分離された環境もしくは分離されたコンピューティングリソース）といった、コンピューティングリソースの配置に関連し得る。配置特性は、要求内の基準に一部基づいて決定され得る。
【００９４】
ステップ６０８において、配置ポリシーおよび定義を用いて、コンピューティングリソースが割当てられ得る。たとえば、リソース管理システム１４０は、コンピューティングリソースをリソースプールにおいて割当てるよう要求し得る。配置ポリシー内の情報および定義はリソースインフラストラクチャシステムに提供されて、コンピューティングリソ
ースが割当てられ得る。ステップ６１０において、フローチャート６００のプロセスが終了する。
【００９５】
図５および図６に表わされるプロセスは、１つ以上の処理ユニット（たとえばプロセッサコア）によって実行されるソフトウェア（たとえばコード、命令、プログラム）、ハードウェア、またはこれらの組み合わせで実現され得る。ソフトウェアはメモリ内に（たとえば、メモリデバイス上に、非一時的なコンピュータ読取可能記憶媒体上に）格納され得る。図５および図６における特定の一連の処理ステップは限定的であるよう意図されるものではない。代替的な実施形態に従って他の順番のステップが実行されてもよい。たとえば、本発明の代替的な実施形態は、上記に概説したステップを異なる順序で実行してもよい。さらに、図５および図６に示される個々のステップは、個々のステップに適切であるようにさまざまな順番で実行され得る複数のサブステップを含んでいてもよい。さらに、特定の用途によっては追加のステップが追加または削除されてもよい。図５および図６の各々に表わされる処理は、ユーザからの要求に基づいた配置ポリシーベースのリソース割当てに関するものであるが、そのような処理は、コンピューティングリソースを割当てるための異なるタイプの特性を示す複数のリソース要求に対して実行されてもよい。当業者は、多くの変形例、変更例、および代替例を認識するであろう。
【００９６】
図７は、実施形態を実現するための分散システム７００の簡略図を表わす。示される実施形態では、分散システム７００は、１つ以上のネットワーク７１０上でウェブブラウザ、プロプライエタリクライアント（たとえばオラクルフォームズ（Oracle Forms））などのクライアントアプリケーションを実行および操作するように構成された１つ以上のクライアントコンピューティングデバイス７０２、７０４、７０６、および７０８を含む。サーバ７１２は、ネットワーク７１０を介して遠隔のクライアントコンピューティングデバイス７０２、７０４、７０６、および７０８と通信可能に連結され得る。
【００９７】
さまざまな実施形態において、サーバ７１２は、配置ポリシーベースのリソース割当てのためのサービスおよびアプリケーションなどの１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。特定の実施形態では、サーバ７１２はまた、非仮想および仮想環境を含み得るその他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの実施形態では、これらのサービスは、クライアントコンピューティングデバイス７０２、７０４、７０６、および／または７０８のユーザに対して、ウェブベースのもしくはクラウドサービスとして、またはサービスとしてのソフトウェア（ＳａａＳ）モデルの下で供給され得る。クライアントコンピューティングデバイス７０２、７０４、７０６、および／または７０８を操作するユーザは次に、１つ以上のクライアントアプリケーションを利用してサーバ７１２と対話することにより、これらのコンポーネントが提供するサービスを利用し得る。
【００９８】
図７に表わされる構成では、システム７００のソフトウェアコンポーネント７１８、７２０および７２２は、サーバ７１２上に実装されるものとして示されている。他の実施形態では、システム７００の上記コンポーネントおよび／またはこれらのコンポーネントが提供するサービスのうちの１つ以上が、クライアントコンピューティングデバイス７０２、７０４、７０６、および／または７０８のうちの１つ以上によって実装されてもよい。そうすると、クライアントコンピューティングデバイスを操作するユーザは、クライアントアプリケーションのうちの１つ以上を用いて、これらのコンポーネントが提供するサービスを利用することができる。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで実装されてもよい。分散システム７００とは異なり得る多種多様なシステムコンフィギュレーションが可能であるということが認識されるべきである。図７に示される実施形態はしたがって、ある実施形態のシステムを実現するための分散システムの一例であって、限定的であるよう意図されるものではない
。
【００９９】
クライアントコンピューティングデバイス７０２、７０４、７０６、および／または７０８は、さまざまな種類のコンピューティングシステムを含み得る。たとえば、クライアントコンピューティングデバイスは、Microsoft Windows Mobile（登録商標）等のソフトウェア、および／またはiOS、Windows Phone、Android（登録商標）、BlackBerry（登録
商標） 10、Palm ＯＳ等のさまざまなモバイルオペレーティングシステムを実行する、ポータブルハンドヘルドデバイス（たとえばiPhone（登録商標）、携帯電話、iPad（登録商標）、計算タブレット、携帯情報端末（ＰＤＡ））またはウェアラブルデバイス（たとえばGoogle Glass（登録商標）ヘッドマウントディスプレイ）を含み得る。これらの装置は、さまざまなインターネット関連アプリケーション、電子メール、ショートメッセージサービス（ＳＭＳ）アプリケーション等のさまざまなアプリケーションをサポートし得るものであり、かつその他のさまざまな通信プロトコルを使用し得る。また、クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows（
登録商標）、Apple Macintosh（登録商標）および／またはLinux（登録商標）オペレーティングシステムを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む、汎用パーソナルコンピュータを含み得る。クライアントコンピューティングデバイスは、たとえばGoogle Chrome OS等の、さまざまなGNU／Linuxオペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のUNIX（登録商標）またはUNIXのようなオペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。また、クライアントコンピューティングデバイスは、ネットワーク７１０上で通信可能な、シンクライアントコンピュータ、インターネット接続可能なゲームシステム（たとえばKinect（登録商標）ジェスチャー入力装置を備えたもしくは備えていないMicrosoft Xboxゲーム機）、および／またはパーソナルメッセージングデバイス等の電子機器を含み得る。
【０１００】
図７の分散システム７００は４つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされ得る。センサ等を有する装置といったその他の装置がサーバ７１２と対話してもよい。
【０１０１】
分散システム７００内のネットワーク７１０は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、Apple Talk等を含むがこれらに限定されるものではない、利用可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者にはよく知られているいずれかの種類のネットワークであればよい。ほんの一例として、ネットワーク７１０は、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）に基づくネットワーク、トークンリング、広域ネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク（ＶＰＮ）、イントラネット、エクストラネット、公衆交換電話網（ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえば、米国電気電子技術者協会（ＩＥＥＥ）８０２．１１プロトコルスイートのうちのいずれか、Bluetooth（登録商標）、および／またはその他いずれか
の無線プロトコルの下で機能するネットワーク）、および／またはこれらの組み合わせ、および／またはその他のネットワークであってもよい。
【０１０２】
サーバ７１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（一例として、ＰＣ（パーソナルコンピュータ）サーバ、UNIX（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバ等を含む）、サーバファーム、サーバクラスタ、またはその他いずれかの適切な構成および／または組み合わせで構成されていてもよい。サーバ７１２は、仮想オペレーティングシステムまたは仮想化を伴うその他の計算アーキテクチャを実行する１つ以上の仮想マシンを含み得る。論理記憶装置
の１つ以上のフレキシブルプールを仮想化することによって、サーバのための仮想記憶装置を維持することができる。仮想ネットワークは、サーバ７１２がソフトウェア定義ネットワーキングを用いて制御することができる。さまざまな実施形態において、サーバ７１２は、これまでの開示において説明した１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されていてもよい。たとえば、サーバ７１２は、本開示のある実施形態に従う上記処理を実行するためのサーバに対応していてもよい。
【０１０３】
サーバ７１２は、上記のうちのいずれかを含むオペレーティングシステムおよび市販のいずれかのサーバオペレーティングシステムを実行し得る。サーバ７１２はまた、ＨＴＴＰ（ハイパーテキストトランスポートプロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバ等を含む、さまざまなその他のサーバアプリケーションおよび／またはミッドティアアプリケーションのうちのいずれかを実行し得る。代表的なデータベースサーバは、オラクル、マイクロソフト、サイベース、ＩＢＭ（International Business Machines）等から市販されているものを含むが、これらに限定されるもの
ではない。
【０１０４】
いくつかの実装例において、サーバ７１２は、クライアントコンピューティングデバイス７０２、７０４、７０６、および７０８のユーザから受信したデータフィードおよび／またはイベントアップデートを分析し集約するための１つ以上のアプリケーションを含み得る。一例として、データフィードおよび／またはイベントアップデートは、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通量モニタリング等に関連するリアルタイムイベントを含み得る、１つ以上の第三者情報源および連続データストリームから受信した、Twitter（登録商標）フ
ィード、Facebook（登録商標）アップデートまたはリアルタイムアップデートを含み得るが、これらに限定されるものではない。また、サーバ７１２は、クライアントコンピューティングデバイス７０２、７０４、７０６、および７０８の１つ以上の表示装置を介してデータフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含み得る。
【０１０５】
分散システム７００はまた、１つ以上のデータベース７１４および７１６を含み得る。これらのデータベースは、本発明の実施形態によって使用されるユーザインタラクション情報、使用パターン情報、適合規則情報、およびその他の情報等の情報を格納するためのメカニズムを提供し得る。データベース７１４および７１６はさまざまな場所に存在し得る。例として、データベース７１４および７１６のうちの１つ以上が、サーバ７１２にローカルな（および／または存在する）非一時的な記憶媒体上にあってもよい。これに代えて、データベース７１４および７１６は、サーバ７１２から遠隔の場所にあってネットワークベースのまたは専用接続を介してサーバ７１２と通信してもよい。一組の実施形態において、データベース７１４および７１６は、ストレージエリアネットワーク（ＳＡＮ）にあってもよい。同様に、サーバ７１２から発生する機能を実行するために必要な任意のファイルは、適宜サーバ７１２にローカルに格納されていてもよくおよび／または遠隔場所に格納されてもよい。一組の実施形態において、データベース７１４および７１６は、ＳＱＬフォーマットのコマンドに応じてデータを格納、更新、および取出すように適合された、オラクルが提供するデータベース等のリレーショナルデータベースを含み得る。
【０１０６】
いくつかの実施形態では、クラウド環境は配置ポリシーベースのリソース割当てのための１つ以上のサービスを提供し得る。図８は、本開示の実施形態に従う、サービスがクラウドサービスとして供給され得るシステム環境８００の１つ以上のコンポーネントの簡略化したブロック図である。図８に示される実施形態では、システム環境８００は、配置ポ
リシーベースのリソース割当てのためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム８０２と対話するためにユーザによって使用され得る１つ以上のクライアントコンピューティングデバイス８０４、８０６、および８０８を含む。クラウドインフラストラクチャシステム８０２は、サーバ７１２について上述したものを含み得る１つ以上のコンピュータおよび／またはサーバを含み得る。
【０１０７】
図８に表わされるクラウドインフラストラクチャシステム８０２は、表わされるもの以外の他のコンポーネントを有していてもよいということが認識されるべきである。さらに、図８に示される実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム８０２は、図に示されるものよりも多いもしくは少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有していてもよい。
【０１０８】
クライアントコンピューティングデバイス８０４、８０６、および８０８は、クライアントコンピューティングデバイス７０２、７０４、７０６、および７０８についての上述のものと同様のデバイスであり得る。クライアントコンピューティングデバイス８０４、８０６、および８０８は、ウェブブラウザ、プロプライエタリクライアント（たとえばオラクルフォームズ）等のクライアントアプリケーション、または何らかの他のアプリケーションを操作するように構成され得、クライアントコンピューティングデバイスのユーザは当該アプリケーションを使用してクラウドインフラストラクチャシステム８０２と対話することにより、クラウドインフラストラクチャシステム８０２が提供するサービスを使用し得る。例示的なシステム環境８００が３つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされ得る。センサを有する装置などの他の装置がクラウドインフラストラクチャシステム８０２と対話してもよい。
【０１０９】
ネットワーク８１０は、クライアントコンピューティングデバイス８０４、８０６、および８０８とクラウドインフラストラクチャシステム８０２との間でのデータの通信および交換を容易にし得る。各ネットワークは、ネットワーク７１０について上述したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者にはよく知られているいずれかの種類のネットワークであればよい。
【０１１０】
特定の実施形態では、クラウドインフラストラクチャシステム８０２が提供するサービスは、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用できるようにされる多数のサービスを含み得る。配置ポリシーベースのリソース割当てに関するサービスに加えて、オンラインデータストアおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービス等を含むがこれらに限定されるものではないさまざまな他のサービスも供給され得る。クラウドインフラストラクチャシステムが提供するサービスは、そのユーザのニーズを満たすよう動的にスケーリング可能である。
【０１１１】
特定の実施形態では、クラウドインフラストラクチャシステム８０２が提供するサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称され得る。一般に、クラウドサービスプロバイダのシステムからインターネット等の通信ネットワークを介してユーザが利用できるようにされるサービスはいずれも、「クラウドサービス」と称される。典型的に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーション
をホストし得、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションをオーダーし、使用し得る。
【０１１２】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダによってユーザに提供されるかまたはそうでなければ当該技術分野において公知のストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、または他のサービスへの保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを通した、クラウド上の遠隔記憶域に対する、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク接続された開発者の私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【０１１３】
特定の実施形態では、クラウドインフラストラクチャシステム８０２は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に与えられる一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウド（Oracle Public Cloud）である。
【０１１４】
クラウドインフラストラクチャシステム８０２はさらに、「ビッグデータ（big data）」関連の計算および分析サービスを提供し得る。「ビッグデータ」という用語は一般に、大量のデータを視覚化し、トレンドを検出し、および／またはそうでなければデータと対話するために、分析者および研究者によって格納および処理され得る極めて大きいデータ集合を指すために用いられる。このビッグデータおよび関連のアプリケーションは、多くのレベルで、かつさまざまなスケールでインフラストラクチャシステムによってホストおよび／または処理されてもよい。平行にリンクされた何十、何百または何千ものプロセッサがこのようなデータに対して作用可能であり、これにより、このようなデータを表示し得るか、または、データに対する外力をシミュレートし得るかもしくはそれが表しているものをシミュレートし得る。これらのデータ集合は、データベースにおいて編成されたデータ、もしくは構造化モデルに従ったデータ、および／または、非構造化データ（たとえば電子メール、画像、データブロブ（バイナリ大型オブジェクト）、ウェブページ、複雑なイベント処理）などの、構造化データを含み得る。目標物に対してより多くの（またはより少数の）コンピューティングリソースを比較的迅速に集中させるために実施形態の機能を強化することにより、ビジネス、政府関係機関、研究組織、私人、同じ目的をもった個々人もしくは組織のグループ、または他のエンティティから、要求に基づいて大量のデータ集合上でタスクを実行するために、クラウドインフラストラクチャシステムがより良好に利用可能となり得る。
【０１１５】
さまざまな実施形態において、クラウドインフラストラクチャシステム８０２は、クラウドインフラストラクチャシステム８０２によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム８０２は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、サービスはパブリッククラウドモデルの下で提供されてもよく、パブリッククラウドモデルでは、クラウドインフラストラクチャシステム８０２が（たとえばオラクル社が所有する）クラウドサービスを販売する組織によって所有され、サービスは一般的な公営企業またはさまざまな産業企業が利用できるようにされる。別の例として、サービスはプライベートクラウドモデルの下で提供されてもよく、プライベートクラウドモデルでは、クラウドインフラストラクチャシステム８０２が
単一の組織のために単独で運営され、当該組織内の１つ以上のエンティティにサービスを提供することができる。また、クラウドサービスはコミュニティクラウドモデルの下で提供されてもよく、コミュニティクラウドモデルでは、クラウドインフラストラクチャシステム８０２およびクラウドインフラストラクチャシステム８０２によって提供されるサービスが関連のコミュニティの中のいくつかの組織によって共有される。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【０１１６】
いくつかの実施形態では、クラウドインフラストラクチャシステム８０２によって提供されるサービスは、サービスとしてのソフトウェア（ＳａａＳ）カテゴリ、サービスとしてのプラットフォーム（ＰａａＳ）カテゴリ、サービスとしてのインフラストラクチャ（ＩａａＳ）カテゴリ、またはその他の、ハイブリッドサービスを含むサービスのカテゴリの下で提供される１つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム８０２によって提供される１つ以上のサービスをオーダーし得る。次いで、クラウドインフラストラクチャシステム８０２は、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
【０１１７】
いくつかの実施形態では、クラウドインフラストラクチャシステム８０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、ＳａａＳプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、ＳａａＳプラットフォームは、統合された開発およびデプロイメントプラットフォーム上で一連のオンデマンドのアプリケーションを構築および供給する機能を提供し得る。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。ＳａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することができる。顧客は、顧客が別個のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるＳａａＳサービスが提供されてもよい。例としては、大規模組織に販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【０１１８】
いくつかの実施形態では、プラットフォームサービスは、ＰａａＳプラットフォームを介してクラウドインフラストラクチャシステム８０２によって提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、共有される共通のアーキテクチャ上で既存のアプリケーションを（オラクルなどの）組織が集約することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する能力が挙げられ得るが、これらに限定されるものではない。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム８０２によって提供されるＰａａＳサービスを取得することができる。プラットフォームサービスの例としては、オラクルＪａｖａクラウドサービス（ＪＣＳ）、オラクルデータベースクラウドサービス（ＤＢＣＳ）などが挙げられるが、これらに限定されるものではない。
【０１１９】
ＰａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語
およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（たとえばオラクルフュージョンミドルウェアサービス）、およびＪａｖａクラウドサービスを含み得る。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、さまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得、Ｊａｖａクラウドサービスは、クラウドインフラストラクチャシステムにおいてＪａｖａアプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【０１２０】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるＩａａＳプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワークなどの基本的な計算リソース、ならびに、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【０１２１】
また、特定の実施形態では、クラウドインフラストラクチャシステム８０２は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース８３０を含み得る。一実施形態では、インフラストラクチャリソース８３０は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するための、サーバ、ストレージおよびネットワーキングリソース、ならびに他のリソースなどの、ハードウェアの事前に一体化された最適な組み合わせを含み得る。
【０１２２】
いくつかの実施形態では、クラウドインフラストラクチャシステム８０２におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割当てされ得る。加えて、リソースは、異なる時間帯にユーザに割当てられ得る。たとえば、クラウドインフラストラクチャシステム８０２は、第１の時間帯におけるユーザの第１の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次いで、異なる時間帯に位置するユーザの別の組への同一のリソースの再割当てを可能にし、それによってリソースの利用を最大化することができる。
【０１２３】
特定の実施形態では、クラウドインフラストラクチャシステム８０２によるサービスの提供を可能にするために、クラウドインフラストラクチャシステム８０２の異なるコンポーネントまたはモジュールによって共有されるいくつかの内部共有サービス８３２が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【０１２４】
特定の実施形態では、クラウドインフラストラクチャシステム８０２は、クラウドインフラストラクチャシステムにおけるクラウドサービス（たとえばＳａａＳ、ＰａａＳおよびＩａａＳサービス）の包括的管理を提供し得る。一実施形態では、クラウド管理機能は、クラウドインフラストラクチャシステム８０２によって受信した顧客のサブスクリプションをプロビジョニング、管理および追跡するための機能などを含み得る。
【０１２５】
一実施形態では、図８に表わされるように、クラウド管理機能は、オーダー管理モジュ
ール８２０、オーダーオーケストレーションモジュール８２２、オーダープロビジョニングモジュール８２４、オーダー管理および監視モジュール８２６、ならびにアイデンティティ管理モジュール８２８などの１つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせであり得る１つ以上のコンピュータならびに／またはサーバを含み得るか、またはそれらを用いて提供され得る。
【０１２６】
例示的なオペレーションでは、ステップ８３４において、顧客は、クラウドインフラストラクチャシステム８０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム８０２によって供給される１つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クライアントコンピューティングデバイス８０４、８０６または８０８などのクライアントデバイスを用いてクラウドインフラストラクチャシステム８０２と対話し得る。特定の実施形態では、顧客は、クラウドユーザインターフェース（User Interface：ＵＩ）、すなわちクラウドＵＩ８１２、クラウドＵＩ８１４および／またはクラウドＵＩ８１６にアクセスして、これらのＵＩを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム８０２によって受信されたオーダー情報は、顧客および顧客がサブスクライブする予定のクラウドインフラストラクチャシステム８０２によって供給される１つ以上のサービスを特定する情報を含み得る。
【０１２７】
ステップ８３６において、顧客から受信したオーダー情報は、オーダーデータベース８１８に格納され得る。これが新たなオーダーである場合、当該オーダーについての新たなレコードが作成され得る。一実施形態では、オーダーデータベース８１８は、クラウドインフラストラクチャシステム８１８によって動作され、かつ、他のシステム要素と連携して動作されるいくつかのデータベースのうちの１つであってもよい。
【０１２８】
ステップ８３８において、オーダー情報は、オーダー管理モジュール８２０に転送され得、オーダー管理モジュール８２０は、オーダーの確認、および確認時のオーダーの予約などの、オーダーに関連するビリングおよびアカウンティング機能を実行するように構成され得る。
【０１２９】
ステップ８４０において、オーダーについての情報は、オーダーオーケストレーションモジュール８２２に通信され得、オーダーオーケストレーションモジュール８２２は、顧客によって行われたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレートするように構成される。いくつかの例では、オーダーオーケストレーションモジュール８２２は、プロビジョニングのためにオーダープロビジョニングモジュール８２４のサービスを使用し得る。特定の実施形態では、オーダーオーケストレーションモジュール８２２は、各オーダーと関連付けられたビジネスプロセスの管理を可能にし、ビジネスロジックを適用して、オーダーがプロビジョニングに進むべきか否かを判断する。
【０１３０】
図８に表わされる実施形態に示されるように、ステップ８４２において、新たなサブスクリプションのオーダーを受信すると、オーダーオーケストレーションモジュール８２２は、リソースを割当てて、当該サブスクリプションオーダーを実現するために必要なリソースを構成するために、オーダープロビジョニングモジュール８２４に要求を送信する。オーダープロビジョニングモジュール８２４は、顧客によってオーダーされたサービスのためのリソースの割当てを可能にする。オーダープロビジョニングモジュール８２４は、クラウドインフラストラクチャシステム８００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。したがって、オーダーオーケストレーションモジュール８２２は、サービスおよびリソースがオンザフライで実際にプロビジョ
ニングされるか否か、または予めプロビジョニングされて要求時に単に配分／割当てられるか否かなどの実装詳細から切離され得る。
【０１３１】
ステップ８４４において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが利用可能な状態となったことを示す通知が、サブスクライブを行う顧客に送信され得る。いくつかの例では、顧客が要求されたサービスを使用し始めることを可能にする情報（たとえばリンク）が顧客に送信され得る。
【０１３２】
ステップ８４６において、顧客のサブスクリプションオーダーがオーダー管理および監視モジュール８２６によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール８２６は、サブスクライブされたサービスの顧客使用に関する使用統計を収集するように構成され得る。たとえば、統計は、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などついて収集され得る。
【０１３３】
特定の実施形態では、クラウドインフラストラクチャシステム８００は、クラウドインフラストラクチャシステム８００においてアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成されるアイデンティティ管理モジュール８２８を含み得る。いくつかの実施形態では、アイデンティティ管理モジュール８２８は、クラウドインフラストラクチャシステム８０２によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報、および、さまざまなシステムリソース（たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してそれらの顧客がどのアクションを実行することが認可されるかを記述する情報を含み得る。また、アイデンティティ管理モジュール８２８は、各顧客についての記述的情報および当該記述的情報がどのようにして誰によってアクセスおよび修正され得るかについての記述的情報の管理を含み得る。
【０１３４】
図９は、本発明の実施形態を実現するために用いられ得る例示的なコンピュータシステム９００を示す。いくつかの実施形態では、コンピュータシステム９００を用いて上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現してもよい。図９に示されるように、コンピュータシステム９００は、バスサブシステム９０２を介していくつかの周辺サブシステムと通信する処理ユニット９０４を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット９０６、Ｉ／Ｏサブシステム９０８、記憶サブシステム９１８、および通信サブシステム９２４を含み得る。記憶サブシステム９１８は、有形のコンピュータ読取可能記憶媒体９２２およびシステムメモリ９１０を含み得る。
【０１３５】
バスサブシステム９０２は、コンピュータシステム９００のさまざまなコンポーネントおよびサブシステムを目的に応じて互いに通信させるためのメカニズムを提供する。バスサブシステム９０２は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用し得る。バスサブシステム９０２は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかの種類のバス構造のうちのいずれかであればよい。たとえば、このようなアーキテクチャは、ＩＥＥＥ  Ｐ１３８６．１規格に従って製造されたメザニン（Mezzanine）バス等として実現できる、業界標準アーキテクチャ（
ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス標準協会（ＶＥＳＡ）ローカルバス、および周辺コンポーネントインターコネクト（ＰＣＩ）バスなどを含み得る。
【０１３６】
処理サブシステム９０４は、コンピュータシステム９００のオペレーションを制御し、かつ、１つ以上の処理ユニット９３２、９３４等を含み得る。処理ユニットは、シングルコアもしくはマルチコアプロセッサ、プロセッサの１つ以上のコア、またはこれらの組み合わせを含む、１つ以上のプロセッサを含み得る。いくつかの実施形態では、処理サブシステム９０４は、グラフィックプロセッサ、デジタル信号プロセッサ（ＤＳＰ）等といった１つ以上の専用コプロセッサを含み得る。いくつかの実施形態では、処理サブシステム９０４の処理ユニットのうちのいくつかまたはすべてを、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のカスタマイズされた回路を用いて実現してもよい。
【０１３７】
いくつかの実施形態では、処理サブシステム９０４内の処理ユニットは、システムメモリ９１０内にまたはコンピュータ読取可能記憶媒体９２２上に格納されている命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、かつ、同時に実行される複数のプログラムまたはプロセスを維持することができる。任意の所与の時間に、実行すべきプログラムコードのうちのいくつかまたはすべてが、いくつかの例では１つ以上の記憶装置を含むシステムメモリ９１０内におよび／またはコンピュータ読取可能記憶媒体９２２上にあってもよい。適切なプログラミングを通して、処理サブシステム９０４は、配置ポリシーベースのリソース割当てのために上記のさまざまな機能を提供することができる。
【０１３８】
特定の実施形態では、コンピュータシステム９００が実行する処理全体を加速することを目的として、カスタマイズされた処理を実行するためまたは処理サブシステム９０４が実行する処理のうちの一部をオフロードするために、処理加速ユニット９０６を設けてもよい。
【０１３９】
Ｉ／Ｏサブシステム９０８は、情報をコンピュータシステム９００に入力するためおよび／または情報をコンピュータシステム９００からもしくはコンピュータシステム９００を介して出力するための装置およびメカニズムを含み得る。一般に、「入力装置」という用語の使用は、情報をコンピュータシステム９００に入力するための、可能なすべての種類の装置およびメカニズムを含むことを意図している。ユーザインターフェイス入力装置は、たとえば、キーボード、マウスまたはトラックボール等のポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えた音声入力装置、マイク、およびその他の種類の入力装置を含み得る。ユーザインターフェイス入力装置はまた、ユーザが入力装置を制御し入力装置と対話できるようにするMicrosoft Kinect（登録商標）モーションセンサ、Microsoft Xbox（登録商標）360
ゲームコントローラ、ジェスチャーおよび発話コマンドを用いた入力を受けるためのインターフェイスを提供する装置等の、モーション検知および／またはジェスチャー認識装置を含み得る。ユーザインターフェイス入力装置はまた、ユーザから目の動き（たとえば写真撮影時および／またはメニュー選択時の「まばたき」）を検出して目のジェスチャーを入力装置（たとえばGoogle Glass（登録商標））への入力として変換するGoogle Glass（登録商標）まばたき検出器等のアイジェスチャー認識装置を含み得る。加えて、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通して音声認識システム（たとえばSiri（登録商標）ナビゲータ）と対話できるようにする音声認識検知装置を含み得る。
【０１４０】
ユーザインターフェイス入力装置のその他の例は、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザレンジファインダー、および視線トラッキング装置等のオーディオ／
ビジュアル装置を含むが、これらに限定されるものではない。加えて、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジトロン断層撮影、医療用超音波検査装置等の、医療用撮像入力装置を含み得る。ユーザインターフェイス入力装置はまた、たとえば、ＭＩＤＩキーボード、デジタル音楽機器等といった音声入力装置を含み得る。
【０１４１】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、または音声出力装置といった非ビジュアルディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、たとえば液晶ディスプレイ（ＬＣＤ）またはプラズマディスプレイを用いるフラットパネル装置、投射装置、タッチスクリーン等であってもよい。一般に、「出力装置」という用語の使用は、情報をコンピュータシステム９００からユーザまたはその他のコンピュータに出力するための可能なすべての種類の装置およびメカニズムを含むことを意図している。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、作図装置、音声出力装置、およびモデムといった、テキスト、グラフィックおよびオーディオ／ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【０１４２】
記憶サブシステム９１８は、コンピュータシステム９００が使用する情報を格納するためのリポジトリまたはデータストアを提供する。記憶サブシステム９１８は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。処理サブシステム９０４によって実行されたときに上記機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、記憶サブシステム９１８に格納されてもよい。ソフトウェアは、処理サブシステム９０４の１つ以上の処理ユニットによって実行されてもよい。記憶サブシステム９１８はまた、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【０１４３】
記憶サブシステム９１８は、揮発性および不揮発性メモリデバイスを含む１つ以上の非一時的なメモリデバイスを含み得る。図９に示されるように、記憶サブシステム９１８は、システムメモリ９１０およびコンピュータ読取可能記憶媒体９２２を含む。システムメモリ９１０は、プログラム実行中に命令とデータを格納するための揮発性メインランダムアクセスメモリ（ＲＡＭ）および固定命令が格納されている不揮発性読取専用メモリ（ＲＯＭ）またはフラッシュメモリを含む、いくつかのメモリを含み得る。いくつかの実装例において、たとえば起動中のコンピュータシステム９００内の要素間の情報転送を補助する基本的なルーチンを含む基本的な入力／出力システム（ＢＩＯＳ）は、典型的にＲＯＭに格納され得る。ＲＡＭは典型的に、処理サブシステム９０４が現在操作および実行しているデータおよび／またはプログラムモジュールを含む。いくつかの実装例において、システムメモリ９１０は、スタティックランダムアクセスメモリ（ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（ＤＲＡＭ）等の種類が異なる複数のメモリを含み得る。
【０１４４】
限定ではなく一例として、図９に表わされるように、システムメモリ９１０は、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルデータベース管理システム（ＲＤＢＭＳ）等を含み得るアプリケーションプログラム９１２と、プログラムデータ９１４と、オペレーティングシステム９１６とを格納し得る。一例として、オペレーティングシステム９１６は、さまざまなバージョンのMicrosoft Windows（登録商標）、Apple Macintosh（登録商標）、および／またはLinux（登録商標
）オペレーティングシステム、さまざまな市販のUNIX（登録商標）またはUNIXのようなオペレーティングシステム（さまざまなGNU／Linuxオペレーティングシステム、Google Chrome（登録商標）ＯＳ等を含むがこれらに限定されるものではない）および／または、iOS
、Windows（登録商標）Phone、Android（登録商標）ＯＳ、BlackBerry（登録商標） 10 
ＯＳ、およびPalm（登録商標）ＯＳオペレーティングシステム等のモバイルオペレーティングシステムを含み得る。
【０１４５】
コンピュータ読取可能記憶媒体９２２は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。処理サブシステム９０４のプロセッサによって実行されたときに上記機能を提供するソフトウェア（プログラム、コードモジュール、命令）は、記憶サブシステム９１８に格納されてもよい。一例として、コンピュータ読取可能記憶媒体９２２は、ハードディスクドライブ、磁気ディスクドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、Blu-Ray（登録商標）ディスク、またはその他の光媒体等の光ディスクドライブ
といった、不揮発性メモリを含み得る。コンピュータ読取可能記憶媒体９２２は、Zip（
登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ、セキュアデジタル（ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープ等を含み得るが、これらに限定されるものではない。コンピュータ読取可能記憶媒体９２２はまた、フラッシュメモリベースのＳＳＤ、エンタープライズフラッシュドライブ、ソリッドステートＲＯＭ等といった不揮発性メモリに基づくソリッドステートドライブ（ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ等といった揮発性メモリに基づくＳＳＤ、ＤＲＡＭとフラッシュメモリベースのＳＳＤを組み合わせたものを用いる、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（ＭＲＡＭ）ＳＳＤ、およびハイブリッドＳＳＤを含み得る。コンピュータ読取可能媒体９２２は、コンピュータ読取可能命令、データ構造、プログラムモジュール、およびコンピュータシステム９００のためのその他のデータの記憶域を提供し得る。
【０１４６】
特定の実施形態では、記憶サブシステム９００はまた、コンピュータ読取可能記憶媒体９２２にさらに接続することができるコンピュータ読取可能記憶媒体リーダ９２０を含み得る。システムメモリ９１０とともに、また、任意でシステムメモリ９１０と組み合わされて、コンピュータ読取可能記憶媒体９２２は、コンピュータ読取可能情報を格納するための、遠隔、ローカル、固定、および／またはリムーバブル記憶装置プラス記憶媒体を、包括的に代表し得る。
【０１４７】
特定の実施形態では、コンピュータシステム９００は、１つ以上の仮想マシンを実行するためのサポートを提供し得る。コンピュータシステム９００は、仮想マシンの構成および管理を容易にするためのハイパーバイザといったプログラムを実行し得る。各仮想マシンに、メモリ、計算（たとえばプロセッサ、コア）、Ｉ／Ｏ、およびネットワーキングリソースが割当てられていてもよい。各仮想マシンは、典型的に、コンピュータシステム９００が実行するその他の仮想マシンによって実行されるオペレーティングシステムと同じでも異なっていてもよい、自身のオペレーティングシステムを実行する。したがって、いくつかの例では複数のオペレーティングシステムがコンピュータシステム９００によって同時に実行されるであろう。一般的に、各仮想マシンはその他の仮想マシンから独立して実行される。
【０１４８】
通信サブシステム９２４は、その他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム９２４は、コンピュータシステム９００以外のシステムからデータを受信しコンピュータシステム９００以外のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム９２４によって、コンピュータシステム９００は、情報をクライアントコンピューティングデバイスから受信しかつ情報をクライアントコンピューティングデバイスに送信するために１つ以上のクライアントコンピューティングデバイスへのインターネットを介した通信チャネルを確立することができるであろう。
【０１４９】
通信サブシステム９２４は、有線通信プロトコルおよび／または無線通信プロトコル双方をサポートし得る。たとえば、特定の実施形態では、通信サブシステム９２４は、（たとえば携帯電話技術、３Ｇ、４ＧまたはＥＤＧＥ（グローバル進化型高速データレート）等の高度データネットワーク技術、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格、またはその他のモバイル通信技術、またはそれらの任意の組み合わせ）を用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（ＲＦ）トランシーバコンポーネント、グローバルポジショニングシステム（ＧＰＳ）レシーバコンポーネント、および／またはその他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム９２４は、無線インターフェイスに加えてまたはその代わりに有線ネットワーク接続（たとえばイーサネット）を提供することができる。
【０１５０】
通信サブシステム９２４は、さまざまな形態のデータを送受信することができる。たとえば、いくつかの実施形態では、通信サブシステム９２４は、構造化および／または非構造化データフィード９２６、イベントストリーム９２８、イベントアップデート９３０等の形態の入力通信を受信し得る。たとえば、通信サブシステム９２４は、ソーシャルメディアネットワークおよび／またはその他の通信サービスのユーザから、リアルタイムで、Twitter（登録商標）フィード、Facebook（登録商標）アップデート、リッチサイトサマ
リー（ＲＳＳ）フィード等のウェブフィード、および／または１以上の第三者情報源からのリアルタイムアップデート等のデータフィード９２６を、受信（または送信）するように構成されてもよい。
【０１５１】
特定の実施形態では、通信サブシステム９２４は、本質的に連続しているまたは無限であり明確な終わりがない場合がある、リアルタイムイベントのイベントストリーム９２８および／またはイベントアップデート９３０を含み得る、連続データストリームの形態のデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通量モニタリング等を含み得る。
【０１５２】
通信サブシステム９２４はまた、構造化および／または非構造化データフィード９２６、イベントストリーム９２８、イベントアップデート９３０等を、コンピュータシステム９００に連結されている１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成されてもよい。
【０１５３】
コンピュータシステム９００は、ハンドヘルドポータブルデバイス（たとえばiPhone（登録商標）携帯電話、iPad（登録商標）計算タブレット、ＰＤＡ）、ウェアラブルデバイス（たとえばGoogle Glass（登録商標）ヘッドマウントディスプレイ）、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまな種類のうちの１つであればよい。
【０１５４】
コンピュータおよびネットワークは常に変化しているという性質のものであるので、図９に表わされるコンピュータシステム９００の説明は、専ら特定の例を意図している。図９に表わされるシステムよりもコンポーネントが多いまたは少ないその他多数の構成が可能である。本明細書が提供する開示と教示に基づいて、当業者はさまざまな実施形態を実現するためのその他のやり方および／または方法を認識するであろう。
【０１５５】
本開示の実施形態によると、リソース管理システムが提供され、リソース管理システムは：サービスの要求を受信するように構成されたリソース要求インターフェイスと；要求に基づいて複数のコンピューティングリソースの定義を特定するように構成されたポリシーマネージャとを含み、定義は、複数のコンピューティングリソースについての１つ以上
の特性を示し、ポリシーマネージャはさらに、複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを決定するように構成され；リソース管理システムはさらに、配置ポリシーおよび定義を用いて、リソースインフラストラクチャシステムにおいて複数のコンピューティングリソースを割当てるように構成されたリソース割当てモジュールを含み、リソースインフラストラクチャシステムは１つ以上のデータセンターを含む。
【０１５６】
一例では、要求は定義を含み、定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、仮想マシン定義は１セットの仮想マシンを特定する。
【０１５７】
一例では、要求は、複数のコンピューティングリソースを使用するためのサービスのタイプを示し、定義はサービスのタイプに基づいて特定される。
【０１５８】
一例では、定義は、複数のコンピューティングリソースを用いてデプロイメントのためのサービスに基づいて特定される。
【０１５９】
一例では、リソース割当てモジュールはさらに、配置コンフィギュレーションに従って、リソースインフラストラクチャシステムにおいて複数のコンピューティングリソースの配置を確立するように構成され、配置コンフィギュレーションは、複数のリソースの配置が確立される地理的位置を含む。
【０１６０】
一例では、配置コンフィギュレーションは複数のグループを示し、配置コンフィギュレーションは、複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、複数のコンピューティングリソースのうちの第１のコンピューティングリソースが配置コンフィギュレーションに基づいて第１のグループに割当てられる。
【０１６１】
一例では、配置コンフィギュレーションは、他のコンピューティングリソースによる複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、セキュリティコンフィギュレーションは、複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す。
【０１６２】
一例では、セキュリティコンフィギュレーションは、複数のコンピューティングリソースをサポートするためにハイパーバイザに割当てられる１セットの仮想マシンをさらに示す。
【０１６３】
一例では、配置コンフィギュレーションはパフォーマンスコンフィギュレーションを含み、パフォーマンスコンフィギュレーションは、第１のハイパーバイザに割当てられる第１のコンピューティングリソースを示し、かつ、第２のハイパーバイザに割当てられる第２のコンピューティングリソースを示し、複数のコンピューティングリソースは第１のコンピューティングリソースおよび第２のコンピューティングリソースを含む。
【０１６４】
本開示の別の実施形態によると、コンピュータシステムが提供され、コンピュータシステムは：通信サブシステムと；通信サブシステムに結合された処理サブシステムとを含み、処理サブシステムは：通信サブシステムを介して要求を受信し；要求に基づいて複数のコンピューティングリソースの定義を特定するように構成され、定義は、複数のコンピューティングリソースについての１つ以上の特性を示し、処理サブシステムはさらに；複数のコンピューティングリソースの配置コンフィギュレーションを示す配置ポリシーを決定し；配置ポリシーおよび定義を用いて、リソースインフラストラクチャシステムにおいて複数のコンピューティングリソースを割当てるように構成され、リソースインフラストラクチャシステムは１つ以上のデータセンターを含む。
【０１６５】
一例では、コンピュータシステムは、リソースインフラストラクチャシステムをさらに含む。
【０１６６】
一例では、要求は定義を含み、定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、仮想マシン定義は１セットの仮想マシンを特定する。
【０１６７】
一例では、要求は、複数のコンピューティングリソースを使用するためのサービスのタイプを示し、定義はサービスのタイプに基づいて特定される。
【０１６８】
一例では、配置コンフィギュレーションは複数のグループを示し、配置コンフィギュレーションは、複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、複数のコンピューティングリソースのうちの第１のコンピューティングリソースが配置コンフィギュレーションに基づいて第１のグループに割当てられる。
【０１６９】
一例では、配置コンフィギュレーションは、他のコンピューティングリソースによる複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、セキュリティコンフィギュレーションは、複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す。
【０１７０】
上述のリソース管理システムおよびコンピュータシステムのコンポーネントの特定のオペレーションプロセスについて、同一概念を共有する関連の方法／システムの実施形態における対応のステップ／コンポーネントが参照され得、当該参照も関連ユニットの開示と見なされることが当業者に明らかである。したがって、処理される特定のオペレーションの一部は、説明を簡潔にするために繰返してまたは詳細に説明されない。
【０１７１】
本発明の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。変形例は、開示された特徴の任意の関連する組み合わせを含む。本発明の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施形態について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかであるべきである。上記の実施形態のさまざまな特徴および局面は、個別にまたはともに使用され得る。
【０１７２】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを使用して本発明の実施形態について説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施形態は、ＦＰＧＡ、ＡＳＩＣ等を含むハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはこれらの組み合わせを使用して実現されてもよい。本明細書に記載されるさまざまなプロセスは、同じプロセッサ上で、または任意に組み合わされたさまざまなプロセッサ上で実現することができる。したがって、コンポーネントまたはモジュールがいくつかのオペレーションを実行するように構成されるものと記載されているが、このような構成は、たとえば、オペレーションを実行するように電子回路を設計することによって、オペレーションを実行するようにプログラム可能な電子回路（マイクロプロセッサなど）をプログラミングすることによって、またはこれらを組み合わせることによって、達成することができる。プロセス同士は、プロセス間通信のための従来の技術を含むがこれらに限定されるものではないさまざまな技術を用いて通信することができ、異なる対のプロセスが異なる技術を用いてもよく、または、同じ対のプロセスが異なる時間に異なる技術を用いてもよい。
【０１７３】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除ならびに他の変形および変更がそれに対してなされてもよいということは明白であろう。このように、特定の発明の実施形態を記載してきたが、これらは限定的であるよう意図されるものではない。さまざまな変更例および同等例は添付の特許請求の範囲内にある。
【図１Ａ】
2020098621.tif 000004
【図１Ｂ】
2020098621.tif 000005
【図２】
2020098621.tif 000006
【図３】
2020098621.tif 000007
【図４】
2020098621.tif 000008
【図５】
2020098621.tif 000009
【図６】
2020098621.tif 000010
【図７】
2020098621.tif 000011
【図８】
2020098621.tif 000012
【図９】
2020098621.tif 000013
【手続補正書】
【提出日】令和2年2月20日(2020.2.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
サービスの要求を受信することと、
前記要求に基づいて複数のコンピューティングリソースの定義をコンピュータシステムによって特定することとを備え、前記定義は、前記複数のコンピューティングリソースの配置についての１つ以上の特性を示し、前記方法はさらに、
複数の配置ポリシーのうちの他のどのポリシーよりも、前記複数のコンピューティングリソースの配置についての前記１つ以上の特性のうちのより多くを配置ポリシーが満たすと特定することに基づいて、前記複数のコンピューティングリソースの配置コンフィギュレーションを示す前記配置ポリシーを前記複数の配置ポリシーから前記コンピュータシステムによって決定することと、
前記配置ポリシーおよび前記定義を用いて、リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースを割当てることとを備え、前記リソースインフラストラクチャシステムは１つ以上のデータセンターを含む、方法。
【請求項２】
前記要求は前記定義を含み、前記定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、前記仮想マシン定義は１セットの仮想マシンを特定する、請求項１に記載の方法。
【請求項３】
前記要求は、前記複数のコンピューティングリソースを使用するためのサービスのタイプを示し、前記定義は前記サービスのタイプに基づいて特定される、請求項１または２に記載の方法。
【請求項４】
前記定義は、前記複数のコンピューティングリソースを用いてデプロイメントのためのサービスに基づいて特定される、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記配置コンフィギュレーションに従って、前記リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースの配置を確立することをさらに備え、前記配置コンフィギュレーションは、前記複数のリソースの配置が確立される地理的位置を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記配置コンフィギュレーションは複数のグループを示し、前記配置コンフィギュレーションは、前記複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、前記複数のコンピューティングリソースのうちの第１のコンピューティングリソースが前記配置コンフィギュレーションに基づいて前記第１のグループに割当てられる、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記配置コンフィギュレーションは、他のコンピューティングリソースによる前記複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースをサポートするために前記ハイパーバイザに割当てられる１セットの仮想マシンをさらに示す、請求項７に記載の方法。
【請求項９】
前記配置コンフィギュレーションはパフォーマンスコンフィギュレーションを含み、前記パフォーマンスコンフィギュレーションは、第１のハイパーバイザに割当てられる第１のコンピューティングリソースを示し、かつ、第２のハイパーバイザに割当てられる第２のコンピューティングリソースを示し、前記複数のコンピューティングリソースは前記第１のコンピューティングリソースおよび前記第２のコンピューティングリソースを含む、
請求項１から８のいずれか一項に記載の方法。
【請求項１０】
システムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されて前記１つ以上のプロセッサが読取可能なメモリとを備え、前記メモリは１セットの命令を格納するように構成され、前記命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
サービスの要求を受信させ、
前記要求に基づいて複数のコンピューティングリソースの定義を特定させ、前記定義は、前記複数のコンピューティングリソースについての１つ以上の特性を示し、さらに、
複数の配置ポリシーのうちの他のどのポリシーよりも、前記複数のコンピューティングリソースの配置についての前記１つ以上の特性のうちのより多くを配置ポリシーが満たすと特定することに基づいて、前記複数のコンピューティングリソースの配置コンフィギュレーションを示す前記配置ポリシーを前記複数の配置ポリシーから決定させ、
前記配置ポリシーおよび前記定義を用いて、リソースインフラストラクチャシステムにおいて前記複数のコンピューティングリソースを割当てさせ、前記リソースインフラストラクチャシステムは１つ以上のデータセンターを含む、システム。
【請求項１１】
前記リソースインフラストラクチャシステムをさらに備える、請求項１０に記載のシステム。
【請求項１２】
前記要求は前記定義を含み、前記定義は、プロセッサ定義、メモリ定義、および仮想マシン定義を含み、前記仮想マシン定義は１セットの仮想マシンを特定する、請求項１０または１１に記載のシステム。
【請求項１３】
前記要求は、前記複数のコンピューティングリソースを使用するためのサービスのタイプを示し、前記定義は前記サービスのタイプに基づいて特定される、請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記配置コンフィギュレーションは複数のグループを示し、前記配置コンフィギュレーションは、前記複数のグループのうちの第１のグループに割当てられる１セットの仮想マシンを特定し、前記複数のコンピューティングリソースのうちの第１のコンピューティングリソースが前記配置コンフィギュレーションに基づいて前記第１のグループに割当てられる、請求項１０から１３のいずれか一項に記載のシステム。
【請求項１５】
前記配置コンフィギュレーションは、他のコンピューティングリソースによる前記複数のコンピューティングリソースへのアクセスを防止するためのセキュリティコンフィギュレーションを含み、前記セキュリティコンフィギュレーションは、前記複数のコンピューティングリソースを管理するために割当てられる１つ以上のハイパーバイザを示す、請求項１０から１４のいずれか一項に記載のシステム。
【請求項１６】
請求項１〜９のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【外国語明細書】
2020098621000001.pdf