- 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