IP Library Granted Patent US 11,340,912
Granted Patent B2
US 11,340,912 · App. 15/476,609 · Granted May 24, 2022

Additive independent object modification

Inventors: Douglas Mueller (Palo Alto, CA); Charles Mousseau (Palo Alto, CA)
Assignee: BMC Software, Inc.
G06F9/44505G06F8/71
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 11,340,912
App. No.
15/476,609
Granted
May 24, 2022
Kind
B2
Abstract

Disclosed is a method, a system and a computer readable medium for additive independent object modification. The method includes determining an association between an independent object modification and a base object of a software application, modifying at least one element of the base object based on the associated independent object modification, and configuring the software application to execute in a computer system using the modified base object.

Claims (70)

1. A method for maintaining modifications after an upgrade of a software application installed on a computer system, the software application including a plurality of objects, each object including one or more elements, an element of the one or more elements having an original definition, the method comprising:

receiving an object modification including a modified definition of a software application object of the plurality of objects, the modified definition including at least one additive or subtractive change to the original definition;

storing the object modification separately from the software application object with a link to the software application object within the software application;

in response to a request for a first execution of the software application that includes executing the software application object, accessing the link to identify the object modification;

performing the first execution of the software application by performing a first combination of the software application object and the object modification accessed using the link, including applying the modified definition to a first execution path of the software application while suppressing the original definition in the first execution path to make the at least one additive or subtractive change to the software application object during the first execution;

receiving, during the upgrade to the software application, an upgrade to the software application object to obtain an upgraded software application object;

in response to a request for a second execution of the software application that includes executing the upgraded software application object, accessing the link to identify the object modification; and

performing the second execution of the software application by performing a second combination of the upgraded software application object and the object modification accessed using the link, including applying the modified definition to

a second execution path of the software application to make the additive or subtractive change to the upgraded software application object during the second execution.

2. The method of claim 1 further comprising, implementing the link using an association between the object modification and the software application object in an independent configuration file.

3. The method of claim 2 , wherein the independent configuration file is a record set in a database, and wherein

determining the association between the object modification and the software application object includes querying the database based on at least one of the software application and the software application object.

4. The method of claim 1 , wherein the additive or subtractive change includes one of adding a permission to the software application object, removing a permission from the software application object and changing a permission of the software application object.

5. The method of claim 1 , wherein performing the first execution includes:

determining a permission associated with a user of the software application,

determining a permission list associated with the object modification, and

executing the first combination if the user is in the permission list.

6. The method of claim 1 , wherein performing the first execution includes:

determining a list of characteristics associated with the software application object,

determining a characteristic modification based on the object modification, and

modifying at least one of the characteristics in the list of characteristics with the characteristic modification.

7. The method of claim 1 , wherein performing the first execution includes:

determining a list of characteristics associated with the software application object,

determining a characteristic modification based on the object modification,

determining a time period constraint associated with the characteristic modification, and

executing the first combination including modifying at least one of the characteristics in the list of characteristics with the characteristic modification based on the time period constraint.

8. The method of claim 1 , further comprising:

determining if there are a plurality of object modifications associated with the software application object;

determining a grouping associated with the plurality of object modifications associated with the software application object; and

executing the first combination based on the grouping associated with the plurality of object modifications.

9. The method of claim 8 , wherein the determining the grouping associated with the plurality of object modifications includes

determining if the grouping includes at least one of a parallel group and a sequential group;

wherein, if the grouping includes a sequential group, the executing the first combination includes a hierarchical modification of the element of the software application object, and

wherein, if the grouping includes a parallel group, the executing the first combination includes modifying the element of the software application object by a plurality of object modifications at a same priority level.

10. The method of claim 1 , wherein

a first act of configuring the software application to execute the first combination is performed responsive to a request to execute the software application by a first user having a first permission, and

a second act of configuring the software application to execute in the computer system using the software application object and without using the modified element of the object modification in combination therewith is performed responsive to a request to execute the software application by a second user having a second permission.

11. The method of claim 10 , further comprising:

executing the software application in the computer system using a different execution path for each of the first user and the second user based on the first permission, the second permission, and a permission associated with the object modification.

12. A non-transitory computer readable medium for maintaining modifications after an upgrade of a software application installed on a computer system, the software application including a plurality of objects, each object including one or more elements, an element of the one or more elements having an original definition, the medium including code segments that when executed by a processor cause the processor to:

receive an object modification including a modified definition of a software application object of the plurality of objects, the modified definition including at least one additive or subtractive change to the original definition;

store the object modification separately from the software application object with a link to the software application object within the software application;

in response to a request for a first execution of the software application that includes executing the software application object, access the link to identify the object modification;

perform the first execution of the software application by performing a first combination of the software application object and the object modification accessed using the link, including applying the modified definition to a first execution path of the software application while suppressing the original definition in the first execution path to make the at least one additive or subtractive change to the software application object during the first execution;

receive, during the upgrade to the software application, an upgrade to the software application object to obtain an upgraded software application object;

in response to a request for a second execution of the software application that includes executing the upgraded software application object, accessing the link to identify the object modification; and

perform the second execution of the software application by performing a second combination of the upgraded software application object and the object modification accessed using the link, including applying the modified definition to

a second execution path of the software application to make the additive or subtractive change to the upgraded software application object during the second execution.

13. The non-transitory computer readable medium of claim 12 , wherein

the link is implemented using an association between the object modification and the software application object is stored in an independent configuration file,

the independent configuration file is a record set in a database, and

the processor is configured to determine the association between the object modification and the software application object by querying the database based on at least one of the software application and the software application object.

14. The non-transitory computer readable medium of claim 12 , wherein performing the first execution includes:

determining a permission associated with a user of the software application,

determining a permission list associated with the object modification, and

executing the first combination if the user is in the permission list.

15. The non-transitory computer readable medium of claim 12 , wherein the code segments further cause the processor to:

determine if there are a plurality of object modifications associated with the software application object;

determine a grouping associated with the plurality of object modifications associated with the software application object; and

execute the first combination based on the grouping associated with the plurality of object modifications.

16. The non-transitory computer readable medium of claim 15 , wherein determining the grouping associated with the plurality of object modifications, includes

determining if the grouping includes at least one of a parallel group and a sequential group,

wherein, if the grouping includes a sequential group, executing the first combination includes a hierarchical modification of the element of the software application object, and

wherein, if the grouping includes a parallel group, executing the first combination includes modifying the element of the software application object by a plurality of object modifications at a same priority level.

17. The non-transitory computer readable medium of claim 12 , wherein

a first act of configuring the software application to execute the first combination is performed responsive to a request to execute the software application by a first user having a first permission,

a second act of configuring the software application to execute in the computer system using the software application object and without using the modified element of the object modification in combination therewith is performed responsive to a request to execute the software application by a second user having a second permission, and

the processor is further configured to execute the software application in the computer system in a different execution path for each of the first user and the second user based on the first permission, the second permission, and a permission associated with the object modification.

18. The method of claim 1 , further comprising performing a third execution including receiving a selection from between the software application object and the upgraded software application object, and applying the selection to a third execution path of the software application to execute a third combination of the object modification and the selection, and further wherein receiving the selection comprises receiving the selection based on at least one of: a user permission level of a user of the software application, a time constraint, a location constraint, or a context constraint.

19. The non-transitory computer readable medium of claim 12 , wherein the instructions are further configured to cause the processor to perform a third execution including receiving a selection from between the software application object and the upgraded software application object, and applying the selection to a third execution path of the software application to execute a third combination of the object modification and the selection, and further wherein receiving the selection comprises receiving the selection based on at least one of: a user permission level of a user of the software application, a time constraint, a location constraint, or a context constraint.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2017
From: MUELLER, DOUGLAS; MOUSSEAU, CHUCK
To: BMC SOFTWARE, INC.
Reel/Frame 042550/0674 →
Continuity (2)
Continuation 13732292 · Dec 31, 2012
Related Publication 20170206098A1 · Jul 20, 2017