Re: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification]

Hi Eric,
Thanks for responding to the issue so quickly.   Here are some comments:

1) I like your value better: "http://www.w3.org/2010/soapjms/soap1.2/"
1a) agreed, we should also define "http://www.w3.org/2010/soapjms/soap1.1/
"

2) I agree that part is important in terms of completing the issue, but I 
was hesitant to go into that level of detail until we've agreed on the 
approach for resolving the issue.   I think we're on the same page in that 
regard, so the next step would be to propose the actual changes to the 
spec. 

I think I would prefer a non-normative informational appendix that 
specifies these values for use with JAX-WS in the event that the vendor 
implementation needs to support JAX-WS.    I would hesitate to define this 
change as a new optional normative conformance target, due to where we are 
in the process and because I'm not totally convinced that we should be 
coupling our binding spec with JAX-WS (or at least to that extent).    To 
be honest, I think a more proper place to define these BindingType 
annotation values would be in the JAX-WS spec itself, where it also 
defines the SOAP/HTTP-related values.   But, that would need to be 
addressed in a future version of JAX-WS and there's no telling when that 
would occur.   So, failing that, perhaps we should add a non-normative 
appendix that *encourages* the use of specific values for the SOAP 1.1/JMS 
and SOAP 1.2/JMS cases.  This would at least provide some guidance to 
vendors that also need to support JAX-WS so that they could in turn 
provide portability to their own customers.

If you agree with this, then I'll go ahead and propose the actual changes 
to the binding spec.

Thanks,
Phil




From:
Eric Johnson <eric@tibco.com>
To:
SOAP-JMS Binding Working Group WG <public-soap-jms@w3.org>
Date:
11/22/2010 04:49 PM
Subject:
Re: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value 
[SOAP-JMS Binding specification]
Sent by:
public-soap-jms-request@w3.org



Hi Phil,

Thanks for raising the issue.

I'm assuming we'll open the issue, and am leaping ahead to discussing 
your proposal:

1) I'm not thrilled by "http://www.w3.org/2010/soap12jms/".  I think it 
should probably be scoped within the URL space we have, and perhaps 
should be "http://www.w3.org/2010/soapjms/soap1.2/" instead.

1a) Since this is within the scope of what should be used by the JAX-WS 
BindingType, then perhaps we should take the opportunity to eliminate 
ambiguity, and specify "http://www.w3.org/2010/soapjms/soap1.1/" as well?

2) Your proposal doesn't discuss exactly where in the specification this 
new value would be documented.  This strikes me as somewhat important, 
because if this new value doesn't appear in the WSDL, but is only useful 
for the JAX-WS BindingType attribute, then making this a normative 
constraint involves actually adding an optional normative conformance 
target for a JAX-WS conforming binding.

The question is, then, do we make this an informative appendix?  Or did 
you have something else in mind?

-Eric.

On 11/22/10 2:04 PM, SOAP-JMS Binding Working Group Issue Tracker wrote:
> ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value 
[SOAP-JMS Binding specification]
>
> http://www.w3.org/2002/ws/soapjms/tracker/issues/67
>
> Raised by: Phil Adams
> On product: SOAP-JMS Binding specification
>
> Currently, the SOAP/JMS binding spec defines a single value (
http://www.w3.org/2010/soapjms/) to be used as the soap:binding transport 
URL to indicate that the WSDL binding supports SOAP/JMS (see section 3.3.2 
of the binding spec).   According to the spec, this single value should be 
used for both SOAP 1.1 and SOAP 1.2.   [Also, it seems that it is merely a 
coincidence that this transport URL value is the same as the soapjms 
binding namespace value, although they don't need to be the same value. My 
point is that the value "http://www.w3.org/2010/soapjms/" seems to be 
serving double duty - it is the soapjms binding namespace value *and* it 
is also the soap:binding transport URL value that indicates that SOAP over 
JMS is being used.]
>
> If one restricts their view to only the WSDL document, then this 
approach works fine, as the soap version associated with the actual 
binding itself can be used to determine which version of SOAP is being 
used.   For example, if the soap:binding element name refers to the SOAP 
1.1 namespace, then the binding indicates SOAP 1.1, and if the 
soap:binding element name refers to the SOAP 1.2 namespace, then the 
binding indicates SOAP 1.2.
>
> Unfortunately, this approach of using a single value to be shared 
between SOAP 1.1 and SOAP 1.2 leads to a problem when considering a JAX-WS 
application that does not use a WSDL document.  In this situation, the 
author of the endpoint
> implementation class might use the BindingType annotation like this:
>
> @WebService
> @BindingType("http://www.w3.org/2010/soapjms/")
> public class MyEndpointImpl {
> }
>
> In this case, the author has only the BindingType annotation at his 
disposal to indicate the SOAP version and transport that should be used by 
his endpoint.
> For the HTTP case, the JAX-WS specification defines separate values for 
SOAP 1.1 and SOAP 1.2, thereby allowing the endpoint author to 
differentiate between
> them while specifying the BindingType annotation.   But since the 
SOAP/JMS binding spec defines only a single value, the author can specify 
only SOAP 1.1 over JMS in this way.
>
> For this reason, I'm proposing that the SOAP/JMS binding spec define the 
following transport URL value to be used in the BindingType annotation to 
indicate SOAP 1.2 over JMS:
> http://www.w3.org/2010/soap12jms/
>
> I'm also proposing that the binding spec be clarified to indicate that 
the use of the value "http://www.w3.org/2010/soapjms/" in the BindingType 
annotation specifically indicates that SOAP 1.1 over JMS should be used 
for the endpoint.
>
> This proposal does not affect the value that will be used in the WSDL 
document as we can continue to use the value "
http://www.w3.org/2010/soapjms/" as the soap:binding transport, since the 
soap:binding element name's namespace can be used to define the SOAP 
version to be used.
>
> To clarify...  if the endpoint author specifies
>     @BindingType("http://www.w3.org/2010/soap12jms/")
> on his endpoint implementation class, then this equates to the use of 
SOAP 1.2 over JMS and the corresponding wsdl binding (generated by the 
JAX-WS wsgen tool) would look like this:
>   <wsdl11:binding name="StockQuoteSoapJMSBinding" 
type="tns:StockQuotePortType"
>                xmlns:soapjms="http://www.w3.org/2010/soapjms/">
> 15<wsdl11soap12:binding style="document"
>                transport="http://www.w3.org/2010/soapjms/"/>
>    ....
>
> Similarly, if the endpoint author specifies
>     @BindingType("http://www.w3.org/2010/soapjms/")
> then the corresponding wsdl binding as generated by wsgen would look 
like this:
>   <wsdl11:binding name="StockQuoteSoapJMSBinding" 
type="tns:StockQuotePortType"
>                xmlns:soapjms="http://www.w3.org/2010/soapjms/">
> 15<wsdl11soap11:binding style="document"
>                transport="http://www.w3.org/2010/soapjms/"/>
>    ....
>
>
> Before I propose specific changes to the SOAP/JMS binding spec, let's 
first agree on this general approach for solving this issue
>
>
>

Received on Monday, 22 November 2010 23:37:56 UTC