US9270781B2ActiveUtilityA1

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

43
Assignee: AMIR HUSAIN SYED MPriority: Feb 15, 2007Filed: Feb 15, 2008Granted: Feb 23, 2016
Est. expiryFeb 15, 2027(~0.6 yrs left)· nominal 20-yr term from priority
G06F 11/1484H04L 67/34G06F 2009/4557G06F 9/445G06F 9/45504G06F 11/301G06F 2009/45595G06F 2009/45575G06F 9/45558H04L 65/1069G06F 9/5077
43
PatentIndex Score
0
Cited by
8
References
17
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.