Merging and ignoring configuration items
Aspects of the present disclosure provide techniques that determine whether each configuration item in a plurality of configuration items is associated with every other configuration item therein. If each configuration item in the plurality of configuration items is associated with every other configuration item therein, the plurality of configuration items are merged such that each attribute associated therewith is associated with one configuration item. If each configuration item in the plurality of configuration items is not associated with every other configuration item therein, it is determined whether at least one configuration item may be ignored.
Latest Hewlett Packard Patents:
A configuration management database (“CMDB”) is a repository of information related to a system, such as an information technology (“IT”) system. A CMDB includes details of configuration items (“CIs”), which are structural units thereof. A CI may be an abstract data object that represents an entity belonging to the system. The entity may be an IT resource, such as a server, a database, or other hardware and software elements.
An entity of a computer system may have various attributes associated therewith. For example, if an entity represents server hardware, an attribute may be an operating system attribute of UNIX, an IP address attribute of 164.2.3.4, and a MAC address attribute of 35938a48-a6f5-4865-b996-b68c2ffd01bb. These attributes may be reflected in the CI representing the entity. Some attributes may be suitable for identifying an instance of a computer system in the short term. Over the long term, however, computer systems may change. Components of a computer system may be upgraded, replaced, removed, added or otherwise altered, until the computer system has few or no original components left. As components are replaced or upgraded, attributes of the computer system also change, which may be referred to as “system drift.”
As noted above, CIs and attributes associated therewith may change overtime. As these changes take place, redundant CIs may become widespread throughout the CMDB. Such CIs may actually represent a single entity, but may have been altered or entered in the CMDB so as to represent separate entities. Furthermore, some CIs may represent an entity that may have been removed or replaced and no longer exists. Each redundant CI may have different sets of associated attributes. For example, one CI may be associated with an operating system of “Microsoft® Windows® Server 2003 Enterprise Edition service Pack 1” and an IP address of “128.50.15.45.” At the same time, another CI representing the same entity may be associated with “Microsoft® Windows® Server 2003 Enterprise Edition service Pack 1” and an IP address of “128.50.15.40.” While both CIs have slightly different attributes, they may still represent the same entity. As such, it is desirable to detect such redundant CIs and consolidate them so as to maintain an efficient and accurate representation of CIs in the CMDB. Such arrangement may result in faster access to the CMDB and faster processing of the CIs stored therein. Furthermore, administrators relying on the information stored in the CMDB can be rest assured that the information therein is correct.
In view of the foregoing, aspects of the present disclosure provide a system and method that determine whether each CI in a plurality of CIs is associated with every other CI therein. If each CI in the plurality of CIs is associated with every other CI therein, the plurality of CIs may be merged such that each attribute associated therewith is associated with one CI. In another example, if each CI in the plurality of CIs is not associated with every other CI therein, it may be determined whether at least one newly received CI represents a non-existing entity. If it is determined that at least one newly received CI represents a non-existing entity, the at least one newly received CI may be flagged such that it is subsequently ignored. In a further example, it may also be determined whether at least one stored CI stored in the CMDB represents a non-existing entity. If the at least one stored CI represents the non-existing entity, the at least one stored CI may be removed from the CMDB.
Computer apparatus 101 may be at one node of a network, which may be a local area network (“LAN”), wide area network (“WAN”), the Internet, etc. Such a network and intervening computer devices thereof may also use various protocols including virtual private networks, local Ethernet networks, private networks using communication protocols proprietary to one or more companies, cellular and wireless networks, instant messaging, HTTP and SMTP, and various combinations of the foregoing.
Memory 112 may store merge and ignore instructions 114, which may be retrieved and executed by processor 110. In one example, memory 112 may be a random access memory (“RAM”) device. Alternatively, memory 112 may comprise other types of devices, such as memory provided on floppy disk drives, tapes, and hard disk drives, or other storage devices that may be directly or indirectly coupled to computer apparatus 101. Memory 112 may also include any combination of one or more of the foregoing and/or other devices as well. The processor 110 may be any number of well known processors, such as processors from Intel® Corporation. In another example, the processor may be a dedicated controller for executing operations, such as an application specific integrated circuit (“ASIC”). Although
Memory 112 may also store CMDB 116. The data stored in CMDB 116 may be retrieved, stored, or modified by processor 110. CMDB 116 may include CIs that each represents an entity belonging to a system. Although the architecture of CMDB 116 is not limited to any particular database structure or product, the data may be stored in computer registers, in a relational database as tables having a plurality of different columns and records, XML documents or flat files. In another example, CMDB 116 may be a data stream. The data stored in CMDB 116 may comprise any information sufficient to identify the relevant data, such as numbers, descriptive text, proprietary codes, references to data stored in other areas of the same memory or different memories (including other network locations) or information that is used by a function to calculate the relevant data.
Computer apparatus 101 may be configured as a database server. In this regard, computer apparatus 101 may be capable of communicating data with a client computer such that computer apparatus 101 uses a network to transmit information for presentation to a user of a remote computer. Accordingly, computer apparatus 101 may be used to obtain database information for display via, for example, a web browser executing on a remote computer. Computer apparatus 101 may also comprise a plurality of computers, such as a load balancing network, that exchange information with different computers of a network for the purpose of receiving, processing, and transmitting data to multiple client computers. In this instance, the client computers will typically still be at different nodes of the network than any of the computers comprising computer apparatus 101.
Merge and ignore instructions 114 may comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor(s). In that regard, the terms “instructions,” “modules” and “programs” may be used interchangeably herein. The instructions may be stored in any computer language or format, such as in object code or modules of source code. Furthermore, it is understood that the instructions may be implemented in the form of hardware, software, or a combination of hardware and software and that the examples herein are merely illustrative. Functions, methods and routines of merge and ignore instructions 114 are explained in more detail below.
In one example, merge and ignore instructions 114 may be realized in any non-transitory computer-readable media for use by or in connection with an instruction execution system such as computer apparatus 101, an ASIC or other system that can fetch or obtain the logic from non-transitory computer-readable media and execute the instructions contained therein. “Non-transitory computer-readable media” may be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Non-transitory computer readable media may comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable non-transitory computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a read-only memory (“ROM”), an erasable programmable read-only memory, or a portable compact disc.
A CI may be associated with at least one attribute and each attribute may be assigned a value. By way of example, if a CMDB represents a computer networking system, a CI stored therein may be associated with a number of attributes commonly found in networking systems, such as an operating system, a network address (e.g., IP, MAC), a hardware identifier (e.g., of a motherboard), a host name, and so forth. These attributes may have values such as “Windows NT,” “1.2.3.5,” “sar4f43se43fd3,” and “Sally's computer,” respectively. As noted above, many CIs stored in the CMDB may become redundant over time. The presence of redundant CIs in the CMDB may result in slower access thereto and may lead to an inaccurate representation of the system.
By way of example, a set of attributes that may be included for comparison in Identification Criteria may include serial number, MAC address (to satisfy a contain operator), host name, and IP address (to satisfy a contain operator). In another example, a sequence of attributes may be included for comparison in Match Resolution Criteria. One illustrative sequence may be serial number first, followed by MAC address (again, to satisfy a contain operator), followed by host name. Merge and ignore instructions 114, if executed, may cause the processor to determine whether each CI in a plurality of CIs can be associated with another CI therein based on the predetermined criteria. A given CI in the plurality of CIs may meet the predetermined criteria when at least one attribute associated therewith is equivalent to at least one attribute associated with another CI therein. A CI may have any number of attributes with values that may be compared to values of corresponding attributes of other CIs. For example, a first attribute of a CI may be an IP address. Thus, comparing a first attribute of one CI to a corresponding first attribute of another CI may include comparing the IP address of the one CI to the corresponding IP address of the other CI. Comparing attributes of CIs may include comparing values of the attributes in order to determine whether there is a match. A “match” may occur where the attribute values are equal, where they satisfy a contain operator, or where they satisfy some other operator.
Returning back to
One working example of a system and method to merge or ignore CIs is illustrated in
Referring back to
Referring back to
Referring back to
Advantageously, the above-described system and method merges or ignores redundant CIs in the CMDB. In this regard, CMDB data may be arranged efficiently and may be more readily accessed. Furthermore, administrators relying on the CMDB can be rest assured that the information stored therein is an accurate representation of the system.
Although the disclosure herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles of the disclosure. It is therefore to be understood that numerous modifications may be made to the examples and that other arrangements may be devised without departing from the spirit and scope of the disclosure as defined by the appended claims. Furthermore, while particular processes are shown in a specific order in the appended drawings, such processes are not limited to any particular order unless such order is expressly set forth herein. Rather, processes may be performed in a different order or concurrently, and steps may be added or omitted.
Claims
1. A system comprising:
- a configuration management database to store configuration items, each configuration item including at least one attribute comprising an Internet Protocol (IP) address of an entity in a computer information system;
- at least one processor to: determine whether each configuration item in a plurality of configuration items is associated with every other configuration item in the plurality of configuration items; in response to determining that each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items, merge the plurality of configuration items such that the attributes of the plurality of configuration items are associated with one configuration item; in response to determining that each configuration item in the plurality of configuration items is not associated with every other configuration item in the plurality of configuration items: in response to determining that a newly received configuration item including an IP address and that is not part of the configuration management database represents a non-existing entity, flag the newly received configuration item such that the newly received configuration item is subsequently ignored; and in response to determining that a stored configuration item in the configuration management database represents a non-existing entity, remove the stored configuration item from the configuration management database.
2. The system of claim 1, wherein the at least one processor is to determine whether each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items based on a predetermined criteria.
3. The system of claim 2, wherein a given configuration item in the plurality of configuration items meets the predetermined criteria responsive to at least one attribute of the given configuration item being equivalent to at least one attribute of a second configuration item in the plurality of configuration items.
4. The system of claim 3, wherein the at least one processor is to represent each configuration item in the plurality of configuration items as a node in a graph of nodes.
5. The system of claim 4, wherein in response to determining that the given configuration item in the plurality of configuration items meets the predetermined criteria, the at least one processor is to link a node representing the given configuration item to another node representing the second configuration item.
6. The system of claim 1, wherein the plurality of configuration items comprise newly received configuration items and configuration items stored in the configuration management database.
7. The system of claim 1, wherein the newly received configuration item represents a non-existing entity responsive to the newly received configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
8. The system of claim 1, wherein the stored configuration item represents a non-existing entity responsive to the stored configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
9. The system of claim 1, wherein determining whether the newly received configuration item represents a non-existing entity comprises determining whether the newly received configuration item represents an entity that previously existed in the computer information system but has been removed.
10. A non-transitory computer readable medium storing instructions which upon execution cause at least one processor to:
- associate each configuration item to at least one other configuration item in a plurality of configuration items based on a predetermined criteria, each configuration item in the plurality of configuration items representing an entity of an information technology system and including at least one attribute comprising an Internet Protocol (IP) address of the entity, wherein a portion of the plurality of configuration items are stored in a configuration management database;
- determine whether each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items;
- in response to determining that each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items, merge the plurality of configuration items such that attributes of the plurality of configuration items are associated with one configuration item;
- in response to determining that each configuration item in the plurality of configuration items is not associated with every other configuration item in the plurality of configuration items: in response to determining that a newly received configuration item including an IP address and that is not part of the configuration management database represents a non-existing entity, flag the newly received configuration item such that the newly received configuration item is subsequently ignored; and in response to determining that a stored configuration item in the configuration management database represents a non-existing entity, remove the stored configuration item from the configuration management database.
11. The non-transitory computer readable medium of claim 10, wherein a given configuration item in the plurality of configuration items meets the predetermined criteria responsive to at least one attribute of the given configuration item being equivalent to at least one attribute of a second configuration item in the plurality of configuration items.
12. The non-transitory computer readable medium of claim 11, wherein the instructions upon execution further cause the at least one processor to represent each configuration item in the plurality of configuration items as a node in a graph of nodes.
13. The non-transitory computer readable medium of claim 12, wherein in response to determining that the given configuration item meets the predetermined criteria, the instructions upon execution further cause the at least one processor to link a node representing the given configuration item with another node representing the second configuration item.
14. The non-transitory computer readable medium of claim 10, wherein the newly received configuration item represents a non-existing entity responsive to the newly received configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
15. The non-transitory computer readable medium of claim 10, wherein the stored configuration item represents a non-existing entity responsive to the stored configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
16. The non-transitory computer readable medium of claim 10, wherein determining whether the newly received configuration item represents a non-existing entity comprises determining whether the newly received configuration item represents an entity that previously existed in the system but has been removed.
17. A method comprising:
- associating each configuration item in a plurality of configuration items to at least one other configuration item based on a predetermined criteria, each configuration item in the plurality of configuration items representing an entity of a computer information system and including at least one attribute comprising an Internet Protocol (IP) address of the entity, wherein a portion of the plurality of configuration items are stored in a configuration management database;
- determining, by a system including a processor, whether each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items;
- in response to the determining that each configuration item in the plurality of configuration items is associated with every other configuration item in the plurality of configuration items, merging, by the system, the plurality of configuration items such that attributes of the plurality of configuration items are associated with one configuration item;
- in response to determining that each configuration item in the plurality of configuration items is not associated with every other configuration item in the plurality of configuration items: in response to determining that a newly received configuration item including an IP address and that is not part of the configuration management database represents a non-existing entity, flagging, by the system, the newly received configuration item such that the newly received configuration item is subsequently ignored; and in response to determining that a stored configuration item in the configuration management database represents a non-existing entity, removing, by the system, the stored configuration item from the configuration management database.
18. The method of claim 17, wherein a given configuration item in the plurality of configuration items meets the predetermined criteria responsive to at least one attribute associated with the given configuration items being equivalent to at least one attribute associated with another configuration item in the plurality of configuration items.
19. The method of claim 17, wherein the plurality of configuration items comprise newly received configuration items and configuration items stored in the configuration management database.
20. The method of claim 17, wherein the newly received configuration item represents a non-existing entity responsive to the at least one newly received configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
21. The method of claim 17, wherein the stored configuration item represents a non-existing entity responsive to the at least one stored configuration item being associated with more configuration items in the plurality of configuration items than any other configuration item in the plurality of configuration items.
7926031 | April 12, 2011 | Faihe et al. |
20010011265 | August 2, 2001 | Cuan et al. |
20060242207 | October 26, 2006 | Tsyganskiy et al. |
20090144319 | June 4, 2009 | Panwar et al. |
20090313219 | December 17, 2009 | Gupta et al. |
20100161577 | June 24, 2010 | Morozov |
20100293204 | November 18, 2010 | Baker et al. |
20110016368 | January 20, 2011 | Ayachitula et al. |
20110238637 | September 29, 2011 | Morozov et al. |
20110295898 | December 1, 2011 | Grabarnik et al. |
- About Merging Configuration Items, www.Symantec.com, Mar. 22, 2011, http://www.symantec.com/business/support/index?page=content&id=HOWTO45780.
Type: Grant
Filed: Mar 7, 2012
Date of Patent: Apr 28, 2015
Patent Publication Number: 20130238666
Assignee: Hewlett-Packard Development Company, L.P. (Houston, TX)
Inventors: David Azriel (Tel Aviv), Nimrod Nahum (Netzaney), Emil Shmul (Rishon Le-Zion)
Primary Examiner: Yuk Ting Choi
Application Number: 13/413,790
International Classification: G06F 17/30 (20060101); G06F 9/44 (20060101);