Common Manageability Programming Interface
Encyclopedia
The Common Manageability Programming Interface (CMPI) is an open standard
that defines a programming interface
between a CIM
server and CIM providers.
and is implementation neutral.
The CMPI programming interface is defined for the C programming language. Its C header files
are enabled for C++
. In addition, there are C++ utility macros that allow accessing the interface in a way that is more typical to C++.
COM API, OpenPegasus C++ API, OpenWBEM C++ API, etc.). CMPI allows CIM providers to be developed that are mostly or completely agnostic to the type of CIM server they are being used with. Therefore, CMPI providers can be deployed across a variety of operating environments with no or minimal adaptation work. This protects the investment in these CIM providers.
to The Open Group
in 2003. Along with the submission, an implementation was conducted as part of the SBLIM project.
In late 2004, CMPI V1.0 was released by The Open Group as a Technical Standard.
The current version of CMPI is V2.0 and was released in late 2006.
Open standard
An open standard is a standard that is publicly available and has various rights to use associated with it, and may also have various properties of how it was designed . There is no single definition and interpretations vary with usage....
that defines a programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
between a CIM
Common Information Model (computing)
The Common Information Model is an open standard that defines how managed elements in an IT environment are represented as a common set of objects and relationships between them...
server and CIM providers.
Overview
The CMPI standard is defined by the CMPI Working Group of The Open GroupThe Open Group
The Open Group is a vendor and technology-neutral industry consortium, currently with over three hundred member organizations. It was formed in 1996 when X/Open merged with the Open Software Foundation...
and is implementation neutral.
The CMPI programming interface is defined for the C programming language. Its C header files
Header file
Some programming languages use header files. These files allow programmers to separate certain elements of a program's source code into reusable files. Header files commonly contain forward declarations of classes, subroutines, variables, and other identifiers...
are enabled for C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. In addition, there are C++ utility macros that allow accessing the interface in a way that is more typical to C++.
Benefits
Before the introduction of CMPI, each CIM server implementation had its own specific programming interface for CIM providers (e.g. WMIWindows Management Instrumentation
Windows Management Instrumentation is a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification...
COM API, OpenPegasus C++ API, OpenWBEM C++ API, etc.). CMPI allows CIM providers to be developed that are mostly or completely agnostic to the type of CIM server they are being used with. Therefore, CMPI providers can be deployed across a variety of operating environments with no or minimal adaptation work. This protects the investment in these CIM providers.
Standards development
The original input to the CMPI standard was submitted by IBMIBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
to The Open Group
The Open Group
The Open Group is a vendor and technology-neutral industry consortium, currently with over three hundred member organizations. It was formed in 1996 when X/Open merged with the Open Software Foundation...
in 2003. Along with the submission, an implementation was conducted as part of the SBLIM project.
In late 2004, CMPI V1.0 was released by The Open Group as a Technical Standard.
The current version of CMPI is V2.0 and was released in late 2006.
List of products or projects supporting CMPI
Note: The following list is likely incomplete. Please help to complete the list.CIM servers
- OpenPegasus
- Small Footprint CIM Broker (SFCB)
- WBEM Solutions C WBEM Server
- WBEM Solutions J WBEM Server
- OpenWBEM
CIM providers
- SBLIM CMPI providers for Linux
- XenSource CMPI providers for Xen
- CMPI providers for libvirt/KVM
- CIM support on IBM z/OS 1.10
- CIM support on IBM AIX 6.1
Tools
- Extensible CIM UML Tooling Environment (ECUTE)
- CIMPLE Provider Development Environment (SimpleWBEM)
- Konkret CMPI
- OpenDRIM C++ Template
CMPI 2.0 Standard
CMPI 1.0 Standard
- CMPI 1.0 Specification
- CMPI 1.0 Technical Corrigendum 1
- CMPI 1.0 Technical Corrigendum 2
- CMPI 1.0 header files on SBLIM project