What is WBEM?
Web Based Enterprise Management is an Industry initiative to provide a set of management and Internet standard technologies developed to unify the management of systems, networks, users and applications across multiple vendor environments.
About OpenWBEM
OpenWBEM is an enterprise-grade open-source implementation of WBEM, written in C++, suitable for commercial and non-commercial applications. It provides a foundation for development of management frameworks that overcome cross-platform barriers and empower true interoperability. Developers can use OpenWBEM as a management agent and WBEM framework to provide applications for configuration and change management, system health monitoring, and enterprise-wide management functionality.
News
- Thu Oct 19 2006: OpenWBEM 3.2.2 has been released. Release notes.
- Fri Feb 10 2006: OpenWBEM 3.2.0 has been released. Release notes.
Commercial Products using OpenWBEM
- Quest Management Xtensions for SMS
- Quest Management Xtensions for MOM
- Novell/SUSE SLES 10
- Apple Remote Desktop
- Quest Management Xtensions for MOM
Features
OpenWBEM enables application developers to architect management frameworks that provide cross-platform interoperability. Some of the main features and capabilities of OpenWBEM include:
- CIM Server
- Architected to be fast and small.
- CIM Operations over HTTP 1.1 is fully supported.
- CIM 2.2 is supported, including embedded instances, which are necessary for proper indication support.
- HTTPS (Requires OpenSSL)
- Extensible Authentication through authentication plug-in
modules. Provided authentication methods:
- PAM (Uses the native system authentication)
- HTTP Digest (Useful because it doesn't send passwords in clear text)
- Local (No password required, it relies on the filesystem permissions and trusts the operating system correctly authenticated the user.)
- Simple (Uses a password file. A good sample of how to write an Authentication Module)
- SSL client certificate trust store
- Fast scalable CIM repository with indexing based on Berkely DB library.
- Supported Provider Interface Types:
- C++
- CMPI
- NPI Provider Interface.
- Perl based on NPI.
- Perl using SWIG, created by Jason Long.
- Remote. Another WBEM server will be called to fulfill the request.
- CIM Providers Support:
- Writing providers is simple. Base class adapters are provided for the most common situations which reduces development time and provider size. Helper functions are available that make it easy to correctly write providers.
- Providers run in a transactional environment, making it much easier to write a robust provider free from deadlocks and race conditions.
- OpenWBEM C++ Providers are automatically detected, so there is no need to use the provider qualifier or registration schema.
- Instance
- Secondary Instance
- Method
- Associator
- Indication
- Indication Export
- Other types of dynamic pluggable providers:
- Polled
- Authentication
- Authorization
- CIM Repository
- WQL
- Service
- Indications and CIM Listener support. Both lifecycle and alert indications are supported.
- WQL Level 2 support for server and client
- Access Control Lists
- Discovery via SLP Integration on the CIMOM and client side using any RFC 2614 compliant SLP implementation (e.g. OpenSLP)
- Support for a binary protocol that is more efficient than CIM/XML
- HTTP deflate compression with zlib. (Using the binary protocol together with compression is very bandwidth efficient.)
- HTTP chunking & trailers allows OpenWBEM to transfer large transactions (e.g. enumClasses on the entire schema) with no buffering. Memory usage stays constant. Even if the client doesn't support chunking & trailers, large requests are buffered on disk to save memory.
- Communication over TCP/IP or Domain sockets.
- The MOF compiler & cimom have full support for UTF-8, so classes and instances can contain the full set of Unicode characters.
- The owcimomd daemon is heavily tested and we believe it to be free from deadlocks & crashes. It also has a restart feature to recover from buggy providers.
- The code has been run through a memory debugger and there are no known memory leaks or unconstrained growth.
- The build system automatically configures itself to the platform headers & libraries.
- The owcimomd daemon has been designed to be non-intrusive and
have a small footprint. Many features are loaded as shared libraries so
you can pick and choose what features you really need and not waste
memory with unused code. Optional features include:
- Indication support
- WQL library
- Authentication modules
- Authorization modules
- Provider interfaces
- Providers are unloaded from memory if they are not used for a configurable amount of time
- SLP support is implemented as a provider
- Request handlers (CIM/XML or binary) can be loaded/unloaded on demand with a configurable unload timeout
- HTTP compression
- HTTP digest authorization
- HTTPS (SSL)
- Functional Profiles (Association Traversal, Instance Manipulation, etc.)
- SMI-S Server profile is fully implemented.
- Experimental support for WBEM i18n as defined in the preliminary CIM Operations over HTTP 1.2
- Available Providers:
- CIM_Namespace - Allows manipulation of namespaces.
- OpenWBEM_ObjectManager : CIM_ObjectManager - Represents owcimomd.
- CIM_NamespaceInManager - Association between CIM_Namespace and CIM_ObjectManager.
- OpenWBEM_CIMXMLCommMechanismForOpenWBEMManager
- OpenWBEM_HostedObjectManager
- OpenWBEM_UnitaryComputerSystem
- CIM_HostedAccessPoint
- CIM_CIMXMLCommunicationMechanism
- SLP advertisement
- __Namespace - Allows manipulation of namespaces for legacy CIM Clients using the deprecated __Namespace class.
- Novell has written a number of Open Source providers for Linux as part of the LIFE project.
- IBM has a lot of system level providers available via the SBLIM project. All these NPI & CMPI providers work with OpenWBEM.
- Example providers show how to implement providers. These providers implement processes, RPMs, and laptop batteries. These make for good demos as well.
- Additional Software
- C++ CIM model API
- WBEM Client API
- MOF Compiler
- MOF API & library can be utilized from any application. Includes an API to convert mof text into a C++ CIM class/instance without talking to a cimom.
- WQL command-line utility
- WQL client library. Use WQL with servers which don't support it or don't support your particular queries.
- Provider Agent API. An application can embed a mini-WBEM server to be used in conjunction with the remote provider interface.
- Supported Platforms
- Linux
- Solaris
- HP-UX
- AIX
- Mac OS X
- Novell Netware
Download
Please read the license before you download. All releases can be downloaded from SourceForge.
The most recent development code can be obtained from cvs.openwbem.org. You can obtain the code by using anonymous cvs pserver access.
A note about the development code: We strive to keep the code bug-free and stable. However, there may be experimental features, unstable APIs, or even (heaven forbid!) code that doesn't compile. So if you can't deal with these slight annoyances (believe me, we don't break things on purpose :-), please use the latest released version of OpenWBEM.
Documentation
- Getting Started with OpenWBEM pdf sxw doc
- Instructions on building, installing and configuring OpenWBEM.
- Developer Documentation
- This contains the complete source and object hierarchy in a form that can be browsed.
- FAQ
- A list of Frequently Asked Questions with answers.
- OpenWBEM in SUSE Linux
- An Introduction to WBEM and OpenWBEM in Novell's SUSE LINUX
- Novell CIM SDK
- Including a Developer Primer to WBEM and CIM
Related Projects
-
LIFE
This project represents a CIM/WBEM approach to instumenting the Linux platform. The goal is to provide OpenWBEM providers and utilities for the instumentation of devices and services.
-
Owperlprovider
a new Perl provider interface for OpenWBEM. This lets you write OpenWBEM providers in Perl.
-
kim-browser
The KDE CIM Browser is a KDE based frontend to management brokers using the CIM-XML protocol. The tool will be useful to view and modify CIM class hierarchies as well as instance and association structures.
The KDE CIM Browser uses the OpenWBEM client API.
-
CimNavigator
a Java client application that can be used to graphically browse CIM objects and their associations in various CIMOMs.
-
SBLIM
SBLIM (pronounced "sublime"), the Standards Based Linux Instrumentation for Manageability is an IBM Open Source project, intended to enhance the manageability of GNU/Linux systems.
A lot of the SBLIM Linux providers work with the OpenWBEM NPI & CMPI provider interfaces.
-
WBEM Services
The WBEM Services project is an effort to develop an open-source Java™ implementation of Web Based Enterprise Management (WBEM) suitable for commercial and non-commercial application. This project consists of APIs, server and client applications and tools.
-
OpenPegasus
Pegasus is an open-source implementation of the DMTF CIM and WBEM standards.
OpenWBEM Development
OpenWBEM is a complete implementation of WBEM maintained by Quest Software, Novell, and other volunteers. Dan Nuffer leads the OpenWBEM engineering efforts. While the current version is completely stable and usable, there are many interesting features and optimizations that can still be implemented. As an open-source project, development and participation for OpenWBEM is open to anyone willing to assist and contribute. Any contribution is welcome, from bug reports, to patches, to new features. If you want to join the project, post a note to the openwbem-devel list. Follow the links below for more information about working on OpenWBEM.
Credits
The sponsored and independent developers of the OpenWBEM Project. | |
Quest Software is the OpenWBEM project maintainer. | |
Novell is an OpenWBEM project contributor. | |
The WBEMsource Initiative is a sponsor of the OpenWBEM project. | |
SourceForge hosts the OpenWBEM project. |
Contacts
Before you ask for help, please read How To Ask Questions The Smart Way.
For support or discussion of OpenWBEM, you may subscribe to, post a message to, or take a look at one of the following mailing lists:
- openwbem-announce
- General OpenWBEM announcements
- openwbem-public
- For users of OpenWBEM