Method and system for providing load balancing for virtualized application workspaces
First Claim
1. A method for providing load balancing for remote application sessions to be executed on one or more of a plurality of servers, comprising:
- generating, on a client device, a virtual workspace for a user based on a point of access associated with the user, the virtual workspace including a first icon for a local application running on the client device and a second icon for a remote application running on the one or more of the plurality of servers;
receiving a request to launch the remote application;
in response to the request to launch the remote application, broadcasting a message to a message bus to request an available session for executing the remote application on the one or more of the plurality of servers, the message bus having the one or more of the plurality of servers subscribed to an event that corresponds to the session related request for the available session;
receiving a response over the message bus from one or more of the plurality of servers, the response containing a set of statistical information related to the one or more of the plurality of servers;
sorting the responding one or more servers according to the statistical information received over the message bus, wherein the sorting further comprisescomputing a score for each of the responding one or more servers based on the statistical information received over the message bus, wherein computing the score comprises computing the score based on a number of sessions serviced by the one or more servers, a percentage of committed bytes used by the one or more servers, and average processor utilization for the one or more servers, and wherein computing the score also comprises averaging a first value associated with the number of sessions, a second value associated with the percentage of committed bytes, and a third value associated with the average processor utilization;
storing each of the responding one or more servers into a data structure;
sorting the data structure based on the score to generate a sorted data structure; and
selecting the one of the responding one or more servers based on the sorted data structure to provide the available session for executing the remote application based on the sorting of the data structure.
8 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for providing load balancing are provided. Example embodiments provide a Application Workspace System “AWS” which enables users to access remote server-based applications using the same interface that they use to access local applications, without needing to know where the application is being accessed. In one embodiment, a load balancing message bus is provided that performs load balancing and resource discovery within the AWS. For example, the AWS may use a broadcast message-bus based load balancing to determine which servers to use to launch remote application access requests or to perform session management. This abstract is provided to comply with rules requiring an abstract, and it is submitted with the intention that it will not be used to interpret or limit the scope or meaning of the claims.
-
Citations
16 Claims
-
1. A method for providing load balancing for remote application sessions to be executed on one or more of a plurality of servers, comprising:
-
generating, on a client device, a virtual workspace for a user based on a point of access associated with the user, the virtual workspace including a first icon for a local application running on the client device and a second icon for a remote application running on the one or more of the plurality of servers; receiving a request to launch the remote application; in response to the request to launch the remote application, broadcasting a message to a message bus to request an available session for executing the remote application on the one or more of the plurality of servers, the message bus having the one or more of the plurality of servers subscribed to an event that corresponds to the session related request for the available session; receiving a response over the message bus from one or more of the plurality of servers, the response containing a set of statistical information related to the one or more of the plurality of servers; sorting the responding one or more servers according to the statistical information received over the message bus, wherein the sorting further comprises computing a score for each of the responding one or more servers based on the statistical information received over the message bus, wherein computing the score comprises computing the score based on a number of sessions serviced by the one or more servers, a percentage of committed bytes used by the one or more servers, and average processor utilization for the one or more servers, and wherein computing the score also comprises averaging a first value associated with the number of sessions, a second value associated with the percentage of committed bytes, and a third value associated with the average processor utilization; storing each of the responding one or more servers into a data structure; sorting the data structure based on the score to generate a sorted data structure; and selecting the one of the responding one or more servers based on the sorted data structure to provide the available session for executing the remote application based on the sorting of the data structure. - View Dependent Claims (2, 3, 4, 5, 14)
-
-
6. A non-transitory computer-readable medium containing content that, when executed, controls a computing system to perform a method comprising:
-
generating, on a client device, a virtual workspace for a user based on a point of access associated with the user, the virtual workspace including icons for a local application running on the client device and a remote application running on the one or more of the plurality of servers; receiving a request to launch the remote application; in response to the request to launch the remote application, broadcasting a message to a message bus to request an available session for executing the remote application on the one or more of a plurality of server computing systems, the message bus having the one or more of the plurality of server computing systems subscribed to an event that corresponds to the session related request for the available session; receiving a response over the message bus from one or more of the plurality of server computing systems, the response containing a set of statistical information related to the one or more of the plurality of server computing systems; sorting the responding one or more server computing systems based according to the statistical information received over the message bus, wherein the sorting further comprises computing a score for each of the responding one or more server computing systems based on the statistical information received over the message bus, wherein computing the score comprises computing the score based on a number of sessions serviced by the one or more servers, a percentage of committed bytes used by the one or more servers, and average processor utilization for the one or more servers, and wherein computing the score also comprises averaging a first value associated with the number of sessions, a second value associated with the percentage of committed bytes, and a third value associated with the average processor utilization; storing each of the responding one or more server computing systems into a data structure; sorting the data structure based on the score; and selecting the one of the responding one or more server computing systems to provide the available session for executing the remote application based on the sorting of the data structure. - View Dependent Claims (7, 8, 15)
-
-
9. A system comprising:
-
a virtual workspace generated for a user on a client device based on a point of access associated with the user, the virtual workspace including icons for a local application running on the client device and a remote application; a plurality of servers each configured to be able to execute the remote application on behalf of a remote process; a message bus and associated protocol configured to receive one or more messages to be distributed to the plurality of servers registered to receive the message; and a requesting process that controls session management, the requesting process executing on an application server and configured, when executed, to; receive a request to launch the remote application; in response to the request to launch the remote application, send a session related message to the message bus to request an available session for executing a remote application, receive one or more responses from one or more responding servers of the plurality of servers, the one or more responses including a set of statistical information related to the one or more of the plurality of server computing systems; sort the responding one or more servers according to the statistical information received in the one or more responses, wherein the sorting further comprises computing a score for each of the responding one or more servers based on the statistical information received over the message bus, wherein computing the score comprises computing the score based on a number of sessions serviced by the one or more servers, a percentage of committed bytes used by the one or more servers, and average processor utilization for the one or more servers, and wherein computing the score also comprises averaging a first value associated with the number of sessions, a second value associated with the percentage of committed bytes, and a third value associated with the average processor utilization; storing each of the responding one or more servers into a data structure; sorting the data structure based on the score; and select the one of the responding one or more servers to provide the available session for executing the remote application based on the sorting of the data structure. - View Dependent Claims (10, 11, 12, 13, 16)
-
Specification