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.

About Russell Doty

A technology strategist and product manager at Red Hat, working on the next generation of open source systems.
This entry was posted in System Management. Bookmark the permalink.

2 Responses to Pegasus

  1. Remi Chateauneu says:

    “OpenPegasus includes support for developing Providers in Python;”

    Is it the package cmpi-bindings and the shared library , please ?

    Does it mean that theinterface type for this provider module is CMPI or is there any mean to call Python providers ?


    • Russ Doty says:

      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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s