US2013254261A1PendingUtilityA1

System and Method of Managing Servers for Streaming Desktop Applications

Assignee: NICHOLLS JASON FREDERICKPriority: Mar 21, 2012Filed: Jun 26, 2012Published: Sep 26, 2013
Est. expiryMar 21, 2032(~5.7 yrs left)· nominal 20-yr term from priority
G06F 9/5027H04L 67/1008
23
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of a client device accessing server based applications comprising the steps of communicating to a management server an application identifier and a client identifier to the management server over a global network. Then determining a set of available worker servers from a plurality of worker servers by the management server and selecting a worker server. A desktop operating system is loaded on one the worker server along with application-persistent data associated with the client identifier and associated with the application identifier from a database. The application is then executes the application on the worker server and stores in the database current application-persistent data associated with the client identifier.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system for client devices to access server based applications comprising;
 a plurality of worker servers each running a desktop operating system and in communication with a global network, wherein each of the worker servers is either in use or not in use;   a management server configured to select a worker server from the plurality of worker servers and configured to communicate with the worker server through the global network;   a client device configured to communicate an application identifier and client identifier to the management server and configured to communicated with the worker server through the global network;   a database configured to communicate with the management server and the plurality of worker servers and configured to store application-persistent data;   wherein the worker server is configured to save in the database application-persistent data associated with the client identifier when the application is ended, wherein the worker server is configured to load the application-persistent data associated with the client identifier into the worker server before starting the application, and wherein the management server is configured to maintain a list indicating a status of available or not available for each of the plurality of worker servers, and wherein the management server is configured to select the worker server that has a status of available.   
     
     
         2 . The system of  claim 1  wherein the application is a desktop application and the operating system is configured to stream the application generated graphics and audio to the client device. 
     
     
         3 . The system of  claim 2  wherein the desktop operating system is a Microsoft Windows desktop operating system, wherein the application persistent data is Windows registry variables, environment variables, files, or a combination thereof, wherein the registry variables are loaded into the Windows registry of the worker servers, and wherein the application is a Microsoft windows desktop application. 
     
     
         4 . The system of  claim 3  wherein the desktop operating system is selected from the group consisting of Microsoft XP, Microsoft Vista, Microsoft 7, Microsoft 8, and Microsoft server. 
     
     
         5 . The system of  claim 3  wherein the client is configured to communicate a geolocation tag to the management server, wherein the database includes geo-location database of each of the plurality of worker servers, and wherein the management server is configured to calculate a distance between each of the plurality of worker servers with a status of available and the client device, and wherein the selected worker server selected has the smallest distance. 
     
     
         6 . The system of  claim 3  wherein the worker servers are configure to determine a transmission latency between each the plurality of worker servers with a status of available and the client device, wherein the worker server selected has the shortest transmission latency. 
     
     
         7 . The system of  claim 5  wherein the database is further configured to include a computational resource for each of the one or more worker servers and wherein the database is configured with an application minimum computational resource associated with each application identified available to each of the plurality of worker servers, and wherein the manager server is configured to select the work server that has at least the application minimum computational resource associated with the application. 
     
     
         8 . The system of  claim 6  wherein the one or more worker server computational resources includes CPU clock rate, CPU memory, number of graphics processors, graphics processor memory, or a combination thereof. 
     
     
         9 . The system of  claim 6 , wherein the database is further configured to include a list of application identifiers available to each of the plurality of worker servers, wherein the manager server is further configured to select the worker server that has an application available associated with the application identifier. 
     
     
         10 . A method of client device accessing server based applications comprising the steps;
 communicating from the client device to a management server an application identifier and a client identifier to the management server over a global network;   determining a set of available worker servers from a plurality of worker servers by the management server;   selecting a worker server from the set of available worker servers;   loading a desktop operating system on one the worker server;   loading the worker server with application-persistent data associated with the client identifier and associated with the application identifier from a database;   executing the application on the worker server; and   storing in the database current application-persistent data associated with the client identifier and associated with the application when the application ends.   
     
     
         11 . The method of  claim 9  wherein the step of determining a set of available worker servers comprise the step of tracking the status of each of the plurality of worker servers, wherein the status indicates whether each of the plurality of worker servers are in-use or not in-use, and wherein the worker server is selected has a status of not in-use. 
     
     
         12 . The method of  claim 10  wherein the loading the desktop operating system is Windows desktop operating system and wherein the loading application persistent data are Windows registry variables associated with the client identifier and wherein the storing the current application persistent data associated with the client identifier are the application associated Windows registry variables, application files, or a combination thereof. 
     
     
         13 . The method of  claim 10  further comprising the steps of;
 obtaining client device geo-location information from the client device; 
 retrieving from the database, worker server geo-location information for the set of worker servers; 
 calculating a list separation distance for each of the set of worker servers with a status of not in-use and the client device geo-location information, wherein the selection of the worker server has a minimum separation distance. 
 
     
     
         14 . The method of  claim 10  further comprising the step of determining the transmission latency between the client device and each of the set of worker servers, wherein the selection chooses the worker server that has a minimum latency. 
     
     
         15 . The method of  claim 13  wherein the determining the transmission latency is done by an Internet Control Message Protocol ping message. 
     
     
         16 . The method of  claim 13  wherein the determining the transmission latency between each worker server in the set is determined by the time delay of sending a message from each of the set of worker servers to the client device and the client device sending a response message back to the server. 
     
     
         17 . The method of  claim 10  further comprising the steps of;
 retrieving from the database one or more worker computational resources associated with each worker server in the set; 
 retrieving from the database one or more application minimum computational resources associated with the application identifier; 
 wherein the selecting the worker server from the set includes selecting the worker server each of the one or more associated worker computational resources are greater than or equal to each of the one or more application minimum computational resource. 
 
     
     
         18 . The method of  claim 16  wherein the one or more worker server computational resources associated with each of the plurality of worker servers includes CPU clock rate, CPU memory, number of graphics processors, and graphics processor memory, or a combination thereof. 
     
     
         19 . The method of  claim 14 , including the steps of retrieving from a database a list of available applications associated with each of the plurality of worker servers; and
 wherein the step of selecting the set from the plurality of worker server includes selecting worker servers that have available the application associated with the application identifier.

Join the waitlist — get patent alerts

Track US2013254261A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.