RE: Issue 64 resolution: HTTP operations as WSDL operation names

AIUI these operations can be bound or not bound to 
other protocols in the same way as it might not be 
possible to implement some SOAP based MEPs across all bindings
e.g. out-in over HTTP or RPC in a protocol with no return path.

Paul


-----Original Message-----
From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
Behalf Of Amelia A Lewis
Sent: 22 April 2004 14:56
To: Roberto Chinnici
Cc: dorchard@bea.com; www-ws-desc@w3.org
Subject: Re: Issue 64 resolution: HTTP operations as WSDL operation
names



I knew that this made me uncomfortable, but couldn't think why.

Roberto has done a nice job of summing up problems, I think.  I would want
to see these issues addressed (can these methods be bound to other
protocols?  can one bind a get to a put?) before moving this proposal
forward.

Amy!
On Wed, 21 Apr 2004 17:13:14 -0700
Roberto Chinnici <Roberto.Chinnici@Sun.COM> wrote:

> 
> I'm not sure what concrete problem is addressed by this proposal (and
> yes, I've read issue 64).
> 
> In what sense is the operation called QName("http://example.org/HTTP", 
> GET) *the* HTTP GET "operation" (= method, I presume)? Certainly I'm
> free to bind it in a completely HTTP-free way, say to SOAP/SMTP. What
> does it mean in that case? And what if I bound it to an http:operation
> with method="PUT"? Or is the REST:GET operation what people are really
> asking for?
> 
> And wouldn't the hypothetical user of the wsdl:HTTP interface want to
> restrict the input and output messages? E.g.
> 
>       <wsdl:interface name="StockQuotes" extends="wsdl:http">
>          <wsdl:operation name="GET">
>              <wsdl:input element="myns:something"/>
>              <wsdl:output element="myns:somethingElse"/>
>          </wsdl:operation>
>       </wsdl:interface>
> 
> I see a big, slippery slope on the horizon. In this case, I'd rather see
> a proposal that deals with the more complete functionality than vote it
> in piecemeal over the next several weeks.
> 
> Additionally, I'm not too confortable introducing the concept of a
> binding extending another binding. It seems to raise more issues
> than it solves. Moreover, if it's really needed, it should find its
> way in Part 1, shouldn't it?
> 
> Roberto
> 
> 
> David Orchard wrote:
> > Proposal: WSDL 2.0 defines an interface consisting of HTTP operations,
> > WSDL interface operations can use the HTTP operation QNames, a
> > definition of an HTTP binding, and WSDL binding operations can use the
> > HTTP binding.
> > 
> > The discrete items proposed:
> > 1. A WSDL 2.0 interface consisting of the HTTP operations.
> > 2. WSDL interface operations extends attribute may use the WSDL 2.0
> > HTTP interface qname. 3. HTTP Binding Operations contain an optional
> > location attribute.  If set, this is the default URI for any operation
> > bindings done in the binding operations.   This attribute is in soap
> > 1.2 support proposed resolution. 4. HTTP Binding Operations contain an
> > optional interface attribute.  This indicates that the referenced
> > interface is used in it's entirety.  Each operation in the interface
> > is bound to HTTP according to the operation qname in the referenced
> > interface.  The binding is that the local name portion of the QName is
> > mapped to the HTTP Method.  This is very similar to the interface
> > attribute in SOAP 1.2 web method support. 5. HTTP Binding Operations
> > contain an optional extends attribute references a binding.  Typically
> > this will allow the binding to define the location of the service.
> > 
> > This is a logical extension of a description provided by Jonathan
> > Marsh [1]
> > 
> > There are 2 WSDL definitions following.  The first is the WSDL
> > definitions for HTTP operations.  The 2nd WSDL definitions are sample
> > definitions using the proposed interface operation and binding
> > operation constructs.
> > 
> > WSDL definition of HTTP operations
> > ========
> > 
> > <wsdl:definitions 
> >     targetNamespace="http://example.org/HTTP" 
> >     xmlns:http="http://example.org/HTTP" 
> >     xmlns:wsdl="http://www.w3.org/2004/03/wsdl" 
> >     
> >     <wsdl:interface name="HTTP">
> >         <wsdl:operation name="GET">
> >             <wsdl:input element="#any"/>
> >             <wsdl:output element="#any"/>
> >         </wsdl:operation>
> >                 
> >         <wsdl:operation name="POST">
> >             <wsdl:input element="#any"/>
> >             <wsdl:output element="#any"/>
> >         </wsdl:operation>
> > 
> >         <wsdl:operation name="PUT">
> >             <wsdl:input element="#any"/>
> >             <wsdl:output element="#any"/>
> >         </wsdl:operation>
> >                 
> >         <wsdl:operation name="DELETE">
> >             <wsdl:input element="#any"/>
> >             <wsdl:output element="#any"/>
> >         </wsdl:operation>
> >     </wsdl:interface>
> > 
> >     ...
> > 
> >     <wsdl:binding name="http:HTTP">
> >       <http:binding>
> >         <operation name="http:GET">
> >           <http:operation method="GET" />
> >         </operation>
> >         <operation name="http:POST">
> >           <http:operation method="POST" />
> >         </operation>
> >         <operation name="http:PUT">
> >           <http:operation method="PUT" />
> >         </operation>
> >         <operation name="http:DELETE">
> >           <http:operation method="DELETE" />
> >         </operation>
> >         ...
> >       </http:binding>
> >     </wsdl:binding>
> > </wsdl:definitions>
> > 
> > Sample third party WSDL definitions using the wsdl http operations and
> > binding directly.================
> > 
> > <!-- An application using HTTP directly should have a very simple wsdl
> > definitions -->
> >    <wsdl:definitions 
> >       xmlns:myns="http://example.org/mystuff"
> >       xmlns:wsdl="http://www.w3.org/2004/03/wsdl" 
> > 
> >     <wsdl:import href="wsdl:http"/>
> > 
> >      <!-- interface is just HTTP -->
> >      <wsdl:interface name="StockQuotes" extends="wsdl:http">
> >      </wsdl:interface>
> > 
> >     <wsdl:binding name="myns:http" extends="http:HTTP">
> > 	<!-- the binding provides a location for all the operations
> >       <http:binding location="..." interface="myns:StockQuotes"/>
> >     </wsdl:binding>
> > 
> >     <wsdl:binding name="myns:httpAlt">
> > 	<!-- the binding provides a location for all the operations
> >       <http:binding location="..." interface="myns:StockQuotes"/>
> >  	<operation name="http:GET">
> >           <http:operation method="GET" />
> >         </operation>
> >         <operation name="http:POST">
> >           <http:operation method="POST" />
> >         </operation>
> >         <operation name="http:PUT">
> >           <http:operation method="POST" />
> >         </operation>
> >     </wsdl:binding>
> > 
> >    </wsdl:definitions>
> > 
> > Cheers,
> > Dave 
> > [1] http://lists.w3.org/Archives/Public/www-ws-desc/2004Apr/0003.html
> 


-- 
Amelia A. Lewis
Architect/Principal Engineer
TIBCO/Extensibility, Inc.
alewis@tibco.com

Received on Thursday, 22 April 2004 11:21:44 UTC