- From: Doug Davis <dug@us.ibm.com>
- Date: Thu, 29 Jan 2009 22:08:21 -0500
- To: Gilbert Pilz <gilbert.pilz@oracle.com>
- Cc: Li Li <lli5@avaya.com>, public-ws-resource-access@w3.org, public-ws-resource-access-request@w3.org
- Message-ID: <OF9BEF5B77.0F5F34EF-ON8525754E.00104907-8525754E.00113F64@us.ibm.com>
Gil, perhaps I'm not following your last paragraph, but wouldn't: <wsp:WSEventing> <wsp:Policy> <wsep:EventSinkWSDL wsp:Ignorable="true"> http://webservice.bea.com/RoomTracker/soap12WNotify?WSDL </wsep:EventSinkWSDL> <wsep:Wrapped wsp:Optional="true"/> </wsp:Policy> </wsp:WSEventing> allow an event source to indicate that it supports both wrapped and unwrapped notifications? The EventSinkWSDL will include both types of notifications (the individual events + the wrapped one). And based on what the Subscribe looks like they will only need to support one flavor of the operations. In this respect the WSDL would contain the list of 'possible' messages sent by the event source - which ones apply to which subscription/event-sink will vary depending on what's in the Subscribe. ps. I'd prefer if the wrapped assertion was something like: <x:Format xmlns:x="http://www.w3c.org/.../policy/format/Wrapped"/> This would be more consistent with the other extensible assertions. thanks -Doug ______________________________________________________ STSM | Standards Architect | IBM Software Group (919) 254-6905 | IBM 444-6905 | dug@us.ibm.com Gilbert Pilz <gilbert.pilz@oracle.com> Sent by: public-ws-resource-access-request@w3.org 01/29/2009 07:45 PM To Li Li <lli5@avaya.com> cc public-ws-resource-access@w3.org Subject Re: Proposal for WS-Eventing Issue 6429 There was some discussion on the concall of Jan 27th, (2009 for future web services archaeologists) about how this proposal would dovetail with my meta-proposal ( http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jan/0051.html ). The following is some detail on how this might work: First assume that support for wrapped Notifications is optional for both Event Sources and Event Sinks. To allow an Event Source to advertise that it supports and/or requires the use of wrapped Notifications we define the wsep:Wrapped nested policy assertion. An policy that used this assertion might look like the following: <wsp:WSEventing> <wsp:Policy> <wsep:EventSinkWSDL wsp:Ignorable="true"> http://webservice.bea.com/RoomTracker/soap12WNotify?WSDL </wsep:EventSinkWSDL> <wsep:Wrapped/> </wsp:Policy> </wsp:WSEventing> The above means that: 1. WS-Eventing is supported by the endpoint to which this policy is attached (i.e. the endpoint is a Subscription Endpoint). 2. The notification WSDL is at " http://webservice.bea.com/RoomTracker/soap12WNotify?WSDL". 3. The Subscription Endpoint supports wrapped Notifications only. If you send a Subscribe message with a @Format other than "wrapped" the Event Source will reject the request and generate a fault. The WSDL at "http://webservice.bea.com/RoomTracker/soap12WNotify?WSDL" might look like the following: <wsdl:definitions targetNamespace="http://.../reservations" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wse="http://www.w3.org/2009/08/ws-eventing" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- Import GenericSinkPortType and messages from W3C site --> <wsdl:import namespace="http://www.w3.org/2009/08/ws-eventing" location= "http://www.w3.org/2009/08/ws-eventing/GenericSink.wsdl"/> <wsdl:binding name=?CancellationNotificationsSOAP12Binding? type=?wse:GenericSinkPortType?> <wsdl:documentation> This is a SOAP 1.2 Doc/Lit binding of the WS-Eventing-defined wrapped interface. </wsdl:documentation> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name=?NotifyEvent?> <soap:operation/> <wsdl:input> <soap:body use=?literal?/> </wsdl:input> </wsdl:operation> </wsdl:binding> </wsdl:definitions> As you can see, this WSDL imports the GenericSinkPortType (with attendant message and type definitions). It then specifies a SOAP 1.2, Doc/Lit binding of this portType to use as the Notification Binding. This solves one of the problems with Li's proposal that I brought up at the F2F; "how do I know what kind of binding to use for generic notifications?" You may have noticed that there is a bit of redundancy in the above model. Because it uses the GenericSinkPortType, the Notification Binding we've specified can't be used with anything but wrapped notifications, a fact which is also advertised by the wsep:Wrapped assertion. I can't really think of a way around this right now. I certainly wouldn't want Event Sinks and/or Subscribers to have to infer the @Format of the Subscription based on the Notification WSDL. The other thing that is bother me is the treatment of the wsp:Optional attribute and the wsep:Wrapped assertion. Given a particular Notification Binding you either do or don't have to send wrapped Notifications; there isn't really any optionality allowed. In other words, in this model it isn't possible to define a Subscription Endpoint that simultaneously supports both wrapped and unwrapped versions of the same Notifications. - gp
Received on Friday, 30 January 2009 03:09:18 UTC