IP Library Granted Patent US 10,795,643
Granted Patent B2
US 10,795,643 · App. 15/476,704 · Granted Oct 6, 2020

System and method for resource reconciliation in an enterprise management system

Inventors: Narayan Kumar (Santa Clara, CA); Douglas Mueller (Palo Alto, CA); Richard Mayfield (Pleasanton, CA)
Assignee: BMC Software, Inc.
G06F7/32G06F7/14G06F7/16G06F7/20G06F7/36G06F16/22G06F16/24578H04L41/0893H04L41/12H04L41/0233
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,795,643
App. No.
15/476,704
Granted
Oct 6, 2020
Kind
B2
Abstract

A method to reconcile multiple instances of a single computer resource identified by resource discovery operations includes: (1) accessing information describing one or more resources; (2) identifying, via the accessed information, at least one resource that has been detected or discovered by at least two of the discovery operations; and (3) merging attributes associated with the identified resource from each of the at least two discovery operations into a single, reconciled resource object. Illustrative “resources” include, but are not limited to, computer systems, components of computer systems, data storage systems, switches, routers, memory, software applications (e.g., accounting and database applications), operating systems and business services (e.g., order entry or change management and tracking services).

Claims (70)

1. A method to reconcile multiple instances of a single resource object using a reconciliation engine of a configuration management database (CMDB), the method comprising:

receiving, via an application programming interface (API), a plurality of unreconciled resource objects from one or more data sources, each of the plurality of unreconciled resource objects representing a component of a computer system, the component of the computer system including a device, switch, router, memory, software application, or operating system;

selecting, by the reconciliation engine, an unreconciled resource object from the plurality of unreconciled resource objects;

querying, by the reconciliation engine, the CMDB to determine whether the unreconciled resource object matches with at least one resource object stored in the CMDB according to at least one of a plurality of identification rules, each of the plurality of identification rules specifying which attributes are considered when determining a match during a reconciliation process, the plurality of identification rules including a first identification rule and a second identification rule, wherein the matching includes applying the first identification rule and the second identification rule in a defined order such that, when the first identification rule does not result in a match during the reconciliation process, the second identification rule is applied during the reconciliation process;

creating, by the reconciliation engine, a new reconciled resource object in the CMDB;

merging, by the reconciliation engine, the unreconciled resource object and the at least one resource object into the new reconciled resource object according to at least one merging rule, the unreconciled resource object and the at least one resource object being different instances of a common resource object; and

storing, by the reconciliation engine, the new reconciled resource object in a reconciled dataset of the CMDB.

2. The method of claim 1 , further comprising:

assigning, by the reconciliation engine, a reconciliation identifier to the new reconciled resource object, the reconciliation identifier being a reconciliation identifier that was assigned to the at least one resource object.

3. The method of claim 1 , wherein the unreconciled resource object is from a first source, wherein the matching includes matching, by the reconciliation engine, the unreconciled resource object from the first source with a resource object from a second source and a resource object from a third source.

4. The method of claim 1 , wherein the first identification rule specifies a combination of attributes when determining a match.

5. The method of claim 1 , wherein the matching includes:

determining, by the reconciliation engine, that the unreconciled resource object includes at least one sub-object; and

querying, by the reconciliation engine, the CMDB to determine whether the at least one sub-object matches with another resource object stored in the CMDB.

6. The method of claim 1 , wherein the merging includes:

assigning, by the reconciliation engine, a weight value to an attribute of the unreconciled resource object, and assigning, by the reconciliation engine, a weight value to an attribute of the at least one resource object, the attribute of the unreconciled resource object having a first value, the attribute of the at least one resource object having a second value;

selecting, by the reconciliation engine, one of the first value and the second value based on the assigned weight values; and

associating, by the reconciliation engine, the selected one of the first value and the second value to a corresponding attribute in the new reconciled resource object.

7. The method of claim 6 , wherein the selecting includes selecting the first value when the weight value of the attribute of the unreconciled resource object is higher than the weight value of the attribute of the at least one resource object.

8. The method of claim 1 , wherein the merging includes merging attributes from the unreconciled resource object with attributes of the at least one resource object according to an attribute weight assignment algorithm or an attribute value selection algorithm.

9. A non-transitory computer-readable medium storing executable instructions that, when executed by at least one processor, cause a reconciliation engine to:

receive, via an application programming interface (API) of a configuration management database (CMDB), a plurality of unreconciled resource objects from one or more data sources, each of the plurality of unreconciled resource objects representing a component of a computer system, the component of the computer system including a device, switch, router, memory, software application, or operating system;

select an unreconciled resource object from the plurality of unreconciled resource objects;

query the CMDB to determine whether the unreconciled resource object matches with at least one resource object stored in the CMDB according to at least one of a plurality of identification rules, each of the plurality of identification rules specifying which attributes are considered when determining a match during a reconciliation process, the plurality of identification rules including a first identification rule and a second identification rule, wherein the match operation includes applying the first identification rule and the second identification rule in a defined order such that, when the first identification rule does not result in a match during the reconciliation process, the second identification rule is applied during the reconciliation process;

create a new reconciled resource object in the CMDB;

merge the unreconciled resource object and the at least one resource object into the new reconciled resource object according to at least one merging rule, the unreconciled resource object and the at least one resource object being different instances of a common resource object; and

store the new reconciled resource object in a reconciled dataset of the CMDB.

10. The non-transitory computer-readable medium of claim 9 , wherein the executable instructions cause the reconciliation engine to:

assign a reconciliation identifier to the new reconciled resource object, the reconciliation identifier being a reconciliation identifier that was assigned to the at least one resource object.

11. The non-transitory computer-readable medium of claim 9 , wherein the unreconciled resource object is from a first source, wherein the executable instructions cause the reconciliation engine to match the unreconciled resource object from the first source with a resource object from a second source and a resource object from a third source.

12. The non-transitory computer-readable medium of claim 9 , wherein the first identification also specifies a type of resource object to which the first identification rule applies and a source to which the first identification rule applies.

13. The non-transitory computer-readable medium of claim 9 , wherein the first identification rule specifies first attributes when determining a match, and the second identification rule specifies second attributes when determining a match, the second attributes being different from the first attributes.

14. The non-transitory computer-readable medium of claim 9 , wherein the executable instructions cause the reconciliation engine to:

determine that the unreconciled resource object includes at least one sub-object;

query the CMDB to determine whether the at least one sub-object matches with another resource object stored in the CMDB.

15. The non-transitory computer-readable medium of claim 9 , wherein the executable instructions cause the reconciliation engine to:

assign a weight value to an attribute of the unreconciled resource object, and assign a weight value to an attribute of the at least one resource object, the attribute of the unreconciled resource object having a first value, the attribute of the at least one resource object having a second value;

select one of the first value and the second value based on the assigned weight values;

associate the selected one of the first value and the second value to a corresponding attribute in the new reconciled resource object.

16. The non-transitory computer-readable medium of claim 15 , wherein the first value is selected over the second value when the weight value of the attribute of the unreconciled resource object is higher than the weight value of the attribute of the at least one resource object.

17. A resource management computer system comprising:

a configuration management database (CMDB) configured to store a plurality of resource objects, the plurality of resource objects including configuration items (CIs);

a database application programming interface (API) configured to receive a plurality of unreconciled resource objects from one or more data sources, each of the plurality of unreconciled resource objects representing a component of a computer system, the component of the computer system including a device, switch, router, memory, software application, or operating system; and

a reconciliation engine configured to:

select an unreconciled resource object from the plurality of unreconciled resource objects;

query the CMDB to determine whether the unreconciled resource object matches with at least one resource object stored in the CMDB according to at least one of a plurality of identification rules, each of the plurality of identification rules specifying which attributes are considered when determining a match during a reconciliation process, the plurality of identification rules including a first identification rule and a second identification rule, wherein the match operation includes applying the first identification rule and the second identification rule in a defined order such that, when the first identification rule does not result in a match during the reconciliation process, the second identification rule is applied during the reconciliation process;

assign a reconciliation identifier to the unreconciled resource object that was matched to the at least one resource object, the reconciliation identifier being a reconciliation identifier that was assigned to the at least one resource object;

create a new reconciled resource object in the CMDB;

merge resource objects having the same reconciliation identifier including merging the unreconciled resource object and the at least one resource object into the new reconciled resource object according to an least one merging rule, the unreconciled resource object and the at least one resource object being different instances of a common resource object; and

store the new reconciled resource object in a reconciled dataset of the CMDB.

18. The resource management computer system of claim 17 , wherein the merge operation includes merging attributes of the unreconciled resource object with attributes of the at least one resource object according to an attribute weight assignment algorithm or an attribute value selection algorithm.

19. A method to reconcile multiple instances of a single resource object using a of a configuration management database (CMDB), the method comprising:

receiving, via an application programming interface (API), a plurality of unreconciled resource objects from one or more data sources, each of the plurality of unreconciled resource objects representing a component of a computer system, the component of the computer system including a device, switch, router, memory, software application, or operating system;

selecting, by at least one processor, an unreconciled resource object from the plurality of unreconciled resource objects;

querying, by the at least one processor, CMDB to determine whether the unreconciled resource object matches with at least one resource object stored in the CMDB according to at least one of a plurality of identification rules, each of the plurality of identification rules specifying which attributes are considered when determining a match during a reconciliation process, the plurality of identification rules including a first identification rule and a second identification rule, the matching includes applying the first identification rule and the second identification rule in a defined order such that, when the first identification rule does not result in a match during the reconciliation process, the second identification rule is applied during the reconciliation process;

assigning, by the at least one processor, a reconciliation identifier to the unreconciled resource object that was matched to the at least one resource object, the reconciliation identifier being a reconciliation identifier that was assigned to the at least one resource object;

determining, by the at least one processor, that the unreconciled resource object includes at least one sub-object, the at least one sub-object corresponding to one or more sub-components of the component of the computer system;

querying, by the at least one processor, the CMDB to determine whether the at least one sub-object matches with another resource object stored in the configuration management database;

determining, by the at least one processor, whether there are unselected resource objects to be reconciled;

creating, by the at least one processor, a new reconciled resource object in the CMDB;

selecting, by the at least one processor, a group of resource objects having the same reconciliation identifier in response to the determination that there are no unselected resource objects to be reconciled, wherein the selecting includes selecting the unreconciled resource object and the at least one resource object;

merging, by the at least one processor, attributes from the unreconciled resource object and attributes of the at least one resource object into the new reconciled resource object according to an attribute weight assignment algorithm or an attribute value selection algorithm; and

associating, by the at least one processor, the new reconciled resource object in a reconciled dataset of the CMDB.

20. The method of claim 19 , wherein the merging includes:

assigning, by the at least one processor, a weight value to an attribute of the unreconciled resource object;

assigning, by the at least one processor, a weight value to an attribute of the at least one resource object, the attribute of the unreconciled resource object having a first value, the attribute of the at least one resource object having a second value;

selecting, by the at least one processor, one of the first value and the second value based on the assigned weight values, wherein the selecting includes selecting the first value when the weight value of the attribute of the unreconciled resource object is higher than the weight value of the attribute of the at least one resource object; and

associating, by the at least one processor, the selected one of the first value and the second value to a corresponding attribute in the new reconciled resource object.

21. The method of claim 19 , wherein the first identification rule specifies first attributes to be considered when determining a match, and the second identification rule specifies second attributes to be considered when determining a match, the second attributes being different from the first attributes.

22. The method of claim 19 , wherein the unreconciled resource object is from a first source, wherein the matching includes matching, by the at least one processor, the unreconciled resource object from the first source with a resource object from a second source and a resource object from a third source.

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 Mar 31, 2017
From: KUMAR, NARAYAN; MUELLER, DOUGLAS; MAYFIELD, RICHARD
To: BMC SOFTWARE, INC.
Reel/Frame 041816/0972 →
Continuity (4)
Continuation 14851899 · Sep 11, 2015
Continuation 11204189 · Aug 15, 2005
Provisional Application 60633640 · Dec 6, 2004
Related Publication 20170206061A1 · Jul 20, 2017