The Common Manageability Programming Interface (CMPI, also called ''Common Management Programming Interface'') is an
open standard
An open standard is a standard that is openly accessible and usable by anyone. It is also a prerequisite to use open license, non-discrimination and extensibility. Typically, anybody can participate in the development. There is no single definitio ...
that defines a
programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes ho ...
between a
WBEM server and WBEM providers.
Overview
The CMPI standard is defined by the CMPI Working Group of
The Open Group
The Open Group is a global consortium that seeks to "enable the achievement of business objectives" by developing "open, vendor-neutral technology standards and certifications." It has over 840 member organizations and provides a number of servi ...
and is implementation neutral.
The CMPI programming interface is defined for the
C programming language
''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
. Its C
header file
Many programming languages and other computer files have a directive, often called include (sometimes copy or import), that causes the contents of the specified file to be inserted into the original file. These included files are called copybooks ...
s are enabled for
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significa ...
. In addition, there are C++
utility macros that allow accessing the interface in a way that is more typical to C++.
Each release of the cmpi specification is accompanied by a set of C-language header files that represent the implementation of the interface. Normally these files are incorporated into each of the WBEM servers that provide this interface. However, the header files are also available independently for each release.
As of CMPI 2.1, these header files are available on GitHub in the CMPI GitHub Project. Also as of CMPI 2.1 the CMIP interface documentation is also available as a GitHub website at CMPI API documentation on GitHub.
Benefits
Before the introduction of CMPI, each WBEM server implementation had its own specific programming interface for CIM providers (e.g.
WMI 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 WBEM 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
IBM to
The Open Group
The Open Group is a global consortium that seeks to "enable the achievement of business objectives" by developing "open, vendor-neutral technology standards and certifications." It has over 840 member organizations and provides a number of servi ...
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. A major update (V2.0 was released in late 2006). A backward compatible but significant extension of the specification was released in February 2016.
The current version of CMPI is V2.1 (released February 2016).
List of products or projects supporting CMPI
Note: The following list is likely incomplete. Please help to complete the list.
WBEM servers
* OpenPegasus
* Small Footprint CIM Broker (SFCB)
* WS J WBEM Server
* OpenWBEM
* ESXi CIM broker
WBEM 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
See also
*
CIM
CIM or Cim may refer to:
Businesses and organizations Professional organizations
* Canadian Institute of Mining, Metallurgy and Petroleum, a professional organisation
* The Chartered Institute of Marketing, a professional organisation
Relig ...
References
External links
CMPI Working Group at TOG
{{DMTF Standards
Computer standards
Open Group standards
Open standards