- From: Amelia A Lewis <alewis@tibco.com>
- Date: Thu, 22 Apr 2004 09:56:02 -0400
- To: Roberto Chinnici <Roberto.Chinnici@Sun.COM>
- Cc: dorchard@bea.com, www-ws-desc@w3.org
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 10:43:53 UTC