IP Library Granted Patent US 9,444,883
Granted Patent B2
US 9,444,883 · App. 14/165,380 · Granted Sep 13, 2016

Extending server-based desktop virtual machine architecture to client machines

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,444,883
App. No.
14/165,380
Granted
Sep 13, 2016
Kind
B2
Abstract

A server-based desktop-virtual machines architecture may be extended to a client machine. In one embodiment, a user desktop is remotely accessed from a client system. The remote desktop is generated by a first virtual machine running on a server system, which may comprise one or more server computers. During execution of the first virtual machine, writes to a corresponding virtual disk are directed to a delta disk file or redo log. A copy of the virtual disk is created on the client system. When a user decides to “check out” his or her desktop, the first virtual machine is terminated (if it is running) and a copy of the delta disk is created on the client system. Once the delta disk is present on the client system, a second virtual machine can be started on the client system using the virtual disk and delta disk to provide local access to the user's desktop at the client system. This allows the user to then access his or her desktop without being connected to a network.

Claims (80)

1. A method comprising:

receiving, by a server system, a request from a user of a client system for accessing a user desktop, wherein the user desktop is provided by a server-side virtual machine (VM) running on the server system, and wherein the server system is configured to direct disk read requests from the server-side VM to a server-side virtual disk file and direct disk write requests from the server-side VM to a server-side delta disk file;

connecting, by the server system, the user to the user desktop;

determining, by the server system, whether the client system has a client-side virtual disk file that is logically equivalent to the server-side virtual disk file;

if the client system does not have a client-side virtual disk file that is logically equivalent to the server-side virtual disk file, copying, by the server system, the server-side virtual disk file to the client system via a first background process while the user is remotely interacting with the user desktop;

determining, by the server system, whether the client system has a client-side delta disk file that is logically equivalent to the server-side delta disk file; and

if the client system does not have a client-side delta disk file that is logically equivalent to the server-side delta disk file, copying, by the server system, the server-side delta disk file to the client system via a second background process while the user is remotely interacting with the user desktop.

2. The method of claim 1 further comprising:

authenticating the user prior to connecting the user to the user desktop.

3. The method of claim 1 further comprising:

receiving, by the server system, a checkout request from the user for checking out the user desktop from the server system to the client system;

accessing, by the server system, a management policy to determine whether the user has appropriate privileges to check out the user desktop; and

if the management policy indicates that the user does not have the appropriate privileges, transmitting, by the server system, a denial message to the user.

4. The method of claim 1 further comprising:

receiving, by the server system, a checkout request from the user for checking out the user desktop from the server system to the client system;

determining, by the server system, if the user desktop is already checked out;

if the user desktop is already checked out, transmitting, by the server system, the denial message to the user; and

if the user desktop is not already checked out:

terminating, by the server system, execution of the server-side VM;

updating, by the server system, data associated with the user to reflect a checked-out status of the user desktop; and

permitting, by the server system, the user to access the user desktop via a client-side VM running on the client system.

5. The method of claim 4 further comprising:

merging, by the server system, the server-side delta disk file into the server-side virtual disk file.

6. The method of claim 1 wherein copying the server-side delta disk file to the client system comprises:

analyzing file system information in the server-side delta disk file to identify sectors associated with deleted VM guest files; and

omitting the identified sectors when copying the server-side delta disk file to the client system.

7. A non-transitory computer readable medium having stored thereon computer software executable by a processor of a server system, the computer software embodying a method comprising:

receiving a request from a user of a client system for accessing a user desktop, wherein the user desktop is provided by a server-side virtual machine (VM) running on the server system, and wherein the server system is configured to direct disk read requests from the server-side VM to a server-side virtual disk file and direct disk write requests from the server-side VM to a server-side delta disk file;

connecting the user to the user desktop;

determining whether the client system has a client-side virtual disk file that is logically equivalent to the server-side virtual disk file;

if the client system does not have a client-side virtual disk file that is logically equivalent to the server-side virtual disk file, copying the server-side virtual disk file to the client system via a first background process while the user is remotely interacting with the user desktop;

determining whether the client system has a client-side delta disk file that is logically equivalent to the server-side delta disk file; and

if the client system does not have a client-side delta disk file that is logically equivalent to the server-side delta disk file, copying the server-side delta disk file to the client system via a second background process while the user is remotely interacting with the user desktop.

8. The non-transitory computer readable medium of claim 7 wherein the method further comprises:

authenticating the user prior to connecting the user to the user desktop.

9. The non-transitory computer readable medium of claim 7 wherein the method further comprises:

receiving a checkout request from the user for checking out the user desktop from the server system to the client system;

accessing a management policy to determine whether the user has appropriate privileges to check out the user desktop; and

if the management policy indicates that the user does not have the appropriate privileges, transmitting a denial message to the user.

10. The non-transitory computer readable medium of claim 7 wherein the method further comprises:

receiving a checkout request from the user for checking out the user desktop from the server system to the client system;

determining if the user desktop is already checked out;

if the user desktop is already checked out, transmitting the denial message to the user; and

if the user desktop is not already checked out:

terminating execution of the server-side VM;

updating data associated with the user to reflect a checked-out status of the user desktop; and

permitting the user to access the user desktop via a client-side VM running on the client system.

11. The non-transitory computer readable medium of claim 10 wherein the method further comprises:

merging the server-side delta disk file into the server-side virtual disk file.

12. The non-transitory computer readable medium of claim 7 wherein copying the server-side delta disk file to the client system comprises:

analyzing file system information in the server-side delta disk file to identify sectors associated with deleted VM guest files; and

omitting the identified sectors when copying the server-side delta disk file to the client system.

13. A server system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

receive a request from a user of a client system for accessing a user desktop, wherein the user desktop is provided by a server-side virtual machine (VM) running on the server system, and wherein the server system is configured to direct disk read requests from the server-side VM to a server-side virtual disk file and direct disk write requests from the server-side VM to a server-side delta disk file;

connect the user to the user desktop;

determine whether the client system has a client-side virtual disk file that is logically equivalent to the server-side virtual disk file;

if the client system does not have a client-side virtual disk file that is logically equivalent to the server-side virtual disk file, copy the server-side virtual disk file to the client system via a first background process while the user is remotely interacting with the user desktop

determine whether the client system has a client-side delta disk file that is logically equivalent to the server-side delta disk file; and

if the client system does not have a client-side delta disk file that is logically equivalent to the server-side delta disk file, copy the server-side delta disk file to the client system via a second background process while the user is remotely interacting with the user desktop.

14. The server system of claim 13 wherein the instructions further cause the processor to:

authenticate the user prior to connecting the user to the user desktop.

15. The server system of claim 13 wherein the instructions further cause the processor to:

receive a checkout request from the user for checking out the user desktop from the server system to the client system;

access a management policy to determine whether the user has appropriate privileges to check out the user desktop; and

if the management policy indicates that the user does not have the appropriate privileges, transmit a denial message to the user.

16. The server system of claim 13 wherein the instructions further cause the processor to:

receive a checkout request from the user for checking out the user desktop from the server system to the client system;

determine if the user desktop is already checked out;

if the user desktop is already checked out, transmit the denial message to the user; and

if the user desktop is not already checked out:

terminate execution of the server-side VM;

update data associated with the user to reflect a checked-out status of the user desktop; and

permit the user to access the user desktop via a client-side VM running on the client system.

17. The server system of claim 16 wherein the instructions further cause the processor to:

merge the server-side delta disk file into the server-side virtual disk file.

18. The server system of claim 13 wherein the instructions that cause the processor to copy the server-side delta disk file to the client system comprise instructions that cause the processor to:

analyze file system information in the server-side delta disk file to identify sectors associated with deleted VM guest files; and

omit the identified sectors when copying the server-side delta disk file to the client system.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →