- From: Antoine Mensch <antoine.mensch@odonata.fr>
- Date: Tue, 13 Oct 2009 22:19:39 +0200
- To: Doug Davis <dug@us.ibm.com>
- CC: public-ws-resource-access@w3.org, "ws-dd@lists.oasis-open.org" <ws-dd@lists.oasis-open.org>
Doug, Please see comments inline. Cheers Antoine Mensch > My take on these.... > > 1. A mechanism to relate the portType(s) of an event source Web > > Service to the abstract description of the events it can produce is > > needed. This mechanism cannot be solely based on WS- > > MetadataExchange, as this information may be needed by clients at > > design time, before any service endpoints are available. The draft > > replaces the previous mechanism for advertising events produced by a > > source, based on a portType extension (using both the wse: > > EventSource attribute and notification and solicit/response > > operations), by two new mechanisms, one introducing a new language > > (Event Descriptions), the second one using a WSDL definition for the > > sink. Both mechanisms provide an abstract description of the events, > > but no mechanisms to relate them to the portType of the event > > source. Rather, it is suggested to use new WS-Eventing dialects in > > conjunction with WS-MetadataExchange to retrieve the descriptions > atruntime. > > I've heard similar comments before and I'm still confused by them. :-) > How did the Subscriber get the Event Source's WSDL to begin with? > Whatever > mechanism it used to retrieve that WSDL should be used to retrieve the > Sink's WSDL or the Event Description stuff. Not sure what we can do > with this one - perhaps we should ask them for a proposal since, to me > anyway, I'm not sure what the issue is. In the context of DPWS, the Event Source's WSDL may be part of a Web Services specification describing a particular class of devices (such as a Printer, or a Dimmer, or a Valve). Clients may be written against such a specification and use the late binding mechanisms provided by WS-Discovery to retrieve actual devices and their hosted services using the Web Services portTypes described in the specification. Knowing that Web Services implementing a given portType also produce a given set of notifications is a valuable information that can help the client designer and developer. For instance, in our DPWS implementation, we use this information to generate handler skeletons used to process incoming notifications on the client side (Note that in the context of DPWS, we can normally assume that the binding used to send the notifications will be doc/literal, SOAP1.2 over HTTP + WS-Addressing, so information available in the abstract part of the WSDL in in general enough). The key point here is the explicit relation between the portType and the event types: I agree that we could retrieve Event Descriptions at design time in a way similar to that used to retrieve the WSDL, however if we cannot relate them to portTypes, we would need to introduce a new runtime mechanism, similar to the types mechanism used in WS-Discovery, to discover Event Sources based on a description of the notifications they can produce. This would seem highly redundant with the existing WS-Discovery mechanisms. A proposal to solve this issue could be: a) When using Event Descriptions: - Introduce the Event Description language as a standard extension to WSDL 1.1, thus allowing Event Descriptions to be embedded in the local WSDL or imported from another WSDL. - Optionally, introduce a new EventSet or EventInterface element in the Event Description language. This element would allow grouping of eventTypes in a single element, thus making external reference easier (much like a portType groups several operations). - Introduce a new wse:EventSet (or wse:EventInterface) attribute, holding a QName, that could be used in WSDL portTypes to reference the EventSet element representing the list of events that can be produced by Web Services implementing the portType. Alternatively, if the EventSet element is not introduced, introduce a new wse:EventTypes attribute, holding a list of QNames, that could be used in WSDL portTypes to reference the list of eventTypes representing the list of events that can be produced by Web Services implementing the portType. b) When using Notification WSDLs: It is simpler, as the Notification WSDL could be directly inserted in the event source WSDL, or imported by it. The only extension required would be a new wse:NotificationPortType attribute that could be used in WSDL portTypes to reference the Notification Port type, which defines (although looking at them from the sink perspective) the set of events that can be produced by the portType. Note that this proposal is only outlined to try to clarify the issue, and that any alternative solution that would solve the issue would be equally welcome. > > > > 2. Minor comments / requests for clarification: > > In Section 4.1 Subscribe, it would be helpful to clarify if there is > > any difference in behavior between a missing Filter element and a > > Filter element that is present but empty. > > Behavior for an empty Filter is pretty much Dialect specific. > Ignoring that the > default is XPath, its possible that some filter dialects will in fact > filter > stuff even w/o any child elements of the Filter element. Maybe even > saying this > is what they're looking for? Perhaps getting them to formalize an > issue and proposal would help make sure we address their concerns. > > > In Section 4.1 Subscribe, the description of wse:Filter says that > > the Event Source MUST generate a wse:EmptyFilter fault if it > > receives a Subscribe request with a filter that will never evaluate > > to true for the lifetime of the Subscription, but Section 6.11 > EmptyFilter > > says that the fault MAY be sent. This should be made consistent. A > > similar inconsistency exists with the wse:UnusableEPR fault. > > +1 - I think we should change the MAY to a MUST in section 6.11. I think > this is just a consistency issue and can be editorial if the WG is ok > with it. > > > In Section 4.4 Unsubscribe, the text references faults defined for > > Renew, mentioning that they are also applicable to Unsubscribe. > > However, the only fault defined in Renew is wse:UnableToRenew, which > > does not seem applicable to Unsubscribe. > > I think the latest editor's copy fixes this by talking about the soap > faults. > > > In Section 4.4 Unsubscribe and Section 5 Notifications, the term > > "subscribing event sink" is used several times. Should these be > > replaced with the term "Subscriber" (defined in section 3.4 > > Terminology) to avoid confusion? > > Fixed > > > In Section 4.2 Renew and Section 4.4 Unsubscribe, the status of the > > subscription after the failure of either request could be clarified > > (e.g., that any existing subscription is unaffected). > > +1 - we should clarify this. In fact we should probably check this > for all specs in all fault conditions. The state tables should help > with this too. > > > In Section 5 Notifications: Uses of the XPath expression /s: > > Envelope/s:Body/wse:Subscribe/wse:NotifyTo/ should be replaced by > > /s:Envelope/s:Body/wse:Subscribe/wse:Delivery/wse:NotifyTo/ (in two > > instances). > > Fixed. > > -Doug > ------------------------------------------------------------------------ > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.421 / Virus Database: 270.14.13/2432 - Release Date: 10/13/09 06:35:00 > >
Received on Tuesday, 13 October 2009 20:20:13 UTC