W3C home > Mailing lists > Public > www-ws-arch@w3.org > January 2004

RE: Section 1.6 and REST - Can we make this more clear and useful?

From: Newcomer, Eric <Eric.Newcomer@iona.com>
Date: Sat, 24 Jan 2004 06:42:22 -0500
Message-ID: <009AD9C866C5DE458E7EF528604A9F9C1F2C03@amereast-ems2.boston.amer.iona.com>
To: "Michael Champion" <mc@xegesis.org>, <www-ws-arch@w3.org>

I really think we should remove any text describing a REST style of Web services.  It's inconsistent with the definition of a Web service in the introduction.

I have no problem including some general positioning information, and perhaps even some compare and contrast information would be helpful.  However I would also caution us against including commentary in a descriptive spec, which should contain objective text as much as possible rather than opinion or perspective - and much of the REST vs Web services debate is based on a difference of opinion.  Meaning it's probably better to omit it than include it.  I realize the WG has agreed to include some text on the topic, so I don't expect that we will really get to consensus on removing it all, but let's try to keep it to a minimum and avoid any definition of a Web service as something based on REST.  It's not.

Eric





-----Original Message-----
From: www-ws-arch-request@w3.org [mailto:www-ws-arch-request@w3.org]On
Behalf Of Michael Champion
Sent: Friday, January 23, 2004 1:37 AM
To: www-ws-arch@w3.org
Subject: Section 1.6 and REST - Can we make this more clear and useful?



In fulfillment of my action item, initiated by Roger's  comments in 
http://lists.w3.org/Archives/Public/www-ws-arch/2004Jan/0144.html and 
some pushback on my assertion that the Web is an instance of an SOA:

Roger summarizes his thoughts as follows:

"The REST style, in my view, does not lend itself either to business
applications of the RPC style of Web services nor to automating via Web
services core business processes that involve complex document
exchanges. Both of these business applications benefit from the layers
of protocols that go beyond what is allowed in the REST architecture.
There may be, however, other business functions for which the REST
approach may be more appropriate. In particular, I think that there may
be a good case for using the REST style of Web services in circumstances
where a simple service is to be provided to a very large and possibly
diverse audience who are "on their own" how they use the service. "

Here's how I would summarize my thoughts at about this level of detail; 
  I'd appreciate some immediate pushback if this seems wrong and not 
just in need of more elaboration and justification:

The REST style lends itself to simple business services when a) the 
operations of the service correspond directly to the "CRUD" operations 
of the REST generic interface; b) when the semantics of the data being 
represented are well-defined and widely supported by software; and c) 
when HTTP is the only protocol of interest in the service environment.  
[1]  More complex services that use something analogous to "hyperlinks 
as the engine of application state" *may* be effectively developed 
using the REST style, but there are few real-world examples and this is 
at best a bleeding edge approach.  SOAP provides a framework for adding 
additional features at the infrastructure level -- such as reliable 
messaging across multiple network nodes or over different protocols, 
business-level transaction processing, orchestration/choreography of 
multi-part services, and security features such as identify management, 
encryption, and authorization -- that are not specifiable using the 
pure REST style. In SOAP and REST can be used in conjunction with one 
another, but again there are few real-world examples and tools 
supporting SOAP 1.2 and WSDL 2.0 that enable this in principle  have 
not yet been deployed.

To summarize, REST is an appropriate style for simple services deployed 
over the Web; SOAP adds more and more value as complexity increases 
because it provides a framework for technologies  built on SOAP that 
can add reliability and security at the infrastructure rather than 
application level.


[1] For example, consider an image storage/querying/manipulation 
service.  One could POST (or PUT) images in JPEG format and get back a 
URI identifying the stored resource; one could GET the URI of a known 
image to retrieve it, DELETE the URI of a known image, etc.  Additional 
services such as image scaling, rotation, and format conversion could 
be specified as additional parameters (in the URI or HTTP headers).  
Queries might be handled by a GET on a catalog resource, with URI 
parameters specifying the attributes for a match [numerous devilish 
details would have to be specified, of course, for a useful service.] 
  
Received on Saturday, 24 January 2004 06:42:54 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:25 GMT