Pegasus - login | DMTF · A presentation for the DMTF 2002 DevCon Tuesday 11 June 4:30 – 5:30 pm....

95
Pegasus Pegasus An Open An Open - - Source Source CIMOM Implementation CIMOM Implementation Karl Schopmeyer Chair, Open Group Enterprise Management Forum A presentation for the DMTF 2002 DevCon Tuesday 11 June 4:30 – 5:30 pm

Transcript of Pegasus - login | DMTF · A presentation for the DMTF 2002 DevCon Tuesday 11 June 4:30 – 5:30 pm....

PegasusPegasusAn OpenAn Open--SourceSource

CIMOM ImplementationCIMOM ImplementationKarl Schopmeyer

Chair, Open Group Enterprise Management Forum

A presentation for the DMTF 2002 DevCon

Tuesday 11 June 4:30 – 5:30 pm

DMTF 2002 Developers' Conference June 10-13, 2002 Page 2

AgendaAgenda• Overview -What (and why)is

Pegasus?• The Pegasus Environment• The Pegasus Software

Architecture• Pegasus Status Today• The Pegasus Project• A Challenge for the Future

DMTF 2002 Developers' Conference June 10-13, 2002 Page 3

1. Overview1. Overview

DMTF 2002 Developers' Conference June 10-13, 2002 Page 4

What is Pegasus?What is Pegasus?• Pegasus is an open-source reference implementation

of the DMTF WBEM specifications• Pegasus is a work project of the TOG Enterprise

Management Forum• Pegasus is a platform for building application

management• Pegasus is a function-rich, production-quality open-

source implementation designed to be used in high volume server implementations.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 5

Why Produce Why Produce Pegasus?Pegasus?

• Demonstrate manageability concepts.• Provide additional standards for WBEM• Provide a working implementation of WBEM technologies• Provide an effective modular implementation• Support other Open Group manageability standards• Base Platform for Open Group Application management Projects• Help make WBEM real

Pegasus was Initiated in 2000 by the Open Group in collaboration with:

BMC SoftwareIBMTivoli Systems

DMTF 2002 Developers' Conference June 10-13, 2002 Page 6

Key Pegasus Key Pegasus ObjectivesObjectives

Pegasus

Open Source

Portable

EfficientAnd

Lightweight

StandardsBased

Continuity

ModularAnd

ExtensibleProduction

Quality

DMTF 2002 Developers' Conference June 10-13, 2002 Page 7

Pegasus Working Pegasus Working Group PhilosophyGroup Philosophy

• Manageability not management– The working group’s objective is not to manage systems but to

make them manageable by promoting a standard instrumentation environment

– The actual management of systems is left to systems management vendors

• No standards without implementation– The process of implementation provides a rigorous process for

testing the validity of standards– Therefore all standards must be validated by implementation

DMTF 2002 Developers' Conference June 10-13, 2002 Page 8

Open SourceOpen Source• Code and documentation freely available

– Open Group and Source Forge• MIT source license• Open to contributions• No commitment to Open Group to use code

DMTF 2002 Developers' Conference June 10-13, 2002 Page 9

PortablePortable• Designed for multi-platform, multi-OS, multi-compiler

implementation• Platforms ported today

– UNIX (AIX, HPUX, Solaris, Tru-Unix)– Linux– Windows Platforms (NT, 2000, 9x)– Compaq Himalaya (Tandem)

DMTF 2002 Developers' Conference June 10-13, 2002 Page 10

Efficient and Efficient and LightweightLightweight

• Core written in C++• Designed for execution efficiency• Designed to be production-quality solution

DMTF 2002 Developers' Conference June 10-13, 2002 Page 11

Standards BasedStandards Based• Based on DMTF CIM and CIM-XML specifications• Open Group is active partner in DMTF• Growth through participation in specification growth• Commitment to continue DMTF compliance

DMTF 2002 Developers' Conference June 10-13, 2002 Page 12

Modular and Modular and ExtensibleExtensible

• Minimize core object broker.• Maximize extensibility through plug-in components• Component types

– Providers– Provider interfaces– Clients– Repositories (additional repository handlers)– Manageability service extensions– Protocol Adapters– Modules (extend and modify core functions)

Modularity is key to doing parallel development and allowto extensibility

DMTF 2002 Developers' Conference June 10-13, 2002 Page 13

Project for Continued Project for Continued DevelopmentDevelopment

• WBEM will continue to develop functionality and standards

• Open Group will develop application management partly around Pegasus

• Pegasus Development will continue beyond current versions– Integrate contributions– Add basic new functionality– Etc.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 14

The Open GroupThe Open Group• Enterprise Management Forum

– Projects include:• Pegasus• Ex-SNIA Java Based open-source Implementation• Application Management APIs

– ARM– AIC

• Software Licensing Standards

• QoS Task Force– User/Supplier interaction forum to advance QoS and Service

Level Standards– Working with DMTF, IETF, TMN

DMTF 2002 Developers' Conference June 10-13, 2002 Page 15

2. The Pegasus Environment2. The Pegasus Environment

DMTF 2002 Developers' Conference June 10-13, 2002 Page 16

Pegasus Pegasus ArchitectureArchitecture

ConsumersConsumersConsumersConsumers

ClientsClients

CIM ServerCIM Server

ConsumersConsumersConsumersConsumers

ProvidersProviders

CIM/HTTPInteroperable*

Interoperable* CIM/HTTP In-Process

ServicesServices

StandardInterfaces

MOF

Compiler

MOF

Compiler

DMTF 2002 Developers' Conference June 10-13, 2002 Page 17

CIMOM CapabilitiesCIMOM Capabilities• Respond to Operations defined in “CIM Operations” spec.

– Create, Modify, Delete operations on• Class, Instance, Property, Qualifier

• Handle Provider Registration• Forward Requests to Providers, repositories, etc.• Read/Write access to Management Information

– Maintain Class/Instance Information• Traversal of Associations• Use of WBEM Query Language• Syntax/Semantic checking (with Qualifiers)• Available Implementations

– Microsoft (in Windows2000), Sun WBEM SDK, SNIA, Open Group Pegasus, …

DMTF 2002 Developers' Conference June 10-13, 2002 Page 18

Key Interoperability Key Interoperability InterfacesInterfaces

CIM Object Manager

CIM Object Manager

CIM ProvidersCIM Providers

ApplicationApplication

Manageability to Manager•Multiple management systems•Common open manageability

Object Manager / Providers• Multiple Providers•Encourage common providers

Management System

Management System

EnterpriseManagement

Console

EnterpriseManagement

Console

ApplicationApplicationApplicationApplication

ApplicationApplication

Provider / Resource Interface•Protect Applications•Make application management easy

DMTF 2002 Developers' Conference June 10-13, 2002 Page 19

The CIM OperationsThe CIM Operations

ConsumersConsumersConsumersConsumers

ClientsClients

CIM Object MgrCIM Object Mgr

ConsumersConsumersConsumersConsumers

ProvidersProviders

CIM/HTTPInteroperable*

Interoperable* CIM/HTTP In-Process

ServicesServices

StandardInterfaces

Repository

CIMOperations

CIMOperations

Repository

DMTF 2002 Developers' Conference June 10-13, 2002 Page 20

Operations RoutingOperations Routing• Class Operations

– Routed to the Class Repository• Instance Operations

– To Provider if Provider Qualifier exists– To Instance repository if no Provider

• Instance routing at Class Level Today– Issues – Routing at instance level

DMTF 2002 Developers' Conference June 10-13, 2002 Page 21

The CIM IndicationsThe CIM IndicationsConsumersConsumers

ConsumersConsumersClientsClients

CIM Object MgrCIM Object Mgr

ConsumersConsumersConsumersConsumers

ProvidersProviders

CIM/HTTPInteroperable*

Interoperable* CIM/HTTP In-Process

ServicesServices

StandardInterfaces

RepositoryRepository

IndicatorsIndicators

Indication

HandlersSNMP, cim-

xml, etc.SNMP, cim-

xml, etc.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 22

Modularity and Modularity and ExtensibilityExtensibility

• Providers– Grow with DMTF provider concepts

• Provider Interfaces• Protocol Adapters (connectors)

– Client - Xml-cim today (Soap, etc. in future)– Provider, service, repository, etc.

• Modules– Modularize core so it can be extended and modified through

attachable modules• Manageability Service Extensions

– Think super providers

DMTF 2002 Developers' Conference June 10-13, 2002 Page 23

Building A Modular Building A Modular Manageability Manageability EnvironmnentEnvironmnent

CoreObjectBroker

CoreObjectBroker

XML-CIM

ModuleModule

ModuleModule

ModuleModule

ModuleModule

ConnectorConnector

ProviderProviderConnectorConnector

ProviderProvider

ConnectorConnector

CIM ClientCIM ClientConnectorConnector

. . .Resources Resources Resources

ServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

Extension

RepositoryRepository

Undefined

CIM ClientCIM ClientCIM ClientCIM Client

RepositoryRepository

RepositoryRepository

ServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

Extension

DMTF 2002 Developers' Conference June 10-13, 2002 Page 24

ManagementSystem Connector

ManagementSystem Connector

Pegasus Pegasus Manageability Manageability EnvironmentEnvironment

CIM Object Broker•Provider Registration •Service Registration•Request Routing •Securiy

CIM Object Broker•Provider Registration •Service Registration•Request Routing •Securiy

Consumers

Providers

AICProvider

AICProvider

Apps OS Etc.

ARMProviderARM

Provider

Resource

Providers

Broker

ConsumersGatewaysApps

XML/CIMConnectorXML/CIMConnector

ManagementSystem Connector

ManagementSystem Connector

ApplicationConsumer

ApplicationConsumer

ClassRepository

ClassRepository

Servicescore***additional

InterfaceFor Spec

CIMOM ManagementSystem

. . .SNMPProviderSNMP

Provider

ManagementSystem

ApplicationConsumer

ApplicationConsumerApplicationConsumer

ApplicationConsumer

InstanceRepositoryInstance

Repository

DMTF 2002 Developers' Conference June 10-13, 2002 Page 25

Provider Provider InteroperabilityInteroperability

• In the classical architecture, interoperability is only supported between the client and server.

• In addition, the Pegasus architecture aims to support provider/server interoperability.

• Goal– Write a provider once and run it under any CIM server

implementation.• Provider/Server Interoperability:

– Participating in efforts to standardize the Provider/Server protocol.– Proposing provider API standards.– Writing adapters enabling Pegasus providers to run under other

CIM servers.– Adapters enabling other providers to run under Pegasus

DMTF 2002 Developers' Conference June 10-13, 2002 Page 26

Important Provider Important Provider InterfacesInterfaces

• SUN WBEM Provider Interface– Java based– Classes, etc. “similar” to Pegasus

• C Provider Interface– Sun has a specification here.

• We will support multiple provider interfaces and language bindings.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 27

InIn--Process and Process and OutOut--ofof--process process ProvidersProviders• Today Pegasus based on shared Library Providers

• Extend to– Internal Providers– IPC based Providers– Providers in Remotes systems

• Objectives:– Write Provider once and compile/link for different environments

• Technique– Use connectors as basis for provider/CIMOM communication

• Issues– Security, discovery

DMTF 2002 Developers' Conference June 10-13, 2002 Page 28

Manageability Manageability Service ExtensionsService Extensions

• Super Providers• Access to the Core Broker

• Examples– Indication Subscription

service.– Class repository service.– Instance repository service.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 29

Connectors Connectors (Protocol Adapters)(Protocol Adapters)

• Functions– Adapt to different protocols

• Characteristics– Protocol– Encoding– Security– Discovery

• Examples– Xml-CIM– Local Protocols– Soap– WMI– Corba environment interface

Pegasus CorePegasus Core

Xml-cimConnectorXml-cim

Connector

PegasusProvider

PegasusProvider ConnectorConnector

RemoteProvider

Xml-cimClient

Xml-cimClient

SoapConnector

SoapConnector

SoapClient

SoapClient

CorbaConnectorCorba

Connector

ExternalCorba

Environment

DMTF 2002 Developers' Conference June 10-13, 2002 Page 30

ServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

ExtensionServiceExtensionService

Extension

RepositoryRepository

Pegasus InterfacesPegasus Interfaces• Common Interface base for

– Clients, providers, services, connectors

• Based on CIM Operations over HTTP

• Additional functions for each interface

• Interfaces separated from implementation

CoreObjectBroker

CoreObjectBroker

ProviderProvider

ConnectorConnector

CIM ClientCIM ClientConnectorConnector

DMTF 2002 Developers' Conference June 10-13, 2002 Page 31

3. The Pegasus Software 3. The Pegasus Software ArchitectureArchitecture

IntroductionIntroduction

DMTF 2002 Developers' Conference June 10-13, 2002 Page 33

Major Components Major Components

Client

CIM Server Repository

ClientCIMClients

ClientClientCIMProviders

DMTF 2002 Developers' Conference June 10-13, 2002 Page 34

TopicsTopics• Communication.• Representation of CIM Elements.• The Client Interface.• The CIM Object Manager.• The Provider Interface.• The Repository Interface.

CommunicationCommunication

DMTF 2002 Developers' Conference June 10-13, 2002 Page 36

Pathways of Pathways of Communication Communication

Client

CIM Server CIMRepository

ClientCIM Clients

ClientClientCIM Providers

DMTF 2002 Developers' Conference June 10-13, 2002 Page 37

Component LocationComponent Location• A component may be located in one of three places

with respect to the CIM Server.– In-process.– Local out-of-process (on the same machine).– Remote out-of-process (on another machine).

• For example, a provider may be in-process, local, or remote.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 38

Component Location Component Location in Pegasus Todayin Pegasus Today

In-Process Local RemoteClient XProvider XRepository X

DMTF 2002 Developers' Conference June 10-13, 2002 Page 39

Possible Possible Communication Communication MechanismsMechanisms• Components could potentially communicate with the

CIM Server using the following mechanisms:– CIM/HTTP (remote).– Proprietary TCP-based protocol (remote).– Direct call (in process).– Shared memory (local).– Named pipes (local).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 40

Communication Communication Mechanisms in Mechanisms in PegasusPegasus

In-Process Local RemoteClient CIM/HTTPProvider Direct CallRepository Direct Call

DMTF 2002 Developers' Conference June 10-13, 2002 Page 41

Client Client CommunicationCommunication

• Uses CIM/HTTP as sole protocol.• Asynchronous socket I/O.• An efficient XML parser.• Fast enough to eliminate the need for a proprietary

protocol.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 42

An Efficient XML An Efficient XML ParserParser

• No memory heap usage during parsing.• Modifies message in place to avoid copying.• Non-validating parser (“loose validation”).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 43

HTTP HTTP ImplementationImplementation

• Uses asynchronous socket I/O in conjunction with message queues to achieve optimal throughput.

• Provides entry points to adding web server capabilities such as putting and getting of documents (to support remote upgrade and deployment later on).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 44

ProposalsProposals• Support out-of-process providers (local and remote).• Support out-of-process repositories (local and remote).• Location independent provider development.

Representation of CIM Representation of CIM ElementsElements

Representing CIM Elements in Pegasus with C++

DMTF 2002 Developers' Conference June 10-13, 2002 Page 46

CIM Data Types in CIM Data Types in C++C++

• Uint8• Sint8• Uint16• Sint16• Uint32• Sint32• Uint64• Sint64• Real32• Real64

• Boolean• Char16• String• CIMDateTime• CIMReference

DMTF 2002 Developers' Conference June 10-13, 2002 Page 47

CIM Values in C++CIM Values in C++• CIM values (property, parameter, and qualifier values)

are represented using the CIMValue class. This class:– Encapsulates a union of all CIM data types.– Has a type member indicating the type currently being

represented.– Provides access/modifier methods overloaded for each CIM

data type.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 48

CIM Elements in C++CIM Elements in C++• CIMClass• CIMInstance• CIMProperty• CIMMethod• CIMParameter• CIMQualifierDecl• CIMQualifier

DMTF 2002 Developers' Conference June 10-13, 2002 Page 49

Class Declaration Class Declaration Example (Part 1)Example (Part 1)

• Consider the following MOF class declaration:class Alarm{

[key]uint64 id;string message = “none”;

};

• This class is defined in C++ as follows:CIMClass alarmClass(“Alarm”);CIMProperty id(“id”, Uint32(0));id.addQualifier(CIMQualifier(“key”, true)); CIMProperty message(“message”, “none”);alarmClass.addProperty(id);alarmClass.addProperty(message);

• Or more succinctly like this:CIMClass alarmClass(“Alarm”);alarmClass

.addProperty(CIMProperty(“id”, Uint32(0)).addQualifier(CIMQualifier(“key”, true)))

.addProperty(CIMProperty(“message”, “none”));

DMTF 2002 Developers' Conference June 10-13, 2002 Page 50

Property Iteration Property Iteration Example:Example:

• The properties of a class may be iterated like this:CIMClass c;…for (Uint32 i = 0, n = c.getPropertyCount();

i < n; i++){

CIMProperty p = c.getProperty(i);}

The Client InterfaceThe Client Interface

DMTF 2002 Developers' Conference June 10-13, 2002 Page 52

The Client InterfaceThe Client Interface

Client

CIM Server Repository

ClientCIMClients

ClientClientCIMProviders

DMTF 2002 Developers' Conference June 10-13, 2002 Page 53

The Client InterfaceThe Client Interface• A C++ interface for interacting with the Pegasus Server

(or any CIM Server).• Uses CIM/HTTP to communicate.• Provides a method for each CIM operation defined in

the “CIM Operations over HTTP, V1.0” specification.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 54

The CIM OperationsThe CIM Operations• GetClass• GetInstance• DeleteClass• DeleteInstance• CreateClass• CreateInstance• ModifyClass• ModifyInstance• EnumerateClasses• EnumerateClassNames• EnumerateInstances• EnumerateInstanceNames• ExecQuery

• Associators• AssociatorNames• References• ReferenceNames• GetProperty• SetProperty• GetQualifier• SetQualifier• InvokeMethod

DMTF 2002 Developers' Conference June 10-13, 2002 Page 55

CIM Operation CIM Operation ExampleExample

virtual CIMInstance getInstance(const String& nameSpace,const CIMReference& instanceName,Boolean localOnly = true,Boolean includeQualifiers = false,Boolean includeClassOrigin = false,const Array<String>& propertyList =

NULL_PROPERTY_LIST);

<instance> GetInstance ([IN] <instanceName> InstanceName,[IN,OPTIONAL] boolean LocalOnly = true,[IN,OPTIONAL] boolean IncludeQualifiers = false,[IN,OPTIONAL] boolean IncludeClassOrigin = false,[IN,OPTIONAL,NULL] string PropertyList [] = NULL

)

CIMOperations

Specification

PegasusClass

Method

DMTF 2002 Developers' Conference June 10-13, 2002 Page 56

Client Connection Client Connection ExampleExample

• A client connects to the CIM Server on the host called “saturn” at port 5988 like this:Selector selector;CIMClient client(&selector);client.connect(“saturn:5988”);

DMTF 2002 Developers' Conference June 10-13, 2002 Page 57

GetClass ExampleGetClass Example• A client gets a class like this:

CIMClass alarmClass = client.getClass(“root/cimv2”, “Alarm”);

DMTF 2002 Developers' Conference June 10-13, 2002 Page 58

Client ProposalsClient Proposals• Asynchronous Interface APIs• Interface independent of local/remote client

The CIM Object ManagerThe CIM Object Manager

DMTF 2002 Developers' Conference June 10-13, 2002 Page 60

The Pegasus CIMOMThe Pegasus CIMOM

Client

CIM Server Repository

ClientCIMClients

ClientClientCIMProviders

DMTF 2002 Developers' Conference June 10-13, 2002 Page 61

Request LifecycleRequest Lifecycle

Channel

Protocol

Encodings

Dispatcher

ProvidersProvidersProviders

Repository

1. Receive TCP Message

2. Process HTTPRequest

3. Decode from XML

4. Dispatch Request

Incoming Request

Channel

Protocol

Encodings

Aggregator

8. Transmit TCP Message

7. Form HTTP Response

6. Encode to XML

5. Aggregate Resul

Outgoing Response

DMTF 2002 Developers' Conference June 10-13, 2002 Page 62

CIMOM ModulesCIMOM Modules• Channel - Implements transport mechanism (e.g., TCP).• Protocol - Implement application protocol (e.g., HTTP).• Encodings - Implements encoding and decoding of

messages (e.g., CIM-XML).• Dispatcher - Dispatches messages to

provider(s)/repository.• Repository - Implements CIM Repository.• Aggregator - Aggregates results.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 63

Module ConceptModule Concept• The internal CIMOM architecture is being refined into a

set of modules.• Each module handles part of the request lifecycle.• Alternative implementations may be provided for each

module type.• New module implementations can be used to modify or

refine the behavior of the CIMOM and to facilitate porting.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 64

Module Module ImplementationsImplementations

• Channel - provide a named-pipe implementation.• Protocol - provide a proprietary binary protocol.• Encodings - provide a binary encoding scheme.• Repository - provide a relational-based implementation.• Traffic Encryption - SSL implementation.• Authentication – Challange and response

DMTF 2002 Developers' Conference June 10-13, 2002 Page 65

Queued Operation Queued Operation ModelModel

• Internal representation of operations/Indications is messages

• Major components are queue driven• Mapped to direct interfaces (ex. getClass) at provider

manager.• Message manager controls flows, proiorities, etc.• Advantages

– Efficiency– Threading– Extensible interfaces– Flow Control

DMTF 2002 Developers' Conference June 10-13, 2002 Page 66

Module Definition Module Definition and Loading and Loading

• Modules implement one of the module interfaces (e.g., Repository).

• Modules are configured as dynamic libraries.• Modules listed in modules file.• Modules loaded by CIMOM on startup.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 67

Provider Mgr Subsystem

CIM XML Comm Module

CIM Operations Processing subsystem

Services Subsystem

PegasusMsgDispatcher

IndicationHandlerManager

CIM-XMLIndication

handler

Repository

ProviderManager

provider

CIM Control Services•Start/Stop Function•Provider registration Function•User/Auth. Function•jj•Jj•__Namespace

SubscriptionService and

Indication Processor

IndicationImport

providerprovider

Client Interface (cim-xml today)

Acceptor

HttpDelegator

Authentication

XMLDecoder

XMLEncoder

Authorization

OperationsRequest

Processor

OperationsResponseProcessor

Responsegenerator

Formal ProviderInterface

IndicationConsumerManager

IndicationConsumerManager

CIM ExportRequest Processor

CIM ExportRequest Decoder

ExportIndication

Pegasus Module Organization

LocalDestination

SNMPIndication

handler

Httpxxx

xxx

The Provider InterfaceThe Provider Interface

DMTF 2002 Developers' Conference June 10-13, 2002 Page 69

The Provider The Provider InterfaceInterface

Client

CIM Server Repository

ClientCIMClients

ClientClientCIMProviders

DMTF 2002 Developers' Conference June 10-13, 2002 Page 70

The Provider The Provider InterfaceInterface

• The provider interface is defined by the CIMProviderclass.

• The provider interface has a method for each CIM operation in the “CIM Operations over HTTP, V1.0” specification.

• CIMProvider is a base provider interface (more refined provider interfaces are being developed).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 71

CIMProvider CIMProvider MethodsMethods

• getClass()• getInstance()• deleteClass()• deleteInstance()• createClass()• createInstance()• modifyClass()• modifyInstance()• enumerateClasses()• enumerateClassNames()• enumerateInstances()• enumerateInstanceNames()• execQuery()

• Associators()• associatorNames()• references()• referenceNames()• getProperty()• setProperty()• getQualifier()• setQualifier()• invokeMethod()

DMTF 2002 Developers' Conference June 10-13, 2002 Page 72

Example of Example of modifyInstancemodifyInstance()()

• The provider developer derives from CIMProvider and overrides the modifyInstance() method.class MyProvider : public CIMProvider{

…};virtual void MyProvider::modifyInstance(

const String& nameSpace,CIMInstance& modifiedInstance)

{// Modify the instance here!…

}

DMTF 2002 Developers' Conference June 10-13, 2002 Page 73

Provider Provider Registration and Registration and LoadingLoading• Providers are configured as dynamic libraries with an

entry point function for creating the provider instance.• Provider / Class association controlled by provider

registration (install instance of provider registration classes)

• Provider is loaded on demand (when instances of that class are requested).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 74

Provider InterfacesProvider Interfaces• Provider interfaces exist for the following Provider

Types:– Instance provider– Method provider– Query provider– Event provider– Association provider

DMTF 2002 Developers' Conference June 10-13, 2002 Page 75

Provider ManagersProvider Managers• Provider Interface Managers map the base provider

interface onto one or more other provider interfaces. This scheme may be used to:– Refine the base provider interface into several provider

interfaces (as mentioned above).– Convert from message based operations to direct call for the

provider.– Map the provider interface onto other language provider

interfaces (e.g., Java, Perl, Tcl).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 76

Provider ProposalsProvider Proposals• Interoperability with SUN Wbem providers proposal• We are extending other interoperability ideas

PegasusCIMOM

PegasusCIMOM

SUN WBEMCIMOM

SUN WBEMCIMOM

MicrosoftCIMOM

MicrosoftCIMOM

PegasusProvidersPegasusProviders

SUN WBEMProviders

SUN WBEMProviders

Microsoft WMIProviders

Microsoft WMIProviders

The Repository InterfaceThe Repository Interface

DMTF 2002 Developers' Conference June 10-13, 2002 Page 78

The Repository The Repository InterfaceInterface

Client

CIM Server Repository

ClientCIMClients

ClientClientCIMProviders

DMTF 2002 Developers' Conference June 10-13, 2002 Page 79

The Repository The Repository InterfaceInterface

• Defines the interface to manipulating the CIM repository.

• Alternative implementations of this interface may be provided.

• Pegasus provides a simple default implementation.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 80

Default Repository Default Repository ImplementationImplementation

• Each CIM Class object is stored in its own file.• Instance objects stored in single file for each class• CIM objects are encoded as XML in files.• Namespaces are represented using file system

directories.• Single reader/writer at a time.• Example: the class X (subclass of Y) which resides in

the root/cimv2 namespace would be stored in this file:

<repository_root>/root#cimv20/classes/X.Y

DMTF 2002 Developers' Conference June 10-13, 2002 Page 81

Default Repository Default Repository LimitationsLimitations

• Adequate for classes and qualifiers (which tend to be few).

• Okay for a few hundred instances.• Not intended to scale to thousands of instances (uses

a lot of disk space due to internal fragmentation).• Good for scenario in which a few instances come from

the repository and many instances come from providers.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 82

Proposed Proposed Repository Repository ImplementationImplementation• A new repository implementation is under

consideration to improve scalability:– Encode objects in binary on disk (rather than XML). This will

reduce size by three to one.– Combine like objects into a single file rather than separate files

(this will reduce internal fragmentation).– Provide a fast indexing scheme for keys (disk hashing or B+-

Trees). This will improve lookup time.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 83

Alternative Alternative Repository ModulesRepository Modules

• Repository modules may be developed to achieve a highly scalable repository. Possibilities include:– Basing repository on a relational database.– Basing repository on Unix DB.– Making the repository remote.– Improving space utilization of existing implementation by

storing objects in binary format (rather than as XML).

DMTF 2002 Developers' Conference June 10-13, 2002 Page 84

4. The Pegasus Project4. The Pegasus ProjectTodayTodayAndAnd

TomorrowTomorrow

DMTF 2002 Developers' Conference June 10-13, 2002 Page 85

Status TodayStatus Today• Version 1 complete (Beta Level Code) - 2001

– Includes• CIMOM including

– HTTP Server and CIM-xml Protocol– Provider interfaces and dispatch– Repository with Instances, Classes, Associations– C++ CIM Object Model representation– Admin and support functions

• MOF Compiler• Client Interface and test clients• Test providers• Integrated unit and client server tests (regression)

• Version 2 Functionally Complete– Provider manager– Provider Registration– Add CIM Indications processing– Threading, message queue based model– Security– Production functions (Startup, stop, provider replacement, configuration, etc.)

• In Process Today– Stability Testing

• Version 2.x – Summer/fall 2002

DMTF 2002 Developers' Conference June 10-13, 2002 Page 86

The Components The Components TodayToday

Pegasus CIMObject ManagerPegasus CIM

Object Manager

CompilerCompiler

InstanceRepositoryInstance

Repository

ClassRepository

ClassRepository

C++ProviderManager

C++ProviderManager

C++Providers

C++Providers

CInterfaceAdapter

CInterfaceAdapter

BrowsingClient

BrowsingClient

TestClientsTest

Clients

Cim-XmlIndicationHandler

Cim-XmlIndicationHandler

SNMPIndicationHandler

SNMPIndicationHandler

DMTF 2002 Developers' Conference June 10-13, 2002 Page 87

Pegasus Who’s WhoPegasus Who’s Who• The Pegasus

Contributors– IBM– Compaq– HP– BMC

• The Pegasus Users Today– IBM– Compaq– HP

IBM CommitmentIBM has chosen CIM/Wbem as the strategic technology for hardware platform instrumentation and manageability of all server platforms.

Pegasus is the CIMOM that IBM has selected to include with eServer platforms in 2002 and beyond.

During 2002 IBM is planning on maintaining and contributing to Pegasus for the Linux, Windows, AIX, OS/400 and System 390 operating environments.

IBM CommitmentIBM has chosen CIM/Wbem as the strategic technology for hardware platform instrumentation and manageability of all server platforms.

Pegasus is the CIMOM that IBM has selected to include with eServer platforms in 2002 and beyond.

During 2002 IBM is planning on maintaining and contributing to Pegasus for the Linux, Windows, AIX, OS/400 and System 390 operating environments.

DMTF 2002 Developers' Conference June 10-13, 2002 Page 88

The Functions TodayThe Functions Today

• CIMOM Functions– Class and Instance– Security– Threading– Queued execution model– Async CIM Operations APIs– Modular Services– C++ Provider Manager– Provider Control

• WBEM Functions– Provider Registration– CIM Operations– Indications (Process)

• Clients– Test Clients

• Providers– In-Process– Test– Sample Implementations

• OS• ComputerSystem

• Platforms– Unix (AIX, HP-UX, Tru-UNIX– Compaq Himyla– Linux– Windows

Current with CIM 2.6

DMTF 2002 Developers' Conference June 10-13, 2002 Page 89

Planned ExtensionsPlanned Extensions• CIMOM Functions

– Indications (Lifecycle)– Increased Modularity– Enhance Service Configuration– Additional Provider Managers

• C Provider Interface• Java Provider Interface

– Out-of-Process Providers• WBEM Functions

– Discovery– CIMOM Object Manager Characteristics

• Clients– Object Browser– Test Clients

• Protocol Adapters– Add protocol Adapters

• Providers– Test– Extend Generic Providers

• Platforms– Easier portability– More platforms

DMTF 2002 Developers' Conference June 10-13, 2002 Page 90

5. More 5. More InformationInformation

DMTF 2002 Developers' Conference June 10-13, 2002 Page 91

Open GroupOpen Group• The Enterprise Managenemt Forum

– http://www.opengroup.org/management• The Pegasus Web Site and code

– http://www.opengroup.org/pegasus• The ex-SNIA web site and code

– http://www.opengroup.org/snia

DMTF 2002 Developers' Conference June 10-13, 2002 Page 92

Other Manageability Other Manageability ProjectsProjects

• AIC – Application and Control– AIC as a Pegasus Provider

• ARM – Applications Response Measurement– ARM and DMTF DAP Information as Pegasus Provider

• Other possible Providers– JMX (Java)– SNMP– DMI– WMI

DMTF 2002 Developers' Conference June 10-13, 2002 Page 93

Open Source and Open Source and WBEMWBEM

• Implementations– Pegasus (The Open Group)– Ex-SNIA CIMOM (The Open Group)– Caldera (Linux)– Sun WBEM Services

• Working towards Commonality through a new Consortium – WBEMSource Consortium

DMTF 2002 Developers' Conference June 10-13, 2002 Page 94

WBEMSourceWBEMSourceConsortiumConsortium

Create commonality between

implementations and integrate different implementations.

Create commonality between

implementations and integrate different implementations.

Create common interfaces and

APIs

Create common interfaces and

APIs

Create a library of providers and toolsCreate a library of providers and tools

Create an environment of open-

source WBEM implementations

Create an environment of open-

source WBEM implementations

Create an environment of conformance

Create an environment of conformance

WBEMsourceWBEMsource

Members Include:Sun, Compaq,HP, IBM, Tivoli, Open Group,SNIA, Caldera, Novell, Nokia, Intel

Members Include:Sun, Compaq,HP, IBM, Tivoli, Open Group,SNIA, Caldera, Novell, Nokia, Intel

Hosted byThe OpenGroup

DMTF 2002 Developers' Conference June 10-13, 2002 Page 95

6. QUESTIONS?6. QUESTIONS?