KR101828338B1 - 컴퓨팅 세션 관리 - Google Patents

컴퓨팅 세션 관리 Download PDF

Info

Publication number
KR101828338B1
KR101828338B1 KR1020167001701A KR20167001701A KR101828338B1 KR 101828338 B1 KR101828338 B1 KR 101828338B1 KR 1020167001701 A KR1020167001701 A KR 1020167001701A KR 20167001701 A KR20167001701 A KR 20167001701A KR 101828338 B1 KR101828338 B1 KR 101828338B1
Authority
KR
South Korea
Prior art keywords
desktop
instance
store
virtual desktop
user
Prior art date
Application number
KR1020167001701A
Other languages
English (en)
Other versions
KR20160045677A (ko
Inventor
디팍 수리야나라야난
데이비드 에버라드 브라운
유진 마이클 파렐
비벡 락쉬마난
콜린 해리슨 브레이스
에릭 조나단 텔빅
Original Assignee
아마존 테크놀로지스, 인크.
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 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20160045677A publication Critical patent/KR20160045677A/ko
Application granted granted Critical
Publication of KR101828338B1 publication Critical patent/KR101828338B1/ko

Links

Images

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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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

Abstract

원격 컴퓨팅 세션 관리 프로세스는 프로그램 실행 서비스(PES) 플랫폼의 데이터 센터 컴퓨터 상에서 실행되는 가상 인스턴스들의 형태의 실행 및 관리를 지향한다. 컴퓨팅 세션은 통신 네트워크를 통해 PES 플랫폼과 PES 플랫폼에 연결된 컴퓨팅 디바이스 사이에 구축될 수 있다. 가상 인스턴스와 상호작용하는 클라이언트 컴퓨팅 디바이스의 사용자에 의해 생성되는 데이터는 저장될 수 있고, 원격 컴퓨팅 세션의 중단에 후속하여, 원격 컴퓨팅 세션을 재구축할 때 데이터가 사용될 수 있다.

Description

컴퓨팅 세션 관리 {MANAGEMENT OF COMPUTING SESSIONS}
원격 네트워크 컴퓨팅 제공자의 데이터 센터는 고객에게 컴퓨팅 리소스를 제공하기 위해 주목할만한 개수의 상호연결된 컴퓨팅 시스템을 하우징할 수 있다. 이러한 데이터 센터는 네트워크 액세스, 전력, 하드웨어 리소스(가령, 컴퓨팅 및 스토리지), 및 데이터 센터, 조직, 또는 다른 제3자에 의해 관리되는 하드웨어용 안전 설비 시설을 제공할 수 있다.
데이터 센터 리소스의 활용도 증가를 촉진시키기 위해, 가상화 기술은 단일한 물리적 컴퓨팅 기계로 하여금, 연결된 컴퓨터 사용자에 대한 독립적 컴퓨터 기계로 등장 및 작동하는 가상 기계들의 하나 이상의 인스턴스를 호스팅할 수 있게 한다. 가상화를 이용하면, 단일 물리적 컴퓨팅 디바이스가 동적인 방식으로 가상 기계를 생성, 유지, 또는 삭제할 수 있다. 물론, 사용자는 데이터 센터로부터 컴퓨터 리소스를 요청할 수 있고, "필요에 따라" 원칙으로 또는 적어도 "요청 받을 때" 원칙으로 가변적 개수의 가상 기계 리소스를 제공받을 수 있다.
사용자에게 가상 기계 리소스를 제공하는 원격 네트워크 컴퓨팅 제공자는 일반적으로, 최적 레벨의 가용성, 확장성, 및 신뢰성을 갖는 이러한 리소스를 제공하기 위해 노력한다. 
본 발명의 수반되는 장점들 중 다수와 앞서의 형태들이 첨부 도면과 연계하여 고려될 때 다음의 상세한 설명을 참조하여 더 잘 이해될 것이다. 
도 1은 클라이언트 컴퓨팅 디바이스 및 서비스 제공자 컴퓨터 네트워크를 포함하는 네트워크형 컴퓨팅 환경을 예시하는 블록도이고, 
도 2는 가상 데스크탑 인스턴스 간의 사용자 데이터의 영구 저장과, 이벤트 후 가상 데스크탑 인스턴스의 관리를 도시하는 도 1의 네트워크형 컴퓨팅 환경의 블록도이며,
도 3은 클라이언트 컴퓨팅 디바이스와 연관된 이벤트로부터 회복하기 위해 클라이언트 컴퓨팅 디바이스와 서비스 제공자 컴퓨터 네트워크 간에 원격 컴퓨팅 세션의 이용을 보여주는 도 1의 네트워크형 컴퓨팅 환경의 블록도이고,
도 4는 서로 다른 사용자 프로파일에 따라 다양한 가상 데스크탑 인스턴스 요건들을 수용하는 서비스 제공자 컴퓨터 네트워크를 예시하는 도 1의 네트워크형 컴퓨팅 환경의 블록도이며,
도 5는 가상 데스크탑 인스턴스 요건의 변화를 수용하는 서비스 제공자 컴퓨터 네트워크를 예시하는 도 1의 네트워크형 컴퓨팅 환경의 블록도이고,
도 6은 원격 환경으로부터 로컬 네트워크형 환경으로 작동이 전환될 때 클라이언트 컴퓨팅 디바이스 및 서비스 제공자 컴퓨터 네트워크를 포함하는, 도 1의 네트워크형 컴퓨팅 환경을 나타내는 블록도이며, 
도 7은 가상 데스크탑 인스턴스 간의 사용자 데이터의 영구 저장과, 이벤트 후 가상 데스크탑 인스턴스의 관리를 위한 루틴을 나타내는 흐름도이고,
도 8은 클라이언트 컴퓨팅 디바이스와 연관된 이벤트로부터 회복하기 위해 클라이언트 컴퓨팅 디바이스와 서비스 제공자 컴퓨터 네트워크 간에 원격 컴퓨팅 세션의 이용을 위한 루틴을 나타내는 흐름도이며,
도 9는 서로 다른 사용자 프로파일에 따라 결정되는 다양한 가상 데스크탑 인스턴스의 수용을 위한 루틴을 나타내는 흐름도이고, 
도 10은 가상 데스크탑 인스턴스 요건의 변화 수용을 위한 루틴을 나타내는 흐름도이며, 
도 11은 원격 및 로컬 환경 사이에서 서비스 제공자 컴퓨터 네트워크 및 클라이언트 컴퓨팅 디바이스의 작동 전환을 위한 루틴을 나타내는 흐름도다. 
일반적으로 설명하자면, 본 발명은 프로그램 실행 서비스(PES) 플랫폼의 하나 이상의 원격 데이터 센터 컴퓨터에 의해 호스팅되는 가상 데스크탑 인스턴스와 하나 이상의 클라이언트 컴퓨팅 디바이스 간의 원격 컴퓨팅 세션의 생성 및 관리를 지향한다. PES의 고객에 의한 데이터 센터의 리소스 이용을 촉진시킬 수 있는 단일 PES 플랫폼의 일부분으로 다수의 데이터 센터가 조직될 수 있다. 일부 실시예에서, PES는 수백 또는 수천개의 데이터 센터 컴퓨터를 포함할 수 있다.
발명의 형태는 PES 플랫폼에 의한 가상 데스크탑 인스턴스의 관리와 관련하여 설명될 것이다. 클라이언트 컴퓨팅 디바이스는 하나 이상의 원격 컴퓨팅 세션 중 가상 데스크탑 인스턴스에 액세스할 수 있다. 가상 데스크탑 인스턴스는 클라이언트 데스크탑 환경의 모든 기능을, 그러나, 클라이언트에 의해 액세스되는 서비스의 중앙화된 프로비저닝을, 사용자에게 제공할 수 있다. 
첫번째 예에서, 사용자는, 클라이언트 컴퓨팅 디바이스를 통해, 원격 컴퓨팅 애플리케이션과 같은 애플리케이션을 로딩하기 위한 요청을 전송한다. 요청 수신에 이어, 클라이언트 컴퓨팅 디바이스는 PES 플랫폼과 교신하여 원격 컴퓨팅 세션을 개시한다. 일 실시예에서, 클라이언트 컴퓨팅 디바이스와 PES 플랫폼 간의 통신은 로그인 정보를 포함할 수 있다. 다른 실시예에서, 통신은 클라이언트 컴퓨팅 디바이스의 사용자를 위한 원격 컴퓨팅 세션의 지속시간 또는 조건에 관한 규정, 프로세싱 요건, 또는, 리소스 이용 정보를 식별하는 정보를 또한 포함할 수 있다. 클라이언트 컴퓨팅 디바이스는 디바이스 리소스의 현재 또는 미래의 가용도를 포함하는, 그러나 이에 제한되지 않는, 디바이스 상태에 관한 다양한 정보(가령, 프로세싱 전력, 메모리, 스토리지, 네트워크 이용, 등)를 또한 교신할 수 있다. 수신되는 정보를 이용하여, PES 플랫폼은 하나 이상의 원격 컴퓨팅 세션에서 실행을 위한 하나 이상의 가상 데스크탑 인스턴스를 식별할 수 있다. 한 예에서, PES 플랫폼은 데이터 센터 컴퓨터 상의 가상 기계 인스턴스를 생성하거나 생성하였을 수 있다. 가상 기계 인스턴스는 운영 체제를 포함한다. 클라이언트 컴퓨팅 디바이스는 그 후 가상 기계를 가진 원격 컴퓨팅 세션을 구축할 수 있고, 운영 체제의 사용자 인터페이스(가령, 그래픽 사용자 인터페이스, 사운드, 등과 같은 운영 체제의 출력)는 클라이언트 컴퓨팅 디바이스에 전송될 수 있고, 사용자에게 제시될 수 있다(가령, 그래픽 사용자 인터페이스가 클라이언트 컴퓨팅 디바이스의 디스플레이 상에 렌더링된다). 운영 체제는 데스크탑 백그라운드, 스크린 세이버, 데스크탑 레이아웃, 포인터 선호도, 사운드 세팅, 등을 세팅함으로써 사용자를 위한 가상 데스크탑 인스턴스를 구축하도록 PES에 의해 액세스가능한 데스트탑 스토어 상에 저장되는, 사용자와 관련된 데스크탑 프로파일을 이용할 수 있다. 마우스 및 키보드 활동과 같은 사용자 입력은 그 후, 가상 기계에 전송될 수 있고, 마치 활동이 가상 기계에서 직접 사용자에 의해 수행된 것처럼, 운영 체제 내로 공급될 수 있다.
PES 플랫폼은 원격 컴퓨팅 세션 중 클라이언트 컴퓨팅 디바이스 상에서 가상 데스크탑 인스턴스와 클라이언트 컴퓨팅 디바이스의 상호작용과 관련된 데이터를 수신 또는 생성할 수 있다. 데이터는 사용자 데이터 및 선호도, 파일, 등을 포함할 수 있다. 데이터를 수신하면, PES 플랫폼은 가상 데스크탑 인스턴스와 관련된 데스크탑 스토어에 데이터를 저장할 수 있다. 일부 실시예에서, 데스크탑 스토어는 일 볼륨 상에 또는 다른 논리 블록 저장 디바이스 상에 구현될 수 있다. 일부 실시예에서, PES는 데이터의 백업 사본을 생성하거나 또는 중앙 리포지토리(central repository)에 데이터를 저장할 수도 있다. 저장된 데이터는 그 후, 가상 데스크탑 인스턴스, 가상 데스크탑 인스턴스를 호스팅하는 서버, 네트워크, 등의 장애와 같이, 장애로 인해 중단된 원격 컴퓨팅 세션을 복원하는데 사용될 수 있다. 사용자 데이터를 저장함으로써, PES 플랫폼은 클라이언트 컴퓨팅 디바이스의 사용자에게 최소의 지연 및 중단만으로 원격 컴퓨팅 세션의 재구축이 이루어짐을 보장한다. 
다른 예에서, 제공되는 가상 데스크탑 인터페이스는 PES의 사용자 프로파일 스토어에 저장된 사용자 프로파일에 따라 구성될 수 있다. 가상 데스크탑 인터페이스의 구조는 인스턴스의 모니터링되는 용도에 따라 또한 조정될 수 있다. 일부 예에서, 사용자 프로파일은 사용자의 이용을 통제하는 실체와 연관된 관리자에 의해 설정될 수 있다. 사용자 프로파일은 하나 이상의 가상 데스크탑 인스턴스를 실행하는 PES 컴퓨터와 연관된 다양한 메모리 및 프로세싱 요건과, 가상 데스크탑 인터페이스의 요건을 표시할 수 있다. 예를 들어, 사용자 프로파일은 가상 데스크탑 인스턴스를 이용하면서 사용자에게 액세스하도록 주어지는 프로그램을 표시할 수 있다. 사용자 프로파일은 원격 컴퓨팅 세션과 연관된 최대 시간 또는 비용을 또한 표시할 수 있다. PES는 가상 데스크탑 인스턴스를 배치 및 구성할 때 사용자를 위한 사용자 프로파일을 고려할 수 있다. 추가적으로, 배치 및 구조 결정은 시간에 따른 가상 데스크탑과의 사용자 상호작용에 기초하여 또한 조정될 수 있다. 
다른 예에서, PES 플랫폼은 PES 플랫폼에서 데이터 센터 컴퓨터들 중 하나 이상 상에서 클라이언트 컴퓨팅 디바이스의 컴퓨팅 환경의 백업 사본을 제공하는데 사용될 수 있다. 이어서, 클라이언트 컴퓨팅 디바이스가 절충될 경우, PES 플랫폼으로 새 원격 컴퓨팅 세션을 시작할 때, 원래 사용된 클라이언트 컴퓨팅 디바이스의 컴퓨팅 환경의 백업 사본이 사용자에게 가용해질 수 있다. 새 원격 컴퓨팅 세션에서, 사용자는 동일한 또는 다른 클라이언트 컴퓨팅 디바이스로부터 PES 플랫폼에 연결될 수 있다. 
또 다른 예에서, 클라이언트 컴퓨팅 디바이스와 PES 플랫폼 사이의 원격 컴퓨팅 세션은, 클라이언트 컴퓨팅 디바이스 상에서 실행될 일 버전의 가상 데스크탑 인스턴스를 제공하는데 사용될 수 있다. 이러한 버전의 인스턴스는 클라이언트 컴퓨팅 디바이스의 운영 체제, 메모리, 및 프로세싱 전력 사양 중 하나 이상에 따라 적응될 수 있다. 클라이언트 컴퓨팅 디바이스에 복사되는 가상 데스크탑 인스턴스의 적응된 버전으로, 디바이스는 PES 플랫폼으로부터 분리 후에도 가상 데스크탑 인스턴스와 계속 상호작용할 수 있다. 이어서, PES 플랫폼에 재연결되면, 새 가상 데스크탑 인스턴스가, 클라이언트 컴퓨팅 디바이스 상에서 실행되는 이전 가상 데스크탑 인스턴스와 동기화될 수 있다. 
발명에서 설명되는 실시예들의 형태가, 예시 용도로, 가상 데스크탑 인스턴스와 같은 소프트웨어 애플리케이션에 대응하는 하나 이상의 원격 세션의 관리를 설명할 수 있으나, 당 업자는 여기서 개시되는 기술이 운영 체제 프로세스 및 서비스를 포함한, 그러나 이에 제한되지 않는, 임의의 개수의 소프트웨어 프로세스에 적용될 수 있음을 이해할 것이다. 더욱이, 발명의 다양한 형태들이 예시 예 및 실시예들과 관련하여 설명될 것이지만, 당 업자는 개시되는 실시예 및 예들이 제한적인 것으로 간주되어서는 안됨을 이해할 것이다. 
도 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)은 서비스 제공자와 연관된 하나 이상의 데이터 센터의 논리적 상관(a logical association)에 대응한다. PES 플랫폼(102)은 예를 들어, 데이터 센터 컴퓨터(110)와 같은 다수의 데이터 센터 컴퓨터와 연관될 수 있다. 각각의 데이터 센터 컴퓨터(110)는 하나 이상의 가상 데스크탑 인스턴스(114)를 호스팅할 수 있다. 데이터 센터 컴퓨터(110)는 물리적 디바이스 상에서 가상 기계를 실행함으로써 가상 데스크탑 인스턴스를 호스팅할 수 있다. 가상 기계는 가상 데스크탑 인스턴스를 생성하기 위해 애플리케이션 소프트웨어 및 운영 체제의 인스턴스를 실행할 수 있다. PES(102)에 의해 실행되는 각각의 가상 데스크탑 인스턴스는 하나 이상의 클라이언트 컴퓨팅 디바이스에 의해 액세스될 수 있다.
예시되는 바와 같이, 데이터 센터 컴퓨터는 클라이언트 컴퓨팅 디바이스(106)에 의해 직접 액세스가능하지 않도록, 서비스 제공자 컴퓨터 네트워크(105) 내의, IP 어드레스와 같은, 프라이빗 네트워크 어드레스와 연관될 수 있다. 가상 데스크탑 인스턴스는 서비스 제공자 컴퓨터 네트워크(105)의 에지에서 게이트웨이에 의해 가용해질 수 있는 퍼블릭 네트워크 어드레스와 연관될 수 있다. 따라서, 가상 데스크탑 인스턴스는 퍼블릭 네트워크 어드레스를 통해 클라이언트 컴퓨팅 디바이스에 의해 직접 어드레싱가능할 수 있다. 당 업자는 각각의 데이터 센터 컴퓨터(110)가, 복수의 가상 데스크탑 인스턴스를 실행하기 위해 또는 가상 데스크탑 인스턴스를 동적으로 생성하기 위해 물리적 컴퓨팅 디바이스 리소스를 포함할 것임을 이해할 것이다. 이러한 인스턴스 생성은 클라이언트 컴퓨팅 디바이스(106)로부터와 같은, 구체적 요청에 기초할 수 있다.
데이터 센터 컴퓨터(110)는 인스턴스 매니저(122)를 포함할 수 있다. 인스턴스 매니저(122)는 각자의 인스턴스(114)와 동일 컴퓨터 상에 또는 별도의 컴퓨터 상에 위치할 수 있다. 인스턴스 매니저(122)는 데이터 센터 컴퓨터(110) 상에서 실행되는 인스턴스의 진행을 추적하고, 클라이언트 컴퓨팅 디바이스를 통해 인스턴스(114)와 상호작용하면서 사용자에 의해 생성되는 데이터의 저장을 모니터링 및 조율하며, 클라이언트 컴퓨팅 디바이스(106) 상에서 구동되는 원격 컴퓨팅 애플리케이션 및 데이터 센터 컴퓨터(110)의 전체 건강 및 상태를 모니터링한다. 인스턴스 매니저(122)는 데이터 센터 컴퓨터(110)와 클라이언트 컴퓨팅 디바이스(106) 간의 다양한 원격 컴퓨팅 세션을 효율적으로 관리하기 위해, PES 플랫폼(102)의 데이터 센터 관리 구성요소(101)와, 추적 및 모니터링을 통해 수집되는 정보를 교신한다.
도 1을 계속 참조하면, 서비스 제공자 컴퓨터 네트워크(105)는 저장 서비스 플랫폼(103)을 또한 포함한다. 저장 서비스 플랫폼(103)은 하나 이상의 저장 서버(107)를 포함하거나 이에 연결될 수 있다. 저장 서버(107)는 가상 데스크탑 인스턴스에 의해 생성 또는 이용되는 데이터의 저장에 사용될 수 있다. 가상 데스크탑 인스턴스에 의해 생성 또는 이용되는 데이터는 하나 이상의 원격 컴퓨팅 세션을 통한 클라이언트 컴퓨팅 디바이스(106)와 PES(102) 간의 상호작용에 기초할 수 있다.
예시되는 바와 같이, 저장 서비스 플랫폼(103)은 데스크탑 스토어 내 호스팅된 가상 데스크탑 인스턴스(114)와 연관된 정보를 논리적으로 조직화 및 유지할 수 있다. 데스크탑 스토어에서 유지되는 가상 데스크탑 인스턴스(114)와 연관된 정보는 사용자 선호도, 프로그램 데이터 실행과 연관된 정보, 사용자 콘텐츠, 사용자 콘텐츠에 대한 참조, 등을 포함할 수 있으나 이에 제한되지 않는다. 예를 들어, 저장 서비스 제공자를 통해서와 같이, 음악, 파일, 및 등을 다른 저장 디바이스 상에 저장하기 위해 사용자에 의해 사용되는 폴더는, 이러한 저장 위치에 대한 참조를 통해 데스크탑 스토어에 또한 매핑될 수 있다. 즉, 이러한 폴더 내 파일 오픈 요청과 같은 입/출력 작동이 데스크탑 스토어로 리디렉션될 수 있다. 따라서, 사용자가 자신의 문서 폴더에 저장된 파일을 열려고 시도할 때, 요청은 가상 데스크탑 인스턴스에서 구동되는 운영 체제에 의해 데스크탑 스토어로 리디렉션될 수 있다. 사용자에 의해 생성되는 데이터에 추가하여, 예를 들어, 배경 그림, 폰트, 아이콘 배열, 등과 같이, 데스크탑을 위한 구성 정보를 포함할 수 있는, 사용자의 데스크탑 프로파일은 사용자의 가상 데스크탑 인스턴스와 연관된 데스크탑 스토어 상에 또한 저장된다. 아래에서 더 상세히 설명되는 바와 같이, 서비스 제공자 컴퓨터 네트워크(105)는 데이터 센터 컴퓨터로부터 독립적인 저장 서버 상에 저장함으로써 데이터 센터 컴퓨터 상의 가상 인스턴스의 실행과 연관된 에러 또는 가상 데스크탑 인스턴스를 구동하는 데이터 센터 컴퓨터(110)의 장애의 효과를 완화시킬 수 있다. 추가적으로, 서비스 제공자 네트워크(105)는 데스크탑 스토어에 정보를 유지함으로써 복수의 가상 인스턴스들과의 클라이언트 상호작용을 또한 촉진시킬 수 있다. 일부 실시예에서, 아래에서 더 상세히 설명되는 바와 같이, 하나의 가상 데스크탑 인스턴스가 실패할 경우, 새 인스턴스가 런칭되어, 실패한 가상 데스크탑 인스턴스에 앞서 부착된 것과 동일한 데스크탑 스토어에 부착될 수 있다. 
논리적으로, 데스크탑 스토어는 여러 서버들 간에 분산될 수 있고, 또는 서로 다른 네트워크 영역 내 서버 상에서 수행 용도로 복제될 수 있으며, 또는, 백업 또는 오류 수행 용도로 독립적 장애 프로파일을 가진 복수의 서버 간에 복제될 수 있다. 즉, 서버는 서로 다른 전력원 또는 냉각 시스템에 부착될 수 있고, 서버는 데이터센터의 서로 다른 룸에, 또는 서로 다른 데이터센터에 위치할 수 있으며, 및/또는, 서버가 서로 다른 라우터 또는 네트워크 스위치에 부착될 수 있다. 예시되는 바와 같이, 일부 실시예에서, 데스크탑 스토어는 하나의 저장 서버 상에 놓일 수 있고, 데스크탑 스토어에 이루어지는 변화는 다른 저장 서버 상의 다른 데스크탑 스토어에 복제될 수 있다. 이러한 복제는 사용자의 데이터의 백업 사본을 생성한다. 데스크탑 스토어에 장애가 생기거나 가상 데스크탑 인스턴스가 데스크탑 스토어에 대한 연결을 상실할 경우, PES(102)는 데스크탑 스토어로부터 백업 데스크탑 스토어로 가상 데스크탑 인스턴스의 연결을 전환한다.
PES 플랫폼(102)은 저장 서버(107) 상의 다양한 데스크탑 스토어 및 백업 스토어에 의해 저장되는 데이터를 저장하기 위해 PES 리포지토리(140)와 같은 중앙 저장 디바이스를 더 포함한다. 데이터 센터 컴퓨터(110) 및 저장 서버(107)는 요청받은 애플리케이션을 지원하는 가상 기계의 인스턴스를 선택하기 위한 소프트웨어/하드웨어 구성요소의 로드 밸런싱 또는 로드 공유, 및/또는, 요청 라우팅의 촉진을 위해 DNS 네임 서버에 정보의 제공을 포함하는 통신을 촉진시키는 추가적인 소프트웨어 또는 하드웨어 구성요소를 더 포함할 수 있다. 
서버 제공자 컴퓨터 네트워크(105)는 사용자 프로파일 스토어(108)를 또한 포함할 수 있다. 사용자 프로파일 스토어(108)는, 예를 들어, 가상 데스크탑 인스턴스를 이용하면서 사용자가 액세스하게 되는 다양한 프로그램을 저장하는데 사용될 수 있다. 저장되는 사용자 프로파일은 서로 다른 사용자들의 원격 컴퓨팅 세션과 관련된 최대 시간 또는 비용을 또한 표시할 수 있다. PES 플랫폼(102)은 가상 데스크탑 인스턴스를 배치 및 구성할 때 사용자 프로파일을 고려할 수 있다. PES 플랫폼(102)은 가상 데스크탑 이미지 스토어(109)를 또한 포함하거나, 이에 연결될 수 있다. 가상 데스크탑 이미지 스토어(109)는 사용자 프로파일 당 적용되는 맞춤화없이 운영 체제의 템플릿 이미지를 포함할 수 있다.
예시적 실시예에서, 데이터 센터 컴퓨터(110) 및 저장 서버(107)는 구성요소 또는 구성요소의 일부분이 물리적으로 분리되어 있는지에 관계없이 논리적으로 군형성된 것으로 간주된다. 예를 들어, 서비스 제공자 컴퓨터 네트워크(105)는 인스턴스 및 저장 구성요소를 제공하기 위한 분리된 개별 위치들을 유지할 수 있다. 추가적으로, 데이터 센터 컴퓨터(110)가 PES 플랫폼(102)과 논리적으로 연관된 것으로 도 1에 도시되지만, 데이터 센터 컴퓨터는 사용자의 다양한 데모그래픽에 가장 잘 기여하는 방식으로 지리적으로 분산될 것이다. 추가적으로, 당 업자는 서비스 제공자 컴퓨터 네트워크(105)가 콘텐츠 및 리소스의 관리를 위한 추가적인 컴퓨팅 디바이스, 등과 같이, 다양한 추가적인 컴퓨팅 리소스와 연관될 수 있다.
도 2-7을 이제 참조하면, 도 1의 네트워크형 컴퓨팅 환경(100)의 다양한 구성요소들 간의 상호작용이 예시될 것이다. 구체적으로, 도 2-7은 클라이언트 컴퓨팅 디바이스(106)로부터 가상 데스크탑 인스턴스에 대한 원격 액세스 및 서비스 제공자 네트워크(105)에 의한 가상 데스크탑 인스턴스의 실행을 위해 네트워크형 컴퓨팅 환경(100)의 다양한 구성요소들 간의 상호작용을 도시한다. 그러나 예시 용도로, 도해는 통신 촉진을 위해 이용되는 구성요소들 중 상당수가 도시되지 않도록 단순화되어 있다. 당 업자는 이러한 구성요소들이 이용될 수 있고 따라서 본 발명의 사상 및 범위로부터 벗어나지 않으면서 추가적인 상호작용이 이루어질 것임을 이해할 것이다. 
도 2를 참조하면, 가상 데스크탑 인스턴스(114)가 PES 플랫폼(102)에 연결된 데이터 센터 컴퓨터(110) 중 어떤 하나 상에서 실행될 수 있다. 데이터 센터 컴퓨터(110) 상의 가상 인스턴스(114)의 실행과 연계하여 이벤트가 이루어질 경우, 실행은 다른 가상 데스크탑 인스턴스(114')에 전달될 수 있다. 다른 인스턴스(114')가 동일(110) 또는 다른 데이터 센터 컴퓨터(110') 상에서 실행될 수 있다. 어느 경우에도, 데스크탑 스토어(170)의 이용으로 인해 클라이언트 컴퓨팅 디바이스(106) 상에서의 사용자 경험에 대해 최소의 지연 및 중단으로 전달이 이루어진다. 아래에서 설명되는 바와 같이, 사용자 데이터는 가상 데스크탑 인스턴스(114-114')의 실행의 전달 간에 데스크탑 스토어(170)와 계속된 상관에 의해 가용하게 유지된다.
예시되는 바와 같이, 가상 데스크탑 인스턴스의 생성 및 원격 컴퓨팅 세션의 구축 이전에, 각각의 인스턴스 매니저(122)는 각자의 가상 데스크탑 인스턴스의 전체 상태 및 건강을 모니터링한다. 이러한 상태 및 건강 정보는 데이터 센터 컴퓨터(110)의 인스턴스 매니저(122)로부터 서비스 제공자의 데이터 센터 관리 구성요소(101)로 전달된다. 추가적으로, 원격 컴퓨팅 세션 중, 인스턴스 매니저(122)는 인스턴스(114)와 클라이언트 컴퓨팅 디바이스(106) 간의 네트워크 연결의 상태 및 건강을 모니터링한다. 인스턴스 매니저(122)는, 예를 들어, 클라이언트 컴퓨팅 디바이스(106) 상에 설치된 에이전트를 통해 연결된 클라이언트 컴퓨팅 디바이스(106)의 상태 및 건강을 또한 모니터링한다. 모든 모니터링되는 건강 및 상태 정보가 데이터 센터 관리 구성요소(101)로 전달된다. 인스턴스 매니저(122)로부터 수집되어 데이터 센터 관리 구성요소(101)로 전달되는 정보는 여기서 상태 정보로 또한 불린다. 다양한 구성요소로부터 수집되는 상태 정보는 서비스 제공자 컴퓨터 네트워크로부터 요망되는 서비스 신뢰도 및 가용도를 실현하기 위해 사용된다. 수집되는 상태 정보가 구성요소들 중 하나 이상의 장애를 표시할 경우, 장애는 인스턴스의 실행을 전달함으로써 또는 추가적인 데이터 저장 위치에 액세스함으로써 어드레싱될 수 있다. 
도 2에 도시되는 바와 같이, 단계(1)에서, 클라이언트 컴퓨팅 디바이스(106)가 이벤트 또는 사용자 요청에 응답하여 원격 컴퓨팅 애플리케이션(130)을 로딩할 때 새 원격 컴퓨팅 세션 요청이 초기화될 수 있다. 일부 실시예에서, 원격 컴퓨팅 애플리케이션(130)은 사용자 명칭 및 패스워드의 입력을 사용자에게 프람프트로 제시할 수 있다. 일 실시예에서, 원격 컴퓨팅 애플리케이션(130)의 로딩은 저장 구성요소로부터 디바이스 메모리로 실행가능 코드의 복사를 포함할 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 후속하여, 클라이언트 컴퓨팅 디바이스(106)는 새 원격 세션을 요청하고, 서비스 제공자 컴퓨터 네트워크(105)의 PES 플랫폼(102)에 요청을 전송할 수 있다. 일 실시예에서, 원격 컴퓨팅 세션은 사용자의 데스크탑에 원격으로 액세스하기 위해 사용자에 의해 개시될 수 있다. 다른 실시예에서, 클라이언트 컴퓨팅 디바이스(106)의 시각으로부터, 애플리케이션 프로세스의 실행을 취급하기 위한 원격 세션의 시작은 마치 애플리케이션 프로세스가 로컬 디바이스 상에서 인스턴스 생성되어 실행되는 것처럼 나타날 수 있다.
요청 수신에 이어, 단계(2)에서, PES 플랫폼(102)은 사용자 계정 식별자와 같은 정보를 이용하여 요청을 제출한 사용자의 사용자 프로파일을 선택한다. 사용자 프로파일은 사용자 프로파일 스토어(108) 상에 저장될 수 있다(도 1 참조). 일례의 실시예에서, 사용자 프로파일은, 사용자를 위한 가상 데스크탑 인스턴스를 생성하는, 가상 데스크탑 인스턴스 템플릿 또는 이미지를 표시하는 정보를 포함하거나 이와 연관될 수 있다. 예를 들어, 가상 데스크탑 인스턴스 템플릿 또는 이미지는 런칭될 운영 체제 또는 한 세트의 애플리케이션을 명시할 수 있다. 사용자 프로파일은, 사용자를 위한 가상 데스크탑 인스턴스에 부여할, 프로세싱 유닛의 수, 메모리, 스토리지, 대역폭, 등을 표시하는 정보를 또한 포함하거나 이와 연관될 수 있다. 이 정보는 서로 다른 유형의 가상 데스크탑 인스턴스(가령, 작은 인스턴스, 중간 인스턴스, 또는 큰 인스턴스) 로 요약되거나 키-값 쌍으로 표현될 수 있다. 따라서, 사용자 프로파일은 가상 데스크탑 인스턴스 유형이 "크다"(large)와 같음을 표시할 수 있고, 이 경우 크다는 것은 이와 관련된 고정된 양의 리소스를 가진다.
그 후, 클라이언트 컴퓨팅 디바이스(106)에 의해 식별되는 하나 이상의 애플리케이션 프로세스에 대응하도록 원격 세션이 개시될 수 있다. 예시되는 바와 같이, 새 원격 세션 개시는 할당된 디바이스 메모리, 스토리지 또는 캐시 공간, 프로세서 시간, 네트워크 대역폭, 또는 다른 연산 또는 네트워크 리소스와 연관된 데이터 센터 컴퓨터 또는 가상 기계 내의 이미지로부터 가상 데스크탑 인스턴스의 부팅을 포함할 수 있다. 이미지는 예를 들어, (도 1에 도시되는) 가상 데스크탑 이미지 스토어(109)와 같은, 가상 데스크탑 이미지 리포지토리로부터 액세스될 수 있다. 
PES 플랫폼(102)이 (도 1에 도시되는) 사용자 프로파일 스토어(108)로부터 사용자 프로파일을 불러들인 후, PES 플랫폼(102)은 가상 데스크탑 인스턴스를 실행할 데이터 센터 컴퓨터(110)를 결정한다. 예를 들어, PES 플랫폼(102)은 가상 데스크탑 인스턴스를 호스팅할 수 있는, 그리고, 가상 데스크탑 인스턴스의 호스팅 요건들을 수용할 수 있는 하나 이상의 컴퓨터로부터 데이터 센터 컴퓨터(110)들의 서브세트를 획득하도록 리스트에 필터링 기준을 적용할 수 있는, 데이터 센터 컴퓨터(110)들의 리스트를 획득할 수 있다. 그 후, PES 플랫폼(102)은 임의적으로 또는 다른 선택 프로세스(가령, 라운드-로빈, 등)를 이용함으로써 데이터 센터 컴퓨터(110)들 중 하나를 선택할 수 있다. 구체적 예에서, PES 플랫폼(102)은 리스트를 획득하여, 필요한 리소스(가령, 메모리, 스토리지, 프로세싱 전력, 등)을 제공할 수 없는 데이터 센터 컴퓨터(110)를 필터링한다. PES 플랫폼은 사용자 계정과 관련된 고객 계정과 연관된 N개의 다른 가상 데스크탑 인스턴스(114)를 이미지 호스팅하고 있는 데이터 센터 컴퓨터(110)를 또한 필터링할 수 있다(N은 PES 플랫폼(102)에 의해 또는 관리자에 의해 설정될 수 있는 1보다 크거나 같은 임의의 수). PES 플랫폼은 클라이언트 컴퓨팅 디바이스(106), 등에 대해 높은 대기시간을 가진 데이터 센터 컴퓨터(100)를 또한 필터링할 수 있다.
가상 데스크탑 이미지 스토어(109)로부터의 이미지가 가상 데스크탑 인스턴스(114) 생성에 사용된 후, PES 플랫폼(102)은 가상 데스크탑 인스턴스(114)에 부착할 주 데스크탑 스토어(170)와 같은, 데스크탑 스토어를 또한 식별할 수 있다. 예를 들어, PES 플랫폼(102)은 가상 데스크탑 인스턴스(114)가 실행될 데이터 센터 컴퓨터(110)를 선택할 수 있고, 사용자 프로파일 내 정보에 기초하여 가상 데스크탑 인스턴스(114)의 런칭 요청을 컴퓨터(110)에 전송하고 이를 가상 데스크탑 식별자에게 전송할 수 있다. 예시되는 바와 같이, 데스크탑 스토어와 가상 데스크탑 인스턴스의 연관성은 애플리케이션 프로토콜 인터페이스("API")의 이용을 통해 실현될 수 있다. 예를 들어, 인스턴스 매니저(122)는 저장 서비스 플랫폼(103)에 전송될 수 있는, 부착 요청과 같은, API를 이용할 수 있다. 저장 서비스 플랫폼(103)은 가상 데스크탑 인스턴스(114)가 정확한 가상 데스크탑 식별자를 가져서 사용자의 데스크탑 스토어(170)를 가상 데스크탑 인스턴스(114)에 부착시킴을 확인할 수 있다.
데이터 센터 컴퓨터(110)와 연관된 네트워크 어드레스 정보는 클라이언트 컴퓨팅 디바이스(106)에 전송될 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 IP 어드레스를 수신하면, 원격 컴퓨팅 세션이 시작될 수 있다. 가상 데스크탑 인스턴스가 구성되면, PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스(106)와 교신하여, 가상 데스크탑 인스턴스와 연관된 공공-액세스가능 IP 어드레스를 전송한다. 클라이언트 컴퓨팅 디바이스(106)가 IP 어드레스를 수신하면, IP 어드레스에 대한 연결 요청이 이루어진다. 그 후 사용자가 인증될 수 있고, 그 후, 인증되면, 인스턴스 상의 운영 체제가 사용자와 연관된 프로파일을 로딩한다. 그 후, 가상 데스크탑 인스턴스의 데스크탑 또는 사용자 인터페이스가 사용자가 선호하는 방식을 보고 느끼기 위해, 프로파일을 이용한다. 예를 들어, 인스턴스의 구조는 레지스트리 구성, 폰트 변경, 데스크탑 사진 설정, 데스크탑 상에 즐겨찾기 및 링크 조직, 데스크탑 상에 적절한 문서의 아이콘 제시, 등을 포함할 수 있다.
일부 실시예에서, 클라이언트 컴퓨팅 디바이스 요청 수신시, 데이터 센터 관리 구성요소(101)는 인스턴스(114)에 추가하여, 인스턴스(116)와 같은 다른 인스턴스 상에, 프로세싱 및 네트워크 리소스 및 프로비전 소프트웨어를 또한 선택활 수 있다. 추가적인 인스턴스가, 클라이언트 컴퓨팅 디바이스(106)와 연관된 하나 이상의 사용자를 위해, 클라이언트 컴퓨팅 디바이스에 연결된 하나 이상의 인스턴스를 위해, 또는, 이들의 조합을 위해 프로비저닝될 수 있다.
그 후, 인스턴스 매니저(122)는 인스턴스(114)의 상태 및 건강을 계속 모니터링한다. 가상 데스크탑 인스턴스(114) 내에서 작동하는 에이전트는 PES 플랫폼(102)에서 실행되는 가상 데스크탑 인스턴스와 클라이언트 컴퓨팅 디바이스(106) 상의 사용자의 상호작용에 의해 생성되는 데이터의 수신 및 저장을 또한 모니터링 및 조율할 수 있다. 데이터는 어느 파일을 사용자가 오픈하였는지, 사용자 프로파일에 관한 세부사항, 및 PES 플랫폼(105) 상에서 실행되는 인스턴스와 상호작용하면서 생성된 임의의 데이터 파일과 같은, 정보를 포함할 수 있다. 데이터는 사용자의 그래픽 사용자 인터페이스에 관한 세부사항을 또한 포함할 수 있다. 예를 들어, 데이터는 클라이언트 컴퓨팅 디바이스(106) 상에서 사용자가 오픈한 다양한 윈도와, 각자의 윈도의 절대 및 상대 위치와, 윈도 내 임의의 구성요소의 강화(emphasis), 등을 포함할 수 있다. 인스턴스 매니저(122)는 데이터 센터 관리 구성요소(101)에 상태 정보를 전송할 수 있고, 데스크탑 프로파일 및 사용자 콘텐츠에 대한 변경을 주 데스크탑 스토어(170)에 또한 기록할 수 있다.
도 2를 계속 참조하면, 일부 실시예에서, 주 데스크탑 스토어의 장애로부터 보호하기 위해, 단계(2B)에서, 주 데스크탑 스토어 상에 저장되는 데이터는 백업 데스크탑 스토어(170')에 복제될 수 있다. 백업 데스크탑 스토어(170')는 주 데스크탑 스토어(170)와 동일한 사용자의 인스턴스(114)와 연관된다. 데이터에 대해 이루어진 임의의 변경은 주 데스크탑 스토어(170)에 저장되며, 백업 데스크탑 스토어(170')에 복제된다. 복제는 주기적으로, 또는, 이벤트-단위로 - 새 데이터가 생성될 때만 데이터가 복제됨 - 또는 이 두가지의 조합으로, 수행될 수 있다.
일부 실시예에서, 단계(2C)에서, 세이브된 데이터는 PES 리포지토리(140)에 또한 저장될 수 있다. PES 리포지토리(140)로의 저장은 주기적으로, 또는 이벤트-단위로, 또는 이 두가지의 조합으로 수행될 수 있다. 일부 실시예에서, 데이터는 PES 리포지토리(140) 상에 저장 후, 주기적으로 데스크탑 스토어(170, 170')로부터 퍼징(purging)될 수 있다. 주기는 클라이언트 컴퓨팅 디바이스(106)의 사용자와 연관된 실체의 관리자에 의해 결정될 수 있다. 
이어서, 단계(3)에서, 가상 데스크탑 인스턴스(114)와 연관된 이벤트가 존재할 수 있다. 이벤트는 예를 들어, 가상 데스크탑 인스턴스의 장애를 포함할 수 있다. 가상 데스크탑 인스턴스 장애는 단전, 네트워크 차단, 데이터 센터 컴퓨터 상의 소프트웨어 또는 하드웨어 장애, 가상 데스크탑 인스턴스 상의 대기시간 증가, 가상 데스크탑 인스턴스의 상당한 손상, 또는 인스턴스의 그외 다른 장애에 기인할 수 있다. 이러한 고정의 경우에, 인스턴스 매니저(122)로부터 전송되는 상태 정보는 데이터 센터 관리 구성요소(101)에 장애를 표시할 것이다. 대안으로서, 주 데스크탑 스토어(170)는 사용자 정보에 대한 변화의 부재를 검출하여, 이러한 부재를 데이터 센터 관리 구성요소(101)에 표시할 것이다.
데이터 센터 관리 구성요소(101)가 인스턴스(114)와 연관된 이벤트를 검출하면, 예를 들어, 가상 데스크탑 인스턴스(114')와 같은, 다른 가상 데스크탑 인스턴스가 단계(4)에서 생성된다. 다른 가상 데스크탑 인스턴스(114')가 동일한 데이터 센터 컴퓨터(110) 상에서 또는 다른 컴퓨터(110') 상에서 실행될 수 있다. 다른 가상 데스크탑 인스턴스(114')가 미리 구성되었을 수 있고, 또는, 가상 데스크탑 인스턴스(114) 상에서 장애가 검출된 후 구성이 개시될 수 있다. 데이터 센터 관리 구성요소(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)에서 수집되는 데이터는 클라이언트 컴퓨팅 디바이스(106)와 가상 데스크탑 인스턴스(114) 사이에 원격 컴퓨팅 세션을 재구축할 때 복원할 클라이언트 컴퓨팅 디바이스(106)의 상태를 결정하는데 사용될 수 있다. 예를 들어, 수집되는 데이터는 클라이언트 컴퓨팅 디바이스(106)에서 문제의 상태를 결정하는데 사용될 수 있고, 이러한 상태는 복원되지 않는 것으로 결정될 수 있다. 문제의 상태는 클라이언트 컴퓨팅 디바이스(106)에 연결될 때 맞닥뜨리는 문제들의 심각성 및 빈도에 기초하여 결정될 수 있다.
도 3을 참조할 때, 네트워크형 컴퓨팅 환경(100)은 동일 사용자에 의해 사용되는 해당 또는 다른 디바이스와 연관된 이벤트 후 클라이언트 컴퓨팅 디바이스와 PES 플랫폼(102) 사이에 원격 컴퓨팅 세션을 개시하는데 또한 사용될 수 있다. 예시되는 바와 같이, 원격 컴퓨팅 세션은 동일 사용자에 의해 사용되는 다른 디바이스(106')에 또는 회복 후 동일 디바이스(106)에, PES 플랫폼(102)에 최초에 연결되는 클라이언트 컴퓨팅 디바이스(106)의 하드 드라이브의 사본을 제공할 수 있다. 
일부 실시예에서, 클라이언트 컴퓨팅 디바이스(106)가 PES 플랫폼 상의 가상 데스크탑 인스턴스(114)의 원격 실행없이, 클라이언트 컴퓨팅 디바이스(106)가 운영 체제 및 애플리케이션을 로컬 방식으로 실행하는 것이 가능하다. PES 플랫폼(102)을 이용하여, 저장 서버(107)들 중 하나 이상에서 클라이언트 컴퓨팅 디바이스(106) 컴퓨팅 환경의 하드 드라이브를 복제할 수 있고, 그 후, 하드 드라이브의 사본을 가상 데스크탑 인스턴스(114)로 클라이언트 컴퓨팅 디바이스(106) 또는 다른 클라이언트 컴퓨팅 디바이스(106') 상의 사용자에게 가용하게 한다. 일부 실시예에서, PES 플랫폼(102)을 이용하여, 저장 서버(107)들 중 하나 이상 상의 데스크탑 스토어(170)에, 또는, PES 리포지토리(140)에 사용자 콘텐츠 및 데스크탑 프로파일을 복제할 수 있고, 그 후, 클라이언트 컴퓨팅 디바이스(106 또는 106')의 사용자에게 가용하게 만들어지는 가상 데스크탑 인스턴스(114)에 해당 데스크탑 스토어(170)를 부착할 수 있다.
사용자는 예를 들어, 데스크탑 복원 서비스와 같이, 서비스 제공자 컴퓨터 네트워크(105)로부터의 서비스에 등록할 수 있다. 서비스에 가입된 사용자는, 예를 들어, 데스크탑 복원 프로그램(330)과 같은, 클라이언트 컴퓨팅 디바이스 상에서 다운로드할 컴퓨터 프로그램을 제공받을 수 있다. 데스크탑 복원 프로그램(330)은 그 후, 클라이언트 컴퓨팅 디바이스(106) 상에서 구동될 수 있고, 단계(1)에 표시된 바와 같이, 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 사이에서 세션이 개시될 수 있다. 세션 구축 후, PES 플랫폼(102)은 도 1과 연계하여 앞서 설명한 바와 같이, 데스크탑 스토어(170)들 중 하나 이상을 사용자와 연관시킬 수 있다.
계속하여 도 3을 참조하면, 데스크탑 스토어(170)가 사용자 세션과 연관된 후, PES 플랫폼(102)은 단계(2)에서, 다양한 폴더에 저장된 파일과 같이, 사용자 및 사용자 콘텐트를 위한 데스크탑 프로파일, 또는 클라이언트 컴퓨팅 디바이스(106)의 하드 드라이브 이미지의 복제를 개시할 수 있다. 사용자 또는 사용자 콘텐트에 대한 데스크탑 프로파일 또는 하드 드라이브 이미지의 복제는 PES 리포지토리(140) 또는 데스크탑 스토어(170)에 클라이언트 컴퓨팅 디바이스(106)의 디스크의 일부분의 복사를 포함할 수 있다. 전체 이미지가 복제되는 인스턴스에서, 복사는 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 간의 네트워크 연결의 대역폭에 따라, 소정의 시간을 필요로할 수 있다. 일부 실시예에서, 단계(2B)에서, 하드 드라이브 이미지가 백업 데스크탑 스토어(170')에 또한 복제될 수 있다. 일부 실시예에서, 단계(2C)에서, 이미지는 PES 리포지토리(140)에 또한 주기적으로 저장될 수 있다. 
이어서, 클라이언트 컴퓨팅 디바이스(106)와 사용자의 상호작용에 의해 사용자 콘텐트 및 데스크탑 프로파일의 일부분에 또는 하드 드라이브 이미지에 이루어진 임의의 변화는, 원격 컴퓨팅 세션을 통해 데스크탑 스토어(170)에 저장함으로써 PES 플랫폼(102)에 의해 복제된다. 이러한 변화의 복제는 네트워크 연결 대역폭에 기초하여 편성(schedule)될 수 있다. 예를 들어, 네트워크 연결 대역폭이 높을 경우, 클라이언트 컴퓨팅 디바이스의 파일 시스템이 디스크로 버퍼를 플러싱할 때마다 복제가 이루어질 수 있다. 이에 반해, 네트워크 연결 대역폭이 낮을 경우, 복제는 주기적으로, 예를 들어, 매일, 매주, 또는 다른 적절한 임의의 시간에, 또는, 예를 들어, 네트워크 연결 대역폭이 주어진 임계치보다 클 때와 같은 조건에 기초하여, 수행되도록 편성될 수 있다.
단계(3)에 의해 표시되는 바와 같이 클라이언트 컴퓨팅 디바이스(106)의 장애가 존재할 경우, 클라이언트 컴퓨팅 디바이스(106)의 사용자와 연관된 사용자 콘텐트 및 데스크탑 프로파일 또는 하드 드라이브의 사본이 PES 플랫폼(102)에 가용해진다. 장애는 단전, 네트워크 차단, 소프트웨어 또는 하드웨어 장애, 또는 그외 다른 장애 중 하나 이상을 포함할 수 있다. PES 플랫폼(102)은 데이터 센터 컴퓨터(110)들 중 하나 이상 상에 가상 인스턴스(114)를 구성하도록 하드 드라이브 이미지의 사본을 이용할 수 있고, 또는, 단계(4)에 의해 표시되는 바와 같이, 사용자와 연관된 사용자 콘텐트 및 데스크탑 프로파일을 가상 데스크탑 인스턴스(114)에 저장하도록 데스트탑 스토어(170)를 부착할 수 있다. 
결과적으로, 새 클라이언트 컴퓨팅 디바이스(106')가 사용될 때 또는 클라이언트 컴퓨팅 디바이스(106)가 장애로부터 복원될 때, 데스크탑 복원 프로그램(330) 및 원격 컴퓨팅 애플리케이션(130)이 디바이스(106 또는 106') 상에 로딩된다. 그 후, 원격 컴퓨팅 애플리케이션(130)은 사용자 명칭 및 패스워드의 입력을 사용자에게 프람프트로 제시할 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 후속하여, 새 원격 컴퓨팅 세션 요청이 단계(5)에서 서비스 제공자 컴퓨터 네트워크(105)의 PES 플랫폼(102)에 전송된다.
요청 수신에 이어, PES 플랫폼(102)은 요청과 함께 포함된 사용자 계정 식별자와 같은 정보를 이용하여 사용자 프로파일을 선택한다. 사용자 프로파일은 사용자 프로파일 스토어(108) 상에 저장될 수 있다. 일례의 실시예에서, 사용자 프로파일은, 사용자를 위한 인스턴스를 생성하는, 인스턴스 템플릿을 표시하는 정보를 포함하거나 이와 연관될 수 있다. 예를 들어, 하드 드라이브 사본이 생성된 경우에, 인스턴스 템플릿은 인스턴스 템플릿으로 사용하기 위해 사용자를 위해 앞서 저장된 하드 드라이브 이미지를 명시할 수 있다. 원격 컴퓨팅 세션은 그 후 데이터 센터 컴퓨터(110)들 중 하나 상에 데스크탑 스토어(170)들 중 하나 상에 앞서 저장된 사용자의 하드 드라이브 이미지의 사본으로부터 가상 데스크탑 인스턴스를 부팅하도록 개시될 수 있다. 사용자 콘텐트 및 데스크탑 프로파일이 저장된 경우에, 사용자 콘텐트 및 데스크탑 프로파일을 포함하는 데스크탑 스토어(170)가 사용자에 의해 액세스되도록 가상 데스크탑 인스턴스(114)에 부착될 수 있다. 
도 4를 참조하면, 서로 다른 사용자 요건을 수용하기 위한 PES 플랫폼(102)의 구성을 도시하는 도 1의 네트워크형 컴퓨팅 환경의 블록도가 개시된다. 앞서 설명한 바와 같이, 새 원격 컴퓨팅 세션은 클라이언트 컴퓨팅 디바이스(106)가 이벤트 또는 사용자 요청에 응답하여 원격 컴퓨팅 애플리케이션(130)을 로딩할 때 개시될 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 후속하여, 클라이언트 컴퓨팅 디바이스(106)는 새 원격 세션을 요청할 수 있다.
요청 수신에 후속하여, PES 플랫폼(102)은 요청받은 새 원격 세션에 서비스하도록 데이터 센터 컴퓨터(110) 및 인스턴스(114)를 구성한다. 데이터 센터 컴퓨터 및 인스턴스는 사용자 프로파일 스토어(108)에 저장되는 이러한 애플리케이션 프로세스와 연관된 다양한 메모리 또는 프로세싱 요건들과 요청에 의해 식별되는 하나 이상의 애플리케이션 프로세스에 기초하여 구성될 수 있다.
예를 들어, 일 실체와 연관된 클라이언트 컴퓨팅 디바이스(106)의 사용자는 이와 연관된 제한사항을 가질 수 있다. 제한사항은 관리자에 의해 설정될 수 있다. 제한사항은, 예를 들어, 각각의 사용자가 액세스할 수 있는 애플리케이션을 포함할 수 있고, 그리고, 사용자에 의해 액세스되는 서로 다른 가상 데스크탑 인스턴스와 연관된 메모리 및 프로세싱 임계치를 포함할 수 있다. 예를 들어, 관리자는 개별 사용자에 대한 디폴트 인스턴스 크기를 설정할 수 있다. 디폴트 인스턴트 크기는, 예를 들어, 사용자 식별자에 따라, 개별 사용자와 연관된 사용자 프로파일 스토어(108)에 저장될 수 있다. 사용자 프로파일 스토어(108)는 인스턴스에 의해 실행되는 애플리케이션에 따라, 인스턴스 크기를 달리하기 위한 변수를 또한 포함할 수 있다.
일 실시예에서, 사용자는 가령, 전자 메일 또는 웹 브라우저와 같이, 낮은 프로세싱 요건을 가진 애플리케이션을 실행하도록 제한받을 수 있다. 이러한 사용자는 이러한 애플리케이션을 지원하기 위해 낮은 양의 리소스를 할당받는 가상 데스크탑 인스턴스에 대한 액세스를 제공받을 수 있다. 이에 반해, 사용자는 전문가 드래프팅 또는 사진 편집 애플리케이션과 같이, 높은 프로세싱 요건을 가진 애플리케이션의 실행을 인가받을 수 있다. 이러한 유형의 사용자는 이러한 애플리케이션을 사용자가 구동하기에 충분한, 많은 수의 리소스를 할당받는 가상 데스크탑 인스턴스에 대한 액세스를 제공받을 수 있다. 서로 다른 사용자용으로 인가된 애플리케이션은 사용자 계정의 사용자 프로파일에 저장될 수 있다. 대안으로서, 서로 다른 유형의 애플리케이션들이 가상 데스크탑 인스턴스를 이용하면서 사용자에 의해 요청될 수 있다.
예시되는 바와 같이, 사용자 또는 클라이언트 컴퓨팅 디바이스와 연관된 프로세싱 요건들이 다양한 시나리오에 기초하여 결정될 수 있다. 이러한 결정은 원격 컴퓨팅 애플리케이션(130)의 런칭시 사용자 요청에 기초할 수 있다. 예를 들어, 사용자는 리소스 및 애플리케이션에 대한 다양한 옵션을 디스플레이하는 그래픽 사용자 인터페이스(GUI)를 제시받을 수 있다. 그 후 사용자는 액세스하고자 하는 애플리케이션을 선택할 수 있고, 또는, 대안으로서, 이러한 애플리케이션들의 버전을 선택할 수 있다. 예를 들어, 일 사용자가 애플리케이션의 기본 버전에 액세스하기를 바라고, 다른 사용자는 동일 애플리케이션의 전문가 버전에 액세스하기를 원할 수 있다. 결정은 사용자와 관련된 실체의 관리자에 의해 결정되는, 소정의 사용자에 대한 기선택된 옵션에 또한 기초할 수 있다. 예를 들어, 기선택된 옵션은 사용자가 액세스하고자 하는 애플리케이션의 서로 다른 패키지의 리스트로 사용자에게 제시될 수 있다. 일부 경우에, 결정은 사용자의 과거 이용 데이터에 대해 이루어질 수 있고, 이는 요청이 사용자로부터 수신되면 PES 플랫폼(102)이 결정할 수 있다. 다른 경우에, 프로세싱 요건의 결정은 원격 컴퓨팅 세션이 개시될 때 사용자에 의한 프로세스 이용의 진행중인 모니터링에 기초할 수 있다. 이러한 경우에, 적절한 인스턴스의 선택이 세션 구축 후 동적으로 변화할 수 있고, 새 인스턴스로의 동적 변경은 앞서 도 1과 관련하여 설명한 바대로 수행될 수 있다.
다시 도 4를 참조하면, 단계(1)에서 사용자로부터 요청이 수신되면, 그리고 사용자 요건 결정을 위해 사용자 프로파일 스토어(108)에 액세스하면, 그 후 단계(2)에서, 가상 데스크탑 이미지 스토어(109)로부터 가상 데스크탑 이미지가 불러들여져서, 사용자 요건에 따라 구성된다. 그 후 맞춤화된 가상 데스크탑 이미지를 이용하여 인스턴스(114)를 구성한다. 인스턴스(114)가 구성된 후, 단계(3)에서, PES 플랫폼은 인스턴스를 런칭할 데이터 센터 컴퓨터(110)를 결정한다. 예를 들어, PES 플랫폼(102)은 리스트를 획득하여, 필요한 리소스(가령, 메모리, 스토리지, 프로세싱 전력, 등)을 제공할 수 없는 데이터 센터 컴퓨터(110)를 필터링한다. 데이터 센터 컴퓨터(110)가 선택되면, 데이터 센터 컴퓨터(110)와 연관된 네트워크 정보가 클라이언트 컴퓨팅 디바이스(106)에 전송될 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 네트워크 정보를 수신하면, 원격 컴퓨팅 세션이 시작될 수 있다. 가상 데스크탑 인스턴스가 구성되면, PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스(106)와 교신하여, 가상 데스크탑 인스턴스와 연관된 공공-액세스가능 IP 어드레스를 전송한다. 클라이언트 컴퓨팅 디바이스(106)가 IP 어드레스를 수신하면, IP 어드레스에 대한 연결 요청이 이루어진다. 그 후 사용자가 인증될 수 있고, 그 후, 인증되면, 앞서 구성된 가상 데스크탑의 이미지가 사용자에게 제공된다.
일부 실시예에서, 인스턴트 에이전트(114A)는 단계(4)에서 인스턴스(114)가 이용하고 있는 CPU 및 메모리의 양을 모니터링할 수 있고, 필요할 경우 PES 플랫폼(102)으로부터 더 많은 리소스를 또한 요청할 수 있다. 일부 실시예에서, 각각의 애플리케이션은 얼마나 많은 리소스들이 필요한지를 표시하는 정보로 태그될 수 있다. 인스턴스 에이전트(114A)가 프로그램의 런칭을 검출할 때, 에이전트는 리소스가 인스턴스(114)에 할당될 필요가 있음을 표시하는 신호를 PES 플랫폼(102)이 에이전트(114A)에게 전송할 수 있도록, 애플리케이션이 런칭되었음을 PES 플랫폼(102)에 신호하거나 표로 된 요건을 살펴보도록 구성될 수 있다.
사용자의 최적 인스턴스 결정은 사용자의 사용-기반 과금(billing) 구현을 도울 수 있다. 많은 수의 리소스를 할당받는 인스턴스가 제한될 수 있다. 예를 들어, 이러한 인스턴스는 소정의 인가받은 사용자에게만 제공될 수 있고, 또는, 제한된 시간 주기 동안 소정의 사용자에게만 제공될 수 있다. 서로 다른 인스턴스의 사용-기반 과금은 서비스 제공자 리소스의 이용을 위한 기본 가격 구성요소와, 할당된 리소스에 기초한 가변 가격 구성요소와, 서로 다른 리소스로 이용되는 총 시간을 포함할 수 있다. 사용자의 리소스 이용 및 요청은 사용자와 연관된 계정의 관리자에 의한 사용자 관리를 위해 또한 이용될 수 있다. 예를 들어, 주어진 임계치를 넘는 리소스 레벨을 사용자가 요청할 때 관리자에게 통지가 전송될 수 있다. 
인스턴스에 할당할 리소스의 결정은 리소스 이용과 관련된 비용에 또한 기초할 수 있다. 예를 들어, 주어진 레벨의 리소스로 구성되는 주어진 인스턴스는, 이러한 리소스의 이용 비용의 임계치까지 사용되도록 제한될 수 있다. 다른 예에서, 인스턴스는 할당된 리소스의 임계치와 함께 사용될 수 있다. 대안으로서, 인스턴스에 대한 사용자 액세스는 주어진 세션 중 낮은 리소스 이용을 표시하거나 아이들 상태로 모니터링되는 임계 시간양 이후 낮은 리소스를 가진 인스턴스로 다운그레이드될 수 있다. 
관리자는 가상 데스크탑 인스턴스 상의 리소스에 대한 사용자 액세스를 인가하기 위해 서로 다른 규정을 제공할 수 있다. 예를 들어, 규정은 서로 다른 유형의 사용자를 규정할 수 있고, 사용자 유형은 실체에 의해 프로그램 실행 서비스(PES) 플랫폼에 제공되는 한 세트의 규정에 저장될 수 있다. 규정은 사용자 계정 식별자와 같은, 서로 다른 사용자 로그인 정보와 연관될 수 있고, 사용자 프로파일 스토어(108)에 저장될 수 있다. 사용자가 실체의 클라이언트 컴퓨팅 디바이스(106) 상에서 원격 컴퓨팅 애플리케이션(130)을 런칭할 때, PES 플랫폼(102)은 사용자 계정 식별자와 연관된 사용자 프로파일에 포함된 규격에 따라 적절한 인스턴스를, 수신되는 로그인 정보에 기초하여, 결정할 수 있다.
예시 용도로, 실체에 의해 고용된 계약자가, 클라이언트 컴퓨팅 디바이스(106) 상에서 결정된 시간의 양 동안 결정된 애플리케이션 프로세스를 이용하도록 인가받을 수 있음을 가정해보자. 따라서, 실체는 PES 플랫폼(102)에 전송되는, 계약자의 사용자 신원에 요망 요건을 할당한다. 그 후, 계약자가 원격 컴퓨팅 애플리케이션(130)을 런칭할 때, 로그인은 계약자의 사용자 식별자를 표시한다. 이후, 서비스 제공자는 이를 위해 그리고 후속 원격 컴퓨팅 세션을 위해 클라이언트 컴퓨팅 디바이스(106)와 연관되도록 구성할 인스턴스 및 데이터 센터 컴퓨터를 결정한다. 서비스 제공자의 데이터 센터 관리 구성요소(101)는 결정된 프로세스의 계약자 이용, 프로세싱 레벨, 및 이용 시간을 모니터링하여, 실체 관리자에 의해 규정된 조건 별로 이용을 제한한다. 계약자는 클라이언트 컴퓨팅 디바이스(106) 상에 임의의 소프트웨어 애플리케이션을 설치할 필요가 없고, 실체는 계약자에 의한 애플리케이션 이용을 모니터링할 필요가 없다. PES 플랫폼(102)은 양자의 필요를 중앙에서 수용한다. 
기결정된 사용자 유형에 기초한 애플리케이션의 프로세싱 요건 및 애플리케이션의 구성이 실체 과금에 사용될 수 있다. 서로 다른 인스턴스의 사용-기반 과금은 서비스 제공자 리소스의 이용을 위한 기본 가격 구성요소와, 프로세싱 요건에 기초한 가변 가격 구성요소와, 서로 다른 프로세싱 요건과 함께 이용되는 총 시간을 포함할 수 있다. 대안으로서, 실체는 PES(102)로부터 다양한 애플리케이션 프로세스에 대한 라이센스를 얻을 수 있고, 라이센스는 실체가 클라이언트 컴퓨팅 디바이스(106)를 가용하게 할 때 실체에 의해 인가된 다양한 사용자에 의해 사용될 수 있으며, 사용자 명칭은 각자의 사용자에 대해 필요한 다양한 애플리케이션 프로세스를 위한 적절한 승인과 연관된다. 
서비스 제공자 인스턴스의 구성은 원격 컴퓨팅 세션 중 인스턴스의 프로비전 또는 과거 요청 히스토리에 기초하여, 서로 다른 인스턴스에 대한 애플리케이션 프로세스의 기선택된 조합을 제공하는데 또한 사용될 수 있다. 애플리케이션 프로세스 및 프로세싱 요건의 조합이, 예를 들어, 서로 다른 유형의 사용자에게 구성될 수 있다. 사용자 유형은 예를 들어, 단순한 이메일 판독자 및 웹 브라우저일 수 있고, 또는, 전문 드래프터 또는 사진 편집가일 수 있다. 일부 실시예에서, 인스턴스의 구성은 프로세싱 요건에 대신하여, 또는 추가하여, 애플리케이션 프로세스와 연관된 저장 요건에 또한 기초할 수 있다. 
도 5를 참조하면, 인스턴스의 리소스 요건에 기초하여 원격 컴퓨팅 세션의 조정을 나타내는 도 1의 네트워크형 컴퓨팅 환경의 블록도가 개시된다. 도 5에 도시되는 바와 같이, 서비스 제공자 컴퓨터 네트워크(105)는 인스턴스에 할당된 리소스를 조정할 수 있고, 또는, 초기 인스턴스와 연관된 리소스 요건이 변경될 경우 동일한 또는 다른 데이터 센터 컴퓨터 상에 새 인스턴스를 제공할 수 있다. 앞서 설명한 바와 같이, 새 원격 컴퓨팅 세션은 클라이언트 컴퓨팅 디바이스(106)가 이벤트 또는 사용자 요청에 응답하여 원격 컴퓨팅 애플리케이션(130)을 로딩할 때 개시될 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 후속하여, 클라이언트 컴퓨팅 디바이스(106)는 단계(1)에서 새 원격 세션을 요청할 수 있다. 요청 수신에 후속하여, 단계(2)에서, PES 플랫폼(102)은 요청받은 새 원격 세션에 서비스하도록 데이터 센터 컴퓨터(110)를 선택하고, 사용자 프로파일 스토어(108) 상의 사용자 프로파일 스토어에 기초하여 런칭할 적절한 인스턴스를 선택한다. 세션 구축 후, 인스턴스는 단계(3)에서 인스턴스 매니저(122)에 의해 클라이언트 컴퓨팅 디바이스(106)의 사용자에 의한 인스턴스 이용 모니터링에 기초하여 동적으로 조정될 수 있다.
예를 들어, 클라이언트 컴퓨팅 디바이스(106)의 사용자가 가상 데스크탑 인스턴스와 상호작용할 때, 사용자는 낮은 프로세싱 전력과, 낮은 메모리 요건만을 요구하는 애플리케이션에 액세스할 수 있다. 그러나, 소정 시간 후, 사용자는 더 많은 프로세싱 전력 및 더 많은 메모리를 요구하는 하나 이상의 애플리케이션에 대한 액세스를 요청할 수 있다. 일부 실시예에서, 서로 다른 요건에 대한 요청은 데스크탑 인터페이스 상의 애플리케이션용 아이콘의 사용자 선택에 의해 개시될 수 있다. 일부 실시예에서, 요청은 제어판 내 옵션들의 리스트로부터 일 옵션의 사용자 선택에 의해 개시될 수 있다. 예를 들어, 옵션 리스트는 서로 다른 양의 프로세싱 전력 및 메모리의 슬라이딩 스케일을 포함할 수 있다. 어느 경우에도, 인스턴스 매니저(122)는 단계(4)에서 인스턴스(114)의 서로 다른 구성에 대한 필요를 결정한다. 
PES 플랫폼(102)은 더 큰 프로세싱 전력 및 메모리를 수용하기 위해 가상 데스크탑 인스턴스에 할당된 리소스의 양을 동적으로 조정할 수 있다. 일부 실시예에서, 단계(5)에서, 조정은 동일한 또는 다른 데이터 센터 컴퓨터 상에서의 인스턴스 리-런칭을 필요로할 수 있다. 가상 데스크탑 인스턴스의 리-런칭(re-launching)은 구동 인스턴스의 종료, 인스턴스로부터 데스크탑 스토어 상관해제, 새 인스턴스를 런칭할 데이터 센터 컴퓨터 선택, 선택된 데이터 센터 컴퓨터 상에 새 인스턴스 생성, 및 새 인스턴스에 데스크탑 스토어 상관을 포함할 수 있다. 인스턴스가 생성되면, 사용자는 로그인 프람프트로 액세스를 제공받을 수 있다.
다른 실시예에서, 조정은 인스턴스 종료없이 가상 데스크탑 인스턴스에 추가 리소스 추가를 포함할 수 있다. 예를 들어, 인스턴스 매니저는 데스크탑 인스턴스, 등을 실행하는 가상 기계에 다른 프로세서 또는 메모리를 추가할 수 있다. 일부 실시예에서, 프로세서는 가상 데스크탑 인스턴스에 CPU를 핫-애드(hot-adding)함으로써 가상 데스크탑 인스턴스에 추가될 수 있다. CPU는 새 하드웨어를 데이터 센터 컴퓨터에 추가하여, 가상화 계층을 통해 가상으로 또는 온라인으로 하드웨어 파티셔닝을 논리적으로 수행함으로써 핫-애드될 수 있다. 데이터 센터 컴퓨터(110)는 CPU가 추가된 후 자동적으로 개시될 필요가 없고, 하지만, 새 CPU를 가용 리소스로 인지하도록 단순히 재구성될 수 있다. 일부 실시예에서, 프로세서는 가상 데스크탑 인스턴스에 CPU를 핫-애드(hot-adding)함으로써 가상 데스크탑 인스턴스에 추가될 수 있다. 데이터 센터 컴퓨터(110)에 메모리의 핫-애드는 운영 체제 인스턴스에 물리적 메모리를 추가하기 위한 메커니즘이 임의의 운영 체제 다운타임 또는 시스템 전력 작동을 요하지 않으면서 지원됨을 보장함으로써 구현될 수 있다. 
도 6은 가상 데스크탑 인스턴스의 작동이 원격 방식으로부터 논리적 네트워킹 환경으로 전환될 때 도 1의 컴퓨팅 환경을 나타내는 블록도다. 일부 실시예에서, PES 플랫폼(102)과 클라이언트 컴퓨팅 디바이스(106) 간에 구축되는 원격 컴퓨팅 세션은 네트워크 단절 또는 장애로 인해 상실될 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(106)의 사용자가 네트워크(104)에 의해 서비스되지 않는 영역으로 이동할 수 있다. 이러한 차단을 수용하기 위해, PES 플랫폼(102)과 클라이언트 컴퓨팅 디바이스 간의 원격 컴퓨팅 세션을 이용하여, 데이터 센터 컴퓨터로부터 클라이언트 컴퓨팅 디바이스(106)로 정보를 전달할 수 있고, 따라서, PES 플랫폼 상에서 앞서 실행된 가상 인스턴스의 국부적으로 실행되는 사본으로 전환하기 위해 필요한 구성요소를 클라이언트 컴퓨팅 디바이스(106)에 장비할 수 있다. 
예를 들어, 클라이언트 컴퓨팅 디바이스(106)는 네트워크(104)를 통해 PES 플랫폼(102)에 연결될 수 있고, 디바이스(106)는 사용자가 비행기에 오르기 전에 네트워크(104)로부터 차단될 수 있다. 네트워크(104)로부터 차단되기 전에, 선택적으로 사용자 승인을 위한 프람프트 이후에, 클라이언트 컴퓨팅 디바이스(106)는 가상 데스크탑 이미지 스토어(109) 상에 저장되는 이미지와 같이, 운영 체제의 이미지를 제공받을 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 데이터 센터 컴퓨터(110)와는 다른 구성의 프로세싱 전력 또는 메모리를 가질 수 있기 때문에, 클라이언트 컴퓨팅 디바이스에 적응되는 운영 체제의 이미지는 대응하는 전력 및 메모리 구성을 가질 수 있다. 클라이언트 컴퓨팅 디바이스(106)는 데스크탑 스토어의 사본과 함께 데이터의 최근 저장 버전을 갖도록 또한 적응될 수 있다. 마지막으로, 클라이언트 컴퓨팅 디바이스(106)는 서비스 제공자 컴퓨터 네트워크(105)로부터 가상 데스크탑 모니터링 모듈(601)을 또한 수신하여, 제공되는 운영 체제의 이미지에 기초하여 인스턴스(114')를 런칭할 수 있고, 데스크탑 스토어(170')의 로컬 사본에 인스턴스(114')를 부착할 수 있다. 그 후, 클라이언트 컴퓨팅 디바이스(106)가 네트워크(104)로부터 분리될 때, 사용자는 클라이언트 컴퓨팅 디바이스(106) 상에서 로컬하게 실행되는 인스턴스와 함께 디바이스를 계속 이용할 수 있다. 클라이언트 컴퓨팅 디바이스(106)는 그 후, 비행기 상에서 실행되는 인스턴스의 적응 버전 및 데이터를 가질 수 있다.
다른 실시예에서, 클라이언트 컴퓨팅 디바이스(106)는 PES 플랫폼(102)과 연결없이, 가상 데스크탑 모니터링 모듈(601), 인스턴스 매니저, 운영 체제의 이미지의 사본을 갖출 수 있다. 예를 들어, 실체의 컴퓨팅 디바이스(106)는 실체의 정보 기술(IT) 부서에 의해 적절한 이미지 및 모듈로 구성될 수 있다. 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)은 PES 플랫폼(102)과 함께 가용한 네트워크 연결이 존재할 때 인스턴스(114')가 클라이언트 컴퓨팅 디바이스(106) 상에서 로컬하게 실행되도록, 단계(4)에서, 데스크탑 스토어(170)의 사본(170'), 인스턴스(114)에 의해 실행되는 운영 체제의 이미지의 사본, 및 인스턴스 매니저(122)의 사본(122')을 클라이언트 컴퓨팅 디바이스(106)에 제공한다. 앞서 설명한 바와 같이, 일부 실시예에서, 운영 체제의 이미지, 인스턴스 매니저, 및 가상 모니터링 모듈(601)은 클라이언트 컴퓨팅 디바이스(106) 상에 이미 설치될 수 있고, PES 플랫폼은 데스크탑 스토어(170)의 사본(170')만을 제공할 것이다. 
인스턴스(114')가 클라이언트 컴퓨팅 디바이스(106) 상에서 가용할 때, 이는 로컬하게 실행되고, 사용자의 데스크탑 프로파일 및 사용자 콘텐트에 대해 이루어지는 모든 변경은 데스크탑 스토어(170')의 로컬 사본 상에 저장된다. 그 후, 네트워크 연결이 PES 플랫폼(102)과 함께 재구축될 때, 단계(5)에서, 원격 컴퓨팅 세션이 클라이언트 컴퓨팅 디바이스(106)의 원격 컴퓨팅 애플리케이션(130)으로부터 요청된다. 위에서와 같이, 단계 (6A)에서, 사용자의 사용자 프로파일을 이용하여 데이터 센터 컴퓨터(110) 상에서 가상 데스크탑 인스턴스(114)를 생성할 수 있고, 단계(6B)에서, 클라이언트 컴퓨팅 디바이스(106)가 PES 플랫폼에 연결될 때, 데스크탑 스토어의 사본(170')이 저장 서버(107)에 저장된다. 그 후, 단계(7A)에서, 데스크탑 스토어의 사본(170')에 대해 이루어지는 변경들이 사용자와 연관된 주 데스크탑 스토어(170)에 동기화되고, 단계(7B)에서, 원격 세션에서 가상 인스턴스(114)와 상호작용하면서 사용자로부터 수신되는 추가적인 변경 역시 주 데스크탑 스토어(170)에 또한 저장된다.
도 7은 PES 플랫폼(102)에서 인스턴스와 함께 이벤트 발생 후 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 사이에서 사용자 데이터 지속 및 이음새없는 원격 컴퓨팅 세션 제공 프로세스의 루틴을 나타내는 흐름도다. 루틴(700)은 블록(702)에서 시작된다. 블록(704)에서, PES 플랫폼(102)은 시스템 내 데이터 센터 컴퓨터 상에서 구동되는 다양한 인스턴스로부터 상태 정보를 수신한다. 상태 정보는 주기적으로 또는 기결정된 이벤트가 인스턴스에서 발생될 때 인스턴스로부터 수신될 수 있다. 수신 간의 주기는 밀리초, 초, 분, 또는 다른 지속시간 수준일 수 있다. 기결정된 이벤트는 인스턴스의 건강, 인스턴스의 네트워크 연결의 건강, 등에 관련될 수 있다. PES 플랫폼(102)은 루틴(700)의 지속시간 전체에 걸쳐 상태 정보를 계속 수신한다.
블록(706)에서, PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스로부터 새 원격 컴퓨팅 세션 요청을 수신한다. 블록(708)에서, PES 플랫폼(102)은 이미지와, 이미지를 이용하여 생성된 인스턴스에 할당할 리소스 양을 선택한다. 다양한 실시예에서, 적절한 인스턴스는 요청을 보낸 클라이언트 컴퓨팅 디바이스의 사용자와 연관된 사용자 프로파일 스토어에 포함된 정보에 기초할 수 있다. 인스턴스가 선택되면, 적절한 데이터 센터 컴퓨터가 인스턴스를 호스팅하도록 선택될 수 있고, 블록(710)에서, PES 플랫폼(102)은 인스턴스와 클라이언트 컴퓨팅 디바이스 간에 원격 컴퓨팅 세션을 개시한다. 블록(712)에서, PES 플랫폼은 해당 사용자에 대해 특정 데이터 스토어를 인스턴스에 부착한다.
원격 컴퓨팅 세션이 구축되면, 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)은 더 큰 프로세싱 전력 및 메모리를 수용하기 위해 가상 데스크탑 인스턴스에 할당된 리소스의 양을 동적으로 조정할 수 있다. 일부 실시예에서, 조정은 동일한 또는 다른 데이터 센터 컴퓨터 상에서의 인스턴스 리-런칭을 필요로할 수 있다. 가상 데스크탑 인스턴스의 리-런칭(re-launching)은 구동 인스턴스의 종료, 인스턴스로부터 데스크탑 스토어 상관해제, 새 인스턴스를 런칭할 데이터 센터 컴퓨터 선택, 선택된 데이터 센터 컴퓨터 상에 새 인스턴스 생성, 및 새 인스턴스에 데스크탑 스토어 상관을 포함할 수 있다. 인스턴스가 생성되면, 사용자는 로그인 프람프트로 액세스를 제공받을 수 있다.
다른 실시예에서, 조정은 인스턴스 종료없이 가상 데스크탑 인스턴스에 추가 리소스 추가를 포함할 수 있다. 예를 들어, 인스턴스 매니저는 가상 데스크탑 인스턴스에 다른 프로세서를 추가하고, 가상 데스크탑 인스턴스에 메모리를 추가하며, 등등 할 수 있다. 루틴(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)로부터 분리될 때, 사용자는 로컬하게 저장되는 이미지로부터 로컬 가상 데스크탑 인스턴스를 구동할 수 있고, 로컬 데이터 스토어를 부착할 수 있다. 여기서, 데스크탑 프로파일 및 사용자 콘텐트에 대한 변경은 데스크탑 스토어의 로컬 사본 상에 저장된다. 그 후, 네트워크 연결이 PES 플랫폼(102)과 함께 재구축될 때, 예를 들어, 클라이언트 컴퓨팅 디바이스(106)의 사용자가 서비스 제공자의 네트워크에 대한 네트워크 연결성을 가진 영역으로 되돌아올 때(예를 들어, 도착 도시에서 비행기로부터 내릴 때), 원격 컴퓨팅 세션이 클라이언트 컴퓨팅 디바이스로부터 수신되고, 로컬 데스크탑 스토어가 블록(1112)에 의해 도시되는 바와 같이, 데스크탑 스토어와 동기화된다. 구체적 예에서, 동기화 작동은 사용자가 PES 플랫폼(102)에서 가상 데스크탑 인스턴스를 개시하려 시도할 때 나타날 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 PES 플랫폼(102)에 연결될 때, 데스크탑 스토어(170)의 사본이 PES 플랫폼(102)의 저장 서버(107)에 저장된다. 데스크탑 스토어(170)의 사본에 대해 이루어진 변경은 사용자와 연관된 주 데스크탑 스토어(1400)에 동기화되고, 원격 세션에서 가상 인스턴스와 상호작용하면서 사용자로부터 수신되는 추가적 변경 역시 주 데스크탑 스토어(170)에 또한 저장된다. 루틴(1100)은 블록(1114)에서 종료된다. 
본 발명의 실시예들은 다음의 항에 비추어 설명된다:
1. 프로세서 및 메모리를 가진 프로그램 실행 서비스(PES)의 하나 이상의 컴퓨터를 포함하는 시스템에 있어서, 상기 메모리는 명령어를 포함하며, 상기 명령어는 실행시, 하나 이상의 컴퓨터로 하여금, 
가상 데스크탑 인스턴스에 대한 컴퓨팅 디바이스로부터의 요청을 수신하는 단계 - 상기 요청은 상기 컴퓨팅 디바이스의 사용자를 식별함 - 와, 
상기 요청에 대응하는 가상 데스크탑 인스턴스를 식별하는 단계 - 상기 가상 데스크탑 인스턴스는 호스트 컴퓨터 시스템과 연관되고, 상기 호스트 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함하며, 상기 메모리는 명령어를 포함하고, 상기 명령어는 실행시 상기 호스트 컴퓨터 시스템으로 하여금, 
네트워크를 통해 상기 가상 데스크탑 인스턴스에 제 1 데스크탑 스토어를 부착하는 단계 - 상기 제 1 데스크탑 스토어는 사용자 콘텐트를 포함하는 하나 이상의 폴더 및 사용자에 대한 데스크탑 프로파일을 포함함 - 와, 
상기 사용자에 대한 데스크탑 프로파일에 따라 맞춤화된, 그리고, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 사용자 콘텐트에 대한 변경을 저장하도록 구성되는, 상기 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계와, 
상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경을 기록하는 단계를 수행하게 하며,
상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더 내 사용자 콘텐트가 제 2 데스크탑 스토어로 복제되는, 시스템.
2. 제 1 항에 있어서, 상기 제 1 데스크탑 스토어는 제 1 서버 상에 저장되고, 상기 제 2 데스크탑 스토어는 제 2 서버 상에 저장되는, 시스템.
3. 제 1 항에 있어서, 상기 PES의 하나 이상의 컴퓨터는 제 1 데스크탑 스토어를 호스팅하는 저장 서버를 포함하고, 상기 저장 서버는 요청에 응답하여 상기 제 1 데스크탑 스토어의 스냅샷을 발생시키도록 구성되는, 시스템.
4. 제 1 항에 있어서, 명령어는 실행시, 또한 상기 호스트 컴퓨터 시스템으로 하여금 상기 제 1 및 제 2 데스크탑 스토어의 스냅샷을 주기적으로 생성하게 하는, 시스템.
5. 제 1 항에 있어서, 상기 제 1 데스크탑 스토어 및 제 2 데스크탑 스토어는 서로 독립된 네트워크에 위치하는 서버 상에 각자 저장되는, 시스템.
6. 컴퓨터에 의해 구현되는 방법에 있어서, 
가상 데스크탑 인스턴스에 대한 컴퓨팅 디바이스로부터의 요청을 수신하는 단계 - 상기 요청은 상기 컴퓨팅 디바이스의 사용자를 식별함 - 와,
상기 요청에 대응하는 제 1 가상 데스크탑 인스턴스를 식별하는 단계와,
네트워크를 통해 상기 제 1 가상 데스크탑 인스턴스에 제 1 데스크탑 스토어를 부착하는 단계 - 상기 제 1 데스크탑 스토어는 사용자 콘텐트를 포함하는 하나 이상의 폴더 및 사용자에 대한 데스크탑 프로파일을 포함함 - 와, 
상기 사용자에 대한 데스크탑 프로파일에 따라 맞춤화된, 그리고, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 사용자 콘텐트에 대한 변경을 저장하도록 구성되는, 제 1 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계와, 
상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경을 기록하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
7. 제 6 항에 있어서,
상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와,
상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
8. 제 6 항에 있어서, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더 내 사용자 콘텐트가 제 2 데스크탑 스토어로 복제되는, 컴퓨터에 의해 구현되는 방법. 
9. 제 8 항에 있어서, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경이, 상기 제 2 데스크탑 스토어에 복제되는, 컴퓨터에 의해 구현되는 방법. 
10. 제 9 항에 있어서,
상기 제 1 데스크탑 스토어에 관련된 이벤트를 결정하는 단계와,
상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와, 
상기 제 1 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
11. 제 10 항에 있어서,
상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
상기 제 1 가상 데스크탑 인스턴스로부터 상기 제 2 데스크탑 스토어를 분리시키는 단계와,
상기 제 2 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계와, 
상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
12. 제 9 항에 있어서,
상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와,
상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
13. 제 12 항에 있어서,
상기 제 1 데스크탑 스토어에 관련된 이벤트를 결정하는 단계와,
상기 제 2 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와, 
상기 제 2 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
14. 제 6 항에 있어서, 상기 제 1 데스크탑 스토어의 스냅샷(snapshot)은 저장 서버에 주기적으로 저장되는, 컴퓨터에 의해 구현되는 방법. 
15. 컴퓨터-실행가능 명령어를 포함하는 비일시적 물리적 컴퓨터 스토리지에 있어서, 상기 명령어는 실행될 때, 컴퓨터 시스템으로 하여금 적어도,
가상 데스크탑 인스턴스에 대한 클라이언트로부터의 요청을 수신하는 단계 - 상기 요청은 상기 클라이언트의 사용자를 식별함 - 와, 
상기 요청에 대응하는 제 1 가상 데스크탑 인스턴스를 식별하는 단계 - 상기 제 1 가상 데스크탑 인스턴스는 호스트 컴퓨터 시스템과 연관되고, 상기 호스트 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함하며, 상기 메모리는 명령어를 포함하고, 상기 명령어는 실행시 상기 호스트 컴퓨터 시스템으로 하여금, 
네트워크를 통해 상기 제 1 가상 데스크탑 인스턴스에 제 1 데스크탑 스토어를 부착하는 단계 - 상기 제 1 데스크탑 스토어는 사용자 콘텐트를 포함하는 하나 이상의 폴더 및 사용자에 대한 데스크탑 프로파일을 포함함 - 와, 
상기 사용자에 대한 데스크탑 프로파일에 따라 맞춤화된, 그리고, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 사용자 콘텐트에 대한 변경을 저장하도록 구성되는, 제 1 가상 데스크탑 인스턴스에 대한 액세스를 상기 클라이언트에 제공하는 단계와, 
상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경을 기록하는 단계를 수행하게 하는, 비일시적 물리적 컴퓨터 스토리지.
16. 제 15 항에 있어서, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더 내 사용자 콘텐트가 제 2 데스크탑 스토어로 복제되는, 비일시적 물리적 컴퓨터 스토리지. 
17. 제 16 항에 있어서, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경이, 상기 제 2 데스크탑 스토어에 복제되는, 비일시적 물리적 컴퓨터 스토리지. 
18. 제 15 항에 있어서, 상기 제 1 데스크탑 스토어의 스냅샷(snapshot)은 저장 서버에 주기적으로 저장되는, 비일시적 물리적 컴퓨터 스토리지. 
19. 제 15 항에 있어서, 상기 컴퓨터-실행가능 명령어는 실행될 때, 컴퓨팅 시스템으로 하여금,
상기 제 1 가상 데스크탑 인스턴스에 관련된 중단(interruption)을 결정하는 단계와,
상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 클라이언트에 제공하는 단계를 또한 수행하게 하는, 비일시적 물리적 컴퓨터 스토리지. 
20. 제 19 항에 있어서, 상기 컴퓨터-실행가능 명령어는 실행될 때, 컴퓨팅 시스템으로 하여금, 상기 제 1 가상 데스크탑 인스턴스로부터 상기 제 1 데스크탑 스토어를 분리시키도록 또한 지시하는, 비일시적 물리적 컴퓨터 스토리지.
예시적 실시예들이 개시 및 논의되었으나, 당 업자는 본 발명의 사상 및 범위 내에서 추가적인 또는 대안의 실시예들이 구현될 수 있음을 이해할 것이다. 예를 들어, 여기서 설명되는 기술은 본 발명의 범위로부터 벗어나지 않으면서, 이미지 또는 비디오 편집 소프트웨어, 데이터베이스 소프트웨어, 사무 관리 소프트웨어, 3d 설계 소프트웨어, 오디오 및 사운드 처리 애플리케이션, 등을 포함한, 그러나 이에 제한되지 않는, 다른 임의의 개수의 소프트웨어 애플리케이션 및 프로세스에서 원격 프로세싱 관리를 실현하도록 이용될 수 있다. 추가적으로, 많은 실시예들이 예시적인 것으로 표시되었으나, 당 업자는 예시적 실시예들이 함께 조합되거나 구현될 필요가 없음을 이해할 것이다. 이와 같이, 일부 예시적 실시예들은 본 발명의 변화 범위에 따라 사용 또는 구현될 필요가 없다. 
다른 것들 중에서도 "할 수 있는", "할 수 있었던", "가능했던", 또는 "가능한"과 같은 조건부 표현은, 달리 구체적으로 명시되지 않을 경우, 또는 사용되는 범주 내에서 달리 이해되지 않을 경우, 소정의 실시예들이 이러한 특징, 요소, 및/또는 단계들을 포함한다는 의미로, 그리고 다른 실시예들은 이를 포함하지 않는다는 의미로 해석된다. 따라서, 이러한 조건부 용어는 특징, 요소, 및/또는 단계들이 어떤 방식으로도 하나 이상의 실시예에 대해 요구된다는 것을 의미하는 것이 아니고, 또는, 하나 이상의 실시예가, 사용자 입력 또는 프람프트 유무에 관계없이, 이러한 특징, 요소, 및/또는 단계들이 어떤 특정 실시예에 포함되거나 수행될 것인지 여부를 결정하기 위한 로직을 반드시 포함한다는 것을 의미하는 것도 아니다.
여기서 설명되는, 및/또는 첨부 도면에서 묘사되는, 흐름도 내 임의의 프로세스 설명, 요소, 또는 블록은, 프로세스 내 구체적 로직 함수 또는 단계들을 구현하기 위한 하나 이상의 실행가능 명령어를 포함하는 모듈, 세그먼트, 또는 코드 부분을 잠재적으로 나타내는 것으로 이해되어야 한다. 대안의 구현예들이 여기서 설명되는 실시예의 범위 내에 포함되어, 당 업자에게 이해되는 바와 같이, 수반되는 기능에 따라, 실질적으로 동시에, 또는 역순을 포함하여, 요소 또는 기능들이 도시 또는 논의되는 순서와는 달리 실행될 수 있으며, 삭제될 수 있다. 앞서 설명한 데이터 및/또는 구성요소들이 컴퓨터-판독가능 매체 상에 저장될 수 있고, 컴퓨터 판독가능 매체와 연관된 구동 메커니즘을 이용하여 컴퓨팅 디바이스의 메모리에 로딩될 수 있으며, CD-ROM, DVD-ROM과 같은 임의의 개수의 컴퓨터 실행가능 구성요소에 저장될 수 있고, 또는 네트워크 인터페이스를 통해 제공 또는 획득될 수 있으며, 더욱이, 구성요소 및/또는 데이터가 단일 디바이스에 포함될 수 있고, 또는, 다른 임의의 방식으로 분산될 수 있다. 따라서, 범용 컴퓨팅 디바이스는 앞서 설명된 다양한 데이터 및/또는 구성요소들의 프로세싱 및/또는 실행과 함께 본 발명의 프로세스, 알고리즘, 및 방법을 구현하도록 구성될 수 있다. 
많은 변형예 및 변화가 위 설명한 실시예에 대해 이루어질 수 있고, 그 요소들은 다른 수용가능한 예들 중에 있는 것으로 이해되어야 한다. 모든 이러한 변화 및 변형예는 다음의 청구범위에 의해 보호되는, 본 발명의 범위 내에서 여기에 포함된다. 

Claims (15)

  1. 컴퓨터에 의해 구현되는 방법에 있어서, 
    가상 데스크탑 인스턴스에 대한 컴퓨팅 디바이스로부터의 요청을 수신하는 단계 - 상기 요청은 상기 컴퓨팅 디바이스의 사용자를 식별하며, 상기 컴퓨팅 디바이스는 로컬 데이터 스토어를 포함함 - 와,
    상기 요청에 대응하는 제 1 가상 데스크탑 인스턴스를 식별하는 단계와,
    네트워크를 통해 상기 제 1 가상 데스크탑 인스턴스에 제 1 데스크탑 스토어를 부착하는 단계 - 상기 제 1 데스크탑 스토어는 사용자 콘텐트를 포함하는 하나 이상의 폴더 및 사용자에 대한 데스크탑 프로파일을 포함하며, 상기 제 1 데스크탑 스토어는 상기 로컬 데이터 스토어와는 상이함 - 와, 
    상기 사용자에 대한 데스크탑 프로파일에 따라 맞춤화된, 그리고, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 사용자 콘텐트에 대한 변경을 저장하도록 구성되는, 제 1 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계와, 
    상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경을 기록하는 단계와,
    상기 제 1 데스크탑 스토어를 제 2 데스크탑 스토어에 복제하는 단계 - 상기 제 2 데스크탑 스토어는 상기 제 1 데스크탑 스토어 및 상기 로컬 데이터 스토어와는 상이함 - 와,
    상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 상기 사용자 콘텐트에 대한 변경을 상기 제 2 데스크탑 스토어에 저장된 사용자 콘텐트에 기록하는 단계와,
    상기 제 1 데스크탑 스토어에 관련된 이벤트에 응답하여, 상기 네트워크를 통해 상기 제 2 데스크탑 스토어를 상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스 및 상기 제 1 가상 데스크탑 인스턴스 중 적어도 하나에 부착하는 단계 - 상기 이벤트는 상기 제 1 데스크탑 스토어의 장애를 나타내며, 상기 제 1 가상 데스크탑 인스턴스는 상기 제 2 데스크탑 스토어가 부착되는 동안 유지됨 - 를 포함하는, 컴퓨터에 의해 구현되는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
    상기 제 1 데스크탑 스토어에 관련된 상기 이벤트에 응답하여, 상기 요청에 대응하는 상기 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
    상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와,
    상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
    상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제 1 데스크탑 스토어에 관련된 상기 이벤트를 결정하는 단계와,
    상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와, 
    상기 제 1 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  6. 제 5 항에 있어서,
    상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
    상기 제 1 가상 데스크탑 인스턴스에 관련된 상기 이벤트에 응답하여, 상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
    상기 제 1 가상 데스크탑 인스턴스로부터 상기 제 2 데스크탑 스토어를 분리시키는 단계와,
    상기 제 2 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계와, 
    상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
  7. 제 1 항에 있어서,
    상기 제 1 가상 데스크탑 인스턴스에 관련된 이벤트를 결정하는 단계와,
    상기 요청에 대응하는 상기 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
    상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와,
    상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
    상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 컴퓨팅 디바이스에 제공하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
  8. 제 7 항에 있어서,
    상기 제 1 데스크탑 스토어에 관련된 상기 이벤트를 결정하는 단계와,
    상기 제 2 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계와, 
    상기 제 2 가상 데스크탑 인스턴스에 상기 제 2 데스크탑 스토어를 부착하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법. 
  9. 제 1 항에 있어서,
    상기 제 1 데스크탑 스토어의 스냅샷(snapshot)은 저장 서버에 주기적으로 저장되는, 컴퓨터에 의해 구현되는 방법. 
  10. 프로세서 및 메모리를 가진 하나 이상의 컴퓨터를 포함하는 시스템에 있어서, 상기 프로세서에 의한 컴퓨터-실행가능 명령어의 실행은 하나 이상의 컴퓨터로 하여금, 
    가상 데스크탑 인스턴스에 대한 클라이언트로부터의 요청을 수신하는 단계 - 상기 요청은 상기 클라이언트의 사용자를 식별함 - 와, 
    상기 요청에 대응하는 제 1 가상 데스크탑 인스턴스를 식별하는 단계 - 상기 제 1 가상 데스크탑 인스턴스는 네트워크를 통해 상기 제 1 가상 데스크탑 인스턴스에 제 1 데스크탑 스토어를 부착하고, 상기 제 1 데스크탑 스토어는 사용자 콘텐트를 포함하는 하나 이상의 폴더 및 사용자에 대한 데스크탑 프로파일을 포함하며, 상기 제 1 데스크탑 스토어는 상기 클라이언트의 데이터 스토어와는 상이함 - 와,
    상기 사용자에 대한 데스크탑 프로파일에 따라 맞춤화된, 그리고, 상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 사용자 콘텐트에 대한 변경을 저장하도록 구성되는, 제 1 가상 데스크탑 인스턴스에 대한 액세스를 상기 클라이언트에 제공하는 단계와, 
    상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경을 기록하는 단계와,
    상기 제 1 데스크탑 스토어를 제 2 데스크탑 스토어에 복제하는 단계 - 상기 제 2 데스크탑 스토어는 상기 제 1 데스크탑 스토어 및 상기 클라이언트의 상기 데이터 스토어와는 상이함 - 와,
    상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 상기 사용자 콘텐트에 대한 변경을 상기 제 2 데스크탑 스토어에 저장된 사용자 콘텐트에 기록하는 단계와,
    상기 제 1 데스크탑 스토어에 관련된 중단(interruption)에 응답하여, 상기 제 1 데스크탑 스토어를 제 1 가상 데스크탑 인스턴스로부터 분리하고 상기 네트워크를 통해 상기 제 2 데스크탑 스토어를 상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스 및 상기 제 1 가상 데스크탑 인스턴스 중 적어도 하나에 부착하는 단계 - 상기 중단은 상기 제 1 데스크탑 스토어의 장애를 나타내며, 상기 제 1 가상 데스크탑 인스턴스는 상기 제 2 데스크탑 스토어가 부착되는 동안 유지됨 - 를 수행하게 하는, 시스템.
  11. 제 10 항에 있어서,
    상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더 내 사용자 콘텐트가 제 2 데스크탑 스토어로 복제되는, 시스템. 
  12. 제 11 항에 있어서,
    상기 제 1 데스크탑 스토어에 저장된 하나 이상의 폴더에 상기 제 1 가상 데스크탑 인스턴스에 의해 이루어진 사용자 콘텐트에 대한 변경이, 상기 제 2 데스크탑 스토어에 복제되는, 시스템.
  13. 제 10 항에 있어서,
    상기 제 1 데스크탑 스토어의 스냅샷(snapshot)은 저장 서버에 주기적으로 저장되는, 시스템. 
  14. 제 10 항에 있어서,
    상기 컴퓨터-실행가능 명령어는 상기 하나 이상의 컴퓨터로 하여금,
    상기 제 1 가상 데스크탑 인스턴스에 관련된 중단(interruption)을 결정하는 단계와,
    상기 요청에 대응하는 제 2 가상 데스크탑 인스턴스를 식별하는 단계와,
    상기 제 2 가상 데스크탑 인스턴스에 상기 제 1 데스크탑 스토어를 부착하는 단계와, 
    상기 제 2 가상 데스크탑 인스턴스에 대한 액세스를 상기 클라이언트에 제공하는 단계를 또한 수행하게 하는, 시스템.
  15. 제 14 항에 있어서,
    상기 컴퓨터-실행가능 명령어의 실행은 상기 하나 이상의 컴퓨터로 하여금,
    상기 제 1 가상 데스크탑 인스턴스로부터 제 1 데스크탑 스토어를 분리시키는 단계를 또한 수행하게 하는, 시스템. 
KR1020167001701A 2013-06-26 2014-06-25 컴퓨팅 세션 관리 KR101828338B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/928,283 US20150019728A1 (en) 2013-06-26 2013-06-26 Management of computing sessions
US13/928,283 2013-06-26
PCT/US2014/044131 WO2014210181A1 (en) 2013-06-26 2014-06-25 Management of computing sessions

Publications (2)

Publication Number Publication Date
KR20160045677A KR20160045677A (ko) 2016-04-27
KR101828338B1 true KR101828338B1 (ko) 2018-03-22

Family

ID=52142654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167001701A KR101828338B1 (ko) 2013-06-26 2014-06-25 컴퓨팅 세션 관리

Country Status (9)

Country Link
US (1) US20150019728A1 (ko)
EP (1) EP3014431B1 (ko)
JP (1) JP6182265B2 (ko)
KR (1) KR101828338B1 (ko)
CN (1) CN105637481B (ko)
AU (3) AU2014302480A1 (ko)
CA (1) CA2916386C (ko)
SG (1) SG11201510429TA (ko)
WO (1) WO2014210181A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
US10491568B1 (en) * 2014-05-21 2019-11-26 Amazon Technologies, Inc. Management of encrypted data storage
US20160306531A1 (en) * 2015-04-16 2016-10-20 Microsoft Technology Licensing, Llc Dynamic Launch Behavior Based on Context Information
US10268493B2 (en) 2015-09-22 2019-04-23 Amazon Technologies, Inc. Connection-based resource management for virtual desktop instances
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10063666B2 (en) 2016-06-14 2018-08-28 Futurewei Technologies, Inc. Modular telecommunication edge cloud system
KR102568985B1 (ko) * 2016-06-22 2023-08-23 한국전자통신연구원 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법
US20180041578A1 (en) * 2016-08-08 2018-02-08 Futurewei Technologies, Inc. Inter-Telecommunications Edge Cloud Protocols
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
KR102314221B1 (ko) * 2019-02-28 2021-10-15 에스케이브로드밴드주식회사 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법
US11943305B2 (en) 2022-07-20 2024-03-26 Bentley Systems, Incorporated Workspace databases

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
US20110231844A1 (en) 2008-01-31 2011-09-22 Israel Zvi Ben-Shaul Desktop delivery for a distributed enterprise
WO2012020482A1 (ja) 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム
US20130073703A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Managing User State of Cloud Desktops

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
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
US20120066679A1 (en) * 2010-09-13 2012-03-15 Startforce, Inc. Disposable virtual desktop for transient use by multiple users
CN103001989A (zh) * 2011-09-16 2013-03-27 中兴通讯股份有限公司 参数接收方法及系统
US20130219043A1 (en) * 2012-02-20 2013-08-22 Moritz M. Steiner Method and apparatus for automatic migration of application service
US9110604B2 (en) * 2012-09-28 2015-08-18 Emc Corporation System and method for full virtual machine backup using storage system functionality
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110231844A1 (en) 2008-01-31 2011-09-22 Israel Zvi Ben-Shaul Desktop delivery for a distributed enterprise
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
WO2012020482A1 (ja) 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム
US20130073703A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Managing User State of Cloud Desktops

Also Published As

Publication number Publication date
SG11201510429TA (en) 2016-01-28
US20150019728A1 (en) 2015-01-15
EP3014431A1 (en) 2016-05-04
JP2016525244A (ja) 2016-08-22
AU2019268151A1 (en) 2019-12-12
WO2014210181A1 (en) 2014-12-31
AU2014302480A1 (en) 2016-01-21
JP6182265B2 (ja) 2017-08-16
EP3014431B1 (en) 2022-04-20
CN105637481A (zh) 2016-06-01
AU2017232147A1 (en) 2017-10-12
CN105637481B (zh) 2019-12-03
CA2916386C (en) 2017-10-17
CA2916386A1 (en) 2014-12-31
EP3014431A4 (en) 2017-03-08
KR20160045677A (ko) 2016-04-27

Similar Documents

Publication Publication Date Title
KR101828338B1 (ko) 컴퓨팅 세션 관리
JP6630792B2 (ja) コンピューティングセッションの管理
EP3014433B1 (en) Management of computing sessions
US20150006614A1 (en) Management of computing sessions
EP3014432B1 (en) Management of computing sessions
US10686646B1 (en) Management of computing sessions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant