Loading ...
Sorry, an error occurred while loading the content.

2790RE: [rest-discuss] Groove Web Services

Expand Messages
  • Phil Eskelin
    Nov 5, 2002
    • 0 Attachment
      Mark Baker wrote:
      > Seairth Jacobs wrote:
      > > It is just as RESTful to create ones own set of verbs that
      > > actually provide the exact functionality needed.
      > No it isn't. You've been here long enough to know that Seairth!
      > 8-O With REST, you're constrained to using methods that you could
      > use on anything. So "CREATE" isn't a REST method, because I
      > don't know what it would mean to invoke that on a URI identifying
      > a stock quote.

      One of the big benefits that one should receive from taking a RESTful
      approach is purification and simplification of an otherwise ugly situation
      that will only get uglier. If Groove uses 'Create', then someone else will
      use 'myCreate', then someone else will use hungarian notiation with
      'urilstCreate', and then in a few years we circle back to the same recursive
      scope creep scenario that led to the creation of SOAP in the first place.
      People agreeing on HTTP and its verbs is a key success factor of REST.

      > This is a severe constraint on *form*, but does not in any way
      > constrain *function*. i.e. every problem has a solution with a
      > system built with this constraint in mind.

      I went back and read the entire article [1], written by Jon Udell at
      InfoWorld. I can't tell if my problem comes from what I perceive as a
      writer trying to sound smart, Groove trying to cash in on hype, or from
      those who created the notion of RESTful SOAP trying to start a riot.

      Udell says GWS is a textbook example of "RESTful SOAP" - is that good or
      bad? To elaborate on what that means, he references the SOAP 1.2 working
      draft, saying that URIs should be used as resource identifiers. DUH!! Then
      comes this paragraph:

      For example, the root of GWS is a SOAP service with an address
      like http://localhost:9080/GWS/Groove/1.0/Accounts. Since a
      Groove account is a container of identities, a Read operation
      on this resource produces an XML document that enumerates them.
      Each identity includes an element like
      /GWS/Groove/1.0/Spaces/grooveIdentity/123...xyz -- that is, the
      URI of the SOAP service that enumerates the shared spaces for
      that identity. Traversal of spaces, tools, and data proceeds
      in a similar fashion. It's all organized as a web of linked
      XML documents controlled by a handful of verbs such as Create,
      Read, Update, and Delete.

      First (if I was claiming to be RESTful), I would replace every instance of
      'SOAP service' with 'resource'. Then, I would replace 'Create, Read,
      Update, and Delete' with 'PUT, GET, POST, and DELETE'. To clarify my point,
      I might reword the last sentence to say "...web of linked resources accessed
      by a handful of verbs that allow you to create, read, update, and delete
      them." I would then elaborate on the connection between a RESTful style and
      HTTP and make sure I reference Fielding's thesis.


      1. http://www.infoworld.com/articles/pl/xml/02/11/04/021104plgroove.xml

      This e-mail may contain confidential and/or privileged information. If you
      are not the intended recipient (or have received this e-mail in error)
      please notify the sender immediately and destroy this e-mail. Any
      unauthorized copying, disclosure or distribution of the material in this
      e-mail is strictly forbidden. TradeWeb reserves the right to monitor all
      e-mail communications through its networks.
    • Show all 14 messages in this topic