Title: Overview of Pegasus An OpenSource WBEM implementation
1Overview ofPegasusAn Open-SourceWBEM
implementation
- 17 July 2001
- Karl Schopmeyer(k.schopmeyer_at_opengroup.org)
Version 1.0
2Agenda
- Overview -What (and why)is Pegasus?
- The Pegasus Environment
- The Pegasus Software Architecture
- Pegasus Status Today
- Plans
- The Pegasus Project
- A Challenge for the Future
31. Overview
4What 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.
5Why Produce Pegasus?
- Demonstrate manageability concepts.
- Provide additional standards for WBEM
- Provide a working implementation of WBEM
technologies - Provide an effective modular implementation
- Support other TOG manageability standards
- Base Platform for Open Group Application
management Projects
6Origins of Pegasus
- Pegasus was initiated in 2000 by the Open Group
in collaboration with - BMC Software
- IBM
- Tivoli Systems
7Key Pegasus Objectives
MIT License
Open Source
Standards Based
DMTF WBEM
Pegasus
Continuity
Portable
C and portable Libraries
Modular And Extensible
Efficient And Lightweight
Production Quality
C Code Base
8Pegasus Working Group Philosophy
- Manageability not management
- The working groups 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
9Pegasus is Open 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
10Pegasus is Portable
- Designed for multi-platform, multi-OS,
multi-compiler implementation - Platforms ported today
- UNIX (AIX, HPUX, Compaq Tru64, Solaris)
- Linux
- Windows Platforms (NT, 2000, 9x)
- Compaq Himalaya (Tandem)
11Efficient and Lightweight
- Core written in C
- Designed for execution efficiency
- Designed to be production-quality solution
12Pegasus is Standards 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
13Pegasus is Modular and Extensible
- 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
14Project for Continued Development
- 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.
152. WBEM and CIM Techlologies
16WBEM Architectures
WBEM
17 What it is CIM?
- CIM is an implementation neutral schema for
describing overall management information - CIM facilitates the common understanding of
management data across different
management systems - CIM facilitates the integration of management
information from different
sources - CIM today is a data model not an implementation
- MOF syntax supports sharing information across
management systems - CIM provides models for both instrumentation and
management
18DMTF WBEM Components
CIM Specification V2
19Web-based Enterprise Management (WBEM)
- Information Model
- CIM Schema (Core, System,)
- Communication Model
- CIM Operations over HTTP
- Transport Encoding
- Cim-xml CIM/XML mapping
- Event Model
- CIM indications (new in 2.5)
- CIM Object Manager (CIMOM)
- Operation Routing
- Result Aggregation
- Repository
- Class and Instance Persistence
- Resource Providers
- Instrumentation subagents
Management Applications
CIM Client
cim-xml Transport
CIM Object Manager
Schema
CIM Server
Resource Providers
20Common Information Model
- Defines the Schema used to represent real-world
objects being managed - Object oriented paradigm
- CIM Specification
- Meta model, high level concepts, and definition
language (MOF) - CIM Schema
- Core and Common Model
21Interoperability
- XML encoding
- Definition for each operation
- HTTP Transport
- HTTP 1.0 and 1.1
- Common Operations Semantics
- Data
- Meta data
- Queries?
- Methods
CIM Client
CIM Server
Managed Resources
Managed Resources
Managed Resources
Managed Resources
Managed Resources
Managed Resources
22Managed Object Format (MOF)
232. The Pegasus Environment
24Major Components
Client
Many Clients Management Applications
Client
CIM Clients
CIM-XML
Repository
CIM Object Manager
Client
Client
Many Providers per CIMOM
CIM Providers
25Key Interoperability Interfaces
Management System
Enterprise Management Console
- Manageability to Manager
- Multiple management systems
- Common open manageability
CIM Object Manager
- Object Manager / Providers
- Multiple Providers
- Encourage common providers
CIM Providers
- Provider / Resource Interface
- Protect Applications
- Make application management easy
Application
Application
Application
Application
26CIMOM 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,
27Pathways of Communication
Client
Client
CIM Clients
CIM Repository
CIM Object Manager
Client
Client
CIM Providers
28Component 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.
29Component Location in Pegasus Today
30Possible Communication Mechanisms
- 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).
31Communication Mechanisms in Pegasus
32The Pegasus CIMOM
Client
Client
CIM Clients
Repository
CIM Server
Client
Client
CIM Providers
33Operations 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
34Operation Routing
Client
- Class Operations
- Routed to the Repository
Client
CIM Clients
Repository
CIM Object Manager
Client
Client
CIM Providers
35Operation Routing
Client
- Instance Operations Routng
- Routing By Class
- To Provider if Qualifier Defined
- Default is to Instnace Repository
Client
CIM Clients
Repository
CIM Object Manager
Client
Client
CIM Providers
36Indication Routing
Client
Client
Client
Client
CIM Listener
CIM Clients
Subscriptons
Handler
Handler
Handler
Repository
CIM Object Manager
Indications
Client
Client
CIM Providers
37Request Lifecycle
Outgoing Response
Incoming Request
1. Receive TCP Message
Channel
Channel
8. Transmit TCP Message
Protocol
7. Form HTTP Response
2. Process HTTP Request
Protocol
Encodings
Encodings
3. Decode XML
6. Encode to XML
Aggregator
Repository
5. Aggregate Results
Dispatcher
4. Dispatch Request
38Key Characteristics
- Open source
- Available Today
- Portable
- Designed to build and run on wide variety of
platforms - C core
- C CIM Objects
- C Operation/Provider/Service/Repository
interfaces - Modular and extensible
- Modular components to extend the core
- Manageability service extensions to extend
functionality - Light weight
39Modularity and Extensibility
- 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
40Building A Modular Manageability Environmnent
Core Object Manager
Connector
Connector
. . .
Provider
41Provider Interoperability
- 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
42Flexible Provider Interfaces
- SUN WBEM Provider Interface
- Java based
- Classes, etc. similar to Pegasus
- C Provider Interface
- Many Providers written in C
- We will support multiple provider interfaces and
language bindings. - Perl, Scripting, etc.
CIM Object Manager
Interface Adapter
Interface Adapter
Interface Adapter
Providers
Providers
Providers
Providers
Providers
Providers
Providers
43In-Process and Out-of-process Providers
- 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
44Modules
- The core server functions are organized into
loadable modules. - Standard APIs are defined for each module.
- Alternative implementations can be provided later
without recompiling the Pegasus server.
45Manageability Service Extensions
- Super Providers
- Access to the Core Broker
- Examples
- Indication Management service.
- Query engine service.
- Class repository service.
- Instance repository service.
46Connectors (Protocol Adapters)
- Functions
- Adapt to different protocols
- Characteristics
- Protocol
- Encoding
- Security
- Discovery
- Examples
- Xml-CIM
- Local Protocols
- Soap
- WMI
- Corba environment interface
Xml-cim Client
Soap Client
Xml-cim Connector
Soap Connector
External Corba Environment
Pegasus Core
Corba Connector
Pegasus Provider
Connector
Remote Provider
47Pegasus Manageability Environment
Object Browser Editor
Client SDK
Service extensions
Consumers Gateways Apps
XML/CIM Connector
Security
- CIM Object Broker Broker)
- Provider Registration
- Service Registration
- Request Routing
-
-
Broker
Queuing
Class Repository
Security
Events
MOF Compiler
Instance Repository
Provider SDK
ARM Provider
. . .
Provider SDK
Providers
Remote Provider
Interface For Spec
Resource
48Programming Language Support
- The Pegasus core is implemented in C and hence
client and provider interface are provided for
C. - An integrated JVM is planned to allow providers
to be developed in Java. - Of course it is possible to use existing Java
clients to interact with the Pegasus CIMOM.
49CIM Objects in C
- CIMClass
- CIMInstance
- CIMProperty
- CIMMethod
- CIMParameter
- CIMQualifierDecl
- CIMQualifier
50Class Declaration Example (Part 1)
- Consider the following MOF class declaration
- class Alarm
-
- key
- uint64 id
- string message none
-
51Class Declaration Example (Part 2)
- 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))
52Property Iteration Example
- The properties of a class may be iterated like
this - CIMClass c
-
- for (Uint32 i 0, n c.getPropertyCount()
- i lt n i)
-
- CIMProperty p c.getProperty(i)
-
534. The Pegasus Implementation Today And Tomorrow
54Status Today
- Phase 1 complete
- Phase 1
- 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 and beginning of some real
providers - Integrated unit and client server tests
(regression) - Beta level code quality
- Needs More testing
55The Components Today
Browsing Client
Test Clients
Compiler
Instance Repository
Pegasus CIM Object Manager
Class Repository
C Interface Adapter
C Interface Adapter
C Providers
56CIM Functionality Missing From Phase 1
- Events
- Security
- WQL and Query
57Important Tasks Phase 1
- Testing
- Pegasus
- Interoperability
- More Providers for testing and Demos
- Better Clients
- Documentation
- Binary Release
58Planned Extensions
- CIMOM Functions
- Security
- Indications
- Threading
- Async CIM Operations APIs
- More Modularity
- Enhance Service Configuration
- Expanding Provider Characteristics
- Out-of-Process Providers
- WBEM Functions
- Discovery
- CIMOM Object Manager Characteristics
- Provider Registration and Operations
- Clients
- Object Browser
- Test Clients
- Protocol Adapters
- Add protocol Adapters
- Providers
- Test
- Sample Implementations
- Java Module Interface
- Platforms
- Easier portability
- More platforms
59Phase 2 Priority tasks
- Threaded Model
- Basic Indications Support
- CIM Object Manager Capabilities Reporting
- Discovery Demonstration
- Additional Modularization
605. The Pegasus Project
61Overview of the Project
- Active project of Enterprise Management Forum of
the Open Group - Producing
- Pegasus open-source Implementation
- Core, clients, providers, repositories
- SDKs (Provider and Client)
- Documentation for use and development
- Specifications for major Interfaces
- Continue support and growth of Pegasus
- Portability
- New functions
- New Standards requirements
- New Providers
- Tools
Pegasus Is a continuing project, not a one-shot
development
62Pegasus Status Today
- Phase 1 of 3 Phases
- Version 1.0 Available
- Source Code available today
- Preliminary documentation available
- Multiple users evaluating today
- Tested on the platforms defined
63Pegasus Project Phases
- Phase 1 (July 2001)
- Goals
- Model Validation
- Client and Provider development
- Basic Environment
- Core model
- Cim-xml Operations
- Class and instance repositories
- Providers
- Phase 2 (September)
- Goals
- Production Environment
- Additions
- Threading
- Configuration
- Security
- Service Extensions
- Indications
- Phase 3
- Remote Providers
- Discovery
- Other extensions including other Language
Interfaces (ex. Java connector)
64Participants
- BMC Software
- Compaq Computer
- Focal Point
- Hermes Softlab
- Hewlett Packard
- IBM
- SIAC
- The Open Group
- Research Institute
- Management Forum
- Tivoli
65Project Contributors
- Moving from core development to adding
functionality - Major Contributors
- BMC
- Compaq
- Hewlett Packard
- IBM
66Working Together
- Open Source but coordinated
- Executive Committee directs strategy
- Single Architect
- Work from Proposals
- Agree to objectives before doing the work
- Regular, Stable Releases
- Developers style guides
- Project scheduling and planning
67Immediate Activities
- CIMOM
- Security
- Indications
- Threading
- Providers
- Finalize interfaces
- Create Provider SDK
- Remote providers
- Growth of functionality with DMTF
- Discovery
- Provider standardization (registration,
interfaces) - Next generation interoperability
Pegasus will go where the contributors want it to
go
68Pegasus and Other Manageability Projects
- 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 (mapping already defined)
- DMI (mapping already defined)
696. A Challenge for all of us
70CIMOMs - Basic Concepts
- Tool to create Management Interoperability
- Infrastructure for manageability
- Manageability interoperability
- Xml-cim today, ??? Tomorrow
- Instrumentation Interoperability
- Many providers, few CIMOMs
- Lots of applications limited numbers of
providers
71However
- We do not make money off of infrastructure
- If we dont have common interfaces we will not
have interoperability. - WBEM will be useful only when it becomes
ubiquitous - CIM is not Easy. Creating complete and Correct
CIM environments is not easy - There is a lot of work to do with a common
environment and much more with many different
environments
72Creating an interoperable environment
- Creating a common interoperability environment
- Management Manageability xml-cim
- Providers APIs and protocols
- Provider building Common object implementations
- The choice
- Build a common structure with contributions
- Everybody does their own thing. (Many
incompatible and incomplete WBEM Implentations
73The Challenge!!!
- Can we create a common WBEM infrastructure?
- OR
- do we all go our own way?
74Making WBEM Ubiquitous
- We are all involved.
- Suppliers
- Software/application suppliers
- End User organizations
- We will only get what we really demand
75Where to Get More Information
- Pegasus is public and Open Source
- www.opengroup.org/pegasus
- Pegasus WEB Site
- Source Code
- Builds on Linux and Windows
- Snapshots and CVS
- Binary Release
- Documentation
- Pegasus Working Group
This presentation is on the Pegasus Site
Contributors and Users of the Code are Welcome