Though fairly complex in nature, the common information model (CIM) is really just a way of visualizing and managing the resources of an information technology (IT) environment, whatever it may be. Through the common information model, an organization or end user is able to describe all of what makes up a particular IT environment, whether it's a web-based environment or a corporate network. The entire complexity of the network, including the physical computer systems, other hardware necessary to the environment, the software programs that run on those systems, can be defined by the CIM. While programs can certainly be created that use the CIM to ease the organization and management of a computer network, the CIM is not in itself a program, but more a way of bringing together all the data about a network into a model that is more easily understood.
The common information model was devised by a group of technology companies working in concert. After a bit of proprietary wrangling with slightly varying implementations of modeling methods, a group of IT giants led by Cisco Systems®, Hewlet-Packard® and IBM® came together to form the Distributed Management Task Force (DMTF). The DMTF's goal was to create a vendor-neutral method for network resource management, and what they came up with is the common information model.
The CIM follows the methodology of the object oriented model (OOM). The OOM paradigm offers a way of finding solutions to problems by breaking down the complexity of the issue into objects that are related to and interact with one another. While the OOM has found extensive use in object-oriented computer programming languages, the technique offers a solid way for working with large and fairly complex problems. Within the OOM, anything in the problem set is identified as an object, and in order to identify every object, definitions need to be established.
The common information model identifies the objects of an environment by separating out a specification and a schema. One half of the CIM, the specification, is a description of how various management models should interact with one another and creates something of a meta model for sharing information between and developing other management models. To help with this, the CIM specification uses the Unified Modeling Language™ (UML) to aid with overall conceptualization and visualization of CIM models. The specification also outlines its own language that is used in defining the most common aspects of an environment such as types of objects, their attributes, and their relationships. Based on the interface definition language (IDL) the CIM's managed object format (MOF) language allows a user to write plain text descriptions of objects in a human-readable format that can then be used to share the information about an environment.
In the second half of the common information model, the schema then defines the specifics of managed environments. The schema builds up from core concepts to more common ones, but also allows for extensions of those. At its core, the specification provides the essential terminology used in the IT world, the basic concepts that can be found everywhere. As the core branches, the more detailed aspects of management areas are defined, such as databases, users, devices and so forth. Separate from the core CIM schema, an extension schema can be developed that further defines a specific area of management.