- From: Gilbert Pilz <gilbert.pilz@oracle.com>
- Date: Tue, 07 Jul 2009 18:24:54 -0700
- To: "public-ws-resource-access@w3.org" <public-ws-resource-access@w3.org>
- Message-ID: <4A53F566.5020602@oracle.com>
OK, here it is. The extended Subscribe request that our mother always warned us about, Example 4: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wse="http://www.w3.org/2009/02/ws-evt" xmlns:frq="http://www.refractory.org/timeDilation" xmlns:dev="http://www.smalldevices.org/evt-ext"> <s:Header> <wsa:Action>http://www.w3.org/2009/02/ws-evt/Subscribe</wsa:Action> . . . </s:Header> <s:Body> <wse:Subscribe> <wse:Delivery> <wse:NotifyTo> <wsa:Address>http://www.example.com/MyEventSink/OnStormWarning</wsa:Address> </wse:NotifyTo> ** <frq:Dilate> <frq:TimeScale useRelative="true"> <frq:PhaseShift>-73.243</frq:PhaseShift> </frq> <frq:Margin>2009-07-07T15:27:26-0700</frq:Margin> </frq:Dilate>** *<dev:Pauseable> <dev:Duration>P3H</dev:Duration> </dev:Pauseable> * </wse:Delivery> </wse:Subscribe> </s:Body> </s:Envelope> It bends the mind! How can we possibly figure out how frq:Dilate and dev:Pauseable are supposed to interact? Will the time dilation shorten or lengthen the pause duration and, if so, by how much? But wait! We don't support frq:Dilate. Using the "power of ignorability" granted to us by the WS-Eventing spec, we can (nay SHOULD!) act as if frq:Dilate element *wasn't even there*! In which case we can create a pauseable Subscription (because we support that) and respond as we did in Example 3: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wse="http://www.w3.org/2009/02/ws-evt" xmlns:dev="http://www.smalldevices.org/evt-ext"> <s:Header> <wsa:Action>http://www.w3.org/2009/02/ws-evt/SubscribeResponse</wsa:Action> . . . </s:Header> <s:Body> <wse:SubscribeResponse> <wse:SubscriptionManager> <wsa:Address> http://www.example.org/oceanwatch/SubscriptionManager </wsa:Address> </wse:SubscriptionManager> * <dev:Pauseable> <dev:Duration>P1H</dev:Duration> </dev:Pauseable>* </wse:SubscribeResponse> </s:Body> </s:Envelope> And so concludes Example 4. - gp
Received on Wednesday, 8 July 2009 01:25:50 UTC