W3C home > Mailing lists > Public > www-ws-arch@w3.org > May 2003

Re: REST, uniformity and semantics

From: Francis McCabe <fgm@fla.fujitsu.com>
Date: Thu, 15 May 2003 07:30:55 -0700
Cc: www-ws-arch@w3.org
To: "Cutler, Roger (RogerCutler)" <RogerCutler@chevrontexaco.com>
Message-Id: <D6966FA4-86E1-11D7-801B-000393A3327C@fla.fujitsu.com>

Roger:
   I was elaborating a bit.

   What I do think is relevant to the WSA is (1) the key relationships 
of encodes and satisfies; and (2) we do need to account for REST. What 
I am proposing is that REST is really a semantic issue: the constraints 
imposed by REST represent a higher-level constraint than `messages have 
senders'

Frank

On Thursday, May 15, 2003, at 12:11  AM, Cutler, Roger (RogerCutler) 
wrote:

> I like this stuff, but is it germane to the WSA?  That's not an
> assertion, it is a question.
>
> -----Original Message-----
> From: Francis McCabe [mailto:fgm@fla.fujitsu.com]
> Sent: Wednesday, May 14, 2003 11:56 AM
> To: Cutler, Roger (RogerCutler)
> Cc: www-ws-arch@w3.org
> Subject: Re: REST, uniformity and semantics
>
>
> Roger:
>    I promise you that caching was far from my mind!!
>
>    BTW I like the term ACTION SOA.
>
>    I used an incredible amount of shorthand when I talked about INFORM
> etc. That is because I was trying to hint that there was more than one
> way of lifting from a described service network to a (words fail me
> here) useable service network (or at least one in which there is a
> greater amount of shared understanding.
>
>    I am not sure about UBL; I would need to do more digging.
>
>    The basic idea behind INFORM/REQUEST/PROMISE/DECLARE is that each
> message has essentially two parts: a `content' expression and a speech
> act that defines the force of the content.
>
>    A simple example:
>
>    Imagine that the message:
>
>
>    <invoice/>
>
>    stands for the statement `this is an invoice for the goods I sold 
> you
>
> yesterday'
>
>    Then
>
>    <inform><invoice/></inform>
>
>    means
>
>    "I am telling you that there is this invoice"
>
>    Whereas
>
>    <declare><invoice/></declare>
>
>    means
>
>    "This is my official invoice to you for goods that I sold to you"
>
>    and
>
>    <request><invoice/></request>
>
>    means "please give me your invoice" (The actual form of the content
> would probably be different for this case).
>
>    The PROMISE verb doesn't seem to apply to invoices, but it does 
> apply
>
> to signing and/or agreeing contracts.
>
>    I may be that the base set of verbs would have to be larger; but our
> experience suggests that a larger vocabulary can be formed by
> `macro-ing' these primitives together.
>
>    What is left unsaid here is that agreement/standardization is also
> needed on the form of the content structures too. That relates to some
> work on strong content languages that a few of my colleagues have been
> noodling over.
>
>
>    I don't want to go overboard on this whole thing. At the
> architectural level, I see a couple of major points:
>
> 1. We need to account properly for any additional interpretation of the
> messages that flow between services. This is a gap in the current
> proposal; and I think that it is pretty important. I would suggest the
> stratification as a way of architecturally accounting for this.
>
>    This includes REST; I.e., how to account for REST within the
> architecture.
>
> 2. The ACTION SOA model does hint at a higher-level view of Web
> services that could significantly enhance interoperability. By being
> able to account for it would prove the merit of the stratification
> approach.
>
> Frank
>
>
> On Wednesday, May 14, 2003, at 12:24  AM, Cutler, Roger (RogerCutler)
> wrote:
>
>> Frank, your Action SOA with INFORM, REQUEST, PROMISE, DECLARE is
>> interesting.  In the first place, I infer that your basic interest is
>> the possibility of providing some sort of base semantics for business
>> transactions.  That is, a small set of commonly understood terms that
>> everyone will recognise and can be used to build up more
>> industry-specific stuff.
>>
>> That seems like a good idea to me, but I have two immediate reactions:
>>
>> 1 - I am certainly not an expert in this, and certainly others on this
>
>> list are more expert, but it is my impression that most people would
>> expect the base semantics for business to be much larger.  Put another
>
>> way, it seems to me that if you could convincingly demonstrate that
>> such a small set of terms is adequate to base business semantics, I
>> think that would be quite interesting.
>>
>> 2 - Aren't the UBL people thinking about, or going to think about,
>> stuff
>> like this?
>>
>> Now, on a more immediate level, if you are suggesting using these
>> verbs in the same way as GET/POST etc in HTTP, possibly enhancing HTTP
>
>> -- I don't see the point.  Would it be so that one could cache one's 
>> acceptances of business offers, just in case one had a slow day in
>> business and wanted a few more offers accepted?  Or would it be so
>> that the details of business transactions would be visible at the
>> network router level?
>>
>> In fact, I think that most business messages are part of extended
>> conversations and are, by their nature, unique.  Not candidates for
>> caching.  And in my experience most business transactions are properly
>
>> visible only at the very ends of the communication chain.  Although
>> there are certainly some exceptions (automated access to catalogues
>> comes to mind), I don't think that the REST paradigm works very well
>> for business.
>>
>> -----Original Message-----
>> From: Francis McCabe [mailto:fgm@fla.fujitsu.com]
>> Sent: Monday, May 12, 2003 2:58 PM
>> To: www-ws-arch@w3.org
>> Subject: REST, uniformity and semantics
>>
>>
>>
>> This is a follow-up to a comment that I made in the last telcom. It
>> represents my personal understanding of the relationship between
>> REST/SOA etc.
>>
>> It is possible to stratify the space of Web services along the
>> following lines (going bottom-up):
>>
>> Level 0: Transport SOA.
>>
>> At this level we have notions of messages, transports, encodings (XML
>> etc), package formats etc. etc. The key aspect of a SOA is that
>> everything is defined in terms of the messages exchanged and not in
>> terms of any particular processing of those messages.
>>
>> What is particularly missing from this level is ANY commitment as to
>> the processing/understanding implied by sending or receiving a
>> message; all that you have is the text/DOM tree of the message itself.
>
>> (You can add types with no loss of generality.)
>>
>> Level 1: Open/Custom SOA
>>
>> The extra interpretation/commitment incorporated by the notion of an
>> Open or custom SOA is that it is possible for parties to describe --
>> using standard specs -- the processing/understanding entailed by
>> sending or receiving a message. This may be in the form of an API-like
>
>> model but does not have to be. Currently SOAP/WSDL go a long way to
>> permitting this kind of SOA.
>>
>> Level 2a: REST SOA
>>
>> The extra interpretation added here is that we restrict our language
>> to one that is appropriate for manipulating resources. This comes in
>> two
>> parts: a limited vocabulary (GET/PUT/POST/DELETE) and a particular
>> interpretation of the `payload' of a message (in particular, the
>> argument of a PUT and POST is the representation of a resource)
>>
>> A Level 2a SOA has some attractions in that it captures the world of
>> the Web pretty well; but requires some bending to deal with many (if
>> not most) real-world interactions between legal entities: namely
>> ACTION. This leads to:
>>
>> Level 2b: ACTION SOA
>>
>> (This is mythical, but demonstrates that there are many alternatives
>> to
>> REST)
>>
>> The extra interpretation added in ACTION SOA is that we restrict our
>> language to one that is appropriate for expressing actions between
>> legal entities; here I suggest INFORM, REQUEST, PROMISE, DECLARE as a
>> reasonable initial starting point. In addition, the `payload' of a
>> message takes the form of a fact or an action.
>>
>> The real point behind this message is that by taking this kind of
>> stratified view of the different levels of Web services it is clearer
>> (to me anyway) what the relationship between SOA, REST, Web services
>> etc. etc. is.
>>
>> I hope that this helps.
>>
>> Frank
>>
>>
>>
>
>
>
Received on Thursday, 15 May 2003 10:30:58 GMT

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