(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6060159
(24)【登録日】2016年12月16日
(45)【発行日】2017年1月11日
(54)【発明の名称】アプリケーション特性に基づく自動ハードウェアプロビジョニングのためのシステムおよび方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20161226BHJP
G06F 9/46 20060101ALI20161226BHJP
【FI】
G06F9/46 462A
G06F9/46 350
【請求項の数】14
【全頁数】12
(21)【出願番号】特願2014-523995(P2014-523995)
(86)(22)【出願日】2012年7月27日
(65)【公表番号】特表2014-524608(P2014-524608A)
(43)【公表日】2014年9月22日
(86)【国際出願番号】US2012048643
(87)【国際公開番号】WO2013022619
(87)【国際公開日】20130214
【審査請求日】2015年5月29日
(31)【優先権主張番号】13/204,494
(32)【優先日】2011年8月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ドシェ,ジェローム
【審査官】
小林 哲雄
(56)【参考文献】
【文献】
米国特許出願公開第2009/0313620(US,A1)
【文献】
特開2007−219964(JP,A)
【文献】
特開2009−193205(JP,A)
【文献】
米国特許出願公開第2008/0244600(US,A1)
【文献】
米国特許出願公開第2006/0253849(US,A1)
【文献】
特開2005−174201(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/46
(57)【特許請求の範囲】
【請求項1】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムであって、
コンピュータと、
前記コンピュータ上で実行するテンプレートエンジンとを備え、前記テンプレートエンジンは、アプリケーションに関連するメタデータを含む当該アプリケーションを受信するように構成され、さらに
仮想化環境と、
各々が、前記仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートとを備え、
前記テンプレートエンジンが前記関連するメタデータを含むアプリケーションを受信したとき、前記テンプレートエンジンは、
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定し、
前記リソース要求を前記複数のテンプレートと比較し、
前記リソース要求にとって適切なテンプレートを識別し、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて前記仮想化環境内のリソースをプロビジョニングするように、構成される、システム。
【請求項2】
前記テンプレートエンジンはさらに、
前記アプリケーションの性能をモニタし、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するように、構成される、請求項1に記載のシステム。
【請求項3】
前記仮想化環境をホストするように構成された複数の汎用ハードウェアリソースを含むハードウェア環境をさらに備える、請求項1または2に記載のシステム。
【請求項4】
前記テンプレートエンジンはさらに、
前記アプリケーションの性能をモニタし、
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するように、構成される、請求項3に記載のシステム。
【請求項5】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項1から4のいずれかに記載のシステム。
【請求項6】
前記テンプレートエンジンはさらに、前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするように構成される、請求項1から5のいずれかに記載のシステム。
【請求項7】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングするための、コンピュータにより実現される方法であって、
コンピュータ上で実行するテンプレートエンジンでアプリケーションに関連するメタデータを含む当該アプリケーションを受信するステップを含み、前記テンプレートエンジンは、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートを含み、さらに
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するステップと、
前記リソース要求を前記複数のテンプレートと比較するステップと、
前記リソース要求にとって適切なテンプレートを識別するステップと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするステップとを含む、方法。
【請求項8】
コンピュータによって実行されると前記コンピュータに以下のステップを実行させる命令を含むコンピュータプログラムであって、当該以下のステップは、
コンピュータ上で実行するテンプレートエンジンでアプリケーションに関連するメタデータを含む当該アプリケーションを受信するステップを含み、前記テンプレートエンジンは、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートを含み、さらに
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するステップと、
前記リソース要求を前記複数のテンプレートと比較するステップと、
前記リソース要求にとって適切なテンプレートを識別するステップと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするステップとを含む、コンピュータプログラム。
【請求項9】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングする装置であって、
アプリケーションに関連するメタデータを含む当該アプリケーションを受信するように構成された受信モジュールと、
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するように構成された決定モジュールと、
前記リソース要求を複数のテンプレートと比較するように構成された比較モジュールとを備え、前記複数のテンプレートは各々、仮想化環境から利用できる異なるリソースを定義し、さらに
前記リソース要求にとって適切なテンプレートを識別するように構成された識別モジュールと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて前記仮想化環境内のリソースをプロビジョニングするように構成されたプロビジョニングモジュールとを備える、装置。
【請求項10】
前記仮想化環境は、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされる、請求項9に記載の装置。
【請求項11】
前記アプリケーションの性能をモニタするように構成されたモニタリングモジュールと、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するように構成された第1の調整モジュールとをさらに備える、請求項10に記載の装置。
【請求項12】
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するように構成された第2の調整モジュールをさらに備える、請求項11に記載の装置。
【請求項13】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項9から12のいずれかに記載の装置。
【請求項14】
前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするように構成されたアンデプロイモジュールをさらに備える、請求項9から13のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、概して、アプリケーションサーバ環境におけるアプリケーションのデプロイメント(deployment)に関し、具体的には、アプリケーション特性に基づく自動ハードウェアプロビジョニング(provisioning)のためのシステムおよび方法に関する。
【背景技術】
【0002】
背景
典型的に、Java(登録商標)アプリケーションのようなアプリケーションのデプロイメントは、先ず物理リソースを確保(たとえばサーバを集めグループ化することによって1つのクラスタを形成)してから、上記物理リソースに対してこのアプリケーションをデプロイすることによって行なわれる。ハードウェアの定義(すなわち物理リソースの構成)は静的(static)である。そのため、たとえばデプロイされたアプリケーションがより高い計算能力またはより低い計算能力を必要とするとき、この技術にそれほど柔軟性はない。このような静的な定義は、ハードウェア利用の不十分な最適化、ならびにマシン償却および消費電力コストの増加につながる。加えて、デプロイメントは一般的にアプリケーションサーバに依存する。これは、あるアプリケーションサーバ(たとえばオラクルグラスフィッシュサーバ(Oracle Glassfish Server))から別のアプリケーションサーバ(たとえばオラクルウェブロジックサーバ(Oracle WebLogic server))への切換には、一般的に、新たな構成およびそれに続いてリデプロイメント(redeployment)が必要であることを意味する。これらが、本発明の実施の形態が対象としている一般的な分野である。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
本明細書に記載のように、アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムおよび方法が提供される。ある実施の形態に従うと、システムは、コンピュータ読取可能な媒体およびプロセッサを含むコンピュータと、このコンピュータ上で実行するテンプレートエンジンとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成される。システムはまた、仮想化環境と、各々が、仮想化環境内で利用できる異なるリソースを定義する、複数のテンプレートとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信すると、関連するメタデータに基づいてアプリケーションのリソース要求を決定し、リソース要求を複数のテンプレートと比較し、リソース要求にとって適切なテンプレートを識別し、適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングする。次に、ハードウェアリソースを、仮想化環境のニーズに応じて動的に割当てることができる。このような自動プロビジョニングによって、プロセスが簡略化されるので、ユーザにとって、アプリケーションのデプロイメントおよびアンデプロイメント(undeployment)が容易になる。加えて、所与のアプリケーションに対して割当てられたリソースを性能に基づいて動的に調整することができる。これは、多数のインプリメンテーション、たとえばクラウドコンピューティングにおいて有用となり得る。
【図面の簡単な説明】
【0004】
【
図1】従来のデプロイメント環境のブロック図を示す。
【
図2】ある実施の形態に従う、自動ハードウェアプロビジョニングのためのシステムのブロック図を示す。
【
図3】ある実施の形態に従う、テンプレートエンジンのブロック図を示す。
【
図4】ある実施の形態に従う、デプロイメント環境を動的にアップデートするためのシステムのブロック図を示す。
【
図5】ある実施の形態に従う、アプリケーション特性に基づいてハードウェアリソースを自動的にプロビジョニングする方法を示す。
【
図6】本発明のいくつかの実施の形態に従う、自動ハードウェアプロビジョニングのための装置の機能ブロック図を示す。
【発明を実施するための形態】
【0005】
詳細な説明
以下の説明において、本発明は、添付の図面に限定ではなく例示を目的として示される。本開示においてさまざまな実施の形態と呼んでいるものは、必ずしも同じ実施の形態ではなく、さまざまなという表現は、少なくとも1つを意味する。特定のインプリメンテーションについて述べているが、これは専ら例示のためであることが理解される。他の要素および構成を本発明の範囲および精神から逸脱することなく使用し得ることが、当業者によって認識されるであろう。
【0006】
さらに、場合によっては、本発明を十分に説明するために具体的な詳細事項が多数記載される。しかしながら、このような具体的な詳細事項がなくとも本発明を実施し得ることは、当業者にとって明らかであろう。それ以外の場合においては、周知の特徴を詳細に説明しすぎて本発明がかえって不明瞭になることを避けるようにしている。
【0007】
本明細書に記載のように、アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムおよび方法が提供される。ある実施の形態に従うと、システムは、コンピュータ読取可能な媒体およびプロセッサを含むコンピュータと、このコンピュータ上で実行するテンプレートエンジンとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成される。システムはまた、仮想化環境と、各々が、仮想化環境内で利用できる異なるリソースを定義する、複数のテンプレートとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信すると、関連するメタデータに基づいてアプリケーションのリソース要求を決定し、リソース要求を複数のテンプレートと比較し、リソース要求にとって適切なテンプレートを識別し、適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングする。次に、ハードウェアリソースを、仮想化環境のニーズに応じて動的に割当てることができる。このような自動プロビジョニングによって、プロセスが簡略化されるので、ユーザにとって、アプリケーションのデプロイメントおよびアンデプロイメントが容易になる。加えて、所与のアプリケーションに対して割当てられたリソースを性能に基づいて動的に調整することができる。これは、多数のインプリメンテーション、たとえばクラウドコンピューティングにおいて有用となり得る。
【0008】
このような遅延バインディング(late binding)のさらに他の利点は、システムが、アプリケーションの特性および性能に基づいてマシンの割当を最適化できることを含む。システムは、アプリケーションの使用統計に基づいて、使用する仮想マシンの数を増減することもできる。加えて、サーバ1台当たりの実行アプリケーションの密度を、仮想マシンの移動/起動または停止によって改善できる。アプリケーションがデプロイされると、ハードウェアの割当をシステムが行なうので、アプリケーションサーバをより簡単にメンテナンスできる。また、ハードウェアの使用効率が高くなるので、ハードウェアおよび消費電力コストを削減できる。
【0009】
図1は、従来のデプロイメント環境のブロック図を示す。従来のシステムでは、ハードウェアインフラストラクチャ(たとえば複数のマシン、データベース、アプリケーションサーバ等)を手作業でセットアップしてから構成した後でなければ、アプリケーションをデプロイできない。
図1に示されるように、さまざまなアプリケーション100をデプロイに利用することができる。これらは、アプリケーション1 102、アプリケーション2 104、…アプリケーションN 106を含む。これらのアプリケーションのうちいずれかをデプロイするには、その前に適切なシステムを手作業で構成しなければならない108。この、静的に定義されたシステム110は、通例、静的定義112に基づき、かつ、適切なデプロイおよびデプロイされているアプリケーションの動作に必要と考えられるハードウェアリソース114およびソフトウェアリソースを含む。必要なリソースが取得されたら、静的に定義されたシステムを、たとえばクラスタまたはその他の適切な構成をなすように、構成することができる。
【0010】
続いて、上記アプリケーションのうちの1つ以上を、120で示す静的に定義されたシステムに、手作業でデプロイすることができる118。この例において、静的に定義されたシステムは複数のサーバ(サーバ1 122、サーバ2 124、…サーバN 126)を有し、これらのサーバ各々に自身のリソースがあり、各サーバにアプリケーションのうち2つがデプロイされている。しかしながら、このようなシステムには静的であるという問題がある。たとえば、このシステムに対するリソースの割当に誤りがあった場合(割当てられたリソースの数が過剰または過少)、アプリケーションが正しくまたは効率的に機能しない可能性がある。加えて、このようなシステムを変更する場合、一般的には、アプリケーションを、先ずアンデプロイし、新たに割当てられたシステムに対してリデプロイしなければならない。結果として、この期間中アプリケーションを利用できないという事態が生じ得る。
【0011】
ある実施の形態に従い、仮想化を利用して、物理リソース(ハードウェアインフラストラクチャ)を、動的かつ自動的に、アプリケーションのデプロイメントに関連付けることができる。デプロイメントに先立って物理リソースをアプリケーションに関連付ける必要はなく、デプロイメント中に適切な物理リソースを動的に決定し割当てればよい。加えて、デプロイされたアプリケーションの性能をモニタすることにより、最初に割当てられた物理リソースを、アプリケーションをリデプロイすることなく、動的にアップデートできる。
【0012】
ある実施の形態に従い、アプリケーションを、仮想化環境内において仮想マシン内で実行している1つ以上のアプリケーションサーバ上にデプロイすることができる。ハードウェア(物理)リソースは、アプリケーションを既存のハードウェアリソースにマッピングするのではなく、アプリケーションの特性に基づいて提供できる。したがって、ハードウェアの割当は、アプリケーションのデプロイに伴って生じることになる。このため、アプリケーションをその性能に基づいてデプロイする環境(たとえばクラスタ)のカスタマイズに対するシステムの柔軟性がより高くなる。
【0013】
図2は、ある実施の形態に従う、自動ハードウェアプロビジョニングのためのシステムのブロック図を示す。
図2に示されるように、複数のアプリケーション200をデプロイに利用することができる。この例では、手作業でシステムを構成せずに、最初にアプリケーションをデプロイすることができる。各アプリケーション(アプリケーション1 202、アプリケーション2 206、…アプリケーションN 210)は、そのアプリケーションに固有のメタデータ(204、208、212)を含む。メタデータは、アプリケーションのデプロイ時にそのアプリケーションに対して割当てる必要があるシステムリソースを定義する。214で、あるアプリケーションおよびそのメタデータがデプロイのために送信される。テンプレートエンジン216は、そのアプリケーションおよびメタデータを受信する。テンプレートエンジンは、メタデータを解析し218、アプリケーションが要求するリソースを識別することができる。たとえば、これらリソースは、多数のアプリケーションサーバ、データベース、またはメッセージサービスを含み得る。テンプレートエンジンは、各々が、異なるリソースに関連付けられた、複数のテンプレートを含む。テンプレートエンジンは、自身によるメタデータの解析に基づいて、このテンプレートエンジンが利用できるテンプレート222の中から適切なテンプレートを識別することができる220。テンプレートエンジンは、これらテンプレートを用いて、仮想化環境226からの適切なリソースをプロビジョニングすることができる。
【0014】
ある実施の形態に従うと、仮想化環境は1つ以上の仮想マシンを含み得る。
図2に示されるように、仮想化環境は、VM1 228、VM2 230、…VM N 232を含む、複数の仮想マシンを備える。次に、アプリケーションを、プロビジョニングされたリソースを含む仮想化されたハードウェア環境に、デプロイすることができる233。
【0015】
アプリケーションが仮想化環境にデプロイされると、次に、ハードウェアが、アプリケーションのリソース要求に基づいて割当てられる234。ハードウェアは、ハードウェアサーバ、コンピュータ、データベース等の、複数の汎用ハードウェアリソース(238〜242)を含むバックエンドのハードウェア環境236から、割当てることができる。アプリケーションがデプロイされた仮想化環境も、仮想化環境をホストするハードウェア環境も、アプリケーションをリデプロイせずに、動的にアップデートできる。
【0016】
図3は、ある実施の形態に従うテンプレートエンジンのブロック図を示す。ある実施の形態に従うと、ユーザは、アプリケーションのデプロイを選択した場合、このアプリケーションとそのメタデータをテンプレートエンジン300に送信する。テンプレートエンジンは、このアプリケーションおよびメタデータを受信し302、メタデータを解析してアプリケーションのリソース要求を決定する。アプリケーションがメタデータを含まない場合またはメタデータがリソース要求を含まない場合、テンプレートエンジンは、このアプリケーションに対して、リソースのデフォルトセットを割当てることができる。これは、デプロイされているアプリケーションの種類に基づいてテンプレートエンジンが選択する、予め構成された1つ以上のデフォルト設定を用いて行なうことができる。加えて、リソースの中には、よく似た種類のアプリケーションに典型的なリソース要求の詳細を示す、格納されている情報に基づいて、暗黙的に識別できるリソースがある。
【0017】
テンプレートエンジンは、アプリケーションのリソース要求を決定すれば、このリソース要求を、テンプレートエンジンに登録されている(すなわち利用できる)テンプレートと比較することができる306。テンプレート308は、特に、アプリケーションサーバテンプレート310、メッセージサービステンプレート312、およびデータベーステンプレート314を含み得る。テンプレートエンジンは、アプリケーションのリソース要求に基づいて適切なテンプレートを識別することができ316、かつ、識別されたテンプレートを用いて適切なリソースをプロビジョニングすることができる318。テンプレートエンジンは、適切なリソースをプロビジョニングするとき、リソースすべてに関するアドレス情報(IPアドレス等)を取得する。次に、テンプレートエンジンは、アプリケーションがリソースすべてと直ちに通信できるよう、リソースに関するアドレス情報を用いてアプリケーションを正式にデプロイすることができる。
【0018】
図4は、ある実施の形態に従う、デプロイメント環境を動的にアップデートするためのシステムのブロック図を示す。上記のように、テンプレートエンジンは、リソースをプロビジョニングし、テンプレートを用いてアプリケーションを仮想化環境にデプロイすることができる。
図4に示されるように、アプリケーション1 400を、仮想化されたハードウェア環境404にデプロイすることができる402。仮想化環境404は、複数の仮想マシン(VM1 406およびVM2 408等)を含み得る。
【0019】
続いて、ハードウェアリソースをハードウェア環境412から割当てることができる410。アプリケーションを仮想化環境にデプロイし、ハードウェアリソースを遅延バインディングによって割当てることにより、特定のアプリケーションに対して割当てられたリソースを、観察されたアプリケーションの要求に応じて動的に調整することができ、さらに、アプリケーションの性能の要求に応じて調整することができる。
【0020】
図4に示されるように、アプリケーション1 400は、ハードウェア環境412内のハードウェアリソース1〜3(414〜418)上にホストされている2つの仮想マシンVM1およびVM2を含む、仮想化ハードウェア環境に、デプロイされている。テンプレートエンジンは、最初に構成された仮想化ハードウェア環境におけるアプリケーションの性能をモニタすることができる420。アプリケーションを再構成する必要があれば、テンプレートエンジンが、現在割当てられているリソースを識別し、それを、新たに要求されているリソースと比較することができる。次に、テンプレートエンジンは、仮想化ハードウェア環境に割当てられているリソースを動的に調整することができる422。
図4に示されるように、動的に調整された仮想化環境423は、動的に調整されたハードウェア環境424によってホストされている。アプリケーションが、現在割当てられている仮想および/またはハードウェア環境において正しく機能していないと判断された場合、各環境にリソースをさらに追加することができる。たとえば、VM3 426およびVM4 428を仮想化環境に追加することができ、さらに複数のハードウェアリソース〜ハードウェアリソースN 430を、ハードウェア環境に追加できる。しかしながら、最初に割当てたリソースの数が多すぎ、かつ、アプリケーションがこれらすべてを利用していなかった場合、テンプレートエンジンは、このアプリケーションに割当てられた仮想化ハードウェアリソースを、動的に減じることができる。同様に、あるアプリケーションをそれ以上使用しない場合は、このアプリケーションをアンデプロイすることができる。これにより、仮想化環境が削除されて仮想マシンが除去される。これはあたかもアプリケーションがデプロイされたことがないような状態である。
【0021】
図5は、ある実施の形態に従う、アプリケーション特性に基づいてハードウェアリソースを自動的にプロビジョニングする方法を示す。ステップ500で、テンプレートエンジンにおいてアプリケーションおよびそれに関連するメタデータを受信する。ステップ502で、メタデータに基づきアプリケーションのリソース要求を決定する。ステップ504で、リソース要求を複数のテンプレートと比較する。ステップ506で、リソース要求にとって適切なテンプレートを識別する。ステップ508で、テンプレートを用い、リソースを、そのリソースのための仮想化環境の中でプロビジョニングする。
【0022】
図5に示される方法はさらに、複数の汎用ハードウェアリソースを含むハードウェア環境によって、仮想化環境をホストすることを含み得る。これはさらに、アプリケーションの性能をモニタすることと、仮想化環境内のリソースをアプリケーションの性能に基づいて動的に調整することとを含み得る。加えて、ハードウェア環境内の汎用ハードウェアリソースをアプリケーションの性能に基づいて動的に調整することができる。また、仮想化環境を削除することによってアプリケーションをアンデプロイすることができる。
【0023】
いくつかの実施の形態に従い、
図6は、アプリケーション特性に基づいてリソースを動的にプロビジョニングする装置600の機能ブロック図を示す。装置600は、上記本発明の原理に従って構成されている。装置600の機能ブロックは、本発明の原理を実施するために、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって、実現し得る。
図6に示される機能ブロックを組み合わせるまたは分離することによってサブブロックを構成して上記本発明の原理を実現し得ることが、当業者によって理解される。したがって、本明細書における説明は、記載されている機能ブロックの、可能な組合せまたは分離またはさらに他の定義を、サポートし得る。
【0024】
図6に示されるように、装置600は、受信モジュール610、決定モジュール620、比較モジュール630、識別モジュール640、およびプロビジョニングモジュール650を含み得る。
【0025】
実施の形態によっては、受信モジュール610を、アプリケーションおよび関連するメタデータを受信するように構成できる。決定モジュール620は、関連するメタデータに基づいてアプリケーションのリソース要求を決定するように構成できる。比較モジュール630は、リソース要求を、各々が仮想化環境から利用できる異なるリソースを定義する複数のテンプレートと比較するように構成できる。実施の形態によっては、テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含み得る。実施の形態によっては、仮想化環境が、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされてもよい。
【0026】
識別モジュール640は、リソース要求にとって適切なテンプレートを識別するように構成できる。プロビジョニングモジュール650は、ハードウェアリソースに対する遅延バインディングのために適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするように構成できる。
【0027】
実施の形態によっては、装置600が、モニタリングモジュール660および第1の調整モジュール670をさらに含んでもよい。モニタリングモジュール660は、アプリケーションの性能をモニタするように構成できる。第1の調整モジュール670は、アプリケーションの性能に基づいて仮想化環境内のリソースを動的に調整するように構成できる。実施の形態によっては、装置600が、アプリケーションの性能に基づいてハードウェア環境内の汎用ハードウェアリソースを動的に調整するように構成できる第2の調整モジュール680をさらに含んでもよい。実施の形態によっては、装置600が、仮想化環境を削除することによってアプリケーションをデプロイするように構成できるアンデプロイモジュール690をさらに含んでもよい。
【0028】
本発明の1つの実施の形態は、アプリケーション特性に基づいてリソースを自動的にプロビジョニングする装置を含み、この装置は、アプリケーションおよび関連するメタデータを受信するように構成された受信モジュールと、関連するメタデータに基づいてアプリケーションのリソース要求を決定するように構成された決定モジュールと、リソース要求を、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートと比較するように構成された比較モジュールと、リソース要求にとって適切なテンプレートを識別するように構成された識別モジュールと、ハードウェアリソースに対する遅延バインディングのために適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするように構成されたプロビジョニングモジュールとを備える。
【0029】
本発明の別の実施の形態に含まれる装置では、仮想化環境が、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされる。
【0030】
本発明の別の実施の形態は、アプリケーションの性能をモニタするように構成されたモニタリングモジュールと、アプリケーションの性能に基づいて仮想化環境内のリソースを動的に調整するように構成された第1の調整モジュールとを備える装置をさらに含む。
【0031】
本発明の別の実施の形態は、アプリケーションの性能に基づいてハードウェア環境内の汎用ハードウェアリソースを動的に調整するように構成された第2の調整モジュールを備える装置をさらに含む。
【0032】
本発明の別の実施の形態に含まれる装置では、テンプレートが、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む。
【0033】
本発明のさらに別の実施の形態は、仮想化環境を削除することによってアプリケーションをアンデプロイするように構成されたアンデプロイモジュールをさらに備える装置を含む。
【0034】
本発明は、1つ以上のプロセッサ、メモリ、および/または本開示の教示に従いプログラムされた非一時的なコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを1つ以上用いて、適宜実現し得る。適切なソフトウェアコーディングは、熟練したプログラマが本開示の教示に基づいて容易に準備できる。これはソフトウェア技術の当業者には明らかであろう。
【0035】
実施の形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納されたコンピュータ読取可能な記憶媒体であるコンピュータプログラムプロダクトを含む。このコンピュータ読取可能な記憶媒体は、フロッピーディスク(登録商標)、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/またはデータを記憶するのに適した任意の種類の媒体もしくはデバイスを含み得る。
【0036】
本発明に関するこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。これらの側面の特徴を、他の特徴を相応に用いてまたは用いることなく、さまざまな形で組み合わせたものを使用し得ることも理解される。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって当業者が本発明のさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は、以下の特許請求の範囲およびその均等物によって定められることが意図されている。