The following description is presented to enable any person skilled in the art to make and use the invention as claimed and is provided in the context of the particular examples discussed below, variations of which will be readily apparent to those skilled in the art. Accordingly, the claims appended hereto are not intended to be limited by the disclosed embodiments, but are to be accorded their widest scope consistent with the principles and features disclosed herein.
An overlay dataset in accordance with the invention provides an efficient, flexible and scalable mechanism to represent the logical replication (with changes) of one or more prior defined datasets. In one embodiment, an overlay dataset has all the characteristics of any other dataset. On creation, however, an overlay dataset has no instances, elements or records—just a reference to the dataset(s) it is an overlay for. When the overlay dataset is accessed, if the target entity has not been modified from an underlying, base, source or member dataset, or newly added to the overlay dataset, the entity from the underlying dataset is returned. Thus, access of an unmodified entity in an overlay dataset will “read through” the overlay dataset to the underlying dataset to retrieve the target entity. When an entity in one of the overlay dataset's underlying datasets is modified through the overlay dataset (including any associated relationships), that entity is copied or instantiated in the overlay dataset. When such an entity is targeted for access through the overlay dataset, the overlay dataset's copy of the entity is returned. Thus, modified entities “mask out” entries in the underlying dataset(s). It will be recognized that an entity or object may be modified by having one or more of its associated values, attributes or relationships modified or by being designated as deleted. Entities from an underlying dataset designated as deleted in the overlay dataset may be instantiated in the overlay dataset and flagged or marked as deleted. While such entities may be identified during overlay dataset access operations, they are not generally returned (even though they may continue to exist in the underlying dataset). Finally, entities added to the overlay dataset (and do not, therefore, exist in any of its base, source, underlying or member datasets) are accessible through the overlay dataset only. As used herein, the term “entity” indicates a database entry in its most general form. In an object-oriented database, for example, an entity could be an object while in a relational database, an entity could be a record.
Referring to
One of ordinary skill in the art will recognize that in practice a dataset may include thousands or millions of separate entities or objects and that each such object may participate in zero or more relationships with other entities. In addition, overlay datasets may be based on any number of underlying datasets. Accordingly,
Referring to
On this point, it is further noted that an overlay dataset in accordance with the invention is not limited to being comprised of non-overlay (prior art) datasets. Referring to
Referring to
In summary, from an access perspective, an overlay dataset is simply another dataset and can be accessed and updated as such. From a system perspective, an overlay dataset is a façade over one or more specified, underlying or source datasets. Changes made to the overlay dataset occur within the overlay dataset only and do not affect the underlying dataset(s). Read operations directed to the overlay dataset will find entities in the overlay dataset if they exist and in the underlying dataset(s) if no overlay-specific entity exists. Accordingly, overlay datasets in accordance with the invention provide an efficient mechanism for making changes to a an existing dataset without suffering the high processing time and storage overhead associated with prior art copying and versioning techniques. In addition, entities in an underlying, source or base dataset that are not expressly modified in the overlay dataset are inherently synchronized in the overlay dataset. That is, changes to these entities in the underlying datasets are intrinsically visible when using the overlay dataset (unless the entity has been explicitly modified in the overlay dataset).
By way of example, overlay datasets have been implemented in the BMC Atrium™ CMDB product—a configuration management database product. (BMC ATRIUM is a trademark of BMC Software, Inc. of Houston, Tex.) It will be recognized by one of ordinary skill that a configuration management database is a database that contains information about the components in an organization's information system and the relationships between those components. Such components, within the context of a configuration management database, are generally referred to as configuration items. Thus, configuration items are software structures that represent information technology components. Illustrative configuration items represent: software applications, patches and modules; complete computer systems; components within a computer system such as storage units and network switches; people; departments; computer networks; and the relationships between different configuration items.
The BMC Atrium CMDB product utilizes an object-oriented model on a relational database whose elements are defined in terms of a series of objects organized in accordance with a common data model. As shown in Table 1, one embodiment of a dataset object in accordance with the invention includes two attributes that implement the overlay concept. The DataSetType attribute simply identifies a dataset as being an overlay dataset or a non-overlay dataset. The SourceDatasetId identifies the dataset which is the overlay dataset's underlying, base, source or member dataset. In another embodiment, the SourceDatasetId attribute may be a semicolon delimited list of unique dataset identifiers—thereby permitting more than one dataset to be a base, underlying or source dataset. In addition, each object class such as a collection (e.g., an organization), a logical entity (e.g., a business service), a system component (e.g., a storage disk) or system (e.g., an application suite) has a dataset identifier attribute. When a configuration item is instantiated, its dataset identifier attribute is assigned a value that uniquely identifies the dataset to which it belongs. This attribute provides the “glue” which associates individual configuration items with a dataset.
In the illustrative embodiments described above, if any attribute of an entity was modified through an overlay dataset, the entire entity (including its relationships) is replicated into the overlay dataset with the designated changes being made. In other embodiments, however, overlay dataset granularity may be at the attribute or “aggregate entity” level. At the attribute level, only those specific changes to an entity's attributes (including relationships) are replicated into the overlay dataset with all non-modified attributes being retained in the base or underlying dataset's entity. At the aggregate entity level, if any attribute to a specified collection of entities is modified (e.g., a computer system comprising a number of different components, each of which may be associated with an entity/configuration item), the entire collection of entities is replicated into the overlay dataset.
Thus, various changes in the structure as well as in the details of the illustrated operational methods are possible without departing from the scope of the following claims. For example, overlay datasets may be implemented in program code and incorporated in a database management system or configuration management database. Further, acts in accordance with
This application claims priority to the U.S. provisional patent application 60/745,870, entitled “Overlay Dataset,” filed 28 Apr. 2006 and which is hereby incorporated by reference. This application is also related to U.S. patent application Ser. No. 11/204,189, entitled “Resource Reconciliation,” filed 15 Aug. 2005 and which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60745870 | Apr 2006 | US |