IP Library Granted Patent US 9,442,708
Granted Patent B1
US 9,442,708 · App. 12/032,087 · Granted Sep 13, 2016

System and method for installing, updating and uninstalling 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 9,442,708
App. No.
12/032,087
Granted
Sep 13, 2016
Kind
B1
Abstract

One method includes mapping a set of environment independent attributes and tokenizing a set of environment dependent attributes in a user selected format. Optionally, the tokens may be replaced with values for the environment dependent attributes. The mapped attributes and the values for the environment dependent attributes may then be used to configure an environment(s). In one embodiment, the configuration is a transaction in a J2EE environment and the format is XML. Additionally, the transaction may tolerate the presence/absence of attributes which are to be installed/deleted. Moreover, the method may support uninstalling applications, change logging, version skipping, and generating prospective change and state reports. The mapping may be from an operational or development server. Likewise, the configuration can occur to an operational or development server. The sets of attributes may be identified by, for example, using predefined rules.

Claims (57)

1. A method comprising:

using an environment definition to identify server configuration items in a source environment;

determining, for each identified server configuration item, whether the server configuration item exists in a property file, the property file mapping server configuration items to respective objects in an environment agnostic format;

including the configuration items that exist in the property file in a first set of configuration information;

identifying a set of environment independent attributes from the first set of configuration information, wherein the set of environment independent attributes includes a set of attributes that is equivalent between the source environment and target environments;

identifying a set of environment dependent attributes from the first set of configuration information, wherein the set of environment dependent attributes includes a set of attributes with values that are specific to the target environment and that differ from the source environment;

converting the set of environment independent attributes to objects in the environment agnostic format using the property file;

converting the set of environment dependent attributes to objects in the environment agnostic format, including replacing environment dependent attribute values with corresponding tokens using the property file, the converting being performed prior to identification of a target environment;

receiving an indication of the target environment; and

automatically creating a set of target environment configuration information, including converting the attributes from the environment agnostic format to a format recognized by the target environment, including replacing the tokens for the one or more environment dependent attributes with a value specific to the target environment from a collection of environment properties for the target environment.

2. The method of claim 1 , wherein the attribute values for the one or more of the set environment dependent attributes are replaced using values from an environment properties file for the target environment.

3. The method of claim 1 , further comprising configuring the target environment according to the set of target environment configuration information.

4. The method of claim 3 , further comprising installing an application in the target environment in conjunction with configuring the target environment.

5. The method of claim 3 , further comprising updating an application in the target environment in conjunction with configuring the target environment.

6. The method of claim 3 , further comprising uninstalling an application in the target environment in conjunction with configuring the target environment.

7. The method of claim 3 , wherein the configuring is performed as a transaction.

8. The method of claim 1 , further comprising comparing the set of target environment configuration information to a set of attributes in the target environment to generate a report.

9. A method comprising:

querying a first server program for a set of configuration information for a source environment;

identifying a set of environment independent attributes from the set of configuration information, wherein the set of environment independent attributes includes a set of attributes that is equivalent between the source environment and target environments, the set of environment independent attributes being server configuration items that exist in a property file that maps server configuration items to respective objects an environment independent representation;

identifying a set of environment dependent attributes from the set of configuration information, wherein the set of environment dependent attributes includes a set of attributes with values that are specific to target environments and that differ from the source environment, the set of environment dependent attributes being server configuration items that exist in the property file; and

creating an installation atomic used to install a server program in a target environment, the creation occurring prior to identification of a specific target environment, the installation atomic including:

an environment agnostic representation for members of the set of environment dependent attributes and members of the set of environment independent attributes, each representation for an environment dependent attribute including at least one token that replaces a value of the attribute in the representation, the creating of the environment agnostic representation being based on the mapping in the property file,

an environment properties data structure having values that correspond to the tokens for at least one environment of a plurality of target environments, and

compiled binary artifacts created based on the server program.

10. The method of claim 9 , wherein the environment agnostic representation uses an XML structure.

11. The method of claim 9 , wherein the environment properties data structure contains values for a second environment.

12. The method of claim 9 , further comprising converting the environment agnostic representation into a format used by the target environment including using the values for the target environment from the environment properties data structure to replace corresponding tokens in the environment agnostic representation, thereby creating a set of configuration information for the target environment.

13. The method of claim 12 , further comprising configuring the target environment according to the set of configuration information for the target environment.

14. The method of claim 13 , further comprising installing binary application files in conjunction with configuring the target environment.

15. The method of claim 13 , further comprising un-installing an application in conjunction with configuring the target environment.

16. A method comprising:

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

identifying a first set of environment independent attributes from the first set of configuration information, the first set being server configuration items that exist in a property file that maps server configuration items to respective objects an environment independent representation;

identifying a first set of environment dependent attributes from the first set of configuration information, wherein the first set of environment dependent attributes includes attributes with values that are specific to target environments and that differ from the source environment, the first set being server configuration items that exist in the property file;

generating a first environment independent representation of the first set of environment dependent attributes and the first set of environment independent attributes, the first environment independent representation including at least one token replacing one of the values specific to target environments in the first set of configuration information, the generating being based on the mapping in the property file and performed independently of identification of a target environment;

querying the server program operating in a second environment for a second set of configuration information, the second environment and the first environment having different server types;

generating a second environment independent representation of the second configuration information that includes a second set of environment independent attributes and a second set of environment dependent attributes with at least one token replacing a value in the representation, the generating being based on a mapping in a property file that maps the second set of environment independent attributes and the second set of environment dependent attributes to respective objects in the environment independent representation and being performed independently of identification of a target environment;

comparing the first environment independent representation to the second environment independent representation to identify differences between the configuration information for the server program operating in the first environment and the server program operating in the second environment; and

reporting the differences.

17. The method of claim 16 , further comprising:

storing values for the first set of environment dependent attributes in a first environment dependent attribute data structure;

storing values for the second set of environment dependent attributes in a second environment dependent attribute data structure; and

comparing the first data structure to the second data structure to identify differences between the first environment and the second environment.

18. The method of claim 17 , wherein the server program operating in the first environment and the server program operating in the second environment are the same server program.

19. The method of claim 16 , wherein reporting the differences excludes reporting differences in the values specific to target environments.

20. The method of claim 1 , wherein identifying the set of environment independent attributes and the set of environment dependent attributes is based on a set of predefined rules being used to parse the first set of configuration information.

21. The method of claim 16 , wherein querying the server program for the first set of configuration information includes:

using an environment definition to identify the server configuration items.

22. The method of claim 1 , wherein the source environment and the target environment include different server types.

23. The method of claim 5 , wherein updating the application in the target environment further comprises:

selecting a particular target configuration item;

determining whether the particular target configuration item exists in the target environment; and

automatically creating the particular target configuration item when it is determined that the particular target item does not exist in the target environment.

24. The method of claim 9 , wherein identifying the set of environment independent attributes and the set of environment dependent attributes is based on a set of predefined rules being used to parse the set of configuration information.

25. The method of claim 9 , wherein querying the first server program for the set of configuration information includes:

using an environment definition to identify the server configuration items.

Assignments (18)
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: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
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 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Aug 10, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043514/0845 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2010
From: PHURNACE SOFTWARE, INC.
To: BLADELOGIC, INC.
Reel/Frame 025391/0763 →
RELEASE Recorded Apr 8, 2010
From: SILICON VALLEY BANK
To: PHURNANCE SOFTWARE INC
Reel/Frame 024203/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2008
From: REEVES, ROBERT E.
To: PHURNACE SOFTWARE, INC.
Reel/Frame 020992/0119 →
SECURITY AGREEMENT Recorded May 7, 2008
From: PHURNACE SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 020912/0219 →