IP Library Granted Patent US 9,270,781
Granted Patent B2
US 9,270,781 · App. 12/032,446 · Granted Feb 23, 2016

Associating virtual machines on a server computer with particular users on an exclusive basis

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,781
App. No.
12/032,446
Granted
Feb 23, 2016
Kind
B2
Abstract

A first computer of a plurality of computers in a server computer system may be associated with a first user on an exclusive basis. An administrator of the server computer system may utilize an administrative user interface in order to specify the association. Associating the first computer with the first user on the exclusive basis may prevent users other than the first user from using the first computer. In response to receiving a request from the first user to connect to the server computer system, the system may operate to determine that the first computer is associated with the first user on the exclusive basis and may assign the first computer to the first user. Once the first computer has been assigned to the first user, the first user can begin using the first computer. In some embodiments the first computer may be a physical computer. In other embodiments the first computer may be a virtual machine.

Claims (90)

1. A non-transitory computer-accessible storage medium storing program instructions executable to implement:

associating a first virtual machine with a first user on an exclusive basis, wherein the first virtual machine is one of a plurality of virtual machines in a server computer system, wherein said associating comprises storing information indicating that users other than the first user cannot use the first virtual machine, wherein the plurality of virtual machines comprises a pool of active but unconnected virtual machines, wherein the size of the pool is at least one, and wherein the maximum pool size is N;

receiving a first request from a client device of the first user to connect to the server computer system, wherein the first request identifies the first user;

in response to the first request:

accessing the stored information and determining that the first virtual machine is associated with the first user on the exclusive basis; and

in response to determining that the first virtual machine is associated with the first user on the exclusive basis:

selecting the first virtual machine from the plurality of virtual machines for assignment to the first user; and

establishing a communication session between the client device and the first virtual machine in order to enable the first user to use the first virtual machine;

terminating the communication session between the client device and the first virtual machine, including disconnecting the client device from the server computer system;

maintaining the first virtual machine in an active but unconnected state, thereby keeping the virtual machine ready for reconnecting to the client device of the first user in response to a subsequent request from the client device, wherein during said maintaining, no other users are allowed to utilize the first virtual machine, wherein said maintaining increments the pool size; and

hibernating one or more active but disconnected virtual machines in response to determining that the pool size is greater than N.

2. The non-transitory computer-accessible storage medium of claim 1 , wherein the program instructions are further executable to implement:

receiving a second request from another client device of a second user to connect to the server computer system;

determining that the first virtual machine is associated with the first user on the exclusive basis; and

selecting from the plurality of virtual machines a second virtual machine other than the first virtual machine for assignment to the second user.

3. The non-transitory computer-accessible storage medium of claim 1 ,

wherein the program instructions are further executable to implement:

in response to the first request, determining that the first virtual machine is in a state of hibernation;

wherein assigning the first virtual machine to the first user comprises returning the first virtual machine to an active state of execution.

4. The non-transitory computer-accessible storage medium of claim 1 ,

wherein the program instructions are further executable to implement:

receiving a second request from the client device of the first user to connect to the server computer system;

determining that the first virtual machine is not in an active state of execution;

receiving user input from the first user indicating that it is permissible to assign a virtual machine other than the first virtual machine to the first user; and

assigning a virtual machine other than the first virtual machine to the first user in response to the second request.

5. The non-transitory computer-accessible storage medium of claim 4 ,

wherein determining that the first virtual machine is not in an active state of execution comprises determining that the first virtual machine is hibernated.

6. The non-transitory computer-accessible storage medium of claim 1 ,

wherein the program instructions are further executable to implement:

receiving a second request from the client device of the first user to disconnect from the server computer system;

disconnecting the first user from the server computer in response to the second request; and

maintaining the first virtual machine in an active state of execution for future use by the first user after said disconnecting.

7. The non-transitory computer-accessible storage medium of claim 1 ,

wherein establishing the communication session enables the first user to provide input to and receive output from the first virtual machine through a network.

8. The non-transitory computer-accessible storage medium of claim 1 ,

wherein establishing the communication session enables the first user to execute software programs on the first virtual machine.

9. The non-transitory computer-accessible storage medium of claim 1 , wherein the program instructions are further executable to implement:

receiving user input specifying the first virtual machine and the first user;

wherein the first virtual machine is associated with the first user in response to the user input.

10. A system comprising:

one or more processors; and

memory storing program instructions;

wherein the program instructions are executable by the one or more processors to implement:

associating a first virtual machine with a first user on an exclusive basis, wherein the first virtual machine is one of a plurality of virtual machines in a server computer system, wherein said associating comprises storing information indicating that users other than the first user cannot use the first virtual machine, wherein the plurality of virtual machines comprises a pool of active but unconnected virtual machines, wherein the size of the pool is at least one, and wherein the maximum pool size is N;

receiving a first request from a client device of the first user to connect to the server computer system;

in response to the first request:

accessing the stored information and determining that the first virtual machine is associated with the first user on the exclusive basis; and

in response to determining that the first virtual machine is associated with the first user on the exclusive basis:

selecting the first virtual machine from the plurality of virtual machines for assignment to the first user; and

establishing a communication session between the client device and the first virtual machine in order to enable the first user to use the first virtual machine;

terminating the communication session between the client device and the first virtual machine, including disconnecting the client device from the server computer system; and

maintaining the first virtual machine in an active but unconnected state, thereby keeping the virtual machine ready for reconnecting to the client device of the first user in response to a subsequent request from the client device, wherein during said maintaining, no other users are allowed to utilize the first virtual machine, wherein said maintaining increments the pool size; and

hibernating one or more active but disconnected virtual machines in response to determining that the pool size is greater than N.

11. The system of claim 10 , wherein the program instructions are further executable to implement:

receiving a second request from another client device of a second user to connect to the server computer system;

determining that the first virtual machine is associated with the first user on the exclusive basis; and

selecting from the plurality of virtual machines a second virtual machine other than the first virtual machine for assignment to the second user.

12. The system of claim 10 ,

wherein the program instructions are further executable to implement:

in response to the first request, determining that the first virtual machine is in a state of hibernation;

wherein assigning the first virtual machine to the first user comprises returning the first virtual machine to an active state of execution.

13. The system of claim 10 ,

wherein the program instructions are further executable to implement:

receiving a second request from the client device of the first user to connect to the server computer system;

determining that the first virtual machine is not in an active state of execution;

receiving user input from the first user indicating that it is permissible to assign a virtual machine other than the first virtual machine to the first user; and

assigning a virtual machine other than the first virtual machine to the first user in response to the second request.

14. The system of claim 10 , wherein the program instructions are further executable to implement:

receiving user input specifying the first virtual machine and the first user;

wherein the first virtual machine is associated with the first user in response to the user input.

15. A method comprising:

associating a first virtual machine with a first user on an exclusive basis, wherein the first virtual machine is one of a plurality of virtual machines in a server computer system, wherein said associating comprises storing information indicating that users other than the first user cannot use the first virtual machine, wherein the plurality of virtual machines comprises a pool of active but unconnected virtual machines, wherein the size of the pool is at least one, and wherein the maximum pool size is N;

receiving a first request from a client device of the first user to connect to the server computer system;

in response to the first request:

accessing the stored information and determining that the first virtual machine is associated with the first user on the exclusive basis;

in response to determining that the first virtual machine is associated with the first user on the exclusive basis:

selecting the first virtual machine from the plurality of virtual machines for assignment to the first user; and

establishing a communication session between the client device and the first virtual machine in order to enable the first user to use the first virtual machine;

terminating the communication session between the client device and the first virtual machine, including disconnecting the client device from the server computer system; and

maintaining the first virtual machine in an active but unconnected state, thereby keeping the virtual machine ready for reconnecting to the client device of the first user in response to a subsequent request from the client device, wherein during said maintaining, no other users are allowed to utilize the first virtual machine, wherein said maintaining increments the pool size; and

hibernating one or more active but disconnected virtual machines in response to determining that the pool size is greater than N.

16. The method of claim 15 ,

wherein the method further comprises:

receiving a second request from the client device of the first user to connect to the server computer system;

determining that the first virtual machine is not in an active state of execution;

receiving user input from the first user indicating that it is permissible to assign a virtual machine other than the first virtual machine to the first user; and

assigning a virtual machine other than the first virtual machine to the first user in response to the second request.

17. The method of claim 15 , further comprising:

receiving user input specifying the first virtual machine and the first user;

wherein the first virtual machine is associated with the first user in response to the user input.

Assignments (12)
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 23, 2013
From: CLEARCUBE TECHNOLOGY, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031837/0976 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2011
From: BRIDGE BANK, NATIONAL ASSOCIATION
To: CLEARCUBE TECHNOLOGY, INC.
Reel/Frame 027135/0663 →
SECURITY INTEREST Recorded Oct 3, 2008
From: CLEARCUBE TECHNOLOGY, INC.
To: BRIDGE BANK, NATIONAL ASSOCIATION
Reel/Frame 021645/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2008
From: HUSAIN, SYED M. AMIR; UMAIR, MUHAMMAD; MUMTAZ, SAQIB; BAJWA, ATIF; SHEIKH, ABUBAKR
To: CLEARCUBE TECHNOLOGY, INC.
Reel/Frame 020521/0254 →