IP Library › Granted Patent US 12,443,414
Granted Patent B2
US 12,443,414 · App. 17/500,409 · Granted Oct 14, 2025

System and method to statistically determine and recommend bounce-able machines to improve user experience

Inventors: Prabhjeet Singh Chawla (Kanpur, IN); Vindhya Gajanan (Bengaluru, IN); Rahul Gupta (Bengaluru, IN)
G06F9/4403
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,443,414
App. No.
17/500,409
Granted
Oct 14, 2025
Kind
B2
Abstract

Described embodiments provide systems and methods for determining bounce-able machines. One or more processors can be coupled to memory. The one or more processors can identify data associated with a history of actions performed on a plurality of machines. The one or more processors can determine, using the data, a change in performance of the plurality of machines if a sequence of actions were applied to one or more of the plurality of machines. The one or more processors can select a machine of the plurality of machines based on at least on the change in performance of the machine satisfying a threshold. The one or more processors can initiate, responsive to the selection, the sequence of actions on the machine.

Claims (85)

1. A method, comprising:

identifying, by one or more processors coupled to memory, data associated with a history of actions performed on a plurality of machines;

predicting, by the one or more processors using the data and based on a simulation of a sequence of actions, a future change in performance of the plurality of machines if the sequence of actions were applied to one or more of the plurality of machines;

selecting, by the one or more processors and based on the simulation, a machine of the plurality of machines based at least on the change in performance of the machine satisfying a threshold, wherein the threshold is a numerical percentage that corresponds to an increase in performance associated with the machine; and

prior to the future change in performance, initiating, by the one or more processors responsive to the selection, the sequence of actions on the machine.

2. The method of claim 1 , further comprising:

determining, by the one or more processors, a second change in performance of the machine subsequent to initiation of the sequence of actions;

receiving, by the one or more processors, feedback from the machine; and

updating, by the one or more processors, the data associated with the plurality of machines based on the second change in performance and the feedback.

3. The method of claim 1 , further comprising:

generating, by the one or more processors, a list comprising one or more machines of the plurality of machines based on the change in performance of the one or more machines satisfying the threshold, and

wherein selecting the machine comprises selecting, by the one or more processors, at least one machine from the list.

4. The method of claim 3 , further comprising:

updating, by the one or more processors, the list comprising the one or more machines subsequent to initiation of the sequence of actions on the machine;

selecting, by the one or more processors, a second machine from the updated list; and

initiating, by the one or more processors responsive to the selection of the second machine, the sequence of actions on the second machine.

5. The method of claim 1 , further comprising:

receiving, by the one or more processors, feedback data from a remote device subsequent to initiating the sequence of actions;

generating, by the one or more processors, a rule set for the plurality of machines based on the feedback data from the remote device;

selecting, by the one or more processors, a second machine of the plurality of machines based on the change in performance of the second machine satisfying the threshold and the rule set; and

initiating, by the one or more processors responsive to the selection of the second machine, a second sequence of actions on the second machine based at least on the rule set, the second sequence of actions different from the sequence of actions.

6. The method of claim 1 , wherein the sequence of actions comprises:

switching, by the one or more processors, a state of the machine to maintenance mode;

terminating, by the one or more processors, one or more sessions established on the machine; and

executing, by the one or more processors, a reboot on the machine.

7. The method of claim 1 , further comprising:

identifying, by the one or more processors using the data associated with the history of actions performed on the plurality of machines, a second machine having an inoperative state, the inoperative state comprising at least one of an unknown state, an invalid state, or a stale state;

determining, by the one or more processors based on the data associated with the history of actions, that the sequence of actions restore the second machine to an operable state; and

initiating, by the one or more processors in response to the determination, the sequence of actions on the second machine.

8. The method of claim 1 , wherein the sequence of actions comprises at least one of:

disabling, by the one or more processors, maintenance mode of the machine;

initiating, by the one or more processors, a power action on the machine;

enabling, by the one or more processors, a session sharing mode for the machine;

terminating, by the one or more processors, a session of the machine; or

initiating, by the one or more processors, a reboot on the machine.

9. The method of claim 1 , wherein determining the change in performance further comprises:

determining, by the one or more processors, the change in performance of the plurality of machines responsive to the sequence of actions on the one or more of the plurality of machines;

determining, by the one or more processors, a second change in performance of the plurality of machines responsive to a second sequence of actions on the one or more of the plurality of machines.

10. The method of claim 9 , further comprising:

determining, by the one or more processors, that at least one of the change in performance or the second change in performance of the one or more of the plurality of machines satisfy the threshold; and

selecting, by the one or more processors, the machine and a second machine of the plurality of machines based at least on the change in performance or the second change in performance of the machine and the second machine satisfying the threshold.

11. The method of claim 10 , further comprising:

determining, by the one or more processors, that the change in performance is greater than the second change in performance on the machine;

initiating, by the one or more processors responsive to the determination, the sequence of actions on the machine;

determining, by the one or more processors, that the second change in performance is greater than the change in performance on the second machine; and

initiating, by the one or more processors responsive to the determination, the second sequence of actions on the second machine.

12. The method of claim 1 , further comprising:

determining, by the one or more processors using the data associated with the plurality of machines, a timeframe that performance of at least one of the plurality of machines is below a second threshold; and

initiating, by the one or more processors responsive to the determination, the sequence of actions on the at least one of the plurality of machines prior to or during the timeframe.

13. The method of claim 1 , wherein the data comprises at least one of central processing unit (CPU), random-access memory (RAM), disk usage, resource spikes, process, load evaluator index, session count, state, or status of each of the plurality of machines;

wherein the method further comprises generating, by the one or more processors, a metric using the data associated with the plurality of machines; and

wherein determining the change in performance comprises determining, by the one or more processors using the metric, the change in performance of the plurality of machines responsive to the sequence of actions on the one or more of the plurality of machines.

14. A system, comprising:

one or more processors, coupled to memory, configured to:

identify data associated with a history of actions performed on a plurality of machines;

predict, using the data and based on a simulation of a sequence of actions, a future change in performance of the plurality of machines if the sequence of actions were applied to one or more of the plurality of machines;

select a machine of the plurality of machines based on at least on the simulation and the change in performance of the machine satisfying a threshold, wherein the threshold is a numerical percentage that corresponds to an increase in performance associated with the machine; and

prior to the future change in performance, initiate, responsive to the selection, the sequence of actions on the machine.

15. The system of claim 14 , wherein the one or more processors are further configured to:

determine a second change in performance of the machine subsequent to initiation of the sequence of actions;

receive feedback data from the machine; and

update the data associated with the plurality of machines based on the second change in performance and the feedback data.

16. The system of claim 14 , wherein the one or more processors further configured to:

receive feedback data from a remote device subsequent to initiation of the sequence of actions;

generate a rule set for the plurality of machines based on the feedback data from the remote device;

select a second machine of the plurality of machines based on the change in performance of the second machine satisfying the threshold and the rule set; and

initiate, responsive to the selection of the second machine, a second sequence of actions on the second machine based on the rule set, the second sequence of actions different from the sequence of actions.

17. The system of claim 14 , wherein responsive to initiation of the sequence of actions, the one or more processors are configured to:

switch a state of the machine to maintenance mode;

terminate one or more sessions established on the machine; and

execute a reboot on the machine.

18. The system of claim 14 , wherein the sequence of actions comprises at least one of:

disable maintenance mode of the machine;

initiate a power action on the machine;

enable a session sharing mode for the machine;

terminate a session of the machine; or

initiate a reboot on the machine.

19. The system of claim 14 , wherein the data comprises at least one of central processing unit (CPU), random-access memory (RAM), disk usage, resource spikes, process, load evaluator index, session count, state, or status of each of the plurality of machines;

wherein the one or more processors further configured to generate a metric using the data associated with the plurality of machines; and

wherein to determine the change in performance comprises determining, using the metric, the change in performance of the plurality of machines responsive to the sequence of actions on the one or more of the plurality of machines.

20. A non-transitory computer readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

identify data associated with a history of actions performed on a plurality of machines;

predict, using the data and based on a simulation of a sequence of actions, a future change in performance of the plurality of machines if the sequence of actions were applied to one or more of the plurality of machines;

select a machine of the plurality of machines based on at least on the simulation and the change in performance of the machine satisfying a threshold, wherein the threshold is a numerical percentage that corresponds to an increase in performance associated with the machine; and

prior to the future change in performance, initiate, responsive to the selection, the sequence of actions on the machine.

Assignments (9)
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 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
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 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: CHAWLA, PRABHJEET SINGH; GAJANAN, VINDHYA; GUPTA, RAHUL
To: CITRIX SYSTEMS, INC.
Reel/Frame 057782/0102 →
Continuity (1)
Related Publication 20230114867A1 · Apr 13, 2023
References Cited (2)
US 20150149393A1 · Hwang · 2015 [cited by examiner]
US 20220171647A1 · Mutha · 2022 [cited by examiner]