- From: Christopher B Ferris <chrisfer@us.ibm.com>
- Date: Thu, 9 Apr 2009 09:51:56 -0400
- To: public-ws-resource-access@w3.org
- Message-ID: <OF0ACABCF9.7BD6C752-ON85257593.004AFAC1-85257593.004C2A70@us.ibm.com>
I agree with David's analysis. Frankly, I see @Mode as an inferior and
WS-Eventing specific (partial) substitute for a WS-Policy assertion. As
Gil has pointed
out, it is also only a single assertion, which may be inadequate to
express certain "modes".
Frankly, the event sink and source endpoints should expose their
respective requirements/capabilities as WS-Policy, and standard WS-Policy
intersection should be applied to determine the compatibility of the two
policies.
Cheers,
Christopher Ferris
IBM Distinguished Engineer, CTO Industry Standards
IBM Software Group, Standards Strategy
email: chrisfer@us.ibm.com
blog: http://www.ibm.com/developerworks/blogs/page/chrisferris
phone: +1 508 234 2986
From:
David Snelling <David.Snelling@UK.Fujitsu.com>
To:
Gilbert Pilz <gilbert.pilz@oracle.com>
Cc:
"Chou, Wu (Wu)" <wuchou@avaya.com>, public-ws-resource-access@w3.org, Doug
Davis/Raleigh/IBM@IBMUS, Bob Freund <bob.freund@hitachisoftware.com>, "Li,
Li (Li)" <lli5@avaya.com>
Date:
04/09/2009 05:27 AM
Subject:
Re: too many extension points (was Re: [Bug 6692] New: Remove Mode from
the specification)
Sent by:
public-ws-resource-access-request@w3.org
Gil,
Thanks for this discussion. It also brought something back to my mind that
has worried me about Mode. If in the end we keep it, it will need to be
enhanced to provide even the minimal required support. Reasoning follows,
very incomplete at this stage, but would form the basis of a new issue
should we retain Mode.
So assuming Mode stays, we should encourage (at least SHOLD) ALL
extensions to the semantics of Eventing to use the same mechanism. As soon
as this logical step takes place, meeting the simple queuing use case
becomes problematic not to mention more interesting cases. Where do we put
queuing limits etc? The Mode attribute is only a URI. As Gil points out
there are a number of places to stuff extension information, but to
support Mode properly, we would need a <wse:PutModeExtensionDataHere/>
element so people could use the extension points consistently.
I don't want this can of worms opened at all, as the specification starts
to become very complicated (folks from the WS-Notification WG will
remember painful discussions when this kind of bloat was discussed there).
Eventing is a really good simple specification with clean semantics.
Retaining Mode in (a clean and functional manner) will probably change all
that.
Please let's get rid of Mode.
On 03 Apr 2009, at 21:31, Gilbert Pilz wrote:
Let's look at the schema for the wse:Subscribe message and it's included
DeliveryType element (I've taken the liberty of highlighting the existing
extension points - you need to view this as HTML to see what I'm talking
about):
<xs:element name="Subscribe">
<xs:complexType>
<xs:sequence>
<xs:element name="EndTo" type="wsa:EndpointReferenceType"
minOccurs="0" />
<xs:element name="Delivery" type="tns:DeliveryType" />
<xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0" />
<xs:element name="Filter" type="tns:FilterType"
minOccurs="0" />
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
</xs:element>
<xs:complexType name="DeliveryType" mixed="true">
<xs:sequence>
<xs:element ref="wse:NotifyTo" minOccurs="0" maxOccurs="1" />
<xs:any namespace="##any" processContents="lax"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Mode" type="xs:anyURI" use="optional"
default="
http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push" />
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
If I was a developer interested in extending WS-Eventing, I would find
this situation confusing. Ignoring the fact that the wse:NotifyTo element
is an EPR and can itself be extended, there are five (5) different ways I
can extend the wse:Subscribe message (or, if you count element/attribute
extension of the same element as a "single way", there are three (3)).
What makes this even more confusing is that not all of these extension
points have the same processing rules. The XML extension points (in
black-bold) are subject to the following, recently accepted, language:
The elements defined in this specification MAY be extended at the points
indicated by their outlines and schema. Implementations MAY add child
elements
and/or attributes at the indicated extension points but MUST NOT
contradict the
semantics of the parent and/or owner, respectively. If a receiver does not
recognize an extension, the receiver SHOULD ignore that extension. Senders
MAY
indicate the presence of an extension that has to be understood through
the use
of a corresponding SOAP Header with a soap:mustUnderstand attribute with
the
value "1".
Whereas the WS-Eventing specific extension point (in blue-bold) is subject
to the following:
If the event source does not support the requested delivery mode, the
request MUST fail, and the event source MAY generate a
wse:DeliveryModeRequestedUnavailable fault indicating that the requested
delivery mode is not supported.
I think the common reaction to this situation would be "WTF?" This needs
to be simplified so that, if you want to extend WS-Eventing, you aren't
required to navigate through a maze of different extension points that may
or may not result in different processing behavior (i.e. "What is the
difference between extending /wse:Subscibe/wse:Delivery or just
/wse:Subscribe?").
Clearly the "Mode" attribute, with its conflicting semantics, should be
removed. In addition to this, we need to remove the "Delivery" element and
it's extension points (obviously we would move the wse:NotifyTo element up
into the wse:Subscribe element). What we would be left with would look
like this:
<xs:element name="Subscribe">
<xs:complexType>
<xs:sequence>
<xs:element ref="wse:NotifyTo" minOccurs="0" maxOccurs="1" />
<xs:element name="EndTo" type="wsa:EndpointReferenceType"
minOccurs="0" />
<xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0" />
<xs:element name="Filter" type="tns:FilterType"
minOccurs="0" />
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
</xs:element>
What you have now is really two ways to extend the wse:Subscribe request.
You can extend the wse:Subscribe message (through either an attribute or
an element) if you want an extension that is specific to WS-Eventing, or
you can extend the NotifyTo EPR if you want an extension that operates at
the WS-Addressing level (i.e. across any technology that uses
WS-Addressing).
- gp
Chou, Wu (Wu) wrote:
Doug,
Mode attribute in WS-E is to specify the additional required event
delivery behavior or required application/business logic extensions that
the event source must understand/support before being allowed to accept
the event subscription.
My understanding is: "push_event_thru_proxy" is for all events delivery
from the Subscribe. As such, it covers SubscriptionEnd event. The Mode
attribute also allows to specify fine grained application logic to control
the event delivery. If you want, more fine grained event delivery
logic/procedure can be easily added to Mode attribute to control the event
delivery, e.g. "push_thru_proxy_for_subscriptionend_event_only",
"push_thru_proxy_for_non_subscriptionend_event", etc.
Mode attribute in WS-E provides a standard extension point to add
application specific logic and behavior to event delivery, so that it can
enforce the required procedure/logic for business applications when using
WS-Eventing for event delivery.
Thanks,
- Wu Chou.
>Wu,
> since its too easy for things to get lost in these long messages, let
me
focus on one particular aspect of this.
>Surely the idea of using a proxy
for sending messages is not WS-Eventing specific. How do you support
sending any other asynchronous message (non-NotifyTo messages) thru a
proxy?
>Need a clarification on th, e.g. a general question, a question for WS-E
or a question for WS-E plus Mode.
>For example, the SubscriptionEnd message.
thanks
-Doug
Wu Chou, IEEE Fellow, Ph.D. | Director |Dialogue System Research | AVAYA |
233 Mt. Airy Road| Rm. 2D48 | Basking Ridge, NJ 07920 | Voice/Fax:
908-696-5198 / 908-696-5401 | wuchou@avaya.com
Take care:
Dr. David Snelling < David . Snelling . UK . Fujitsu . com >
Fujitsu Laboratories of Europe Limited
Hayes Park Central
Hayes End Road
Hayes, Middlesex UB4 8FE
Reg. No. 4153469
+44-7590-293439 (Mobile)
______________________________________________________________________
Fujitsu Laboratories of Europe Limited
Hayes Park Central, Hayes End Road, Hayes, Middlesex, UB4 8FE
Registered No. 4153469
This e-mail and any attachments are for the sole use of addressee(s) and
may contain information which is privileged and confidential. Unauthorised
use or copying for disclosure is strictly prohibited. The fact that this
e-mail has been scanned by Trendmicro Interscan and McAfee Groupshield
does
not guarantee that it has not been intercepted or amended nor that it is
virus-free.
Received on Thursday, 9 April 2009 13:52:59 UTC