A large number of management standards such as SNMP, DMI and TMN exist in the industry. It can be noticed that most of these management standards follow the protocol of exchanging management information between the managing and the managed resources. Furthermore, all these standards define basic manipulation functionality such as accessing the information and performing addition, deletion and
modification.
Unfortunately, various standardizing initiatives that define these standards could not coordinate their work resulting in
interoperability issues, incompatibility between concepts, terminology and solutions. Moreover, a lot of these standards
focused only on some particular management aspects and areas.
|
In order to overcome the interoperability and incompatibility issues, a standard is required that prescribes guidelines for semantics, defines specification of management data and defines operations that can be performed. In order to bring out such a standard, the DMTF (Distributed Management Task Force) spearheaded an initiative called WBEM (Web Based Enterprise Management) to develop a core set of standard technologies for managing enterprise computing environments. WBEM is a platform and resource independent standard that defines both a common model (ie, description) and protocol (ie, interface) for monitoring and controlling resources from diverse sources. It also facilitates the exchange of data across otherwise disparate technologies and platforms.
Elements of WBEM
WBEM defines a set of standards, they include:
- CIM (Common Information Model): It's a data description standard that describes the managed resources. CIM defines rules for describing the data (CIM Specification) and it also gives description of the managed
resource data (CIM Schema). - Communication Protocol standard: This standard describes how to encode/decode the data and its transport mechanism as well.
|
CIM-XML is a DMTF standard WBEM communication protocol that consists of usage of CIM specification and CIM schema for managed resources representation. It also includes xmlCIM, which is an encoding specification for CIM commands (requests) and responses, and CIM over HTTP (HTTP access), which is a transport mechanism for carrying CIM commands and responses across the network.
Apart from CIM and CIM-XML, DMTF has developed a set of standardized technologies that make up WBEM. This
includes:
WBEM discovery using SLP (Service Location Protocol) and WBEM URI (Universal Resource Identifier)
mapping: These standards provide a mechanism for applications to identify and interact with WBEM management systems.
CIM query language: A query Language that is used to retrieve the information from a CIM based management system.
WBEM architecture
Let's look into the WBEM architecture (see fig 2 on the next page). In order to manage a resource, a user has to perform various operations. These operations can be for reading, writing or executing a query
specific to the managed resource. Let's now take each entity from management as well as managed node, which comes into picture while performing an operation.
- WBEM clients: It is an entity that sends WBEM operation requests and receives WBEM operation responses. It can be used to monitor and control local and/or remote resources.
- WBEM server: The WBEM server is a broker between WBEM clients, listener and the providers that interact with actual
managed resource. It receives the WBEM operation request from the WBEM client and sends WBEM response back to it as well. The WBEM server provides interfaces (shown in the schematic on WBEM information exchange) to:
Repository: stores an abstract model of the managed resource Listeners: receives the information about the events in the managed resource. The
listener has to subscribe for event in which it is interested - Provider: It interacts with the system resource to provide the dynamic data about the managed objects of the same. Providers are responsible for the actual processing of WBEM operations on one or more managed resources.
- Managed resource: It is a manageable entity. For example, service, memory, battery, etc.
WBEM information exchange
In WBEM, information exchange happens in two ways. First, the WBEM client queries the WBEM server. The WBEM client queries (add/modify/delete requests) the WBEM server for managed resource. The WBEM client encodes the request according to CIM-XML standard and then sends it over Http/Https. CIM Object Manager (CIMOM), which is the heart of a WBEM server receives the operation request. The CIMOM is responsible for calling the correct provider(s) in response to the client's requests. The provider translates the CIM formatted request into resource specific operation, processes the request, translates the response back into CIM format and finally returns the response to the CIMOM. This response is again encoded according to CIM-XML standard. The CIMOM then passes on the response to the WBEM client.
|
Next, the WBEM listener receives the event from the WBEM server. An event is a phenomenon of interest while an indication is the representation of the occurrence of the event. In order to receive indications, WBEM listener has to subscribe for indications. When an indication is generated, an indication handler (part of CIMOM) receives the indications, performs the mapping between internal representation of CIM indication and desired format and protocol, and sends it to each of the specified destination, which is WBEM listener.
WBEM implementations
Let's discuss various WBEM implementations.
- Pegasus: This is an open-source implementation of the WBEM by the Open Group and has very active developer groups. It is a lightweight and efficient implementation in C++ language. This supports most of the WBEM operations for reading/writing to/from the managed resource. In order to support providers in C++ or Java, it has a provider manager, which converts the
messages in a usable form before delivering them to the provider. - WBEM services: This is a Java implementation and is driven by Sun Microsystems. It provides Java-based CIMOM and a set of Java APIs for client and provider development. WBEM services also provide authentication as well as authorization.
- WMI (Windows Management Instrumentation): This is driven by Microsoft. WMI provides a bi-directional instrumentation access mechanism and brings together the management data from the hardware platform, drivers, and applications and passes the consolidated data into a consistent management information store or repository. Management applications can access this data through CIMOM by using WMI API.
- OpenWBEM: OpenWBEM is an enterprise-grade implementation of WBEM, written in C++. It has a very small memory footprint and is designed to be fast. It supports scalable repository with indexing. It supports various provider interfaces such as C++, C, Perl and Python.
- SNIA open-source CIMOM: This implementation is driven by Storage Networking Industry Association. It comes with a Java daemon (CIMOM) but has no repository.
Next time, we will see how to use WBEM in a management application.
Ramandeep Kaur, Senior Software Engineer, Novell Software, Bangalore