IP Library Granted Patent US 10,922,067
Granted Patent B1
US 10,922,067 · App. 16/793,712 · Granted Feb 16, 2021

System and method for installing, updating and uninstalling applications

Inventor: Robert E. Reeves (Austin, TX)
Assignee: BladeLogic, Inc.
G06F8/61H04L67/34
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 10,922,067
App. No.
16/793,712
Granted
Feb 16, 2021
Kind
B1
Abstract

One example system includes an export engine to generate an environment agnostic configuration file and an environment properties data structure based on a server program executing in the environment. The environment-agnostic configuration file includes representations of a set of environment dependent attributes from the set of configuration information, each representation for an environment dependent attribute including at least one token that replaces a value of the attribute in the representation, and representations of members of a set of environment independent attributes from the set of configuration information that are equivalent between two different environments. The environment properties data structure has, for each environment, a value that corresponds to the at least one token. An example system may compare previously generated files with current files to identify differences. Differences that represent malicious changes can trigger restoration of the configuration using the previously generated files.

Claims (57)

1. A method comprising:

querying a program operating in a first environment for a set of configuration information;

generating an environment-agnostic configuration file that includes:

representations of a set of environment-dependent attributes from the set of configuration information, each representation for an environment-dependent attribute including at least one token that replaces a value of the attribute in the representation, and

representations of members of a set of environment-independent attributes from the set of configuration information that are equivalent between the first environment and a second environment;

generating an environment properties data structure having, for the first environment, a first-environment-specific value that corresponds to the at least one token;

comparing the environment-agnostic configuration file with a previously generated environment-agnostic configuration file and comparing the environment properties data structure and a previously generated environment properties data structure to identify differences;

reporting the differences identified; and

responsive to identifying differences, using the previously generated environment-agnostic configuration file and the previously generated environment properties data structure to restore configuration settings in the first environment.

2. The method of claim 1 , wherein generating the environment-agnostic configuration file includes:

identifying the environment-dependent attributes and the environment-independent attributes in a property file that maps server configuration items to respective objects in an environment-independent representation,

wherein the environment-dependent attributes and the environment-independent attributes in the environment-agnostic configuration file are those identified in the property file.

3. The method of claim 1 , wherein the previously generated environment-agnostic configuration file represents a last known good state.

4. The method of claim 1 , wherein the previously generated environment-agnostic configuration file is a file generated by a previous operation performed by a runtime engine in the first environment.

5. The method of claim 4 , wherein the previous operation is one of installing the program, uninstalling the program, status reporting, or reporting differences.

6. The method of claim 1 , wherein the previously generated environment-agnostic configuration file and the previously generated environment properties data structure are part of an installation atomic that includes compiled binary artifacts.

7. The method of claim 1 , wherein the differences represent malicious changes.

8. A system comprising:

at least one processor;

memory storing at least a first environment-agnostic configuration file and a first environment properties data structure generated for an install of a program in a first environment,

wherein the first environment-agnostic configuration file includes:

representations of a set of environment-dependent attributes from a first set of configuration information, each representation for an environment-dependent attribute including at least one token that replaces a value of the environment-dependent attribute in the representation, and

representations of members of a set of environment-independent attributes from the first set of configuration information that are equivalent between the first environment and a second environment, and

wherein the first environment properties data structure includes a first-environment-specific value that corresponds to the at least one token; and

memory storing instructions executed by the at least one processor to cause the system to:

query the first environment for a second set of configuration information for the program;

generate a second environment-agnostic configuration file that includes:

representations of a set of environment-dependent attributes from the second set of configuration information, and

representations of members of a set of environment-independent attributes from the second set of configuration information;

generate a second environment properties data structure;

compare the first environment-agnostic configuration file with the second environment-agnostic configuration file and compare the first environment properties data structure and the second environment properties data structure to identify differences;

report the differences identified; and

responsive to identifying differences, use the first environment-agnostic configuration file and the first environment properties data structure to restore configuration settings in the first environment.

9. The system of claim 8 , wherein generating the second environment-agnostic configuration file includes:

identifying environment-dependent attributes and environment-independent attributes in a property file that maps server configuration items to respective objects in an environment-independent representation,

wherein the environment-dependent attributes and the environment-independent attributes in the second environment-agnostic configuration file are those identified in the property file.

10. The system of claim 8 , wherein the first environment-agnostic configuration file was used to install the program.

11. The system of claim 8 , wherein the differences represent malicious changes.

12. The system of claim 8 , wherein the first environment-agnostic configuration file and the first environment properties data structure are part of an installation atomic that includes compiled binary artifacts.

13. A method comprising:

querying a program operating in a first environment for a first set of configuration information;

generating a first environment-agnostic configuration file that includes:

representations of a set of environment-dependent attributes from the first set of configuration information, each representation for an environment-dependent attribute including at least a first token that replaces a value of the attribute in the representation, and

representations of members of a set of environment-independent attributes from the first set of configuration information that are equivalent between the first environment and a second environment;

generating a first environment properties data structure having, for the first environment, a first environment-specific value that corresponds to the first token;

making a change to the program in the first environment;

querying the program subsequent to the change for a second set of configuration information;

generating a second environment-agnostic configuration file that includes:

representations of a set of environment-dependent attributes from the second set of configuration information, each representation for an environment-dependent attribute including at least a second token that replaces a value of the attribute in the representation, and

representations of members of a set of environment-independent attributes from the second set of configuration information that are equivalent between the first environment and a second environment;

generating a second environment properties data structure having, for the first environment, a second environment-specific value that corresponds to the second token;

comparing the first environment-agnostic configuration file with the second environment-agnostic configuration file and comparing the first environment properties data structure and the second environment properties data structure to identify differences;

committing the differences to a third environment where the program is operating, the third environment being an environment similar to the first environment.

14. The method of claim 13 , wherein the change is a delete of the program.

15. The method of claim 13 , wherein the change is an update to the program.

16. The method of claim 15 , wherein the update uses a third environment-agnostic configuration file generated at the second environment.

17. The method of claim 15 , wherein the update represents version skipping.

Assignments (13)
CHANGE OF NAME Recorded Jan 10, 2025
From: BLADELOGIC, INC.
To: BMC HELIX, INC.
Reel/Frame 069870/0796 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION; BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053467/0434 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
MERGER Recorded Feb 19, 2020
From: PHURNACE SOFTWARE, INC.
To: BLADELOGIC, INC.
Reel/Frame 051862/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2020
From: REEVES, ROBERT E.
To: PHURNACE SOFTWARE, INC.
Reel/Frame 051862/0640 →