- From: Paul Fremantle <paul@wso2.com>
- Date: Wed, 09 Aug 2006 10:55:59 +0100
- To: Alastair Green <alastair.green@choreology.com>
- CC: Christopher B Ferris <chrisfer@us.ibm.com>, public-ws-addressing@w3.org, public-ws-addressing-request@w3.org, ws-rx@lists.oasis-open.org
Alastair As I said, I have no problem adding reply=none. However, I'm not sure that means I agree with you. > WS-A impl must now apply special rules (as I have described) if it > encounters a message with [reply ep] = none which happens to be a > WS-RM message called MakeConnection. Do you agree with that statement? I don't agree. Since the message is a one-way, the WS-A implementation should be ignoring any replyTo set on that message. The behaviour you are describing is already in our model and was introduced with our piggybacking of acks onto one-way messages. It does have implications at the level of the SOAP stack, because it requires the ability to add SOAP messages into responses when the operation is a one-way. This must already exist in all implementations that support WSRM. But I do not believe it affects the WS-A implementation. Certainly I don't believe it affects the Apache Axis2 WS-A implementation. > At best, this is an RM extension to WS-Addressing, and it should layer > cleanly on the WS-Addressing core behaviour. Yes I agree it should layer cleanly onto WS-A core behaviour. Paul > > Paul Fremantle wrote: >> Alastair >> >> I don't think there's anything wrong with [reply= none]. On the other >> hand, I don't expect to have to put [reply=none] on every one-way >> interaction I make. I don't believe there is anything wrong with the >> current situation. >> >> Paul >> >> Alastair Green wrote: >> >>> Chris, Paul: >>> >>> *What's wrong with [reply endpoint = none]? >>> >>> *1. None URI means "no response expected", implies transport ack only. >>> Contents of transport response body would reasonably be ignored by a >>> WS-A implementation. >>> >>> 2. WS-A receiver of [reply endpoint] = None URI will not stall for an >>> application handoff or for application response: it will pass the >>> inbound message, and immediately ack the sender, and lose all context >>> (transport response, message id correlation information). >>> >>> 3. RM would be asking WS-A implementations to stop natural, generic >>> behaviours 1. and 2., and become aware of RM. >>> >>> 4. None URI means ack only. Anon means SOAP envelope in the transport >>> response, always. New URI needed to mean: "May be SOAP, may be ack". >>> Receiver of new URI (APAO below) knows to stall for application >>> release before acking (empty response body) or SOAPing (full response >>> body). >>> * >>> **Alternatives >>> * >>> 1. We can't use [reply endpoint] = anon (the default) because the WS-A >>> SOAP Binding limits this to cases where there is always a SOAP >>> envelope in the transport response (ack only forbidden). I believe >>> this is the /only/ obstacle. Everything else is proceeding from that >>> WS-A limitation. (If this perceived limitation does not exist, then I >>> would see no reason not to use anon URI.) >>> >>> 2. Create a special URI, as anticipated by the WS-A SOAP Binding, that >>> means: "Transport response can either be message or ack-alone". >>> >>> 3. Call this special URI .../anonymous/permittingAckOnly (APAO). [Not >>> a good name, a strawman] >>> >>> 4. Send MakeConnection/ReplyTo/Address=APAO. Allow ref-params in the >>> normal manner. (Ref params can't be handled with current solution). >>> >>> 5. Permit MakeConnection to contain a sequence Identifier, if desired, >>> (as per current solution). >>> >>> 6. Allow for an extension element in MC, if the app wants to identify >>> the conversation. The identity of the conversation only has to be >>> unambiguous between the application parties, so UUID is bound to be >>> right, but not always needed. The type of the identification is an app >>> issue. If you don't like that, permit MC to contain a connection >>> identifier, type is UUID (closest to current solution). >>> >>> 7. Decide who's going to own the special APAO URI. It really should be >>> WS-Addressing, as this is a general, app-level requirement. RM is >>> permitting an /application /behaviour (the message stream is >>> application content, which may, in the RM context, be bracketed by >>> some RM set-up and tear-down, as it happens). >>> >>> 8. If process/timescales force RM to "stand in" for WS-Addressing, >>> then this means worrying about impact on WS-A implementations (which >>> is where this started from for me). See above re implications for WS-A >>> implementations of use of none URI >>> >>> Alastair >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> Christopher B Ferris wrote: >>> >>>> Alastair, >>>> >>>> I don't think that MakeConnection "invites a response"... rather, it >>>> opens up the back-channel >>>> (when transmitted over a protocol such as HTTP that has an inherent >>>> back-channel) for the >>>> transmission of a message. >>>> >>>> I think that there is a difference... a large one at that. >>>> >>>> A SOAP Response is entirely different than a protocol response >>>> message. In the context >>>> of a oneway message, carried over a protocol such as HTTP, there is a >>>> response message >>>> that may not carry a SOAP envelope in its entity body. It is a >>>> protocol-level response, not necessarily >>>> a SOAP level-response. The fact that we are exploiting this is what >>>> MakeConnection is all about. >>>> >>>> As Paul indicated, I would be happy if we suggested that WS-A none >>>> URI be specified as the >>>> ReplyTo address, but frankly, I think that that is something for the >>>> WS-A WG to work out. >>>> >>>> Cheers, >>>> >>>> Christopher Ferris >>>> STSM, Software Group Standards Strategy >>>> email: chrisfer@us.ibm.com >>>> blog: http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440 >>>> phone: +1 508 377 9295 >>>> >>>> Alastair Green <alastair.green@choreology.com> wrote on 08/08/2006 >>>> 11:42:10 AM: >>>> >>>> >>>>> Chris, >>>>> >>>>> Redoing part of WS-A in RM creates difficulty in WS-A WSDL (start of >>>>> thread). Raises question: Why won't standard WS-A anon facility work? >>>>> >>>>> You have to say something about where you reply to. If you want the >>>>> reply to come on the back-channel then WS-A has a way of saying that >>>>> (and you get that by default). >>>>> >>>>> If you say there is no reply, then you are saying: don't send a >>>>> response. But MC precisely invites a response. How is a WS-A >>>>> implementation supposed to understand (without being RM aware) that >>>>> reply=none really means (functionally) reply=anon? I perceive >>>>> unnecessary layering tangle. WS-A layer now expected to hold HTTP >>>>> response for app, even though told that there is no response. >>>>> >>>>> Researching further, I don't understand why an RM-specific >>>>> alternative to reply=anon has been introduced for the "address" >>>>> case, but not for the "sequence" case. >>>>> >>>>> I believe regular "use back channel" feature of WS-A can be used, >>>>> and the RM layer can handle RM "sessions", in both cases. >>>>> >>>>> Does my example of sequence case indicate expected behaviour? Would >>>>> it be wrong to say MC/reply=anon with sequence case? >>>>> >>>>> First part of long message addresses Doug's points about the >>>>> application-level set-up message: I don't understand the relevance >>>>> of that type of message. >>>>> >>>>> Alastair >>>>> >>>>> >>>>> >>>>> Christopher B Ferris wrote: >>>>> >>>>> Alastair, >>>>> >>>>> Is this a long and drawn out manner of stating that when a message >>>>> is a true oneway (e.g. no >>>>> response is expected) then the wsa:ReplyTo should be the WS-A none >>>>> URI rather than >>>>> simply leaving it absent and hence falling trap to the "if not >>>>> present, default to anon" gotcha? >>>>> >>>>> I guess I am not seeing an issue here, although I guess it would be >>>>> fine if we recommended or required >>>>> that the MakeConnection wsa:ReplyTo MAP carry the WS-A none URI. >>>>> >>>>> Cheers, >>>>> >>>>> Christopher Ferris >>>>> STSM, Software Group Standards Strategy >>>>> email: chrisfer@us.ibm.com >>>>> blog: http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440 >>>>> phone: +1 508 377 9295 >>>>> >>>>> public-ws-addressing-request@w3.org wrote on 08/08/2006 07:06:32 AM: >>>>> >>>>> >>>>>> Doug, Paul -- >>>>>> >>>>>> I'm going to try to address both your comments. if I can summarize >>>>>> Paul's it was: what's the big deal about [reply endpoint] when >>>>>> MakeConnection is "one-way"?. >>>>>> >>>>>> Given RX timescales you may want to treat these remarks as "early >>>>>> public review". >>>>>> >>>>>> * * * >>>>>> >>>>>> Doug's message 1 is an application-level set-up call which >>>>>> establishes common understanding of the UUID. This type of message >>>>>> is exemplified by that shown in the CD example Step 1, unless I have >>>>>> completely misunderstood. >>>>>> >>>>>> In that example, a subscriber, who cannot listen, sends a subscribe >>>>>> message to a publisher, saying something like "subscribe me for >>>>>> topics A, B, C. The identity of this subscription request is UUID >>>>>> X". Thereafter, the publisher knows that X equals "subscription for >>>>>> topics A, B, C". >>>>>> >>>>>> Assertion 1 (please correct me if I am wrong): The format, content >>>>>> etc of this type of message (and its manner of transmission) are >>>>>> entirely application-specific. It may or may not require an >>>>>> acknowledgement. It could be sent by carrier pigeon, or by fax. The >>>>>> subscribe message, if sent as SOAP-with-Addressing, might receive a >>>>>> reply, or might not receive a reply, and if it did, it might receive >>>>>> it anon or addressable. There are no RM rules that apply to this >>>>>> message. There are only application rules. It cannot do its job >>>>>> usefully unless it passes the UUID: that is all we can say. >>>>>> >>>>>> Assertion 2. At present there is an RM rule which says: "the >>>>>> mutually understood UUID must be reflected in the [destination >>>>>> endpoint] according to an RM URI scheme". There are no RM rules to >>>>>> say whether the connection UUID, during the course of establishing >>>>>> mutual understanding, travels alone, embedded in a URI, in a body >>>>>> element or a header element. These are all matters of bilateral >>>>>> agreement at an app level between (in this case) the >>>>>> consumer/subscriber and the producer/publisher. >>>>>> >>>>>> [The example is potentially a bit misleading in this respect. >>>>>> >>>>>> The use of the full "anon-URI?id={uuid}" value in the <targetEPR/>, >>>>>> and the use of the element name "targetEPR" make one think >>>>>> "addressing", when one would be better off thinking "subscription >>>>>> identity" (at an app level). The example set-up message would work >>>>>> perfectly well if it read: >>>>>> >>>>>> <S:Body> >>>>>> <!-- subscription details --> >>>>>> <SubscriptionIdentity>{uuid}</SubscriptionIdentity> >>>>>> </S:Body> >>>>>> >>>>>> Btw, given that the use of MakeConnection requires a prior >>>>>> understanding between two parties of the connection identity, there >>>>>> seems no reason why {uuid} has to be a UUID. It does need to be >>>>>> bilaterally unambiguous.] >>>>>> >>>>>> * * * >>>>>> >>>>>> Message 2 is MakeConnection. If the subscriber sends a >>>>>> MakeConnection, specifying UUID X, then the publisher knows it is >>>>>> dealing with traffic relating to subscription X, i.e. for topics A, >>>>>> B and C. At an application level, we assume that the contract >>>>>> thereafter is: start reliably communicating a stream of messages, >>>>>> relating to topics A, B and C, therefore implying sequence creation >>>>>> etc, until something causes the stream to close. >>>>>> >>>>>> So the subscriber will repeatedly send MakeConnection, citing the >>>>>> UUID X, read the HTTP response, and handle the response as if it >>>>>> were an inbound RM/RM-app message. >>>>>> >>>>>> The exchange that RM defines (rather than illustrates) is the >>>>>> MakeConnection, back-call-on-the-connection one. It's this exchange >>>>>> that I am discussing. MakeConnection is the message affected by the >>>>>> WSAW anon=required discussion, as I see it. >>>>>> >>>>>> [While it is probably helpful for diagnostic reasons to repeat the >>>>>> UUID back to the sender of MakeConnection in the [destination >>>>>> endpoint], it is actually redundant, as the HTTP Response is >>>>>> automatically and uniquely correlated with the HTTP Request. This >>>>>> might lead one to the conclusion that the simple solution would have >>>>>> been: send UUID on MakeConnection, and then respond to it on the >>>>>> anonymous back-channel without reflection of UUID in any form >>>>>> However, this would reduce the symmetry with the Sequence identified >>>>>> use of MakeConnection, see comments later] >>>>>> >>>>>> * * * >>>>>> >>>>>> There are two modes in which this exchange can work (reflecting the >>>>>> joint proposal, as I understand it): >>>>>> >>>>>> a) Send response as part of a sequence that already exists >>>>>> b) Use response to create a new sequence, etc >>>>>> >>>>>> This is relevant to answering Paul F's question, relating to the >>>>>> significance of ReplyTo. >>>>>> >>>>>> If there is a sequence, then the sequence Identifier is a >>>>>> correlation synonym for the UUID. The reply message may be sent on >>>>>> the back-channel; it must carry the wsrm:Identifier (as a separate >>>>>> header element), it need not carry the UUID. >>>>>> >>>>>> If there is no sequence, then the reply message must carry or imply >>>>>> the UUID. (I'm going to assume that carrying the UUID is better than >>>>>> implying it.) The question is how? >>>>>> >>>>>> Looking at these two cases, it is striking that both >>>>>> >>>>>> a) require a response on the back-channel, >>>>>> b) need to carry an identifier (one of the sequence, one of the >>>>>> "connection"/"session") >>>>>> >>>>>> Doug's comment that there is no wsa:ReplyTo on the MakeConnection, >>>>>> that it is "one way", is relevant here. In fact there is no such >>>>>> thing (in the XML infoset) as a non-existent [reply endpoint]. If >>>>>> wsa:ReplyTo is absent, then it is inferred to be the anon-URI. The >>>>>> only way you can stop that inference is to set the [reply endpoint] >>>>>> to none or to a "real address". I don't think you want to do either >>>>>> of those things, in this context. >>>>>> >>>>>> With these points in mind, I think it is worth looking again at my >>>>>> previous postings. >>>>>> >>>>>> The orthodox way of saying "respond on the back-channel" is setting >>>>>> [reply endpoint] to anon. This can be done explicitly or by >>>>>> inference from absence. >>>>>> >>>>>> I think there has to be a good reason to invent a new way of >>>>>> expressing this semantic. Doing so has repercussions (see the >>>>>> original starting point of this thread, re WSA W anon/required). The >>>>>> (very valuable) use case of MakeConnection does not require an >>>>>> alternate mechnanism for stating the back channel semantic. >>>>>> >>>>>> We can illustrate all of this by placing three examples side by side: >>>>>> >>>>>> * * * >>>>>> >>>>>> 1. Example using sequence Identifier: MakeConnection and reply >>>>>> >>>> [asper CD 04] >>>> >>>>>> 2. Example using hypothetical connection identifier: MakeConnection >>>>>> and reply [as it could be, simplified] >>>>>> 3. Example using current Address [as per CD 04] >>>>>> >>>>>> 1a. Example using sequence Identifier: MakeConnection >>>>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:MessageID> >>>>>> <wsa:Action>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/MakeConnection >>>>> >>>>>> </wsa:Action> >>>>>> <wsa:To>http://example.org/subscriptionService</wsa:To> >>>>>> <!-- absent wsa:ReplyTo is equivalent to: >>>>>> <wsa:ReplyTo> >>>>>> <wsa:Address>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/anonymous >>>>> >>>>>> </wsa:Address> >>>>>> </wsa:ReplyTo> >>>>>> --> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <wsrm:MakeConnection> >>>>>> <wsrm:Identifier>http://Business456. >>>>>> com/SubscribeTopics/Sequence/7456-3278</wsrm:Identifier> >>>>>> </wsrm:MakeConnection> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> 1b. Example using sequence Identifier: reply to MakeConnection >>>>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e</wsa:MessageID> >>>>>> <wsa:RelatesTo>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:RelatesTo> >>>>>> >>>>>> >>>> <wsa:ReplyTo><wsa:Address>http://example.org/subscriptionService >>>> >>>>>> </wsa:Address></wsa:ReplyTo> >>>>>> <wsa:Action>http://example.com/subscriptionService/publish >>>>>> </wsa:Action> >>>>>> <wsrm:Sequence> >>>>>> <wsrm:Identifier>http://Business456. >>>>>> com/SubscribeTopics/Sequence/7456-3278</wsrm:Identifier> >>>>>> <wsrm:MessageNumber>1</wsrm:MessageNumber> >>>>>> </wsrm:Sequence> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <!-- Publication re A, B or C --> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> 2a. Example using hypothetical connection identifier: MakeConnection >>>>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:MessageID> >>>>>> <wsa:Action>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/MakeConnection >>>>> >>>>>> </wsa:Action> >>>>>> <wsa:To>http://example.org/subscriptionService</wsa:To> >>>>>> <!-- absent wsa:ReplyTo is equivalent to: >>>>>> <wsa:ReplyTo> >>>>>> <wsa:Address>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/anonymous >>>>> >>>>>> </wsa:Address> >>>>>> </wsa:ReplyTo> >>>>>> --> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <wsrm:MakeConnection> >>>>>> <wsrm:ConnectionIdentifier>http://Business456.com/ >>>>>> SubscribeTopics/Stream/7457</wsrm:ConnectionIdentifier> >>>>>> </wsrm:MakeConnection> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> 2b. Example using hypothetical connection identifier: reply to >>>>>> MakeConnection (CreateSequence) >>>>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e</wsa:MessageID> >>>>>> <wsa:RelatesTo>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:RelatesTo> >>>>>> <wsa:Action>http://docs.oasis-open- >>>>>> >>>>> org/wsrx/wsrm/200608/CreateSequence >>>>> >>>>>> </wsa:Action> >>>>>> >>>>>> >>>> <wsa:ReplyTo>http://example.org/subscriptionService</wsa:ReplyTo> >>>> >>>>>> <wsrm:ConnectionIdentifier> >>>>>> http://Business456.com/SubscribeTopics/Stream/7457 >>>>>> </wsrm:ConnectionIdentifier> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <wsrm:CreateSequence> >>>>>> <wsrm:AcksTo> >>>>>> <wsa:Address>http://example.org/subscriptionService >>>>>> </wsa:Address> >>>>>> </wsrm:AcksTo> >>>>>> </wsrm:CreateSequence> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> 3a. Example using wsrm:Address: MakeConnection >>>>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:MessageID> >>>>>> <wsa:Action>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/MakeConnection >>>>> >>>>>> </wsa:Action> >>>>>> <wsa:To>http://example.org/subscriptionService</wsa:To> >>>>>> <!-- absent wsa:ReplyTo is equivalent to: >>>>>> <wsa:ReplyTo> >>>>>> <wsa:Address>http://docs.oasis-open. >>>>>> >>>>> org/wsrx/wsrm/200608/anonymous >>>>> >>>>>> </wsa:Address> >>>>>> </wsa:ReplyTo> >>>>>> --> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <wsrm:MakeConnection> >>>>>> <wsrm:Address> >>>>>> http://docs.oasis-open. >>>>>> >>>>>> >>>> org/wsrx/wsrm/200608/anonymous?id=550e8400-e29b-11d4-a716-446655440000 >>>> >>>>>> </wsrm:Address> >>>>>> </wsrm:MakeConnection> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> 3b. Example using wsrm:Address: reply to MakeConnection >>>>>> >>>> (CreateSequence) >>>> >>>>>> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" >>>>>> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" >>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <S:Header> >>>>>> <wsa:MessageID>http://example.org/subscriptionService/ >>>>>> guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e</wsa:MessageID> >>>>>> <wsa:RelatesTo>http://example.org/subscriptionService/ >>>>>> guid/61e0654e-5ce8-477b-bb9d-34f05cdcbc9e</wsa:RelatesTo> >>>>>> <wsa:Action>http://docs.oasis-open- >>>>>> >>>>> org/wsrx/wsrm/200608/CreateSequence >>>>> >>>>>> </wsa:Action> >>>>>> <wsa:To> >>>>>> >>>>>> <!-- I believe this is WS-A illegal: reply To must equal request >>>>>> ReplyTo/Address. --> >>>>>> >>>>>> http://docs.oasis-open.org/wsrx/wsrm/200608/anonymous? >>>>>> id=550e8400-e29b-11d4-a716-446655440000 >>>>>> </wsa:To> >>>>>> >>>>>> >>>> <wsa:ReplyTo>http://example.org/subscriptionService</wsa:ReplyTo> >>>> >>>>>> </S:Header> >>>>>> <S:Body> >>>>>> <wsrm:CreateSequence> >>>>>> <wsrm:AcksTo> >>>>>> <wsa:Address>http://example.org/subscriptionService >>>>>> </wsa:Address> >>>>>> </wsrm:AcksTo> >>>>>> </wsrm:CreateSequence> >>>>>> </S:Body> >>>>>> </S:Envelope> >>>>>> >>>>>> Yours, >>>>>> >>>>>> Alastair >>>>>> >>>>>> Doug Davis wrote: >>>>>> >>>>>> Alastair, >>>>>> I think you're mixing up the messages a bit. There are two >>>>>> >>>> messages >>>> >>>>>> at play: >>>>>> 1 - the message containing the EPR to send subsequent messages to. >>>>>> In some cases this message will have the EPR in its wsa:ReplyTo >>>>>> header, but it could also be placed someplace else depending >>>>>> on its use. And it is this EPR that needs to be tagged as the >>>>>> polling one (ie. it has the RM anon URI). >>>>>> This message will contain application specific data in the Body >>>>>> so your suggestion of placing some UUID in there will not work. >>>>>> This gets back to the necessity to keep all info about where to >>>>>> send messages encapsulated into whatever EPR we want to be >>>>>> >>>> tagged >>>> >>>>>> as the polling one. >>>>>> >>>>>> 2 - the MakeConnection message. >>>>>> This message does not have a wsa:ReplyTo, its a one-way. This >>>>>> message does contain a Body which is the correlation info used >>>>>> by the receiver of this message to find an appropriate message >>>>>> to send back. So, basically the stuff in the Body must match >>>>>> the EPR from message 1. And given that in some cases the only >>>>>> thing remaining from the EPR in message 1 is the serialized >>>>>> version of it, we must be able to find messages based solely >>>>>> on what's in the outgoing message itself. Which means the >>>>>> wsa:To field. Again, ref-p's are bad for this purpose. :-) >>>>>> >>>>>> HTH >>>>>> >>>>>> thanks >>>>>> -Doug >>>>>> >>>>>> >>>>>> >>>>>> Alastair Green <alastair.green@choreology.com> wrote on 08/07/2006 >>>>>> 02:02:55 PM: >>>>>> >>>>>> >>>>>>> Doug, >>>>>>> >>>>>>> I think I'm connecting, if you'll pardon the pun. >>>>>>> >>>>>>> 1. As I read WS-A, the [destination endpoint][address] must be set >>>>>>> to [reply endpoint][address] for a reply. >>>>>>> >>>>>>> 2. If [reply endpoint] is omitted (as per the CD example), then >>>>>>> [reply endpoint] = anon, by default. >>>>>>> >>>>>>> 3. If [destination endpoint] = "anon-URI?id={uuid}", then >>>>>>> [destination endpoint] <> [reply endpoint][address] (which was >>>>>>> simple, unornamented anon-URI), which contradicts premise 1. >>>>>>> >>>>>>> Does that make sense? If so, then I think you would need to set >>>>>>> [reply endpoint] to none, explicitly, to avoid that clash (given >>>>>>> RM's current approach). But this causes >>>>>>> >>>>>>> 4. The WS-A processor that sent MakeConnection to get very >>>>>>> >>>> confused. >>>> >>>>>>> It wasn't expecting anything but an HTTP 200 series by way of a >>>>>>> response, but is about to get a full-scale SOAP message >>>>>>> >>>> bounding back. >>>> >>>>>>> +++ >>>>>>> >>>>>>> Further thoughts, which continue, in my mind, to question the >>>>>>> current RM approach, but which may ease the WSA W problem. >>>>>>> >>>>>>> a) You could have defined an extension element in the [reply >>>>>>> endpoint] for the UUID. >>>>>>> >>>>>>> b) Or, you could have chosen to send the UUID in the body element. >>>>>>> >>>>>>> c) In either case, this could team up with setting [reply >>>>>>> >>>>>> endpoint] to anon. >>>>>> >>>>>>> d) As in 3. above, you shouldn't then set response [destination >>>>>>> endpoint] to anon?id={uuid}. >>>>>>> >>>>>>> e) So, you need to set [reply endpoint] to anon, and set >>>>>>> [destination endpoint][address] to anon. >>>>>>> >>>>>>> f) which begs the question, where does the UUID go? >>>>>>> >>>>>>> g) If you passed an extension element UUID, or a UUID in the body >>>>>>> element, and then passed it back as an extension element in the >>>>>>> >>>> anon >>>> >>>>>>> EPR that should be OK, because you have followed the rules for >>>>>>> >>>> reply >>>> >>>>>>> formulation with respect to the [destination endpoint][address] >>>>>>> /[reference parameters]. The fact you have chosen to put an >>>>>>> extension element in the response is WS-A 3.3/3.4 legal, as I read >>>>>>> it. That's a higher-layer behaviour that does not contradict WS-A >>>>>>> base behaviour, which is constrained. >>>>>>> >>>>>>> +++ >>>>>>> >>>>>>> Why is g) not viable in your view? The processors that need to >>>>>>> understand the body/extension UUID element are the RM senders and >>>>>>> responders (not the WS-A processors, which passively pass on the >>>>>>> UUID to the RM receiver of MakeConnection, and pass on the >>>>>>> >>>> extension >>>> >>>>>>> element to the RM receiver of the response). >>>>>>> >>>>>>> In other words, the awareness of RM-ness that is demanded in >>>>>>> formulating MakeConnection, and in replying to it, resides in the >>>>>>> same place, and at the same level, as in the current (CD) solution. >>>>>>> >>>>>>> The difference being: that the MakeConnection is now a regular >>>>>>> [reply endpoint] = anon. At which point special WSAW rules are >>>>>>> >>>> not needed. >>>> >>>>>>> I don't see any lesser or greater problem with intermediaries, >>>>>>> onward transmission etc than would apply with the current >>>>>>> >>>> solution, >>>> >>>>>>> if that is a concern. On this point, I think I may be missing >>>>>>> something, or misunderstanding your area of concern? >>>>>>> >>>>>>> So, to summarize: >>>>>>> >>>>>>> 1. asimple-non out, special, ornamented-anon back is a problem. >>>>>>> 2. none out, anon back is a problem. >>>>>>> 3. extension element UUID out, extension element UUID back, is no >>>>>>> different, in layer terms, than body UUID out, ornamented address >>>>>>> back, i.e. is not a problem. >>>>>>> 4. anon out means no problem with anon = required. >>>>>>> >>>>>>> >>>>>>> * * * >>>>>>> >>>>>>> My last point was indeed completely beside the point of your >>>>>>> >>>> issue : >>>> >>>>>>> -) -- it is an independent issue about WSAW, and a limitation that >>>>>>> the proposed syntax seems to impose by applying the flag across >>>>>>> >>>> all >>>> >>>>>>> "response endpoints". >>>>>>> >>>>>>> Alastair >>>>>>> >>>>>>> Doug Davis wrote: >>>>>>> >>>>>>> Alastair, >>>>>>> We did consider adding some extra metadata to the EPR >>>>>>> >>>> (outside of >>>> >>>>>>> the wsa:Address and ref-p's), but there's a problem - this >>>>>>> >>>> metadata >>>> >>>>>>> is not copied over into the response message - just the >>>>>>> >>>> wsa:Address >>>> >>>>>>> and ref-p's are. This means that any data placed elsewhere in the >>>>>>> EPR is lost once the message is serialized. So unless we >>>>>>> >>>> assume the >>>> >>>>>>> impl can hold on to the original EPR for the entire message path >>>>>>> (which we can't in distributed systems), the identity part must be >>>>>>> in either the address or ref-p's. And, as you said, ref-p's >>>>>>> >>>> aren't >>>> >>>>>>> good for this. >>>>>>> >>>>>>> What's interesting about your anon?unique-id example is that >>>>>>> >>>> that >>>> >>>>>>> solution might work very nicely (we talked about this in the >>>>>>> >>>> past) - >>>> >>>>>>> but as you said it would require WSA to say anon URIs 'start >>>>>>> with...' - and WSA is closed :-( >>>>>>> >>>>>>> I got a bit lost on your last point - it almost sounded like a >>>>>>> complaint about the current WSA WSDL spec instead of my issue - >>>>>>> >>>> or >>>> >>>>>>> did I not follow it? >>>>>>> >>>>>>> I noticed that on the agenda for tomorrow's WSA call (I think >>>>>>> >>>> its >>>> >>>>>>> tomorrow) is a CR issue that mentioned how this wording in the >>>>>>> >>>> WSDL >>>> >>>>>>> spec prevents the use of "none". I can't help but think that both >>>>>>> issues (mine and the other CR issue) would be solved nicely if the >>>>>>> wording were turned around a bit and said something about how this >>>>>>> flag indicates whether or not the endpoint supports addressable >>>>>>> endpoints in the response EPRs. Not sure of the exact wording, >>>>>>> >>>> but >>>> >>>>>>> if instead of taking about specific URIs (like anon and none) it >>>>>>> talked about whether the endpoint supported the notion of creating >>>>>>> it own connections to the EPR then it wouldn't need to get into >>>>>>> >>>> the >>>> >>>>>>> business of listing all of the URIs that are valid. And I >>>>>>> >>>> think it >>>> >>>>>>> would relay the exact same information. >>>>>>> >>>>>>> thanks >>>>>>> -Doug >>>>>>> >>>>>>> >>>>>>> >>>>>>> Alastair Green <alastair.green@choreology.com> >>>>>>> 08/04/2006 10:57 AM >>>>>>> >>>>>>> To >>>>>>> >>>>>>> Doug Davis/Raleigh/IBM@IBMUS >>>>>>> >>>>>>> cc >>>>>>> >>>>>>> public-ws-addressing@w3.org, public-ws-addressing-request@w3.org, >>>>>>> ws-rx@lists.oasis-open.org, abbieb@nortel.com, aclark@novell.com, >>>>>>> akira.tanaka.pr@hitachi.com, aleyfer@actional.com, >>>>>>> >>>> anash@reactivity.com, >>>> >>>>>>> andreas.bjarlestam@ericsson.com, anil.edakkunni@soa.com, anil. >>>>>>> >>>>>> john@jhuapl.edu >>>>>> >>>>>>> , Anish.Karmarkar@oracle.com, Anthony Nadalin/Austin/IBM@IBMUS, >>>>>>> asakala@iona.com, ash@rainingdata.com, ashok.malhotra@oracle.com, >>>>>>> asirveda@microsoft.com, atarashi@sv.nec-labs.com, >>>>>>> >>>> atmanes@gmail.com, >>>> >>>>>>> audet@nortel.com, barreto@adobe.com, bhakti.mehta@sun.com, blake. >>>>>>> dournaee@intel.com, bob.freund@hitachisoftware.com, >>>>>>> >>>> bob.sunday@pwgsc.gc.ca >>>> >>>>> , >>>>> >>>>>>> b.eckenfels@seeburger.de, carolina.canales@ericsson.com, >>>>>>> >>>>> chamikara@wso2.com >>>>> >>>>>> , >>>>>> >>>>>>> chappell@sonicsoftware.com, Charles Levay/Raleigh/IBM@IBMUS, >>>>>>> chouthri@sv.nec-labs.com, Christopher B Ferris/Waltham/IBM@IBMUS, >>>>>>> Christopher.Kurt@microsoft.com, chris.hipson@bt.com, "'von >>>>>>> >>>>> Riegen, Claus'" >>>>> >>>>>>> <claus.von.riegen@sap.com>, coevans@microsoft.com, >>>>>>> >>>>> cunningham_david@bah.com >>>>> >>>>>> , >>>>>> >>>>>>> dan@actional.com, "'Burdett, David'" <david.burdett@sap.com>, >>>>>>> dconnelly@openapplications.org, Diane Jordan/Raleigh/IBM@IBMUS, >>>>>>> dkmin@konkuk.ac.kr, dleshc@tibco.com, dmoberg@us.axway.com, >>>>>>> >>>>>> dnickull@adobe.com >>>>>> >>>>>>> , "'David Orchard'" <dorchard@bea.com>, doug.bunting@sun.com, >>>>>>> eisaku.nishiyama.dd@hitachi.com, email@cbvenkat.net, >>>>>>> >>>> eoghan.glynn@iona.com >>>> >>>>> , >>>>> >>>>>>> Eric.Newcomer@iona.com, eric.rajkovic@oracle.com, eric. >>>>>>> wells@hitachisoftware.com, ganga.sah@oracle.com, >>>>>>> >>>> gatfora@uk.ibm.com, >>>> >>>>>>> gboschi@sonicsoftware.com, gdaniels@sonicsoftware.com, >>>>>>> >>>> "'Gilbert Pilz'" >>>> >>>>>>> <Gilbert.Pilz@bea.com>, girish.juneja@intel.com, >>>>>>> >>>> gregcarp@microsoft.com, >>>> >>>>>>> greg.pavlik@oracle.com, hbenmalek@us.fujitsu.com, >>>>>>> >>>> heiko.braun@jboss.com, >>>> >>>>>>> ian.c.jones@bt.com, ian_robinson@uk.ibm.com, >>>>>>> >>>> james.speer@capgemini.com, >>>> >>>>>>> jamie.clark@oasis-open.org, jdurand@us.fujitsu.com, jeff. >>>>>>> mischkinsky@oracle.com, jekanaya@cs.indiana.edu, >>>>>>> >>>> Jiri.Tejkl@systinet.com, >>>> >>>>>>> jjchoe@tmax.co.kr, jkchoi@methodi.com, jmarsh@microsoft.com, joeri. >>>>>>> van_cleynenbreugel@alcatel.be, john.gotze@oasis-open.org, john. >>>>>>> >>>>>> kemp@nokia.com >>>>>> >>>>>>> , joseph.2.waller@bt.com, junghc@nca.or.kr, jypyon@nca.or.kr, k- >>>>>>> seki@da.jp.nec.com, kcyee@cecid.hku.hk, kiwasa@jp.fujitsu.com, >>>>>>> lburch@novell.com, lily.liu@webmethods.com, "'Lei Jin'" >>>>>>> >>>> <ljin@bea.com>, >>>> >>>>>>> machi@nca.or.kr, "'Mark Little'" <mark.little@jboss.com>, >>>>>>> "'Schenecker, Mark'" <mark.schenecker@sap.com>, "'de Boer, >>>>>>> >>>> Martijn'" >>>> >>>>>>> <martijn.de.boer@sap.com>, "'Raepple, Martin'" >>>>>>> >>>> <martin.raepple@sap.com>, >>>> >>>>>>> mary.mcrae@oasis-open.org, matsuki.yoshino.pw@hitachi.com, >>>>>>> >>>>>> mckierna@uk.ibm.com >>>>>> >>>>>>> , mgoodner@microsoft.com, mhb@itst.dk, "'Bechauf, Michael'" >>>>>>> <michael.bechauf@sap.com>, mike.grogan@sun.com, >>>>>>> >>>> millwood@uk.ibm.com, >>>> >>>>>>> mlovett@uk.ibm.com, mlyons@layer7tech.com, mschenecker@e2open.com, >>>>>>> mwang@tibco.com, nickr@enosis.com, nilo.mitra@ericsson.com, >>>>>>> nobuyuki.yamamoto.vw@hitachi.com, Ondrej.Hrebicek@microsoft.com, >>>>>>> >>>>>> paul@wso2.com >>>>>> >>>>>>> , pauld@mitre.org, paul.cotton@microsoft.com, >>>>>>> >>>> paul.knight@nortel.com, >>>> >>>>>>> peter.furniss@erebor.co.uk, peter_niblett@uk.ibm.com, >>>>>>> >>>> pete.wenzel@sun.com >>>> >>>>> , >>>>> >>>>>>> prateek.mishra@oracle.com, pyendluri@webmethods.com, Richard >>>>>>> Salz/Cambridge/IBM@IBMUS, robin@oasis-open.org, >>>>>>> >>>> sada@jp.fujitsu.com, >>>> >>>>>>> "'Patil, Sanjay'" <sanjay.patil@sap.com>, sanka@wso2.com, >>>>>>> >>>>> scayron@acord.org >>>>> >>>>>>> , Scott Hinkelman/Austin/IBM@IBMUS, shengsong.ni@oracle.com, >>>>>>> shivajee@tibco.com, srcarter@novell.com, stefanba@microsoft.com, >>>>>>> "'Rossmanith, Stefan'" <stefan.rossmanith@sap.com>, "'Winkler, >>>>>>> >>>> Steve'" >>>> >>>>>>> <steve.winkler@sap.com>, sumit.gupta@oracle.com, >>>>>>> >>>> tboubez@layer7tech.com, >>>> >>>>>>> tejeswar.das@iona.com, thomas.erl@soasystems.com, >>>>>>> >>>> thomas.t.bui@boeing.com >>>> >>>>> , >>>>> >>>>>>> timothy@drummondgroup.com, toby.considine@unc.edu, >>>>>>> >>>> tom@coastin.com, >>>> >>>>>>> "'Yalcinalp, Umit'" <umit.yalcinalp@sap.com>, >>>>>>> >>>> vfurman@webmethods.com >>>> >>>>>>> , "'Shipkowitz, Vicki'" <vicki.shipkowitz@sap.com>, >>>>>>> >>>> vikas@sonoasystems.com >>>> >>>>>>> , "'Videlov, Vladimir'" <vladimir.videlov@sap.com>, Martin Chapman >>>>>>> <martin.chapman@oracle.com> >>>>>>> >>>>>>> Subject >>>>>>> >>>>>>> Re: Comment on WSDL spec: use of Anonymous Element >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi Doug, >>>>>>> >>>>>>> Comments interspersed: >>>>>>> >>>>>>> Doug Davis wrote: >>>>>>> >>>>>>> Alastair, >>>>>>> There are a couple of different things at play here. First, sorry >>>>>>> about the long cc-list but the wsrx mailing list still doesn't >>>>>>> appear to work so I need to include the entire wsrx team >>>>>>> >>>> manually :-( >>>> >>>>>>> I thought my mail client was going to expire when I just did >>>>>>> >>>> "reply all". >>>> >>>>>>> In a non-anonymous world the wsa:Address field represents both the >>>>>>> fact that the destination can access connections and it identifies >>>>>>> the party. And I think that makes sense. There is no reason >>>>>>> >>>> to not >>>> >>>>>>> have a single URI do that (let's not get into the 'identity' issue >>>>>>> w.r.t. ref-p's :-). So, if we then switch over to the anonymous >>>>>>> case, IMO, I don't believe the implementation should need to >>>>>>> >>>> change >>>> >>>>>>> w.r.t. the purpose of this URI. >>>>>>> Here's what I don't understand. In the non-anon case an EPR >>>>>>> >>>> (address >>>> >>>>>>> + stuff) is used to target. In the anon case, so far as I can >>>>>>> >>>> tell, >>>> >>>>>>> there is nothing in WS-A to stop the same "full EPR" (address + >>>>>>> stuff) be >>>>>>> >> >> -- Paul Fremantle VP/Technology, WSO2 and OASIS WS-RX TC Co-chair http://feeds.feedburner.com/bloglines/pzf paul@wso2.com "Oxygenating the Web Service Platform", www.wso2.com
Received on Wednesday, 9 August 2006 09:56:20 UTC