- 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