Presentation is loading. Please wait.

Presentation is loading. Please wait.

Notes on WSMAN Client for OpenPegasus

Similar presentations


Presentation on theme: "Notes on WSMAN Client for OpenPegasus"— Presentation transcript:

1 Notes on WSMAN Client for OpenPegasus
Karl Schopmeyer 25 October 2012

2 Goal Develop a production WSMAN CIM Client for OpenPegasus that integrates with the existing client infrastructure but provides the WSMan protocol Integrate to use the existing APIs Provide lower level WSMAN-only interface for operations and responses.

3 Old WSM on Pegasus prototype
See CVS pegasus_unsupported\wsm Complete implementation but based on gSOAP soap library. That cannot be used Need to base on common code in Pegasus/WSMServer (ex. The core wsm objects like selectorset, etc.) It provides both CIMClient api and CmdLine input with XML responses It worked but is now 4 years old so pegasus code has changed a lot

4 Client Overview Today Direct call to rep CIMClient.h & CIMClient.cpp
CIMClient.h Operation Request API Response or exception CIMClient.h Operation Request API Direct call to rep CIMClient.h & CIMClient.cpp CIMClient.h & CIMClient.cpp Create Request Message, confirm link status, check auth, pass to Encoder queue CIMClientRep CIMClientRep CIMOperationRequestEncoder CIMOperationRequestDecoder Create XML Message then HTTP message then Enqueue hHTTP msg to queue defined in CIMClientRep HTTPConnection HTTPConnection Output to HTTP

5 Client Overview Today NOTE: CIMResponse data is general
CIMClient.h Operation Request API Response or exception CIMClient.h Operation Request API Return Objects Or Exceptions Direct call to rep CIMClient.h & CIMClient.cpp CIMClient.h & CIMClient.cpp Create Request Message, confirm link status, check auth, pass to Encoder queue CIMClientRep CIMClientRep CIMOperationRequestEncoder CIMOperationRequestEncoder Create XML Message then HTTP message then Enqueue hHTTP msg to queue defined in CIMClientRep HTTPConnection HTTPConnection Output to HTTP NOTE: CIMResponse data is general Wrapper for response data

6 Integrating WSMAN Request side
CIMClient.h API Decide WS-Man/CIM-XML based on new function CIMClient WS-Man CIMClientRep CIM-XML CIMClientRep WS-Man encoder CIM-XML encoder HTTP Connection Notes We should know protocols supported from slp request. Not sure if this is true today. Only other way is to try one and see if we get back exception or infrastructure support to determine which are supported for a particular server (i.e. try each one).

7 Something like WSMClient.h
Response Side CIMClient.h API CIMClient This is probably where We take the WS-MAN Only output Something like WSMClient.h WS-Man to CIMObject Cvtr CIM_XML CIMClientRep WS-MAN CIMClientRep CIM-XML Decoder WSMAN Decoder WS-Man should offer an XML based response interface that we can map to XML client or clients On top of that we cvt these objects to CIMObjects They are returned just like any other CIM Classes, instances, objects including exceptions. Note that CIMExceptions today are based on the CIM-XML model (DSP0200) HTTP Connection

8 Integration of Ws-man client
WS-Man will use CIMClient.h api for operation calls. This means user sees same functions and objects independent of protocol Add one new call to determine protocol to be used Base this on JSR 48 See Don’t expose class with virtual functions. Add wrapper class.

9 JSR 48 Protocol decision calls
static WBEMClient getClient (String protocol) Get the client object for a particular protocol static String[] getSupportedProtocols Get Array of Strings listing all supported protocols Note that this means a chance to connect possibly.

10 What we want to do With new API
Goals Determine which protocols exist Make decision which one to use for a particular connection. NOTE: We may not want to take the complete object approach that JSR 48 takes so we will probably have somewhat different functions Possibilities: Add protocol to CIMClient object creation Add protocol to connect function Set Protocol as a new function In any case we need a way to get list of protocols. That should probably be static since independent of any connection.

11 New Modules in CIMClient Prototype
CIMWSMConverter.* CIMWSMClientRep* CIMWSMCommon.* Issues with current code Uses gSOAP library That was our mistake Uses env variable to select protocol

12 Separate WSMan CLI Clients
Example pegasus_unsupported\wsm\src\wsm\wsmenum Defines enum wsm only client Interface Wsm/client/WSMClient.h Creates calls based on WSM params and returns WSM enumerations. Use wsm/WSMClient/WSMClient.h Key driver for WSM only interfaces Need to map WSMClient to Pegasus WSMServer basic objects. Probably create a new WSMCommon of things that are common to WSMClient and WSMServer I am not married to separate executable for each function but it is an easy interface that is a level higher than wbemexec. Need to look at the relationship between CIMWSMEncoder, Decoder, CIMWSMClientRep and WSMClient and probably bring them together.


Download ppt "Notes on WSMAN Client for OpenPegasus"

Similar presentations


Ads by Google