IP Library Granted Patent US 9,645,833
Granted Patent B2
US 9,645,833 · App. 13/732,292 · Granted May 9, 2017

Additive independent object modification

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,645,833
App. No.
13/732,292
Granted
May 9, 2017
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 (78)

1. A method, comprising:

storing at least one independent object modification separately from a base object of a software application, the at least one independent object modification being configured to:

one of add a feature to an element of the base object or subtract a feature from the element of the base object, and

allow a single instance of the software application to be used by different users with different customizations based on the added or subtracted feature of the base object, including use without customizations;

in an upgrade to the software application, the upgrade including at least one change to the base object,

loading a new instance of the base object, and

generating a modified element, the modified element maintaining the change to the element in the base object associated with the upgrade and applying the associated independent object modification to at least one of add or subtract the feature to the element,

the new instance of the base object including the at least one change to the base object that are within the modified element; and

configuring the software application to execute in a computer system using the modified base object.

2. The method of claim 1 , wherein the association between the independent object modification and the base object is stored in an independent configuration file.

3. The method of claim 2 , wherein

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

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

4. The method of claim 1 , modifying at least one element of the base object includes one of adding a permission to the base object, removing a permission from the base object and changing a permission of the base object.

5. The method of claim 1 , wherein modifying at least one element of the base object includes,

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

determining a permission list associated with the independent object modification, and

modifying the at least one element of the base object if the user is in the permission list.

6. The method of claim 1 , wherein modifying at least one element of the base object includes,

determining a list of characteristics associated with the base object,

determining a characteristic modification based on the associated independent 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 modifying at least one element of the base object includes,

determining a list of characteristics associated with the base object,

determining a characteristic modification based on the associated independent object modification,

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

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 independent object modifications associated with the base object;

determining a grouping associated with the plurality of independent object modifications associated with the base object; and

modifying the at least one element of the base object includes modifying the at least one element of the base object based on the grouping associated with the plurality of independent object modifications.

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

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

if the grouping includes a sequential group, modifying the at least one element of the base object includes a hierarchical modification of the at least one element of the base object, and

if the grouping includes a parallel group, modifying the at least one element of the base object includes modifying the at least one element of the base object by a plurality of independent object modifications at a same priority level.

10. The method of claim 1 , wherein

the act of configuring the software application to execute in a computer system using the modified base object is performed responsive to a request to execute the software application by a first user having a first permission, and

the act of configuring the software application to execute in the computer system using the modified base object 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 such that the execution results in a different execution for each of the first user and the second user based on the first permission, the second permission and a permission associated with the independent object modification.

12. The method of claim 1 , further comprising:

upgrading the base object, wherein

the independent object modification continues to operate on the upgraded base object.

13. The method of claim 1 , wherein the modified base object does not replace the base object.

14. A non-transitory computer readable medium including code segments that when executed by a processor cause the processor to:

store at least one independent object modification separately from a base object of a software application, the at least one independent object modification being configured to allow a single instance of the software application to be used by different users with different customizations based on an added or subtracted feature of an element of the base object, including use without customizations;

in an upgrade to the software application, the upgrade including at least one change to the base object,

loading a new instance of the base object, and

generating a modified element, the modified element maintaining the change to the element in the base object associated with the upgrade and applying the associated independent object modification to at least one of add or subtract the feature to the element,

the new instance of the base object including the at least one change to the base object that are within the modified element; and

configure the software application to execute in a computer system using the modified base object.

15. The non-transitory computer readable medium of claim 14 , wherein

the association between the independent object modification and the base 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 independent object modification and the base object includes querying the database based on at least one of the application and the base object.

16. The non-transitory computer readable medium of claim 14 , wherein modifying at least one element of the base object includes,

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

determining a permission list associated with the independent object modification, and

modifying the at least one element of the base object if the user is in the permission list.

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

determine if there are a plurality of independent object modifications associated with the base object;

determine a grouping associated with the plurality of independent object modifications associated with the base object; and

modify the at least one element of the base object includes modifying the at least one element of the base object based on the grouping associated with the plurality of independent object modifications.

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

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

if the grouping includes a sequential group, modifying the at least one element of the base object includes a hierarchical modification of the at least one element of the base object, and

if the grouping includes a parallel group, modifying the at least one element of the base object includes modifying the at least one element of the base object by a plurality of independent object modifications at a same priority level.

19. The non-transitory computer readable medium of claim 14 , wherein

the act of configuring the software application to execute in a computer system using the modified base object is performed responsive to a request to execute the software application by a first user having a first permission,

the act of configuring the software application to execute in the computer system using the modified base object 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 such that the execution results in a different execution for each of the first user and the second user based on the first permission, the second permission and a permission associated with the independent object modification.

20. The non-transitory computer readable medium of claim 14 , wherein the modified base object does not replace the base object.

21. The method of claim 1 , wherein a single instance of the software application is used by a plurality of different users with different customizations based on the added or subtracted feature of the base object.

22. The method of claim 1 , wherein a single instance of the software application is used by a plurality of different users with different customizations based on the added or subtracted feature of the base object, and one of the plurality of different users uses the software application without customization.

23. The method of claim 1 , wherein the new instance of the base object has been modified.

24. The non-transitory computer readable medium of claim 14 , wherein a single instance of the software application is used by a plurality of different users with different customizations based on the added or subtracted feature of the base object.

25. The non-transitory computer readable medium of claim 14 , wherein a single instance of the software application is used by a plurality of different users with different customizations based on the added or subtracted feature of the base object, and one of the plurality of different users uses the software application without customization.

26. The non-transitory computer readable medium of claim 14 , wherein the new instance of the base object has been modified.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
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 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 →