IP Library Granted Patent US 7,900,201
Granted Patent B1
US 7,900,201 · App. 11/316,399 · Granted Mar 1, 2011

Automated remedying of problems in software application deployments

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 7,900,201
App. No.
11/316,399
Granted
Mar 1, 2011
Kind
B1
Abstract

Computer-implemented systems and methods for managing a deployment of a software application are disclosed. A method includes identifying problems with the deployment, each problem having a severity rating. For each identified problem, one or more associated remedies are identified, each remedy having a severity rating based on the severity rating of the problem with which the remedy is associated. The method further includes ranking the remedies based on the remedies' severity ratings. The remedies can be executed in order of rank. Also disclosed are systems and methods of preventing simultaneous execution of certain types of remedies, either on the deployment in general or on a set of components of the deployment. Also disclosed are methods for logging the results of executed remedies and their effect on deployment health.

Claims (33)

1. A computer-implemented method of managing a deployment of a software application, comprising:

gathering information about the deployment from at least (1) encoded knowledge independent of the deployment and (2) telemetry information from the deployment;

detecting a problem associated with the deployment;

obtaining information about the detected problem in a list of name-value pairs;

selecting an abstract remedial plan associated with the detected problem; and

converting the abstract remedial plan into a deployment-specific remedial plan based at least partly on the list of name-value pairs, said deployment-specific remedial plan including a plurality of sequentially ordered decision factors and steps to be executed, said conversion including instantiating resolved variables, resolving queries, and performing dead branch elimination,

said method performed in its entirety by one or more computer systems.

2. The method of claim 1 , wherein detecting the problem associated with the deployment comprises:

accessing encoded knowledge which describes problems known to occur in deployments of the software application and which identifies conditions and remedial plans associated with the described problems; and

mapping combinations of collected data values of time-variant state metrics of the deployment to the described problems in order to detect one or more of the described problems as existing in the deployment.

3. The method of claim 2 , wherein each described problem is associated with one or more of the remedial plans, and each remedial plan is associated with one or more of the described problems.

4. The method of claim 1 , further comprising: rendering the deployment-specific plan in a graphical user interface.

5. The method of claim 4 , wherein the plan is rendered in the graphical user interface as a flowchart.

6. The method of claim 1 , further comprising: determining, by said one or more computer systems, whether the deployment-specific plan is feasible.

7. The method of claim 1 wherein detecting the problem associated with the deployment comprises using encoded representations of knowledge, said encoded representations describing problems known to occur in deployments of the software application and identifying conditions associated with the problems.

8. The method of claim 7 , wherein the encoded representations of knowledge include a collection of deployment-independent rules describing problems associated with the software application, at least some of the rules comprising logical combinations of conditions individually satisfied by features of the deployment, said rules collectively including predicates, logical operators, mathematical operators, free variables, and constant terms, the logical operators including AND and OR operators.

9. The method of claim 1 , wherein the abstract remedial plan comprises a plurality of sequentially ordered decision factors and steps.

10. The method of claim 1 , wherein converting the abstract remedial plan into a deployment-specific remedial plan comprises binding parameters of the abstract remedial plan.

11. The method of claim 1 , wherein converting the abstract remedial plan into a deployment-specific remedial plan comprises using name-matching to bind specific parameters of the abstract remedial plan to corresponding attributes of the detected problem, said name-matching comprising matching names in the list of name-value pairs to names of parameters of the abstract remedial plan.

12. The method of claim 1 , wherein converting the abstract remedial plan into a deployment-specific remedial plan comprises determining which of a plurality of solutions specified by the abstract remedial plan are applicable to the deployment.

13. The method of claim 1 , further comprising executing the deployment-specific remedial plan.

14. The method of claim 1 , further comprising:

generating, via an automated discovery process, an application model that represents the deployment of the software application, including hardware and software components of the deployment; and

using deployment information obtained from at least the application model to determine whether one or more prerequisites of the abstract remedial plan are met.

15. The method of claim 14 , wherein generating the application model comprises populating the application model with:

an object graph representing hardware and software components of the deployment, the components represented as objects of the object graph, the object graph including information about relationships between the components; configuration data about the components; and dependencies between the components.

16. Physical computer storage that stores executable code that directs one or more computer systems to perform a method that comprises:

gathering information about a deployment of a software application from at least (1) encoded knowledge independent of the deployment and (2) telemetry information from the deployment;

detecting a problem associated with the deployment; obtaining information about the detected problem in a list of name-value pairs;

selecting a deployment-independent encoded remedial plan associated with the detected problem; and

converting the deployment-independent encoded remedial plan into a deployment-specific remedial plan based at least partly on the list of name-value pairs, said deployment-specific remedial plan including a plurality of sequentially ordered decision factors and steps to be executed, said conversion including instantiating resolved variables, resolving queries, and performing dead branch elimination.

17. The physical computer storage of claim 16 , wherein the deployment-independent encoded remedial plan specifies deployment-independent steps and decision factors that are customized, by execution of the executable code, to deployment-specific steps and decision factors.

18. The physical computer storage of claim 16 , wherein converting the deployment-independent encoded remedial plan into a deployment-specific remedial plan comprises binding parameters of the deployment-independent encoded remedial plan based on the information about the deployment and the information regarding the detected problem.

Assignments (10)
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 →
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 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 →
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 →
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 →
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 →
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 Jan 22, 2013
From: ZENPRISE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 029666/0925 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2006
From: QURESHI, WAHEED; HASSAN, TANVIR; ROACH, KELLY
To: ZENPRISE, INC.
Reel/Frame 017750/0504 →