KR101178752B1 - 서버-기반 데스크탑 가상 머신 아키텍처의 클라이언트 머신들로의 확장 - Google Patents
서버-기반 데스크탑 가상 머신 아키텍처의 클라이언트 머신들로의 확장 Download PDFInfo
- Publication number
- KR101178752B1 KR101178752B1 KR1020107018920A KR20107018920A KR101178752B1 KR 101178752 B1 KR101178752 B1 KR 101178752B1 KR 1020107018920 A KR1020107018920 A KR 1020107018920A KR 20107018920 A KR20107018920 A KR 20107018920A KR 101178752 B1 KR101178752 B1 KR 101178752B1
- Authority
- KR
- South Korea
- Prior art keywords
- disk
- virtual machine
- client
- delta
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
서버-기반 데스크탑-가상 머신 아키텍처는 클라이언트 머신으로 확장될 수도 있다. 일 실시형태에서, 사용자 데스크탑은 클라이언트 시스템으로부터 원격으로 액세스된다. 원격 데스크탑은, 하나 이상의 서버 컴퓨터들을 포함할 수도 있는 서버 시스템 상에서 구동하는 제 1 가상 머신에 의해 생성된다. 제 1 가상 머신의 실행 시에, 대응하는 가상 디스크로의 기입들은 델타 디스크 파일 또는 리도 로그로 안내된다. 가상 디스크의 카피는 클라이언트 시스템 상에서 생성된다. 사용자가 자신의 데스크탑을 '체크 아웃' 하기를 원할 경우, (구동하고 있다면) 제 1 가상 머신은 종료되며 델타 디스크의 카피는 클라이언트 시스템 상에서 생성된다. 일단 델타 디스크가 클라이언트 시스템 상에 존재하면, 클라이언트 시스템에서의 사용자의 데스크탑에 대한 로컬 액세스를 제공하기 위해 가상 디스크 및 델타 디스크를 사용하여 클라이언트 시스템 상에서 제 2 가상 머신이 시작될 수 있다. 이것은 사용자로 하여금, 네트워크에 접속하지 않으면서 자신의 데스크탑에 액세스하게 한다.
Description
본 출원은, 2008년 2월 26일자로 출원되었고, 그 전체가 여기에 참조로서 포함된 미국 가출원 제 61/031,613호의 이점을 주장한다.
컴퓨팅 하드웨어 플랫폼의 계산 효율성 및 유연성을 매우 증가시키므로 컴퓨터 가상화의 이점이 인식되어 왔다. 예를 들어, 컴퓨터 가상화는, 다수의 가상 컴퓨팅 머신들로 하여금 공통의 컴퓨팅 하드웨어 플랫폼 상에서 구동하게 한다. 물리적인 컴퓨팅 하드웨어 플랫폼과 유사하게, 가상 컴퓨팅 머신들은, 가상 하드 디스크와 같은 저장 매체, 가상 프로세서들, 및 컴퓨팅 환경과 관련되는 다른 시스템 컴포넌트들을 포함한다. 예를 들어, 가상 하드 디스크는, 가상 머신에 대한 운영 시스템, 데이터, 및 애플리케이션 파일들을 저장할 수 있다.
서버-기반 컴퓨팅은, 서버에 관해 원격으로 배치되는 네트워크화된 클라이언트 시스템으로 하여금 그 서버 상의 컴퓨팅 리소스들에 액세스하게 한다. 예를 들어, 클라이언트는 RDP 또는 VNC 와 같은 원격 데스크탑 프로토콜을 사용하여, 데스크탑을 원격으로 액세스할 수 있고, 키보드 또는 마우스 입력과 같은 사용자 입력을 원격 시스템에 송신할 수 있다. 서버-기반 컴퓨팅은 컴퓨팅 리소스들의 중앙화된 관리를 용이하게 한다. 그러나, 최적이 아닌 컴퓨팅 경험이 결점이다. 예를 들어, 그래픽 집중 애플리케이션들, 및 USB 디바이스, 프린터 등과 같은 로컬 디바이스들은 원하는 바대로 동작하지 않을 수도 있다. 또한, 사용자는, 서버 상에 저장된 사용자의 데스크탑에 대한 액세스를 획득하기 위해 네트워크에 접속된 상태로 유지해야 한다.
서버-기반 컴퓨팅에 대한 일 대안으로서, 클라이언트측 컴퓨팅은 사용자로 하여금 기업 네트워크로부터 이격되게 위치되게 하고 오프라인 모드, 즉, 네트워크 또는 인터넷에 접속되지 않게 한다. 그러나, 기업 관리 관점으로부터, 클라이언트측 컴퓨팅은, 운영 시스템들 및 애플리케이션들의 업데이트, 보안 시행, 컴플리안스 (compliance) 의 라이센싱, 정보의 록킹 (lock), 다양한 정책들에 대한 지원 강화, 및 데이터 백업과 같은 태스크들이 발생할 경우, 바람직하지 않은 비효율성을 유도한다.
상술된 문제점들은, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장함으로써 해결될 수도 있다. 일 실시형태에서, 사용자 데스크탑은 클라이언트 시스템으로부터 원격으로 액세스된다. 원격 데스크탑은, 하나 이상의 서버 컴퓨터들을 포함할 수도 있는, 서버 시스템 상에서 구동하는 제 1 가상 머신에 의해 생성된다. 제 1 가상 머신의 실행 동안, 대응하는 가상 디스크로의 기입이 델타 디스크 파일 또는 리도 (redo) 로그에 안내된다. 가상 디스크의 카피는 클라이언트 시스템 상에서 생성된다. 사용자가 자신의 데스크탑을 "체크 아웃 (check out)" 하기를 원할 경우, 제 1 가상 머신이 (구동하고 있다면) 종료되고, 델타 디스크의 카피가 클라이언트 시스템 상에서 생성된다. 일단 델타 디스크가 클라이언트 시스템 상에 존재하면, 제 2 가상 머신은, 클라이언트 시스템에서 사용자의 데스크탑에 대한 로컬 액세스를 제공하기 위해 가상 디스크 및 델타 디스크를 사용하여 클라이언트 시스템 상에서 시작할 수 있다. 그 후, 이것은 사용자로 하여금, 네트워크에 접속하지 않으면서 자신의 데스크탑에 액세스하게 한다.
도 1은, 중앙-관리되는 사용자 데스크탑들에 대한 액세스를 제공하는 간단한 예시적인 가상 데스크탑 인프라구조 (VDI) 시스템을 도시한다.
도 2는 예시적인 가상화된 컴퓨터 시스템의 논리 표현을 도시한다.
도 3a, 3b, 3c, 및 3d는 도 1의 가상 데스크탑 인프라구조 시스템의 동작을 예로서 도시한 블록도를 도시한다.
도 4는 자동화 백그라운드 (background) 동기화로 사용자를 원격 데스크탑에 접속시키기 위한 예시적인 절차를 도시하는 흐름도를 도시한다.
도 5는 데스크탑 체크-아웃 절차를 구현하는 방법을 예로서 나타내는 흐름도를 도시한다.
도 2는 예시적인 가상화된 컴퓨터 시스템의 논리 표현을 도시한다.
도 3a, 3b, 3c, 및 3d는 도 1의 가상 데스크탑 인프라구조 시스템의 동작을 예로서 도시한 블록도를 도시한다.
도 4는 자동화 백그라운드 (background) 동기화로 사용자를 원격 데스크탑에 접속시키기 위한 예시적인 절차를 도시하는 흐름도를 도시한다.
도 5는 데스크탑 체크-아웃 절차를 구현하는 방법을 예로서 나타내는 흐름도를 도시한다.
도 1은 중앙-관리되는 사용자 데스크탑들에 대한 액세스를 제공하는 간단한 예시적인 가상 데스크탑 인프라구조 (VDI) 시스템 (10) 을 도시한다. "데스크탑" 이라는 용어는, 사용자가 사용자의 애플리케이션들, 셋팅들 및 데이터를 런칭 (launch) 하고, 그들과 상호작용하고, 그들을 관리할 수 있는 휴먼 인터페이스 환경을 지칭한다. 통상적으로, 데스크탑은 비디오 디스플레이 상의 운영 시스템에 의해 프리젠테이션되며, 사용자는 마우스 및 키보드를 사용하여 그 데스크탑과 상호작용한다. 모든 애플리케이션들, 문서들 등은 데스크탑 상에 디스플레이될 수도 있으며, 통상적으로, 사용자 입력은 디스플레이 상의 사용자에 가시적인 애플리케이션들에 의해 수신된다. 또한, "데스크탑" 이라는 용어는, "랩탑" 또는 "팜탑 (palmtop)" 와는 별개인 사용자의 데스크 상 또는 그 근처에 위치될 수도 있는 물리적인 컴퓨터 시스템 또는 "물리적인 데스크탑" 을 지칭하기 위해 사용되는 것으로 공지되어 있지만, 여기에 사용된 바와 같이, "데스크탑" 이라는 용어 그 자체는, 물리적인 컴퓨터 시스템이 아닌 상술된 휴먼 인터페이스 환경을 배타적으로 지칭할 것이다. 컴퓨터 가상화를 사용하여, 운영 시스템 셋팅들, 애플리케이션들 및 애플리케이션 셋팅들, 및 데이터를 포함하는 사용자의 컴퓨터 시스템은, 하나의 물리적인 컴퓨터로부터 또 다른 물리적인 컴퓨터로 가상 머신으로서 전달되거나 카피될 수도 있다. 가상 머신이 이러한 방식으로 카피될 경우, 사용자는, 본래의 가상 머신을 포함하는 물리적인 컴퓨터 시스템 또는 그 카피를 포함하는 물리적인 컴퓨터 시스템으로부터 자신의 "데스크탑" 에 액세스할 수 있다. 따라서, "데스크탑" 은 특정한 물리적인 컴퓨터 시스템에 더 이상 고정되지 않는다.
VDI 시스템 (10) 은, 수 개의 VDI 클라이언트 시스템들 (12, 14, 및 16) 과 네트워크 (13) 를 통해 데이터 통신하는 VDI 서버 시스템 (11) 을 포함한다. 네트워크 (13) 는, 로컬 영역 네트워크 (LAN), 또는 인터넷과 같은 개인 또는 공용 액세스가능 와이드 영역 네트워크와 같은 임의의 구성일 수도 있다. 도 1이, 방화벽, 접속 브로커, 및 로드 밸랜서 뿐만 아니라 백-엔드 (back-end) 저장 네트워크, 데이터베이스 서버 등과 같은 다른 컴포넌트들을 포함할 수도 있는 통상적인 VDI 네트워크 서버 시스템 (11) 의 간략화된 표현을 도시한다는 것을 인식해야 한다. 각각의 클라이언트 시스템 (12, 14, 16) 은, 사용자가 자신의 데스크탑과 상호작용할 수 있는 사용자 인터페이스 (40) (하나만 도시됨) 를 포함할 수도 있다.
도 2는, 예시적인 가상화된 컴퓨터 시스템 (20) 의 논리 표현을 도시한다. 아래에 더 상세히 설명될 바와 같이, VDI 서버 시스템 (11), 및 VDI 클라이언트 시스템들 (12, 14, 및 16) 은 도 2를 참조하여 여기에 설명되는 가상화 소프트웨어를 포함할 수도 있다. 가상화된 컴퓨터 시스템 (20) 은, 물리적인 하드웨어 플랫폼 (22), 그 하드웨어 플랫폼 (22) 상에서 구동하는 가상화 소프트웨어 (80), 및 가상화 소프트웨어 (80) 에 의해 하드웨어 플랫폼 (22) 상에서 구동하는 하나 이상의 가상 머신들 (70) 을 포함한다. 따라서, 가상화 소프트웨어 (80) 는, 하드웨어 플랫폼 (22) 의 물리적인 하드웨어와 가상 머신 (70) "내에서" 구동하는 게스트 시스템 소프트웨어 (72) 사이에 논리적으로 개재된다.
하드웨어 플랫폼 (22) 은, 서로 데이터 통신하는 다양한 하드웨어 플랫폼 컴포넌트들을 배치시키는 하나 이상의 시스템 버스들 (28) 을 갖는 범용 컴퓨팅 시스템일 수도 있다. 예를 들어, 하나 이상의 프로세서들 (24) 은 시스템 버스(들) (28) 를 사용하여 메모리 (26) 와 데이터 통신하도록 배치된다. 메모리 (26) 는, 판독 전용 메모리 (ROM), 랜덤 액세스 메모리 (RAM), 캐시 메모리들, 및 다양한 레지스터 메모리들을 포함하는 메모리들의 시스템을 포함할 수도 있다. 비-휘발성 데이터 저장부 (30) 는, 소프트웨어 또는 데이터를 저장하기 위한, 하나 이상의 디스크 드라이브들 또는 다른 머신-판독가능 매체 또는 대용량 데이터 저장부 시스템을 포함할 수도 있다. 메모리 (26) 및/또는 비-휘발성 데이터 저장부 (30) 는, 가상화 소프트웨어 (80) 및 가상 머신 (70) 상에서 구동하는 게스트 시스템 소프트웨어 (72) 를 저장할 수도 있다. 그 각각이 대응하는 사용자 디바이스들 (미도시) 에 접속될 수도 있는, 키보드 제어기 (미도시), 마우스 제어기 (미도시), 비디오 제어기 (미도시), 및 오디오 제어기 (미도시) 를 포함하는 사용자 인터페이스 (40) 가 제공될 수도 있다. 서버 컴퓨터 시스템들에 대해 통상적인 바와 같이, VDI 서버 시스템 (11) (도 1) 에 대해, 사용자 인터페이스들 및 디바이스들이 포함될 수도 있거나 포함되지 않을 수도 있거나, 하드웨어 플랫폼 (22) 에 접속될 수도 있거나 접속되지 않을 수도 있다. 대신, 사용자 상호작용은, 데이터 중앙 관리 분야에서 일반적으로 알려진 바와 같이 원격으로 발생할 수도 있다. 네트워크 인터페이스 (50) 는, 네트워크 (13) (도 1) 와 같은 네트워크를 통한 데이터 통신을 가능하게 한다. 네트워크 인터페이스 (50) 는, TCP/IP 와 같은 네트워크 프로토콜을 사용하여 통신을 용이하게 할 수도 있다.
가상화 소프트웨어 (80) 는 컴퓨터 가상화 분야에서 주지되어 있다. 가상화 소프트웨어 (80) 는 시스템 리소스 관리 및 가상 머신 에뮬레이션을 수행한다. 가상 머신 에뮬레이션은 가상 머신 모니터 (VMM) 컴포넌트에 의해 수행될 수도 있다. 통상적인 구현에서, 각각의 가상 머신 (70) (하나만 도시됨) 은 대응하는 VMM 인스턴스를 갖는다. 구현에 의존하여, 가상화 소프트웨어 (80) 는 호스트되지 않거나 호스트될 수도 있다. 일반적으로, 호스트되지 않은 가상화 소프트웨어는 시스템 리소스들을 관리하기 위해 특수화된 가상화 커널에 의존하지만, 호스트된 가상화 소프트웨어는, 시스템 리소스들을 관리하기 위해 윈도우 또는 리눅스와 같은 판매되는 운영 시스템, 즉, "호스트 운영 시스템" 에 의존한다. 호스트된 가상화 시스템에서, 호스트 운영 시스템은 가상화 소프트웨어 (80) 의 일부로서 고려될 수도 있다.
개념적으로, 가상 머신 (70) 은, (가상화 소프트웨어 (80) 에 의해 에뮬레이션되는 바와 같은) 가상 하드웨어 디바이스들의 상태 및 게스트 시스템 소프트웨어 (72) 의 콘텐츠들을 포함한다. 도 2에 도시된 바와 같이, 게스트 시스템 소프트웨어 (72) 는 게스트 운영 시스템 (74) 및 게스트 애플리케이션 (78) 을 포함한다. 게스트 운영 시스템 (74) 은, 윈도우 또는 GNU/리눅스와 같은 판매되는 운영 시스템일 수도 있다. 가상화 소프트웨어 (80) 는, 로컬 사용자 인터페이스 (40) 또는 원격 데스크탑 클라이언트로의 사용자 인터페이스 출력들을 안내하는 것을 포함하여, 가상 머신 (70) 으로의 입력들 및 출력들 및 가상 머신 (70) 으로부터의 입력들 및 출력들을 관리하는 것을 담당한다.
도 3a 및 도 3b는, 사용자의 데스크탑에 대한 원격 (또는 중앙화된) 액세스 및 로컬 액세스 양자를 가지며, 단일 사용자로 하여금 원격 또는 국부적으로 자신의 데스크탑에 액세스하게 하는, 확장가능한 VDI 시스템 (100) 을 나타낸 간략화된 블록도를 도시한다. 확장가능한 VDI 시스템 (100) 은 서버 시스템 (110) 및 클라이언트 시스템 (120) 을 포함한다. VM (118) 은 서버 시스템 (110) 상에서 실행하며, 클라이언트 시스템 (120) 을 통하여 사용자에 의해 액세스될 수 있다. VM (118) 은 도 2를 참조하여 상술된 바와 같이 모든 사용자의 애플리케이션들 및 데이터를 포함하며, 가상화 소프트웨어 (117) 를 사용하여 실행된다. 일 실시형태에서, 가상화 소프트웨어 (117) 는 호스트되지 않은 가상화 소프트웨어를 포함한다. 또한, 단지 하나의 VM (118) 만이 서버 (110) 에서 실행하는 것으로 도시되어 있지만, 임의의 수의 VM들이 실행될 수도 있으며, 그 각각은 하나 이상의 대응하는 사용자들과 관련된다.
가상화 소프트웨어 (117) 는 사용자 I/O 를 원격 데스크탑 호스트 (115) 에 안내한다. 원격 데스크탑 호스트 (115) 는 사용자의 그래픽 및 사운드들을 원격 데스크탑 클라이언트 (125) 에 송신한다. 유사하게, 원격 데스크탑 클라이언트 (125) 는 사용자의 입력, 예를 들어, 키보드 및 마우스 입력들을 원격 데스크탑 호스트 (115) 에 전송한다. 원격 데스크탑 클라이언트 (125) 는, 다양한 사용자 I/O 디바이스들을 포함할 수도 있는 사용자 인터페이스 (124) 를 통해 사용자에게 사용자의 데스크탑을 제공한다.
클라이언트 시스템 (120) 은, 원격 데스크탑 클라이언트 (125) 이외에, 가상화 소프트웨어 (127) 와 함께 가상 머신 (128) 을 포함한다. 가상 머신 (128) 은, 클라이언트 시스템 (120) 에 접속된 물리적인 디스크 (130) 상의 하나 이상의 파일들로서 상주하는 디스크 이미지인 가상 디스크 (132) 에 액세스할 수 있다. 가상 디스크 (132) 는 가상화 소프트웨어 (127) 에 의해 유지된다. 일 실시형태에서, 가상화 소프트웨어 (127) 는, 상술된 바와 같은 클라이언트의 호스트 운영 시스템과 함께 구동하는 호스트된 가상화 소프트웨어를 포함한다. 가상 디스크 (132) 는, 일 특정 상태에서, 가상 디스크들 (132 및 142) 이 동일하거나, 동일하지는 않지만 논리적으로 동등하도록 가상 디스크 (142) 로부터 (또는 가상 디스크 (142) 로) 초기에 복사될 수 있다. 논리적인 동등함에 의해, 실제 디스크 섹터들이 동일하게 순서화되지 않을 수도 있지만, 동일한 파일 시스템 구조들에 논리적으로 관련되는 동일한 파일 시스템 및 데이터 파일들을 각각의 가상 디스크가 포함한다는 것을 의미한다. 또한, 2개의 동일한 디스크들이 논리적으로 동등하다.
서버 시스템 (110) 은, 서버 시스템 (110) 에 액세스가능한 물리적인 디스크 (140) 를 포함하거나, 그 물리적인 디스크 (140) 와 통신한다. 사용자 가상 디스크들을 저장하기 위해 가상화 소프트웨어 (117) 에 의해 사용되는 물리적인 디스크 (140) 는, 대응하는 가상 머신들에 대한 디스크 이미지 파일들이다. 사용자가 VM (118) 상에서 작동함에 따라, 물리적인 디스크 (140) 상에 하나 이상의 파일들로서 상주하는 가상 디스크 (142) 로 기입들을 이슈할 수도 있다. 그러나, 변화들을 가상 디스크 (142) 에 직접적으로 기입하기 보다는, 가상화 소프트웨어 (117) 는 기입들을 델타 디스크 (144) 에 재안내하도록 구성될 수도 있다. 델타 디스크 (144) 는 리도 로그 또는 다른 "차이" 파일을 포함할 수도 있다. 본질적으로, 델타 디스크 (144) 는, 가상 디스크 (142) 에 임의의 변화들을 실제로 행하지 않으면서 가상 디스크 (142) 에 대한 변형들의 리스트를 보유한다. 델타 디스크는 가상화 분야에 공지되어 있으며, 예를 들어, 미국 특허 제 7,356,679호에 더 상세히 설명되어 있다. 가상 머신 (118) 이 판독을 이슈할 경우, 가상화 소프트웨어 (117) 는, 데이터에 존재하는지를 판정하기 위해 델타 디스크 (144) 에 액세스하며, 존재하지 않는다면, 델타 디스크 (144) 에 대한 부모 (parent) 디스크 이미지인 가상 디스크 (142) 에 액세스한다. 그 후, 가상화 소프트웨어 (117) 는, 물리적인 디바이스의 간단한 디스크 판독이 발생하였던 것처럼 가상 머신 (118) 에 데이터를 전달한다.
사용자가 자신의 가상 머신을 "체크 아웃" 하기를 결정하여, 오프 라인으로 액세스될 수 있는 경우, 즉, 서버 시스템 (110) 에 액세스하지 않는 경우, 사용자는 관리 소프트웨어 (미도시, 더 상세히 후술됨) 에 대한 이러한 소망을 나타낼 수도 있다. 이러한 시간에서, 가상 머신 (118) 은 "파워 오프" 되며, 델타 디스크 (144) 는, 사용자의 물리적인 디스크 (130) 상에서 델타 디스크 (134) 를 생성하기 위해 사용자의 물리적인 디스크 (130) 에 카피된다. 일단 이러한 다운로드가 완료되고 검증되면, 가상 디스크 (132) 및 가상 디스크 (142) 가 논리적으로 동등한 상태로 유지되지만 사용자에 의해 남겨진 가장 최근의 현재 상태를 반영하기 위해 업데이트되도록, 델타 디스크 (144) 를 형성하는 기입들은 가상 디스크 (142) 와 병합되고, 유사하게, 델타 디스크 (134) 는 가상 디스크 (132) 와 병합된다.
일 실시형태에서, 가상 머신 (118) 을 파워 오프하기 보다는, 사용자는 간단히 정지할 수도 있으며, 이러한 경우, VM 상태 (136) 는 가상 머신 (118) 의 상태를 보유하는 가상화 소프트웨어 (117) 로부터 또한 다운로드된다.
도 3b는, 사용자가 국부적으로 구동하는 가상 머신 (128) 에 의해 오프라인으로 자신의 데스크탑에 액세스하고 있는 확장가능한 VDI 시스템 (100) 을 도시한다. 이러한 경우, 가상화 소프트웨어 (127) 는 클라이언트 시스템 (120) 상에서 가상 머신 (128) 을 구동하지만, 원격 데스크탑 클라이언트 (125) 는 사용되지 않는다. 따라서, 사용자는 임의의 네트워크로부터 접속해제될 수도 있으며, 오프라인으로 작동할 수도 있다. 가상화 소프트웨어 (127) 는 가상 디스크 (132) 를 직접적으로 변형시키지 않는다. 대신, 도 3a의 델타 디스크 (144) 에 관해 상술된 바와 같이, 사용자가 가상 디스크 (132) 로 이슈하였던 모든 변화들을 포함하는 델타 디스크 (134) 를 생성한다.
몇몇 포인트에서, 사용자는 서버 시스템 (110) 에 대해 자신의 데스크탑을 "체크인" 하기를 원하거나 요구될 수도 있다. 이러한 시간에서, 가상 머신 (128) 은 "파워 다운" 되며, 가상화 소프트웨어 (127) 는 서버 (110) 에 접속하고 델타 디스크 (134) 를 서버의 데이터 저장부 (140) 에 카피하여, 델타 디스크 (144) 를 생성한다. 일 실시형태에서, 가상 머신은 파워 다운되기보다는 정지될 수도 있으며, VM 상태 (146) 는 서버 시스템 (110) 에 업로드된다. 델타 디스크 (134) 또는 델타 디스크 (134) 플러스 상태 (146) 를 카피한 이후, 델타 디스크들 (134, 144) 은, 각각, 가상 디스크들 (132, 142) 에 병합된다. "병합된" 에 의해, 델타 디스크들 각각에 포함된 디스크 기입들이, 각각, 가상 디스크 파일들 (132, 142) 에 기입된다는 것을 의미한다. 이러한 체크-인 절차 이후, 각각의 가상 디스크들 (132, 142) 은 동일하거나 적어도 논리적으로 동등하여, 사용자가 자신이 가상 머신 (128) 으로 중지하였던 가상 머신 (118) 을 사용하여 컴퓨팅하기를 시작할 수도 있다.
다음으로, 더 상세히 후술될 바와 같이, 다양한 향상 및 최적화가 상술된 체크인, 체크-아웃 기능의 기본적인 동작에 행해질 수 있다.
도 3c는, 확장가능한 VDI 시스템 (100) 의 더 상세한 도면을 도시한다. 사용자의 데스크탑은, 서버 시스템 (110) 에 접속된 물리적인 디스크 (140) 상에 상주하는 하나 이상의 파일들 (141) 에 의해 정의된다. 파일들 (141) 은, 정책들 (149), 가상 디스크 (142), 델타 디스크 (144), 및 VM 상태 (146) 에 대한 파일들을 포함한다. 정책들은, 데이터베이스를 사용하여 및/또는 가상 디스크 (142) 내의 메타 데이터로서 관련 또는 삽입된 구성 파일에 의해 저장될 수도 있다. 부가적인 데스크탑 파일들 (148) 은, 대응하는 사용자 또는 사용자들의 그룹에 의해 액세스가능한 부가적인 데스크탑들을 정의하도록 제공될 수도 있다.
도 3c에 도시된 바와 같이, 클라이언트 시스템 (120) 은, 서버 시스템 (110) 상의 관리 서버 (112) 와 통신하는 VDI 클라이언트 (122) 를 포함한다. 관리 서버 (112) 는, 클라이언트 (120) 의 사용자를 인증하고, 사용자 데스크탑들로의 액세스에 대한 요청들을 프로세싱하며, 정책들 (149) 을 시행한다. 정책들 (149) 은, 특정한 데스크탑이 이용가능하게 될 수도 있는 사람 및 그 환경을 정의할 수도 있다. 예를 들어, 정책들 (149) 은 그 요청을 행하는 사용자에 특정일 수도 있지만, 글로벌 정책들, 사용자의 위치 또는 그룹에 기초한 정책들, 또는 요청된 서비스들이 또한 적소에 있을 수도 있다.
일 실시형태에서, 관리 서버 (112) 는, 상술된 바와 같이 다수의 서버 머신들을 포함할 수도 있는 서버 시스템 (110) 의 다른 컴포넌트들 및 클라이언트 시스템 (120) 과 네트워크 (13) 를 통해 통신하는 별개의 물리적인 컴퓨터 시스템 상에 인스톨된 서버 애플리케이션이다. 본 발명의 예에서, 사용자가 클라이언트 시스템 (120) 상의 VDI 클라이언트 (125) 와 상호작용할 경우, 사용자와 관련된 데스크탑에 대해 요청이 네트워크 (13) 를 통해 서버 (110) 로 전송된다. 상술된 바와 같이, 서버 시스템 (110) 은, 각각이 하나 이상의 사용자들에 대응하는 복수의 VM들 (단지 하나만 도시됨) 을 포함할 수도 있다. 관리 서버 (112) 는, 사용자의 요청을 수신하고, 사용자 및/또는 요청을 인증하고, 필요에 따라 VM (118) 을 시작 또는 재개하며, VDI 클라이언트 (125) 를 원격 데스크탑 서버 (115) 에 접속시킨다.
VDI 클라이언트 (122) 는, 사용자로 하여금 VDI 클라이언트 (122), 이에 따라 서버 시스템 (110) 과 상호작용하게 하는 그래픽 사용자 인터페이스를 제공하는 프리젠테이션 레이어 (124) 를 포함한다. 일 실시형태에서, VDI 클라이언트 (122) 는 인터넷 브라우저 내에서 또는 그와 함께 실행한다.
몇몇 포인트에서, 사용자는, 도 3a 및 도 3b를 참조하여 상술된 바와 같이 자신의 데스크탑을 "체크-인" 또는 "체크-아웃" 하기를 원할 수도 있다. 이러한 경우, 가상 디스크 또는 델타 디스크는, (사용자가 데스크탑을 "체크-인" 또는 "체크-아웃" 하는지에 의존하여) 클라이언트 시스템 (120) 으로부터 서버 시스템 (110) 으로, 또는 서버 시스템 (110) 으로부터 클라이언트 시스템 (120) 으로 카피된다. 사용자가 가상 디스크의 로컬 카피를 갖고 있지 않은 컴퓨터에 대해 데스크탑을 체크 아웃하고 있으면, 델타 디스크 (144) 는 서버 시스템 (110) 상의 가상 디스크 (142) 와 병합될 수도 있으며, 전체 가상 디스크는 사용자의 로컬 클라이언트 시스템 (120) 에 카피된다. 가상 디스크가 매우 클 수 있기 때문에, 큰 양의 데이터 및 잠재적으로 제한된 대역폭으로 인해 이러한 초기 체크-아웃은 매우 시간 소비적일 수도 있다. 델타 디스크들이 후속 체크-인 및 체크-아웃 절차 동안 송신되는 델타 디스크들이 사용자 활동에 의존하여 매우 크게 될 수 있더라도, 예를 들어, 새로운 애플리케이션이 인스톨될 수도 있거나, 기존의 애플리케이션 또는 운영 시스템 컴포넌트가 광범위하게 업그레이드 또는 패치될 수도 있다.
일 실시형태에서, 사용자 데스크탑들을 체크-인 및 체크-아웃하기 위해 요구되는 시간은, 사용자 활동 또는 가상 머신의 동작에 간섭하지 않으면서 사용자가 가상 머신과 상호작용하고 있는 동안, 클라이언트 시스템 (120) 과 서버 시스템 (110) 사이에서 데이터를 백그라운드로 송신함으로써 감소될 수도 있다. 이것은, 백그라운드 동기화 또는 백그라운드 데이터 전달로 지칭될 수도 있다. 백그라운드 데이터 전달은, VM (118) 에 대한 액세스를 간단히 허여하는 클라이언트 시스템 (120) 의 사용자에 자동적으로 응답하여 발생할 수도 있다. 이러한 방식으로, 가상 디스크 (142) 의 정확한 그리고 업데이트된 표현이, 사용자의 컴퓨팅 경험을 현저하게 줄이지 않으면서 클라이언트 시스템 (120) 으로 및 클라이언트 시스템 (120) 으로부터 전달될 수도 있다. 사용자가 새로운 클라이언트 시스템 (110) 으로부터 원격으로 작동하기를 시작하는 경우, 가상 디스크 (142) 는, 그의 완전한 카피가 클라이언트 시스템 (120) 상의 가상 디스크 (132) 로서 이용가능하게 될 때까지, 백그라운드로 전달될 수도 있다. 그 후, 가상 디스크 (142) 에 대한 변화가, 델타 디스크 (132) 를 구축하기를 시작하기 위해 클라이언트 시스템 (120) 에 백그라운드로 송신된다. 사용자가 자신의 데스크탑을 체크-아웃하기를 원할 경우, 가상 디스크 (142) 에 대한 적어도 주요한 변화는 클라이언트 시스템 (120) 에 이미 전달되었을 것이다. 유사하게, 사용자가 자신의 데스크탑을 체크-인하기를 원할 경우, 가상 디스크 (132) 에 대한 적어도 주요한 변화는 서버 시스템 (110) 에 전달되었을 것이다.
사용자가 그들의 데스크탑으로 그들의 세션으로부터 로그 오프하기를 원할 경우, 델타 디스크 (144) 와 델타 디스크 (134) 사이의 임의의 나머지 차이들은, 최종 변화들을 전달함으로써 해소 (resolve) 된다. 클라이언트 시스템 (120) 과 서버 시스템 (110) 사이의 통신 완료 이후, 델타 디스크 (144) 에서 나타낸 변화들은 가상 디스크 (142) 에 기입될 수도 있다. 일 실시형태에서, VM (118) 의 동작이, 가상 디스크 (142) 를 업데이트하는 동안 VM (118) 의 정상 상태를 보장하도록 종료된 이후, 이것이 발생할 것이다. VM (118) 의 동작의 종료는 VM (118) 을 파워 다운하는 것 또는 VM (118) 의 동작을 중지하는 것을 포함할 수도 있다. 통상적으로, VM을 파워 다운하는 것은, VM에서 구동하는 게스트 운영 시스템의 파워-다운 절차를 실행시키는 것을 포함한다. 이러한 절차에서, 프로세스들이 종료되며, 메모리에 현재 상주하는 임의의 일시적인 또는 캐시된 데이터가 디스크에 기입된다. VM이 파워 다운될 경우 상태 정보가 거의 존재하지 않거나 존재하지 않지만, 중지 동작은, 실행을 정지하는 것 및 VM 상태 파일 (146) 으로 기입함으로써 가상 머신의 상태를 보전하는 것을 포함한다.
일단 델타 디스크 (144) 가 가상 디스크 (142) 와 병합되면, 델타 디스크 (144) 가 소거될 수도 있거나, 삭제를 위해 마킹될 수도 있거나, 더 이상 유효하지 않은 것으로 식별될 수도 있다. 가상 디스크 (132) 를 가상 디스크 (142) 와 부합하게 하는 것 및 어느 가상 디스크에 대해 행해진 임의의 변화들은 동기화로서 지칭된다. 상술된 가상 머신 (118) 의 종료 동작을 참조하여 상술된 바와 같은 동일한 방식으로 VM (128) 의 로컬 실행이 종료된 이후, 사용자의 가상 머신들은 이러한 방식으로 동기화될 수도 있다.
가상 머신 (118) 과 동기화되지 않은, 가상 머신 (118) 에 대응하는 가상 머신들 (128) 이 존재하지 않는다고 확인될 수 있을 때까지, 관리 서버 (112) 는, 가상 머신 (118) 의 동작을 방해하는 정책을 확립 또는 시행할 수도 있다. 즉, 사용자가 오프라인으로 자신의 데스크탑과 상호작용하고, 그에 의해, 델타 디스크 (134) 의 생성을 초래하면, 델타 디스크 (134) 에 의해 표현된 변화들이 서버 시스템 (110) 에 송신되고 가상 디스크 (142) 와 병합될 때까지, 관리 서버 (112) 는 VM (118) 의 사용을 방지할 수도 있다.
사용자의 데스크탑에 대응하는 정보의 동기화를 유지하는 것은, 사용자의 데스크탑에 걸쳐 정책 관리를 구현하는 것을 포함할 수도 있다. 정책들 (149) 의 예들은, 사용자의 데스크탑의 카피가 클라이언트 시스템 (120) 에 전달될 수도 있는지 또는 어느 조건하에서 사용자의 데스크탑의 카피가 클라이언트 시스템 (120) 에 전달될 수도 있는지, 서버 시스템 (110) 에 다시 체크인되기 전에 얼마나 길게 데스크탑이 체크-아웃될 수도 있는지에 관한 정보, 가상 머신 (128/118) 의 사용에 대한 제한 등을 포함한다. 가상화 소프트웨어 (127) 및/또는 VDI 클라이언트 (122) 는, 예를 들어, 가상 디스크 (132) 상에 저장된 데이터 및 관련 델타 디스크들에 대한 미인가된 액세스를 방지하기 위해 암호화를 사용하여, 확립된 정책들을 시행하도록 구성될 수도 있다.
일 실시형태에서, 사용자가 VDI 클라이언트 (122) 를 시작할 경우, 그 자신은 인증 정보를 요청하는 로그-인 스크린을 제공받을 수도 있다. 그 후, VDI 클라이언트는 서버 시스템 (110), 예를 들어, 원격 데스크탑 서버 (112) 에 인증 정보를 전달한다. 원격 데스크탑 서버 (115) 는 사용자의 인증을 검증하고, 사용자의 인증 정보에 대응하는 기존의 데스크탑에 대한 관리 서버 (112) 에 요청을 전송한다. 관리 서버 (112) 는, 원격 데스크탑 서버 (115) 로부터 요청을 수신하며, 서버 시스템 (110) 상의 하나 이상의 가상 머신들과 사용자 식별자를 관련시키는 매핑 테이블 (114) 과 제공된 사용자 식별자를 비교한다. 사용자 식별자와 관련된 가상 머신(들)을 식별할 시에, 관리 서버 (112) 는, 대응하는 데스크탑에 대한 원격 사용자 액세스를 위해, 접속 정보를 제공하거나, VDI 클라이언트 (110) 와 원격 데스크탑 서버 (115) 사이의 접속을 용이하게 한다.
또 다른 실시형태에서, 서버 시스템 (110) 으로 송신되는 사용자 요청은 로컬 데스크탑 상태 정보를 포함할 수도 있다. 또한, 로컬 상태 정보는, 원격 데스크탑 서버 (115) 로부터의 질의에 응답하여 그 요청과 별개로 제공될 수도 있다. 로컬 상태 정보는, 사용자의 로컬 클라이언트 시스템 (120) 및 서버 시스템 (110) 의 상태 사이의 차이들을 식별하는 것을 보조하는 정보를 포함할 수도 있다. 예를 들어, 로컬 상태 정보는, 델타 디스크 (134) 의 생성을 초래하는, 사용자가 자신의 데스크탑을 오프라인으로 접속하는지 여부를 포함할 수도 있다. 델타 디스크 (134) 가 존재하면, 관리 서버 (112) 는, 가상 머신 (118) 에 대한 액세스를 허용하기 전에 백그라운드로의 차이의 송신을 개시할 것이다. 송신 시간이 매우 긴 것으로 계획되면, 사용자는 백그라운드 동기화 동안 로컬 VM (128) 에 즉시 접속될 수도 있다. 델타 디스크 (134) 가 존재하지 않지만 델타 디스크 (144) 가 존재하면, VM (118) 에 대한 접속은, 부수적인 자동 백그라운드 동기화로 허용될 수도 있다.
일 실시형태에서, 백그라운드 데이터 전달은, 클라이언트 시스템 (120) 이 서버 시스템 (110) 에 액세스하고 있는 동안 자동적으로 발생하는 주기적인 질의에 응답하여 발생할 수도 있다. 또 다른 실시형태에서, 백그라운드 데이터 전달은 클라이언트 시스템 (120) 의 사용자에 의한 요청시에만 발생할 수도 있다. 예를 들어, 사용자는, 오프 라인으로 진행하는 것을 고려하여, 로컬 클라이언트 시스템 (110) 이 서버 시스템 (110) 과 동기화되는 것을 요청할 수도 있다. 드물게 오프라인되는 사용자에 대하여, 이러한 특성의 사용은 네트워크 리소스들에 대한 로드를 상당히 감소시킬 수도 있다. 정책들 (149) 은, 연속적인, 주기적인, 또는 사용자-개시된 동기화를 요구하거나, 허용하거나 (즉, 사용자가 결정하게 하거나) 방지할 수도 있다.
도 3d에서 예로서 표현된 일 실시형태에서, 사용자 데이터 및 시스템 데이터는 별개의 가상 드라이브들로 유지된다. 이러한 실시형태에서, 전달될 데이터의 양은, (사용자가 자신의 데스크탑에 국부적으로 또는 원격으로 액세스하고 있는지에 의존하여) 사용자 데이터만을 델타 사용자 데이터 디스크 (135 또는 145) 에 기입함으로서 추가적으로 감소될 수도 있다. 예를 들어, 서버 시스템 (110) 상의 사용자의 데스크탑에 대한 정보는, 물리적인 디스크 (150) 상의 디스크 이미지 파일로서 존재할 수도 있는 시스템 디스크 (152) 에 저장된 시스템 정보로서 분류될 수도 있으며, 사용자 데이터는 가상 사용자 데이터 디스크 (UDD) (143) 에 저장될 수도 있다. 유사하게, 이들 2개의 디스크들에 대한 변화들은, 2개의 별개의 델타 디스크들, 즉, 델타 시스템 디스크 (144) 및 델타 UDD 디스크 (145) 에 저장될 수도 있다.
일 실시형태에서, 시스템 정보는 애플리케이션 정보 (78) 및 게스트 시스템 소프트웨어 (72) (도 2) 를 포함하지만, 사용자 데이터는, 문서, 셋팅, 사용자-특정 특성 등을 포함한다. 윈도우즈, OSX, 및 Gnu-리눅스와 같은 대부분의 운영 시스템들은, 별개의 디스크들 상에 시스템 및 사용자 데이터를 보유하기 위한 설비를 포함한다. 시스템 데이터 및 사용자 데이터 양자에 대한 별개의 델타 이미지들을 생성하기 위해 가상화를 사용함으로써, 관리 서버 (112) 는, 가상 UDD (143) 상에 저장된 사용자 정보만으로 데이터의 전달을 제한하도록 구성될 수도 있다. 이러한 경우, 시스템에 행해진 (및 이에 따라 델타 시스템 디스크 (144) 에 기입된) 임의의 변화들은 폐기될 것이고, 따라서, 그 정보가 전달되지 않으므로, 시스템 디스크 (152) 는 사용자의 데스크탑의 각각의 체크-인 또는 체크-아웃을 갖는 공지된 양호한 상태로 다시 복귀할 것이다. 또한, 클라이언트 시스템 (112) 과 서버 시스템 (110) 사이에서 전달되는 정보의 양은 사용자 데이터만으로 감소될 수도 있다.
일 실시형태에서, 가상 머신의 동작 동안 별개의 델타 시스템 디스크 (144) 상에서 보유되는 시스템 디스크 (152) 에 대한 변화들은, 그 사용자에 대해 정책들이 적소에 존재하는 모든 곳에 영향을 줄 수도 있다. 즉, 그 변화들은 폐기될 수도 있거나, 시스템 데이터, 운영 시스템, 및 애플리케이션들을 포함하는 가상 디스크에 역으로 병합된다. 델타 시스템 디스크 (144) 가 폐기되면, 시스템 디스크 (152) 는, 임의의 특정한 사용자 세션 동안 사용자가 시스템에 대해 행한 어떠한 변화들에도 불구하고, 공지된 양호한 상태를 지속한다는 점에서, "영속적인 시스템 디스크" 로 고려될 수도 있다.
시스템 디스크에 대한 변형들은, 예를 들어, 운영 시스템 또는 애플리케이션들이 업데이트되거나 새로운 릴리즈가 제조자에 의해 이슈될 경우, 패치 파일 (154) 에 패키징될 수도 있다. 이들 변화들은, 현재의 시스템 디스크와 업데이트된 시스템 디스크 사이의 차이들을 정의하는 패치 파일 (154) 을 생성함으로써, 시스템 디스크 (152) 에 적용될 수도 있다. 클라이언트 시스템 상의 시스템 디스크 (132) 의 효율적인 패치를 위해, 그 패치 파일은 패치된 시스템 디스크를 생성하도록 시스템 디스크 (152) 에 적용될 수도 있고, 또한, 클라이언트 시스템 (120) 에 송신될 수도 있다.
여기에 설명된 다른 실시형태들과 공존할 수 있는 또 다른 실시형태에서, 파일 시스템 정보는, 삭제된 파일들과 관련된 섹터들을 식별하기 위해 분석된다. 그 후, 이들 섹터들은, 전달될 데이터의 양을 추가적으로 감소시키기 위해 델타 디스크 이미지를 전달할 경우 생략된다. 분석 및 생략은, 델타 디스크의 전달시에 발생할 수 있거나, 델타 디스크가 송신 이전에 프리프로세싱 (preprocess) 되는 별개의 단계로서 수행될 수 있다. 이러한 경우, 가상 디스크의 카피들은 동일하지 않을 수도 있지만, 그럼에도 논리적으로는 동등하다.
도 4는, 자동적인 백그라운드 동기화로 사용자를 원격 데스크탑에 접속시키기 위한 예시적인 절차를 도시한 흐름도를 도시한다. 그 절차는 시작 블록 (202) 에 의해 표시된 바와 같이 시작하고, 동작 (204) 으로 흐르며, 여기서, 클라이언트 시스템 (120) 의 사용자의 인증 정보에 대응하는 데스크탑에 액세스하기 위해 서버 시스템 (120) (도 3a 내지 3d) 에 의해 요청이 수신된다. 이러한 요청의 수신에 응답하여, 그 절차는 동작 (206) 으로 흐르며, 여기서, 서버 시스템 (110) 은 사용자 인증을 검증한다. 인증이 유효하지 않으면, 절차는 동작 (208) 로 흐르고, 여기서, 액세스가 거부되고 절차는 종료한다. 인증이 유효하면, 절차는 동작 (210) 으로 흐르며, 여기서, 사용자는 사용자 식별자에 대응하는 데스크탑에 접속된다. 서버 시스템 상에서 실행하는 가상 머신 상의 자신의 데스크탑에 사용자를 접속시킨 이후, 절차는 동작 (212) 으로 흐르며, 여기서, 서버 시스템 (110) 은, 클라이언트 시스템 (120) 이 사용자의 데스크탑에 대응하는 가상 디스크의 정확한 카피를 갖는지를 판정한다. 정확한 카피를 갖고 있지 않다면, 절차는 동작 (214) 으로 흐르며, 여기서, 가상 디스크 (142) 가 백그라운드에서, 즉, 사용자가 서버 시스템 상의 가상 머신 (118) 에 액세스하고 있고 그 가상 머신 (118) 과 상호작용하는 동안, 클라이언트 시스템 (120) 에 송신된다. 이러한 동작은, 클라이언트 시스템 (120) 이 대응하는 데스크탑에 대한 가상 디스크의 완전히 정확한 카피를 제공받을 때까지 계속된다.
동작 (212) 에서, 클라이언트 시스템이 가상 디스크의 정확한 카피를 갖는다고 결정되면, 절차는 동작 (216) 으로 흐른다. 이전에 언급된 바와 같이, 서버 시스템상의 가상 머신과의 사용자 상호작용 동안, 가상 디스크에 대한 변화가 델타 디스크에 기입된다. 동작 (216) 에서, 서버 시스템 (110) 은, 클라이언트 시스템이 델타 디스크 이미지의 최신 카피를 갖는지를 판정한다. 최신 카피를 갖고 있지 않다면, 절차는 동작 (218) 으로 흐르며, 여기서, 서버 시스템 상의 델타 디스크는 사용자의 클라이언트 시스템에 카피된다. 이러한 절차는, 사용자가 가상 머신과 상호작용하고 있고, 그에 따라, 가상 디스크에 대한 변화들을 생성하는 한, 발생한다. 몇몇 포인트에서, 사용자는 서버 시스템 상에서 실행하는 가상 머신을 로그 오프, 파워 다운 또는 중지할 수도 있으며, 이러한 포인트에서, 임의의 나머지 변화들이 클라이언트 시스템에 카피된다. 그 후, 절차는 종료 블록 (220) 에 의해 표시된 바와 같이 종료한다.
일 실시형태에서, 백그라운드 동기화는 클라이언트 시스템 (120) 과 서버 시스템 (110) 사이의 통신 세션 동안 임의의 시간에 개시될 수도 있다. 백그라운드 동기화는, (예를 들어, 관리자에 의해 셋팅된 정책에 따라) 자동적으로 발생할 수도 있다.
예를 들어, 요청 또는 정책은, 사용자의 클라이언트 시스템이 주기적으로 업데이트되는지를 특정할 수도 있다. 이러한 경우, 서버 시스템 (110) 은, 가장 최근의 업데이트 이후 특정된 양의 시간이 경과하는지를 판정한다. 정확한 시간 측정 대신에, 업데이트 시간을 식별하는 다른 수단이 물론 구현될 수도 있으며, 예를 들어, 클록이 경과된 시간의 양을 측정할 수 있거나, 사용자가 유휴 상태이고, 즉, 일부 시간 동안 시스템과 상호작용하지 않을 때까지 시스템이 대기할 수도 있다. 클라이언트 시스템이 최신이 아니고, 서버 시스템 (110) 내의 가상 디스크들의 현재 상태, 즉, 델타 디스크 (144) (도 3a 내지 도 3d) 가 존재하는지에 의존하면, 시스템 (110) 은, 클라이언트 시스템 (120) 과 협력하여, 가상 디스크 (142) 에 대한 변형들을 포함하는 델타 디스크 (144) 및/또는 가상 디스크 (142) 를 송신하기를 시작한다.
일 실시형태에서, 델타 디스크 (144) 에 대한 새로운 변화들은, VM (118) 이 실행함에 따라 델타 디스크 (144) 에 첨부되고, 주기적으로 사용자 시스템 (120) 에 송신된다. 서버 시스템 (110) 은, 얼마나 많은 델타 디스크가 클라이언트 시스템 (120) 에 전달되는지를 추적하여, 첨부된 부분만이 각각의 업데이트 간격에서 송신되게 한다.
또 다른 실시형태에서, 현재의 델타 디스크가 폐쇄되고, 새로운 델타 디스크가 각각의 업데이트 간격에서 생성된다. 이전의 델타 디스크들에 포함된 정보에 대한 변형들을 포함하는 현재의 델타 디스크는, 새로운 변화들이 새로운 델타 디스크에 기입되는 동안 송신된다. 이러한 방식으로, 일련의 체인된 스냅샷들이 생성되고 클라이언트 시스템 (120) 에 송신되며, 그 후, 그 클라이언트 시스템 (120) 은 그들을 단일 델타 디스크에 또는 가상 디스크에 직접적으로 리어셈블링 또는 병합할 수 있다. 일 실시형태에서, 각각의 델타 디스크는, 클라이언트 시스템 (110) 으로의 송신 이전에 바이러스와 같은 멀웨어 (malware) 가 스캐닝 및 클린된다. 스캐닝은 은밀한 (unobtrusive) 방식으로 백그라운드에서 수행될 수도 있다.
도 5는, 데스크탑 체크-아웃 절차를 구현하는 방법을 예로서 나타내는 흐름도 (250) 를 도시한다. 절차는 시작 블록 (252) 에서 시작하고, 동작 (254) 로 진행하며, 여기서, 서버 시스템은 액세스를 요청하는 사용자를 인증한다. 구현에 의존하여, 사용자는 이러한 때에 자신의 원격 데스크탑에 직접 접속될 수도 있거나 접속되지 않을 수도 있다. 그 후, 절차는 동작 (256) 으로 흐르며, 여기서, 서버 시스템은 데스크탑을 체크 아웃하기 위한 사용자에 의한 요청을 수신한다. 그 후, 절차는 동작 (258) 으로 흐르며, 여기서, 서버 시스템은, 정책 및 사용자 허가가 사용자에 대한 사용자의 데스크탑의 체크-아웃을 허용하는지를 판정한다. 허용하지 않는다면, 절차는 동작 (260) 으로 진행하며, 여기서, 자신이 그 때에 자신의 데스크탑을 체크아웃하기 위한 특권을 갖지 않는다는 것을 나타내는 메시지가 클라이언트 시스템에 송신된다. 그 후, 절차는 종료 단계 (274) 에 의해 표시된 바와 같이 죵료한다.
동작 (258) 에서, 실제로 사용자가 데스크탑을 체크아웃하기 위한 허가를 갖는다고 결정되면, 절차는, 사용자의 데스크탑이, 예를 들어, 상이한 클라이언트 시스템에 대해 이미 체크아웃되었고, 그 이후로, 다시 체크인되지 않았는지를 판정하기 위한 동작 (262) 으로 흐른다. 사용자 데스크탑 상태는, 예를 들어, 사용자 데이터베이스 또는 상태 필드, 메타 데이터 필드, 또는 가상 디스크 이미지를 포함하는 파일내 또는 그 파일의 서브-섹션에 보유될 수도 있다. 사용자의 데스크탑이 현재 체크-아웃되면, 절차는 동작 (260) 으로 흐르며, 서버 시스템 (120) 은 체크-아웃 액세스 거부 메시지를 클라이언트 시스템 (12) 에 송신한다. 이것은, 사용자의 데스크탑의 하나의 카피만이 한번에 체크-아웃될 수도 있다는 것을 보장한다. 일 실시형태에서, 데스크탑이 "체크-아웃" 상태에 있는 경우, 사용자가 자신의 데스크탑에 원격으로 액세스하는 것이 방지되며, 이는, 가상 머신의 "분기" 및 동기화의 손실을 초래할 것이다. 동작 (262) 에서, 데스크탑이 이미 현재 체크 아웃되어 있지 않다고 결정되면, 절차는 동작 (264) 으로 흐르며, 여기서, 구동하면, 사용자의 가상 머신이 종료된다. 가상 머신을 종료하는 것은, 그것을 파워 다운하는 것 또는 가상 머신을 중지하고 그 상태를 디스크에 저장하는 것을 포함할 수도 있다.
그 후, 절차는 동작 (266) 으로 진행하며, 여기서, 클라이언트 시스템은, 그것이, 서버 시스템 상에 존재할 수도 있는 임의의 델타 디스크들 및 시스템 디스크의 현재의 카피를 갖는지를 판정하도록 질의받는다. 갖고 있지 않다면, 절차는 동작 (268) 으로 흐르며, 여기서, 가상 디스크 및 델타 이미지들은 필요에 따라 카피 또는 업데이트되고, 그 후, 동작 (270) 으로 흐른다. 동작 (266) 에서, 클라이언트 시스템이 이미 가상 디스크 및 임의의 델타 디스크들의 현재 카피들을 갖는다고 결정하면, 절차는 직접 동작 (270) 으로 흐른다.
동작 (270) 에서, 사용자 또는 메타 데이터는, 사용자의 데스크탑의 현재 "체크 아웃" 상태를 반영하도록 업데이트된다. 절차는 동작 (272) 으로 흐르며, 여기서, 로컬 클라이언트 시스템 상에서 로컬 가상 머신을 구동함으로써 사용자가 자신의 데스크탑을 액세스하도록 허용한다. 그 후, 절차는 종료 블록 (274) 에 의해 나타낸 바와 같이 종료한다.
일 실시형태에서, 클라이언트 시스템에 대해 체크아웃되더라도, 사용자가 자신의 데스크탑을 원격으로 액세스하도록 허용할 수도 있다. 데스크탑이 체크-아웃 상태에 있을 수도 있지만, 이것은, 클라이언트 시스템 (120) 의 사용자가 자신의 데스크탑에 원격으로 액세스하기 위해 서버 시스템 (110) 의 리소스들을 이용하는 것을 방해하지 않는다. 예를 들어, 클라이언트 시스템 (120) 은, 하드 드라이브 고장과 같은 시스템 고장을 경험할 수도 있거나, 바이러스/멀웨어에 의해 감염될 수도 있다. 이러한 경우, 사용자는, 서버 시스템에 대해 데스크탑을 체크-인하지 않음에도 불구하고, 서버 시스템 (110) 상의 대응하는 가상 머신에 액세스하는 로컬 가상 머신을 폐기하는 것을 선택할 수도 있다. 대안적으로, 서버 시스템에 대해 행해진 임의의 변화들이 손실될 것이라는 조건으로 서버 시스템 상의 데스크탑에 사용자가 액세스하도록 허용할 수도 있다. 예를 들어, 사용자가 그들의 클라이언트 시스템에 액세스할 수 없으면, 즉, 예를 들어, 파일을 판독하거나 이메일 또는 회사 인트라넷 사이트에 액세스하기 위해 그들의 데스크탑에 액세스할 필요가 있지만 그들의 컴퓨터로부터 떨어져 있는 경우, 구식 버전이더라도, 그리고, 새로이-저장된 데이터의 영속성이 없더라도, 그들은 그들의 데스크탑을 원격으로 여전히 액세스할 수 있을 것이다.
또 다른 향상에서, 시스템은, 데이터 저장부 (140) 에 포함된 정보, 즉, 델타 디스크들 (144 또는 145) (도 3a 내지 도 3d) 에 대해 바이러스/멀웨어 스캔을 자동적으로 또는 사용자 요청시에 수행할 수도 있다. 바이러스/멀웨어 스캔의 결과들은 시스템상에 로그될 수도 있고/있거나 클라이언트 시스템 (120) 에 제공되거나 결과 파일 (미도시) 에 저장될 수도 있다. 유사하게, 클라이언트 시스템 (120) 의 사용자는, 데이터 저장부 (140) 상에 로컬 델타 디스크의 카피를 생성함으로써 로컬 델타 디스크 (134) 의 바이러스/멀웨어 스캔을 수행하도록 서버 시스템 (110) 을 사용할 수도 있다. 바이러스/멀웨어 스캔이 완료된 이후, 로컬 델타 디스크의 카피가 삭제되거나, 가상 디스크 (142) 에 병합될 수도 있다.
여기에 설명된 다양한 실시형태들은, 컴퓨터 시스템들에 저장된 데이터를 포함하는 다양한 컴퓨터-구현된 동작들을 이용할 수도 있다. 예를 들어, 이들 동작들은 물리양들의 물리적인 조작을 요구할 수도 있으며, 반드시 그러하지는 않지만 일반적으로, 이들 양들은 전기 또는 자기 신호의 형태를 취할 수도 있고, 그들 또는 그들의 표현이 저장, 전달, 결합, 비교 또는 조작될 수 있다. 또한, 그러한 조작은, 종종, 생성, 식별, 결정 또는 비교와 같은 용어로 지칭된다. 본 발명의 하나 이상의 실시형태들의 일부를 형성하는 여기에 설명된 임의의 동작들은 유용한 머신 동작들일 수도 있다. 또한, 본 발명의 하나 이상의 실시형태들은, 이들 동작들을 수행하기 위한 디바이스 또는 장치에 관한 것이다. 장치는, 특정하게 요구된 목적을 위해 특수하게 구성될 수도 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성된 범용 컴퓨터일 수도 있다. 특히, 다양한 범용 머신은, 여기에서의 교시에 따라 기입된 컴퓨터 프로그램들로 사용될 수도 있거나, 요구된 동작들을 수행하도록 더 특수화된 장치를 구성하는데 더 편리할 수도 있다.
여기에 설명된 다양한 실시형태들은, 핸드-헬드 디바이스들, 마이크로프로세서 시스템들, 마이크로프로세서-기반 또는 프로그래밍가능 소비자 전자기기, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성들로 실행될 수도 있다.
본 발명의 하나 이상의 실시형태들은, 하나 이상의 컴퓨터 프로그램들 또는 하나 이상의 컴퓨터 판독가능 매체에 수록된 하나 이상의 컴퓨터 프로그램 모듈들로서 구현될 수도 있다. 컴퓨터 판독가능 매체라는 용어는, 데이터를 저장할 수 있는 임의의 데이터 저장 시스템을 지칭하며, 그 후, 그 데이터는 컴퓨터 시스템에 입력될 수 있고, 컴퓨터 판독가능 매체는, 컴퓨터 프로그램이 컴퓨터에 의해 판독될 수 있게 하는 방식으로 그 컴퓨터 프로그램들을 수록하기 위한 임의의 기존의 또는 후속하여 개발되는 기술에 기초할 수도 있다. 컴퓨터 판독가능 매체의 예들은, 하드 드라이브, 네트워크 부착된 저장부 (NAS), 판독-전용 메모리, 랜덤-액세스 메모리 (예를 들어, 플래시 메모리 디바이스), CD (Compact Discs), CD-ROM, CD-R, 또는 CD-RW, DVD (Digital Versatile Disc), 자성 테이프, 및 다른 광학 및 비-광학 데이터 저장 시스템들을 포함한다. 또한, 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 코드가 분산된 방식으로 저장 및 실행되도록 네트워크 커플링된 컴퓨터 시스템에 걸쳐 분산될 수 있다.
본 발명의 하나 이상의 실시형태가 이해의 명확화를 위해 몇몇 세부사항으로 설명되었지만, 특정한 변화들 및 변형들이 청구항의 범위내에서 행해질 수도 있음이 명백할 것이다. 따라서, 설명된 실시형태들은 제한이 아닌 예시로서 고려될 것이며, 청구항의 범위는 여기에 주어진 세부사항들로 제한되지는 않지만, 청구항의 범위 및 등가물들 내에서 변형될 수도 있다. 청구항에서, 엘리먼트들 및/또는 단계들은, 청구항에서 명시적으로 나타내지 않으면, 동작의 임의의 특정한 순서를 암시하지 않는다.
또한, 가상 머신들이 특정한 하드웨어 시스템에 부합하는 인터페이스들을 제공한다고, 설명된 가상화 방법들이 일반적으로 가정하지만, 당업자는, 설명된 방법들이 임의의 특정한 하드웨어 시스템에 직접 대응하지 않는 가상화들과 함께 사용될 수도 있음을 인식할 것이다. 호스트된 실시형태들, 호스트되지 않은 실시형태들, 또는 2개의 실시형태들 사이의 특징들을 희미하게 하는 경향이 있는 실시형태들로서 구현되는 다양한 실시형태들에 따른 가상화 시스템들 모두가 고려된다. 또한, 다양한 가상화 동작들은 하드웨어에 전체 또는 부분적으로 구현될 수도 있다. 예를 들어, 하드웨어 구현은 비-디스크 데이터를 보유하기 위한 저장부 액세스 요청들의 변형에 대한 룩-업 테이블을 이용할 수도 있다.
가상화 정도에 관계없이, 다수의 변화들, 변형들, 부가들, 및 개선들이 가능하다. 따라서, 가상화 소프트웨어는, 가상화 기능들을 수행하는 호스트, 콘솔, 또는 게스트 운영 시스템의 컴포넌트들을 포함할 수 있다. 복수의 인스턴스들이, 단수의 인스턴스로서 여기에 설명된 컴포넌트들, 동작들 또는 구조들에 대해 제공될 수도 있다. 최종적으로, 다양한 컴포넌트들, 동작들 및 데이터 사이의 경계들은 다소 임의적이며, 특정한 동작들은 특정한 예시적인 구성들의 콘텍스트에서 예시된다. 기능의 다른 할당이 고려되며, 본 발명(들)의 범위내에 존재할 수도 있다. 일반적으로, 예시적인 구성에서 별개의 컴포넌트들로서 제공된 구조들 및 기능은 결합된 구조 또는 컴포넌트로서 구현될 수도 있다. 유사하게, 단일 컴포넌트로서 제공된 구조들 및 기능은 별개의 컴포넌트들로서 구현될 수도 있다. 이들 및 다른 변화들, 변형들, 부가들, 및 개선들은 첨부된 청구항(들)의 범위내에 존재할 수도 있다.
Claims (26)
- 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법으로서,
통신 네트워크를 통해 사용자 데스크탑에 원격으로 액세스하는 단계로서, 상기 원격으로 액세스하는 단계는, 클라이언트 시스템과 서버 시스템 사이에서 사용자 입력/출력을 송신 및 수신하는 단계를 포함하고, 상기 서버 시스템은 상기 사용자 데스크탑을 제공하는 가상 머신의 서버 인스턴스를 구동시키고, 상기 가상 머신의 서버 인스턴스는 데이터 저장부 시스템과 통신하는 물리적인 컴퓨터 시스템상의 가상화 소프트웨어에 의해 실행하고, 상기 가상화 소프트웨어는, 상기 가상 머신의 서버 인스턴스로부터, 상기 데이터 저장부 시스템 상의 하나 이상의 파일들에 포함된 가상 디스크 이미지를 포함하는 가상 디스크로 디스크 판독 요청들을 안내하고, 상기 가상화 소프트웨어는 상기 가상 머신의 서버 인스턴스로부터 델타 디스크로 디스크 기입 요청들을 안내하고, 상기 델타 디스크는 상기 가상 디스크에 대한 변형들을 포함하며, 상기 클라이언트 시스템은, 상기 사용자 입력/출력을 수신하고, 상기 클라이언트 시스템의 사용자 인터페이스로 상기 사용자 입력/출력을 전송하기 위한 원격 데스크탑 클라이언트를 갖는, 상기 원격으로 액세스하는 단계;
상기 클라이언트 시스템 상에서 상기 가상 디스크의 로컬 카피를 생성하는 단계;
상기 사용자 데스크탑에 국부적으로 액세스하기 위해, 상기 클라이언트 시스템으로부터 상기 서버 시스템으로 체크-아웃 요청을 전송하는 단계;
상기 가상 머신의 서버 인스턴스가 현재 실행하고 있으면, 상기 가상 머신의 서버 인스턴스를 종료시키는 단계;
상기 클라이언트 시스템 상에서 상기 델타 디스크의 카피를 생성하는 단계; 및
상기 가상 머신의 클라이언트 인스턴스로부터 적어도 상기 가상 디스크의 로컬 카피로 디스크 판독 요청들을 안내하고, 상기 가상 머신의 클라이언트 인스턴스로부터 상기 클라이언트 시스템의 사용자 인터페이스로 상기 사용자 입력/출력을 안내하기 위해, 상기 클라이언트 시스템 상의 가상화 소프트웨어를 사용하여, 상기 클라이언트 시스템 상에서 상기 가상 머신의 클라이언트 인스턴스를 실행하는 단계를 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 디스크의 로컬 카피를 생성하는 단계는, 상기 가상 머신의 서버 인스턴스가 구동하는 동안 수행되는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 머신의 서버 인스턴스가 구동하는 동안, 상기 서버 시스템 상의 델타 디스크에 저장된 가상 머신에 대한 변형들을 상기 클라이언트 시스템에서 수신하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 머신의 클라이언트 인스턴스를 실행하기 전에, 상기 가상 디스크의 로컬 카피와 상기 델타 디스크의 카피를 병합하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 머신의 클라이언트 인스턴스로부터 로컬 델타 디스크로 디스크 기입들을 안내하는 단계;
상기 사용자 데스크탑에 원격으로 액세스하기 위해 상기 클라이언트 시스템으로부터 상기 서버 시스템으로 체크-인 요청을 전송하는 단계;
상기 가상 머신의 클라이언트 인스턴스가 구동하고 있으면, 상기 가상 머신의 클라이언트 인스턴스를 종료시키는 단계;
상기 로컬 델타 디스크의 카피를 상기 서버 시스템으로 송신하는 단계; 및
상기 가상 머신의 서버 인스턴스에 원격으로 액세스하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 5 항에 있어서,
상기 서버 시스템 상에서, 상기 로컬 델타 디스크의 카피를 상기 서버 시스템으로 송신한 이후 상기 가상 머신의 서버 인스턴스를 파워 온하기 전에, 상기 가상 머신과 상기 델타 디스크 및 상기 로컬 델타 디스크를 병합하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 5 항에 있어서,
상기 가상 머신의 클라이언트 인스턴스의 실행이 시작된 이후에 및 상기 로컬 델타 디스크의 카피의 상기 서버 시스템으로의 송신 이전에, 상기 가상 머신의 서버 인스턴스에 대한 액세스를 방지하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 머신의 서버 인스턴스의 실행 동안, 부가적인 델타 디스크를 주기적으로 생성하고, 상기 부가적인 델타 디스크를 상기 클라이언트 시스템에 송신하는 단계를 더 포함하며,
상기 부가적인 델타 디스크 각각은 델타 디스크들의 체인의 일부인, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 서버 시스템 상에서, 체크-인 또는 체크-아웃된 것으로 상기 사용자 데스크탑의 데스크탑 상태를 유지하는 단계를 더 포함하며,
상기 사용자 데스크탑이 상기 가상 머신의 서버 인스턴스를 사용하여 최종적으로 원격으로 액세스되었던 경우, 상기 데스크탑 상태는 체크-인되고, 상기 사용자 데스크탑이 상기 가상 머신의 클라이언트 인스턴스를 사용하여 최종적으로 국부적으로 액세스되었던 경우 상기 데스크탑 상태는 체크-아웃되며,
상기 클라이언트 시스템 상에서 상기 델타 디스크의 카피를 생성하는 단계 이후, 상기 데스크탑 상태가 체크-아웃된다고 상기 서버 시스템이 가정하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상화 소프트웨어는 사용자 데이터 디스크 및 시스템 디스크를 에뮬레이트하고, 상기 사용자 데이터 디스크 및 상기 시스템 디스크는 상기 가상 머신에서 실행하는 게스트 시스템 소프트웨어에 액세스가능하고, 상기 게스트 시스템 소프트웨어는, 상기 사용자 데이터 디스크에 사용자 데이터를 저장하고, 상기 시스템 디스크에 운영 시스템 및 애플리케이션 파일들을 저장하고, 상기 사용자 데이터는 사용자 문서들 및 셋팅들을 포함하며,
상기 데이터 저장부 시스템 상의 상기 가상 디스크는 가상 사용자 데이터 디스크이고, 상기 델타 디스크는 델타 사용자 데이터 디스크이며,
상기 사용자 데스크탑에 원격으로 액세스하는 단계는,
상기 가상 사용자 데이터 디스크에 사용자 데이터 디스크 판독 요청들을 안내하고, 가상 시스템 디스크에 시스템 디스크 판독 요청들을 안내하는 단계로서, 상기 가상 시스템 디스크는, 상기 데이터 저장부 시스템 또는 또 다른 데이터 저장부 시스템 상의 하나 이상의 파일들에 저장된 디스크 이미지인, 상기 디스크 판독 요청들을 안내하는 단계; 및
델타 시스템 디스크에 시스템 디스크 기입 요청들을 안내하고, 상기 델타 사용자 데이터 디스크에 사용자 데이터 디스크 기입 요청들을 안내하는 단계로서, 상기 델타 시스템 디스크는 상기 가상 시스템 디스크에 대한 변형들을 포함하고, 상기 델타 사용자 데이터 디스크는 상기 가상 사용자 데이터 디스크에 대한 변형들을 포함하는, 상기 디스크 기입 요청들을 안내하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 10 항에 있어서,
상기 델타 디스크의 카피를 생성하는 단계가 수행되는 경우 상기 델타 시스템 디스크를 폐기하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 10 항에 있어서,
상기 델타 디스크의 카피를 생성하는 단계가 수행되는 경우 상기 클라이언트 시스템 상에서 상기 델타 시스템 디스크의 카피를 생성하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 제 1 항에 있어서,
상기 가상 머신의 클라이언트 인스턴스를 실행하는 단계 이전에 상기 서버 시스템에서 멀웨어에 대해 상기 델타 디스크를 스캐닝하는 단계를 더 포함하는, 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키는 방법. - 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키기 위한 유형의 컴퓨터 판독가능 매체로서,
상기 유형의 컴퓨터 판독가능 매체는 클라이언트 시스템 상에서 방법을 구현하는 컴퓨터 프로그램 명령들을 수록하며,
상기 방법은,
통신 네트워크를 통해 사용자 데스크탑에 원격으로 액세스하는 단계로서, 상기 원격으로 액세스하는 단계는, 클라이언트 시스템과 서버 시스템 사이에서 사용자 입력/출력을 송신 및 수신하는 단계를 포함하고, 상기 서버 시스템은 상기 사용자 데스크탑을 제공하는 가상 머신의 서버 인스턴스를 구동시키고, 상기 가상 머신의 서버 인스턴스는 데이터 저장부 시스템과 통신하는 물리적인 컴퓨터 시스템상의 가상화 소프트웨어에 의해 실행하고, 상기 가상화 소프트웨어는, 상기 가상 머신의 서버 인스턴스로부터, 상기 데이터 저장부 시스템 상의 하나 이상의 파일들에 포함된 가상 디스크 이미지를 포함하는 가상 디스크로 디스크 판독 요청들을 안내하고, 상기 가상화 소프트웨어는 상기 가상 머신의 서버 인스턴스로부터 델타 디스크로 디스크 기입 요청들을 안내하고, 상기 델타 디스크는 상기 가상 디스크에 대한 변형들을 포함하며, 상기 클라이언트 시스템은, 상기 사용자 입력/출력을 수신하고, 상기 클라이언트 시스템의 사용자 인터페이스로 상기 사용자 입력/출력을 전송하기 위한 원격 데스크탑 클라이언트를 갖는, 상기 원격으로 액세스하는 단계;
상기 클라이언트 시스템 상에서 상기 가상 디스크의 로컬 카피를 생성하는 단계;
상기 사용자 데스크탑에 국부적으로 액세스하기 위해, 상기 클라이언트 시스템으로부터 상기 서버 시스템으로 체크-아웃 요청을 전송하는 단계로서, 상기 체크-아웃 요청은, 상기 가상 머신의 서버 인스턴스가 현재 실행하고 있으면, 상기 가상 머신의 서버 인스턴스로 하여금 종료되게 하는, 상기 체크-아웃 요청을 전송하는 단계;
상기 클라이언트 시스템 상에서 상기 델타 디스크의 카피를 생성하는 단계; 및
상기 가상 머신의 클라이언트 인스턴스로부터 적어도 상기 가상 디스크의 로컬 카피로 디스크 판독 요청들을 안내하고, 상기 가상 머신의 클라이언트 인스턴스로부터 상기 클라이언트 시스템의 사용자 인터페이스로 상기 사용자 입력/출력을 안내하기 위해, 상기 클라이언트 시스템 상의 가상화 소프트웨어를 사용하여, 상기 클라이언트 시스템 상에서 상기 가상 머신의 클라이언트 인스턴스를 실행하는 단계를 포함하는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 가상 디스크의 로컬 카피를 생성하는 단계는, 상기 가상 머신의 서버 인스턴스가 구동하는 동안 수행되는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 방법은,
상기 가상 머신의 서버 인스턴스가 구동하는 동안, 상기 서버 시스템 상의 델타 디스크에 저장된 가상 머신에 대한 변형들을 상기 클라이언트 시스템에서 수신하는 단계를 더 포함하는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 방법은,
상기 가상 머신의 클라이언트 인스턴스를 실행하기 전에, 상기 가상 디스크의 로컬 카피와 상기 델타 디스크의 카피를 병합하는 단계를 더 포함하는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 방법은,
상기 가상 머신의 클라이언트 인스턴스로부터 로컬 델타 디스크로 디스크 기입들을 안내하는 단계;
상기 사용자 데스크탑에 원격으로 액세스하기 위해 상기 클라이언트 시스템으로부터 상기 서버 시스템으로 체크-인 요청을 전송하는 단계;
상기 가상 머신의 클라이언트 인스턴스가 구동하고 있으면, 상기 가상 머신의 클라이언트 인스턴스를 종료시키는 단계;
상기 로컬 델타 디스크의 카피를 상기 서버 시스템으로 송신하는 단계; 및
상기 로컬 델타 디스크의 카피의 상기 서버 시스템으로의 송신 이후에, 상기 가상 머신의 서버 인스턴스에 원격으로 액세스하는 단계를 더 포함하는, 컴퓨터 판독가능 매체. - 제 18 항에 있어서,
상기 로컬 델타 디스크의 카피의 상기 서버 시스템으로의 송신 이후 상기 가상 머신의 서버 인스턴스를 파워 온하기 전에, 상기 서버 시스템 상에서 상기 가상 디스크와 상기 델타 디스크 및 상기 로컬 델타 디스크가 병합되는, 컴퓨터 판독가능 매체. - 제 18 항에 있어서,
상기 방법은,
상기 가상 머신의 클라이언트 인스턴스의 실행이 시작된 이후에 및 상기 로컬 델타 디스크의 카피의 상기 서버 시스템으로의 송신 이전에, 상기 가상 머신의 서버 인스턴스에 대한 액세스를 방지하는 단계를 더 포함하는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 방법은,
상기 가상 머신의 서버 인스턴스의 실행 동안, 부가적인 델타 디스크를 주기적으로 생성하고, 상기 부가적인 델타 디스크를 상기 클라이언트 시스템에 송신하는 단계를 더 포함하며,
상기 부가적인 델타 디스크 각각은 델타 디스크들의 체인의 일부인, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 가상화 소프트웨어는 사용자 데이터 디스크 드라이브 및 시스템 디스크 드라이브를 에뮬레이트하고, 상기 사용자 데이터 디스크 드라이브 및 상기 시스템 디스크 드라이브는 상기 가상 머신에서 실행하는 게스트 시스템 소프트웨어에 액세스가능하고, 상기 게스트 시스템 소프트웨어는, 상기 사용자 데이터 디스크 드라이브에 사용자 데이터를 저장하고, 상기 시스템 디스크 드라이브에 운영 시스템 및 애플리케이션 파일들을 저장하고, 상기 사용자 데이터는 사용자-특정 문서들 및 셋팅들을 포함하며,
상기 데이터 저장부 시스템 상의 상기 가상 디스크는 가상 사용자 데이터 디스크이고, 상기 델타 디스크는 델타 사용자 데이터 디스크이며,
상기 사용자 데스크탑에 원격으로 액세스하는 단계는,
상기 가상 사용자 데이터 디스크에 사용자 데이터 디스크 판독 요청들을 안내하고, 가상 시스템 디스크에 시스템 디스크 판독 요청들을 안내하는 단계로서, 상기 가상 시스템 디스크는, 상기 데이터 저장부 시스템 또는 또 다른 데이터 저장부 시스템 상의 하나 이상의 파일들에 저장된 디스크 이미지인, 상기 디스크 판독 요청들을 안내하는 단계; 및
델타 시스템 디스크에 시스템 디스크 기입 요청들을 안내하고, 상기 델타 사용자 데이터 디스크에 사용자 데이터 디스크 기입 요청들을 안내하는 단계로서, 상기 델타 시스템 디스크는 상기 가상 시스템 디스크에 대한 변형들을 포함하고, 상기 델타 사용자 데이터 디스크는 상기 가상 사용자 데이터 디스크에 대한 변형들을 포함하는, 상기 디스크 기입 요청들을 안내하는 단계를 더 포함하며,
상기 클라이언트 시스템 상에서 상기 델타 디스크의 카피를 생성하는 단계는, 상기 사용자 데이터 디스크 드라이브에 대한 변화들을 상기 서버 시스템으로부터 다운로딩하고, 상기 시스템 디스크 드라이브에 대한 변화들을 다운로딩하지 않는 단계를 포함하는, 컴퓨터 판독가능 매체. - 제 22 항에 있어서,
상기 서버 시스템은, 상기 델타 디스크의 카피를 생성하는 단계가 수행되는 경우 상기 델타 시스템 디스크를 폐기하는, 컴퓨터 판독가능 매체. - 제 22 항에 있어서,
상기 방법은,
상기 델타 디스크의 카피를 생성하는 단계가 수행되는 경우 상기 클라이언트 시스템 상에서 상기 델타 시스템 디스크의 카피를 생성하는 단계를 더 포함하는, 컴퓨터 판독가능 매체. - 제 14 항에 있어서,
상기 서버 시스템은, 상기 가상 머신의 클라이언트 인스턴스를 실행하는 단계 이전에 상기 서버 시스템에서 멀웨어에 대해 상기 델타 디스크를 스캐닝하는, 컴퓨터 판독가능 매체. - 서버-기반 데스크탑-가상 머신 아키텍처를 클라이언트 머신으로 확장시키기 위한 유형의 컴퓨터 판독가능 매체로서,
상기 유형의 컴퓨터 판독가능 매체는 서버 시스템 상에서 방법을 구현하는 컴퓨터 프로그램 명령들을 수록하며,
상기 방법은,
사용자 데스크탑을 제공하는 가상 머신의 서버 인스턴스를 구동시키는 단계로서, 상기 가상 머신의 서버 인스턴스는 상기 서버 시스템의 물리적인 컴퓨터 상의 가상화 소프트웨어에 의해 실행하고, 상기 물리적인 컴퓨터는 데이터 저장부 시스템과 통신하고, 상기 가상화 소프트웨어는 상기 가상 머신의 서버 인스턴스로부터, 상기 데이터 저장부 시스템 상의 하나 이상의 파일들에 포함된 가상 디스크 이미지를 포함하는 가상 디스크로 디스크 판독 요청들을 안내하고, 상기 가상화 소프트웨어는 상기 가상 머신의 서버 인스턴스로부터 델타 디스크로 디스크 기입 요청들을 안내하고, 상기 델타 디스크는 상기 가상 디스크에 대한 변형들을 포함하는 파일을 포함하며, 클라이언트 시스템은 사용자 입력/출력을 수신하고 상기 클라이언트 시스템의 사용자 인터페이스로 상기 사용자 입력/출력을 전송하기 위한 원격 데스크탑 클라이언트를 갖는, 상기 가상 머신의 서버 인스턴스를 구동시키는 단계;
상기 클라이언트 시스템과 상기 서버 시스템 사이에서 상기 사용자 입력/출력을 송신 및 수신하는 단계;
상기 가상 디스크의 카피를 상기 클라이언트 시스템에 전송하는 단계;
상기 클라이언트 시스템으로부터 체크-아웃 요청을 수신하는 단계;
상기 체크-아웃 요청에 응답하여, 상기 가상 머신의 서버 인스턴스가 현재 실행하고 있으면 상기 가상 머신의 서버 인스턴스를 종료시키며, 사용자가 상기 클라이언트 시스템 상에서 실행하는 상기 가상 머신의 클라이언트 인스턴스를 사용하여 데스크탑에 액세스할 수 있도록 상기 델타 디스크의 카피를 상기 클라이언트 시스템에 전송하는 단계; 및
체크-인 또는 체크-아웃된 것으로 상기 사용자 데스크탑의 데스크탑 상태의 레코드를 유지하는 단계를 포함하며,
상기 사용자 데스크탑이 상기 가상 머신의 서버 인스턴스를 사용하여 최종적으로 원격으로 액세스되었던 경우, 상기 데스크탑 상태는 체크-인되고, 상기 사용자 데스크탑이 상기 가상 머신의 클라이언트 인스턴스를 사용하여 최종적으로 국부적으로 액세스되었던 경우 상기 데스크탑 상태는 체크-아웃되며,
상기 델타 디스크의 카피를 상기 클라이언트 시스템에 전송하는 단계 이후, 상기 데스크탑 상태가 체크-아웃된다고 상기 서버 시스템이 가정하는, 컴퓨터 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3161308P | 2008-02-26 | 2008-02-26 | |
US61/031,613 | 2008-02-26 | ||
PCT/US2009/034731 WO2009108579A2 (en) | 2008-02-26 | 2009-02-20 | Extending server-based desktop virtual machine architecture to client machines |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100123847A KR20100123847A (ko) | 2010-11-25 |
KR101178752B1 true KR101178752B1 (ko) | 2012-09-10 |
Family
ID=40999459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107018920A KR101178752B1 (ko) | 2008-02-26 | 2009-02-20 | 서버-기반 데스크탑 가상 머신 아키텍처의 클라이언트 머신들로의 확장 |
Country Status (10)
Country | Link |
---|---|
US (6) | US8640126B2 (ko) |
EP (1) | EP2248041B1 (ko) |
JP (1) | JP5198584B2 (ko) |
KR (1) | KR101178752B1 (ko) |
CN (1) | CN101971162B (ko) |
AU (1) | AU2009219470B2 (ko) |
CA (1) | CA2713876C (ko) |
MX (1) | MX2010009362A (ko) |
RU (1) | RU2432605C1 (ko) |
WO (1) | WO2009108579A2 (ko) |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617501B2 (en) | 2004-07-09 | 2009-11-10 | Quest Software, Inc. | Apparatus, system, and method for managing policies on a computer having a foreign operating system |
US7904949B2 (en) | 2005-12-19 | 2011-03-08 | Quest Software, Inc. | Apparatus, systems and methods to provide authentication services to a legacy application |
US8087075B2 (en) | 2006-02-13 | 2011-12-27 | Quest Software, Inc. | Disconnected credential validation using pre-fetched service tickets |
US8429712B2 (en) | 2006-06-08 | 2013-04-23 | Quest Software, Inc. | Centralized user authentication system apparatus and method |
US8086710B2 (en) | 2006-10-30 | 2011-12-27 | Quest Software, Inc. | Identity migration apparatus and method |
US20090164994A1 (en) * | 2007-12-20 | 2009-06-25 | Virtual Computer, Inc. | Virtual computing management systems and methods |
JP5198584B2 (ja) | 2008-02-26 | 2013-05-15 | ヴイエムウェア インク | 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成 |
US8560593B2 (en) * | 2008-03-27 | 2013-10-15 | Dell Software Inc. | System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment |
US8572607B2 (en) * | 2008-05-19 | 2013-10-29 | Novell, Inc. | System and method for performing designated service image processing functions in a service image warehouse |
WO2009143124A1 (en) * | 2008-05-20 | 2009-11-26 | Citrix Systems, Inc. | Methods and systems for patching multiple disk images derived from a common base disk image |
US8255806B2 (en) * | 2008-09-15 | 2012-08-28 | Vmware, Inc. | Unified secure virtual machine player and remote desktop client |
CN103810012A (zh) * | 2008-10-24 | 2014-05-21 | 思杰系统有限公司 | 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统 |
CN101727331B (zh) * | 2008-10-24 | 2013-03-20 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
US8707299B1 (en) * | 2008-11-14 | 2014-04-22 | Symantec Corporation | Method and apparatus for preserving virtual desktops for e-discovery through an agent-less solution |
US8788079B2 (en) | 2010-11-09 | 2014-07-22 | Vmware, Inc. | Monitoring audio fidelity and audio-video synchronization |
US9214004B2 (en) | 2008-12-18 | 2015-12-15 | Vmware, Inc. | Watermarking and scalability techniques for a virtual desktop planning tool |
US9674562B1 (en) | 2008-12-18 | 2017-06-06 | Vmware, Inc. | Quality evaluation of multimedia delivery in cloud environments |
US9286088B2 (en) * | 2009-03-09 | 2016-03-15 | Microsoft Technology Licensing, Llc | User interface for interaction with virtual machine |
US9177145B2 (en) * | 2009-03-24 | 2015-11-03 | Sophos Limited | Modified file tracking on virtual machines |
JP5360199B2 (ja) * | 2009-03-31 | 2013-12-04 | 富士通株式会社 | 仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法 |
US8725791B2 (en) * | 2009-05-02 | 2014-05-13 | Citrix Systems, Inc. | Methods and systems for providing a consistent profile to overlapping user sessions |
US8738781B2 (en) * | 2009-06-22 | 2014-05-27 | Red Hat Israel, Ltd. | Launching a virtual machine associated with a client during startup |
US8341213B2 (en) * | 2009-06-22 | 2012-12-25 | Red Hat Israel, Ltd. | Method for improving boot time of a client having a virtualized operating environment |
US8281018B2 (en) * | 2009-06-22 | 2012-10-02 | Red Hat Israel, Ltd. | Method for automatically providing a client with access to an associated virtual machine |
US8135818B2 (en) * | 2009-06-22 | 2012-03-13 | Red Hat Israel, Ltd. | Automatic virtual machine migration in mixed SBC/CBC environment |
US8255984B1 (en) | 2009-07-01 | 2012-08-28 | Quest Software, Inc. | Single sign-on system for shared resource environments |
WO2011034548A1 (en) * | 2009-09-21 | 2011-03-24 | Hewlett-Packard Development Company, L.P. | System including a virtual disk |
US9529689B2 (en) * | 2009-11-30 | 2016-12-27 | Red Hat, Inc. | Monitoring cloud computing environments |
US20110131330A1 (en) * | 2009-12-02 | 2011-06-02 | International Business Machines Corporation | Collocating desktop virtual machines to proximity of the user |
WO2011072142A2 (en) * | 2009-12-09 | 2011-06-16 | Citrix Systems, Inc. | Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive |
US10146566B2 (en) * | 2009-12-21 | 2018-12-04 | Microsoft Technology Licensing, Llc | Enabling virtual desktop connections to remote clients |
JP5499688B2 (ja) * | 2009-12-23 | 2014-05-21 | 富士通株式会社 | 計算機システム、情報処理装置、仮想計算機運用方法及びプログラム |
US8887172B2 (en) * | 2009-12-31 | 2014-11-11 | Microsoft Corporation | Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds |
US9477531B2 (en) * | 2010-01-27 | 2016-10-25 | Vmware, Inc. | Accessing virtual disk content of a virtual machine without running a virtual desktop |
US8392838B2 (en) * | 2010-01-27 | 2013-03-05 | Vmware, Inc. | Accessing virtual disk content of a virtual machine using a control virtual machine |
US9009219B2 (en) | 2010-01-27 | 2015-04-14 | Vmware, Inc. | Native viewer use for service results from a remote desktop |
US9274821B2 (en) | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
CN101741866B (zh) * | 2010-02-01 | 2012-12-12 | 浪潮(北京)电子信息产业有限公司 | 一种在线存储系统及方法 |
US8316120B2 (en) * | 2010-02-02 | 2012-11-20 | Microsoft Corporation | Applicability detection using third party target state |
US8549272B2 (en) | 2010-02-10 | 2013-10-01 | Dell Products L.P. | Information handling system image management deployment of virtual machine images to physical information handling systems |
US9703586B2 (en) | 2010-02-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Distribution control and tracking mechanism of virtual machine appliances |
JP5533005B2 (ja) * | 2010-02-17 | 2014-06-25 | 富士通株式会社 | 情報処理装置、計算機システム及びプログラム |
JP5493976B2 (ja) * | 2010-02-18 | 2014-05-14 | 富士通株式会社 | 情報処理装置、計算機システム及びプログラム |
US8601056B2 (en) * | 2010-03-09 | 2013-12-03 | Avistar Communications Corporation | Scalable high-performance interactive real-time media architectures for virtual desktop environments |
CN102196003B (zh) * | 2010-03-12 | 2015-09-23 | 新奥特(北京)视频技术有限公司 | 一种监控系统的远程控制方法及装置 |
US8898668B1 (en) * | 2010-03-31 | 2014-11-25 | Netapp, Inc. | Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine |
US8453145B1 (en) | 2010-05-06 | 2013-05-28 | Quest Software, Inc. | Systems and methods for instant provisioning of virtual machine files |
EP2569705A4 (en) * | 2010-05-09 | 2014-05-14 | Citrix Systems Inc | SYSTEMS AND METHOD FOR CREATING AND DISTRIBUTING ENCRYPTED VIRTUAL PLATES |
US8893004B2 (en) | 2010-05-12 | 2014-11-18 | International Business Machines Corporation | User interface proxy method and system |
US9547562B1 (en) | 2010-08-11 | 2017-01-17 | Dell Software Inc. | Boot restore system for rapidly restoring virtual machine backups |
JP4922443B2 (ja) * | 2010-08-26 | 2012-04-25 | 株式会社東芝 | コンピュータシステム、情報処理装置およびセキュリティ保護方法 |
TWI505189B (zh) * | 2010-08-27 | 2015-10-21 | Ibm | 用於虛擬裝置之自動升級之方法、電腦程式及系統 |
CN102419753B (zh) * | 2010-09-28 | 2014-02-12 | 联想(北京)有限公司 | 信息处理设备、信息处理方法和信息处理系统 |
CN102447723B (zh) * | 2010-10-12 | 2015-09-09 | 运软网络科技(上海)有限公司 | 客户端虚拟化架构 |
US8386501B2 (en) | 2010-10-20 | 2013-02-26 | Microsoft Corporation | Dynamically splitting multi-tenant databases |
US8751656B2 (en) * | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
US8417737B2 (en) | 2010-10-20 | 2013-04-09 | Microsoft Corporation | Online database availability during upgrade |
US8756696B1 (en) | 2010-10-30 | 2014-06-17 | Sra International, Inc. | System and method for providing a virtualized secure data containment service with a networked environment |
US9336117B2 (en) | 2010-11-09 | 2016-05-10 | Vmware, Inc. | Remote display performance measurement triggered by application display upgrade |
US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
CN102487380B (zh) * | 2010-12-01 | 2016-09-07 | 中兴通讯股份有限公司 | 桌面虚拟化终端托管方法及系统 |
US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
KR20120072241A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 클라우드 컴퓨팅 환경에서의 클라우드 간 개인 가상 머신 이동 시스템 및 그 방법 |
US20120216052A1 (en) * | 2011-01-11 | 2012-08-23 | Safenet, Inc. | Efficient volume encryption |
US10678602B2 (en) | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
US10225335B2 (en) | 2011-02-09 | 2019-03-05 | Cisco Technology, Inc. | Apparatus, systems and methods for container based service deployment |
US9967318B2 (en) | 2011-02-09 | 2018-05-08 | Cisco Technology, Inc. | Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment |
US8862933B2 (en) | 2011-02-09 | 2014-10-14 | Cliqr Technologies, Inc. | Apparatus, systems and methods for deployment and management of distributed computing systems and applications |
US10003672B2 (en) * | 2011-02-09 | 2018-06-19 | Cisco Technology, Inc. | Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures |
US8856486B2 (en) * | 2011-02-23 | 2014-10-07 | Citrix Systems, Inc. | Deploying a copy of a disk image from source storage to target storage |
US9542215B2 (en) * | 2011-09-30 | 2017-01-10 | V3 Systems, Inc. | Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections |
US8566899B2 (en) * | 2011-03-16 | 2013-10-22 | Symantec Corporation | Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure |
US8959569B2 (en) * | 2011-03-18 | 2015-02-17 | Juniper Networks, Inc. | Security enforcement in virtualized systems |
FR2973185B1 (fr) * | 2011-03-22 | 2013-03-29 | Sagem Defense Securite | Procede et dispositif de connexion a un reseau de haute securite |
JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
US8990405B2 (en) | 2011-04-01 | 2015-03-24 | Hewlett-Packard Development Company, L.P. | Methods, systems and articles of manufacture to resume a remote desktop session |
US8966581B1 (en) | 2011-04-07 | 2015-02-24 | Vmware, Inc. | Decrypting an encrypted virtual machine using asymmetric key encryption |
CN102760081B (zh) * | 2011-04-29 | 2016-01-27 | 国际商业机器公司 | 虚拟机资源分配的方法和装置 |
US9176744B2 (en) * | 2011-05-20 | 2015-11-03 | Citrix Systems, Inc. | Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot |
US8719522B1 (en) * | 2011-06-27 | 2014-05-06 | Emc Corporation | Virtual desktop backup and restore |
KR101507919B1 (ko) | 2011-07-01 | 2015-04-07 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 방법 및 장치 |
US10976981B2 (en) | 2011-07-15 | 2021-04-13 | Vmware, Inc. | Remote desktop exporting |
US10983747B2 (en) | 2011-07-15 | 2021-04-20 | Vmware, Inc. | Remote desktop mirroring |
RU2486562C2 (ru) * | 2011-08-26 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) | Способ построения автоматизированной системы, реализующей принципы виртуализации рабочих мест и изоморфного масштабирования |
KR101650424B1 (ko) * | 2011-09-13 | 2016-09-05 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 기점 가상 머신으로부터 목적지 가상 머신으로의 동작 전송 |
CN102355501B (zh) * | 2011-09-28 | 2017-06-13 | 华为技术有限公司 | 一种数据处理方法、接入审核设备及系统 |
US20130093776A1 (en) * | 2011-10-14 | 2013-04-18 | Microsoft Corporation | Delivering a Single End User Experience to a Client from Multiple Servers |
CN102427448B (zh) * | 2011-11-03 | 2017-07-14 | 南京中兴软件有限责任公司 | 在虚拟桌面中使用客户端输入法的方法、终端及服务端 |
US8769519B2 (en) | 2011-12-08 | 2014-07-01 | Microsoft Corporation | Personal and pooled virtual machine update |
CN103150204B (zh) * | 2011-12-23 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 操作系统桌面管理方法和装置 |
CN103188307A (zh) * | 2011-12-30 | 2013-07-03 | 旭智科技(深圳)有限公司 | 新型云应用方法及系统 |
CN103200215A (zh) * | 2012-01-08 | 2013-07-10 | 佳都新太科技股份有限公司 | 一种在https上实现XenServer虚拟机远程控制的方法 |
US8839447B2 (en) * | 2012-02-27 | 2014-09-16 | Ca, Inc. | System and method for virtual image security in a cloud environment |
JP5670369B2 (ja) * | 2012-03-08 | 2015-02-18 | 株式会社東芝 | 情報処理装置、イメージファイル管理方法およびプログラム |
CN102662741B (zh) | 2012-04-05 | 2014-04-02 | 华为技术有限公司 | 虚拟桌面的实现方法、装置和系统 |
US9237195B2 (en) * | 2012-04-27 | 2016-01-12 | Netapp, Inc. | Virtual storage appliance gateway |
KR101239290B1 (ko) * | 2012-07-23 | 2013-03-06 | (주)엔텍 | 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법 |
US9977698B2 (en) * | 2012-07-31 | 2018-05-22 | V3 Systems Holdings, Inc. | Virtual machine migration into the cloud |
US9117093B2 (en) * | 2012-09-26 | 2015-08-25 | Ca, Inc. | Centralized, policy-driven maintenance of storage for virtual machine disks (VMDKS) and/or physical disks |
US10198285B2 (en) | 2012-10-04 | 2019-02-05 | Vertiv It Systems, Inc. | System and method for creating virtual disk images for use with remote computer |
WO2014055640A1 (en) * | 2012-10-04 | 2014-04-10 | Avocent Huntsville Corp. | System and method for creating virtual disk images for use with remote computer |
US9372760B1 (en) * | 2012-10-19 | 2016-06-21 | Veritas Technologies Llc | Systems and methods for securely storing backup data while facilitating fast failovers |
US9921884B1 (en) * | 2012-11-01 | 2018-03-20 | Amazon Technologies, Inc. | Local and remote access to virtual machine image filesystems |
US9262212B2 (en) * | 2012-11-02 | 2016-02-16 | The Boeing Company | Systems and methods for migrating virtual machines |
US9485233B1 (en) * | 2012-11-02 | 2016-11-01 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
US9992185B1 (en) | 2012-11-02 | 2018-06-05 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
US9374351B1 (en) | 2012-11-02 | 2016-06-21 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
KR101379835B1 (ko) * | 2012-11-28 | 2014-04-02 | 성균관대학교산학협력단 | 가상 머신에 가상 배터리를 제공하는 가상 머신 모니터, 가상 머신 호스트 시스템 및 가상 배터리 관리 방법 |
US9092161B2 (en) * | 2012-12-05 | 2015-07-28 | Red Hat Israel, Ltd. | Selection of allocation policy and format for virtual machine disk images |
US10162873B2 (en) * | 2012-12-21 | 2018-12-25 | Red Hat, Inc. | Synchronization of physical disks |
US20140188977A1 (en) * | 2012-12-28 | 2014-07-03 | Futurewei Technologies, Inc. | Appratus, method for deploying applications in a virtual desktop interface system |
US9549019B2 (en) * | 2013-01-09 | 2017-01-17 | Red Hat Israel, Ltd. | Managing a logical client for a virtual machine |
US10284668B2 (en) | 2013-01-09 | 2019-05-07 | Red Hat Israel, Ltd. | Managing a logical client for an application |
US8997080B2 (en) * | 2013-02-11 | 2015-03-31 | Citrix Systems, Inc. | System updates with personal virtual disks |
US9201755B2 (en) * | 2013-02-14 | 2015-12-01 | Vmware, Inc. | Real-time, interactive measurement techniques for desktop virtualization |
US9148350B1 (en) | 2013-03-11 | 2015-09-29 | Amazon Technologies, Inc. | Automated data synchronization |
US9002982B2 (en) | 2013-03-11 | 2015-04-07 | Amazon Technologies, Inc. | Automated desktop placement |
US10142406B2 (en) * | 2013-03-11 | 2018-11-27 | Amazon Technologies, Inc. | Automated data center selection |
US10313345B2 (en) | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
JP5698865B2 (ja) | 2013-03-12 | 2015-04-08 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
EP2984559B1 (en) * | 2013-04-09 | 2019-06-12 | Citrix Systems Inc. | Providing a native desktop using cloud-synchronized data |
CA2852597C (en) * | 2013-05-23 | 2020-02-04 | Ellison Information Manufacturing Inc. | Method and system for input driven process flow management |
US20140359213A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Differencing disk improved deployment of virtual machines |
EP2813945A1 (en) * | 2013-06-14 | 2014-12-17 | Tocario GmbH | Method and system for enabling access of a client device to a remote desktop |
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 |
US9264289B2 (en) * | 2013-06-27 | 2016-02-16 | Microsoft Technology Licensing, Llc | Endpoint data centers of different tenancy sets |
US9639384B2 (en) * | 2013-08-20 | 2017-05-02 | Vmware, Inc. | Method and system for fast provisioning of virtual desktop |
WO2015025384A1 (ja) | 2013-08-21 | 2015-02-26 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
WO2015029139A1 (ja) | 2013-08-27 | 2015-03-05 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
US9851993B2 (en) * | 2013-09-24 | 2017-12-26 | International Business Machines Corporation | Virtual machine template optimization |
US9537932B2 (en) * | 2013-10-23 | 2017-01-03 | Microsoft Technology Licensing, Llc | Emulating test distributed application on server |
US9485099B2 (en) | 2013-10-25 | 2016-11-01 | Cliqr Technologies, Inc. | Apparatus, systems and methods for agile enablement of secure communications for cloud based applications |
CN103593227B (zh) * | 2013-11-08 | 2017-02-22 | 何钦淋 | 在客户端运行桌面虚拟系统的方法及客户端 |
CN103677840A (zh) * | 2013-12-18 | 2014-03-26 | 浪潮电子信息产业股份有限公司 | 一种在作业调度软件中查看及操作应用图形界面的方法 |
US10353633B2 (en) * | 2013-12-19 | 2019-07-16 | Sony Interactive Entertainment LLC | Mass storage virtualization for cloud computing |
WO2015099690A1 (en) * | 2013-12-23 | 2015-07-02 | Citrix Systems, Inc. | Method and system for optimizing virtual disk provisioning |
US9720719B2 (en) | 2013-12-23 | 2017-08-01 | Citrix Systems, Inc. | Method and system for optimizing virtual disk provisioning |
US9264517B2 (en) | 2014-02-19 | 2016-02-16 | Vmware, Inc. | Wide area aggregated communications |
CN104901923B (zh) * | 2014-03-04 | 2018-12-25 | 新华三技术有限公司 | 一种虚拟机访问装置和方法 |
US9430213B2 (en) | 2014-03-11 | 2016-08-30 | Cliqr Technologies, Inc. | Apparatus, systems and methods for cross-cloud software migration and deployment |
US9734191B2 (en) * | 2014-03-31 | 2017-08-15 | Dell Products, L.P. | Asynchronous image repository functionality |
US10542049B2 (en) | 2014-05-09 | 2020-01-21 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US9280376B2 (en) | 2014-05-13 | 2016-03-08 | Dell Products, Lp | System and method for resizing a virtual desktop infrastructure using virtual desktop infrastructure monitoring tools |
US10318489B2 (en) * | 2014-05-21 | 2019-06-11 | Vmware, Inc. | Avoiding full file replication using sparse files |
JP2015225632A (ja) * | 2014-05-30 | 2015-12-14 | 日本電気株式会社 | シンクライアント端末装置、サーバ装置、方法、およびプログラム |
US10884775B2 (en) * | 2014-06-17 | 2021-01-05 | Nokia Solutions And Networks Oy | Methods and apparatus to control a virtual machine |
US10956041B2 (en) | 2014-06-26 | 2021-03-23 | Vmware, Inc. | Online snapshot consolidation using I/O mirroring |
US20160026492A1 (en) * | 2014-07-24 | 2016-01-28 | Samsung Electronics Co., Ltd. | Electronic apparatus for executing virtual machine and method for executing virtual machine |
US20160044139A1 (en) * | 2014-08-07 | 2016-02-11 | Hsiu-Ping Lin | Methods and systems for communications between apps and virtual machines |
US10073902B2 (en) | 2014-09-24 | 2018-09-11 | Microsoft Technology Licensing, Llc | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency |
TWI608420B (zh) * | 2014-10-20 | 2017-12-11 | 緯創資通股份有限公司 | 虛擬機器監控方法及其系統 |
US20170054792A1 (en) * | 2014-11-20 | 2017-02-23 | Otoy, Inc. | Systems and methods for deploying applications |
KR102328193B1 (ko) | 2015-06-24 | 2021-11-18 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 장치 및 방법 |
KR101929048B1 (ko) | 2015-06-24 | 2018-12-13 | 한국전자통신연구원 | 인메모리 기반 가상 데스크탑 서비스를 위한 장치 및 방법 |
CN107810475B (zh) * | 2015-06-30 | 2021-09-10 | 威睿公司 | 用于虚拟计算环境的软件生命周期管理的方法和装置 |
KR101977726B1 (ko) | 2015-11-17 | 2019-05-14 | 한국전자통신연구원 | 가상 데스크탑 서비스 방법 및 장치 |
US10133868B2 (en) * | 2016-01-10 | 2018-11-20 | Apple Inc. | Switching users and sync bubble for EDU mode |
US10192055B2 (en) | 2016-01-10 | 2019-01-29 | Apple Inc. | Log in/log out process for EDU mode |
US10990690B2 (en) * | 2016-01-29 | 2021-04-27 | British Telecommunications Public Limited Company | Disk encryption |
CN105653342B (zh) * | 2016-02-01 | 2018-09-28 | 福建升腾资讯有限公司 | 一种Windows池桌面自动入域的方法及系统 |
US10540165B2 (en) | 2016-02-12 | 2020-01-21 | Nutanix, Inc. | Virtualized file server rolling upgrade |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
KR102568985B1 (ko) * | 2016-06-22 | 2023-08-23 | 한국전자통신연구원 | 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법 |
US10318330B2 (en) * | 2016-11-30 | 2019-06-11 | Salesforce.Com, Inc. | Data-persisting temporary virtual machine environments |
US10728090B2 (en) | 2016-12-02 | 2020-07-28 | Nutanix, Inc. | Configuring network segmentation for a virtualization environment |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US10824455B2 (en) | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
US11587196B2 (en) * | 2017-04-10 | 2023-02-21 | Dell Products L.P. | Information handling system remote desktop protocol selection |
US11144412B2 (en) | 2017-06-05 | 2021-10-12 | Vmware, Inc. | Virtual machine image file synchronization using delta bitmaps and delta files |
KR101946862B1 (ko) | 2017-06-08 | 2019-04-29 | (주)필라웨어 | 사용자 인사 정보에 기반한 가상 데스크탑/가상 어플리케이션 환경 관리 시스템 |
CN108667887B (zh) * | 2017-07-03 | 2021-07-23 | 无锡辰云科技股份有限公司 | 基于融合计算的桌面虚拟方法、装置和系统 |
CN111164570B (zh) * | 2017-10-11 | 2024-05-21 | 维谛信息技术系统有限公司 | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 |
KR102492793B1 (ko) * | 2018-01-03 | 2023-01-30 | 주식회사 케이티 | 가상 데스크탑 서비스 제공 시스템 및 가상 데스크탑 서비스 제공 방법 |
US10430227B2 (en) | 2018-01-09 | 2019-10-01 | Microsoft Technology Licensing, Llc | Fast instantiation of virtual machines in distributed computing systems |
US10693945B2 (en) * | 2018-01-24 | 2020-06-23 | Vmware, Inc. | File and folder redirection for virtual desktops via image scanning |
CN108306969B (zh) * | 2018-02-02 | 2021-05-25 | 西安雷风电子科技有限公司 | 一种idv云桌面的智能接入系统及智能接入方法 |
CN108536515B (zh) * | 2018-03-02 | 2021-10-01 | 武汉噢易云计算股份有限公司 | Vdi的虚拟机播放客户机的音乐cd的方法及系统 |
US10664323B2 (en) | 2018-03-07 | 2020-05-26 | Microsoft Technology Licensing, Llc | Live migration of virtual machines in distributed computing systems |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
PT115089A (pt) * | 2018-10-19 | 2020-04-20 | Eurotux Informatica S A | Sistema e método para comutação gradual de ambiente de computação entre computador local e computador remoto. |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US10809935B2 (en) * | 2018-12-17 | 2020-10-20 | Vmware, Inc. | System and method for migrating tree structures with virtual disks between computing environments |
US20210117208A1 (en) * | 2019-10-18 | 2021-04-22 | Vmware, Inc. | User profile migration to virtual desktop infrastructure |
US11221784B2 (en) * | 2019-11-01 | 2022-01-11 | Hiveio Inc. | Method and system for user data backup within a virtual desktop environment |
US11263039B2 (en) * | 2019-11-15 | 2022-03-01 | Vmware, Inc. | High performance attachable writeable volumes in VDI desktops |
CN110928624A (zh) * | 2019-11-15 | 2020-03-27 | 联思智云(北京)科技有限公司 | 用于用户终端的云桌面调用方法、装置及终端 |
CN110908756B (zh) * | 2019-11-18 | 2024-02-02 | 西安雷风电子科技有限公司 | 一种云端桌面实时融合切换方法及系统 |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
US11368726B1 (en) * | 2020-06-11 | 2022-06-21 | Francisco Matías Saez Cerda | Parsing and processing reconstruction of multi-angle videos |
EP3929740A1 (de) * | 2020-06-26 | 2021-12-29 | Siemens Aktiengesellschaft | Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät |
US12131192B2 (en) | 2021-03-18 | 2024-10-29 | Nutanix, Inc. | Scope-based distributed lock infrastructure for virtualized file server |
US20230056217A1 (en) | 2021-08-19 | 2023-02-23 | Nutanix, Inc. | Failover and failback of distributed file servers |
US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
US12026531B2 (en) * | 2021-10-01 | 2024-07-02 | Pritchard Brian | Methods and systems for emulating application-specific workstations on personal computers |
US11979454B2 (en) | 2022-08-29 | 2024-05-07 | Vertiv It Systems, Inc. | Writeback to a virtual media mapped image in HTML5 |
CN116775223B (zh) * | 2023-08-18 | 2023-11-10 | 西安雷风电子科技有限公司 | 一种idv和vdi虚拟桌面融合使用的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070300220A1 (en) | 2006-06-23 | 2007-12-27 | Sentillion, Inc. | Remote Network Access Via Virtual Machine |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4025475B2 (ja) * | 1999-11-10 | 2007-12-19 | 日本電気株式会社 | データベース交換システム |
US7313614B2 (en) * | 2000-11-02 | 2007-12-25 | Sun Microsystems, Inc. | Switching system |
US20020156971A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method, apparatus, and program for providing hybrid disk mirroring and striping |
US7275105B2 (en) * | 2002-01-16 | 2007-09-25 | Laszlo Systems, Inc. | Enabling online and offline operation |
US7032131B2 (en) * | 2002-03-26 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for ensuring merge completion in a storage area network |
US9171049B2 (en) * | 2002-06-13 | 2015-10-27 | Salesforce.Com, Inc. | Offline simulation of online session between client and server |
US7793060B2 (en) * | 2003-07-15 | 2010-09-07 | International Business Machines Corporation | System method and circuit for differential mirroring of data |
US7555531B2 (en) * | 2004-04-15 | 2009-06-30 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression |
JP4242819B2 (ja) * | 2004-10-06 | 2009-03-25 | 株式会社日立製作所 | オフライン作業可能な端末を有する計算機システム |
US7536525B2 (en) * | 2004-11-09 | 2009-05-19 | Dell Products L.P. | Virtual machine hot cloning including freezing and unfreezing memory in a distributed network |
US20060122955A1 (en) * | 2004-12-02 | 2006-06-08 | Alex Bethlehem | System and method for launching a resource in a network |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US20060184937A1 (en) * | 2005-02-11 | 2006-08-17 | Timothy Abels | System and method for centralized software management in virtual machines |
US20070094659A1 (en) * | 2005-07-18 | 2007-04-26 | Dell Products L.P. | System and method for recovering from a failure of a virtual machine |
US7447854B1 (en) * | 2005-12-30 | 2008-11-04 | Vmware, Inc. | Tracking and replicating changes to a virtual disk |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7739738B1 (en) * | 2006-03-15 | 2010-06-15 | Symantec Corporation | Enabling clean file cache persistence using dual-boot detection |
US20070260702A1 (en) * | 2006-05-03 | 2007-11-08 | University Of Washington | Web browser architecture for virtual machine access |
US20080086540A1 (en) * | 2006-10-06 | 2008-04-10 | James Scott | Method and system for executing a normally online application in an offline mode |
CA2665873A1 (en) * | 2006-10-20 | 2008-05-02 | Citrix Systems, Inc. | Methods and systems for accessing remote user files associated with local resources |
WO2008073618A2 (en) * | 2006-11-06 | 2008-06-19 | Devicevm, Inc. | Instant on platform |
US20080201414A1 (en) * | 2007-02-15 | 2008-08-21 | Amir Husain Syed M | Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer |
US20080235361A1 (en) * | 2007-03-21 | 2008-09-25 | David Crosbie | Management layer method and apparatus for dynamic assignment of users to computer resources |
US20080301770A1 (en) * | 2007-05-31 | 2008-12-04 | Kinder Nathan G | Identity based virtual machine selector |
US9069638B2 (en) * | 2007-06-11 | 2015-06-30 | Red Hat, Inc. | Update system to synchronize changes from external sources for a java virtual machine |
US7970903B2 (en) * | 2007-08-20 | 2011-06-28 | Hitachi, Ltd. | Storage and server provisioning for virtualized and geographically dispersed data centers |
JP5198584B2 (ja) | 2008-02-26 | 2013-05-15 | ヴイエムウェア インク | 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成 |
US8255806B2 (en) * | 2008-09-15 | 2012-08-28 | Vmware, Inc. | Unified secure virtual machine player and remote desktop client |
WO2010113376A1 (ja) | 2009-03-31 | 2010-10-07 | パナソニック株式会社 | フレキシブル半導体装置およびその製造方法 |
-
2009
- 2009-02-20 JP JP2010547806A patent/JP5198584B2/ja active Active
- 2009-02-20 AU AU2009219470A patent/AU2009219470B2/en active Active
- 2009-02-20 WO PCT/US2009/034731 patent/WO2009108579A2/en active Application Filing
- 2009-02-20 KR KR1020107018920A patent/KR101178752B1/ko active IP Right Grant
- 2009-02-20 RU RU2010131030/08A patent/RU2432605C1/ru active
- 2009-02-20 CN CN200980105185XA patent/CN101971162B/zh active Active
- 2009-02-20 EP EP09714665.8A patent/EP2248041B1/en active Active
- 2009-02-20 MX MX2010009362A patent/MX2010009362A/es not_active Application Discontinuation
- 2009-02-20 CA CA2713876A patent/CA2713876C/en active Active
- 2009-02-23 US US12/390,819 patent/US8640126B2/en active Active
-
2014
- 2014-01-27 US US14/165,380 patent/US9444883B2/en active Active
-
2016
- 2016-09-01 US US15/254,860 patent/US10061605B2/en active Active
-
2018
- 2018-08-03 US US16/053,851 patent/US10896054B2/en active Active
-
2020
- 2020-12-09 US US17/117,011 patent/US11669359B2/en active Active
-
2023
- 2023-04-26 US US18/139,892 patent/US12106137B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070300220A1 (en) | 2006-06-23 | 2007-12-27 | Sentillion, Inc. | Remote Network Access Via Virtual Machine |
Also Published As
Publication number | Publication date |
---|---|
US20210117223A1 (en) | 2021-04-22 |
US20180341511A1 (en) | 2018-11-29 |
US20160371111A1 (en) | 2016-12-22 |
MX2010009362A (es) | 2010-12-06 |
US10896054B2 (en) | 2021-01-19 |
US9444883B2 (en) | 2016-09-13 |
EP2248041A4 (en) | 2013-01-23 |
JP5198584B2 (ja) | 2013-05-15 |
KR20100123847A (ko) | 2010-11-25 |
AU2009219470B2 (en) | 2012-06-21 |
US20240078126A1 (en) | 2024-03-07 |
WO2009108579A3 (en) | 2009-11-26 |
US12106137B2 (en) | 2024-10-01 |
AU2009219470A1 (en) | 2009-09-03 |
CA2713876C (en) | 2014-11-04 |
CA2713876A1 (en) | 2009-09-03 |
US20090216975A1 (en) | 2009-08-27 |
JP2011513816A (ja) | 2011-04-28 |
EP2248041B1 (en) | 2015-04-29 |
RU2432605C1 (ru) | 2011-10-27 |
CN101971162B (zh) | 2012-11-21 |
EP2248041A2 (en) | 2010-11-10 |
WO2009108579A2 (en) | 2009-09-03 |
US8640126B2 (en) | 2014-01-28 |
US20140189816A1 (en) | 2014-07-03 |
US10061605B2 (en) | 2018-08-28 |
CN101971162A (zh) | 2011-02-09 |
US11669359B2 (en) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12106137B2 (en) | Extending server-based desktop virtual machine architecture to client machines | |
US8255806B2 (en) | Unified secure virtual machine player and remote desktop client | |
US10609112B2 (en) | Method, server and system for converging desktop application and web application | |
US9141412B2 (en) | Terminal services application virtualization for compatibility | |
US10379891B2 (en) | Apparatus and method for in-memory-based virtual desktop service | |
JP6397113B2 (ja) | リモーティングセッションを通じた非サポートファイル形式の開封 | |
US11080041B1 (en) | Operating system management for virtual workspaces | |
US20120272236A1 (en) | Mechanism for host machine level template caching in virtualization environments | |
JP2022522678A (ja) | セキュア実行ゲスト所有者環境制御 | |
US9058196B2 (en) | Host machine level template caching in virtualization environments | |
WO2016206414A1 (zh) | 多个虚拟桌面架构的融合方法及装置 | |
US20120311490A1 (en) | Methods for launching applications with efficient user impression | |
US11822938B2 (en) | User profile migration to virtual desktop infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150729 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160727 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170804 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180730 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190729 Year of fee payment: 8 |