RE: What is the purpose of #none?

 

> -----Original Message-----
> From: Jonathan Marsh [mailto:jmarsh@microsoft.com] 
> Sent: Thursday, May 12, 2005 3:02 PM
> 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.
> 

I think the example looks strange when you don't know anything about the
binding, or you are designing your description at the abstract level
only. What does it mean to send an empty message? It does not make sense
unless you take the protocol/binding into the picture. This is why I
wanted to disambiguate by looking at the abstract layer of WSDL only. 

I came to the conclusion that perhaps we have not achieved the
protocol/binding abstraction by removing the message construct
completely.  This is because #none marker is only useful when one wants
to use a protocol headers to convey information. This is typically done
to masquarade a specific MEP like another, because the message is
"missing", but the message exchange is used to send other stuff via
protocol headers, etc. Therefore, the construct is useful when you
already have a binding in mind. There is a bit of bleeding between
abstract and binding, but I can live with that. When life gives you
lemons, you explain it in the primer . :-)


> It doesn't seem to me that the primer is promoting something that goes
> against our current idea of best practice.

I am saying that it is not clear what that best practice is so that
users can have an idea when to use #none, #any in the primer. (This is
not a specific topic for service references). I suggest we state it.
Section 5.4.1 needs more text and justification. 

I am making a concrete suggestion to: 

--  we expand Section 5.4.1 in the primer. It is just requoting the spec
on element content and does not provide guidance when to use it.  More
specific examples on where these values can be used or put this into the
advance section independent of the example on service references. 

-- We simplify the service reference example without this construct so
it is addressed on its own section. There are more suggestions I have on
service references, but it will wait until another email :-)

Consider this an issue on the primer content that we can address
constructively and add more text.  

Thanks.

--umit



> 
> > -----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 Saturday, 14 May 2005 00:43:01 UTC