JP6307159B2 - コンピューティングセッションの管理 - Google Patents

コンピューティングセッションの管理 Download PDF

Info

Publication number
JP6307159B2
JP6307159B2 JP2016523889A JP2016523889A JP6307159B2 JP 6307159 B2 JP6307159 B2 JP 6307159B2 JP 2016523889 A JP2016523889 A JP 2016523889A JP 2016523889 A JP2016523889 A JP 2016523889A JP 6307159 B2 JP6307159 B2 JP 6307159B2
Authority
JP
Japan
Prior art keywords
user
instance
computing device
virtual desktop
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016523889A
Other languages
English (en)
Other versions
JP2016530604A (ja
Inventor
デイビッド エヴェラルド ブラウン
デイビッド エヴェラルド ブラウン
エリック ジェイソン ブランドワイン
エリック ジェイソン ブランドワイン
ユージン マイケル ファレル
ユージン マイケル ファレル
アジト ナジェンドラ パデュコネ
アジト ナジェンドラ パデュコネ
ディーパック スリヤナラヤナン
ディーパック スリヤナラヤナン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2016530604A publication Critical patent/JP2016530604A/ja
Application granted granted Critical
Publication of JP6307159B2 publication Critical patent/JP6307159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Description

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

Claims (15)

  1. プロセッサとメモリとを含むコンピュータを制御するために、前記メモリに格納されて前記プロセッサが実行する特定のコンピュータ実行可能命令として構成されて前記コンピュータに実装される方法であって、
    ネットワーク接続を介して、オペレーティングシステムを実行するように構成されるバーチャルデスクトップインスタンスにアクセスする要求をプログラム実行サービス(PES)に送信することと、
    前記ネットワーク接続を介して前記バーチャルデスクトップインスタンスへのアクセスを受信することと、
    前記ネットワーク接続が中断されたと判断することと、
    前記ネットワーク接続が中断されたと判断した後に、前記ネットワーク接続を介してデータストア内のユーザーコンテンツの少なくとも一部分を受信することと、
    ローカルデータストアに前記ユーザーコンテンツの前記少なくとも一部分を記憶することと、
    前記ネットワーク接続が中断されたと判断した後に、オペレーティングシステムの少なくとも1つの態様がローカル実行のために変更されると共に、ユーザーのためのデスクトッププロファイルに従って構成される前記オペレーティングシステムのローカルイメージに基づいて起動される前記オペレーティングシステムでローカルバーチャルデスクトップインスタンスを起動することと、
    前記バーチャルデスクトップ監視モジュールによって、ユーザーコンテンツに関係する入出力動作がリダイレクトされる前記ローカルデータストアを前記ローカルバーチャルデスクトップインスタンスにアタッチすることと、
    を含むコンピュータに実装される方法。
  2. 前記ネットワーク接続から切断する要求を前記PESに送信することをさらに含む、請求項1に記載のコンピュータに実装される方法。
  3. 前記ネットワーク接続が中断されたとの判断が前記ネットワーク接続の帯域幅の劣化に少なくとも部分的に基づく、請求項1に記載のコンピュータに実装される方法。
  4. 記ユーザーコンテンツの少なくとも前記一部分を受信し、前記ローカルバーチャルデスクトップインスタンスを起動することは、前記ネットワーク接続が中断される可能性があると判断した後である、請求項3に記載のコンピュータに実装される方法。
  5. 前記データストアのコピー上への前記オペレーティングシステムの実行に関係する情報を取り込むことをさらに含む、請求項4に記載のコンピュータに実装される方法。
  6. 前記ネットワーク接続が復元されると判断し、前記データストアの前記コピーを前記データストアと同期させる要求を前記PESに送信することをさらに含む、請求項5に記載のコンピュータに実装される方法。
  7. 前記ローカルバーチャルデスクトップインスタンスを終了することをさらに含む、請求項6に記載のコンピュータに実装される方法。
  8. 前記オペレーティングシステムの前記ローカルイメージが、前記バーチャルデスクトップインスタンスによって実行されるオペレーティングシステムとは異なるオペレーティングシステムバージョンである、請求項1に記載のコンピュータに実装される方法。
  9. 前記ユーザーのための前記デスクトッププロファイルの少なくとも一部分を受信し、該一部分をローカルデータストアに記憶することをさらに含、請求項1に記載のコンピュータに実装される方法。
  10. 前記ローカルデータストア内の前記ユーザーのための前記デスクトッププロファイルに対する変更を、前記PESによって維持されるデータストアに記憶される前記ユーザーのためのデスクトッププロファイルと同期することをさらに含む、請求項9に記載のコンピュータに実装される方法。
  11. プロセッサとコンピュータ実行可能命令を含んだ1台または複数のコンピュータシステムを備えるシステムであって、前記コンピュータ実行可能命令が実行時に前記プロセッサ
    ーザーのためのデスクトップ個人化情報に従って個人化され、オペレーティングシステム入出力動作の内の少なくとも一部分が前記ユーザーのためのデータストアにリダイレクトされるオペレーティングシステムを有し、前記ユーザー及び前記ユーザー用の前記データストアのための前記デスクトップ個人化情報を含んだ1つまたは複数のボリュームを作成することによって前記ユーザーのためのバーチャルデスクトップインスタンスを構成させ、
    ネットワーク接続が中断されたと判断させ、
    前記ネットワーク接続が中断されたとの判断に応じて、前記ユーザーと関連付けられたコンピューティングデバイスに対して、前記デスクトップ個人化情報の少なくとも一部分及び前記ユーザー用の前記データストアの少なくとも一部分を提供させ、
    前記ネットワーク接続が中断されたと判断された後に、前記コンピューティングデバイスがローカルバーチャルデスクトップインスタンスを実行し、前記デスクトップ個人化情報の少なくとも前記提供された一部分及び前記ユーザー用の前記データストアの前記提供された一部分を含むローカルデータストアをアタッチできるようにさせて、前記オペレーティングシステムのローカルイメージが前記コンピューティングデバイス上で修正されると共に前記ローカルデータストアの前記ローカルバーチャルデスクトップインスタンスへのアタッチ時に前記デスクトップ個人化情報の少なくとも提供された一部分に従って個人化され、ローカルオペレーティングシステム入出力動作の内の少なくとも一部分が前記ローカルデータストアにリダイレクトされ、
    前記ローカルデータストアを前記1つまたは複数のボリューム上の前記データストアと同期させる要求をクライアントコンピューティングデバイスから受信させる、システム。
  12. 前記ローカルバーチャルデスクトップインスタンスが、異なるリソース要件を有する前記オペレーティングシステムのバージョンで起動可能であり、前記リソース要件が処理パワー要件またはメモリ要件の内の1つまたは複数を含む、請求項11に記載のシステム。
  13. 前記コンピュータ実行可能命令が、実行時に前記プロセッサにさらに、
    前記コンピューティングデバイスが前記ローカルデータストア上の前記データストアの前記提供された一部分に対する変更を取り込むことを可能にさせる、請求項11に記載のシステム。
  14. 前記コンピュータ実行可能命令が、実行時に前記プロセッサにさらに
    第2のバーチャルデスクトップインスタンスにアクセスする要求を前記コンピューティングデバイスから受信させ、
    前記要求に対応する前記第2のバーチャルデスクトップインスタンスを構成させ、
    前記データストアを前記第2のバーチャルデスクトップインスタンスにアタッチさせる、請求項11に記載のシステム。
  15. 前記コンピュータ実行可能命令が、実行時に前記プロセッサさらに
    前記第2のバーチャルデスクトップインスタンスを前記ローカルデータストアと同期させる、請求項14に記載のシステム。
JP2016523889A 2013-06-26 2014-06-25 コンピューティングセッションの管理 Active JP6307159B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/928,295 2013-06-26
US13/928,295 US10623243B2 (en) 2013-06-26 2013-06-26 Management of computing sessions
PCT/US2014/044124 WO2014210175A1 (en) 2013-06-26 2014-06-25 Management of computing sessions

Publications (2)

Publication Number Publication Date
JP2016530604A JP2016530604A (ja) 2016-09-29
JP6307159B2 true JP6307159B2 (ja) 2018-04-04

Family

ID=52142652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016523889A Active JP6307159B2 (ja) 2013-06-26 2014-06-25 コンピューティングセッションの管理

Country Status (9)

Country Link
US (1) US10623243B2 (ja)
EP (1) EP3014433B1 (ja)
JP (1) JP6307159B2 (ja)
KR (1) KR101868489B1 (ja)
CN (1) CN105579960B (ja)
AU (1) AU2014302474B2 (ja)
CA (1) CA2916279C (ja)
SG (1) SG11201510455WA (ja)
WO (1) WO2014210175A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
US10200258B2 (en) * 2014-08-14 2019-02-05 Juniper Networks, Inc. Transaction integrity for network services configuration
US10374891B1 (en) * 2014-11-11 2019-08-06 Skytap Multi-region virtual data center template
JP6540356B2 (ja) * 2015-08-10 2019-07-10 富士通株式会社 システム複製制御装置およびシステムの複製制御方法
US10083054B2 (en) 2015-12-28 2018-09-25 Amazon Technologies, Inc. Application-based computing resource management
US10637957B2 (en) * 2016-12-15 2020-04-28 Vmware, Inc. Dynamic runtime interface for device management
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10728343B2 (en) * 2018-02-06 2020-07-28 Citrix Systems, Inc. Computing system providing cloud-based user profile management for virtual sessions and related methods
US11138274B2 (en) 2018-05-03 2021-10-05 Citrix Systems, Inc. Virtualization environment providing user-based search index roaming and related methods
KR102314221B1 (ko) * 2019-02-28 2021-10-15 에스케이브로드밴드주식회사 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법
US11496365B2 (en) * 2019-06-17 2022-11-08 Cyxtera Data Centers, Inc. Automated access to racks in a colocation data center
US11489716B2 (en) * 2019-08-20 2022-11-01 Citrix Systems, Inc. Desktop virtualization with a dedicated cellular network connection for client devices

Family Cites Families (213)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001628A (en) 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4991089A (en) * 1988-09-30 1991-02-05 Ibm Corp. Method for establishing current terminal addresses for system users processing distributed application programs in an SNA LU 6.2 network environment
US6044367A (en) 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US5948061A (en) 1996-10-29 1999-09-07 Double Click, Inc. Method of delivery, targeting, and measuring advertising over networks
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6377993B1 (en) 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
US6332180B1 (en) * 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6192361B1 (en) 1997-12-23 2001-02-20 Alcatel Usa Sourcing, L.P. Full group privileges access system providing user access security protection for a telecommunications switching system
US6223289B1 (en) * 1998-04-20 2001-04-24 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US6574239B1 (en) 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
US6343280B2 (en) 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6895588B1 (en) * 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US6615264B1 (en) * 1999-04-09 2003-09-02 Sun Microsystems, Inc. Method and apparatus for remotely administered authentication and access control
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
US6502103B1 (en) * 1999-06-14 2002-12-31 International Business Machines Corporation Providing composed containers and data objects to support multiple resources
US6567818B1 (en) * 1999-06-14 2003-05-20 International Business Machines Corporation Employing management policies to manage instances of objects
US6560609B1 (en) * 1999-06-14 2003-05-06 International Business Machines Corporation Delegating instance management functions to underlying resource managers
JP2002007329A (ja) 2000-06-20 2002-01-11 Nec Corp コンピュータシステム
US6959331B1 (en) * 2000-08-14 2005-10-25 Sun Microsystems, Inc. System and method for operating a client network computer in a disconnected mode by establishing a connection to a fallover server implemented on the client network computer
US6915347B2 (en) * 2000-10-17 2005-07-05 Sun Microsystems, Inc. Associating multiple display units in a grouped server environment
JP2002140532A (ja) 2000-10-31 2002-05-17 Toshiba Eng Co Ltd ソフトウェア販売システム、ソフトウェア販売方法、ソフトウェア販売を行うためのプログラムを記憶した記録媒体
US7349912B2 (en) 2000-12-22 2008-03-25 Oracle International Corporation Runtime modification of entries in an identity system
US6944860B2 (en) * 2001-01-16 2005-09-13 Sun Microsystems, Inc. Method and apparatus for representing and encapsulating active computing environments
US6871232B2 (en) 2001-03-06 2005-03-22 International Business Machines Corporation Method and system for third party resource provisioning management
US20080113675A1 (en) 2001-02-21 2008-05-15 Harris Scott C Applications of broadband media and position sensing phones
JP2002328741A (ja) 2001-05-07 2002-11-15 Fujitsu Ltd 使用権管理方法、使用権管理装置及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
US7392541B2 (en) 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7010002B2 (en) 2001-06-14 2006-03-07 At&T Corp. Broadband network with enterprise wireless communication method for residential and business environment
US7002995B2 (en) 2001-06-14 2006-02-21 At&T Corp. Broadband network with enterprise wireless communication system for residential and business environment
US20030079030A1 (en) 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling access to private network resources
US20030078965A1 (en) 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling printing via wireless devices
WO2003027878A1 (en) 2001-09-28 2003-04-03 Fiberlink Communications Corporation Client-side network access polices and management applications
US7222297B2 (en) 2002-01-14 2007-05-22 International Business Machines Corporation System and method for using XML to normalize documents
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7197553B2 (en) * 2002-04-19 2007-03-27 Nortel Networks Limited Network system having a virtual-service-module
JP2004062443A (ja) 2002-07-26 2004-02-26 Ntt Docomo Inc サービス管理システム、サービス管理方法、サーバ管理装置、通信端末及びサーバ装置
JP2004072265A (ja) 2002-08-02 2004-03-04 Kddi Corp 機能分散システムおよび負荷分散方法、コンピュータプログラム
US7209945B2 (en) * 2002-09-11 2007-04-24 Bellsouth Intellectual Property Corporation Application services gateway
DE10324470A1 (de) 2003-05-30 2005-03-10 Deutsche Telekom Ag Verfahren und Vorrichtung zum Steuern von Datenverbindungen in einem Datennetz mit einer Vielzahl von Datennetzknoten
US20060010392A1 (en) * 2004-06-08 2006-01-12 Noel Vicki E Desktop sharing method and system
US7412516B1 (en) * 2003-12-29 2008-08-12 Aol Llc Using a network bandwidth setting based on determining the network environment
US20060253844A1 (en) * 2005-04-21 2006-11-09 Holt John M Computer architecture and method of operation for multi-computer distributed processing with initialization of objects
US20070291739A1 (en) 2004-05-04 2007-12-20 Sullivan Alan T Systems and Methods for Direction of Communication Traffic
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
KR100692011B1 (ko) 2004-07-28 2007-03-09 엘지전자 주식회사 이동 통신 단말기 컨텐츠의 사용권 만료 기준을 갱신하는방법
JP4400787B2 (ja) 2004-09-29 2010-01-20 日立ソフトウエアエンジニアリング株式会社 Webアクセス監視システム及び管理者用クライアントコンピュータ
US8397287B2 (en) 2006-08-21 2013-03-12 Citrix Systems, Inc. Method and system for authorizing a level of access of a client to a virtual private network connection, based on a client-side attribute
US7853953B2 (en) 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
GB0525244D0 (en) 2005-12-12 2006-01-18 Nokia Corp Providing communication service sessions
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
WO2007083299A2 (en) 2006-01-17 2007-07-26 Kidaro (Israel) Ltd. Seamless integration of multiple computing environments
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20120290455A1 (en) 2006-02-01 2012-11-15 Stephen Mark Mays System and Method for Providing Computer Services
JP4866636B2 (ja) 2006-03-22 2012-02-01 株式会社日立製作所 分散型プログラム実行環境における稼動品質管理方法
US8566447B2 (en) * 2006-04-10 2013-10-22 Bank Of America Corporation Virtual service switch
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20070255814A1 (en) 2006-04-27 2007-11-01 Securetek Group Inc. System for server consolidation and mobilization
US8141075B1 (en) 2006-05-08 2012-03-20 Vmware, Inc. Rule engine for virtualized desktop allocation system
US8312120B2 (en) 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
EP2078251B1 (en) 2006-10-20 2017-01-11 Citrix Systems, Inc. Methods and systems for accessing remote user files associated with local resources
US20080140941A1 (en) * 2006-12-07 2008-06-12 Dasgupta Gargi B Method and System for Hoarding Content on Mobile Clients
US20080172720A1 (en) 2007-01-15 2008-07-17 Botz Patrick S Administering Access Permissions for Computer Resources
WO2008092131A2 (en) 2007-01-25 2008-07-31 Skyfire Labs, Inc. Mobile device user interface for remote interaction
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
JP2008225520A (ja) 2007-03-08 2008-09-25 Nec Corp 仮想マシン環境においてメモリ資源を配置するメモリ資源配置制御方法、仮想マシンシステム及びプログラム
US8756293B2 (en) * 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
CA2690025C (en) 2007-06-06 2014-05-20 Boldstreet Inc. Remote service access system and method
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
CA2593897C (en) 2007-07-16 2016-06-14 Tet Hin Yeap Method, system and apparatus for accessing a resource based on data supplied by a local user
US8763115B2 (en) 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
US8180908B2 (en) 2007-08-14 2012-05-15 Bayerische Motoren Werke Aktiengesellschaft Platform for standardizing vehicle communications with third-party applications
US8090877B2 (en) 2008-01-26 2012-01-03 Citrix Systems, Inc. Systems and methods for fine grain policy driven cookie proxying
US7953833B2 (en) 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
WO2009108579A2 (en) * 2008-02-26 2009-09-03 Vmware, Inc. Extending server-based desktop virtual machine architecture to client machines
US8301318B2 (en) * 2008-03-05 2012-10-30 Robotic Research Llc Robotic vehicle remote control system having a virtual operator environment
KR101489301B1 (ko) * 2008-03-20 2015-02-06 삼성전자주식회사 가상환경 시스템 및 그의 구동방법
US8560593B2 (en) 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US7865586B2 (en) 2008-03-31 2011-01-04 Amazon Technologies, Inc. Configuring communications between computing nodes
US9003059B2 (en) * 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
JP5087456B2 (ja) 2008-04-09 2012-12-05 株式会社インテック サービス提供システム及びそれを構成するユーザ収容装置
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US8972978B2 (en) 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US8560713B2 (en) 2008-07-31 2013-10-15 Sap Ag Method and system for mediating enterprise service access for smart devices
US8443370B2 (en) 2008-08-26 2013-05-14 Microsoft Corporation Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources
CN102197374B (zh) * 2008-10-24 2014-04-02 思杰系统有限公司 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统
CN102217273B (zh) 2008-11-12 2014-12-10 思杰系统有限公司 用于应用流畅性策略的系统和方法
US9009329B2 (en) * 2008-11-25 2015-04-14 Microsoft Technology Licensing, Llc Platform for enabling terminal services virtualization
US8201237B1 (en) * 2008-12-10 2012-06-12 Amazon Technologies, Inc. Establishing secure remote access to private computer networks
US8370493B2 (en) 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8898108B2 (en) 2009-01-14 2014-11-25 Vmware, Inc. System and method for scheduling data storage replication over a network
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
US8549364B2 (en) 2009-02-18 2013-10-01 Vmware, Inc. Failure detection and recovery of host computers in a cluster
TW201032131A (en) 2009-02-24 2010-09-01 Ibm Device, method and computer program product for automatically selecting internet browser and providing web page service
US20100241731A1 (en) * 2009-03-17 2010-09-23 Gladinet, Inc. Method for virtualizing internet resources as a virtual computer
US20100275200A1 (en) 2009-04-22 2010-10-28 Dell Products, Lp Interface for Virtual Machine Administration in Virtual Desktop Infrastructure
US9154364B1 (en) * 2009-04-25 2015-10-06 Dasient, Inc. Monitoring for problems and detecting malware
CN102460393B (zh) 2009-05-01 2014-05-07 思杰系统有限公司 用于在虚拟存储资源之间建立云桥的系统和方法
US8856783B2 (en) 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
US8725791B2 (en) 2009-05-02 2014-05-13 Citrix Systems, Inc. Methods and systems for providing a consistent profile to overlapping user sessions
US8352482B2 (en) 2009-07-21 2013-01-08 Vmware, Inc. System and method for replicating disk images in a cloud computing based virtual machine file system
CN101964860A (zh) 2009-07-23 2011-02-02 孙博雅 家庭影院服务器
US8832459B2 (en) 2009-08-28 2014-09-09 Red Hat, Inc. Securely terminating processes in a cloud computing environment
US8365195B2 (en) 2009-08-31 2013-01-29 Red Hat, Inc. Systems and methods for generating sets of model objects having data messaging pipes
US8285218B2 (en) * 2009-08-31 2012-10-09 The Nielsen Company (Us), Llc Methods and apparatus to identify wireless carrier performance effects
WO2011030755A1 (ja) 2009-09-10 2011-03-17 日本電気株式会社 ロール設定装置、ロール設定方法及びロール設定プログラム
JP2011060055A (ja) 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP2011076251A (ja) 2009-09-29 2011-04-14 Nec Personal Products Co Ltd リモート操作システム、クライアント装置、サーバ、通信方法、プログラム及び記録媒体
US8676753B2 (en) * 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8335765B2 (en) * 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US7991859B1 (en) * 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) * 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US20110178946A1 (en) 2010-01-15 2011-07-21 Incontact, Inc. Systems and methods for redundancy using snapshots and check pointing in contact handling systems
US8301746B2 (en) 2010-01-26 2012-10-30 International Business Machines Corporation Method and system for abstracting non-functional requirements based deployment of virtual machines
US9009219B2 (en) 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US9477531B2 (en) 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
JP2011160300A (ja) 2010-02-02 2011-08-18 Fujitsu Ltd ルータ、ルーティング方法、ルーティングプログラム、情報処理装置、仮想マシン構築方法および仮想マシン構築プログラム
US8527549B2 (en) 2010-02-22 2013-09-03 Sookasa Inc. Cloud based operating and virtual file system
US8468455B2 (en) * 2010-02-24 2013-06-18 Novell, Inc. System and method for providing virtual desktop extensions on a client desktop
US8949316B2 (en) 2010-03-09 2015-02-03 Avistar Communications Corp. Scalable high-performance interactive real-time media architectures for virtual desktop environments
JP5733302B2 (ja) 2010-03-11 2015-06-10 日本電気株式会社 リソース配分装置及びプログラム
CN102918490B (zh) * 2010-04-01 2014-07-23 思杰系统有限公司 与在平板计算装置的虚拟桌面内显示的远程应用交互
JP2011248419A (ja) 2010-05-24 2011-12-08 Hitachi Ltd 業務計算機割当て方法及び装置
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8477610B2 (en) * 2010-05-31 2013-07-02 Microsoft Corporation Applying policies to schedule network bandwidth among virtual machines
US8434081B2 (en) * 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
US8443367B1 (en) 2010-07-16 2013-05-14 Vmware, Inc. Federated management in a distributed environment
JP2012033096A (ja) 2010-08-02 2012-02-16 Nomura Research Institute Ltd ライセンスチェックシステムおよびリソースプール管理システム
WO2012020482A1 (ja) 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム
US20120311157A1 (en) * 2011-06-03 2012-12-06 Erickson Philip J Integrated information technology service management for cloud resources
US8612413B2 (en) 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US20120066679A1 (en) 2010-09-13 2012-03-15 Startforce, Inc. Disposable virtual desktop for transient use by multiple users
US8661120B2 (en) 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US20120084369A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Unified Reconnection To Multiple Remote Servers
EP2622490B1 (en) 2010-10-01 2018-12-05 Z124 Cross-environment communication framework
US9632875B2 (en) 2010-10-06 2017-04-25 International Business Machines Corporation Automated and self-adjusting data protection driven by business and data activity events
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
JP4811830B1 (ja) 2010-10-15 2011-11-09 株式会社 イーシー・ワン コンピュータリソース制御システム
US20120124194A1 (en) 2010-11-14 2012-05-17 Caroline Jacqueline Shouraboura Method and Apparatus for Efficiently Managing Network Distance between Physical Computers in a Computing Cloud
US8566441B2 (en) 2010-11-22 2013-10-22 Microsoft Corporation Network latency estimation for mobile devices
JP5760406B2 (ja) 2010-11-29 2015-08-12 セイコーエプソン株式会社 検出回路、センサーデバイス及び電子機器
US20120166619A1 (en) 2010-12-23 2012-06-28 Microsoft Corporation Licensing and metering of virtualized applications
US9229603B2 (en) 2010-12-28 2016-01-05 Schlumberger Technology Corporation Methods, systems, apparatuses, and computer-readable mediums for provisioning petrotechnical workflows in a cloud computing environment
US9201667B2 (en) * 2010-12-31 2015-12-01 Vmware, Inc. Providing virtual desktops using resources accessed on public computer networks
US8863256B1 (en) 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
US8510597B2 (en) 2011-02-08 2013-08-13 Wisconsin Alumni Research Foundation Providing restartable file systems within computing devices
JP5242717B2 (ja) 2011-02-09 2013-07-24 日本電信電話株式会社 リソース管理サーバ、リソース管理システム、リソース管理方法及びリソース管理プログラム
US20120216015A1 (en) * 2011-02-22 2012-08-23 Mitra Sumanranjan S System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor
KR20120096741A (ko) 2011-02-23 2012-08-31 인텔렉추얼디스커버리 주식회사 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8732267B2 (en) 2011-03-15 2014-05-20 Cisco Technology, Inc. Placement of a cloud service using network topology and infrastructure performance
US9060239B1 (en) 2011-08-09 2015-06-16 Zscaler, Inc. Cloud based mobile device management systems and methods
US9369433B1 (en) 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
JP5772127B2 (ja) 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
JP5863771B2 (ja) 2011-03-28 2016-02-17 日本電気株式会社 仮想マシン管理システム、及び仮想マシン管理方法
US8799897B2 (en) 2011-04-07 2014-08-05 Vmware, Inc. Automated cost calculation for virtualized infrastructure
JP5939740B2 (ja) 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
US9176744B2 (en) * 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US8683466B2 (en) 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US9225763B2 (en) 2011-06-07 2015-12-29 Cisco Technology, Inc. Distributed overlay browser for transparent streaming media support in virtualized desktop environment
US8769011B2 (en) 2011-06-21 2014-07-01 Cisco Technology, Inc. Survivable browsing in virtualized desktop environment when host connectivity is lost
US20130006815A1 (en) 2011-06-30 2013-01-03 Ebay Inc. Federated and multi-tenant e-commerce platform
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US9515952B2 (en) 2011-07-01 2016-12-06 Hewlett Packard Enterprise Development Lp Method of and system for managing computing resources
CN102317910B (zh) 2011-08-03 2014-08-20 华为技术有限公司 虚拟化数据备份方法、虚拟化数据重组方法、装置及系统
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US20130067469A1 (en) 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints
US8812687B2 (en) 2011-09-15 2014-08-19 Microsoft Corporation Managing user state of cloud desktops
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
AU2012323779A1 (en) * 2011-10-14 2014-04-17 Unitrends, Inc. Disaster recovery failover in cloud computing
US8868710B2 (en) * 2011-11-18 2014-10-21 Amazon Technologies, Inc. Virtual network interface objects
JP5976840B2 (ja) * 2011-12-29 2016-08-24 ヴイエムウェア インコーポレイテッドVMware,Inc. デスクトップイメージのnウェイ同期化
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US8891450B2 (en) * 2012-02-06 2014-11-18 Juniper Networks, Inc. Mobile node host route installation and withdrawal
US20130219043A1 (en) 2012-02-20 2013-08-22 Moritz M. Steiner Method and apparatus for automatic migration of application service
US9110600B1 (en) * 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
US8918392B1 (en) * 2012-03-29 2014-12-23 Amazon Technologies, Inc. Data storage mapping and management
US9110604B2 (en) 2012-09-28 2015-08-18 Emc Corporation System and method for full virtual machine backup using storage system functionality
US20130275966A1 (en) 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster
US20130283263A1 (en) * 2012-04-19 2013-10-24 Dincloud, Inc. System and method for managing resources in a virtual machine environment
US8954984B2 (en) 2012-04-19 2015-02-10 International Business Machines Corporation Environmentally aware load-balancing
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US9210162B2 (en) * 2012-05-02 2015-12-08 Microsoft Technology Licensing, Llc Certificate based connection to cloud virtual machine
US8904081B1 (en) 2012-05-08 2014-12-02 Vmware, Inc. Composing a virtual disk using application delta disk images
US9325530B2 (en) * 2012-05-22 2016-04-26 Cisco Technology, Inc. Management of virtual desktop infrastructure (VDI) sessions using real-time network conditions
JP2013250775A (ja) 2012-05-31 2013-12-12 Fujitsu Ltd 仮想マシン管理装置、仮想マシン管理プログラム、仮想マシン管理方法及びネットワークシステム
US8934887B2 (en) * 2012-05-31 2015-01-13 Emblaze Ltd. System and method for running mobile devices in the cloud
WO2014002102A1 (en) * 2012-06-29 2014-01-03 Hewlett-Packard Development Company, L.P. Optimizing placement of virtual machines
US9535871B2 (en) 2012-11-27 2017-01-03 Red Hat Israel, Ltd. Dynamic routing through virtual appliances
US9692632B2 (en) * 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US20140188977A1 (en) * 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Appratus, method for deploying applications in a virtual desktop interface system
US9384208B2 (en) 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US20140237070A1 (en) 2013-02-19 2014-08-21 Lg Cns Co., Ltd. Network-attached storage management in a cloud environment
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US20140280436A1 (en) * 2013-03-14 2014-09-18 Citrix Systems, Inc. Migration tool for implementing desktop virtualization
US9641559B2 (en) 2013-03-15 2017-05-02 Swyme Ip Bv Methods and systems for dynamic adjustment of session parameters for effective video collaboration among heterogeneous devices
US9645840B2 (en) * 2013-04-02 2017-05-09 Amazon Technologies, Inc. User-defined pools
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9740563B2 (en) 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9720712B2 (en) 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US20150019704A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US20150006614A1 (en) 2013-06-26 2015-01-01 Amazon Technologies, Inc. Management of computing sessions
US20150019705A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US20150019728A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions

Also Published As

Publication number Publication date
US10623243B2 (en) 2020-04-14
CA2916279C (en) 2022-05-10
EP3014433A1 (en) 2016-05-04
KR101868489B1 (ko) 2018-06-18
SG11201510455WA (en) 2016-01-28
JP2016530604A (ja) 2016-09-29
KR20160048063A (ko) 2016-05-03
US20150019733A1 (en) 2015-01-15
AU2014302474B2 (en) 2017-06-15
CN105579960B (zh) 2019-04-12
EP3014433B1 (en) 2020-06-17
CA2916279A1 (en) 2014-12-31
WO2014210175A1 (en) 2014-12-31
AU2014302474A1 (en) 2016-01-21
EP3014433A4 (en) 2016-12-28
CN105579960A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
JP6630792B2 (ja) コンピューティングセッションの管理
JP6307159B2 (ja) コンピューティングセッションの管理
JP6182265B2 (ja) コンピューティングセッションの管理
JP6251390B2 (ja) コンピューティングセッションの管理
US20150006614A1 (en) Management of computing sessions
US10686646B1 (en) Management of computing sessions

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180309

R150 Certificate of patent or registration of utility model

Ref document number: 6307159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250