IP Library › Granted Patent US 12,625,538
Granted Patent B2
US 12,625,538 · App. 17/814,015 · Granted May 12, 2026

Session preservation for automated power management

Inventors: Yuri Kolesnikov (Raleigh, NC); Adith Jayakar Hegde (Parkland, FL); Nitin Mehta (Fort Lauderdale, FL); William Thomas George Charnell (Great Missenden, GB); Leo C. Singleton, IV (Fort Lauderdale, FL); Balasubramanian Swaminathan (Parkland, FL)
G06F1/3206G06F1/3287
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,625,538
App. No.
17/814,015
Filed
Jul 21, 2022
Granted
May 12, 2026
Kind
B2
Art Unit
2175
USPC
713/323
Abstract

According to one aspect of the disclosure, a method comprises: receiving, by a first computing device, information about one or more applications running on a second computing device, the second computing device being one of a plurality of computing devices managed by the first computing device; determining, by the first computing device, whether to power down the second computing device based at least on an analysis of the information about the one or more applications; and responsive to a determination to shutdown the second computing device, sending, by the first computing device, a command to shutdown the second computing device, wherein the second computing device is configured to save state of the one or more applications to a storage device accessible to the plurality of computing devices.

Claims (47)

1 . A method comprising:

receiving, by a first computing device, information about one or more applications running on a second computing device, the second computing device being one of a plurality of computing devices managed by the first computing device;

determining, by the first computing device, whether to power down the second computing device based at least on an analysis of the information about the one or more applications; and

responsive to a determination to power down the second computing device, sending, by the first computing device, a command to shutdown the second computing device, wherein the second computing device is configured to save state of the one or more applications to a storage device accessible to the plurality of computing devices;

wherein the information about the one or more applications running on the second computing device includes identifiers of the one or more applications, wherein determining whether to power down the second computing device includes comparing the application identifiers to a list of application identifiers.

2 . The method of claim 1 , wherein the list of application identifiers includes identifiers of applications for which the second computing device is able to save state.

3 . The method of claim 1 , wherein the list of application identifiers includes identifiers of applications for which the second computing device is unable to save state.

4 . The method of claim 1 , wherein determining whether to power down the second computing device is further based on a time of day.

5 . The method of claim 1 , further comprising:

determining, by the first computing device, a load of the second computing device,

wherein determining whether to power down the second computing device is further based on the load of the second computing device.

6 . The method of claim 1 , further comprising:

determining, by the first computing device, states of one or more sessions running on the second computing device,

wherein determining whether to power down the second computing device is further based on the states of the one or more sessions running on the second computing device.

7 . The method of claim 1 , further comprising:

receiving, by the first computing device, a request to extend a session hosted on a third computing device from the plurality of computing devices; and

responsive to receiving the request to extend the session, determining, by the first computing device, not to power down the third computing device.

8 . The method of claim 1 , wherein at least one of the one or more applications is associated with a session, the method further comprising:

receiving a request to access the at least one of the one or more applications; and

sending a command to access the at least one of the one or more applications on a third computing device of the plurality of computing devices, the third computing device configured to restore the state of the at least one of the one or more applications saved on the storage device.

9 . A server device comprising:

a processor; and

a non-volatile memory storing computer program code that when executed on the processor causes the processor to execute a process comprising:

receiving information about one or more applications running on a host machine, the host machine being one of a plurality of a host machines managed by the server device;

determining whether to power down the host machine based at least on an analysis of the information about the one or more applications; and

responsive to a determination to power down the host machine, sending a command to shutdown the host machine, wherein the host machine is configured to save state of the one or more applications to a storage device accessible to the plurality of host machines;

wherein the information about the one or more applications running on the host machine includes identifiers of the one or more applications, wherein determining whether to power down the host machine includes comparing the application identifiers to a list of application identifiers.

10 . The server device of claim 9 , wherein the list of application identifiers includes identifiers of applications for which the host machine is able to save state.

11 . The server device of claim 9 , wherein the list of application identifiers includes identifiers of applications for which the host machine is unable to save state.

12 . The server device of claim 9 , wherein determining whether to power down the host machine is further based on a time of day.

13 . The server device of claim 9 , the process further comprising:

determining a load of the host machine,

wherein determining whether to power down the host machine is further based on the load of the host machine.

14 . The server device of claim 9 , the process further comprising:

receiving a request to extend a session hosted on another host machine from the plurality of host machines; and

responsive to receiving the request to extend the session, determining not to power down the another host machine.

15 . The server device of claim 9 , wherein at least one of the one or more applications is associated with a session, the process further comprising:

receiving a request to access the at least one of the one or more applications; and

sending a command to access the at least one of the one or more applications on another host machine of the plurality of host machines, the another host machine configured to restore the state of the at least one of the one or more applications saved on the storage device.

16 . A non-transitory machine-readable medium encoding instructions that when executed by one or more processors cause a process to be carried out, the process comprising:

receiving, by a first computing device, information about one or more applications running on a second computing device from a plurality of computing devices managed by the first computing device;

determining, by the first computing device, whether to power down the second computing device based at least on an analysis of the information about the one or more applications; and

responsive to a determination to power down the second computing device, sending, by the first computing device, a command to shutdown the second computing device, wherein the second computing device is configured to save state of the one or more applications to a storage device accessible to the plurality of computing devices;

wherein the information about the one or more applications running on the second computing device includes identifiers of the one or more applications, wherein determining whether to power down the second computing device includes comparing the application identifiers to a list of application identifiers.

17 . The non-transitory machine-readable medium of claim 16 , the process further comprising:

determining, by the first computing device, a load of the second computing device,

wherein determining whether to power down the second computing device is further based on the load of the second computing device.

Assignments (3)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2022
From: KOLESNIKOV, YURI; HEGDE, ADITH JAYAKAR; MEHTA, NITIN; CHARNELL, WILLIAM THOMAS GEORGE; SINGLETON IV, LEO C.; SWAMINATHAN, BALASUBRAMANIAN
To: CITRIX SYSTEMS, INC.
Reel/Frame 060784/0520 →
Continuity (1)
Related Publication 20240028098A1 · Jan 25, 2024
References Cited (22)
US 8990809B1 · Jacob · 2015 [cited by applicant]
US 10789195B1 · Jha · 2020 [cited by applicant]
US 20080133687A1 · Fok · 2008 [cited by applicant]
US 20120227058A1 · Hunt · 2012 [cited by examiner]
US 20130167147A1 · Corrie · 2013 [cited by applicant]
US 20180341507A1 · Inbaraj · 2018 [cited by examiner]
US 20190025903A1 · Mehta · 2019 [cited by applicant]
US 20200042411A1 · Krishnan · 2020 [cited by applicant]
US 20200209946A1 · Visconti · 2020 [cited by applicant]
Citrix, “Autoscale”, May 31, 2022, 10 pages. [cited by applicant]
“Folder Redirection, Offline Files, and Roaming User Profiles overview”, https://docs.microsoft.com/en-us/windows-server/storage/folder-redirecti . . . , Dec. 23, 2021, 9 pages. [cited by applicant]
Anonymous: “Citrix Virtual Apps and Desktops service—Autoscale”, Oct. 15, 2020 (Oct. 15, 2020), pp. 1-25, XP055902816, Retrieved from the Internet: URL:https://web.archive.org/web/20201016090927/https://docs.citrix.com/… [cited by applicant]
Anonymous: “Local Host Cache”, Dec. 3, 2020 (Dec. 3, 2020), pp. 1-8, XP055902715, Retrieved from the Internet: URL:https://web.archive.org/web/20201203224037/https://docs.citrix.com/en-us/citrix-virtual-apps-desktops-se… [cited by applicant]
Augustin Jose: “Tech Preview: Power operations during Local Host Cache (LHC) mode”, Aug. 31, 2020 (Aug. 31, 2020), pp. 1-6, XP055902853, Retrieved from the Internet: URL:https://www.citrix.com/blogs/2020/08/31/tech-prev… [cited by applicant]
Carl Setterlund, “Citrix User Profile Management”, https://www.techtarget.com/searchvirtualdesktop/definisition/Citrix-User-P . . . , printed Jun. 10, 22, 3 pages. [cited by applicant]
Citrix, “Profile Management”, https://www.citrix.com/go/jmp/upm.html, printed Apr. 25, 2022, 3 pages. [cited by applicant]
International Search Report and Written Opinion issued in App. No. PCT/US2021/061370, mailing date Mar. 28, 2022, 16 pages. [cited by applicant]
Kaviani Nima: “Health Checking Applications in the Cloud—Part I Cloud Foundry”, Dec. 8, 2017 (Dec. 8, 2017), pp. 1-9, XP055902814, Retrieved from the Internet: URL:https://www.cloudfoundry.org/blog/health-check-apps-clo… [cited by applicant]
Office Action dated Feb. 2, 2022 for U.S. Appl. No. 17/125,251 (pp. 1-16). [cited by applicant]
Pacquette, “Scaling Azure Functions from Consumption Plan to Premium Plan (and back again)” https://www.davepaquette.com/archive/2020/05/20/scalling-azure-functions-from-consumption-plan-to-premium-hosting-plan.aspx; Ma… [cited by applicant]
U.S. Final Office Action dated Jun. 4, 2021 for U.S. Appl. No. 17/125,251; 15 pages. [cited by applicant]
U.S. Non-Final Office Action dated Feb. 19, 2021 for U.S. Appl. No. 17/125,251; 14 pages. [cited by applicant]