- From: David Hull <dmh@tibco.com>
- Date: Tue, 03 May 2005 14:56:26 -0400
- To: "public-ws-addressing@w3.org" <public-ws-addressing@w3.org>, public-ws-addressing-comments@w3.org
- Message-id: <4277C95A.8060606@tibco.com>
Following on to yesterday's conversation ...
There appear to be (at least) two different ways to parse the
requirements in section 3 of the core, though evidently only the first
was intended. I'll call one "message-based" and the other
"endpoint-based". While neither term is completely apt, I hope that
they're suggestive and reasonably clear. I'm going to sidestep the
issue of non-SOAP bindings for the nonce.
In the message-based view, the requirements mainly pertain to what it
means for a message to be WSA compliant, with a bit about what a WSA
compliant endpoint should do with a complaint message, with no
restrictions on what a compliant endpoint may do with a non-compliant
message.
In this view
* A message for which no reply is expected is compliant if it has a
wsa:Action header element in its SOAP envelope and non-compliant
otherwise.
* A message for which a reply is expected is compliant if it has
wsa:Action, wsa:ReplyTo and wsa:MessageID header elements in its
SOAP envelope and non-compliant otherwise.
* A receiver which, through whatever means, understands that a reply
is expected for a message must follow these rules:
o If the message contains wsa:Action, wsa:ReplyTo and
wsa:MessageID elements, then the reply MUST contain
+ An appropriate wsa:Action.
+ A wsa:To header containing the [address] of the
wsa:ReplyTo or wsa:FaultTo header as appropriate
(unless that [address] was anonymous, in which case
the header may be omitted).
+ Additional headers for the [reference parameters] as
per the SOAP binding.
+ A wsa:RelatesTo header, optionally with
@RelationshipType set to http://.../reply
o Otherwise, the message is not compliant, and the endpoint
may do anything it pleases.
* A receiver which, through whatever means, understands that no
reply is expected for a message may do anything it pleases whether
the message is compliant or not.
Evidence for this view in the text of the core spec includes:
* The phrase "reply /to a WS-Addressing compliant request/"
(emphasis added) at the beginning of section 3.2
* The phrase "when formulating a fault message as defined in 3.2
Formulating a Reply Message" in the description of the [fault
endpoint] abstract property.
* The absence of any other rules directly constraining endpoint
behavior.
In the endpoint-based view, the requirements mainly pertain to the
behavior of compliant endpoints, with the message form constrained by
these requirements.
In this view
* An endpoint which does not expect to give a reply expects a
wsa:Action header to be present in incoming messages. If there is
none, it should send a fault if it can figure out how to.
Similarly, it should fault if there is a wsa:ReplyTo or a
wsa:FaultTo and no wsa:MessageID.
* An endpoint which expects to give a reply
o MUST fault if there is no wsa:ReplyTo header.
o also should fault if there is no wsa:Action, or a
wsa:ReplyTo or wsa:FaultTo but no wsa:MessageID
o MUST formulate a reply message as described above.
Evidence for this view in the text of the core spec includes:
* The phrase "If none [i.e., no [reply endpoint], which must appear
as wsa:ReplyTo] is present, the processor MUST fault." in list
item 1 ("Select the appropriate EPR") in section 3.2
* The phrase "The sender MUST use the contents of the [reply
endpoint] to formulate the reply message as defined in 3.2 ..." in
the description of the [reply endpoint] abstract property.
* The phrase "If this property is present the [message id] property
is REQUIRED" in the same description and in the description of
[fault endpoint] (together with the requirement that [message id]
be realized as wsa:MessageID).
* The presence of a "Message Addressing Property Required" fault in
section 5.2 of the SOAP binding.
Received on Tuesday, 3 May 2005 18:57:06 UTC