RE: What is the purpose of #none?

Umit,

My understanding is that (A) is for request-response operations, even if 
the request is empty, whereas (B) is for notification operations, e.g. 
telling me a stock price has changed or my plane is cancelled.

I think the out-only with #none is also valid, e.g. "You have new mail". 
The message tells me a particular event occurred.

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/12/2005 01:20 PM

To
Arthur Ryman/Toronto/IBM@IBMCA, "Sanjiva Weerawarana" 
<sanjiva@opensource.lk>
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 Friday, 13 May 2005 15:46:10 UTC