400 likes | 487 Views
WS-CIM mapping using WSDM. Igor Sedukhin ( Igor.Sedukhin@ca.com ) Heather Kreger ( kreger@us.ibm.com ) Andreas Maier ( maiera@de.ibm.com ) Tom Maguire ( tmaguire@de.ibm.com ) Bryan Murray ( Bryan.Murray@hp.com ) William Vambenepe ( vbp@hp.com ) Andrea Westerinen ( AndreaW@cisco.com ).
E N D
WS-CIM mapping using WSDM Igor Sedukhin (Igor.Sedukhin@ca.com) Heather Kreger (kreger@us.ibm.com) Andreas Maier (maiera@de.ibm.com) Tom Maguire (tmaguire@de.ibm.com) Bryan Murray (Bryan.Murray@hp.com) William Vambenepe (vbp@hp.com) Andrea Westerinen (AndreaW@cisco.com)
Objectives • Use of WS protocols for management • Common tooling/platforms. • Many required features are included. • Make management capabilities more accessible • Easy to implement and use • Isolation of information from implementation aspects • Wide-range distributed management • Variety of interconnected resources • Self-management
Using CIM Management Application CIM Provider CIM Provider Proprietary Protocols or WEBM Proprietary Integration CIM Server CIM Provider
Using CIM • Access the objects • Enumerate objects • Query/set properties of objects • Invoke methods on objects • Traverse associations/links between objects • Create objects • Query metadata (qualifiers) about objects • Access the model • Navigate class hierarchy • Enumerate classes • Query metadata (qualifiers) about classes • Traverse associations/links between classes • Query/set properties of classes* • Invoke methods on classes* • Create classes* • Subscribe to events (indications)
Evolutionary step 1 Management Application CIM Provider “SMASH” Web services Protocols CIM Server WS impl.
Evolutionary step 2 Management Application CIM OM “SMASH” Web services Protocols WS impl. Management Server WS impl. WS impl.
Web services access to Manageable Resources • Interoperability based on XML message exchanges • Multiple network transports • Message-level composable features • Security • Reliability • Asynchrony • Etc. (Extensible) • Describable • Resource-centric • No need to implement all full-scale CIMOM services
Web services access to Resources EPR … Policies refers to Schemas known to WSDL Web services Application Resource messagesw/ WSA & other information in the headers endpoint XML Representation <x:Customer> <x:Name>John Doe</x:Name> <x:Address>…</x:Address> </x:Customer> WS-Resource
Web Services Platform Standards • XML Schema – captures information model • SOAP – XML messaging • WSDL – describes message exchanges (e.g. operations) • WS-ResourceProperties • Discover resource properties • Get/set resource properties • Value change notifications • WS-ResourceLifetime • Know when a resource is/will be destroyed • Destroy a resource • WS-ServiceGroup • Query a group of resources • Register a resource • WS-BaseNotification • Subscribe to notifications • Notify message wrapper • WS-Topics – description of notification messages and topic classification
Applying Web Services to CIM Management Application Directly WS-enable CIM OM access CIM OM Becomes similar to a WS access to anobject database • Focus on responsibilities of CIM OM Management Application WS-enable access to Manageable Resources Manageable Server Resource CIM OM Manageable Server Resource • Focus on responsibilities of Manageable Resources • Adequate for implementation in SOA applications • Manageability as a design-time, architectural aspect • Can be done along with general SOA-enablement • Provides for distributed management Manageable Service Resource Service Users
WSDM • Focus on resources • Isolation from implementation • Composability • Of implementation aspects • Of manageability capabilities • Bases on Web Services access to Resources • Also applicable to new breed of resources whose functions are exposed as Web Services • Provides support for • Identity • Relationships • Event Format and Notification Topics • Discovery and Advertisement • Etc.
WS-CIM using WSDM protocol Management Application Command-Line Proprietary/WEBM WS WS WS WSRF/WSN WSRF/WSN WSRF/WSN WSDM WSDM WSDM Manageable Application CIM OM “SMASH” CIM Provider CIM Provider CIM Provider SMASH Provider SMASH Provider SMASH Provider
WS-CIM using WSDM protocol • WS = basic XML messaging, descriptions, security, etc. • WSRF+WSN = resource application patterns using WS • WSDM = • 1) basic manageability capabilities (e.g. identity) • 2) manageability mechanisms (e.g. association traversal) • 3) a methodology to define other manageability capabilities • CIM = management information model • WS-CIM = joining it all together
Resource mapping … Policies Schemas manageable resources mark WSDL Management Application Get(OtherIdentifyingInfo) WS-CIM implementation RequestStateChange(...) EPR endpoint XML Representation <cim-cs:CIM_ComputerSystem> <muws-xs1:ResourceId>... </muws-xs1:ResourceId> <cim-cs:OtherIdentifyingInfo>… </cim-cs:OtherIdentifyingInfo> ... </cim-cs:CIM_ComputerSystem>
Other objects mapping … Policies Schemas WSDL Management Application Get(SampleInterval) WS-CIM implementation ResetSelectedStats(...) EPR endpoint XML Representation <cim-sd:CIM_StatisticalData> ... <cim-sd:SampleInterval>… </cim-sd:SampleInterval> ... </cim-sd:CIM_StatisticalData>
Instances collection … Policies Schemas WSDL Management Application Query WS-CIM implementation EPR endpoint Instance 1 EPR1 Instance 2 EPR2 Instance ? EPR?
Association traversal • Objectives • Ability to traverse associations between manageable resources and business applications/processes • Association instances accessible via Web services • Any Web service can provide for association traversal • A manageable resource can provide its own associations with other resources (if known) • A service can facilitate traversal of all discovered associations across many resources • Provide for backward-compatible association introspection via CIM operations (queries, associators and references)
Association traversal • Query association instances, resolve reference properties • Common association traversal service • Every manageable resource provides associations it knows and wants to expose to managers
Association traversal Management Application WS-CIM implementation QueryRelationshipsByType( AssociatedPowerManagementService) Get(PowerState) SetPowerState(...) EPR EPR EPR
Association traversal Management Application HWManager Association Provider SWManager WS-CIM implementation WS-CIM implementation WS-CIM implementation
Association traversal Management Application WS-CIM implementation SetPowerState(...) QueryRelationshipsByType( AssociatedPowerManagementService) OUT EPR IN <wsdm:Relationship> <wsdm:Type><cim:AssociatedPowerManagementService>... <wsdm:Participant> <wsdm:Role>.../ServiceProvided</wsdm:Role> </wsdm:Participant> ... <cim-apm:PowerState>...</cim-apm:PowerState> <cim-apm:PowerOnTime> ... ... EPR
Indications • Objectives • Provide a subscription mechanism • Can be implemented by a manageable resource which emits its own notifications • Can be implemented by an events service which emits various notifications about various resources • Provide a classification/description mechanism • In order to describe which indications correspond to which notification messages • Provide a mechanism to discover what indications are available • Provide a representation of an indication as an notification message • Used as a notification message body • Interoperable representation of indication instances • Provide a notification message delivery mechanism
Resource-specific notifications … Topic Spaces <TopicSpace targetNamespace=“...cim-ele...”> <Topic name=“EnabledState” messageType=“wsdm:ManagementEvent”> <MessagePattern Dialect=“...XPath...”> wsdm:ManagementEvent[wsrp:PropertyValueChangeNotification] </MessagePattern></Topic></TopicSpace> Policies Schemas WSDL Management Application Get(Topics) WS-CIM implementation cim-ele:EnabledState EPR endpoint Observationsabout thisComputerSystem XML Representation <cim-cs:CIM_ComputerSystem> <muws-xs1:ResourceId>... </muws-xs1:ResourceId> <cim-ele:EnabledState>… </cim-ele:EnabledState> ... </cim-cs:CIM_ComputerSystem>
Resource-specific notifications … Policies TopicSpaces Schemas WSDL Management Application Subscribe(cim-ele:EnabledState) WS-CIM implementation Notification Message <wsdm:ManagementEvent> <wsrp:PropertyValueChangeNotification> <cim-ele:EnabledState>… </cim-ele:EnabledState> <wsrp:PropertyValueChangeNotification> </wsdm:ManagementEvent> EPR endpoint Observationsabout thisComputerSystem XML Representation <cim-cs:CIM_ComputerSystem> <muws-xs1:ResourceId>... </muws-xs1:ResourceId> <cim-ele:EnabledState>… </cim-ele:EnabledState> ... </cim-cs:CIM_ComputerSystem>
CIM-specific notifications Topic Spaces <TopicSpace targetNamespace=“...cim-root...”> <Topic name=“CIM_InstIndication”> <Topic name=“CIM_InstMethodCall” messageType=“wsdm:ManagementEvent”> <MessagePattern Dialect=“...XPath...”> wsdm:ManagementEvent[cim-root:CIM_InstMethodCallMessage] </MessagePattern></Topic></Topic></TopicSpace> … Policies Schemas WSDL Management Application Get(Topics) WS-CIM implementation cim-root:CIM_InstIndication/cim-root:CIM_InstMethodCall EPR endpoint Observationsabout thisComputerSystem CIM_ComputerSysteminstance
CIM-specific notifications … Policies Topic Spaces Schemas Subscribe(cim-root:CIM_InstIndication/cim-root:CIM_InstMethodCall) WSDL Management Application WS-CIM implementation Notification Message <wsdm:ManagementEvent> <cim-root:CIM_InstMethodCall> … </cim-root:CIM_InstMethodCall> </wsdm:ManagementEvent> EPR endpoint Observationsabout thisComputerSystem CIM_ComputerSysteminstance
CIM-specific notifications Topic Spaces <TopicSpace targetNamespace=“...cim-root...”> <Topic name=“CIM_InstIndication”> <Topic name=“CIM_InstCreation” messageType=“wsdm:ManagementEvent”> <MessagePattern Dialect=“...XPath...”> wsdm:ManagementEvent[cim-root:CIM_InstCreationMessage] </MessagePattern></Topic></Topic></TopicSpace> … Policies Schemas WSDL Management Application Get(Topics) WS-CIM implementation cim-root:CIM_InstIndication/cim-root:CIM_InstCreation EPR endpoint Observationsabout allComputerSystem instances CIM_ComputerSystemclass
CIM-specific notifications … Policies TopicSpaces Schemas Subscribe(cim-root:CIM_InstIndication/cim-root:CIM_InstCreation) WSDL Management Application WS-CIM implementation Notification Message <wsdm:ManagementEvent> <cim-root:CIM_InstCreation> … </cim-root:CIM_InstCreation> </wsdm:ManagementEvent> EPR endpoint Observationsabout allComputerSysteminstances CIM_ComputerSystemclass
CIM-specific notifications Topic Spaces <TopicSpace targetNamespace=“...cim-root...”> <Topic name=“CIM_InstIndication”> <Topic name=“CIM_InstCreation” messageType=“wsdm:ManagementEvent”> <MessagePattern Dialect=“...XPath...”> wsdm:ManagementEvent[cim-root:CIM_InstCreationMessage] </MessagePattern></Topic> <Topic name=“CIM_InstMethodCall” messageType=“wsdm:ManagementEvent”> <MessagePattern Dialect=“...XPath...”> wsdm:ManagementEvent[cim-root:CIM_InstMethodCallMessage] </MessagePattern></Topic> </Topic></TopicSpace> … Policies Schemas WSDL Management Application Get(Topics) WS-CIM implementation cim-root:CIM_InstIndication/cim-root:CIM_InstCreation; cim-root:CIM_InstIndication/cim-root:CIM_InstMethodCall EPR endpoint CIM Indications Producer Observationsabout everything
CIM-specific notifications … Policies TopicSpaces Schemas Subscribe( cim-root:CIM_InstIndication/*, {...CQL Selector...} ... ) WSDL Management Application WS-CIM implementation Notification Message <wsdm:ManagementEvent> <cim-root:CIM_InstCreation> … </cim-root:CIM_InstCreation> </wsdm:ManagementEvent> EPR endpoint CIM Indications Producer Observationsabout everything
Classes mapping Instances Collection Classes Collection IC CC endpoint endpoint Instance 1 I1 Class 1 C1 WS-ServiceGroup WS-ServiceGroup Instance 2 I2 Class 2 C2 Instance Y IY Class X CX Class X endpoint Class definition WS-ServiceGroup X Instance 1 X1 InstancesCollection MyClass MX Instance Y of Class X X Instance Y XY
ServiceGroup background • Service groups aggregate Web services and WS-Resources for a domain specific purpose • Three sets of service group message exchanges allow: • Query and retrieval of service group details • Query and retrieval of entry details • Ability to add entries • WS-CIM “domain specific purposes” for service groups: • To group classes in a namespace (as exposed by a CIMOM) • To group instances in a namespace (as exposed by a CIMOM) • To group instances of a particular class (mandates that every CIM class definition include the WS-ServiceGroup operations in its portType)
Accessing metadata … WSRF-MD Policies TopicSpaces Schemas • Instances provide metadata about themselves • Classes provide metadata about themselves and instances WSDL Management Application WS-MeX:GetMetadata WS-CIM implementation EPR endpoint CIMQualifiers
Qualifier mapping • Qualifier information returned using WS-RMD (WS-ResourceMetadataDescriptor) • WS-RMD specifies an XML document to define property/operation metadata in a WS-ResourceProperty compliant WSDL portType • Metadata document is found through a reference on the WSDL portType • Most CIM qualifiers mapped as specific attributes on a property or operation • Defined for each class resource • For example: • <rmd:Operation name="SetPowerState" idempotent="true"> • <cim:Deprecated>true</cim:Deprecated> • <cim:Parameter name="PowerState" direction="IN"> • <cim:ValueMap value=“1”>Full Power</cim:ValueMap> • <cim:ValueMap value=“2”>Power Save - Low Power Mode</cim:ValueMap> • <!-- other values omitted --> • </cim:Parameter> • <cim:Parameter name="Time" direction="IN"/> • </rmd:Operation>
CIM Functionality coverage • Instance Access • GetInstance – WS-RF RP GetResorucePropertiesDocument • ModifyInstance - WS-RF RP SetResourceProperties • GetProperty – WS-RF RP GetResourceProperty • SetProperty- WS-RF RP SetResourceProperties • Associations • Associators – WSDM Relationships • AssociatorNames – WSDM Relationships • References – WSDM Relationships • ReferenceNames – WSDM Relationships
CIM Functionality coverage • Instance Management • DeleteInstance – WS-RF Resource Lifetime Delete • CreateInstance – Creation Capability • Discovery • Enumerate – WS-RF ServiceGroup query • ExecQuery – WS-RF ServiceGroup query • EnumerateInstances – WS-RF ServiceGroup Query • EnumerateInstanceNames – WS-RF ServiceGroup Query
CIM Functionality Coverage • Schema Management • EnumerateClasses – Class ServiceGroup query • EnumerateClassNames – Class ServiceGroup query • GetClass – GetMetaData – WSDL (RP,WS-RMD) • GetQualifier – XQuery over WS-RMD document • EnumerateQualifiers – XQuery over WS-RMD document • DeleteClass - future • CreateClass - future • ModifyClass - future • SetQualifier - future • DeleteQualifier - future
Summary • Relatively straight forward mapping between Web services and CIM • Scales large and small • Based on existing specification that are on the standards track w/ significant industry support • Implementations are available • Meets requirements of WS-CIM • Document provided • To provide more details for understanding • To be used by the WS-CIM group as we develop WS-CIM specifications