本発明の実施例は、仮想マシンリソースの利用率を改善するためのクラウドアプリケーション処理方法、クラウドアプリケーションデプロイメント方法、関係する装置及びクラウドサービスシステムを提供する。
以下に、具体的な実施例を使用することにより、詳細な説明を提供する。
本発明の目的、特徴及び利点をより明確且つより分かりやすくするために、以下に、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決策を明確且つ完全に説明する。明らかに、以下に説明する実施例は、本発明の実施例の全部ではなく、一部に過ぎない。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
本発明の明細書、特許請求の範囲及び添付図面において、“第1”、“第2”、“第3”、“第4”等の用語は、異なる物を区別することを意図するものであり、特定の順序を示すことを意図するものではない。さらに、“含む”、“有する”、又はこれらの他の変形は、非排他的包含をカバーすることを意図するものである。例えば、一連のステップ又はユニットを含む手順、方法、システム、プロダクト又はデバイスは、記載のステップ又はユニットに限定されず、任意選択で記載されていないステップ又はユニットを更に含み、或いは任意選択で処理、方法、プロダクト又はデバイスの他の固有のステップ又はユニットを更に含む。
まず図1を参照する。図1は、本発明の実施例によるクラウドサービスネットワークアーキテクチャの概略図である。CSPサーバは、複数のクラウドサービスクライアントのために要求されたクラウドサービスを提供してもよい。クラウドサービスクライアントは、クラウドアプリケーションサービスを求めてCSPサーバに申請してもよい。本発明の或る実施例における技術的解決策は、図1に示すクラウドサービスネットワークアーキテクチャに基づいて具体的に実現されてもよい。
図2−aを参照すると、本発明の実施例は、クラウドサービスプロバイダサーバ200を提供し、これは、決定ユニット270と、緊急事態ユニット210と、作成ユニット220と、停止ユニット230とを含んでもよい。
決定ユニット270は、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するように構成される。
緊急事態ユニット210は、決定ユニット270の決定結果と、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーとに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するように構成される。
第1のアプリケーションは、第1の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第1のアプリケーションは、第1の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第1のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。
作成ユニット220は、決定ユニット270の決定結果に従って第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始するように構成される。
第2のアプリケーション及び第1のアプリケーションは、緊急事態関係を有するため、第2のアプリケーションはまた、第1のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第1のアプリケーションは、第2のアプリケーションのリソース借入アプリケーションと呼ばれてもよい(或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい)。第2のアプリケーションがホストされる第2の仮想マシンはまた、第1の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい(或いはリソース貸出仮想マシンと呼ばれる)。この理由は、第2のアプリケーションがホストされる第2の仮想マシンは、緊急事態のニーズのためにリソースを第1の仮想マシンに貸し出すことを可能にするためである。第2の仮想マシン上で第1のアプリケーションを実行することは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態のニーズを満たすためである(すなわち、第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有するために、第2の仮想マシン上で実行される)。したがって、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
停止ユニット230は、第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令するように構成される。
第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、第3の仮想マシン上にデプロイされて第3の仮想マシン上で実行する第1のアプリケーションが、第1の仮想マシン上で実行する第1の仮想マシン上にデプロイされた第1のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第2の仮想マシン上にデプロイされて第2の仮想マシン上で実行する第1のアプリケーションの緊急事態の使命が完了する。したがって、第3の仮想マシンが第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令してもよい。
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、又は第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件のうち少なくとも1つを含んでもよい。
図2−bを参照すると、本発明の或る実施例では、クラウドサービスプロバイダサーバ200は、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションが決定される前に、アプリケーションデプロイメント要求を受信するように構成された受信ユニット240を更に含んでもよく、アプリケーションデプロイメント要求は、第1のアプリケーションに対応する緊急事態ポリシーを搬送し、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することは、第1のアプリケーション及び第2のアプリケーションが相互に緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシン及び第1のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい)こと、又は第2のアプリケーションが第1のアプリケーションのための緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい)ことを具体的に示してもよい。
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。
図2−cを参照すると、クラウドサービスプロバイダサーバ200は、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前に、第2の仮想マシン上に、第1のアプリケーションとホストオン関係を有する第3のアプリケーションをデプロイするように構成されたデプロイメントユニット250を更に含む。
本発明の或る実施例では、アプリケーションデプロイメント要求が第2の関係テンプレートを更に搬送し(第2の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい)、第1のアプリケーションと第4のアプリケーションとの間に接続関係が存在することを第2の関係テンプレートが記述し、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーションが第4のアプリケーションに接続される(connect To)ことである場合、第2のアプリケーションがホストされる第2の仮想マシンが、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前に、デプロイメントユニット250は、第2の仮想マシン上にデプロイされた第1のアプリケーションを第4のアプリケーションに接続する(connect To)ように命令するように更に構成されてもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーション及び第4のアプリケーションが互いに接続されることである場合、デプロイメントユニット250は、第2の仮想マシン上にデプロイされた第1のアプリケーションと第4のアプリケーションとの間に相互接続を確立するように命令するように更に構成されてもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第4のアプリケーションが第1のアプリケーションに接続されることである場合、デプロイメントユニット250は、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前又は後に、第4のアプリケーションを第2の仮想マシン上にデプロイされた第1のアプリケーションに接続するように命令するように更に構成されてもよい。デプロイメントユニット250が第1のアプリケーションを第4のアプリケーションに接続することは、一般的に、第1のアプリケーションと第4のアプリケーションとの間に通信可能な関係を確立すること、例えば、第4のアプリケーションに対応するIPアドレス及びポート番号のような情報を第1のアプリケーションの構成ファイルに記録すること等を示す。
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
緊急事態ユニット210が、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することを具体的に含んでもよい。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい)。
本発明の他の実施例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量から第1のリソース量閾値を引いたものが、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよく、第1のリソース量閾値は0より大きい。
本発明の或る実施例では、緊急事態ユニット210は、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前、且つ、第2の仮想マシンが第1のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定された後に、第2の仮想マシン上に第1のアプリケーションをデプロイするように更に構成されてもよい。
図2−dを参照すると、本発明の或る実施例では、クラウドサービスプロバイダサーバ200は、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前に、第2の仮想マシン上で実行している一部又は全部のプロセスを第1のプロセスグループに追加し、第1のプロセスグループのために利用可能なリソースの最大量を設定するように構成されたプロセス管理ユニット260を更に含んでもよい。
本発明の或る実施例では、プロセス管理ユニット260は、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令された後に、第1のアプリケーションのプロセスを第2のプロセスグループに追加し、第2のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
本発明の或る実施例では、プロセス管理ユニット260は、第2の仮想マシンが第1のアプリケーションを実行するのを停止した後に、第2のプロセスグループを削除し、第1のプロセスグループを解散するように更に構成される。
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第2のプロセスグループのための利用可能なリソースの最大量と第1のプロセスグループのための利用可能なリソースの最大量との和は、第2の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
この実施例におけるCSPサーバ200は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ200の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策において、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ200は、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始することが認識され得る。第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図3を参照すると、図3は、本発明の他の実施例によるクラウドサービスプロバイダサーバ300の概略図である。クラウドサービスプロバイダサーバ300は、少なくとも1つのバス301と、バス301に接続された少なくとも1つのプロセッサ302と、バス301に接続された少なくとも1つのメモリ303とを含んでもよい。
メモリ303内のコードを呼び出すことにより、プロセッサ302は、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始し、第1のアプリケーションが第3の仮想マシン上で開始された後に、第2の仮想マシンに対して、第1のアプリケーションを実行するのを停止するように命令するように構成される。
第1のアプリケーションは、第1の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第1のアプリケーションは、第1の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第1のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第2の仮想マシンは、第1のアプリケーションと緊急事態関係を有する第2のアプリケーション及び第1のアプリケーションがデプロイされた仮想マシンである。
明らかに、緊急事態関係に加えて、第1のアプリケーションと第2のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第1のアプリケーションと第2のアプリケーションとの間に接続関係が存在してもよい。
第2のアプリケーションは、第1のアプリケーションと緊急事態関係を有するため、第2のアプリケーションはまた、第1のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第1のアプリケーションは、第2のアプリケーションのリソース借入アプリケーションと呼ばれてもよい(或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい)。第2のアプリケーションがホストされる第2の仮想マシンはまた、第1の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい(或いはリソース貸出仮想マシンと呼ばれる)。この理由は、第2のアプリケーションがホストされる第2の仮想マシンは、緊急事態のニーズのためにリソースを第1の仮想マシンに貸し出すことを可能にするためである。第2の仮想マシン上で、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行することは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態のニーズを満たすためである(すなわち、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上にデプロイされて第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有するために、第2の仮想マシン上で実行される)。したがって、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、第3の仮想マシン上にデプロイされて第3の仮想マシン上で実行する第1のアプリケーションが、第1の仮想マシン上で実行する第1のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第2の仮想マシン上にデプロイされて第2の仮想マシン上で実行する第1のアプリケーションの緊急事態の使命が完了する。したがって、第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令してもよい。
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、又は第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件のうち少なくとも1つを含んでもよい。
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定する前に、アプリケーションデプロイメント要求を受信するように更に構成され、アプリケーションデプロイメント要求は、第1のアプリケーションに対応する緊急事態ポリシーを搬送し、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することは、第1のアプリケーション及び第2のアプリケーションが相互に緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシン及び第1のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい)こと、又は第2のアプリケーションが第1のアプリケーションの緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい)ことを具体的に示してもよい。
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。メモリ303内のコードを呼び出すことにより、プロセッサ302は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、第2の仮想マシン上に、第1のアプリケーションとホストオン関係を有する第3のアプリケーションをデプロイするように更に構成される。
本発明の或る実施例では、アプリケーションデプロイメント要求が第2の関係テンプレートを更に搬送し(第2の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい)、第1のアプリケーションと第4のアプリケーションとの間に接続関係が存在することを第2の関係テンプレートが記述し、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーションが第4のアプリケーションに接続される(connect To)ことである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第1のアプリケーションを第4のアプリケーションに接続する(connect To)ように命令するように更に構成される。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーション及び第4のアプリケーションが互いに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令される前に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第1のアプリケーションと第4のアプリケーションとの間に相互接続を確立するように命令するように更に構成される。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第4のアプリケーションが第1のアプリケーションに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前又は後に、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第4のアプリケーションを第1のアプリケーションに接続するように命令するように更に構成される。
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する態様において、本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、緊急事態トリガー条件が満たされたと決定した場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するように具体的に構成されてもよい。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい)。
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前、且つ、第2の仮想マシンが第1のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、第2の仮想マシン上に第1のアプリケーションをデプロイするように更に構成される。
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、第2の仮想マシン上で実行している一部又は全部のプロセスを第1のプロセスグループに追加し、第1のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令した後に、第1のアプリケーションのプロセスを第2のプロセスグループに追加し、第2のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成される。
本発明の或る実施例では、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止した後に、第2のプロセスグループを削除し、第1のプロセスグループを解散するように更に構成される。
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第2のプロセスグループのための利用可能なリソースの最大量と第1のプロセスグループのための利用可能なリソースの最大量との和は、第2の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
例えば、第5のアプリケーションもまた第1の仮想マシン上で現在実行していることを仮定すると、メモリ303内のコードを呼び出すことにより、プロセッサ302は、第1の仮想マシン上で実行する第5のアプリケーションに対応する緊急事態ポリシーに従って、第5のアプリケーションと緊急事態関係を有する第6のアプリケーションを決定し、第6のアプリケーションがホストされる第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するように命令し、第4の仮想マシンを作成し、第4の仮想マシン上に第5のアプリケーションをデプロイして開始し、第4の仮想マシンが第4の仮想マシン上にデプロイされた第5のアプリケーションを開始した後に、第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するのを停止するように命令するように更に構成される。第5の仮想マシン上で第5のアプリケーションを実行することは、第1の仮想マシン上で実行する第5のアプリケーションの処理負荷を一時的に共有するために、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態のニーズを満たすためである。したがって、第5の仮想マシン上にデプロイされた第5のアプリケーションは、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
この実施例におけるCSPサーバ300は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ300の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策において、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ300は、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始することが認識され得る。第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図4を参照すると、図4は、本発明の他の実施例によるCSPサーバ400の概略ブロック図である。
CSPサーバ400は、少なくとも1つのプロセッサ401と、少なくとも1つのネットワークインタフェース404又は他のユーザインタフェース403と、メモリ405と、少なくとも1つの通信バス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のうち少なくとも1つを含んでもよい。
本発明のこの実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始し、第1のアプリケーションが第3の仮想マシン上で開始された後に、第2の仮想マシンに対して、第1のアプリケーションを実行するのを停止するように命令するように構成されてもよい。
第1のアプリケーションは、第1の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第1のアプリケーションは、第1の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第1のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第2の仮想マシンは、第1のアプリケーションと緊急事態関係を有する第2のアプリケーション及び第1のアプリケーションがデプロイされた仮想マシンである。
明らかに、緊急事態関係に加えて、第1のアプリケーションと第2のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第1のアプリケーションと第2のアプリケーションとの間に接続関係が存在してもよい。
第2のアプリケーションは、第1のアプリケーションと緊急事態関係を有するため、第2のアプリケーションはまた、第1のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第1のアプリケーションは、第2のアプリケーションのリソース借入アプリケーションと呼ばれてもよい(或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい)。第2のアプリケーションがホストされる第2の仮想マシンはまた、第1の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい(或いはリソース貸出仮想マシンと呼ばれる)。この理由は、第2のアプリケーションがホストされる第2の仮想マシンは、緊急事態のニーズのためにリソースを第1の仮想マシンに貸し出すことを可能にするためである。第2の仮想マシン上で、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行することは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態のニーズを満たすためである(すなわち、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上にデプロイされて第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有するために、第2の仮想マシン上で実行される)。したがって、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、第3の仮想マシン上にデプロイされて第3の仮想マシン上で実行する第1のアプリケーションが、第1の仮想マシン上で実行する第1のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第2の仮想マシン上にデプロイされて第2の仮想マシン上で実行する第1のアプリケーションの緊急事態の使命が完了する。したがって、第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令してもよい。
本発明の或る実施例では、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、又は第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件のうち少なくとも1つを含んでもよい。
本発明の或る実施例では、メモリ403内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定する前に、アプリケーションデプロイメント要求を受信するように更に構成されてもよく、アプリケーションデプロイメント要求は、第1のアプリケーションに対応する緊急事態ポリシーを搬送し、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することは、第1のアプリケーション及び第2のアプリケーションが相互に緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシン及び第1のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい)こと、又は第2のアプリケーションが第1のアプリケーションの緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい)ことを具体的に示してもよい。
本発明の或る実施例では、アプリケーションデプロイメント要求は、関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、第2の仮想マシン上に、第1のアプリケーションとホストオン関係を有する第3のアプリケーションをデプロイするように更に構成されてもよい。
本発明の或る実施例では、アプリケーションデプロイメント要求が第2の関係テンプレートを更に搬送し(第2の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい)、第1のアプリケーションと第4のアプリケーションとの間に接続関係が存在することを第2の関係テンプレートが記述し、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーションが第4のアプリケーションに接続される(connect To)ことである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第1のアプリケーションを第4のアプリケーションに接続する(connect To)ように命令するように更に構成されてもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーション及び第4のアプリケーションが互いに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第1のアプリケーションと第4のアプリケーションとの間に相互接続を確立するように命令するように更に構成されてもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第4のアプリケーションが第1のアプリケーションに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前又は後に、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第4のアプリケーションを第1のアプリケーションに接続するように命令するように更に構成されてもよい。
本発明の或る実施例では、緊急事態ポリシーは、緊急事態トリガー条件を含む。
第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する態様において、本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、緊急事態トリガー条件が満たされたと決定した場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するように具体的に構成されてもよい。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい(第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい)。
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前、且つ、第2の仮想マシンが第1のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、第2の仮想マシン上に第1のアプリケーションをデプロイするように更に構成されてもよい。
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、第2の仮想マシン上で実行している一部又は全部のプロセスを第1のプロセスグループに追加し、第1のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成されてもよい。
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令した後に、第1のアプリケーションのプロセスを第2のプロセスグループに追加し、第2のプロセスグループのために利用可能なリソースの最大量を設定するように更に構成されてもよい。
本発明の或る実施例では、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止した後に、第2のプロセスグループを削除し、第1のプロセスグループを解散するように更に構成されてもよい。
プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第2のプロセスグループのための利用可能なリソースの最大量と第1のプロセスグループのための利用可能なリソースの最大量との和は、第2の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
例えば、第5のアプリケーションもまた第1の仮想マシン上で現在実行していることを仮定すると、メモリ405内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ401は、第1の仮想マシン上で実行する第5のアプリケーションに対応する緊急事態ポリシーに従って、第5のアプリケーションと緊急事態関係を有する第6のアプリケーションを決定し、第6のアプリケーションがホストされる第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するようにトリガーし、第4の仮想マシンを作成し、第4の仮想マシン上に第5のアプリケーションをデプロイして開始し、第4の仮想マシンが第4の仮想マシン上にデプロイされた第5のアプリケーションを開始した後に、第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するのを停止するように命令するように更に構成されてもよい。第5の仮想マシン上で第5のアプリケーションを実行することは、第1の仮想マシン上で実行する第5のアプリケーションの処理負荷を一時的に共有するために、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態のニーズを満たすためである。したがって、第5の仮想マシン上にデプロイされた第5のアプリケーションは、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
この実施例におけるCSPサーバ400は、以下の方法の実施例に記載のCSPサーバの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。CSPサーバ400の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策において、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバ400は、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始することが認識され得る。第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図5を参照すると、本発明の実施例は、クラウドサービスクライアント500を更に提供し、これは、アプリケーションデプロイメント要求を生成するように構成された生成ユニット510と、アプリケーションデプロイメント要求をクラウドサービスプロバイダ(CSP)サーバに送信するように構成された送信ユニット520とを含んでもよい。
アプリケーションデプロイメント要求は、第1のアプリケーションに対応するノードテンプレート及び第2のアプリケーションに対応するノードテンプレートを搬送し、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含み、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。
この実施例におけるクラウドサービスクライアント500は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント500の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策では、第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがホストされる第2の仮想マシンがリソースを第1のアプリケーションがホストされる第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図6を参照すると、本発明の実施例は、他のクラウドサービスクライアント600を更に提供し、これは、少なくとも1つのバス601と、バス601に接続された少なくとも1つのプロセッサ602と、バス601に接続された少なくとも1つのメモリ603とを含んでもよい。
メモリ603内のコードを呼び出すことにより、プロセッサ602は、アプリケーションデプロイメント要求を生成し、アプリケーションデプロイメント要求をクラウドサービスプロバイダ(CSP)サーバに送信するように構成され、アプリケーションデプロイメント要求は、第1のアプリケーションに対応するノードテンプレート及び第2のアプリケーションに対応するノードテンプレートを搬送し、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含み、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。
この実施例におけるクラウドサービスクライアント600は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント600の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策では、第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがホストされる第2の仮想マシンがリソースを第1のアプリケーションがホストされる第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図7を参照すると、図7は、本発明の他の実施例によるクラウドサービスクライアント700の概略ブロック図である。
クラウドサービスクライアント700は、少なくとも1つのプロセッサ701と、少なくとも1つのネットワークインタフェース704又は他のユーザインタフェース703と、メモリ705と、少なくとも1つの通信バス702とを含んでもよい。通信バス702は、これらの構成要素の間の接続及び通信を実現するように構成される。クラウドサービスクライアント700は、ディスプレイ(例えば、タッチスクリーン、LCD、CRT、ホログラフィ(Holographic)イメージングデバイス又はプロジェクタ(Projector))、クリックデバイス(例えば、マウス、トラックボール(trackball)、タッチパッド又はタッチスクリーン)、カメラ、ピックアップデバイス、及び/又は同様のものを含むユーザインタフェース703を任意選択で含む。
例えば、メモリ705は、読み取り専用メモリとランダムアクセスメモリとを含み、プロセッサ701のための命令及びデータを提供してもよい。
メモリ705の一部は、不揮発性メモリ(NVRAM)等を更に含む。
或る実現方式では、メモリ705は、以下の要素、すなわち、実行可能モジュール若しくはデータ構造、又はこれらのサブセット、又はこれらの拡張セットを記憶する。
オペレーティングシステム7051は、様々な種類の基本的なサービス及び処理ハードウェアに基づくタスクを実現するための様々な種類のシステムプログラムを含む。
アプリケーションプログラムモジュール7052は、様々な種類のアプリケーションサービスを実現するための様々な種類のアプリケーションプログラムを含む。
例えば、アプリケーションプログラムモジュール7052は、以下のユニット、すなわち、生成ユニット510又は送信ユニット520のうち少なくとも1つを含んでもよい。
本発明のこの実施例では、メモリ705内に記憶されたプログラム又は命令を呼び出すことにより、プロセッサ701は、アプリケーションデプロイメント要求を生成し、アプリケーションデプロイメント要求をクラウドサービスプロバイダ(CSP)サーバに送信するように構成されてもよい。アプリケーションデプロイメント要求は、第1のアプリケーションに対応するノードテンプレート及び第2のアプリケーションに対応するノードテンプレートを搬送し、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含み、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。
この実施例におけるクラウドサービスクライアント700は、以下の方法の実施例に記載のクラウドサービスクライアントの一部又は全部の機能を実現するように構成されてもよいことが理解可能である。クラウドサービスクライアント700の機能モジュールの機能は、以下の方法の実施例における方法に従って具体的に実現されてもよい。その具体的な実現手順については、方法の実施例における関係する説明に参照が行われてもよく、詳細はここでは再び説明しない。
この実施例の解決策では、第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがホストされる第2の仮想マシンがリソースを第1のアプリケーションがホストされる第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図8を参照すると、本発明の実施例は、少なくとも1つのクラウドサービスプロバイダサーバ810を含むクラウドサービスシステムを更に提供し、クラウドサービスプロバイダサーバ810は、前述の実施例におけるクラウドサービスプロバイダサーバ200、クラウドサービスプロバイダサーバ300、又はクラウドサービスプロバイダサーバ400でもよい。
さらに、クラウドサービスシステムは、クラウドサービスクライアントを更に含んでもよく、クラウドサービスクライアントは、前述の実施例におけるクラウドサービスクライアント600、又はクラウドサービスクライアント500、又はクラウドサービスクライアント700でもよい。
本発明のクラウドアプリケーション処理方法の実施例では、クラウドアプリケーション処理方法は、クラウドサービスプロバイダサーバにより、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定するステップと、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するステップと、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始するステップと、第1のアプリケーションが第3の仮想マシン上で開始された後に、第2の仮想マシンに対して、第1のアプリケーションを実行するのを停止するように命令するステップとを含んでもよい。
図9を参照すると、図9は、本発明の実施例によるクラウドアプリケーション処理方法の概略フローチャートである。図9に示すように、本発明のこの実施例で提供されるクラウドアプリケーション処理方法は、以下の内容を含んでもよい。
901.クラウドサービスプロバイダ(CSP)サーバは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定する。
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値(第1の閾値は、例えば、80%、85%、90%又は95%である)を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、及び/又は第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件のうち少なくとも1つを含んでもよい。
追加された仮想マシンはまた、場合によっては“ポップアップ仮想マシン”と呼ばれてもよい。したがって、仮想マシンを追加するための条件もまた、場合によっては“仮想マシンポップアップ条件”と呼ばれてもよい。
902.CSPサーバは、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する。
例えば、CSPサーバは、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するために、遠隔呼び出しインタフェースを使用することにより、命令を第2の仮想マシンに送信してもよい。明らかに、CSPサーバはまた、他の方式で、第2のアプリケーションがホストされる第2の仮想マシンに対して、第1のアプリケーションを実行するように命令してもよい。
第1のアプリケーションは、第1の仮想マシン上で現在実行しているいずれかのアプリケーションでもよく、或いは第1のアプリケーションは、第1の仮想マシン上で現在実行している特定のアプリケーションでもよい。例えば、第1のアプリケーションは、ユーザアプリケーション、システムアプリケーション等でもよい。第2の仮想マシンは、第1のアプリケーションと緊急事態関係を有する第2のアプリケーション及び第1のアプリケーションがデプロイされた仮想マシンである。
903.CSPサーバは、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始する。
第2のアプリケーションは、第1のアプリケーションと緊急事態関係を有するため、第2のアプリケーションはまた、第1のアプリケーションのリソース貸出アプリケーションとも呼ばれてもよく、第1のアプリケーションは、第2のアプリケーションのリソース借入アプリケーションと呼ばれてもよい(或いは緊急事態サービスを要求するアプリケーションと呼ばれてもよい)。第2のアプリケーションがホストされる第2の仮想マシンはまた、第1の仮想マシンの緊急事態仮想マシンとも呼ばれてもよい(或いはリソース貸出仮想マシンと呼ばれる)。この理由は、第2のアプリケーションがホストされる第2の仮想マシンは、緊急事態において使用するためにリソースを第1の仮想マシンに貸し出すことを可能にするためである。第2の仮想マシン上で第1のアプリケーションを実行することは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態のニーズを満たすためである(すなわち、第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有するために、第2の仮想マシン上で実行される)。したがって、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
明らかに、緊急事態関係に加えて、第1のアプリケーションと第2のアプリケーションとの間に他の関連付け関係が存在してもよい。例えば、第1のアプリケーションと第2のアプリケーションとの間に接続関係が存在してもよい。
904.第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。
第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始されていることをCSPサーバが検出した後、又は第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、第3の仮想マシンは、第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始されていることをCSPサーバに通知するために、通知メッセージをCSPサーバに送信してもよい。
第3の仮想マシン上にデプロイされた第1のアプリケーションが第3の仮想マシン上で開始された後に、第3の仮想マシン上にデプロイされて第3の仮想マシン上で実行する第1のアプリケーションが、第1の仮想マシン上で実行する第1のアプリケーションの負荷を共有してもよいことは理解可能である。この場合、第2の仮想マシン上にデプロイされて第2の仮想マシン上で実行する第1のアプリケーションの緊急事態の使命が完了する。したがって、第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令してもよい。
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値(第1の閾値は、例えば、80%、85%、90%又は95%である)を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、及び/又は第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件のうち少なくとも1つを含んでもよい。
ステップ902及びステップ903の必要な順序は存在しないことは理解可能である。例えば、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、CSPサーバの決定結果に従って、“第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する”ステップ、及び“第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始する”ステップを同時に実行してもよい。CSPサーバがまた、まず“第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する”ステップを実行し、その後、CSPサーバが、“第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始する”ステップを実行することも理解可能である。
この実施例の解決策において、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始することが認識され得る。第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
本発明の或る実施例では、複数のアプリケーション(例えば、10個のアプリケーション)は、第1の仮想マシン上で実行してもよく、複数のアプリケーションのうち少なくとも1つのアプリケーション(例えば、5個のアプリケーション)は、1つの緊急事態ポリシーにそれぞれ対応してもよい。複数のアプリケーションが第1の仮想マシン上で実行する場合、第1の仮想マシン上で実行する各アプリケーションについて、CSPサーバは、前述の方式で同様の緊急事態処理を実行してもよい。
例えば、第5のアプリケーションが第1の仮想マシン上で現在実行していることを仮定すると、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが検出した場合、CSPサーバは、第1の仮想マシン上で実行する第5のアプリケーションに対応する緊急事態ポリシーに従って、第5のアプリケーションと緊急事態関係を有する第6のアプリケーションを更に決定し、第6のアプリケーションがホストされる第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するように命令し、第4の仮想マシンを作成し、第4の仮想マシン上に第5のアプリケーションをデプロイして開始してもよい。第4の仮想マシンが第4の仮想マシン上にデプロイされた第5のアプリケーションを開始した後に、CSPサーバは、第5の仮想マシンに対して、第5の仮想マシン上にデプロイされた第5のアプリケーションを実行するのを停止するように命令する。第5の仮想マシン上で第5のアプリケーションを実行することは、第1の仮想マシン上で実行する第5のアプリケーションの処理負荷を一時的に共有するために、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態のニーズを満たすためである。したがって、第5の仮想マシン上にデプロイされた第5のアプリケーションは、第1の仮想マシン上で実行する第5のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
本発明の或る実施例では、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定する前に、この方法は、アプリケーションデプロイメント要求(例えば、クラウドサービスクライアントからのアプリケーションデプロイメント要求であり、アプリケーションデプロイメント要求は、第1のアプリケーションに関するアプリケーションデプロイメント要求と呼ばれてもよく、第1のアプリケーションに関するアプリケーションデプロイメント要求は、アプリケーションデプロイメント要求が第1のアプリケーションのデプロイメントに主に関係することを意味し、明らかに、アプリケーションデプロイメント要求は、第1のアプリケーションとの接続関係、緊急事態関係又はホストオン関係のような相関関係を有する他のアプリケーションのデプロイメントに更に関係してもよい)を受信するステップを更に含んでもよい。アプリケーションデプロイメント要求は、第1のアプリケーションに対応する緊急事態ポリシーを搬送してもよく、第1のアプリケーションに対応する緊急事態ポリシーは、K個のアプリケーションの間の緊急事態関係を記述する。K個のアプリケーションは、第1のアプリケーションと第2のアプリケーションとを含み、Kは、2以上の正の整数である。第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することは、第1のアプリケーション及び第2のアプリケーションが相互に緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシン及び第1のアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい)こと、又は第2のアプリケーションが第1のアプリケーションのための緊急事態のニーズを満たす(すなわち、第2のアプリケーションがホストされる仮想マシンが仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよい)ことを具体的に示してもよい。同様に、3つのアプリケーションが緊急事態関係を有することは、3つのアプリケーションが相互の緊急事態のニーズを満たす(すなわち、3つのアプリケーションがホストされる仮想マシンが仮想マシンリソースを相互に一時的に貸し出してもよい)こと、又は3つのアプリケーションのうち2つのアプリケーション(2つのアプリケーションは第1のアプリケーションを含まず、例えば、第2のアプリケーション及びアプリケーションAPP01である)が第1のアプリケーションの緊急事態のニーズを満たすこと、すなわち、3つのアプリケーションのうち2つのアプリケーション(第2のアプリケーション及びアプリケーションAPP01)がホストされる仮想マシンが仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示してもよい。より多くのアプリケーションが緊急事態関係を有する場合は、類推によって推定され得る。
本発明の或る実施例では、アプリケーションデプロイメント要求は、アプリケーションデプロイメントパッケージを搬送してもよい。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含んでもよい。アプリケーション記述ファイルは、複数のノードテンプレートを含んでもよく(アプリケーション記述ファイルは、1つ以上の関係テンプレートを更に含んでもよい)、異なるノードテンプレートは、異なるアプリケーション(例えば、ユーザアプリケーション又はシステムアプリケーション)に対応する。ノードテンプレートは、緊急事態ポリシーを含んでもよい。緊急事態ポリシーは、アプリケーションの間の緊急事態関係を記述してもよい。例えば、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含んでもよい。さらに、緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい(明らかに、緊急事態トリガー条件もまた、CSPサーバにより決定されてもよく、或いはCSPサーバ内に予め構成されてもよく、すなわち、アプリケーションデプロイメント要求で搬送されない)。例えば、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することを含んでもよい。明らかに、緊急事態トリガー条件が存在しなくてもよい。緊急事態トリガー条件が存在しない場合、CSPサーバが、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することは、緊急事態トリガー条件により制限されない。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい。
関係テンプレートは、2つ以上のアプリケーションの間に関連付け関係が存在することを記述するために使用され、関連付け関係は、ホストオン関係、接続関係等でもよい。アプリケーションの間のホストオン関係を記述する関係テンプレートはまた、ホストオン関係テンプレートと呼ばれてもよく、アプリケーションの間の接続関係を記述する関係テンプレートはまた、接続関係テンプレートと呼ばれてもよい。
本発明の或る実施例では、アプリケーションデプロイメント要求が関係テンプレートを更に搬送し(関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい)、第1のアプリケーションと第3のアプリケーションとの間にホストオン係が存在することを関係テンプレートが記述する場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第2の仮想マシン上に、第1のアプリケーションとホストオン関係を有する第3のアプリケーションをデプロイするステップを更に含んでもよい。第1のアプリケーションと第3のアプリケーションとの間の、関係テンプレートに記述されるホストオン関係は、アプリケーションが第3のアプリケーション上にホストされること(HostOn)であるか、或いは第1のアプリケーション及び第3のアプリケーションが相互上にホストされることである。
本発明の或る実施例では、アプリケーションデプロイメント要求が第2の関係テンプレートを更に搬送し(第2の関係テンプレートは、アプリケーションデプロイメント要求で搬送されるアプリケーションデプロイメントパッケージ内のアプリケーション記述ファイルに含まれてもよい)、第1のアプリケーションと第4のアプリケーションとの間に接続関係が存在することを第2の関係テンプレートが記述し、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーションが第4のアプリケーションに接続される(connect To)ことである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第2の仮想マシン上にデプロイされた第1のアプリケーションを第4のアプリケーションに接続する(connect To)ステップを更に含んでもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第1のアプリケーション及び第4のアプリケーションが互いに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第2の仮想マシン上にデプロイされた第1のアプリケーションと第4のアプリケーションとの間に相互接続を確立するように命令するステップを更に含んでもよい。さらに、第1のアプリケーションと第4のアプリケーションとの間の、第2の関係テンプレートに記述される接続関係が、第4のアプリケーションが第1のアプリケーションに接続されることである場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前又は後に、この方法は、CSPサーバにより、第4のアプリケーションを第2の仮想マシン上にデプロイされた第1のアプリケーションに接続するように命令するステップを更に含んでもよい。第1のアプリケーションを第4のアプリケーションに接続することは、一般的に、第1のアプリケーションと第4のアプリケーションとの間に通信可能な関係を確立すること、例えば、第4のアプリケーションに対応するIPアドレス及びポート番号のような情報を第1のアプリケーションの構成ファイルに記録すること等を示す。
本発明の或る実施例では、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、第2の仮想マシンが第1のアプリケーションをデプロイするのに十分なアイドルリソースを有すると決定した後に、CSPサーバにより、第2の仮想マシン上に第1のアプリケーションをデプロイするステップを更に含んでもよい。
本発明の他の実施例では、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、第2の仮想マシンが第1のアプリケーションと第1のアプリケーションがホストされるアプリケーションとをデプロイするのに十分なアイドルリソースを有すると決定した後に、CSPサーバにより、第2の仮想マシン上に第1のアプリケーションと第1のアプリケーションがホストされるアプリケーションとをデプロイするステップを更に含んでもよい。
本発明の或る実施例では、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第2の仮想マシン上で実行している一部又は全部のプロセスを第1のプロセスグループに追加し、第1のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令した後に、この方法は、CSPサーバにより、第1のアプリケーションのプロセスを第2のプロセスグループに追加し、第2のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止した後に、この方法は、CSPサーバにより、第2のプロセスグループを削除し、第1のプロセスグループを解散するステップを更に含んでもよい。プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第2のプロセスグループのための利用可能なリソースの最大量と第1のプロセスグループのための利用可能なリソースの最大量との和は、第2の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
本発明のこの実施例の前述の解決策のより良い理解及び実現のために、以下に、或る具体的な適用シナリオを参照して例を紹介する。
図10を参照すると、図10は、本発明の他の実施例による他のクラウドアプリケーション処理方法の概略フローチャートである。図10に示すように、本発明のこの実施例において提供される他のクラウドアプリケーション処理方法は、以下の内容を含んでもよい。
1001.CSPサーバは、クラウドサービスクライアントからアプリケーションデプロイメント要求を受信する。
アプリケーションデプロイメント要求は、アプリケーションデプロイメントパッケージを搬送してもよい。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含む。アプリケーション記述ファイルは、複数のノードテンプレートを含んでもよい(例えば、第1のアプリケーションに対応するノードテンプレート及び第2のアプリケーションに対応するノードテンプレートを含んでもよい)。さらに、アプリケーションデプロイメント要求は、1つ以上の関係テンプレートを更に含んでもよい。異なるノードテンプレートは、異なるアプリケーション(例えば、ユーザアプリケーション又はシステムアプリケーション)に対応する。例えば、アプリケーションデプロイメント要求が5つのノードテンプレートを含んでもよい場合、5つのノードテンプレートは、1対1で5つのアプリケーションに対応する。関係テンプレートは、アプリケーションの間の関連付け関係(例えば、ホストオン関係又は接続関係)を記述するために使用される。
アプリケーションデプロイメント要求は、第1のアプリケーションのデプロイメントに関係する。したがって、アプリケーションデプロイメント要求は、第1のアプリケーションに関するアプリケーションデプロイメント要求と呼ばれてもよく、第1のアプリケーションに関するアプリケーションデプロイメント要求は、アプリケーションデプロイメント要求が第1のアプリケーションのデプロイメントに関係することを意味する。明らかに、アプリケーションデプロイメント要求は、第1のアプリケーションとの接続関係、緊急事態関係又はホストオン関係のような相関関係を有する他のアプリケーションのデプロイメントに更に関係してもよい。
さらに、アプリケーション記述ファイルは、アプリケーショントポロジ記述情報を更に含んでもよい。アプリケーショントポロジ記述情報に基づいて、アプリケーショントポロジ図が取得されてもよい。アプリケーショントポロジ図は、アプリケーション記述ファイル内のノードテンプレートの間の関係を記述する。
この実施例では、関係テンプレートがアプリケーションの対の間の関連付け関係を記述する例が主に使用される。関連付け関係は、ホストオン関係、接続関係等を含んでもよい。例えば、アプリケーションAPP002が4つのアプリケーションと接続関係を有する場合、4つの関係テンプレートは、アプリケーションAPP002と4つのアプリケーションとの間の接続関係をそれぞれ記述するために使用されてもよい。他の例では、アプリケーションAPP002が2つのアプリケーションとホストオン関係を有する場合、2つの関係テンプレートは、アプリケーションAPP002と2つのアプリケーションとの間のホストオン関係をそれぞれ記述するために使用されてもよい。
関係テンプレートに記述される関連付け関係は、一方向の関連付け関係でもよい。例えば、アプリケーション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サーバは、ポリシーにより生成された管理効果を決定してもよい。仮想マシン上で実行するアプリケーションは、サービスノードと見なされてもよく(略してノードと呼ばれてもよい)、ノードは、例えば、ユーザアプリケーション又はシステムアプリケーションでもよい(仮想マシンオペレーティングシステム等であってもよい)。
ノードテンプレートは、緊急事態ポリシーを更に含む(例えば、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含んでもよい)。1つの緊急事態ポリシーは、複数のアプリケーションの間の緊急事態関係を記述してもよい。この実施例では、1つの緊急事態ポリシーが2つのアプリケーションの間の緊急事態関係を記述する例が主に使用される。緊急事態ポリシーに記述される緊急事態関係は、一方向でもよい。例えば、第2のアプリケーションと第1のアプリケーションとの間の、緊急事態ポリシーa01に記述される緊急事態関係は、第2のアプリケーションが第1のアプリケーションのリソース貸出アプリケーションであり(すなわち、第2のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示す)、第2のアプリケーションと第1のアプリケーションとの間の、緊急事態ポリシーa02に記述される緊急事態関係は、第1のアプリケーションが第2のアプリケーションのリソース貸出アプリケーションである(すなわち、第1のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを第2のアプリケーションがホストされる仮想マシンに一時的に貸し出してもよいことを示す)。さらに、緊急事態ポリシーに記述される緊急事態関係はまた、双方向でもよい。例えば、第3のアプリケーションと第1のアプリケーションとの間の、緊急事態ポリシーa03に記述される緊急事態関係は、第3のアプリケーション及び第1のアプリケーションが相互のリソース貸出アプリケーションである(すなわち、第3のアプリケーションがホストされる仮想マシン及び第1のアプリケーションがホストされる仮想マシンが、仮想マシンリソースを相互に一時的に貸し出してもよいことを示す)。
説明を簡潔にするために、以下は、アプリケーションデプロイメントパッケージが第1のノードテンプレートと第2のノードテンプレートと第3のノードテンプレートと第4のノードテンプレートとを含む例を使用することにより主に記載され、第1のノードテンプレートは、第1のアプリケーションに対応するノードテンプレートであり、第2のノードテンプレートは、第2のアプリケーションに対応するノードテンプレートであり、第3のノードテンプレートは、第3のアプリケーションに対応するノードテンプレートであり、第4のノードテンプレートは、第4のアプリケーションに対応するノードテンプレートである。アプリケーションデプロイメントパッケージは、第1の関係テンプレートと第2の関係テンプレートと第3の関係テンプレートとを更に含む。
第1の関係テンプレートは、第1のアプリケーションが第3のアプリケーション上にホストされる必要があること(すなわち、第3のアプリケーションが、第1のアプリケーションがホストされる仮想マシン上にデプロイされる必要があること)を記述する。第2の関係テンプレートは、第2のアプリケーションが第4のアプリケーション上にホストされる必要があること(すなわち、第4のアプリケーションが、第2のアプリケーションがホストされる仮想マシン上にデプロイされる必要があること)を記述する。第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを更に含み、第1のアプリケーションに対応する緊急事態ポリシーは、第2のアプリケーションが第1のアプリケーションのリソース貸出アプリケーションであること、すなわち、第2のアプリケーションがホストされる仮想マシンが、リソースを第1のアプリケーションがホストされる仮想マシンに一時的に貸し出すことを記述する。第3の関係テンプレートは、第3のアプリケーションと第4のアプリケーションとの間に接続関係が存在することを更に記述し、これは、具体的には、第3のアプリケーションが第4のアプリケーションに接続されることである。
さらに、第1のアプリケーションに対応する緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい(明らかに、緊急事態トリガー条件もまた、CSPサーバにより決定されてもよく、或いはCSPサーバ内に予め構成されてもよく、すなわち、アプリケーションデプロイメント要求で搬送されない)。例えば、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することは、緊急事態トリガー条件が満たされたと決定した場合、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令することを含んでもよい。第2のアプリケーションがホストされる第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令された後に、第2の仮想マシン及び第1の仮想マシンの双方が第1のアプリケーションを実行することは理解可能である。第2の仮想マシン上で、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行することは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態のニーズを満たすためである。したがって、第2の仮想マシン上にデプロイされた第1のアプリケーションは、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい(第1のアプリケーションが第3のアプリケーション上でホストされる必要があるため、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で、第1のアプリケーションがホストされる必要がある第3のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しくてもよい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい(第1のアプリケーションが第3のアプリケーション上でホストされる必要があるため、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で、第1のアプリケーションがホストされる必要がある第3のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しくてもよい)。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい(第1のアプリケーションが第3のアプリケーション上でホストされる必要があるため、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で、第1のアプリケーションがホストされる必要がある第3のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しくてもよい)。
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関係)を有する2つのアプリケーションがデプロイされた後に、関連付け関係確立ポリシーは、2つのアプリケーションの間の関連付け関係を確立するために呼び出されてもよい。例えば、CSPサーバは、2つのアプリケーションの間の接続関係を確立するために、ConnectTo関係テンプレート内に提供されるconnectポリシーを呼び出してもよい。
例えば、CSPサーバは、第1の仮想マシンVM-1上に第1のアプリケーション及び第3のアプリケーションをデプロイし、第2の仮想マシンVM-2上に第2のアプリケーション及び第4のアプリケーションをデプロイし、第3のアプリケーションから第4のアプリケーションへの接続を確立するように命令する。
アプリケーションデプロイメントパッケージ内の各ノードテンプレートに対応するアプリケーションをデプロイした後に、CSPサーバは、ノードテンプレートID、ノードテンプレートIDに対応するアプリケーションのアプリケーションID、アプリケーションがホストされる仮想マシンの仮想マシンID、ノードテンプレートに対応するアプリケーションをインストールするために消費されるディスク空間の量のような情報をデータベースに記録する。
1003.CSPサーバは、ノードテンプレートに含まれる緊急事態ポリシーに従って、リソース貸出アプリケーションがホストされる仮想マシン上にリソース借入アプリケーションをデプロイする。例えば、第1のアプリケーションに対応するノードテンプレートに含まれる緊急事態ポリシーに従って、第1のアプリケーション(すなわち、リソース借入アプリケーション)は、第1のアプリケーションのリソース貸出アプリケーション(すなわち、第2のアプリケーション)がホストされる第2の仮想マシンVM-2上にデプロイされてもよい。第2の仮想マシンVM-2上にデプロイされた第1のアプリケーションは、第1の仮想マシンVM-1上にデプロイされた第1のアプリケーションの緊急事態アプリケーションと呼ばれてもよい。
緊急事態関係を有するアプリケーション(例えば、緊急事態関係を有する第1のアプリケーション及び第2のアプリケーション)の対毎に、CSPサーバは、デプロイされたリソース借入アプリケーション(例えば、第1のアプリケーション)がホストされる仮想マシンの仮想マシンID(例えば、VM-1)を求めてデータベースを検索し、リソース借入アプリケーション(例えば、第1のアプリケーション)をデプロイするために消費される必要があるディスク空間等を求めてデータベースを検索し、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間がリソース借入アプリケーション(例えば、第1のアプリケーション)をデプロイするのに十分であるか否かを検査する。リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間が十分である場合、CSPサーバは、Declarative Modeポリシーに基づいて、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上にリソース借入アプリケーション(例えば、第1のアプリケーション)をデプロイし、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間が十分でない場合、リソース借入アプリケーション(例えば、第1のアプリケーション)は、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上にデプロイされなくてもよい。
さらに、第1のアプリケーションは第3のアプリケーション上にホストされる必要があるため、CSPサーバは、第3のアプリケーションをデプロイするために消費される必要があるディスク空間等を求めてデータベースを更に検索し、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間がリソース借入アプリケーション(例えば、第1のアプリケーション)及び第3のアプリケーションをデプロイするのに十分であるか否かを検査してもよい。リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間が十分である場合、CSPサーバは、Declarative Modeポリシーに基づいて、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上にリソース借入アプリケーション(例えば、第1のアプリケーション)及び第3のアプリケーションをデプロイし、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上の残りのディスク空間が十分でない場合、リソース借入アプリケーション(例えば、第1のアプリケーション)及び第3のアプリケーションは、リソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上にデプロイされなくてもよい。
リソース借入アプリケーション(例えば、第1のアプリケーション)がリソース貸出アプリケーション(例えば、第2のアプリケーション)がホストされる仮想マシン(例えば、VM-2)上にデプロイされた後、すなわち、第1の仮想マシンVM-1上にホストされる第1のアプリケーションの緊急事態アプリケーションが第2の仮想マシンVM-2上にデプロイされた後に、緊急事態アプリケーションは、開始される必要はなく、緊急事態アプリケーションは、第2の仮想マシンVM-2上にインストールされて構成されさえすればよい。
さらに、第1のアプリケーションの緊急事態アプリケーションを第2の仮想マシンVM-2上にデプロイした後に、例えば、CSPサーバは、仮想マシンVM-2上に、第1のアプリケーションがホストされる必要がある他のアプリケーション(第3のアプリケーション)を更にデプロイする。明らかに、第2の仮想マシンVM-2上の残りのディスク空間はまた、第1のアプリケーションがホストされる必要がある他のアプリケーションをデプロイするのに十分である必要がある。
さらに、第1のアプリケーションの緊急事態アプリケーションを第2の仮想マシンVM-2上にデプロイした後に、CSPサーバは、緊急事態アプリケーションに対応するノードテンプレートID、緊急事態アプリケーションのアプリケーションID、緊急事態アプリケーションがホストされる仮想マシン(第2の仮想マシンVM-2)の仮想マシンID、及び緊急事態アプリケーションの現在状態のような情報をデータベースに記録してもよい。この場合、緊急事態アプリケーションはまだ開始されない。したがって、緊急事態アプリケーションの現在状態は、“スタンバイ”状態である。
これまでで、受信したアプリケーションデプロイメント要求に基づいて、CSPサーバは、関係するアプリケーションの関係するデプロイメント操作を完了している。
1004.CSPサーバは、第1の仮想マシンVM-1及び第2の仮想マシンVM-2の動作状態を監視する。
第1の仮想マシンVM-1上にデプロイされた第1のアプリケーション及び第3のアプリケーションが開始された後、且つ、第2の仮想マシンVM-2上にデプロイされた第2のアプリケーション及び第4のアプリケーションが開始された後に、CSPサーバは、第1の仮想マシンVM-1及び第2の仮想マシンVM-2の動作状態を監視する。
1005.CSPサーバは、仮想マシンVM-1の動作状態に従って、第1の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすと決定する。
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値(第1の閾値は、例えば、80%、85%、90%又は95%である)を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの単位時間当たりのスループットが第2の閾値を超えるという条件、第1の仮想マシン上で実行する第1のアプリケーションの応答待ち時間が第3の閾値を超えるという条件等のうち少なくとも1つを含んでもよい。
1006.CSPサーバは、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する(すなわち、第2のアプリケーションがホストされる第2の仮想マシンに対して、第1の仮想マシン上で実行する第1のアプリケーションの緊急事態アプリケーションを実行するように命令する)。
具体的には、CSPサーバは、ステップ1005において第1の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすという決定結果に基づいて、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーを求めてデータベースを検索し、CSPサーバは、見つかった緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する。
例えば、CSPサーバは、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令するために、遠隔呼び出しインタフェースを使用することにより、命令を第2の仮想マシンに送信してもよい。明らかに、CSPサーバはまた、他の方式で、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令してもよい。
1007.CSPサーバは、第3の仮想マシンVM-3を作成し、第3の仮想マシンVM-3上に第1のアプリケーションをデプロイして開始する。
さらに、第1のアプリケーションは、第3のアプリケーションにHosted Onされているため、第3の仮想マシンVM-3に対して、第3の仮想マシンVM-3上にデプロイされた第1のアプリケーションを実行するように命令する前に、CSPサーバは、第3の仮想マシンVM-3上に第3のアプリケーションを更にデプロイし、第3の仮想マシンVM-3上にデプロイされた第3のアプリケーションと第2の仮想マシンVM-2上にデプロイされた第4のアプリケーションとの間に接続を確立する。
さらに、第3の仮想マシンVM-3上に第1のアプリケーション及び第3のアプリケーションをデプロイして開始した後に、CSPサーバは、第3の仮想マシンVM-3上で実行する第1のアプリケーションに対応するノードテンプレートID、第3のアプリケーションに対応するノードテンプレートID、第1のアプリケーションのアプリケーションID、第3のアプリケーションのアプリケーションID、第3のアプリケーション及び第1のアプリケーションがホストされる仮想マシンVM-3の仮想マシンID、及び第3のアプリケーション及び第1のアプリケーションをインストールするために消費されるディスク空間の量のような情報をデータベースに記録してもよい。CSPサーバは、第3の仮想マシン上にデプロイされた第1のアプリケーション及び第3のアプリケーションの状態を“実行中”に設定する。
ステップ1006及びステップ1007の必要な順序は存在しないことは理解可能である。例えば、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、“第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する”ステップ、及び“第3の仮想マシンVM-3を作成し、第3の仮想マシンVM-3上に第1のアプリケーションをデプロイして開始する”ステップを同時に実行してもよい。CSPサーバがまた、まず“第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する”ステップを実行し、その後、CSPサーバが、“第3の仮想マシンVM-3を作成し、第3の仮想マシンVM-3上に第1のアプリケーションをデプロイして開始する”ステップを実行することも理解可能である。
1008.第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。
さらに、CSPサーバはまた、第2の仮想マシン上に、第1のアプリケーションとホストオン関係を有する第3のアプリケーションをデプロイするため、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第3のアプリケーションを実行するのを停止するように更に命令してもよい。
本発明の或る実施例では、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令する前に、この方法は、CSPサーバにより、第2の仮想マシン上で実行している一部又は全部のプロセスを第1のプロセスグループに追加し、第1のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令した後に、この方法は、CSPサーバにより、第1のアプリケーションのプロセスを第2のプロセスグループに追加し、第2のプロセスグループのために利用可能なリソースの最大量を設定するステップを更に含んでもよい。任意選択で、第2の仮想マシンが第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止した後に、この方法は、CSPサーバにより、第2のプロセスグループを削除し、第1のプロセスグループを解散するステップを更に含んでもよい。プロセスグループを導入し、プロセスグループのために利用可能なリソースの最大量を設定することは、既存のプロセスと緊急事態プロセスとの間の性能の隔離を実現するのに役立ち、既存のアプリケーション上での緊急事態ポリシーの実現の悪影響を低減するのに更に役立つことが理解可能である。第2のプロセスグループのための利用可能なリソースの最大量と第1のプロセスグループのための利用可能なリソースの最大量との和は、第2の仮想マシンのための利用可能なリソースの最大量以下であることが理解可能である。
この実施例の技術的解決策において、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始することが認識され得る。第3の仮想マシンが第3の仮想マシン上にデプロイされた第1のアプリケーションを実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するのを停止するように命令する。第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
本発明のこの実施例の前述の解決策のより良い理解及び実現のために、以下に、或る更に具体的なTOSCAに基づく適用シナリオを参照して例を紹介する。
CSPサーバがクラウドサービスクライアントからアプリケーションデプロイメント要求q1を受信することが仮定される。
アプリケーションデプロイメント要求q1は、アプリケーションデプロイメントパッケージを搬送する。アプリケーションデプロイメントパッケージは、アプリケーション記述ファイルを含む。アプリケーション記述ファイルは、以下の6個のノードテンプレート、すなわち、ノードテンプレートaVM、ノードテンプレートdVM、ノードテンプレートappContainer、ノードテンプレートdbContainer、ノードテンプレートDB、及びノードテンプレートAppを含む。アプリケーション記述ファイルは、タイプがHostOnである4つの関係テンプレートと、タイプがConnectToである1つの関係テンプレートとを更に含む。6個のノードテンプレートは、6個のアプリケーションに対応する。6個のアプリケーションのアプリケーションIDは、それぞれ以下の通り、すなわち、appVM1、dbVM、appC1、dbC、db及app1であり、
ノードテンプレートaVMはアプリケーションappV1に対応し、
ノードテンプレートdVMはアプリケーションdbVMに対応し、
ノードテンプレートappContainerはアプリケーションappC1に対応し、
ノードテンプレートdbContainerはアプリケーションdbCに対応し、
ノードテンプレートDBはアプリケーションdbに対応し、
ノードテンプレートAppはアプリケーションapp1に対応する。
アプリケーション記述ファイルに含まれるアプリケーショントポロジ記述情報に基づいて取得されたアプリケーショントポロジ図は、図11に示され得る。図11は、ノードテンプレートaVM、ノードテンプレートdVM、ノードテンプレートappContainer、ノードテンプレートdbContainer、ノードテンプレートDB、及びノードテンプレートAppのシーケンスを示す。
さらに、CSPサーバは、ノードテンプレートのシーケンスをデータベースに更に記録してもよい。図11は、アプリケーションdbがアプリケーションdbC上にホストされ、アプリケーションdbCがアプリdbVM上にホストされ、アプリケーションapp1がアプリケーションappC1上にホストされ、アプリケーションappC1がアプリケーションappVM1上にホストされることを示す。図11は、アプリケーションappC1がアプリケーションdbCにconnected toされることを更に示す。
CSPサーバは、6個のアプリケーションをデプロイするために必要な仮想マシンの量を計算し、各仮想マシン上にデプロイされる必要があるアプリケーションを決定する。ノードテンプレートのシーケンスに従って、CSPサーバは、アプリケーションをデプロイし、対応するノードライフサイクル管理ポリシーを呼び出すことにより、順に仮想マシン上でアプリケーションを開始し、関連付け関係確立ポリシーを呼び出すことにより、アプリケーションappC1からアプリケーションdbCへの接続を確立する。
アプリケーションデプロイメントに必要な仮想マシンの量を計算するためにCSPサーバにより使用される方式は、ノードテンプレートに対応するアプリケーションがいずれかのHostOn関係テンプレートに記述されるHostOn関係のソースサプリケーションでないような、すなわち、ノードテンプレートがアプリケーショントポロジ図の最下層(すなわち、ノードテンプレートaVM及びノードテンプレートdVM)にあるようなノードテンプレートをアプリケーショントポロジ図において検索することを含み、見つかったこのようなノードテンプレートの量は、アプリケーションデプロイメントのために必要な仮想マシンの量である。したがって、2つの仮想マシンが6個のアプリケーションをデプロイするために必要である。CSPサーバは、HostOn関係に従って、どのアプリケーションが同じ仮想マシン上にデプロイされる必要があるかを決定し(HostOn関係を有するアプリケーションは、同じ仮想マシン上にデプロイされる必要がある)、CSPサーバにより管理される仮想マシンから仮想マシンの対応する量を取得してもよい(CSPサーバにより管理される各仮想マシンは、仮想マシンを一意に識別する仮想マシンIDを有する)。
CSPサーバにより作成された2つの仮想マシンの利用可能なディスク空間が表1に示すものであることが仮定される。
ノードテンプレート、アプリケーション及び仮想マシンの間のマッピング関係は、表2に示され得る。
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は、第1の仮想マシンVM-1上にデプロイされる。アプリケーションdbVM、アプリケーションdbC及びアプリケーションdbは、第2の仮想マシンVM-2上にデプロイされる。アプリケーションをデプロイして開始した後に、CSPサーバは、アプリケーションの状態を“実行中”に設定し、これは、表3に具体的に示され得る。
アプリケーションにより消費されるディスク空間は表4に示される。
CSPサーバは、ノードテンプレートAppに含まれる緊急事態ポリシーに従って、リソース貸出アプリケーションdbがホストされる仮想マシンVM-2上にリソース借入アプリケーションapp1をデプロイする。第2の仮想マシンVM-2上にデプロイされたアプリケーションapp1は、第1の仮想マシンVM-1上にデプロイされたアプリケーションapp1の緊急事態アプリケーションと呼ばれてもよい。
緊急事態関係を有するアプリケーションdb及びアプリケーションapp1について、CSPサーバは、アプリケーションapp1をデプロイするために消費される必要があるディスク空間等を求めて表4を検索し、アプリケーションdbがホストされる第2の仮想マシンVM-2上の残りのディスク空間がアプリケーションApp1をデプロイするのに十分であるか否かを検査する。アプリケーションApp1は、アプリケーションappC1上にホストされる必要があるため、CSPサーバは、アプリケーションappC1をデプロイするために消費される必要があるディスク空間を求めて表4を更に検索し、アプリケーションdbがホストされる第2の仮想マシンVM-2上の残りのディスク空間がアプリケーションapp1及びアプリケーションappC1をデプロイするのに十分であるか否かを検査する。表4及び表1から、第2の仮想マシンVM-2上の残りのディスク空間が11GBであり、250MBのみがアプリケーションapp1及びアプリケーションappC1をデプロイするために必要であることが認識され得る。したがって、アプリケーションdbがホストされる第2の仮想マシンVM-2上の残りのディスク空間は、アプリケーションapp1及びアプリケーションappC1をデプロイするのに十分である。
したがって、CSPサーバはまた、第2の仮想マシンVM-2上にアプリケーションapp1及びアプリケーションappC1をデプロイする。CSPサーバにより第2の仮想マシン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。
第2の仮想マシンVM-2上にアプリケーションapp1及びアプリケーションappC1をデプロイした後に、CSPサーバは、アプリケーションapp1及びアプリケーションappC1の状態を“スタンバイ”に設定し、これは、表5に具体的に示され得る。
これまでで、受信したアプリケーションデプロイメント要求に基づいて、CSPサーバは、関係するアプリケーションの関係するデプロイメント操作を完了している。
CSPサーバは、第1の仮想マシンVM-1及び第2の仮想マシンVM-2の動作状態を監視する。
第1の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすと検出した場合、CSPサーバは、第1の仮想マシン上で現在実行しているアプリケーションapp1に対応する緊急事態ポリシーに従って、アプリケーションapp1と緊急事態関係を有するアプリケーションdbを決定し、アプリケーションdbがホストされる第2の仮想マシンVM-2に対して、第2の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するように命令する(すなわち、アプリケーションdbがホストされる第2の仮想マシンVM-2に対して、アプリケーションapp1の緊急事態アプリケーションapp1を実行するように命令する)。
仮想マシンを追加するための条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、仮想マシンを追加するための条件は、以下の条件、すなわち、第1の仮想マシンのリソース利用率が第1の閾値(第1の閾値は、例えば、80%、85%、90%又は95%である)を超えるという条件、第1の仮想マシン上で実行するアプリケーションapp1の単位時間当たりのスループットが第2の閾値を超えるという条件、第1の仮想マシン上で実行するアプリケーションapp1の応答待ち時間が第3の閾値を超えるという条件等のうち少なくとも1つを含んでもよい。
第1の仮想マシンVM-1の動作状態が仮想マシンを追加するための条件を満たすとCSPサーバが決定した場合、CSPサーバは、第3の仮想マシンVM-3を更に作成し、第3の仮想マシンVM-3上にアプリケーションapp1をデプロイして開始する。
さらに、アプリケーションapp1は、アプリケーションappC1にHosted Onされるため、第3の仮想マシンVM-3に対して、第3の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行するように命令する前に、CSPサーバは、第3の仮想マシンVM-3上にアプリケーションappC1を更にデプロイし、第3の仮想マシンVM-3上にデプロイされたアプリケーションappC1と第2の仮想マシンVM-2上にデプロイされたアプリケーションdbCとの間に接続を確立する。
さらに、アプリケーションappC1は、アプリケーションappVM1にHosted Onされるため、第3の仮想マシンVM-3に対して、第3の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行するように命令する前に、CSPサーバは、第3の仮想マシンVM-3上にアプリケーションappVM1を更にデプロイする。
CSPサーバにより第3の仮想マシンを追加する操作を実行する手順において、第3の仮想マシンVM-3上にデプロイされているアプリケーションappVM1、アプリケーションappC1及びアプリケーションapp1の動作状態は、表6に示される。
第3の仮想マシンVM-3を追加する操作が完了した後、すなわち、第3の仮想マシンVM-3が第3の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行した後に、CSPサーバは、第2の仮想マシンVM-2に対して、第2の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するのを停止するように命令する。さらに、CSPサーバは、第2の仮想マシンVM-2上に、アプリケーションapp1とホストオン関係を有するアプリケーションappC1を更にデプロイするため、CSPサーバは、第2の仮想マシンVM-2に対して、第2の仮想マシンVM-2上にデプロイされたアプリケーションappC1を実行するのを停止するように更に命令してもよい。この場合、第2の仮想マシンVM-2上にデプロイされたアプリケーションappC1及びアプリケーションapp1は、“スタンバイ”状態に設定されるが、第3の仮想マシンVM-3上にデプロイされたアプリケーションappC1、アプリケーションapp1及びアプリケーションappVM1は、“実行中”状態に設定される。詳細は表7に示される。
CSPサーバが第3の仮想マシンを新たに追加した後に、3つの仮想マシン上で実行するアプリケーションは、図12に示され得る。ここで、第3の仮想マシン及び第1の仮想マシンの双方は、アプリケーションappC1、アプリケーションapp1及びアプリケーションappVM1を実行する。
前述の適用シナリオにおいて、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第1の仮想マシン上で現在実行しているアプリケーションapp1に対応する緊急事態ポリシーに従って、アプリケーションapp1と緊急事態関係を有するアプリケーションdbを決定し、アプリケーションdbがホストされる第2の仮想マシンに対して、第2の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するように命令してもよいことが認識され得る。第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定した後に、CSPサーバは、第3の仮想マシンを作成し、第3の仮想マシン上にアプリケーションapp1をデプロイして開始する。第3の仮想マシンが第3の仮想マシンVM-3上にデプロイされたアプリケーションapp1を実行した後に、CSPサーバは、第2の仮想マシンに対して、第2の仮想マシンVM-2上にデプロイされたアプリケーションapp1を実行するのを停止するように命令する。アプリケーションの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2の仮想マシンがリソースを第1の仮想マシンに一時的に貸し出すことが実現され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときに仮想マシンが事前に作成される従来技術の機構に比べて、本発明のこの実施例の解決策は、仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入される。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行するアプリケーションapp1の処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
図13を参照すると、本発明の実施例は、クラウドアプリケーションデプロイメント方法を更に提供し、これは以下を含んでもよい。
1301.クラウドサービスクライアントは、アプリケーションデプロイメント要求を生成する。
1302.アプリケーションデプロイメント要求をクラウドサービスプロバイダ(CSP)サーバに送信する。
アプリケーションデプロイメント要求は、第1のアプリケーションに対応するノードテンプレート及び第2のアプリケーションに対応するノードテンプレートを搬送し、第1のアプリケーションに対応するノードテンプレートは、第1のアプリケーションに対応する緊急事態ポリシーを含み、第1のアプリケーションに対応する緊急事態ポリシーは、第1のアプリケーションが第2のアプリケーションと緊急事態関係を有することを記述する。
アプリケーションデプロイメント要求を受信した後に、クラウドサービスプロバイダ(CSP)サーバは、第1の仮想マシン及び第2の仮想マシンを作成し、第1のアプリケーションに対応するノードテンプレートに従って第1の仮想マシン上に第1のアプリケーションをデプロイし、第2のアプリケーションに対応するノードテンプレートに従って第2の仮想マシン上に第2のアプリケーションをデプロイし、第1のアプリケーションに対応する緊急事態ポリシーに従って、第2のアプリケーションがホストされる第2の仮想マシン上に第1のアプリケーションをデプロイしてもよい。その後、CSPサーバは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たすと決定し、第1の仮想マシン上で実行する第1のアプリケーションに対応する緊急事態ポリシーに従って、第1のアプリケーションと緊急事態関係を有する第2のアプリケーションを決定し、第2のアプリケーションがホストされる第2の仮想マシンに対して、第2の仮想マシン上にデプロイされた第1のアプリケーションを実行するように命令し、第3の仮想マシンを作成し、第3の仮想マシン上に第1のアプリケーションをデプロイして開始し、第1のアプリケーションが第3の仮想マシン上で開始された後に、第2の仮想マシンに対して、第1のアプリケーションを実行するのを停止するように命令する。
本発明の或る実施例では、アプリケーションデプロイメント要求は、ホストオン関係テンプレートを更に搬送し、第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーションが第3のアプリケーション上にホストされることであり、或いは第1のアプリケーションと第3のアプリケーションとの間の、ホストオン関係テンプレートに記述されるホストオン関係は、第1のアプリケーション及び第3のアプリケーションが互いに相互上にホストされることである。
さらに、第1のアプリケーションに対応する緊急事態ポリシーは、緊急事態トリガー条件を更に含んでもよい。
緊急事態トリガー条件は、異なるシナリオ及び異なるニーズに従って設定されてもよい。例えば、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最小量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最小量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最小量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの最大量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの最大量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの最大量を加えたものに等しい。他の例では、緊急事態トリガー条件は、第2の仮想マシンのアイドルリソースの量が第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量以上であることを含んでもよい。第1のアプリケーションが他のアプリケーション上でホストされる必要がない場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量に等しい。第1のアプリケーションが他のアプリケーション上でホストされる必要がある場合、第2の仮想マシン上で第1のアプリケーションを実行するために必要なリソースの平均量は、第1のアプリケーションが第2の仮想マシン上でホストされる必要がある他のアプリケーションを実行するためのリソースの平均量に、第2の仮想マシン上で第1のアプリケーション自体を実行するために必要なリソースの平均量を加えたものに等しい。
この実施例の解決策において、第1のアプリケーションと第2のアプリケーションとの間の緊急事態ポリシーが導入され、緊急事態ポリシーに基づいて、第2のアプリケーションがホストされる第2の仮想マシンがリソースを第1のアプリケーションがホストされる第1の仮想マシンに一時的に貸し出すことが実現され得ることが認識され得る。したがって、新たな仮想マシンは、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たす場合にのみ作成され得る。アプリケーションがデプロイされたときにスタンバイ仮想マシンが事前に作成される従来技術の機構に比べて、この実施例の解決策は、スタンバイ仮想マシンが事前に作成される必要がないため、仮想マシンリソースの利用率を改善するのに役立つ。さらに、第1の仮想マシンの動作状態が仮想マシンを追加するための条件を満たした場合、仮想マシンの間の一時リソース貸出機構が導入され得る。したがって、緊急事態仮想マシンは、新たに作成されたスタンバイ仮想マシンがデプロイされる前に、第1の仮想マシン上で実行する第1のアプリケーションの処理負荷を一時的に共有し得る。これは、スタンバイ仮想マシンを新たに作成する手順において生じるサービス変動をかなり低減するのに役立ち、クラウドサービスの信頼性を改善するのに役立つ。
本発明の実施例は、コンピュータ記憶媒体を更に提供し、コンピュータ記憶媒体は、プログラムを記憶してもよい。プログラムが実行された場合、前述の方法の実施例において記録されるいずれかのクラウドアプリケーション処理方法のステップの一部又は全部が含まれる。
本発明の実施例は、他のコンピュータ記憶媒体を更に提供し、コンピュータ記憶媒体は、プログラムを記憶してもよい。プログラムが実行された場合、前述の方法の実施例において記録されるいずれかのクラウドアプリケーションデプロイメント方法のステップの一部又は全部が含まれる。
前述の実施例において、実施例の説明は、それぞれの焦点を有する。実施例に詳細に記載されていない部分については、他の実施例における関係する説明に参照が行われてもよい。
説明の容易のために、前述の方法の実施例は、一連の動作として表現される点に留意すべきである。しかし、本発明に従って、いくつかのステップは他のシーケンスで実行されてもよく、或いは同時に実行されてもよいため、当業者は、本発明が説明した動作シーケンスに限定されないことを認識すべきである。さらに、当業者はまた、明細書に記載の全ての実施例が例示的な実施例であり、関係する動作及びモジュールが必ずしも本発明に必須であるとは限らないことも認識すべきである。
この出願で提供される複数の実施例では、開示の装置は他の方式で実現されてもよいことが認識されるべきである。例えば、記載の装置の実施例は、単なる例示である。例えば、ユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく、或いは他の装置に統合されてもよく、或いはいくつかの機能が無視されてもよく或いは実行されなくてもよい。さらに、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気的又は他の形式で実現されてもよい。
別々の部分として記載したユニットは、物理的に別々でもよく或いは別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットでもよく或いは物理的なユニットでなくてもよく、或いは1つの位置に存在してもよく、或いは複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の解決策の目的を達成するために、実際のニーズに従って選択されてもよい。
さらに、本発明の実施例における機能ユニットは、1つの処理ユニットに統合されてもよく、或いはユニットのそれぞれが物理的に単独で存在してもよく、或いは2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、或いはソフトウェア機能ユニットの形式で実現されてもよい。
前述の統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用される場合、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、基本的に本発明の技術的解決策若しくは従来技術に寄与する部分、又は技術的解決策の全部若しくは一部は、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ又はネットワークデバイスでもよく、具体的にはコンピュータデバイス内のプロセッサでもよい)に対して本発明の実施例に記載の前述の方法のステップの全部又は一部を実行するように命令する複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、磁気ディスク、光ディスク、読み取り専用メモリ(ROM、Read-Only Memory)、又はランダムアクセスメモリ(RAM、Random Access Memory)のようなプログラムコードを記憶し得るいずれかの媒体を含む。
前述の実施例は、単に本発明の技術的解決策を説明することを意図するものに過ぎず、本発明を限定することを意図するものではない。本発明について前述の実施例を参照して詳細に説明したが、当業者は、本発明の実施例の技術的解決策の精神及び範囲を逸脱することなく、依然として前述の実施例において説明した技術的解決策に変更を行ってもよく、或いはそのいくつかの技術的特徴に等価置換を行ってもよいことを認識すべきである。