Common Information Model (CIM)

[This is preliminary documentation and subject to change.]

The Common Information Model (CIM) presents a consistent and unified view of all types of logical and physical objects in a managed environment. Managed objects are represented using object-oriented constructs such as classes that include properties to describe data and methods to describe behavior. Designed by the Desktop Management Task Force (DMTF) as part of the WBEM initiative, the CIM is not tied to any particular platform. The WBEM technology includes an extension of the CIM for Windows platforms.

The CIM defines three levels of classes:

All classes can be related by inheritance, where a child class includes data and methods from its parent class. Inheritance relationships typically are not visible to the management application using them. These applications are not required to know the inheritance hierarchy. Class hierarchies can be obtained using applications that are included in the WBEM SDK; see WBEM SDK Applications for more information.

CIMOM also supports association classes. Association classes link two other classes to model a user-defined relationship. Association relationships are visible to management applications. CIMOM defines association classes to support system classes; third-party developers can also define association classes for their management environment.

The CIM supports with documentation what is referred to as a metamodel. A metamodel is a description of the entities and relationships that are used to represent the managed objects. For example, classes, instances, and associations are included in the metamodel. The metamodel is fixed and is not supported programmatically.

WBEM supports the concept of schemas to group the classes and instances that are used within a particular management environment. The WBEM SDK includes two schemas: the CIM schema and the Microsoft® Win32® schema. The CIM schema contains the class definitions for the first two levels of the CIM. These classes represent managed objects that are part of every management environment regardless of platform. The Microsoft® Win32® schema contains class definitions for managed objects that are part of a typical Win32 environment.

Third-party developers can create their own custom schemas to describe vendor-specific environments. Because schemas are meant to be infinitely extensible, developers can always add new classes to represent new managed objects in an existing environment. Custom schemas are extensions of the CIM or Win32 schema.