W3C home > Mailing lists > Public > public-soap-jms@w3.org > August 2008

Re: RE : WS-Addressing

From: Nathan Sowatskey <nsowatsk@cisco.com>
Date: Mon, 18 Aug 2008 22:38:46 +0200
To: Phil Adams <phil_adams@us.ibm.com>, "TALBOT Jacques (TJA)" <Jacques.TALBOT@teamlog.com>
CC: "public-soap-jms@w3.org" <public-soap-jms@w3.org>
Message-ID: <C4CFAA76.95E03%nsowatsk@cisco.com>

Hi all

Apologies for the abrupt silence. I am travelling at the moment.

My main concern would be to understand how the WS-Addressing headers map to
JMS headers.

I'll have more time to explore what I think the answer could look like when
I get home next week.

I do not think that the SOAP/JMS specification can or should address this,
but nor can I feel that this question can be ignored entirely.

Regards

Nathan


On 18/08/2008 19:13, "Phil Adams" <phil_adams@us.ibm.com> wrote:

> 
> Jacques, 
> You seem to be mixing programming model issues with issues of the underlying
> runtime. 
> 
>> If you try to program asynchronous RR with (for example) SOAP on JMS on
>> WebSphereMQ, you have no WS-Addressing but
>> "the addressing and correlators of Mr. WebSphere MQ", right up there in your
>> SOAP code. How elegant! This is not to blame IBM,
>> I believe other vendors do the same, but I do not have the smoking gun in
>> their case :-) 
> 
> What client programming model are you using in this situation?     I'm not
> aware of any asynchronous programming model on WebSphere MQ.
> However, if you were to use the WebSphere v6.1 Web Services Feature Pack, then
> you could write a JAX-WS web service application that uses the asynchronous
> API provided by JAX-WS, and this would allow you to use an async request/reply
> MEP and you would be shielded from the details of the underlying transport
> (i.e. you wouldn't be dealing with correlation IDs, etc.).   You could simply
> use either the polling or callback mechanisms to handle the response.
> 
> If you are not using a programming model that provides for true asynchronous
> behavior (an example would be if you're using JAX-RPC one-way requests and
> trying to match up the "reply" with the "request") then of course, you're
> going to need to handle the async details since the programming model doesn't
> do that for you.   In that case, you might want to consider a programming
> model that *does* provide asynchronous support.
> 
> However, I don't think the shortcomings in the client programming model should
> be a reason to make the SOAP/JMS spec more than it is intended to be... that
> would confuse the issues more than it would clarify them, in my opinion.
> I'm sure my SOAP/JMS WG colleagues will correct me if I'm wrong, but my
> opinion of the SOAP/JMS spec is that it is mostly intended to guide web
> service runtime vendors to enable them to provide a runtime that can
> interoperate with other runtimes when exchanging SOAP messages over JMS.
> It does not, however, touch on the client programming model nor is it intended
> to. 
> 
>> My gut feelings, that I am not able to substantiate with technical
>> statements, is that if there is no specification on how the WSA level
>> abstractions (ports and ID) and the JMS level abstractions (Queues and ID)
>> are related (or unrelated), the vendors will implement in their
>> preferred ad-hoc way and not only will the protocol leak into the
>> programmer's code, but also the toolkit will leak.
> 
> You're right... there's no specification about the two correlation IDs, nor
> should there be.   They are separate and distinct, IMO.     The notion of a
> WSA Endpoint Reference (EPR) is, for the most part, transport-agnostic.   So
> even though you mentioned "ports", that is your view because you are using
> HTTP as your transport.     If you were using SOAP/JMS, then you would be
> talking about a "queue" instead.
> 
>> So my plea to the SOAP on JMS WG is: do not reiterate the "http binding" WG
>> errors.
>> If you try to articulate in the primer how the poor soul will program the
>> above MEPs, it will help.
>> People want SOAP on JMS not for the fun, but generally to get asynchronicity
>> and Quality of Service.
> 
> But, it is not the intent of the SOAP/JMS spec to dictate how the user
> "programs the above MEPs".  That would be the responsibility of the client
> programming model that you have chosen to use (e.g. JAX-WS, JAX-RPC, etc.).
>  
>> Otherwise, http is good enough and more ubiquitous. So just delineating in
>> the primer that asynchronous at the SOAP level is not the same that
>> asynchronous at the transport (JMS) level will make the picture less fuzzy.
> 
> Well, it's certainly true that async at the "SOAP level" (I assume you mean
> client programming model) is independent of the notion of async at the
> transport level.  I can think of a situation where an async transport (JMS)
> can be used to implement a synchronous request/response MEP in JAX-RPC, for
> example. 
> 
>> So, you have to address WS-Addressing and also WS-RM (more fun :-)
> 
> Sorry, I don't agree that the SOAP/JMS spec should address WS-Addressing (no
> pun intended).    And I certainly don't think we should talk much about WS-RM
> other than to perhaps say that you probably don't want to use WS-RM in
> conjunction with SOAP/JMS.  The fact that messaging engines already provide
> various levels of reliability means that you probably don't want or need the
> added overhead of using WS-ReliableMessaging.    WS-RM is mainly intended for
> use on un-reliable transports (e.g. HTTP).
> 
> Phil Adams 
> WebSphere Development - Web Services
> IBM Austin, TX
> email: phil_adams@us.ibm.com
> office: (512) 838-6702  (tie-line 678-6702)
> mobile: (512) 750-6599
> 
> 
> 
> From: "TALBOT Jacques (TJA)" <Jacques.TALBOT@teamlog.com>
> To: "public-soap-jms@w3.org" <public-soap-jms@w3.org>,
> "tip-framework@lists.tmforum.org" <tip-framework@lists.tmforum.org>
> Date: 08/18/2008 03:47 AM
> Subject: RE: RE : WS-Addressing
> 
> 
> 
> 
> Thanks to all for taking care...
> As we all know, when a question is well articulated, it is half of the answer.
> Unfortunately, I am not able to articulate well my precise question :-(
> Anyway ... 
> 
> I believe the Primer is a very  good place to provide some guidance on these
> topics.
> 
> So I will explain my problem and leave to you finding of the solution. I am
> not technical enough nowadays to go in the nitty gritty details.
> 
> We need to program at a WSDL/SOAP level both synchronous and asynchronous
> Request Reply MEPs.
> - Synchronous RR is just an RPC;
> - Asynchronous RR is asynchronous at the protocol level (as opposed to WSC
> toolkit level asynchrony) - with http, the reply travels on a different http
> connection than the request; probably with a JMS binding, there is not such a
> distinction since there is a Reply Queue in all cases.
> 
> Notice I am not using the WSDL or SOAP MEP names, because honestly, outside of
> the W3C spec writers, nobody ever use these notions.
> 
> For asynchronous, we use WS-Addressing to specify:
> 1 - Reply and Error ports  (with wsa:Anonymous to specify a specific "reply on
> http backchannel" case)
> 2 - Correlation IDs
> 
> So this is my programming universe. Ideally, I would like to be independent of
> the underlying bindings, be them http or JMS. But "protocols are leaky
> abstractions" unfortunately, so this is almost impossible.
> So let's try to minimize the leaks.
> 
> At the binding level, JMS provides queues and correlationID abstractions.
> 
> My gut feelings, that I am not able to substantiate with technical statements,
> is that if there is no specification on how the WSA level abstractions (ports
> and ID) and the JMS level abstractions (Queues and ID) are related (or
> unrelated), the vendors will implement in their preferred ad-hoc way and not
> only will the protocol leak into the programmer's code, but also the toolkit
> will leak.
> 
> This is already the case to-day if you try to program asynchronous Request
> Reply with SOAP and http.
> Axis2 and CXF and WebSphere and WebLogic all behave their own specific way!
> 
> If you try to program asynchronous RR with (for example) SOAP on JMS on
> WebSphereMQ, you have no WS-Addressing but "the addressing and correlators of
> Mr. WebSphere MQ", right up there in your SOAP code. How elegant! This is not
> to blame IBM, I believe other vendors do the same, but I do not have the
> smoking gun in their case :-)
> 
> So my plea to the SOAP on JMS WG is: do not reiterate the "http binding" WG
> errors.
> If you try to articulate in the primer how the poor soul will program the
> above MEPs, it will help.
> People want SOAP on JMS not for the fun, but generally to get asynchronicity
> and Quality of Service. Otherwise, http is good enough and more ubiquitous. So
> just delineating in the primer that asynchronous at the SOAP level is not the
> same that asynchronous at the transport (JMS) level will make the picture less
> fuzzy. 
> So, you have to address WS-Addressing and also WS-RM (more fun :-)
> 
> I understand the temptation to brush this dust under somebody's else carpet,
> (or not to drink this chalice, if you prefer another religious metaphor :-)
> but if you succumb to this temptation, how can users take the W3C specs as a
> help rather than a hindrance?
> 
> Well, enogh said, that was my last attempt to clarify my needs, which I
> believe are of general interest to many, as Nathan questions show.
> 
> Thanks anyway for your time and efforts
> 
> --
> Jacques Talbot - Teamlog 10 rue Lavoisier - 38330 Montbonnot
> Tél: 04 76 61 37 12  Mél: jacques.talbot@teamlog.com
> Tél. mobile 06 07 83 42 00
> 
> 
> -----Message d'origine-----
> De : Glen Daniels [mailto:glen@wso2.com <mailto:glen@wso2.com> ]
> Envoyé : vendredi 15 août 2008 13:39
> À : Nathan Sowatskey
> Cc : TALBOT Jacques (TJA); public-soap-jms@w3.org;
> tip-framework@lists.tmforum.org
> Objet : Re: RE : WS-Addressing
> 
> Hi Nathan:
> 
> Let me turn this around a bit - can you please explain (this is for
> Jacques/Mark too) exactly what you think should be covered in the spec?
>   Mark's original message said "clear direction on what to do when using
> WS-Addressing header with SOAP/JMS"... We'll certainly cover that to some
> extent between the primer and the test suite (which will absolutely cover a
> variety of cases), but I'm not clear on just what you think should be
> included.  Keep in mind that Addressing says "here's how you use these
> headers/properties to bind to various SOAP MEPs", and our binding (just like
> the HTTP binding) says "here's a binding that offers SOAP MEPs".
> 
> Tell us what the problem is and we'll try to get it solved, or point you in
> the right direction at least.
> 
> Thanks,
> --Glen
> 
> Nathan Sowatskey wrote:
>> Hi all
>> 
>> The question of how WS-Addressing relates to the SOAP/JMS binding is
>> also important to us, both at Cisco NMTG for our use of WSDM, and at
>> the TMF TIP for reasons related to mapping MTOSI headers to WS-Addressing.
>> 
>> I can understand the WG's desire to avoid having to specify this in
>> the SOAP/JMS the binding, but I hope that this does not cause
>> ambiguity as a consequence. I don't believe that a FAQ entry is
>> sufficient, though that could be a useful first step.
>> 
>> I expect that a this would require a normative addendum, which perhaps
>> we could start planning for now?
>> 
>> Many thanks
>> 
>> Nathan
>> 
>> 
>> On 06/08/2008 16:13, "TALBOT Jacques (TJA)"
>> <Jacques.TALBOT@teamlog.com>
>> wrote:
>> 
>>> +1
>>> Great, the cavalry to the rescue, two of us are now asking !
>>> The FAQ "disclaimer" does not sound as a very exciting solution.
>>> This is like the classical bureaucracy story: you ask Bureau 23, they
>>> tell you, it is not us, ask bureau 54 and so on and so forth :-)
>>> 
>>> Jacques
>>> 
>>> ___________________________________________
>>> Jacques.Talbot@teamlog.com  Mobile: 06 07 83 42 00
>>> 
>>> De : public-soap-jms-request@w3.org [public-soap-jms-request@w3.org]
>>> de la part de Mark R Maxey [Mark_R_Maxey@raytheon.com] Date d'envoi :
>>> mercredi 6 août 2008 11:46 À : public-soap-jms@w3.org Objet :
>>> WS-Addressing
>>> 
>>> 
>>> I've tried to follow the WS-Addressing discussion, so I'm sorry if
>>> I'm rehashing old ground ...
>>> 
>>> Did anyone consider leaving some properties abstract in this document
>>> and creating other documents with concrete mappings to JMS headers &
>>> WS-Addressing?  Is there going to be a addendum or note that speaks
>>> to WS-Addressing?
>>> 
>>> I'd like to see clear direction on what to do when using
>>> WS-Addressing header with SOAP/JMS.  There's ambiguity and overlap to
>>> be addressed.  WS-Addressing also includes some metadata not available via
>>> JMS, e.g., FaultTo.
>>> 
>>> Perhaps I'm misguided, but I thought the beauty of SOAP was that the
>>> same message could be sent over HTTP or JMS without modification.
>>> That concept is broken if one is forced to use protocol specific
>>> metadata.  I would like to see a SOAP/JMS or SOAP/HTTP where
>>> properties of protocols are configured via the WSDL,  web services
>>> infrastructure "binds" to protocols at the transport layer, and the
>>> creation and processing of message content is 100% based on the XML
>>> SOAP payload.  This allows web service implementations to minimize the
>>> amount of protocol specific code.
>>> 
>>> 
>>> Cheers,
>>> Mark Maxey
>>> 
>> 
>> 
>> 
> 
> 
Received on Monday, 18 August 2008 20:39:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 18 December 2010 18:16:17 GMT