(57)【要約】  アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムおよび方法が提供される。ある実施の形態に従うと、システムは、コンピュータ読取可能な媒体およびプロセッサを含むコンピュータと、このコンピュータ上で実行するテンプレートエンジンとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成される。システムはまた、仮想化環境と、各々が、仮想化環境内で利用できる異なるリソースを定義する、複数のテンプレートとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信すると、関連するメタデータに基づいてアプリケーションのリソース要求を決定し、リソース要求を複数のテンプレートと比較し、リソース要求にとって適切なテンプレートを識別し、適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングする。次に、ハードウェアリソースを、仮想化環境のニーズに応じて動的に割当てることができる。
2014524608.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムであって、
コンピュータと、
前記コンピュータ上で実行するテンプレートエンジンとを備え、前記テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成され、さらに
仮想化環境と、
各々が、前記仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートとを備え、
前記テンプレートエンジンがアプリケーションおよび関連するメタデータを受信したとき、前記テンプレートエンジンは、
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定し、
前記リソース要求を前記複数のテンプレートと比較し、
前記リソース要求にとって適切なテンプレートを識別し、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて前記仮想化環境内のリソースをプロビジョニングするように、構成される、システム。
【請求項２】
前記テンプレートエンジンはさらに、
前記アプリケーションの性能をモニタし、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するように、構成される、請求項１に記載のシステム。
【請求項３】
前記仮想化環境をホストするように構成された複数の汎用ハードウェアリソースを含むハードウェア環境をさらに備える、請求項１または２に記載のシステム。
【請求項４】
前記テンプレートエンジンはさらに、
前記アプリケーションの性能をモニタし、
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するように、構成される、請求項３に記載のシステム。
【請求項５】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項１から４のいずれかに記載のシステム。
【請求項６】
前記テンプレートエンジンはさらに、前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするように構成される、請求項１から５のいずれかに記載のシステム。
【請求項７】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングするための、コンピュータにより実現される方法であって、
コンピュータ上で実行するテンプレートエンジンでアプリケーションおよび関連するメタデータを受信するステップを含み、前記テンプレートエンジンは、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートを含み、さらに
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するステップと、
前記リソース要求を前記複数のテンプレートと比較するステップと、
前記リソース要求にとって適切なテンプレートを識別するステップと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするステップとを含む、方法。
【請求項８】
前記アプリケーションの性能をモニタするステップと、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するステップとをさらに含む、請求項７に記載の方法。
【請求項９】
複数の汎用ハードウェアリソースを含むハードウェア環境によって前記仮想化環境をホストするステップをさらに含む、請求項７または８に記載の方法。
【請求項１０】
前記アプリケーションの性能をモニタするステップと、
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するステップとをさらに含む、請求項９に記載の方法。
【請求項１１】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項７から１０のいずれかに記載の方法。
【請求項１２】
前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするステップをさらに含む、請求項７から１１のいずれかに記載の方法。
【請求項１３】
１つ以上のコンピュータシステムによって実行されると前記１つ以上のコンピュータシステムに請求項７から１２のいずれかに記載の方法を実行させるプログラム命令を含むコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムが格納されたコンピュータ読取可能な媒体。
【請求項１５】
コンピュータによって実行されると前記コンピュータに以下のステップを実行させる命令が格納された非一時的なコンピュータ読取可能な記憶媒体であって、当該以下のステップは、
コンピュータ上で実行するテンプレートエンジンでアプリケーションおよび関連するメタデータを受信するステップを含み、前記テンプレートエンジンは、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートを含み、さらに
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するステップと、
前記リソース要求を前記複数のテンプレートと比較するステップと、
前記リソース要求にとって適切なテンプレートを識別するステップと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするステップとを含む、非一時的なコンピュータ読取可能な記憶媒体。
【請求項１６】
前記コンピュータによって実行されると、前記コンピュータに、
前記アプリケーションの性能をモニタするステップと、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するステップとを実行させる命令がさらに格納された、請求項１５に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１７】
前記コンピュータによって実行されると、前記コンピュータに、複数の汎用ハードウェアリソースを含むハードウェア環境によって前記仮想化環境をホストするステップを実行させる命令がさらに格納された、請求項１５または１６に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１８】
前記コンピュータによって実行されると、前記コンピュータに、
前記アプリケーションの性能をモニタするステップと、
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するステップとを実行させる命令がさらに格納された、請求項１７に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項１９】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項１５から１８のいずれかに記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２０】
前記コンピュータによって実行されると、前記コンピュータに、前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするステップを実行させる命令がさらに格納された、請求項１５から１９のいずれかに記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２１】
アプリケーション特性に基づいてリソースを自動的にプロビジョニングする装置であって、
アプリケーションおよび関連するメタデータを受信するように構成された受信モジュールと、
前記関連するメタデータに基づいて前記アプリケーションのリソース要求を決定するように構成された決定モジュールと、
前記リソース要求を複数のテンプレートと比較するように構成された比較モジュールとを備え、前記複数のテンプレートは各々、仮想化環境から利用できる異なるリソースを定義し、さらに
前記リソース要求にとって適切なテンプレートを識別するように構成された識別モジュールと、
ハードウェアリソースに対する遅延バインディングのために前記適切なテンプレートを用いて前記仮想化環境内のリソースをプロビジョニングするように構成されたプロビジョニングモジュールとを備える、装置。
【請求項２２】
前記仮想化環境は、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされる、請求項２１に記載の装置。
【請求項２３】
前記アプリケーションの性能をモニタするように構成されたモニタリングモジュールと、
前記アプリケーションの性能に基づいて前記仮想化環境内のリソースを動的に調整するように構成された第１の調整モジュールとをさらに備える、請求項２２に記載の装置。
【請求項２４】
前記アプリケーションの性能に基づいて前記ハードウェア環境内の前記汎用ハードウェアリソースを動的に調整するように構成された第２の調整モジュールをさらに備える、請求項２３に記載の装置。
【請求項２５】
前記テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む、請求項２１に記載の装置。
【請求項２６】
前記仮想化環境を削除することによって前記アプリケーションをアンデプロイするように構成されたアンデプロイモジュールをさらに備える、請求項２１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、概して、アプリケーションサーバ環境におけるアプリケーションのデプロイメント（deployment）に関し、具体的には、アプリケーション特性に基づく自動ハードウェアプロビジョニング（provisioning）のためのシステムおよび方法に関する。
【背景技術】
【０００２】
背景
典型的に、Ｊａｖａ（登録商標）アプリケーションのようなアプリケーションのデプロイメントは、先ず物理リソースを確保（たとえばサーバを集めグループ化することによって１つのクラスタを形成）してから、上記物理リソースに対してこのアプリケーションをデプロイすることによって行なわれる。ハードウェアの定義（すなわち物理リソースの構成）は静的（static)である。そのため、たとえばデプロイされたアプリケーションがより高い計算能力またはより低い計算能力を必要とするとき、この技術にそれほど柔軟性はない。このような静的な定義は、ハードウェア利用の不十分な最適化、ならびにマシン償却および消費電力コストの増加につながる。加えて、デプロイメントは一般的にアプリケーションサーバに依存する。これは、あるアプリケーションサーバ（たとえばオラクルグラスフィッシュサーバ（Oracle Glassfish Server））から別のアプリケーションサーバ（たとえばオラクルウェブロジックサーバ（Oracle WebLogic server））への切換には、一般的に、新たな構成およびそれに続いてリデプロイメント（redeployment）が必要であることを意味する。これらが、本発明の実施の形態が対象としている一般的な分野である。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
本明細書に記載のように、アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムおよび方法が提供される。ある実施の形態に従うと、システムは、コンピュータ読取可能な媒体およびプロセッサを含むコンピュータと、このコンピュータ上で実行するテンプレートエンジンとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成される。システムはまた、仮想化環境と、各々が、仮想化環境内で利用できる異なるリソースを定義する、複数のテンプレートとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信すると、関連するメタデータに基づいてアプリケーションのリソース要求を決定し、リソース要求を複数のテンプレートと比較し、リソース要求にとって適切なテンプレートを識別し、適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングする。次に、ハードウェアリソースを、仮想化環境のニーズに応じて動的に割当てることができる。このような自動プロビジョニングによって、プロセスが簡略化されるので、ユーザにとって、アプリケーションのデプロイメントおよびアンデプロイメント（undeployment）が容易になる。加えて、所与のアプリケーションに対して割当てられたリソースを性能に基づいて動的に調整することができる。これは、多数のインプリメンテーション、たとえばクラウドコンピューティングにおいて有用となり得る。
【図面の簡単な説明】
【０００４】
【図１】従来のデプロイメント環境のブロック図を示す。
【図２】ある実施の形態に従う、自動ハードウェアプロビジョニングのためのシステムのブロック図を示す。
【図３】ある実施の形態に従う、テンプレートエンジンのブロック図を示す。
【図４】ある実施の形態に従う、デプロイメント環境を動的にアップデートするためのシステムのブロック図を示す。
【図５】ある実施の形態に従う、アプリケーション特性に基づいてハードウェアリソースを自動的にプロビジョニングする方法を示す。
【図６】本発明のいくつかの実施の形態に従う、自動ハードウェアプロビジョニングのための装置の機能ブロック図を示す。
【発明を実施するための形態】
【０００５】
詳細な説明
以下の説明において、本発明は、添付の図面に限定ではなく例示を目的として示される。本開示においてさまざまな実施の形態と呼んでいるものは、必ずしも同じ実施の形態ではなく、さまざまなという表現は、少なくとも１つを意味する。特定のインプリメンテーションについて述べているが、これは専ら例示のためであることが理解される。他の要素および構成を本発明の範囲および精神から逸脱することなく使用し得ることが、当業者によって認識されるであろう。
【０００６】
さらに、場合によっては、本発明を十分に説明するために具体的な詳細事項が多数記載される。しかしながら、このような具体的な詳細事項がなくとも本発明を実施し得ることは、当業者にとって明らかであろう。それ以外の場合においては、周知の特徴を詳細に説明しすぎて本発明がかえって不明瞭になることを避けるようにしている。
【０００７】
本明細書に記載のように、アプリケーション特性に基づいてリソースを自動的にプロビジョニングするためのシステムおよび方法が提供される。ある実施の形態に従うと、システムは、コンピュータ読取可能な媒体およびプロセッサを含むコンピュータと、このコンピュータ上で実行するテンプレートエンジンとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信するように構成される。システムはまた、仮想化環境と、各々が、仮想化環境内で利用できる異なるリソースを定義する、複数のテンプレートとを含み得る。テンプレートエンジンは、アプリケーションおよび関連するメタデータを受信すると、関連するメタデータに基づいてアプリケーションのリソース要求を決定し、リソース要求を複数のテンプレートと比較し、リソース要求にとって適切なテンプレートを識別し、適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングする。次に、ハードウェアリソースを、仮想化環境のニーズに応じて動的に割当てることができる。このような自動プロビジョニングによって、プロセスが簡略化されるので、ユーザにとって、アプリケーションのデプロイメントおよびアンデプロイメントが容易になる。加えて、所与のアプリケーションに対して割当てられたリソースを性能に基づいて動的に調整することができる。これは、多数のインプリメンテーション、たとえばクラウドコンピューティングにおいて有用となり得る。
【０００８】
このような遅延バインディング（late binding）のさらに他の利点は、システムが、アプリケーションの特性および性能に基づいてマシンの割当を最適化できることを含む。システムは、アプリケーションの使用統計に基づいて、使用する仮想マシンの数を増減することもできる。加えて、サーバ１台当たりの実行アプリケーションの密度を、仮想マシンの移動／起動または停止によって改善できる。アプリケーションがデプロイされると、ハードウェアの割当をシステムが行なうので、アプリケーションサーバをより簡単にメンテナンスできる。また、ハードウェアの使用効率が高くなるので、ハードウェアおよび消費電力コストを削減できる。
【０００９】
図１は、従来のデプロイメント環境のブロック図を示す。従来のシステムでは、ハードウェアインフラストラクチャ（たとえば複数のマシン、データベース、アプリケーションサーバ等）を手作業でセットアップしてから構成した後でなければ、アプリケーションをデプロイできない。図１に示されるように、さまざまなアプリケーション１００をデプロイに利用することができる。これらは、アプリケーション１  １０２、アプリケーション２  １０４、…アプリケーションＮ  １０６を含む。これらのアプリケーションのうちいずれかをデプロイするには、その前に適切なシステムを手作業で構成しなければならない１０８。この、静的に定義されたシステム１１０は、通例、静的定義１１２に基づき、かつ、適切なデプロイおよびデプロイされているアプリケーションの動作に必要と考えられるハードウェアリソース１１４およびソフトウェアリソースを含む。必要なリソースが取得されたら、静的に定義されたシステムを、たとえばクラスタまたはその他の適切な構成をなすように、構成することができる。
【００１０】
続いて、上記アプリケーションのうちの１つ以上を、１２０で示す静的に定義されたシステムに、手作業でデプロイすることができる１１８。この例において、静的に定義されたシステムは複数のサーバ（サーバ１  １２２、サーバ２  １２４、…サーバＮ  １２６）を有し、これらのサーバ各々に自身のリソースがあり、各サーバにアプリケーションのうち２つがデプロイされている。しかしながら、このようなシステムには静的であるという問題がある。たとえば、このシステムに対するリソースの割当に誤りがあった場合（割当てられたリソースの数が過剰または過少）、アプリケーションが正しくまたは効率的に機能しない可能性がある。加えて、このようなシステムを変更する場合、一般的には、アプリケーションを、先ずアンデプロイし、新たに割当てられたシステムに対してリデプロイしなければならない。結果として、この期間中アプリケーションを利用できないという事態が生じ得る。
【００１１】
ある実施の形態に従い、仮想化を利用して、物理リソース（ハードウェアインフラストラクチャ）を、動的かつ自動的に、アプリケーションのデプロイメントに関連付けることができる。デプロイメントに先立って物理リソースをアプリケーションに関連付ける必要はなく、デプロイメント中に適切な物理リソースを動的に決定し割当てればよい。加えて、デプロイされたアプリケーションの性能をモニタすることにより、最初に割当てられた物理リソースを、アプリケーションをリデプロイすることなく、動的にアップデートできる。
【００１２】
ある実施の形態に従い、アプリケーションを、仮想化環境内において仮想マシン内で実行している１つ以上のアプリケーションサーバ上にデプロイすることができる。ハードウェア（物理）リソースは、アプリケーションを既存のハードウェアリソースにマッピングするのではなく、アプリケーションの特性に基づいて提供できる。したがって、ハードウェアの割当は、アプリケーションのデプロイに伴って生じることになる。このため、アプリケーションをその性能に基づいてデプロイする環境（たとえばクラスタ）のカスタマイズに対するシステムの柔軟性がより高くなる。
【００１３】
図２は、ある実施の形態に従う、自動ハードウェアプロビジョニングのためのシステムのブロック図を示す。図２に示されるように、複数のアプリケーション２００をデプロイに利用することができる。この例では、手作業でシステムを構成せずに、最初にアプリケーションをデプロイすることができる。各アプリケーション（アプリケーション１  ２０２、アプリケーション２  ２０６、…アプリケーションＮ  ２１０）は、そのアプリケーションに固有のメタデータ（２０４、２０８、２１２）を含む。メタデータは、アプリケーションのデプロイ時にそのアプリケーションに対して割当てる必要があるシステムリソースを定義する。２１４で、あるアプリケーションおよびそのメタデータがデプロイのために送信される。テンプレートエンジン２１６は、そのアプリケーションおよびメタデータを受信する。テンプレートエンジンは、メタデータを解析し２１８、アプリケーションが要求するリソースを識別することができる。たとえば、これらリソースは、多数のアプリケーションサーバ、データベース、またはメッセージサービスを含み得る。テンプレートエンジンは、各々が、異なるリソースに関連付けられた、複数のテンプレートを含む。テンプレートエンジンは、自身によるメタデータの解析に基づいて、このテンプレートエンジンが利用できるテンプレート２２２の中から適切なテンプレートを識別することができる２２０。テンプレートエンジンは、これらテンプレートを用いて、仮想化環境２２６からの適切なリソースをプロビジョニングすることができる。
【００１４】
ある実施の形態に従うと、仮想化環境は１つ以上の仮想マシンを含み得る。図２に示されるように、仮想化環境は、ＶＭ１  ２２８、ＶＭ２  ２３０、…ＶＭ  Ｎ  ２３２を含む、複数の仮想マシンを備える。次に、アプリケーションを、プロビジョニングされたリソースを含む仮想化されたハードウェア環境に、デプロイすることができる２３３。
【００１５】
アプリケーションが仮想化環境にデプロイされると、次に、ハードウェアが、アプリケーションのリソース要求に基づいて割当てられる２３４。ハードウェアは、ハードウェアサーバ、コンピュータ、データベース等の、複数の汎用ハードウェアリソース（２３８〜２４２）を含むバックエンドのハードウェア環境２３６から、割当てることができる。アプリケーションがデプロイされた仮想化環境も、仮想化環境をホストするハードウェア環境も、アプリケーションをリデプロイせずに、動的にアップデートできる。
【００１６】
図３は、ある実施の形態に従うテンプレートエンジンのブロック図を示す。ある実施の形態に従うと、ユーザは、アプリケーションのデプロイを選択した場合、このアプリケーションとそのメタデータをテンプレートエンジン３００に送信する。テンプレートエンジンは、このアプリケーションおよびメタデータを受信し３０２、メタデータを解析してアプリケーションのリソース要求を決定する。アプリケーションがメタデータを含まない場合またはメタデータがリソース要求を含まない場合、テンプレートエンジンは、このアプリケーションに対して、リソースのデフォルトセットを割当てることができる。これは、デプロイされているアプリケーションの種類に基づいてテンプレートエンジンが選択する、予め構成された１つ以上のデフォルト設定を用いて行なうことができる。加えて、リソースの中には、よく似た種類のアプリケーションに典型的なリソース要求の詳細を示す、格納されている情報に基づいて、暗黙的に識別できるリソースがある。
【００１７】
テンプレートエンジンは、アプリケーションのリソース要求を決定すれば、このリソース要求を、テンプレートエンジンに登録されている（すなわち利用できる）テンプレートと比較することができる３０６。テンプレート３０８は、特に、アプリケーションサーバテンプレート３１０、メッセージサービステンプレート３１２、およびデータベーステンプレート３１４を含み得る。テンプレートエンジンは、アプリケーションのリソース要求に基づいて適切なテンプレートを識別することができ３１６、かつ、識別されたテンプレートを用いて適切なリソースをプロビジョニングすることができる３１８。テンプレートエンジンは、適切なリソースをプロビジョニングするとき、リソースすべてに関するアドレス情報（ＩＰアドレス等）を取得する。次に、テンプレートエンジンは、アプリケーションがリソースすべてと直ちに通信できるよう、リソースに関するアドレス情報を用いてアプリケーションを正式にデプロイすることができる。
【００１８】
図４は、ある実施の形態に従う、デプロイメント環境を動的にアップデートするためのシステムのブロック図を示す。上記のように、テンプレートエンジンは、リソースをプロビジョニングし、テンプレートを用いてアプリケーションを仮想化環境にデプロイすることができる。図４に示されるように、アプリケーション１  ４００を、仮想化されたハードウェア環境４０４にデプロイすることができる４０２。仮想化環境４０４は、複数の仮想マシン（ＶＭ１  ４０６およびＶＭ２  ４０８等）を含み得る。
【００１９】
続いて、ハードウェアリソースをハードウェア環境４１２から割当てることができる４１０。アプリケーションを仮想化環境にデプロイし、ハードウェアリソースを遅延バインディングによって割当てることにより、特定のアプリケーションに対して割当てられたリソースを、観察されたアプリケーションの要求に応じて動的に調整することができ、さらに、アプリケーションの性能の要求に応じて調整することができる。
【００２０】
図４に示されるように、アプリケーション１  ４００は、ハードウェア環境４１２内のハードウェアリソース１〜３（４１４〜４１８）上にホストされている２つの仮想マシンＶＭ１およびＶＭ２を含む、仮想化ハードウェア環境に、デプロイされている。テンプレートエンジンは、最初に構成された仮想化ハードウェア環境におけるアプリケーションの性能をモニタすることができる４２０。アプリケーションを再構成する必要があれば、テンプレートエンジンが、現在割当てられているリソースを識別し、それを、新たに要求されているリソースと比較することができる。次に、テンプレートエンジンは、仮想化ハードウェア環境に割当てられているリソースを動的に調整することができる４２２。図４に示されるように、動的に調整された仮想化環境４２３は、動的に調整されたハードウェア環境４２４によってホストされている。アプリケーションが、現在割当てられている仮想および／またはハードウェア環境において正しく機能していないと判断された場合、各環境にリソースをさらに追加することができる。たとえば、ＶＭ３  ４２６およびＶＭ４  ４２８を仮想化環境に追加することができ、さらに複数のハードウェアリソース〜ハードウェアリソースＮ  ４３０を、ハードウェア環境に追加できる。しかしながら、最初に割当てたリソースの数が多すぎ、かつ、アプリケーションがこれらすべてを利用していなかった場合、テンプレートエンジンは、このアプリケーションに割当てられた仮想化ハードウェアリソースを、動的に減じることができる。同様に、あるアプリケーションをそれ以上使用しない場合は、このアプリケーションをアンデプロイすることができる。これにより、仮想化環境が削除されて仮想マシンが除去される。これはあたかもアプリケーションがデプロイされたことがないような状態である。
【００２１】
図５は、ある実施の形態に従う、アプリケーション特性に基づいてハードウェアリソースを自動的にプロビジョニングする方法を示す。ステップ５００で、テンプレートエンジンにおいてアプリケーションおよびそれに関連するメタデータを受信する。ステップ５０２で、メタデータに基づきアプリケーションのリソース要求を決定する。ステップ５０４で、リソース要求を複数のテンプレートと比較する。ステップ５０６で、リソース要求にとって適切なテンプレートを識別する。ステップ５０８で、テンプレートを用い、リソースを、そのリソースのための仮想化環境の中でプロビジョニングする。
【００２２】
図５に示される方法はさらに、複数の汎用ハードウェアリソースを含むハードウェア環境によって、仮想化環境をホストすることを含み得る。これはさらに、アプリケーションの性能をモニタすることと、仮想化環境内のリソースをアプリケーションの性能に基づいて動的に調整することとを含み得る。加えて、ハードウェア環境内の汎用ハードウェアリソースをアプリケーションの性能に基づいて動的に調整することができる。また、仮想化環境を削除することによってアプリケーションをアンデプロイすることができる。
【００２３】
いくつかの実施の形態に従い、図６は、アプリケーション特性に基づいてリソースを動的にプロビジョニングする装置６００の機能ブロック図を示す。装置６００は、上記本発明の原理に従って構成されている。装置６００の機能ブロックは、本発明の原理を実施するために、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって、実現し得る。図６に示される機能ブロックを組み合わせるまたは分離することによってサブブロックを構成して上記本発明の原理を実現し得ることが、当業者によって理解される。したがって、本明細書における説明は、記載されている機能ブロックの、可能な組合せまたは分離またはさらに他の定義を、サポートし得る。
【００２４】
図６に示されるように、装置６００は、受信モジュール６１０、決定モジュール６２０、比較モジュール６３０、識別モジュール６４０、およびプロビジョニングモジュール６５０を含み得る。
【００２５】
実施の形態によっては、受信モジュール６１０を、アプリケーションおよび関連するメタデータを受信するように構成できる。決定モジュール６２０は、関連するメタデータに基づいてアプリケーションのリソース要求を決定するように構成できる。比較モジュール６３０は、リソース要求を、各々が仮想化環境から利用できる異なるリソースを定義する複数のテンプレートと比較するように構成できる。実施の形態によっては、テンプレートは、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含み得る。実施の形態によっては、仮想化環境が、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされてもよい。
【００２６】
識別モジュール６４０は、リソース要求にとって適切なテンプレートを識別するように構成できる。プロビジョニングモジュール６５０は、ハードウェアリソースに対する遅延バインディングのために適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするように構成できる。
【００２７】
実施の形態によっては、装置６００が、モニタリングモジュール６６０および第１の調整モジュール６７０をさらに含んでもよい。モニタリングモジュール６６０は、アプリケーションの性能をモニタするように構成できる。第１の調整モジュール６７０は、アプリケーションの性能に基づいて仮想化環境内のリソースを動的に調整するように構成できる。実施の形態によっては、装置６００が、アプリケーションの性能に基づいてハードウェア環境内の汎用ハードウェアリソースを動的に調整するように構成できる第２の調整モジュール６８０をさらに含んでもよい。実施の形態によっては、装置６００が、仮想化環境を削除することによってアプリケーションをデプロイするように構成できるアンデプロイモジュール６９０をさらに含んでもよい。
【００２８】
本発明の１つの実施の形態は、アプリケーション特性に基づいてリソースを自動的にプロビジョニングする装置を含み、この装置は、アプリケーションおよび関連するメタデータを受信するように構成された受信モジュールと、関連するメタデータに基づいてアプリケーションのリソース要求を決定するように構成された決定モジュールと、リソース要求を、各々が、仮想化環境から利用できる異なるリソースを定義する、複数のテンプレートと比較するように構成された比較モジュールと、リソース要求にとって適切なテンプレートを識別するように構成された識別モジュールと、ハードウェアリソースに対する遅延バインディングのために適切なテンプレートを用いて仮想化環境内のリソースをプロビジョニングするように構成されたプロビジョニングモジュールとを備える。
【００２９】
本発明の別の実施の形態に含まれる装置では、仮想化環境が、複数の汎用ハードウェアリソースを含むハードウェア環境によってホストされる。
【００３０】
本発明の別の実施の形態は、アプリケーションの性能をモニタするように構成されたモニタリングモジュールと、アプリケーションの性能に基づいて仮想化環境内のリソースを動的に調整するように構成された第１の調整モジュールとを備える装置をさらに含む。
【００３１】
本発明の別の実施の形態は、アプリケーションの性能に基づいてハードウェア環境内の汎用ハードウェアリソースを動的に調整するように構成された第２の調整モジュールを備える装置をさらに含む。
【００３２】
本発明の別の実施の形態に含まれる装置では、テンプレートが、アプリケーションサーバテンプレート、データベーステンプレート、およびメッセージサービステンプレートを含む。
【００３３】
本発明のさらに別の実施の形態は、仮想化環境を削除することによってアプリケーションをアンデプロイするように構成されたアンデプロイモジュールをさらに備える装置を含む。
【００３４】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従いプログラムされた非一時的なコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを１つ以上用いて、適宜実現し得る。適切なソフトウェアコーディングは、熟練したプログラマが本開示の教示に基づいて容易に準備できる。これはソフトウェア技術の当業者には明らかであろう。
【００３５】
実施の形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納されたコンピュータ読取可能な記憶媒体であるコンピュータプログラムプロダクトを含む。このコンピュータ読取可能な記憶媒体は、フロッピーディスク（登録商標）、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／またはデータを記憶するのに適した任意の種類の媒体もしくはデバイスを含み得る。
【００３６】
本発明に関するこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。これらの側面の特徴を、他の特徴を相応に用いてまたは用いることなく、さまざまな形で組み合わせたものを使用し得ることも理解される。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって当業者が本発明のさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は、以下の特許請求の範囲およびその均等物によって定められることが意図されている。
【図１】
2014524608.tif 000003
【図２】
2014524608.tif 000004
【図３】
2014524608.tif 000005
【図４】
2014524608.tif 000006
【図５】
2014524608.tif 000007
【図６】
2014524608.tif 000008
【国際調査報告】
2014524608.tif 000009
2014524608.tif 000010
2014524608.tif 000011