Common Manageability Programming Interface

Last updated
Common Manageability Programming Interface
StatusPublished
Year started2004;17 years ago (2004)
Latest versionV2.1
February 2016;5 years ago (2016-02)
Organization The Open Group
Related standards Web-Based Enterprise Management
Domain Application programming interfaces
AbbreviationCMPI
Website www.opengroup.org/tech/management/cmpi/

The Common Manageability Programming Interface (CMPI, also called Common Management Programming Interface [1] ) is an open standard that defines a programming interface between a WBEM server and WBEM providers.

Contents

Overview

The CMPI standard is defined by the CMPI Working Group of The Open Group 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++.

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 in 2003. Along with the submission, an implementation was conducted as part of the SBLIM project. [2]

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

WBEM providers

Tools

See also

Related Research Articles

OSGi

The OSGi Alliance, formerly known as the Open Services Gateway initiative, is an open standards organization founded in March 1999 that originally specified and continues to maintain the OSGi standard.

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interfaces (API), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.

Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

In computing, Web-Based Enterprise Management (WBEM) comprises a set of systems-management technologies developed to unify the management of distributed computing environments. The WBEM initiative, initially sponsored in 1996 by BMC Software, Cisco Systems, Compaq Computer, Intel, and Microsoft, is now widely adopted. WBEM is based on Internet standards and Distributed Management Task Force (DMTF) open standards:

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

The following tables compare general and technical features of notable email client programs.

The Storage Management Initiative Specification, commonly called SMI-S, is a computer data storage management standard developed and maintained by the Storage Networking Industry Association (SNIA). It has also been ratified as an ISO standard. SMI-S is based upon the Common Information Model and the Web-Based Enterprise Management standards defined by the Distributed Management Task Force, which define management functionality via HTTP. The most recent approved version of SMI-S is available on the SNIA website.

Accessibility Toolkit Software library

Accessibility Toolkit (ATK) is an open source software library, part of the GNOME project, which provides application programming interfaces (APIs) for implementing accessibility support in software.

The Common Information Model (CIM) 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.

A network socket is a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node.

JSR 48 Java WBEM API Specification is a Java Specification Request developed under the Java Community Process. It specifies the Java language binding of the DMTF Common Information Model/Web-Based Enterprise Management standards. The JSR 48 Expert Group has completed the public review in 2006 and is now on the way to create a Technology Compatibility Kit in order to finalize the standard. The API can be regarded as stable.

OpenSocial Public specification aimed at social networking applications

OpenSocial is a public specification that defines a component hosting environment (container) and a set of common application programming interfaces (APIs) for Web-based applications. Initially, it was designed for social network applications and developed by Google along with MySpace and a number of other social networks. More recently, it has become adopted as a general use runtime environment for allowing untrusted and partially trusted components from third parties to run in an existing web application. The OpenSocial Foundation moved to integrate or support numerous other Open Web technologies. This includes OAuth and OAuth 2.0, Activity Streams, and Portable Contacts, among others.

Node.js JavaScript runtime environment

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser. Node.js lets developers use JavaScript to write command line tools and for server-side scripting—running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server-side and client-side scripts.

The Open Management Infrastructure stack is a free and open-source Common Information Model (CIM) management server sponsored by The Open Group and made available under the Apache License 2.0.

Jakarta Management is a Java specification request (JSR-77) for standardization of Jakarta EE server management. Jakarta Management abstracts the manageable parts of the Jakarta EE architecture and defines an interface for accessing management information. This helps system administrators integrate Jakarta EE servers into a system management environment and also helps application developers create their own management tools from scratch.

Open vSwitch

Open vSwitch, sometimes abbreviated as OVS, is an open-source implementation of a distributed virtual multilayer switch. The main purpose of Open vSwitch is to provide a switching stack for hardware virtualization environments, while supporting multiple protocols and standards used in computer networks.

The OpenAPI Specification, previously known as the Swagger Specification, is a specification for machine-readable interface files for describing, producing, consuming, and visualizing RESTful web services. Previously part of the Swagger framework, it became a separate project in 2016, overseen by the OpenAPI Initiative, an open-source collaboration project of the Linux Foundation. Swagger and some other tools can generate code, documentation, and test cases given an interface file.

Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation. It aims to provide a "platform for automating deployment, scaling, and operations of database management systems". It works with a range of container tools and runs containers in a cluster, often with images built using Docker. Kubernetes originally interfaced with the Docker runtime through a "Dockershim"; however, the shim has since been deprecated in favor of directly interfacing with the container through containerd, or replacing Docker with a runtime that is compliant with the Container Runtime Interface (CRI) introduced by Kubernetes in 2016.

WebAssembly Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment. The main goal of WebAssembly is to enable high-performance applications on web pages, but the format is designed to be executed and integrated in other environments as well, including standalone ones.

CIM Schema is a computer specification, part of Common Information Model standard, and created by the Distributed Management Task Force.

References

  1. SMI-S Provider - Architecture explored Archived 2015-04-02 at the Wayback Machine
  2. "OpenGroup wbemsource mailing list: CMPI Based Instrumentation Available". 2003. Retrieved 2009-04-23.