Document title: PEP#327 - CIM Server Port to VxWorks     Document details     Comments     Help with document reviews


[¤1] Pegasus Enhancement Proposal (PEP)

[¤2] PEP #: 327

[¤3] PEP Type: Functional

[¤4] Title: Pegasus PlatformPort for inclusion in VxWorks

[¤5] Version: 1.0 

[¤6] Created: 7 May 2008

[¤7] Authors: M. Brasher, K. Schopmeyer

[¤8] Status:  draft

[¤9] Version History:

[¤10] Version [¤11] Date [¤12] Author [¤13] Change Description
[¤14] 1.0 [¤15] 07 May 2008 [¤16]   [¤17] Initial Submission
[¤18]   [¤19]   [¤20]   [¤21]  

[¤22]  


[¤23] Abstract: This PEP defines the changes required to allow Pegasus to be compiled for the VxWorks Operating Environment. It defines vxWorks as a buildable platform for OpenPegasus. Note that this is one of several PEPs defined to augment support for Pegasus in Embedded Environments.  See PEP 305, 307, and 309 also.


[¤24]  

[¤25] Definition of the Problem

[¤26] The requirement has been defined to port the OpenPegasus server to the VxWork Operating system with the following version and hardware targets:

[¤29] A port of Pegasus to allow inclusion in an Embedded Operating system like VxWorks involves a number of changes.  The general philosophy of the VxWorks environment and the overall set of requirements is defined in PEP 305. 

[¤30] This PEP DOES NOT define other changes that may be required to support some conditional limitations of a typical vxWorks implementation such as lack of a disk file system.  PEP 305 defines the overall requirements for these changes and the proposals for this type of change are addressed in other functional PEPs.

[¤31] Specifically VxWorks introduces several limitations including:

[¤34] This PEP discusses only those changes to:

[¤37] Proposed Solution

[¤38] Overview

[¤39] This port will include;

  1. [¤40] Extending the OpenPegasus configuration mechanism to provide for the VxWorks OS and hardware combinations to be defined as platform options. This includes adding the vxWorks make platform files in mak and any required VxWorks configutration files in Common.

[¤41] Change Definition

[¤42] Configuration and Make

[¤43] The following changes are defined for the configuration and make environment

[¤44] Add new platform configuration files for VxWorks and for each supported hardware platform to pegasus/mak as follows to account for the different hardware and compiler variations that are defined for this :

[¤45] platform_VXWORKS_PENTIUM_DIAB.mak
[¤46] platform_VXWORKS_XSCALE_DIAB.mak
[¤47] platform_VXWORKS_PENTIUM_GNU.mak
[¤48] platform_VXWORKS_XSCALE_GNU.mak

[¤49] Inclusion of a specific set of make files as follows in pegasus/mak/vxworks as generally as follows:

[¤50] library.mak
[¤51] pentium_gnu.mak
[¤52] xscale_gnu.mak
[¤53] objects.mak
[¤54] program.mak
[¤55] pentium_diab.mak
[¤56] xscale_diab.mak
[¤57] diab.mak
[¤58] gnu.mak..
[¤59] common.mak

[¤60] Pegasus Componets that will be part of the port

[¤61] The components we propose for the target server environment  (based on the Pegasus directory hierarchy) are as follows:

[¤62] NOTE: We may elect to make subcomponents of some of the following optional at some point

[¤63] Server

  1. [¤64] src/Pegasus/Commmon  -- All of the functions in the Pegasus Common directory
  2. [¤65] src/Pegasus/ WQL
  3. [¤66] src/Pegasus/ CQL
  4. [¤67] src/Pegasus/Server - The Server configuration, and basic server components such as operations processing, xml processing, etc.
  5. [¤68] src/Pegasus/ IndicationService - Indication processing and subscription handling
  6. [¤69] src/Pegasus/ HandlerService - Indication handlers
  7. [¤70] src/Pegasus/Provider - Provider interfaces
  8. [¤71] src/Pegasus/Repository - Class and instance repositories
  9. [¤72] src/Pegasus/ProviderManager2 - The provider managers for C++ and CMPI.
  10. [¤73] src/Pegasus/Security - At least basic authentication and SSL
  11. [¤74] src/Pegasus/ Config - A special configuration setup for vxworks
  12. [¤75] src/Pegasus/Query Common
  13. [¤76] src/Pegasus/ ExportClient - Basic client to send indications using cim/sml
  14. [¤77] Consumer
  15. [¤78] src/Pegasus/ ProviderManagerService - The service behind the provider managers
  16. [¤79] src/CIMServer
  17. [¤80] src/Service

[¤81] ControlProviders

  1. [¤82] InteropProvider - Provides interop classes and also the basic server profile (See PEP 244)
  2. [¤83] CIMOMStatProvider - Provides output of basic server statistics per the DMTF specs.
  3. [¤84] ProviderRegistrationProvider - Input for registration of providers (It is not certain this one would be required)
  4. [¤85] Namespace Provider - Provides the __Namespace class
  5. [¤86] Config Setting Provider - Allows setting config options
  6. [¤87] UserAuthProvider - Allows input of user authorization operation (the CIMUser client)

[¤88] Providers

  1. [¤89]     slp Provider - The question of using this provider depends on a) requirements for slp, b) availability of a standard slp in the environment.
  2. [¤90]     TBD - List of other possible standard Pegasus providers to be made available is  incomplete at this time

[¤91] Components which we do not include in the server build

  1. [¤92] MOF Compiler - The MOF compiler is considered a configuration tool and need not exist on the target server.  The environment will create a host version of this tool so that it can be used from the host.
  2. [¤93] DynListener - This is one form of the Pegasus indication listener.  There is no need for this functionality on a vxworks target server
  3. [¤94] Listener - Same comment as DynListener
  4. [¤95] Client - This is the infrastructure for a Pegasus client. The only possible need for this on a target server is if providers elect to use the client interface to communicate either back to the server or to other CIM Servers. 

[¤96]  

[¤97] Testing

[¤98] This PEP defines only one component of the overall set of changes required to create a workable environment with the VxWorks OS.  Further, VxWorks is a very specialized platform in which there is significantly more manual configuration of the overall environment than in system such as Linux.  Finally testing on a vxWorks platfrom requires access to both the VxWorks Operating Environment available only as pay software from Wind River but to a support board that implements the particular processor to which the port is being made. In addition, vxWorks appears to be much more susicptible to changes in versions of the OS than most systems such as Linux.  The requirement today is to support VxWorks 5.5 and 6.2 but each with a different processor targets.

[¤99] Thus, testing in the normal sense that we test within the Pegasus environment is really no possible on a regular basis. We expect that any user who intends to use the VxWork port will have manual work because of the significant number of differences in the OS, the compilers, and special requirements that may appear because of the particular hardware platform and support board.

[¤100]  

[¤101] Rationale

[¤102] See PEP 305 for the overall rational for the VxWorks port.

[¤103] Schedule

[¤104] Completed for Pegasus 2.8

[¤105] Discussion

[¤106] <Additional information from discussions,  reviews, and decisions of the steering committee and architecture team can be recorded here. Information in this section is to help reviewers but MUST also be reflected in the Proposed Solution / Rationale, etc. sections. This section is for information only during the review process.>


[¤107]
[¤108] Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
[¤109] EMC Corporation; Symantec Corporation; The Open Group.
[¤110]
[¤111] Permission is hereby granted, free of charge, to any person obtaining a copy
[¤112] of this software and associated documentation files (the "Software"), to
[¤113] deal in the Software without restriction, including without limitation the
[¤114] rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
[¤115] sell copies of the Software, and to permit persons to whom the Software is
[¤116] furnished to do so, subject to the following conditions:
[¤117]
[¤118] THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
[¤119] ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
[¤120] "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
[¤121] LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
[¤122] PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
[¤123] HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
[¤124] ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
[¤125] WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


[¤126]  

[¤127] Template last modified: March 26th 2006 by Martin Kirk
[¤128]
Template version: 1.11