RE: [Bug 8286] New: description of Subscription End ambiguous

One of the reasons why a SHOULD is used for SubscriptionEnd message is because it is possible that a service may suffer abrupt shutdown and hence may not be able to send the terminal message. Besides, a service simply may not support SubscriptionEnd.

I can see two possible ways to tackle this issue:


1.        Keep it optional

a.       Leave the specification as is - that is, the SubscriptionEnd SHOULD be sent.



2.       Keep it conditional [Gil's proposal (attached) as clarified below]

a.       Service behavior

                                                               i.      The enumeration data source may or may not support sending EnumerationEnd.

                                                             ii.      If EnumerationEnd is supported, the data source will advertise this via the enumeration policy.

                                                           iii.      If the service advertises support for EnumerationEnd and the client sends EndTo, it must make a best attempt  to send EnumerationEnd.

                                                           iv.      If the service does NOT advertise support for EnumerationEnd and the client sends EndTo, it must generate an SubscriptionEndNotSupported fault.

b.      Client behavior

                                                               i.      Depending on whether the service supports EnumerationEnd or not, the client sends an EndTo.

I am continuing to think about other possible ways.

Thanks.

From: public-ws-resource-access-request@w3.org [mailto:public-ws-resource-access-request@w3.org] On Behalf Of Doug Davis
Sent: Tuesday, January 12, 2010 8:00 AM
To: Li, Li (Li)
Cc: public-ws-resource-access@w3.org
Subject: RE: [Bug 8286] New: description of Subscription End ambiguous


Li,
  I tend to agree.  I think there's always an implicit exception with any MUST in the specs because if the system crashes and doesn't recover its entire state then clearly the MUST will probably not happen.  So I interpret these things as "if you're still up and running then you MUST...".  The reason I was ok with calling out this one case is because this message/situation is specifically for the case where something really bad happened.  But, I can go with your proposal to go with the MUST w/o the "unless..." part - it seems less confusing.

thanks
-Doug
______________________________________________________
STSM |  Standards Architect  |  IBM Software Group
(919) 254-6905  |  IBM 444-6905  |  dug@us.ibm.com
The more I'm around some people, the more I like my dog.

"Li, Li (Li)" <lli5@avaya.com>
Sent by: public-ws-resource-access-request@w3.org

01/12/2010 10:43 AM

To

<public-ws-resource-access@w3.org>

cc

Subject

RE: [Bug 8286] New: description of Subscription End ambiguous







Eventing Current text:
If the event source terminates a subscription unexpectedly, a
SubscriptionEnd SOAP message SHOULD be sent to the endpoint reference
indicated when the subscription was created (see 4.1 Subscribe). This
endpoint reference MUST refer to an endpoint that supports the
SubscriptionEndPortType portType.

Proposal:
If the event source terminates a subscription unexpectedly and the
wse:EndTo EPR was present in the Subscribe message for that subscription
(see 4.1 Subscribe), the SubscriptionEnd message MUST be sent to the
endpoint referenced by that EPR unless the event source is incapable of
transmitting any messages at all.

I understand that the proposed change is to narrow the scope of
exception to the requirement. However, I also feel that MUST + exception
= SHOULD.

I think MUST always means "absolute requirement" which may not be
achieved by a conformant implementation due to unforeseen situations.

If we adopt the proposal, should we also check exceptions to all MUST?
For example, the (unless .... incapable ...) seems applicable to the
following requirement in WS-E 4.1 as well:

[Body]/wse:Subscribe/wse:Delivery/wse:NotifyTo
This is an OPTIONAL element. When present, this element indicates that
notifications MUST be sent to the EndpointReference identified by this
element.

I think it's better to just say MUST without any exception, or use
SHOULD, but not the mixed.

Thanks.

Li

Received on Tuesday, 12 January 2010 17:49:28 UTC