[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: WS-Addressing: no essential difference 2004, CR, 2006 on [reply endpoint]
In regard to the action item on reviewing use of WS-Addressing so that
we can reference the latest version. I think it is wrong to say that perceived issues with the use of WS-Addressing [reply endpoint] in WS-TX are caused by the "change from 2004 [submission] to W3C." I also doubt the statement that W3C is more "lenient" than 2004 with respect to presence of message id accompanying relates-to. The change to WS-A from 2004 to W3C does not change anything essentially for WS-TX, with respect to the use of [reply endpoint]. (This does not mean there are no changes in other respects, nor does it obviate need to review use WS-Addressing.) 2004-08, the CR (2005-08) and the latest working draft (en route to PR) all specify an identical set of rules to follow if the application contract deems a message to be a "reply". The rules become clearer in each successive draft, but they are the same rules. It's a bit like the lawyer saying "What my client meant to say ...". For each of these three versions, the rules are quoted at the bottom of this mail. In 2004 it's section 3.2 and prior statements in Section 3 describing properties; in 2005 they are grouped into section 3.3, in the latest version this has become sections 3.3 and 3.4. In all three versions if the message is deemed a reply (not a one-way) you:
This is in line with the original statements by Max and Ian on the March 9th call: "these messages are not replies in the WS-Addressing sense". In which case: it looks like they never needed to have message ids, and never needed to use reply fault processing rules. If we are now going to change the design, then we should be clear that is what we are doing, and be equally clear that use of W3C WS-Addressing does not compel us to make any change. (If you believe WS-Addressing has increased in leniency, then there is all the less reason to make changes.) The course of minimum change is: Least change approach to use of WS-Addressing: change the spec, not the interop scenarios, and change less in the implementations 1. Explicitly state for clarity: "These one-way messages, despite their use of wsa:ReplyTo, are not replies in the special sense of WS-Addressing, i.e. the rules stated in section 3.4 of W3C WS-Addressing ("Formulating a Reply Message") do not apply." I think this is the kind of explicit statement Monica was suggesting. 2. Add into the old Section 9 of WS-AT rules, which now appear in both WS-AT and WS-BA, the statement that message id is required alongside the reply-to bringing spec in line with reality of all preceding implementations and the interop scenarios. 3. Leave the fault correlation rules in place (send to fault-to, cite message id in relates-to). (No change to the specs). That is: we can codify the decision of the input authors to write their own special rules for using reply-to and message ids (send the stuff, ignore it for replies that are not faults, copy the WS-A rules for replies that are not faults). Message id will be sent, but not used, except for faults. If we do that then we will restrict change in implementations to namespace changes and the like. Note that this type of special behaviour is not tested by the WS-Addressing interop scenarios, so presumably everyone's WS-Addressing implmentations will handle this kind of special behaviour just fine ;-) . Joking aside, I think they will handle it properly, because it would require some serious conscious effort to enforce use of replies (in the strict section Section 3.4 sense), as opposed to facilitate their use. Do not favour least change in this case Having said that, I think that using the [reply endpoint] in this special way is misleading and unnecessary. It grabs a property defined as the cornerstone of a set of well-defined behaviours, designed to be available for a wide variety of applications where logically-related messages bounce back and forth in a conversation, and then puts it to use as the cornerstone of another set of behaviours for one specific application, for seemingly very similar purposes. It's like adultery: it may be legal, but it feels wrong. If we are going to change the spec (e.g. to remove the use of message id) then we should go the whole hog, and create a new extension property, as Marc Hadley suggested we could do: "I'd also note that if WS-TX needs an EPR but [reply endpoint] doesn't quite fit the bill then its entirely OK to define a new EPR typed property that does." Clean break proposal: stop using reply-to, message ids, fault rules altogether This takes off from Max's point that faults can be viewed just as "yet another notification message". 1. Define an extension property called [alternative endpoint] (or any better name you can dream up) which MAY be used to route a response, which is only present on non-terminal notification messages. Or put an element with this semantic up in the body of the message if you don't want to make this a WS-A level artefact. This replaces the use of [reply endpoint]. 2. Make it clear that faults and terminal messages do not use this extension property. 3. State that message ids should be ignored if present (don't ban them, but don't require them). Or ban them. In either approach (least change or clean break) WS-A implementations will simply pass the message to the receiving application (WS-TX endpoint), which will apply the special rules defined by WS-TX for coordination protocol terminal, non-terminal and fault response messages. Finally, there is an open question in my mind as to whether we should be requiring the [reply endpoint] to have a "none" URI rather than omitting the [reply endpoint], which leads to defaulting by the receiver to an inferred "anonymous" URI value. This would be relevant for terminal messages in the "least change" case, and for all notification messages in the "clean break" proposal. Alastair The rules in the three versions (2004, 2005, 2006): 2004-08 (Submission) http://www.w3.org/Submission/2004/SUBM-ws-addressing-20040810/ 3. Message Information HeadersThis section defines the model and syntax of a message information header. The message information headers collectively augment a message with the following abstract properties. These properties enable the identification and location of the endpoints involved in an interaction. The basic interaction pattern from which all others are composed is "one way". In this pattern a source sends a message to a destination without any further definition of the interaction. "Request Reply" is a common interaction pattern that consists of an initial message sent by a source endpoint (the request) and a subsequent message sent from the destination of the request back to the source (the reply). A reply can be either an application message, a fault, or any other message. The properties below support one way, request
reply, and any other interaction pattern: [My emphasis, AG] [...]
3.2 Formulating a Reply MessageThe reply to a WS-Addressing compliant request message MUST be compliant to WS-Addressing and be constructed according to the rules defined in this section. The following example illustrates a request message using message information header blocks in a SOAP 1.2 message: <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:f123="http://www.fabrikam123.example/svc53"> <S:Header> <wsa:MessageID>uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff </wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://business456.example/client1</wsa:Address> </wsa:ReplyTo> <wsa:To S:mustUnderstand="1">mailto:joe@fabrikam123.example</wsa:To> <wsa:Action>http://fabrikam123.example/mail/Delete</wsa:Action> </S:Header> <S:Body> <f123:Delete> <maxCount>42</maxCount> </f123:Delete> </S:Body> </S:Envelope> This message would have the following property values: [destination] The URI mailto:joe@fabrikam123.example [reply endpoint] The endpoint with [address] http://business456.example/client1 [action] http://fabrikam123.example/mail/Delete [message id] uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff The following example illustrates a reply message using message information header blocks in a SOAP 1.2 message: <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:f123="http://www.fabrikam123.example/svc53"> <S:Header> <wsa:MessageID> uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwwwww </wsa:MessageID> <wsa:RelatesTo> uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff </wsa:RelatesTo> <wsa:To S:mustUnderstand="1"> http://business456.example/client1 </wsa:To> <wsa:Action>http://fabrikam123.example/mail/DeleteAck</wsa:Action> </S:Header> <S:Body> <f123:DeleteAck/> </S:Body> </S:Envelope> This message would have the following property values: [destination] http://business456.example/client1 [action] http://fabrikam123.example/mail/DeleteAck [message id] uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwww [relationship] (wsa:Reply, uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff) Candidate Recommendation (2005-08) http://www.w3.org/TR/ws-addr-core/ 3.3 Formulating a Reply MessageThis section specifies the WS-Addressing-specific rules for creating a reply or fault message related to another message.
Latest editors' working draft (March 2006) http://dev.w3.org/cvsweb/~checkout~/2004/ws/addressing/ws-addr-core.html?rev=1.51&content-type=text/html;%20charset=iso-8859-1#N67432 3.3 Sending a Message to an EPRThis section describes the process of constructing a message in accordance to an EPR.
3.4 Formulating a Reply MessageThis section specifies the WS-Addressing-specific rules for creating a reply or fault message related to another message.
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]