Pegasus Enhancement Proposal (PEP)

PEP #: 311

Title: WS-Management Support in CIM Server

Status: Approved

Version History:

Version Date Author Change Description
1.0 25 January 2008 Roger Kumpf Initial submittal/placeholder
1.1 7 April 2008 Roger Kumpf For general review
1.2 14 April 2008 Roger Kumpf Updated based on architecture team review comments and discussion. Added "Future Work" and "Alternative Considered" sections.
1.3 15 April 2008 Roger Kumpf Updated based on architecture team review comments and discussion. Specifically, put "Future Work" items in approximate priority order, emphasized that WS-Management requests use the same connection ports and authentication mechanisms as CIM-XML, and annotated the known limitations.
Approved version (Ballot 146).
1.4 30 May 2008 Roger Kumpf Updated based on implementation experience.
Approved version (Ballot 151).

 


Abstract: The CIM Server will be enhanced to support WS-Transfer operations (a subset of WS-Management) using existing CIM providers.


Definition of the Problem

Native support for the WS-Management protocol in the Pegasus CIM Server will become increasingly important to protect the value of CIM providers while promoting interoperable manageability.

A WS-Management server was added to the pegasus_unsupported CVS module with PEP 285. That prototype implementation used a separate front-end process to map a subset of WS-Man requests into WBEM requests according to the WS-Management - CIM Binding specification and the WS-CIM Mapping Specification. Responses are similarly mapped from WBEM back to WS-Man.

The PEP 285 implementation has several shortcomings:

Relevant Standards

The behavior of the CIM Server in processing WS-Management requests is guided by these standards:

Proposed Solution

WS-Management server support is added as an option directly in the CIM Server. When it is enabled, WS-Management requests are accepted and processed using the same connection ports and authentication mechanisms as for CIM-XML. The initial implementation supports only WS-Transfer operations. Note that no WS-Management client interface or library is proposed. This implementation does not use gSOAP.

DSP0227 indicates that when a CIM namespace is not specified in a selector set, "the default CIM namespace" is intended. The definition of the default CIM namespace is left to the discretion of the implementation. For this implementation, the default CIM namespace is root/cimv2.

WsmServer library

Code for a new libpegwsmserver library containing the WS-Management implementation is added in the pegasus/src/Pegasus/WsmServer directory. None of the symbolic interfaces in this library are intended for external use.

In the following diagram, the components in green are added in the WsmServer library while the components in blue already exist.

The diagram shows that the HTTP connection and authentication logic remains unchanged. When a request is determined to be a WS-Management request (based on the HTTP request URI), it is routed to the WsmRequestDecoder. The WsmRequestDecoder converts the HTTPMessage to a WsmRequest and forwards it to the WsmProcessor. The WsmProcessor converts the WsmRequest to a CIMOperationRequestMessage and forwards it to the CIMOperationRequestDispatcher, which processes it normally. When the response is received by the WsmProcessor, it converts it to a WsmResponse, and the WsmResponseEncoder converts it into an HTTPMessage which is written back to the HTTPConnection.

Changes to existing functionality

This enhancement requires only minimal changes to existing functionality:

Tests

Unit tests are included for the new WS-Management abstractions as well as the XmlParser extensions. In addition, end-to-end server tests of the WS-Management functionality using the wbemexec extensions are added to the automated test suite.

Informal interoperability testing of the WS-Management functionality will be performed with WinRM and the client tools in the pegasus_unsupported prototype.

Build Option

This documentation for the PEGASUS_ENABLE_PROTOCOL_WSMAN build option is proposed for inclusion in PEP 308:

PEGASUS_ENABLE_PROTOCOL_WSMAN

Known Limitations

These WS-Management features are not supported:

The implementation also has these properties:

Future Work

In Pegasus 2.8, only WS-Transfer operations are implemented. This restriction limits the initial value of the Pegasus WS-Management support. It is recognized that clients will require more complete WS-Management functionality. WS-Management features to be considered for subsequent releases include (in approximate projected priority order):

Alternative Considered

Openwsman is an existing open source project which is implementing the WS-Management specification. It is possible to leverage that project by integrating a portion of its code with Pegasus. By using only a selected portion of the Openwsman project, Pegasus could use its own HTTP stack for WS-Management operations and defer to Openwsman for other protocol interpretation. The Openwsman daemon would not be used, so its runtime configuration would not be relevant. Benefits of this approach include:

Factors that motivate a Pegasus native implementation include:

A Pegasus native implementation of the WS-Management protocol is proposed for the reasons above. For some deployments, however, a solution based on Openwsman may indeed be preferable. The option remains available for an interested party to pursue the Openwsman alternative in parallel.

Discussion

These discussion points were raised during PEP review:


Copyright (c) 2008 Hewlett-Packard Development Company, L.P.; IBM Corp.; EMC Corporation; Symantec Corporation; The Open Group.

Permission is hereby granted, free of charge, to any person obtaining a copy  of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.