IP Library Granted Patent US 8,402,306
Granted Patent B1
US 8,402,306 · App. 12/780,056 · Granted Mar 19, 2013

Systems and methods for managing applications

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 8,402,306
App. No.
12/780,056
Granted
Mar 19, 2013
Kind
B1
Abstract

A method for maintaining applications may include: (1) receiving a request to recover a first application, (2) identifying a first production topology of the first application that identifies a set of resources upon which the application depends, (3) maintaining a template for transforming the first production topology of the first application into a first recovery topology for the first application, the template comprising information for mapping the first production topology to the first recovery topology, (4) applying the template to the first production topology at a first point in time to create the first recovery topology, and (5) recovering the first application to a first computing system using the first recovery topology. Various other methods, systems, and computer-readable media are also disclosed herein.

Claims (78)

1. A computer-implemented method for managing applications, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving a request to recover a first application;

identifying a first production topology of the first application that identifies a set of resources upon which the first application depends while running in a production environment;

maintaining a template for transforming the first production topology of the first application into a first recovery topology for the first application that identifies a set of resources for recovering the first application, the template comprising information for mapping the first production topology to the first recovery topology;

applying the template to the first production topology at a first point in time to create the first recovery topology;

recovering the first application to a first computing system using the first recovery topology.

2. The computer-implemented method of claim 1 , wherein:

the first production topology comprises a reference to a first mount point associated with the first application;

applying the template to the first production topology at a first point in time to create the first recovery topology comprises modifying the reference to the first mount point to refer to a second mount point such that the first recovery topology comprises a reference to the second mount point instead of the first mount point.

3. The computer-implemented method of claim 1 , further comprising:

modifying the template for use in creating a second recovery topology for a second computing system;

applying the template to the first production topology to create the second recovery topology;

recovering the first application to the second computing system using the first recovery topology.

4. The computer-implemented method of claim 1 , further comprising:

identifying a second production topology of a second application that identifies at least one asset associated with the second application;

applying the template to the second production topology to create a second recovery topology;

recovering the second application using the second recovery topology.

5. The computer-implemented method of claim 1 , further comprising:

retrieving the template;

presenting at least a portion of information stored in the template to a user via a graphical user interface;

receiving, via the graphical user interface, input that modifies at least one value stored in the template.

6. The computer-implemented method of claim 1 , wherein:

the first production topology comprises a reference to a first host associated with the first application;

applying the template to the first production topology at a first point in time to create the first recovery topology comprises modifying the reference to the first host to refer to a second host such that the first recovery topology comprises a reference to the second host instead of the first host.

7. The computer-implemented method of claim 1 , wherein maintaining the template comprises:

storing a set of changes that map the first production topology to the first recovery topology, wherein the changes that map the first production topology to the first recovery topology comprise changes that map production resources of the first application to recovery resources of the first application.

8. The computer-implemented method of claim 1 , tangibly embodied as computer-executable instructions on at least one non-transitory computer-readable medium.

9. A computer-implemented method for managing applications, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

discovering a set of resources upon which an application depends;

generating a production topology that identifies the set of resources upon which the application depends while running in a production environment;

for each resource in the set of resources:

identifying a computer-executable command programmed to change a state of the resource;

including the computer-executable command in the production topology in a manner that associates the computer-executable command with the resource;

receiving a request to recover the application;

in response to receiving the request, identifying the production topology;

maintaining a template for transforming the production topology of the application into a recovery topology for the application that identifies a set of resources for recovering the application, the template comprising information for mapping the production topology to the recovery topology;

applying the template to the production topology at a first point in time to create the recovery topology;

recovering the application to a first computing system using the recovery topology.

10. The computer-implemented method of claim 9 , further comprising:

receiving a request to change a state of the application;

changing the state of the application by:

traversing the production topology to identify a resource whose state needs to be changed;

reading, from the production topology, the computer-executable command programmed to change the state of the resource;

changing the state of the resource by executing the computer-executable command.

11. The computer-implemented method of claim 10 , wherein:

the request to change the state of the application comprises the request to recover the application;

changing the state of the resource comprises onlining the resource.

12. The computer-implemented method of claim 10 , wherein:

the request to change the state of the application comprises a request to shut down the application;

changing the state of the resource comprises offlining the resource.

13. The computer-implemented method of claim 10 , wherein traversing the production topology to identify a resource whose state needs to be changed comprises:

determining that the resource is not in a predetermined state.

14. The computer-implemented method of claim 9 , wherein at least one resource in the set of resources comprises a file system.

15. The computer-implemented method of claim 9 , wherein at least one resource in the set of resources comprises a database.

16. The computer-implemented method of claim 9 , tangibly embodied as computer-executable instructions on at least one non-transitory computer-readable medium.

17. A system comprising:

a discovery module programmed to:

discover a set of resources upon which an application depends;

generate a first production topology that identifies the set of resources upon which the application depends while running in a production environment;

a command-identification module programmed to, for each resource in the set of resources:

identify a computer-executable command programmed to change a state of the resource;

include the computer-executable command in the first production topology in a manner that associates the computer-executable command with the resource;

a template-retention module programmed to maintain a template for transforming the first production topology of the application into a first recovery topology for the application that identifies a set of resources for recovering the application, the template comprising information for mapping the first production topology to the first recovery topology;

a recovery module programmed to:

receive a request to recover the application;

identify the first production topology;

apply the template to the first production topology at a first point in time to create the first recovery topology;

recover the application to a first computing system using the first recovery topology;

at least one processor programmed to execute the discovery module, the command-identification module, the template-retention module, and the recovery module.

18. The system of claim 17 , wherein the template-retention module is programmed to maintain the template by:

storing a set of changes that map the first production topology to the first recovery topology.

19. The system of claim 17 , wherein the template-retention module is programmed to:

retrieve the template;

present at least a portion of information stored in the template to a user via a graphical user interface;

receive, via the graphical user interface, input that modifies at least one value stored in the template.

20. The system of claim 17 , wherein:

the first production topology and the first recovery topology comprise markup-language documents;

the template comprises a markup-language transformation document.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2012
From: KRUCK, JOSHUA; CHRISTENSEN, AARON; WESTENBERG, GUIDO; JORAPURKAR, GIRISH
To: SYMANTEC CORPORATION
Reel/Frame 027674/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2010
From: KRUCK, JOSHUA; CHRISTENSEN, AARON; WESTENBERG, GUIDO
To: SYMANTEC CORPORATION
Reel/Frame 024385/0776 →