IP Library Granted Patent US 9,363,252
Granted Patent B2
US 9,363,252 · App. 14/454,122 · Granted Jun 7, 2016

Method for customizing software applications

Inventors: Douglas Mueller (Palo Alto, CA); Charles A. Mousseau (Palo Alto, CA)
Assignee: BMC Software, Inc.
H04L63/08G06F8/65G06F8/71G06F9/44536G06F17/30424
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,363,252
App. No.
14/454,122
Granted
Jun 7, 2016
Kind
B2
Abstract

In one example embodiment, a method includes, in one of an interpreted computer environment and a compiled computer environment, generating a software application. Generating the software application includes associating at least one first overlaid object with a first overlay group, the at least one overlaid object having a corresponding base object of the software application, assigning a first permission to the first overlay group, determining if a user is authorized to use the first overlay group based on the first permission, and configuring the software application to execute in the computer system using the at least one first overlaid object and the corresponding base object upon determining the user is authorized to use the first overlay group.

Claims (79)

1. A method, comprising:

generating a software application in one of an interpreted computer environment and a compiled computer environment, wherein the generating of the software application includes,

associating at least one first overlaid object with a first overlay group, the at least one overlaid object having a corresponding base object of the software application, the at least one overlaid object being configured to allow the application of a change to the base object while preserving customizations associated with the at least one overlaid object,

assigning a first permission to the first overlay group,

determining a user authorization associated with use of the first overlay group based on the first permission, and

configuring the software application to execute using the at least one first overlaid object and the corresponding base object upon determining the user authorization to use the first overlay group.

2. The method of claim 1 , further comprising:

associating at least one second overlaid object with a second overlay group;

assigning a second permission to the second overlay group;

determining a user authorization associated with use of the second overlay group based on the second permission; and

configuring the software application to execute using the at least one first overlaid object, the at least one second overlaid object and the corresponding base object upon determining the user authorization to use the second overlay group.

3. The method of claim 1 , further comprising:

associating at least one second overlaid object with a second overlay group;

assigning a second permission to the second overlay group;

determining a user authorization associated with use of the second overlay group based on the second permission; and

configuring the software application to execute using the at least one second overlaid object instead of the corresponding base object upon determining the user authorization to use the second overlay group.

4. The method of claim 1 , further comprising:

configuring the software application to execute using the corresponding base object upon determining there is no user authorization to use the first overlay group.

5. The method of claim 1 , wherein generating the software application is in response to receiving a request from a user to execute the software application.

6. The method of claim 1 , further comprising:

associating a second overlaid object with the at least one first overlaid object within the first overlay group; and

configuring the software application to execute using the at least one first overlaid object, the corresponding base object and the second overlaid object.

7. The method of claim 1 , further comprising

associating one of the at least one first overlaid object with a first base object of a software application includes,

storing a definition of the first base object in a dictionary, and

storing a definition of the one of the at least one first overlaid object in the dictionary, indicating that the one of the at least one first overlaid object overlays the first base object.

8. The method of claim 1 , wherein

the software application is interpreted by an interpretation environment, and wherein

the generating of the software application to execute includes,

querying a dictionary for information regarding objects associated with the software application, responsive to a request to execute the software application, and

determining whether to execute at least one of the base object and the first overlaid object.

9. The method of claim 1 , wherein the at least one first overlaid object replaces a portion of the corresponding base object.

10. The method of claim 1 , wherein the at least one first overlaid object adds functionality to the corresponding base object.

11. A networked computer system, comprising:

a server computer;

a datastore, coupled to the server;

a client computer, communicatively coupled to the server computer;

a plurality of software application base objects, stored in the datastore;

a plurality of software application overlaid objects, stored in the datastore, each of the plurality of software application overlaid objects being configured to allow the application of a change to a corresponding base object of the software application while preserving customizations associated with the at least one overlaid object, wherein at least one first overlaid object is associated with a first overlay group, the at least one overlaid object having a corresponding base object;

a first permission, stored in the datastore, to the first overlay group; and

a runtime environment, stored in the datastore, including instructions that when executed cause the server to,

receive a request from the client computer to execute a software application,

determine a user authorization associated with the client computer to and associated with use of the first overlay group based on the first permission, and

configure the software application to execute in the computer system using the at least one first overlaid object and the corresponding base object upon determining the user associated with client computer is authorized to use the first overlay group.

12. The networked computer system of claim 11 , further comprising:

a dictionary, stored in the datastore, comprising:

information associating each of the plurality of software application base objects with a software application; and

information associating each of the plurality of software application overlaid objects with a member of the plurality of software application objects or a member of the plurality of software application overlaid objects, wherein

selecting a first software application overlaid object of the plurality of software application overlaid objects to be executed by the client instead of the application base object, responsive to the request includes querying the dictionary.

13. The networked computer system of claim 12 , the dictionary further comprising:

information associating each of the plurality of software application overlaid objects with an overlay group of a plurality of overlay groups, wherein

querying the dictionary includes selecting overlaid objects of the plurality of software application overlaid objects that are associated with a first overlay group of the plurality of overlay groups.

14. The networked computer system of claim 11 , wherein the software application is interpreted on the client computer by an interpretation environment.

15. The networked computer system of claim 11 , wherein

at least one second overlaid object is associated with a second overlay group;

a second permission is assigned to the second overlay group; and

the runtime environment further include instructions that when executed cause the server to,

determining a user authorization associated with use of the second overlay group based on the second permission; and

configure the software application to execute using the at least one first overlaid object, the at least one second overlaid object and the corresponding base object upon determining the user authorization to use the second overlay group.

16. The networked computer system of claim 11 , wherein

at least one second overlaid object is associated with a second overlay group;

a second permission is assigned to the second overlay group; and

the runtime environment further include instructions that when executed cause the server to,

determine a user authorization associated with use of the second overlay group based on the second permission; and

configure the software application to execute in the computer system using the at least one second overlaid object instead of the corresponding base object upon determining the user authorization to use the second overlay group.

17. A computer system, comprising:

a processor;

a datastore, coupled to the processor;

a plurality of software application base objects, stored in the datastore;

a plurality of software application overlaid objects, stored in the datastore, each of the plurality of software application overlaid objects being configured to allow the application of a change to a corresponding base object of the software application while preserving customizations associated with the plurality of software application overlaid objects;

a software application, stored in the datastore, configured for execution by the processor, including:

a first software application base object; and

a runtime environment for the software application, stored in the datastore, including instructions that when executed cause the processor to:

determine a user authorization associated with use of a first software application overlaid object based on a permission associated with a first overlay group, and

configure the software application to execute using the first software application overlaid object and a corresponding software application base object upon determining the user authorization to use the first software application overlaid object.

18. The computer system of claim 17 , further comprising:

a plurality of overlay groups, each including a member of the plurality of software application overlaid objects.

19. The computer system of claim 17 , wherein the first software application overlaid object replaces a portion of the corresponding software application base object.

20. The computer system of claim 17 , wherein the first software application overlaid object adds functionality to the corresponding software application base object.

Assignments (15)
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 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 →
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 INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2015
From: MUELLER, DOUGLAS; MOUSSEAU, CHARLES A.
To: BMC SOFTWARE, INC.
Reel/Frame 035776/0527 →
Continuity (3)
Continuation 12835908 · Jul 14, 2010
Provisional Application 61318157 · Mar 26, 2010
Related Publication 20140358966A1 · Dec 4, 2014