Browse DevX
Sign up for e-mail newsletters from DevX


Exploring WMI Part II: Using the Common Information Model : Page 2

Part II of this WMI tutorial series discusses details of the Common Information Model Version 2 (CIMV2) schema and shows you how to query CIM to obtain detailed information about CIM objects.




Building the Right Environment to Support AI, Machine Learning and Deep Learning

The CIM's Object-oriented Approach
The goal behind each well done object oriented design is to model the world in terms of objects: An object is an abstraction, consisting of a set of related data and behaviors. For example, a car can have properties such as color, manufacturer, seats, and EngineType, and methods such as accelerate() and brake(). The system treats each object as a named entity that has a set of characteristics (properties and methods), behavior and a unique identity. The CIM schema defines the classes that form the blueprint for these objects. But it also describes relationships between those objects. Inheritance hierarchies refine and specialize the attributes and behavior of a group of objects; association hierarchies relate objects to each other. For example: "The administrator is an instance of a user account class and is associated with the group he belongs to and also with his custom desktop settings."

The CIM models associations with special classes that represent the relationship between two or more objects. Therefore they can have properties, methods, and events like any other class. They also inherit semantics, properties and behavior from superclasses. Aggregation associations are distinguished by the "Aggregation" or "Aggregate" keyword. They represent whole-part relationships and members-of collections. These five axioms summarize all the above information about the object-oriented approach:

  • Instances are things.
  • Properties are attributes.
  • Relationships are pairs of attributes.
  • Classes are types of things.
  • Subclasses are subtypes of things.
Figure 1. Elements in the WMI CIM Studio: The figure shows how CIM Studio lists the various available elements.
The Core Model
Figure 1 shows two of the most important CIM classes. CIM_PhysicalElement and CIM_LogicalElement. Both are derived from CIM_ManagedSystemElement which forms the base for any element you want to provide in a Web-Based Enterprise Management (WBEM) schema. As you can see, CIM_LogicalElement is the base class for many Win32_ schema classes like Win32_Registry, Win32_NetworkClient, Win32_Session, etc.. CIM_PhysicalElement is the base class for physical devices; for example a Win32_DiskDrive is associated with a Win32_DiskDriverPhysicalMedia which is derived from CIM_PhysicalMedia. CIM_PhysicalComponent is derived from CIM_PhysicalElement and forms the base class for CIM_PhysicalMedia. Everything in the WMI CIMV2 can be found to be derived either from CIM_LogicalElement, CIM_PhysicalElement or even directly from CIM_ManagedSystemElement.

You can find a nice UML diagram of the Core Information Model at the DMTF Web site, and information about the committees in charge of creating the CIM here. Finally, you can download the CIM definition from the DMTF homepage in various formats: a whitepaper defining the objects, as Managed Object Format (.mof) files, Visio UML diagrams, and XML files. Currently, there are several industry implementations of the CIM: Microsoft WMI, Sun WBEM Services, WBEMSource (open source initiative) and Cisco CiscoWorks2000.

Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date