W3C home > Mailing lists > Public > www-ws-desc@w3.org > May 2005

RE: What is the purpose of #none?

From: Martin Gudgin <mgudgin@microsoft.com>
Date: Thu, 12 May 2005 15:40:43 -0700
Message-ID: <DD35CC66F54D8248B6E04232892B633805B8048E@RED-MSG-43.redmond.corp.microsoft.com>
To: "Jonathan Marsh" <jmarsh@microsoft.com>, "Yalcinalp, Umit" <umit.yalcinalp@sap.com>, "Arthur Ryman" <ryman@ca.ibm.com>, "Sanjiva Weerawarana" <sanjiva@opensource.lk>
Cc: <www-ws-desc@w3.org>

You might also have a input message that has SOAP headers but an empty
SOAP body.

Gudge

> -----Original Message-----
> From: www-ws-desc-request@w3.org 
> [mailto:www-ws-desc-request@w3.org] On Behalf Of Jonathan Marsh
> Sent: 12 May 2005 15:02
> To: Yalcinalp, Umit; Arthur Ryman; Sanjiva Weerawarana
> Cc: www-ws-desc@w3.org
> Subject: RE: What is the purpose of #none?
> 
> 
> Yes, this example looks a bit strange when only the SOAP over HTTP
> binding is considered, as one could instead model this as a 
> out-only and
> bind to the SOAP Response MEP.  There are a couple of reasons 
> you might
> not want to do that: first, you might not be using HTTP, or you might
> not trust that the SOAP Response MEP is supported on the 
> other end; for
> instance, you're using SOAP 1.1 or you are worried about the 
> deployment
> of the SOAP Response MEP among your client base.
> 
> It doesn't seem to me that the primer is promoting something that goes
> against our current idea of best practice.
> 
> > -----Original Message-----
> > From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]
> > On Behalf Of Yalcinalp, Umit
> > Sent: Thursday, May 12, 2005 10:21 AM
> > To: Arthur Ryman; Sanjiva Weerawarana
> > Cc: www-ws-desc@w3.org; www-ws-desc-request@w3.org
> > Subject: RE: What is the purpose of #none?
> > 
> > I just would like to get a feeling of the working groups 
> understanding
> > of interaction of #none and the semantics of MEPs.
> > 
> > The questions are very basic:
> > 
> > Considering JUST the abstract level of WSDL:
> > 
> > -- What is the difference between the following two cases?
> > -- Why should a description choose one over the other? (or 
> What is the
> > use case that needs to be differentiated for the 
> specification and for
> > the primer? The definition of #none is very terse in the 
> spec and does
> > not help someone using WSDL)
> > 
> > 
> > (A)
> > <interface name="fooInterface">
> >    <operation name="bogusinout"
> > pattern="http://www.w3.org/2005/05/wsdl/in-out">
> >          <input messageLabel="In" element="#none" />
> >          <output messageLabel="Out" element="tns:myoutput" />
> >    </operation>
> > </interface>
> > 
> > (B)
> > 
> > <interface name="foo2Interface">
> >    <operation name="realout"
> > pattern="http://www.w3.org/2005/05/wsdl/out-only">
> >          <output messageLabel="Out" element="tns:myoutput" />
> >    </operation>
> > </interface>
> > 
> > 
> > 
> > Further, can I have the following? (or variations of these you can
> > just imagine...). It is perfectly legal of course.
> > 
> > 
> > <interface name="MayBeNoOpInterface">
> >    <operation name="whatever"
> > pattern="http://www.w3.org/2005/05/wsdl/in-only">
> >          <output messageLabel="Out" element="#none" />
> >    </operation>
> > </interface>
> > 
> > Why would someone use this?
> > 
> > I have answers to them, however I just want to hear from folks who
> > wanted to put #none in the spec in the first place to refresh my
> > memory about the motivation.
> > 
> > --umit
> > 
> > 
> > 
> > 
> > 
> > ________________________________
> > 
> > 	From: Arthur Ryman [mailto:ryman@ca.ibm.com]
> > 	Sent: Thursday, May 12, 2005 9:39 AM
> > 	To: Sanjiva Weerawarana
> > 	Cc: Yalcinalp, Umit; www-ws-desc@w3.org; www-ws-desc-
> > request@w3.org
> > 	Subject: Re: What is the purpose of #none?
> > 
> > 
> > 
> > 	Sanjiva,
> > 
> > 	I thought #none was introduced to support the case where there
> > was a SOAP body, but the body was empty, i.e. had no child elements.
> > 
> > 	This is a different situation than an RPC style no-argument SOAP
> > body which does contain a single empty child element.
> > 
> > 	In both of these cases, the MEP is still input-output, NOT
> > output-only.
> > 
> > 	Is that correct?
> > 
> > 	Arthur Ryman,
> > 	Rational Desktop Tools Development
> > 
> > 	phone: +1-905-413-3077, TL 969-3077
> > 	assistant: +1-905-413-2411, TL 969-2411
> > 	fax: +1-905-413-4920, TL 969-4920
> > 	mobile: +1-416-939-5063, text: 4169395063@fido.ca
> > 	intranet: http://labweb.torolab.ibm.com/DRY6/
> > 
> > 
> > 
> > 	Sanjiva Weerawarana <sanjiva@opensource.lk>
> > 	Sent by: www-ws-desc-request@w3.org
> > 
> > 	05/12/2005 11:13 AM
> > 
> > 
> > 		To
> > 		Arthur Ryman/Toronto/IBM@IBMCA
> > 		cc
> > 		"Yalcinalp, Umit" <umit.yalcinalp@sap.com>, www-ws-
> > desc@w3.org, www-ws-desc-request@w3.org
> > 		Subject
> > 		Re: What is the purpose of #none?
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 	Hi Arthur,
> > 
> > 	#none means there's *no input*, period. Its not that there are
> > no
> > 	arguments .. there will be no body at all.
> > 
> > 	The usecase is some operation where just by connecting to the
> > EPR its
> > 	clear what must be sent back.
> > 
> > 	Sanjiva.
> > 
> > 	On Thu, 2005-05-12 at 08:20 -0400, Arthur Ryman wrote:
> > 	>
> > 	> Umit,
> > 	>
> > 	> I guess I didn't provide the motivation.
> > 	>
> > 	> Suppose you have an operation that takes no input arguments.
> > It is
> > 	> still a request-response, but the request is empty, e.g. get
> > the
> > 	> current time of day.
> > 	>
> > 	> Arthur Ryman,
> > 	> Rational Desktop Tools Development
> > 	>
> > 	> phone: +1-905-413-3077, TL 969-3077
> > 	> assistant: +1-905-413-2411, TL 969-2411
> > 	> fax: +1-905-413-4920, TL 969-4920
> > 	> mobile: +1-416-939-5063, text: 4169395063@fido.ca
> > 	> intranet: http://labweb.torolab.ibm.com/DRY6/
> > 	>
> > 	>
> > 	> Arthur Ryman/Toronto/IBM@IBMCA
> > 	> Sent by:
> > 	> www-ws-desc-request@w3.org
> > 	>
> > 	> 05/11/2005 05:36 PM
> > 	>
> > 	>
> > 	>                To
> > 	> "Yalcinalp, Umit"
> > 	> <umit.yalcinalp@sap.com>
> > 	>                cc
> > 	> www-ws-desc@w3.org, www-ws-desc-request@w3.org
> > 	>           Subject
> > 	> Re: What is the
> > 	> purpose of #none?
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	> Umit,
> > 	>
> > 	> #none means the message is empty.
> > 	>
> > 	> Arthur Ryman,
> > 	> Rational Desktop Tools Development
> > 	>
> > 	> phone: +1-905-413-3077, TL 969-3077
> > 	> assistant: +1-905-413-2411, TL 969-2411
> > 	> fax: +1-905-413-4920, TL 969-4920
> > 	> mobile: +1-416-939-5063, text: 4169395063@fido.ca
> > 	> intranet: http://labweb.torolab.ibm.com/DRY6/
> > 	>
> > 	> "Yalcinalp, Umit"
> > 	> <umit.yalcinalp@sap.com>
> > 	> Sent by:
> > 	> www-ws-desc-request@w3.org
> > 	>
> > 	> 05/10/2005 09:45 PM
> > 	>
> > 	>
> > 	>
> > 	>                To
> > 	> <www-ws-desc@w3.org>
> > 	>                cc
> > 	>
> > 	>           Subject
> > 	> What is the
> > 	> purpose of #none?
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	> While I was reading the primer on service references, I came
> > across an
> > 	> interesting example in our primer. Apart from the fact that
> > primer
> > 	> talks about both Service and Endpoint references in Section
> > 7.9 and
> > 	> the reader is baffled about the differences here (endpoint
> > references
> > 	> are not introduced anywhere before) which is not the purpose
> > of this
> > 	> email,  example 7.14 is particularly interesting:
> > 	>
> > 	> <interface name="reservationDetailsInterface">
> > 	>   <operation name="retrieve"
> > 	> pattern="http://www.w3.org/2005/05/wsdl/in-out">
> > 	>        <input messageLabel="In" element="#none" />
> > 	>        <output messageLabel="Out"
> > 	> element="wdetails:reservationDetails" />
> > 	>  </operation>
> > 	> ...
> > 	> Check out the binding:
> > 	> <binding name="reservationDetailsSOAPBinding"
> > 	>             interface="tns:reservationDetailsInterface"
> > 	>             type="http://www.w3.org/2005/05/wsdl/soap"
> > 	>
> > wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP">
> > 	>
> > 	>             <operation ref="tns:retrieve"
> > 	> wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-
> > response" />
> > 	>          <operation ref="tns:update"
> > 	> wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-
> > response" />
> > 	> </binding>
> > 	>
> > 	> The intent here appears to be that a "retrieve" action will
> > cause
> > 	> reservation details to be sent to the caller when an empty
> > message is
> > 	> received. According to our spec, this is perfectly legitimate,
> > because
> > 	> we allow empty messages, hence empty SOAP bodies to act as a
> > trigger
> > 	> for the response message. This pattern here seems like a poor
> > man's
> > 	> SOAP response MEP,  which is modeled on top of SOAP request-
> > response
> > 	> MEP by passing the request message using WSDL request-response
> > MEP.
> > 	> Aren't we confused yet ? ;-)
> > 	>
> > 	> I am wondering why we wanted to allow #none. It seems the
> > whole
> > 	> purpose is to paypass a designed MEP to masquarade as another.
> > Can
> > 	> someone refresh my memory why we wanted to allow element
> > content to be
> > 	> empty again? (As a side comment, can anyone truly believe that
> > this
> > 	> kind of a WSDL definition will be usable by a service provider
> > without
> > 	> a mandatory SOAP Action header  if many pseudo-output MEPs
> > similar to
> > 	> the one quoted above were to be assigned to the same endpoint?
> > )
> > 	>
> > 	> Do we really want to promote this usecase in the Primer?
> > 	>
> > 	> End-Of-Rant,
> > 	>
> > 	> --umit
> > 	>
> > 
> > 
> > 
> > 
> 
> 
> 
Received on Thursday, 12 May 2005 22:40:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:36 GMT