(57)【要約】【課題】  クラウド上のアプリケーション・リソース・マネージャを提供する。【解決手段】  アプリケーション・リソース・マネージャが、クラウド上で動作するアプリケーションに対する今後の需要の予測を取得する。クラウドは、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドの少なくとも一方を含む。アプリケーション・リソース・マネージャは、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断する。判断に応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行する。【選択図】      図５
2014527221.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション・リソース・マネージャにより、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドの少なくとも一方を含むクラウド上で動作するアプリケーションに対する今後の需要の予測を取得するステップと、
前記アプリケーション・リソース・マネージャにより、前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断するステップと、
前記判断するステップに応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行するステップと、
を含む方法。
【請求項２】
前記取得するステップは、アプリケーション所有者から前記予測を取得するステップを含む、請求項１に記載の方法。
【請求項３】
前記取得するステップは、前記アプリケーション・リソース・マネージャが、
前記アプリケーション、及び前記クラウドのクラウド管理インターフェースからのデータのうちの少なくとも一方の観察に基づいて、前記予測を導き出すステップを含む、請求項１に記載の方法。
【請求項４】
前記判断するステップは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて未使用のイメージをスタッシュすることにより、前記縮小を実行するステップを含む、請求項１に記載の方法。
【請求項５】
前記判断するステップは、前記アプリケーション専用である前記クラウドのリソースを拡張する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行するステップを含む、請求項１に記載の方法。
【請求項６】
前記アプリケーション・リソース・マネージャが、アプリケーション・レベルのソフトウェア及びデータの少なくとも一方を前記新しいイメージにプロビジョニングするステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記クラウド上で前記アプリケーション・リソース・マネージャを動作させること、及び、
前記クラウド以外のコンピューティング・リソース上で前記アプリケーション・リソース・マネージャを動作させること、
の少なくとも一方をさらに含む、請求項１に記載の方法。
【請求項８】
前記判断するステップは、前記予測される今後の需要を満たすのに最も費用効果の高い方法を見出すステップを含む、請求項１に記載の方法。
【請求項９】
前記取得するステップにおいて、前記予測される今後の需要は、性能及び可用性の少なくとも一方に関して特定される、請求項１に記載の方法。
【請求項１０】
前記アプリケーション・リソース・マネージャは、
前記アプリケーション、及び  前記アプリケーション専用である前記クラウドの前記リソースの少なくとも一方を検出するために、発見ツールを周期的に動作させるステップをさらに含む、請求項１に記載の方法。
【請求項１１】
システムを提供するステップをさらに含み、前記システムは別個のソフトウェア・モジュールを含み、前記別個のソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具体化され、前記別個のソフトウェア・モジュールは、アプリケーション・リソース・マネージャ・モジュールと、管理サブ・モジュールと、制御サブ・モジュールとを含み、
前記取得するステップは、少なくとも１つのハードウェア・プロセッサ上で実行されている前記アプリケーション・リソース・マネージャ・モジュールにより実行され、
前記判断するステップは、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより実行され、
前記拡張するステップ及び縮小するステップの前記一方は、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記制御サブ・モジュールにより実行される、請求項１に記載の方法。
【請求項１２】
前記別個のソフトウェア・モジュールは、ポリシー・サブ・モジュール及び解釈サブ・モジュールをさらに含み、
前記判断するステップは、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより、前記ポリシー・サブ・モジュールの少なくとも１つのポリシーを実装することによって、及び、前記解釈サブ・モジュールからの利用情報及び故障報告の少なくとも１つに基づいて、実行される、
請求項１１に記載の方法。
【請求項１３】
ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドの少なくとも１つを含むクラウドと、
前記クラウド上で動作する少なくも１つのアプリケーションと、
アプリケーション・リソース・マネージャと、
を含み、
前記アプリケーション・リソース・マネージャは、
前記アプリケーションに対する今後の需要の予測を取得し、
前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断し、
前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、
システム。
【請求項１４】
前記アプリケーション・リソース・マネージャは、アプリケーション所有者から前記予測を取得する、請求項１３に記載のシステム。
【請求項１５】
前記クラウドはクラウド管理インターフェースを含み、前記アプリケーション・リソース・マネージャは、前記アプリケーション及び前記クラウドのクラウド管理インターフェースからのデータの観察に基づいて前記予測を導き出すことにより、前記予測を取得する、請求項１３に記載のシステム。
【請求項１６】
前記アプリケーション専用である前記クラウドの前記リソースの少なくとも幾つかはイメージを含み、
前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断し、
前記アプリケーション・リソース・マネージャは、前記イメージのうちの未使用のものをスタッシュすることにより、前記縮小を実行する、
請求項１３に記載のシステム。
【請求項１７】
前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを拡張する必要があると判断し、前記アプリケーション・リソース・マネージャは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行する、請求項１３に記載のシステム。
【請求項１８】
前記アプリケーション・リソース・マネージャは、管理部分及び制御部分を含み、
前記アプリケーション・リソース・マネージャの前記管理部分は、前記予測に基づいて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を必要とすると判断し、
前記アプリケーション・リソース・マネージャの前記制御部分は、前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、請求項１３に記載のシステム。
【請求項１９】
コンピュータ可読プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を含むアプリケーション・リソース・マネージャのコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードは、
ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドの少なくとも一方を含むクラウド上で実行されるアプリケーションに対する今後の需要の予測を取得するように構成されたコンピュータ可読プログラム・コードと、
前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断するように構成されたコンピュータ可読プログラム・コードと、
前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行するための命令を指定するように構成されたコンピュータ可読プログラム・コードと、
を含む、コンピュータ・プログラム製品。
【請求項２０】
前記予測を取得するように構成された前記コンピュータ可読プログラム・コードは、アプリケーション所有者から前記予測を取得するように構成されたコンピュータ可読プログラム・コードを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
前記予測を取得するように構成された前記コンピュータ可読プログラム・コードは、
前記アプリケーション、及び前記クラウドのクラウド管理インターフェースからのデータのうちの少なくとも一方の観察に基づいて、前記予測を導き出すように構成されたコンピュータ可読プログラム・コードを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２２】
前記判断するように構成されたコンピュータ可読プログラム・コードは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断するように構成されたコンピュータ可読プログラム・コードを含み、前記命令は、前記クラウドにおいて未使用のイメージをスタッシュすることにより、前記縮小を実行することを指定する、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２３】
前記判断するように構成されたコンピュータ可読プログラム・コードは、前記アプリケーション専用である前記クラウドの前記リソースを拡張する必要があると判断するように構成されたコンピュータ可読プログラム・コードを含み、前記命令は、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行することを指定する、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２４】
前記コンピュータ可読プログラム・コードは別個のソフトウェア・モジュールを含み、前記別個のソフトウェア・モジュールは、アプリケーション・リソース・マネージャ・モジュールと、管理サブ・モジュールと、制御サブ・モジュールとを含み、
前記アプリケーション・リソース・マネージャ・モジュールは、取得するように構成された前記コンピュータ可読プログラム・コードを含み、
前記管理サブ・モジュールは、判断するように構成された前記コンピュータ可読プログラム・コードを含み、
前記制御サブ・モジュールは、指定するように構成された前記コンピュータ可読プログラム・コードを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２５】
前記別個のソフトウェア・モジュールは、ポリシー・サブ・モジュール及び解釈サブ・モジュールをさらに含み、
前記管理サブ・モジュールは、前記ポリシー・サブ・モジュールの少なくとも１つのポリシーを実装することによって、かつ、前記解釈サブ・モジュールからの利用情報及び故障報告の少なくとも１つに基づいて、前記判断を実行する、請求項２４に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気、電子、及びコンピュータ技術に関し、より具体的には、クラウド・コンピューティングなどに関する。
【背景技術】
【０００２】
Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＩａａＳ）クラウド及びＰｌａｔｆｏｒｍ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＰａａＳ）クラウドは、イメージの高速配備（プロビジョニング）、使用されていない間のイメージのスタッシュ（stash）、イメージに割り当てられたリソースに対する潜在的にライブの又は擬似ライブの変更のための基本機能を提供する。しかしながら、これは、アプリケーション層（本明細書では、区別なくワークロード層と呼ばれる）には直接適用されず、すなわち、アプリケーション層上で利用状態を監視し、かつ、アプリケーション用のインフラストラクチャを、いつ、どのように拡張又は縮小することができるかを判断するのに、依然として人間を必要とする。例外は、開発及び試験アプリケーションのような、比較的短い期間だけ配備された後に完全に取り外されるアプリケーションである。実際に、これらは、ＩａａＳクラウド及びＰａａＳクラウド上で実行するための、現在考えられる明らかに最も一般的なアプリケーションである。
【０００３】
Ｓｏｆｔｗａｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＳａａＳ）クラウドは、アプリケーション層上で機能するが、ＩＢＭ  ＬｏｔｕｓＬｉｖｅソリューション（米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションの商標）、又は米国カリフォルニア州サンフランシスコ所在のＳａｌｅｓｆｏｒｃｅ＿ｄｏｔ＿ｃｏｍ，Ｉｎｃ．（ブラウザ実行可能コードの包含を回避するため、「.」の代わりに「＿ｄｏｔ＿」を使用）から入手可能なソリューション等の、特定のアプリケーション・タイプ専用に構築される。
【０００４】
Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（米国ワシントン州シアトル所在のＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ＬＬＣの商標）、Ｍｉｃｒｏｓｏｆｔ  Ａｚｕｒｅ（米国ワシントン州Ｒｅｄｍｏｎｄ所在のＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標）、及びＨａｄｏｏｐ（Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎから入手可能）等の、アプリケーションを特定の新しいプログラミング・モデル及び言語でコード化することを必要とする、高レベルのクラウドも存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クラウド上のアプリケーション・リソース・マネージャを提供する。
【課題を解決するための手段】
【０００６】
本発明の原理は、クラウド上のアプリケーション・リソース・マネージャのための技術を提供する。１つの態様において、例示的な方法は、アプリケーション・リソース・マネージャにより、クラウド上で動作するアプリケーションに対する今後の需要（upcomingdemand）の予測を取得するステップを含む。クラウドは、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドのうちの少なくとも一方を含む。付加的なステップは、アプリケーション・リソース・マネージャにより、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断するステップと、判断するステップに応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行することを含む。
【０００７】
別の態様において、例示的なシステムは、クラウドを含み、このクラウドは、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及びｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅの少なくとも一方を含む。クラウド上で動作する少なくも１つのアプリケーション及びアプリケーション・リソース・マネージャも、システムに含まれる。アプリケーション・リソース・マネージャは、アプリケーションに対する今後の需要の予測を取得し、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断し、この判断に応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行する。
【０００８】
本明細書で用いられる場合、アクションを「容易すること」は、アクションを実行すること、アクションをより容易にすること、アクションの実行を助けること、又はアクションを実行させることを含む。従って、限定ではなく例として、１つのプロセッサ上で実行されている命令が、アクションを実行させる又はその実行を助けるための適切なデータ又はコマンドを送ることにより、遠隔プロセッサ上で実行されている命令により実行されるアクションを容易にすることができる。明確にするために、動作者がアクションの実行以外によりアクションを容易にする場合であっても、アクションは、何らかのエンティティ又はエンティティの組み合わせにより実行される。
【０００９】
本発明の１つ又は複数の実施形態又はその要素は、示される方法ステップを実施するためのコンピュータ使用可能プログラム・コードを有するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品の形で実装することができる。さらに、本発明の１つ又は複数の実施形態又はその要素は、メモリと、メモリに結合されかつ例示的な方法ステップを実施するように動作可能な少なくとも１つのプロセッサとを含むシステム（又は装置）の形で実装することができる。さらに、別の態様において、本発明の１つ又は複数の実施形態又はその要素は、本明細書で説明される１つ又は複数の方法ステップを実行するための手段の形で実装することができ、この手段は、（ｉ）ハードウェア・モジュール、（ｉｉ）ソフトウェア・モジュール、又は（ｉｉｉ）ハードウェア・モジュールとソフトウェア・モジュールの組み合わせを含むことができ、（ｉ）−（ｉｉｉ）のいずれも、本明細書に記載される特定の技術を実装し、ソフトウェア・モジュールは、コンピュータ可読ストレージ媒体（又は複数のそうした媒体）内に格納される。
【００１０】
本発明の技術は、非常に有益な技術的効果を提供することができる。例えば、１つ又は複数の実施形態は、次の利点の１つ又は複数を提供することができる。：
・アプリケーションに対する要件及びその基礎をなすＩＴインフラストラクチャの変更時の設定時間を短縮する、
・より高い信頼性、
・リソースの量を容易に増大及び／又は減少できるため、十分活用されていないプロセッサによる電力浪費を回避する。
【００１１】
本発明のこれら及び他の特徴並びに利点は、添付図面と併せて読まれる、以下の例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるクラウド・コンピューティング・ノードを示す。
【図２】本発明の一実施形態によるクラウド・コンピューティング環境を示す。
【図３】本発明の一実施形態による抽象化モデル層を示す。
【図４】本発明の一態様による概要のシステム・ブロック図である。
【図５】本発明の一態様による詳細なシステム・ブロック図である。
【図６】本発明の一態様によるアプリケーション・リソース・マネージャの例示的なコンポーネントを提示する。
【発明を実施するための形態】
【００１３】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及びリリースすることができる構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス）の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするサービス配信のモデルである。クラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、及び少なくとも４つの配備モデルを含むことができる。
【００１４】
特徴は、以下の通りである。
オンデマンド・セルフサービス：クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス：機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、及びＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な場所についての制御又は知識を持たないが、より高レベルの抽象化では場所（例えば、国、州、又はデータセンタ）を特定できる場合があるという点で、場所とは独立しているといえる。
迅速な弾力性：機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント）に適した何らかの抽象化レベルでの計量機能を用いることによって、リソース使用を自動的に制御及び最適化する。リソース使用は、監視、制御、報告され、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらす。
【００１５】
サービス・モデルは以下の通りである。
Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）：クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ（例えば、ウェブ・ベースの電子メール）などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）：プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び幾つかの場合アプリケーション・ホスティング環境構成に対しては制御を有する。
Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）：コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び幾つかの場合ネットワーク・コンポーネント（例えば、ホストのファイアウォール）選択の限定された制御を有する。
【００１６】
配備モデルは以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項（例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング）によって結び付けられる２つ又はそれより多いクラウド（プライベート、コミュニティ、又はパブリック）の組み合わせである。
【００１７】
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００１８】
ここで図１を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示される。クラウド・コンピューティング・ノード１０は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に対するいずれの制限を示唆することを意図するものではない。上記に関係なく、クラウド・コンピューティング・ノード１０は、本明細書で上述された機能のいずれかを実装及び／又は実施することができる。
【００１９】
クラウド・コンピューティング・ノード１０には、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に用いるのに好適な周知のコンピューティング・システム、環境、及び／又は構成の例としては、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上記のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【００２０】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【００２１】
図１に示されるように、クラウド・コンピューティング・ノード１０のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１６、システム・メモリ２８、及びシステム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができる。
【００２２】
バス１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスを含む。
【００２３】
コンピュータ・システム／サーバ１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【００２４】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０及び／又はキャッシュ・メモリ３２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピィ・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによってバス１８に接続することができる。以下でさらに示され説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００２５】
限定ではなく例として、メモリ２８内に、プログラム・モジュール４２の組（少なくとも１つ）を有するプログラム／ユーティリティ４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール４２は、一般に、本明細書に説明される本発明の実施形態の機能及び／又は方法を実行する。
【００２６】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４等の１つ又は複数の外部デバイス１４；ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデムなど）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ２０は、バス１８を介して、コンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ１２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解すべきである。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【００２７】
ここで図２を参照すると、例示的なクラウド・コンピューティング環境５０が示される。示されるように、クラウド・コンピューティング環境５０は、例えば携帯情報端末（ＰＤＡ）又は携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、及び／又は自動車コンピュータ・システム５４Ｎなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、１つ又は複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信することができる。これらのノードは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくは上述のハイブリッド・クラウド、又はこれらの組み合わせなど、１つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境５０は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び／又はソフトウェアを提供できる。図２に示されるコンピューティング・デバイス５４Ａ−Ｎのタイプは単に例示であることを意図し、コンピューティング・ノード１０及びクラウド・コンピューティング環境５０は、いずれのタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続上で（例えば、ウェブ・ブラウザを用いて）、いずれのタイプのコンピュータ化された装置とも通信できることを理解されたい。
【００２８】
ここで図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能抽象化層の組が示される。図３に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【００２９】
ハードウェア及びソフトウェア層６０は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、ＩＢＭ（登録商標）ｚＳｅｒｉｅｓ（登録商標）システムを一例とするメインフレームと、ＩＢＭ  ｐＳｅｒｉｅｓ（登録商標）システムを一例とするＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ（縮小命令セット・コンピュータ））アーキテクチャ・ベースのサーバと、ＩＢＭ  ｘＳｅｒｉｅｓ（登録商標）システムと、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）システムと、ストレージ・デバイスと、ネットワーク及びネットワーク・コンポーネントとが含まれる。ソフトウェア・コンポーネントの例として、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、ＩＢＭ  ＤＢ２（登録商標）データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、及びＤＢ２は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【００３０】
仮想化層６２は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
【００３１】
一例においては、管理層６４は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境でリソースが利用される際のコスト追跡と、リソースの消費に対する課金又は請求とを提供する。１つの例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ、ＳＬＡ）の計画及び履行は、ＳＬＡに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【００３２】
ワークロード層６６は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、及びモバイル・デスクトップが含まれる。
【００３３】
１つ又は複数の実施形態は、例えば、ＩａａＳクラウド又はＰａａＳクラウドなどのクラウドの上にアプリケーション・リソース・マネージャを実装することが有利である。
【００３４】
上述のように、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＩａａＳ）クラウド及びＰｌａｔｆｏｒｍ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＰａａＳ）クラウドは、イメージの高速配備（プロビジョニング）、使用されていない間のイメージのスタッシュ、イメージに割り当てられたリソースに対する潜在的にライブの又は擬似ライブの変更のための基本機能を提供する。しかしながら、これは、アプリケーション層（本明細書では区別なくワークロード層６６と呼ばれる）には直接適用されず、すなわち、アプリケーション層６６上で利用状態を監視し、かつ、アプリケーション用のインフラストラクチャを、いつ、どのように拡張又は縮小することができるかを判断するために、依然として人間を必要とする。例外は、開発及び試験アプリケーションのように、比較的短い期間だけ配備された後に完全に取り外されるアプリケーションである。実際に、これらは、ＩａａＳクラウド及びＰａａＳクラウド上で実行するための、現在考えられる明らかに最も一般的なアプリケーションである。
【００３５】
ＩａａＳクラウド及びＰａａＳクラウドにおける仮想化層６２及び管理層６４は、ハードウェア、及び幾つかの場合基本ソフトウェアのみを管理するが、ワークロードを管理しないことに留意されたい。従って、今日に至るまで、これは、別個に、典型的には人間の介入により行われてきた。
【００３６】
同じく上述のように、Ｓｏｆｔｗａｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＳａａＳ）クラウドは、アプリケーション層上で機能するが、ＩＢＭのＬｏｔｕｓＬｉｖｅソリューション（米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションの商標）、又は米国カリフォルニア州サンフランシスコ所在のＳａｌｅｓｆｏｒｃｅ＿ｄｏｔ＿ｃｏｍ，Ｉｎｃ．（ブラウザ実行可能コードの包含を回避するために、「.」の代わりに「＿ｄｏｔ＿」を使用）から入手可能なソリューション等の、特定のアプリケーション・タイプ専用に構築される。
【００３７】
同じく上述したように、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（米国ワシントン州シアトル所在のＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ＬＬＣ社の商標）、Ｍｉｃｒｏｓｏｆｔ  Ａｚｕｒｅ（米国ワシントン州レッドモンド所在のＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社の商標）、及びＨａｄｏｏｐ（Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎより入手可能）等の、アプリケーションを特定の新しいプログラミング・モデル及び言語でコード化することを必要とする、高レベルのクラウドも存在する。
【００３８】
１つ又は複数の実施形態は、リソース要求が変動している又は単純に増加している、通常の、ほとんど変更されていないアプリケーションが、ＩａａＳ又はＰａａＳプラットフォーム機能を容易に利用するのを可能にする点が有利である。
【００３９】
グリッドの文脈における動的インフラストラクチャに関する従来の技術も存在することに留意する価値があるが、グリッドは、イメージをプロビジョニング及び管理するための、ＩａａＳ及びＰａａＳクラウドが有するのと同じ種類のインターフェースを有しておらず、従って、グリッドに関するアプリケーション管理の問題は、クラウドとは異なる。同様に、ＩＢＭのＯｃｅａｎｏコンピューティング・ユーティリティ・パワープラント・プロジェクト等の、古い大規模分散型インフラストラクチャ・プロジェクトは、クラウドにおけるような基礎をなす別個の層６０、６２、６４とは動作しなかった。
【００４０】
ここで図４の単純なシステム概観を参照すると、１つ又は複数の実施形態は、ＩａａＳ又はＰａａＳクラウド１０の通常のシステムに付加されたアプリケーション・リソース・マネージャ・コンポーネント４０１と、アプリケーション・コンポーネント４０３とを採用する。このアプリケーション・リソース・マネージャは、アプリケーションのニーズに応じて、クラウドのリソースを拡張及び縮小する。
【００４１】
これらのタスクを実行するために、アプリケーション・リソース・マネージャは、基礎をなすＩａａＳ又はＰａａＳクラウドの管理インターフェース、すなわち、管理層６４の上位インターフェースと対話し、一方、アプリケーションは、クラウドにより提供されるイメージ及び他のリソースを使用する。ここで「イメージ」という語は、ＩａａＳクラウドが提供する純粋なオペレーティング・システムのイメージ、及びＰａａＳクラウドが提供する、ミドルウェアを含むイメージの両方に対して使用される。図３においては、ＩａａＳイメージは仮想サーバであり、典型的には、利用可能な、プロビジョニングが容易なイメージのカタログ、このカタログに対応するイメージ・ファイル、及びプロビジョニングされ、実行されている実際のインスタンス・イメージが存在する。管理層６４のリソース・プロビジョニング・コンポーネントは、カタログを、層６６の潜在的ワークロードに提供し、イメージ・ファイルを収容し、仮想化層６２においてインスタンス・イメージ（仮想サーバ）を確立させる。このプロセスを理解すると、「イメージ」についてしか述べないことも多い。アプリケーションにプロビジョニングされるイメージの上に、通常のアプリケーション・コンポーネントのコード、データ、構成などが存在する。言い換えれば、クラウド管理層を介してプロビジョニングされなかったワークロードの部分が、アプリケーション・コンポーネントを構成する。
【００４２】
アプリケーション・リソース・マネージャが使用する管理インターフェースは、ＯＳＳの態様（オペレーション・サポート・システム、例えば、リソース・プロビジョニング・コンポーネントへの直接インターフェース）、及びＢＳＳの態様（ビジネス・サポート・システム、例えば、追加のプロビジョニング時に追加の支払い契約が必要な、価格決定コンポーネントへのインターフェース）を含むことができる。これらの全ては、ユーザ・ポータルを通してフィルタリングされるが、ここでは、いずれも、ワークロード層６６からの自動化プログラムにより使用するためのＡＰＩ（アプリケーション・プログラミング・インターフェース）、ウェブ・サービス・インターフェース等、又は、ワークロード層６６のプログラムに直接アクセスできるリソース・プロビジョニング等の個々のコンポーネントへのインターフェースを含むと仮定する。
【００４３】
アプリケーション・リソース・マネージャ４０１は、アプリケーション所有者５１３（本明細書では、役割を通常のユーザ５１５と区別するために、アプリケーション需要を予測する権限が与えられた人間に対して使用される名称−図５を参照されたい）からの今後の需要を学習すること、又は、クラウド管理から得られる報告並びにアプリケーションの観察により、現在の利用及び傾向を導き出すことができる。アプリケーション・リソース・マネージャ４０１は、インフラストラクチャの故障について学習し、故障に反応して特定の可用性ターゲットに到達することもできる。
【００４４】
少なくとも幾つかの実施形態において、最低でも需要の変更があると、アプリケーション・リソース・マネージャは、イメージをプロビジョニング若しくはスタッシュするか、又は、仮想ストレージ若しくは仮想ネットワーク帯域幅の割り当てなど、リソースの属性を変更する。随意的に、プロビジョニングの場合、アプリケーション・リソース・マネージャは、アプリケーション・レベルのソフトウェア及び／又はデータも新しいイメージにプロビジョニングする。
【００４５】
このように、１つ又は複数の実施形態は、クラウド１０、少なくとも１つのアプリケーション・コンポーネント４０３、及びアプリケーション・リソース・マネージャ４０１を含むシステムを提供し、アプリケーション・リソース・マネージャは、アプリケーション・リソースのニーズを満たすために、アプリケーション・コンポーネント用のクラウドのリソースを拡張及び／又は縮小する。
【００４６】
１つ又は複数の実施形態において、アプリケーション・リソース・マネージャは、ＩａａＳ又はＰａａＳクラウドのサービスを使用する。これらのコンポーネント及びその対話についての更なる詳細は、より詳細なシステム概観を提供する図５に示される。
【００４７】
アプリケーション・リソース・マネージャ４０１は、それ自体が、クラウド１０上で動作しても又はしなくてもよいことに留意されたい。アプリケーション・ボックス５１１は仮想であり、これは、アプリケーション・リソース・マネージャが特定のアプリケーションに属していること、及び、アプリケーション構造を認識する必要があることを示す。
【００４８】
引き続き図５を参照すると、アプリケーション所有者５１３は、アプリケーション管理インターフェース（図３において、これは、ワークロード層６６の上位インターフェースであり、すなわち、そこで、アプリケーション／ワークロードがユーザと対話する）を介して、アプリケーション・リソース・マネージャ４１０と対話する。アプリケーション・リソース・マネージャ４０１は、アプリケーション５１１と関連付けられ、通常のアプリケーション・ユーザ５１５により使用されるアプリケーション・ソフトウェア５１７の設定、並びに、アプリケーション・ソフトウェア５１７及び対応するイメージ５１９を監視する。イメージは、クラウド・ランタイム環境５２１の一部となる。ブロック５２１は、図３の仮想化層６２（又は、層６０及び６２を合わせたもの）と本質的に類似し、一方、クラウド管理プラットフォーム５２３は、層６４と類似している。クラウド管理プラットフォーム５２３は、適切なプロビジョニング・インターフェース（即ち、直接、又は、ＢＳＳインターフェース及び／又はユーザ・ポータルを通して仲介される、リソース・プロビジョニング・コンポーネントへのインターフェース）を介して、アプリケーション・リソース・マネージャ４０１と対話するクラウド・ランタイム環境５２１を管理し、クラウド管理プラットフォーム５２３も、使用及び故障報告をアプリケーション・リソース・マネージャ４０１に提供する（これらは、例えば、図３の計量コンポーネント又はサービス・レベル管理コンポーネントによってもたらされ得る）。
【００４９】
１つ又は複数の実施形態において、４０１のようなアプリケーション・リソース・マネージャを、図６に示されるように構築することができ、コンポーネントは、以下の例示的な機能を提供する。
ポリシー６３１は、例えば、（クラウドのものとは対照的な）アプリケーションのサービス・レベルの目標として与えることができる性能及び可用性目標などの長期目標を決定する。言い換えれば、これらは、層６６に対する目標であって、その層のサービス・レベル管理コンポーネント及びＳＬＡプランニング・コンポーネントが満たすような層６４の目標ではない。性能向上のニーズに対する短期予測に関連するもの等の、アプリケーション所有者からの短期目標もポリシーと呼ぶことができる。
管理コンポーネント６３３は、ポリシー並びにアプリケーション及びクラウドから学習したものを利用し、アクションを決定する。具体的には、これらのアクションは、クラウドへの要求のプロビジョニング、スタッシング、又はプロビジョニング解除、及び、例えばイメージ・リソースの拡張及び縮小、異なるサーバへのライブ・マイグレーション、又はクラウドからのより上位のサービス・レベルの選択（これは、例えば、より良い性能保証、並びにより高い可用性又は信頼性保証を含むことができる）など、クラウド管理プラットフォームが許容する他の任意のアクションをも含む。
制御コンポーネント６３５は、管理コンポーネントからの抽象的要求を、例えば、アプリケーション・プログラミング・インターフェース（ＡＰＩ）又はウェブ・サービス・インターフェースを介して、クラウド管理プラットフォームとの具体的な対話に変換する。こうした対話は、マルチ・ステップのシーケンスであり、イメージ・サイズの選択、及び支払い方法又は既存の口座番号の選択等の、ＯＳＳ及びＢＳＳレベルのステップを含むことができる。
解釈コンポーネント６３７は、制御コンポーネントとは逆に、アプリケーション自体の及び他の仮想リソースのイメージ、並びにクラウド全体の両方の利用情報又は故障報告などの、クラウドからの報告を解釈する。
【００５０】
管理コンポーネントから制御コンポーネント及び解釈コンポーネントを別体とすることの利点は、アプリケーション・リソース・マネージャが、異なるクラウドに適合することがより容易になることである。しかしながら、図６の例において、アプリケーション・リソース・マネージャは、このアプリケーションに特有のものであるので、アプリケーション・コンポーネントと直接対話することができる。
【００５１】
ここで、アプリケーション・マネージャの幾つかの考え得る機能に関して、限定されない付加的な例示的詳細を提供する。
【００５２】
監視に関しては、幾つかの場合、アプリケーション・マネージャは、アプリケーションのユーザ・インターフェース（例えば、アプリケーションのサービス・レベル・アグリーメント（ＳＬＡ）が適用できる場合）のいずれか又は両方において、及び、個々のコンポーネント（５１７、５１９など）、具体的には異なるイメージ上に配備されたものについて、アプリケーション・コンポーネント４０３及びその利用を監視することができる。アプリケーション・マネージャはまた、クラウド・インターフェースを介して（すなわち、５２３から）、そのクラウド・イメージの現在の使用についての情報を取得する、及び／又は、クラウド・インターフェースを介して、クラウドの現在の使用全体についての情報も取得することができ、これは、リソースが共有される場合、より多くのリソースを得る効果を予測するのに有益であり得る。
【００５３】
さらに、同じく監視に関して、幾つかの場合、アプリケーション・マネージャは、それ自体のイメージの故障（５２３からの）及びクラウドの一般的な信頼性についての情報を取得することができ、利用傾向に基づいて予測を使用して、将来の需要を推定することができ（例えば、月ごとのピークを予測する、又は需要の全体的な緩やかな増加を予測する）、及び／又は、場合によって、発見ツールによりアプリケーション構造を再検証することができる（さらに本明細書の他の場所でも論じられ、区別なく「再発見」とも呼ばれる）。アプリケーション・ユーザ５１５も変更を行う特定の権利を有する場合があるため、発見ツールは、アプリケーションのイメージ５１９及びアプリケーション・ソフトウェア５１７にも適用される。発見ツールはまた、現在のデータベース・サイズ等のアプリケーション・レベルの性能パラメータを見つけるのを助けることもできる。
【００５４】
目標に関して、幾つかの場合、アプリケーション・マネージャは、アプリケーション所有者から、現在の性能に関して絶対的又は相対的な短期目標を取得することができる。この目標は、典型的には、個々のイメージ上の個々のアプリケーション・ソフトウェア・コンポーネントの性能よりも、むしろアプリケーション全体（例えば、トランザクション・スループット又はエンド・ユーザへの応答時間）を指す。さらに、アプリケーション・マネージャは、高レベルの目標（長期ポリシー）をアプリケーション所有者から取得して、例えば、常に特定のＳＬＡを提供する又は突然の変更に備えて常に特定の量の空きを有することができ、及び／又は、例えば、コスト目標又は限度を取得して、所望のＳＬＡを提供するために常に合計が最も安価なリソースの組を選ぶこと、又は特定のコスト限度に至るまでは常に考え得る最良の性能を提供することができる。
【００５５】
考え得る決定に関して、幾つかの場合、アプリケーション・マネージャは、アプリケーションに割り当てられた個々のクラウド・イメージに割り当てられたリソースの拡張及び／又は縮小を決定することができる。クラウドに応じて、これは、所定の位置で、又は、対応するアプリケーション・コンポーネント５１７をより大きいイメージ５１９にマイグレートすることによって行われることもある。さらに、アプリケーション・マネージャは、アプリケーションを使用するために、クラウド・イメージ全体をプロビジョニング、削除、又はスタッシュすることを決定することができる。この場合、アプリケーション・マネージャは、適切なアプリケーション・ソフトウェアを配備する必要もある。この点に関して、アプリケーション・マネージャは、この目的のために、１つ又は複数のゴールド・イメージ、すなわち、アプリケーションの全ての反復可能な部分を既に含んでいる休眠中のイメージを保持すること、及び／又は、マイグレーション・ツールを用いて、現在の全体のアプリケーション状態に対応するソフトウェア構成を配備することもできる。
【００５６】
さらに、同じく考え得る決定に関して、幾つかの場合、アプリケーション・マネージャは、クラウドが付加的なストレージ及び／又はネットワーク・リソースという選択肢を別個に提供する場合、付加的なストレージ及び／又はネットワーク・リソースを要求すると決定することができ、アプリケーション・マネージャが現在のポリシー又は要求を満たすことができない場合、ユーザに警告すると決定することができ、及び／又は、ユーザ・プロファイルに、定期的に又は要求に応じて、アプリケーション・レベルの状況を通知することができる。
【００５７】
意思決定に関して、幾つかの場合、アプリケーション・マネージャは、最適化ソルバ・ツールを用いることにより決定を行うことができ、又は、直接、意思決定コードを含むことができる。クラウドが動的な価格決定スキーマ（例えば、週末のコストが低い）を有する場合、アプリケーション・マネージャは、動的クラウド・コストに基づいて決定を行うことができる。動的クラウド・コストの使用は、アプリケーションがスピード重視ではない側面を含み、かつ、より安いリソースの時に実施できる場合に、特に有用である。
【００５８】
少なくとも幾つかの場合、データ・ファイル等におけるパラメータによりポリシーを実装することができ、許容可能な値又は他の変数は、基礎をなすコーディング、すなわち、許容可能な値又は値の範囲を指定するデータ構造を変更する必要なしに指定することができることに留意されたい。
【００５９】
ポリシー・ブロック６３１に関して、１つ又は複数の場合において、ポリシー・ブロック６３１は、目標又は要件、又は時として特定の状況で起こるべきことを決定する。具体的に、アプリケーション・マネージャは、例えば、アプリケーション・レベルのトランザクションに対してどれだけの待ち時間が許容可能であるか、幾つの長期間実行ジョブが遂行されないままでどれだけデッドライン近くまで我慢できるか、又は、例えば月末にどれだけの負荷が予測されるか等のアプリケーション・レベルのポリシー（すなわち、形式化された目標又は要件）を含むことができる。アプリケーション・マネージャは、時として、例えば、どれだけの量の空きストレージを常に利用可能にする必要があるか、仮想マシン（ＶＭ）が、どれだけの使用レベルを長期にわたり有することを許可するかなど、インフラストラクチャ・レベルのポリシーを含むこともできる。
【００６０】
管理ブロック６３３は、ポリシー６３１から値を読み出し、システム内で何が起きているかについてのデータ入力を取得し（例えば、アプリケーション・レベルのプローブ等並びに解釈ブロック６３７から、クラウドの報告又はイメージ・レベルの監視から）、ポリシー６３１を実行に移す論理を含む。例として、ＶＭを割り当てる、スタッシュする、又は他のＶＭ上でサービスを開始する必要があると判断すること、ＶＭのメモリ及び／又はＣＰＵ割り当てを増加させる必要があるかを判断すること、ストレージを増加及び／又は減少させる必要があるかどうかを判断すること等が含まれる。
【００６１】
制御ブロック６３５は、異なるアーキテクチャへのインターフェースを提供し、例えば、クラウドが単にＶＭｗａｒｅであった場合、制御ブロック６３５は、ＶＭを制御するのに、ｖｍｒｕｎインターフェースと対話する。つまり、制御モジュール６３５は、管理モジュール６３３からの命令を、クラウドのリソースを管理しているリソース・プロビジョニング・モジュール（図３の層６４を参照されたい）等により理解できるように変換する。
【００６２】
解釈ブロック６３７に関して、解釈ブロック６３７は、異なるクラウド・アーキテクチャへのインターフェースを提供し、例えば、クラウドが単にＶＭｗａｒｅであった場合、解釈ブロック６３７は、ｖｍｗａｒｅインターフェースからの性能報告、及び／又は、ＶＭ内部で実行できるプローブに対する抽象化を解釈することができる。幾つかの場合、クラウドは、イメージのＣＰＵ利用を提供することができる（例えば、図３の層６４における計量及び価格決定を参照されたい）。管理ブロック６３３は、解釈ブロック６３７に、全てのイメージのＣＰＵ利用を必要としていることを知らせ、解釈ブロック６３７は、これを変換して、必要なコマンドを計量及び価格決定ブロックに与え、クラウド固有の結果を共通フォーマットに解釈する。幾つかの場合、ＡＲＭ４０１は、例えば、アプリケーション・レベルの待ち時間（すなわち、通常のアプリケーション・ユーザ５１５がどれくらい結果を待たなければならないか）を監視するため又は長時間動作しているアプリケーションの状態について知るために、クラウド・インターフェースに加えて、又はその代わりに、自らの層上で管理しているイメージに対する接続を行う。このような場合、アプリケーション・ソフトウェア５１７により、管理のためのＩＰリスニング・サービス又はウェブ・インターフェースを提供することができ、アプリケーション・マネージャは、対応する接続を構築し、対応する管理照会を送信する。
【００６３】
幾つかの場合、ＡＲＭ４０１は、通常のイメージ上にアカウントをもち、そのアカウントを用いて、通常のイメージにログインし、適切なコマンドを実行して、イメージからＣＰＵ利用を直接読み出すことができる。幾つかの場合、アプリケーションを、直近の１０分間に幾つのトランザクションが実行されたかなど、適切な照会に応答するように、プログラミングすることができる。
【００６４】
明確にするために、この文脈における「アプリケーション」とは、最終的な所望の機能を実行する（かつ、クラウドにより提供されていない）コード、例えば、ＷＥＢＳＰＨＥＲＥソフトウェア内のＪＡＶＡコード、又は、ＤＢ２ソフトウェア内の特定のデータベース・スキーマ、又は典型的には、例えば、ショッピング・カート・アプリケーション又は旅行報告アプリケーションを提供するのに必要とされる全てのコード片などの、コード・タイプの組み合わせを指す。プローブとは、熱電対などの物理的プローブとは対照的に、他のソフトウェアと通信して所望の値を取得する幾つかのソフトウェアである。
【００６５】
詳細ではあるが限定されない例として、（典型的には１つより多い）ウェブ・サーバ、アプリケーション・サーバ、及びデータベースを有する３層アーキテクチャ（three-tier architecture）を考える。エンド・ユーザの要求に対する平均待ち時間を特定の閾値より少なく保持することが所望される。待ち時間は、要素のいずれかに過負荷がかかることにより発生し得る。要求に応答するまでの待ち時間（アプリケーション特有である、例えば、ｈｔｔｐサーバが要求に応答するのにかかる時間）を測定することが所望される。
【００６６】
この例では、ポリシー・ブロック６３１は、着信する要求に応答するのにどれだけの待ち時間を利用可能にする必要があるか、及び幾つかの場合、システムの通常の状態をどのようにする必要があるかを定める。解釈ブロック６３７は、個々のコンポーネントについての情報を提供するプローブとインターフェース接続する。管理ブロック６３３は、ポリシー・ブロック６３１及び解釈ブロック６３７からのデータ、並びにアプリケーション・ソフトウェアとの直接通信を用いて、例えば、待ち時間が多すぎる場合に、待ち時間を少なくするために、着信する要求を取り扱うＶＭの数を増やすなどの判断を行い、幾つかの場合、３つの層のどれがボトルネックであり、増やす必要があるかを判断する。管理ブロック６３３は、制御ブロック６３５とインターフェース接続して、クラウドに、既存のマスター・テンプレートＶＭのクローンを作成し、オンラインにするように命令し、次いで、適切なデータをクローンに置き、アプリケーションにバインドし、負荷を分担できるようにさせる。
【００６７】
逆に、待ち時間が限度をはるかに下回り、通常より多い数の（ポリシー６３１当たりの）定常状態のＶＭが存在する場合、管理ブロック６３３は、制御ブロック６３５に、ＶＭをゆっくりと停止するように命令することができ、例えば、アプリケーション・レベルの負荷分散装置（load balancer）ポリシーを修正することなどにより、全てのワークロードが残りのＶＭによって処理されるように、アプリケーションをリセットさせる。
【００６８】
この限定されない例の更なる詳細として、ポリシー６３１は、着信する要求に応答するのにどれだけの待ち時間を利用可能にする必要があるか、及び、システムの通常状態がどのようである必要があるかを定める。：
average_latency{
period = 1min
max_latency = 500ms
}
【００６９】
これにより、１分間における平均待ち時間が５００ｍｓを超えてはならないというポリシーが設定される。典型的には、５００ｍｓを超える待ち時間が起こり始めた場合には、より多くのマシンを割り当てる必要がある。上述のように、管理モジュール６３３の論理は、プローブからデータを取得し、ポリシー６３１を調査し、いずれかのポリシーに違反する場合には、適切なアクションを取る。それを実施するための命令は制御ブロック６３５に送信され、そこで上述のように変換される。
【００７０】
管理ブロック６３３はまた、個々のアプリケーション・ソフトウェア・コンポーネント５１７に対してマイクロ・テストを実行することもできる。
【００７１】
管理ブロック６３３は、次いで、随意的に論理を実行して、どの層が待ち時間を生じさせているかを判断しようとする。管理ブロック６３３は、各層に対して、他のいずれの層にも影響を与えないマイクロ・ベンチマークを実施する能力を有する。例えば、管理ブロック６３３は、静的ウェブページをウェブ・サーバからフェッチして、ウェブ・サーバの待ち時間だけを測定することができる。管理ブロック６３３は、データベースにヒットしないａｐｐサーバに対する単純な照会、並びに、単純なデータベース照会を行うことができる。これらにより、解釈ブロック６３７が提供するＶＭレベルの測定値と併せて、どのコンポーネントに過負荷がかかるか、従って、どのコンポーネントのサイズを増大させる必要があるかを正確に示すことが可能になる。この点で、測定値を単独で使用できること、マイクロ・ベンチマークを単独で使用できること、又は、その両方を一緒に使用できることに留意されたい。さらに、マイクロ・ベンチマークは、所望の値を知るために、例えば、良好に動作しているシステムの予備テストに基づくことができる。
【００７２】
例えば、管理ブロック６３３が、ウェブ・サーバのフロントエンドに過負荷がかかり、最良の決定は、もっと多くのフロントエンドを追加することであると判断した場合、管理ブロック６３３は、制御ブロック６３５に対して、新しいＶＭを割り当てるように命令し、次いで、制御ブロック６３３に必要な任意のソフトウェア及びアプリケーション・データを置き、アプリケーションに統合する。
【００７３】
クラウドが単なるＶＭｗａｒｅである場合、制御ブロック６３５は、ウェブ・サーバのフロントエンドのゴールド・マスターＶＭを、新しいＶＭにコピーする。制御ブロック６３５は、次いで、ＶＭｗａｒｅ  ＡＰＩのＲｅｇｉｓｔｅｒＶｍ（）機能を用いて、ＶＭをＶＭインフラストラクチャに追加する。ひとたび追加されると、制御ブロック６３５は、ＡＰＩを用いて新しいＶＭに接続し、新しいＶＭのＳｔａｒｔ（）メソッドを用いて、マシンを起動する。管理ブロック６３３は、次いで、新しいＶＭを、フロントエンドのデューティを処理するマシンのクラスタに追加する。より単純な例では、マシンのサイズを増大させることができる。
【００７４】
別の限定されない例において、ストレージ使用の監視を考える。ポリシー６３１は、どれだけの量の空きストレージを利用可能にする必要があるか、並びに、多すぎる空きストレージとはどれだけを定める。解釈ブロック６３７は、空き領域の量を判断するために、通常のインターフェース（ｄｕ、ｄｆ、ｑｕｏｔａ、．．．）とインターフェース接続する。管理ブロック６３３は、これらの情報の両方を用いて、利用可能な空き領域が十分か（又は多すぎるか）を判断する。管理ブロック６３３は、ポリシーに従ってより多くの空き領域を割り当てる（又は空き領域を減らす）よう、制御ブロック６３５に命令する。適切なコマンドは、"increase-disk <image id> <disk id><size>"の形とすることができる。
【００７５】
例えば、幾つかのＶＭは、ＶＭの負荷に応じて、１又は複数のサービスを実行できる場合もある。幾つかの場合、（ＶＭインフラストラクチャから）ＶＭの負荷を監視すること、及び、各々のＶＭ内にプローブを有して、個々のサービスのリソース使用（ＣＰＵ、Ｉ／Ｏ）を監視し、どれだけ個々のサービスが使用中であるかを知ることが可能である。
【００７６】
ポリシー６３１は、どのような持続的負荷の下でＶＭの動作を許容する必要があるか、及び、ＶＭ上で実行されている個々のサービスにどのような持続的負荷を許容する必要があるかを決定することができる。解釈ブロック６３７は、ＶＭインフラストラクチャの負荷監視（ＶＭ負荷全体）及びＶＭ内部のプローブとインターフェース接続する（個々のサービスに対するＯＳレベルの負荷測定値を監視するために）。管理ブロック６３３は、個々のＶＭ上の負荷が大きすぎる場合、個々のサービスが独立したＶＭ上で実行され得るようにＶＭを分割する、又は負荷が減少した場合、それらを組み合わせて元に戻すための判断を行うことができる。管理ブロック６３３は、制御ブロック６３５とインターフェース接続し、必要に応じて、新しいＶＭを起動し又は既存のＶＭを停止し、並びに個々のＶＭ上で実行されているサービスを停止又は開始する。
【００７７】
さらに別の限定されない例において、ＶＭのメモリ及びＣＰＵ使用の増大を考える。ポリシー６３１は、単一のマシン上で、どのような持続的なメモリ及びＣＰＵの負荷を許容する必要があるかを決定する。解釈ブロック６３７は、ＣＰＵ使用及び空きメモリの報告を取得し、これを管理ブロック６３３に与える。管理ブロック６３３は、個々のＶＭのＣＰＵ及びメモリ割り当てを増加（又は減少）させる決定を行うことができる。管理ブロック６３３は、制御ブロック６３５に命令して、増加／減少を行わせる。制御ブロック６３５は、ＶＭを停止し（必要な場合、一部のＶＭはホットプラグＣＰＵをサポートする）、ＣＰＵの数及び割り当てメモリを増やすようにＶＭを再構成し、ＶＭアーキテクチャのインターフェースを用いてＶＭを再始動させることができる（例えば、ＶＭｗａｒｅ、ｖｍｒｕｎ上で；手作業で又はＡＰＩを介して、ＶＭ構成ファイルを編集する）。
【００７８】
さらに限定されない例において、月ごとの許容されるダウンタイムが指定されている場合を考える。アプリケーション・マネージャは、その月のそれまでの合計ダウンタイムを追跡することができ、アプリケーション・マネージャが、許容限界値に接近していることを感知すると、制御コンポーネント６３５を用いて付加的なリソースを発注する。
【００７９】
以下は、サーバをプロビジョニングし、ストレージを増大させるための、限定されない例示的な実際のコマンドである。：
provision<template/base id name> <new id name>>
increase-disk<id name> <size>
【００８０】
ここまでの議論から、一般的に、本発明の一態様による例示的な方法は、アプリケーション・リソース・マネージャ４０１により、クラウド１０上で動作するアプリケーション４０３、５１１に対する今後の需要の予測を取得するステップを含むことが認識されるであろう。クラウドは、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及び／又はｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドである。付加的なステップは、アプリケーション・リソース・マネージャ４０１により、予測に基づいて、アプリケーション専用であるクラウド１０のリソースを拡張又は縮小する必要があることを判断するステップを含む。更なるステップは、判断するステップに応じて、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行する（又は、少なくとも実行の方法を指定する）ステップを含む。
【００８１】
今後の需要の予測は、例えば、アプリケーション所有者５１３から取得することができる。他の例では、今後の需要の予測は、アプリケーション４０３、５１１及びクラウド１０のクラウド管理インターフェースからのデータの観察に基づいて、それ自体が予測を導き出すアプリケーション・リソース・マネージャ４０１により、取得することができる。
【００８２】
アプリケーション専用であるクラウドのリソースを縮小する必要があると判断された場合、アプリケーション・リソース・マネージャ４０１は、クラウドにおいて未使用のイメージをスタッシュすることができる。この点で、こうしたイメージは、決定の時点では、全てが未使用とはいえないことに留意されたい。例えば、５つのイメージのクラスタが存在し、現時点で各々が５０％しか使用されていないとすると、４つ、更には３つに減らすことが決定される。スタッシングの時点で、問題のイメージは、そのイメージに対する要求が今や他に向けられているという意味で、実際に使用されていないはずである。例えば、所定のクラスタに対して使用される負荷分散装置の場合、アプリケーション・リソース・マネージャ４０１は、要求が残りの３つ又は４つのイメージ（のアプリケーション・コンポーネント）にのみ送られるように、負荷分散装置のポリシーを変更する。
【００８３】
アプリケーション専用であるクラウドのリソースを拡張する必要があると判断した場合、アプリケーション・リソース・マネージャ４０１は、クラウドにおいて新しいイメージをプロビジョニングすることができる。幾つかの場合、このことは、アプリケーション・リソース・マネージャが、新しいイメージの上に、アプリケーション・レベルのソフトウェア及び／又はデータをプロビジョニングすることを含み得る。
【００８４】
前述のように、幾つかの場合、アプリケーション・リソース・マネージャ４０１は、クラウド１０上で動作する。他の例においては、アプリケーション・リソース・マネージャは、クラウド以外のコンピューティング・リソース上で動作する。
【００８５】
幾つかの場合、判断するステップは、予測される今後の需要を満たすのに最も費用効果の高い方法を見出すステップを含む。
【００８６】
予測される今後の需要を、性能及び／又は可用性に関して特定できることに留意されたい。
【００８７】
幾つかの場合、アプリケーション・マネージャは、時として、アプリケーションを再発見する、すなわち、アプリケーション・ソフトウェア５１７及び／又は基礎をなすイメージ５１９に対して、サーバ管理者が直接行った変更（本発明の１つ又は複数の実施形態によるアプリケーション・マネージャ・ツールを用いて行われた変更とは対照的に）を、（例えば、発見ツールを用いて）発見することにも留意されたい。
【００８８】
さらに、ここまでの議論から、一般的に、本発明の一態様による例示的なシステムは、クラウド１０を含むことが認識されるであろう。クラウドは、ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウド及び／又はｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅクラウドである。同じく、クラウド上で動作する少なくとも１つのアプリケーション４０３、５１１、及びアプリケーション・リソース・マネージャ４０１も含まれる。アプリケーション・リソース・マネージャ４０１は、アプリケーション４０３、５１１に対する今後の需要の予測を取得し、予測に基づいて、アプリケーション４０３、５１１専用であるクラウド１０のリソースを拡張又は縮小する必要があると判断し、この判断に応じて、状況により、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行する。
【００８９】
今後の需要の予測は、例えば、アプリケーション所有者５１３から取得することができる。別の例では、クラウド１０は、クラウド管理インターフェースを含むことができ、アプリケーション・リソース・マネージャは、アプリケーション及びクラウドのクラウド管理インターフェースからのデータの観察に基づいて予測を導き出すことにより、予測を取得する。この点で、クラウド管理プラットフォーム５２３がクラウド管理インターフェースを提供する、すなわち、プラットフォームはコード等を含むが、クラウドのユーザは、典型的には、コードにアクセスすることができず、例えばウェブページにアクセスし、そこで現在のイメージを確認し、「もう１つイメージをプロビジョニングしてください」又は「このイメージのリソースをＸだけ拡張してください」と指示するだけであることに留意されたい。ウェブページはインターフェースであり、１つ又は複数の実施形態においては、同じ入力をするための、プログラムのためのプログラム・バージョンを有する。
【００９０】
アプリケーション専用であるクラウドのリソースは、例えば、イメージを含むことができる。幾つかの場合、アプリケーション・リソース・マネージャが、アプリケーション専用であるクラウドのリソースを圧縮する必要があると判断すると、アプリケーション・リソース・マネージャは、未使用のイメージをスタッシュすることにより縮小を実行する。
【００９１】
幾つかの場合、アプリケーション・リソース・マネージャは、アプリケーション専用であるクラウドのリソースを拡張する必要があると判断し、クラウドにおいて新しいイメージをプロビジョニングすることにより拡張を実行する。前述のように、幾つかの場合、このことは、アプリケーション・リソース・マネージャが、新しいイメージの上に、アプリケーション・レベルのソフトウェア及び／又はデータをプロビジョニングすることを含み得る。
【００９２】
同じく前述のように、アプリケーション・リソース・マネージャは、クラウド上、又はクラウド以外の付加的なコンピューティング・リソース上で動作することができ、幾つかの場合、こうしたリソースもシステムの一部を形成する。サーバ１２は、クラウド１０のクラウド・リソースとして示されるが、アプリケーション・リソース・マネージャ４０１を実装することができる非クラウド・コンピューティング・リソースも等しく表すことが認識されるであろう。さらに、クラウド以外の付加的なコンピューティング・リソースも、マネージャ４０１が、それが管理するクラウドとは異なるクラウド上で動作する場合も含むことができる。
【００９３】
図６に見られるように、アプリケーション・リソース・マネージャは、幾つかの場合、管理部分６３３及び制御部分６３５を含む。こうした場合、アプリケーション・リソース・マネージャの管理部分は、予測に基づいて、アプリケーション専用であるクラウドのリソースが、拡張及び縮小の一方を必要とすると判断するコンポーネントとすることができ、アプリケーション・リソース・マネージャの制御部分は、その判断に応じて、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行するコンポーネントとすることができる。
【００９４】
例示的なシステム及び製造物品の詳細
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形をとることができ、これらは全て本明細書において一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを内部に有する１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形をとることができる。
【００９５】
本発明の１つ又は複数の実施形態、又はその要素は、メモリと、メモリに結合され、例示的な方法ステップを実行するように動作可能な少なくとも１つのプロセッサとを含む装置の形で実施することができる。
【００９６】
１つ又は複数の実施形態は、汎用コンピュータ又はワークステーション上で実行されるソフトウェアを利用することができる。図１を参照すると、こうした実装は、例えば、プロセッサ１６と、メモリ２８と、ディスプレイ２４及びキーボード、ポインティング・デバイス等などの外部装置１４への入力／出力インターフェース２２を用いることができる。本明細書で用いられる「プロセッサ」という用語は、例えば、ＣＰＵ（中央処理ユニット）及び／又は他の処理回路を含むものなどの、任意の処理デバイスを含むことが意図される。さらに、「プロセッサ」という用語は、１つより多い個々のプロセッサを指し得る。本明細書で用いられる「メモリ」という用語は、例えば、ＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読み出し専用メモリ）、固定メモリ・デバイス（例えばハード・ドライブ３４）、取り外し可能メモリ・デバイス（例えば、ディスケット）、フラッシュ・メモリ等のような、プロセッサ又はＣＰＵと関連したメモリを含むことが意図される。さらに、本明細書で用いられる「入力／出力デバイス」という語句は、例えば、データを処理ユニットに入力するための１つ又は複数の機構（例えば、マウス）、及び、処理ユニットと関連した結果を提示するための１つ又は複数の機構（例えば、プリンタ）へのインターフェースを考えるよう意図される。プロセッサ１６、メモリ２８、及び／又は入力／出力インターフェース２２は、例えば、データ処理ユニット１２の一部としてバス１８を介して相互接続することができる。例えばバス１８を介した適切な相互接続を、コンピュータ・ネットワークとインターフェース接続するために提供することができる、ネットワーク・カードなどのネットワーク・インターフェース２０、及び、適切な媒体とインターフェース接続することができる、ディスケット又はＣＤ−ＲＯＭドライブのような媒体インターフェースに与えることもできる。
【００９７】
従って、本発明の方法をここで説明されたように行うための命令又はコードを含むコンピュータ・ソフトウェアを、１つ又は複数の関連付けられたメモリ・デバイス（例えば、ＲＯＭ、固定又は取り外し可能なメモリ）内に格納し、利用準備ができたときに一部又は全部を（例えば、ＲＡＭ内に）ロードし、ＣＰＵによって実施することができる。このようなソフトウェアは、これらに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むことができる。
【００９８】
プログラム・コードを格納及び／又は実行するのに適したデータ処理システムは、システム・バスを通じてメモリ要素に直接又は間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実施中に用いられるローカル・メモリ、大容量記憶装置、及び、実施中に大容量記憶装置からコードを読み出さなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含むことができる。
【００９９】
入力／出力デバイスすなわちＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス等を含むがこれらに限定されない）は、直接又は介在するＩ／Ｏコントローラを通じてシステムに結合することもできる。
【０１００】
ネットワーク・アダプタ２０をシステムに結合させて、データ処理システムが、介在する私設ネットワーク又は公衆ネットワークを通じて他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスに結合できるようにすることもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現在入手可能なネットワーク・アダプタのタイプのうちのほんの数例である。
【０１０１】
特許請求の範囲を含めた本明細書で用いられる場合、「サーバ」は、サーバ・プログラムを実行する物理的データ処理システム（例えば、図１に示されるようなシステム１２）を含む。そのような物理的サーバは、ディスプレイ及びキーボードを含む場合も又は含まない場合もあることが理解されるであろう。
【０１０２】
前述のように、本発明の態様は、具体化されたコンピュータ可読プログラム・コードをその中に有する１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。１つ又は複数のコンピュータ可読媒体のあらゆる組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもよく、又はコンピュータ可読ストレージ媒体であってもよい。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子的、磁気的、光学的、電磁的、赤外線若しくは半導体のシステム、装置若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）は、以下もの、すなわち、１つ又は複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせを含む。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いられる又はそれらに関連して用いられるプログラムを収容又は格納することができる、いずれかの有形媒体とすることができる。
【０１０３】
コンピュータ可読信号媒体は、具体化されたコンピュータ可読プログラム・コードを、例えばベースバンド内に又は搬送波の一部としてその中に有する、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁的形態、光学的形態又はこれらのいずれかの適切な組み合わせを含む種々の形態のうちのいずれかをとることもできる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって用いられる又はそれらに関連して用いられるプログラムを伝達、伝搬又伝送することができる、いずれかのコンピュータ可読媒体とすることができる。
【０１０４】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
【０１０５】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び「Ｃ」プログラミング言語のような従来の手続き型プログラミング言語、又は同様のプログラミング言語、又はＰｅｒｌのようなスクリプト言語を含む、１つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。幾つかの場合、最適化ソルバー（optimizing solver）を、例えば、ＩＬＯＧ  ＣＰＬＥＸなどのサブコンポーネント（米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な、線形計画法（linear programming）、混合整数計画法（mixed integerprogramming）及び二次計画法（quadratic programming）のための高性能の数理計画ソルバー）として用いることができる。一般的に言うと、プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの（例えば、インターネット・サービス・プロバイダを用いるインターネットを通じた）接続がなされる場合もある。１つ又は複数の実施形態において、コードのかなりの部分は、アプリケーション・リソース・マネージャと関連付けられたものであり、これは、クラウド又は外部で実行され得る。少なくとも幾つかの場合において、エンド・ユーザ・マシン上ではなく、サーバ上にある可能性が高い（たとえ、そうであったとしても、アプリケーション所有者のエンド・ユーザ・マシン）が、アプリケーション所有者がラップトップ等からこれを実行することは不可能ではない。
【０１０６】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下で説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を生成するようにすることができる。
【０１０７】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスに特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【０１０８】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で、コンピュータ実装プロセスを生成するための一連の動作ステップを実施させて、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにすることもできる。
【０１０９】
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示す。これに関して、フローチャート又はブロック図中の各ブロックは、指定された論理機能を実施するための１つ又は複数の実行可能命令を含むコードの、モジュール、セグメント、又は部分を表すことができる。さらに、幾つかの代替的実施形態において、ブロック内に記述された機能は、図中に示したのとは別の順序で実行することができることに留意されたい。例えば、連続して示した２つのブロックは、実際には、実質的に並列に実行することができ、又はブロックは場合により、関与する機能性に応じて逆の順序で実行することができる。さらに、ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアをベースとするシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施できることにも留意されたい。
【０１１０】
本明細書で説明される方法のいずれも、コンピュータ可読ストレージ媒体上で具体化される別個のソフトウェア・モジュールを含むシステムを提供する付加的なステップを含むことができ、これらのモジュールは、例えば、限定ではなく例示として、図６に示されるようなポリシー・サブ・モジュール、管理サブ・モジュール、制御サブ・モジュール及び解釈サブ・モジュールといった１つ又は複数のサブ・モジュールを有するアプリケーション・リソース・マネージャ・モジュールなどの、ブロック図及び／又は本明細書で説明される要素のいずれか又は全てを含むことができる。次に、１６個など、１つ又は複数のハードウェア・プロセッサ上で実行されている、上述のようなシステムの別個のソフトウェア・モジュール及び／又はサブ・モジュールを用いて、方法ステップを実行することができる。さらに、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムを設けることを含む、本明細書で説明される１つ又は複数の方法ステップの実行のために実装されるように適合されたコードを有するコンピュータ可読ストレージ媒体を含むことができる。幾つかの場合、判断するステップは、少なくとも１つのハードウェア・プロセッサ上で実行されている管理サブ・モジュールにより実行され、拡張又は縮小は、少なくとも１つのハードウェア・プロセッサ上で実行されている制御サブ・モジュールにより実行される。取得するステップは、通常、アプリケーション・リソース・マネージャ・モジュールにより実行されるものと考えることができ、予測がアプリケーション所有者から取得される場合、ポリシー・サブ・モジュールを用いることができるが、アプリケーション・リソース・マネージャ自体が、アプリケーション及び／又はクラウド管理インターフェースからのデータから予測を導き出す場合には、解釈サブ・モジュールを用いることができる。
【０１１１】
いずれの場合でも、本明細書で示されるコンポーネントは、例えば、特定用途向け集積回路（ＡＳＩＣＳ）、機能回路、関連したメモリを有する１つ又は複数の適切にプログラムされた汎用デジタル・コンピュータ等など、ハードウェア、ソフトウェア、又はそれらの組み合わせの種々の形で実装できることを理解されたい。本明細書で与えられる本発明の教示が与えられると、当業者は、本明細書のコンポーネントの他の実装を考えることができるであろう。
【０１１２】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的とし、本発明を限定することを意図したものではない。ここで用いられる単数形の「１つの（a）」、「１つの（an）」及び「その（the）」という用語は、文脈が明確に他の場合を指示していない限り、複数形も含む。「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられるとき、記述された特徴、整数、ステップ、操作、要素、及び／又はコンポーネントの存在を指定するが、１つ又は複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、及び／又はその群の存在又は付加を除外するものではないことが、さらに理解されるであろう。
【０１１３】
下記の特許請求の範囲におけるすべての機能付き手段（ミーンズ・プラス・ファンクション）又は機能付き工程（ステップ・プラス・ファンクション）の対応する構造、材料、動作、及び均等物は、該当する場合には、具体的に請求される他の請求要素と組み合わせて本機能を実施するためのいずれかの構造、材料、又は動作を含むことを意図している。本発明の記載は、例示及び説明目的で提示されたが、網羅的であることを意図するものでも、開示された形態の発明に限定されることを意図するものでものでもない。当業者であれば、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明し、その他の当業者が企図される特定の使用に適した種々の修正を伴う種々の実施形態について本発明を理解できるように、選択され、説明された。
【符号の説明】
【０１１４】
１０：クラウド・コンピューティング・ノード
１２：コンピュータ・システム／サーバ
１４：外部デバイス
１６：処理ユニット（プロセッサ）
１８：バス
２０：ネットワーク・アダプタ
２２：入力／出力（Ｉ／Ｏ）インターフェース
２４：ディスプレイ
２８：システム・メモリ
３０：ランダム・アクセス・メモリ（ＲＡＭ）
３２：キャッシュ・メモリ
３４：ストレージ・システム
４０：プログラム／ユーティリティ
４２：プログラム・モジュール
５０：クラウド・コンピューティング環境
５４Ａ：携帯情報端末（ＰＤＡ）又は携帯電話
５４Ｂ：デスクトップ・コンピュータ
５４Ｃ：ラップトップ・コンピュータ
５４Ｎ：自動車コンピュータ・システム
６０：ハードウェア及びソフトウェア層
６２：仮想化層
６４：管理層
６６：ワークロード層
４０１：アプリケーション・リソース・マネージャ・コンポーネント
４０３：アプリケーション・コンポーネント
５１１：アプリケーション・ボックス
５１３：アプリケーション所有者
５１５：通常のアプリケーション・ユーザ
５１７：アプリケーション・ソフトウェア
５１９：イメージ
５２１：クラウド・ランタイム環境
５２３：クラウド管理プラットフォーム
６３１：ポリシー
６３３：管理コンポーネント
６３５：制御コンポーネント
６３７：解釈コンポーネント
【図１】
2014527221.tif 000003
【図２】
2014527221.tif 000004
【図３】
2014527221.tif 000005
【図４】
2014527221.tif 000006
【図５】
2014527221.tif 000007
【図６】
2014527221.tif 000008
【手続補正書】
【提出日】平成26年1月28日(2014.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーション・リソース・マネージャにより、ＩａａＳ(ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ)クラウド及びＰａａＳ(ｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅ)クラウドの少なくとも一方を含むクラウド上で動作するアプリケーションに対する今後の需要の予測を取得するステップと、
前記アプリケーション・リソース・マネージャにより、前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断するステップと、
前記判断するステップに応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行するステップと、
を含む方法。
【請求項２】
前記取得するステップは、アプリケーション所有者から前記予測を取得するステップを含む、請求項１に記載の方法。
【請求項３】
前記取得するステップは、前記アプリケーション・リソース・マネージャが、
前記アプリケーション、及び前記クラウドのクラウド管理インターフェースからのデータのうちの少なくとも一方の観察に基づいて、前記予測を導き出すステップを含む、請求項１に記載の方法。
【請求項４】
前記判断するステップは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて未使用のイメージをスタッシュすることにより、前記縮小を実行するステップを含む、請求項１に記載の方法。
【請求項５】
前記判断するステップは、前記アプリケーション専用である前記クラウドのリソースを拡張する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行するステップを含む、請求項１に記載の方法。
【請求項６】
前記アプリケーション・リソース・マネージャが、アプリケーション・レベルのソフトウェア及びデータの少なくとも一方を前記新しいイメージにプロビジョニングするステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記クラウド上で前記アプリケーション・リソース・マネージャを動作させること、及び、
前記クラウド以外のコンピューティング・リソース上で前記アプリケーション・リソース・マネージャを動作させること、
の少なくとも一方をさらに含む、請求項１に記載の方法。
【請求項８】
前記判断するステップは、前記予測される今後の需要を満たすのに最も費用効果の高い方法を見出すステップを含む、請求項１に記載の方法。
【請求項９】
前記取得するステップにおいて、前記予測される今後の需要は、性能及び可用性の少なくとも一方に関して特定される、請求項１に記載の方法。
【請求項１０】
前記アプリケーション・リソース・マネージャは、
前記アプリケーション、及び  前記アプリケーション専用である前記クラウドの前記リソースの少なくとも一方を検出するために、発見ツールを周期的に動作させるステップをさらに含む、請求項１に記載の方法。
【請求項１１】
システムを提供するステップをさらに含み、前記システムは別個のソフトウェア・モジュールを含み、前記別個のソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具体化され、前記別個のソフトウェア・モジュールは、アプリケーション・リソース・マネージャ・モジュールと、管理サブ・モジュールと、制御サブ・モジュールとを含み、
前記取得するステップは、少なくとも１つのハードウェア・プロセッサ上で実行されている前記アプリケーション・リソース・マネージャ・モジュールにより実行され、
前記判断するステップは、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより実行され、
前記拡張するステップ及び縮小するステップの前記一方は、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記制御サブ・モジュールにより実行される、請求項１に記載の方法。
【請求項１２】
前記別個のソフトウェア・モジュールは、ポリシー・サブ・モジュール及び解釈サブ・モジュールをさらに含み、
前記判断するステップは、前記少なくとも１つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより、前記ポリシー・サブ・モジュールの少なくとも１つのポリシーを実装することによって、及び、前記解釈サブ・モジュールからの利用情報及び故障報告の少なくとも１つに基づいて、実行される、
請求項１１に記載の方法。
【請求項１３】
ＩａａＳクラウド及びＰａａＳクラウドの少なくとも１つを含むクラウドと、
前記クラウド上で動作する少なくも１つのアプリケーションと、
アプリケーション・リソース・マネージャと、
を含み、
前記アプリケーション・リソース・マネージャは、
前記アプリケーションに対する今後の需要の予測を取得し、
前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断し、
前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、
システム。
【請求項１４】
前記アプリケーション・リソース・マネージャは、アプリケーション所有者から前記予測を取得する、請求項１３に記載のシステム。
【請求項１５】
前記クラウドはクラウド管理インターフェースを含み、前記アプリケーション・リソース・マネージャは、前記アプリケーション及び前記クラウドのクラウド管理インターフェースからのデータの観察に基づいて前記予測を導き出すことにより、前記予測を取得する、請求項１３に記載のシステム。
【請求項１６】
前記アプリケーション専用である前記クラウドの前記リソースの少なくとも幾つかはイメージを含み、
前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断し、
前記アプリケーション・リソース・マネージャは、前記イメージのうちの未使用のものをスタッシュすることにより、前記縮小を実行する、
請求項１３に記載のシステム。
【請求項１７】
前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを拡張する必要があると判断し、前記アプリケーション・リソース・マネージャは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行する、請求項１３に記載のシステム。
【請求項１８】
前記アプリケーション・リソース・マネージャは、管理部分及び制御部分を含み、
前記アプリケーション・リソース・マネージャの前記管理部分は、前記予測に基づいて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を必要とすると判断し、
前記アプリケーション・リソース・マネージャの前記制御部分は、前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、請求項１３に記載のシステム。
【請求項１９】
請求項１〜１２の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項２０】
請求項１９記載のコンピュータ・プログラムをコンピュータ可読記録媒体に記録した、記録媒体。
【国際調査報告】
2014527221.tif 000009