Windows Management Instrumentation and the Common Information Model
Summary: Presents an overview of the Windows Management Instrumentation (WMI) technology, an implementation of the Web-based Enterprise Management (WBEM) initiative for Microsoft® Windows® operating systems. It also discusses the Common Information Model (CIM), and the architecture of the Windows Management Instrumentation technology.
Windows Management Instrumentation (WMI) technology is an implementation of the Desktop Management Task Force's (DMTF) Web-based Enterprise Management (WBEM) initiative for Microsoft® Windows® operating systems. It takes advantage of the DMTF Common Information Model (CIM) to represent managed objects in Windows-based environments. CIM is a data model, a conceptual view of the environment, that unifies and extends existing instrumentation and management standards (SNMP, DMI, CMIP, and so on) using object-oriented constructs and design.
Web-based Enterprise Management is an industry-wide DMTF initiative that supports uniform system, network, and applications management based on the Common Information Model, also a DMTF standard. The goals of this initiative are to develop standardized technology for accessing management information in an enterprise environment, and to enable the development of tools and technologies that reduce the complexity and costs of enterprise management. By providing such standards, this initiative contributes to the industry-wide efforts to lower total cost of ownership (TCO). TCO refers to the administrative costs associated with computer hardware and software purchases, deployment and configuration, hardware and software updates, training, maintenance, and technical support.
The WBEM initiative proceeds through the cooperative efforts of the founding member companies of WBEM, BMC Software Inc., Cisco Systems Inc., Compaq Computer Corp., Intel Corp., and Microsoft Corp., as well as many other companies active in the DMTF.
This article present an overview of the Windows Management Instrumentation technology, the Common Information Model, and the Windows Management Instrumentation architecture.
The Windows Management Instrumentation technology is a management infrastructure that supports the syntax of CIM, the Managed Object Format (MOF), and a common programming interface. The Managed Object Format is used to define the structure and contents of the CIM schema in human and machine-readable form. Windows Management Instrumentation offers a powerful set of services, including query-based information retrieval and event notification. These services and the management data are accessed through a Component Object Model (COM) programming interface. Additionally, support for scripting is provided in the WMI scripting interface.
The Windows Management Instrumentation technology provides:
- Access to monitor, command, and control any entity through a common, unifying set of interfaces, irrespective of the underlying instrumentation mechanism. WMI is an access mechanism.
- A logically organized, consistent model of Windows operation, configuration, and status.
- A COM application programming interface (API) for providing and accessing management information.
- Interoperability with other Windows management services. This approach simplifies developers' efforts to create integrated and well-architected management solutions.
- A flexible architecture. This allows vendors to extend the information model to cover managed objects, such as devices and applications, by writing code modules called providers (previously called WBEM providers). Providers are the means to connect Windows Management Instrumentation with one or more sources of management information.
- Extensions to the Windows Driver Model (WDM) to capture instrumentation data and events from device drivers and kernel-side components.
- A powerful event mechanism that allows management events to be asserted and associated with other management information. These notifications can also be forwarded to local or remote management applications.
- A rich query language that enables detailed queries of the information model.
- A scriptable API that developers can use to create management applications. The scripting API supports several languages, including Microsoft Visual Basic®; Visual Basic for Applications; Visual Basic Scripting Edition (VBScript); Microsoft JScript®, and Perl. Additionally, you can use the Windows Script Host or Internet Explorer to write scripts that use this interface. Windows Script Host, like Internet Explorer, serves as a controller engine of ActiveX® scripting engines. Windows Script Host supports scripts written in VBScript, JScript, and Perl.
By extending CIM and supporting MOF and a common programming interface, the Windows Management Instrumentation technology enables diverse applications to transparently manage a variety of enterprise components.
The Common Information Model, created by the DMTF as part of the WBEM initiative, provides a unified view of physical and logical objects in the managed environment. To represent managed objects, developers use the object-oriented constructs supported by CIM. These include classes that describe managed objects, class properties that define common characteristics and features of particular classes, class and property qualifiers that provide additional information, and methods that can be invoked on managed objects. Properties describe data, and methods describe behavior. The core of CIM is platform-independent with support for platform-specific extensions. The Windows Management Instrumentation technology includes an extension of the CIM schema—the Win32® extension schema—for the Microsoft Windows platforms.
- A core model that establishes a basic classification of the elements and associations of the managed environment, and describes objects that apply to all management domains.
- Several common models—extensions of the core model. The common models address systems, devices, networks, applications, users, and service-level agreements. They include a base set of classes that represent the managed objects specific to the individual management areas, but which are implementation- and technology-independent.
- Extensions to the common models—includes classes that represent managed objects that are technology-specific additions to the common models. These classes typically apply to specific platforms such as UNIX or the Microsoft Win32 environment.
Classes are related by inheritance, whereby child classes inherit both data and methods from parent classes, and by object associations describing dependencies, component and other connection relationships. To obtain information about classes and hierarchies, developers should use the WMI-compatible applications included in the Windows Management Instrumentation SDK (previously known as the WBEM SDK). Detailed information on the Windows Management Instrumentation SDK is included in the Microsoft Platform SDK at the following URL: http://msdn.microsoft.com/developer/sdk/.
The CIM Object Manager, described in the next section, supports association classes, which link objects in specific relationships. Association relationships are visible to management applications and can be enumerated and used like any other CIM objects. Third-party developers can also define association classes for their management environment.
The Windows Management Instrumentation SDK includes the CIM schema and the Win32 schema. The CIM schema contains the class definitions for the first two levels of CIM (the core and common models). These classes represent managed objects that are part of every management environment regardless of platform. The Win32 schema contains class definitions for managed objects that are specific to the Win32 environment.
Third-party developers can create custom schemas to describe vendor-specific environments. Schemas are extensible; therefore, developers can derive new classes to represent new managed objects in an existing environment.
The Windows Management Instrumentation architecture consists of the following:
- A management infrastructure, including the CIM Object Manager and CIMOM object repository
- WMI providers for the Win32 environment
The management infrastructure consists of the CIM Object Manager and the CIMOM object repository. Applications depend on the Object Manager to handle the interface between management applications and data providers. CIM Object Manager facilitates these communications by providing a common programming interface, using COM, to Windows Management Instrumentation. This COM API supplies event notification and query processing services, and is available in several programming languages such as C and C++. Windows Management Instrumentation also supports automation scripting in VBScript, JScript, and Perl, as well as other Windows-supported scripting languages. The CIMOM object repository holds the CIM and extension schemas and data information or data source details. CIM Object Manager uses the schema data in this repository when servicing requests from management applications for managed objects.
Managed objects are either physical or logical enterprise components that are modeled using CIM. For example, a managed object can be hardware such as a cable or system chassis, software such as a database application, or other logical entities such as computer systems, files, and devices. Management applications can access managed objects through CIM Object Manager.
Management applications are Windows applications or Microsoft Windows NT® services that process or display data from managed objects or change the state of managed objects. For example, a management application can measure performance, report outages, correlate data, and so on.
WMI providers function as intermediaries between CIM Object Manager and the actual managed objects. Using the WMI APIs, providers supply CIM Object Manager with data from managed objects, handle requests on behalf of management applications, and generate event notifications.
Figure 1 illustrates the Windows Management Instrumentation architecture. The top of the diagram shows examples of management applications, such as a Web Browser or set of Microsoft Management Console (MMC) snap-ins.
Note MMC is a common console framework for system management applications. The primary goal of MMC is to support simplified administration and lower cost of ownership through tool integration, task orientation, support for task delegation, and overall interface simplification. MMC hosts administrative tools (called MMC snap-ins); however, the console itself provides no management functionality. MMC snap-ins are tools that extend the console and provide administrative functionality. Each snap-in functions independently from other snap-ins.
Applications typically access the COM interfaces directly to interact with CIM Object Manager to make management requests, while others use additional access methods such as Open Database Connectivity (ODBC), ADSI (Active Directory Service Interfaces), or the Windows Management Instrumentation scripting API (previously called WBEM scripting) to make their requests. The lower part of the diagram shows examples of managed objects and associated providers (such as the Windows Registry and the Registry Provider). Communication between CIM Object Managers on local and remote components uses the distributed Component Object Model (DCOM).
Figure 1. Windows Management Instrumentation architecture
Built on broadly adopted industry standards, Windows Management Instrumentation technology provides a consistent, flexible infrastructure for the management of systems, applications, devices, and networks, and facilitates the development of management applications and instrumentation. The Windows Management Instrumentation technology combines the benefits of CIM and a management infrastructure that supports MOF, eventing, scripting, and a common programming interface. Windows Management Instrumentation enables diverse applications to transparently manage a variety of enterprise components.
Using Windows Management Instrumentation technology, developers can create powerful management applications and solutions to access all management information on Microsoft's Windows platforms.
- For the latest information on Windows NT Server, check out our Web site at http://www.microsoft.com/ntserver/.
- For more information on CIM, see Common Information Model (CIM) 2.0 at http://www.dmtf.org/tech/specs.html.
- Additional information on WMI technology is available at http://www.microsoft.com/ntserver/techresources/.
The information contained in this article represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This article is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
The BackOffice logo, Microsoft, Windows, and Windows NT are registered trademarks of Microsoft Corporation.
Other product or company names mentioned herein may be the trademarks of their respective owners.