The CIMI standard is defined and published by the Distributed Management Task Force. It includes the Cloud Infrastructure Management Interface Model and RESTful HTTP-based Protocol specification, the CIMI XML Schema, the CIMI Primer and the CIMI Uses Cases whitepaper:
Cloud Infrastructure Management Interface Model and RESTful HTTP-based Protocol
CIMI XML Schema
CIMI Primer
CIMI Use Cases
Goals
CIMI aims to provide a single set of interfaces that a cloud consumer can use to provision and manage their cloud infrastructure in multiple clouds, so client code does not need to be adapted to each of the proprietary interfaces from these multiple vendors. CIMI has been described as a de jure standard that is under change control of a standards body, contrasting it to a de facto standard where typically one vendor has change control over the interface, and everyone else has to reverse engineer the inner workings of it. It is expecting vendors to embrace a dual strategy of delivering two offerings – one a CIMI compliant offering and the second a more proprietary offering that allows for more proprietary functionality.
Scope
CIMI is scoped to the core IaaS functionality such as deploying and managing Machines, Volumes, Networks, Monitoring, and Systems that group them. It includes a feature discovery mechanism to find out what functions the cloud provider supports, including the metadata describing capabilities and resource constraints.
Model and Features
Model
The CIMI model describes in detail all the resources that are accessible by the Cloud Consumer and that are maintained by the Cloud Provider, and their relationships. The main entry point for the CIMI Consumer is the IaaS Provider's Cloud Entry Point. All other data is discovered, iteratively:
Pointers to Machines, Volumes, Networks, Systems, Machine Images, Credentials,...
Templates to provision new resources such as Machines, Volumes, Networks and Systems
Monitoring resources such as Meters, Events & Event Logs
Jobs
Metadata describing capabilities and resources constraints
Optional provider extensions
The model is self-describing and allows for querying its own metadata, e.g., to discover which extensions have been implemented. The model is also extensible by the Consumer and the Provider. The model also defines serializations both in XML and JSON for each resource.
Features
CIMI addresses the management of the lifecycle of infrastructure provided by an IaaS Provider, such as the creation, deletion, viewing and alteration of virtual machines, networks and storage, and start and stop operations. It also defines resource operations such as creating machine images or snapshots of machines for backup & restore, or for creation of additional identical virtual machines. CIMI allows the import of an OVF package to create a System with Machines and other CIMI resources, as well as the export of a CIMI System of resources to an OVF package. The actual import and export of OVF packages is handled by the underlying hypervisor under the management of the CIMI implementation.
Protocols
CIMI currently supports the REST architectural style using HTTP for all interactions between the Consumer and the Providers. Mappings to SOAP and WS-MAN are also considered. This protocol binding follows REST principles and describes the mapping of HTTP protocol verbs to operations on the model: Each request is sent by using an HTTP verb such as GET, POST, PUT and DELETE, and includes a message body in either JSON or XML format. Each response uses a standard HTTP status code, whose semantics are interpreted in the context of the particular request that was made.
Implementations
Several adapters have been developed that expose a CIMI API endpoint for client applications to consume and translate API calls to the proprietary API calls of supported target cloud provider. The following is a list of CIMI implementations: