CMDB Modeling
Recently, IBM, HP, Fujitsu and BMC launched a CMDB standardization initiative. The goal of this effort is to define a standard allowing the exchange of information between CMDBs. The standardization can happen at different levels, as an API, as an exchange protocol, or a data model.
Lets look at the current state of affairs in that space :
It might look a bit like an alphabet soup, so here is the explanation :
- Sun has a product called N1 Service Provisioning System, which, while not really being a CMDB is able to model applications and associated artifacts in a language called CRML (CenterRun Markup Language). N1 SPS is more like a release management product coupled with a DSL, a Definitive Software Library. This markup language is expressed in XML using XML-Schema.
- Opsware has a CMDB in their Asset Tracking Edition. Opsware is a co-founder of the, now, OASIS TC defining the DCML, the Data Center Markup Language. DCML is based on RDF, the Resource Description Framework. RDF allow the definition of a taxonomy of data center objects and their relationships. DCML was not designed from its inception as a CMDB description model, and is trying to play catchup now.
- BMC is providing a CMDB, Atrium, built on top of a DMTF CIM model. This model could be exported using the WebService / CIM mapping: WS-CIM (now part of the WBEM Infrastructure and Protocols WG).
- CA seem to also use DMTF CIM in their CMDB.
That's for the part about the CMDB vendors. Now, as for the modeling and the repository :
- UML, the Unified Modeling Language could be use to model and specify relationships used in the CMDB. UML is defined by the Object Management Group.
- UML can be exported using XMI, the XML Metadata Interchange format, also defined by the OMG.
- MOF, the MetaObject Facility, defined by the OMG can be rendered by using XMI (Not to confused with the CIM's MOF, which is the Managed Object Format).
- The OMG MOF is a way to export models, and store them, in, for example MDR, the Metadata Repository. This repository can be accessed using JMI, the Java Metadata Interface.
- ebXML registry is an XML repository that can be used to store XML Schemas, this registry is specified under the control of an OASIS TC. ebXML registries can be accessed using JAXR, the Java API for XML Registries. There is some research work going on right now to add RDF/OWL support on top of ebXML.
It will be interesting to see where the new initiative will land in term of technology and standard body.
