What is the Common Information Model (CIM)?
The Common Information Model (CIM) is a computer industry standard that defines device and application characteristics so system administrators and management programs can control devices and applications from different manufacturers. CIM was developed and is managed by the DMTF, a hardware and software manufacturer consortium formerly known as the Distributed Management Task Force.
CIM standards also cover IT infrastructure such as clouds, virtualization, networks, servers and storage. It is an open standard that grows as DMTF partners add new technology.
How does the Common Information Model work?
CIM is divided into a CIM Specification, CIM Schema and a CIM Metamodel. The CIM Specification defines the way that management models from different manufacturers, for example, can communicate with each other.
The CIM Schema contains classes such as computer and networking systems, middleware, databases, operating systems (OSes), services and storage. Each class contains properties that describe it with attributes such as network name, serial number, error codes and more. While DMTF defines the standard schema, major manufacturers like IBM, HP, Dell and others provide Extension Schemas that include their products. In addition, other organizations can extend the schema to build custom applications.
The CIM Metamodel defines the construction of new models and the schema that represents those models.
CIM Schema and specifications
Some common CIM Schema classes include the following:
- CIM_ComputerSystem: Computer host
- CIM_DataFile: Computer file
- CIM_Directory: Files directory
- CIM_DiskPartition: Disk partition
- CIM_FIFOPipeFile: Named pipes
- CIM_OperatingSystem: Operating system
- CIM_Process: Computer process
- CIM_SqlTable: Database table
The CIM classes for Windows are exposed using a PowerShell cmdlet.
Figure 1 shows a partial output of the command.
Microsoft defines a CIM class as an "object oriented abstraction of the entity being managed through a [CIM Object Manager] CIMOM infrastructure like [Windows Management Instrumentation] WMI." In simple terms, objects such as a disk drive are identified by a class name, such as "device," and attributes in the CIM Schema. This information can be accessed by common programming languages and queried for information. This figure from DMTF shows the CIM Schema for "device" graphically. A disk drive manufacturer, for example, can provide this information in the schema, and developers can build applications to access information such as capacity, specifications, monitoring and error reporting.
Schema Class definitions are contained in Managed Object Format files. These are available on the DMTF site in zip archives for each schema version, currently version 2.46.0.
What is WBEM?
Web-Based Enterprise Management (WBEM) is a set of specifications that defines how objects may be discovered, accessed and manipulated across disparate systems. WBEM can take a request, such as from a GUI, and construct and then send the request to the WBEM server. The WBEM server then interprets the request using the CIM Schema definitions, passes it to the provider of the hardware being queried, and returns the status of the device or whatever the query asked for to the operator.
In the book A Practical Approach to WBEM/CIM Management by Chris Hobbs, a diagram of WBEM architecture shows the WBEM server, client and providers. There are several items of note in this model.
- The client is used to define the model and, through a user interface, to send queries for information from the managed devices through the WBEM server.
- The WBEM server has several components, including the following:
- a CIMOM to define the query using CIM definitions from the repository;
- interfaces to security, the physical device provider or software and the CIM repository; and
- an indication handler to provide data to the operator of the listener or application.
- The request -- small software code written for the physical device -- is processed by the WBEM server, and then sent to providers and finally to the device for the actual status.
- The results are passed to the client listener for reporting or display.
Windows, Linux OSes, IBM and even VMware provide a CIMOM with their own management interface to achieve a well-defined, managed environment. They also extend the CIM Schema for their purposes. Microsoft provides its CIMOM interface via WMI, which uses CIM Schema definitions for devices and software and then stores it in the WMI repository. WMI is an extension to the Windows Driver Model and is an interface that enables scripted access to hardware and software using common scripting languages. These languages include VBScript, PowerShell and a special command-line interface called WMI Command line (WMIC). As an original member of the DMTF, Microsoft has contributed many WMI providers in the Windows OS, including Windows 10 adding providers for its mobile device management service.
WMIC can be used to query for information on a Windows client or server. Just open a command prompt and enter the following command:
At the WMIC prompt, enter /? for a list of switches to the command.
You can get the computer name and Windows version for that computer by using the following WMIC commands:
>WMIC get name
>WMIC os get version
For more information on WMIC, you can refer to Microsoft's WMIC document.
What are the advantages and disadvantages of using CIM?
There are two main advantages of using CIM and the WBEM infrastructure.
- Both CIM and WBEM interfaces are built into most OSes. While it may technically be feasible to turn these interfaces off, it would break a lot of functionality.
- The CIM standard, coupled with WBEM specifications, provides a way to develop software, particularly management and console interfaces, to monitor key components such as system and device performance, system information, network status and many others. Without CIM, cross-device communication would be very difficult or impossible.
The only real disadvantage of CIM is for users who develop applications based on the CIM model and schema. For instance, a project called SmartGrid found that the multiple versions of CIM available or under development make it challenging to integrate them from a software design perspective. And while getting schema extensions into the CIM model has great value down the road, it takes time and sometimes involvement on an international level. That said, CIM is the standard, so challenges like these will have to be met and solved.
Examples of the Common Information Model
CIM-based devices and applications leverage CIM's repository, and via WBEM can query devices and software for attributes. They can also be used to build applications to exchange or gather information from disparate systems.
Some examples include the following:
- system management applications that retrieve information from devices regardless of manufacturer or developer;
- error handling and reporting functions, such as Windows Event Log;
- device information monitoring, such as disk free space and hardware serial number;
- backup information such as the last backup made on each system;
- performance information such as CPU utilization, number of processors and memory utilization; and
- notifications of failed logins and password expirations.
The above examples demonstrate how integrated CIM is with native OS and third-party applications. Every manufacturer of computer devices has management interfaces that use CIM and the related WBEM infrastructure.
- For example, CIM can enable the exchange of data between systems, such as integrating energy management systems with secondary IT systems.
- SmartGrid uses CIM for common semantics, for example in substation automation, to provide useful information across hardware and software platforms. Imagine the instrumentation needed to automate electrical substations. CIM is at the core.
- VMware's ESXi uses CIM "instead of installing hardware agents in the service console." By using CIM providers through WBEM for hardware components -- such as host bus adapters, network cards, CPUs and disk drives -- the requests are serviced and reported to VMware vCenter using CIM without installing agents on devices.
Thus, CIM and WEBM provide an instrumentation base that is widespread throughout the IT industry to permit hardware and software to query and report information required by users and applications alike. The CIM Schema is extensible and thus adaptable to new devices and technologies.