740 likes | 977 Views
Overview of Pegasus An Open-Source WBEM implementation. 17 July 2001 Karl Schopmeyer(k.schopmeyer@opengroup.org). Version 1.0. Agenda. Overview -What (and why)is Pegasus? The Pegasus Environment The Pegasus Software Architecture Pegasus Status Today Plans The Pegasus Project
E N D
Overview ofPegasusAn Open-SourceWBEM implementation 17 July 2001 Karl Schopmeyer(k.schopmeyer@opengroup.org) Version 1.0
Agenda • 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
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.
Why 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
Origins of Pegasus • Pegasus was initiated in 2000 by the Open Group in collaboration with: • BMC Software • IBM • Tivoli Systems
Key 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
Pegasus Working Group 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
Pegasus 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
Pegasus 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)
Efficient and Lightweight • Core written in C++ • Designed for execution efficiency • Designed to be production-quality solution
Pegasus 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
Pegasus 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
Project 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.
2. WBEM and CIM Techlologies
Data Description • DMI Discovery </xml/CIM>Transport Encoding HTTPAccess WBEM Architectures WBEM
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
CIM Schema v2.5 (800+ classes) Extension Schema Meta Model System Apps Core Users Network Device DMTF WBEM Components CIM Specification V2
CMIP SNMP RPC Internet CMIP Objects SNMP MIBs DMI MIFs CIM Objects Web-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
Common 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
Interoperability • 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
Major Components Client Many Clients Management Applications Client CIM Clients CIM-XML Repository CIM Object Manager Client Client Many Providers per CIMOM CIM Providers
Key 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
CIMOM 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, …
Pathways of Communication Client Client CIM Clients CIM Repository CIM Object Manager Client Client CIM Providers
Component Location • A component may belocated 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.
Possible 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).
The Pegasus CIMOM Client Client CIM Clients Repository CIM Server Client Client CIM Providers
Operations 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
Operation Routing Client • Class Operations • Routed to the Repository Client CIM Clients Repository CIM Object Manager Client Client CIM Providers
Operation 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
Indication Routing Client Client • Indication routing Client Client CIM Listener CIM Clients Subscriptons Handler Handler Handler Repository CIM Object Manager Indications Client Client CIM Providers
Providers Providers Providers Request Lifecycle Outgoing Response Incoming Request 1. Receive TCP Message Channel Channel 8. Transmit TCP Message Protocol 2. Process HTTP Request 7. Form HTTP Response Protocol Encodings Encodings 3. Decode XML 6. Encode to XML 4. Dispatch Request Dispatcher Repository Aggregator 5. Aggregate Results
Modularity 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
CIM Client Connector XML-CIM CIM Client CIM Client Connector Service Extension Service Extension Module Service Extension Service Extension Service Extension Service Extension Module Service Extension Service Extension Module Module Repository Repository Repository Repository Repository Repository Undefined Provider Resources Resources Resources Building A Modular Manageability Environmnent Core Object Manager Connector Connector . . . Provider
Provider 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
Flexible 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
In-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
Modules • 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.
Super Providers Access to the Core Broker Examples Indication Management service. Query engine service. Class repository service. Instance repository service. Manageability Service Extensions
Connectors (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 External Corba Environment Xml-cim Connector Soap Connector Pegasus Core Corba Connector Pegasus Provider Connector Remote Provider
AIC Provider Apps Pegasus 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 Events Security MOF Compiler Instance Repository Provider SDK ARM Provider Provider SDK . . . Providers Remote Provider Interface For Spec Resource
CIMClass CIMInstance CIMProperty CIMMethod CIMParameter CIMQualifierDecl CIMQualifier CIM Objects in C++
Class Declaration Example (Part 1) • Consider the following MOF class declaration: class Alarm { [key] uint64 id; string message = “none”; };
Class 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”));
Property Iteration 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); }