(57)【特許請求の範囲】
【請求項１】
第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するように構成された決定ユニットと、
前記決定ユニットの決定結果と、前記第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーとに従って、前記第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令するように構成された緊急事態ユニットと、
前記決定ユニットの前記決定結果に従って第３の仮想マシンを作成し、前記第３の仮想マシン上に前記第１のアプリケーションをデプロイして開始するように構成された作成ユニットと、
前記第１のアプリケーションが前記第３の仮想マシン上で開始された後に、前記第２の仮想マシンに対して、前記第１のアプリケーションを実行するのを停止するように命令するように構成された停止ユニットと
を含むクラウドサービスプロバイダ（CSP）サーバ。
【請求項２】
前記クラウドサービスプロバイダサーバは、前記第１のアプリケーションと緊急事態関係を有する前記第２のアプリケーションが決定される前に、アプリケーションデプロイメント要求を受信するように構成された受信ユニットであり、前記アプリケーションデプロイメント要求は、前記第１のアプリケーションに対応する前記緊急事態ポリシーを搬送し、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーション及び前記第２のアプリケーションが緊急事態関係を有することを記述する受信ユニットを更に含む、請求項１に記載のクラウドサービスプロバイダサーバ。
【請求項３】
前記アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションが前記第３のアプリケーション上にホストされることであり、或いは前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションがホストされる仮想マシン及び前記第３のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に貸し出すことであり、
前記クラウドサービスプロバイダサーバは、前記第２のアプリケーションがホストされる前記第２の仮想マシンが前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令される前に、前記第２の仮想マシン上に、前記第１のアプリケーションとホストオン関係を有する前記第３のアプリケーションをデプロイするように構成されたデプロイメントユニットを更に含む、請求項２に記載のクラウドサービスプロバイダサーバ。
【請求項４】
前記緊急事態ポリシーは、緊急事態トリガー条件を含み、前記緊急事態トリガー条件は、前記第２の仮想マシンのアイドルリソースの量が前記第２の仮想マシン上で前記第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含み、
前記緊急事態ユニットが、前記第２のアプリケーションがホストされる前記第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令することは、前記第２の仮想マシンの動作状態に従って、前記緊急事態トリガー条件が満たされたと決定された場合、前記第２のアプリケーションがホストされる前記第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令することを含む、請求項１乃至３のうちいずれか１項に記載のクラウドサービスプロバイダサーバ。
【請求項５】
前記第２のアプリケーションがホストされる前記第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令する前に、前記緊急事態ユニットは、前記第２の仮想マシンが前記第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定し、前記第２の仮想マシン上に前記第１のアプリケーションをデプロイするように更に構成される、請求項１乃至４の内いずれか１項に記載のクラウドサービスプロバイダサーバ。
【請求項６】
アプリケーションデプロイメント要求を生成するように構成された生成ユニットと、
前記アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成された送信ユニットと
を含み、
前記アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、前記第１のアプリケーションに対応する前記ノードテンプレートは、前記第１のアプリケーションに対応する緊急事態ポリシーを含み、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーションが前記第２のアプリケーションと緊急事態関係を有することを記述する、クラウドサービスクライアント。
【請求項７】
前記アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションが前記第３のアプリケーション上にホストされることであり、或いは前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションがホストされる仮想マシン及び前記第３のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に貸し出すことである、請求項６に記載のクラウドサービスクライアント。
【請求項８】
プロセッサとメモリとを含み、
前記メモリ内のコードを呼び出すことにより、前記プロセッサは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、前記第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、前記第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、前記第３の仮想マシン上に前記第１のアプリケーションをデプロイして開始し、前記第１のアプリケーションが前記第３の仮想マシン上で開始された後に、前記第２の仮想マシンに対して、前記第１のアプリケーションを実行するのを停止するように命令するように構成される、クラウドサービスプロバイダサーバ。
【請求項９】
仮想マシンを追加するための前記条件は、以下の条件、すなわち、前記第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、前記第１の仮想マシン上で実行する前記第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は前記第１の仮想マシン上で実行する前記第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含む、請求項８に記載のクラウドサービスプロバイダサーバ。
【請求項１０】
前記メモリ内の前記コードを呼び出すことにより、前記プロセッサは、前記第１のアプリケーションと緊急事態関係を有する前記第２のアプリケーションを決定する前にアプリケーションデプロイメント要求を受信するように更に構成され、前記アプリケーションデプロイメント要求は、前記第１のアプリケーションに対応する前記緊急事態ポリシーを搬送し、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーション及び前記第２のアプリケーションが緊急事態関係を有することを記述する、請求項８又は９に記載のクラウドサービスプロバイダサーバ。
【請求項１１】
プロセッサとメモリとを含み、
前記メモリ内のコードを呼び出すことにより、前記プロセッサは、アプリケーションデプロイメント要求を生成し、前記アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成され、前記アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、前記第１のアプリケーションに対応する前記ノードテンプレートは、前記第１のアプリケーションに対応する緊急事態ポリシーを含み、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーション及び前記第２のアプリケーションが緊急事態関係を有することを記述する、クラウドサービスクライアント。
【請求項１２】
前記アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションが前記第３のアプリケーション上にホストされることであり、或いは前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションがホストされる仮想マシン及び前記第３のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に貸し出すことである、請求項１１に記載のクラウドサービスクライアント。
【請求項１３】
クラウドサービスプロバイダ（CSP）サーバにより、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するステップと、
前記第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、前記第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令するステップと、
第３の仮想マシンを作成し、前記第３の仮想マシン上に前記第１のアプリケーションをデプロイして開始するステップと、
前記第１のアプリケーションが前記第３の仮想マシン上で開始された後に、前記第２の仮想マシンに対して、前記第１のアプリケーションを実行するのを停止するように命令するステップと
を含むクラウドアプリケーション処理方法。
【請求項１４】
仮想マシンを追加するための前記条件は、以下の条件、すなわち、前記第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、前記第１の仮想マシン上で実行する前記第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は前記第１の仮想マシン上で実行する前記第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含む、請求項１３に記載の方法。
【請求項１５】
前記第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、前記第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定する前記ステップの前に、前記方法は、
前記CSPサーバにより、アプリケーションデプロイメント要求を受信するステップであり、前記アプリケーションデプロイメント要求は、前記第１のアプリケーションに対応する前記緊急事態ポリシーを搬送し、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーション及び前記第２のアプリケーションが緊急事態関係を有することを記述するステップを更に含む、請求項１３又は１４に記載の方法。
【請求項１６】
前記アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションが前記第３のアプリケーション上にホストされることであり、或いは前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションがホストされる仮想マシン及び前記第３のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に貸し出すことであり、
前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令する前記ステップの前に、前記方法は、
前記CSPサーバにより、前記第２の仮想マシン上に、前記第１のアプリケーションとホストオン関係を有する前記第３のアプリケーションをデプロイするステップを更に含む、請求項１５に記載の方法。
【請求項１７】
前記緊急事態ポリシーは、緊急事態トリガー条件を更に含み、
前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令する前記ステップの前に、前記方法は、
前記第２の仮想マシンの動作状態に従って、前記緊急事態トリガー条件が満たされたと決定するステップを更に含み、
前記緊急事態トリガー条件は、前記第２の仮想マシンのアイドルリソースの量が前記第２の仮想マシン上で前記第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含む、請求項１５又は１６に記載の方法。
【請求項１８】
前記第２のアプリケーションがホストされる第２の仮想マシンに対して、前記第２の仮想マシン上にデプロイされた前記第１のアプリケーションを実行するように命令する前記ステップの前に、前記方法は、
前記第２の仮想マシンが前記第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定し、前記第２の仮想マシン上に前記第１のアプリケーションをデプロイするステップを更に含む、請求項１３乃至１７のうちいずれか１項に記載の方法。
【請求項１９】
アプリケーションデプロイメント要求を生成するステップと、
前記アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するステップであり、前記アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、前記第１のアプリケーションに対応する前記ノードテンプレートは、前記第１のアプリケーションに対応する緊急事態ポリシーを含み、前記第１のアプリケーションに対応する前記緊急事態ポリシーは、前記第１のアプリケーション及び前記第２のアプリケーションが緊急事態関係を有することを記述するステップと
を含むクラウドアプリケーションデプロイメント方法。
【請求項２０】
前記アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションが前記第３のアプリケーション上にホストされることであり、或いは前記第１のアプリケーションと第３のアプリケーションとの間の、前記ホストオン関係テンプレートに記述されるホストオン関係は、前記第１のアプリケーションがホストされる仮想マシン及び前記第３のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に貸し出すことである、請求項１９に記載の方法。
【請求項２１】
プログラムがコンピュータ上で実行された場合、前記コンピュータに対して請求項１３乃至２０のうちいずれか１項に記載の方法のステップを実行させるプログラムを記憶したコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術の分野に関し、特に、クラウドアプリケーション処理方法、クラウドアプリケーションデプロイメント方法、関係する装置及びクラウドサービスシステムに関する。
【背景技術】
【０００２】
広い意味でのクラウドコンピューティングサービスは、サービス配信及び消費モードとして見なされ得る。
【０００３】
クラウドサービスプロバイダ（CSP、Cloud  Service  Provider）は、ネットワークを使用することにより大量のコンピューティングリソースを接続し、統一された管理、割り当て及びスケジューリングを実行し、コンピューティングリソースは、クラウドサービス消費者（CSC、Cloud  Service  Consumer）のためのサービスを提供する巨大なコンピューティングリソースプールを構成する。CSCにとって、クラウドリソースは、無限に拡張され、高効率及び柔軟性、例えば、デマンド型の要求及び使用毎の支払いの特徴を有し得る。
【０００４】
サービスとしてのプラットフォーム（PaaS、Platform  as  a  Service）は、広い意味のクラウドコンピューティングの一般的なサービスモードである。PaaSは、サービスとしてユーザのためのミドルウェアプラットフォーム（データベース、アプリケーションサーバ等をカバーする）を提供し、ミドルウェアプラットフォームは、カスタマイズされた方式で開発される。基本的に、PaaSは、インターネットのリソースサービスをプログラム可能なインタフェースに変換し、商品価値を有するリソース及びサービスプラットフォームを第三者の開発者に提供する。PaaSプラットフォームのサポートにより、クラウドコンピューティング開発者は、大量のプログラム可能なエレメントを取得する。これらのプログラム可能なエレメントは、特定のサービスロジックを有し、これは、開発に大きい利便性をもたらし、開発効率を改善することだけでなく、開発コストを低減する。
【０００５】
従来技術では、ユーザは、CSPサーバにより管理された仮想マシン上にアプリケーションをデプロイすることができ、CSPサーバ（例えば、Amazon  EC2）は、複数の同一のスタンバイ仮想マシン（同じアプリケーションがインストールされ、すぐに実行できる状態にある）を取得するために、複製を実行する。実行中の仮想マシンの負荷が耐障害ポリシーにおける閾値セットに到達した場合、CSPサーバは、現在実行中の仮想マシンと共に対応する負荷を引き受けるために、スタンバイ仮想マシンを開始する。しかし、従来技術では、スタンバイ仮想マシンリソースは、アプリケーションがデプロイされたときに直接要求され、仮想マシンリソースの低い利用率を生じる。
【発明の概要】
【０００６】
本発明の実施例は、仮想マシンリソースの利用率を改善するためのクラウドアプリケーション処理方法、クラウドアプリケーションデプロイメント方法、関係する装置及びクラウドサービスシステムを提供する。
【０００７】
本発明の第１の態様は、クラウドサービスプロバイダサーバを提供し、これは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するように構成された決定ユニットと、決定ユニットの決定結果と、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーとに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するように構成された緊急事態ユニットと、決定ユニットの決定結果に従って第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始するように構成された作成ユニットと、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するように構成された停止ユニットとを含んでもよい。
【０００８】
第１の態様を参照して、第１の態様の第１の可能な実現方式では、クラウドサービスプロバイダサーバは、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションが決定される前に、アプリケーションデプロイメント要求を受信するように構成された受信ユニットであり、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述する受信ユニットを更に含む。
【０００９】
第１の態様の第１の可能な実現方式を参照して、第１の態様の第２の可能な実現方式では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることであり、クラウドサービスプロバイダサーバは、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前に、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするように構成されたデプロイメントユニットを更に含む。
【００１０】
第１の態様、又は第１の態様の第１の可能な実現方式、又は第１の態様の第２の可能な実現方式を参照して、第１の態様の第３の可能な実現方式では、緊急事態ポリシーは、緊急事態トリガー条件を含み、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含み、緊急事態ユニットが、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することは、第２の仮想マシンの動作状態に従って、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することを具体的に含む。
【００１１】
第１の態様、又は第１の態様の第１の可能な実現方式、又は第１の態様の第２の可能な実現方式、又は第１の態様の第３の可能な実現方式を参照して、第１の態様の第４の可能な実現方式では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、緊急事態ユニットは、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定し、第２の仮想マシン上に第１のアプリケーションをデプロイするように更に構成される。
【００１２】
本発明の第２の態様は、クラウドサービスクライアントを提供し、これは、アプリケーションデプロイメント要求を生成するように構成された生成ユニットと、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成された送信ユニットとを含んでもよく、アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述する。
【００１３】
第２の態様を参照して、第２の態様の第１の可能な実現方式では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【００１４】
本発明の第３の態様は、クラウドサービスプロバイダサーバを提供し、これは、プロセッサとメモリとを含んでもよく、メモリ内のコードを呼び出すことにより、プロセッサは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始し、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するように構成される。
【００１５】
第３の態様を参照して、第３の態様の第１の可能な実現方式では、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含む。
【００１６】
第３の態様又は第３の態様の第１の可能な実現方式を参照して、第３の態様の第２の可能な実現方式では、メモリ内のコードを呼び出すことにより、プロセッサは、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定する前にアプリケーションデプロイメント要求を受信するように更に構成され、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述する。
【００１７】
本発明の第４の態様は、クラウドサービスクライアントを提供し、これは、プロセッサとメモリとを含み、メモリ内のコードを呼び出すことにより、プロセッサは、アプリケーションデプロイメント要求を生成し、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成され、アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述する。
【００１８】
第４の態様を参照して、第４の態様の第１の可能な実現方式では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【００１９】
本発明の第５の態様は、クラウドアプリケーション処理方法を提供し、これは、クラウドサービスプロバイダ（CSP）サーバにより、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するステップと、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するステップと、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始するステップと、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するステップとを含んでもよい。
【００２０】
第５の態様を参照して、第５の態様の第１の可能な実現方式では、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含む。
【００２１】
第５の態様又は第５の態様の第１の可能な実現方式を参照して、第５の態様の第２の可能な実現方式では、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定するステップの前に、この方法は、CSPサーバにより、アプリケーションデプロイメント要求を受信するステップであり、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述するステップを更に含む。
【００２２】
第５の態様の第２の可能な実現方式を参照して、第５の態様の第３の可能な実現方式では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることであり、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するステップの前に、この方法は、CSPサーバにより、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするステップを更に含む。
【００２３】
第５の態様の第２の可能な実現方式又は第５の態様の第３の可能な実現方式を参照して、第５の態様の第４の可能な実現方式では、緊急事態ポリシーは、緊急事態トリガー条件を更に含み、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するステップの前に、この方法は、第２の仮想マシンの動作状態に従って、緊急事態トリガー条件が満たされたと決定するステップを更に含み、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含む。
【００２４】
第５の態様、又は第５の態様の第１の可能な実現方式、又は第５の態様の第２の可能な実現方式、又は第５の態様の第３の可能な実現方式、又は第５の態様の第４の可能な実現方式を参照して、第５の態様の第５の可能な実現方式では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するステップの前に、この方法は、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定し、第２の仮想マシン上に第１のアプリケーションをデプロイするステップを更に含む。
【００２５】
本発明の第６の態様は、クラウドアプリケーションデプロイメント方法を提供し、これは、アプリケーションデプロイメント要求を生成するステップと、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するステップであり、アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーション及び第２のアプリケーションが緊急事態関係を有することを記述するステップとを含んでもよい。
【００２６】
第６の態様を参照して、第６の態様の第１の可能な実現方式では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【００２７】
本発明の第７の態様は、コンピュータ記憶媒体を提供し、コンピュータ記憶媒体は、プログラムを記憶し、プログラムが実行された場合、本発明の実施例において提供されるいずれかのクラウドアプリケーション処理方法のステップの一部又は全部が含まれる。
【００２８】
本発明の第８の態様は、コンピュータ記憶媒体を提供し、コンピュータ記憶媒体は、プログラムを記憶し、プログラムが実行された場合、本発明の実施例において提供されるいずれかのクラウドアプリケーションデプロイメント方法のステップの一部又は全部が含まれる。
【００２９】
本発明の実施例の解決策において、第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得ることが認識され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明の実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減し、クラウドサービスの信頼性を改善するのに役立つ。
【図面の簡単な説明】
【００３０】
本発明の実施例における技術的解決策をより明確に説明するために、以下に、実施例を説明するために必要な添付図面について簡単に説明する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、これらの添付図面から他の図面を依然として導き得る。
【図１】本発明の実施例によるクラウドサービスネットワークアーキテクチャの概略図である。
【図２−ａ】本発明の実施例によるクラウドサービスプロバイダサーバの概略図である。
【図２−ｂ】本発明の実施例による他のクラウドサービスプロバイダサーバの概略図である。
【図２−ｃ】本発明の実施例による他のクラウドサービスプロバイダサーバの概略図である。
【図２−ｄ】本発明の実施例による他のクラウドサービスプロバイダサーバの概略図である。
【図３】本発明の実施例による他のクラウドサービスプロバイダサーバの概略図である。
【図４】本発明の実施例による他のクラウドサービスプロバイダサーバの概略図である。
【図５】本発明の実施例によるクラウドサービスクライアントの概略図である。
【図６】本発明の実施例による他のクラウドサービスクライアントの概略図である。
【図７】本発明の実施例による他のクラウドサービスクライアントの概略図である。
【図８】本発明の実施例によるクラウドサービスシステムの概略図である。
【図９】本発明の実施例によるクラウドアプリケーション処理方法の概略フローチャートである。
【図１０】本発明の実施例によるクラウドアプリケーション処理方法の概略フローチャートである。
【図１１】本発明の実施例によるアプリケーショントポロジの概略構成図である。
【図１２】本発明の実施例による仮想マシン上にデプロイされるアプリケーションのトポロジの概略構成図である。
【図１３】本発明の実施例によるクラウドアプリケーションデプロイメント方法の概略フローチャートである。
【発明を実施するための形態】
【００３１】
本発明の実施例は、仮想マシンリソースの利用率を改善するためのクラウドアプリケーション処理方法、クラウドアプリケーションデプロイメント方法、関係する装置及びクラウドサービスシステムを提供する。
【００３２】
以下に、具体的な実施例を使用することにより、詳細な説明を提供する。
【００３３】
本発明の目的、特徴及び利点をより明確且つより分かりやすくするために、以下に、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決策を明確且つ完全に説明する。明らかに、以下に説明する実施例は、本発明の実施例の全部ではなく、一部に過ぎない。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００３４】
本発明の明細書、特許請求の範囲及び添付図面において、“第１”、“第２”、“第３”、“第４”等の用語は、異なる物を区別することを意図するものであり、特定の順序を示すことを意図するものではない。さらに、“含む”、“有する”、又はこれらの他の変形は、非排他的包含をカバーすることを意図するものである。例えば、一連のステップ又はユニットを含む手順、方法、システム、プロダクト又はデバイスは、記載のステップ又はユニットに限定されず、任意選択で記載されていないステップ又はユニットを更に含み、或いは任意選択で処理、方法、プロダクト又はデバイスの他の固有のステップ又はユニットを更に含む。
【００３５】
まず図１を参照する。図１は、本発明の実施例によるクラウドサービスネットワークアーキテクチャの概略図である。CSPサーバは、複数のクラウドサービスクライアントのために要求されたクラウドサービスを提供してもよい。クラウドサービスクライアントは、クラウドアプリケーションサービスを求めてCSPサーバに申請してもよい。本発明の或る実施例における技術的解決策は、図１に示すクラウドサービスネットワークアーキテクチャに基づいて具体的に実現されてもよい。
【００３６】
図２−ａを参照すると、本発明の実施例は、クラウドサービスプロバイダサーバ200を提供し、これは、決定ユニット270と、緊急事態ユニット210と、作成ユニット220と、停止ユニット230とを含んでもよい。
【００３７】
決定ユニット270は、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するように構成される。
【００３８】
緊急事態ユニット210は、決定ユニット270の決定結果と、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーとに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するように構成される。
【００３９】
第１のアプリケーションは、第１の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第１のアプリケーションは、第１の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第１のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。
【００４０】
作成ユニット220は、決定ユニット270の決定結果に従って第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始するように構成される。
【００４１】
第２のアプリケーション及び第１のアプリケーションは、緊急事態関係を有するため、第２のアプリケーションはまた、第１のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第１のアプリケーションは、第２のアプリケーションのリソース借入アプリケーションと呼ばれてもよい（或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい）。第２のアプリケーションがホストされる第２の仮想マシンはまた、第１の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい（或いはリソース貸出仮想マシンと呼ばれる）。この理由は、第２のアプリケーションがホストされる第２の仮想マシンは、緊急事態のニーズのためにリソースを第１の仮想マシンに貸し出すことを可能にするためである。第２の仮想マシン上で第１のアプリケーションを実行することは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態のニーズを満たすためである（すなわち、第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有するために、第２の仮想マシン上で実行される）。したがって、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【００４２】
停止ユニット230は、第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令するように構成される。
【００４３】
第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、第３の仮想マシン上にデプロイされて第３の仮想マシン上で実行する第１のアプリケーションが、第１の仮想マシン上で実行する第１の仮想マシン上にデプロイされた第１のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第２の仮想マシン上にデプロイされて第２の仮想マシン上で実行する第１のアプリケーションの緊急事態の使命が完了する。したがって、第３の仮想マシンが第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令してもよい。
【００４４】
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含んでもよい。
【００４５】
図２−ｂを参照すると、本発明の或る実施例では、クラウドサービスプロバイダサーバ200は、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションが決定される前に、アプリケーションデプロイメント要求を受信するように構成された受信ユニット240を更に含んでもよく、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【００４６】
第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することは、第１のアプリケーション及び第２のアプリケーションが相互に緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシン及び第１のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい）こと、又は第２のアプリケーションが第１のアプリケーションのための緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい）ことを具体的に示してもよい。
【００４７】
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【００４８】
図２−ｃを参照すると、クラウドサービスプロバイダサーバ200は、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前に、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするように構成されたデプロイメントユニット250を更に含む。
【００４９】
本発明の或る実施例では、アプリケーションデプロイメント要求が第２の関係テンプレートを更に搬送し（第２の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい）、第１のアプリケーションと第４のアプリケーションとの間に接続関係が存在することを第２の関係テンプレートが記述し、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーションが第４のアプリケーションに接続される（connect  To）ことである場合、第２のアプリケーションがホストされる第２の仮想マシンが、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前に、デプロイメントユニット250は、第２の仮想マシン上にデプロイされた第１のアプリケーションを第４のアプリケーションに接続する（connect  To）ように命令するように更に構成されてもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーション及び第４のアプリケーションが互いに接続されることである場合、デプロイメントユニット250は、第２の仮想マシン上にデプロイされた第１のアプリケーションと第４のアプリケーションとの間に相互接続を確立するように命令するように更に構成されてもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第４のアプリケーションが第１のアプリケーションに接続されることである場合、デプロイメントユニット250は、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前又は後に、第４のアプリケーションを第２の仮想マシン上にデプロイされた第１のアプリケーションに接続するように命令するように更に構成されてもよい。デプロイメントユニット250が第１のアプリケーションを第４のアプリケーションに接続することは、一般的に、第１のアプリケーションと第４のアプリケーションとの間に通信可能な関係を確立すること、例えば、第４のアプリケーションに対応するIPアドレス及びポート番号のような情報を第１のアプリケーションの構成ファイルに記録すること等を示す。
【００５０】
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
【００５１】
緊急事態ユニット210が、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することを具体的に含んでもよい。
【００５２】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい）。
【００５３】
本発明の他の実施例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量から第１のリソース量閾値を引いたものが、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよく、第１のリソース量閾値は0より大きい。
【００５４】
本発明の或る実施例では、緊急事態ユニット210は、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前、且つ、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定された後に、第２の仮想マシン上に第１のアプリケーションをデプロイするように更に構成されてもよい。
【００５５】
図２−ｄを参照すると、本発明の或る実施例では、クラウドサービスプロバイダサーバ200は、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前に、第２の仮想マシン上で実行している一部又は全部のプロセスを第１のプロセスグループに追加し、第１のプロセスグループのために利用可能なリソースの最大量を設定するように構成されたプロセス管理ユニット260を更に含んでもよい。
【００５６】
本発明の或る実施例では、プロセス管理ユニット260は、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令された後に、第１のアプリケーションのプロセスを第２のプロセスグループに追加し、第２のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
【００５７】
本発明の或る実施例では、プロセス管理ユニット260は、第２の仮想マシンが第１のアプリケーションを実行するのを停止した後に、第２のプロセスグループを削除し、第１のプロセスグループを解散するように更に構成される。
【００５８】
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第２のプロセスグループのための利用可能なリソースの最大量と第１のプロセスグループのための利用可能なリソースの最大量との和は、第２の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
【００５９】
この実施例におけるCSPサーバ200は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ200の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【００６０】
この実施例の解決策において、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ200は、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始することが認識され得る。第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【００６１】
図３を参照すると、図３は、本発明の他の実施例によるクラウドサービスプロバイダサーバ300の概略図である。クラウドサービスプロバイダサーバ300は、少なくとも１つのバス301と、バス301に接続された少なくとも１つのプロセッサ302と、バス301に接続された少なくとも１つのメモリ303とを含んでもよい。
【００６２】
メモリ303内のコードを呼び出すことにより、プロセッサ302は、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始し、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するように構成される。
【００６３】
第１のアプリケーションは、第１の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第１のアプリケーションは、第１の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第１のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第２の仮想マシンは、第１のアプリケーションと緊急事態関係を有する第２のアプリケーション及び第１のアプリケーションがデプロイされた仮想マシンである。
【００６４】
明らかに、緊急事態関係に加えて、第１のアプリケーションと第２のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第１のアプリケーションと第２のアプリケーションとの間に接続関係が存在してもよい。
【００６５】
第２のアプリケーションは、第１のアプリケーションと緊急事態関係を有するため、第２のアプリケーションはまた、第１のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第１のアプリケーションは、第２のアプリケーションのリソース借入アプリケーションと呼ばれてもよい（或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい）。第２のアプリケーションがホストされる第２の仮想マシンはまた、第１の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい（或いはリソース貸出仮想マシンと呼ばれる）。この理由は、第２のアプリケーションがホストされる第２の仮想マシンは、緊急事態のニーズのためにリソースを第１の仮想マシンに貸し出すことを可能にするためである。第２の仮想マシン上で、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行することは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態のニーズを満たすためである（すなわち、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上にデプロイされて第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有するために、第２の仮想マシン上で実行される）。したがって、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【００６６】
第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、第３の仮想マシン上にデプロイされて第３の仮想マシン上で実行する第１のアプリケーションが、第１の仮想マシン上で実行する第１のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第２の仮想マシン上にデプロイされて第２の仮想マシン上で実行する第１のアプリケーションの緊急事態の使命が完了する。したがって、第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令してもよい。
【００６７】
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含んでもよい。
【００６８】
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定する前に、アプリケーションデプロイメント要求を受信するように更に構成され、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【００６９】
第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することは、第１のアプリケーション及び第２のアプリケーションが相互に緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシン及び第１のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい）こと、又は第２のアプリケーションが第１のアプリケーションの緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい）ことを具体的に示してもよい。
【００７０】
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。メモリ303内のコードを呼び出すことにより、プロセッサ302は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするように更に構成される。
【００７１】
本発明の或る実施例では、アプリケーションデプロイメント要求が第２の関係テンプレートを更に搬送し（第２の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい）、第１のアプリケーションと第４のアプリケーションとの間に接続関係が存在することを第２の関係テンプレートが記述し、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーションが第４のアプリケーションに接続される（connect  To）ことである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第１のアプリケーションを第４のアプリケーションに接続する（connect  To）ように命令するように更に構成される。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーション及び第４のアプリケーションが互いに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令される前に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第１のアプリケーションと第４のアプリケーションとの間に相互接続を確立するように命令するように更に構成される。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第４のアプリケーションが第１のアプリケーションに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前又は後に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第４のアプリケーションを第１のアプリケーションに接続するように命令するように更に構成される。
【００７２】
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
【００７３】
第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する態様において、本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するように具体的に構成されてもよい。
【００７４】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい）。
【００７５】
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前、且つ、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、第２の仮想マシン上に第１のアプリケーションをデプロイするように更に構成される。
【００７６】
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、第２の仮想マシン上で実行している一部又は全部のプロセスを第１のプロセスグループに追加し、第１のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
【００７７】
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令した後に、第１のアプリケーションのプロセスを第２のプロセスグループに追加し、第２のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
【００７８】
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止した後に、第２のプロセスグループを削除し、第１のプロセスグループを解散するように更に構成される。
【００７９】
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第２のプロセスグループのための利用可能なリソースの最大量と第１のプロセスグループのための利用可能なリソースの最大量との和は、第２の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
【００８０】
例えば、第５のアプリケーションもまた第１の仮想マシン上で現在実行していることを仮定すると、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第１の仮想マシン上で実行する第５のアプリケーションに対応する緊急事態ポリシーに従って、第５のアプリケーションと緊急事態関係を有する第６のアプリケーションを決定し、第６のアプリケーションがホストされる第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するように命令し、第４の仮想マシンを作成し、第４の仮想マシン上に第５のアプリケーションをデプロイして開始し、第４の仮想マシンが第４の仮想マシン上にデプロイされた第５のアプリケーションを開始した後に、第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するのを停止するように命令するように更に構成される。第５の仮想マシン上で第５のアプリケーションを実行することは、第１の仮想マシン上で実行する第５のアプリケーションの処理負荷を一時的に共有するために、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態のニーズを満たすためである。したがって、第５の仮想マシン上にデプロイされた第５のアプリケーションは、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【００８１】
この実施例におけるCSPサーバ300は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ300の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【００８２】
この実施例の解決策において、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ300は、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始することが認識され得る。第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【００８３】
図４を参照すると、図４は、本発明の他の実施例によるCSPサーバ400の概略ブロック図である。
【００８４】
CSPサーバ400は、少なくとも１つのプロセッサ401と、少なくとも１つのネットワークインタフェース404又は他のユーザインタフェース403と、メモリ405と、少なくとも１つの通信バス402とを含んでもよい。通信バス402は、これらの構成要素の間の接続及び通信を実現するように構成される。CSPサーバ400は、ディスプレイ（例えば、タッチスクリーン、LCD、CRT、ホログラフィ（Holographic）イメージングデバイス又はプロジェクタ（Projector））、クリックデバイス（例えば、マウス、トラックボール（trackball）、タッチパッド又はタッチスクリーン）、カメラ、ピックアップデバイス、及び／又は同様のものを含むユーザインタフェース403を任意選択で含む。
【００８５】
例えば、メモリ405は、読み取り専用メモリとランダムアクセスメモリとを含み、プロセッサ401のための命令及びデータを提供してもよい。
【００８６】
メモリ405の一部は、不揮発性メモリ（NVRAM）等を更に含む。
【００８７】
或る実現方式では、メモリ405は、以下の要素、すなわち、実行可能モジュール若しくはデータ構造、又はこれらのサブセット、又はこれらの拡張セットを記憶する。
【００８８】
オペレーティングシステム4051は、様々な種類の基本的なサービス及び処理ハードウェアに基づくタスクを実現するための様々な種類のシステムプログラムを含む。
【００８９】
アプリケーションプログラムモジュール4052は、様々な種類のアプリケーションサービスを実現するための様々な種類のアプリケーションプログラムを含む。
【００９０】
例えば、アプリケーションプログラムモジュール4052は、以下のユニット、すなわち、決定ユニット270、緊急事態ユニット210、作成ユニット220、停止ユニット230、受信ユニット240、デプロイメントユニット250、又はプロセス管理ユニット260のうち少なくとも１つを含んでもよい。
【００９１】
本発明のこの実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始し、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するように構成されてもよい。
【００９２】
第１のアプリケーションは、第１の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第１のアプリケーションは、第１の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第１のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第２の仮想マシンは、第１のアプリケーションと緊急事態関係を有する第２のアプリケーション及び第１のアプリケーションがデプロイされた仮想マシンである。
【００９３】
明らかに、緊急事態関係に加えて、第１のアプリケーションと第２のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第１のアプリケーションと第２のアプリケーションとの間に接続関係が存在してもよい。
【００９４】
第２のアプリケーションは、第１のアプリケーションと緊急事態関係を有するため、第２のアプリケーションはまた、第１のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第１のアプリケーションは、第２のアプリケーションのリソース借入アプリケーションと呼ばれてもよい（或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい）。第２のアプリケーションがホストされる第２の仮想マシンはまた、第１の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい（或いはリソース貸出仮想マシンと呼ばれる）。この理由は、第２のアプリケーションがホストされる第２の仮想マシンは、緊急事態のニーズのためにリソースを第１の仮想マシンに貸し出すことを可能にするためである。第２の仮想マシン上で、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行することは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態のニーズを満たすためである（すなわち、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上にデプロイされて第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有するために、第２の仮想マシン上で実行される）。したがって、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【００９５】
第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、第３の仮想マシン上にデプロイされて第３の仮想マシン上で実行する第１のアプリケーションが、第１の仮想マシン上で実行する第１のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第２の仮想マシン上にデプロイされて第２の仮想マシン上で実行する第１のアプリケーションの緊急事態の使命が完了する。したがって、第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令してもよい。
【００９６】
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含んでもよい。
【００９７】
本発明の或る実施例では、メモリ403内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定する前に、アプリケーションデプロイメント要求を受信するように更に構成されてもよく、アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送し、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【００９８】
第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することは、第１のアプリケーション及び第２のアプリケーションが相互に緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシン及び第１のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい）こと、又は第２のアプリケーションが第１のアプリケーションの緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい）ことを具体的に示してもよい。
【００９９】
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするように更に構成されてもよい。
【０１００】
本発明の或る実施例では、アプリケーションデプロイメント要求が第２の関係テンプレートを更に搬送し（第２の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい）、第１のアプリケーションと第４のアプリケーションとの間に接続関係が存在することを第２の関係テンプレートが記述し、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーションが第４のアプリケーションに接続される（connect  To）ことである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第１のアプリケーションを第４のアプリケーションに接続する（connect  To）ように命令するように更に構成されてもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーション及び第４のアプリケーションが互いに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第１のアプリケーションと第４のアプリケーションとの間に相互接続を確立するように命令するように更に構成されてもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第４のアプリケーションが第１のアプリケーションに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前又は後に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第４のアプリケーションを第１のアプリケーションに接続するように命令するように更に構成されてもよい。
【０１０１】
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
【０１０２】
第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する態様において、本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するように具体的に構成されてもよい。
【０１０３】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい（第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい）。
【０１０４】
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前、且つ、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、第２の仮想マシン上に第１のアプリケーションをデプロイするように更に構成されてもよい。
【０１０５】
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、第２の仮想マシン上で実行している一部又は全部のプロセスを第１のプロセスグループに追加し、第１のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成されてもよい。
【０１０６】
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令した後に、第１のアプリケーションのプロセスを第２のプロセスグループに追加し、第２のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成されてもよい。
【０１０７】
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止した後に、第２のプロセスグループを削除し、第１のプロセスグループを解散するように更に構成されてもよい。
【０１０８】
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第２のプロセスグループのための利用可能なリソースの最大量と第１のプロセスグループのための利用可能なリソースの最大量との和は、第２の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
【０１０９】
例えば、第５のアプリケーションもまた第１の仮想マシン上で現在実行していることを仮定すると、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第１の仮想マシン上で実行する第５のアプリケーションに対応する緊急事態ポリシーに従って、第５のアプリケーションと緊急事態関係を有する第６のアプリケーションを決定し、第６のアプリケーションがホストされる第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するようにトリガーし、第４の仮想マシンを作成し、第４の仮想マシン上に第５のアプリケーションをデプロイして開始し、第４の仮想マシンが第４の仮想マシン上にデプロイされた第５のアプリケーションを開始した後に、第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するのを停止するように命令するように更に構成されてもよい。第５の仮想マシン上で第５のアプリケーションを実行することは、第１の仮想マシン上で実行する第５のアプリケーションの処理負荷を一時的に共有するために、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態のニーズを満たすためである。したがって、第５の仮想マシン上にデプロイされた第５のアプリケーションは、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【０１１０】
この実施例におけるCSPサーバ400は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ400の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【０１１１】
この実施例の解決策において、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ400は、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始することが認識され得る。第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０１１２】
図５を参照すると、本発明の実施例は、クラウドサービスクライアント500を更に提供し、これは、アプリケーションデプロイメント要求を生成するように構成された生成ユニット510と、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成された送信ユニット520とを含んでもよい。
【０１１３】
アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【０１１４】
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【０１１５】
この実施例におけるクラウドサービスクライアント500は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント500の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【０１１６】
この実施例の解決策では、第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがホストされる第２の仮想マシンがリソースを第１のアプリケーションがホストされる第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０１１７】
図６を参照すると、本発明の実施例は、他のクラウドサービスクライアント600を更に提供し、これは、少なくとも１つのバス601と、バス601に接続された少なくとも１つのプロセッサ602と、バス601に接続された少なくとも１つのメモリ603とを含んでもよい。
【０１１８】
メモリ603内のコードを呼び出すことにより、プロセッサ602は、アプリケーションデプロイメント要求を生成し、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成され、アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【０１１９】
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【０１２０】
この実施例におけるクラウドサービスクライアント600は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント600の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【０１２１】
この実施例の解決策では、第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがホストされる第２の仮想マシンがリソースを第１のアプリケーションがホストされる第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０１２２】
図７を参照すると、図７は、本発明の他の実施例によるクラウドサービスクライアント700の概略ブロック図である。
【０１２３】
クラウドサービスクライアント700は、少なくとも１つのプロセッサ701と、少なくとも１つのネットワークインタフェース704又は他のユーザインタフェース703と、メモリ705と、少なくとも１つの通信バス702とを含んでもよい。通信バス702は、これらの構成要素の間の接続及び通信を実現するように構成される。クラウドサービスクライアント700は、ディスプレイ（例えば、タッチスクリーン、LCD、CRT、ホログラフィ（Holographic）イメージングデバイス又はプロジェクタ（Projector））、クリックデバイス（例えば、マウス、トラックボール（trackball）、タッチパッド又はタッチスクリーン）、カメラ、ピックアップデバイス、及び／又は同様のものを含むユーザインタフェース703を任意選択で含む。
【０１２４】
例えば、メモリ705は、読み取り専用メモリとランダムアクセスメモリとを含み、プロセッサ701のための命令及びデータを提供してもよい。
【０１２５】
メモリ705の一部は、不揮発性メモリ（NVRAM）等を更に含む。
【０１２６】
或る実現方式では、メモリ705は、以下の要素、すなわち、実行可能モジュール若しくはデータ構造、又はこれらのサブセット、又はこれらの拡張セットを記憶する。
【０１２７】
オペレーティングシステム7051は、様々な種類の基本的なサービス及び処理ハードウェアに基づくタスクを実現するための様々な種類のシステムプログラムを含む。
【０１２８】
アプリケーションプログラムモジュール7052は、様々な種類のアプリケーションサービスを実現するための様々な種類のアプリケーションプログラムを含む。
【０１２９】
例えば、アプリケーションプログラムモジュール7052は、以下のユニット、すなわち、生成ユニット510又は送信ユニット520のうち少なくとも１つを含んでもよい。
【０１３０】
本発明のこの実施例では、メモリ705内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ701は、アプリケーションデプロイメント要求を生成し、アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信するように構成されてもよい。アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【０１３１】
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【０１３２】
この実施例におけるクラウドサービスクライアント700は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント700の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
【０１３３】
この実施例の解決策では、第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがホストされる第２の仮想マシンがリソースを第１のアプリケーションがホストされる第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０１３４】
図８を参照すると、本発明の実施例は、少なくとも１つのクラウドサービスプロバイダサーバ810を含むクラウドサービスシステムを更に提供し、クラウドサービスプロバイダサーバ810は、前述の実施例におけるクラウドサービスプロバイダサーバ200、クラウドサービスプロバイダサーバ300、又はクラウドサービスプロバイダサーバ400でもよい。
【０１３５】
さらに、クラウドサービスシステムは、クラウドサービスクライアントを更に含んでもよく、クラウドサービスクライアントは、前述の実施例におけるクラウドサービスクライアント600、又はクラウドサービスクライアント500、又はクラウドサービスクライアント700でもよい。
【０１３６】
本発明のクラウドアプリケーション処理方法の実施例では、クラウドアプリケーション処理方法は、クラウドサービスプロバイダサーバにより、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するステップと、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するステップと、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始するステップと、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令するステップとを含んでもよい。
【０１３７】
図９を参照すると、図９は、本発明の実施例によるクラウドアプリケーション処理方法の概略フローチャートである。図９に示すように、本発明のこの実施例で提供されるクラウドアプリケーション処理方法は、以下の内容を含んでもよい。
【０１３８】
901.クラウドサービスプロバイダ（CSP）サーバは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定する。
【０１３９】
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値（第１の閾値は、例えば、80%、85%、90%又は95%である）を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、及び／又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含んでもよい。
【０１４０】
追加された仮想マシンはまた、場合によっては“ポップアップ仮想マシン”と呼ばれてもよい。したがって、仮想マシンを追加するための条件もまた、場合によっては“仮想マシンポップアップ条件”と呼ばれてもよい。
【０１４１】
902.CSPサーバは、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する。
【０１４２】
例えば、CSPサーバは、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するために、遠隔呼び出しインタフェースを使用することにより、命令を第２の仮想マシンに送信してもよい。明らかに、CSPサーバはまた、他の方式で、第２のアプリケーションがホストされる第２の仮想マシンに対して、第１のアプリケーションを実行するように命令してもよい。
【０１４３】
第１のアプリケーションは、第１の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第１のアプリケーションは、第１の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第１のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第２の仮想マシンは、第１のアプリケーションと緊急事態関係を有する第２のアプリケーション及び第１のアプリケーションがデプロイされた仮想マシンである。
【０１４４】
903.CSPサーバは、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始する。
【０１４５】
第２のアプリケーションは、第１のアプリケーションと緊急事態関係を有するため、第２のアプリケーションはまた、第１のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第１のアプリケーションは、第２のアプリケーションのリソース借入アプリケーションと呼ばれてもよい（或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい）。第２のアプリケーションがホストされる第２の仮想マシンはまた、第１の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい（或いはリソース貸出仮想マシンと呼ばれる）。この理由は、第２のアプリケーションがホストされる第２の仮想マシンは、緊急事態において使用するためにリソースを第１の仮想マシンに貸し出すことを可能にするためである。第２の仮想マシン上で第１のアプリケーションを実行することは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態のニーズを満たすためである（すなわち、第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有するために、第２の仮想マシン上で実行される）。したがって、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【０１４６】
明らかに、緊急事態関係に加えて、第１のアプリケーションと第２のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第１のアプリケーションと第２のアプリケーションとの間に接続関係が存在してもよい。
【０１４７】
904.第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。
【０１４８】
第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始されていることをCSPサーバが検出した後、又は第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、第３の仮想マシンは、第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始されていることをCSPサーバに通知するために、通知メッセージをCSPサーバに送信してもよい。
【０１４９】
第３の仮想マシン上にデプロイされた第１のアプリケーションが第３の仮想マシン上で開始された後に、第３の仮想マシン上にデプロイされて第３の仮想マシン上で実行する第１のアプリケーションが、第１の仮想マシン上で実行する第１のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第２の仮想マシン上にデプロイされて第２の仮想マシン上で実行する第１のアプリケーションの緊急事態の使命が完了する。したがって、第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令してもよい。
【０１５０】
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値（第１の閾値は、例えば、80%、85%、90%又は95%である）を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、及び／又は第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件のうち少なくとも１つを含んでもよい。
【０１５１】
ステップ902及びステップ903の必要な順序は存在しないことは理解可能である。例えば、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、CSPサーバの決定結果に従って、“第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する”ステップ、及び“第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始する”ステップを同時に実行してもよい。CSPサーバがまた、まず“第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する”ステップを実行し、その後、CSPサーバが、“第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始する”ステップを実行することも理解可能である。
【０１５２】
この実施例の解決策において、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始することが認識され得る。第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０１５３】
本発明の或る実施例では、複数のアプリケーション（例えば、10個のアプリケーション）は、第１の仮想マシン上で実行してもよく、複数のアプリケーションのうち少なくとも１つのアプリケーション（例えば、5個のアプリケーション）は、１つの緊急事態ポリシーにそれぞれ対応してもよい。複数のアプリケーションが第１の仮想マシン上で実行する場合、第１の仮想マシン上で実行する各アプリケーションについて、CSPサーバは、前述の方式で同様の緊急事態処理を実行してもよい。
【０１５４】
例えば、第５のアプリケーションが第１の仮想マシン上で現在実行していることを仮定すると、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが検出した場合、CSPサーバは、第１の仮想マシン上で実行する第５のアプリケーションに対応する緊急事態ポリシーに従って、第５のアプリケーションと緊急事態関係を有する第６のアプリケーションを更に決定し、第６のアプリケーションがホストされる第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するように命令し、第４の仮想マシンを作成し、第４の仮想マシン上に第５のアプリケーションをデプロイして開始してもよい。第４の仮想マシンが第４の仮想マシン上にデプロイされた第５のアプリケーションを開始した後に、CSPサーバは、第５の仮想マシンに対して、第５の仮想マシン上にデプロイされた第５のアプリケーションを実行するのを停止するように命令する。第５の仮想マシン上で第５のアプリケーションを実行することは、第１の仮想マシン上で実行する第５のアプリケーションの処理負荷を一時的に共有するために、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態のニーズを満たすためである。したがって、第５の仮想マシン上にデプロイされた第５のアプリケーションは、第１の仮想マシン上で実行する第５のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【０１５５】
本発明の或る実施例では、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定する前に、この方法は、アプリケーションデプロイメント要求（例えば、クラウドサービスクライアントからのアプリケーションデプロイメント要求であり、アプリケーションデプロイメント要求は、第１のアプリケーションに関するアプリケーションデプロイメント要求と呼ばれてもよく、第１のアプリケーションに関するアプリケーションデプロイメント要求は、アプリケーションデプロイメント要求が第１のアプリケーションのデプロイメントに主に関係することを意味し、明らかに、アプリケーションデプロイメント要求は、第１のアプリケーションとの接続関係、緊急事態関係又はホストオン関係のような相関関係を有する他のアプリケーションのデプロイメントに更に関係してもよい）を受信するステップを更に含んでもよい。アプリケーションデプロイメント要求は、第１のアプリケーションに対応する緊急事態ポリシーを搬送してもよく、第１のアプリケーションに対応する緊急事態ポリシーは、K個のアプリケーションの間の緊急事態関係を記述する。K個のアプリケーションは、第１のアプリケーションと第２のアプリケーションとを含み、Kは、2以上の正の整数である。第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することは、第１のアプリケーション及び第２のアプリケーションが相互に緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシン及び第１のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい）こと、又は第２のアプリケーションが第１のアプリケーションのための緊急事態のニーズを満たす（すなわち、第２のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい）ことを具体的に示してもよい。同様に、３つのアプリケーションが緊急事態関係を有することは、３つのアプリケーションが相互の緊急事態のニーズを満たす（すなわち、３つのアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい）こと、又は３つのアプリケーションのうち２つのアプリケーション（２つのアプリケーションは第１のアプリケーションを含まず、例えば、第２のアプリケーション及びアプリケーションAPP01である）が第１のアプリケーションの緊急事態のニーズを満たすこと、すなわち、３つのアプリケーションのうち２つのアプリケーション（第２のアプリケーション及びアプリケーションAPP01）がホストされる仮想マシンが仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示してもよい。より多くのアプリケーションが緊急事態関係を有する場合は、類推によって推定され得る。
【０１５６】
本発明の或る実施例では、アプリケーションデプロイメント要求は、アプリケーションデプロイメントパッケージを搬送してもよい。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含んでもよい。アプリケーション記述ファイルは、複数のノードテンプレートを含んでもよく（アプリケーション記述ファイルは、１つ以上の関係テンプレートを更に含んでもよい）、異なるノードテンプレートは、異なるアプリケーション（例えば、ユーザアプリケーション又はシステムアプリケーション）に対応する。ノードテンプレートは、緊急事態ポリシーを含んでもよい。緊急事態ポリシーは、アプリケーションの間の緊急事態関係を記述してもよい。例えば、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含んでもよい。さらに、緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい（明らかに、緊急事態トリガー条件もまた、CSPサーバにより決定されてもよく、或いはCSPサーバ内に予め構成されてもよく、すなわち、アプリケーションデプロイメント要求で搬送されない）。例えば、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することを含んでもよい。明らかに、緊急事態トリガー条件が存在しなくてもよい。緊急事態トリガー条件が存在しない場合、CSPサーバが、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することは、緊急事態トリガー条件により制限されない。
【０１５７】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい。
【０１５８】
関係テンプレートは、２つ以上のアプリケーションの間に関連付け関係が存在することを記述するために使用され、関連付け関係は、ホストオン関係、接続関係等でもよい。アプリケーションの間のホストオン関係を記述する関係テンプレートはまた、ホストオン関係テンプレートと呼ばれてもよく、アプリケーションの間の接続関係を記述する関係テンプレートはまた、接続関係テンプレートと呼ばれてもよい。
【０１５９】
本発明の或る実施例では、アプリケーションデプロイメント要求が関係テンプレートを更に搬送し（関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい）、第１のアプリケーションと第３のアプリケーションとの間にホストオン係が存在することを関係テンプレートが記述する場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするステップを更に含んでもよい。第１のアプリケーションと第３のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、アプリケーションが第３のアプリケーション上にホストされること（HostOn）であるか、或いは第１のアプリケーション及び第３のアプリケーションが相互上にホストされることである。
【０１６０】
本発明の或る実施例では、アプリケーションデプロイメント要求が第２の関係テンプレートを更に搬送し（第２の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい）、第１のアプリケーションと第４のアプリケーションとの間に接続関係が存在することを第２の関係テンプレートが記述し、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーションが第４のアプリケーションに接続される（connect  To）ことである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第２の仮想マシン上にデプロイされた第１のアプリケーションを第４のアプリケーションに接続する（connect  To）ステップを更に含んでもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第１のアプリケーション及び第４のアプリケーションが互いに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第２の仮想マシン上にデプロイされた第１のアプリケーションと第４のアプリケーションとの間に相互接続を確立するように命令するステップを更に含んでもよい。さらに、第１のアプリケーションと第４のアプリケーションとの間の、第２の関係テンプレートに記述される接続関係が、第４のアプリケーションが第１のアプリケーションに接続されることである場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前又は後に、この方法は、CSPサーバにより、第４のアプリケーションを第２の仮想マシン上にデプロイされた第１のアプリケーションに接続するように命令するステップを更に含んでもよい。第１のアプリケーションを第４のアプリケーションに接続することは、一般的に、第１のアプリケーションと第４のアプリケーションとの間に通信可能な関係を確立すること、例えば、第４のアプリケーションに対応するIPアドレス及びポート番号のような情報を第１のアプリケーションの構成ファイルに記録すること等を示す。
【０１６１】
本発明の或る実施例では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、第２の仮想マシンが第１のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、CSPサーバにより、第２の仮想マシン上に第１のアプリケーションをデプロイするステップを更に含んでもよい。
【０１６２】
本発明の他の実施例では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、第２の仮想マシンが第１のアプリケーションと第１のアプリケーションがホストされるアプリケーションとをデプロイするのに十分なアイドルリソースを有すると決定した後に、CSPサーバにより、第２の仮想マシン上に第１のアプリケーションと第１のアプリケーションがホストされるアプリケーションとをデプロイするステップを更に含んでもよい。
【０１６３】
本発明の或る実施例では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第２の仮想マシン上で実行している一部又は全部のプロセスを第１のプロセスグループに追加し、第１のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令した後に、この方法は、CSPサーバにより、第１のアプリケーションのプロセスを第２のプロセスグループに追加し、第２のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止した後に、この方法は、CSPサーバにより、第２のプロセスグループを削除し、第１のプロセスグループを解散するステップを更に含んでもよい。プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第２のプロセスグループのための利用可能なリソースの最大量と第１のプロセスグループのための利用可能なリソースの最大量との和は、第２の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
【０１６４】
本発明のこの実施例の前述の解決策のより良い理解及び実現のために、以下に、或る具体的な適用シナリオを参照して例を紹介する。
【０１６５】
図１０を参照すると、図１０は、本発明の他の実施例による他のクラウドアプリケーション処理方法の概略フローチャートである。図１０に示すように、本発明のこの実施例において提供される他のクラウドアプリケーション処理方法は、以下の内容を含んでもよい。
【０１６６】
1001.CSPサーバは、クラウドサービスクライアントからアプリケーションデプロイメント要求を受信する。
【０１６７】
アプリケーションデプロイメント要求は、アプリケーションデプロイメントパッケージを搬送してもよい。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含む。アプリケーション記述ファイルは、複数のノードテンプレートを含んでもよい（例えば、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを含んでもよい）。さらに、アプリケーションデプロイメント要求は、１つ以上の関係テンプレートを更に含んでもよい。異なるノードテンプレートは、異なるアプリケーション（例えば、ユーザアプリケーション又はシステムアプリケーション）に対応する。例えば、アプリケーションデプロイメント要求が５つのノードテンプレートを含んでもよい場合、５つのノードテンプレートは、１対１で５つのアプリケーションに対応する。関係テンプレートは、アプリケーションの間の関連付け関係（例えば、ホストオン関係又は接続関係）を記述するために使用される。
【０１６８】
アプリケーションデプロイメント要求は、第１のアプリケーションのデプロイメントに関係する。したがって、アプリケーションデプロイメント要求は、第１のアプリケーションに関するアプリケーションデプロイメント要求と呼ばれてもよく、第１のアプリケーションに関するアプリケーションデプロイメント要求は、アプリケーションデプロイメント要求が第１のアプリケーションのデプロイメントに関係することを意味する。明らかに、アプリケーションデプロイメント要求は、第１のアプリケーションとの接続関係、緊急事態関係又はホストオン関係のような相関関係を有する他のアプリケーションのデプロイメントに更に関係してもよい。
【０１６９】
さらに、アプリケーション記述ファイルは、アプリケーショントポロジ記述情報を更に含んでもよい。アプリケーショントポロジ記述情報に基づいて、アプリケーショントポロジ図が取得されてもよい。アプリケーショントポロジ図は、アプリケーション記述ファイル内のノードテンプレートの間の関係を記述する。
【０１７０】
この実施例では、関係テンプレートがアプリケーションの対の間の関連付け関係を記述する例が主に使用される。関連付け関係は、ホストオン関係、接続関係等を含んでもよい。例えば、アプリケーションAPP002が４つのアプリケーションと接続関係を有する場合、４つの関係テンプレートは、アプリケーションAPP002と４つのアプリケーションとの間の接続関係をそれぞれ記述するために使用されてもよい。他の例では、アプリケーションAPP002が２つのアプリケーションとホストオン関係を有する場合、２つの関係テンプレートは、アプリケーションAPP002と２つのアプリケーションとの間のホストオン関係をそれぞれ記述するために使用されてもよい。
【０１７１】
関係テンプレートに記述される関連付け関係は、一方向の関連付け関係でもよい。例えば、アプリケーションAPP002とアプリケーションAPP001との間に接続関係が存在することを関係テンプレートが記述し、アプリケーションAPP002とアプリケーションAPP001との間の、関係テンプレートに記述される接続関係が、アプリケーションAPP002がアプリケーションAPP001に接続されること（例えば、アプリケーションAPP002  connected  To  アプリケーションAPP001）である場合、これは、アプリケーションAPP002がアプリケーションAPP001に接続される必要があることを示す。他の例では、アプリケーションAPP002とアプリケーションAPP001との間にホストオン関係が存在することを関係テンプレートが記述し、アプリケーションAPP002とアプリケーションAPP001との間の、関係テンプレートに記述されるホストオン関係が、アプリケーションAPP002がアプリケーションAPP001上にホストされること（例えば、アプリケーションAPP002  Hosted  On  アプリケーションAPP001）である場合、これは、アプリケーションAPP001が、アプリケーションAPP002がホストされる仮想マシン上にデプロイされる必要があることを示す（しかし、アプリケーションAPP002は、必ずしもアプリケーションAPP001がホストされる仮想マシン上にホストされる必要はない）。この場合、アプリケーションAPP002は、ホストオン関係のソースアプリケーションと呼ばれてもよく、アプリケーションAPP001は、ホストオン関係のデスティネーションアプリケーションと呼ばれてもよい。
【０１７２】
明らかに、関係テンプレートに記述される関連付け関係はまた、双方向の関連付け関係でもよい。例えば、アプリケーションAPP001とアプリケーションAPP002との間に接続関係が存在することを関係テンプレートが記述し、アプリケーションAPP001とアプリケーションAPP002との間の、関係テンプレートに記述される接続関係が、アプリケーションAPP001及びアプリケーションAPP002が互いに接続されることである場合、これは、アプリケーションAPP001がアプリケーションAPP002に接続される必要があり、アプリケーションAPP002もAPP001に接続される必要があることを示す。他の例では、アプリケーションAPP003とアプリケーションAPP002との間にホストオン関係が存在することを関係テンプレートが記述し、アプリケーションAPP003とアプリケーションAPP002との間の、関係テンプレートに記述されるホストオン関係が、アプリケーションAPP003及びアプリケーションAPP002が互いに相互上にホストされることである場合、これは、アプリケーションAPP002が、アプリケーションAPP003がホストされる仮想マシン上にデプロイされる必要があり、アプリケーションAPP003も、アプリケーションAPP002がホストされる仮想マシン上にデプロイされる必要があることを示す。
【０１７３】
この実施例では、関係テンプレートに記述される関連付け関係（例えば、接続関係又はホストオン関係）が一方向の関連付け関係である例が主に使用される。
【０１７４】
さらに、関係テンプレートは、関連付け関係確立ポリシーを更に含んでもよく、関連付け関係確立ポリシーは、どのように関連付け関係がアプリケーションの間で確立されるかを記述する。
【０１７５】
本発明の或る実施例では、特定のアプリケーションに対応するノードテンプレートは、ノードタイプ情報（すなわち、アプリケーションのタイプ情報であり、アプリケーションのタイプ情報により示されるアプリケーションタイプは、例えば、データベースアプリケーション、オペレーティングシステム、又はデータベースサーバアプリケーションでもよい）、ノードライフサイクル管理ポリシー（すなわち、アプリケーションのライフサイクル管理ポリシー）のような情報を含んでもよい。
【０１７６】
ノードライフサイクル管理ポリシーは、インストール（install）ポリシー、構成（configure）ポリシー、開始（start）ポリシー、停止（stop）ポリシー、アンインストール（uninstall）ポリシー等を含んでもよい。これらのノードライフサイクル管理ポリシーの名前は、CSPサーバにより認識可能な標準的な名前である。ノードライフサイクル管理ポリシーの名前に従って、CSPサーバは、ポリシーにより生成された管理効果を決定してもよい。仮想マシン上で実行するアプリケーションは、サービスノードと見なされてもよく（略してノードと呼ばれてもよい）、ノードは、例えば、ユーザアプリケーション又はシステムアプリケーションでもよい（仮想マシンオペレーティングシステム等であってもよい）。
【０１７７】
ノードテンプレートは、緊急事態ポリシーを更に含む（例えば、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含んでもよい）。１つの緊急事態ポリシーは、複数のアプリケーションの間の緊急事態関係を記述してもよい。この実施例では、１つの緊急事態ポリシーが２つのアプリケーションの間の緊急事態関係を記述する例が主に使用される。緊急事態ポリシーに記述される緊急事態関係は、一方向でもよい。例えば、第２のアプリケーションと第１のアプリケーションとの間の、緊急事態ポリシーa01に記述される緊急事態関係は、第２のアプリケーションが第１のアプリケーションのリソース貸出アプリケーションであり（すなわち、第２のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示す）、第２のアプリケーションと第１のアプリケーションとの間の、緊急事態ポリシーa02に記述される緊急事態関係は、第１のアプリケーションが第２のアプリケーションのリソース貸出アプリケーションである（すなわち、第１のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを第２のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示す）。さらに、緊急事態ポリシーに記述される緊急事態関係はまた、双方向でもよい。例えば、第３のアプリケーションと第１のアプリケーションとの間の、緊急事態ポリシーa03に記述される緊急事態関係は、第３のアプリケーション及び第１のアプリケーションが相互のリソース貸出アプリケーションである（すなわち、第３のアプリケーションがホストされる仮想マシン及び第１のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを相互に一時的に貸し出してもよいことを示す）。
【０１７８】
説明を簡潔にするために、以下は、アプリケーションデプロイメントパッケージが第１のノードテンプレートと第２のノードテンプレートと第３のノードテンプレートと第４のノードテンプレートとを含む例を使用することにより主に記載され、第１のノードテンプレートは、第１のアプリケーションに対応するノードテンプレートであり、第２のノードテンプレートは、第２のアプリケーションに対応するノードテンプレートであり、第３のノードテンプレートは、第３のアプリケーションに対応するノードテンプレートであり、第４のノードテンプレートは、第４のアプリケーションに対応するノードテンプレートである。アプリケーションデプロイメントパッケージは、第１の関係テンプレートと第２の関係テンプレートと第３の関係テンプレートとを更に含む。
【０１７９】
第１の関係テンプレートは、第１のアプリケーションが第３のアプリケーション上にホストされる必要があること（すなわち、第３のアプリケーションが、第１のアプリケーションがホストされる仮想マシン上にデプロイされる必要があること）を記述する。第２の関係テンプレートは、第２のアプリケーションが第４のアプリケーション上にホストされる必要があること（すなわち、第４のアプリケーションが、第２のアプリケーションがホストされる仮想マシン上にデプロイされる必要があること）を記述する。第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを更に含み、第１のアプリケーションに対応する緊急事態ポリシーは、第２のアプリケーションが第１のアプリケーションのリソース貸出アプリケーションであること、すなわち、第２のアプリケーションがホストされる仮想マシンが、リソースを第１のアプリケーションがホストされる仮想マシンに一時的に貸し出すことを記述する。第３の関係テンプレートは、第３のアプリケーションと第４のアプリケーションとの間に接続関係が存在することを更に記述し、これは、具体的には、第３のアプリケーションが第４のアプリケーションに接続されることである。
【０１８０】
さらに、第１のアプリケーションに対応する緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい（明らかに、緊急事態トリガー条件もまた、CSPサーバにより決定されてもよく、或いはCSPサーバ内に予め構成されてもよく、すなわち、アプリケーションデプロイメント要求で搬送されない）。例えば、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令することを含んでもよい。第２のアプリケーションがホストされる第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令された後に、第２の仮想マシン及び第１の仮想マシンの双方が第１のアプリケーションを実行することは理解可能である。第２の仮想マシン上で、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行することは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態のニーズを満たすためである。したがって、第２の仮想マシン上にデプロイされた第１のアプリケーションは、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【０１８１】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい（第１のアプリケーションが第３のアプリケーション上でホストされる必要があるため、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で、第１のアプリケーションがホストされる必要がある第３のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しくてもよい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい（第１のアプリケーションが第３のアプリケーション上でホストされる必要があるため、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で、第１のアプリケーションがホストされる必要がある第３のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しくてもよい）。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい（第１のアプリケーションが第３のアプリケーション上でホストされる必要があるため、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で、第１のアプリケーションがホストされる必要がある第３のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しくてもよい）。
【０１８２】
1002.CSPサーバは、記述ファイルに含まれるノードテンプレート及び関係テンプレートを取得するために、アプリケーションデプロイメント要求で搬送されたアプリケーション記述ファイルを解析する。CSPサーバは、ノードテンプレート及び関係テンプレートに基づいて、ノードテンプレート探査シーケンスを取得する。CSPサーバは、探査シーケンスに基づいて、仮想マシン上にノードテンプレートに対応するアプリケーションをデプロイする。
【０１８３】
例えば、CSPサーバは、アプリケーション記述ファイルに含まれるアプリケーショントポロジ記述情報に従ってアプリケーショントポロジ図を取得し（アプリケーショントポロジ図の各ノードは、ノードテンプレートに対応する）、計算によってノードテンプレートシーケンスを取得するために、アプリケーショントポロジ図の矢印方向に従ってグラフ探査アルゴリズムを逆に呼び出す。明らかに、CSPサーバはまた、アプリケーショントポロジ記述情報に基づいてアプリケーショントポロジ図を取得するステップを実行する必要なく、アプリケーション記述ファイルに含まれるアプリケーショントポロジ記述情報に従って、計算によりノードテンプレートシーケンスを直接取得してもよい。
【０１８４】
さらに、CSPサーバは、ノードテンプレートシーケンスをデータベースに更に記録してもよい。
【０１８５】
CSPサーバは、アプリケーションデプロイメントに必要な仮想マシンの量を計算し、各仮想マシン上にデプロイされる必要があるアプリケーションを決定する。ノードテンプレートシーケンスに従って、CSPサーバは、アプリケーションをデプロイし、アプリケーションの間の関連付け関係を確立し、アプリケーションを開始し、対応するノードライフサイクル管理ポリシー及び関連付け関係確立ポリシーを呼び出すことにより、順に仮想マシン上で同様のものを実行する。
【０１８６】
アプリケーションデプロイメントに必要な仮想マシンの量を計算するためにCSPサーバにより使用される方式は、ノードテンプレートに対応するアプリケーションがいずれかのHostOn関係テンプレートに記述されるHostOn関係のソースサプリケーションでないような、すなわち、ノードテンプレートがアプリケーショントポロジ図の最下層にあるようなノードテンプレートをアプリケーショントポロジ図において検索することを含み、見つかったこのようなノードテンプレートの量は、アプリケーションデプロイメントのために必要な仮想マシンの量である。CSPサーバは、HostOn関係に従って、どのアプリケーションが同じ仮想マシン上にデプロイされる必要があるかを決定し（HostOn関係を有するアプリケーションは、同じ仮想マシン上にデプロイされる必要がある）、CSPサーバにより管理される仮想マシンから仮想マシンの対応する量を取得してもよい（CSPサーバにより管理される各仮想マシンは、仮想マシンを一意に識別する仮想マシンIDを有する）。
【０１８７】
本発明の或る実施例では、CSPサーバがアプリケーションをデプロイするために、ノードテンプレート内のノードライフサイクル管理ポリシーを呼び出したときに、ポリシー名がinstallであるノードライフサイクル管理ポリシーが実行された場合、CSPサーバは、ノードテンプレートに対応するアプリケーションのデプロイメントアーティファクトをインストールする。ポリシー名がconfigureであるノードライフサイクル管理ポリシーが実行された場合、CSPサーバは、ノードテンプレートに対応するアプリケーションを構成してもよい。ポリシー名がrunであるノードライフサイクル管理ポリシーが実行された場合、CSPサーバは、ノードテンプレートに対応するアプリケーションを開始する。同様に、ポリシー名がstopであるノードライフサイクル管理ポリシーが実行された場合、CSPサーバは、ノードテンプレートに対応するアプリケーションを実行するのを停止する。ポリシー名がuninstallであるノードライフサイクル管理ポリシーが実行された場合、CSPサーバは、ノードテンプレートに対応するアプリケーションのデプロイメントアーティファクトをアンインストールする。
【０１８８】
例えば、ノードテンプレート内のノードライフサイクル管理ポリシーがinstallポリシー及びconfigureポリシーを含む場合、ノードテンプレートに対応するアプリケーションは、まずinstallポリシーを実行し、次にconfigureポリシーを実行することによりデプロイされてもよい。例えば、ノードテンプレート内のノードライフサイクル管理ポリシーがinstallポリシー、configureポリシー及びstartポリシーを含む場合、ノードテンプレートに対応するアプリケーションは、まずinstallポリシーを実行し、次にconfigureポリシーを実行し、最後にstartポリシーを実行することによりデプロイされてもよい。
【０１８９】
CSPサーバは、関係テンプレートに含まれる関連付け関係確立ポリシーに従ってアプリケーションの間の関連付け関係を更に確立してもよい。例えば、アプリケーションの間の関係タイプがConnectToであり、関連付け関係確立ポリシーがconnect又はdisconnectを含む場合、CSPサーバは、アプリケーションの間の接続関係を確立してもよく、或いはアプリケーションの間の接続関係を切断してもよい。特定の関連付け関係（例えば、ConnectTo関係）を有する２つのアプリケーションがデプロイされた後に、関連付け関係確立ポリシーは、２つのアプリケーションの間の関連付け関係を確立するために呼び出されてもよい。例えば、CSPサーバは、２つのアプリケーションの間の接続関係を確立するために、ConnectTo関係テンプレート内に提供されるconnectポリシーを呼び出してもよい。
【０１９０】
例えば、CSPサーバは、第１の仮想マシンVM-1上に第１のアプリケーション及び第３のアプリケーションをデプロイし、第２の仮想マシンVM-2上に第２のアプリケーション及び第４のアプリケーションをデプロイし、第３のアプリケーションから第４のアプリケーションへの接続を確立するように命令する。
【０１９１】
アプリケーションデプロイメントパッケージ内の各ノードテンプレートに対応するアプリケーションをデプロイした後に、CSPサーバは、ノードテンプレートID、ノードテンプレートIDに対応するアプリケーションのアプリケーションID、アプリケーションがホストされる仮想マシンの仮想マシンID、ノードテンプレートに対応するアプリケーションをインストールするために消費されるディスク空間の量のような情報をデータベースに記録する。
【０１９２】
1003.CSPサーバは、ノードテンプレートに含まれる緊急事態ポリシーに従って、リソース貸出アプリケーションがホストされる仮想マシン上にリソース借入アプリケーションをデプロイする。例えば、第１のアプリケーションに対応するノードテンプレートに含まれる緊急事態ポリシーに従って、第１のアプリケーション（すなわち、リソース借入アプリケーション）は、第１のアプリケーションのリソース貸出アプリケーション（すなわち、第２のアプリケーション）がホストされる第２の仮想マシンVM-2上にデプロイされてもよい。第２の仮想マシンVM-2上にデプロイされた第１のアプリケーションは、第１の仮想マシンVM-1上にデプロイされた第１のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
【０１９３】
緊急事態関係を有するアプリケーション（例えば、緊急事態関係を有する第１のアプリケーション及び第２のアプリケーション）の対毎に、CSPサーバは、デプロイされたリソース借入アプリケーション（例えば、第１のアプリケーション）がホストされる仮想マシンの仮想マシンID（例えば、VM-1）を求めてデータベースを検索し、リソース借入アプリケーション（例えば、第１のアプリケーション）をデプロイするために消費される必要があるディスク空間等を求めてデータベースを検索し、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間がリソース借入アプリケーション（例えば、第１のアプリケーション）をデプロイするのに十分であるか否かを検査する。リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間が十分である場合、CSPサーバは、Declarative  Modeポリシーに基づいて、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上にリソース借入アプリケーション（例えば、第１のアプリケーション）をデプロイし、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間が十分でない場合、リソース借入アプリケーション（例えば、第１のアプリケーション）は、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上にデプロイされなくてもよい。
【０１９４】
さらに、第１のアプリケーションは第３のアプリケーション上にホストされる必要があるため、CSPサーバは、第３のアプリケーションをデプロイするために消費される必要があるディスク空間等を求めてデータベースを更に検索し、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間がリソース借入アプリケーション（例えば、第１のアプリケーション）及び第３のアプリケーションをデプロイするのに十分であるか否かを検査してもよい。リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間が十分である場合、CSPサーバは、Declarative  Modeポリシーに基づいて、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上にリソース借入アプリケーション（例えば、第１のアプリケーション）及び第３のアプリケーションをデプロイし、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上の残りのディスク空間が十分でない場合、リソース借入アプリケーション（例えば、第１のアプリケーション）及び第３のアプリケーションは、リソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上にデプロイされなくてもよい。
【０１９５】
リソース借入アプリケーション（例えば、第１のアプリケーション）がリソース貸出アプリケーション（例えば、第２のアプリケーション）がホストされる仮想マシン（例えば、VM-2）上にデプロイされた後、すなわち、第１の仮想マシンVM-1上にホストされる第１のアプリケーションの緊急事態アプリケーションが第２の仮想マシンVM-2上にデプロイされた後に、緊急事態アプリケーションは、開始される必要はなく、緊急事態アプリケーションは、第２の仮想マシンVM-2上にインストールされて構成されさえすればよい。
【０１９６】
さらに、第１のアプリケーションの緊急事態アプリケーションを第２の仮想マシンVM-2上にデプロイした後に、例えば、CSPサーバは、仮想マシンVM-2上に、第１のアプリケーションがホストされる必要がある他のアプリケーション（第３のアプリケーション）を更にデプロイする。明らかに、第２の仮想マシンVM-2上の残りのディスク空間はまた、第１のアプリケーションがホストされる必要がある他のアプリケーションをデプロイするのに十分である必要がある。
【０１９７】
さらに、第１のアプリケーションの緊急事態アプリケーションを第２の仮想マシンVM-2上にデプロイした後に、CSPサーバは、緊急事態アプリケーションに対応するノードテンプレートID、緊急事態アプリケーションのアプリケーションID、緊急事態アプリケーションがホストされる仮想マシン（第２の仮想マシンVM-2）の仮想マシンID、及び緊急事態アプリケーションの現在状態のような情報をデータベースに記録してもよい。この場合、緊急事態アプリケーションはまだ開始されない。したがって、緊急事態アプリケーションの現在状態は、“スタンバイ”状態である。
【０１９８】
これまでで、受信したアプリケーションデプロイメント要求に基づいて、CSPサーバは、関係するアプリケーションの関係するデプロイメント操作を完了している。
【０１９９】
1004.CSPサーバは、第１の仮想マシンVM-1及び第２の仮想マシンVM-2の動作状態を監視する。
【０２００】
第１の仮想マシンVM-1上にデプロイされた第１のアプリケーション及び第３のアプリケーションが開始された後、且つ、第２の仮想マシンVM-2上にデプロイされた第２のアプリケーション及び第４のアプリケーションが開始された後に、CSPサーバは、第１の仮想マシンVM-1及び第２の仮想マシンVM-2の動作状態を監視する。
【０２０１】
1005.CSPサーバは、仮想マシンVM-1の動作状態に従って、第１の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすと決定する。
【０２０２】
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値（第１の閾値は、例えば、80%、85%、90%又は95%である）を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの単位時間当たりのスループットが第２の閾値を超えるという条件、第１の仮想マシン上で実行する第１のアプリケーションの応答待ち時間が第３の閾値を超えるという条件等のうち少なくとも１つを含んでもよい。
【０２０３】
1006.CSPサーバは、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する（すなわち、第２のアプリケーションがホストされる第２の仮想マシンに対して、第１の仮想マシン上で実行する第１のアプリケーションの緊急事態アプリケーションを実行するように命令する）。
【０２０４】
具体的には、CSPサーバは、ステップ1005において第１の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすという決定結果に基づいて、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーを求めてデータベースを検索し、CSPサーバは、見つかった緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する。
【０２０５】
例えば、CSPサーバは、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令するために、遠隔呼び出しインタフェースを使用することにより、命令を第２の仮想マシンに送信してもよい。明らかに、CSPサーバはまた、他の方式で、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令してもよい。
【０２０６】
1007.CSPサーバは、第３の仮想マシンVM-3を作成し、第３の仮想マシンVM-3上に第１のアプリケーションをデプロイして開始する。
【０２０７】
さらに、第１のアプリケーションは、第３のアプリケーションにHosted  Onされているため、第３の仮想マシンVM-3に対して、第３の仮想マシンVM-3上にデプロイされた第１のアプリケーションを実行するように命令する前に、CSPサーバは、第３の仮想マシンVM-3上に第３のアプリケーションを更にデプロイし、第３の仮想マシンVM-3上にデプロイされた第３のアプリケーションと第２の仮想マシンVM-2上にデプロイされた第４のアプリケーションとの間に接続を確立する。
【０２０８】
さらに、第３の仮想マシンVM-3上に第１のアプリケーション及び第３のアプリケーションをデプロイして開始した後に、CSPサーバは、第３の仮想マシンVM-3上で実行する第１のアプリケーションに対応するノードテンプレートID、第３のアプリケーションに対応するノードテンプレートID、第１のアプリケーションのアプリケーションID、第３のアプリケーションのアプリケーションID、第３のアプリケーション及び第１のアプリケーションがホストされる仮想マシンVM-3の仮想マシンID、及び第３のアプリケーション及び第１のアプリケーションをインストールするために消費されるディスク空間の量のような情報をデータベースに記録してもよい。CSPサーバは、第３の仮想マシン上にデプロイされた第１のアプリケーション及び第３のアプリケーションの状態を“実行中”に設定する。
【０２０９】
ステップ1006及びステップ1007の必要な順序は存在しないことは理解可能である。例えば、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、“第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する”ステップ、及び“第３の仮想マシンVM-3を作成し、第３の仮想マシンVM-3上に第１のアプリケーションをデプロイして開始する”ステップを同時に実行してもよい。CSPサーバがまた、まず“第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する”ステップを実行し、その後、CSPサーバが、“第３の仮想マシンVM-3を作成し、第３の仮想マシンVM-3上に第１のアプリケーションをデプロイして開始する”ステップを実行することも理解可能である。
【０２１０】
1008.第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。
【０２１１】
さらに、CSPサーバはまた、第２の仮想マシン上に、第１のアプリケーションとホストオン関係を有する第３のアプリケーションをデプロイするため、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第３のアプリケーションを実行するのを停止するように更に命令してもよい。
【０２１２】
本発明の或る実施例では、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第２の仮想マシン上で実行している一部又は全部のプロセスを第１のプロセスグループに追加し、第１のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令した後に、この方法は、CSPサーバにより、第１のアプリケーションのプロセスを第２のプロセスグループに追加し、第２のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第２の仮想マシンが第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止した後に、この方法は、CSPサーバにより、第２のプロセスグループを削除し、第１のプロセスグループを解散するステップを更に含んでもよい。プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第２のプロセスグループのための利用可能なリソースの最大量と第１のプロセスグループのための利用可能なリソースの最大量との和は、第２の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
【０２１３】
この実施例の技術的解決策において、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始することが認識され得る。第３の仮想マシンが第３の仮想マシン上にデプロイされた第１のアプリケーションを実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するのを停止するように命令する。第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０２１４】
本発明のこの実施例の前述の解決策のより良い理解及び実現のために、以下に、或る更に具体的なTOSCAに基づく適用シナリオを参照して例を紹介する。
【０２１５】
CSPサーバがクラウドサービスクライアントからアプリケーションデプロイメント要求q1を受信することが仮定される。
【０２１６】
アプリケーションデプロイメント要求q1は、アプリケーションデプロイメントパッケージを搬送する。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含む。アプリケーション記述ファイルは、以下の６個のノードテンプレート、すなわち、ノードテンプレートaVM、ノードテンプレートdVM、ノードテンプレートappContainer、ノードテンプレートdbContainer、ノードテンプレートDB、及びノードテンプレートAppを含む。アプリケーション記述ファイルは、タイプがHostOnである４つの関係テンプレートと、タイプがConnectToである１つの関係テンプレートとを更に含む。６個のノードテンプレートは、６個のアプリケーションに対応する。６個のアプリケーションのアプリケーションIDは、それぞれ以下の通り、すなわち、appVM1、dbVM、appC1、dbC、db及app1であり、
ノードテンプレートaVMはアプリケーションappV1に対応し、
ノードテンプレートdVMはアプリケーションdbVMに対応し、
ノードテンプレートappContainerはアプリケーションappC1に対応し、
ノードテンプレートdbContainerはアプリケーションdbCに対応し、
ノードテンプレートDBはアプリケーションdbに対応し、
ノードテンプレートAppはアプリケーションapp1に対応する。
【０２１７】
アプリケーション記述ファイルに含まれるアプリケーショントポロジ記述情報に基づいて取得されたアプリケーショントポロジ図は、図１１に示され得る。図１１は、ノードテンプレートaVM、ノードテンプレートdVM、ノードテンプレートappContainer、ノードテンプレートdbContainer、ノードテンプレートDB、及びノードテンプレートAppのシーケンスを示す。
【０２１８】
さらに、CSPサーバは、ノードテンプレートのシーケンスをデータベースに更に記録してもよい。図１１は、アプリケーションdbがアプリケーションdbC上にホストされ、アプリケーションdbCがアプリdbVM上にホストされ、アプリケーションapp1がアプリケーションappC1上にホストされ、アプリケーションappC1がアプリケーションappVM1上にホストされることを示す。図１１は、アプリケーションappC1がアプリケーションdbCにconnected  toされることを更に示す。
【０２１９】
CSPサーバは、６個のアプリケーションをデプロイするために必要な仮想マシンの量を計算し、各仮想マシン上にデプロイされる必要があるアプリケーションを決定する。ノードテンプレートのシーケンスに従って、CSPサーバは、アプリケーションをデプロイし、対応するノードライフサイクル管理ポリシーを呼び出すことにより、順に仮想マシン上でアプリケーションを開始し、関連付け関係確立ポリシーを呼び出すことにより、アプリケーションappC1からアプリケーションdbCへの接続を確立する。
【０２２０】
アプリケーションデプロイメントに必要な仮想マシンの量を計算するためにCSPサーバにより使用される方式は、ノードテンプレートに対応するアプリケーションがいずれかのHostOn関係テンプレートに記述されるHostOn関係のソースサプリケーションでないような、すなわち、ノードテンプレートがアプリケーショントポロジ図の最下層（すなわち、ノードテンプレートaVM及びノードテンプレートdVM）にあるようなノードテンプレートをアプリケーショントポロジ図において検索することを含み、見つかったこのようなノードテンプレートの量は、アプリケーションデプロイメントのために必要な仮想マシンの量である。したがって、２つの仮想マシンが６個のアプリケーションをデプロイするために必要である。CSPサーバは、HostOn関係に従って、どのアプリケーションが同じ仮想マシン上にデプロイされる必要があるかを決定し（HostOn関係を有するアプリケーションは、同じ仮想マシン上にデプロイされる必要がある）、CSPサーバにより管理される仮想マシンから仮想マシンの対応する量を取得してもよい（CSPサーバにより管理される各仮想マシンは、仮想マシンを一意に識別する仮想マシンIDを有する）。
【０２２１】
CSPサーバにより作成された２つの仮想マシンの利用可能なディスク空間が表１に示すものであることが仮定される。
【表１】
0006293306.tif 000002
【０２２２】
ノードテンプレート、アプリケーション及び仮想マシンの間のマッピング関係は、表２に示され得る。
【表２】
0006293306.tif 000003
【０２２３】
Declarative  Modeに基づくデプロイメントポリシーを使用することにより、CSPサーバは、仮想マシン上にアプリケーションをデプロイし、デプロイされたアプリケーションの一部又は全部を更に開始してもよい。
【０２２４】
具体的なデプロイメント手順は以下の通りでもよい。
【０２２５】
S1.アプリケーションappVM1及びdbVMを開始する：start  appVM1、start  dbVM。
【０２２６】
S2.アプリケーションappC1をデプロイして開始する：install  appC1、configure  appC1、start  appC1。
【０２２７】
S3.アプリケーションdbCをデプロイして開始する：install  dbC、configure  dbC、start  dbC。
【０２２８】
S4.アプリケーションappC1とアプリケーションdbCとの間に接続関係を確立する：connect  appC1  to  dbC。
【０２２９】
S5.アプリケーションapp1をデプロイして開始する：install  app1、start  app1。
【０２３０】
S6.アプリケーションdbをデプロイして開始する：install  db、start  db。
【０２３１】
アプリケーションappVM1、アプリケーションappC1及びアプリケーションapp1は、第１の仮想マシンVM-1上にデプロイされる。アプリケーションdbVM、アプリケーションdbC及びアプリケーションdbは、第２の仮想マシンVM-2上にデプロイされる。アプリケーションをデプロイして開始した後に、CSPサーバは、アプリケーションの状態を“実行中”に設定し、これは、表３に具体的に示され得る。
【表３】
0006293306.tif 000004
【０２３２】
アプリケーションにより消費されるディスク空間は表４に示される。
【表４】
0006293306.tif 000005
【０２３３】
CSPサーバは、ノードテンプレートAppに含まれる緊急事態ポリシーに従って、リソース貸出アプリケーションdbがホストされる仮想マシンVM-2上にリソース借入アプリケーションapp1をデプロイする。第２の仮想マシンVM-2上にデプロイされたアプリケーションapp1は、第１の仮想マシンVM-1上にデプロイされたアプリケーションapp1の緊急事態アプリケーションと呼ばれてもよい。
【０２３４】
緊急事態関係を有するアプリケーションdb及びアプリケーションapp1について、CSPサーバは、アプリケーションapp1をデプロイするために消費される必要があるディスク空間等を求めて表４を検索し、アプリケーションdbがホストされる第２の仮想マシンVM-2上の残りのディスク空間がアプリケーションApp1をデプロイするのに十分であるか否かを検査する。アプリケーションApp1は、アプリケーションappC1上にホストされる必要があるため、CSPサーバは、アプリケーションappC1をデプロイするために消費される必要があるディスク空間を求めて表４を更に検索し、アプリケーションdbがホストされる第２の仮想マシンVM-2上の残りのディスク空間がアプリケーションapp1及びアプリケーションappC1をデプロイするのに十分であるか否かを検査する。表４及び表１から、第２の仮想マシンVM-2上の残りのディスク空間が11GBであり、250MBのみがアプリケーションapp1及びアプリケーションappC1をデプロイするために必要であることが認識され得る。したがって、アプリケーションdbがホストされる第２の仮想マシンVM-2上の残りのディスク空間は、アプリケーションapp1及びアプリケーションappC1をデプロイするのに十分である。
【０２３５】
したがって、CSPサーバはまた、第２の仮想マシンVM-2上にアプリケーションapp1及びアプリケーションappC1をデプロイする。CSPサーバにより第２の仮想マシンVM-2上にアプリケーションapp1及びアプリケーションappC1をデプロイする手順は、以下の通りでもよい。
【０２３６】
S11.アプリケーションappC1をデプロイして開始する：install  appC1、configure  appC1、start  appC1。
【０２３７】
S12.アプリケーションappC1とアプリケーションdbCとの間に接続関係を確立する：connect  appC1  to  dbC。
【０２３８】
S13.アプリケーションapp1をデプロイして開始する：install  app1、start  app1。
【０２３９】
第２の仮想マシンVM-2上にアプリケーションapp1及びアプリケーションappC1をデプロイした後に、CSPサーバは、アプリケーションapp1及びアプリケーションappC1の状態を“スタンバイ”に設定し、これは、表５に具体的に示され得る。
【表５】
0006293306.tif 000006
【０２４０】
これまでで、受信したアプリケーションデプロイメント要求に基づいて、CSPサーバは、関係するアプリケーションの関係するデプロイメント操作を完了している。
【０２４１】
CSPサーバは、第１の仮想マシンVM-1及び第２の仮想マシンVM-2の動作状態を監視する。
【０２４２】
第１の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすと検出した場合、CSPサーバは、第１の仮想マシン上で現在実行しているアプリケーションapp1に対応する緊急事態ポリシーに従って、アプリケーションapp1と緊急事態関係を有するアプリケーションdbを決定し、アプリケーションdbがホストされる第２の仮想マシンVM-2に対して、第２の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するように命令する（すなわち、アプリケーションdbがホストされる第２の仮想マシンVM-2に対して、アプリケーションapp1の緊急事態アプリケーションapp1を実行するように命令する）。
【０２４３】
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第１の仮想マシンのリソース利用率が第１の閾値（第１の閾値は、例えば、80%、85%、90%又は95%である）を超えるという条件、第１の仮想マシン上で実行するアプリケーションapp1の単位時間当たりのスループットが第２の閾値を超えるという条件、第１の仮想マシン上で実行するアプリケーションapp1の応答待ち時間が第３の閾値を超えるという条件等のうち少なくとも１つを含んでもよい。
【０２４４】
第１の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、第３の仮想マシンVM-3を更に作成し、第３の仮想マシンVM-3上にアプリケーションapp1をデプロイして開始する。
【０２４５】
さらに、アプリケーションapp1は、アプリケーションappC1にHosted  Onされるため、第３の仮想マシンVM-3に対して、第３の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行するように命令する前に、CSPサーバは、第３の仮想マシンVM-3上にアプリケーションappC1を更にデプロイし、第３の仮想マシンVM-3上にデプロイされたアプリケーションappC1と第２の仮想マシンVM-2上にデプロイされたアプリケーションdbCとの間に接続を確立する。
【０２４６】
さらに、アプリケーションappC1は、アプリケーションappVM1にHosted  Onされるため、第３の仮想マシンVM-3に対して、第３の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行するように命令する前に、CSPサーバは、第３の仮想マシンVM-3上にアプリケーションappVM1を更にデプロイする。
【０２４７】
CSPサーバにより第３の仮想マシンを追加する操作を実行する手順において、第３の仮想マシンVM-3上にデプロイされているアプリケーションappVM1、アプリケーションappC1及びアプリケーションapp1の動作状態は、表６に示される。
【表６】
0006293306.tif 000007
【０２４８】
第３の仮想マシンVM-3を追加する操作が完了した後、すなわち、第３の仮想マシンVM-3が第３の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行した後に、CSPサーバは、第２の仮想マシンVM-2に対して、第２の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するのを停止するように命令する。さらに、CSPサーバは、第２の仮想マシンVM-2上に、アプリケーションapp1とホストオン関係を有するアプリケーションappC1を更にデプロイするため、CSPサーバは、第２の仮想マシンVM-2に対して、第２の仮想マシンVM-2上にデプロイされたアプリケーションappC1を実行するのを停止するように更に命令してもよい。この場合、第２の仮想マシンVM-2上にデプロイされたアプリケーションappC1及びアプリケーションapp1は、“スタンバイ”状態に設定されるが、第３の仮想マシンVM-3上にデプロイされたアプリケーションappC1、アプリケーションapp1及びアプリケーションappVM1は、“実行中”状態に設定される。詳細は表７に示される。
【表７】
0006293306.tif 000008
【０２４９】
CSPサーバが第３の仮想マシンを新たに追加した後に、３つの仮想マシン上で実行するアプリケーションは、図１２に示され得る。ここで、第３の仮想マシン及び第１の仮想マシンの双方は、アプリケーションappC1、アプリケーションapp1及びアプリケーションappVM1を実行する。
【０２５０】
前述の適用シナリオにおいて、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第１の仮想マシン上で現在実行しているアプリケーションapp1に対応する緊急事態ポリシーに従って、アプリケーションapp1と緊急事態関係を有するアプリケーションdbを決定し、アプリケーションdbがホストされる第２の仮想マシンに対して、第２の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するように命令してもよいことが認識され得る。第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第３の仮想マシンを作成し、第３の仮想マシン上にアプリケーションapp1をデプロイして開始する。第３の仮想マシンが第３の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行した後に、CSPサーバは、第２の仮想マシンに対して、第２の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するのを停止するように命令する。アプリケーションの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２の仮想マシンがリソースを第１の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときに仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行するアプリケーションapp1の処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０２５１】
図１３を参照すると、本発明の実施例は、クラウドアプリケーションデプロイメント方法を更に提供し、これは以下を含んでもよい。
【０２５２】
1301.クラウドサービスクライアントは、アプリケーションデプロイメント要求を生成する。
【０２５３】
1302.アプリケーションデプロイメント要求をクラウドサービスプロバイダ（CSP）サーバに送信する。
【０２５４】
アプリケーションデプロイメント要求は、第１のアプリケーションに対応するノードテンプレート及び第２のアプリケーションに対応するノードテンプレートを搬送し、第１のアプリケーションに対応するノードテンプレートは、第１のアプリケーションに対応する緊急事態ポリシーを含み、第１のアプリケーションに対応する緊急事態ポリシーは、第１のアプリケーションが第２のアプリケーションと緊急事態関係を有することを記述する。
【０２５５】
アプリケーションデプロイメント要求を受信した後に、クラウドサービスプロバイダ（CSP）サーバは、第１の仮想マシン及び第２の仮想マシンを作成し、第１のアプリケーションに対応するノードテンプレートに従って第１の仮想マシン上に第１のアプリケーションをデプロイし、第２のアプリケーションに対応するノードテンプレートに従って第２の仮想マシン上に第２のアプリケーションをデプロイし、第１のアプリケーションに対応する緊急事態ポリシーに従って、第２のアプリケーションがホストされる第２の仮想マシン上に第１のアプリケーションをデプロイしてもよい。その後、CSPサーバは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第１の仮想マシン上で実行する第１のアプリケーションに対応する緊急事態ポリシーに従って、第１のアプリケーションと緊急事態関係を有する第２のアプリケーションを決定し、第２のアプリケーションがホストされる第２の仮想マシンに対して、第２の仮想マシン上にデプロイされた第１のアプリケーションを実行するように命令し、第３の仮想マシンを作成し、第３の仮想マシン上に第１のアプリケーションをデプロイして開始し、第１のアプリケーションが第３の仮想マシン上で開始された後に、第２の仮想マシンに対して、第１のアプリケーションを実行するのを停止するように命令する。
【０２５６】
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーションが第３のアプリケーション上にホストされることであり、或いは第１のアプリケーションと第３のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第１のアプリケーション及び第３のアプリケーションが互いに相互上にホストされることである。
【０２５７】
さらに、第１のアプリケーションに対応する緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい。
【０２５８】
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最小量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの最大量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第２の仮想マシンのアイドルリソースの量が第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい。第１のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第１のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第２の仮想マシン上で第１のアプリケーションを実行するために必要なリソースの平均量は、第１のアプリケーションが第２の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第２の仮想マシン上で第１のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい。
【０２５９】
この実施例の解決策において、第１のアプリケーションと第２のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第２のアプリケーションがホストされる第２の仮想マシンがリソースを第１のアプリケーションがホストされる第１の仮想マシンに一時的に貸し出すことが実現され得ることが認識され得る。したがって、新たな仮想マシンは、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第１の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第１の仮想マシン上で実行する第１のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
【０２６０】
本発明の実施例は、コンピュータ記憶媒体を更に提供し、コンピュータ記憶媒体は、プログラムを記憶してもよい。プログラムが実行された場合、前述の方法の実施例において記録されるいずれかのクラウドアプリケーション処理方法のステップの一部又は全部が含まれる。
【０２６１】
本発明の実施例は、他のコンピュータ記憶媒体を更に提供し、コンピュータ記憶媒体は、プログラムを記憶してもよい。プログラムが実行された場合、前述の方法の実施例において記録されるいずれかのクラウドアプリケーションデプロイメント方法のステップの一部又は全部が含まれる。
【０２６２】
前述の実施例において、実施例の説明は、それぞれの焦点を有する。実施例に詳細に記載されていない部分については、他の実施例における関係する説明に参照が行われてもよい。
【０２６３】
説明の容易のために、前述の方法の実施例は、一連の動作として表現される点に留意すべきである。しかし、本発明に従って、いくつかのステップは他のシーケンスで実行されてもよく、或いは同時に実行されてもよいため、当業者は、本発明が説明した動作シーケンスに限定されないことを認識すべきである。さらに、当業者はまた、明細書に記載の全ての実施例が例示的な実施例であり、関係する動作及びモジュールが必ずしも本発明に必須であるとは限らないことも認識すべきである。
【０２６４】
この出願で提供される複数の実施例では、開示の装置は他の方式で実現されてもよいことが認識されるべきである。例えば、記載の装置の実施例は、単なる例示である。例えば、ユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく、或いは他の装置に統合されてもよく、或いはいくつかの機能が無視されてもよく或いは実行されなくてもよい。さらに、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気的又は他の形式で実現されてもよい。
【０２６５】
別々の部分として記載したユニットは、物理的に別々でもよく或いは別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットでもよく或いは物理的なユニットでなくてもよく、或いは１つの位置に存在してもよく、或いは複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の解決策の目的を達成するために、実際のニーズに従って選択されてもよい。
【０２６６】
さらに、本発明の実施例における機能ユニットは、１つの処理ユニットに統合されてもよく、或いはユニットのそれぞれが物理的に単独で存在してもよく、或いは２つ以上のユニットが１つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、或いはソフトウェア機能ユニットの形式で実現されてもよい。
【０２６７】
前述の統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用される場合、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、基本的に本発明の技術的解決策若しくは従来技術に寄与する部分、又は技術的解決策の全部若しくは一部は、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス（パーソナルコンピュータ、サーバ又はネットワークデバイスでもよく、具体的にはコンピュータデバイス内のプロセッサでもよい）に対して本発明の実施例に記載の前述の方法のステップの全部又は一部を実行するように命令する複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、磁気ディスク、光ディスク、読み取り専用メモリ（ROM、Read-Only  Memory）、又はランダムアクセスメモリ（RAM、Random  Access  Memory）のようなプログラムコードを記憶し得るいずれかの媒体を含む。
【０２６８】
前述の実施例は、単に本発明の技術的解決策を説明することを意図するものに過ぎず、本発明を限定することを意図するものではない。本発明について前述の実施例を参照して詳細に説明したが、当業者は、本発明の実施例の技術的解決策の精神及び範囲を逸脱することなく、依然として前述の実施例において説明した技術的解決策に変更を行ってもよく、或いはそのいくつかの技術的特徴に等価置換を行ってもよいことを認識すべきである。
【図１】
0006293306.tif 000009
【図２−ａ】
0006293306.tif 000010
【図２−ｂ】
0006293306.tif 000011
【図２−ｃ】
0006293306.tif 000012
【図２−ｄ】
0006293306.tif 000013
【図３】
0006293306.tif 000014
【図４】
0006293306.tif 000015
【図５】
0006293306.tif 000016
【図６】
0006293306.tif 000017
【図７】
0006293306.tif 000018
【図８】
0006293306.tif 000019
【図９】
0006293306.tif 000020
【図１０】
0006293306.tif 000021
【図１１】
0006293306.tif 000022
【図１２】
0006293306.tif 000023
【図１３】
0006293306.tif 000024