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