[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [ws-tx] Issue 30 - One-way message replies
Since when? Last I recall on the subject was at the f2f, where we agreed to raise the issue in the first place. Maybe I'm just getting too old for this ;-) Mark. Paul Cotton wrote: > Actually if you read the issue it says there are two different proposals > on the table. > > Paul Cotton, Microsoft Canada > 17 Eleanor Drive, Ottawa, Ontario K2E 6A3 > Tel: (613) 225-5445 Fax: (425) 936-7329 > mailto:Paul.Cotton@microsoft.com > > > > > > >> -----Original Message----- >> From: Mark Little [mailto:mark.little@jboss.com] >> Sent: April 4, 2006 5:20 AM >> To: Doug Davis >> Cc: ws-tx@lists.oasis-open.org >> Subject: Re: [ws-tx] Issue 30 - One-way message replies >> >> Isn't this related to >> http://www.oasis-open.org/apps/org/workgroup/ws- >> tx/email/archives/200603/msg00091.html >> ? >> >> And in which case, there's already a proposal on the table: define our >> own endpoint type instead of wsa:ReplyTo and use that in this >> > situation. > >> That's pretty much what we agreed at the f2f meeting (hence the >> > issue). > >> Mark. >> >> >> Doug Davis wrote: >> >>> Alastair, >>> Why not an option "C" - just define a new EPR (like 'i' from >>> > option > >>> "A") and just let the normal WS-Addr rules apply for everything >>> > else. > >>> That's very close to option "B", which , as you say, lines up with >>> WS-Addr but doesn't overload wsa:ReplyTo - Tx defines its own EPR. >>> > I > >>> really don't think Tx needs to do anything other than define a new >>> EPR. If Tx believes that the WS-Addr headers need to be contrained >>> for, what appears to me to be, normal message flows then something >>> > is > >>> really wrong with WS-Addr because then all specs will need to do the >>> same thing. But I don't think that's the case. >>> thanks, >>> -Doug >>> >>> >>> >>> *Alastair Green <alastair.green@choreology.com>* >>> >>> 04/03/2006 03:26 PM >>> >>> >>> To >>> Alastair Green <alastair.green@choreology.com> >>> cc >>> Bob Freund-Hitachi <bob.freund@hitachisoftware.com>, Doug >>> Davis/Raleigh/IBM@IBMUS, Mark Little <mark.little@jboss.com>, >>> ws-tx@lists.oasis-open.org >>> Subject >>> Re: [ws-tx] Issue 30 - One-way message replies >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> In preparation for Thursday's meeting, I wanted to formulate a >>> concrete change proposal along the lines of my last message (quoted >>> below), but on checking it over, I believe I am mistaken on one key >>> point. I say below: >>> >>> '[reply endpoint] cannot be set to "none" (that will blitz all >>> responses)' >>> >>> I think that is wrong. If the [reply endpoint] is set to "none", it >>> > is > >>> still possible to have a [fault endpoint]. If the only kind of >>> > "reply" > >>> in the full WS-Addressing sense is a fault, then faults will not be >>> thrown away, they will be sent using to the fault endpoint using >>> [relationship] (message id etc). >>> >>> This would enable the use of a special [ws-tx conversation endpoint] >>> instead of [reply endpoint], the difference being that use of the >>> [ws-tx conversation endpoint] doesn't imply use of [relationship]. >>> >>> However, given the necessary presence of [fault endpoint] and >>> > [message > >>> id] for fault processing it does beg the question: "why not use the >>> WS-Addressing reply-processing model?" In other words, always >>> > specify > >>> [reply endpoint] and [message id] on /all/ messages, and then use >>> > that > >>> EPR for normal replies, amnesia cases, faults. >>> >>> To facilitate a clear discussion, I'd like to suggest two >>> > alternative > >>> resolutions of Issue 30: >>> * >>> Option A.* >>> >>> Retain status quo, with following qualifications/clarifications: >>> >>> i) use extension property [ws-tx conversation endpoint] (or [source >>> endpoint]) instead of [reply endpoint] on non-terminal notification >>> messages. >>> ii) Set [reply endpoint] on all notification messages to "none" to >>> avoid dragging in "anon" default. >>> iii) Make clear that [fault endpoint] and [message id] must always >>> > be > >>> present (for terminal and non-terminal messages), and that WS-A >>> predefined faults and WS-TX faults are sent, using [relationship] to >>> the [fault endpoint] supplied on the message being responded to. >>> iv) Retain MAY rule with respect to use of [ws-tx conversation >>> endpoint] (or [source endpoint]). >>> * >>> Option B.* >>> >>> i) Specify a non-none ("physical address") value for [reply >>> > endpoint] > >>> for all messages, along with [message id]. >>> ii) omit [fault endpoint] >>> ii) Send responses, if any (whether normal "conversational", WS-A >>> predefined faults, WS-TX faults), to that EPR using [relationship], >>> following MUST rule of WS-Addressing reply processing model. >>> >>> Option B has the advantage that it lines up WS-AT/BA messages with >>> WS-C messages (one size fits all). It also leverages WS-Addressing >>> > in > >>> a straightforward way. >>> >>> Neither proposal is a "no-change" from the status quo. >>> >>> Alastair >>> >>> Alastair Green wrote: >>> Bob, >>> >>> That's a useful summary. >>> >>> It seems that the impact for WS-TX (which explicitly eschews use of >>> anonymous endpoints) is therefore: >>> >>> 1. Abolish the distinction between "request-response" and "one-way". >>> None of our messages are best-attempt throwaways, and we would want >>> > to > >>> communicate predefined WS-A faults. >>> >>> 2. If we are going to have the apparatus in place for sending fault >>> replies to a non-anon EPR then we might as well use that for WS-TX >>> level faults (i.e. preserve that part of the status quo). >>> >>> 3. We might as well use the [reply endpoint] for all messages, so >>> > that > >>> ordinary and fault responses always have somewhere to go. >>> >>> 4. Therefore, we are indeed using the WS-A "reply processing model", >>> for all messages. >>> >>> Background clarification/reasoning for the above: >>> >>> A. You didn't comment on the defaulting of the [reply endpoint] to >>> anonymous. Am I right that it will /always/ default to "anonymous" >>> > if > >>> not specified, when using the XML infoset? >>> >>> B. If answer to A. is yes, then my summary is that WS-A recognizes >>> three message exchange patterns: >>> >>> i) A message which will never be replied to at all ([reply endpoint] >>> > = > >>> none), which will not return standard faults (the destination is a >>> sink or black hole) >>> >>> ii) Messages which will receive some kind of response, at minimum >>> standard predefined faults, which specify (explicitly or by default) >>> that [reply endpoint] = anonymous, and which can therefore omit >>> message id. Delivery of the response is at some level synchronized: >>> > it > >>> holds a transport request-reply exchange open while a response is >>> formulated. >>> >>> iii) Messages which will receive some kind of response, at minimum >>> standard predefined faults, which specify either [reply endpoint] = >>> "real address", or [fault endpoint] = "real address", and which have >>> message ids. The underlying transport exchange concludes asap on >>> receipt (just an ack); the response (ordinary or fault) uses a new >>> transport-level exchange. >>> >>> B. iii) is a difficult beast, unless you use [reply endpoint]. I say >>> that because [reply endpoint] cannot be set to "none" (that will >>> > blitz > >>> all responses); if it is not set to a "real address" then it >>> > defaults > >>> to "anonymous". If that is not what is required, then it must be set >>> to a "real address". Ergo, B.iii) messages are extremely unlikely to >>> exist unless [reply endpoint] is set. Which is the premise of my >>> proposed actions for WS-TX in items 1 to 4 at the start of this >>> > mail. > >>> Alastair >>> >>> Bob Freund-Hitachi wrote: >>> It is assumed that even a "one way" message when there is the >>> potential of faults (nearly always I think), is in reality a >>> request-response message with a potentially null response. >>> The purpose of faultTo is to provide an address other than replyTo >>> should the implementer decide that faults should go to a different >>> >> place. >> >>> Specialized (non general use cases) exist where responses are ALWAYS >>> expected to be on a back-channel, thus the defaulting mechanism that >>> is specified in WS-A and a somewhat grudging optional on messageid >>> since in this case correlation may be preformed implicitly. >>> In general, when messages may be sent and received asynchronously >>> > with > >>> respect to the lifetime of an underlying protocol specific >>> backchannel, ReplyTo will be explicitly set to the desired value. >>> In order to support either deployment scenario, then it is required >>> > to > >>> specify both replyTo as well as messageid in the sent messages so >>> > that > >>> returned replies, even if they are only fault messages, may be >>> correlated through relatesTo. >>> >>> I don't think that I have seen any one-way messages in the wild >>> > other > >>> than possibly of non-reliable logging-type messages where there is >>> > no > >>> particular concern about its receipt or faults it may produce >>> Cheers >>> -bob >>> >>> >>> >>> >>> > ------------------------------------------------------------------------ > >>> *From:* Alastair Green [_mailto:alastair.green@choreology.com_] * >>> Sent:* Tuesday, March 21, 2006 7:59 AM* >>> To:* Doug Davis* >>> Cc:* Mark Little; _ws-tx@lists.oasis-open.org_ >>> <mailto:ws-tx@lists.oasis-open.org>* >>> Subject:* Re: [ws-tx] Issue 30 - One-way message replies >>> >>> Mark, Doug: >>> >>> I don't think that the section I quoted, tho' it appears in 3.4, is >>> limited to the "reply processing model". It references section 3.2: >>> /wsa:ReplyTo >>> >>> This OPTIONAL element (of type wsa:EndpointReferenceType) provides >>> > the > >>> value for the [reply endpoint] property. If this element is NOT >>> present then the value of the [address] property of the [reply >>> endpoint] EPR is _"http://www.w3.org/2005/08/addressing/anonymous"_ >>> <http://www.w3.org/2005/08/addressing/anonymous>. >>> This seems to me to unambiguously enforce a default of anonymous >>> > when > >>> using the XML infoset. >>> >>> Section 3.4 simply reminds the reader that this rule exists and will >>> apply (also) in the reply processing model (which I agree and >>> understand we may not want to use -- that's why I raised this whole >>> discussion in the first place). >>> >>> As for the question of where a fault goes to -- you raise an >>> interesting dimension, Doug. :As I understand it there are two kinds >>> of fault we could be talking about here: >>> >>> 1) An application-defined fault which the application contract >>> determines should go to the fault-to EPR of a prior and related >>> inbound message >>> 2) A standard WS-Addressing fault, predefined in the WS-A SOAP >>> > binding > >>> spec >>> >>> Properties are provided by WS-Addressing to assist in delivering >>> > fault > >>> type 1). If you choose not to use them, then that's fine. The >>> direction we seem to be heading in here is to define a WS-TX "fault" >>> as "yet another WS-TX coordination protocol message with >>> > WS-TX-defined > >>> semantics, that happens to be generated when an inbound message >>> > causes > >>> a state machine to take an alternative path (generate a different >>> message than it would when pursuing the normal, happy path)". >>> >>> However, the standard WS-Addressing faults do need to use the >>> apparatus defined in WS-Addressing. >>> >>> Section 6 ("Faults") of the WS-A SOAP binding spec >>> (_http://dev.w3.org/cvsweb/~checkout~/2004/ws/addressing/ws-addr- >>> >> soap.html_ >> >>> <http://dev.w3.org/cvsweb/%7Echeckout%7E/2004/ws/addressing/ws-addr- >>> >> soap.html>) >> >>> reads, in part: >>> Endpoints compliant with this specification MUST include the >>> > required > >>> message addressing properties serialized as SOAP headers in >>> > generated > >>> fault messages. Fault messages are correlated as replies using the >>> [relationship] property as defined in Web Services Addressing 1.0 - >>> Core[/_WS-Addressing-Core_/ >>> <http://dev.w3.org/cvsweb/%7Echeckout%7E/2004/ws/addressing/ws-addr- >>> >> soap.html#WSADDR-CORE>]. >> >>> Note that omission of the [message id] property in an input message >>> may impact the ability of a fault message receiver to correlate the >>> fault message to the message that caused the fault message to be >>> generated. Omission of the [fault endpoint] or [reply endpoint] >>> properties in input messages may impact the delivery of a generated >>> fault message >>> So, to allow correct WS-Addressing predefined fault processing, all >>> WS-A applications/implementations must specify message ids and at >>> least a fault-to EPR. Arguably, if the [reply endpoint] is allowed >>> > to > >>> default to anonymous then the absence of a message id would not >>> prevent the delivery of the fault (no correlation needed). >>> >>> However, it does appear that WS-A SOAP binding fault processing >>> expects use of the whole "reply processing model" apparatus /with >>> respect to standard faults/. This would militate against omission of >>> fault-to and reply-to, an omission which I think you view as >>> > "normal" > >>> for one-ways. >>> >>> Therefore: we can properly avoid use of [reply endpoint], but it is >>> far from clear that we can escape [fault endpoint] so easily. >>> >>> And, if we have to drag [fault endpoint], [message id] and >>> [relationship] back in for this purpose, then it would appear that >>> > the > >>> difference between one-way and the full-scale "reply processing >>> > model" > >>> is more apparent than real. Are we coming full circle? >>> >>> If we default reply-to to anonymous (by omission), and live with the >>> fact that faults must now travel on the anonymous back-channel, then >>> > I > >>> guess you could just about get away with ignoring the reply >>> > processing > >>> model. But that requires some heroic assumptions. >>> >>> The statement: >>> >>> "Fault messages are correlated as replies using the >>> > [relationship] > >>> property as defined in Web Services Addressing 1.0 - >>> Core[/_WS-Addressing-Core_/ >>> <http://dev.w3.org/cvsweb/%7Echeckout%7E/2004/ws/addressing/ws-addr- >>> >> soap.html#WSADDR-CORE>]." >> >>> seems, on the face of it, to be normative. The qualifications in the >>> following sentences about "impacting" the ability to deliver faults >>> could be seen to weaken the force of that statement, but once again, >>> > I > >>> get that queasy feeling that one is in danger of bending and dodging >>> the design intent of WS-Addressing. >>> >>> Alastair >>> >>> >>> Doug Davis wrote: >>> >>> I don't think you want to do that because in the absence of a >>> wsa:FaultTo, setting >>> wsa:ReplyTo to "none" prevents you from getting back any fault >>> messages - not >>> Tx,non-related, faults, but other ones. These are just normal >>> one-ways which >>> people normally leave replyTo/faultTo blank - I see no reason to >>> > make > >>> them >>> anything special but including a 'none' replyTo. >>> -Doug >>> >>> *Alastair Green **_<alastair.green@choreology.com>_* >>> <mailto:alastair.green@choreology.com> >>> >>> 03/21/2006 06:46 AM >>> >>> >>> To >>> Mark Little _<mark.little@jboss.com>_ >>> > <mailto:mark.little@jboss.com> > >>> cc >>> _ws-tx@lists.oasis-open.org_ <mailto:ws-tx@lists.oasis-open.org> >>> Subject >>> Re: [ws-tx] Issue 30 - One-way message replies >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> Mark, >>> >>> My point is that the WS-Addressing spec mandates that an absent >>> reply-to causes the receiver to infer an anonymous response: >>> >>> Section 3.4 of the latest draft: >>> >>> *Note:* >>> >>> The [reply endpoint] message addressing property will always be >>> present when using the XML Infoset representation since, in the >>> absence of a wsa:ReplyTo element, the value of the [reply endpoint] >>> message addressing property defaults to an EPR with an [address] >>> property of _"http://www.w3.org/2005/08/addressing/anonymous"_ >>> <http://www.w3.org/2005/08/addressing/anonymous> - see section *_3.2 >>> XML Infoset Representation of Message Addressing Properties_* >>> <http://dev.w3.org/cvsweb/%7Echeckout%7E/2004/ws/addressing/ws-addr- >>> >> core.html?rev=1.51&content-type=text/html;%20charset=iso-8859- >> 1#msgaddrpropsinfoset>. >> >>> My understanding of this note, and of section 3.2, is that this >>> inference MUST be drawn by a receiver, irrespective of any extension >>> property like wsc:Response. Hence my proposal that we explicitly set >>> wsa:ReplyTo to "none". >>> >>> Alastair >>> >>> >>> >>> Mark Little wrote: >>> The discussion during the f2f concluded that we are indeed using >>> wsa:ReplyTo in a way that, although probably legal, is not the way >>> > it > >>> was meant to be used and can lead to confusion (as we've seen here). >>> So the first step in the process of removing that confusion, is to >>> remove wsa:ReplyTo, which was my proposal. What we replace it with, >>> and what the rules are around it, are the central points of the >>> > issue. > >>> Alastair Green wrote: >>> Mark, >>> >>> Taking off from a comment in the last paragraph of my written >>> contribution on this area during the F2F >>> >>> _http://www.oasis-open.org/apps/org/workgroup/ws- >>> >> tx/email/archives/200603/msg00088.html_ >> >>> I think we need to address, in resolving this issue, the question of >>> the [reply endpoint] value being defaulted to anonymous. >>> >>> The issue is about replacing wsa:ReplyTo in the case of "one ways >>> > that > >>> may ultimately have a response but aren't really request-response >>> based messages" (to paraphrase). So in that case, we would be >>> > defining > >>> the rules around wsc:ReplyTo (just a name I've picked for this email >>> so I can easily refer to it as being different to wsa:ReplyTo). As >>> such, anonymous may not even play in that space. Why would we want >>> > an > >>> anonymous default? The current uses of wsa:ReplyTo really all assume >>> that it was present on the message. I'd prefer a binary approach for >>> wsc:ReplyTo. >>> >>> >>> An absent [reply endpoint] property in the XML infoset >>> > representation > >>> becomes a receiver-inferred value of "anonymous" (actually, the URI >>> that means anon). >>> >>> It seems preferable that we explicitly specify the value of "none" >>> (again, a URI in truth). >>> >>> I would have expected us to be more specific: if there's a >>> > wsc:ReplyTo > >>> present, then this is the destination that MAY/SHOULD/MUST be used >>> > for > >>> sending a response. The absence means that no response is needed - >>> > no > >>> default. >>> >>> >>> This is explicit, intuitively what one would expect for a one-way in >>> terms of HTTP handling, and avoids any ambiguity/under-specification >>> if a different representation is used at some future point. >>> >>> The current wording banning use of anonymous reply-to addresses >>> > would > >>> then be replaced. >>> >>> I think we also need to ban use of message ids, and ban use of >>> fault-to, i.e. make it clear (by omission or by explicit statement) >>> that none of these aspects of the reply-processing rules and >>> > apparatus > >>> are being put to use. ("Ban" in this context could mean "make it >>> > clear > >>> that these properties, if present, will be ignored".) >>> >>> We had discussed at the f2f that wsa:FaultTo is really meant just >>> > for > >>> comms faults and "application faults" would be treated as messages. >>> I'm not sure if that made it into the minutes. >>> >>> >>> I think use of wsa:From tends to detract from the clarity obtained >>> > by > >>> defining an extension property for our special use. >>> >>> Mark. >>> >>> >>> Yours, >>> >>> Alastair >>> >>> >>> Mark Little wrote: >>> Line 472 and 480. >>> >>> Mark. >>> >>> >>> Ram Jeyaraman wrote: >>> >>> Mark, >>> >>> >>> >>> Could you please provide the PDF line numbers in the referred >>> > document > >>> that are relevant to this issue. Thanks. >>> >>> >>> >>> >>> > ------------------------------------------------------------------------ > >>> *From:* Ram Jeyaraman [_mailto:Ram.Jeyaraman@microsoft.com_] >>> *Sent:* Friday, March 17, 2006 2:48 PM >>> *To:* _ws-tx@lists.oasis-open.org_ >>> > <mailto:ws-tx@lists.oasis-open.org> > >>> *Subject:* [ws-tx] Issue 30 - One-way message replies >>> >>> >>> >>> This is identified as WS-TX issue 30. >>> >>> >>> >>> Please ensure follow-ups have a subject line starting "Issue 30 -" >>> (after any Re:, [ws-tx] etc.) >>> >>> >>> >>> =================================== >>> >>> >>> >>> Issue name: One-way message replies >>> >>> >>> >>> Issue type: spec >>> >>> >>> >>> Owner: Mark Little (_mark.little@jboss.com_ >>> <mailto:mark.little@jboss.com>) >>> >>> Reference documents: >>> >>> WS-AT specification: _ >>> __http://www.oasis-open.org/apps/org/workgroup/ws- >>> >> tx/download.php/17044/http://www.oasis-open.org/apps/org/workgroup/ws- >> tx/download.php/17129/wstx-wsat-1.1-spec-wd-04.pdf_ >> >>> <http://www.oasis-open.org/apps/org/workgroup/ws- >>> >> tx/download.php/17044/http:/www.oasis-open.org/apps/org/workgroup/ws- >> tx/download.php/17129/wstx-wsat-1.1-spec-wd-04.pdf> >> >>> _<http://www.oasis-open.org/apps/org/workgroup/ws- >>> >> tx/download.php/17044/http:/www.oasis-open.org/apps/org/workgroup/ws- >> tx/download.php/17129/wstx-wsat-1.1-spec-wd-04.pdf>_ >> >>> Description: >>> >>> Currently we use wsa:ReplyTo for one-way messages in a way which >>> although legal in terms of the latest CR draft of WS-Addressing, has >>> led to confusion on a number of occasions. As an example, one use of >>> wsa:ReplyTo is on Prepare->Prepared, where Prepare has a wsa:ReplyTo >>> but the Prepared message is a separate (not response) message, >>> > because > >>> it could be sent autonomously and not actually in response to >>> > Prepare. > >>> The issue is that as far as WS-Addressing is concerned, wsa:ReplyTo >>> should really only be used in the case of the request-response MEP, >>> which is clearly not the case here. >>> >>> Proposed Resolution: >>> >>> The rules for where and when wsa:ReplyTo should be included and used >>> within WS-AT are well defined, and particularly in respect to the >>> interoperability scenarios. I propose that we replace wsa:ReplyTo >>> > with > >>> something specific to WS-TX (perhaps wsc:ReplyTo, wsc:OnewayTo, or >>> somesuch). >>> >>> Addendum: >>> >>> Max suggested at the Raleigh f2f another potential resolution: that >>> > we > >>> use wsa:From. >>> >>>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]