IP Library Granted Patent US 9,270,785
Granted Patent B2
US 9,270,785 · App. 13/651,886 · Granted Feb 23, 2016

System and method for a distributed virtual desktop infrastructure

Inventor: Simon Graham (Bolton, MA)
Assignee: Citrix Systems, Inc.
H04L67/42G06F9/4445G06F9/45533G06F21/41
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,270,785
App. No.
13/651,886
Filed
Oct 15, 2012
Granted
Feb 23, 2016
Kind
B2
Art Unit
2446
USPC
709/203
Abstract

A distributed virtual desktop infrastructure system includes at least one management server and a plurality of client management applications. The management server includes at least one processor, and is programmed and/or configured to determine a home system of the plurality of client systems for at least one user. The plurality of client management applications are in communication with the at least one management server, and are configured to execute on the plurality of client system and display, on at least one client system, a virtual desktop of at least one virtual machine executing on the home system. Related systems and methods are also described.

Claims (37)

1. A computer-implemented method for providing distributed virtualized desktops, the method being performed at a first computer including at least one processor, the method comprising:

receiving user credential data for at least one user;

transmitting, to a management server, at least a portion of the user credential data and identifying information of the first computer;

receiving, from the management server, an identification of a home system for the at least one user based at least partially on the user credential data, the home system comprising a second computer executing at least one virtual machine including a desktop;

establishing communication between the first computer and the second computer;

receiving, at the first computer, display data from the second computer, the display data configured to generate a representation of at least a portion of the desktop on the first computer, such that the at least one user is able to access the desktop while the at least one virtual machine on the second computer is executing;

receiving, at the first computer, a copy of a memory state of the at least one virtual machine from the second computer;

identifying, at the first computer, at least one portion of the memory state that was modified while receiving the copy of the memory state; and

repeatedly identifying portions of the memory state that changed during a previous iteration of copying and receiving the identified portions of the memory state until no further changed portions of the memory state are identified or the changed portions of the memory state are less than a predetermined threshold.

2. The computer-implemented method of claim 1 , wherein the first computer and the second computer comprise a client management application configured to communicate with the management server.

3. The computer-implemented method of claim 1 , wherein the first computer and the second computer are in communication through a local area network (LAN).

4. The computer-implemented method of claim 1 , wherein the communication between the second computer and the first computer is established through a direct connection facilitated by a traversal of at least one network address translation (NAT) gateway.

5. The computer-implemented method of claim 1 , further comprising, prior to the repeated identification:

receiving a copy of the at least one portion of the memory state;

identifying at least one other portion of the memory state that was modified while receiving the copy of the at least one portion of the memory state, wherein the at least one other portion of the memory state is a subset of the at least one portion of the memory state;

receiving a copy of the at least one other portion of the memory state.

6. A system for providing distributed virtualized desktops, the system comprising at least one management server including at least one processor, the at least one management server being configured to:

receive, from a first computer, user credential data for a user and device identification data for the first computer;

identify a home system for the user based at least partially on the user credential data, the home system comprising a second computer executing at least one virtual machine including at least one desktop;

transmit, to the first computer, data configured to facilitate a direct connection between the first computer and the second computer, such that the first computer displays the at least one desktop while the at least one virtual machine continues to execute on the second computer; and

cause at least one of the first and second computers to migrate the at least one virtual machine from the second computer to the first computer while the at least one virtual machine is executing,

wherein the at least one virtual machine is migrated by copying, at the first computer, a memory state of the at least one virtual machine from the second computer, and identifying, at the first computer, at least one portion of the memory state that is changed during the copying of the memory state, and

wherein the at least one virtual machine is migrated by repeated identification of portions of the memory state that changed during a previous iteration of copying and receipt of the identified portions of the memory state until no further changed portions of the memory state are identified or the changed portions of the memory state are less than a predetermined threshold.

7. The system of claim 6 , wherein the at least one virtual machine is migrated by a further copying, prior to the repeated identification, of the at least one portion of the memory state that is changed during the copying of the memory state from the second computer.

8. The system of claim 6 , wherein the first and second computers comprise a client management application configured to communicate with the management server.

9. The system of claim 6 , wherein the first and second computers are in communication through a local area network (LAN).

10. The system of claim 6 , wherein the management server is further configured to receive at least one of a desktop state and a desktop status for at least one desktop on the second computer.

11. The system of claim 10 , wherein the at least one of a desktop state and a desktop status is transmitted to the first computer at predetermined intervals.

12. The system of claim 6 , wherein the management server is further configured to power on at least one of the first computer and the second computer.

13. A distributed virtual desktop infrastructure system, comprising:

at least one management server comprising at least one processor, wherein the at least one management server is configured to provide a plurality of centrally managed virtual machines to a plurality of client systems, the at least one management server is further configured to determine a home system of the plurality of client systems for at least one user; and

the plurality of client systems comprising a plurality of client management applications that are in communication with the at least one management server, the plurality of client management applications being configured to execute on the plurality of client systems, and to display, on at least one client system, a virtual desktop of at least one virtual machine executing on the home system,

wherein the plurality of client management applications are configured to migrate the at least one virtual machine from the home system to the at least one client system while the at least one virtual machine is executing on the home system, wherein the migration of the at least one virtual machine includes copying a memory state of the at least one virtual machine from the home system, and identifying at least one portion of the memory state that is changed during the copying of the memory state, and wherein the migration of the at least one virtual machine includes repeated identification of portions of the memory state that changed during a previous iteration of copying and receipt of the identified portions of the memory state until no further changed portions of the memory state are identified or the changed portions of the memory state are less than a predetermined threshold.

14. The distributed virtual desktop infrastructure system of claim 13 , wherein, if the home system is local to a first computer being used by the at least one user, the virtual desktop is displayed from the at least one virtual machine local to the first computer.

15. The distributed virtual desktop infrastructure system of claim 13 , wherein the migration of the at least one virtual machine further includes a copying, prior to the repeated identification, of the at least one portion of the memory state that is changed during the copying of the memory state from the home system.

16. The distributed virtual desktop infrastructure system of claim 13 , further comprising a storage area network in communication with the plurality of client systems.

17. The distributed virtual desktop infrastructure system of claim 13 , wherein the home system is at least one other client system of the plurality of systems, and wherein the at least one client system displays the virtual desktop through a communication link with the at least one other client system.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2012
From: GRAHAM, SIMON
To: CITRIX SYSTEMS, INC.
Reel/Frame 029541/0233 →
Continuity (3)
Continuation In Part 12338452 · Dec 18, 2008
Provisional Application 61546701 · Oct 13, 2011
Related Publication 20130282792A1 · Oct 24, 2013