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

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

Info

Publication number
JP6630792B2
JP6630792B2 JP2018156060A JP2018156060A JP6630792B2 JP 6630792 B2 JP6630792 B2 JP 6630792B2 JP 2018156060 A JP2018156060 A JP 2018156060A JP 2018156060 A JP2018156060 A JP 2018156060A JP 6630792 B2 JP6630792 B2 JP 6630792B2
Authority
JP
Japan
Prior art keywords
user
virtual desktop
instance
resources
computing device
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
JP2018156060A
Other languages
English (en)
Other versions
JP2019008809A (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 JP2019008809A publication Critical patent/JP2019008809A/ja
Application granted granted Critical
Publication of JP6630792B2 publication Critical patent/JP6630792B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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
    • 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/0893Assignment of logical groups to network elements
    • 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/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses

Description

リモートネットワークコンピューティングプロバイダのデータセンタは、カスタマに対しコンピューティングリソースを提供するために多大な数の相互接続されたコンピューティングシステムを収容することがある。係るデータセンタは、ネットワークアクセス、電力、ハードウェアリソース(例えば、コンピューティング及びストレージ)、並びにデータセンタ、組織によってもしくは別のサードパーティによって維持されるハードウェアのための安全なインストール施設を提供してよい。
データセンタリソースの活用の増加を促進するために、仮想化技術が単一の物理コンピューティングマシンが、接続されているコンピュータユーザーにとって独立したコンピュータマシンとして見え、動作するバーチャルマシンの1つまたは複数のインスタンスをホストできるようにしてよい。仮想化により、単一の物理コンピューティングデバイスはバーチャルマシンを動的に作成、維持、または削除できる。代わりに、ユーザーはデータセンタからコンピュータリソースを要求し、「必要に応じて」または少なくとも「要求に応じて」変化する数のバーチャルマシンリソースの提供を受けることができる。
米国特許公開第2013/0097601号
バーチャルマシンリソースをそのユーザーに提供するリモートネットワークコンピューティングプロバイダは、概して係るリソースに最適レベルの可用性、スケーラビリティ、及び信頼性を提供しようと努力している。
前述の態様及び本発明に付随する効果の多くは、添付図面と併せて解釈されるときに以下の発明を実施するための形態を参照することによって同がよりよく理解されるため、より容易に認識されるようになるだろう。
クライアントコンピューティングデバイス及びサービスプロバイダコンピュータネットワークを含んだネットワーク化されたコンピューティング環境を示すブロック図である。 イベント後のバーチャルデスクトップインスタンスの管理、及びバーチャルデスクトップインスタンス間でのユーザーデータの永続記憶を示す図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に送信できる。例証的に、バーチャルデスクトップインスタンスのデスクトップストアとの関連付けは、アプリケーションプロトコルインタフェース(「API」)の活用を通して達成できる。例えば、インスタンスマネージャ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で選択されるデスクトップストアに保存される。いくつかの実施形態では、PESプラットフォーム102は、さらに受信されたデータを第2のデスクトップストアにコピーしてよい。いくつかの実施形態では、PESプラットフォーム102はデスクトップストアで記憶領域を確保するために集中PESレポジトリにデータを周期的に転送してよい。次いで、ブロック716で、PESプラットフォーム102はリモートコンピューティングセッションに関与するインスタンスの故障を検出する。一実施形態では、PESプラットフォーム102は、インスタンスから受信された状態情報に基づいて、または代わりにインスタンスから係る状態情報を受信しないことに基づいて故障を識別してよい。
ブロック716でインスタンスでの故障を検出した後で、ブロック718で、PESプラットフォーム102は、第2のバーチャルデスクトップインスタンスがデータを利用できるようにする。データは、データを同期することを通じて、またはデスクトップストアと初期インスタンスとの間の関連を削除し、デスクトップストアを新しいインスタンスと関連付けることによって第2のバーチャルデスクトップインスタンスが利用できるようになる。いったん第2のバーチャルデスクトップインスタンスがデータを利用できるようになると、次いでルーチンはブロック720に移動する。いくつかの実施形態では、PESプラットフォーム102のバーチャルデスクトップインスタンスはユーザープロファイルに従って事前に構成されてよい。係る実施形態では、故障がブロック716で検出されると、次いでPESプラットフォーム102は必要とされるユーザープロファイルで事前に構成されている別にインスタンスを識別する。代わりに、インスタンスはブロック716で故障の検出後に構成されてよい。次いで、新しいインスタンスが識別された状態で、要求された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との間で計画されるかどうかを判断する。例えば、クライアントコンピューティングデバイスのユーザーが航空機に搭乗する準備中である可能性があり、ユーザーが間近のネットワーク切断を示すことがある。
係る切断は予期されていないが、PESプラットフォーム102はクライアントコンピューティングデバイスでのユーザーの対話からデータを受信し続け、ブロック1106でデータを記憶する。しかしながら、ブロック1108で、PESプラットフォーム102が、ネットワーク接続が損失時に計画されていると判断すると、次いでルーチンはブロック1110に移動し、PESプラットフォーム102はバーチャルデスクトップインスタンスを生成するために使用されるイメージのコピー(例えば、OS及びインストールされているアプリケーションのイメージ)をクライアントコンピューティングデバイスの上に複製し、クライアントコンピューティングデバイスの上にデスクトップストアのコピーも複製する。いくつかの実施形態では、バーチャルデスクトップインスタンスをインスタンス化するために使用されるイメージを複製するために多大な量の時間を要することがある。したがって、ユーザーは相応して計画しなければならない可能性がある。代替実施形態では、クライアントコンピューティングデバイスは、ユーザーが切断モードに入る必要があるしばらく前にバーチャルデスクトップインスタンスを生成するまたはイメージのコピーを受信するために使用されるイメージをプロビジョニングされることがある。本実施形態では、PESプラットフォーム102が、ネットワーク接続が失われると判断するとき、PESプラットフォーム102は、デスクトップストアをクライアントコンピューティングデバイスに送信させることができる。ここでは、PESプラットフォーム102はデスクトップストア内のすべてをクライアントコンピューティングデバイスに送信する必要はないことがある。むしろ、PESプラットフォーム102は、PESプラットフォーム102がクライアントコンピューティングデバイスと最後に同期した以後の変更を送信できる。例えば、ローカルインスタンスマネージャはローカルデスクトップストアでどのブロックが変更したのかを示す変更ログだけではなく最後に変更が行われた時のものを示すタイムスタンプも維持することができ、PESプラットフォーム102は、デスクトップストアのためにタイムスタンプ及び変更ログを維持できる。PESプラットフォーム102及びローカルインスタンスマネージャは、相違点を決定し、同期できる。代替実施形態では、変更ログは、ブロックレベルの代わりにファイルシステムレベルで維持できる。例えば、インスタンスのエージェントは変更を追跡できる。この構成では、変更されたファイル及び設定値はブロックの代わりに同期できる。いくつかの実施形態では、クライアントコンピューティングデバイスは、データセンタコンピュータで実行されるインスタンスの低出力でよりエネルギー集約型ではないバージョンで適応されてよい。
その後、クライアントコンピューティングデバイス106がネットワーク104から切断されると、ユーザーはローカルに記憶されたイメージからローカルバーチャルデスクトップインスタンスを実行し、ローカルデータストアをアタッチしてよい。ここで、デスクトッププロファイル及びユーザーコンテンツに対する変更は、デスクトップストアのローカルコピーに記憶される。次いで、例えばクライアントコンピューティングデバイス106のユーザーがサービスプロバイダのネットワークへのネットワーク接続性のある領域に戻る(例えば、その目的地都市で航空機を降りる)とき等、ネットワーク接続がPESプラットフォーム102で再確立されるとき、リモートコンピューティングセッション要求がクライアントコンピューティングデバイスから受信され、ブロック1112によって示されるように、ローカルデスクトップストアはデスクトップストアと同期する。特定の例では、同期動作は、ユーザーがPESプラットフォーム102でバーチャルデスクトップインスタンスの開始を試行するときに発生するだろう。クライアントコンピューティングデバイス106がPESプラットフォーム102に接続されるとき、デスクトップストア170のコピーはPESプラットフォーム102のストレージサーバ107に保存される。デスクトップストア170のコピーに対して行われる変更はユーザーと関連付けられた一次デスクトップストア1400に同期され、リモートセッションでバーチャルインスタンスと対話する間にユーザーから受信される追加の変更も一次デスクトップストア170に保存される。ルーチン1100はブロック1114で終了する。
本開示の実施形態は、以下の節を鑑みて説明できる。
1.プロセッサと、メモリとを含むプログラム実行サービス(PES)の1台または複数のコンピュータであって、メモリが、実行時に1台または複数のコンピュータに、
バーチャルデスクトップインスタンスと関連付けられた可変リソースへのそれぞれのユーザーのアクセスのための1つまたは複数の規則を確立する方針を受信させ、
コンピューティングデバイスからバーチャルデスクトップインスタンスへアクセスする要求であって、コンピューティングデバイスのユーザーを識別する要求を受信させ、
コンピューティングデバイスに対し、リソースのセットで構成された第1のバーチャルデスクトップインスタンスへのアクセスを提供させ、
ユーザーの可変リソースへのアクセスに関連付けられた1つまたは複数の規則に従って、ユーザーからの要求またはリソースのセットの使用を監視することに少なくとも部分的に基づいて決定された必要性の内の少なくとも1つに応えてリソースのセットに変更を生じさせるかどうかを判断させる、
命令を含む、1台または複数のコンピュータ
を含むシステム。
2.リソースのセットが、バーチャルデスクトップインスタンスによって実行されるオペレーティングシステム、バーチャルデスクトップインスタンスと関連付けられたメモリ仕様、またはバーチャルデスクトップインスタンスと関連付けられた処理パワー仕様の内の1つまたは複数を含む、節1に記載のシステム。
3.可変リソースに対するそれぞれのユーザーのアクセスのための1つまたは複数の規則が各ユーザーに関連付けられたユーザープロファイルに記憶される、節1に記載のシステム。
4.第1のバーチャルデスクトップインスタンスが、ユーザーと関連付けられた履歴リソースアクセス統計に基づいて構成される、節3に記載のシステム。
5.バーチャルデスクトップインスタンスと関連付けられた可変リソースに対するそれぞれのユーザーのアクセスのための1つまたは複数の規則を受信することと、
バーチャルデスクトップインスタンスにアクセスする要求をコンピューティングデバイスから受信することであって、要求がコンピューティングデバイスのユーザーを識別する、受信することと、
コンピューティングデバイスに対し、リソースのセットで構成された第1のバーチャルデスクトップインスタンスへのアクセスを提供することと、
可変リソースに対するそれぞれのユーザーのアクセスのための1つまたは複数の規則に基づいて、リソースのセットで変更を生じさせるかどうかを判断することと、
を含むコンピュータに実装される方法。
6.リソースのセットで変更を生じさせるかどうかを判断することが、変更に対するユーザーからの要求に対する応答である、節0に記載のコンピュータに実装される方法。
7.リソースのセットの使用を監視することをさらに含み、リソースのセットで変更を生じさせるかどうかを判断することが、監視に基づいて変更の必要性を決定することに対する応答である、節0に記載のコンピュータに実装される方法。
8.リソースのセットで変更を生じさせると判断される場合、バーチャルデスクトップインスタンスと関連付けられたメモリの仕様または処理パワーの仕様の内の1つまたは複数をスケーリングすることをさらに含む、節0に記載のコンピュータに実装される方法。
9.第1のバーチャルデスクトップインスタンスがユーザープロファイルに従ってリソースのセットで構成され、可変リソースへのアクセスのための1つまたは複数の規則がユーザープロファイルに含まれる、節0に記載のコンピュータに実装される方法。
10.リソースのセットで変更を生じさせると判断される場合、コンピューティングデバイスに、リソースの変更されたセットで構成された第2のバーチャルデスクトップインスタンスへのアクセスを提供することをさらに含む、節0に記載のコンピュータに実装される方法。
11.1つまたは複数のボリュームを第1のバーチャルデスクトップインスタンスにアタッチさせることをさらに含み、1つまたは複数のボリュームがユーザーのためのデスクトップ個人化情報及びユーザーのためのデータストアを含み、第1のバーチャルデスクトップインスタンス内で実行中の第1のオペレーティングシステムが、ユーザーに対するデスクトップ個人化情報に、及びユーザーのためのデータストアのストレージにマッピングされた1つまたは複数のオペレーティングシステムフォルダに従って個人化される、節0に記載のコンピュータに実装される方法。
12.1つまたは複数のボリュームを第1のバーチャルデスクトップインスタンスから切り離し、第2のバーチャルデスクトップインスタンスにアタッチさせることをさらに含む、節0に記載のコンピュータに実装される方法。
13.実行時に、コンピューティングシステムに少なくとも
バーチャルデスクトップインスタンスと関連付けられた可変リソースに対するそれぞれのユーザーのアクセスのための1つまたは複数の規則を受信し、
コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスする要求であって、コンピューティングデバイスのユーザーを識別する要求を受信し、
ユーザーコンピューティングデバイスに対し、リソースのセットで構成される第1のバーチャルデスクトップインスタンスへのアクセスを提供し、
第1のバーチャルデスクトップインスタンスと関連付けられたリソースへのユーザーのアクセスを監視し、
可変リソースに対するユーザーのそれぞれのアクセスのための1つまたは複数の規則に基づいて、リソースのセットで変更を生じさせるかどうかを判断する
ように命令するコンピュータ実行可能命令を含む非一過性物理コンピュータストレージ。
14.コンピュータ実行可能命令が、実行時に第1のバーチャルデスクトップインスタンスで起動されるアプリケーションのセットを監視する第1のバーチャルデスクトップインスタンスにインストールされるエージェントに基づいてリソースのセットに変更を生じさせるかどうかを決定するようにコンピューティングシステムに命令する、節0に記載の非一過性物理コンピュータストレージ。
15.コンピュータ実行可能命令が、実行時にコンピューティングデバイスから受信された、リソースの変更されたセットでバーチャルデスクトップインスタンスにアクセスする要求に基づいてリソースのセットに変更を生じさせるかどうかを判断するようにコンピューティングシステムに命令する、節0に記載の非一過性物理コンピュータストレージ。
16.コンピュータ実行可能命令が、実行時にユーザーと関連付けられた1つまたは複数の規則に示されるリソースの量までリソースのセットに変更を生じさせるようにコンピューティングシステムに命令する、節0に記載の非一過性物理コンピュータストレージ。
17.コンピュータ実行可能命令が、実行時にユーザーと関連付けられた1つまたは複数の規則に示されるリソースの量を超えてリソースのセットに対する要求に関してユーザーのユーザーアカウントと関連付けられた管理者に通知するようにコンピューティングシステムにさらに命令する、節0に記載の非一過性物理コンピュータストレージ。
18.コンピュータ実行可能命令が、実行時にバーチャルデスクトップインスタンスへのアクセスのためのコストを計算するようにコンピューティングシステムにさらに命令する、節0に記載の非一過性物理コンピュータストレージ。
19.コンピュータ実行可能命令が、実行時にリソースのセットに基づいてバーチャルデスクトップインスタンスに対するアクセスについて期間あたりの単一従量制料金を使用してコストを計算するようにコンピューティングシステムに命令する、節0に記載の非一過性物理コンピュータストレージ。
20.コンピュータ実行可能命令が、実行時にリソースのセットで変更を生じさせることを判断するようにコンピューティングシステムに命令し、リソースの変更されたセットに基づいてバーチャルデスクトップインスタンスへのアクセスについて期間あたりの可変料金を使用してコストを計算するようにコンピューティングシステムにさらに命令する、節0に記載の非一過性物理コンピュータストレージ。
例示的な実施形態が開示、説明されてきたが、当業者は追加の実施形態または代替の実施形態が本発明の精神及び範囲内で実装され得ることを理解する。例えば、本明細書に説明される技術は、イメージ編集ソフトウェアまたはビデオ編集ソフトウェア、データベースソフトウェア、オフィス生産性ソフトウェア、3d設計ソフトウェア、オーディオ処理アプリケーション及び音声処理アプリケーション等を含むが、これに限定されるものではない、任意の数の他のソフトウェアアプリケーション及びプロセスでリモート処理管理を可能にするために、本発明の範囲から逸脱することなく活用されてよい。さらに、多くの実施形態は例示的として示されたが、当業者は、例示的な実施形態は互いに組み合わせるまたは実装される必要がないことを理解する。したがって、いくつかの例示的な実施形態は本開示の変形形態の範囲に従って活用または実装される必要はない。
とりわけ「できる」、「ことがある」、「可能性がある」、「してよい」等の条件付き言語は、特に明記しない限り、または使用される文脈内で特に理解されない限り、他の実施形態が特定の特徴、要素、及び/またはステップを含まないが、特定の実施形態が特定の特徴、要素、及び/またはステップを含むことを伝達することを概して目的とする。したがって、係る条件付き言語は、特徴、要素、及び/またはステップが1つまたは複数の実施形態にとって形がどうあれ必要とされること、または1つまたは複数の実施形態が、これらの特徴、要素、及び/またはステップが任意の特定の実施形態で含まれるべきであるか、それとも実行されるべきであるかをユーザー入力またはプロンプトの有無に関係なく決定するための論理を必ず含むことを暗示することを概して目的としていない。
本明細書に説明される及び/または添付図に示される流れ図のあらゆるプロセス説明、要素、またはブロックは、特有の論理関数またはステップをプロセスで実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの部分を潜在的に示すとして理解されるべきである。代わりの実装では、要素または機能が削除され、当業者によって理解されるように、関係する機能性に応じて実質的に同時にまたは逆順で図示または説明される順序から外れて実行されてよい、本明細書に説明される実施形態の範囲内に含まれる。上述したデータ及び/または構成要素がコンピュータ可読媒体に記憶され、コンピュータ可読媒体と関連付けられたドライブ機構を使用してコンピューティングデバイスのメモリの中にロードされてよく、CD−ROM、DVD−ROM等の任意の数のコンピュータ実行可能構成要素に記憶されてよい、またはネットワークインタフェースを介して提供もしくは入手されてよく、さらに構成要素及び/またはデータが単一のデバイスに含まれるもしくは任意の他の方法で分散できることが理解される。したがって、汎用コンピューティングデバイスは、上述した多様なデータ及び/または構成要素の処理及び/または実行で本開示のプロセス、アルゴリズム、及び方法論を実装するように構成されてよい。
多くの変形形態及び変更形態が上述の実施形態に対して行われてよく、上述の実施形態の要素が他の許容できる実施例の中にあると理解されるべきであることが強調されるべきである。すべての係る変更形態及び変形形態は、本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲により保護されることを目的とする。

Claims (19)

  1. バーチャルデスクトップインスタンスと関連付けられた、可変リソースへの各ユーザーのアクセスのための1つまたは複数の規則を受信することと、
    コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスし且つ前記コンピューティングデバイスのユーザーを識別する第1の要求を受信することと、
    前記コンピューティングデバイスに対し、第1バーチャルデスクトップインスタンスを実行するために使用する、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、前記第1バーチャルデスクトップインスタンスへのアクセスを提供することと、
    前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも1つの可変リソースをスケーリングする変更を生じさせる第2の要求を受け取ることと、
    前記少なくとも1つの可変リソースをスケーリングすることを特定する、前記可変リソースに対するそれぞれのユーザーのアクセスのための1つまたは複数の規則を処理することと、
    前記第1バーチャルデスクトップインスタンスへのアクセスを中断することなく、前記少なくとも1つの可変リソースをスケーリングさせることと
    前記ユーザーの個人デスクトップ情報及びユーザーのデータストアを含む1つまたは複数のボリュームを、前記第1バーチャルデスクトップインスタンスにアタッチさせることと、
    前記1つまたは複数のボリュームを前記第1バーチャルデスクトップインスタンスから切り離し、第2バーチャルデスクトップインスタンスにアタッチさせることと、
    を備えるコンピュータ実装方法。
  2. さらに、前記バーチャルデスクトップインスタンスに関連する1つまたは複数のメモリの仕様又は処理パワーの仕様をスケーリングすることを備える、請求項1に記載のコンピュータ実装方法。
  3. 前記第1バーチャルデスクトップインスタンスはユーザープロファイルに応じた前記リソースのセットで構成され、前記可変リソースへのアクセスのための前記1つまたは複数の規則は前記ユーザープロファイルに含まれる、請求項1に記載のコンピュータ実装方法。
  4. 前記第1バーチャルデスクトップインスタンス内で実行中の第1のオペレーティングシステムは、前記ユーザーの前記個人デスクトップ情報及び前記ユーザーの前記データストアのストレージにマッピングされた1つまたは複数のオペレーティングシステムフォルダに保存される情報に従って個人向けにされる、請求項1に記載のコンピュータ実装方法。
  5. プロセッサ及びメモリを含む、プログラム実行サービス(PES)の1台または複数のコンピュータであって、前記メモリは、実行時に1台または複数のコンピュータに、
    バーチャルデスクトップインスタンスと関連する可変リソースへの各ユーザーのアクセスのために、1つまたは複数の規則を確立する方針を受信させ、
    コンピューティングデバイスのユーザーを識別する、コンピューティングデバイスからバーチャルデスクトップインスタンスへアクセスする第1の要求を受信させ、
    第1バーチャルデスクトップインスタンスを実行するために使用するため、コンピューティングデバイスに対し、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、第1バーチャルデスクトップインスタンスへのアクセスを提供させ、
    前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも1つの可変リソースをスケーリングする変更を生じさせる第2の要求を受け取らせ、
    前記リソースのセットへの変更の要求を許可するか否かを判断するために、ユーザーによる前記可変リソースへのアクセスに関連する前記1つまたは複数の規則を処理させ、
    前記要求を許可する判断に応答し、前記第1バーチャルデスクトップインスタンスへのアクセスを中断することなく、前記リソースのセットに変更を加えさせ、
    前記ユーザーの個人デスクトップ情報及びユーザーのデータストアを含む1つまたは複数のボリュームを、前記第1バーチャルデスクトップインスタンスにアタッチさせ、
    前記1つまたは複数のボリュームを前記第1バーチャルデスクトップインスタンスから切り離し、第2バーチャルデスクトップインスタンスにアタッチさせる、システム。
  6. 前記リソースのセットは、前記バーチャルデスクトップインスタンスによって実行されるオペレーティングシステム、前記バーチャルデスクトップインスタンスと関連付けられたメモリ仕様、または前記バーチャルデスクトップインスタンスと関連付けられた処理パワー仕様のうちの1つまたは複数を備える、請求項5に記載のシステム。
  7. 各ユーザーによる前記可変リソースへのアクセスに関連する前記1つまたは複数の規則は、各ユーザーに関連付けられたユーザープロファイルに記憶される、請求項5に記載のシステム。
  8. 第1バーチャルデスクトップインスタンスは、前記ユーザーと関連付けられた履歴リソースアクセス統計に基づいて構成される、請求項7に記載のシステム。
  9. コンピュータ実行可能命令が実行されると、前記システムは、前記ユーザーのユーザーアカウントに関連する管理者に対し、前記ユーザーと関連付けられた前記1つまたは複数の規則に示されるリソースの量を超えたリソースのセットの要求を通知させる、請求項5に記載のシステム。
  10. コンピュータ実行可能命令が実行されると、前記システムに、前記バーチャルデスクトップインスタンスにアクセスするためのコストを計算させる、請求項5に記載のシステム。
  11. コンピュータ実行可能命令が実行されると、前記リソースのセットに基づき、前記バーチャルデスクトップインスタンスへのアクセスについて、期間あたりの単一従量制料金を使用しコストを前記システムに計算させる、請求項5に記載のシステム。
  12. コンピュータ実行可能命令が実行されると、前記リソースのセットに変更を生じさせることを前記システムに判断させ、変更された前記リソースのセットに基づき、前記バーチャルデスクトップインスタンスへのアクセスについて期間あたりの可変料金を使用し、コストを計算するようにコンピューティングシステムに命令させる、請求項5に記載のシステム。
  13. コンピュータ実行可能命令を備える非一過性物理コンピュータストレージであって、実行されると、コンピューティングシステムに、少なくとも、
    バーチャルデスクトップインスタンスと関連付けられた可変リソースに対する各ユーザーのアクセスのために、1つまたは複数の規則を受信させ、
    コンピューティングデバイスのユーザーを識別する、前記コンピューティングデバイスからバーチャルデスクトップインスタンスにアクセスするための第1の要求を受信させ、
    第1バーチャルデスクトップインスタンスを実行するために使用するため、コンピューティングデバイスに対し、仮想マシンの構成の内部における特定の量の処理リソース及び仮想マシンの構成の内部における特定の量のメモリリソースのうちの少なくとも一つを含むリソースのセットで構成された、前記第1バーチャルデスクトップインスタンスへのアクセスを提供させ、
    前記特定の量の処理リソース及び前記特定の量のメモリリソースのうちの少なくとも一つよりも大きいリソースを必要とするアプリケーションプロセスの前記ユーザーの選択によって開始され、且つ前記コンピューティングデバイスのユーザーから前記リソースのセットに少なくとも1つの可変リソースをスケーリングする変更を生じさせる第2の要求を受け取らせ、
    各ユーザーによる前記可変リソースへのアクセスのための1つまたは複数の規則に基づき、前記リソースのセットに対する少なくとも1つの可変リソースを変更するかを決定させ、
    前記決定に応答し、前記第1バーチャルデスクトップインスタンスへのアクセスを中断することなく、前記少なくとも1つの可変リソースの調整を起こさせ
    前記ユーザーの個人デスクトップ情報及びユーザーのデータストアを含む1つまたは複数のボリュームを、前記第1バーチャルデスクトップインスタンスにアタッチさせ、
    前記1つまたは複数のボリュームを前記第1バーチャルデスクトップインスタンスから切り離し、第2バーチャルデスクトップインスタンスにアタッチさせる、非一過性物理コンピュータストレージ。
  14. 前記コンピューティングデバイスの前記ユーザーから受け取った第2の要求は、変更された前記リソースのセットによって構成されたバーチャルデスクトップインスタンスへのアクセスの要求を備える、請求項13に記載の非一過性物理コンピュータストレージ。
  15. 前記コンピュータ実行可能命令が実行されると、前記コンピューティングシステムに、前記ユーザーと関連付けられた前記1つまたは複数の規則に示されるリソースの量にまで、前記リソースのセットの量を変更するように命令する、請求項14に記載の非一過性物理コンピュータストレージ。
  16. 前記コンピュータ実行可能命令が実行されると、前記コンピューティングシステムに、
    前記第2の要求は前記ユーザーに関連する前記1つまたは複数の規則に示されるリソースの量を超えた前記リソースのセットの要求を備えることを特定させ、
    前記ユーザーのユーザーアカウントに関連する管理者に通知させる、請求項14に記載の非一過性物理コンピュータストレージ。
  17. 前記コンピュータ実行可能命令が実行されると、前記第1バーチャルデスクトップインスタンスにアクセスするためのコストを計算するように前記コンピューティングシステムにさらに命令する、請求項13に記載の非一過性物理コンピュータストレージ。
  18. 前記コンピュータ実行可能命令が実行されると、前記リソースのセットによって構成された前記第1バーチャルデスクトップインスタンスに前記ユーザーがアクセスできる期間に基づき、前記コンピューティングシステムにコストを計算させる、請求項17に記載の非一過性物理コンピュータストレージ。
  19. 前記コンピュータ実行可能命令が実行されると、前記リソースのセットで変更を生じさせることをコンピューティングシステムに判断させ、変更された前記リソースのセットで構成された前記第1バーチャルデスクトップインスタンスにアクセスする期間に基づき、前記コンピューティングシステムにコストを計算させる、請求項17に記載の非一過性物理コンピュータストレージ。
JP2018156060A 2013-06-26 2018-08-23 コンピューティングセッションの管理 Active JP6630792B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/928,284 US20150019705A1 (en) 2013-06-26 2013-06-26 Management of computing sessions
US13/928,284 2013-06-26

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2019008809A JP2019008809A (ja) 2019-01-17
JP6630792B2 true JP6630792B2 (ja) 2020-01-15

Family

ID=52142828

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016523888A Pending JP2016525243A (ja) 2013-06-26 2014-06-25 コンピューティングセッションの管理
JP2018156060A Active JP6630792B2 (ja) 2013-06-26 2018-08-23 コンピューティングセッションの管理

Family Applications Before (1)

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

Country Status (9)

Country Link
US (1) US20150019705A1 (ja)
EP (1) EP3014434B1 (ja)
JP (2) JP2016525243A (ja)
KR (2) KR20160048763A (ja)
CN (1) CN105683913A (ja)
AU (1) AU2014302471B2 (ja)
CA (1) CA2916278C (ja)
SG (1) SG11201510431UA (ja)
WO (1) WO2014210172A2 (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
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10324744B2 (en) * 2015-06-04 2019-06-18 Vmware, Inc. Triggering application attachment based on service login
US10268493B2 (en) 2015-09-22 2019-04-23 Amazon Technologies, Inc. Connection-based resource management for virtual desktop instances
US10732865B2 (en) 2015-09-23 2020-08-04 Oracle International Corporation Distributed shared memory using interconnected atomic transaction engines at respective memory interfaces
US10282831B2 (en) * 2015-12-28 2019-05-07 Novatek Microelectronics Corp. Method and apparatus for motion compensated noise reduction
CN109844719A (zh) 2016-10-26 2019-06-04 斯浦威科技有限公司 用于设备的互操作性和同步的系统和方法
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
CN117041173A (zh) * 2019-02-05 2023-11-10 卡萨系统公司 用于恢复网络关联信息的方法和装置
CN111800294B (zh) * 2020-06-09 2022-11-22 中移(杭州)信息技术有限公司 网关故障诊断方法、装置、网络设备及存储介质
KR102521786B1 (ko) * 2021-03-17 2023-04-17 주식회사 틸론 가상 데스크톱 시스템에서의 데이터 리다이렉션 방법 및 시스템
US20220337496A1 (en) * 2021-04-16 2022-10-20 Dell Products L.P. System for View-Only Command Center Mode
US11606246B2 (en) 2021-04-28 2023-03-14 Dell Products L.P. System for enterprise alert timeline of a system and service
US20230342130A1 (en) * 2022-04-22 2023-10-26 Vmware, Inc. On-demand remote applications

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP4866636B2 (ja) * 2006-03-22 2012-02-01 株式会社日立製作所 分散型プログラム実行環境における稼動品質管理方法
US8141075B1 (en) * 2006-05-08 2012-03-20 Vmware, Inc. Rule engine for virtualized desktop allocation system
JP2008225520A (ja) * 2007-03-08 2008-09-25 Nec Corp 仮想マシン環境においてメモリ資源を配置するメモリ資源配置制御方法、仮想マシンシステム及びプログラム
CA2690025C (en) * 2007-06-06 2014-05-20 Boldstreet Inc. Remote service access system and method
JP5087456B2 (ja) * 2008-04-09 2012-12-05 株式会社インテック サービス提供システム及びそれを構成するユーザ収容装置
JP5733302B2 (ja) * 2010-03-11 2015-06-10 日本電気株式会社 リソース配分装置及びプログラム
CN101968746B (zh) * 2010-09-02 2016-03-02 北京航空航天大学 一种内核虚拟机组织架构模式的实现方法
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
JP4811830B1 (ja) * 2010-10-15 2011-11-09 株式会社 イーシー・ワン コンピュータリソース制御システム
CN102035849B (zh) * 2010-12-23 2013-12-18 华为技术有限公司 云计算中实现资源管理的方法、设备及系统
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
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 動的にリソースを割り当てる方法、システム及びプログラム
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
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
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

Also Published As

Publication number Publication date
WO2014210172A2 (en) 2014-12-31
EP3014434A4 (en) 2017-02-22
AU2014302471A1 (en) 2016-01-21
SG11201510431UA (en) 2016-01-28
EP3014434A2 (en) 2016-05-04
KR20160048763A (ko) 2016-05-04
US20150019705A1 (en) 2015-01-15
WO2014210172A3 (en) 2015-10-29
CA2916278A1 (en) 2014-12-31
CN105683913A (zh) 2016-06-15
KR20180135124A (ko) 2018-12-19
JP2019008809A (ja) 2019-01-17
KR102027929B1 (ko) 2019-10-02
JP2016525243A (ja) 2016-08-22
CA2916278C (en) 2020-06-23
EP3014434B1 (en) 2019-11-13
AU2014302471B2 (en) 2017-06-01

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
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

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: 20191111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191209

R150 Certificate of patent or registration of utility model

Ref document number: 6630792

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