IP Library Granted Patent US 8,539,598
Granted Patent B2
US 8,539,598 · App. 12/978,002 · Granted Sep 17, 2013

Detection of customizations of application elements

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 8,539,598
App. No.
12/978,002
Granted
Sep 17, 2013
Kind
B2
Abstract

Systems, methods and computer readable media for detecting customization of an application running on a customer's environment are described. An application's original source can maintain a master hash registry for an application. The master hash registry includes valid and invalid hash codes for all objects in the application across all versions of the application. This master hash registry may be provided to the customer. A customization detection system loads a master hash registry to memory. The customization detection system may then retrieve an application object from the application, generate hash values for the object and compare these values with the object's master hash registry values to determine whether the application object is new or whether it has been customized in a supportable or unsupportable manner. The customization detection system may then set the object's customization status based on the results of the comparison.

Claims (38)

1. A method for detecting customizations of an application having at least one object executing on a computer, the method comprising:

loading, by at least one processor, at least a portion of a master hash registry of an application into a memory;

loading, by the at least one processor, at least one object from the application into the memory, the at least one object including at least one valid hash property and at least one invalid hash property, the at least one valid hash property being one or more properties that, if changed, are compatible with the application, the at least one invalid hash property being one or more properties that, if changed, are incompatible with the application;

comparing, by the at least one processor, the at least one object against the master hash registry including determining whether the at least one object exists in the master hash registry;

calculating, by the at least one processor, an invalid hash code for the at least one object based on the at least one invalid hash property, and a valid hash code for the at least one object based on the at least one valid hash property, if the at least one object is determined as existing in the master hash registry;

determining, by the at least one processor, whether the invalid hash code and the valid hash code exist in the master hash registry, if the at least one object is determined as existing in the master hash registry; and

determining, by the at least one processor, a customization status for the at least one object including setting the customization status to indicate that the at least one object has not been modified if both the invalid hash code and the valid hash code are present in the master hash registry.

2. The method of claim 1 wherein the determining a customization status for the at least one object further comprises setting the customization status to New if the at least one object is determined not to exist in the master hash registry.

3. The method of claim 1 wherein the determining a customization status for the at least one object further comprises setting the customization status to Incompatibly Modified if the invalid hash code is determined not to be present in the master hash registry.

4. The method of claim 1 wherein the calculating an invalid hash code for the at least one object comprises:

concatenating values of at least two invalid hash properties of the at least one object to form an invalid hash value string; and

generating the invalid hash code from the invalid hash value string.

5. The method of claim 1 wherein the determining a customization status for the at least one object comprises setting the customization status to Compatibly Modified if the invalid hash code is present in the master hash registry and the valid hash code is not present in the master hash registry.

6. The method of claim 1 wherein the calculating a valid hash code for the at least one object comprises:

concatenating values of at least two valid hash properties of the at least one object to form a valid hash value string; and

generating the valid hash code from the valid hash value string.

7. The method of claim 1 wherein the loading at least a portion of a master hash registry of an application into a memory includes loading the master hash registry from an original source of the application, wherein the master hash registry includes one or more valid hash codes and one or more invalid hash codes for the at least one object.

8. The method of claim 1 wherein the valid hash code for the at least one object is generated by concatenating valid hash properties of the at least one object to form a string and generating the valid hash code from the string.

9. The method of claim 1 wherein the invalid hash code for the at least one object is generated by concatenating invalid hash properties of the at least one object to form a string and generating the invalid hash code from the string.

10. The method of claim 1 further comprising generating a customization status report for the application.

11. A non-transitory computer-readable medium storing instructions that when executed cause at least one processor to detect customizations of an application having at least one object executing on a computer, the instructions including instructions to:

load at least a portion of a master hash registry of an application into a memory;

load at least one object from the application into the memory, the at least one object including at least one valid hash property and at least one invalid hash property, the at least one valid hash property being one or more properties that, if changed, are compatible with the application, the at least one invalid hash property being one or more properties that, if changed, are incompatible with the application;

compare the at least one object against the master hash registry including determining whether the at least one object exists in the master hash registry;

calculate an invalid hash code for the at least one object based on the at least one invalid hash property, and a valid hash code for the at least one object based on the at least one valid hash property, if the at least one object is determined as existing in the master hash registry;

determine whether the invalid hash code and the valid hash code exist in the master hash registry, if the at least one object is determined as existing in the master hash registry; and

determine a customization status for the at least one object including setting the customization status to indicate that the at least one object has not been modified if both the invalid hash code and the valid hash code are present in the master hash registry.

12. The non-transitory computer-readable medium of claim 11 , wherein the determine a customization status for the at least one object includes setting the customization status to Compatibly Modified if the invalid hash code is present in the master hash registry and the valid hash code is not present in the master hash registry.

13. The non-transitory computer-readable medium of claim 11 , wherein the determine a customization status for the at least one object includes setting the customization status to Incompatibly Modified if the invalid hash code is determined not to be present in the master hash registry.

14. A system for detecting customization of an application having at least one object executing on a computer, the system comprising:

at least one processor;

a non-transitory computer-readable medium including instructions, when executed by the at least one processor, are configured to implement a customization detection unit,

the customization detection unit configured to load at least a portion of a master hash registry of an application into a memory,

the customization detection unit configured to load at least one object from the application into the memory, the at least one object including at least one valid hash property and at least one invalid hash property, the at least one valid hash property being one or more properties that, if changed, are compatible with the application, the at least one invalid hash property being one or more properties that, if changed, are incompatible with the application,

the customization detection unit configured to compare the at least one object against the master hash registry including determining whether the at least one object exists in the master hash registry,

the customization detection unit configured to calculate an invalid hash code for the at least one object based on the at least one invalid hash property, and a valid hash code for the at least one object based on the at least one valid hash property, if the at least one object is determined as existing in the master hash registry;

the customization detection unit configured to determine whether the invalid hash code and the valid hash code exist in the master hash registry, if the at least one object is determined as existing in the master hash registry,

the customization detection unit configured to determine a customization status for the at least one object including setting the customization status to indicate that the at least one object has not been modified if both the invalid hash code and the valid hash code are present in the master hash registry.

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 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 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 →