- From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Date: Tue, 11 Oct 2005 12:41:32 -0700
- 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? 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).</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" > > <jmarsh@microsoft.com></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, > <public-ws-addressing@w3.org></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. > 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.</FONT> <BR><FONT face=Tahoma > color=blue > > size=2> </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> </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 > > <peter.hendry@capeclear.com></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> </FONT> > > <P><BR> > > <TABLE width="100%"> > > <TBODY> > > <TR vAlign=top> > > <TD width="50%"><FONT face="Times New Roman" > size=3> </FONT> > > <TD width="49%"><FONT face="Times New Roman" > > > size=3> </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? > > </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><binding name="StockQuoteSoapBinding" > > type="tns:StockQuotePortType"></FONT><FONT face="Times New > Roman" size=3> > > </FONT><FONT face=sans-serif size=2><BR><</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> /></FONT><FONT face="Times New Roman" > size=3> > > </FONT><FONT face=sans-serif size=2><BR><wsaw:UsingAddressing > > wsdl:required="true" /></FONT><FONT face="Times New Roman" size=3> > > </FONT><FONT face=sans-serif size=2><BR><operation > > name="GetLastTradePrice"></FONT><FONT face="Times New Roman" > size=3> > > </FONT><FONT face=sans-serif size=2><BR> <</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> /></FONT><FONT face="Times New Roman" > size=3> > > </FONT><FONT face=sans-serif size=2><BR> <input> > <BR> > > <</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" > > /></FONT><FONT face="Times New Roman" size=3> </FONT><FONT > face=sans-serif > > size=2><BR> </input> <BR> <output></FONT><FONT > > face="Times New Roman" size=3> </FONT><FONT face=sans-serif > size=2><BR> > > <</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" > > /></FONT><FONT face="Times New Roman" size=3> </FONT><FONT > face=sans-serif > > size=2><BR> </output></FONT><FONT face="Times New > Roman" size=3> > > </FONT><FONT face=sans-serif size=2><BR></operation></FONT><FONT > > face="Times New Roman" size=3> </FONT><FONT face=sans-serif > > size=2><BR></binding></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 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.</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 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>==>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. > > <==</FONT><FONT face="Times New Roman" size=3> > > </FONT><BR></P></BLOCKQUOTE></BODY></HTML> > > >
Received on Tuesday, 11 October 2005 19:42:05 UTC