全体的に説明すると、本開示は、プログラム実行サービス(PES)プラットフォームの1つ以上のリモートデータセンターコンピュータによってホストされる1つ以上のクライアントコンピューティングデバイスと仮想デスクトップインスタンスとの間のリモートコンピューティングセッションの生成及び管理を対象とする。いくつかのデータセンターは、PESの顧客によってデータセンターのリソースの利用を促進することができる単一のPESプラットフォームの一部として組織され得る。いくつかの実施形態において、PESは、数百または数千のデータセンターコンピュータを含み得る。
本開示の態様は、PESプラットフォームによる仮想デスクトップインスタンスの管理に関して説明される。クライアントコンピューティングデバイスは、1つ以上のリモートコンピューティングセッション中に、仮想デスクトップインスタンスにアクセスすることができる。仮想デスクトップインスタンスは、クライアントデスクトップ環境の全ての能力であるが、クライアントによってアクセスされるサービスの集中化した供給をユーザに提供することができる。
第1の実例となる実施例を参照すると、ユーザは、クライアントコンピューティングデバイスを介して、リモートコンピューティングアプリケーション等のアプリケーションをロードする要求を伝送する。要求を受け取った後に、クライアントコンピューティングデバイスは、PESプラットフォームと通信して、リモートコンピューティングセッションを開始する。一実施形態において、クライアントコンピューティングデバイスとPESプラットフォームとの間の通信は、ログイン情報を含み得る。他の実施形態において、通信はまた、リソース使用量情報、処理要件、またはクライアントコンピューティングデバイスのユーザ用のリモートコンピューティングセッションの持続時間もしくは条件に関する規則を識別する情報も含み得る。クライアントコンピューティングデバイスはさらに、現在または将来のデバイスリソース(例えば、処理パワー、メモリ、記憶装置、ネットワーク使用量等)の可用性が挙げられるが、それらに限定されない、デバイス状態に関連する種々の情報を通信し得る。受け取った情報を使用することで、PESプラットフォームは、1つ以上のリモートコンピューティングセッションにおいて実行するための、1つ以上の仮想デスクトップインスタンスを識別し得る。1つの実施例において、PESプラットフォームは、データセンターコンピュータ上の仮想マシンインスタンスをインスタンス化するか、またはインスタンス化させることができる。仮想マシンインスタンスは、オペレーティングシステムを含む。次いで、クライアントコンピューティングデバイスは、仮想マシンとのリモートコンピューティングセッションを確立することができ、そして、オペレーティングシステムのユーザインターフェース(例えば、グラフィカルユーザインターフェース、音声等のオペレーティングシステムの出力)をクライアントコンピューティングデバイスに送り、ユーザに提示することができる(例えば、グラフィカルユーザインターフェースが、クライアントコンピューティングデバイスのディスプレイ上にレンダリングされる)。オペレーティングシステムは、ユーザと関連付けられ、PESがアクセスできるデスクトップストアに記憶されるデスクトッププロファイルを使用して、デスクトップ背景、スクリーンセーバー、デスクトップレイアウト、ポインタ選好、音声設定、等を設定することによって、ユーザの仮想デスクトップインスタンスを構成し得る。次いで、マウス及びキーボードの活動等のユーザ入力を仮想マシンに送り、そして、該活動があたかも仮想マシンにおいてユーザによって直接行われているかのように、オペレーティングシステムに導入することができる。
PESプラットフォームは、リモートコンピューティングセッション中に、クライアントコンピューティングデバイスと、クライアントコンピューティングデバイス上の仮想デスクトップインスタンスとの相互作用と関連付けられるデータを受け取り得るか、または生成し得る。データとしては、ユーザのデータ及び選好、ファイル等が挙げられ得る。データを受け取ると、PESプラットフォームは、仮想デスクトップインスタンスと関連付けられるデスクトップストアにデータを保存し得る。いくつかの実施形態において、デスクトップストアは、ボリュームに、または別の論理ブロック記憶デバイスに実装され得る。いくつかの実施形態において、PESは、データのバックアップコピーを作成し得るか、またはさらに、中央リポジトリにデータを記憶し得る。次いで、保存したデータを、仮想デスクトップインスタンス、仮想デスクトップインスタンスをホストするサーバ、ネットワーク等の不具合等の不具合のため遮断されている、リモートコンピューティングセッションを回復するために使用し得る。ユーザデータを保存することによって、PESプラットフォームは、リモートコンピューティングセッションの再確立が、クライアントコンピューティングデバイスのユーザに対する最小の遅延及び途絶で起こることを確実にする。
別の実例となる実施例において、提供された仮想デスクトップインスタンスは、PESのユーザプロファイルストアに記憶されたユーザプロファイルに従って構成され得る。仮想デスクトップインスタンスの構成はまた、監視されたインスタンスの使用に従っても調整され得る。いくつかの実施例において、ユーザプロファイルは、ユーザの使用を管理するエンティティと関連付けられる管理者によって設定され得る。ユーザプロファイルは、1つ以上の仮想デスクトップインスタンスを実行するPESコンピュータと関連付けられる種々のメモリ及び処理要件、ならびに仮想デスクトップインスタンスの要件を示し得る。例えば、ユーザプロファイルは、ユーザが仮想デスクトップインスタンスを使用している間にアクセスが与えられるプログラムを示し得る。ユーザプロファイルはまた、リモートコンピューティングセッションと関連付けられる最長時間またはコストも示し得る。PESは、仮想デスクトップインスタンスを配置し、構成するときに、ユーザのユーザプロファイルを考慮し得る。加えて、配置及び構成の決定はまた、経時的なユーザと仮想デスクトップとの相互作用に基づいても調整され得る。
別の実例となる実施例において、PESプラットフォームは、PESプラットフォームのデータセンターコンピュータの1つ以上にあるクライアントコンピューティングデバイスのコンピューティング環境のバックアップコピーを提供するために使用され得る。その後に、PESプラットフォームによる新しいリモートコンピューティングセッションの開始時に、クライアントコンピューティングデバイスに不正アクセスが生じた場合は、元々使用されていたクライアントコンピューティングデバイスのコンピューティング環境のバックアップコピーをユーザが利用できるようにされ得る。新しいリモートコンピューティングセッションにおいて、ユーザは、同じまたは別のクライアントコンピューティングデバイスからPESプラットフォームに接続され得る。
さらに別の実例となる実施例において、クライアントコンピューティングデバイスとPESプラットフォームとの間のリモートコンピューティングセッションは、クライアントコンピューティングデバイス上で実行される、あるバージョンの仮想デスクトップインスタンスを提供するために使用され得る。インスタンスのバージョンは、クライアントコンピューティングデバイスのオペレーティングシステム、メモリ、及び処理パワー仕様のうちの1つ以上に従って適合され得る。クライアントコンピューティングデバイスにコピーされた適合バージョンの仮想デスクトップインスタンスによって、デバイスは、PESプラットフォームからの接続解除後であっても、仮想デスクトップインスタンスとの相互作用を継続し得る。その後に、PESプラットフォームに再接続すると、新しい仮想デスクトップインスタンスが、クライアントコンピューティングデバイス上で実行される以前の仮想デスクトップインスタンスと同期され得る。
本開示で説明される実施形態の態様は、例示の目的で、仮想デスクトップインスタンス等のソフトウェアアプリケーションに対応する1つ以上のリモートセッションの管理を説明し得るが、当業者は、本明細書で開示される技法が、オペレーティングシステムのプロセス及びサービスが挙げられるが、それらに限定されない、任意の数のソフトウェアプロセスに適用され得ることを認識するであろう。さらに、本開示の種々の態様は、実例となる実施例及び実施形態に関して説明されているが、当業者は、開示される実施形態及び実施例が、限定するものとして解釈されるべきではないことを認識するであろう。
図1は、通信ネットワーク104を介してサービスプロバイダコンピュータネットワーク105と通信しているクライアントコンピューティングデバイス106を含む、ネットワーク化されたコンピューティング環境100の実例となるブロック図である。クライアントコンピューティングデバイス106は、リモートオペレーティングシステム及びアプリケーションへのアクセスをユーザに提供するために使用され得る。実例となる実施形態において、クライアントコンピューティングデバイス106は、パーソナルコンピューティングデバイス、ラップトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、ターミナルコンピューティングデバイス、モバイルデバイス(例えば、携帯電話、タブレットコンピューティングデバイス、電子ブックリーダー等)、無線デバイス、種々の電子デバイス及び機器、ならびに等を含む、多種多様なコンピューティングデバイスに対応することができる。実例となる実施形態において、クライアントコンピューティングデバイス106は、ワイドエリアネットワークまたはローカルエリアネットワーク等の通信ネットワーク104を通じて通信を確立するための、必要なハードウェア及びソフトウェア構成要素を含む。例えば、クライアントコンピューティングデバイス106には、インターネットまたはイントラネットを介して通信を促進する、ネットワーク機器及びブラウザソフトウェアアプリケーションが装備され得る。クライアントコンピューティングデバイス106は、中央処理ユニット及びアーキテクチャ、メモリ、大容量記憶装置、グラフィックス処理ユニット、通信ネットワークの可用性、及び帯域幅等の、様々なローカルコンピューティングリソースを有し得る。
一実施形態において、クライアントコンピューティングデバイス106は、リモートコンピューティングアプリケーション130を動作させ得る。リモートコンピューティングアプリケーション130は、サービスプロバイダコンピュータネットワーク105によってホストされる仮想デスクトップインスタンスへのアクセスを要求し得る。リモートコンピューティングアプリケーション130はまた、クライアントコンピューティングデバイス106とサービスプロバイダコンピュータネットワーク105との間のリモートコンピューティングセッションも管理し得る。図1の参照をさらに続けると、サービスプロバイダコンピュータネットワーク105はまた、PESプラットフォーム102も含むことができる。図1で例示されるPESプラットフォーム102は、サービスプロバイダと関連付けられる1つ以上のデータセンターの論理的関連付けに対応する。PESプラットフォーム102は、例えばデータセンターコンピュータ110等の、いくつかのデータセンターコンピュータと関連付けることができる。各データセンターコンピュータ110は、1つ以上の仮想デスクトップインスタンス114をホストし得る。データセンターコンピュータ110は、物理デバイス上で仮想マシンを実行することによって、仮想デスクトップインスタンスをホストし得る。仮想マシンは、仮想デスクトップインスタンスを作成するために、オペレーティングシステム及びアプリケーションソフトウェアのインスタンスを実行し得る。PES102によって実行される各仮想デスクトップインスタンスは、1つ以上のクライアントコンピューティングデバイスによってアクセスすることができる。
実例として、データセンターコンピュータは、サービスプロバイダコンピュータネットワーク105内のIPアドレス等のプライベートネットワークアドレスと関連付けられ得、よって、該データセンターコンピュータは、クライアントコンピューティングデバイス106によって直接アクセスできない場合がある。仮想デスクトップインスタンスは、サービスプロバイダコンピュータネットワーク105のエッジのゲートウェイによって利用できるようにされ得る、パブリックネットワークアドレスと関連付けられ得る。故に、仮想デスクトップインスタンスは、パブリックネットワークアドレスを介して、クライアントコンピューティングデバイスによって直接アドレス指定可能であり得る。当業者は、各データセンターコンピュータ110が、複数の仮想デスクトップインスタンスを実行するために、または仮想デスクトップインスタンスを動的にインスタンス化するために、物理的コンピューティングデバイスリソース及びソフトウェアを含むことを認識するであろう。そのようなインスタンス化は、クライアントコンピューティングデバイス106から等の、特定の要求に基づくことができる。
データセンターコンピュータ110は、インスタンスマネージャ122を含み得る。インスタンスマネージャ122は、それぞれのインスタンス114と同じコンピュータ上に、または別個のコンピュータ上にあり得る。インスタンスマネージャ122は、データセンターコンピュータ110上で実行されるインスタンスの進捗を追跡し、クライアントコンピューティングデバイスを介してインスタンス114と相互作用している間にユーザによって作成されるデータの記憶を監視及び調整し、また、データセンターコンピュータ110の、及びクライアントコンピューティングデバイス106上で動作するリモートコンピューティングアプリケーションの、全体的な健全性及び状態を監視する。インスタンスマネージャ122は、データセンターコンピュータ110とクライアントコンピューティングデバイス106との間の種々のリモートコンピューティングセッションを効率的に管理するために、PESプラットフォーム102のデータセンター管理構成要素101による追跡及び監視を通して収集される情報を通信する。
図1の参照を続けると、サービスプロバイダネットワーク105はまた、記憶サービスプラットフォーム103も含む。記憶サービスプラットフォーム103は、1つ以上の記憶サーバ107を含み得るか、またはそれに接続され得る。記憶サーバ107は、仮想デスクトップインスタンスによって生成または利用されるデータを記憶するために使用され得る。仮想デスクトップインスタンスによって生成または利用されるデータは、1つ以上のリモートコンピューティングセッションを介したクライアントコンピューティングデバイス106とPES102との間の相互作用に基づき得る。
実例として、記憶サービスプラットフォーム103は、デスクトップストアにおいて、ホストされる仮想デスクトップインスタンス114と関連付けられる情報を論理的に組織し、維持することができる。デスクトップストアにおいて維持される、仮想デスクトップインスタンス114と関連付けられる情報としては、ユーザ選好、プログラムデータの実行と関連付けられる情報、ユーザコンテンツ、ユーザコンテンツの参照等を挙げることができるが、それらに限定されない。例えば、記憶サービスプロバイダを通すことを含む、音楽、ファイル等を他の記憶デバイスに記憶するためにユーザによって使用されるフォルダも、それらの記憶場所の参照を介して、デスクトップストアにマップされ得る。すなわち、これらのフォルダの中のファイルを開く要求等の、入力/出力動作をデスクトップストアにリダイレクトすることができる。したがって、ユーザが自分の文書フォルダの中に記憶されたファイルを開こうとしたときに、仮想デスクトップインスタンスで動作するオペレーティングシステムによって、デスクトップストアに要求をリダイレクトすることができる。ユーザによって作成されるデータに加えて、例えば背景画像、フォント、アイコンの配設等のデスクトップに関する構成情報を含み得る、ユーザのデスクトッププロファイルも、ユーザの仮想デスクトップインスタンスと関連付けられるデスクトップストアに記憶される。下でさらに詳細に説明されるように、サービスプロバイダコンピュータネットワーク105は、データセンターコンピュータから独立して記憶サーバに記憶することによって、仮想デスクトップインスタンスを動作させるデータセンターコンピュータ(複数可)110の不具合、またはデータセンターコンピュータ(複数可)上での仮想インスタンスの実行と関連付けられるエラーの影響を軽減することができる。加えて、サービスプロバイダネットワーク105はまた、デスクトップストアの情報を維持することによって、クライアントと複数の仮想インスタンスとの相互作用も促進することができる。いくつかの実施形態では、下でさらに詳細に説明されるように、ある仮想デスクトップインスタンスに不具合が生じた場合に、新しいインスタンスが起動され、不具合を生じた仮想デスクトップインスタンスに以前に取り付けされたデスクトップストアと同じ様にデスクトップストアに取り付けされ得る。
論理的に、デスクトップストアは、複数のサーバにわたって分散され得るか、性能の目的で、異なるネットワーク領域のサーバに複製され得るか、またはバックアップもしくは耐不具合性能の目的で、独立した不具合プロファイルを有する複数のサーバにわたって複製され得る。すなわち、サーバは、異なる電力源または冷却システムに取り付けられ得、サーバは、データセンターの異なる部屋または異なるデータセンターに設置され得、及び/またはサーバは、異なるルータまたはネットワークスイッチに取り付けられ得る。実例として、いくつかの実施形態において、デスクトップストアは、1つの記憶サーバ上にあり得、デスクトップストアに対して行われる変更は、異なる記憶サーバ上の別のデスクトップストアに複製され得る。この複製は、ユーザのデータのバックアップコピーを作成する。デスクトップストアに不具合が生じた場合、または仮想デスクトップインスタンスがデスクトップストアへの接続を喪失した場合、PES102は、仮想デスクトップインスタンスの接続を、デスクトップストアからバックアップデスクトップストアに切り替える。
PESプラットフォーム102はさらに、記憶サーバ107上の種々のデスクトップストア及びバックアップストアによって記憶されたデータを記憶するための、PESリポジトリ140等の中央記憶デバイスを含む。データセンターコンピュータ110及び記憶サーバ107はさらに、通信を促進する追加的なソフトウェアまたはハードウェア構成要素を含み得、該構成要素としては、要求されたアプリケーションをサポートする仮想マシンのインスタンスを選択するための、及び/または要求のルーティングを促進するために情報をDNSネームサーバに提供するための、ロードバランシングまたはロードシェアリングソフトウェア/ハードウェア構成要素が挙げられるが、それらに限定されない。
サービスプロバイダコンピュータネットワーク105はまた、ユーザプロファイルストア108も含み得る。ユーザプロファイルストア108は、例えば、仮想デスクトップインスタンスを使用する間のアクセスがユーザに与えられる種々のプログラムを記憶するために使用され得る。記憶されるユーザプロファイルはまた、異なるユーザのリモートコンピューティングセッションと関連付けられる最長時間またはコストも示し得る。PESプラットフォーム102は、仮想デスクトップインスタンスを配置し、構成するときに、ユーザプロファイルを考慮し得る。PESプラットフォーム102はまた、仮想デスクトップ画像ストア109を含み得るか、またはそれに接続され得る。仮想デスクトップ画像ストア109は、ユーザプロファイル毎に適用されるカスタマイゼーションを伴わずに、オペレーティングシステムのテンプレート画像を含み得る。
実例となる実施形態において、データセンターコンピュータ110及び記憶サーバ107は、構成要素または構成要素の一部分が物理的に別個であるかどうかにかかわらず、論理的にグループ化されるとみなされる。例えば、サービスプロバイダコンピュータネットワーク105は、インスタンス及び記憶構成要素を提供するための、別個の場所を維持し得る。加えて、データセンターコンピュータ110は、図1において、PESプラットフォーム102と論理的に関連付けられているように例示されているが、データセンターコンピュータは、種々のユーザ層に最良に役立つような様式で地理的に分散される。加えて、当業者は、サービスプロバイダコンピュータネットワーク105を、コンテンツ及びリソースを管理するための追加的なコンピューティングデバイス等の、種々の追加的なコンピューティングリソースと関連付けることができることを認識するであろう。
以下、図2〜図7を参照すると、図1のネットワーク化されたコンピューティング環境100の種々の構成要素間の相互作用が例示される。具体的には、図2〜図7は、サービスプロバイダネットワーク105による仮想デスクトップインスタンスの実行のための、及びクライアントコンピューティングデバイス106から仮想デスクトップインスタンスへのリモートアクセスのための、ネットワーク化されたコンピューティング環境100の種々の構成要素間の相互作用を例示する。しかしながら、この実施例のために、具体例が簡略化されており、よって、通信を容易にするために利用される構成要素の多くが示されない。当業者は、本開示の趣旨及び範囲から逸脱することなく、そのような構成要素を利用することができ、それに応じて、追加の相互作用が生じることを認識するであろう。
図2を参照すると、仮想デスクトップインスタンス114は、PESプラットフォーム102に接続されたデータセンターコンピュータ110のうちの任意の1つで実行することができる。データセンターコンピュータ110上の仮想インスタンス114の実行と関連してイベントが起こった場合、該実行は、別の仮想デスクトップインスタンス114’に転送することができる。他のインスタンス114’は、同じ110上で、または異なるデータセンターコンピュータ110’上で実行され得る。いずれの場合も、転送は、デスクトップストア170の使用のため、クライアントコンピューティングデバイス106に対するユーザエクスペリエンスに対して最小の遅延及び途絶で起こる。下で説明されるように、ユーザのデータは、仮想デスクトップインスタンス114〜114’の実行の転送を通して、デスクトップストア170との継続的な関連付けによって利用可能な状態を維持する。
実例として、仮想デスクトップインスタンスのインスタンス化、及びリモートコンピューティングセッションの確立の前に、各インスタンスマネージャ122は、それぞれの仮想デスクトップインスタンスの全体的な状態及び健全性を監視する。そのような状態及び健全性の情報は、データセンターコンピュータ110のインスタンスマネージャ122から、サービスプロバイダのデータセンター管理構成要素101に送られる。加えて、リモートコンピューティングセッション中に、インスタンスマネージャ122は、インスタンス114とクライアントコンピューティングデバイス106との間のネットワーク接続の健全性及び状態を監視する。インスタンスマネージャ122はまた、例えば、クライアントコンピューティングデバイス106にインストールされたエージェントを通して、接続されたクライアントコンピューティングデバイス106の健全性及び状態も監視し得る。全ての監視される健全性及び状態の情報は、データセンター管理構成要素101に送られる。インスタンスマネージャ122から収集され、データセンター管理構成要素101に送られる情報はまた、本明細書において状態情報とも称される。種々の構成要素から収集された状態情報は、サービスプロバイダコンピュータネットワークからのサービスの所望の可用性及び信頼性を達成するために使用される。収集された状態情報が構成要素の1つ以上の不具合を示した場合、該不具合は、インスタンスの実行を転送することによって、または追加的なデータ記憶場所にアクセスすることによって対処することができる。
図2で例示されるように、ステップ(1)では、イベントまたはユーザの要求に応じてクライアントコンピューティングデバイス106がリモートコンピューティングアプリケーション130をロードするときに、新しいリモートコンピューティングセッションの要求が初期化され得る。いくつかの実施形態において、リモートコンピューティングアプリケーション130は、ユーザに、ユーザ名及びパスワードを入力するよう促し得る。一実施形態において、リモートコンピューティングアプリケーション130をロードすることは、記憶構成要素からデバイスメモリに実行可能コードをコピーすることを含み得る。リモートコンピューティングアプリケーション130をロードした後に、クライアントコンピューティングデバイス106は、新しいリモートセッションを要求し得、そして、サービスプロバイダコンピュータネットワーク105のPESプラットフォーム102に要求を伝送し得る。一実施形態では、ユーザのデスクトップにリモートにアクセスするために、ユーザによってリモートコンピューティングセッションが開始され得る。別の実施形態において、クライアントコンピューティングデバイス106の観点からすれば、アプリケーションプロセスの実行を扱うためにリモートセッションを開始することは、あたかもアプリケーションプロセスがインスタンス化され、ローカルデバイス上で実行されたかのように現れ得る。
要求を受け取った後に、ステップ(2)で、PESプラットフォーム102は、ユーザアカウント識別子等の情報を使用して要求を提出したユーザのユーザプロファイルを選択する。ユーザプロファイルは、ユーザプロファイルストア108(図1を参照されたい)に記憶され得る。例示的な実施形態において、ユーザプロファイルは、ユーザの仮想デスクトップインスタンスを作成するための仮想デスクトップインスタンステンプレートまたは画像を示す情報を含み得るか、または該情報と関連付けられ得る。例えば、仮想デスクトップインスタンステンプレートまたは画像は、起動するオペレーティングシステムまたは1組のアプリケーションを特定することができる。ユーザプロファイルはまた、ユーザの仮想デスクトップインスタンスに与えるために、処理ユニットの数、メモリ、記憶装置、帯域幅等を示す情報も含むことができ、または該情報と関連付けることもできる。この情報は、キー値対として表すこと、または異なるタイプの仮想デスクトップインスタンス(例えば、小さいインスタンス、中間のインスタンス、または大きいインスタンス)に抽象化することができる。したがって、ユーザプロファイルは、仮想デスクトップインスタンスのタイプが「大きい」に等しいと示すことができ、ここで、「大きい」は、それと関連付けられる一定量のリソースを有する。
次いで、クライアントコンピューティングデバイス106によって識別される様に1つ以上のアプリケーションプロセスに対応するように、リモートセッションが開始され得る。実例として、新しいリモートセッションを開始することは、割り当てられたデバイスメモリ、記憶またはキャッシュ空間、プロセッサ時間、ネットワーク帯域幅、または他の計算もしくはネットワークリソースと関連付けられる仮想マシンまたはデータセンターコンピュータ内の画像から、仮想デスクトップインスタンスをブートすることを含み得る。画像は、例えば仮想デスクトップ画像ストア109(図1で例示される)等の、仮想デスクトップ画像リポジトリからアクセスされ得る。
PESプラットフォーム102がユーザプロファイルストア108(図1で例示される)からユーザプロファイルを取り出した後に、PESプラットフォーム102は、仮想デスクトップインスタンスを実行するデータセンターコンピュータ110を決定する。例えば、PESプラットフォーム102は、仮想デスクトップインスタンスをホストするために利用できるデータセンターコンピュータ110のリストを取得し、フィルタリング基準を該リストに適用して、仮想デスクトップインスタンスのホスティング要件に適応することができる1つ以上のコンピュータからデータセンターコンピュータ110のサブセットを取得することができる。次いで、PESプラットフォーム102は、ランダムに、または任意の他の選択プロセス(例えば、ラウンドロビン等)を使用することによって、データセンターコンピュータ110の1つを選択することができる。具体的な実施例において、PESプラットフォーム102は、リストを取得し、必要なリソース(例えば、メモリ、記憶装置、処理パワー等)を提供することができないデータセンターコンピュータ110をフィルタリングすることができる。PESプラットフォームはまた、ユーザアカウントと関連付けられる顧客アカウントと関連付けられるN個の他の仮想デスクトップインスタンス114を既にホストしているデータセンターコンピュータ110もフィルタリングし得る(ここで、Nは、管理者によって、またはPESプラットフォーム102によって設定することができる、1以上の任意の整数である)。PESプラットフォームはまた、クライアントコンピューティングデバイス106に対して高い待ち時間を有する等のデータセンターコンピュータ100のフィルタリングも行い得る。
仮想デスクトップ画像ストア109からの画像を使用して仮想デスクトップインスタンス114を作成した後に、PESプラットフォーム102はまた、仮想デスクトップインスタンス114に取り付けするために、主デスクトップストア170等のデスクトップストアを識別することもできる。例えば、PESプラットフォーム102は、仮想デスクトップインスタンス114が実行されるデータセンターコンピュータ110を選択し、そして、ユーザプロファイルの中の情報に基づいて、仮想デスクトップインスタンス114を起動する要求をコンピュータ110に送り、そして、それを仮想デスクトップ識別子に送ることができる。実例として、仮想デスクトップインスタンスとデスクトップストアとの関連付けは、アプリケーションプロトコルインターフェース(「API」)の利用を通して達成することができる。例えば、インスタンスマネージャ122は、記憶サービスプラットフォーム103に伝送することができる、取り付ける要求等の、APIを利用することができる。記憶サービスプラットフォーム103は、仮想デスクトップインスタンス114が正しい仮想デスクトップ識別子を有することを確認し、また、ユーザのデスクトップストア170を仮想デスクトップインスタンス114に取り付けさせることができる。
データセンターコンピュータ110と関連付けられるネットワークアドレス情報は、クライアントコンピューティングデバイス106に送ることができる。クライアントコンピューティングデバイス106がIPアドレスを受け取ると、リモートコンピューティングセッションが開始され得る。仮想デスクトップインスタンスが構成されると、PESプラットフォーム102は、クライアントコンピューティングデバイス106と通信し、そして、仮想デスクトップインスタンスと関連付けられる公的にアクセス可能なIPアドレスを送る。クライアントコンピューティングデバイス106は、IPアドレスを受け取ると、IPアドレスに対する接続要求を行う。次いで、ユーザが認証され得、次いで、認証された場合、インスタンス上のオペレーティングシステムは、ユーザと関連付けられるプロファイルをロードする。次いで、このプロファイルは、ユーザインターフェースが、または仮想デスクトップインスタンスのデスクトップが、ユーザの選好傾向をルックアンドフィールすることを可能にするために使用される。例えば、インスタンスの構成としては、レジストリの構成、フォントの変更、デスクトップ画像の設定、デスクトップ上のお気に入り及びリンクの編成、デスクトップ上の適切な文書に対するアイコンの配置、及び同類のことが挙げられ得る。
いくつかの実施形態において、クライアントコンピューティングデバイス要求を受け取ると、データセンター管理構成要素101はまた、処理及びネットワークリソースも選択し得、そして、インスタンス114に加えて、インスタンス116等の別のインスタンスにソフトウェアを供給する。クライアントコンピューティングデバイス106と関連付けられる1人以上のユーザに対して、クライアントコンピューティングデバイスに接続している1つ以上のインスタンスに対して、またはそれらの組み合わせに対して、追加的なインスタンスが供給され得る。
次いで、インスタンスマネージャ122は、インスタンス114の状態及び健全性の監視を継続する。仮想デスクトップインスタンス114内で動作するエージェントはまた、クライアントコンピューティングデバイス106のユーザと、PESプラットフォーム102で実行される仮想デスクトップインスタンスとの相互作用によって作成されるデータの受け取り及び記憶の監視及び調整も行い得る。データは、ユーザがどのファイルを開いたか、ユーザプロファイルに関する詳細、PESプラットフォーム105上で実行されるインスタンスと相互作用する間に作成された任意のデータファイル等の情報を含み得る。データはまた、ユーザのグラフィカルユーザインターフェースに関する詳細も含み得る。例えば、データは、クライアントコンピューティングデバイス106上でユーザが開いた種々のウインドウ、それぞれのウインドウの絶対位置及び相対位置、ウインドウの中の任意の構成要素の強調等を含み得る。インスタンスマネージャ122は、状態情報をデータセンター管理構成要素101に送り得、さらに、デスクトッププロファイル及びユーザコンテンツに対する変更を主デスクトップストア170に書き込み得る。
図2の参照を続けると、いくつかの実施形態では、主デスクトップストアを不具合から保護するために、ステップ(2B)で、主デスクトップストアに記憶したデータがバックアップデスクトップストア170’に複製され得る。バックアップデスクトップストア170’は、主デスクトップストア170と同じインスタンス114のユーザと関連付けられる。データに対して行われた任意の変更は、主デスクトップストア170に記憶され、そして、バックアップデスクトップストア170’に複製される。複製は、定期的に、新しいデータが作成されたときにだけデータを複製するイベントを基準に、またはこれら2つの組み合わせで行われ得る。
いくつかの実施形態では、ステップ(2C)で、保存されたデータはまた、PESリポジトリ140にも記憶され得る。PESリポジトリ140への記憶は、定期的に、イベントを基準に、またはそれら2つの組み合わせで行われ得る。いくつかの実施形態において、データは、PESリポジトリ140に記憶した後に、定期的に、デスクトップストア170、170’からパージされ得る。期間は、クライアントコンピューティングデバイス106のユーザと関連付けられるエンティティの管理者によって決定され得る。
その後に、ステップ(3)で、仮想デスクトップインスタンス114と関連付けられるイベントがあり得る。イベントとしては、例えば、仮想デスクトップインスタンスの不具合が挙げられる。仮想デスクトップインスタンスの不具合は、停電、ネットワークの接続解除、データセンターコンピュータ上のソフトウェアまたはハードウェアの不具合、仮想デスクトップインスタンス上の待ち時間の増加、仮想デスクトップインスタンスの著しい障害、またはインスタンスの任意の他の不具合に起因し得る。そのような不具合の場合、インスタンスマネージャ122から送られた状態情報は、データセンター管理構成要素101に不具合を示す。あるいは、主デスクトップストア170が、ユーザ情報に対して変更がないことを検出し、そして、そのような欠如をデータセンター管理構成要素101に示す。
データセンター管理構成要素101が、インスタンス114と関連付けられるイベントを検出すると、ステップ(4)で、例えば仮想デスクトップインスタンス114’等の、別の仮想デスクトップインスタンスがインスタンス化される。他の仮想デスクトップインスタンス114’は、同じデータセンターコンピュータ110上で、または異なるコンピュータ110’上で実行され得る。他の仮想デスクトップインスタンス114’は、予め構成され得ているか、または仮想デスクトップインスタンス114上で不具合が検出された後に構成を開始し得る。データセンター管理構成要素101は、実行に適切なデータセンターコンピュータまたは仮想デスクトップインスタンスを識別すると、新しいリモートコンピューティングセッションを介して、新しいパブリックIPアドレスをクライアントコンピューティングデバイス106に送って、新しい仮想デスクトップインスタンスに再接続する。
新旧の仮想デスクトップインスタンスにわたって以前のデスクトップのルックアンドフィールが維持されるので、クライアントコンピューティングデバイス106上のユーザエクスペリエンスは、ほぼ滑らかに見える。以前にPESプラットフォーム102に送ったデータは、同じ主デスクトップストア170への接続によって、新しい仮想デスクトップインスタンスが利用できるようになる。加えて、仮想マシンインスタンス114内で動作しているエージェントは、ユーザによって以前に開かれたアプリケーションに関する情報を収集しているので、新しい仮想デスクトップインスタンス上には同じアプリケーションが開かれる。保存したデータは、ユーザのグラフィカルユーザインターフェースに関する詳細を含むので、クライアントコンピューティングデバイス上のアプリケーションプロセスのユーザの観点は、異なるインスタンスの実行にわたって実質的に均一な状態を維持する。したがって、新しい仮想デスクトップインスタンスは、クライアントコンピューティングデバイス106上で動作するアプリケーションプロセスを維持し、以前にPESプラットフォーム102に送られたデータは、新しいインスタンスに回復される。不具合が生じ、リモートコンピューティングセッションの再確立中にユーザデータが異なるインスタンス間で同期されるので、クライアントコンピューティングデバイス106は、同じユーザエクスペリエンスを保持する。
いくつかの実施形態において、ユーザは、リモートコンピューティングアプリケーション130を実行するためのユーザ名及びパスワードを再入力するよう促され得る。他の実施形態において、ユーザ名及びパスワードは、クッキーまたは電子証明書等の機構を通して、データに記憶され得、ユーザ名及びパスワードは、リモートコンピューティングセッションが再確立されるときに自動的にロードされ得る。
上で説明されるように、一方のインスタンスからもう一方へのリモートコンピューティングセッションの転送は、クライアントコンピューティングデバイス106上のユーザエクスペリエンスに対して最小の遅延及び途絶で行われる。遅延及び途絶は、クライアントコンピューティングデバイス106から受け取るデータの永続記憶領域を提供することによって最小にされる。
いくつかの実施形態において、仮想マシンインスタンス114は不具合を生じ得ないが、代わりに、主デスクトップストア170が不具合を生じ得る。記憶マネージャ135が主デスクトップストア170のそのような不具合を検出した場合は、ステップ(4B)で例示されるように、仮想デスクトップインスタンス114と主デスクトップストア170との間の接続が取り離され、仮想デスクトップインスタンス114とバックアップデスクトップストア170’との間の接続が確立される。
いくつかの実施形態において、データセンター管理構成要素101で収集したデータは、仮想デスクトップインスタンス114とクライアントコンピューティングデバイス106との間のリモートコンピューティングセッションを再確立するときに、クライアントコンピューティングデバイス106の状態を判定して回復するために使用され得る。例えば、収集したデータは、クライアントコンピューティングデバイス106での問題の状態を判定するために使用され得、そのような状態は、回復されないと判定される場合がある。問題の状態は、クライアントコンピューティングデバイス106に接続したときに遭遇する問題の重大度及び頻度に基づいて判定され得る。
図3を参照すると、ネットワーク化されたコンピューティング環境100はまた、同じユーザによって使用されるクライアントコンピューティングデバイスまたは異なるデバイスと関連付けられるイベントの後に、PESプラットフォーム102とクライアントコンピューティングデバイスとの間でリモートコンピューティングセッションを開始するために使用することもできる。実例として、リモートコンピューティングセッションは、PESプラットフォーム102に最初に接続されたクライアントコンピューティングデバイス106のハードドライブのコピーを、回復後の同じデバイス106に、または同じユーザによって使用される異なるデバイス106’に提供することができる。
いくつかの実施形態では、PESプラットフォーム上で仮想デスクトップインスタンス114をリモートに実行することなく、クライアントコンピューティングデバイス106がオペレーティングシステム及びアプリケーションをローカルに実行していることがあり得る。PESプラットフォーム102は、記憶サーバ107の1つ以上の環境を計算するクライアントコンピューティングデバイス106のハードドライブを複製し、次いで、仮想デスクトップインスタンス114として、クライアントコンピューティングデバイス106上の、または別のクライアントコンピューティングデバイス106’上でユーザが利用可能なハードドライブをコピーするために使用され得る。いくつかの実施形態において、PESプラットフォーム102は、ユーザコンテンツ及びデスクトッププロファイルを、記憶サーバ107の1つ以上のデスクトップストア170に、またはPESリポジトリ140に複製し、次いで、そのデスクトップストア170を、クライアントコンピューティングデバイス106または106’のユーザが利用できるようになる仮想デスクトップインスタンス114に取り付けするために使用され得る。
ユーザは、例えばデスクトップ復元サービス等の、サービスプロバイダコンピュータネットワーク105からのサービスに対して契約し得る。サービスに加入したユーザには、例えばデスクトップ復元プログラム330等の、該ユーザのクライアントコンピューティングデバイス上にダウンロードするためのコンピュータプログラムが提供され得る。次いで、デスクトップ復元プログラム330がクライアントコンピューティングデバイス106上で動作し得、そして、ステップ(1)で示されるように、クライアントコンピューティングデバイス106とPESプラットフォーム102との間でセッションが開始され得る。図1と関連して上で説明されるように、セッションが確立された後に、PESプラットフォーム102は、デスクトップストア170の1つ以上をユーザと関連付け得る。
図3の参照を続けると、デスクトップストア170がユーザセッションと関連付けられた後に、PESプラットフォーム102は、ステップ(2)で、種々のフォルダに記憶したファイル等の、クライアントコンピューティングデバイス106のハードドライブ画像、またはユーザ及びユーザコンテンツのデスクトッププロファイルの複製を開始する。ハードドライブ画像またはユーザ及びユーザコンテンツのデスクトッププロファイルの複製は、クライアントコンピューティングデバイス106のディスクの一部分を、PESリポジトリ140またはデスクトップストア170にコピーすることを含み得る。画像全体が複製されるインスタンスにおいて、コピーすることは、クライアントコンピューティングデバイス106とPESプラットフォーム102との間のネットワーク接続の帯域幅に応じて、いくらかの時間を必要とし得る。いくつかの実施形態において、ステップ(2B)で、ハードドライブ画像は、バックアップデスクトップストア170’にも複製され得る。加えて、いくつかの実施形態において、ステップ(2C)で、画像は、PESリポジトリ140にも定期的に記憶され得る。
その後に、ハードドライブ画像に対して、またはユーザとクライアントコンピューティングデバイス106との相互作用によるユーザコンテンツ及びデスクトッププロファイルの一部分に対して行われた任意の変更は、リモートコンピューティングセッションを介してデスクトップストア170上に保存することによって、PESプラットフォーム102によって複製される。変更の複製は、ネットワーク接続帯域幅に基づいて計画され得る。例えば、ネットワーク接続帯域幅が高い場合、複製は、クライアントコンピューティングデバイスのファイルシステムがそのバッファをディスクにフラッシュする度に起こり得る。対照的に、ネットワーク接続帯域幅が低い場合、複製は、例えば1日に1回、1週間に1回、もしくは任意の他の適切な時間等に定期的に、または例えばネットワーク接続帯域幅が所与の閾値を超えたとき等の条件に基づいて行われるように計画され得る。
クライアントコンピューティングデバイス106の不具合があった場合は、ステップ(3)で示されるように、ハードドライブまたはクライアントコンピューティングデバイス106のユーザと関連付けられるユーザコンテンツ及びデスクトッププロファイルのコピーを、PESプラットフォーム102で利用できる。不具合としては、停電、ネットワークの接続解除、ソフトウェアまたはハードウェアの不具合、または任意の他の不具合が挙げられる。PESプラットフォーム102は、ハードドライブ画像のコピーを使用して、データセンターコンピュータ110の1つ以上に仮想インスタンス114を構成するか、またはステップ(4)で示されるように、ユーザと関連付けられるユーザコンテンツ及びデスクトッププロファイルが保存されるデスクトップストア170を、仮想デスクトップインスタンス114に取り付けし得る。
結果的に、新しいクライアントコンピューティングデバイス106’を使用するときには、またはクライアントコンピューティングデバイス106を不具合から復元するときには、デスクトップ復元プログラム330及びリモートコンピューティングアプリケーション130が、デバイス106または106’にロードされる。次いで、リモートコンピューティングアプリケーション130は、ユーザ名及びパスワードを入力するようユーザに促し得る。リモートコンピューティングアプリケーション130をロードした後に、ステップ(5)で、新しいリモートコンピューティングセッションの要求が、サービスプロバイダコンピュータネットワーク105のPESプラットフォーム102に伝送される。
要求を受け取った後に、PESプラットフォーム102は、要求に含まれるユーザアカウント識別子等の情報を使用して、ユーザプロファイルを選択する。ユーザプロファイルは、ユーザプロファイルストア108に記憶され得る。例示的な実施形態において、ユーザプロファイルは、ユーザのインスタンスを作成するためのインスタンステンプレートを示す情報を含み得るか、または該情報と関連付けられ得る。例えば、ハードドライブコピーが作成された場合、インスタンステンプレートは、ユーザがインスタンステンプレートとして使用するために以前に保存したハードドライブ画像を特定することができる。次いで、データセンターコンピュータ110の1つのデスクトップストア170の1つに以前に保存したユーザのハードドライブ画像のコピーから仮想デスクトップインスタンスをブートするために、リモートコンピューティングセッションが開始され得る。ユーザコンテンツ及びデスクトッププロファイルが保存された場合には、ユーザコンテンツ及びデスクトッププロファイルを含むデスクトップストア170が、ユーザがアクセスする仮想デスクトップインスタンス114に取り付けられ得る。
図4を参照すると、異なるユーザ要件に適応するためのPESプラットフォーム102の構成を例示する図1のネットワーク化されたコンピューティング環境のブロック図が開示される。上で説明されるように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイス106が、イベントまたはユーザの要求に応じて、リモートコンピューティングアプリケーション130をロードするときに開始され得る。リモートコンピューティングアプリケーション130をロードした後に、クライアントコンピューティングデバイス106は、新しいリモートセッションを要求し得る。
要求を受け取った後に、PESプラットフォーム102は、データセンターコンピュータ110及びインスタンス114を、要求された新しいリモートセッションを使用可能にするように構成する。データセンターコンピュータ及びインスタンスは、要求によって識別される1つ以上のアプリケーションプロセス、及びユーザプロファイルストア108に記憶されたそのようなアプリケーションプロセスと関連付けられる種々のメモリまたは処理要件に基づいて構成され得る。
例えば、エンティティと関連付けられるクライアントコンピューティングデバイス106のユーザは、それらと関連付けられる制限を有し得る。この制限は、管理者によって設定され得る。この制限としては、例えば、各ユーザがアクセスすることができるアプリケーション、ならびにユーザがアクセスする異なる仮想デスクトップインスタンスと関連付けられるメモリ及び処理の限度が挙げられる。例えば、管理者は、個々のユーザのデフォルトインスタンスサイズを設定し得る。例えば、デフォルトインスタンスサイズは、ユーザ識別子に従って、個々のユーザと関連付けられるユーザプロファイルストア108に記憶され得る。ユーザプロファイルストア108はまた、インスタンスによって実行されるアプリケーションに応じて、インスタンスサイズを変動させるための変数も含み得る。
一実施形態において、ユーザは、電子メールまたはウェブブラウザだけ等の、低い処理要件を有するアプリケーションの実行に制限され得る。そのようなユーザには、そのようなアプリケーションをサポートするために少量のリソースが割り当てられる仮想デスクトップインスタンスへのアクセスが提供され得る。対照的に、ユーザは、プロ用の製図用または写真編集用アプリケーション等の、より高い処理要件を有するアプリケーションを実行する許可が与えられ得る。このタイプのユーザには、ユーザがアプリケーションを動作させることを可能にするのに十分な多量のリソースが割り当てられる、仮想デスクトップインスタンスへのアクセスが与えられ得る。異なるユーザに許可されたアプリケーションは、ユーザアカウントのユーザプロファイルに保存され得る。あるいは、仮想デスクトップインスタンスを使用している間に、異なるタイプのアプリケーションがユーザによって要求され得る。
実例として、ユーザまたはクライアントコンピューティングデバイスと関連付けられる処理要件は、様々なシナリオに基づいて決定され得る。決定は、リモートコンピューティングアプリケーション130の起動時のユーザの要求に基づき得る。例えば、ユーザには、リソース及びアプリケーションの様々なオプションを表示するグラフィカルユーザインターフェース(GUI)が提示され得る。次いでユーザは、ユーザがアクセスすることを望むアプリケーション、または代替的に、それらのアプリケーションのバージョンを選択し得る。例えば、あるユーザは、基本バージョンのアプリケーションにアクセスすることを望み得、一方で、別のユーザは、プロフェッショナルバージョンの同じアプリケーションにアクセスすることを望み得る。決定はまた、ユーザと関連付けられるエンティティの管理者によって決定されるような、ある特定のユーザに対して予め選択されたオプションにも基づき得る。例えば、予め選択されたオプションが、ユーザがアクセスすることを望み得る異なるパッケージのアプリケーションのリストとしてユーザに提示され得る。いくつかの事例において、決定は、ユーザの過去の使用データに関して行われ得、PESプラットフォーム102は、ユーザから要求を受け取った時点で決定し得る。他の事例において、処理要件の決定は、リモートコンピューティングセッションが開始された時点で、ユーザによるプロセスの使用の実行中の監視に基づき得る。そのような事例において、適切なインスタンスの選択は、セッションが確立された後に動的に変更され得、新しいインスタンスへの動的な変更は、上で図1に関して説明されるように行われ得る。
再度図4を参照すると、ステップ(1)で、ユーザから要求を受け取り、ユーザ要件を決定するためにユーザプロファイルストア108にアクセスすると、次いでステップ(2)で、仮想デスクトップ画像ストア109から仮想デスクトップ画像を受け取り、ユーザ要件に従って構成する。次いで、インスタンス114を構成するために、カスタマイズされた仮想デスクトップ画像を使用する。インスタンス114を構成した後に、ステップ(3)で、PESプラットフォームは、インスタンスを起動するデータセンターコンピュータ110を決定する。例えば、PESプラットフォーム102は、リストを取得し、必要なリソース(例えば、メモリ、記憶装置、処理パワー等)を提供することができないデータセンターコンピュータ110をフィルタリングすることができる。データセンターコンピュータ110が選択されると、次いで、データセンターコンピュータ110と関連付けられるネットワーク情報をクライアントコンピューティングデバイス106に送ることができる。クライアントコンピューティングデバイス106がネットワーク情報を受け取ると、リモートコンピューティングセッションが開始され得る。仮想デスクトップインスタンスが構成されると、PESプラットフォーム102は、クライアントコンピューティングデバイス106と通信し、そして、仮想デスクトップインスタンスと関連付けられる公的にアクセス可能なIPアドレスを送る。クライアントコンピューティングデバイス106は、IPアドレスを受け取ると、IPアドレスに対する接続要求を行う。次いで、ユーザが認証され得、次いで、認証された場合、ユーザには、上で構成されるような仮想デスクトップの画像が提供される。
いくつかの実施形態において、インスタンスエージェント114Aは、ステップ(4)で、インスタンス114が使用しているCPU及びメモリの量を監視することができ、さらに、リソースが必要な場合には、PESプラットフォーム102からより多くのリソースを要求することもできる。いくつかの実施形態において、各アプリケーションは、どれくらいのリソースが必要であるのかを示す情報をタグ付けすることができる。インスタンスエージェント114Aがプログラムの起動を検出したときに、該エージェントは、テーブルの中の要件をルックアップするか、またはアプリケーションが起動したPESプラットフォーム102に信号を送るように構成することができ、よって、PESプラットフォーム102は、リソースをインスタンス114に割り当てる必要があることを示す信号をエージェント114Aに送ることができる。
ユーザのための最適インスタンスの決定は、ユーザの使用請求書の実現を補助し得る。多数のリソースが割り当てられたインスタンスは、制限され得る。例えば、そのようなインスタンスは、ある特定の許可されたユーザにだけ提供され得るか、または限られた期間にわたってある特定のユーザにだけに提供され得る。異なるインスタンスの請求書は、サービスプロバイダリソースの使用に関する基準価格構成要素と、割り当てられたリソースに基づく変動価格構成要素と、異なる異なるリソースによる総使用時間とを含み得る。ユーザによるリソースの使用及び要求はまた、ユーザと関連付けられるアカウントの管理者によるユーザ管理にも使用され得る。例えば、ユーザが所与の閾値を超えるリソースのレベルを要求するときに、通知が管理者に送られ得る。
インスタンスに割り当てるリソースの決定はまた、リソースの使用と関連付けられるコストにも基づき得る。例えば、所与のレベルのリソースで構成された所与のインスタンスは、そのようなリソースの使用のコストの閾値量までの使用に制限され得る。別の実施例において、インスタンスは、割り当てられたリソースの閾値量で使用され得る。あるいは、ある閾値量の時間にわたって休止状態であると監視された後に、または所与のセッション中にリソースの利用が低いことを示した後に、インスタンスへのユーザのアクセスは、より少ないリソースを有するインスタンスにダウングレードされ得る。
管理者は、仮想デスクトップインスタンス上のリソースへのユーザのアクセスを許可するための異なる規則を提供し得る。例えば、この規則は、異なるタイプのユーザを定義し得、ユーザのタイプは、エンティティによってプログラム実行サービス(PES)プラットフォームに提供される1組の規則に記憶され得る。この規則は、ユーザアカウント識別子等の異なるユーザのログイン情報と関連付けられ、そして、ユーザプロファイルストア108に記憶され得る。ユーザがエンティティのクライアントコンピューティングデバイス106上のリモートコンピューティングアプリケーション130を起動したときに、PESプラットフォーム102は、受け取ったログイン情報に基づいて、ユーザアカウント識別子と関連付けられるユーザプロファイルに含まれる仕様に従って、適切なインスタンスを決定し得る。
実例となる実施例の目的で、エンティティによって採用された契約者が、クライアントコンピューティングデバイス106上で、決定された時間量にわたって、決定されたアプリケーションプロセスを使用することを許可され得る、と仮定する。したがって、エンティティは、PESプラットフォーム102に通信される様に、所望の要件を契約者のユーザ識別子に割り当てる。次いで、契約者がリモートコンピューティングアプリケーション130を起動したときに、ログインが契約者のユーザ識別子を示す。その後に、サービスプロバイダは、インスタンス及びデータセンターコンピュータを決定して、そのためのクライアントコンピューティングデバイス106及び任意のその後のリモートコンピューティングセッションと関連付けられるように構成する。サービスプロバイダのデータセンター管理構成要素101は、決定されたプロセスの契約者の使用、処理レベル、及び使用時間を監視し、また、予め定義されたエンティティ管理者の条件に従って、使用を制限する。契約者は、いかなるソフトウェアアプリケーションもクライアントコンピューティングデバイス106にインストールする必要はなく、エンティティは、契約者によるいかなるアプリケーションの使用も監視する必要はない。PESプラットフォーム102は、中央で双方のニーズに適応する。
所定のユーザタイプに基づくアプリケーションの構成及びアプリケーションの処理要件は、エンティティに請求書を送るために使用され得る。異なるインスタンスの使用請求書は、サービスプロバイダリソースの使用に関する基準価格構成要素と、処理要件に基づく変動価格構成要素と、異なる処理要件による総使用時間とを含み得る。あるいは、エンティティは、PESプラットフォーム102から様々なアプリケーションプロセスのライセンスを取得し得、ライセンスは、エンティティがクライアントコンピューティングデバイス106を利用できるようにしたときに、エンティティによって許可された様々なユーザによって使用され得、ユーザ名は、それぞれのユーザに必要とされる種々のアプリケーションプロセスに対する適切なパーミッションと関連付けられる。
サービスプロバイダインスタンスの構成はまた、リモートコンピューティングセッション中のインスタンスの過去の要求または供給に基づいて、異なるインスタンス上のアプリケーションプロセスの予め選択された組み合わせを提供するためにも使用され得る。例えば、アプリケーションプロセスと処理要件との組み合わせは、異なるタイプのユーザに対して構成され得る。ユーザのタイプは、例えば、単純な電子メールリーダー及びウェブブラウザであり得るか、またはプロ用のドラフターまたはフォトエディタであり得る。いくつかの実施形態において、インスタンスの構成はまた、処理要件の代わりに、またはそれに加えて、アプリケーションプロセスと関連付けられる記憶要件にも基づき得る。
図5を参照すると、インスタンスのリソース要件に基づくリモートコンピューティングセッションの調整を例示する図1のネットワーク化されたコンピューティング環境のブロック図が開示される。図5で例示されるように、サービスプロバイダコンピュータネットワーク105は、インスタンスに割り当てられるリソースを調整し得るか、または最初のインスタンスと関連付けられるリソース要件が変更された場合に、新しいインスタンスを同じまたは異なるデータセンターコンピュータに提供し得る。上で説明されるように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイス106が、イベントまたはユーザの要求に応じて、リモートコンピューティングアプリケーション130をロードするときに開始され得る。リモートコンピューティングアプリケーション130をロードした後に、ステップ(1)で、クライアントコンピューティングデバイス106は、新しいリモートセッションを要求し得る。要求を受け取った後に、ステップ(2)で、PESプラットフォーム102は、ユーザプロファイルストア108に記憶したユーザプロファイルに基づいて、要求された新しいリモートセッションを使用可能にするデータセンターコンピュータ110、及び起動する適切なインスタンスを選択する。セッションを確立した後に、ステップ(3)で、クライアントコンピューティングデバイス106のユーザによるインスタンスの使用を監視することに基づいて、インスタンスマネージャ122によって、インスタンスが動的に調整され得る。
例えば、クライアントコンピューティングデバイス106のユーザが仮想デスクトップインスタンスと相互作用している間、ユーザは、低い処理パワー及び低いメモリ要件だけしか必要としないアプリケーションにアクセスし得る。しかしながら、しばらくして、ユーザは、より多くの処理パワー及びより多くのメモリを必要とする1つ以上のアプリケーションへのアクセスを要求し得る。いくつかの実施形態において、異なる要件の要求は、デスクトップインターフェース上のアプリケーションのアイコンをユーザが選択することによって開始され得る。いくつかの実施形態において、要求は、ユーザがコントロールパネルのオプションのリストからあるオプションを選択することによって開始され得る。例えば、オプションのリストは、異なる量の処理パワー及びメモリのスライド制を含み得る。いずれの場合も、ステップ(4)で、インスタンスマネージャ122は、インスタンス114の異なる構成の必要性を決定する。
PESプラットフォーム102は、より多くの処理パワー及び記憶に適応するために、仮想デスクトップインスタンスに割り当てられるリソースの量を動的に調整し得る。いくつかの実施形態において、ステップ(5)で、調整は、同じまたは異なるデータセンターコンピュータ上でインスタンスを再起動することを必要し得る。仮想デスクトップインスタンスを再起動することは、動作中のインスタンスを終了することと、インスタンスからデスクトップストアを関連付け解除することと、新しいインスタンスを起動するためにデータセンターコンピュータを選択することと、選択したデータセンターコンピュータに新しいインスタンスをインスタンス化することと、デスクトップストアと新しいインスタンスとを関連付けることとを含み得る。インスタンスがインスタンス化されると、ユーザには、ログインプロンプトによって該インスタンスへのアクセスが提供され得る。
他の実施形態において、調整は、インスタンスを終了することなく、追加的なリソースを仮想デスクトップインスタンスに加えることを含み得る。例えば、インスタンスマネージャは、別のプロセッサまたはメモリを、デスクトップインスタンス等を実行する仮想マシンに加えることができる。いくつかの実施形態において、プロセッサは、CPUを仮想デスクトップインスタンスにホットアド(hot add))することによって、仮想デスクトップインスタンスに加えられ得る。CPUは、新しいハードウェアをデータセンターコンピュータに加えることによってホットアドされ得、オンラインで論理的に、または仮想化層を通して仮想的に、ハードウェアパーティショニングを行う。データセンターコンピュータ110は、CPUが加えられた後に自動的に開始する必要はなく、単純に、利用可能なリソースとして新しいCPUを認識するように再構成され得る。いくつかの実施形態において、メモリは、メモリを仮想デスクトップインスタンスにホットアドすることによって、仮想デスクトップインスタンスに加えられ得る。メモリをデータセンターコンピュータ110にホットアドすることは、いかなる動作システムのダウンタイムも、またはいかなるシステムパワー動作も必要とすることなく、物理メモリをオペレーティングシステムインスタンスに加えるための機構がサポートされることを確実にすることによって実現され得る。
図6は、リモートのネットワーク化された環境からローカルのネットワーク化された環境に仮想デスクトップインスタンスの動作を移行したときの、図1のコンピューティング環境の実例となるブロック図である。いくつかの実施形態において、PESプラットフォーム102とクライアントコンピューティングデバイス106との間に確立されるリモートコンピューティングセッションは、ネットワークの接続解除または不具合のため喪失され得る。例えば、クライアントコンピューティングデバイス106のユーザは、ネットワーク104によってサービスされない領域に進行し得る。そのような接続解除に適応するためには、PESプラットフォーム102とクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションを使用して、PESプラットフォーム上で以前に実行した仮想インスタンスのローカルに実行したコピーに移行するための必要な構成要素をクライアントコンピューティングデバイス106に装備するために、データセンターコンピュータからクライアントコンピューティングデバイス106に情報を転送し得る。
例えば、クライアントコンピューティングデバイス106は、ネットワーク104を介して、PESプラットフォーム102に接続され得、デバイス106は、ユーザが航空機に搭乗する前に、ネットワーク104から接続解除され得る。ネットワーク104から接続解除する前に、随意に承認を受けるようユーザに促した後に、クライアントコンピューティングデバイス106には、仮想デスクトップ画像ストア109に記憶した画像等の、オペレーティングシステムの画像が提供され得る。クライアントコンピューティングデバイス106は、データセンターコンピュータ110と異なる処理パワーまたはメモリの構成を有し得るので、クライアントコンピューティングデバイスに適合されるオペレーティングシステムの画像は、対応するパワー及びメモリ構成を有し得る。クライアントコンピューティングデバイス106はまた、デスクトップストアのコピーを有する最新の保存バージョンのデータとも適合され得る。最後に、クライアントコンピューティングデバイス106はまた、サービスプロバイダコンピュータネットワーク105から仮想デスクトップ監視モジュール601を受け取って、提供されるオペレーティングシステムの画像に基づいてインスタンス114’を起動し、また、インスタンス114’をデスクトップストア170’のローカルコピーに取り付け得る。その後に、クライアントコンピューティングデバイス106がネットワーク104から接続解除されたときに、ユーザは、インスタンスがクライアントコンピューティングデバイス106上でローカルに実行されている状態で、デバイスの使用を継続し得る。次いで、クライアントコンピューティングデバイス106は、データと、航空機内にいる間に実行される適合したバージョンのインスタンスとを有し得る。
別の実施形態において、クライアントコンピューティングデバイス106には、PESプラットフォーム102と接続することなく、オペレーティングシステムの画像のコピー、インスタンスマネージャ、及び仮想デスクトップ監視モジュール601が供給され得る。例えば、エンティティのコンピューティングデバイス106は、エンティティの情報技術(IT)部門によって、適切な画像及びモジュールで構成され得る。PESプラットフォーム102と接続すると、及びそこから接続解除する前に、随意に、承認を受けるよう促された後に、クライアントコンピューティングデバイス106には、デスクトップストアのコピーを有する最新の保存バージョンのデータが提供され得る。次いで、仮想デスクトップ監視モジュール601は、オペレーティングシステムの画像に基づいてインスタンス114’を起動し得、また、インスタンス114’をデスクトップストア170’のローカルコピーに取り付け得る。その後に、クライアントコンピューティングデバイス106がネットワーク104から接続解除されたときに、ユーザは、インスタンスがクライアントコンピューティングデバイス106上でローカルに実行されている状態で、デバイスの使用を継続し得る。次いで、クライアントコンピューティングデバイス106は、データと、航空機内にいる間に実行される適合したバージョンのインスタンスとを有し得る。
次いで、クライアントコンピューティングデバイス106のユーザがサービスプロバイダのネットワーク内の領域に戻ったとき(例えば、その目的都市で航空機を降りたとき)、PESプラットフォーム102は、クライアントコンピューティングデバイス106でリモートコンピューティングセッションを再確立し、全てのユーザのデータが同期され、したがって、アプリケーションプロセスの使用におけるユーザの途絶が最小にされる。
リモートのネットワーク化された環境からローカルのネットワーク化された環境への仮想インスタンスの動作の移行に関与するステップは、図6で示される。ステップ(1)で、クライアントコンピューティングデバイス106とPESプラットフォーム102との間でリモートセッションが開始される。上で説明されるように、ユーザプロファイルストアがアクセスされ、適切なインスタンスがユーザに構成される。インスタンスの構成に続いて、仮想インスタンスデスクトップを起動するためにデータセンターコンピュータ110が選択され、ユーザには、データセンターコンピュータ110上の仮想デスクトップインスタンス114へのアクセスが提供される。
次いで、ステップ(2)で、ユーザがリモートセッションで仮想デスクトップインスタンスにアクセスしている間、デスクトッププロファイル及びユーザコンテンツに対するユーザの変更がデスクトップストア170に記憶される。ステップ(3)で、いくつかの実施形態において、クライアントコンピューティングデバイス106は、ネットワーク接続を喪失すると予想されることをPESプラットフォーム102に示し得る。そのように示した時点で、または同期させる目的で、PESプラットフォーム102は、ステップ(4)で、デスクトップストア170のコピー170’、インスタンス114によって実行されるオペレーティングシステムの画像のコピー、及びインスタンスマネージャ122のコピー122’を、クライアントコンピューティングデバイス106に提供し、よって、インスタンス114’は、クライアントコンピューティングデバイス106上でローカルに実行され、一方で、PESプラットフォーム102とのネットワーク接続が利用可能である。上で説明されるように、いくつかの実施形態において、オペレーティングシステムの画像、インスタンスマネージャ、及び仮想監視モジュール601は、既にクライアントコンピューティングデバイス106にインストールされ得、PESプラットフォームは、デスクトップストア170のコピー170’を提供するだけである。
インスタンス114’は、クライアントコンピューティングデバイス106上で利用できると、ローカルに実行され、ユーザのデスクトップ及びユーザコンテンツに対して行われた全ての変更は、デスクトップストア170’のローカルコピーに記憶される。次いで、PESプラットフォーム102とのネットワーク接続が再構築されたときに、ステップ(5)で、クライアントコンピューティングデバイス106のリモートコンピューティングアプリケーション130から、リモートコンピューティングセッションが要求される。上にあるように、ステップ(6A)で、データセンターコンピュータ110上の仮想デスクトップインスタンス114をインスタンス化するために、ユーザのユーザプロファイルが使用され、そしてステップ(6B)で、クライアントコンピューティングデバイス106がPESプラットフォームに接続されたときに、デスクトップストアのコピー170’が記憶サーバ107に保存される。次いで、ステップ(7A)で、デスクトップストアのコピー170’に対して行われた変更は、ユーザと関連付けられる主デスクトップストア170に同期され、そしてステップ(7B)で、リモートセッションで仮想インスタンス114と相互作用している間にユーザから受け取ったさらなる変更も、主デスクトップストア170に保存される。
図7は、PESプラットフォーム102のインスタンスによって起こるイベントである、シームレスリモートコンピューティングセッションを提供し、クライアントコンピューティングデバイス106とPESプラットフォーム102との間でユーザデータを永続させるプロセスのルーチンの実例となるフロー図である。ルーチン700は、ブロック702から始まる。ブロック704で、PESプラットフォーム102が、システムのデータセンターコンピュータの上で動作している種々のインスタンスから、状態情報を受け取る。状態情報は、インスタンスから定期的に、またはインスタンスで所定のイベントが起こったときに受け取られ得る。受け取り間の期間は、ミリ秒単位、秒単位、分単位、または異なる持続時間単位であり得る。所定のイベントは、インスタンスの健全性、インスタンスのネットワーク接続性の健全性、等に関連し得る。PESプラットフォーム102は、ルーチン700の持続時間の全体を通して状態情報の受け取りを継続する。
ブロック706で、PESプラットフォーム102は、クライアントコンピューティングデバイスから新しいリモートコンピューティングセッションの要求を受け取る。ブロック708で、PESプラットフォーム102は、画像、及び画像を使用して生成されるインスタンスに割り当てるリソースの量を選択する。種々の実施形態において、適切なインスタンスは、要求を受け取るクライアントコンピューティングデバイスのユーザと関連してユーザプロファイルストアに含まれる情報に基づき得る。インスタンスが選択されると、インスタンスをホストするために適切なデータセンターコンピュータが選択され得、ブロック710で、PESプラットフォーム102は、インスタンスとクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションを開始する。ブロック712で、PESプラットフォームは、そのユーザのために、特定のデータストアをインスタンスに取り付ける。
次いで、リモートコンピューティングセッションが確立される間に、ブロック714で、PESプラットフォーム102でのユーザと仮想デスクトップインスタンスとの相互作用によって作成されたデータが、選択されたデスクトップストアに保存される。いくつかの実施形態において、PESプラットフォーム102は、追加的に、受け取ったデータを第2のデスクトップストアにコピーし得る。いくつかの実施形態において、PESプラットフォーム102は、デスクトップストアの記憶領域を解放するために、データを集中PESリポジトリに定期的に転送し得る。次いで、ブロック716で、PESプラットフォーム102は、リモートコンピューティングセッションに関与するインスタンスの不具合を検出する。一実施形態において、PESプラットフォーム102は、インスタンスから受け取った状態情報に基づいて、または代替的に、インスタンスからそのような状態情報を受け取らないことに基づいて、不具合を識別し得る。
ブロック716でインスタンスの不具合を検出した後に、ブロック718で、PESプラットフォーム102は、第2の仮想デスクトップインスタンスがデータを利用できるようにさせる。データを同期させることを通して、またはデスクトップストアと最初のインスタンスとの関連付けを除去し、デスクトップストアと新しいインスタンスとを関連付けることによって、第2の仮想デスクトップインスタンスがデータを利用できるようにし得る。データが第2の仮想デスクトップインスタンスを利用できるようになると、ルーチンは、次いでブロック720へ移動する。いくつかの実施形態において、PESプラットフォーム102の仮想デスクトップインスタンスは、ユーザプロファイルに従って予め構成され得る。そのような実施形態において、ブロック716で不具合が検出されると、次いで、PESプラットフォーム102は、必要なユーザプロファイルで予め構成されている別のインスタンスを識別する。あるいは、インスタンスは、ブロック716で不具合を検出した後に構成され得る。次いで、ブロック720で、識別した新しいインスタンスによって、必要なIPアドレス情報がクライアントコンピューティングデバイスに通信され、そして、リモートコンピューティングセッションが再確立される。ルーチン700は、ブロック722で終了する。
図8は、クライアントコンピューティングデバイスに不具合が生じた後にハードドライブの画像を復元するために、サービスプロバイダとクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションを使用するためのルーチンの実例となるフロー図である。ブロック804で、デスクトップ復元サービスを提供する目的で、クライアントコンピューティングデバイスとPESプラットフォームとの間のリモートコンピューティングセッションが確立され得る。セッションが確立されると、ブロック806で、PESプラットフォームは、クライアントコンピューティングデバイスのハードドライブの画像を記憶し得る。いくつかの実施形態において、クライアントコンピューティングデバイスは、リモートコンピューティングアプリケーションに加えて、オペレーティングシステム及びアプリケーションをローカルに動作させ得る。そのような実施形態において、クライアントコンピューティングデバイスは、ローカルハードドライブ画像を有し、該画像は、該デバイス上で実行されるオペレーティングシステム及びアプリケーションと関連付けられる全ての処理及び構成情報を含む。いくつかの実施形態において、リモートコンピューティングセッションは、クライアントコンピューティングデバイスのハードドライブの画像を複製するために使用され得る。画像の記憶は、クライアントコンピューティングデバイスとPESプラットフォーム102との間のネットワーク接続帯域幅に依存する期間にわたり得る。ハードドライブ画像の記憶はまた、クライアントコンピューティングデバイスのユーザによってハードドライブに対して行われた変更の複製も含み得る。行われた変更は、定期的に、またはネットワーク帯域幅の可用性に応じて複製され得る。同様に、いくつかの実施形態において、クライアントコンピューティングデバイスのハードドライブの画像を記憶する代わりに、PESプラットフォームは、ユーザコンテンツ(例えば、該コンテンツに記憶したフォルダ及びファイル、ならびに他のフォルダ)、及びユーザのデスクトッププロファイルの設定(例えば、背景画像、スクリーンセーバー、デスクトップ上のフォルダ及びファイルのレイアウト等)を記憶し得る。
次いで、ブロック808で、クライアントコンピューティングデバイスの不具合が検出され得る。クライアントコンピューティングデバイスの不具合は、停電、ネットワークの接続解除、ソフトウェアまたはハードウェアの不具合、またはリモートセッションを接続解除させる任意の他の不具合に起因し得る。ハードドライブの画像及び該画像に対する全ての変更は、PESプラットフォームで利用できる。
結果的に、クライアントコンピューティングデバイスのユーザが新しいクライアントコンピューティングデバイスを利用するか、または同じデバイスを使用してデスクトップ復元サービスに再接続するときに、新しいリモートセッションの要求がPESプラットフォーム102に送られる。要求を受け取ると、ブロック810で、PESプラットフォームは、ユーザプロファイルストアから取り出したユーザ識別子に従って、記憶し、ユーザと関連付けたハードドライブの画像を有する仮想デスクトップインスタンスを構成する。次いで、ブロック812で、PESプラットフォーム102が、ユーザのコンピューティングデバイスとのリモートコンピューティングセッションを確立する。リモートコンピューティングセッションが確立されると、PESプラットフォーム102は、記憶したハードドライブに基づいてユーザがインスタンスにアクセスすることを可能にするか、または代替的に、ユーザについて保存したユーザコンテンツ及びデスクトッププロファイルへのアクセスをユーザに提供する。ルーチン800は、ブロック816で終了する。
図9は、リモートコンピューティングセッションのユーザと関連付けられるプロセス要件に基づいて仮想デスクトップインスタンスを構成するためのルーチンの実例となるフロー図である。上で説明されるように、クライアントコンピューティングデバイスがイベントまたはユーザの要求に応じてリモートコンピューティングアプリケーションをロードするときに、新しいリモートコンピューティングセッションがインスタンス化され得る。リモートコンピューティングアプリケーションをロードした後に、クライアントコンピューティングデバイスは、新しいリモートコンピューティングセッションを要求し得る。
ルーチン900は、ブロック902から開始する。ブロック904で、クライアントコンピューティングデバイスからリモートコンピューティングセッションの要求を受け取る。ブロック906で、要求とともに含まれるユーザログインによって決定されるユーザ識別子に基づいて、PESプラットフォーム102は、ユーザプロファイルストアに記憶されるような、ユーザと関連付けられるユーザプロファイルを決定する。次いで、ブロック908で、ユーザプロファイルから、ユーザに提供されるインスタンスの処理要件が決定される。次いで、ブロック910で、PESプラットフォーム102が、仮想画像ストアから仮想デスクトップ画像テンプレートを取得する。例えば、ユーザプロファイルは、ユーザが「プレミアム」インスタンスを割り当てられたことを示し得、これは、大量のリソース(メモリ、CPUコア、ネットワーク帯域幅、GPUコード等)及びプレミアムセットのアプリケーションを有するインスタンスがユーザに割り当てられることを示す。ブロック912に移ると、仮想デスクトップインスタンスをホストするために、データセンターコンピュータシステムを選択することができ、そして、インスタンスのテンプレートを、選択したコンピュータシステムに送ることができる。コンピュータシステム上のインスタンスマネージャは、仮想デスクトップインスタンスを起動することができる。ユーザプロファイルは、エンティティの管理者によって定められるようにインスタンス要件に対する制限を含み得る。次に、ブロック914で、(例えば、データストアをインスタンスに取り付けすることによって)適切なインスタンスが構成されると、インスタンスとクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションが確立される。ルーチン900は、ブロック916で終了する。
図10は、プロセス要件の変更に適応するためのリモートコンピューティングセッションを構成するためのルーチンの実例となるフロー図である。上で説明されるように、クライアントコンピューティングデバイスがイベントまたはユーザの要求に応じてリモートコンピューティングアプリケーションをロードするときに、新しいリモートコンピューティングセッションがインスタンス化され得る。リモートコンピューティングアプリケーションをロードした後に、クライアントコンピューティングデバイスは、新しいリモートコンピューティングセッションを要求し得る。ルーチン1000は、ブロック1002から開始する。ブロック1004で、クライアントコンピューティングデバイスから要求を受け取ると、PESプラットフォーム102は、クライアントコンピューティングデバイスのユーザのユーザプロファイルに基づいて、クライアントコンピューティングデバイスの処理要件を決定する。PESプラットフォーム102は、要求された新しいリモートセッションを使用可能にするために、データセンターコンピュータを選択する。
例えば、電子メールプログラムまたはウェブブラウザ等の、低い処理要件を有するアプリケーションを実行することを望む、または実行する許可が与えられたクライアントコンピューティングデバイスのユーザは、低い処理パワー能力だけ(例えば、1つまたは2つのCPUコア、及び1ギガバイトのRAM)及びそのようなアプリケーションだけが供給される、仮想デスクトップインスタンスと関連付けられ得る。すなわち、ユーザプロファイルは、ユーザに「小さい」インスタンスが割り当てられることを示し得るか、またはユーザプロファイルは、ユーザに、最初に、ユーザがどのようにインスタンスを使用しているのかに基づいて動的に大きくなる可能性がある「小さい」インスタンスが割り当てられることを示し得る。対照的に、プロ用の製図用または写真編集用アプリケーション等の、より高い処理要件を有するアプリケーションを実行することを望む、または実行する許可が与えられたクライアントコンピューティングデバイスのユーザは、高い処理パワー能力(例えば、4つまたは8つのCPUコア、及び16ギガバイトのRAM)及びそのようなアプリケーションが供給される、異なる仮想デスクトップインスタンスと関連付けられ得る。同様に、ユーザプロファイルは、ユーザに、最初に、ユーザがどのようにインスタンスを使用しているのかに基づいて小さくなり得る「プレミアム」インスタンスが割り当てられることを示し得る。ユーザまたはクライアントコンピューティングデバイスと関連付けられる処理要件は、様々な因子に基づいて決定され得る。決定は、リモートコンピューティングアプリケーションの起動時のユーザの要求に基づき得る。決定はまた、リモートコンピューティングアプリケーションを起動したときに伝送されるデータで示されるように、ある特定のユーザについて予め選択されたオプションにも基づき得る。
PESプラットフォーム102が、クライアントコンピューティングデバイスの要求に必要な処理要件を決定すると、次いで、ブロック1006で、仮想デスクトップインスタンスとクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションが確立される。セッションを確立した後に、ブロック1008で、クライアントコンピューティングデバイスのユーザによってインスタンスの使用を監視することに基づいて、インスタンスが動的に調整され得る。
例えば、最初の仮想デスクトップインスタンスには、ユーザプロファイルに基づいて、低いリソースが供給され得る。しかしながら、しばらくして、ユーザは、データベースに関する作業を行うため等で、特定の作業を行うためにより多くのリソースを有する仮想デスクトップインスタンスへのアクセスを要求し得る。いくつかの実施形態において、異なる要件の要求は、デスクトップインターフェース上のアプリケーションのアイコンをユーザが選択することによって開始され得る。いくつかの実施形態において、要求は、ユーザがコントロールパネルのオプションのリストからあるオプションを選択することによって開始され得る。例えば、オプションのリストは、異なる量の処理パワー及びメモリのスライド制を含み得る。
PESプラットフォーム102は、より多くの処理パワー及び記憶に適応するために、仮想デスクトップインスタンスに割り当てられるリソースの量を動的に調整し得る。いくつかの実施形態において、調整は、同じまたは異なるデータセンターコンピュータ上のインスタンスを再起動することを必要とし得る。仮想デスクトップインスタンスを再起動することは、動作中のインスタンスを終了することと、インスタンスからデスクトップストアを関連付け解除することと、新しいインスタンスを起動するためにデータセンターコンピュータを選択することと、選択したデータセンターコンピュータに新しいインスタンスをインスタンス化することと、デスクトップストアと新しいインスタンスとを関連付けることとを含み得る。インスタンスがインスタンス化されると、ユーザには、ログインプロンプトによって該インスタンスへのアクセスが提供され得る。
他の実施形態において、調整は、インスタンスを終了することなく、追加的なリソースを仮想デスクトップインスタンスに加えることを含み得る。例えば、インスタンスマネージャは、別のプロセッサを仮想デスクトップインスタンスに加えること、メモリを仮想デスクトップインスタンスに加えること等ができる。ルーチン1000は、ブロック1010で終了する。
図11は、リモート環境とローカル環境との間でのクライアントコンピューティングデバイス及びサービスプロバイダの動作の移行のルーチンの実例となるフロー図である。ルーチンは、1102から開始する。ブロック1104で、仮想デスクトップインスタンスとクライアントコンピューティングデバイスとの間にリモートコンピューティングセッションが確立される。セッションは、上で説明されるように、クライアントコンピューティングデバイスのユーザと関連付けられるユーザプロファイルに基づいて確立され得る。加えて、デスクトップストアは、ユーザのインスタンスと関連付けられる。セッションが確立された後に、ブロック1106で、PESプラットフォーム102が、ユーザとクライアントコンピューティングデバイス上のインスタンスとの相互作用によって作成されるデータをデスクトップストアに記憶する。次いで、判定ブロック1108で、PESプラットフォーム102が、クライアントコンピューティングデバイスとPESプラットフォーム102との間でネットワーク接続の喪失が予定されているかどうかを判定する。例えば、クライアントコンピューティングデバイスのユーザは、航空機に搭乗する準備中であり得、ユーザは、差し迫ったネットワークの接続解除を示し得る。
いかなるそのような接続解除も予想されていないので、ブロック1106で、PESプラットフォーム102は、クライアントコンピューティングデバイスでのユーザの相互作用によるデータの受け取りを継続し、データを記憶する。しかしながら、ブロック1108で、PESプラットフォーム102が、ネットワーク接続の喪失が予定されていると判定した場合、ルーチンは、ブロック1110に移動し、PESプラットフォーム102は、仮想デスクトップインスタンスを生成するために使用した画像(例えば、OS及びインストールしたアプリケーションの画像)のコピーをクライアントコンピューティングデバイスに複製し、さらに、デスクトップストアのコピーもクライアントコンピューティングデバイスに複製する。いくつかの実施形態において、仮想デスクトップインスタンスをインスタンス化するために使用される画像を複製するには、かなりの時間を必要とし得る。したがって、ユーザは、それに応じて予定を立てる必要があり得る。代替の実施形態において、クライアントコンピューティングデバイスには、ユーザが接続解除モードに入ることが必要となる前のある時点で、仮想デスクトップインスタンスを生成するために、または画像のコピーを受け取るために使用される画像を供給することができる。この実施形態において、PESプラットフォーム102が、ネットワーク接続を喪失すると判定したとき、PESプラットフォーム102は、デスクトップストアをクライアントコンピューティングデバイスに送らせることができる。ここで、PESプラットフォーム102は、デスクトップストアにある全てのものをクライアントコンピューティングデバイスに送る必要がない場合があり、むしろ、PESプラットフォーム102は、最後にPESプラットフォーム102をクライアントコンピューティングデバイスと同期させてからの変更を送ることができる。例えば、ローカルインスタンスマネージャは、最後に変更が行われた時間を示すタイムスタンプ、ならびにローカルデスクトップストアにおいてどのブロックを変更したのかを示す変更ログを維持することができ、PESプラットフォーム102は、デスクトップストアについてタイムスタンプ及び変更ログを維持することができる。PESプラットフォーム102及びローカルインスタンスマネージャは、差異を決定し、同期させることができる。代替の実施形態において、変更ログは、ブロックレベルでの代わりに、ファイルシステムレベルで維持することができる。例えば、インスタンスのエージェントは、変更を記録することができる。この構成では、ブロックの代わりに、変更したファイル及び設定を同期させることができる。いくつかの実施形態において、クライアントコンピューティングデバイスは、データセンターコンピュータ上で実行される、より低いパワーで、より低いエネルギー集約的なバージョンのインスタンスに適合し得る。
その後に、クライアントコンピューティングデバイス106がネットワーク104から接続解除されたときに、ユーザは、ローカルに記憶した画像からローカル仮想デスクトップインスタンスを動作させ、ローカルデータストアを取り付ける。ここで、デスクトッププロファイル及びユーザコンテンツに対する変更は、デスクトップストアのローカルコピーに記憶される。次いで、例えばクライアントコンピューティングデバイス106のユーザがサービスプロバイダのネットワークに対してネットワーク接続性を有する領域に戻ったとき(例えば、その目的都市で航空機を降りたとき)等の、PESプラットフォーム102とのネットワーク接続が再確立されたときに、ブロック1112で示されるように、クライアントコンピューティングデバイスからリモートコンピューティングセッション要求を受け取り、ローカルデスクトップストアをデスクトップストアと同期させる。具体的な実施例において、同期化動作は、ユーザがPESプラットフォーム102において仮想デスクトップインスタンスを開始しようと試みるときに起こり得る。クライアントコンピューティングデバイス106をPESプラットフォーム102に接続したときに、デスクトップストア170のコピーがPESプラットフォーム102の記憶サーバ107に保存される。デスクトップストア170のコピーに対して行われる変更は、ユーザと関連付けられる主デスクトップストア1400に同期され、さらに、リモートセッションにおいて仮想インスタンスと相互作用している間にユーザから受け取った変更も、主デスクトップストア170に保存される。ルーチン1100は、ブロック1114で終了する。
本開示の実施形態は、以下の付記を考慮して説明することができる。
付記1.
プロセッサ及びメモリを含むプログラム実行サービス(PES)の1つ以上のコンピュータを備え、メモリは、実行時に、
コンピューティングデバイスから仮想デスクトップインスタンスの要求を受け取ることであって、要求は、コンピューティングデバイスのユーザを識別する、受け取ることと、
要求に対応する仮想デスクトップインスタンスを識別することであって、仮想デスクトップインスタンスは、ホストコンピュータシステムと関連付けられ、ホストコンピュータシステムは、1つ以上のプロセッサ及びメモリを含む、識別することと、を1つ以上のコンピュータに行わせる命令を含み、メモリは、実行時に、
ネットワークを通じて第1のデスクトップストアを仮想デスクトップインスタンスに取り付けすることであって、第1のデスクトップストアは、ユーザのデスクトッププロファイル、及びユーザコンテンツを含む1つ以上のフォルダを含む、取り付けすることと、
ユーザのデスクトッププロファイルに従ってカスタマイズされ、ユーザコンテンツに対する変更を第1のデスクトップストアに記憶された1つ以上のフォルダに記憶するように構成される、仮想デスクトップインスタンスへのアクセスを、コンピューティングデバイスに提供することと、
仮想デスクトップインスタンスによって行われたユーザコンテンツに対する変更を、第1のデスクトップストアに記憶された1つ以上のフォルダに書き込むことと、を1つ以上のコンピュータに行わせる命令を含み、
第1のデスクトップストアに記憶される1つ以上のフォルダのユーザコンテンツは、第2のデスクトップストアに複製される、
システム。
付記2.第1のデスクトップストアは、第1のサーバに記憶され、第2のデスクトップストアは、第2のサーバに記憶される、付記1に記載のシステム。
付記3.PESの1つ以上のコンピュータは、第1のデスクトップストアをホストする記憶サーバを含み、記憶サーバは、要求に応じて、第1のデスクトップストアのスナップショットを生成するように構成される、付記1に記載のシステム。
付記4.命令はさらに、実行時に、第1及び第2のデスクトップストアのスナップショットの定期的な作成をホストコンピュータシステムに行わせる、付記1に記載のシステム。
付記5.第1のデスクトップストア及び第2のデスクトップストアは、それぞれ、互いに独立したネットワークの中に位置するサーバに記憶される、付記1に記載のシステム。
付記6.
仮想デスクトップインスタンスのコンピューティングデバイスから要求を受け取ることであって、要求は、コンピューティングデバイスのユーザを識別する、受け取ることと、
要求に対応する第1の仮想デスクトップインスタンスを識別することと、
ネットワークを通じて第1のデスクトップストアを第1の仮想デスクトップインスタンスに取り付けすることであって、第1のデスクトップストアは、ユーザのデスクトッププロファイル、及びユーザコンテンツを含む1つ以上のフォルダを含む、取り付けすることと、
ユーザのデスクトッププロファイルに従ってカスタマイズされ、ユーザコンテンツに対する変更を第1のデスクトップストアに記憶された1つ以上のフォルダに記憶するように構成される、第1の仮想デスクトップインスタンスへのアクセスを、コンピューティングデバイスに提供することと、
第1の仮想デスクトップインスタンスによって行われたユーザコンテンツに対する変更を、第1のデスクトップストアに記憶された1つ以上のフォルダに書き込むことと、
を含む、コンピュータ実装の方法。
付記7.
第1の仮想デスクトップインスタンスに関連するイベントを決定することと、
要求に対応する第2の仮想デスクトップインスタンスを識別することと、
第1の仮想デスクトップインスタンスから第1のデスクトップストアを取り離すことと、
第1のデスクトップストアを第2の仮想デスクトップインスタンスに取り付けることと、
第2の仮想デスクトップインスタンスへのアクセスを、コンピューティングデバイスに提供することと、
をさらに含む、付記6に記載のコンピュータ実装の方法。
付記8.第1のデスクトップストアに記憶された1つ以上のフォルダのユーザコンテンツは、第2のデスクトップストアに複製される、付記6に記載のコンピュータ実装の方法。
付記9.第1のデスクトップストアに記憶された1つ以上のフォルダへの第1の仮想デスクトップインスタンスによって行われたユーザコンテンツに対する変更は、第2のデスクトップストアに複製される、付記8に記載のコンピュータ実装の方法。
付記10.
第1のデスクトップストアに関連するイベントを決定することと、
第1の仮想デスクトップインスタンスから第1のデスクトップストアを取り離しすることと、
第2のデスクトップストアを第1の仮想デスクトップインスタンスに取り付けすることと、
をさらに含む、付記9に記載のコンピュータ実装の方法。
付記11.
第1の仮想デスクトップインスタンスに関連するイベントを決定することと、
要求に対応する第2の仮想デスクトップインスタンスを識別することと、
第1の仮想デスクトップインスタンスから第2のデスクトップストアを取り離しすることと、
第2のデスクトップストアを第2の仮想デスクトップインスタンスに取り付けすることと、
第2の仮想デスクトップインスタンスへのアクセスを、コンピューティングデバイスに提供することと、
をさらに含む、付記10に記載のコンピュータ実装の方法。
付記12.
第1の仮想デスクトップインスタンスに関連するイベントを決定することと、
要求に対応する第2の仮想デスクトップインスタンスを識別することと、
第1の仮想デスクトップインスタンスから第1のデスクトップストアを取り離しすることと、
第1のデスクトップストアを第2の仮想デスクトップインスタンスに取り付けすることと、
第2の仮想デスクトップインスタンスへのアクセスを、コンピューティングデバイスに提供することと、
をさらに含む、付記9に記載のコンピュータ実装の方法。
付記13.
第1のデスクトップストアに関連するイベントを決定することと、
第2の仮想デスクトップインスタンスから第1のデスクトップストアを取り離しすることと、
第2のデスクトップストアを第2の仮想デスクトップインスタンスに取り付けすることと、
をさらに含む、付記12に記載のコンピュータ実装の方法。
付記14.第1のデスクトップストアのスナップショットは、記憶サーバに定期的に保存される、付記6に記載のコンピュータ実装の方法。
付記15.コンピュータ実行可能な命令を備える非一時的な物理的コンピュータ記憶装置であって、命令は、実行されたときに、
仮想デスクトップインスタンスのクライアントから要求を受け取ることであって、要求は、クライアントのユーザを識別する、受け取ることと、
要求に対応する第1の仮想デスクトップインスタンスを識別することであって、第1の仮想デスクトップインスタンスは、ホストコンピュータシステムと関連付けられ、ホストコンピュータシステムは、1つ以上のプロセッサ及びメモリを含み、メモリは、実行時に、
ネットワークを通じて第1のデスクトップストアを第1の仮想デスクトップインスタンスに取り付けすることであって、第1のデスクトップストアは、ユーザのデスクトッププロファイル、及びユーザコンテンツを含む1つ以上のフォルダを含む、取り付けすることと、
ユーザのデスクトッププロファイルに従ってカスタマイズされ、ユーザコンテンツに対する変更を第1のデスクトップストアに記憶された1つ以上のフォルダに記憶するように構成される、第1の仮想デスクトップインスタンスへのアクセスを、クライアントに提供することと、
第1の仮想デスクトップインスタンスによって行われたユーザコンテンツに対する変更を、第1のデスクトップストアに記憶された1つ以上のフォルダに書き込むことと、をホストコンピュータに行わせる命令を含む、
識別することと、
のうちの少なくとも1つをコンピューティングシステムに命令する、非一時的な物理的コンピュータ記憶装置。
付記16.第1のデスクトップストアに記憶された1つ以上のフォルダのユーザコンテンツは、第2のデスクトップストアに複製される、付記15に記載の非一時的な物理的コンピュータ記憶装置。
付記17.第1のデスクトップストアに記憶された1つ以上のフォルダへの第1の仮想デスクトップインスタンスによって行われたユーザコンテンツに対する変更は、第2のデスクトップストアに複製される、付記16に記載の非一時的な物理的コンピュータ記憶装置。
付記18.第1のデスクトップストアのスナップショットは、記憶サーバに定期的に保存される、付記15に記載の非一時的な物理的コンピュータ記憶装置。
付記19.コンピュータ実行可能な命令は、実行されたときにさらに、
第1の仮想デスクトップインスタンスに関連する遮断を決定することと、
要求に対応する第2の仮想デスクトップインスタンスを識別することと、
第1のデスクトップストアを第2の仮想デスクトップインスタンスに取り付けすることと、
第2の仮想デスクトップインスタンスへのアクセスを、クライアントに提供することと、をコンピューティングシステムに命令する、付記15に記載の非一時的な物理的コンピュータ記憶装置。
付記20.コンピュータ実行可能な命令は、実行されたときにさらに、第1の仮想デスクトップインスタンスから第1のデスクトップストアを取り離しすることを、コンピューティングシステムに命令する、付記19に記載の非一時的な物理的コンピュータ記憶装置。
実例となる実施形態を開示し、論じてきたが、当業者は、追加または代替の実施形態が本発明の趣旨及び範囲の範囲内で実現され得ることを認識するであろう。例えば、本明細書で説明される技法は、画像またはビデオ編集ソフトウェア、データベースソフトウェア、オフィス生産性ソフトウェア、3D設計ソフトウェア、オーディオ及びサウンド処理アプリケーション等が挙げられるが、それらに限定されない、任意の数の他のソフトウェアアプリケーション及びプロセスにおけるリモート処理管理を可能にするために、本発明の範囲から逸脱することなく利用され得る。加えて、数多くの実施形態を実例として示してきたが、当業者は、実例となる実施形態を組み合わせる、またはともに実現する必要がないことを認識するであろう。よって、いくつかの実例となる実施形態は、本開示の変形の範囲に従って利用する、または実現する必要はない。
数ある中でも、「できる(can)」、「かもしれない(could)」、「してもよい(might)」、または「得る(may)」等の条件付き言語は、別途具体的に提示されない限り、または別様に使用される文脈内で理解されるように、一般に、特定の実施形態が特定の特徴、要素、及び/またはステップを含む一方で、他の実施形態がそれらを含まないことを伝えるよう意図される。したがって、そのような条件付き言語は、一般に、特徴、要素、及び/もしくはステップが、いかなる形であれ1つ以上の実施形態に必要であること、または、ユーザによる入力もしくは表示の有無に関わらず、これらの特徴、要素、及び/もしくはステップが任意の特定の実施形態に含まれていようと、そこで実行されようと、1つ以上の実施形態が、決定するための論理を必然的に含むことを示唆することを意図しない。
本明細書で説明される、及び/または添付図面で描写されるフロー図の中の任意のプロセス記述、要素またはブロックは、特定の論理機能またはステップをプロセスの中に実現するための1つ以上の実行可能な命令を含む、モジュール、セグメント、またはコードの一部を可能性として表すものとして理解されたい。代替の実現形態は、本明細書で説明される実施形態の範囲内に含まれ、その中の要素または機能は、当業者によって理解されるように、関与する機能性に依存して、削除され得、示されるまたは論じられる順序とは異なる順序で実行され得、または逆の順序で実行され得る。さらに、上で説明されるデータ及び/または構成要素は、コンピュータ読み出し可能な媒体に記憶され、コンピュータ読み出し可能な媒体と関連付けられる駆動機構を使用してコンピューティングデバイスのメモリにロードされ得、CD−ROM、DVD−ROM等の任意の数のコンピュータ実行可能な構成要素に記憶され得、またはネットワークインターフェースを介して提供もしくは取得され得ることが認識されるであろう。さらに、構成要素及び/またはデータは、単一のデバイスに含むことができ、または任意の様式で分散させることができる。故に、汎用コンピューティングデバイスは、上で説明される種々のデータ及び/または構成要素の処理及び/または実行とともに、本開示のプロセス、アルゴリズム、及び方法論を実現するように構成され得る。
上で説明した実施形態には多くの変形及び修正が行われ得ることが強調されるべきであり、その要素は、数ある他の許容される実施例の中にあると理解されたい。全てのそのような修正及び変更は、本明細書において、本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることが意図される。