IP Library Granted Patent US 12,210,910
Granted Patent B2
US 12,210,910 · App. 18/337,247 · Granted Jan 28, 2025

Managing a virtualized application workspace on a managed computing device

Inventors: Anthony J. Wilkinson (Princess Risborough, GB); Mark Benson (Wokingham, GB); Patrick W. Hayward (London, GB)
Assignee: Omnissa, LLC
G06F9/505G06F8/61G06F8/65G06F16/282G06F16/9535G06Q10/06H04L61/4523H04L63/08H04L63/102H04L67/02H04L67/1001H04L67/1008H04L67/1023H04L67/1031H04L67/34H04L67/51H04L67/63H04L67/1095
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 12,210,910
App. No.
18/337,247
Granted
Jan 28, 2025
Kind
B2
Abstract

Methods and systems for providing load balancing are provided. Example embodiments provide an 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.

Claims (34)

1. A method for providing load balancing for remote application sessions to be executed on one or more of a plurality of servers in communication via a network, comprising:

broadcasting a remote application session related request to a message bus to determine which of the plurality of servers to use to execute a remote application session;

receiving a response from each of two or more servers of the plurality of servers indicating that the two or more servers are presently available to execute the remote application session;

determining a load balancing arrangement between the two or more servers for executing the remote application session based on information indicating available resources at each of the two or more servers; and

causing the remote application session to be launched on one of the two or more servers based on the load balancing arrangement.

2. The method of claim 1 , wherein the message bus is a JMS compliant message bus, the remote application session related request is for a connection, and the plurality of servers comprise terminal servers.

3. The method of claim 1 , further comprising computing one or more scores for each of the two or more servers based on the information indicating available resources at each of the two or more servers, wherein determining the load balancing arrangement is based on the one or more scores.

4. The method of claim 1 , wherein the information indicating available resources at each of the two or more servers comprises a number of sessions serviced by each of the two or more servers.

5. The method of claim 1 , wherein the information indicating available resources at each of the two or more servers comprises a percentage of committed bytes used by each of the two or more servers.

6. The method of claim 1 , wherein the information indicating available resources at each of the two or more servers comprises an average processor utilization for each of the two or more servers.

7. The method of claim 1 , wherein the plurality of servers comprise at least one of a streaming data service, a hosted virtual operating environment, or a terminal service.

8. A system for providing load balancing for remote application sessions, comprising:

at least one memory; and

at least one processor configured to:

broadcast a remote application session related request to a message bus to determine which of a plurality of servers to use to execute a remote application session;

receive a response from each of two or more servers of the plurality of servers indicating that the two or more servers are presently available to execute the remote application session;

determine a load balancing arrangement between the two or more servers for executing the remote application session based on information indicating available resources at each of the two or more servers; and

causing the remote application session to be launched on one of the two or more servers based on the load balancing arrangement.

9. The system of claim 8 , wherein the message bus is a JMS compliant message bus, the remote application session related request is for a connection, and the plurality of servers comprise terminal servers.

10. The system of claim 8 , wherein the at least one processor is further configured to compute one or more scores for each of the two or more servers based on the information indicating available resources at each of the two or more servers, wherein determining the load balancing arrangement is based on the one or more scores.

11. The system of claim 8 , wherein the information indicating available resources at each of the two or more servers comprises a number of sessions serviced by each of the two or more servers.

12. The system of claim 8 , wherein the information indicating available resources at each of the two or more servers comprises a percentage of committed bytes used by each of the two or more servers.

13. The system of claim 8 , wherein the information indicating available resources at each of the two or more servers comprises an average processor utilization for each of the two or more servers.

14. The system of claim 8 , wherein the plurality of servers comprise at least one of a streaming data service, a hosted virtual operating environment, or a terminal service.

15. A non-transitory computer readable medium storing instructions that, when executed by a system, cause the system to perform operations for providing load balancing for remote application sessions to be executed on one or more of a plurality of servers in communication via a network, the operations comprising:

broadcasting a remote application session related request to a message bus to determine which of the plurality of servers to use to execute a remote application session;

receiving a response from each of two or more servers of the plurality of servers indicating that the two or more servers are presently available to execute the remote application session;

determining a load balancing arrangement between the two or more servers for executing the remote application session based on information indicating available resources at each of the two or more servers; and

causing the remote application session to be launched on one of the two or more servers based on the load balancing arrangement.

16. The non-transitory computer readable medium of claim 15 , wherein the message bus is a JMS compliant message bus, the remote application session related request is for a connection, and the plurality of servers comprise terminal servers.

17. The non-transitory computer readable medium of claim 15 , wherein the operations further comprise computing one or more scores for each of the two or more servers based on the information indicating available resources at each of the two or more servers, wherein determining the load balancing arrangement is based on the one or more scores.

18. The non-transitory computer readable medium of claim 15 , wherein the information indicating available resources at each of the two or more servers comprises a number of sessions serviced by each of the two or more servers.

19. The non-transitory computer readable medium of claim 15 , wherein the information indicating available resources at each of the two or more servers comprises a percentage of committed bytes used by each of the two or more servers.

20. The non-transitory computer readable medium of claim 15 , wherein the information indicating available resources at each of the two or more servers comprises an average processor utilization for each of the two or more servers.

Assignments (3)
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/0242 →
Continuity (7)
Continuation 17456127 · Nov 22, 2021
Continuation 16444393 · Jun 18, 2019
Continuation 15098710 · Apr 14, 2016
Continuation 11929312 · Oct 30, 2007
Continuation PCTUS2006048713 · Dec 19, 2006
Provisional Application 60752208 · Dec 19, 2005
Related Publication 20230350729A1 · Nov 2, 2023
References Cited (160)
US 5115501A · Kerr · 1992 [cited by applicant]
US 5742829A · Davis et al. · 1998 [cited by applicant]
US 5920725A · Ma et al. · 1999 [cited by applicant]
US 6038664A · Schumacher et al. · 2000 [cited by applicant]
US 6073214A · Fawcett · 2000 [cited by applicant]
US 6151643A · Cheng et al. · 2000 [cited by applicant]
US 6167567A · Chiles et al. · 2000 [cited by applicant]
US 6301589B1 · Hirashima et al. · 2001 [cited by applicant]
US 6332217B1 · Hastings · 2001 [cited by applicant]
US 6438590B1 · Gartner et al. · 2002 [cited by applicant]
US 6571245B2 · Huang et al. · 2003 [cited by applicant]
US 6625623B1 · Midgley et al. · 2003 [cited by applicant]
US 6658473B1 · Block et al. · 2003 [cited by applicant]
US 6684331B1 · Srivastava · 2004 [cited by applicant]
US 6779172B1 · Weerawarana et al. · 2004 [cited by applicant]
US 6789215B1 · Rupp et al. · 2004 [cited by applicant]
US 6816864B2 · Deuser et al. · 2004 [cited by applicant]
US 6816882B1 · Conner et al. · 2004 [cited by applicant]
US 6859834B1 · Arora et al. · 2005 [cited by applicant]
US 6922724B1 · Freeman et al. · 2005 [cited by applicant]
US 6925598B2 · Melhem et al. · 2005 [cited by applicant]
US 6981251B1 · Kreller et al. · 2005 [cited by applicant]
US 7171459B2 · Sanghvi et al. · 2007 [cited by applicant]
US 7181436B1 · Conley et al. · 2007 [cited by applicant]
US 7222179B2 · Srivastava et al. · 2007 [cited by applicant]
US 7310650B1 · Felsted et al. · 2007 [cited by applicant]
US 7437614B2 · Haswell et al. · 2008 [cited by applicant]
US 7464214B2 · Davies et al. · 2008 [cited by applicant]
US 7486695B1 · AbdelAziz et al. · 2009 [cited by applicant]
US 7526562B1 · Samprathi et al. · 2009 [cited by applicant]
US 7571180B2 · Minyailov · 2009 [cited by applicant]
US 7627658B2 · Levett et al. · 2009 [cited by applicant]
US 7660983B1 · Srivastava et al. · 2010 [cited by applicant]
US 7743388B2 · Nikols et al. · 2010 [cited by applicant]
US 7761570B1 · Halley · 2010 [cited by applicant]
US 7779091B2 · Wilkinson et al. · 2010 [cited by applicant]
US 7831034B2 · Maximo et al. · 2010 [cited by applicant]
US 8028026B2 · Jain et al. · 2011 [cited by applicant]
US 8346929B1 · Lai · 2013 [cited by examiner]
US 8555273B1 · Chia et al. · 2013 [cited by applicant]
US 9235385B1 · Subashchandrabose et al. · 2016 [cited by applicant]
US 20020040400A1 · Masters · 2002 [cited by applicant]
US 20020083087A1 · Deuser et al. · 2002 [cited by applicant]
US 20020091697A1 · Huang et al. · 2002 [cited by applicant]
US 20020116532A1 · Berg · 2002 [cited by examiner]
US 20020138618A1 · Szabo · 2002 [cited by applicant]
US 20020143865A1 · Tung Loo et al. · 2002 [cited by applicant]
US 20020184619A1 · Meyerson · 2002 [cited by applicant]
US 20030014557A1 · Berger et al. · 2003 [cited by applicant]
US 20030046396A1 · Richter · 2003 [cited by examiner]
US 20030069974A1 · Lu · 2003 [cited by examiner]
US 20030074393A1 · Peart · 2003 [cited by applicant]
US 20030088587A1 · Merrells et al. · 2003 [cited by applicant]
US 20030091028A1 · Chang et al. · 2003 [cited by applicant]
US 20030131226A1 · Spencer et al. · 2003 [cited by applicant]
US 20030140068A1 · Yeung · 2003 [cited by applicant]
US 20030144894A1 · Robertson et al. · 2003 [cited by applicant]
US 20030172127A1 · Northrup et al. · 2003 [cited by applicant]
US 20030191868A1 · Espino · 2003 [cited by applicant]
US 20030195950A1 · Huang et al. · 2003 [cited by applicant]
US 20040107125A1 · Guheen et al. · 2004 [cited by applicant]
US 20040117439A1 · Levett et al. · 2004 [cited by applicant]
US 20040117667A1 · Lavender et al. · 2004 [cited by applicant]
US 20040172558A1 · Callahan et al. · 2004 [cited by applicant]
US 20040230970A1 · Janzen · 2004 [cited by applicant]
US 20040250248A1 · Halpern et al. · 2004 [cited by applicant]
US 20040255289A1 · Alex George et al. · 2004 [cited by applicant]
US 20050015507A1 · Chin · 2005 [cited by applicant]
US 20050044110A1 · Herzenberg et al. · 2005 [cited by applicant]
US 20050044197A1 · Lai · 2005 [cited by applicant]
US 20050044356A1 · Srivastava et al. · 2005 [cited by applicant]
US 20050091269A1 · Gerber et al. · 2005 [cited by applicant]
US 20050091537A1 · Nisbet et al. · 2005 [cited by applicant]
US 20050114401A1 · Conkel · 2005 [cited by applicant]
US 20050160172A1 · Eytchison · 2005 [cited by applicant]
US 20050267978A1 · Satapati · 2005 [cited by applicant]
US 20050283462A1 · Pennec et al. · 2005 [cited by applicant]
US 20050283818A1 · Zimmermann et al. · 2005 [cited by applicant]
US 20060004802A1 · Phillips et al. · 2006 [cited by applicant]
US 20060010026A1 · Nenov et al. · 2006 [cited by applicant]
US 20060031185A1 · Jose et al. · 2006 [cited by applicant]
US 20060069776A1 · Shim et al. · 2006 [cited by applicant]
US 20060075141A1 · Boxenhorn · 2006 [cited by applicant]
US 20060143284A1 · Galchev · 2006 [cited by applicant]
US 20060143619A1 · Galchev · 2006 [cited by examiner]
US 20060149760A1 · Keni et al. · 2006 [cited by applicant]
US 20060150026A1 · Kolawa et al. · 2006 [cited by applicant]
US 20060155773A1 · Drouet et al. · 2006 [cited by applicant]
US 20060155867A1 · Kilian et al. · 2006 [cited by applicant]
US 20060168334A1 · Potti · 2006 [cited by examiner]
US 20060195573A1 · Srivastava et al. · 2006 [cited by applicant]
US 20060200473A1 · Whitehead et al. · 2006 [cited by applicant]
US 20060248283A1 · Galchev et al. · 2006 [cited by applicant]
US 20060259604A1 · Kotchavi et al. · 2006 [cited by applicant]
US 20060282509A1 · Kilian · 2006 [cited by examiner]
US 20070005801A1 · Kumar · 2007 [cited by examiner]
US 20070055781A1 · Fleischer et al. · 2007 [cited by applicant]
US 20070061470A1 · Berg · 2007 [cited by examiner]
US 20070115282A1 · Turner et al. · 2007 [cited by applicant]
US 20070124373A1 · Chatterjee et al. · 2007 [cited by applicant]
US 20070156659A1 · Lim · 2007 [cited by applicant]
US 20070226753A1 · Nikols et al. · 2007 [cited by applicant]
US 20070239859A1 · Wilkinson et al. · 2007 [cited by applicant]
US 20070256073A1 · Troung et al. · 2007 [cited by applicant]
US 20070282953A1 · Jain et al. · 2007 [cited by applicant]
US 20070283154A1 · Zhang et al. · 2007 [cited by applicant]
US 20080034071A1 · Wilkinson et al. · 2008 [cited by applicant]
US 20080046576A1 · Wahl · 2008 [cited by applicant]
US 20080052704A1 · Wysocki · 2008 [cited by applicant]
US 20080077752A1 · Kinoshita · 2008 [cited by applicant]
US 20080091812A1 · Lev-Ran et al. · 2008 [cited by applicant]
US 20080104215A1 · Excoffier et al. · 2008 [cited by applicant]
US 20080133777A1 · Wilkinson · 2008 [cited by applicant]
US 20080147745A1 · Wilkinson et al. · 2008 [cited by applicant]
US 20080147787A1 · Wilkinson et al. · 2008 [cited by applicant]
US 20080168118A1 · Hickey et al. · 2008 [cited by applicant]
US 20080184336A1 · Sarukkai et al. · 2008 [cited by applicant]
US 20080256090A1 · Dietterich et al. · 2008 [cited by applicant]
US 20080263640A1 · Brown · 2008 [cited by applicant]
US 20080288631A1 · Faisal et al. · 2008 [cited by applicant]
US 20080301258A1 · Arndt et al. · 2008 [cited by applicant]
US 20090150398A1 · Raut · 2009 [cited by applicant]
US 20090216815A1 · Braginsky et al. · 2009 [cited by applicant]
US 20090281856A1 · Meyer et al. · 2009 [cited by applicant]
US 20100082979A1 · Edwards · 2010 [cited by applicant]
US 20100269160A1 · Kalonji et al. · 2010 [cited by applicant]
US 20100275210A1 · Phillips et al. · 2010 [cited by applicant]
US 20110061002A1 · Bethune et al. · 2011 [cited by applicant]
US 20120079095A1 · Evans et al. · 2012 [cited by applicant]
US 20120096365A1 · Wilkinson · 2012 [cited by examiner]
US 20140040343A1 · Nickolov et al. · 2014 [cited by applicant]
US 20140359602A1 · Sawaya et al. · 2014 [cited by applicant]
US 20150106882A1 · Li et al. · 2015 [cited by applicant]
US 20170147418A1 · Sasturkar · 2017 [cited by examiner]
WO 2007075846A2 · 2007 [cited by applicant]
Non-Final Office Action mailed May 1, 2018 in related U.S. Appl. No. 15/838,270. [cited by applicant]
Notice of Allowance mailed Aug. 9, 2017 in related U.S. Appl. No. 14/595,194. [cited by applicant]
“JavaTM Message Service API Tutorial,” Sun Microsystems, Inc., 59 p. 2002. [cited by applicant]
Mahmoud, “Getting Started with Javaq Message Service (JMS),” URL=http://java.sun.com/developer/techincalArticles/Ecommerce/jms/, 8 pages, Nov. 2004. [cited by applicant]
Mykkanen, “Component and Service Technology Families,” University of Kuoppio Savonia Polytechnic, 150 pages, Aug. 30, 2004. [cited by applicant]
“Propero workSpace Product Overview,” Propero Ltd., 17 pages, 2005. [cited by applicant]
“Propero workSpace Technical Overview,” Propero Ltd., 17 pages, 2005. [cited by applicant]
“Java Message Service (JMS).,” URL=http://www.peterindia.net/JMSOverview.html, 11 pages dowload date Jan. 18, 2008. [cited by applicant]
Larifa Bouras et al., Efficient Technical and Organizational Measures for Privacy-Aware Campus Idenify Management and Service Integration: Google 2006; pp. 1-7. [cited by applicant]
D.M. Eyers et al.; Oasis Role-Based Access Control for Electronic Health Records; IEE Proc-Softw,; vol. 152, No. 1: Feb. 2006; 8 pages. [cited by applicant]
Katrin Franke et al., Wanda: A Generic Framework Applied in Forensic Handwriting Analysis and Writer Identification, Google 2003, pp. 1-12. [cited by applicant]
Alexander C Klaiber, et al.; A Comparison of Message Passing and Shared Memory Architectures for Data Parallel Programs; ACM SIGARCH Computer Architecture News; News; vol. 22, No. 2 pp. 94-105, IEEE Computer Society Pre… [cited by applicant]
E. Axel Larsson, A Case Study: Implementing Novell Identity Management at Drew University, ACM 2005, pp. 165-170. [cited by applicant]
Volker Turau, A Caching System for Web Content Generated from XML Sources Using XSLT, Google 2002, pp. 197-207. [cited by applicant]
B. Tyler Wilson, et al.: Forest Inventory and Analysis Information Delivery Architecture; the Computer Socitey; Proceedings of the 19th International Workshop of Database and Exper Systems Applications (DEXA '05); 2005;… [cited by applicant]
International Search Report (Apr. 11, 2008), International Publication No. WO 2007-075846, 3 pages. [cited by applicant]
“Java™ Message Service API Tutorial,” Sun Microsystems, Inc. 59 pages 2002. [cited by applicant]
Mahmoud, “Getting Started with Java Message Service (JMS),” URL=http://java.sun.com/developer/technicalArticles/Ecommerce/jms/, 8 Pages, Nov. 2004. [cited by applicant]
“Propero workspace Technical Overview,” Properp Ltd., 17 pages, 2005. [cited by applicant]
“Java Message Service (JMS).,” URL=http://www.peterindia.net/JMSOverview.html, 11 pages, download date Jan. 18, 2008. [cited by applicant]
Larifa Bouras et al.; Efficient Technical and Organizational Measures for Privacy-Aware Campus Identify Management and Service Integration; Google 2006; pp. 1-7. [cited by applicant]
D.M. Eyers, et al.; Oasis Role-Based Access Control for Electronic Health Records; IEE Proc-Softw.; vol. 153, No. 1; Feb. 2006; 8 pages. [cited by applicant]
E Axel Larsson; A Case Study: Implementng Novell Identity Management at Drew University; ACM 2005; pp. 165-170. [cited by applicant]
Volker Turau; A Caching System for Web Content Gernerated from XML Sources Using XSLT; Google 2002; pp. 197-207. [cited by applicant]
B. Tyler Wilson, et al.; Forest Inventory and Analysis Information Delivery Architecture; the Computer Society; Proceedings of teh 19th International Workshop of Database and Exper Systems Applications (DEXA '05); 2005;… [cited by applicant]