The Common Information Model
As discussed in previous chapters, the CIM has three conceptual layers, each of which builds upon the previous one, providing a greater level of detail. Notice in Figure 4.3 that layer 3 is sometimes referred to as the "layer of extensibility."
Figure 4.3 The three layers of CIM
The core and common models are referred to collectively as the CIM Schema.
The purpose of layering the model is to allow schema designers to view the model as a series of logical progressions from which they can build. The CIM Schema represents the basic classes, properties, methods, and associations of all potentially managed objects within an enterprise.
The Core Model
The core model defines a number of very general classes to describe basic structures and relationships between manageable components in an environment. This information model is independent of any product or implementation.
The Common Model
The common model defines a basic set of classes that represent specific areas of management within the enterprise. The common model consists of a number of models, each of which represents specific management areas. Currently the DMTF defines models that represent the network-, user-, system-, support-, policy-, physical-, metrics-, interoperability-, events-, device-, and application-specific aspects of the enterprise. (A number of submodels extend these models. For more information on the submodels, visit http://www.dmtf.org, the DMTF Web site.) The number of areas represented by classes in the common model are expected to increase over time, the better to represent the variety of advances in technology.
The systems model defines the basic characteristics associated with managed systems. A managed system can be an operating system, a network system, or an application system. It defines the root class CIM_ManagedSystemElement, from which all system classes must derive. Included as part of this model are classes that define services, file systems, threads, processes, and software features.
The networks model defines a series of classes, associations, methods, and properties that represent the features of a network environment. Features that are common to a network environment include protocols, services, and the topology of the network. Within the networks model, a number of submodels define the classes, associations, methods, and properties that are specific to their environment.
The devices model defines the physical and logical components that support the system. Examples of classes defined as part of the devices model include CIM_POTS Modem, CIM_Processor, CIM_Printer, and CIM_DesktopMonitor.
The physical model is not to be confused with the devices model. Whereas the devices model defines a set of classes that support the managed system, the physical model represents the physical environment. You will find that the physical environment is of surprisingly little concern in the managed environment. Under normal circumstances, you will not often need to come into direct contact with a physical element within an environment but will instead interact with its logical counterpart. Any manipulation of physical elements within the environment normally is a result of manipulation of an associated logical object. For example, imagine an Ethernet network card in an ISA slot of a personal computer running Windows XP. If you were to perform some action that resulted in a series of packets being sent out of the card to the network, it you might trigger the Tx (Transmit) LED on the network card to start blinking. This behavior was the result of the packet being sent out of the cardthe Tx LED cannot be addressed directly or polled for its status.
Because the physical model represents the physical aspects of a system, the classes it contains will differ considerably, depending upon the host system (consider the differences in architecture of an HP Mainframe and a desktop computer) and will change to represent the advances in technology.
The applications model describes the details required to manage a set of software applications. The diversity of software applications demands that the model must be flexible enough to describe multiplatform or distributes applications. The applications model borrows heavily from the application software life cycle. The application software life cycle describes the various states of a software application from its initial purchase through its execution.
The event model describes CIM Indications and how they are used to communicate occurrences of events in the CIM. It also describes the classes that enable clients to subscribe to CIM Indications, including how to specify a desired mode of delivery. The Specification for CIM Operations over HTTP defines the XML encoding for CIM Indications over HTTP.
The policy model enables application developers, policy administrators, and network administrators to represent and manage policy across a variety of technical domains that include security, networking, and system administration.
The support model describes the object and transaction models for the exchange of knowledge related to support activities (Solutions) and the processing of Service Incidents. The object and transaction models are referred to as the Problem Resolution Standard or PRS.
The user model provides a set of relationships between the various representations of users, their credentials, and the managed system elements that represent the resources and resource managers in system user administration. Thus, the CIM user and security models added to the preexisting set of requirements for the introduction of a "top" object class in the CIM core model.
The metrics model defines classes to represent a unit of work and its associated metrics. For example, a print job could be a unit of work and the number of pages to be printed could be the metric.
The interop model defines architectures and mechanisms that enable WBEM implementations to interoperate in an open, standard manner, and addresses issues that prevent them from doing so.
In addition to these models is a number of submodels that include:
CIM Network SubmodelIPsec Policy Model. Defines a number of CIM extensions that represent the IP security policy model.
CIM SubmodelStorage Model. Defines the Logical Devices associated with data storage.
CIM Device SubmodelSensor Model. Defines additional properties and methods for the classes CIM_Sensor and CIM_Numeric Sensor.
CIM Device SubmodelPrinter Model. Describes the management of the functionality and protocols specific to printers.
CIM SubmodelFault Tolerant Model. Defines a number of fault tolerant extensions to the CIM model.
CIM System SubmodelDiagnostic Model. Describes additional aspects needed for successful diagnostics under multi-tasking operating systems.
The Extended Schemas
Vendors who wish to represent the manageable aspects of their hardware or software product as part of the CIM define the extended schemas. Extended schemas typically derive from classes defined as part of the common model, although it is possible to extend from the core model. An example of an extended schema is the mechanism with which operating system vendors can model the manageable aspects of their operating systems in the CIM. Microsoft uses the Win32 extended schema to represent its Windows platform (Windows 98, NT4.0/2000/WinXP/.NET). The management information you retrieve from WMI about the Windows environment typically will be retrieved from the classes defined as part of the Win32 extended schema, because the majority of CIM schema classes defined within the CIMV2 namespace are declared as abstract.
When designing the CIM, the DMTF envisaged a number of ways to implement it. Among the proposed methods were:
An application Data Base Management System (DBMS)
A series of application objects that represent instances of CIM classes
A structure to pass the instances of CIM between applications
Even from a brief look at the core, common, and extended schemas, it is clear that the DMTF's task in designing the CIM was complex. Because of its complexity, navigating the CIM repository and the query response times on such a large volume of information are design concerns. Too much information to process can be as detrimental to the usability of an information model as not enough information. In addition, a CIM repository might host multiple managed environments, such as local and nonlocal devices. How can we rationalize them?
To overcome these problems, the DMTF developed namespaces, a mechanism for partitioning sections of CIM into smaller logical groupings.