"仮想機械において稼働しているアプリケーションの状態を示す情報を前記仮想機械において稼働している監視エージェントからを受信するステップと、前記受信に応答して、前記仮想機械を再起動するべきであるかどうかを判定するステップと、前記仮想機械を再起動するべきであるかどうかに関する前記判定に基づいて、前記監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを仮想化コントローラに対して送信するべきであるかどうかを判定するステップであって、前記仮想化コントローラは、前記仮想機械が前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動するように構成されており、且つ、前記ハートビートメッセージを送信するかどうかに関する前記判定は、演算装置によって実行される、ステップと、を有する方法。前記情報は、前記仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を識別しており、且つ、前記判定は、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び優先順位に基づいている請求項1に記載の方法。前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションが適切に稼働しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションに障害が発生していると識別していることに応答して、前記仮想機械を再起動するべきではないと判定するステップを更に有する請求項2に記載の方法。前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションに障害が発生しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションは適切に稼働していると識別していることに応答して、前記仮想機械を再起動するべきであると判定するステップを更に有する請求項2に記載の方法。前記判定は、意思決定エージェントによって実行され、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項2に記載の方法。前記情報が、前記アプリケーションが適切に稼働していないと識別していることに応答して、前記監視エージェントが前記アプリケーションを再起動するように試みるべきであると決定するステップを更に有し、前記アプリケーションを再起動するための前記試みは、前記仮想機械を再起動するべきであるかどうかに関する前記判定の前に、実行される請求項5に記載の方法。前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供しないように前記監視エージェントの登録を解除するべく決定するステップを更に有する請求項6に記載の方法。前記監視エージェントの登録が解除された後に、前記監視エージェントが前記アプリケーションの監視を継続するステップを更に有する請求項7に記載の方法。前記情報が、前記アプリケーションが再度オンライン状態にあると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供するように前記監視エージェントを再登録するべく決定するステップを更に有する請求項7に記載の方法。管理者から情報を受け取るステップを更に有し、前記情報は、前記アプリケーションが意図的にオフライン状態とされているのかどうか、及び、前記監視エージェントが前記アプリケーションの監視を継続するべきであるのかどうか、のうちの少なくとも1つを通知する請求項1に記載の方法。1つ又は複数のプロセッサと、前記1つ又は複数のプロセッサに結合されると共にプログラム命令を保存するメモリと、を有するシステムであって前記プログラム命令は、仮想機械において稼働しているアプリケーションの状態を示す情報を前記仮想機械において稼働している監視エージェントから受信し、前記情報の受信に応答して、前記仮想機械を再起動するべきであるかどうかを判定し、且つ、前記仮想機械を再起動するべきであるかどうかに関する前記判定に基づいて、前記監視エージェントがタイムインターバルの満了前にハートビートメッセージを仮想化コントローラに対して送信するべきであるかどうかを判定し、前記仮想化コントローラは、前記仮想機械が前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動するように構成される、ように、前記1つ又は複数のプロセッサによって実行可能である、システム。前記情報は、前記仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を識別しており、且つ、前記判定は、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び優先順位に基づいている請求項11に記載のシステム。前記プログラム命令は、前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションが適切に稼働しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションに障害が発生していると識別していることに応答して、前記仮想機械を再起動するべきではないと判定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項12に記載のシステム。前記プログラム命令は、前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションに障害が発生しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションが適切に稼働していると識別することに応答して、前記仮想機械を再起動するべきであると判定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項12に記載のシステム。プログラム命令は、意思決定エージェントを実装し、且つ、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項12に記載のシステム。前記プログラム命令は、前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想的コントローラに対してハートビートメッセージを提供しないように前記監視エージェントの登録を解除するべく決定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項11に記載のシステム。プログラム命令を有するコンピュータ可読ストレージ媒体であって、前記プログラム命令は、仮想機械内において稼働しているアプリケーションの状態を示す情報を前記仮想機械において稼働している監視エージェントから受信し、前記情報の受信に応答して、前記仮想機械を再起動するべきであるかどうかを判定し、且つ、前記仮想機械を再起動するべきかどうかに関する前記判定に基づいて、前記監視エージェントがタイムアウトインターバルの満了前に仮想化コントローラに対してハートビートメッセージを送信するべきであるかどうかを判定し、前記仮想化コントローラは、前記仮想機械が前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動させるように、構成される、ように、1つ又は複数のプロセッサによって実行可能である、媒体。前記情報は、前記仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を識別しており、且つ、前記判定は、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び優先順位に基づいている請求項17に記載のシステム。前記プログラム命令は、前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションが適切に稼働しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションに障害が発生していると識別していることに応答して、前記仮想機械を再起動するべきではないと判定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項18に記載のシステム。前記プログラム命令は、前記情報が、前記複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションに障害が発生しており、且つ、前記複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションが適切に稼働していると識別していることに応答して、前記仮想機械を再起動するべきであると判定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項18に記載のシステム。プログラム命令は、意思決定エージェントを実装し、且つ、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項18に記載のシステム。前記プログラム命令は、前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供しないように前記監視エージェントの登録を解除するべく決定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項17に記載のシステム。いくつかの仮想化システムは、1つ又は複数の装置上に実装された1つ又は複数の仮想機械を管理することができる仮想化コントローラを提供している。このような仮想化コントローラは、仮想機械と通信することが可能であり、且つ、それらの仮想機械の動作を制御することができる。いくつかの環境においては、特定の仮想機械に障害が発生した場合に、その障害が発生した仮想機械を仮想化コントローラが別の演算装置上において再起動することができるように、仮想化コントローラは、仮想機械の高可用性を提供する方式により、仮想機械を管理することもできる。しかしながら、高可用性仮想機械を提供している従来の仮想化システムにおいては、仮想機械において稼働しているアプリケーションの可用性を効果的に向上させることはできないであろう。高可用性仮想機械環境において稼働するアプリケーションの高可用性を提供するための様々なシステム及び方法が開示される。例えば、一方法は、仮想機械において稼働しているアプリケーションの状態を示す情報を仮想機械において稼働している監視エージェントから受信するステップを伴う。情報の受信に応答して、本方法は、仮想機械を再起動するべきであるかどうかを判定するステップを伴う。次いで、この判定に基づいて、本方法は、監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを仮想化コントローラに送信するべきであるかどうかを判定する。仮想化コントローラは、仮想機械がタイムアウトインターバルの満了前にハートビートメッセージを送信しない場合に、その仮想機械を再起動するように構成されている。ハートビートメッセージを送信するかどうかを判定する動作は、演算装置によって実行される。いくつかの実施形態においては、判定動作は、意思決定エージェントを実装する演算装置によって実行され、この意思決定エージェントは、その仮想機械において稼働してはいない。受信される情報は、仮想機械において稼働しているいくつかのアプリケーションのうちのそれぞれのアプリケーションの動作状態を識別することができる。仮想機械を再起動するかどうかに関する判定は、それぞれのアプリケーションの動作状態及び優先順位に基づいたものであってよい。一例として、本方法は、複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションが適切に稼働しており、且つ、複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションに障害が発生していると情報が識別していることに応答して、仮想機械を再起動するべきではないと判定することができる。或いは、この代わりに、本方法は、複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションに障害が発生しており、且つ、複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションが適切に稼働していると情報が識別していることに応答して、仮想機械を再起動するべきであると判定することができる。一実施形態においては、本方法は、アプリケーションが適切に動作していないと情報が識別していることに応答して、監視エージェントがアプリケーションの再起動をまず試みるべきであると判定することが可能であり、この場合に、アプリケーションの再起動の試みは、仮想機械を再起動するべきかどうかに関する判定の前に、実行される。本方法は、アプリケーションが意図的にオフライン状態とされていると情報が識別していることに応答して、仮想化コントローラに対してハートビートメッセージを提供しないように監視エージェントを登録解除するべく決定することができる。監視エージェントは、その監視エージェントが登録解除された後にも、アプリケーションの監視を継続することができる。本方法は、アプリケーションが再度オンライン状態にあると情報が識別していることに応答して、ハートビートメッセージを仮想化コントローラに提供するように監視エージェントを再登録するべく決定することができる。本方法は、管理者から情報を受け取るステップを伴うことができる。情報は、例えば、アプリケーションが意図的にオフライン状態とされているのかどうか、及び/又は、監視エージェントがアプリケーションの監視を継続するべきであるのかどうか、を示すことができる。システムの一例は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに結合されたメモリと、を含むことができる。メモリは、上述の方法のような方法を実行するように稼働することができるプログラム命令を保存する。同様に、このようなプログラム命令は、コンピュータ可読ストレージ媒体上に保存することもできる。以上の内容は、概要であり、且つ、従って、必然的に、詳細内容の単純化、一般化、及び省略を含んでおり、従って、当業者であれば、この概要は、例示を目的としたものに過ぎず、且つ、決して限定を意図したものと解釈するべきではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点については、以下に提供される非限定的な詳細な説明から明らかとなろう。本発明については、添付図面を参照することにより、更に十分に理解することが可能であり、且つ、その多数の目的、特徴、及び利点について、当業者に明らかとなろう。本発明には、様々な変更及び代替形態が可能であるが、添付図面及び詳細な説明には、例として、本発明の特定の実施形態が提供されている。これらの図面及び詳細な説明は、開示されている特定の形態に本発明を限定することを意図したものではないことを理解されたい。むしろ、本発明は、添付の請求項によって規定されている本発明の精神及び範囲に含まれるすべての変更形態、均等物、及び代替形態を含んでいる。図1は、仮想化システムのブロックダイアグラムである。図示のように、仮想化システムは、2つのホスト101及び102を含む。この例においては、それぞれのホストは、2つの仮想機械VirtualMachine:VMを実装している。図示のように、ホスト101は、VM301及びVM3022を実装している。同様に、ホスト102は、VM303及びVM304を実装している。代替実施形態は、この例に示されているものとは異なる数のVMをホスト当たりに実装することが可能であり、且つ、同一のシステムが、同一システム内のその他のホストとは異なる数のVMをそれぞれが実装する1つ又は複数のホストを含むことができることに留意されたい。仮想機械VM301~VM304は、それぞれ、稼働しているオペレーティングシステムの自己充足型インスタンスを提供している。同一ホスト上において稼働するVMは、同一の又は異なるオペレーティングシステムを使用して実装することができる。VMとやり取りするクライアントは、通常、独立したハードウェア上において稼働するスタンドアロンのオペレーティングシステムとやり取りするのと全く同一の方式によってやり取りすることになる。仮想機械は、PaloAlto,CAに所在するVMware,Inc.社が提供しているものなどの仮想化ソフトウェアを使用して実装することができる。アプリケーションは、それぞれのVMにおいて稼働する。このようなアプリケーションは、データベースアプリケーション、メールサーバー、又はこれらに類似したものであってよい。この場合に、アプリケーション401は、VM301において稼働しており、アプリケーション402は、VM302において稼働しており、アプリケーション403及び404は、VM303において稼働しており、且つ、アプリケーション405は、VM304において稼働している。図示のように、複数のアプリケーションが単一のVMにおいて稼働することができる。所与のVMにおいて稼働しているアプリケーションのタイプは、同一仮想化システム内の別のVMにおいて稼働しているアプリケーションのタイプと同一であっても異なっていてもよい。監視エージェント1つの特殊なタイプのアプリケーションも、それぞれのVMにおいて稼働する。それぞれの監視エージェントは、同一のVMにおいて稼働している1つ又は複数のアプリケーションの状態を監視すると共に監視対象アプリケーションの状態を意思決定エージェントに報告するように構成されている。図示のように、監視エージェント501は、VM301において稼働し、且つ、アプリケーション401の状態を監視している。監視エージェント502は、VM302において稼働し、且つ、アプリケーション402の状態を監視している。監視エージェント503は、VM303において稼働し、且つ、アプリケーション403及び404のうちのそれぞれのアプリケーションの状態を監視している。監視エージェント504は、VM304において稼働し、且つ、アプリケーション405の状態を監視している。図1は、単一の監視エージェントが複数のアプリケーションを監視することができる実施形態を示しているが、代替実施形態は、監視対象のアプリケーションと監視エージェントの間に1対1の対応関係が存在するように、VM当たり複数のエージェントを利用してもよい。監視エージェントは、所与のVMにおいて稼働しているアプリケーションのすべてではなく、その一部を監視するように構成することもできることに留意されたい。いくつかの実施形態においては、監視エージェントは、Cupertino,CAに所在するSymantec,Corp.社から入手可能なVERITASClusterServerVCSエージェントとして実装されている。このような実施形態においては、それぞれのVMは、独立した単一ノードクラスタとして構成することができる。監視エージェントは、単一ノードクラスタの監視サービスグループとして構成することができる。又、VM内のそれぞれの監視対象アプリケーションも、単一ノードクラスタのサービスグループとして構成される。監視サービスグループは、同一の単一ノードクラスタ内のその他のサービスグループの状態を監視する。意思決定エージェント別の特殊なタイプのアプリケーションは、それぞれのVMにおいて稼働する。意思決定エージェントは、1つ又は複数の対応する監視エージェントによって識別される1つ又は複数のアプリケーションの状態に基づいて、実行するべき動作が存在する場合に、実行するべき動作を判定するように、構成されている。意思決定エージェントの動作については、後程詳述する。図示されているように、意思決定エージェント601は、VM301において稼働しており、意思決定エージェント602は、VM302において稼働しており、意思決定エージェント603は、VM303において稼働しており、且つ、意思決定エージェント604は、VM304において稼働している。いくつかの実施形態においては、監視エージェント及び意思決定エージェントの機能を、それぞれのVMにおいて稼働する単一のエージェントとして組み合わせてもよい。ホスト101及び102は、仮想化コントローラ80を実装するサーバー70と例えば、ネットワークを介して通信するように結合されている。仮想化コントローラ80は、ホスト101及び102上に実装されているVMを制御している。従って、仮想化コントローラ80は、それぞれのVMの状態を監視し、それぞれのVMが適切に稼働しているかどうかを識別する。VMの障害の検出に応答して、仮想化コントローラ80は、状況を是正するための動作を実行することができる。このような動作は、同一の又は別のホスト上における障害が発生したVMの再起動又は障害に結び付く問題を矯正するための試みを含むことができる。仮想化コントローラ80は、いくつかの実施形態においては、VMwarevCenterServer商標として実装することができる。このような実施形態においては、仮想化コントローラ80は、VMwareTool商標によって提供されるハートビートチャネルを介してVMと通信することが可能であり、VMwareTool商標は、それぞれのVMにおいて設置及び稼働することができる。このような実施形態において別のホスト上においてVMを再起動するために使用されるメカニズムは、vMotion商標であってよい。これらの機能は、PaloAlto,CAに所在するVMwareInc.社によって提供されるものなどの仮想化ソフトウェアを使用して実装することができる。この場合に、仮想化コントローラ80は、それぞれのVMからのハートビートメッセージに依存してそのVMの状態を判定している。それぞれのVM上におけるアプリケーション例えば、後程詳述する監視エージェントは、仮想化コントローラ80に登録することにより、その登録されたアプリケーションがハートビートを仮想化コントローラ80に対して送信することを通知する。特定のVMからハートビートを受信している状態においては、仮想化コントローラ80は、その特定のVMから、期間タイムアウトインターバルとも呼称する当たりに1回ずつ、ハートビートを受信するものと予想する。ハートビートが所与の期間内に受信されない場合には又は、一連のハートビートが連続した期間にわたって受信されない場合には、仮想化コントローラ80は、VMに障害が発生したものと判定することになり、且つ、例えば、そのVMを別のホスト上において再起動することによって矯正動作を実行することになる。図1の仮想化環境において稼働するアプリケーションの高可用性を提供するために、それぞれの監視エージェントは、仮想化コントローラ80に登録し、そのVMのハートビートを提供することになる。従って、監視エージェント501は、登録してVM301のハートビートメッセージを提供することになり、監視エージェント502は、登録してVM302のハートビートメッセージを提供することになり、監視エージェント503は、登録してVM303のハートビートメッセージを提供することになり、且つ、監視エージェント504は、登録してVM304のハートビートメッセージを提供することになる。上述のように、監視エージェント501~504は、アプリケーションを監視し、且つ、それらのアプリケーションの状態について意思決定エージェント601~604のうちの個々の意思決定エージェントに対して報告することになる。特定のVMにおける監視対象アプリケーションの状態に基づいて、そのVM内の意思決定エージェントは、アプリケーションを再起動するべきかどうか、仮想化コントローラによるVMの監視を継続するべきかどうか、及び、VMのハートビートメッセージを送信するべきかどうかを決定することになる。次いで、意思決定エージェントは、その決定について監視エージェントに報告し、監視エージェントが、その決定された動作を実行することになる。監視エージェントと同一のVM内のそれぞれの監視対象アプリケーションごとに、監視エージェントは、そのアプリケーションが適切に稼働しているかどうかを検出することができる。少なくともいくつかの実施形態においては、監視エージェントは、稼働していないアプリケーションが、障害に起因して稼働していないのか、又は、意図的にオフライン状態とされたことに起因して稼働していないのか、を弁別することもできる。例えば、監視エージェントは、アプリケーションがオフライン状態とされていることを管理者が監視エージェントに対して通知することができるインターフェイス例えば、グラフィカルユーザーインターフェイス、コマンドラインインターフェイス、又はこれらに類似したものを提供することが可能であり、且つ、監視エージェントは、これに応答して、アプリケーションと関連する状態情報を更新し、アプリケーションが意図的にオフライン状態とされていることを通知することができる。管理者は、監視エージェントによって検出される現在の動作状態とは無関係に、任意の時点において、アプリケーションをオフライン状態としたり、又は、オンライン状態に復帰させ且つ、その動作をインターフェイスを介して識別することができることに留意されたい。アプリケーションが稼働していないことを監視エージェントが検出した際に、監視エージェントは、例えば、アプリケーションと関連付けられた保存されている情報にアクセスすることによってアプリケーションが稼働を中止する前にそのアプリケーションがオフライン状態とされたことを管理者が通知しているかどうかを確認することができる。アプリケーションが、意図的にオフライン状態とされた後に再起動された際には、管理者は、再度、例えば、インターフェイスを介してアプリケーション状態の変化について監視エージェントに通知することができる。或いは、この代わりに、監視エージェントは、単純に、アプリケーションが次のハートビート期間において再起動されたことを検出すると共にそのアプリケーションと事前に関連付けられている任意の状態情報をクリアすることもできる。従って、監視エージェントは、それぞれの監視対象アプリケーションが適切に稼働しているかどうかを識別する。適切に稼働していない場合には、監視エージェントは、少なくともいくつかの実施形態においては、アプリケーションが、障害に起因して稼働していないのか、又は、意図的にオフライン状態とされたことに起因して稼働していないのか、を更に弁別する。監視エージェントは、アプリケーション及びその検出された稼働状態について記述する情報を生成すると共にこの情報を意思決定エージェントに対して提供することができる。例えば、監視エージェント501は、アプリケーション401に障害が発生していることを検出すると共にそのアプリケーション401に障害が発生していることを示す情報を意思決定エージェント601に対して送信することができる。監視エージェントから、それぞれのアプリケーションの状態例えば、オンライン状態にある、障害状態にある、又は意図的にオフライン状態とされた状態にあるについて記述した情報を受信することに応答して、意思決定エージェントは、実行するべき動作を決定する。VM内に監視対象アプリケーションが1つしか存在していない場合には、意思決定エージェントは、そのアプリケーションが正常に稼働している場合には、仮想化コントローラがVMを再起動させないことを保証するハートビートメッセージを送信するように決定することになる。アプリケーションに障害が発生している場合には、意思決定エージェントは、ハートビートメッセージの送信を禁止するように決定し、この結果、仮想化コントローラは、その障害が発生したアプリケーションが稼働していたVMを再起動することになり、これにより、障害が発生したアプリケーションも、事実上、再起動されたVMにおいて再起動されることになる。アプリケーションが意図的にオフライン状態とされている場合には即ち、アプリケーションが稼働してはいないが、障害は発生していない場合には、意思決定エージェントは、監視エージェントが、仮想化コントローラに対してハートビートを提供しないように登録を取り消すべきであると決定することができる。監視エージェントは、登録を取り消すための要求を仮想化コントローラに対して送信することにより、登録を取り消すことができる。この登録の取り消しにより、登録を取り消されたVMは、事実上、高可用性のための監視対象VMの組から外されることになる。この結果、仮想化コントローラは、そのVMから定期的なハートビートメッセージを受け取ることを予想しなくなり、且つ、ハートビートがそのVMから受信されない際にそのVMを再起動することもなくなる。インターフェイス例えば、アプリケーションが意図的にオフライン状態とされた際に管理者が通知できるように使用されるにより、監視エージェントが再登録するべき時点を管理者が指定できるようにすることもできる。例えば、管理者は、アプリケーションがオンライン状態に復帰した際に、監視エージェントがハートビートメッセージを再登録するべきかどうかを指定することができる。例えば、アプリケーションがアップグレードのためにオフライン状態とされている際には、管理者は、登録の取り消しが一時的であるべきであると指定することができる。この代わりに、もはやサービスの提供に使用されなくなったことを理由としてアプリケーションがオフライン状態とされている場合には、管理者は、その登録の取り消しが永久的であるべきであると指定することもできる。監視エージェントは、ハートビート期間当たりに一回ずつ、それぞれの監視対象アプリケーションの状態を取得及び報告することができる。同様に、意思決定エージェントは、ハートビート期間当たりに一回ずつ、情報を受信すると共にその情報に基づいて決定を生成することができる。監視エージェントがハートビートを仮想化コントローラに送信するように登録されていない期間中においては、監視エージェントは、それにも拘わらず、アプリケーションの状態を監視すると共に意思決定エージェントに対するアプリケーションの状態に関する報告を継続することができる。同様に、期間当たりに一回ずつ、意思決定エージェントは、監視エージェントから情報を受信すると共にその情報を使用して実行するべき動作例えば、ハートビートを送信するのか、ハートビートを送信しないのか、又は、登録を取り消すのかを決定することができる。登録が取り消されている際にもアプリケーションの監視を継続することにより、監視エージェントは、アプリケーションがオンライン状態に復帰したことを検出することができる。この動作の検出に応答して、意思決定エージェントは、仮想化コントローラに対してハートビートメッセージを送信するべく監視エージェントが再登録するようにさせてもよい。複数のアプリケーションが監視されている場合には、監視エージェントは、それぞれの監視対象アプリケーションの状態について適切な意思決定エージェントに対して報告することになり、次いで、その意思決定エージェントは、それぞれのアプリケーションの状態及び優先順位に基づいて、実行するべき動作を決定する。アプリケーションの優先順位は、例えば、情報をコマンドラインインターフェイス又はグラフィカルユーザーインターフェイスを介して入力することによって管理者が構成することが可能であり、且つ、意思決定エージェントによって保存することができる。一般に、意思決定エージェントは、その決定を下す際に、相対的に低い優先順位のアプリケーションよりも相対的に高い優先順位のアプリケーションの状態に対して大きな重みを付与することになる。アプリケーションの優先順位を考慮した様々な異なるアルゴリズムのいずれかを使用することにより、このプロセスを実装することができる。例えば、単純なアルゴリズムは、単純に、最高優先順位のアプリケーションの状態を評価すると共にそのアプリケーションの状態に基づいて判定を実行することができる。最高優先順位のアプリケーションが適切に稼働している場合には、意思決定エージェントは、任意の相対的に低い優先順位のアプリケーションの状態とは無関係に、監視エージェントがハートビートを送信するべきであると決定することができる。同様に、すべての相対的に低い優先順位のアプリケーションが適切に稼働している場合にも、最高優先順位のアプリケーションに障害が発生している場合には、意思決定エージェントは、監視エージェントがハートビートメッセージを送信するべきではないと決定することができる。この例においては、すべての重みが、最高優先順位のアプリケーションの状態に対して付与されている。その他のアルゴリズムは、最高優先順位のアプリケーション以外のアプリケーションに対して重みを割り当てていない上述の例よりも大きな重みを相対的に低い優先順位のアプリケーションに対して割り当てることができる。例えば、1つのアルゴリズムは、VMにおいて監視されている障害が発生したアプリケーションの優先順位の合計をそのVM内において監視されている適切に稼働しているアプリケーションの優先順位の合計と比較することができる。障害が発生したアプリケーションに対応する合計が大きい場合には、意思決定エージェントは、ハートビートの送信を停止するように決定することができる。同様に、適切に稼働しているアプリケーションに対応する合計が大きい場合には、意思決定エージェントは、ハートビートの送信を継続するように決定することができる。合計が等しい場合には、意思決定エージェントは、一実施形態においては、ハートビートの送信を停止するように決定することができる。別のアルゴリズムは、適切に稼働している及び意図的にオフライン状態とされているアプリケーションの優先順位の合計を障害が発生しているアプリケーションの優先順位の合計と比較することができる。前者の合計が大きい場合には、意思決定エージェントは、監視エージェントがハートビートの送信を継続するようにさせることになる。後者の合計が大きい場合には、意思決定エージェントは、ハートビートの送信を妨げることになる。意思決定エージェントは、複数のアプリケーションの状態を単一のハートビート通信チャネルに圧縮することにより、事実上、複数のアプリケーションの状態を単一通信チャネル上の単一のハートビートメッセージに多重化している。この結果、本システムは、単一のハートビート通信チャネルのみであるにも拘わらず、構成された優先順位に基づいて、複数のアプリケーションの高可用性を提供することができる。上述の例において、アプリケーションに障害が発生した場合の標準的な応答は、ハートビートメッセージの送信を停止させることにより、障害が発生したアプリケーションが稼働しているVMを再起動させるというものである。その他の実施形態においては、障害が発生したアプリケーションを収容しているVMを自動的に再起動させる代わりに、意思決定エージェントは、まず、障害が発生したアプリケーションの再起動を監視エージェントが試みるべできあると決定してもよい。意思決定エージェントがVMを再起動するべきであると決定する前に、例えば、管理者がインターフェイスを介して情報を入力することにより、障害が発生したアプリケーションについてこの決定が下される回数を制御することができる再試行の試みの許容最大数によって意思決定エージェントを構成することができる。再起動のための時間をアプリケーションに付与するために、意思決定エージェントは、監視エージェントがアプリケーションの再起動を試みている際に仮想化コントローラへの登録を取り消すように、監視エージェントに対して指示してもよい。上述のように、それぞれの意思決定エージェントを制御するために使用される様々な情報は、管理者が情報をインターフェイスを介して入力することによって構成することができる。この情報は、VMごとに、且つ、アプリケーションごとに、変化することができる。従って、1つのVMにおいて、管理者は、別のVMにおいてアプリケーションAのインスタンスに対して割り当てられているものよりも高い優先順位をアプリケーションAに付与するように、選択することができる。図2は、可視化システムの別の例を示している。この例は、意思決定エージェントが監視エージェントとは異なる演算装置上において稼働するように、監視エージェントと意思決定エージェントの機能を分離する方法を示している。更には、この例は、監視エージェントと意思決定エージェントの間に1対1の対応関係が存在する必要がないことをも示している。図2の例においては、サーバー70及びホスト101及び102は、図1に示されているものと同様の方式によって構成されている。但し、それぞれのVMにおいて稼働する独立した意思決定エージェントの代わりに、別個の意思決定エージェント60が演算装置90上において稼働しており、この演算装置90は、ホスト101及び102と通信するように結合されている。この例においては、それぞれの監視エージェント501~504は、その監視エージェントによって生成された情報を単一の意思決定エージェント60に対して送信するように構成されており、次いで、この単一の意思決定エージェント60が、上述のもののような技法を使用することにより、その情報を処理し、決定を生成する。次いで、意思決定エージェント60は、その決定を表す情報を適切な監視エージェントに対して返す。例えば、アプリケーション403よりも高い優先順位を有するアプリケーション404に障害が発生したことを通知する情報を監視エージェント503から受信するのに応答して、意思決定エージェント60は、監視エージェント503が、仮想化コントローラ70へのハートビートメッセージの送信を停止するべきであると決定することができる。この決定を識別する情報の受信に応答して、監視エージェント503は、仮想化コントローラ80へのハートビートメッセージの送信を中止することになり、その結果、仮想化コントローラ80は、VM303を異なるホスト例えば、ホスト101上において再起動することになる。図1の例と同様に、管理者は、それぞれのVM上の異なるアプリケーションが様々な優先順位を有するように、意思決定エージェント60を構成することができる。管理者は、それぞれのアプリケーションごとに、且つ、それぞれのVMごとに、異なる情報を提供することができる。意思決定エージェントは、監視エージェントがそれに基づいて情報を送信した監視エージェントから受け取った情報の所与の組を処理するために使用する優先順位及びその他の情報例えば、障害が発生したアプリケーションが稼働しているVMをフェイルオーバーするように決定する前にアプリケーションの再起動を試みる回数などを選択することができる。従って、監視エージェント501からの情報の受信に応答して、意思決定エージェント60は、VM301と関連する情報を使用して受信情報を処理するように選択することができる。図3は、仮想化環境において高可用性アプリケーションを提供する方法を示している。この方法は、意思決定エージェントとの関連において動作する監視エージェントによって実行することができる。上述のように、これらのコンポーネントは、互いに同一の演算装置上において稼働してもしなくてもよい。本方法は、300に示されているように、仮想機械において稼働している監視エージェントが仮想機械において稼働しているアプリケーションの状態を検出した際に始まる。動作300の実行は、監視サービスグループエージェントが、監視対象のアプリケーションを含む別のサービスグループの状態を監視するステップを伴ってもよい。動作300の結果を表す情報を監視エージェントから意思決定エージェントに送信することが可能であり、意思決定エージェントは、監視エージェントと統合してもしなくてもよい。305の判定において、監視対象アプリケーションが適切に稼働している場合には、310に示されているように、仮想機械を監視している仮想化コントローラに対してハートビートメッセージを提供するように監視エージェントが現在登録されているかどうかについての判定を実行することができる。動作305及び310は、監視エージェントによって生成された情報を処理する意思決定エージェントによって実行することができる。ハートビートメッセージを提供するように監視エージェントが現在登録されていない場合には、監視エージェントは、315に示されているように、ハートビートメッセージを提供するように登録され、且つ、その結果、現在の期間においてハートビートを送信することになる。監視エージェントがハートビートを提供するように現在登録されている場合には、320に示されているように、監視エージェントは、ハートビートメッセージを現在の期間において仮想化コントローラに対して送信することになる。動作315及び320の実行は、意思決定エージェントが、実行する動作を決定し、且つ、その決定を監視エージェントに伝達するステップと、次いで、監視エージェントが、意思決定エージェントによって選択された動作を実行するステップと、を伴うことができる。アプリケーションが適切に稼働していない場合には、325に示されているように、アプリケーションに障害が発生しているのか、又は、意図的にオフライン状態とされているか、に関する決定が実行される。動作325の実行は、例えば、意図的にオフライン状態とされているアプリケーションの場合には、管理者が入力した情報を使用することによって監視エージェントがアプリケーションの状態を検出するステップと、意思決定エージェントがその情報を処理するステップと、を伴うことができる。アプリケーションに障害が発生している場合には、監視エージェントは、340及び345に示されているように、未だ登録されていない場合にはハートビートを提供するように登録されることになる。この結果、監視エージェントは、330に示されているように、ハートビートメッセージを仮想化コントローラに対して送信しないことになる。一方、アプリケーションが意図的にオフライン状態とされている場合には、監視エージェントは、335に示されているように、仮想化コントローラにハートビートを送信しないように登録解除されることになる。動作330及び335の実行は、意思決定エージェントが、実行するべき動作を決定し、且つ、その決定を監視エージェントに対して伝達するステップと、次いで、監視エージェントが、意思決定エージェントによって選択された動作を実行するステップと、を伴うことができる。図3の方法及び、同様に、後述する図4の方法は、ハートビート期間当たりに一回ずつ、反復することができる。従って、一例として、1つの期間において、アプリケーションは、適切に動作していると検出される可能性があり、且つ、次の期間において、同一のアプリケーションが、意図的にオフライン状態とされていると検出される可能性がある。これに応答して、監視エージェントの登録を取り消すことができる。この後のいくつかの期間において、アプリケーションは、再度、オンライン状態にあると検出される可能性があり、従って、監視エージェントを、再度、ハートビートを提供するように登録することができる。この後のある時点において、監視エージェントは、アプリケーションに障害が発生していることを検出する可能性があり、その結果、監視エージェントは、ハートビートの送信を中止することにより、アプリケーションが稼働している仮想機械を再起動させることによってアプリケーションを再起動させることができる。図4は、仮想化環境において複数のアプリケーションの高可用性を提供する方法の一例である。図3の方法と同様に、この方法は、意思決定エージェントとの関連において動作している監視エージェントによって実行することができる。図3の方法は、監視エージェントが、監視エージェントと同一の仮想機械において稼働しているいくつかの監視対象アプリケーションのうちのそれぞれのアプリケーションの動作状態例えば、適切に稼働している、障害が発生している、又は意図的にオフライン状態とされているを検出した際に400において始まる。意思決定エージェントが、例えば、管理者が入力した構成情報に対してアクセスすることによって監視対象アプリケーションのうちのそれぞれのアプリケーションの優先順位を検出することもできる。405において、意思決定エージェントは、アプリケーションの動作状態を識別する情報と、優先順位と、を使用し、1つ又は複数のアプリケーションの望ましい組が適切に稼働しているかどうかを判定する。意思決定エージェントは、この決定を下すために、上述のアルゴリズムのうちの1つを、又は、アプリケーションの優先順位を考慮した任意のその他のアルゴリズムを使用することができる。望ましいアプリケーションが稼働しており、且つ、監視エージェントが、仮想化コントローラに対して仮想機械のハートビートを提供するように現在登録されている場合には、意思決定エージェントは、420に示されているように、監視エージェントが現在の期間においてハートビートメッセージを送信するべきであると決定する。監視エージェントが、現在登録されていない場合には、監視エージェントは、登録され415、且つ、その結果、ハートビートメッセージを送信することになる420。望ましいアプリケーションが適切に稼働していない場合には、意思決定エージェントは、425に示されているように、例えば、最高優先順位のアプリケーションの動作状態を調べることにより、障害が発生した及び意図的にオフライン状態とされたアプリケーションの優先順位の合計を比較することにより、又は、これらに類似したものにより望ましいアプリケーションに障害が発生しているのか、又は、意図的にオフライン状態とされているのか、を判定することができる。望ましいアプリケーションに障害が発生している場合には、監視エージェントは、440及び445に示されているように、未だ登録されていない場合にはハートビートを提供するように登録されることになる。意思決定エージェントは、監視エージェントが現在の期間においてハートビートメッセージを送信しないようにさせることが可能であり430、この結果、仮想化コントローラは、障害が発生したアプリケーションが稼働していたVMを別のホスト上において再起動させることになる。一方、望ましいアプリケーションが意図的にオフライン状態とされている場合には、意思決定エージェントは、435に示されているように、監視エージェントが仮想化コントローラとの登録を取り消すようにすることができる。図5は、上述の監視エージェント及び/又は意思決定エージェントを実装する能力を有する演算システム510のブロックダイアグラムである。演算システム510は、コンピュータ可読命令を実行する能力を有する任意のシングル又はマルチプロセッサ演算装置又はシステムを概略的に表している。演算システム510の例は、限定を伴うことなしに、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアントサイド端末、サーバー、分散型演算システム、ハンドヘルド型装置例えば、パーソナルデジタルアシスタント及び携帯電話機、ネットワーク装置、ストレージコントローラ例えば、アレイコントローラ、テープドライブコントローラ、又はハードドライブコントローラ、及びこれらに類似したものを含む様々な装置のうちの任意の1つ又は複数の装置を含む。その最も基本的な構成においては、演算システム510は、少なくとも1つのプロセッサ514と、システムメモリ516と、を含んでもよい。監視エージェント及び/又は意思決定エージェントを実装するソフトウェアを実行することにより、演算システム510は、仮想化環境における1つ又は複数のアプリケーションの高可用性を提供するように構成された特殊目的演算装置となる。プロセッサ514は、データを処理する又は命令を解釈及び実行する能力を有する任意のタイプ又は形態の処理ユニットを概略的に表している。特定の実施形態においては、プロセッサ514は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態の機能をプロセッサ514に実行させてもよい。例えば、プロセッサ514は、本明細書に記述されている動作を実行してもよいと共に/又は実行するための手段であってもよい。又、プロセッサ514は、本明細書に記述及び/又は図示されている任意のその他の動作、方法、又はプロセスを実行してもよいと共に/又は実行するための手段であってもよい。システムメモリ516は、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態の揮発性又は不揮発性のストレージ装置又は媒体を概略的に表している。システムメモリ516の例は、限定を伴うことなしに、ランダムアクセスメモリRAM、読み出し専用メモリROM、フラッシュメモリ、又は任意のその他の適切なメモリ装置を含む。必須ではないが、特定の実施形態においては、演算システム510は、揮発性のメモリユニット例えば、システムメモリ516などと不揮発性のストレージ装置例えば、後程詳述する主ストレージ装置532などの両方を含んでもよい。一例においては、監視エージェント50例えば、図5及び図2の監視エージェント501~504のうちの1つ又は意思決定エージェント60例えば、図1の意思決定エージェント601~604のうちの1つ又は図2の意思決定エージェント60の1つ又は複数をシステムメモリ516内に読み込んでもよい。特定の実施形態においては、演算システム510は、プロセッサ514及びシステムメモリ516に加えて、1つ又は複数のコンポーネント又は要素も含んでもよい。例えば、図5に示されているように、演算システム510は、メモリコントローラ518、入出力I/Oコントローラ520、及び通信インターフェイス522を含んでもよく、これらのそれぞれは、通信インフラストラクチャ512を介して相互接続されてもよい。通信インフラストラクチャ512は、演算装置の1つ又は複数のコンポーネントの間の通信を促進する能力を有する任意のタイプ又は形態のインフラストラクチャを概略的に表している。通信インフラストラクチャ512の例は、限定を伴うことなしに、通信バスISAIndustryStandardArchitecture、PCIPeripheralComponentInterconnect、PCIePCIexpress、又はこれらに類似したバスなどと、ネットワークと、を含む。メモリコントローラ518は、メモリ又はデータを処理するか又は演算システム510の1つ又は複数のコンポーネント間における通信を制御する能力を有する任意のタイプ又は形態の装置を概略的に表している。例えば、特定の実施形態においては、メモリコントローラ518は、プロセッサ514、システムメモリ516、及びI/Oコントローラ520の間における通信を通信インフラストラクチャ512を介して制御してもよい。特定の実施形態においては、メモリコントローラ518は、単独で又はその他の要素との組合せにおいて、本明細書に記述及び/又は図示されている動作又は機能のうちの1つ又は複数を実行してもよいと共に/又はこれを実行するための手段であってもよい。I/Oコントローラ520は、演算装置の入出力機能を調整及び/又は制御する能力を有する任意のタイプ又は形態のモジュールを概略的に表している。例えば、特定の実施形態においては、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インターフェイス522、ディスプレイアダプタ526、入力インターフェイス530、及びストレージインターフェイス534などの演算システム510の1つ又は複数の要素の間のデータの転送を制御又は促進してもよい。通信インターフェイス522は、演算システム510と1つ又は複数の更なる装置の間の通信を促進する能力を有する任意のタイプ又は形態の通信装置又はアダプタを概略的に表している。例えば、特定の実施形態においては、通信インターフェイス522は、演算システム510と更なる演算システムを含むプライベート又はパブリックネットワークの間の通信を促進してもよい。通信インターフェイス522の例は、限定を伴うことなしに、有線ネットワークインターフェイスネットワークインターフェイスカードなど、無線ネットワークインターフェイス無線ネットワークインターフェイスカードなど、モデム、及び任意のその他の適切なインターフェイスを含む。少なくとも1つの実施形態においては、通信インターフェイス522は、インターネットなどのネットワークに対する直接リンクを介してリモートサーバーに対する直接接続を提供してもよい。又、通信インターフェイス522は、例えば、ローカルエリアネットワークEthernetネットワークなど、パーソナルエリアネットワーク、電話又はケーブルネットワーク、セルラー電話接続、衛星データ接続、又は任意のその他の適切な接続を通じて、このような接続を間接的に提供してもよい。又、特定の実施形態において、通信インターフェイス522は、演算システム510と1つ又は複数の更なるネットワーク又はストレージ装置の間の通信を外部バス又は通信チャネルを介して促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例は、限定を伴うことなしに、SCSISmallComputerSystemInterfaceホストアダプタ、USBUniversalSerialBusホストアダプタ、IEEEInstituteofElectricalandElectronicsEngineers1394ホストアダプタ、SATASerialAdvancedTechnologyAttachment及びeSATAexternalSATAホストアダプタ、ATAAdvancedTechnologyAttachment及びPATAParallelATAホストアダプタ、FibreChannelインターフェイスアダプタ、Ethernetアダプタ、又は、これらに類似したものを含む。通信インターフェイス522は又、演算システム510が分散又はリモート演算に関与することを許容してもよい。例えば、通信インターフェイス522は、リモート装置から命令を受信しても、実行のためにリモート装置に対して命令を送信してもよい。図5に示されているように、演算システム510は、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合された少なくとも1つの表示装置524も含んでもよい。表示装置524は、ディスプレイアダプタ526によって転送された情報を視覚的に表示する能力の有る任意のタイプ又は形態の装置を概略的に表している。同様に、ディスプレイアダプタ526は、表示装置524上における表示ために通信インフラストラクチャ512から又は、当技術分野において既知のように、フレームバッファからグラフィックス、テキスト、及びその他のデータを転送するように構成された任意のタイプ又は形態の装置を概略的に表している。図5に示されているように、演算システム510は、入力インターフェイス530を介して通信インフラストラクチャ512に結合された少なくとも1つの入力装置528も含んでもよい。入力装置528は、コンピュータ又は人間によって生成された入力を演算システム510に提供する能力を有する任意のタイプ又は形態の入力装置を概略的に表している。入力装置528の例は、限定を伴うことなしに、キーボード、ポインティング装置、音声認識装置、又は任意のその他の入力装置を含む。図5に示されているように、演算システム510は、ストレージインターフェイス534を介して通信インフラストラクチャ512に結合された主ストレージ装置532及びバックアップストレージ装置533も含んでもよい。ストレージ装置532及び533は、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。例えば、ストレージ装置532及び533は、磁気ディスクドライブ例えば、所謂ハードドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、又はこれらに類似したものであってよい。ストレージインターフェイス534は、ストレージ装置532及び533と演算システム510のその他のコンポーネントの間においてデータを転送するための任意のタイプ又は形態のインターフェイス又は装置を概略的に表している。主ストレージ装置532のようなストレージ装置は、構成情報590例えば、上述のアプリケーションの優先順位及びアプリケーション当たりの再試行の試みの数を示す構成情報などの情報を保存することができる。特定の実施形態においては、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読情報を保存するように構成された着脱自在のストレージユニットとの間において読取り及び/又は書込みを実行するように構成してもよい。適切な着脱自在のストレージユニットの例は、限定を伴うことなしに、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、又はこれらに類似したものを含む。又、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読命令を演算システム510に読み込むことができるようにするためのその他の類似の構造又は装置を含んでもよい。例えば、ストレージ装置532及び533は、ソフトウェア、データ、又はその他のコンピュータ可読情報の読取り及び書込みを実行するように構成してもよい。又、ストレージ装置532及び533は、演算システム510の一部であってもよく、又は、その他のインターフェイスシステムを通じてアクセスされる別個の装置であってもよい。多くのその他の装置又はサブシステムを演算システム510に接続してもよい。逆に、本明細書に記述及び/又は図示されている実施形態を実施するために、図5に示されているコンポーネント及び装置のすべてが存在する必要はない。又、以上において参照した装置及びサブシステムは、図5に示されているものとは異なる方法によって相互接続してもよい。演算システム510は又、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を利用してもよい。例えば、本明細書に開示されている実施形態のうちの1つ又は複数をコンピュータ可読ストレージ媒体上のコンピュータプログラムコンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御ロジックとも呼称されるとして符号化してもよい。コンピュータ可読ストレージ媒体の例は、磁気ストレージ媒体例えば、ハードディスクドライブ及びフロッピーディスク、光ストレージ媒体例えば、CD-ROM又はDVD-ROM、電子ストレージ媒体例えば、半導体ドライブ及びフラッシュ媒体、及びこれらに類似したものを含む。又、このようなコンピュータプログラムは、メモリ内における保存のために、インターネットなどのネットワークを介して、又は、担持媒体上において、演算システム510に転送することもできる。コンピュータプログラムを収容するコンピュータ可読媒体を演算システム510に装着してもよい。次いで、コンピュータ可読媒体上に保存されているコンピュータプログラムのすべて又は一部をシステムメモリ516及び/又はストレージ装置532及び533の様々な部分に保存してもよい。演算システム510に読み込まれたコンピュータプログラムは、プロセッサ514によって実行された際に、プロセッサ514が本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態の機能を実行するようにさせてもよいと共に/又は実行するための手段となるようにさせてもよい。更には、或いは、この代わりに、本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数をファームウェア及び/又はハードウェアとして実装してもよい。例えば、演算システム510は、本明細書に開示されている実施形態のうちの1つ又は複数を実装するように適合されたASICApplicationSpecificIntegratedCircuitとして構成してもよい。図6は、クライアントシステム610、620、及び630並びにサーバー640及び645をネットワーク650に結合してもよいネットワークアーキテクチャ600のブロックダイアグラムである。クライアントシステム610、620、及び630は、図5の演算システム510などの任意のタイプ又は形態の演算装置又はシステムを概略的に表している。同様に、サーバー640及び645は、様々なデータベースサービスを提供すると共に/又は特定のソフトウェアアプリケーションを稼働させるように構成されたアプリケーションサーバー又はデータベースサーバーなどの演算装置又はシステムを概略的に表している。ネットワーク650は、例えば、イントラネット、ワイドエリアネットワークWAN、ローカルエリアネットワークLAN、パーソナルエリアネットワークPAN、又はインターネットを含む任意の通信又はコンピュータネットワークを概略的に表している。一例においては、クライアントシステム610、620、及び/又は630並びに/若しくはサーバー640及び/又は645は、図1及び図2に示されているように、監視エージェント及び/又は意思決定エージェントを含んでもよい。図6に示されているように、1つ又は複数のストレージ装置6601~660Nをサーバー640に対して直接的に装着してもよい。同様に、1つ又は複数のストレージ装置6701~670Nをサーバー645に対して直接的に装着してもよい。ストレージ装置6601~660N及びストレージ装置6701~670Nは、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。特定の実施形態においては、ストレージ装置6601~660N及びストレージ装置6701~670Nは、NFSNetworkFileSystem、SMBServerMessageBlock、又はCIFSCommonInternetFileSystemなどの様々なプロトコルを使用してサーバー640及び645と通信するように構成されたNASNetwork-AttachedStorage装置を表してもよい。又、サーバー640及び645をSANStorageAreaNetworkファブリック680に接続してもよい。SANファブリック680は、複数のストレージ装置の間の通信を促進する能力を有する任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを概略的に表している。SANファブリック680は、サーバー640及び645、複数のストレージ装置6901~690N、及び/又はインテリジェットストレージアレイ695の間の通信を促進してもよい。又、SANファブリック680は、装置6901~690N及びアレイ695が、クライアントシステム610、620、及び630にとって、ローカルに装着された装置として見えるように、クライアントシステム610、620、及び630、及びストレージ装置6901~690N、並びに/又はインテリジェントストレージアレイ695の間の通信をネットワーク650並びにサーバー640及び645を介して促進してもよい。ストレージ装置6601~660N及びストレージ装置6701~670Nと同様に、ストレージ装置6901~690N及びインテリジェントストレージアレイ695も、データ及び/又はその他のコンピュータ可読媒体命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。特定の実施形態においては、且つ、図5の演算システム510を参照すれば、図5の通信インターフェイス522などの通信インターフェイスを使用し、それぞれのクライアントシステム610、620、及び630とネットワーク650の間の接続を提供してもよい。クライアントシステム610、620、及び630は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用することにより、サーバー640又は645上の情報に対してアクセスすることができてもよい。このようなソフトウェアは、クライアントシステム610、620、及び630が、サーバー640、サーバー645、ストレージ装置6601~660N、ストレージ装置6701~670N、ストレージ装置6901~690N、又はインテリジェットストレージアレイ695によってホスティングされたデータに対してアクセスできるようにしてもよい。図6は、データを交換するためのネットワークインターネットなどの使用法を示しているが、本明細書に記述及び/又は図示されている実施形態は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。少なくとも一実施形態においては、本明細書に開示されている実施形態のうちの1つ又は複数の実施形態のすべて又は一部をコンピュータプログラムとして符号化してもよく、且つ、サーバー640、サーバー645、ストレージ装置6601~660N、ストレージ装置6701~670N、ストレージ装置6901~690N、インテリジェントストレージアレイ695、又はこれらの任意の組合せに読み込んでもよく、且つ、これらによって実行してもよい。又、本明細書に開示されている実施形態のうちの1つ又は複数の実施形態のすべて又は一部をコンピュータプログラムとして符号化してもよく、サーバー640内に保存してもよく、サーバー645によって実行してもよく、且つ、ネットワーク650上においてクライアントシステム610、620、及び630に分配してもよい。いくつかの例においては、図1のシステム100のすべて又は一部は、クラウド演算の又はネットワークに基づいた環境の一部を表してもよい。クラウド演算環境は、様々なサービス及びアプリケーションをインターネットを介して提供してもよい。これらのクラウドに基づいたサービス例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなどには、ウェブブラウザ又はその他のリモートインターフェイスを通じてアクセス可能であってよい。本明細書に記述されている様々な機能は、リモートデスクトップ環境又は任意のその他のクラウドに基づいた演算環境を通じて提供してもよい。更には、本明細書に記述されているコンポーネントの1つ又は複数は、データ、物理的装置、及び/又は物理的装置の表現を1つの形態から別の形態に変換してもよい。例えば、監視エージェントとの関連において動作する意思決定エージェントは、ハートビートメッセージの送信を制御することにより、仮想機械を別のホスト上において再起動させるように、仮想化システムの構成を変換してもよい。以上、いくつかの実施形態との関連において、本発明について説明したが、本発明は、本明細書に記述されている特定の形態に限定されるものと解釈してはならない。逆に、本発明は、添付の請求項によって規定された本発明の範囲に合理的に含まれうる代替形態、変形形態、及び均等物も含むものと解釈されたい。"