IP Library Granted Patent US 10,671,593
Granted Patent B2
US 10,671,593 · App. 14/041,973 · Granted Jun 2, 2020

Normalization engine to manage configuration management database integrity

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 10,671,593
App. No.
14/041,973
Granted
Jun 2, 2020
Kind
B2
Abstract

Data is often populated into Configuration Management Databases (CMDBs) from different sources. Because the data can come from a variety of sources, it may have inconsistencies—and may even be incomplete. A Normalization Engine (NE) may be able to automatically clean up the incoming data based on certain rules and knowledge. In one embodiment, the NE takes each Configuration Item (CI) or group of CIs that are to be normalized and applies a rule or a set of rules to see if the data may be cleaned up, and, if so, updates the CI or group of CIs accordingly. In particular, one embodiment may allow for the CI's data to be normalized by doing a look up against a Product Catalog and/or an Alias Catalog. In another embodiment, the NE architecture could be fully extensible, allowing for the creation of custom, rules-based plug-ins by users and/or third parties.

Claims (75)

1. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium and comprising instructions that, when executed by at least one processor, are configured to:

communicate with one or more resources via a network;

receive, at a configuration management database (CMDB), incoming data from the one or more resources, wherein the incoming data represents a Configuration Item (CI) having an attribute value; and

normalize at least two attribute values of the CI by a process that changes different variations of a same attribute value to a preferred value, wherein the process includes:

searching an alias catalog for the attribute value of the CI, wherein the alias catalog contains information for multiple products and preferred representations of the products in the CMDB including a listing of attributes with each attribute having one or more attribute values that each map to a preferred value with the preferred value being a same value for the one or more attribute values,

responsive to finding the attribute value of the CI in the alias catalog, changing the attribute value of the CI to the preferred value in the CMDB and changing an attribute value for a different attribute of the CI to a preferred value for the different attribute of the CI in the CMDB, and

responsive to not finding the attribute value of the CI in the alias catalog, not changing the attribute value of the CI and determining whether or not to create an entry for the CI.

2. The computer program product of claim 1 , wherein the one or more resources include one or more data providers including one or more external data providers.

3. The computer program product of claim 1 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

apply one or more rules stored in a repository to the incoming data received from the one or more resources responsive to not finding an entry for the attribute value in the alias catalog.

4. The computer program product of claim 3 , wherein the rules include normalization rules, and the repository includes a knowledge base.

5. The computer program product of claim 1 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to apply a normalization rule to the attribute value of the CI to identify an inconsistency in the attribute value, and take a remedial action responsive to identifying the inconsistency, wherein the process of applying the normalization rule further comprises:

selecting one or more Configuration Items (CIs) from the one or more resources for normalizing through a discovery process,

selecting one or more normalization rules from one or more knowledge bases, and

applying the one or more selected normalization rules to the one or more selected CIs to determine if there are any inconsistencies between the one or more selected CIs and the one or more selected normalization rules.

6. The computer program product of claim 5 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

normalize the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules.

7. The computer program product of claim 5 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

for at least one of the one or more selected CIs, when the at least one inconsistency is determined between the one or more selected CIs and the one or more selected normalization rules, normalize the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules before storing the at least one of the one or more selected CIs in a repository.

8. The computer program product of claim 1 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

identify one or more duplicate Configuration Items (CIs) from the one or more resources through a discovery process.

9. The computer program product of claim 1 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

define the incoming data to normalize, the incoming data including one or more of classes, attributes, entities, and collections of entities to normalize.

10. The computer program product of claim 1 , the instructions further comprising instructions that, when executed by the at least one processor, are configured to:

store the incoming data in a repository, and

change the attribute value in the CI to the preferred value before storing the incoming data in the repository responsive to finding an entry for the attribute value in the alias catalog.

11. A computer system including instructions stored on a non-transitory computer-readable medium and executable by at least one processor, the system comprising:

one or more resources configured to store data; and

a normalization engine configured to cause the at least one processor to:

communicate with the one or more resources via a network;

receive, at a configuration management database (CMDB), incoming data from the one or more resources, wherein the incoming data represents a Configuration Item (CI) having an attribute value; and

normalize at least two attribute values of the CI by a process that changes different variations of a same attribute value to a preferred value, wherein the process includes:

searching an alias catalog for the attribute value of the CI, wherein the alias catalog contains information for multiple products and preferred representations of the products in the CMDB including a listing of attributes with each attribute having one or more attribute values that each map to a preferred value with the preferred value being a same value for the one or more attribute values,

responsive to finding the attribute value of the CI in the alias catalog, changing the attribute value of the CI to the preferred value in the CMDB and changing an attribute value for a different attribute of the CI to a preferred value for the different attribute of the CI in the CMDB, and

responsive to not finding the attribute value of the CI in the alias catalog, not changing the attribute value of the CI and determining whether or not to create an entry for the CI.

12. The system of claim 11 , wherein the one or more resources include one or more data providers including one or more external data providers.

13. The system of claim 11 , wherein the normalization engine is configured to cause the at least one processor to:

apply one or more normalization rules stored in a knowledge base to the incoming data received from the one or more resources responsive to not finding an entry for the attribute value in the alias catalog.

14. The system of claim 11 , wherein the normalization engine is configured to cause the at least one processor to apply a normalization rule to the attribute value of the CI to identify an inconsistency in the attribute value, and take a remedial action responsive to identifying the inconsistency, wherein the process of applying the normalization rule further comprises causing the at least one processor to:

select one or more Configuration Items (CIs) from the one or more resources for normalizing through a discovery process,

select one or more normalization rules from one or more knowledge bases, and

apply the one or more selected normalization rules to the one or more selected CIs to determine if there are any inconsistencies between the one or more selected CIs and the one or more selected normalization rules.

15. The system of claim 14 , wherein the normalization engine is configured to cause the at least one processor to:

normalize the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules.

16. The system of claim 14 , wherein the normalization engine is configured to cause the at least one processor to:

for at least one of the one or more selected CIs, when the at least one inconsistency is determined between the one or more selected CIs and the one or more selected normalization rules, normalize the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules before storing the at least one of the one or more selected CIs in a repository.

17. The system of claim 11 , wherein the normalization engine is further configured to cause the at least one processor to:

define the incoming data to normalize, the incoming data including one or more of classes, attributes, entities, and collections of entities to normalize.

18. The system of claim 11 , wherein the normalization engine is further configured to cause the at least one processor to:

store the incoming data in a repository, and

change the attribute value in the CI to the preferred value before storing the incoming data in the repository responsive to finding an entry for the attribute value in the alias catalog.

19. A computer server comprising at least one element of hardware, the computer server programmed with instructions to perform a method, the method comprising:

communicating with one or more resources via a network;

receiving, at a configuration management database (CMDB), incoming data from the one or more resources, wherein the incoming data represents a Configuration Item (CI) having an attribute value; and

normalizing at least two attribute values of the CI by a process that changes different variations of a same attribute value to a preferred value, wherein the process includes:

searching an alias catalog for the attribute value of the CI, wherein the alias catalog contains information for multiple products and preferred representations of the products in the CMDB including a listing of attributes with each attribute having one or more attribute values that each map to a preferred value with the preferred value being a same value for the one or more attribute values,

responsive to finding the attribute value of the CI in the alias catalog, changing the attribute value of the CI to the preferred value in the CMDB and changing an attribute value for a different attribute of the CI to a preferred value for the different attribute of the CI in the CMDB, and

responsive to not finding the attribute value of the CI in the alias catalog, not changing the attribute value of the CI and determining whether or not to create an entry for the CI.

20. The computer server of claim 19 , wherein the method further comprises applying a normalization rule to the attribute value of the CI to identify an inconsistency in the attribute value, and take a remedial action responsive to identifying the inconsistency, wherein the process of applying the normalization rule further comprises:

selecting one or more Configuration Items (CIs) from the one or more resources for normalizing through a discovery process,

selecting one or more normalization rules from one or more knowledge bases, and

applying the one or more selected normalization rules to the one or more selected CIs to determine if there are any inconsistencies between the one or more selected CIs and the one or more selected normalization rules.

21. The computer server of claim 20 , wherein the method further comprises:

normalizing the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules.

22. The computer server of claim 20 , wherein the method further comprises:

for at least one of the one or more selected CIs, when the at least one inconsistency is determined between the one or more selected CIs and the one or more selected normalization rules, normalizing the incoming data related to the one or more selected CIs from the one or more resources by changing attribute values in the one or more selected CIs to preferred values using the one or more selected normalization rules before storing the at least one of the one or more selected CIs in a repository.

23. The computer server of claim 19 , wherein the method further comprises:

storing the incoming data in a repository, and

changing the attribute value in the CI to the preferred value before storing the incoming data in the repository responsive to finding an entry for the attribute value in the alias catalog.

24. The computer program product of claim 20 , wherein the process to normalize the attribute values performs the step of applying a normalization rule prior to the step of searching an alias catalog.

25. The computer program product of claim 1 , wherein the attribute value of the CI is a product name, manufacturer name, version number, patch number, type or item.

26. The system of claim 14 , wherein the process to normalize the attribute values performs the step of applying a normalization rule prior to the step of searching an alias catalog.

27. The system of claim 11 , wherein the attribute value of the CI is a product name, manufacturer name, version number, patch number, type or item.

28. The computer server of claim 20 , wherein the process to normalize the attribute values performs the step of applying a normalization rule prior to the step of searching an alias catalog.

29. The computer server of claim 19 , wherein the attribute value of the CI is a product name, manufacturer name, version number, patch number, type or item.

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 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 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 Oct 2, 2013
From: RANGARAJAN, GOVINDARAJAN; WALLACE, DARIUS; KUMAR, NARAYAN; MUELLER, DOUGLAS
To: BMC SOFTWARE, INC.
Reel/Frame 031326/0009 →