IP Library Granted Patent US 10,469,593
Granted Patent B2
US 10,469,593 · App. 13/658,399 · Granted Nov 5, 2019

Method and system for sharded resource brokering

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 10,469,593
App. No.
13/658,399
Granted
Nov 5, 2019
Kind
B2
Abstract

This disclosure describes a virtual desktop brokering system that brokers a virtual desktop session. During operation, a broker receives a request to establish the session. Next, the broker broadcasts, to a set of agent concentrators, a request to find an available machine for the session, wherein each agent concentrator maintains state information of a respective group of available machines. The broker receives, from at least one agent concentrator, a list of available machines. Subsequently, the broker chooses an available machine from the list for the session, and the broker sends a request to the agent concentrator associated with the chosen machine to initiate the session.

Claims (76)

1. A method performed by a computing device to broker a virtual desktop session, comprising:

receiving, at a broker, a request to establish the session from a client device associated with a user;

determining a first set of agent concentrators of a plurality of sets of agent concentrators;

broadcasting, from the broker to each agent concentrator of the first set of agent concentrators, a request to find an available virtual machine for the session, wherein each agent concentrator of the first set of agent concentrators maintains state information of a respective group of available virtual machines dynamically assigned to the agent concentrator,

wherein each agent concentrator of the first set of agent concentrators determines available virtual machines based on obtained state information for a plurality of virtual machines that are dynamically coupled to the agent concentrator, the state information being obtained from each of a plurality of agents, wherein each agent of the plurality of agents is a software agent residing on a respective virtual machine and configured to communicate the virtual machine's state information to a particular agent concentrator, and

wherein each virtual machine is assigned to a particular agent concentrator of each of a plurality of sets of agent concentrators according to a selection by the corresponding agent of the virtual machine from the set of available agent concentrators;

receiving, at the broker and from at least one agent concentrator of the first set of agent concentrators, a list of available virtual machines;

choosing, by the broker, an available virtual machine from the list of virtual machines for the requested session; and

sending a request to the agent concentrator associated with the chosen virtual machine to initiate the session.

2. The method of claim 1 , wherein choosing the virtual machine further comprises:

receiving additional lists of available virtual machines from one or more agent concentrators;

merging all received lists to generate an aggregated list of available virtual machines; and

choosing the available virtual machine from the aggregated list.

3. The method of claim 1 , further comprising:

receiving a second request to establish a second session;

broadcasting, to a second set of agent concentrators, a request to find an available virtual machine for the second session;

receiving, from at least one agent concentrator of the second set of agent concentrators, a new list of available virtual machines;

choosing a different virtual machine from the new list for the second session; and

sending a request to the agent concentrator associated with the chosen different virtual machine to initiate the second session.

4. The method of claim 1 , further comprising:

receiving a second request to establish a second virtual desktop session;

broadcasting, to a second set of agent concentrators, a request to find an available virtual machine for the second virtual desktop session, wherein each agent concentrator maintains state information of a respective group of available virtual machines;

receiving, from at least one agent concentrator in the second set of agent concentrators, a second list of available virtual machines;

choosing a second available virtual machine from the second list for the second virtual desktop session; and

sending a request to the agent concentrator associated with the second chosen virtual machine to initiate the second virtual desktop session.

5. The method of claim 1 , wherein the broker does not maintain state information for the virtual machines.

6. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method to broker a virtual desktop session, the method comprising:

receiving, at a broker, a request to establish the session from a client device associated with a user;

determining a first set of agent concentrators of a plurality of sets of agent concentrators;

broadcasting, from the broker to each agent concentrator of the first set of agent concentrators, a request to find an available virtual machine for the session, wherein each agent concentrator of the first set of agent concentrators maintains state information of a respective group of available virtual machines dynamically assigned to the agent concentrator,

wherein each agent concentrator of the first set of agent concentrators determines available virtual machines based on obtained state information for a plurality of virtual machines that are dynamically coupled to the agent concentrator, the state information being obtained from each of a plurality of agents, wherein each agent of the plurality of agents is a software agent residing on a respective virtual machine and configured to communicate the virtual machine's state information to a particular agent concentrator, and

wherein each virtual machine is assigned to a particular agent concentrator of each of a plurality of sets of agent concentrators according to a selection by the corresponding agent of the virtual machine from the set of available agent concentrators;

receiving, at the broker and from at least one agent concentrator of the first set of agent concentrators, a list of available virtual machines;

choosing, by the broker, an available virtual machine from the list of virtual machines for the requested session; and

sending a request to the agent concentrator associated with the chosen virtual machine to initiate the session.

7. The storage medium of claim 6 , wherein choosing the virtual machine further comprises:

receiving additional lists of available virtual machines from one or more agent concentrators;

merging all received lists to generate an aggregated list of available virtual machines; and

choosing the available virtual machine from the aggregated list.

8. The storage medium of claim 6 , wherein the storage medium stores additional instructions that, when executed by the computer, causes the computer to perform additional steps comprising:

receiving a second request to establish a second session;

broadcasting, to a second set of agent concentrators, a request to find an available virtual machine for the second session;

receiving, from at least one agent concentrator of the second set of agent concentrators, a new list of available virtual machines;

choosing a different virtual machine from the new list for the second session; and

sending a request to the agent concentrator associated with the chosen different virtual machine to initiate the second session.

9. The storage medium of claim 6 , wherein the storage medium stores additional instructions that, when executed by the computer, causes the computer to perform additional steps comprising:

receiving a second request to establish a second virtual desktop session;

broadcasting, to a second set of agent concentrators, a request to find an available virtual machine for the second virtual desktop session, wherein each agent concentrator maintains state information of a respective group of available virtual machines;

receiving, from at least one agent concentrator in the second set of agent concentrators, a second list of available virtual machines;

choosing a second available virtual machine from the second list for the second virtual desktop session; and

sending a request to the agent concentrator associated with the second chosen virtual machine to initiate the second virtual desktop session.

10. A computer system for brokering a virtual desktop session, the computer system comprising a processor and a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

receiving, at a broker, a request to establish the session from a client device associated with a user;

determining a first set of agent concentrators of a plurality of sets of agent concentrators;

broadcasting, from the broker to each agent concentrator of the first set of agent concentrators, a request to find an available virtual machine for the session, wherein each agent concentrator of the first set of agent concentrators maintains state information of a respective group of available virtual machines dynamically assigned to the agent concentrator,

wherein each agent concentrator of the first set of agent concentrators determines available virtual machines based on obtained state information for a plurality of virtual machines that are dynamically coupled to the agent concentrator, the state information being obtained from each of a plurality of agents, wherein each agent of the plurality of agents is a software agent residing on a respective virtual machine and configured to communicate the virtual machine's state information to a particular agent concentrator, and

wherein each virtual machine is assigned to a particular agent concentrator of each of a plurality of sets of agent concentrators according to a selection by the corresponding agent of the virtual machine from the set of available agent concentrators;

receiving, at the broker and from at least one agent concentrator of the first set of agent concentrators, a list of available virtual machines;

choosing, by the broker, an available virtual machine from the list of virtual machines for the requested session; and

sending a request to the agent concentrator associated with the chosen virtual machine to initiate the session.

11. The computer system of claim 10 , wherein choosing the virtual machine further comprises:

receiving additional lists of available virtual machines from one or more agent concentrators;

merging all received lists to generate an aggregated list of available virtual machines; and

choosing the available virtual machine from the aggregated list.

12. The computer system of claim 10 , wherein the storage medium stores additional instructions that, when executed by the computer, causes the computer to perform additional steps comprising:

receiving a second request to establish a second session;

broadcasting, to a second set of agent concentrators comprising a second plurality of agent concentrators, a request to find an available virtual machine for the second session;

receiving, from at least one agent concentrator of the second set of agent concentrators, a new list of available virtual machines;

choosing a different virtual machine from the new list for the second session; and

sending a request to the agent concentrator associated with the chosen different virtual machine to initiate the second session.

13. The computer system of claim 10 , wherein the storage device stores additional instructions that, when executed by the processor, causes the processor to perform additional steps comprising:

receiving a second request to establish a second virtual desktop session;

broadcasting, to a second set of agent concentrators, a request to find an available virtual machine for the second virtual desktop session, wherein each agent concentrator maintains state information of a respective group of available virtual machines;

receiving, from at least one agent concentrator in the second set of agent concentrators, a second list of available virtual machines;

choosing a second available virtual machine from the second list for the second virtual desktop session; and

sending a request to the agent concentrator associated with the second chosen virtual machine to initiate the second virtual desktop session.

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 Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2012
From: TAYLOR, FRANK S.
To: VMWARE, INC.
Reel/Frame 029175/0941 →