I think Hosted still needs to be (0, many) because some devices
will exist which have no hosted services, but still want to publish a
relationship section (perhaps because they are required to use an extensibility
point exposed in Host?) This is a common pattern in devices that use DPWS
for discovery and metadata, but use other protocols (often with fixed port
numbers) for actual control.
Host/ServiceId should either be mandatory or removed, but
keeping it optional doesn’t do very much for us. If we can’t
come up with a good reason to keep it (I can’t think of any) then we
should consider removing it entirely.
Lastly, we’ll need to update the schema and ensure that it’s
determininstic. Otherwise this looks good.
Thanks!
--D
From: Ram Jeyaraman
[mailto:Ram.Jeyaraman@microsoft.com]
Sent: Tuesday, December 16, 2008 8:13 AM
To: ws-dd@lists.oasis-open.org
Subject: [ws-dd] Issue 127 - DPWS - Change schema for Relationship
metadata element
This issue is assigned the number 127. For further
discussions on this issue, please refer to this issue number or use this
thread.
From: Antoine Mensch
[mailto:antoine.mensch@odonata.fr]
Sent: Tuesday, December 16, 2008 1:29 AM
To: Ram Jeyaraman
Cc: Antoine Mensch
Subject: NEW Issue - DPWS - Change schema for Relationship metadata
element
Document: DPWS CD1
Lines: 481-495
Description
Changes made to solve issues 038 and 039 highlighted the following issues
with the current schema for the Relationship element and its sub-elements:
- The wsa:EndpointReference of the wsdp:Host element should be mono-valued:
because this EPR must contain the device stable identifier, it is by definition
unique.
- The wsdp:ServiceId of the wsdp:Host element should be optional: this element
contains the same ID as the one used in the EPR above. It is therefore
redundant. The rationale for keeping it optional and not suppressing it
altogether is to preserve backward compatibility with the structures used in
DPWS 1.0 (although it is not complete backward compatibility, as the namespace
has changed).
- The wsdp:Hosted element should be mandatory (occurrences 1-n instead of 0-n):
this element contains two mandatory sub-elements, wsa:EndpointReference and
wsdp:ServiceId. While the value of the first one can be inferred from the
endpoint that is serving the Get(Metadata) request, the value of the second
cannot. It is theefore not possible to infer the complete wsdp:Hosted content
in its absence, unlike what is suggested in the current version of the spec.
Proposed resolution (new in red, old in blue)
The normative outline should be updated as follows:
<wsdp:Relationship Type="xs:anyURI" ... > (<wsdp:Host> <wsa:EndpointReference>endpoint-reference</wsa:EndpointReference>+ <wsdp:Types>list of xs:QName</wsdp:Types>? <wsdp:ServiceId>xs:anyURI</wsdp:ServiceId>? ... </wsdp:Host>)? (<wsdp:Hosted> <wsa:EndpointReference>endpoint-reference</wsa:EndpointReference>+ <wsdp:Types>list of xs:QName</wsdp:Types>? <wsdp:ServiceId>xs:anyURI</wsdp:ServiceId> ... </wsdp:Hosted>)*+ ... </wsdp:Relationship> |
The descriptive text should be updated accordingly.