pegasus - login | dmtf · a presentation for the dmtf 2002 devcon tuesday 11 june 4:30 – 5:30 pm....
TRANSCRIPT
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 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
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.
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);}
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
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
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
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 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