KR20160048763A - 컴퓨팅 세션의 관리 - Google Patents

컴퓨팅 세션의 관리 Download PDF

Info

Publication number
KR20160048763A
KR20160048763A KR1020167001703A KR20167001703A KR20160048763A KR 20160048763 A KR20160048763 A KR 20160048763A KR 1020167001703 A KR1020167001703 A KR 1020167001703A KR 20167001703 A KR20167001703 A KR 20167001703A KR 20160048763 A KR20160048763 A KR 20160048763A
Authority
KR
South Korea
Prior art keywords
user
instance
virtual desktop
computing device
computer
Prior art date
Application number
KR1020167001703A
Other languages
English (en)
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 KR20160048763A publication Critical patent/KR20160048763A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • 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
    • G06F9/4445
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

원격 컴퓨팅 세션 관리 프로세스가 프로그램 실행 서비스(PES) 플랫폼에서 데이터 센터 컴퓨터 상에서 실행되는 가상 인스턴스의 실행 및 관리 양태와 관련된다. PES 플랫폼과 통신 네트워크를 통해 상기 PES 플랫폼으로 연결된 컴퓨팅 디바이스 사이에 컴퓨팅 세션이 확립될 수 있다. 가상 인스턴스와 상호대화하는 클라이언트 컴퓨팅 디바이스의 사용자에 의해 생성된 데이터가 저장될 수 있고, 원격 컴퓨팅 세션의 단절 후, 원격 컴퓨팅 세션을 재확립할 때 데이터가 사용될 수 있다.

Description

컴퓨팅 세션의 관리{MANAGEMENT OF COMPUTING SESSIONS}
원격 네트워크 컴퓨팅 제공자의 데이터 센터(data center)가 고객들에게 컴퓨팅 자원을 제공하기 위해 상당한 수의 상호연결된 컴퓨팅 시스템을 하우징할 수 있다. 이러한 데이터 센터는 상기 데이터 센터, 조직, 또는 또 다른 제3자에 의해 유지관리되는 하드웨어에 대해 네트워크 액세스, 전력, 하드웨어 자원(가령, 컴퓨팅 및 스토리지), 및 보안 설비 시설을 제공할 수 있다.
데이터 센터 자원의 증가된 활용을 촉진시키기 위해, 가상화 기술에 의해 단일 물리적 컴퓨팅 머신이 연결된 컴퓨터 사용자에게 독립적인 컴퓨터 머신으로서 나타나고 동작하는 가상 머신의 하나 이상의 인스턴스를 호스팅할 수 있다. 가상화를 이용해, 단일 물리적 컴퓨팅 디바이스가 동적 방식으로 가상 머신을 생성, 유지관리 또는 삭제할 수 있다. 그 후, 사용자는 데이터 센터로부터 컴퓨터 자원을 요청하고 "필요에 따라" 또는 적어도 "요청된 대로" 다양한 수의 가상 머신 자원을 제공 받을 수 있다.
가상 머신 자원을 자신들의 사용자에게 제공하는 원격 네트워크 컴퓨팅 제공자는 최적 수준의 이용 가능성, 확장성 및 신뢰성을 갖는 이러한 자원을 제공하려 노력하는 것이 일반적이다.
본 발명의 상기 양태 및 수반되는 이점 중 다수가, 첨부된 도면과 함께 취해질 때 다음의 상세한 설명을 참조하여 더 잘 이해됨에 따라 더 쉽게 인지될 것이다.
도 1은 클라이언트 컴퓨팅 디바이스 및 서비스 제공자 컴퓨터 네트워크를 포함하는 네트워킹된 컴퓨팅 환경을 나타내는 블록도이다.
도 2는 이벤트 후의 가상 데스크톱 인스턴스 및 가상 데스크톱 인스턴스들 간 사용자 데이터의 영속 저장의 관리를 나타내는 도 1의 네트워킹된 컴퓨팅 환경의 블록도이다.
도 3은 클라이언트 컴퓨팅 디바이스와 연관된 이벤트로부터 복원하기 위한, 서버 제공자 컴퓨터 네트워크와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션의 사용을 나타내는 도 1의 네트워킹된 컴퓨팅 환경의 블록도이다.
도 4는 서로 다른 사용자 프로파일에 따르는 다양한 가상 데스크톱 인스턴스를 수용하는 서비스 제공자 컴퓨터 네트워크를 나타내는 도 1의 네트워킹된 컴퓨팅 환경의 블록도이다.
도 5는 가상 데스크톱 인스턴스 요건의 변경을 수용하는 서비스 제공자 컴퓨터 네트워크를 도시하는 도 1의 네트워킹된 컴퓨팅 환경의 블록도이다.
도 6은 동작이 원격 네트워킹된 환경에서 로컬 네트워킹된 환경으로 전환될 때 클라이언트 컴퓨팅 디바이스 및 서비스 제공자 컴퓨터 네트워크를 포함하는 도 1의 네트워킹된 컴퓨팅 환경을 나타내는 블록도이다.
도 7은 이벤트 후의 가상 데스크톱 인스턴스의 관리 및 가상 데스크톱 인스턴스들 간 사용자 데이터의 영속 저장을 위한 루틴을 나타내는 흐름도이다.
도 8은 클라이언트 컴퓨팅 디바이스와 연관된 이벤트로부터 복원되기 위한 서비스 제공자 컴퓨터 네트워크와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션의 사용을 위한 루틴을 도시하는 흐름도이다.
도 9는 서로 다른 사용자 프로파일에 따라 결정되는 다양한 가상 데스크톱 인스턴스 요건의 수용을 위한 루틴을 나타내는 흐름도이다.
도 10은 가상 데스크톱 인스턴스 요건의 변경을 수용하기 위한 루틴을 나타내는 흐름도이다.
도 11은 원격 환경과 로컬 환경 간 클라이언트 컴퓨팅 디바이스 및 서비스 제공자 컴퓨터 네트워크의 동작의 전환을 위한 루틴을 나타내는 흐름도이다.
일반적으로 말하자면, 본 발명은 하나 이상의 클라이언트 컴퓨팅 디바이스와 프로그램 실행 서비스(Program Execution Service)(PES) 플랫폼의 하나 이상의 원격 데이터 센터 컴퓨터에 의해 호스팅되는 가상 데스크톱 인스턴스 간 원격 컴퓨팅 세션의 생성 및 관리와 관련된다. 복수의 데이터 센터가 PES의 고객에 의한 데이터 센터의 자원의 활용을 촉진할 수 있는 단일 PES 플랫폼의 일부로서 조직될 수 있다. 일부 실시예에서, 상기 PES는 수백 또는 수천 개의 데이터 센터 컴퓨터를 포함할 수 있다.
본 발명의 양태가 PES 플랫폼에 의한 가상 데스크톱 인스턴스의 관리와 관련하여 기재될 것이다. 클라이언트 컴퓨팅 디바이스가 하나 이상의 원격 컴퓨팅 세션 동안 상기 가상 데스크톱 인스턴스를 액세스할 수 있다. 가상 데스크톱 인스턴스는 사용자에게 클라이언트에 의해 액세스되는 서비스의 중앙집중된 프로비저닝을 제외하고 클라이언트 데스크톱 환경의 모든 능력을 제공할 수 있다.
제1 예시를 참조하면, 사용자가, 클라이언트 컴퓨팅 디바이스를 통해, 애플리케이션, 가령, 원격 컴퓨팅 애플리케이션을 로딩하기 위한 요청을 송신한다. 상기 요청의 수신에 이어, 상기 클라이언트 컴퓨팅 디바이스는 PES 플랫폼과 원격 컴퓨팅 세션을 시작하기 위해 통신한다. 하나의 실시예에서, 상기 클라이언트 컴퓨팅 디바이스와 PES 플랫폼 간 통신은 로그인 정보(login information)를 포함할 수 있다. 또 다른 실시예에서, 통신은 클라이언트 컴퓨팅 디바이스의 사용자에 대한 자원 사용성 정보, 프로세싱 요건, 또는 원격 컴퓨팅 세션의 지속시간 또는 상태에 대한 규칙을 식별하는 정보를 더 포함할 수 있다. 상기 클라이언트 컴퓨팅 디바이스는 디바이스 상태와 관련된 다양한 정보, 비제한적 예를 들면, 디바이스 자원(가령, 프로세싱 파워, 메모리, 스토리지, 네트워크 사용성 등)의 현재 또는 미래 이용 가능성을 더 통신할 수 있다. 수신된 정보를 이용하여, PES 플랫폼은 하나 이상의 원격 컴퓨팅 세션에서의 실행을 위한 하나 이상의 가상 데스크톱 인스턴스를 식별할 수 있다. 하나의 예를 들면, PES 플랫폼은 데이터 센터 컴퓨터 상의 가상 머신 인스턴스를 인스턴스화하거나 인스턴스화되게 할 수 있다. 상기 가상 머신 인스턴스는 운영 체제를 포함한다. 그 후 클라이언트 컴퓨팅 디바이스는 가상 머신과 원격 컴퓨팅 세션을 확립하고, 운영 체제의 사용자 인터페이스(가령, 운영 체제의 출력, 가령, 그래픽 사용자 인터페이스, 사운드 등)가 클라이언트 컴퓨팅 디바이스로 전송될 수 있고 사용자에게 표시될 수 있다(가령, 그래픽 사용자 인터페이스가 클라이언트 컴퓨팅 디바이스의 디스플레이 상에 렌더링된다). 운영 체제는 사용자와 연관되고 PES에 의해 액세스 가능한 데스크톱 저장소에 저장되는 데스크톱 프로파일을 이용하여, 데스크톱 배경, 스크린 세이버, 데스크톱 레이아웃, 포인터 선호, 사운드 설정 등을 설정함으로써 사용자를 위한 가상 데스크톱 인스턴스를 구성할 수 있다. 그 후 사용자 입력, 가령, 마우스 및 키보드 활동이 가상 머신으로 전송될 수 있고, 상기 활동이 가상 머신에서 사용자에 의해 직접 수행된 것처럼, 운영 체제로 투입될 수 있다.
PES 플랫폼은 원격 컴퓨팅 세션 동안 클라이언트 컴퓨팅 디바이스 상의 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스의 상호대화(interaction)와 연관된 데이터를 수신 또는 생성할 수 있다. 상기 데이터는 사용자 데이터 및 선호, 파일 등을 포함할 수 있다. 상기 데이터를 수신하면, 상기 PES 플랫폼은 가상 데스크톱 인스턴스와 연관된 데스크톱 저장소에 데이터를 저장할 수 있다. 일부 실시예에서, 상기 데스크톱 저장소는 볼륨, 또는 또 다른 논리적 블록 저장 디바이스 상에 구현될 수 있다. 일부 실시예에서, 상기 PES는 데이터의 백업 복사본을 생성하거나 데이터를 중앙 레포지토리(central repository)에 저장할 수 있다. 그 후 저장된 데이터가 사용되어 장애, 가령, 가상 데스크톱 인스턴스, 가상 데스크톱 인스턴스를 호스팅하는 서버, 네트워크 등의 장애로 인해 단절(interrupt)된 원격 컴퓨팅 세션을 복원할 수 있다. 사용자 데이터를 저장함으로써, PES 플랫폼은 원격 컴퓨팅 세션의 재확립이 클라이언트 컴퓨팅 디바이스의 최소의 딜레이 및 사용자 경험의 단절만으로 이뤄짐을 보장한다.
또 다른 예시에서, 제공되는 가상 데스크톱 인스턴스는 PES의 사용자 프로파일 저장소에 저장된 사용자 프로파일에 따라 구성될 수 있다. 또한 가상 데스크톱 인스턴스의 구성이 인스턴스의 모니터링된 사용성에 따라 조절될 수 있다. 일부 예시에서, 사용자 프로파일은 사용자의 이용을 통제하는 개체와 연관된 관리자(administrator)에 의해 설정될 수 있다. 사용자 프로파일은 하나 이상의 가상 데스크톱 인스턴스를 실행하는 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)은 서비스 제공자와 연관된 하나 이상의 데이터 센터들의 논리적 연관에 대응한다. 상기 PES 플랫폼(102)은 복수의 데이터 센터 컴퓨터, 가령, 데이터 센터 컴퓨터(110)와 연관될 수 있다. 각각의 데이터 센터 컴퓨터(110)는 하나 이상의 가상 데스크톱 인스턴스(114)를 호스팅할 수 있다. 상기 데이터 센터 컴퓨터(110)는 물리적 디바이스 상에 가상 머신을 실행시킴으로써 가상 데스크톱 인스턴스를 호스팅할 수 있다. 상기 가상 머신은 운영 체제 및 애플리케이션 소프트웨어의 인스턴스를 실행시켜, 가상 데스크톱 인스턴스를 생성할 수 있다. 상기 PES(102)에 의해 실행되는 각각의 가상 데스크톱 인스턴스는 하나 이상의 클라이언트 컴퓨팅 디바이스에 의해 액세스될 수 있다.
예를 들어, 데이터 센터 컴퓨터는 서비스 제공자 컴퓨터 네트워크(105) 내에서 사설 네트워크 주소(private network address), 가령, IP 주소와 연관되어, 클라이언트 컴퓨팅 디바이스(106)에 의해 직접 액세스 가능하지 않을 수 있다. 가상 데스크톱 인스턴스는 서비스 제공자 컴퓨터 네트워크(105)의 경계(edge)의 게이트웨이에 의해 이용 가능할 수 있는 공개 네트워크 주소(public network address)와 연관될 수 있다. 따라서 가상 데스크톱 인스턴스는 공개 네트워크 주소를 통해 클라이언트 컴퓨팅 디바이스에 의해 직접 주소 지정될 수 있다. 해당 분야의 통상의 기술자라면, 각각의 데이터 센터 컴퓨터(110)가 복수의 가상 데스크톱 인스턴스를 실행하도록 또는 가상 데스크톱 인스턴스를 동적으로 인스턴스화하도록 물리적 컴퓨팅 디바이스 자원 및 소프트웨어를 포함할 것을 알 것이다. 이러한 인스턴스화는 특정 요청, 가령, 클라이언트 컴퓨팅 디바이스(106)로부터의 요청을 기초로 할 수 있다.
데이터 센터 컴퓨터(110)는 인스턴스 관리자(instance manager)(122)를 포함할 수 있다. 상기 인스턴스 관리자(122)는 동일 컴퓨터 상에서 각자의 인스턴스(114)로서 또는 개별 컴퓨터 상에 위치할 수 있다. 상기 인스턴스 관리자(122)는 데이터 센터 컴퓨터(110) 상에서 실행되는 인스턴스의 진행(progress)을 추적하고, 클라이언트 컴퓨팅 디바이스를 통해 인스턴스(114)와 상호대화하는 동안 사용자에 의해 생성된 데이터의 저장을 모니터링 및 조화시키며, 데이터 센터 컴퓨터(110) 및 클라이언트 컴퓨팅 디바이스(106) 상에서 실행 중인 원격 컴퓨팅 애플리케이션의 전체 건강 및 상태를 모니터링한다. 상기 인스턴스 관리자(122)는 추적 및 모니터링을 통해 수집된 정보를 PES 플랫폼(102)의 데이터 센터 관리 구성요소(101)와 통신하여, 데이터 센터 컴퓨터(110)와 클라이언트 컴퓨팅 디바이스(106) 간 다양한 원격 컴퓨팅 세션을 효율적으로 관리할 수 있다.
도 1을 계속 참조하면, 서비스 제공자 네트워크(105)가 또한 저장 서비스 플랫폼(103)을 포함한다. 상기 저장 서비스 플랫폼(103)은 하나 이상의 저장 서버(107)를 포함하거나 상기 하나 이상의 저장 서버로 연결될 수 있다. 상기 저장 서버(107)는 가상 데스크톱 인스턴스에 의해 생성되거나 이용되는 데이터를 저장하도록 사용될 수 있다. 상기 가상 데스크톱 인스턴스에 의해 생성되거나 이용되는 데이터는 하나 이상의 원격 컴퓨팅 세션을 통한 클라이언트 컴퓨팅 디바이스(106)와 PES(102) 간 상호대화를 기초로 할 수 있다.
예를 들어, 저장 서비스 플랫폼(103)은 데스크톱 저장소에, 호스팅되는 가상 데스크톱 인스턴스(114)와 연관된 정보를 논리적으로 조직하고 유지관리할 수 있다. 데스크톱 저장소에 유지관리되는 가상 데스크톱 인스턴스(114)와 연관된 정보는, 비제한적으로, 사용자 선호, 프로그램 데이터의 실행과 연관된 정보, 사용자 콘텐츠, 사용자 콘텐츠로의 참조 등을 포함할 수 있다. 예를 들어, 저장 서비스 제공자를 통해 다른 저장 디바이스 상에 음악, 파일 등을 저장하기 위해 사용자에 의해 사용되는 폴더가 또한 이들 저장 위치로의 참조를 통해 데스크톱 저장소에 사상될 수 있다. 다시 말하면, 입/출력 동작, 가령, 이들 폴더 내 파일을 열기 위한 요청이 데스크톱 저장소로 리다이렉트(redirect)될 수 있다. 따라서 사용자가 자신의 문서 폴더에 저장된 파일을 열려 시도할 때, 요청이 가상 데스크톱 인스턴스에서 실행 중인 운영 체제에 의해 데스크톱 저장소로 리다이렉트될 수 있다. 사용자에 의해 만들어지는 데이터에 추가로, 가령, 데스크톱에 대한 설정 정보, 가령, 배경 화면, 폰트, 아이콘 배열 등을 포함할 수 있는 사용자의 데스크톱 프로파일이 또한 사용자의 가상 데스크톱 인스턴스와 연관된 데스크톱 저장소 상에 저장된다. 이하에서 더 상세히 설명되겠지만, 서비스 제공자 컴퓨터 네트워크(105)는 데이터 센터 컴퓨터들로부터 독립적인 저장 서버에 저장함으로써, 가상 데스크톱 인스턴스를 실행하는 데이터 센터 컴퓨터(들)(110)의 장애 또는 데이터 센터 컴퓨터(들) 상에서의 가상 인스턴스의 실행과 연관된 에러의 영향을 완화시킬 수 있다. 덧붙여, 서비스 제공자 네트워크(105)가 또한 데스크톱 저장소에 정보를 유지관리함으로써 복수의 가상 인스턴스와 클라이언트 상호대화를 촉진시킬 수 있다. 일부 실시예에서, 이하에서 더 상세히 기재되는 바와 같이, 하나의 가상 데스크톱 인스턴스에서 장애가 발생한 경우, 새로운 인스턴스가 런칭될 수 있고, 장애가 발생된 가상 데스크톱 인스턴스가 이전에 연결된 것과 동일한 데스크톱 저장소에 연결(attach)될 수 있다.
논리적으로, 데스크톱 저장소는 복수의 서버에 분산될 수 있고, 성능 목적으로 서로 다른 네트워크 영역 내 서버 상에 복제되거나, 백업 또는 장애 성능 목적으로 독립적인 장애 프로파일을 갖는 복수의 서버에 걸쳐 복제될 수 있다. 즉, 서버는 서로 다른 전원 또는 냉각 시스템에 연결될 수 있고, 서버는 하나의 데이터센터 내 서로 다른 방 내에 위치하거나 서로 다른 데이터센터 내에 위치할 수 있으며, 및/또는 서버는 서로 다른 라우터 또는 네트워크 스위치에 연결될 수 있다. 예를 들어, 일부 실시예에서, 데스크톱 저장소가 하나의 저장 서버 상에 있을 수 있고, 상기 데스크톱 저장소에 이뤄진 변화가 상이한 저장 서버 상의 또 다른 데스크톱 저장소에 복제될 수 있다. 이 복제는 사용자의 데이터의 백업 복사본을 만든다. 데스크톱 저장소가 장애를 갖게 되거나 가상 데스크톱 인스턴스의 상기 데스크톱 저장소로의 연결이 끊긴 경우, 상기 PES(102)는 가상 데스크톱 인스턴스의 연결을 상기 데스크톱 저장소에서 백업 데스크톱 저장소로 전환한다.
PES 플랫폼(102)은 다양한 데스크톱 저장소 및 백업 저장소에 의해 저장된 데이터를 저장 서버(107) 상에 저장하기 위한 중앙 저장 디바이스, 가령, PES 레포지토리(140)를 더 포함한다. 데이터 센터 컴퓨터(110) 및 저장 서버(107)는 통신을 촉진하는 추가 소프트웨어 또는 하드웨어 구성요소, 비제한적 예를 들면, 요청된 애플리케이션을 지원하는 및/또는 요청 라우팅을 촉진하기 위해 DNS 네임 서버로 정보를 제공하는 가상 머신의 인스턴스를 선택하기 위한 로드 밸런싱 또는 로드 쉐어링 소프트웨어/하드웨어 구성요소를 더 포함할 수 있다.
서비스 제공자 컴퓨터 네트워크(105)는 또한 사용자 프로파일 저장소(108)를 포함할 수 있다. 상기 사용자 프로파일 저장소(108)는, 가령, 가상 데스크톱 인스턴스를 이용하는 동안 사용자에게 액세스 권한이 주어지는 다양한 프로그램을 저장하도록 사용될 수 있다. 또한 저장된 사용자 프로파일은 서로 다른 사용자의 원격 컴퓨팅 세션과 연관된 최대 시간 또는 비용을 가리킬 수 있다. PES 플랫폼(102)은 가상 데스크톱 인스턴스를 배치 및 구성할 때 사용자 프로파일을 고려할 수 있다. 상기 PES 플랫폼(102)은 또한 가상 데스크톱 이미지 저장소(109)를 포함하거나 여기에 연결될 수 있다. 가상 데스크톱 이미지 저장소(109)는 사용자 프로파일에 따라 커스텀화가 적용되지 않은 운영 체제의 템플릿 이미지를 포함할 수 있다.
예시적 실시예에서, 데이터 센터 컴퓨터(110) 및 저장 서버(107)는, 구성요소, 또는 구성요소의 일부분이 물리적으로 개별적인지에 무관하게, 논리적으로 그룹화되는 것이 고려된다. 예를 들어, 서비스 제공자 컴퓨터 네트워크(105)가 인스턴스 및 저장 구성요소를 제공하기 위한 개별 위치를 유지할 수 있다. 덧붙여, 도 1에 데이터 센터 컴퓨터(110)가 PES 플랫폼(102)과 논리적으로 연관된 것으로 도시되지만, 상기 데이터 센터 컴퓨터는 자신의 사용자의 다양한 인구통계특성을 최상으로 서비스하는 방식으로 지리적으로 분산되어 있을 것이다. 덧붙여, 관련 분야의 통상의 기술자라면 서비스 제공자 컴퓨터 네트워크(105)가 다양한 추가 컴퓨팅 자원, 콘텐츠 및 자원의 관리를 위한 이러한 추가 컴퓨팅 디바이스 등과 연관될 수 있음을 알 것이다.
도 2-7을 참조하면, 도 1의 네트워킹된 컴퓨팅 환경(100)의 다양한 구성요소들 간 상호대화가 도시될 것이다. 특히, 도 2-7은 서비스 제공자 네트워크(105)에 의한 가상 데스크톱 인스턴스의 실행 및 클라이언트 컴퓨팅 디바이스(106)로부터 가상 데스크톱 인스턴스로의 원격 액세스를 위한 네트워킹된 컴퓨팅 환경(100)의 다양한 구성요소들 간 상호대화를 도시한다. 그러나 예시 목적으로, 통신을 촉진시키기 위해 사용되는 구성요소들 중 다수가 나타나지 않도록 도시가 단순화되었다. 관련 분야의 통상의 기술자는 본 발명의 사상과 범위 내에서 이러한 구성요소가 사용될 수 있고 따라서 추가 상호대화가 발생할 것임을 알 것이다.
도 2를 참조하면, PES 플랫폼(102)으로 연결되는 데이터 센터 컴퓨터(110) 중 임의의 하나 상에서 가상 데스크톱 인스턴스(114)가 실행될 수 있다. 데이터 센터 컴퓨터(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)을 로딩하는 것은 저장 구성요소로부터 디바이스 메모리로 실행 코드(executable code)를 복사하는 것을 포함할 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 이어, 클라이언트 컴퓨팅 디바이스(106)는 새로운 원격 세션을 요청할 수 있고, 요청을 서비스 제공자 컴퓨터 네트워크(105)의 PES 플랫폼(102)으로 송신할 수 있다. 하나의 실시예에서, 원격 컴퓨팅 세션은 사용자에 의해 시작되어 사용자의 데스크톱을 원격으로 액세스할 수 있다. 또 다른 실시예에서, 클라이언트 컴퓨팅 디바이스(106) 관점에서, 애플리케이션 프로세스의 실행을 다루기 위해 원격 세션을 시작하는 것이 애플리케이션 프로세스가 로컬 디바이스 상에서 인스턴스화되고 실행되는 것처럼 나타날 수 있다.
요청의 수신에 이어, 단계(2)에서, PES 플랫폼(102)이 정보, 가령, 사용자 계정 식별자를 이용해 요청을 제출한 사용자에 대한 사용자 프로파일을 선택한다. 사용자 프로파일은 사용자 프로파일 저장소(108) 상에 저장될 수 있다(도 1 참조). 예시적 실시예에서, 사용자 프로파일은 사용자를 위한 가상 데스크톱 인스턴스를 만들기 위한 가상 데스크톱 인스턴스 템플릿 또는 이미지를 나타내는 정보를 포함하거나 정보와 연관될 수 있다. 예를 들어, 가상 데스크톱 인스턴스 템플릿 또는 이미지가 런칭할 운영 체제 또는 애플리케이션의 세트를 특정할 수 있다. 또한 사용자 프로파일은 사용자에 대해 가상 데스크톱 인스턴스로 제공되기 위한 프로세싱 유닛, 메모리, 스토리지, 대역폭 등의 개수를 가리키는 정보를 포함하거나 상기 정보와 연관될 수 있다. 이 정보는 키-값 쌍(key-value pair)으로 표현되거나 여러 다른 유형의 가상 데스크톱 인스턴스(가령, 스몰 인스턴스, 미디엄 인스턴스, 또는 라지 인스턴스)로 추상화될 수 있다. 따라서 사용자 프로파일이 가상 데스크톱 인스턴스 유형이 "라지(large)"와 동일함을 가리킬 수 있고, 여기서 라지는 이와 연관된 고정된 양의 자원을 가진다.
그 후 클라이언트 컴퓨팅 디바이스(106)에 의해 식별될 때 하나 이상의 애플리케이션 프로세스에 대응하도록 원격 세션이 시작될 수 있다. 예를 들어, 새로운 원격 세션을 시작하는 것은 가상 머신 또는 데이터 센터 컴퓨터 내 이미지로부터 할당된 디바이스 메모리, 스토리지 또는 캐시 공간, 프로세서 시간, 네트워크 대역폭, 또는 그 밖의 다른 연산 또는 네트워크 자원과 연관된 가상 데스크톱 인스턴스를 부팅하는 것을 포함할 수 있다. 상기 이미지는 가상 데스크톱 이미지 레포지토리, 가령, 가상 데스크톱 이미지 저장소(109)로부터 액세스될 수 있다(도 1에 도시됨).
PES 플랫폼(102)이 사용자 프로파일 저장소(108)(도 1)로부터 사용자 프로파일을 불러온 후, PES 플랫폼(102)은 가상 데스크톱 인스턴스를 실행시킬 데이터 센터 컴퓨터(110)를 결정한다. 예를 들어, PES 플랫폼(102)은 가상 데스크톱 인스턴스를 호스팅하고 필터링 기준을 리스트에 적용하여 가상 데스크톱 인스턴스의 호스팅 요건을 수용할 수 있는 하나 이상의 컴퓨터로부터 데이터 센터 컴퓨터(110)의 서브세트를 획득하기 위해 이용 가능한 데이터 센터 컴퓨터(110)의 리스트를 획득할 수 있다. 그 후, PES 플랫폼(102)은 데이터 센터 컴퓨터(110) 중에서 하나를 랜덤으로 또 다른 임의의 선택 프로세스(가령, 라운드-로빈 등)를 이용함으로써 선택할 수 있다. 특정 예시에서, PES 플랫폼(102)은 리스트를 획득하고 필요한 자원(가령, 메모리, 스토리지, 프로세싱 파워 등)을 제공할 수 없는 데이터 센터 컴퓨터(110)를 필터링 제거할 수 있다. 또한 PES 플랫폼은 사용자 계정과 연관된 고객 계정과 연관된 N개의 타 가상 데스크톱 인스턴스(114)를 이미 호스팅하고 있는 데이터 센터 컴퓨터(110)도 필터링 제거할 수 있다(이때 N은 관리자에 의해 또는 PES 플랫폼(102)에 의해 설정될 수 있는 1 이상의 임의의 숫자이다). 또한 PES 플랫폼은 클라이언트 컴퓨팅 디바이스(106)에 대해 높은 대기시간(latency)을 갖는 데이터 센터 컴퓨터(100) 등도 필터링 제거할 수 있다.
가상 데스크톱 이미지 저장소(109)로부터의 이미지가 가상 데스크톱 인스턴스(114)를 생성하도록 사용된 후, 상기 PES 플랫폼(102)은 가상 데스크톱 인스턴스(114)에 연결될 데스크톱 저장소, 가령, 주 데스크톱 저장소(primary desktop store)(170)를 또한 식별할 수 있다. 예를 들어, PES 플랫폼(102)은 가상 데스크톱 인스턴스(114)가 실행될 데이터 센터 컴퓨터(110)를 선택하고 사용자 프로파일 내 정보를 기초로 컴퓨터(110)에게 가상 데스크톱 인스턴스(114)를 런칭하기 위한 요청을 전송하며 가상 데스크톱 식별자를 전송할 수 있다. 예를 들어, 데스크톱 저장소와 가상 데스크톱 인스턴스의 연관이 애플리케이션 프로토콜 인터페이스("API")의 활용을 통해 이뤄질 수 있다. 예를 들어, 인스턴스 관리자(122)는 저장 서비스 플랫폼(103)으로 송신될 수 있는 API, 가령, 연결 요청을 활용할 수 있다. 상기 저장 서비스 플랫폼(103)은 가상 데스크톱 인스턴스(114)가 올바른 가상 데스크톱 식별자를 가짐을 검증하고 사용자의 데스크톱 저장소(170)가 가상 데스크톱 인스턴스(114)에 연결될 수 있게 할 수 있다.
데이터 센터 컴퓨터(110)와 연관된 네트워크 주소 정보가 클라이언트 컴퓨팅 디바이스(106)로 전송될 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 IP 주소를 수신하면, 원격 컴퓨팅 세션이 시작될 수 있다. 가상 데스크톱 인스턴스가 구성되면, PES 플랫폼(102)이 클라이언트 컴퓨팅 디바이스(106)와 통신하고, 가상 데스크톱 인스턴스와 연관된 공개 액세스 가능한 IP 구조를 전송한다. 클라이언트 컴퓨팅 디바이스(106)가 IP 주소를 수신하면, 상기 IP 주소로의 연결 요청을 만든다. 그 후 사용자가 인증될 수 있고, 인증된 경우, 인스턴스 상의 운영 체지가 상기 사용자와 연관된 프로파일을 로딩한다. 그 후 상기 프로파일이 사용되어 사용자 인터페이스 또는 가상 데스크톱 인스턴스의 데스크톱이 사용자가 선호하는 방식을 룩 앤 필(look and feel)할 수 있다. 예를 들어, 인스턴스의 구성은 레지스트리를 구성하고, 폰트를 변경하며, 데스크톱 화상을 설정하며, 상기 데스크톱 상에 즐겨찾기 및 링크를 구성하며, 적절한 문서에 대한 아이콘을 데스크톱 상에 배치하는 등을 포함할 수 있다.
일부 실시예에서, 클라이언트 컴퓨팅 디바이스 요청이 수신되면, 데이터 센터 관리 구성요소(101)가 프로세싱 및 네트워크 자원을 선택할 수 있고, 인스턴스(114)에 추가로, 또 다른 인스턴스, 가령, 인스턴스(116) 상에서 프로비저닝 소프트웨어를 선택할 수 있다. 추가 인스턴스가 클라이언트 컴퓨팅 디바이스(106)와 연관된 한 명 이상의 사용자에 대해, 또는 클라이언트 컴퓨팅 디바이스로 연결된 하나 이상의 인스턴스에 대해, 또는 이들의 조합에 대해, 프로비저닝될 수 있다.
그 후, 상기 인스턴스 관리자(122)가 인스턴스(114)의 상태 및 건강을 계속 모니터링한다. 가상 데스크톱 인스턴스(114) 내에서 실행 중인 에이전트가 또한 PES 플랫폼(102)에서 실행되는 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스(106) 상의 사용자의 상호대화에 의해 생성된 데이터의 수신 및 저장을 모니터링 및 조화시킬 수 있다. 상기 데이터는 정보, 가령, 사용자가 열어 본 파일, 사용자 프로파일에 대한 상세사항, 및 PES 플랫폼(105) 상에서 실행되는 인스턴스와 상호대화하는 동안 생성된 임의의 데이터 파일을 포함할 수 있다. 또한 데이터는 사용자의 그래픽 사용자 인터페이스와 관련된 상세사항을 더 포함할 수 있다. 예를 들어, 데이터는 사용자가 클라이언트 컴퓨팅 디바이스(106) 상에서 열었던 다양한 윈도, 각자의 윈도의 절대적 및 상대적 위치, 윈도 내 임의의 구성요소의 강조 등을 포함할 수 있다. 상기 인스턴스 관리자(122)는 상태 정보를 데이터 센터 관리 구성요소(101)로 전송할 수 있고 또한 데스크톱 프로파일 및 사용자 콘텐츠의 변경을 주 데스크톱 저장소(170)에 쓸(write) 수 있다.
도 2를 계속 참조하면, 일부 실시예에서, 주 데스크톱 저장소의 장애로부터 보호하기 위해, 단계(2B)에서, 상기 주 데스크톱 저장소 상에 저장된 데이터가 백업 데스크톱 저장소(170') 상으로 복제될 수 있다. 백업 데스크톱 저장소(170')는 주 데스크톱 저장소(170)와 인스턴스(114)의 동일한 사용자와 연관된다. 데이터에 이뤄진 임의의 변경이 주 데스크톱 저장소(170)에 저장되고 백업 데스크톱 저장소(170')로 복제된다. 복제는 주기적으로, 또는 새 데이터가 생성될 때에만 데이터가 복제되는, 이벤트 기반으로, 또는 이 둘의 조합으로 수행될 수 있다.
일부 실시예에서, 단계(2C)에서, 저장된 데이터(saved data)가 또한 PES 레포지토리(140)에 저장될 수 있다. PES 레포지토리(140)에의 저장은 주기적으로, 또는 이벤트 기반으로, 또는 이 둘의 조합으로 수행될 수 있다. 일부 실시예에서, 데이터는 PES 레포지토리(140) 상에 저장된 후 데스크톱 저장소(170, 170')로부터 주기적으로 소거(purge)될 수 있다. 상기 주기는 클라이언트 컴퓨팅 디바이스(106)의 사용자와 연관된 개체(개체)의 관리자에 의해 결정될 수 있다.
그 후, 단계(3)에서, 가상 데스크톱 인스턴스(114)와 연관된 이벤트가 존재할 수 있다. 상기 이벤트는, 예를 들어, 가상 데스크톱 인스턴스의 장애를 포함할 수 있다. 가상 데스크톱 인스턴스 장애는 정전, 네트워크 단절, 데이터 센터 컴퓨터 상의 소프트웨어 또는 하드웨어 장애, 가상 데스크톱 인스턴스 상의 증가된 대기시간, 가상 데스크톱 인스턴스의 상당한 손상, 또는 인스턴스의 그 밖의 다른 임의의 장애로 인한 것일 수 있다. 이러한 장애의 경우, 인스턴스 관리자(122)로부터 전송된 상태 정보가 데이터 센터 관리 구성요소(101)로 장애를 지시할 것이다. 대안적으로, 주 데스크톱 저장소(170)가 사용자 정보의 변경의 부재(absence)를 검출하고 이러한 부재를 데이터 센터 관리 구성요소(101)로 지시할 것이다.
데이터 센터 관리 구성요소(101)가 인스턴스(114)와 연관된 이벤트를 검출하면, 단계(4)에서 또 다른 가상 데스크톱 인스턴스, 가령, 가상 데스크톱 인스턴스(114')가 인스턴스화된다. 또 다른 가상 데스크톱 인스턴스(114')는 동일한 데이터 센터 컴퓨터(110) 또는 상이한 컴퓨터(110') 상에서 실행될 수 있다. 또 다른 가상 데스크톱 인스턴스(114')는 사전-구성(pre-configure)되었거나, 가상 데스크톱 인스턴스(114) 상에서 장애가 검출된 후 구성이 시작될 수 있다. 데이터 센터 관리 구성요소(101)가 데이터 센터 컴퓨터 또는 실행되기 적절한 가상 데스크톱 인스턴스를 식별하면, 새로운 공개 IP 주소를 클라이언트 컴퓨팅 디바이스(106)로 전송하여 새로운 원격 컴퓨팅 세션을 통해 새로운 가상 데스크톱 인스턴스를 재연결할 수 있다.
오래된 가상 데스크톱 인스턴스와 새로운 가상 데스크톱 인스턴스에 걸쳐 이전 데스크톱의 룩 앤 필이 유지되기 때문에, 클라이언트 컴퓨팅 디바이스(106) 상의 사용자 경험은 거의 매끄럽게(seamless) 나타난다. 동일한 주 데스크톱 저장소(170)로의 연결에 의해, PES 플랫폼(102)으로 이전에 전송된 데이터가 새로운 가상 데스크톱 인스턴스에 의해 이용 가능해진다. 또한 가상 머신 인스턴스(114) 내에서 실행 중인 에이전트가 사용자가 이전에 열었던 애플리케이션과 관련된 정보를 수집했기 때문에, 동일한 애플리케이션이 새로운 가상 데스크톱 인스턴스 상에서 열린다. 저장된 데이터는 사용자의 그래픽 사용자 인터페이스에 대한 상세사항을 포함했기 때문에, 클라이언트 컴퓨팅 디바이스 상의 애플리케이션 프로세스의 사용자의 관점이 서로 다른 인스턴스 실행들에 걸쳐 실질적으로 균일하게 유지된다. 따라서 새로운 가상 데스크톱 인스턴스가 클라이언트 컴퓨팅 디바이스(106) 상에서 실행 중인 애플리케이션 프로세스를 보존하고, PES 플랫폼(102)으로 이전에 전송된 데이터가 새 인스턴스로 복원된다. 원격 컴퓨팅 세션의 장애 및 재확립 동안 사용자 데이터가 서로 다른 인스턴스들 간에 동기화되기 때문에, 클라이언트 컴퓨팅 디바이스(106)가 동일한 사용자 경험을 보유한다.
일부 실시예에서, 원격 컴퓨팅 애플리케이션(130)을 실행하기 위해 사용자에게 사용자 이름 및 패스워드를 재입력하도록 프롬프트될 수 있다. 또 다른 실시예에서, 메커니즘, 가령, 쿠키 또는 전자 증명서(electronic certificate) 등을 통해, 사용자 이름 및 패스워드가 데이터에 저장될 수 있고, 원격 컴퓨팅 세션이 재확립될 때 사용자 이름 및 패스워드가 자동으로 로딩될 수 있다.
앞서 기재된 바와 같이, 하나의 인스턴스에서 또 다른 인스턴스로의 원격 컴퓨팅 세션의 전달이 클라이언트 컴퓨팅 디바이스(106) 상의 최소한의 딜레이 및 사용자 경험의 단절을 갖고 이뤄진다. 상기 딜레이 및 단절은, 클라이언트 컴퓨팅 디바이스(106)로부터 수신된 데이터의 영속 저장(persistent storage)을 제공함으로써 최소화된다.
일부 실시예에서, 가상 머신 인스턴스(114)에서 장애가 발생되지 않고, 주 데스크톱 저장소(170)에서 장애가 발생될 수 있다. 저장 관리자(135)가 주 데스크톱 저장소(170)의 이러한 장애를 검출한 경우, 가상 데스크톱 인스턴스(114)와 주 데스크톱 저장소(170) 간 연결이 분리(detach)되며, 단계(4B)에서 나타나는 바와 같이 가상 데스크톱 인스턴스(114)와 백업 데스크톱 저장소(170') 간에 연결이 확립된다.
일부 실시예에서, 데이터 센터 관리 구성요소(101)에서 수집되는 데이터가 사용되어, 가상 데스크톱 인스턴스(114)와 클라이언트 컴퓨팅 디바이스(106) 간 원격 컴퓨팅 세션을 재확립할 때 복원될 클라이언트 컴퓨팅 디바이스(106)의 상태를 결정할 수 있다. 예를 들어, 수집된 데이터가 사용되어 클라이언트 컴퓨팅 디바이스(106)에서의 문제성 상태를 결정할 수 있고, 이러한 상태가 복원되지 않도록 결정될 수 있다. 상기 문제성 상태는 클라이언트 컴퓨팅 디바이스(106)에 연결될 때 직면되는 문제의 강도(severity) 및 빈도(frequency)를 기초로 결정될 수 있다.
도 3을 참조하면, 네트워킹된 컴퓨팅 환경(100)이 또한 사용되어, PES 플랫폼(102)과 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션을, 상기 디바이스 또는 동일한 사용자에 의해 사용되는 다른 디바이스와 연관된 이벤트 후, 시작할 수 있다. 예를 들어, 원격 컴퓨팅 세션이 PES 플랫폼(102)에 초기에 연결된 클라이언트 컴퓨팅 디바이스(106)의 하드 드라이브의 복사본을 복원 후 상기 동일한 디바이스(106)로 또는 동일한 사용자에 의해 사용되는 상이한 디바이스(106')로 제공할 수 있다.
일부 실시예에서, PES 플랫폼 상에서의 가상 데스크톱 인스턴스(114)의 원격 실행 없이, 클라이언트 컴퓨팅 디바이스(106)가 운영 체제 및 애플리케이션을 로컬하게 실행하는 것이 가능하다. 상기 PES 플랫폼(102)이 사용되어, 클라이언트 컴퓨팅 디바이스(106) 컴퓨팅 환경의 하드 드라이브를 하나 이상의 저장 서버(107) 상에 복제하고 하드 드라이브의 복사본을 가상 데스크톱 인스턴스(114)로서 상기 클라이언트 컴퓨팅 디바이스(106) 또는 또 다른 클라이언트 컴퓨팅 디바이스(106') 상의 사용자에 의해 이용 가능하도록 만들 수 있다. 일부 실시예에서, PES 플랫폼(102)이 사용되어 사용자 콘텐츠 및 데스크톱 프로파일을 하나 이상의 저장 서버(107) 상의 데스크톱 저장소(170) 또는 PES 레포지토리(140)로 복제하고, 그 후 상기 데스크톱 저장소(170)를, 클라이언트 컴퓨팅 디바이스(106 또는 106')의 사용자에 의해 이용 가능한 가상 데스크톱 인스턴스(114)로 연결할 수 있다.
사용자가 서비스 제공자 컴퓨터 네트워크(105)로부터의 서비스, 가령, 데스크톱 복원 서비스에 대해 등록할 수 있다. 상기 서비스에 가입된 사용자는 자신의 클라이언트 컴퓨팅 디바이스 상에 다운로드될 컴퓨터 프로그램, 가령, 데스크톱 복원 프로그램(330)을 제공 받을 수 있다. 그 후 상기 데스크톱 복원 프로그램(330)은 클라이언트 컴퓨팅 디바이스(106) 상에서 실행되고 단계(1)에 의해 지시되는 바와 같이 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 간 세션이 시작될 수 있다. 세션이 확립된 후, 도 1과 관련하여 앞서 기재된 바와 같이, PES 플랫폼(102)은 하나 이상의 데스크톱 저장소(170)를 사용자와 연관시킬 수 있다.
도 3을 계속 참조하면, 데스크톱 저장소(170)가 사용자 세션과 연관된 후, PES 플랫폼(102)은, 단계(2)에서, 클라이언트 컴퓨팅 디바이스(106)의 하드 드라이브 이미지 또는 사용자에 대한 데스크톱 프로파일 및 사용자 콘텐츠, 가령, 다양한 폴더 내에 저장된 파일들의 복제를 개시한다. 하드 드라이브 이미지 또는 사용자에 대한 데스크톱 프로파일 및 사용자 콘텐츠의 복제가 클라이언트 컴퓨팅 디바이스(106)의 디스크의 일부분을 PES 레포지토리(140) 또는 데스크톱 저장소(170)로 복사하는 것을 포함할 수 있다. 전체 이미지가 복제되는 인스턴스에서, 복사하는 것은, 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 간 네트워크 연결의 대역폭에 따라, 약간의 시간을 필요로 할 수 있다. 일부 실시예에서, 단계(2B)에서, 하드 드라이브 이미지가 또한 백업 데스크톱 저장소(170')로 복제될 수 있다. 덧붙여, 일부 실시예에서, 단계(2C)에서, 이미지는 또한 PES 레포지토리(140) 상에 주기적으로 저장될 수 있다.
그 후, 클라이언트 컴퓨팅 디바이스(106)와 사용자의 상호대화로 인하여, 하드 드라이브 이미지, 또는 사용자 콘텐츠 및 데스크톱 프로파일의 일부분에 이뤄진 임의의 변경이, 원격 컴퓨팅 세션을 통해 데스크톱 저장소(170) 상으로 저장됨으로써, PES 플랫폼(102)에 의해 복제된다. 변경의 복제는 네트워크 연결 대역폭을 기초로 스케줄링될 수 있다. 예를 들어, 네트워크 연결 대역폭이 높은 경우, 복제는 클라이언트 컴퓨팅 디바이스의 파일 시스템이 자신의 버퍼를 디스크로 플러스(flush)할 때마다 발생할 수 있다. 이와 달리, 네트워크 연결 대역폭이 낮은 경우, 복제는 주기적으로, 가령, 하루에 한 번, 일 주일에 한 번, 또는 그 밖의 다른 적절한 시점에서, 또는 상태에 따라, 가령, 네트워크 연결 대역폭이 특정 임계값을 초과할 대 수행되도록 스케줄링될 수 있다.
클라이언트 컴퓨팅 디바이스(106)의 장애가 있는 경우, 단계(3)에서 지시되는 바와 같이, 클라이언트 컴퓨팅 디바이스(106)의 사용자와 연관된 하드 드라이브 또는 사용자 콘텐츠 및 데스크톱 프로파일의 복사본이 PES 플랫폼(102)에서 이용 가능하다. 장애는 정전, 네트워크 단절, 소프트웨어 또는 하드웨어 장애 또는 그 밖의 다른 임의의 장애 중 하나 이상을 포함할 수 있다. 단계(4)에서 지시되는 바와 같이, PES 플랫폼(102)은 하드 드라이브 이미지의 복사본을 이용하여, 하나 이상의 데이터 센터 컴퓨터(110) 상에 가상 인스턴스(114)를 구성할 수 있거나, 사용자와 연관된 사용자 콘텐츠 및 데스크톱 프로파일이 저장되는 데스크톱 저장소(170)를 가상 데스크톱 인스턴스(114)로 연결(attach)할 수 있다.
따라서, 새로운 클라이언트 컴퓨팅 디바이스(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)의 사용자가 이들과 연관된 제한(restriction)을 가질 수 있다. 상기 제한은 관리자에 의해 설정될 수 있다. 제한은, 예를 들어, 각각의 사용자가 액세스할 수 있는 애플리케이션, 및 사용자에 의해 액세스되는 서로 다른 가상 데스크톱 인스턴스와 연관된 메모리 및 프로세싱 한계를 포함할 수 있다. 예를 들어, 관리자는 개별 사용자에 대한 디폴트 인스턴스 크기를 설정할 수 있다. 예를 들어 사용자 식별자(user identifier)에 따라, 디폴트 인스턴스 크기는 개별 사용자와 연관된 사용자 프로파일 저장소(108)에 저장될 수 있다. 또한 사용자 프로파일 저장소(108)는 인스턴스에 의해 실행되는 애플리케이션에 따라서 인스턴스 크기를 변화시키기 위한 변수를 더 포함할 수 있다.
하나의 실시예에서, 사용자는 적은 프로세싱 요건(low processing requirement)을 갖는 애플리케이션, 가령, 전자 메일 또는 웹 브라우저만 실행하도록 제한 받을 수 있다. 이러한 사용자에게 이러한 애플리케이션을 지원하도록 적은 양의 자원이 할당된 가상 데스크톱 인스턴스로의 액세스가 제공될 수 있다. 이와 달리, 사용자는 더 많은 프로세싱 요건을 갖는 애플리케이션, 가령, 전문 재단 또는 사진 편집 애플리케이션을 실행할 수 있는 권한을 가질 수 있다. 이 유형의 사용자는 사용자가 상기 애플리케이션을 실행시킬 수 있기에 충분히 더 많은 수의 자원이 할당된 가상 데스크톱 인스턴스로의 액세스를 제공 받을 수 있다. 서로 다른 사용자에 대해 인가된 애플리케이션이 사용자 계정에 대한 사용자 프로파일에 저장될 수 있다. 대안적으로, 가상 데스크톱 인스턴스를 이용하는 동안 사용자에 의해 서로 다른 유형의 애플리케이션이 요청될 수 있다.
대안적으로, 사용자 또는 클라이언트 컴퓨팅 디바이스와 연관된 프로세싱 요건이 다양한 시나리오를 기초로 결정될 수 있다. 결정은 원격 컴퓨팅 애플리케이션(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 주소로의 연결 요청을 한다. 그 후 사용자는 인증될 수 있고, 인증된 경우, 사용자에게 앞서 구성된 바와 같은 가상 데스크톱의 이미지가 제공된다.
일부 실시예에서, 단계(4)에서 인스턴스 에이전트(114A)는 인스턴스(114)가 사용 중인 CPU 및 메모리의 양을 모니터링할 수 있고, 또한 더 많은 자원이 필요한 경우 PES 플랫폼(102)으로부터 이들을 요청할 수 있다. 일부 실시예에서, 각각의 애플리케이션에 얼마나 많은 자원이 필요한지를 가리키는 정보가 태깅될 수 있다. 인스턴스 에이전트(114A)가 프로그램의 런칭을 검출할 때, 상기 에이전트는 표에서 요건을 검색하거나 런칭된 애플리케이션을 PES 플랫폼(102)으로 시그널링하여, 상기 PES 플랫폼(102)이 에이전트(114A)로 인스턴스(114)에 자원이 할당될 필요가 있음을 가리키는 신호를 전송할 수 있도록 구성될 수 있다.
사용자에 대한 최적 인스턴스의 결정은 사용자의 사용성 기반 청구(usage-based billing)를 구현하는 데 도움이 될 수 있다. 많은 수의 자원이 할당되는 인스턴스는 제한적일 수 있다. 예를 들어, 이러한 인스턴스는 특정 인가된 사용자에게만 제공되거나 특정 사용자에게 제한된 시간 동안만 제공될 수 있다. 서로 다른 인스턴스의 사용성 기반 청구는 서비스 제공자 자원의 사용에 대한 기본 가격 성분, 및 할당된 자원 및 서로 다른 자원에 대해 사용된 총 시간을 기반으로 하는 가변 가격 성분을 포함할 수 있다. 사용자의 자원 사용 및 요청은 또한 사용자와 연관된 계정의 관리자에 의한 사용자 관리를 위해 사용될 수 있다. 예를 들어, 사용자가 특정 임계치를 초과하는 자원의 레벨을 요청할 때 관리자에게 통지가 전송될 수 있다.
인스턴스로 할당될 자원의 결정은 또한 자원의 사용과 연관된 비용을 기초로 할 수 있다. 예를 들어, 특정 자원 레벨로 구성된 특정 인스턴스가 이들 자원의 사용의 임계 비용까지 사용되도록 제한될 수 있다. 또 다른 예를 들면, 할당된 자원의 임계 양과 함께 인스턴스가 사용될 수 있다. 대안적으로, 유휴 상태(idle)인 것으로 모니터링되거나 특정 세션 동안 적은 자원 활용을 가리키는 임계 시간 후, 인스턴스로의 사용자의 액세스가 더 적은 자원을 갖는 인스턴스로 격하될 수 있다.
관리자가 가상 데스크톱 인스턴스 상의 자원으로의 사용자의 액세스를 인가하기 위한 서로 다른 규칙을 제공할 수 있다. 예를 들어, 규칙은 서로 다른 유형의 사용자를 정의하고 사용자의 유형은 개체에 의해 프로그램 실행 서비스(PES) 플랫폼으로 제공되는 규칙의 세트에 저장될 수 있다. 상기 규칙은 서로 다른 사용자의 로그인 정보, 가령, 사용자 계정 식별자와 연관되고 사용자 프로파일 저장소(108)에 저장될 수 있다. 사용자가 개체의 클라이언트 컴퓨팅 디바이스(106) 상의 원격 컴퓨팅 애플리케이션(130)을 런칭할 때, 상기 PES 플랫폼(102)은, 수신된 로그인 정보를 기초로, 사용자 계정 식별자와 연관된 사용자 프로파일에 포함된 규격에 따라 적절한 인스턴스를 결정할 수 있다.
예를 들면, 개체에 의해 고용된 계약자가 클라이언트 컴퓨팅 디바이스(106) 상에서 지정 시간 동안 결정된 애플리케이션 프로세스를 사용하도록 인가 받을 수 있다. 따라서 PES 플랫폼(102)으로 통신될 때 개체가 원하는 요건을 계약자의 사용자 신원으로 할당한다. 그 후 계약자가 원격 컴퓨팅 애플리케이션(130)을 런칭할 때, 로그인이 계약자의 사용자 식별자를 나타낸다. 그 후 서비스 제공자는 클라이언트 컴퓨팅 디바이스(106)와 연관되도록 구성할 인스턴스와 데이터 센터 컴퓨터 및 임의의 차후의 원격 컴퓨팅 세션을 결정한다. 서비스 제공자의 데이터 센터 관리 구성요소(101)는 결정된 프로세스의 계약자의 사용, 프로세싱 레벨 및 사용 시간을 모니터링하고 개체 관리자의 지정 상태에 따라 사용을 제한한다. 계약자는 클라이언트 컴퓨팅 디바이스(106) 상에 어떠한 소프트웨어 애플리케이션도 설치할 필요가 없고, 개체는 계약자에 의한 임의의 애플리케이션의 사용을 모니터링할 필요가 없다. PES 플랫폼(102)은 두 측의 요구를 모두 중앙집중적으로 수용한다.
지정 사용자 유형을 기초로 하는 애플리케이션의 구성 및 애플리케이션의 프로세싱 요건이 사용되어 개체에게 청구할 수 있다. 서로 다른 인스턴스의 사용성 기반 청구는 서비스 제공자 자원의 사용을 위한 기본 가격 성분, 및 프로세싱 요건 및 서로 다른 프로세싱 요건에 따라 사용되는 총 시간을 기초로 하는 가변 가격 성분을 포함할 수 있다. 대안적으로, 개체는 PES 플랫폼(102)으로부터 다양한 애플리케이션 프로세스에 대한 라이센스를 획득할 수 있고, 개체가 클라이언트 컴퓨팅 디바이스(106)를 이용 가능하게 만들 때 상기 라이센스는 개체에 의해 인가된 다양한 사용자에 의해 사용될 수 있으며, 사용자 이름이 각자의 사용자에 대해 요구되는 다양한 애플리케이션 프로세스에 대한 적절한 권한(permission)과 연관된다.
또한 서비스 제공자 인스턴스의 구성이 과거 요청(historical request) 또는 원격 컴퓨팅 세션 동안의 인스턴스의 프로비전을 기초로 서로 다른 인스턴스 상에서의 애플리케이션 프로세스의 사전 선택된 조합을 제공하도록 사용될 수 있다. 애플리케이션 프로세스 및 프로세싱 요건의 조합이 가령 서로 다른 유형의 사용자에 대해 구성될 수 있다. 사용자의 유형은, 예를 들어, 단순히 이메일을 읽고 웹 브라우징을 하는 자이거나 전문 재단자(drafter) 또는 사진 편집자일 수 있다. 일부 실시예에서, 인스턴스의 구성은 또한, 프로세싱 요건 대신 또는 이에 추가로, 애플리케이션 프로세스와 연관된 저장 요건을 기초로 할 수 있다.
도 5를 참조하면, 인스턴스에 대한 자원 요건을 기초로 하는 원격 컴퓨팅 세션의 조정을 나타내는 도 1의 네트워킹된 컴퓨팅 환경의 블록도가 개시된다. 도 5에 도시된 바와 같이, 초기 인스턴스와 연관된 자원 요건이 변경된 경우, 서비스 제공자 컴퓨터 네트워크(105)는 인스턴스에 할당된 자원을 조정하거나 동일하거나 상이한 데이터 센터 컴퓨터 상의 새로운 인스턴스를 제공할 수 있다. 앞서 기재된 바와 같이, 클라이언트 컴퓨팅 디바이스(106)가 이벤트 또는 사용자 요청에 응답하여 원격 컴퓨팅 애플리케이션(130)을 로딩할 때 새로운 원격 컴퓨팅 세션이 시작될 수 있다. 원격 컴퓨팅 애플리케이션(130)의 로딩에 이어, 단계(1)에서 클라이언트 컴퓨팅 디바이스(106)는 새로운 원격 세션을 요청할 수 있다. 요청의 수신 후, 단계(2)에서, PES 플랫폼(102)이 요청된 새로운 원격 세션을 서비스하기 위해 데이터 센터 컴퓨터(110)를 선택하고, 사용자 프로파일 저장소(108) 상의 사용자 프로파일 저장소를 기초로 런칭할 적절한 인스턴스를 선택한다. 세션을 구축한 후, 단계(3)에서 클라이언트 컴퓨팅 디바이스(106)의 사용자에 의한 인스턴스의 사용의 인스턴스 관리자(122)에 의한 모니터링을 기초로, 인스턴스가 동적으로 조정될 수 있다.
예를 들어, 클라이언트 컴퓨팅 디바이스(106)의 사용자가 가상 데스크톱 인스턴스와 상호대화하는 동안, 사용자는 단지 저 프로세싱 파워 및 저 메모리 요건만 필요로 하는 애플리케이션을 액세스할 수 있다. 그러나 일부 시간 후, 사용자는 더 많은 프로세싱 파워 및 더 많은 메모리를 필요로 하는 하나 이상의 애플리케이션으로의 액세스를 요청할 수 있다. 일부 실시예에서, 데스크톱 인터페이스 상의 애플리케이션에 대한 아이콘의 사용자 선택에 의해 서로 다른 요건에 대한 요청이 개시될 수 있다. 일부 실시예에서, 제어 패널 내 옵션 리스트로부터 옵션을 사용자가 선택함으로써 요청이 개시될 수 있다. 예를 들어, 옵션의 리스트는 프로세싱 파워 및 메모리의 서로 다른 양의 슬라이딩 스케일(sliding scale)을 포함할 수 있다. 어느 경우라도, 단계(4)에서 인스턴스 관리자(122)는 인스턴스(114)의 서로 다른 구성에 대한 요구를 결정한다.
PES 플랫폼(102)은 더 많은 프로세싱 파워 및 메모리를 수용하도록 가상 데스크톱 인스턴스에 할당되는 자원의 양을 동적으로 조정할 수 있다. 일부 실시예에서, 단계(5)에서, 조정은 동일한 또는 상이한 데이터 센터 컴퓨터 상에서 인스턴스를 재-런칭할 것을 요구할 수 있다. 가상 데스크톱 인스턴스의 재-런칭은 실행 중인 인스턴스를 종료하고, 상기 인스턴스로부터 데스크톱 저장소를 연관-해제하며, 데이터 센터 컴퓨터를 선택하여 새로운 인스턴스를 런칭하며, 선택된 데이터 센터 컴퓨터 상의 새로운 인스턴스를 인스턴스화하고, 상기 데스크톱 저장소를 새로운 인스턴스로 연관시키는 것을 포함한다. 인스턴스가 인스턴스화되면, 사용자는 로그인 프롬프트에 의해 상기 인스턴스로의 액세스 권한을 제공받을 수 있다.
또 다른 실시예에서, 조정은 인스턴스의 종료 없이 추가 자원을 가상 데스크톱 인스턴스에 추가하는 것을 포함할 수 있다. 예를 들어, 상기 인스턴스 관리자는 또 다른 프로세서 또는 메모리를 데스크톱 인스턴스 등을 실행시키는 가상 머신에 추가할 수 있다. 일부 실시예에서, CPU를 가상 데스크톱 인스턴스에 핫-애드(hot-add)함으로써, 프로세서는 가상 데스크톱 인스턴스에 추가될 수 있다. 새 하드웨어를 데이터 센터 컴퓨터에 추가하거나, 하드웨어 파티셔닝을 온라인으로 논리적으로 수행하거나, 가상화 층을 통해 상기 CPU는 핫-애드될 수 있다. 상기 데이터 센터 컴퓨터(110)는 CPU가 추가된 후 자동으로 시작될 필요가 있지만, 새로운 CPU를 이용 가능한 자원으로서 인식하도록 단순히 재구성될 수 있다. 일부 실시예에서, 메모리를 가상 데스크톱 인스턴스에 핫-애드함으로써, 상기 메모리가 상기 가상 데스크톱 인스턴스에 추가될 수 있다. 메모리를 데이터 센터 컴퓨터(110)에 핫-애드하는 것은, 임의의 운영 체제 다운타임 또는 임의의 시스템 전력 동작을 필요로 하지 않으면서 물리적 메모리를 운영 체제 인스턴스에 추가하는 메커니즘이 지원됨을 보장함으로써 구현될 수 있다.
도 6은 가상 데스크톱 인스턴스의 동작이 원격지에서 로컬 네트워킹된 환경으로 전환될 때 도 1의 컴퓨팅 환경을 나타내는 블록도이다. 일부 실시예에서, PES 플랫폼(102)과 클라이언트 컴퓨팅 디바이스(106) 간에 확립되는 원격 컴퓨팅 세션이 네트워크 단절 또는 장애로 인해 소실될 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(106)의 사용자가 네트워크(104)에 의해 서비스되지 않는 영역으로 이동할 수 있다. 이러한 단절을 수용하기 위해, 데이터 센터 컴퓨터에서 클라이언트 컴퓨팅 디바이스(106)로 정보를 전달하기 위해, PES 플랫폼(102)과 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션이 사용되어, 클라이언트 컴퓨팅 디바이스(106)에 PES 플랫폼 상에서 이전에 실행된 가상 인스턴스의 로컬 실행되는 복사본으로의 전환을 위해 필요한 구성요소를 구비할 수 있다.
예를 들어, 사용자가 비행기에 탑승하기 전에, 클라이언트 컴퓨팅 디바이스(106)가 네트워크(104)를 통해 PES 플랫폼(102)으로 연결될 수 있고, 디바이스(106)가 네트워크(104)로부터 연결 해제될 수 있다. 네트워크(104)로부터 연결 해제되기 전에, 선택적으로 사용자에게 승인을 위해 프롬프트한 후에, 클라이언트 컴퓨팅 디바이스(106)는 운영 체제의 이미지, 가령, 가상 데스크톱 이미지 저장소(109) 상에 저장된 이미지를 제공 받을 수 있다. 클라이언트 컴퓨팅 디바이스(106)가 데이터 센터 컴퓨터(110)와 상이한 구성의 프로세싱 파워 또는 메모리를 가질 수 있기 때문에, 클라이언트 컴퓨팅 디바이스에 적합한 운영 체제의 이미지가 대응하는 파워 및 메모리 구성을 가질 수 있다. 데스크톱 저장소의 복사본을 갖는 최근에 저장된 버전의 데이터로 클라이언트 컴퓨팅 디바이스(106)는 또한 적합화될 수 있다. 마지막으로, 제공된 운영 체제의 이미지를 기초로 인스턴스(114')를 런칭하고 인스턴스(114')를 데스크톱 저장소(170')의 로컬 복사본으로 연결하기 위해, 클라이언트 컴퓨팅 디바이스(106)는 서비스 제공자 컴퓨터 네트워크(105)로부터 가상 데스크톱 모니터링 모듈(601)을 수신할 수 있다. 그 후, 클라이언트 컴퓨팅 디바이스(106)가 네트워크(104)로부터 단절될 때, 사용자는 클라이언트 컴퓨팅 디바이스(106) 상에서 로컬하게 실행되는 인스턴스를 이용해 디바이스를 계속 사용할 수 있다. 그 후 클라이언트 컴퓨팅 디바이스(106)는 데이터 및 비행기 상에 있는 동안 실행되는 적합한 버전의 인스턴스를 가질 수 있다.
또 다른 실시예에서, PES 플랫폼(102)과의 연결 없이, 클라이언트 컴퓨팅 디바이스(106)는 운영 체제, 인스턴스 관리자, 및 가상 데스크톱 모니터링 모듈(601)의 이미지의 복사본에 의해 프로비저닝될 수 있다. 예를 들어, 개체의 정보 기술(IT) 부서에 의해 개체의 컴퓨팅 디바이스(106)는 적절한 이미지 및 모듈로 구성될 수 있다. PES 플랫폼(102)과 연결되고 이로부터 단절되기 전에, 선택사항으로서 승인하도록 프롬프트된 후, 클라이언트 컴퓨팅 디바이스(106)에 데스크톱 저장소의 복사본과 함께 최근 저장된 버전의 데이터가 제공될 수 있다. 그 후, 가상 데스크톱 모니터링 모듈(601)이 운영 체제의 이미지를 기초로 인스턴스(114')를 런칭할 수 있고 인스턴스(114')를 데스크톱 저장소(170')의 로컬 복사본으로 연결할 수 있다. 그 후 클라이언트 컴퓨팅 디바이스(106)가 네트워크(104)로부터 연결 해제될 때, 사용자는 클라이언트 컴퓨팅 디바이스(106) 상에서 로컬하게 실행되는 인스턴스에 의해 디바이스를 계속 사용할 수 있다. 그 후 상기 클라이언트 컴퓨팅 디바이스(106)는 데이터 및 비행기에 있는 동안 실행되는 적합한 버전의 인스턴스를 가질 수 있다.
그 후, 클라이언트 컴퓨팅 디바이스(106)가 서비스 제공자의 네트워크 내 영역으로 복귀할 때(가령, 도착 도시에서 비행기에서 내릴 때), PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스(106)와 원격 컴퓨팅 세션을 재확립하고 모든 사용자 데이터가 동기화되며, 따라서 사용자의 애플리케이션 프로세스의 사용 중 단절이 최소화된다.
원격에서 로컬 네트워킹된 환경으로의 가상 인스턴스의 동작의 전환 시 포함되는 단계들은 도 6에 도시되어 있다. 단계(1)에서, 클라이언트 컴퓨팅 디바이스(106)와 PES 플랫폼(102) 간 원격 세션이 시작된다. 앞서 기재된 바와 같이, 사용자 프로파일 저장소가 액세스되고, 사용자를 위해 적절한 인스턴스가 구성된다. 인스턴스의 구성 후에, 데이터 센터 컴퓨터(110)가 선택되어 가상 인스턴스 데스크톱을 런칭할 수 있으며, 사용자에게 상기 데이터 센터 컴퓨터(110) 상의 가상 데스크톱 인스턴스(114)로의 액세스 권한이 제공된다.
그 후 단계(2)에서, 사용자가 원격 세션에서 가상 데스크톱 인스턴스를 액세스하는 중일 때, 데스크톱 프로파일 및 사용자 콘텐츠의 사용자에 의한 변경이 데스크톱 저장소(170)에 저장된다. 단계(3)에서, 일부 실시예에서, 클라이언트 컴퓨팅 디바이스(106)는 PES 플랫폼(102)으로 네트워크 연결이 소실될 것으로 예상됨을 지시할 수 있다. 이러한 지시가 있으면, 또는 동기화 목적으로, 단계(4)에서 PES 플랫폼(102)은, 데스크톱 저장소(170)의 복사본(170'), 인스턴스(114)에 의해 실행되는 운영 체제의 이미지의 복사본, 및 인스턴스 관리자(122)의 복사본(122')을 클라이언트 컴퓨팅 디바이스(106)로 제공하여, PES 플랫폼(102)과 이용 가능한 네트워크 연결이 있는 동안, 상기 인스턴스(114')가 클라이언트 컴퓨팅 디바이스(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은 클라이언트 컴퓨팅 디바이스(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)에서 인스턴스에서의 장애를 검출한 후, PES 플랫폼, 블록(718)에서 PES 플랫폼(102)은 데이터가 제2 가상 데스크톱 인스턴스에 의해 이용 가능하도록 만들 수 있다. 데이터 동기화를 통해, 또는 데스크톱 저장소와 초기 인스턴스 간 연관을 해제하고, 데스크톱 저장소를 새 인스턴스와 연관시킴으로써, 데이터가 제2 가상 데스크톱 인스턴스에 의해 이용 가능해질 수 있다. 데이터가 제2 가상 데스크톱 인스턴스에 의해 이용 가능해지면, 루틴이 블록(720)으로 이동한다. 일부 실시예에서, 사용자 프로파일에 따라 PES 플랫폼(102)의 가상 데스크톱 인스턴스가 사전 구성(pre-configure)될 수 있다. 이러한 실시예에서, 블록(716)에서 장애가 검출될 때, PES 플랫폼(102)이 요구되는 사용자 프로파일에 의해 사전 구성된 또 다른 인스턴스를 식별한다. 대안적으로, 블록(716)에서 장애의 검출 후 인스턴스는 구성될 수 있다. 그 후 식별된 새로운 인스턴스에 의해, 필요한 IP 주소 정보가 클라이언트 컴퓨팅 디바이스로 통신되고, 블록(720)에서 원격 컴퓨팅 세션이 재확립된다. 상기 루틴(700)은 블록(722)에서 종료된다.
도 8은 클라이언트 컴퓨팅 디바이스의 장애 후 하드 드라이브의 이미지를 복원하기 위해, 서비스 제공자와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션을 이용하기 위한 루틴을 나타내는 흐름도이다. 블록(804)에서, 데스크톱 복원 서비스를 제공하기 위해, 클라이언트 컴퓨팅 디바이스와 PES 플랫폼 간 원격 컴퓨팅 세션이 확립될 수 있다. 세션이 확립되면, 블록(806)에서, PES 플랫폼은 클라이언트 컴퓨팅 디바이스 하드 드라이브의 이미지를 저장할 수 있다. 일부 실시예에서, 클라이언트 컴퓨팅 디바이스는 원격 컴퓨팅 애플리케이션에 추가로 운영 체제 및 애플리케이션을 로컬하게 실행시킬 수 있다. 이러한 실시예에서, 클라이언트 컴퓨팅 디바이스는 여기서 실행되는 운영 체제 및 애플리케이션과 연관된 모든 프로세싱 및 구성 정보를 포함하는 로컬 하드 드라이브 이미지를 가진다. 일부 실시예에서, 원격 컴퓨팅 세션은 클라이언트 컴퓨팅 디바이스의 하드 드라이브의 이미지를 복제하도록 사용될 수 있다. 이미지의 저장이 클라이언트 컴퓨팅 디바이스와 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)은 가상 이미지 저장소로부터 가상 데스크톱 이미지 템플릿을 획득한다. 예를 들어, 사용자 프로파일은 사용자는 "프리이엄(premium)" 인스턴스를 할당 받았음을 나타낼 수 있고, 이는 사용자가 많은 양의 자원(메모리, CPU 코어, 네트워크 대역폭, GPU 코드 등) 및 애플리케이션의 프리미엄 세트를 갖는 인스턴스를 할당 받았음을 나타낸다. 블록(912)으로 다시 돌아와서, 데이터 센터 컴퓨터 시스템이 선택되어 가사 데스크톱 인스턴스를 호스팅할 수 있으며 인스턴스 템플릿이 선택된 컴퓨터 시스템으로 전송될 수 있다. 컴퓨터 시스템 상의 인스턴스 관리자가 가상 데스크톱 인스턴스를 런칭할 수 있다. 사용자 프로파일은 개체의 관리자에 의해 확립된 인스턴스 요건에 대한 제한을 포함할 수 있다. 그 후 블록(914)에서, (가령, 데이터 저장소를 인스턴스에 연결함으로써) 적절한 인스턴스가 구성되면, 원격 컴퓨팅 세션은 인스턴스와 클라이언트 컴퓨팅 디바이스 간에 확립된다. 루틴(900)은 블록(916)에서 종료된다.
도 10은 프로세스 요건의 변경을 수용하기 위한 원격 컴퓨팅 세션을 구성하기 위한 루틴을 나타내는 흐름도이다. 앞서 기재된 바와 같이, 이벤트 또는 사용자 요청을 응답하여, 클라이언트 컴퓨팅 디바이스가 원격 컴퓨팅 애플리케이션을 로딩할 때, 새로운 원격 컴퓨팅 세션이 인스턴스화될 수 있다. 원격 컴퓨팅 애플리케이션의 로딩 후에, 클라이언트 컴퓨팅 디바이스가 새로운 원격 컴퓨팅 세션을 요청할 수 있다. 루틴(1000)은 블록(1002)에서 시작한다. 블록(1004)에서, 클라이언트 컴퓨팅 디바이스로부터의 요청이 수신되면, PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스의 사용자의 사용자 프로파일을 기초로, 클라이언트 컴퓨팅 디바이스에 대한 프로세싱 요건을 결정한다. PES 플랫폼(102)은 요청된 새로운 원격 세션을 서비스하기 위해 데이터 센터 컴퓨터를 선택한다.
예를 들어, 적은 프로세싱 요건을 갖는 애플리케이션, 가령, 전자 메일 프로그램 또는 웹 브라우저를 실행하기를 원하거나 실행 권한을 갖는 클라이언트 컴퓨팅 디바이스의 사용자가 단지 적은 프로세싱 파워 능력(가령, 1 또는 2개의 CPU 코어 및 1 기가바이트의 RAM) 및 이러한 애플리케이션만으로 프로비저닝된 가상 데스크톱 인스턴스와 연관될 수 있다. 즉, 사용자 프로파일은 사용자가 "작은(small)" 인스턴스를 할당 받을 것임을 나타내거나 사용자 프로파일은 사용자가 어떻게 인스턴스를 사용하는지를 기초로 동적으로 성장할 수 있는 "작은" 인스턴스를 사용자가 초기에 할당 받을 것임을 나타낼 수 있다. 이와 달리, 더 많은 프로세싱 요건을 갖는 애플리케이션, 가령, 전문 재단 또는 사진 편집 애플리케이션을 실행하기를 원하거나 실행 권한을 갖는 클라이언트 컴퓨팅 디바이스의 사용자가 많은 프로세싱 파워 능력(가령, 4 또는 8개의 CPU 코어 및 16 기가바이트의 RAM) 및 이러한 애플리케이션으로 프로비저닝된 상이한 가상 데스크톱 인스턴스와 연관될 수 있다. 마찬가지로, 사용자 프로파일은 사용자가 인스턴스를 사용하는 방식을 기초로 축소될 수 있는 "프리미엄' 인스턴스를 사용자가 초기에 할당 받을 것임을 나타낼 수 있다. 사용자 또는 클라이언트 컴퓨팅 디바이스와 연관된 프로세싱 요건이 다양한 인자들을 기초로 결정될 수 있다. 결정은 원격 컴퓨팅 애플리케이션의 런칭 시 사용자 요청을 기초로 이뤄질 수 있다. 또한 결정은 원격 컴퓨팅 애플리케이션이 런칭될 때 송신되는 데이터에서 지시되는 바와 같은 특정 사용자에 대한 사전 선택된 옵션을 기초로 이뤄질 수 있다.
PES 플랫폼(102)이 클라이언트 컴퓨팅 디바이스 요청에 대해 요구되는 프로세싱 요건을 결정하면, 블록(1006)에서, 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스 간에 원격 컴퓨팅 세션이 확립된다. 세션을 확립한 후, 블록(1008)에서 클라이언트 컴퓨팅 디바이스의 사용자에 의한 인스턴스 사용을 모니터링하는 것을 기초로, 상기 인스턴스는 동적으로 조절될 수 있다.
예를 들어, 사용자 프로파일을 기초로, 초기 가상 데스크톱 인스턴스는 적은 자원으로 프로비저닝될 수 있다. 그러나 약간의 시간 후, 사용자는 특정 작업, 가령, 데이터베이스 상에서의 작업을 수행하기 위해 더 많은 자원을 갖는 가상 데스크톱 인스턴스로의 액세스를 요청할 수 있다. 일부 실시예에서, 데스크톱 인터페이스 상의 애플리케이션에 대한 아이콘을 사용자가 선택함으로써, 상이한 요건에 대한 요청이 개시될 수 있다. 일부 실시예에서, 제어 패널 내 옵션의 리스트로부터 한 옵션을 사용자가 선택함으로써, 요청이 개시될 수 있다. 예를 들어, 옵션의 리스트가 프로세싱 파워 및 메모리의 여러 다른 양의 슬라이딩 스케일(sliding scale)을 포함할 수 있다.
PES 플랫폼(102)은 더 많은 프로세싱 파워 및 메모리를 수용하기 위해 가상 데스크톱 인스턴스에 할당된 자원의 양을 동적으로 조정할 수 있다. 일부 실시예에서, 조정은 동일한 또는 상이한 데이터 센터 컴퓨터 상에서 인스턴스를 재-런칭(re-launching)할 것을 필요로 할 수 있다. 상기 가상 데스크톱 인스턴스의 재-런칭은 실행 중인 인스턴스를 종료하고, 상기 인스턴스로부터 데스크톱 저장소를 연관-해제하며, 새로운 인스턴스를 런칭하기 위해 데이터 센터 컴퓨터를 선택하고, 선택된 데이터 센터 컴퓨터 상에 새로운 인스턴스를 인스턴스화하고, 데스크톱 저장소를 새로운 인스턴스로 연관시키는 것을 포함할 수 있다. 상기 인스턴스가 인스턴스화되면, 사용자는 로그인 프롬프트에 의해 상기 인스턴스로의 액세스 권한을 제공 받을 수 있다.
또 다른 실시예에서, 조정은 인스턴스를 종료하지 않고 추가 자원을 가상 데스크톱 인스턴스에 추가하는 것을 포함할 수 있다. 예를 들어, 인스턴스 관리자는 또 다른 프로세서를 가상 데스크톱 인스턴스에 추가하고, 메모리를 가상 데스크톱 인스턴스에 추가하는 등을 할 수 있다. 루틴(1000)은 블록(1010)에서 종료한다.
도 11은 클라이언트 컴퓨팅 디바이스 및 서비스 제공자의 동작을 원격 환경과 로컬 환경 간에 전환하기 위한 루틴을 나타내는 흐름도이다. 상기 루틴은 (1102)에서 시작한다. 블록(1104)에서, 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션이 확립된다. 앞서 기재된 바와 같이, 클라이언트 컴퓨팅 디바이스의 사용자와 연관된 사용자 프로파일을 기초로 세션이 확립될 수 있다. 덧붙여, 데스크톱 저장소가 사용자의 인스턴스와 연관된다. 세션이 확립되면, 블록(1106)에서 PES 플랫폼(102)은 클라이언트 컴퓨팅 디바이스 상의 인스턴스와 사용자의 상호대화에 의해 생성된 데이터를 데스크톱 저장소에 저장한다. 그 후, 결정 블록(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)이 클라이언트 컴퓨팅 디바이스와 마지막으로 동기화된 이후의 변경을 전송할 수 있다. 예를 들어, 로컬 인스턴스 관리자는 변경이 이뤄진 마지막 시점을 가리키는 타임스탬프(timestamp) 및 로컬 데스크톱 저장소에서 변경된 블록을 가리키는 변경 로그(change log)를 유지할 수 있고 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)의 하나 이상의 컴퓨터 - 상기 메모리는 실행될 때 하나 이상의 컴퓨터로 하여금:
가상 데스크톱 인스턴스와 연관된 가변 자원으로의 각자의 사용자의 액세스에 대한 하나 이상의 규칙을 확립하는 정책(policy)을 수신하게 하며,
가상 데스크톱 인스턴스를 액세스하기 위한 요청을 컴퓨팅 디바이스로부터 수신하게 하고 - 상기 요청은 컴퓨팅 디바이스의 사용자를 식별함 - ,
상기 컴퓨팅 디바이스로, 자원의 세트에 의해 구성된 제1 가상 데스크톱 인스턴스로의 액세스를 제공하게 하며,
사용자로부터의 요청, 또는 자원의 세트의 이용을 모니터링한 것을 적어도 부분적으로 기초로 한 결정된 요구 중 적어도 하나에 응답하여, 가변 자원으로의 사용자의 액세스와 연관된 하나 이상의 규칙에 따라, 상기 자원의 세트를 변경할지 여부를 결정하게 하는, 시스템.
2. 제1항목에 있어서, 상기 자원의 세트는, 가상 데스크톱 인스턴스에 의해 실행되는 운영 체제, 가상 데스크톱 인스턴스와 연관된 메모리 규격, 또는 상기 가상 데스크톱 인스턴스와 연관된 프로세싱 파워 규격 중 하나 이상을 포함하는, 시스템.
3. 제1항목에 있어서, 가변 자원으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙은 각각의 사용자와 연관된 사용자 프로파일에 저장되는, 시스템.
4. 제3항목에 있어서, 제1 가상 데스크톱 인스턴스는 사용자와 연관된 과거 자원 액세스 통계치를 기초로 구성되는, 시스템.
5. 컴퓨터로 구현되는 방법으로서, 상기 방법은
가상 데스크톱 인스턴스와 연관된 가변 자원(variable resource)으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 수신하는 단계,
가상 데스크톱 인스턴스를 액세스하기 위한 컴퓨팅 디바이스로부터 요청을 수신하는 단계 - 상기 요청은 컴퓨팅 디바이스의 사용자를 식별함 - ,
컴퓨팅 디바이스로, 자원의 세트에 의해 구성(configure)된 제1 가상 데스크톱 인스턴스로의 액세스를 제공하는 단계, 및
가변 자원으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 기초로, 상기 자원의 세트를 변경할지 여부를 결정하는 단계
를 포함하는, 컴퓨터로 구현되는 방법.
6. 제0항목에 있어서, 상기 자원의 세트를 변경할지 여부를 결정하는 단계는 사용자로부터의 상기 변경에 대한 요청에 응답하여 이뤄지는, 컴퓨터로 구현되는 방법.
7. 제0항목에 있어서, 자원의 세트의 이용을 모니터링하는 단계를 더 포함하고, 상기 자원의 세트를 변경할지 여부를 결정하는 단계는 모니터링을 기초로 변경에 대한 필요성의 결정에 응답하여 이뤄지는, 컴퓨터로 구현되는 방법.
8. 제0항목에 있어서, 상기 자원의 세트를 변경하도록 결정되는 경우, 가상 데스크톱 인스턴스와 연관된 메모리 규격(memory specification) 또는 프로세싱 파워 규격(processing power specification) 중 하나 이상을 크기 조정(scaling)하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
9. 제0항목에 있어서, 제1 가상 데스크톱 인스턴스는 사용자 프로파일에 따르는 자원의 세트에 의해 구성되고 가변 자원으로의 액세스에 대한 하나 이상의 규칙이 상기 사용자 프로파일에 포함되는, 컴퓨터로 구현되는 방법.
10. 제0항목에 있어서, 상기 자원의 세트를 변경하도록 결정되는 경우, 컴퓨팅 디바이스로, 변경된 자원의 세트에 의해 구성된 제2 가상 데스크톱 인스턴스로의 액세스를 제공하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
11. 제0항목에 있어서, 하나 이상의 볼륨(volume)을 제1 가상 데스크톱 인스턴스에 연결(attach)하는 단계를 더 포함하며, 상기 하나 이상의 볼륨은 사용자 및 사용자에 대한 데이터 저장소(data store)에 대한 데스크톱 개인화 정보(desktop personalization information)를 포함하며, 제1 가상 데스크톱 인스턴스 내에서 실행 중인 제1 운영 체제는 사용자에 대한 데스크톱 개인화 정보 및 사용자에 대한 데이터 저장소 내 저장공간으로 사상되는 하나 이상의 운영 체제 폴더에 따라 개인화되는, 컴퓨터로 구현되는 방법.
12. 제0항목에 있어서, 하나 이상의 볼륨을 제1 가상 데스크톱 인스턴스로부터 분리되게 하고, 제2 가상 데스크톱 인스턴스에 연결되게 하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
13. 컴퓨터-실행형 명령을 포함하는 비일시적 물리 컴퓨터 저장 매체로서, 상기 명령은, 실행될 때, 컴퓨팅 시스템으로 하여금, 적어도,
가상 데스크톱 인스턴스와 연관된 가변 자원(variable resource)으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 수신하게 하고
가상 데스크톱 인스턴스를 액세스하기 위한 컴퓨팅 디바이스로부터 요청을 수신하게 하며 - 상기 요청은 컴퓨팅 디바이스의 사용자를 식별함 - ,
컴퓨팅 디바이스로, 자원의 세트에 의해 구성(configure)된 제1 가상 데스크톱 인스턴스로의 액세스를 제공하게 하고,
제1 가상 데스크톱 인스턴스와 연관된 자원으로의 사용자의 액세스를 모니터링하게 하며,
가변 자원으로의 사용자의 각자의 액세스에 대한 하나 이상의 규칙을 기초로, 상기 자원의 세트를 변경할지 여부를 결정하게 하는, 비일시적 물리 컴퓨터 저장 매체.
14. 제0항목에 있어서, 컴퓨터-실행형 명령은, 실행될 때, 상기 제1 가상 데스크톱 인스턴스 상에 설치된 에이전트가 상기 제1 가상 데스크톱 인스턴스 상에서 런칭되는 애플리케이션의 세트를 모니터링하는 것을 기초로 상기 자원의 세트를 변경할지 여부를 결정하도록 컴퓨팅 시스템에게 지시하는, 비일시적 물리 컴퓨터 저장 매체.
15. 제0항목에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 변경된 자원의 세트를 갖는 가상 데스크톱 인스턴스를 액세스하기 위해 컴퓨팅 디바이스로부터 수신된 요청을 기초로 상기 자원의 세트를 변경할지 여부를 결정하도록 컴퓨팅 시스템에게 지시하는, 비일시적 물리 컴퓨터 저장 매체.
16. 제0항목에 있어서, 컴퓨터-실행형 명령은, 실행될 때, 사용자와 연관된 하나 이상의 규칙에서 지시되는 자원의 양까지 자원의 세트를 변경하도록 컴퓨팅 시스템에게 지시하는, 비일시적 물리 컴퓨터 저장 매체.
17. 제0항목에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 컴퓨팅 시스템으로 하여금, 사용자의 사용자 계정과 연관된 관리자에게, 상기 사용자와 연관된 하나 이상의 규칙에서 지시되는 자원의 양을 초과하는 자원의 세트에 대한 요청과 관련하여 통지하게 하는, 비일시적 물리 컴퓨터 저장 매체.
18. 제0항목에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 컴퓨팅 시스템으로 하여금 가상 데스크톱 인스턴스로의 액세스를 위한 비용을 계산하게 하는, 비일시적 물리 컴퓨터 저장 매체.
19. 제0항목에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 컴퓨팅 시스템으로 하여금, 자원의 세트를 기초로 상기 가상 데스크톱 인스턴스로의 액세스를 위한 시간 주기당 정액 요금을 이용하여 비용을 계산하게 하는, 비일시적 물리 컴퓨터 저장 매체.
20. 제0항목에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 컴퓨팅 시스템으로 하여금, 자원의 세트를 변경하도록 결정하게 하고, 컴퓨팅 시스템으로 하여금, 변경된 자원의 세트를 기초로 가상 데스크톱 인스턴스로의 액세스를 위한 시간 주기당 가변 요금을 이용해 비용을 계산하게 하는, 비일시적 물리 컴퓨터 저장 매체.
예시적 실시예가 개시되고 설명되었지만, 관련 분야의 통상의 기술자라면 추가 또는 대안적 실시예가 본 발명의 사상 및 범위 내에서 구현될 수 있음을 알 것이다. 예를 들어, 본 명세서에 기재된 기법이, 본 발명의 범위 내에서, 이미지 또는 비디오 편집 소프트웨어, 데이터베이스 소프트웨어, 생산성 소프트웨어, 3d 디자인 소프트웨어, 오디오 및 사운드 프로세싱 애플리케이션 등에서의 그 밖의 다른 임의의 개수의 소프트웨어 애플리케이션 및 프로세스에서 원격 프로세싱 관리를 가능하게 하도록 사용될 수 있다.
덧붙여, 많은 실시예가 예시로서 지시되었지만, 관련 분야의 통상의 기술자라면 예시적 실시예가 조합되거나 함께 구현될 필요가 없음을 알 것이다. 따라서 일부 예시적 실시예는 본 발명의 변형 범위에 따라 사용되거나 구현될 필요가 없다.
"할 수 있는" 같은 조건부 언어가, 달리 구체적으로 언급되지 않는 한, 또는 문맥 상 달리 이해되지 않는 한, 특정 실시예가 특정 특징부, 요소 및/또는 단계를 포함하며 다른 실시예는 포함하지 않을 수 있음을 의미한다. 따라서 이러한 조건부 언어는 일반적으로 특징부, 요소 및/또는 단계가 어떠한 방식으로도 하나 이상의 실시예에 대해 필수적임을 의미하지 않고, 이들 특징부, 요소 및/또는 단계가 임의의 특정 실시예에 포함되거나 특정 실시예에서 수행될 것인지 여부와 무관하게, 하나 이상의 실시예가 반드시 사용자 입력 또는 프롬프팅을 이용하거나 이용하지 않는 결정 로직을 포함하는 것을 의미하지도 않는다.
여기서 기재된 및/또는 첨부된 도면에 도시된 임의의 프로세스 기재, 요소, 또는 흐름도의 블록이 프로세스에서 특정 논리 함수 또는 단계를 구현하기 위한 하나 이상의 실행형 명령을 포함하는 모듈, 세그먼트, 또는 코드의 일부분을 나타낼 가능성이 있음으로 이해되어야 한다. 대안적 구현예가 본 명세서에 기재된 실시예의 범위 내에 포함되며 여기서 관련 기능에 따라서, 해당 분야의 통상의 기술자에게 자명할 듯이 요소 또는 기능이 삭제되거나 도시되거나 기재된 순서와 달리, 가령, 실질적으로 동시에 또는 반대 순서로 실행될 수 있다. 앞서 기재된 데이터 및/또는 구성요소가 컴퓨터 판독형 매체와 연관된 드라이브 메커니즘을 이용해 컴퓨터 판독형 매체 상에 저장되고 컴퓨팅 디바이스의 메모리로 로딩될 수 있고, 임의의 개수의 컴퓨터 실행형 구성요소, 가령, CD ROM, DVD ROM에 저장되거나 네트워크 인터페이스를 통해 제공 또는 획득될 수 있으며, 또한 그 밖의 다른 방식으로 구성요소 및/또는 데이터가 단일 디바이스에 포함되거나 분산될 수 있음을 알 것이다. 따라서 범용 컴퓨팅 디바이스가 앞서 기재된 다양한 데이터 및/또는 구성요소의 프로세싱 및/또는 실행에 의해 본 발명의 프로세스, 알고리즘, 및 방법을 구현하도록 구성될 수 있다.
앞서 기재된 실시예에 많은 변경 및 수정이 이뤄질 수 있음을 주지해야 하고, 이의 요소외에 그 밖의 다른 허용될만한 예들이 존재함을 이해해야 한다. 모든 이러한 수정 및 변형이 이하의 청구범위에 의해 보호되는 본 발명의 범위 내에 포함되는 것으로 의도된다.

Claims (15)

  1. 컴퓨터로 구현되는 방법으로서, 상기 방법은
    가상 데스크톱 인스턴스와 연관된 가변 자원(variable resource)으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 수신하는 단계,
    가상 데스크톱 인스턴스를 액세스하기 위한 컴퓨팅 디바이스로부터 요청을 수신하는 단계 - 상기 요청은 컴퓨팅 디바이스의 사용자를 식별함 - ,
    컴퓨팅 디바이스로, 자원의 세트에 의해 구성(configure)된 제1 가상 데스크톱 인스턴스로의 액세스를 제공하는 단계, 및
    가변 자원으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 기초로, 상기 자원의 세트를 변경할지 여부를 결정하는 단계
    를 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 자원의 세트를 변경할지 여부를 결정하는 단계는 사용자로부터의 상기 변경에 대한 요청에 응답하여 이뤄지는, 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 자원의 세트의 이용을 모니터링하는 단계를 더 포함하고, 상기 자원의 세트를 변경할지 여부를 결정하는 단계는 모니터링을 기초로 변경에 대한 필요성의 결정에 응답하여 이뤄지는, 컴퓨터로 구현되는 방법.
  4. 제1항에 있어서, 상기 자원의 세트를 변경하도록 결정되는 경우, 가상 데스크톱 인스턴스와 연관된 메모리 규격(memory specification) 또는 프로세싱 파워 규격(processing power specification) 중 하나 이상을 크기 조정(scaling)하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 제1항에 있어서, 제1 가상 데스크톱 인스턴스는 사용자 프로파일에 따르는 자원의 세트에 의해 구성되고 가변 자원으로의 액세스에 대한 하나 이상의 규칙이 상기 사용자 프로파일에 포함되는, 컴퓨터로 구현되는 방법.
  6. 제1항에 있어서, 상기 자원의 세트를 변경하도록 결정되는 경우, 컴퓨팅 디바이스로, 변경된 자원의 세트에 의해 구성된 제2 가상 데스크톱 인스턴스로의 액세스를 제공하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서, 하나 이상의 볼륨(volume)을 제1 가상 데스크톱 인스턴스에 연결(attach)하는 단계를 더 포함하며, 상기 하나 이상의 볼륨은 사용자 및 사용자에 대한 데이터 저장소(data store)에 대한 데스크톱 개인화 정보(desktop personalization information)를 포함하며, 제1 가상 데스크톱 인스턴스 내에서 실행 중인 제1 운영 체제는 사용자에 대한 데스크톱 개인화 정보 및 사용자에 대한 데이터 저장소 내 저장공간으로 사상되는 하나 이상의 운영 체제 폴더에 따라 개인화되는, 컴퓨터로 구현되는 방법.
  8. 시스템으로서,
    프로세서와 컴퓨터-실행형 명령을 갖는 메모리를 포함하는 하나 이상의 컴퓨터 시스템을 포함하고, 상기 명령은 실행될 때 시스템으로 하여금,
    가상 데스크톱 인스턴스와 연관된 가변 자원(variable resource)으로의 각자 사용자의 액세스에 대한 하나 이상의 규칙을 수신하게 하고
    가상 데스크톱 인스턴스를 액세스하기 위한 컴퓨팅 디바이스로부터 요청을 수신하게 하며 - 상기 요청은 컴퓨팅 디바이스의 사용자를 식별함 - ,
    컴퓨팅 디바이스로, 자원의 세트에 의해 구성(configure)된 제1 가상 데스크톱 인스턴스로의 액세스를 제공하게 하고,
    제1 가상 데스크톱 인스턴스와 연관된 자원으로의 사용자의 액세스를 모니터링하게 하며,
    가변 자원으로의 사용자의 각자의 액세스에 대한 하나 이상의 규칙을 기초로, 상기 자원의 세트를 변경할지 여부를 결정하게 하는, 시스템.
  9. 제8항에 있어서, 컴퓨터-실행형 명령은, 실행될 때, 상기 제1 가상 데스크톱 인스턴스 상에 설치된 에이전트가 상기 제1 가상 데스크톱 인스턴스 상에서 런칭되는 애플리케이션의 세트를 모니터링하는 것을 기초로 상기 자원의 세트를 변경할지 여부를 결정하도록 컴퓨팅 시스템에게 지시하는, 시스템.
  10. 제8항에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 변경된 자원의 세트를 갖는 가상 데스크톱 인스턴스를 액세스하기 위해 컴퓨팅 디바이스로부터 수신된 요청을 기초로 상기 자원의 세트를 변경할지 여부를 결정하도록 컴퓨팅 시스템에게 지시하는, 시스템.
  11. 제10항에 있어서, 컴퓨터-실행형 명령은, 실행될 때, 사용자와 연관된 하나 이상의 규칙에서 지시되는 자원의 양까지 자원의 세트를 변경하도록 컴퓨팅 시스템에게 지시하는, 시스템.
  12. 제10항에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 시스템으로 하여금, 사용자의 사용자 계정과 연관된 관리자에게, 상기 사용자와 연관된 하나 이상의 규칙에서 지시되는 자원의 양을 초과하는 자원의 세트에 대한 요청과 관련하여 통지하게 하는, 시스템.
  13. 제8항에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 시스템으로 하여금 가상 데스크톱 인스턴스로의 액세스를 위한 비용을 계산하게 하는, 시스템.
  14. 제13항에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 시스템으로 하여금, 자원의 세트를 기초로 상기 가상 데스크톱 인스턴스로의 액세스를 위한 시간 주기당 정액 요금을 이용하여 비용을 계산하게 하는, 시스템.
  15. 제13항에 있어서, 상기 컴퓨터-실행형 명령은, 실행될 때, 시스템으로 하여금, 자원의 세트를 변경하도록 결정하게 하고, 컴퓨팅 시스템으로 하여금, 변경된 자원의 세트를 기초로 가상 데스크톱 인스턴스로의 액세스를 위한 시간 주기당 가변 요금을 이용해 비용을 계산하게 하는, 시스템.
KR1020167001703A 2013-06-26 2014-06-25 컴퓨팅 세션의 관리 KR20160048763A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/928,284 2013-06-26
US13/928,284 US20150019705A1 (en) 2013-06-26 2013-06-26 Management of computing sessions
PCT/US2014/044121 WO2014210172A2 (en) 2013-06-26 2014-06-25 Management of computing sessions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187036229A Division KR102027929B1 (ko) 2013-06-26 2014-06-25 컴퓨팅 세션의 관리

Publications (1)

Publication Number Publication Date
KR20160048763A true KR20160048763A (ko) 2016-05-04

Family

ID=52142828

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167001703A KR20160048763A (ko) 2013-06-26 2014-06-25 컴퓨팅 세션의 관리
KR1020187036229A KR102027929B1 (ko) 2013-06-26 2014-06-25 컴퓨팅 세션의 관리

Family Applications After (1)

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

Country Status (9)

Country Link
US (1) US20150019705A1 (ko)
EP (1) EP3014434B1 (ko)
JP (2) JP2016525243A (ko)
KR (2) KR20160048763A (ko)
CN (1) CN105683913A (ko)
AU (1) AU2014302471B2 (ko)
CA (1) CA2916278C (ko)
SG (1) SG11201510431UA (ko)
WO (1) WO2014210172A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220129883A (ko) * 2021-03-17 2022-09-26 주식회사 틸론 가상 데스크톱 시스템에서의 데이터 리다이렉션 방법 및 시스템
US11650828B2 (en) 2016-10-26 2023-05-16 Simpleway Technologies Ltd. System and method for device interoperability and synchronization

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
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
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
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
AU2020219107A1 (en) 2019-02-05 2021-08-26 Casa Systems, Inc. Methods and apparatus for recovering network association information
CN111800294B (zh) * 2020-06-09 2022-11-22 中移(杭州)信息技术有限公司 网关故障诊断方法、装置、网络设备及存储介质
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 仮想マシン環境においてメモリ資源を配置するメモリ資源配置制御方法、仮想マシンシステム及びプログラム
AU2008258222C1 (en) * 2007-06-06 2013-11-07 Datavalet Technologies 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 動的にリソースを割り当てる方法、システム及びプログラム
US9515952B2 (en) * 2011-07-01 2016-12-06 Hewlett Packard Enterprise Development Lp Method of and system for managing computing resources
KR101507919B1 (ko) * 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11650828B2 (en) 2016-10-26 2023-05-16 Simpleway Technologies Ltd. System and method for device interoperability and synchronization
KR20220129883A (ko) * 2021-03-17 2022-09-26 주식회사 틸론 가상 데스크톱 시스템에서의 데이터 리다이렉션 방법 및 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101868489B1 (ko) 컴퓨팅 세션의 관리
JP6630792B2 (ja) コンピューティングセッションの管理
KR101840222B1 (ko) 컴퓨팅 세션의 관리
EP3014431B1 (en) Management of computing sessions
US20150006614A1 (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
E601 Decision to refuse application
A107 Divisional application of patent