The good thing about standards is that they allow multiple implementations of the standard. The bad thing about standards is that they allow multiple implementations of the standard…
The core of any management system based on DMTF/CIM technology is the object broker or CIMOM. The CIMOM provides the framework, integration, and glue for making the system work and connecting Providers to clients.
There are two CIMOMs commonly used on Linux systems: OpenPegasus and sfcb (small footprint cim broker). Both are included in all major Linux distributions.
OpenPegasus and sfcb do essentially the same thing. In general, Providers work with both CIMOMs and client tools and applications work with both. Both OpenPegasus and sfcb are solid packages. The major differences are in their targeted use cases – sfcb was designed for embedded applications, where small footprint and minimum resource requirements are critical. OpenPegasus was designed as a full-function CIMOM.
More work is required to support two CIMOMs than a single CIMOM. After considerable discussion, the OpenLMI project chose to standardize on OpenPegasus as the supported CIMOM for OpenLMI.
Reasons for this discussion include:
- An active upstream community with continued development. We are using the latest version of OpenPegasus, and are looking forward to future versions – especially the upcoming 2.14 release which adds support for a REST API.
- A more robust security model.
- Support for discovery using SLP (Service Location Protocol), which allows client systems to discover which systems can be managed by OpenLMI.
- Tooling for Provider development. OpenPegasus includes support for developing Providers in Python; it takes a mof file (schema definition) and produces a cmpi-compliant code template for Python.
“OpenPegasus includes support for developing Providers in Python;”
Is it the package cmpi-bindings and the shared library libpyCmpiProvider.so , please ?
Does it mean that theinterface type for this provider module is CMPI or is there any mean to call Python providers ?
Thanks
Support for Python Providers is actually part of the OpenPegasus ecosystem. The Pywbem package includes support for writing CMPI compliant Providers which can be used with OpenPegasus. See Pywbem on Sourceforge. This allows you to develop a CMPI compliant Provider in Python.
As a side note, Python is usually best suited to Providers that perform a function and then exit, rather than long running providers – we have seen some memory leak issues with long running Python programs. For example, Python is a good choice for a configuration Provider, but C may be a better choice for a monitoring Provider that runs continuously.