IP Library Granted Patent US 12,436,816
Granted Patent B2
US 12,436,816 · App. 18/068,986 · Granted Oct 7, 2025

System and method for dynamic provisioning of cloud desktop pools from multiple public cloud providers

Inventors: Shiva Prasad Madishetti (Frisco, TX); Virabrahma Prasad Krothapalli (San Jose, CA); Amitabh Bhuvangyan Sinha (San Jose, CA); Jimmy Chang (Mountain View, CA); David T. Sulcer (Pacifica, CA); Anushree Kunal Pole (Sunnyvale, CA); Mahesh Kumar Vojjala (Sunnyvale, CA)
Assignee: Workspot, Inc.
G06F9/5072G06F9/5077G06F2209/5011
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,436,816
App. No.
18/068,986
Granted
Oct 7, 2025
Kind
B2
Abstract

A system and method for providing virtual desktops to client devices of users is disclosed. The system includes available cloud regions that each can provide virtual desktops and associated resources. A desktop pool resource management engine is coupled to the available cloud regions and collects constraint data from the available cloud regions as well as operational data from desktop clients and desktop agents. A cloud usage profile is created for a subset of the users from the operational data. A priority list of available cloud regions for a user in the subset is created based on the usage profile and the constraint data of the available cloud regions. The highest priority cloud region from the priority list is recommended for the user requesting a desktop. A control plane selects the highest priority cloud region according to the priority list to provide the desktop to the client device.

Claims (49)

1. A virtual desktop system comprising:

a plurality of available cloud regions that each include desktop agents, gateways, and associated resources for providing a pool of virtual desktops to client devices of a plurality of users;

a monitoring service coupled to the available cloud regions, the monitoring service operable to collect constraint data from the plurality of available cloud regions and operational data from the desktop agents and the client devices;

a desktop pool resource management engine coupled to the available cloud regions, the desktop pool resource management engine operable to:

produce a cloud usage profile for at least one subset of the plurality of users based on the operational data from desktop agents and client devices;

create a priority list of the plurality of available cloud regions for a user in the subset of the plurality of users based on the usage profile and the constraint data of the available cloud regions; and

recommend the highest priority cloud region from the priority list for the user of a client device requesting a desktop; and

a control plane selecting a cloud region according to the priority list to provide the desktop to the client device.

2. The system of claim 1 , wherein the usage profile is one of a plurality of usage profiles, wherein at least one of the plurality of usage profiles is associated with each of the plurality of users.

3. The system of claim 2 , wherein the usage profile includes a user role and a user location.

4. The system of claim 2 , wherein applications used by the user usage data determines the user role in the usage profile.

5. The system of claim 1 , wherein the prioritized list is created by analyzing each of the plurality of cloud regions with regard to the suitability for the usage profile and comparing each of the cloud regions in relation to the suitability.

6. The system of claim 5 wherein the creation of the priority list is based on one of a static configuration specified by an administrator; a statistical method of ranking the regions to optimize specific profiles; a rule-based system, or a machine learning technique, or a combination thereof.

7. The system of claim 1 , wherein the desktop pool resource management engine is operable to determine whether the selected cloud region satisfies a runtime criteria, wherein the next prioritized region is considered if the initial selected region does not satisfy the runtime criteria.

8. The system of claim 7 , wherein the runtime criteria includes one of network health and resource availability.

9. The system of claim 1 wherein the constraints include at least one of provider, location, carbon rating, predicted status, predicted capacity, predicted initial latency, subsequent latency and cost.

10. The system of claim 1 , wherein the operational data includes at least one of location of the user, duration of connection, and applications used by the desktop.

11. The system of claim 1 , wherein the desktop pool resource management engine is operable to assign a weight to the constraints to express relative importance of the consideration factor.

12. The system of claim 1 , wherein the control plane is operable to determine a change in a condition of the plurality of cloud regions and wherein the desktop pool resource management engine is operable to reevaluate the priority list based on the changed conditions.

13. The system of claim 12 , wherein the change in condition is the unavailability of one of the plurality of cloud regions.

14. The system of claim 1 , wherein the desktop pool resource management engine is operable to predict the time to warm up a desktop in a region for the usage profile.

15. The system of claim 1 , wherein the desktop pool resource management engine is operable to predict a quantity of desktops to be warmed up in a cloud region for the usage profile.

16. The system of claim 1 , wherein the desktop pool resource management engine creates a warmup plan based on analysis of historical usage by the plurality of users.

17. The system of claim 1 , wherein the desktop pool resource management engine is operable:

to assign a desktop to the client device of the user; and

provide a connection from the user to the assigned desktop based on the priority list of cloud regions.

18. The system of claim 17 , wherein the desktop pool resource management engine includes a run-time latency-first policy that selects a cloud region from the priority list that provides a low-latency connection and a run-time response-first policy that provides a warmed-up desktop in a next available cloud region of the priority list.

19. A method for providing access to virtual desktops in a desktop pool to a plurality of users operating client devices, the method comprising:

collecting constraint data from a plurality of available cloud regions via a desktop pool resource management engine coupled to the available cloud regions, wherein each of the available cloud regions provide virtual desktops to the client devices via desktop agents, gateways, and associated resources;

collecting operational data from the desktop clients and desktop agents;

creating a cloud usage profile for at least a subset of the plurality of users based on the collected operational data from the desktop agents and client devices;

creating a priority list of the plurality of available cloud regions for a user based on the usage profile and the constraint data of the available cloud regions;

recommending the highest priority cloud region from the priority list for a user of a client device requesting a desktop; and

selecting a cloud region according to the priority list to provide the desktop to the client device.

20. The method of claim 19 , further comprising predicting a quantity of desktops to warm up and a time to warm up desktops in a cloud region for the usage profile.

21. The method of claim 19 , further comprising creating a warmup plan based on analysis of historical usage by the plurality of users.

22. The method of claim 19 , further comprising:

assigning a desktop to the user; and

providing a connection from the client device of the user to the assigned desktop based on the priority list of cloud regions.

23. The method of claim 22 , wherein the selecting a cloud region is based on a run-time latency-first policy that provides a cloud region that provides a low-latency connection.

24. The method of claim 22 , wherein the selecting a cloud region is based on a run-time response-first policy that provides a warmed-up desktop in a next available cloud region.

25. A non-transitory computer-readable medium having machine-readable instructions stored thereon, which when executed by a processor, cause the processor to:

collect constraint data from a plurality of available cloud regions via a desktop pool resource management engine coupled to the available cloud regions, wherein each of the available cloud regions provide virtual desktops to client devices through desktop agents, gateways, and associated resources;

create a cloud usage profile for at least a subset of a plurality of users of the client devices based on the operational data from the desktop agents, gateways, and client devices;

collect operational data from the desktop clients and desktop agents;

create a cloud usage profile for at least a subset of the plurality of users;

create a priority list of the plurality of available cloud regions for a user based on the usage profile and the constraint data of the available cloud regions;

recommend the highest priority cloud region from the priority list for a user of a client device requesting a desktop; and

select a cloud region according to the priority list to provide the desktop to the client device.

Assignments (2)
SECURITY INTEREST Recorded May 29, 2026
From: WORKSPOT, INC.
To: WTI FUND X, INC.; WTI FUND XI, INC.
Reel/Frame 074802/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2022
From: MADISHETTI, SHIVA PRASAD; KROTHAPALLI, VIRABRAHMA PRASAD; SINHA, AMITABH BHUVANGYAN; CHANG, JIMMY; SULCER, DAVID T.; POLE, ANUSHREE KUNAL; VOJJALA, MAHESH KUMAR
To: WORKSPOT, INC.
Reel/Frame 062185/0583 →
Continuity (2)
Provisional Application 63371472 · Aug 15, 2022
Related Publication 20240202044A1 · Jun 20, 2024
References Cited (4)
US 20210026661A1 · Sulcer · 2021 [cited by examiner]
US 20210103644A1 · Madishetti · 2021 [cited by examiner]
US 20210349745A1 · Kelly · 2021 [cited by examiner]
US 20220334903A1 · Pole · 2022 [cited by examiner]
Cited By (1)
US 12,701,009