(57)【要約】      （修正有）【課題】リソースに最適レベルの可用性、スケーラビリティ、及び信頼性を提供する。【解決手段】リモートコンピューティングセッション管理プロセスは、プログラム実行サービス（ＰＥＳ）プラットフォームのデータセンタコンピュータで実行されるバーチャルインスタンスの態様の実行及び管理を対象とする。コンピューティングセッションは、通信ネットワーク上でＰＥＳプラットフォームと、ＰＥＳプラットフォームに接続されるコンピューティングデバイスとの間に確立されてよい。バーチャルインスタンスと対話するクライアントコンピューティングデバイスのユーザーによって作成されるデータは記憶されてよく、リモートコンピューティングセッションの中断に続いて、データは、リモートコンピューティングセッションを再確立するときに使用されてよい。【選択図】図１
2019008809.tif 000002
【特許請求の範囲】
【請求項１】
バーチャルデスクトップインスタンスと関連付けられた、可変リソースへの各ユーザーのアクセスのための１つまたは複数の規則を受信することと、
コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスし且つ前記コンピューティングデバイスのユーザーを識別する第１の要求を受信することと、
前記コンピューティングデバイスに対し、前記第１仮想デスクトップインスタンスを実行するために使用する、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、第１のバーチャルデスクトップインスタンスへのアクセスを提供することと、
前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも１つの可変リソースをスケーリングする変更を生じさせる第２の要求を受け取ることと、
前記少なくとも１つの可変リソースをスケーリングすることを特定する、前記可変リソースに対するそれぞれのユーザーのアクセスのための１つまたは複数の規則を処理することと、
前記第１仮想デスクトップインスタンスへのアクセスを中断することなく、前記少なくとも１つの可変リソースをスケーリングさせる、コンピュータ実装方法。
【請求項２】
さらに、前記仮想デスクトップインスタンスに関連する１つまたは複数のメモリの仕様又は処理パワーの仕様をスケーリングすることを備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１のバーチャルデスクトップインスタンスはユーザープロファイルに応じた前記リソースのセットで構成され、前記可変リソースへのアクセスのための前記１つまたは複数の規則は前記ユーザープロファイルに含まれる、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記ユーザーの個人デスクトップ情報及びユーザーのデータストアを含む１つまたは複数のボリュームを、前記第１のバーチャルデスクトップインスタンスにアタッチさせることをさらに備え、
前記第１のバーチャルデスクトップインスタンス内で実行中の第１のオペレーティングシステムは、前記ユーザーの前記個人デスクトップ情報及び前記ユーザーの前記データストアのストレージにマッピングされた１つまたは複数のオペレーティングシステムフォルダに保存される情報に従って個人向けにされる、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記１つまたは複数のボリュームを前記第１のバーチャルデスクトップインスタンスから切り離し、第２のバーチャルデスクトップインスタンスにアタッチさせることをさらに備える、請求項４に記載のコンピュータ実装方法。
【請求項６】
プロセッサ及びメモリを含む、プログラム実行サービス（ＰＥＳ）の１台または複数のコンピュータであって、前記メモリは、実行時に１台または複数のコンピュータに、
バーチャルデスクトップインスタンスと関連する可変リソースへの各ユーザーのアクセスのために、１つまたは複数の規則を確立する方針を受信させ、
コンピューティングデバイスのユーザーを識別する、コンピューティングデバイスからバーチャルデスクトップインスタンスへアクセスする第１の要求を受信させ、
第１仮想デスクトップインスタンスを実行するために使用するため、コンピューティングデバイスに対し、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、第１のバーチャルデスクトップインスタンスへのアクセスを提供させ、
前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも１つの可変リソースをスケーリングする変更を生じさせる第２の要求を受け取らせ、
前記リソースのセットへの変更の要求を許可するか否かを判断するために、ユーザーによる前記可変リソースへのアクセスに関連する前記１つまたは複数の規則を処理させ、
前記要求を許可する判断に応答し、前記第１のバーチャルデスクトップインスタンスへのアクセスを中断することなく、前記リソースのセットに変更を加えさせる、システム。
【請求項７】
前記リソースのセットは、前記バーチャルデスクトップインスタンスによって実行されるオペレーティングシステム、前記バーチャルデスクトップインスタンスと関連付けられたメモリ仕様、または前記バーチャルデスクトップインスタンスと関連付けられた処理パワー仕様のうちの１つまたは複数を備える、請求項６に記載のシステム。
【請求項８】
各ユーザーによる前記可変リソースへのアクセスに関連する前記１つまたは複数の規則は、各ユーザーに関連付けられたユーザープロファイルに記憶される、請求項６に記載のシステム。
【請求項９】
第１のバーチャルデスクトップインスタンスは、前記ユーザーと関連付けられた履歴リソースアクセス統計に基づいて構成される、請求項８に記載のシステム。
【請求項１０】
コンピュータ実行可能命令が実行されると、前記システムは、前記ユーザーのユーザーアカウントに関連する管理者に対し、前記ユーザーと関連付けられた前記１つまたは複数の規則に示されるリソースの量を超えたリソースのセットの要求を通知させる、請求項６に記載のシステム。
【請求項１１】
コンピュータ実行可能命令が実行されると、前記システムに、前記バーチャルデスクトップインスタンスにアクセスするためのコストを計算させる、請求項６に記載のシステム。
【請求項１２】
コンピュータ実行可能命令が実行されると、前記リソースのセットに基づき、前記バーチャルデスクトップインスタンスへのアクセスについて、期間あたりの単一従量制料金を使用しコストを前記システムに計算させる、請求項６に記載のシステム。
【請求項１３】
コンピュータ実行可能命令が実行されると、前記リソースのセットに変更を生じさせることを前記システムに判断させ、変更された前記リソースのセットに基づき、前記バーチャルデスクトップインスタンスへのアクセスについて期間あたりの可変料金を使用し、コストを計算するようにコンピューティングシステムに命令させる、請求項６に記載のシステム。
【請求項１４】
コンピュータ実行可能命令を備える非一過性物理コンピュータストレージであって、実行されると、コンピューティングシステムに、少なくとも、
バーチャルデスクトップインスタンスと関連付けられた可変リソースに対する各ユーザーのアクセスのために、１つまたは複数の規則を受信させ、
コンピューティングデバイスのユーザーを識別する、前記コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスするための第１の要求を受信させ、
第１仮想デスクトップインスタンスを実行するために使用するため、コンピューティングデバイスに対し、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、第１のバーチャルデスクトップインスタンスへのアクセスを提供させ、
前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも１つの可変リソースをスケーリングする変更を生じさせる第２の要求を受け取らせ、
各ユーザーによる前記可変リソースへのアクセスのための１つまたは複数の規則に基づき、前記リソースのセットに対する少なくとも１つの可変リソースを変更するかを決定させ、
前記決定に応答し、前記第１のバーチャルデスクトップインスタンスへのアクセスを中断することなく、前記少なくとも１つの可変リソースの調整を起こさせる、非一過性物理コンピュータストレージ。
【請求項１５】
前記コンピューティングデバイスの前記ユーザーから受け取った第２の要求は、変更された前記リソースのセットによって構成されたバーチャルデスクトップインスタンスへのアクセスの要求を備える、請求項１４に記載の非一過性物理コンピュータストレージ。
【請求項１６】
前記コンピュータ実行可能命令が実行されると、前記コンピューティングシステムに、前記ユーザーと関連付けられた前記１つまたは複数の規則に示されるリソースの量にまで、前記リソースのセットの量を変更するように命令する、請求項１５に記載の非一過性物理コンピュータストレージ。
【請求項１７】
前記コンピュータ実行可能命令が実行されると、前記コンピューティングシステムに、
前記第２の要求は前記ユーザーに関連する前記１つまたは複数の規則に示されるリソースの量を超えた前記リソースのセットの要求を備えることを特定させ、
前記ユーザーアカウントのユーザーに関連する管理者に通知させる、請求項１５に記載の非一過性物理コンピュータストレージ。
【請求項１８】
前記コンピュータ実行可能命令が実行されると、前記第１バーチャルデスクトップインスタンスにアクセスするためのコストを計算するように前記コンピューティングシステムにさらに命令する、請求項１４に記載の非一過性物理コンピュータストレージ。
【請求項１９】
前記コンピュータ実行可能命令が実行されると、前記リソースのセットによって構成された前記第１バーチャルデスクトップインスタンスに前記ユーザーがアクセスできる期間に基づき、前記コンピューティングシステムにコストを計算させる、請求項１８に記載の非一過性物理コンピュータストレージ。
【請求項２０】
前記コンピュータ実行可能命令が実行されると、前記リソースのセットで変更を生じさせることをコンピューティングシステムに判断させ、変更された前記リソースのセットで構成された前記第１バーチャルデスクトップインスタンスにアクセスする期間に基づき、前記コンピューティングシステムにコストを計算させる、請求項１８に記載の非一過性物理コンピュータストレージ。
【発明の詳細な説明】
【技術分野】
【０００１】
リモートネットワークコンピューティングプロバイダのデータセンタは、カスタマに対しコンピューティングリソースを提供するために多大な数の相互接続されたコンピューティングシステムを収容することがある。係るデータセンタは、ネットワークアクセス、電力、ハードウェアリソース（例えば、コンピューティング及びストレージ）、並びにデータセンタ、組織によってもしくは別のサードパーティによって維持されるハードウェアのための安全なインストール施設を提供してよい。
【背景技術】
【０００２】
データセンタリソースの活用の増加を促進するために、仮想化技術が単一の物理コンピューティングマシンが、接続されているコンピュータユーザーにとって独立したコンピュータマシンとして見え、動作するバーチャルマシンの１つまたは複数のインスタンスをホストできるようにしてよい。仮想化により、単一の物理コンピューティングデバイスはバーチャルマシンを動的に作成、維持、または削除できる。代わりに、ユーザーはデータセンタからコンピュータリソースを要求し、「必要に応じて」または少なくとも「要求に応じて」変化する数のバーチャルマシンリソースの提供を受けることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許公開第２０１３／００９７６０１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
バーチャルマシンリソースをそのユーザーに提供するリモートネットワークコンピューティングプロバイダは、概して係るリソースに最適レベルの可用性、スケーラビリティ、及び信頼性を提供しようと努力している。
【０００５】
前述の態様及び本発明に付随する効果の多くは、添付図面と併せて解釈されるときに以下の発明を実施するための形態を参照することによって同がよりよく理解されるため、より容易に認識されるようになるだろう。
【図面の簡単な説明】
【０００６】
【図１】クライアントコンピューティングデバイス及びサービスプロバイダコンピュータネットワークを含んだネットワーク化されたコンピューティング環境を示すブロック図である。
【図２】イベント後のバーチャルデスクトップインスタンスの管理、及びバーチャルデスクトップインスタンス間でのユーザーデータの永続記憶を示す図１のネットワーク化されたコンピューティング環境のブロック図である。
【図３】クライアントコンピューティングデバイスと関連付けられたイベントから回復するためのサービスプロバイダコンピュータネットワークとクライアントコンピューティングデバイスとの間の遠隔コンピューティングセッションの使用を示す、図１のネットワーク化されたコンピューティング環境のブロック図である。
【図４】異なるユーザープロファイルに従って多岐に渡るバーチャルデスクトップインスタンス要件に対応するサービスプロバイダコンピュータネットワークを示す図１のネットワーク化されたコンピューティング環境のブロック図である。
【図５】バーチャルデスクトップインスタンス要件の変更に対応するサービスプロバイダコンピュータネットワークを示す図１のネットワーク化されたコンピューティング環境のブロック図である。
【図６】動作がリモート環境からローカルのネットワーク化された環境へ遷移されるときのクライアントコンピューティングデバイス及びサービスプロバイダコンピュータネットワークを含んだ、図１のネットワーク化されたコンピューティング環境を示すブロック図である。
【図７】イベント後のバーチャルデスクトップインスタンスの管理、及びバーチャルデスクトップインスタンス間でのユーザーデータの永続記憶のためのルーチンを示す流れ図である。
【図８】サービスプロバイダコンピュータネットワークと、クライアントコンピューティングデバイスと関連付けられたイベントから回復するためのクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションの使用のためのルーチンを示す流れ図である。
【図９】異なるユーザープロファイルに従って決定される多岐に渡るバーチャルデスクトップインスタンス要件の対応のためのルーチンを示す流れ図である。
【図１０】バーチャルデスクトップインスタンス要件の変更の対応のためのルーチンを示す流れ図である。
【図１１】リモート環境とローカル環境との間でのクライアントコンピューティングデバイス及びサービスプロバイダコンピュータネットワークの動作の遷移のためのルーチンを示す流れ図である。
【発明を実施するための形態】
【０００７】
概して説明されるように、本開示は、１台または複数のクライアントコンピューティングデバイスと、プログラム実行サービス（ＰＥＳ）プラットフォームの１台または複数のリモートデータセンタコンピュータによってホストされるバーチャルデスクトップインスタンスとの間のリモートコンピューティングセッションの生成及び管理を対象とする。いくつかのデータセンタは、ＰＥＳのカスタマによるデータセンタのリソースの活用を促進できる単一のＰＥＳプラットフォームの一部として編成されてよい。いくつかの実施形態では、ＰＥＳは数百台のまたは数千台のデータセンタコンピュータを含んでよい。
【０００８】
本開示の態様は、ＰＥＳプラットフォームによるバーチャルデスクトップインスタンスの管理に関して説明される。クライアントコンピューティングデバイスは、１つまたは複数のリモートコンピューティングセッション中にバーチャルデスクトップインスタンスにアクセスできる。バーチャルデスクトップインスタンスはユーザーに、クライアントデスクトップ環境の機能のすべてであるが、クライアントによってアクセスされるサービスの集中型のプロビジョニングを提供できる。
【０００９】
第１の例示的な例に関して、ユーザーは、クライアントコンピューティングデバイスを介してリモートコンピューティングアプリケーション等のアプリケーションをロードする要求を送信する。要求の受信の後で、クライアントコンピューティングデバイスはリモートコンピューティングセッションを開始するためにＰＥＳプラットフォームと通信する。一実施形態では、クライアントコンピューティングデバイスとＰＥＳプラットフォームとの間の通信はログイン情報を含んでよい。他の実施形態では、通信はリソース使用情報、処理要件、またはクライアントコンピューティングデバイスのユーザーのためのリモートコンピューティングセッションの持続時間または条件に関する規則を識別する情報を含んでよい。クライアントコンピューティングデバイスはさらに、デバイスリソース（例えば、処理パワー、メモリ、ストレージ、ネットワーク使用等）の現在の可用性または将来の可用性を含むが、これに限定されるものではないデバイスの状態に関係する多様な情報を通信してよい。受信された情報を使用して、ＰＥＳプラットフォームは１つまたは複数のリモートコンピューティングセッションでの実行のために１つまたは複数のバーチャルデスクトップインスタンスを識別してよい。一例では、ＰＥＳプラットフォームは、データセンタコンピュータ上でバーチャルマシンインスタンスをインスタンス化できる、またはインスタンスさせることができる。バーチャルマシンインスタンスは、オペレーティングシステムを含む。クライアントコンピューティングデバイスは、次いでバーチャルマシンとのリモートコンピューティングセッションを確立し、オペレーティングシステムのユーザーインタフェース（例えば、グラフィックユーザーインタフェース等のオペレーティングシステムの出力、音声等）をクライアントコンピューティングデバイスに送信し、ユーザーに提示できる（例えば、グラフィックユーザーインタフェースは、クライアントコンピューティングデバイスのディスプレイ上でレンダリングされる）。オペレーティングシステムは、デスクトップ背景、スクリーンセーバー、デスクトップレイアウト、ポインタの好み、音声の設定等を設定することによって、ユーザーのためにバーチャルデスクトップインスタンスを構成するためにユーザーと関連付けられ、ＰＥＳによってアクセス可能なデスクトップストアに記憶されるデスクトッププロファイルを使用してよい。マウス及びキーボードの活動等のユーザー入力は、次いで該活動がバーチャルマシンで直接的にユーザーによって実行されるかのように、バーチャルマシンに送信し、オペレーティングシステムに投入することができる。
【００１０】
ＰＥＳプラットフォームは、クライアントコンピューティングデバイスの、リモートコンピューティングセッション中のクライアントコンピューティングデバイスでのバーチャルデスクトップインスタンスとの対話と関連付けられたデータを受信または生成してよい。データは、ユーザーデータ及び好み、ファイル等を含んでよい。ＰＥＳプラットフォームは、データを受信すると、バーチャルデスクトップインスタンスと関連付けられたデスクトップストアにデータを保存してよい。いくつかの実施形態では、デスクトップストアはボリューム上に、または別の論理ブロックストレージデバイス上に実装されてよい。いくつかの実施形態では、ＰＥＳはデータのバックアップコピーを作成してよい、またはデータを中央レポジトリに記憶してもよい。保存されたデータは、次いで例えばバーチャルデスクトップインスタンス、バーチャルデスクトップインスタンスをホストするサーバ、ネットワーク等の故障等の故障のために中断されたリモートコンピューティングセッションを復元するために使用されてよい。ＰＥＳプラットフォームは、ユーザーデータを保存することによって、リモートコンピューティングセッションの再確立が、クライアントコンピューティングデバイスのユーザーに対する遅延及び混乱を最小におさえることを保証する。
【００１１】
別の例示的な例では、提供されたバーチャルデスクトップインスタンスは、ＰＥＳのユーザープロファイルストアに記憶されるユーザープロファイルに従って構成されてよい。バーチャルデスクトップインスタンスの構成は、監視されるインスタンスの使用に従って調整されてもよい。いくつかの例では、ユーザープロファイルはユーザーの使用を管理するエンティティと関連付けられた管理者によって設定されてよい。ユーザープロファイルは、バーチャルデスクトップインスタンスの要件だけではなく、１つまたは複数のバーチャルデスクトップインスタンスを実行するＰＥＳコンピュータと関連付けられた多様なメモリ要件及び処理要件も示してよい。例えば、ユーザープロファイルは、ユーザーがバーチャルデスクトップインスタンスを使用している間にアクセスを与えられるプログラムを示してよい。ユーザープロファイルはまた、リモートコンピューティングセッションと関連付けられる最大時間またはコストを示してもよい。ＰＥＳはバーチャルデスクトップインスタンスを設置し、構成するときにユーザーのためのユーザープロファイルを考慮に入れてよい。さらに、設置及び構成の決定はまた、継時的なバーチャルデスクトップとのユーザーの対話に基づいて調整されてもよい。
【００１２】
別の例示的な例では、ＰＥＳプラットフォームは、ＰＥＳプラットフォームでデータセンタコンピュータの１台または複数の上のクライアントコンピューティングデバイスのコンピューティング環境のバックアップコピーを提供するために使用されてよい。以後、クライアントコンピューティングデバイスが不正アクセスされる場合、ＰＥＳプラットフォームとの新しいリモートコンピューティングセッションを開始すると、ユーザーは、最初に使用されたクライアントコンピューティングデバイスのコンピューティング環境のバックアップコピーを利用できてよい。新しいリモートコンピューティングセッションでは、ユーザーは同じクライアントコンピューティングデバイスまたは別のクライアントコンピューティングデバイスからＰＥＳプラットフォームに接続してよい。
【００１３】
さらに別の例示的な例では、クライアントコンピューティングデバイスとＰＥＳプラットフォームとの間のリモートコンピューティングセッションは、クライアントコンピューティングデバイスで実行されるバーチャルデスクトップインスタンスのバージョンを提供するために使用されてよい。インスタンスのバージョンは、クライアントコンピューティングデバイスのオペレーティングシステム、メモリ、及び処理パワーの仕様の内の１つまたは複数に従って適応されてよい。バーチャルデスクトップインスタンスの適応されたバージョンがクライアントコンピューティングデバイスの上にコピーされた状態で、デバイスはＰＥＳプラットフォームからの切断後にもバーチャルデスクトップインスタンスと対話を続けてよい。その後、ＰＥＳプラットフォームへの再接続時に、新しいバーチャルデスクトップインスタンスはクライアントコンピューティングデバイス上で実行された以前のバーチャルデスクトップインスタンスと同期してよい。
【００１４】
本開示に説明される実施形態の態様は、説明のために、バーチャルデスクトップインスタンス等のソフトウェアアプリケーションに対応する１つまたは複数のセッションの管理を説明することがあるが、当業者は本明細書に開示される技術が、オペレーティングシステムのプロセス及びサービスを含むが、これに限定されるものではない任意の数のソフトウェアプロセスに適用されてよいことを理解するだろう。さらに、本開示の多様な態様は例示的な例及び実施形態に関して説明されるが、当業者は、開示された実施形態及び例が制限的と解釈されるべきではないことを理解する。
【００１５】
図１は、通信ネットワーク１０４を介してサービスプロバイダコンピュータネットワーク１０５と通信するクライアントコンピューティングデバイス１０６を含んだネットワーク化されたコンピューティング環境１００を示すブロック図である。クライアントコンピューティングデバイス１０６は、リモートオペレーティングシステム及びアプリケーションへのアクセスをユーザーに提供するために使用されてよい。例示的な実施形態では、クライアントコンピューティングデバイス１０６は、パーソナルコンピューティングデバイス、ラップトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、端末コンピューティングデバイス、モバイル機器（例えば、携帯電話、タブレットコンピューティングデバイス、電子ブックリーダー等）、無線装置、多様な電子デバイス及び電子装置等を含む多岐に渡るコンピューティングデバイスに相当することがある。例示的な実施形態では、クライアントコンピューティングデバイス１０６は、広域ネットワークまたはローカルエリアネットワーク等の通信ネットワーク１０４上で通信を確立するために必要なハードウェア構成要素及びソフトウェア構成要素を含む。例えば、クライアントコンピューティングデバイス１０６は、インターネットまたはイントラネットを介した通信を容易にするネットワーキング設備及びブラウザソフトウェアアプリケーションを装備してよい。クライアントコンピューティングデバイス１０６は、中央演算処理装置及びアーキテクチャ、メモリ、大量記憶装置、グラフィック処理装置、通信ネットワーク可用性及び帯域幅等のさまざまなローカルコンピューティングリソースを有してよい。
【００１６】
一実施形態では、クライアントコンピューティングデバイス１０６は、リモートコンピューティングアプリケーション１３０を実行してよい。リモートコンピューティングアプリケーション１３０は、サービスプロバイダコンピュータネットワーク１０５によってホストされるバーチャルデスクトップインスタンスへのアクセスを要求してよい。また、リモートコンピューティングアプリケーション１３０は、クライアントコンピューティングデバイス１０６とサービスプロバイダコンピュータネットワーク１０５との間のリモートコンピューティングセッションを管理してもよい。さらに図１の参照を続けると、サービスプロバイダコンピュータネットワーク１０５は、ＰＥＳプラットフォーム１０２を含むこともある。図１に示されているＰＥＳプラットフォーム１０２は、サービスプロバイダと関連付けられた１つまたは複数のデータセンタの論理的な関連に対応する。ＰＥＳプラットフォーム１０２は、例えば、データセンタコンピュータ１１０等のいくつかのデータセンタコンピュータと関連付けることができる。各データセンタコンピュータ１１０は、１台または複数のバーチャルデスクトップインスタンス１１４をホストしてよい。データセンタコンピュータ１１０は、物理デバイス上でバーチャルマシンを実行することによってバーチャルデスクトップインスタンスをホストしてよい。バーチャルマシンは、オペレーティングシステム及びアプリケーションソフトウェアのインスタンスを実行してバーチャルデスクトップインスタンスを作成してよい。ＰＥＳ１０２によって実行される各バーチャルデスクトップインスタンスは、１台または複数のクライアントコンピューティングデバイスによってアクセスできる。
【００１７】
例証的に、データセンタコンピュータは、データセンタコンピュータがクライアントコンピューティングデバイス１０６によって直接的にアクセス可能とならないように、サービスプロバイダコンピュータネットワーク１０５内部でＩＰアドレス等のプライベートネットワークアドレスと関連付けられてよい。バーチャルデスクトップインスタンスは、サービスプロバイダコンピュータネットワーク１０５の端でゲートウェイによって利用可能にされてよい公衆網アドレスと関連付けられてよい。したがって、バーチャルデスクトップインスタンスは、公衆網アドレスを介してクライアントコンピューティングデバイスによって直接的にアドレス指定可能であってよい。当業者は、各データセンタコンピュータ１１０が、複数のバーチャルデスクトップインスタンスを実行するために、またはバーチャルデスクトップインスタンスを動的にインスタンス化するために、物理コンピューティングデバイスリソース及びソフトウェアを含むことを理解するだろう。係るインスタンス化は、クライアントコンピューティングデバイス１０６から等特定の要求に基づくことがある。
【００１８】
データセンタコンピュータ１１０は、インスタンスマネージャ１２２を含んでよい。インスタンスマネージャ１２２は、それぞれのインスタンス１１４と同じコンピュータ上、または別個のコンピュータ上にあってよい。インスタンスマネージャ１２２は、データセンタコンピュータ１１０で実行されるインスタンスの進行を追跡調査し、クライアントコンピューティングデバイスを介してインスタンス１１４と対話している間にユーザーによって作成されるデータのストレージを監視、及び調整し、データセンタコンピュータ１１０の、及びクライアントコンピューティングデバイス１０６上で実行中のリモートコンピューティングアプリケーションの全体的な健康及び状態を監視する。インスタンスマネージャ１２２は、データセンタコンピュータ１１０とクライアントコンピューティングデバイス１０６との間の多様なリモートコンピューティングセッションを効率的に管理するために、ＰＥＳプラットフォーム１０２のデータセンタ管理構成要素１０１による追跡調査及び監視を通じて収集される情報を通信する。
【００１９】
図１を引き続き参照すると、サービスプロバイダネットワーク１０５は、ストレージサービスプラットフォーム１０３も含む。ストレージサービスプラットフォーム１０３は１台または複数のストレージサーバ１０７を含んでよい、または１台または複数のストレージサーバ１０７に接続されてよい。ストレージサーバ１０７は、バーチャルデスクトップインスタンスによって生成または活用されるデータを記憶するために使用されてよい。バーチャルデスクトップインスタンスによって生成または活用されるデータは、１つまたは複数のリモートコンピューティングセッションを介したクライアントコンピューティングデバイス１０６とＰＥＳ１０２との間の対話に基づいてよい。
【００２０】
例証的に、ストレージサービスプラットフォーム１０３は、ホストされたバーチャルデスクトップインスタンス１１４と関連付けられた情報を論理的に編成し、デスクトップストアに維持できる。デスクトップストアで維持されるバーチャルデスクトップインスタンス１１４と関連付けられた情報は、ユーザーの好み、プログラムデータの実行と関連付けられた情報、ユーザーコンテンツ、ユーザーコンテンツに対する参照等を含むことがあるが、これに限定されるものではない。例えば、ストレージサービスプロバイダを通して含んだ、他のストレージデバイス上で音楽、ファイル等を記憶するためにユーザーによって使用されるフォルダは、それらのストレージ場所に対する参照を介してデスクトップストアにマッピングされてもよい。すなわち、これらのフォルダ内のファイルを開く要求等の入力／出力動作は、デスクトップストアにリダイレクトすることができる。したがって、ユーザーが自分のドキュメントフォルダに記憶されているファイルを開くことを試行するとき、要求はバーチャルデスクトップインスタンスで実行中のオペレーティングシステムによってデスクトップストアにリダイレクトできる。ユーザーによって作成されるデータに加えて、例えば、バックグラウンドピクチャ、フォント、アイコンの配列等のデスクトップのための構成情報を含んでよいユーザーのデスクトッププロファイルも、ユーザーのバーチャルデスクトップインスタンスと関連付けられたデスクトップストアに記憶される。以下により詳しく説明されるように、サービスプロバイダコンピュータネットワーク１０５は、データセンタコンピュータとは無関係にストレージサーバに記憶することによって、バーチャルデスクトップインスタンスを実行するデータセンタコンピュータ（複数の場合がある）１１０の故障、またはデータセンタコンピュータ（複数の場合がある）上でのバーチャルインスタンスの実行と関連付けられたエラーの影響を軽減できる。さらに、サービスプロバイダネットワーク１０５は、デスクトップストアに情報を維持することによって複数のバーチャルインスタンスとのクライアント対話を促進することもできる。いくつかの実施形態では、以下により詳細に説明されるように、１つのバーチャルデスクトップインスタンスが故障する場合、新しいインスタンスが起動され、故障したバーチャルデスクトップインスタンスに以前にアタッチされたのと同じデスクトップストアにアタッチされてよい。
【００２１】
論理的には、デスクトップストアは複数のサーバ全体で分散されてよく、デスクトップストアは異なるネットワーク領域内のサーバで性能のために複製されてよい、またはデスクトップストアはバックアップまたは障害性能のために独立した故障プロファイルを有する複数のサーバ全体で複製されてよい。すなわち、サーバは異なる電源または冷却システムにアタッチされてよく、サーバはデータセンタの異なる室内にまたは異なるデータセンタに位置してよく、及び／またはサーバは異なるルータまたはネットワークスイッチにアタッチされてよい。例証的に、いくつかの実施形態では、デスクトップストアは１台のストレージサーバ上にあってよく、デスクトップストアに対して行われる変更は異なるストレージサーバ上の別のデスクトップストアに複製されてよい。この複製がユーザーのデータのバックアップコピーを作成する。デスクトップストアが故障する場合、またはバーチャルデスクトップインスタンスがデスクトップストアに対するその接続を失う場合、ＰＥＳ１０２はバーチャルデスクトップインスタンスの接続をデスクトップストアからバックアップデスクトップストアに切り替える。
【００２２】
ＰＥＳプラットフォーム１０２はさらに、ストレージサーバ１０７上の多様なデスクトップストア及びバックアップストアによって記憶されるデータを記憶するためのＰＥＳレポジトリ１４０等の中央ストレージデバイスを含む。データセンタコンピュータ１１０及びストレージサーバ１０７はさらに、要求されるアプリケーションをサポートするバーチャルマシンのインスタンスを選択するための、及び／またはＤＮＳネームサーバに情報を提供して要求ルーティングを容易にするための、ロードバランシングまたはロードシェアリングソフトウェア／ハードウェア構成要素を含むが、これに限定されるものではない、通信を促進する追加のソフトウェア構成要素またはハードウェア構成要素を含んでよい。
【００２３】
サービスプロバイダコンピュータネットワーク１０５は、ユーザープロファイルストア１０８も含んでよい。ユーザープロファイルストア１０８は、例えば、バーチャルデスクトップインスタンスを使用中にユーザーがアクセスを与えられる多様なプログラムを記憶するために使用されてよい。記憶されるユーザープロファイルは、異なるユーザーのリモートコンピューティングセッションに関連付けられた最大の時間またはコストを示してもよい。ＰＥＳプラットフォーム１０２は、バーチャルデスクトップインスタンスを設置し、構成するときにユーザープロファイルを考慮に入れてよい。ＰＥＳプラットフォーム１０２は、バーチャルデスクトップイメージストア１０９を含んでもよい、またはバーチャルデスクトップイメージストア１０９に接続されてもよい。バーチャルデスクトップイメージストア１０９は、ユーザープロファイルごとに適用されるカスタマイズなしにオペレーティングシステムのテンプレートイメージを含んでよい。
【００２４】
例示的な実施形態では、データセンタコンピュータ１１０及びストレージサーバ１０７は、構成要素または構成要素の部分が物理的に別個であるかどうかに関わりなく論理的にグループ化されると見なされる。例えば、サービスプロバイダコンピュータネットワーク１０５は、インスタンス及びストレージ構成要素を提供するための別々の場所を維持してよい。さらに、データセンタコンピュータ１１０はＰＥＳプラットフォーム１０２と論理的に関連付けられたとして図１に示されるが、データセンタコンピュータはそのユーザーの多様なデモグラフィックに最も役立つ方法で地理的に分散される。さらに、当業者は、サービスプロバイダコンピュータネットワーク１０５を多様な追加のコンピューティングリソース、コンテンツ及びリソースの管理等のための係る追加のコンピューティングデバイスと関連付けることができることを理解するだろう。
【００２５】
ここで図２から図７を参照すると、図１のネットワーク化されたコンピューティング環境１００の多様な構成要素間の対話が示される。具体的には、図２から図７は、サービスプロバイダネットワーク１０５によるバーチャルデスクトップインスタンスの実行、及びクライアントコンピューティングデバイス１０６からのバーチャルデスクトップインスタンスへのリモートアクセスのためのネットワーク化されたコンピューティング環境１００の多様な構成要素間の対話を示す。ただし、例のために、通信を容易にするために活用される構成要素の多くが示されていないように、説明図は簡略化されている。当業者は、係る構成要素が活用できること、並びに追加の対話が本開示の精神及び範囲から逸脱することなく相応して発生するだろうことを理解する。
【００２６】
図２を参照すると、バーチャルデスクトップインスタンス１１４は、ＰＥＳプラットフォーム１０２に接続されるデータセンタコンピュータ１１０のいずれか１台で実行できる。イベントがデータセンタコンピュータ１１０上のバーチャルインスタンス１１４の実行と関連して発生する場合、実行は別のバーチャルデスクトップインスタンス１１４’に転送できる。他のインスタンス１１４’は同１１０でまたは異なるデータセンタコンピュータ１１０’で実行されてよい。どちらのケースでも、転送は、デスクトップストア１７０の使用のため、クライアントコンピューティングデバイス１０６でのユーザー経験に対する遅延及び混乱は最小で発生する。以下に説明されるように、ユーザーのデータは、バーチャルデスクトップインスタンス１１４から１１４’の実行の転送中のデスクトップストア１７０との関連の継続によって利用可能なままとなる。
【００２７】
例証的に、バーチャルデスクトップインスタンスのインスタンス化及びリモートコンピューティングセッションの確立の前に、各インスタンスマネージャ１２２はそれぞれのバーチャルデスクトップインスタンスの全体的な状態及び健康を監視する。係る状態及び健康の情報は、データセンタコンピュータ１１０のインスタンスマネージャ１２２からサービスプロバイダのデータセンタ管理構成要素１０１に送信される。さらに、リモートコンピューティングセッション中に、インスタンスマネージャ１２２はインスタンス１１４とクライアントコンピューティングデバイス１０６との間のネットワーク接続の健康及び状態を監視する。インスタンスマネージャ１２２は、例えば、クライアントコンピューティングデバイス１０６にインストールされるエージェントを通して接続されたクライアントコンピューティングデバイス１０６の健康及び状態も監視してよい。監視される健康及び状態の情報のすべてがデータセンタ管理構成要素１０１に送信される。インスタンスマネージャ１２２から収集され、データセンタ管理構成要素１０１に送信される情報は、本明細書で状態情報とも呼ばれる。多様な構成要素から収集される状態情報は、サービスプロバイダコンピュータネットワークからサービスの所望される可用性及び信頼性を達成するために使用される。収集された状態情報が構成要素の１つまたは複数の故障を示す場合、故障はインスタンスの実行を転送する、または追加のデータストレージロケーションにアクセスすることによって対応できる。
【００２８】
図２、ステップ（１）に示されるように、新しいリモートコンピューティングセッションに対する要求は、クライアントコンピューティングデバイス１０６がイベントまたはユーザー要求に応えてリモートコンピューティングアプリケーション１３０をロードするときに初期化されてよい。いくつかの実施形態では、リモートコンピューティングアプリケーション１３０は、ユーザーにユーザー名及びパスワードを入力するようプロンプトを出してよい。一実施形態では、リモートコンピューティングアプリケーション１３０をロードすることは、ストレージ構成要素からデバイスメモリの中に実行可能なコードをコピーすることを含んでよい。リモートコンピューティングアプリケーション１３０のロードの後で、クライアントコンピューティングデバイス１０６は新しいリモートセッションを要求し、サービスプロバイダコンピュータネットワーク１０５のＰＥＳプラットフォーム１０２に要求を送信してよい。一実施形態では、リモートコンピューティングセッションは、ユーザーのデスクトップに遠隔でアクセスするためにユーザーによって起動されてよい。別の実施形態では、クライアントコンピューティングデバイス１０６の観点からすれば、アプリケーションプロセスの実行を処理するためにリモートセッションを開始することは、まさにアプリケーションプロセスがローカルデバイス上でインスタンス化され、実行されたかのように見えてよい。
【００２９】
要求の受信の後で、ステップ（２）で、ＰＥＳプラットフォーム１０２はユーザーアカウント識別子等の情報を使用して要求を提出したユーザーのためにユーザープロファイルを選択する。ユーザープロファイルは、ユーザープロファイルストア１０８に記憶されてよい（図１を参照）。例の実施形態では、ユーザープロファイルは、ユーザーのためにバーチャルデスクトップインスタンスを作成するためのバーチャルデスクトップインスタンステンプレート、つまりイメージを示す情報を含むことがある、または情報と関連付けられることがある。例えば、バーチャルデスクトップインスタンステンプレートまたはイメージは起動するオペレーティングシステムまたはアプリケーションのセットを指定できるだろう。ユーザープロファイルは、ユーザーのためのバーチャルデスクトップインスタンスに与えるために、処理装置、メモリ、ストレージ、帯域幅等の数を示す情報も含んでよい、または情報と関連付けられる。この情報はキー値対として表される、または異なるタイプのバーチャルデスクトップインスタンス（例えば、小さいインスタンス、中位のインスタンス、または大きいインスタンス）に抽象化できるだろう。したがって、ユーザープロファイルは、バーチャルデスクトップインスタンスタイプが「大きい」に等しく、大きいは、それと関連付けられた固定量のリソースを有することを示す。
【００３０】
リモートセッションは、次いでクライアントコンピューティングデバイス１０６によって識別される１つまたは複数のアプリケーションプロセスに対応するために開始されてよい。例証的に、新しいリモートセッションを開始することは、バーチャルマシンまたは割り当てられたデバイスメモリ、ストレージもしくはキャッシュ空間、プロセッサ時間、ネットワーク帯域幅、または他の計算リソースもしくはネットワークリソースと関連付けられたデータセンタコンピュータ内部のイメージからバーチャルデスクトップインスタンスをブートすることを含んでよい。イメージは、例えばバーチャルデスクトップイメージストア１０９（図１に示される）等、バーチャルデスクトップイメージレポジトリからアクセスされてよい。
【００３１】
ＰＥＳプラットフォーム１０２がユーザープロファイルストア１０８（図１に示される）からユーザープロファイルを取り出した後、ＰＥＳプラットフォーム１０２は、バーチャルデスクトップインスタンスを実行するデータセンタコンピュータ１１０を決定する。例えば、ＰＥＳプラットフォーム１０２は、バーチャルデスクトップインスタンスをホストするために利用可能であるデータセンタコンピュータ１１０のリストを得て、フィルタリング基準をリストに適用して、バーチャルデスクトップインスタンスのホスト要件に対応できる１台または複数のコンピュータからデータセンタコンピュータ１１０のサブセットを得ることができる。次いで、ＰＥＳプラットフォーム１０２は、無作為に、または任意の他の選択プロセス（例えば、ラウンドロビン等）を使用することによってデータセンタコンピュータ１１０の１台を選択できる。特定の例では、ＰＥＳプラットフォーム１０２はリストを入手し、必要なリソース（例えば、メモリ、ストレージ、処理パワー等）を提供できないデータセンタコンピュータ１１０を除外できる。また、ＰＥＳプラットフォームは、ユーザーアカウントと関連付けられたカスタマアカウントと関連付けられたＮ個の他のバーチャルデスクトップインスタンス１１４をすでにホストしているデータセンタコンピュータ１１０を除外してもよい（Ｎは、管理者によってまたはＰＥＳプラットフォーム１０２によって設定できる１以上の任意の数である）。ＰＥＳプラットフォームは、クライアントコンピューティングデバイス１０６等に対して高いレーテンシを有するデータセンタコンピュータ１００も除外してよい。
【００３２】
バーチャルデスクトップイメージストア１０９からのイメージがバーチャルデスクトップインスタンス１１４を作成するために使用された後、ＰＥＳプラットフォーム１０２は、バーチャルデスクトップインスタンス１１４にアタッチするために、一次デスクトップストア１７０等のデスクトップストアも識別できる。例えば、ＰＥＳプラットフォーム１０２は、バーチャルデスクトップインスタンス１１４が実行されるデータセンタコンピュータ１１０を選択し、ユーザープロファイルの情報に基づいてバーチャルデスクトップインスタンス１１４を起動し、バーチャルデスクトップ識別子にバーチャルデスクトップインスタンス１１４を送信する要求をコンピュータ１１０に送信できる。例証的に、バーチャルデスクトップインスタンスのデスクトップストアとの関連付けは、アプリケーションプロトコルインタフェース（「ＡＰＩ」）の活用を通して達成できる。例えば、インスタンスマネージャ１２２は、ストレージサービスプラットフォーム１０３に送信できる、アタッチ要求等のＡＰＩを活用できる。ストレージサービスプラットフォーム１０３は、バーチャルデスクトップインスタンス１１４が正しいバーチャルデスクトップ識別子を有し、ユーザーのデスクトップストア１７０をバーチャルデスクトップインスタンス１１４にアタッチさせることを検証できる。
【００３３】
データセンタコンピュータ１１０と関連付けられたネットワークアドレス情報は、クライアントコンピューティングデバイス１０６に送信できる。いったんクライアントコンピューティングデバイス１０６がＩＰアドレスを受信すると、リモートコンピューティングセッションが開始されてよい。いったんバーチャルデスクトップインスタンスが構成されると、ＰＥＳプラットフォーム１０２はクライアントコンピューティングデバイス１０６と通信し、バーチャルデスクトップインスタンスと関連付けられた公的にアクセス可能なＩＰアドレスを送信する。いったんクライアントコンピューティングデバイス１０６がＩＰアドレスを受信すると、クライアントコンピューティングデバイス１０６はＩＰアドレスに対する接続要求を行う。ユーザーが次いで認証され、次いで、認証された場合、インスタンスでのオペレーティングシステムがユーザーと関連付けられたプロファイルをロードする。プロファイルは次いで、ユーザーインタフェース、またはバーチャルデスクトップインスタンスのデスクトップが、ユーザーが好む方法を見て、感じることができるようにするために使用される。例えば、インスタンスの構成は、レジストリを構成すること、フォントを変更すること、デスクトップピクチャを設定すること、デスクトップ上でお気に入り及びリンクをまとめること、デスクトップに適切な文書用のアイコンを置くこと等を含んでよい。
【００３４】
いくつかの実施形態では、クライアントコンピューティングデバイス要求の受信時、データセンタ管理構成要素１０１が処理リソース及びネットワークリソースも選択し、インスタンス１１４に加えて、インスタンス１１６等の別のインスタンスでソフトウェアをプロビジョニングしてもよい。追加のインスタンスは、クライアントコンピューティングデバイス１０６と関連付けられた１人または複数のユーザーのために、クライアントコンピューティングデバイスに接続される１つまたは複数のインスタンスのために、またはこれらの組合せのためにプロビジョニングされてよい。
【００３５】
次いで、インスタンスマネージャ１２２は、インスタンス１１４の状態及び健康を監視し続ける。バーチャルデスクトップインスタンス１１４内部で実行するエージェントは、ＰＥＳプラットフォーム１０２で実行されるバーチャルデスクトップインスタンスとの、クライアントコンピューティングデバイス１０６でのユーザーの対話によって作成されるデータの受信及び記憶を監視し、調整してもよい。データは、ユーザーがどのファイルを開いたのか、ユーザープロファイルについての詳細、及びＰＥＳプラットフォーム１０５上で実行されるインスタンスと対話している間に作成されるあらゆるデータファイル等の情報を含んでよい。データは、ユーザーのグラフィックユーザーインタフェースに関する詳細も含んでよい。例えば、データは、ユーザーがクライアントコンピューティングデバイス１０６で開いた多様なウィンドウ、それぞれのウィンドウの絶対位置及び相対位置、ウィンドウ内のあらゆる構成要素の強調等を含んでよい。インスタンスマネージャ１２２は、データセンタ管理構成要素１０１に状態情報を送信してよく、インスタンスマネージャ１２２はデスクトッププロファイル及びユーザーコンテンツに対する変更を一次デスクトップストア１７０に書き込んでもよい。
【００３６】
引き続き図２を参照すると、いくつかの実施形態では、一次デスクトップストアの故障から保護するために、ステップ（２Ｂ）で、一次デスクトップストアに記憶されるデータが、バックアップデスクトップストア１７０’の上に複製されてよい。バックアップデスクトップストア１７０’は、一次デスクトップストア１７０と同じインスタンス１１４のユーザーと関連付けられる。データに対して行われるあらゆる変更は一次デスクトップストア１７０に記憶され、バックアップデスクトップストア１７０’に複製される。複製は周期的に、新しいデータが作成されるときにのみデータが複製されるイベントベースで、または該２つの組合せで実行されてよい。
【００３７】
いくつかの実施形態では、ステップ（２Ｃ）で、保存されたデータはＰＥＳレポジトリ１４０にも記憶されてよい。ＰＥＳレポジトリ１４０への格納は、周期的に、イベントベースで、または該２つの組合せで実行されてよい。いくつかの実施形態では、データは、ＰＥＳレポジトリ１４０での格納後に周期的にデスクトップストア１７０、１７０’からパージされてよい。期間はクライアントコンピューティングデバイス１０６のユーザーと関連付けられたエンティティの管理者によって決定されてよい。
【００３８】
その後、ステップ（３）で、バーチャルデスクトップインスタンス１１４に関連付けられたイベントがある場合がある。イベントは、例えば、バーチャルデスクトップインスタンスの故障を含むことがある。バーチャルデスクトップインスタンスの故障は、停電、ネットワーク切断、データセンタコンピュータでのソフトウェアまたはハードウェアの故障、バーチャルデスクトップインスタンスでのレーテンシ増加、バーチャルデスクトップインスタンスの著しい損傷、またはインスタンスの任意の他の故障に起因することがある。係る故障の場合、インスタンスマネージャ１２２から送信される状態情報は、データセンタ管理構成要素１０１に故障を示す。代わりに、一次デスクトップストア１７０はユーザー情報に対する変更の欠如を検出し、データセンタ管理構成要素１０１に係る欠如を示す。
【００３９】
いったんデータセンタ管理構成要素１０１がインスタンス１１４と関連付けられたイベントを検出すると、別のバーチャルデスクトップインスタンスは、例えばバーチャルデスクトップインスタンス１１４’等、ステップ（４）でインスタンス化される。他のバーチャルデスクトップインスタンス１１４’は、同じデータセンタコンピュータ１１０で、または異なるコンピュータ１１０’で実行されてよい。他のバーチャルデスクトップインスタンス１１４’は事前に構成された可能性がある、または構成は、故障がバーチャルデスクトップインスタンス１１４で検出された後に開始されてよい。いったんデータセンタ管理構成要素１０１がデータセンタコンピュータまたは実行に適切なバーチャルデスクトップインスタンスを識別すると、データセンタ管理構成要素１０１はクライアントコンピューティングデバイス１０６に新しいパブリックＩＰアドレスを送信して、新しいリモートコンピューティングセッションを介して新しいバーチャルデスクトップインスタンスに再接続する。
【００４０】
以前のデスクトップの外観と雰囲気が旧バーチャルデスクトップインスタンスと新バーチャルデスクトップインスタンスに亘って維持されるので、クライアントコンピューティングデバイス１０６でのユーザー経験はほぼシームレスに見える。以前にＰＥＳプラットフォーム１０２に送信されたデータは、同じ一次デスクトップストア１７０への接続によって新しいバーチャルデスクトップインスタンスが使用できる。さらに、バーチャルマシンインスタンス１１４の中で実行中のエージェントはユーザーによって以前に開かれたアプリケーションに関する情報を収集したので、同じアプリケーションが新しいバーチャルデスクトップインスタンスで開かれる。保存されたデータはユーザーのグラフィックユーザーインタフェースについての詳細を含んでいたので、クライアントコンピューティングデバイス上でのアプリケーションプロセスのユーザーの視点は異なるインスタンス実行に亘って実質的に均一のままである。したがって、新しいバーチャルデスクトップインスタンスは、クライアントコンピューティングデバイス１０６上で実行中のアプリケーションプロセスを保存し、ＰＥＳプラットフォーム１０２に以前に送信されたデータは新しいインスタンスに復元される。クライアントコンピューティングデバイス１０６は、ユーザーデータがリモートコンピューティングセッションの故障及び再確立の間に異なるインスタンス間で同期されるため、同じユーザー経験を保持する。
【００４１】
いくつかの実施形態では、ユーザーはリモートコンピューティングアプリケーション１３０を実行するためのユーザー名及びパスワードを再入力するようにプロンプトを出されることがある。他の実施形態では、ユーザー名及びパスワードは、クッキーまたは電子証明書等の仕組みを通じてデータに記憶されてよく、ユーザー名及びパスワードは、リモートコンピューティングセッションが再確立されるときに自動的にロードされてよい。
【００４２】
上述したように、あるインスタンスから別のインスタンスへのリモートコンピューティングセッションの転送は、クライアントコンピューティングデバイス１０６でのユーザー経験に対する遅延及び混乱は最小で行われる。遅延及び混乱は、クライアントコンピューティングデバイス１０６から受信されたデータの永続記憶装置を提供することによって最小限に抑えられる。
【００４３】
いくつかの実施形態では、バーチャルマシンインスタンス１１４は故障するのではなく、代わりに一次デスクトップストア１７０が故障することがある。ストレージマネージャ１３５が一次デスクトップストア１７０の係る故障を検出する場合、バーチャルデスクトップインスタンス１１４と一次デスクトップストア１７０との間の接続は切り離され、ステップ（４Ｂ）に示されるように、接続はバーチャルデスクトップインスタンス１１４とバックアップデスクトップストア１７０’との間で確立される。
【００４４】
いくつかの実施形態では、データセンタ管理構成要素１０１で収集されたデータは、バーチャルデスクトップインスタンス１１４とクライアントコンピューティングデバイス１０６との間のリモートコンピューティングセッションを再確立するときに復元するために、クライアントコンピューティングデバイス１０６の状態を決定するために使用されてよい。例えば、収集されたデータはクライアントコンピューティングデバイス１０６での問題のある状態を決定するために使用されてよく、係る状態は復元されないと判断されてよい。問題がある状態は、クライアントコンピューティングデバイス１０６に接続されるときに遭遇する問題の重大度及び頻度に基づいて決定されてよい。
【００４５】
図３を参照すると、ネットワーク化されたコンピューティング環境１００は、ＰＥＳプラットフォーム１０２と、それと関連付けられたイベントの後のクライアントコンピューティングデバイスと、または同じユーザーによって使用される異なるデバイスとの間でリモートコンピューティングセッションを開始するために使用することもできる。例証的に、リモートコンピューティングセッションは、回復後に同じデバイス１０６に、または同じユーザーによって使用される異なるデバイス１０６’に、当初ＰＥＳプラットフォーム１０２に接続されていたクライアントコンピューティングデバイス１０６のハードドライブのコピーを提供できる。
【００４６】
いくつかの実施形態では、クライアントコンピューティングデバイス１０６が、ＰＥＳプラットフォームでのバーチャルデスクトップインスタンス１１４のリモート実行なしに、ローカルにオペレーティングシステム及びアプリケーションを実行中であることが考えられる。ＰＥＳプラットフォーム１０２は、ストレージサーバ１０７の内の１台または複数でクライアントコンピューティングデバイス１０６のコンピューティング環境のハードドライブを複製し、次いでハードドライブのコピーを、クライアントコンピューティングデバイス１０６上のまたは別のクライアントコンピューティングデバイス１０６’上のユーザーがバーチャルデスクトップインスタンス１１４として利用できるようにするために使用されてよい。いくつかの実施形態では、ＰＥＳプラットフォーム１０２は、ストレージサーバ１０７の内の１台または複数上のデスクトップストア１７０に、またはＰＥＳレポジトリ１４０にユーザーコンテンツ及びデスクトッププロファイルを複製し、次いでそのデスクトップストア１７０を、クライアントコンピューティングデバイス１０６または１０６’のユーザーが使用できるバーチャルデスクトップインスタンス１１４にアタッチするために使用されてよい。
【００４７】
ユーザーは、例えばデスクトップ回復サービス等の、サービスプロバイダコンピュータネットワーク１０５からのサービスにサインアップしてよい。サービスに加入しているユーザーは、例えばデスクトップ回復プログラム３３０等、そのクライアントコンピューティングデバイスでダウンロードするためのコンピュータプログラムを提供されてよい。デスクトップ回復プログラム３３０は、次いでクライアントコンピューティングデバイス１０６上で実行されてよく、ステップ（１）で示されるように、セッションはクライアントコンピューティングデバイス１０６とＰＥＳプラットフォーム１０２との間で開始されてよい。セッションが確立された後、ＰＥＳプラットフォーム１０２は、図１に関連して上述したように、デスクトップストア１７０の内の１つまたは複数をユーザーと関連付けてよい。
【００４８】
引き続き図３を参照すると、デスクトップストア１７０がユーザーセッションと関連付けられた後、ＰＥＳプラットフォーム１０２は、ステップ（２）で、クライアントコンピューティングデバイス１０６のハードドライブイメージまたは、多様なフォルダに記憶されるファイル等、ユーザー及びユーザーコンテンツのためのデスクトッププロファイルの複製を開始してよい。ハードドライブイメージまたはユーザー及びユーザーコンテンツ用のデスクトッププロファイルの複製は、クライアントコンピューティングデバイス１０６のディスクの一部のＰＥＳレポジトリ１４０またはデスクトップストア１７０へのコピーを含んでよい。イメージ全体が複製されるインスタンスでは、コピーは、クライアントコンピューティングデバイス１０６とＰＥＳプラットフォーム１０２との間のネットワーク接続の帯域幅に応じて、いくらかの時間を要することがある。いくつかの実施形態では、ステップ（２Ｂ）で、ハードドライブイメージはバックアップデスクトップストア１７０’に複製されてもよい。さらに、いくつかの実施形態では、ステップ（２Ｃ）で、イメージはＰＥＳレポジトリ１４０に周期的に記憶されてもよい。
【００４９】
その後、クライアントコンピューティングデバイス１０６とのユーザーの対話によってハードドライブイメージ、またはユーザーコンテンツ及びデスクトッププロファイルの部分に対して行われるあらゆる変更は、リモートコンピューティングセッションを介してデスクトップストア１７０の上に保存することによってＰＥＳプラットフォーム１０２によって複製される。変更の複製は、ネットワーク接続帯域幅に基づいて予定されてよい。例えば、ネットワーク接続帯域幅が高い場合、複製は、クライアントコンピューティングデバイスのファイルシステムがディスクにそのバッファをフラッシュするたびに発生することがある。対照的に、ネットワーク接続帯域幅が低い場合、複製は例えば１日に１度、１週間に１度、もしくは任意の他の適切なときに等周期的に、または例えばネットワーク接続帯域幅が所与の閾値を上回るとき等の条件に基づいて実行されるように予定されてよい。
【００５０】
クライアントコンピューティングデバイス１０６の故障がある場合、ステップ（３）で示されるように、ハードドライブまたはクライアントコンピューティングデバイス１０６のユーザーと関連付けられたユーザーコンテンツ及びデスクトッププロファイルのコピーがＰＥＳプラットフォーム１０２で利用できる。故障は、停電、ネットワーク切断、ソフトウェアまたはハードウェアの故障、または他の故障の内の１つまたは複数を含んでよい。ＰＥＳプラットフォーム１０２は、データセンタコンピュータ１１０の内の１台または複数でバーチャルインスタンス１１４を構成するためにハードドライブイメージのコピーを使用してよい、またはＰＥＳプラットフォーム１０２は、ステップ（４）に示されるようにユーザーと関連付けられたユーザーコンテンツ及びデスクトッププロファイルがバーチャルデスクトップインスタンス１１４に保存されるデスクトップストア１７０をアタッチしてよい。
【００５１】
結果的に、新しいクライアントコンピューティングデバイス１０６’が使用されるとき、またはクライアントコンピューティングデバイス１０６が故障から回復するとき、デスクトップ回復プログラム３３０及びリモートコンピューティングアプリケーション１３０はデバイス１０６または１０６’にロードされる。次いで、リモートコンピューティングアプリケーション１３０がユーザーにユーザー名及びパスワードを入力するようにプロンプトを出してよい。リモートコンピューティングアプリケーション１３０のロードの後で、新しいリモートコンピューティングセッションに対する要求がステップ（５）でサービスプロバイダコンピュータネットワーク１０５のＰＥＳプラットフォーム１０２に送信される。
【００５２】
要求の受信の後で、ＰＥＳプラットフォーム１０２は、要求に含まれるユーザーアカウント識別子等の情報を使用してユーザープロファイルを選択する。ユーザープロファイルはユーザープロファイルストア１０８で記憶されてよい。例の実施形態では、ユーザープロファイルは、ユーザーのためにインスタンスを作成する元のインスタンステンプレートを示す情報を含んでよい、または関連付けられてよい。例えば、ハードドライブコピーが作成された場合、インスタンステンプレートは、ユーザーがインスタンステンプレートとして使用するために以前に保存されたハードドライブイメージを指定できるだろう。リモートコンピューティングセッションは、次いで、データセンタコンピュータ１１０の内の１台でデスクトップストア１７０の内の１台に以前に保存されたユーザーのハードドライブイメージのコピーからバーチャルデスクトップインスタンスをブートするために開始されてよい。ユーザーコンテンツ及びデスクトッププロファイルが保存された場合、ユーザーコンテンツ及びデスクトッププロファイルを含んだデスクトップストア１７０は、ユーザーによってアクセスされるバーチャルデスクトップインスタンス１１４にアタッチされてよい。
【００５３】
図４を参照すると、異なるユーザー要件に対応するためのＰＥＳプラットフォーム１０２の構成を示す図１のネットワーク化されたコンピューティング環境のブロック図が開示される。上述したように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイス１０６がイベントまたはユーザー要求に応えてリモートコンピューティングアプリケーション１３０をロードするときに開始されてよい。リモートコンピューティングアプリケーション１３０のロードの後で、クライアントコンピューティングデバイス１０６は、新しいリモートセッションを要求してよい。
【００５４】
要求の受信の後で、ＰＥＳプラットフォーム１０２は、要求された新しいリモートセッションにサービスを提供するようにデータセンタコンピュータ１１０及びインスタンス１１４を構成する。データセンタコンピュータ及びインスタンスは、要求によって識別される１つまたは複数のアプリケーションプロセス、及びユーザープロファイルストア１０８に記憶されるようなアプリケーションプロセスと関連付けられた多様なメモリまたは処理要件に基づいて構成されてよい。
【００５５】
例えば、エンティティと関連付けられたクライアントコンピューティングデバイス１０６のユーザーは、それらと関連付けられた制限を有することがある。制限は管理者によって設定されてよい。制限は、例えば各ユーザーがアクセスできるアプリケーション、並びにユーザーによってアクセスされる異なるバーチャルデスクトップインスタンスと関連付けられたメモリ制限及び処理制限を含んでよい。例えば、管理者は個々のユーザーのためにデフォルトのインスタンスサイズを設定してよい。デフォルトインスタンスサイズは、例えばユーザー識別子に従って、個々のユーザーと関連付けられたユーザープロファイルストア１０８に記憶されてよい。また、ユーザープロファイルストア１０８は、インスタンスによって実行されるアプリケーションに応じてインスタンスサイズを変えるための変数も含んでよい。
【００５６】
一実施形態では、ユーザーは電子メールまたはウェブブラウザ等低い処理要件のみを有するアプリケーションを実行するように制限されてよい。係るユーザーは、係るアプリケーションをサポートするために少ない量のリソースを割り当てられるバーチャルデスクトップインスタンスへのアクセスを提供されてよい。対照的に、ユーザーは、専門的な製図アプリケーションまたは写真編集アプリケーション等のより高い処理要求を有するアプリケーションを実行する権限を与えられてよい。この種のユーザーは、ユーザーがアプリケーションを実行できるようにするために十分な多数のリソースを割り当てられるバーチャルデスクトップインスタンスへのアクセスを与えられてよい。異なるユーザーのために許可されたアプリケーションは、ユーザーアカウントのためのユーザープロファイルに保存されてよい。代わりに、異なるタイプのアプリケーションは、バーチャルデスクトップインスタンスを使用する間にユーザーによって要求されてよい。
【００５７】
例証的に、ユーザーまたはクライアントコンピューティングデバイスと関連付けられた処理要件は、さまざまなシナリオに基づいて決定されてよい。決定は、リモートコンピューティングアプリケーション１３０の起動時のユーザー要求に基づいてよい。例えば、ユーザーはリソース及びアプリケーションのためのさまざまなオプションを表示するグラフィックユーザーインタフェース（ＧＵＩ）を提示されてよい。ユーザーは、次いでユーザーがアクセスを希望するアプリケーション、または代わりにそれらのアプリケーションのバージョンを選択してよい。例えば、１人のユーザーがアプリケーションの基本的なバージョンにアクセスすることを希望することがある。一方、別のユーザーは同じアプリケーションの専門的なバージョンにアクセスすることを希望することがある。決定は、ユーザーと関連付けられたエンティティの管理者によって決定されるように、特定のユーザーのための事前に選択されたオプションに基づいてもよい。例えば、事前に選択されたオプションは、ユーザーがアクセスすることを希望してよいアプリケーションの異なるパッケージのリストとしてユーザーに提示されてよい。いくつかのケースでは、決定は、いったん要求がユーザーから受信されるとＰＥＳプラットフォーム１０２が決定してよいユーザーの履歴使用量データに対して下されてよい。他の場合、処理要件の決定は、いったんリモートコンピューティングセッションが開始されると、ユーザーによって処理されるプロセスの使用の継続的な監視に基づいてよい。係る場合、適切なインスタンスの選択は、セッション確立後に動的に変更されてよく、新しいインスタンス上での動的な変更は上記図１に関して説明されるように実行されてよい。
【００５８】
再び図４を参照すると、いったん要求がステップ（１）でユーザーから受信され、ユーザープロファイルストア１０８がユーザー要件を決定するためにアクセスされると、次いでステップ（２）で、バーチャルデスクトップイメージがバーチャルデスクトップイメージストア１０９から取り出され、ユーザー要件に従って構成される。次いで、カスタマイズされたバーチャルデスクトップイメージはインスタンス１１４を構成するために使用される。インスタンス１１４が構成された後、ステップ（３）で、ＰＥＳプラットフォームは、インスタンスを起動するデータセンタコンピュータ１１０を決定する。例えば、ＰＥＳプラットフォーム１０２はリストを入手し、必要なリソース（例えば、メモリ、ストレージ、処理パワー等）を提供できないデータセンタコンピュータ１１０を除外できる。いったんデータセンタコンピュータ１１０が選択されると、データセンタコンピュータ１１０と関連付けられたネットワーク情報は、次いでクライアントコンピューティングデバイス１０６に送信できる。いったんクライアントコンピューティングデバイス１０６がネットワーク情報を受信すると、リモートコンピューティングセッションが開始されてよい。いったんバーチャルデスクトップインスタンスが構成されると、ＰＥＳプラットフォーム１０２はクライアントコンピューティングデバイス１０６と通信し、バーチャルデスクトップインスタンスと関連付けられた公的にアクセス可能なＩＰアドレスを送信する。いったんクライアントコンピューティングデバイス１０６がＩＰアドレスを受信すると、クライアントコンピューティングデバイス１０６はＩＰアドレスに接続要求を行う。ユーザーは次いで認証されてよく、次に認証されると、ユーザーは上記のように構成されたバーチャルデスクトップのイメージを提供される。
【００５９】
いくつかの実施形態では、インスタンスエージェント１１４Ａは、ステップ（４）で、インスタンス１１４が使用しているＣＰＵ及びメモリの量を監視することができ、リソースが必要とされる場合、ＰＥＳプラットフォーム１０２からより多くのリソースを要求できる。いくつかの実施形態では、各アプリケーションには、どのくらいの数のリソースが必要とされるのかを示す情報をタグ付けることができる。インスタンスエージェント１１４Ａがプログラムの起動を検出するとき、エージェントはテーブルの要件を調べるまたはアプリケーションが起動したことをＰＥＳプラットフォーム１０２に信号で知らせるように構成することができ、これによってＰＥＳプラットフォーム１０２は、リソースがインスタンス１１４に割り当てられる必要があることを示す信号をエージェント１１４Ａに送信できる。
【００６０】
ユーザーにとって最適インスタンスの決定は、ユーザーの使用量に基づいた請求書作成を実装するのに役立つことがある。多数のリソースを割り当てられたインスタンスは制限されることがある。例えば、係るインスタンスは特定の認定ユーザーにのみ、または限られた期間特定のユーザーにのみ提供されてよい。異なるインスタンスの使用量に基づいた請求書作成は、サービスプロバイダリソースの使用に対する基本価格構成要素、及び割り当てられたリソースに基づいた可変価格構成要素、及び異なるリソースと使用される総時間を含んでよい。ユーザーのリソースの使用及び要求は、ユーザーと関連付けられたアカウントの管理者によるユーザー管理に使用されてもよい。例えば、通知は、ユーザーが所与の閾値を超えるリソースのレベルを要求するときに管理者に送信されてよい。
【００６１】
また、インスタンスに割り当てるリソースの決定は、リソースの使用と関連付けられたコストに基づいてもよい。例えば、所与のレベルのリソースで構成された所与のインスタンスは、それらのリソースの使用のコストの閾値額まで使用されるように制限されてよい。別の例では、インスタンスは割り当てられたリソースの閾値量と使用されてよい。代わりに、ユーザーのインスタンスへのアクセスは、アイドルであると監視された時間の閾値量後の、または所与のセッション中の低リソース活用を示すより低いリソースのインスタンスに格下げされることがある。
【００６２】
管理者は、バーチャルデスクトップインスタンスでのリソースへのユーザーのアクセスを許可するための異なる規則を提供してよい。例えば、規則は異なるタイプのユーザーを定義してよく、ユーザーのタイプはエンティティによってプログラム実行サービス（ＰＥＳ）プラットフォームに提供される一式の規則に記憶されてよい。規則は、ユーザーアカウント識別子等の異なるユーザーのログイン情報と関連付けられ、ユーザープロファイルストア１０８に記憶されてよい。ユーザーがエンティティのクライアントコンピューティングデバイス１０６でリモートコンピューティングアプリケーション１３０を起動するとき、ＰＥＳプラットフォーム１０２は、受信されたログイン情報に基づいて、ユーザーアカウント識別子と関連付けられたユーザープロファイルに含まれる仕様に従って適切なインスタンスを決定してよい。
【００６３】
例示的な例のために、エンティティによって雇用された請負業者が、クライアントコンピューティングデバイス１０６で決定された時間量の間決定されたアプリケーションプロセスを使用する権限を与えられてよいと仮定する。したがって、エンティティは所望される要件を、ＰＥＳプラットフォーム１０２に通信されるように、請負業者のユーザーアイデンティティに割り当てる。次いで、請負業者がリモートコンピューティングアプリケーション１３０を起動するとき、ログインは請負業者のユーザー識別子を示す。その後、サービスプロバイダは、そのためのコンピューティングデバイス１０６及び任意のその後のリモートコンピューティングセッションと関連付けられたように構成するためにインスタンス及びデータセンタコンピュータを決定する。サービスプロバイダのデータセンタ管理構成要素１０１は、請負業者の決定されたプロセスの使用、処理レベル、及び使用の回数を監視し、エンティティ管理者の所定の条件に従って使用を制限する。請負業者はクライアントコンピューティングデバイス１０６上でいずれのソフトウェアアプリケーションもインストールする必要はなく、エンティティは請負業者によるいずれのアプリケーションの使用も監視する必要はない。ＰＥＳプラットフォーム１０２は両者の必要性に集中的に対応する。
【００６４】
所定のユーザータイプに基づいたアプリケーションの構成及びアプリケーションの処理要件は、エンティティに請求書を作成するために使用されてよい。異なるインスタンスの使用量に基づいた請求書作成は、サービスプロバイダリソースの使用のための基本価格構成要素及び処理要件に基づいた可変価格構成要素、及び異なる処理要件と使用される総時間を含んでよい。代わりに、エンティティはＰＥＳプラットフォーム１０２からさまざまなアプリケーションプロセスに対するライセンスを入手してよく、ライセンスは、エンティティがクライアントコンピューティングデバイス１０６を利用可能にするときにエンティティによって権限を与えられるさまざまなユーザーによって使用されてよく、ユーザー名はそれぞれのユーザーに必要とされる多様なアプリケーションプロセスに対する適切な許可と関連付けられる。
【００６５】
サービスプロバイダインスタンスの構成は、リモートコンピューティングセッション中の履歴要求またはインスタンスの提供に基づいて異なるインスタンスでのアプリケーションプロセスの事前に選択された組合せを提供するために使用されてもよい。アプリケーションプロセス及び処理要件の組合せは、例えば異なるタイプのユーザーに対して構成されてよい。ユーザーのタイプは、例えば、簡略なｅメール読取装置及びウェブブラウザであってよい、または専門的なドラフターまたはフォトエディタであってよい。いくつかの実施形態では、インスタンスの構成は、処理要件の代わりに、または処理要件に加えてアプリケーションプロセスと関連付けられた記憶要件に基づいてもよい。
【００６６】
図５を参照すると、インスタンスのためのリソース要件に基づいたリモートコンピューティングセッションの調整を示す図１のネットワーク化されたコンピューティング環境のブロック図が開示される。図５に示されるように、サービスプロバイダコンピュータネットワーク１０５は、インスタンスに割り当てられたリソースを調整してよい、または初期インスタンスと関連付けられたリソース要件が変更される場合、同じまたは異なるデータセンタコンピュータで新しいインスタンスを提供してよい。上述したように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイス１０６がイベントまたはユーザー要求に応えてリモートコンピューティングアプリケーション１３０をロードするときに開始されてよい。リモートコンピューティングアプリケーション１３０のロードの後で、クライアントコンピューティングデバイス１０６はステップ（１）で新しいリモートセッションを要求してよい。要求の受信後、ステップ（２）で、ＰＥＳプラットフォーム１０２は、要求された新しいリモートセッションにサービスを提供するためにデータセンタコンピュータ１１０を、及びユーザープロファイルストア１０８上のユーザープロファイルストアに基づいて起動するために適切なインスタンスを選択する。セッションを確立後、インスタンスはステップ（３）でインスタンスマネージャ１２２によってクライアントコンピューティングデバイス１０６のユーザーによるインスタンスの使用を監視することに基づいて動的に調整されてよい。
【００６７】
例えば、クライアントコンピューティングデバイス１０６のユーザーはバーチャルデスクトップインスタンスと対話する間、ユーザーは低処理パワー、及び低メモリ要件だけを要求するアプリケーションにアクセスしてよい。しかしながら、しばらくして、ユーザーはより多くの処理パワー及びより多くのメモリを要求する１つまたは複数のアプリケーションへのアクセスを要求することがある。いくつかの実施形態では、異なる要件に対する要求は、デスクトップインタフェース上のアプリケーションのためのアイコンをユーザーが選択することによって開始されてよい。いくつかの実施形態では、要求は、コントロールパネルのオプションのリストからあるオプションをユーザーが選択することによって開始されてよい。例えば、オプションのリストは、異なる量の処理パワー及びメモリのスライドスケールを含んでよい。どちらの場合も、インスタンスマネージャ１２２は、ステップ（４）でインスタンス１１４の異なる構成に対する必要性を決定する。
【００６８】
ＰＥＳプラットフォーム１０２は、より多くの処理パワー及びメモリに対応するために、バーチャルデスクトップインスタンスに割り当てられるリソースの量を動的に調整してよい。いくつかの実施形態では、ステップ（５）で、調整は同じデータセンタコンピュータまたは異なるデータセンタコンピュータでインスタンスを再起動することを必要とすることがある。バーチャルデスクトップインスタンスの再起動は、実行中のインスタンスを終了すること、インスタンスからデスクトップストアを切断すること、新しいインスタンスを起動するためにデータセンタコンピュータを選択すること、選択されたデータセンタコンピュータで新しいインスタンスをインスタンス化すること、及びデスクトップストアを新しいインスタンスに関連付けることを含んでよい。いったんインスタンスがインスタンス化されると、ユーザーはログインプロンプトによってインスタンスへのアクセスを与えられてよい。
【００６９】
他の実施形態では、調整は、インスタンスの終了なしにバーチャルデスクトップインスタンスに追加のリソースを追加することを含んでよい。例えば、インスタンスマネージャは、デスクトップインスタンス等を実行するバーチャルマシンに別のプロセッサまたはメモリを追加できるだろう。いくつかの実施形態では、プロセッサは、バーチャルデスクトップインスタンスにＣＰＵをホットアドすることによってバーチャルデスクトップインスタンスに追加されてよい。ＣＰＵは、データセンタコンピュータに新しいハードウェアを追加し、ハードウェア区分化をオンラインでまたは仮想的に仮想化層を通して論理的に実行することによってホットアドされてよい。データセンタコンピュータ１１０は、ＣＰＵが追加された後に自動的に起動される必要があるのではなく、利用可能なリソースとして新しいＣＰＵを認識するように単に再構成されてよい。いくつかの実施形態では、メモリは、バーチャルデスクトップインスタンスにメモリをホットアドすることによってバーチャルデスクトップインスタンスに追加されてよい。データセンタコンピュータ１１０にメモリをホットアドすることは、オペレーティングシステムインスタンスに物理メモリを追加するための機構が任意のオペレーティングシステムのダウンタイムまたは任意のシステムパワー動作を必要とせずにサポートされることを保証することによって実装されてよい。
【００７０】
図６は、バーチャルデスクトップインスタンスの動作がリモート環境からローカルでネットワーク化された環境に遷移されるときの図１のコンピューティング環境を示すブロック図である。いくつかの実施形態では、ＰＥＳプラットフォーム１０２とクライアントコンピューティングデバイス１０６との間で確立されるリモートコンピューティングセッションは、ネットワーク切断または故障のために失われることがある。例えば、クライアントコンピューティングデバイス１０６のユーザーが、ネットワーク１０４によってサービスを提供されていない領域に移動することがある。係る切断に対応するために、ＰＥＳプラットフォーム１０２とクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションは、データセンタコンピュータからクライアントコンピューティングデバイス１０６に情報を転送するために使用されて、クライアントコンピューティングデバイス１０６に、以前にＰＥＳプラットフォームで実行されたバーチャルインスタンスのローカルで実行されたコピーに遷移するために必要な構成要素を備えてよい。
【００７１】
例えば、クライアントコンピューティングデバイス１０６は、ネットワーク１０４を介してＰＥＳプラットフォーム１０２に接続されてよく、デバイス１０６は、ユーザーが飛行機に搭乗する前にネットワーク１０４から切断されてよい。ネットワーク１０４から切断する前に、任意選択で、クライアントコンピューティングデバイス１０６は、ユーザーに承認のためのプロンプトを出した後、バーチャルデスクトップイメージストア１０９に記憶されたイメージ等、オペレーティングシステムのイメージを提供されてよい。クライアントコンピューティングデバイス１０６は、データセンタコンピュータ１１０とは異なる処理パワーまたはメモリの構成を有することがあるので、クライアントコンピューティングデバイスに適応されたオペレーティングシステムのイメージは対応するパワー及びメモリの構成を有してよい。クライアントコンピューティングデバイス１０６は、デスクトップストアのコピーとともにデータの最新の保存バージョンで適応されてもよい。最後にクライアントコンピューティングデバイス１０６は、サービスプロバイダコンピュータネットワーク１０５から、提供されるオペレーティングシステムのイメージに基づいてインスタンス１１４’を起動するために、及びデスクトップストア１７０’のローカルコピーにインスタンス１１４’をアタッチするためにバーチャルデスクトップ監視モジュール６０１を受信してよい。その後、クライアントコンピューティングデバイス１０６がネットワーク１０４から切断されるとき、ユーザーはクライアントコンピューティングデバイス１０６上でローカルに実行されているインスタンスを用いてデバイスを使用し続けてよい。クライアントコンピューティングデバイス１０６は、次いでデータ及び飛行機に搭乗中に実行されるインスタンスの適応されたバージョンを有することがある。
【００７２】
別の実施形態では、クライアントコンピューティングデバイス１０６は、ＰＥＳプラットフォーム１０２と接続することなく、オペレーティングシステム、インスタンスマネージャ、及びバーチャルデスクトップ監視モジュール６０１のイメージのコピーをプロビジョニングされてよい。例えば、エンティティのコンピューティングデバイス１０６は、エンティティの情報技術（ＩＴ）部門によって適切なイメージ及びモジュールで構成されてよい。ＰＥＳプラットフォーム１０２との接続時、及びＰＥＳプラットフォーム１０２からの切断の前に、任意選択で承認のためにプロンプトを出された後、クライアントコンピューティングデバイス１０６は、デスクトップストアのコピーとともに、データの最新の保存済みバージョンを提供されてよい。次いで、バーチャルデスクトップ監視モジュール６０１はオペレーティングシステムのイメージに基づいてインスタンス１１４’を起動してよく、デスクトップストア１７０’のローカルコピーにインスタンス１１４’をアタッチしてよい。その後、クライアントコンピューティングデバイス１０６がネットワーク１０４から切断されるとき、ユーザーは、インスタンスがクライアントコンピューティングデバイス１０６でローカルに実行されている状態でデバイスを使用し続けてよい。クライアントコンピューティングデバイス１０６は、次いでデータ及び飛行機に搭乗中に実行されるインスタンスの適応されたバージョンを有してよい。
【００７３】
次いで、クライアントコンピューティングデバイス１０６のユーザーがサービスプロバイダのネットワーク内部の領域に戻る（例えば、その目的地の都市で飛行機を降りる）とき、ＰＥＳプラットフォーム１０２は、クライアントコンピューティングデバイス１０６とのリモートコンピューティングセッションを再確立し、ユーザーのデータのすべてが同期され、アプリケーションプロセスの使用中のユーザーの中断はこのようにして最小限に抑えられる。
【００７４】
リモート環境からローカルにネットワーク化された環境にバーチャルインスタンスの動作を遷移する際に関与するステップが図６に示される。ステップ（１）で、リモートセッションが、クライアントコンピューティングデバイス１０６とＰＥＳプラットフォーム１０２との間で開始される。上述したように、ユーザープロファイルストアがアクセスされ、適切なインスタンスがユーザーのために構成される。インスタンスの構成に続き、データセンタコンピュータ１１０はバーチャルインスタンスデスクトップを起動するために選択され、ユーザーはデータセンタコンピュータ１１０上でバーチャルデスクトップインスタンス１１４へのアクセスを提供される。
【００７５】
次いで、ステップ（２）で、ユーザーがリモートセッションのバーチャルデスクトップインスタンスにアクセスしている間、デスクトッププロファイルに対する、及びユーザーコンテンツに対するユーザーの変更はデスクトップストア１７０で記憶される。ステップ（３）で、いくつかの実施形態では、クライアントコンピューティングデバイス１０６は、ネットワーク接続が失われると見込まれることをＰＥＳプラットフォーム１０２に示してよい。係る表示時、または同期のために、ＰＥＳプラットフォーム１０２は、ステップ（４）で、デスクトップストア１７０のコピー１７０’、インスタンス１１４によって実行されるオペレーティングシステムのイメージのコピー、及びインスタンスマネージャ１２２のコピー１２２’をクライアントコンピューティングデバイス１０６に提供し、これによってＰＥＳプラットフォーム１０２と利用できるネットワーク接続がある間に、インスタンス１１４’はクライアントコンピューティングデバイス１０６でローカルに実行される。上述したように、いくつかの実施形態では、オペレーティングシステム、インスタンスマネージャ、及びバーチャル監視モジュール６０１のイメージはすでにクライアントコンピューティングデバイス１０６にインストールされていてよく、ＰＥＳプラットフォームはデスクトップストア１７０のコピー１７０’を提供するのみであろう。
【００７６】
いったんインスタンス１１４’がクライアントコンピューティングデバイス１０６で使用可能になると、インスタンス１１４’はローカルで実行され、ユーザーのデスクトッププロファイル及びユーザーコンテンツに対して行われたすべての変更は、デスクトップストア１７０’のローカルコピーに記憶される。次いで、ネットワーク接続がＰＥＳプラットフォーム１０２と再確立されると、ステップ（５）で、リモートコンピューティングセッションがクライアントコンピューティングデバイス１０６のリモートコンピューティングアプリケーション１３０から要求される。上記のように、ステップ（６Ａ）で、ユーザーのユーザープロファイルはデータセンタコンピュータ１１０でバーチャルデスクトップインスタンス１１４をインスタンス化するために使用され、ステップ（６Ｂ）で、クライアントコンピューティングデバイス１０６がＰＥＳプラットフォームに接続されるとき、デスクトップストアのコピー１７０’はストレージサーバ１０７に保存される。次いで、ステップ（７Ａ）で、デスクトップストアのコピー１７０’に行われた変更はユーザーと関連付けられた一次デスクトップストア１７０に同期され、ステップ（７Ｂ）で、リモートセッションでバーチャルインスタンス１１４と対話している間にユーザーから受信された追加の変更も一次デスクトップストア１７０に保存される。
【００７７】
図７は、シームレスなリモートコンピューティングセッションを提供するプロセスのためのルーチンを示す流れ図であり、クライアントコンピューティングデバイス１０６とＰＥＳプラットフォーム１０２との間でユーザーデータを持続することは、ＰＥＳプラットフォーム１０２でのインスタンスとともにイベントが発生する。ルーチン７００はブロック７０２で始まる。ブロック７０４で、ＰＥＳプラットフォーム１０２はシステムのデータセンタコンピュータで実行中の多様なインスタンスから状態情報を受信する。状態情報は、周期的に、または所定のイベントがインスタンスで発生するときにインスタンスから受信されてよい。受信間の期間は約ミリ秒、秒、分、または異なる持続時間程度であってよい。所定のイベントはインスタンスの健康、インスタンスのネットワーク接続性の健康等に関係してよい。ＰＥＳプラットフォーム１０２は、ルーチン７００の持続時間を通して状態情報を受信し続ける。
【００７８】
ブロック７０６で、ＰＥＳプラットフォーム１０２は、クライアントコンピューティングデバイスから新しいリモートコンピューティングセッションに対する要求を受信する。ブロック７０８で、ＰＥＳプラットフォーム１０２は、イメージを使用して生成されるインスタンスに割り当てるためのリソースのイメージ及び量を選択する。多様な実施形態では、適切なインスタンスは、要求がそこから受信されるクライアントコンピューティングデバイスのユーザーと関連してユーザープロファイルストアに含まれる情報に基づいてよい。インスタンスがいったん選択されると、適切なデータセンタコンピュータはインスタンスをホストするために選択されてよく、ブロック７１０で、ＰＥＳプラットフォーム１０２はインスタンスとクライアントコンピューティングデバイスとの間でリモートコンピューティングセッションを開始する。ブロック７１２で、ＰＥＳプラットフォームは、そのユーザーのための特定のデータストアをインスタンスにアタッチする。
【００７９】
リモートコンピューティングセッションが確立されるとき、ＰＥＳプラットフォーム１０２でのバーチャルデスクトップインスタンスとのユーザーの対話によって作成されるデータは、次いでブロック７１４で選択されるデスクトップストアに保存される。いくつかの実施形態では、ＰＥＳプラットフォーム１０２は、さらに受信されたデータを第２のデスクトップストアにコピーしてよい。いくつかの実施形態では、ＰＥＳプラットフォーム１０２はデスクトップストアで記憶領域を確保するために集中ＰＥＳレポジトリにデータを周期的に転送してよい。次いで、ブロック７１６で、ＰＥＳプラットフォーム１０２はリモートコンピューティングセッションに関与するインスタンスの故障を検出する。一実施形態では、ＰＥＳプラットフォーム１０２は、インスタンスから受信された状態情報に基づいて、または代わりにインスタンスから係る状態情報を受信しないことに基づいて故障を識別してよい。
【００８０】
ブロック７１６でインスタンスでの故障を検出した後で、ブロック７１８で、ＰＥＳプラットフォーム１０２は、第２のバーチャルデスクトップインスタンスがデータを利用できるようにする。データは、データを同期することを通じて、またはデスクトップストアと初期インスタンスとの間の関連を削除し、デスクトップストアを新しいインスタンスと関連付けることによって第２のバーチャルデスクトップインスタンスが利用できるようになる。いったん第２のバーチャルデスクトップインスタンスがデータを利用できるようになると、次いでルーチンはブロック７２０に移動する。いくつかの実施形態では、ＰＥＳプラットフォーム１０２のバーチャルデスクトップインスタンスはユーザープロファイルに従って事前に構成されてよい。係る実施形態では、故障がブロック７１６で検出されると、次いでＰＥＳプラットフォーム１０２は必要とされるユーザープロファイルで事前に構成されている別にインスタンスを識別する。代わりに、インスタンスはブロック７１６で故障の検出後に構成されてよい。次いで、新しいインスタンスが識別された状態で、要求されたＩＰアドレス情報はクライアントコンピューティングデバイスに通信され、リモートコンピューティングセッションはブロック７２０で再確立される。ルーチン７００はブロック７２２で終了する。
【００８１】
図８は、クライアントコンピューティングデバイスの故障後のハードドライブのイメージを回復するための、サービスプロバイダとクライアントコンピューティングデバイスとの間のリモートコンピューティングセッションを使用するためのルーチンを示す流れ図である。ブロック８０４で、リモートコンピューティングセッションが、デスクトップ回復サービスを提供するためにクライアントコンピューティングデバイスとＰＥＳプラットフォームとの間に確立されてよい。いったんセッションが確立されると、ＰＥＳプラットフォームは、ブロック８０６で、クライアントコンピューティングデバイスハードドライブのイメージを記憶してよい。いくつかの実施形態では、クライアントコンピューティングデバイスは、リモートコンピューティングアプリケーションに加えて、オペレーティングシステム及びアプリケーションをローカルで実行してよい。係る実施形態では、クライアントコンピューティングデバイスは、オペレーティングシステム及びオペレーティングシステム上で実行されるアプリケーションに関連付けられた処理情報及び構成情報のすべてを含むローカルハードドライブイメージを有する。いくつかの実施形態では、リモートコンピューティングセッションは、クライアントコンピューティングデバイスのハードドライブのイメージを複製するために使用されてよい。イメージの記憶には、クライアントコンピューティングデバイスとＰＥＳプラットフォーム１０２との間のネットワーク接続帯域幅に応じた期間がかかることがある。ハードドライブイメージの記憶は、クライアントコンピューティングデバイスのユーザーによってハードドライブに行われる変更の複製を含んでもよい。行われる変更は周期的に、またはネットワーク帯域幅の可用性に応じて複製されてよい。同様に、いくつかの実施形態では、クライアントコンピューティングデバイスのハードドライブのイメージを記憶する代わりに、ＰＥＳプラットフォームはユーザーコンテンツ（例えば、フォルダ及びファイル及びその中に記憶される他のフォルダ）、及びユーザーのためのデスクトッププロファイル設定値（例えば、バックグランドイメージ、スクリーンセーバー、デスクトップ上のフォルダ及びファイルのレイアウト等）を記憶してよい。
【００８２】
次いで、ブロック８０８で、クライアントコンピューティングデバイスの故障が検出されることがある。クライアントコンピューティングデバイスの故障は、停電、ネットワーク切断、ソフトウェアもしくはハードウェアの故障、またはリモートセッションを切断させる任意の他の故障に起因する可能性がある。ハードドライブのイメージ、及びそれに対するすべての変更はＰＥＳプラットフォームで利用できる。
【００８３】
結果的に、クライアントコンピューティングデバイスのユーザーが新しいクライアントコンピューティングデバイスを活用する、または同デバイスを使用してデスクトップ回復サービスに再接続するとき、新しいリモートセッションに対する要求がＰＥＳプラットフォーム１０２に送信される。要求受信時、ブロック８１０で、ＰＥＳプラットフォームは、ユーザープロファイルストアから検索されるユーザー識別子に従って、記憶され、ユーザーと関連付けられたハードドライブのイメージでバーチャルデスクトップインスタンスを構成する。次いで、ブロック８１２で、及びＰＥＳプラットフォーム１０２はユーザーのコンピューティングデバイスとのリモートコンピューティングセッションを確立する。いったんリモートコンピューティングセッションが確立されると、ＰＥＳプラットフォーム１０２は、ユーザーが記憶されているハードドライブに基づいてインスタンスにアクセスできるようにする、または代わりにユーザーコンテンツ及びユーザーのために保存されるデスクトッププロファイルへのアクセスをユーザーに提供する。ルーチン８００はブロック８１６で終了する。
【００８４】
図９は、リモートコンピューティングセッションのユーザーと関連付けられたプロセス要件に基づいたバーチャルデスクトップインスタンスの構成のためのルーチンを示す流れ図である。上述したように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイスがイベントまたはユーザー要求に応えてリモートコンピューティングアプリケーションをロードするときにインスタンス化されてよい。リモートコンピューティングアプリケーションのロードの後で、クライアントコンピューティングデバイスは新しいリモートコンピューティングセッションを要求してよい。
【００８５】
ルーチン９００はブロック９０２で開始する。ブロック９０４で、リモートコンピューティングセッションに対する要求がクライアントコンピューティングデバイスから受信される。ブロック９０６で、要求とともに含まれるユーザーログインから決定されるユーザー識別子に基づいて、ＰＥＳプラットフォーム１０２は、ユーザープロファイルストアに記憶されるように、ユーザーと関連付けられたユーザープロファイルを決定する。次いで、ブロック９０８で、インスタンスがユーザーに提供されるための処理要件がユーザープロファイルから決定される。次いで、ブロック９１０で、ＰＥＳプラットフォーム１０２は、バーチャルイメージストアからバーチャルデスクトップイメージテンプレートを入手する。例えば、ユーザープロファイルは、ユーザーが、大量のリソース（メモリ、ＣＰＵコア、ネットワーク帯域幅、ＧＰＵコード等）を有するインスタンス、及びアプリケーションのプレミアムセットを割り当てられるべきであることを示す「プレミアム」インスタンスを割り当てられていることを示すことがある。ブロック９１２を見ると、データセンタコンピュータシステムは、バーチャルデスクトップインスタンスをホストするために選択することができ、インスタンステンプレートは、選択されたコンピュータシステムに送信できる。コンピュータシステムでのインスタンスマネージャは、バーチャルデスクトップインスタンスを起動できる。ユーザープロファイルは、制限、例えばエンティティの管理者によって確立される要件を含んでよい。次に、ブロック９１４で、いったん適切なインスタンスが（例えば、データストアをそれにアタッチすることによって）構成されると、リモートコンピューティングセッションがインスタンスとクライアントコンピューティングデバイスの間で確立される。ルーチン９００はブロック９１６で終了する。
【００８６】
図１０は、プロセス要件での変更に対応するためのリモートコンピューティングセッションの構成のためのルーチンを示す流れ図である。上述したように、新しいリモートコンピューティングセッションは、クライアントコンピューティングデバイスがイベントまたはユーザー要求に応えてリモートコンピューティングアプリケーションをロードするときにインスタンス化されてよい。リモートコンピューティングアプリケーションのロードの後で、クライアントコンピューティングデバイスは新しいリモートコンピューティングセッションを要求してよい。ルーチン１０００はブロック１００２で開始する。ブロック１００４で、クライアントコンピューティングデバイスからの要求の受信時、ＰＥＳプラットフォーム１０２は、クライアントコンピューティングデバイスのユーザーのユーザープロファイルに基づいて、クライアントコンピューティングデバイスに対する処理要件を決定する。ＰＥＳプラットフォーム１０２は、要求された新しいリモートセッションにサービスを提供するためにデータセンタコンピュータを選択する。
【００８７】
例えば、電子メールプログラムまたはウェブブラウザ等の低処理要件を有するアプリケーションを実行することを希望する、または実行する権限を与えられているクライアントコンピューティングデバイスのユーザーは、低処理パワー能力（例えば、１つまたは２つのＣＰＵコア及び１ギガバイトのＲＡＭ）のみ、並びに係るアプリケーションだけをプロビジョニングされたバーチャルデスクトップインスタンスと関連付けられてよい。すなわち、ユーザープロファイルは、ユーザーが「小さい」インスタンスを割り当てられるべきであることを示してよい、またはユーザープロファイルは、どのようにユーザーがインスタンスを使用しているのかに基づいて動的に大きくなることがある「小さい」インスタンスをユーザーが初期に割り当てられることを示してよい。対照的に、専門的な製図アプリケーションまたは写真編集アプリケーション等のより高い処理要件のアプリケーションを実行することを希望する、または実行する権限を与えられているクライアントコンピューティングデバイスのユーザーは、高処理パワー能力（例えば、４つまたは８つのＣＰＵコア及び１６ギガバイトのＲＡＭ）並びに係るアプリケーションをプロビジョニングされた異なるバーチャルデスクトップインスタンスと関連付けられてよい。同様に、ユーザープロファイルはユーザーがどのようにしてそれを使用しているのかに基づいて「縮小」することがある「プレミアム」インスタンスを初期に割り当てられるべきであることを示すことがある。ユーザーまたはクライアントコンピューティングデバイスと関連付けられた処理要件はさまざまな要因に基づいて決定されてよい。決定は、リモートコンピューティングアプリケーションの起動時のユーザー要求に基づいてよい。また、決定はリモートコンピューティングアプリケーションが起動されるときに送信されるデータに示されるように、特定のユーザーのための事前に選択されたオプションに基づいてもよい。
【００８８】
いったんＰＥＳプラットフォーム１０２がクライアントコンピューティングデバイス要求のために必要とされる処理要件を決定すると、次いでブロック１００６で、リモートコンピューティングセッションがバーチャルデスクトップインスタンスとクライアントコンピューティングデバイスとの間で確立される。セッション確立の後で、インスタンスはブロック１００８で、クライアントコンピューティングデバイスのユーザーによってインスタンスの使用を監視することに基づいて動的に調整されてよい。
【００８９】
例えば、初期のバーチャルデスクトップインスタンスは、ユーザープロファイルに基づいて低リソースをプロビジョニングされてよい。しかしながら、しばらくしてユーザーは、データベースで作業するため等、特定のタスクを実行するためにより多くのリソースを有するバーチャルデスクトップインスタンスへのアクセスを要求することがある。いくつかの実施形態では、異なる要件に対する要求はデスクトップインタフェースでのアプリケーションのためのアイコンをユーザーが選択することによって開始されてよい。いくつかの実施形態では、要求は、コントロールパネルのオプションのリストからユーザーがオプションを選択することによって開始されてよい。例えば、オプションのリストは処理パワー及びメモリの異なる量のスライドスケールを含んでよい。
【００９０】
ＰＥＳプラットフォーム１０２は、より多くの処理パワー及びメモリに対応するためにバーチャルデスクトップインスタンスに割り当てられるリソースの量を動的に調整してよい。いくつかの実施形態では、調整は同じまたは異なるデータセンタコンピュータでインスタンスを再起動することを必要とすることがある。バーチャルデスクトップインスタンスの再起動は、実行中のインスタンスを終了すること、デスクトップストアをインスタンスから切断すること、新しいインスタンスを起動するためにデータセンタコンピュータを選択すること、選択されたデータセンタコンピュータで新しいインスタンスをインスタンス化すること、及び新しいインスタンスにデスクトップストアを関連付けることを含んでよい。いったんインスタンスがインスタンス化されると、ユーザーはログインプロンプトによってそれに対するアクセスを提供されてよい。
【００９１】
他の実施形態では、調整は、インスタンスの終了なしにバーチャルデスクトップインスタンスに追加のリソースを追加することを含むことがある。例えば、インスタンスマネージャはバーチャルデスクトップインスタンスに別のプロセッサを追加し、バーチャルデスクトップインスタンス等にメモリを追加できるだろう。ルーチン１０００はブロック１０１０で終了する。
【００９２】
図１１は、リモート環境とローカル環境との間でのクライアントコンピューティングデバイス及びサービスプロバイダの動作の遷移のためのルーチンを示す流れ図である。ルーチンは１１０２で開始する。ブロック１１０４で、リモートコンピューティングセッションはバーチャルデスクトップインスタンスとクライアントコンピューティングデバイスとに間に確立される。セッションは、上述したように、クライアントコンピューティングデバイスのユーザーと関連付けられたユーザープロファイルに基づいて確立されてよい。さらに、デスクトップストアはユーザーのインスタンスと関連付けられる。セッションが確立された後、ＰＥＳプラットフォーム１０２は、デスクトップストアで、ブロック１１０６でクライアントコンピューティングデバイスでのユーザーのインスタンスとの対話によって作成されるデータを記憶する。次いで、決定ブロック１１０８で、ＰＥＳプラットフォーム１０２は、ネットワーク接続損失がクライアントコンピューティングデバイスとＰＥＳプラットフォーム１０２との間で計画されるかどうかを判断する。例えば、クライアントコンピューティングデバイスのユーザーが航空機に搭乗する準備中である可能性があり、ユーザーが間近のネットワーク切断を示すことがある。
【００９３】
係る切断は予期されていないが、ＰＥＳプラットフォーム１０２はクライアントコンピューティングデバイスでのユーザーの対話からデータを受信し続け、ブロック１１０６でデータを記憶する。しかしながら、ブロック１１０８で、ＰＥＳプラットフォーム１０２が、ネットワーク接続が損失時に計画されていると判断すると、次いでルーチンはブロック１１１０に移動し、ＰＥＳプラットフォーム１０２はバーチャルデスクトップインスタンスを生成するために使用されるイメージのコピー（例えば、ＯＳ及びインストールされているアプリケーションのイメージ）をクライアントコンピューティングデバイスの上に複製し、クライアントコンピューティングデバイスの上にデスクトップストアのコピーも複製する。いくつかの実施形態では、バーチャルデスクトップインスタンスをインスタンス化するために使用されるイメージを複製するために多大な量の時間を要することがある。したがって、ユーザーは相応して計画しなければならない可能性がある。代替実施形態では、クライアントコンピューティングデバイスは、ユーザーが切断モードに入る必要があるしばらく前にバーチャルデスクトップインスタンスを生成するまたはイメージのコピーを受信するために使用されるイメージをプロビジョニングされることがある。本実施形態では、ＰＥＳプラットフォーム１０２が、ネットワーク接続が失われると判断するとき、ＰＥＳプラットフォーム１０２は、デスクトップストアをクライアントコンピューティングデバイスに送信させることができる。ここでは、ＰＥＳプラットフォーム１０２はデスクトップストア内のすべてをクライアントコンピューティングデバイスに送信する必要はないことがある。むしろ、ＰＥＳプラットフォーム１０２は、ＰＥＳプラットフォーム１０２がクライアントコンピューティングデバイスと最後に同期した以後の変更を送信できる。例えば、ローカルインスタンスマネージャはローカルデスクトップストアでどのブロックが変更したのかを示す変更ログだけではなく最後に変更が行われた時のものを示すタイムスタンプも維持することができ、ＰＥＳプラットフォーム１０２は、デスクトップストアのためにタイムスタンプ及び変更ログを維持できる。ＰＥＳプラットフォーム１０２及びローカルインスタンスマネージャは、相違点を決定し、同期できる。代替実施形態では、変更ログは、ブロックレベルの代わりにファイルシステムレベルで維持できる。例えば、インスタンスのエージェントは変更を追跡できる。この構成では、変更されたファイル及び設定値はブロックの代わりに同期できる。いくつかの実施形態では、クライアントコンピューティングデバイスは、データセンタコンピュータで実行されるインスタンスの低出力でよりエネルギー集約型ではないバージョンで適応されてよい。
【００９４】
その後、クライアントコンピューティングデバイス１０６がネットワーク１０４から切断されると、ユーザーはローカルに記憶されたイメージからローカルバーチャルデスクトップインスタンスを実行し、ローカルデータストアをアタッチしてよい。ここで、デスクトッププロファイル及びユーザーコンテンツに対する変更は、デスクトップストアのローカルコピーに記憶される。次いで、例えばクライアントコンピューティングデバイス１０６のユーザーがサービスプロバイダのネットワークへのネットワーク接続性のある領域に戻る（例えば、その目的地都市で航空機を降りる）とき等、ネットワーク接続がＰＥＳプラットフォーム１０２で再確立されるとき、リモートコンピューティングセッション要求がクライアントコンピューティングデバイスから受信され、ブロック１１１２によって示されるように、ローカルデスクトップストアはデスクトップストアと同期する。特定の例では、同期動作は、ユーザーがＰＥＳプラットフォーム１０２でバーチャルデスクトップインスタンスの開始を試行するときに発生するだろう。クライアントコンピューティングデバイス１０６がＰＥＳプラットフォーム１０２に接続されるとき、デスクトップストア１７０のコピーはＰＥＳプラットフォーム１０２のストレージサーバ１０７に保存される。デスクトップストア１７０のコピーに対して行われる変更はユーザーと関連付けられた一次デスクトップストア１４００に同期され、リモートセッションでバーチャルインスタンスと対話する間にユーザーから受信される追加の変更も一次デスクトップストア１７０に保存される。ルーチン１１００はブロック１１１４で終了する。
【００９５】
本開示の実施形態は、以下の節を鑑みて説明できる。
１．プロセッサと、メモリとを含むプログラム実行サービス（ＰＥＳ）の１台または複数のコンピュータであって、メモリが、実行時に１台または複数のコンピュータに、
バーチャルデスクトップインスタンスと関連付けられた可変リソースへのそれぞれのユーザーのアクセスのための１つまたは複数の規則を確立する方針を受信させ、
コンピューティングデバイスからバーチャルデスクトップインスタンスへアクセスする要求であって、コンピューティングデバイスのユーザーを識別する要求を受信させ、
コンピューティングデバイスに対し、リソースのセットで構成された第１のバーチャルデスクトップインスタンスへのアクセスを提供させ、
ユーザーの可変リソースへのアクセスに関連付けられた１つまたは複数の規則に従って、ユーザーからの要求またはリソースのセットの使用を監視することに少なくとも部分的に基づいて決定された必要性の内の少なくとも１つに応えてリソースのセットに変更を生じさせるかどうかを判断させる、
命令を含む、１台または複数のコンピュータ
を含むシステム。
２．リソースのセットが、バーチャルデスクトップインスタンスによって実行されるオペレーティングシステム、バーチャルデスクトップインスタンスと関連付けられたメモリ仕様、またはバーチャルデスクトップインスタンスと関連付けられた処理パワー仕様の内の１つまたは複数を含む、節１に記載のシステム。
３．可変リソースに対するそれぞれのユーザーのアクセスのための１つまたは複数の規則が各ユーザーに関連付けられたユーザープロファイルに記憶される、節１に記載のシステム。
４．第１のバーチャルデスクトップインスタンスが、ユーザーと関連付けられた履歴リソースアクセス統計に基づいて構成される、節３に記載のシステム。
５．バーチャルデスクトップインスタンスと関連付けられた可変リソースに対するそれぞれのユーザーのアクセスのための１つまたは複数の規則を受信することと、
バーチャルデスクトップインスタンスにアクセスする要求をコンピューティングデバイスから受信することであって、要求がコンピューティングデバイスのユーザーを識別する、受信することと、
コンピューティングデバイスに対し、リソースのセットで構成された第１のバーチャルデスクトップインスタンスへのアクセスを提供することと、
可変リソースに対するそれぞれのユーザーのアクセスのための１つまたは複数の規則に基づいて、リソースのセットで変更を生じさせるかどうかを判断することと、
を含むコンピュータに実装される方法。
６．リソースのセットで変更を生じさせるかどうかを判断することが、変更に対するユーザーからの要求に対する応答である、節０に記載のコンピュータに実装される方法。
７．リソースのセットの使用を監視することをさらに含み、リソースのセットで変更を生じさせるかどうかを判断することが、監視に基づいて変更の必要性を決定することに対する応答である、節０に記載のコンピュータに実装される方法。
８．リソースのセットで変更を生じさせると判断される場合、バーチャルデスクトップインスタンスと関連付けられたメモリの仕様または処理パワーの仕様の内の１つまたは複数をスケーリングすることをさらに含む、節０に記載のコンピュータに実装される方法。
９．第１のバーチャルデスクトップインスタンスがユーザープロファイルに従ってリソースのセットで構成され、可変リソースへのアクセスのための１つまたは複数の規則がユーザープロファイルに含まれる、節０に記載のコンピュータに実装される方法。
１０．リソースのセットで変更を生じさせると判断される場合、コンピューティングデバイスに、リソースの変更されたセットで構成された第２のバーチャルデスクトップインスタンスへのアクセスを提供することをさらに含む、節０に記載のコンピュータに実装される方法。
１１．１つまたは複数のボリュームを第１のバーチャルデスクトップインスタンスにアタッチさせることをさらに含み、１つまたは複数のボリュームがユーザーのためのデスクトップ個人化情報及びユーザーのためのデータストアを含み、第１のバーチャルデスクトップインスタンス内で実行中の第１のオペレーティングシステムが、ユーザーに対するデスクトップ個人化情報に、及びユーザーのためのデータストアのストレージにマッピングされた１つまたは複数のオペレーティングシステムフォルダに従って個人化される、節０に記載のコンピュータに実装される方法。
１２．１つまたは複数のボリュームを第１のバーチャルデスクトップインスタンスから切り離し、第２のバーチャルデスクトップインスタンスにアタッチさせることをさらに含む、節０に記載のコンピュータに実装される方法。
１３．実行時に、コンピューティングシステムに少なくとも
バーチャルデスクトップインスタンスと関連付けられた可変リソースに対するそれぞれのユーザーのアクセスのための１つまたは複数の規則を受信し、
コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスする要求であって、コンピューティングデバイスのユーザーを識別する要求を受信し、
ユーザーコンピューティングデバイスに対し、リソースのセットで構成される第１のバーチャルデスクトップインスタンスへのアクセスを提供し、
第１のバーチャルデスクトップインスタンスと関連付けられたリソースへのユーザーのアクセスを監視し、
可変リソースに対するユーザーのそれぞれのアクセスのための１つまたは複数の規則に基づいて、リソースのセットで変更を生じさせるかどうかを判断する
ように命令するコンピュータ実行可能命令を含む非一過性物理コンピュータストレージ。
１４．コンピュータ実行可能命令が、実行時に第１のバーチャルデスクトップインスタンスで起動されるアプリケーションのセットを監視する第１のバーチャルデスクトップインスタンスにインストールされるエージェントに基づいてリソースのセットに変更を生じさせるかどうかを決定するようにコンピューティングシステムに命令する、節０に記載の非一過性物理コンピュータストレージ。
１５．コンピュータ実行可能命令が、実行時にコンピューティングデバイスから受信された、リソースの変更されたセットでバーチャルデスクトップインスタンスにアクセスする要求に基づいてリソースのセットに変更を生じさせるかどうかを判断するようにコンピューティングシステムに命令する、節０に記載の非一過性物理コンピュータストレージ。
１６．コンピュータ実行可能命令が、実行時にユーザーと関連付けられた１つまたは複数の規則に示されるリソースの量までリソースのセットに変更を生じさせるようにコンピューティングシステムに命令する、節０に記載の非一過性物理コンピュータストレージ。
１７．コンピュータ実行可能命令が、実行時にユーザーと関連付けられた１つまたは複数の規則に示されるリソースの量を超えてリソースのセットに対する要求に関してユーザーのユーザーアカウントと関連付けられた管理者に通知するようにコンピューティングシステムにさらに命令する、節０に記載の非一過性物理コンピュータストレージ。
１８．コンピュータ実行可能命令が、実行時にバーチャルデスクトップインスタンスへのアクセスのためのコストを計算するようにコンピューティングシステムにさらに命令する、節０に記載の非一過性物理コンピュータストレージ。
１９．コンピュータ実行可能命令が、実行時にリソースのセットに基づいてバーチャルデスクトップインスタンスに対するアクセスについて期間あたりの単一従量制料金を使用してコストを計算するようにコンピューティングシステムに命令する、節０に記載の非一過性物理コンピュータストレージ。
２０．コンピュータ実行可能命令が、実行時にリソースのセットで変更を生じさせることを判断するようにコンピューティングシステムに命令し、リソースの変更されたセットに基づいてバーチャルデスクトップインスタンスへのアクセスについて期間あたりの可変料金を使用してコストを計算するようにコンピューティングシステムにさらに命令する、節０に記載の非一過性物理コンピュータストレージ。
【００９６】
例示的な実施形態が開示、説明されてきたが、当業者は追加の実施形態または代替の実施形態が本発明の精神及び範囲内で実装され得ることを理解する。例えば、本明細書に説明される技術は、イメージ編集ソフトウェアまたはビデオ編集ソフトウェア、データベースソフトウェア、オフィス生産性ソフトウェア、３ｄ設計ソフトウェア、オーディオ処理アプリケーション及び音声処理アプリケーション等を含むが、これに限定されるものではない、任意の数の他のソフトウェアアプリケーション及びプロセスでリモート処理管理を可能にするために、本発明の範囲から逸脱することなく活用されてよい。さらに、多くの実施形態は例示的として示されたが、当業者は、例示的な実施形態は互いに組み合わせるまたは実装される必要がないことを理解する。したがって、いくつかの例示的な実施形態は本開示の変形形態の範囲に従って活用または実装される必要はない。
【００９７】
とりわけ「できる」、「ことがある」、「可能性がある」、「してよい」等の条件付き言語は、特に明記しない限り、または使用される文脈内で特に理解されない限り、他の実施形態が特定の特徴、要素、及び／またはステップを含まないが、特定の実施形態が特定の特徴、要素、及び／またはステップを含むことを伝達することを概して目的とする。したがって、係る条件付き言語は、特徴、要素、及び／またはステップが１つまたは複数の実施形態にとって形がどうあれ必要とされること、または１つまたは複数の実施形態が、これらの特徴、要素、及び／またはステップが任意の特定の実施形態で含まれるべきであるか、それとも実行されるべきであるかをユーザー入力またはプロンプトの有無に関係なく決定するための論理を必ず含むことを暗示することを概して目的としていない。
【００９８】
本明細書に説明される及び／または添付図に示される流れ図のあらゆるプロセス説明、要素、またはブロックは、特有の論理関数またはステップをプロセスで実装するための１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの部分を潜在的に示すとして理解されるべきである。代わりの実装では、要素または機能が削除され、当業者によって理解されるように、関係する機能性に応じて実質的に同時にまたは逆順で図示または説明される順序から外れて実行されてよい、本明細書に説明される実施形態の範囲内に含まれる。上述したデータ及び／または構成要素がコンピュータ可読媒体に記憶され、コンピュータ可読媒体と関連付けられたドライブ機構を使用してコンピューティングデバイスのメモリの中にロードされてよく、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の任意の数のコンピュータ実行可能構成要素に記憶されてよい、またはネットワークインタフェースを介して提供もしくは入手されてよく、さらに構成要素及び／またはデータが単一のデバイスに含まれるもしくは任意の他の方法で分散できることが理解される。したがって、汎用コンピューティングデバイスは、上述した多様なデータ及び／または構成要素の処理及び／または実行で本開示のプロセス、アルゴリズム、及び方法論を実装するように構成されてよい。
【００９９】
多くの変形形態及び変更形態が上述の実施形態に対して行われてよく、上述の実施形態の要素が他の許容できる実施例の中にあると理解されるべきであることが強調されるべきである。すべての係る変更形態及び変形形態は、本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲により保護されることを目的とする。
【図１】
2019008809.tif 000003
【図２】
2019008809.tif 000004
【図３】
2019008809.tif 000005
【図４】
2019008809.tif 000006
【図５】
2019008809.tif 000007
【図６】
2019008809.tif 000008
【図７】
2019008809.tif 000009
【図８】
2019008809.tif 000010
【図９】
2019008809.tif 000011
【図１０】
2019008809.tif 000012
【図１１】
2019008809.tif 000013