WBEMStackSpec

Summary

To be compatible with enterprise management environments and tools, Ubuntu needs to provide a WBEM framework : open source CIMOM, command-line client and basic CMPI providers.

Release Note

Ubuntu Server can now seamlessly integrate into WBEM-compatible enterprise management environments, thanks to a lightweight WBEM CIMOM stack and instrumentation.

Rationale

To appear as a viable alternative in the Enterprise Server OS market, we need to provide solutions to integrate with enterprise management frameworks. WBEM is one of the many aspects of this issue: a DMTF open standard covering a set of systems management technologies.

Use Cases

Herbert uses IBM Director to manage his distributed computing environment. He uses the WBEM framework to connect IBM Director to his Ubuntu servers.

Susan wants to integrate some tools with management tasks on her Ubuntu server. She uses the complete WBEM stack (including the WBEM CLI and a Python API) to integrate her tools with the existing CIMOM and providers.

Assumptions

Most downstream applications (the management frameworks that would call the WBEM stack) currently tend to use their own customized WBEM "agents" on controlled computers. However the current market trend seem to be to more closely adhere to the standard and support integration of a more standards-based stack.

A basic stack needs to be available on Ubuntu Server to gather initial momentum on these issues. Discussion with those downstream application providers should continue to make sure it is valuable to push further resources in WBEM instrumentation.

Design

Requirements

  • Lightweight
  • Modular
  • In active development

Product choice

Three open source products have been identified as potential solutions for a WBEM stack:

A complete analysis is available in the "Discussion" part at the end of this spec. The OpenWBEM is no longer active, it is rumored that Novell will switch to OpenPegasus soon. OpenPegasus is active, but its monolithic approach makes it a little heavyweight and harder than it should be to use. SBLIM proposes a modular solution with lightweight components. It appears as the easiest to package and its CMPI providers are used by RedHat, integrated with OpenPegasus.

Implementation

The idea would be to build a WBEM stack around the SBLIM components.

Intrepid target

A minimal WBEM stack based on SBLIM would be packaged for Intrepid. It would include the following source packages:

Source package

Description

Licensing

Binary packages

Depends (optional)

sblim-sfcb

Lightweight CIMOM

EPL

sfcb, sfcb-test

curl, cim-schema (PAM, openSSL, openslp-dfsg, sblim-sfcc)

cim-schema

DMTF CIM schema

?

cim-schema

sblim-wbemcli

WBEM CLI client

CPL

wbemcli

curl

sblim-cmpi-devel

CMPI headers

EPL

libcmpicppimpl0 libcmpicppimpl0-dev

sblim-cmpi-base

Base CMPI provider and lib

CPL

libcmpiosbase-common0 libcmpiosbase-common0-dev sblim-cmpi-base

sblim-cmpi-devel

We already have in universe:

Source package

Description

Licensing

Binary packages

Depends

sblim-sfcc

WBEM C client library

EPL

libcimcclient0 libcimcclient0-dev

curl

Intrepid+n targets

More CMPI providers should be added (sblim-cmpi-fsvol, sblim-cmpi-services, sblim-cmpi-params...). A specific cmpi-deb provider could also be written to match the functionality of sblim-cmpi-rpm (reporting on installed packages).

We should also package a client Python library for WBEM (PyWBEM looks like a good candidate).

Test/Demo Plan

$ sudo apt-get install sfcb sblim-cmpi-base wbemcli
$ wbemcli ecn 'http://localhost:5988/root/cimv2'
$ wbemcli -nl ei 'http://localhost:5988/root/cimv2:Linux_Processor'

Outstanding Issues

The DMTF CIM schema comes with a file header which implies usage restrictions, especially it does not grant any rights to modification. cim-schema was therefore demoted to multiverse (as was sfcb, which depends on cim-schema), until we can figure out a way around this problem.

BoF agenda and discussion

Comparative analysis

OpenWBEM

Features of the CIM server:

  • CIM 2.2, CIM operations over HTTP 1.1, HTTPS, SLP
  • Extensible auth: PAM, HTTP Digest, Local, Simple, SSL client cert trust store
  • Provider interfaces: C++, CMPI, NPI, Perl/NPI, Perl/SWIG
  • Remote provider interfaces: remote WBEMServer
  • Indications, CIM Listener support
  • WQL Level 2

Packageability:

  • License: BSD-style (+ CPL for CMPI/NPI/Perl provider interfaces)
  • Build mechanism: classic configure / make
  • Deps: -
  • Optional deps:
    • libpam0g-dev (for PAM authentication module)
    • libssl-dev (for CIM Operations over HTTPS)
    • libslp-dev (SLP support)
    • zlib1g-dev (for compression in HTTP connections)

SBLIM

  • IBM-backed project
  • Active project with various components
  • Best known for their CMPI Providers (compatible with OpenWBEM, SFCB and OpenPegasus)

  • Bug tracker: SourceForge

  • VCS: SourceForge CVS

Features of the CIM server (SFCB):

  • Lightweight, HTTPS, SLP
  • Extensible auth: PAM, Simple, SSL client cert trust store
  • Provider interfaces: CMPI
  • Remote provider interfaces: remote CMPI
  • CIM process and lifecycle indications

Packageability:

  • License: Eclipse Public License
  • Build mechanism: classic configure / make
  • Deps: libcurl
  • Optional deps:
    • libpam0g-dev (for PAM authentication module)
    • libssl-dev (for HTTPS)
    • libslp-dev (SLP support)

OpenPegasus

  • An Open Group project (HP, IBM, Sun...)
  • Endorsed by RedHat

  • Version 2.7.1 in April 2008
  • Active project, with visibility on the development process
  • Bug tracker: Bugzilla
  • VCS: CVS

Features of the CIM server:

  • CIM 2.3, CIM operations over HTTP 1.2, HTTPS, SLP (alpha)
  • Extensible auth: PAM, Local, Simple (alpha), SSL client cert trust store (beta), cimauth (alpha)
  • Provider interfaces: C++, CMPI, JMPI (alpha)
  • Remote provider interfaces: Remote CMPI (alpha)
  • Process indications, Lifecycle indications (alpha), CIM Listener support
  • WQL Level 2, CQL Stage 1 (beta), ExecQuery (alpha)

Packageability:

  • License: MIT
  • Build mechanism: manual env setting + make, more work to make it somewhat LSB-compliant
  • Deps: -
  • Optional deps:
    • libpam0g-dev (for PAM authentication module)
    • libssl-dev (for CIM Operations over HTTPS)
    • libslp-dev (SLP support)
    • zlib1g-dev (for compressed repository)
    • libicu (for message i18n)


CategorySpec

WBEMStackSpec (last edited 2009-02-10 19:04:28 by mathiaz)