This issue is assigned the number 085. For further
discussions on this issue, please refer to this issue number or use this
thread.
From: Scott de Deugd
[mailto:dedeugd@us.ibm.com]
Sent: Tuesday, November 18, 2008 2:58 PM
To: Ram Jeyaraman
Cc: Doug Davis; Travis M Grigsby
Subject: New Issue DPWS - Possible confusion around use of MEX
Document:
wsdd-dpws-1.1-spec-wd-02
Line numbers:
326, 329, 417
Owner: Scott
de Deugd
Possible
confusion around use of MEX
Document:
wsdd-dpws-1.1-spec-wd-02
Line numbers:
as noted
Owner: Scott
de Deugd
Description:
Possible
confusion around use of MEX
Spec Change:
Background:
DPWS requires
the use of WS-Transfer Get to retrieve the metadata about a service/endpoint.
However, per the MEX spec, this then requires the service to be a
"metadata resource" - meaning that the service is a "metadata
service"; In other words, it is there
solely to serve-up (manage) metadata about some other endpoint. This is a
very different role for a device and normal WS endpoint. Normally when a
service (e.g. a StockQuote service or a printer) wants to allow a client to
retrieve the metadata at that service, mex.GetMetadata() is used. This
allows for the XML representation of the
resource/service/endpoint to still be retrieved and updated using WS-Transfer.
For example, WS-Transfer.Get() would be used to retrieve the state of the
printer. However, if DPWS uses WS-Transfer to retrieve the metadata then
we lose the ability to use WS-Transfer to retrieve and update the resource's
state/representation. DPWS should be changed to replace transfer.Get
request with mex.GetMetadata request messages. The responses will still
look the same (mex:Metadata sections) - its just the request messages that will
change.
The current
sitation will also lead to confusion when DPWS is used in-conjunction with
other specifications like WS-Management. When using WS-Man, a
Transfer.Get() will return the XML representation of the service/resource not
the metadata about the service/resource. When asking for the metadata
about a service/device/resource, MEX.GetMetadata() should be used instead.
The resulting response message will contain the exact same data as today
but avoid the confusion about what the client is asking for (metadata vs the
real data), and this will allow both specifications to be used simultaneously.
Proposed
Resolution (changes in red):
Change
R2044, R2045 Lines 326, 329
From:
R2044: In a
Get Response SOAP ENVELOPE, A DEVICE MUST include only a wsx:Metadata element
in the SOAP ENVELOPE Body.
All metadata
from the device should be contained in the wsx:Metadata element in the Get
Response.
R2045: A
DEVICE MAY generate a wsa:ActionNotSupported SOAP Fault in response to a Put,
Delete, or Create SOAP ENVELOPE.
A DEVICE is
not required to support all of the operations defined in [WS-Transfer].
To:
R2044: In a GetMetadata Response SOAP ENVELOPE, A DEVICE MUST
include only a wsx:Metadata element in the SOAP ENVELOPE Body.
All metadata
from the device should be contained in the wsx:Metadata element in the GetMetadata Response.
R2045: A
DEVICE MAY generate a wsa:ActionNotSupported SOAP Fault in response to a Put,
Delete, or Create SOAP ENVELOPE.
A DEVICE
is not required to support all of the operations defined in [WS-Transfer].
Change
R2014 Line 417
From:
R2014: In any
Get Response SOAP ENVELOPE, a DEVICE MUST include the Metadata Section with
Dialect equal to
http://docs.oasis-open.org/ws-dd/dpws/2008/09/ThisDevice".
To:
R2014: In any
GetMetadata Response SOAP ENVELOPE, a
DEVICE MUST include the Metadata Section with Dialect equal to
http://docs.oasis-open.org/ws-dd/dpws/2008/09/ThisDevice".
Change
Line 469:
From:
Get
[WS-Transfer] is the interoperable means for a CLIENT to retrieve the resource
representation data for a DEVICE – which includes the ThisDevice metadata for a
DEVICE. A DEVICE may also provide other means for a CLIENT to retrieve its
ThisDevice metadata.
To:
GetMetadata
[WS-MetadataExchange] is the interoperable means for a
CLIENT to retrieve the metadata resource
representation data for a DEVICE – which includes the ThisDevice
metadata for a DEVICE. A DEVICE may also provide other means for a CLIENT to
retrieve its ThisDevice metadata.
Change
Line 375:
From:
R2012: In any
Get Response SOAP ENVELOPE, a DEVICE MUST include the Metadata Section with
Dialect equal to
"http://docs.oasis-open.org/ws-dd/dpws/2008/09/ThisModel".
To:
R2012: In any
GetMetadata Response SOAP ENVELOPE, a
DEVICE MUST include the Metadata Section with Dialect equal to
"http://docs.oasis-open.org/ws-dd/dpws/2008/09/ThisModel".
Change
Line 377:
From:
Get
[WS-Transfer] is the interoperable means for a CLIENT to retrieve the resource
representation data for a DEVICE – which includes the ThisModel metadata for a
DEVICE. A DEVICE may also provide other means for a CLIENT to retrieve its
ThisModel metadata..
To:
GetMetadata
[WS-MetadataExchange] is the interoperable means for a
CLIENT to retrieve the metadata resource
representation data for a DEVICE – which includes the ThisModel metadata
for a DEVICE. A DEVICE may also provide other means for a CLIENT to retrieve
its ThisModel metadata.
Change
Line 562:
From:
R2029: In any
Get Response SOAP ENVELOPE, a SERVICE MUST include any Metadata Section(s) with
Dialect equal to "http://docs.oasis-open.org/ws-dd/dpws/2008/09/Relationship".
To:
R2029: In any
GetMetadata Response SOAP ENVELOPE, a
SERVICE MUST include any Metadata Section(s) with Dialect equal to
"http://docs.oasis-open.org/ws-dd/dpws/2008/09/Relationship".
Change
Line 564:
From:
Get
[WS-Transfer] is the interoperable means for a CLIENT to retrieve the resource
representation data for a SERVICE – which includes the relationship metadata
for a SERVICE. A SERVICE may provide other means for a CLIENT to retrieve its
relationship metadata.
To:
GetMetadata
[WS-MetadataExchange] is the interoperable means for a
CLIENT to retrieve the metadata resource
representation data for a SERVICE – which includes the relationship
metadata for a SERVICE. A SERVICE may provide other means for a CLIENT to
retrieve its relationship metadata.
Change
Line 669:
From:
R2016: In any
Get Response SOAP ENVELOPE, a HOSTED SERVICE MUST include the Metadata
Section(s) with Dialect equal to "http://schemas.xmlsoap.org/wsdl/".
To:
R2016: In any
GetMetadata SOAP ENVELOPE, a HOSTED
SERVICE MUST include the Metadata Section(s) with Dialect equal to
"http://schemas.xmlsoap.org/wsdl/".
Change
Line 671:
From:
Get
[WS-Transfer] is the interoperable means for a CLIENT to retrieve resource
representation data for a HOSTED SERVICE – which includes the WSDL for a HOSTED
SERVICE. A HOSTED SERVICE may provide other means for a CLIENT to retrieve its
WSDL
To:
GetMetadata
[WS-MetadataExchange] is the interoperable means for a
CLIENT to retrieve metadata resource
representation data for a HOSTED SERVICE – which includes the WSDL
for a HOSTED SERVICE. A HOSTED SERVICE may provide other means for a CLIENT to
retrieve its WSDL
Change
Line 509
From:
Reference of
the SERVICE that returned this metadata in a Get Response SOAP ENVELOPE. At
To:
Reference of
the SERVICE that returned this metadata in a GetMetadata
Response SOAP ENVELOPE. At
Change
Line 524
From:
Endpoint
Reference of the SERVICE that returned this metadata in a Get Response SOAP
To:
Endpoint
Reference of the SERVICE that returned this metadata in a GetMetadata Response SOAP
Change
Line 282
From:
retrieving
metadata about the DEVICE and any HOSTED SERVICEs using Get [WS-Transfer].
To:
retrieving
metadata about the DEVICE and any HOSTED SERVICEs using GetMetadata[WS-MetadataExchange].
Change
Line 318
From:
The
description for a DEVICE is retrieved by sending a WS-Transfer Get SOAP
ENVELOPE to the DEVICE.
To:
The
description for a DEVICE is retrieved by sending a WS-MetadataExchange
GetMetadata SOAP ENVELOPE to the DEVICE.
Starting
at Line 420
From:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
</wsa:Action>
To:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response
</wsa:Action>.
Starting
at Line 568
From:
<soap:Envelope
xmlns:gen="http://example.org/general"
xmlns:img="http://printer.example.org/imaging"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
</wsa:Action>
To:
<soap:Envelope
xmlns:gen="http://example.org/general"
xmlns:img="http://printer.example.org/imaging"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response
</wsa:Action>.
Starting
at Line 678
From:
<soap:Envelope
xmlns:gen="http://example.org/general"
xmlns:img="http://printer.example.org/imaging"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
</wsa:Action>
To:
<soap:Envelope
xmlns:gen="http://example.org/general"
xmlns:img="http://printer.example.org/imaging"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response
</wsa:Action>.
Starting
at Line 753
From:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu
="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
</wsa:Action>
To:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdp="http://docs.oasis-open.org/ws-dd/dpws/2008/09"
xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu
="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<soap:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response
</wsa:Action>.