W3C home > Mailing lists > Public > public-ws-addressing@w3.org > October 2005

Re: New Issue: What to do when SOAPAction and Default Action Pattern conflict?

From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
Date: Tue, 11 Oct 2005 12:41:32 -0700
Message-ID: <434C156C.4020101@oracle.com>
To: Katy Warr <katy_warr@uk.ibm.com>
CC: ian.springer@hp.com, Jonathan Marsh <jmarsh@microsoft.com>, public-ws-addressing@w3.org

All this is making me rethink as to whether we made the right decision 
wrt to requiring the [action] value to be same as SOAPAction (or empty).
It seems to me that instead of a MUST perhaps we need to have a SHOULD 
(or a recommendation). All of this of course depends on whether it 
requires us to go back to LC.

-Anish
--

Katy Warr wrote:
> 
> Ian, Anish
> I agree that this is a good point that I hadn't considered in the 
> original email.  The first problem that we need to solve is what the 
> correct WSA behaviour is when the SOAPAction is not a valid URI.
> Thanks
> Katy
> 
> 
> *Anish Karmarkar <Anish.Karmarkar@oracle.com>*
> 
> 10/10/2005 21:48
> 
> 	
> To
> 	"Springer, Ian P." <ian.springer@hp.com>
> cc
> 	Katy Warr/UK/IBM@IBMGB, Jonathan Marsh <jmarsh@microsoft.com>, 
> public-ws-addressing@w3.org
> Subject
> 	Re: New Issue: What to do when SOAPAction and Default Action Pattern 
>  conflict? it
> 
> 
> 	
> 
> 
> 
> 
> 
> Ian,
> 
> Good point. But this is a problem regardless of Katy's suggestion.
> Currently the specs says that either SOAPAction and wsa:Action should be
> the same or SOAPAction should be empty. If SOAPAction is not a valid URI
> (in WSDL), then the message either cannot conform to WSA 1.0 or cannot
> conform to the WSDL SOAP binding.
> 
> -Anish
> --
> 
> Springer, Ian P. wrote:
>  > What about the case where soapAction is not a valid URI? Using it as the
>  > default value for wsaw:Action, you end with an invalid wsa:Action (i.e.
>  > that is not a valid xsd:anyURI).
>  >
>  >
>  > ________________________________
>  >
>  >                  From: public-ws-addressing-request@w3.org
>  > [mailto:public-ws-addressing-request@w3.org] On Behalf Of Katy Warr
>  >                  Sent: Monday, October 10, 2005 4:06 PM
>  >                  To: Jonathan Marsh; public-ws-addressing@w3.org
>  >                  Subject: RE: New Issue: What to do when SOAPAction 
> and Default
>  > Action Pattern conflict? it
>  >                  
>  >                  
>  >
>  >                  Jonathan
>  >                  I don't think it's sufficient because:
>  >                  - Folk may not wish/be in a position to refresh 
> their WSDL with
>  > the wsaw:Action
>  >                  - Why mandate the duplication of the same piece of 
> information
>  > in the service description when we can deduce it?
>  >                  I don't think that this complicates things - for 
> users of
>  > WS-Addressing it should make things easier.
>  >                  Katy
>  >                  
>  >                  
>  >                  
>  >                  
>  > "Jonathan Marsh" <jmarsh@microsoft.com>
>  >
>  > 10/10/2005 18:46
>  >
>  > To
>  > Katy Warr/UK/IBM@IBMGB, <public-ws-addressing@w3.org>
>  > cc
>  > Subject
>  > RE: New Issue: What to do when SOAPAction and Default Action Pattern
>  > conflict? it
>  >
>  >                  
>  >
>  >
>  >
>  >
>  >                  The currently available solution is to add wsaw:Action
>  > explicitly whenever you have a soapAction.  Isn't that a sufficient
>  > answer?  Perhaps we could simply remind people of this solution.
>  > Complicating our action defaulting algorithm further (by making it
>  > depend on information in another namespace) seems to me to likely be
>  > more confusing in the long run.
>  >                    
>  >
>  > ________________________________
>  >
>  >
>  >                  From: public-ws-addressing-request@w3.org
>  > [mailto:public-ws-addressing-request@w3.org] On Behalf Of Katy Warr
>  >                  Sent: Monday, October 10, 2005 8:57 AM
>  >                  To: public-ws-addressing@w3.org
>  >                  Subject: New Issue: What to do when SOAPAction and 
> Default
>  > Action Pattern conflict?
>  >                    
>  >                  
>  >                  I'd like to raise this as an issue. thanks
>  >                  
>  >                  ----- Forwarded by Katy Warr/UK/IBM on 10/10/2005 
> 16:56 -----
>  >
>  >                  
>  > Pete Hendry <peter.hendry@capeclear.com>
>  > Sent by: public-ws-addressing-request@w3.org
>  >
>  > 08/10/2005 04:58
>  >
>  >
>  >
>  > To
>  > Katy Warr/UK/IBM@IBMGB
>  > cc
>  > public-ws-addressing@w3.org
>  > Subject
>  > Re: What to do when SOAPAction and Default Action Pattern conflict?
>  >
>  >  
>  >
>  >
>  >
>  >                    
>  >
>  >
>  >
>  >                  
>  >                  
>  >                  
>  >                  We have already seen this problem where the 
> requirement is to
>  > take an already existing service and allow asynchronous calls against
>  > request-response operations (actually, we already did async in a
>  > proprietary config-file type way and now want to use WS-Addressing to
>  > achieve the same thing with old WSDLs).
>  >                  
>  >                  I would agree with Katy that defaulting the input 
> wsa:Action to
>  > the SOAPAction if present would solve this problem. The output and fault
>  > actions could keep their current defaults (I assume it is only the input
>  > wsa:Action that has to match SOAPAction).
>  >                  
>  >                  Pete
>  >                  
>  >                  
>  >                  Katy Warr wrote:
>  >                  
>  >                  What is the correct behaviour for gen'ing wsa:Action 
> in the
>  > client when the HTTP 1.1 SOAPAction is set ( i.e. not "") and there is
>  > no wsaw:Action explicitly specified in the WSDL?  
>  >                  
>  >                  The problem is that, the default action pattern for 
> wsa:Action
>  > cannot be gauranteed to generate a wsa:action to match SOAPAction.
>  >                  
>  >                  Here is an example to illustrate:
>  >                  
>  >                  <binding name="StockQuoteSoapBinding"
>  > type="tns:StockQuotePortType">
>  >                  <soap:binding <soap:binding>  style="document"
>  > transport="http://schemas.xmlsoap.org/soap/http"
>  > <http://schemas.xmlsoap.org/soap/http>  />
>  >                  <wsaw:UsingAddressing wsdl:required="true" />
>  >                  <operation name="GetLastTradePrice">
>  >                    <soap:operation <soap:operation>
>  > soapAction="http://example.com/GetLastTradePrice"
>  > <http://example.com/GetLastTradePrice>  />
>  >                    <input>
>  >                      <soap:body <soap:body>  use="literal" />
>  >                    </input>
>  >                    <output>
>  >                      <soap:body <soap:body>  use="literal" />
>  >                    </output>
>  >                  </operation>
>  >                  </binding>
>  >                  
>  >                  If we use the default action pattern to generate the 
> wsa:Action,
>  > this is the result for the input operation
>  >                 
>  http://example.com/StockQuotePortType/GetLastTradePriceInput
>  > <http://example.com/StockQuotePortType/GetLastTradePriceInput>  
>  >                  As this is not  the same as the SOAPAction, this 
> will cause
>  > non-compliance.  The WSDL in this case is implicitly inconsistent with
>  > the wsa spec - a problem which will occur in every existing WSDL 1.1 in
>  > which the values of SOAPAction have not been constructed according to
>  > the default action pattern.
>  >                  
>  >                  A possible solution is to set the wsa:Action header to
>  > SOAPAction (if SOAPAction =! "") in preference to using the default
>  > action pattern (if the wsa:Action is not specified explicitly).
>  >                  
>  >                  This would means a change something like this in the 
> wsdl spec:
>  >                  
>  >                  4.3 Default Action  Pattern for WSDL 1.1
>  >                  In the absence of the wsa:Action attribute....
>  >                  ==>When using the SOAP 1.1 HTTP binding, if the 
> SOAPAction is
>  > set, the action for inputs and outputs MUST be the same as this and the
>  > default action pattern is not used. <==
>  >                  
>  >
>  >
>  > ent-Type: text/html;
>  >                  charset="us-ascii"
>  > Content-Transfer-Encoding: quoted-printable
>  >
>  > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
>  > <HTML><HEAD>
>  > <META http-equiv=Content-Type content="text/html; charset=us-ascii">
>  > <META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
>  > <BODY>
>  > <DIV dir=ltr align=left><SPAN class=747291120-10102005><FONT face=Arial
>  > color=#0000ff size=2>What about the case where soapAction is not a valid
>  > URI?&nbsp;Using it as the default value for wsaw:Action, you end with an
>  > invalid&nbsp;wsa:Action (i.e. that is not a valid
>  > xsd:anyURI).</FONT></SPAN></DIV><BR>
>  > <BLOCKQUOTE dir=ltr
>  > style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px 
> solid; MARGIN-RIGHT: 0px">
>  >   <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
>  >   <HR tabIndex=-1>
>  >   <FONT face=Tahoma size=2><B>From:</B> 
> public-ws-addressing-request@w3.org
>  >   [mailto:public-ws-addressing-request@w3.org] <B>On Behalf Of </B>Katy
>  >   Warr<BR><B>Sent:</B> Monday, October 10, 2005 4:06 PM<BR><B>To:</B> 
> Jonathan
>  >   Marsh; public-ws-addressing@w3.org<BR><B>Subject:</B> RE: New 
> Issue: What to
>  >   do when SOAPAction and Default Action Pattern conflict?
>  > it<BR></FONT><BR></DIV>
>  >   <DIV></DIV><BR><FONT face=sans-serif size=2>Jonathan</FONT> <BR><FONT
>  >   face=sans-serif size=2>I don't think it's sufficient 
> because:</FONT> <BR><FONT
>  >   face=sans-serif size=2>- Folk may not wish/be in a position to 
> refresh their
>  >   WSDL with the wsaw:Action</FONT> <BR><FONT face=sans-serif size=2>- 
> Why
>  >   mandate the duplication of the same piece of information in the 
> service
>  >   description when we can deduce it?</FONT> <BR><FONT face=sans-serif 
> size=2>I
>  >   don't think that this complicates things - for users of 
> WS-Addressing it
>  >   should make things easier. </FONT><BR><FONT face=sans-serif 
> size=2>Katy</FONT>
>  >   <BR><BR><BR><BR>
>  >   <TABLE width="100%">
>  >     <TBODY>
>  >     <TR vAlign=top>
>  >       <TD width="40%"><FONT face=sans-serif size=1><B>"Jonathan Marsh"
>  >         &lt;jmarsh@microsoft.com&gt;</B> </FONT>
>  >         <P><FONT face=sans-serif size=1>10/10/2005 18:46</FONT> </P>
>  >       <TD width="59%">
>  >         <TABLE width="100%">
>  >           <TBODY>
>  >           <TR>
>  >             <TD>
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>To</FONT></DIV>
>  >             <TD vAlign=top><FONT face=sans-serif size=1>Katy
>  >               Warr/UK/IBM@IBMGB, 
> &lt;public-ws-addressing@w3.org&gt;</FONT>
>  >           <TR>
>  >             <TD>
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>cc</FONT></DIV>
>  >             <TD vAlign=top>
>  >           <TR>
>  >             <TD>
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>Subject</FONT></DIV>
>  >             <TD vAlign=top><FONT face=sans-serif size=1>RE: New 
> Issue: What to
>  >               do when SOAPAction and Default Action Pattern conflict?
>  >           it</FONT></TR></TBODY></TABLE><BR>
>  >         <TABLE>
>  >           <TBODY>
>  >           <TR vAlign=top>
>  >             <TD>
>  >             
> <TD></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><BR><BR><FONT
>  >   face=Tahoma color=blue size=2>The currently available solution is 
> to add
>  >   wsaw:Action explicitly whenever you have a soapAction. 
> &nbsp;Isn&#8217;t that a
>  >   sufficient answer? &nbsp;Perhaps we could simply remind people of this
>  >   solution. &nbsp;Complicating our action defaulting algorithm 
> further (by
>  >   making it depend on information in another namespace) seems to me 
> to likely be
>  >   more confusing in the long run.</FONT> <BR><FONT face=Tahoma 
> color=blue
>  >   size=2>&nbsp;</FONT>
>  >   <DIV align=center><BR>
>  >   <HR>
>  >   </DIV><BR><FONT face=Tahoma size=2><B>From:</B>
>  >   public-ws-addressing-request@w3.org
>  >   [mailto:public-ws-addressing-request@w3.org] <B>On Behalf Of </B>Katy
>  >   Warr<B><BR>Sent:</B> Monday, October 10, 2005 8:57 AM<B><BR>To:</B>
>  >   public-ws-addressing@w3.org<B><BR>Subject:</B> New Issue: What to 
> do when
>  >   SOAPAction and Default Action Pattern conflict?</FONT> <BR><FONT
>  >   face="Times New Roman" size=3>&nbsp;</FONT> <BR><FONT face=sans-serif
>  >   size=2><BR>I'd like to raise this as an issue. thanks</FONT><FONT
>  >   face="Times New Roman" size=3> <BR></FONT><FONT face=sans-serif 
> color=#800080
>  >   size=1><BR>----- Forwarded by Katy Warr/UK/IBM on 10/10/2005 16:56
>  >   -----</FONT><FONT face="Times New Roman" size=3> </FONT>
>  >   <P>
>  >   <TABLE width="100%">
>  >     <TBODY>
>  >     <TR vAlign=top>
>  >       <TD width="40%"><FONT face=sans-serif size=1><B>Pete Hendry
>  >         &lt;peter.hendry@capeclear.com&gt;</B> <BR>Sent by:
>  >         public-ws-addressing-request@w3.org</FONT><FONT face="Times 
> New Roman"
>  >         size=3> </FONT>
>  >         <P><FONT face=sans-serif size=1>08/10/2005 04:58</FONT><FONT
>  >         face="Times New Roman" size=3> </FONT></P>
>  >       <TD width="59%"><BR>
>  >         <TABLE width="100%">
>  >           <TBODY>
>  >           <TR>
>  >             <TD width="12%">
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>To</FONT></DIV>
>  >             <TD vAlign=top width="87%"><FONT face=sans-serif size=1>Katy
>  >               Warr/UK/IBM@IBMGB</FONT><FONT face="Times New Roman" 
> size=3>
>  >               </FONT>
>  >           <TR>
>  >             <TD>
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>cc</FONT></DIV>
>  >             <TD vAlign=top><FONT face=sans-serif
>  >               size=1>public-ws-addressing@w3.org</FONT><FONT
>  >               face="Times New Roman" size=3> </FONT>
>  >           <TR>
>  >             <TD>
>  >               <DIV align=right><FONT face=sans-serif 
> size=1>Subject</FONT></DIV>
>  >             <TD vAlign=top><FONT face=sans-serif size=1>Re: What to 
> do when
>  >               SOAPAction and Default Action Pattern
>  >         conflict?</FONT></TR></TBODY></TABLE><BR><FONT face="Times 
> New Roman"
>  >         size=3>&nbsp;</FONT>
>  >         <P><BR>
>  >         <TABLE width="100%">
>  >           <TBODY>
>  >           <TR vAlign=top>
>  >             <TD width="50%"><FONT face="Times New Roman" 
> size=3>&nbsp;</FONT>
>  >             <TD width="49%"><FONT face="Times New Roman"
>  >           
> size=3>&nbsp;</FONT></TR></TBODY></TABLE><BR></P></TR></TBODY></TABLE><BR><FONT 
> 
>  >   face="Times New Roman" size=3><BR><BR><BR>We have already seen this 
> problem
>  >   where the requirement is to take an already existing service and allow
>  >   asynchronous calls against request-response operations (actually, 
> we already
>  >   did async in a proprietary config-file type way and now want to use
>  >   WS-Addressing to achieve the same thing with old WSDLs).<BR><BR>I 
> would agree
>  >   with Katy that defaulting the input wsa:Action to the SOAPAction if 
> present
>  >   would solve this problem. The output and fault actions could keep 
> their
>  >   current defaults (I assume it is only the input wsa:Action that has 
> to match
>  >   SOAPAction).<BR><BR>Pete<BR><BR><BR>Katy Warr wrote: </FONT><FONT
>  >   face=sans-serif size=2><BR><BR>What is the correct behaviour for 
> gen'ing
>  >   wsa:Action in the client when the HTTP 1.1 SOAPAction is set ( i.e. 
> not "")
>  >   and there is no wsaw:Action explicitly specified in the WSDL?
>  >   &nbsp;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
> face=sans-serif
>  >   size=2><BR><BR>The problem is that, the default action pattern for 
> wsa:Action
>  >   cannot be gauranteed to generate a wsa:action to match 
> SOAPAction.</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif
>  >   size=2><BR><BR>Here is an example to illustrate:</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif
>  >   size=2><BR><BR>&lt;binding name="StockQuoteSoapBinding"
>  >   type="tns:StockQuotePortType"&gt;</FONT><FONT face="Times New 
> Roman" size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&lt;</FONT><A
>  >   href="soap:binding"><FONT face=sans-serif color=blue
>  >   size=2><U>soap:binding</U></FONT></A><FONT face=sans-serif size=2>
>  >   style="document" transport=</FONT><A
>  >   href="http://schemas.xmlsoap.org/soap/http"><FONT face=sans-serif 
> color=blue
>  >   size=2><U>"http://schemas.xmlsoap.org/soap/http"</U></FONT></A><FONT
>  >   face=sans-serif size=2> /&gt;</FONT><FONT face="Times New Roman" 
> size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&lt;wsaw:UsingAddressing
>  >   wsdl:required="true" /&gt;</FONT><FONT face="Times New Roman" size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&lt;operation
>  >   name="GetLastTradePrice"&gt;</FONT><FONT face="Times New Roman" 
> size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&nbsp; &lt;</FONT><A
>  >   href="soap:operation"><FONT face=sans-serif color=blue
>  >   size=2><U>soap:operation</U></FONT></A><FONT face=sans-serif size=2>
>  >   soapAction=</FONT><A href="http://example.com/GetLastTradePrice"><FONT
>  >   face=sans-serif color=blue
>  >   size=2><U>"http://example.com/GetLastTradePrice"</U></FONT></A><FONT
>  >   face=sans-serif size=2> /&gt;</FONT><FONT face="Times New Roman" 
> size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&nbsp; &lt;input&gt; 
> <BR>&nbsp; &nbsp;
>  >   &lt;</FONT><A href="soap:body"><FONT face=sans-serif color=blue
>  >   size=2><U>soap:body</U></FONT></A><FONT face=sans-serif size=2> 
> use="literal"
>  >   /&gt;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
> face=sans-serif
>  >   size=2><BR>&nbsp; &lt;/input&gt; <BR>&nbsp; &lt;output&gt;</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
> size=2><BR>&nbsp;
>  >   &nbsp; &lt;</FONT><A href="soap:body"><FONT face=sans-serif color=blue
>  >   size=2><U>soap:body</U></FONT></A><FONT face=sans-serif size=2> 
> use="literal"
>  >   /&gt;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
> face=sans-serif
>  >   size=2><BR>&nbsp; &lt;/output&gt;</FONT><FONT face="Times New 
> Roman" size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR>&lt;/operation&gt;</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif
>  >   size=2><BR>&lt;/binding&gt;</FONT><FONT face="Times New Roman" size=3>
>  >   </FONT><FONT face=sans-serif size=2><BR><BR>If we use the default 
> action
>  >   pattern to generate the wsa:Action, this is the result for the input
>  >   operation</FONT><FONT face="Times New Roman" size=3> </FONT><FONT
>  >   face="Times New Roman" color=blue size=3><U><BR></U></FONT><A
>  >   
> href="http://example.com/StockQuotePortType/GetLastTradePriceInput"><FONT
>  >   face=sans-serif color=blue
>  >   
> size=2><U>http://example.com/StockQuotePortType/GetLastTradePriceInput</U></FONT></A><FONT 
> 
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
> size=2><BR>As this
>  >   is not &nbsp;the same as the SOAPAction, this will cause 
> non-compliance.
>  >   &nbsp;The WSDL in this case is implicitly inconsistent with the wsa 
> spec - a
>  >   problem which will occur in every existing WSDL 1.1 in which the 
> values of
>  >   SOAPAction have not been constructed according to the default action
>  >   pattern.</FONT><FONT face="Times New Roman" size=3> </FONT><FONT
>  >   face=sans-serif size=2><BR><BR>A possible solution is to set the 
> wsa:Action
>  >   header to SOAPAction (if SOAPAction =! "") in preference to using 
> the default
>  >   action pattern (if the wsa:Action is not specified 
> explicitly).</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif
>  >   size=2><BR><BR>This would means a change something like this in the 
> wsdl
>  >   spec:</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
> face=sans-serif
>  >   size=2><BR><BR>4.3 Default Action &nbsp;Pattern for WSDL 
> 1.1</FONT><FONT
>  >   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
> size=2><BR>In the
>  >   absence of the wsa:Action attribute....</FONT><FONT face="Times New 
> Roman"
>  >   size=3> </FONT><FONT face=sans-serif size=2><BR>==&gt;When using 
> the SOAP 1.1
>  >   HTTP binding, if the SOAPAction is set, the action for inputs and 
> outputs MUST
>  >   be the same as this and the default action pattern is not used.
>  >   &lt;==</FONT><FONT face="Times New Roman" size=3>
>  > </FONT><BR></P></BLOCKQUOTE></BODY></HTML>
>  >
> 
Received on Tuesday, 11 October 2005 19:42:05 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:35:09 GMT