Since OpenLMI is based on open industry standards, it is useful to take a closer look at these standards, including the organizations that develop and support them.
Distributed Management Task Force (DMTF, formerly “Desktop Management Task Force”) is an industry organization that develops, maintains and promotes standards for systems management in enterprise IT environments. These standards allow for building systems management infrastructure components in a platform-independent and technology-neutral way. By creating the open industry standards, DMTF helps enable systems management interoperability between IT products from different manufacturers or companies. Full details are available at http://www.dmtf.org.
DMTF was founded in 1992. It is a Standards Development Organization where companies, other organizations and individuals can become members. In 2005, DMTF had more than 3500 participants out of more than 200 organizations and companies (such as AMD, Broadcom, CA, Inc., Cisco, Citrix, EMC, Fujitsu, HP, Huawei, IBM, Intel, Microsoft, Oracle, Red Hat, VMware). The DMTF is organized in working groups where the participants jointly develop and maintain the standards. DMTF has alliances with a number of other organizations and with academia.
The goal of DMTF is to provide an industry standard for managing computer systems and subsystems. In addition to specifying standard data model and communications specifications, the intent is to ensure that implementations of the standard are interoperable – that low level service providers work with multiple management frameworks, that a single framework can call low level service providers from multiple sources, and that implementations of a single low level service provider from different sources provide consistent behavior.
Core of DMTF is the Common Information Model (CIM) – The CIM schema is a conceptual schema that defines how the managed elements in an IT environment (for instance computers or storage area networks) are represented as a common set of objects and relationships between them. CIM is extensible in order to allow product specific extensions to the common definition of these managed elements. CIM uses a model based upon UML to define the CIM Schema. CIM is the basis for most of the other DMTF standards.
The DMTF has specified a number of CIM models addressing storage, servers, services, and other functional domains. Implementations of many of these models, called Service Providers, are available on Linux. In addition to the service providers, there are specifications for communications and language bindings, which are also available on Linux.
CIM providers can be used to provision, configure, manage and monitor hardware, services, and applications.
CIM is typically configured as a distributed service, with a CIM server on a local system talking to CIM clients on other systems.
The primary data models and functions we are interested in are the server centric SMASH (System Management Architecture for Server Hardware) profile and the storage centric SMI-S (Storage Management Initiative Specification). These specifications have been significantly updated over the last few years and are under active development.
The infrastructure is defined through a set of other DMTF specifications that cover object specifications, communications, APIs, API language bindings, security, and other specifications required to define and implement a standard environment.
DMTF Technology Stack
In addition to the CIM object models, there are standards for communication and software development. The major communications interfaces are WBEM (Web Based Enterprise Management), an XML over http/https protocol, and WSMAN.
CIM Providers talk to the outside world through a CIMOM (CIM Object Monitor). OpenLMI uses the OpenPegasus CIMOM. OpenPegasus supports WBEM and CMPI.
While you can work with XML directly, it isn’t easy. WBEM includes a set of language bindings for Python, Java, and C/C++. These language bindings present the CIM objects as native objects – as Python objects for Python, Java objects for Java, and C++ objects for C_++. This greatly simplifies using OpenLMI.
CIM Providers are standardized through the CMPI specification, which is used in OpenLMI. Toolchains are available for developing OpenLMI agents in Python, C, or C++.
The value of the DMTF technology stack is that it provides a common framework for talking to all providers. Since the interface is standardized, it is only necessary to understand the specific commands needed for various tasks.
There is considerable value to the DMTF models, but they are not designed for implementation, at least not on Linux. While the models have great scope and coverage, they have been designed by groups of experts with a strong modeling focus. Further, the intent is that the models should include everything, and any implementations should choose subsets of the complete model. DMTF specifies recommended subsets as profiles.
OpenLMI takes the approach that the OpenLMI models are based on the DMTF models but are not required to exactly match the DMTF models. OpenLMI starts with the DMTF models, derives a subset that is appropriate for the function being addressed, and extends the model as needed to support Linux.
These LMI extensions are clearly identified by using the lmi namespace. In other words, the LMI extensions have a lmi_ prefix.
There is no goal or requirement in OpenLMI to exactly conform to the DMTF models. The goal is to develop a system manageability API that works. Note that this approach is common to all implementations based on DMTF CIM – everyone customizes and extends the standard models to meet their needs.