WBEM Overview


OpenLMI is built on top of WBEM set of standards, namely Common Information Model (CIM) and CIM-XML protocol. For most users it's enough to know that WBEM provides remote API for system management and that this API is object oriented, with classes, instances, methods and so on.

Server-side components


A WBEM server is called CIM Object Manager (CIMOM). It listens on a TCP port(s), parses incoming CIM-XML messages, performs authentication, but it does not do any system management by itself. For that purpose, the CIMOM talks to providers.

As an example, the CIMOM does not know anything about management of system services, it just knows that there is a LMI_Service class and all requests regarding the class shall be directed to openlmi-service provider.

OpenLMI has been designed to work with these open-source CIMOMs:


provider is a management agent, controlled by the CIMOM, which really performs actions on the managed system. The interface between CIMOM and the providers can be propriatery, however some CIMOMs implement standardized C API called Common Manageability Programming Interface (CMPI).

For example, openlmi-service provider is the one, who shows all system services as instances of LMI_Service class and also implements methods of the class - such as LMI_Service.StartService(), which starts appropriate system service like httpd or cups.

OpenLMI project focuses on development of providers that actually manage Linux systems. 

Client side components

There are multiple opens source implementations of various CIM client componets. Following list does not need to be complete and provides just generic overview. OpenLMI focuses on development of higher-level client

Multiple language bindings


OpenLMI develops lmishell, a high-level python-based WBEM client, that can be used for scripting or as an interactive shell.

LMI metacommand

OpenLMI provides a command line utility called lmi metacommand to perform discovery and operations on remote managed systems