IP Library Granted Patent US 12,106,137
Granted Patent B2
US 12,106,137 · App. 18/139,892 · Granted Oct 1, 2024

Extending server-based desktop virtual machine architecture to client machines

Inventors: Yaron Halperin (Sunnyvale, CA); Jad Chamcham (Mountain View, CA); Christian Matthew Leroy (San Francisco, CA); Gerald Cheong (East Palo Alto, CA); Matthew Eccleston (San Francisco, CA); Ji Feng (Sunnyvale, CA)
Assignee: Omnissa, LLC
G06F9/45558G06F9/452G06F9/45537G06F9/4856H04L63/10H04L67/10G06F2009/45575G06F2009/45583G06F2009/45595
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 12,106,137
App. No.
18/139,892
Granted
Oct 1, 2024
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 (77)

1. A method comprising:

receiving, by a server system providing a desktop to a user of a client system, a desktop check-out request from the client system, wherein the desktop is provided via a server-side virtual machine (VM) running on the server system, wherein persistent data of the server-side VM is maintained in a server-side virtual disk image file and wherein the desktop check-out request is a request to allow the user local access to the desktop via a client-side VM running on the client system;

in response to the request:

verifying, by the server system, that the desktop is not currently checked out to the user on the client system or another client system;

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

checking, by the server system, whether the client system has a current copy of the server-side virtual disk image file;

upon determining that the client system does not have a current copy of the server-side virtual disk image file, transmitting, by the server system, at least a portion of the server-side virtual disk image file to the client system;

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

upon completing the updating, allowing, by the server system, the user to access the desktop via the client-side VM of the client system; and

while the desktop is checked out to the user on the client system:

receiving, from the client system, a request to remotely access the desktop on the server system; and

allowing the client system to remotely access the desktop in a mode that does not persist any newly-saved data.

2. The method of claim 1 wherein terminating execution of the server-side VM includes:

powering down or suspending the server-side VM; and

saving a current state of the persistent data of the server-side VM to the server-side virtual disk image file.

3. The method of claim 1 further comprising, prior to the verifying:

authenticating an identity of the user; and

determining whether an authorization policy associated with the user allows for check-out of the desktop.

4. The method of claim 1 wherein changes to the persistent data of the server-side VM is maintained in a server-side delta disk image file that is separate from the server-side virtual disk image file, and wherein the method further comprises:

checking whether the client system has a current copy of the server-side delta disk image file; and

upon determining that the client system does not have a current copy of the server-side delta disk image file, transmitting at least a portion of the server-side delta disk image file to the client system.

5. The method of claim 1 wherein the transmitting comprises:

determining that the client system has a partial copy of the server-side virtual disk image file; and

transmitting, to the client system, one or more portions of the server-side virtual disk image file missing from the partial copy.

6. The method of claim 5 wherein the partial copy was previously transmitted to the client system while the user remotely accessed the desktop via the client system.

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

receiving a desktop check-out request from the client system, wherein the desktop is provided via a server-side virtual machine (VM) running on the server system, wherein persistent data of the server-side VM is maintained in a server-side virtual disk image file, and wherein the desktop check-out request is a request to allow the user local access to the desktop via a client-side VM running on the client system;

in response to the request:

verifying that the desktop is not currently checked out to the user on the client system or another client system;

terminating execution of the server-side VM;

checking whether the client system has a current copy of the server-side virtual disk image file;

upon determining that the client system does not have a current copy of the server-side virtual disk image file, transmitting at least a portion of the server-side virtual disk image file to the client system;

updating metadata associated with the user to indicate a checked-out status of the desktop; and

upon completing the updating, allowing the user to access the desktop via the client-side VM of the client system; and

while the desktop is checked out to the user on the client system:

receiving, from the client system, a request to remotely access the desktop on the server system; and

allowing the client system to remotely access the desktop in a mode that does not persist any newly-saved data.

8. The non-transitory computer readable medium of claim 7 wherein terminating execution of the server-side VM includes:

powering down or suspending the server-side VM; and

saving a current state of the persistent data of the server-side VM to the server-side virtual disk image file.

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

authenticating an identity of the user; and

determining whether an authorization policy associated with the user allows for check-out of the desktop.

10. The non-transitory computer readable medium of claim 7 wherein changes to the persistent data of the server-side VM is maintained in a server-side delta disk image file that is separate from the server-side virtual disk image file, and wherein the method further comprises:

checking whether the client system has a current copy of the server-side delta disk image file; and

upon determining that the client system does not have a current copy of the server-side delta disk image file, transmitting at least a portion of the server-side delta disk image file to the client system.

11. The non-transitory computer readable medium of claim 7 wherein the transmitting comprises:

determining that the client system has a partial copy of the server-side virtual disk image file; and

transmitting, to the client system, one or more portions of the server-side virtual disk image file missing from the partial copy.

12. The non-transitory computer readable medium of claim 11 wherein the partial copy was previously transmitted to the client system while the user remotely accessed the desktop via the client system.

13. A server system configured to provide a desktop to a user of a client system, the server system comprising:

a processor; and

a memory having stored thereon program code that, when executed by the processor, causes the processor to:

receive a desktop check-out request from the client system, wherein the desktop is provided via a server-side virtual machine (VM) running on the server system, wherein persistent data of the server-side VM is maintained in a server-side virtual disk image file, and wherein the desktop check-out request is a request to allow the user local access to the desktop via a client-side VM running on the client system;

in response to the request:

verify that the desktop is not currently checked out to the user on the client system or another client system;

terminate execution of the server-side VM;

check whether the client system has a current copy of the server-side virtual disk image file;

upon determining that the client system does not have a current copy of the server-side virtual disk image file, transmit at least a portion of the server-side virtual disk image file to the client system;

update metadata associated with the user to indicate a checked-out status of the desktop; and

upon completing the updating, allow the user to access the desktop via the client-side VM of the client system; and

while the desktop is checked out to the user on the client system:

receive, from the client system, a request to remotely access the desktop on the server system; and

allow the client system to remotely access the desktop in a mode that does not persist any newly-saved data.

14. The server system of claim 13 wherein the program code that causes the processor to terminate execution of the server-side VM includes program code that causes the processor to:

power down or suspend the server-side VM; and

save a current state of the persistent data of the server-side VM to the server-side virtual disk image file.

15. The server system of claim 13 wherein the program code further causes the processor to, prior to the verifying:

authenticate an identity of the user; and

determine whether an authorization policy associated with the user allows for check-out of the desktop.

16. The server system of claim 13 wherein changes to the persistent data of the server-side VM is maintained in a server-side delta disk image file that is separate from the server-side virtual disk image file, and wherein the program code further causes the processor to:

check whether the client system has a current copy of the server-side delta disk image file; and

upon determining that the client system does not have a current copy of the server-side delta disk image file, transmit at least a portion of the server-side delta disk image file to the client system.

17. The server system of claim 13 wherein the program code that causes the processor to transmit at least a portion of the server-side virtual disk image file to the client system comprises program code that causes the processor to:

determine that the client system has a partial copy of the server-side virtual disk image file; and

transmit, to the client system, one or more portions of the server-side virtual disk image file missing from the partial copy.

18. The server system of claim 17 wherein the partial copy was previously transmitted to the client system while the user remotely accessed the desktop via the client system.

Assignments (4)
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 Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2023
From: HALPERIN, YARON; CHAMCHAM, JAD; LEROY, CHRISTIAN; CHEONG, GERALD; ECCLESTON, MATTHEW; FENG, JI
To: VMWARE, INC.
Reel/Frame 063457/0831 →