W3C home > Mailing lists > Public > www-ws-arch@w3.org > August 2002

RE: Choreography and REST

From: Martin Chapman <martin.chapman@oracle.com>
Date: Tue, 13 Aug 2002 11:02:04 -0700
To: "'Paul Prescod'" <paul@prescod.net>, "'Christopher B Ferris'" <chrisfer@us.ibm.com>, <www-ws-arch@w3.org>
Message-ID: <005e01c242f3$88290130$ab8e1990@us.oracle.com>

See below

> -----Original Message-----
> From: www-ws-arch-request@w3.org 
> [mailto:www-ws-arch-request@w3.org] On Behalf Of Paul Prescod
> Sent: Monday, August 12, 2002 8:35 AM
> To: Christopher B Ferris; www-ws-arch@w3.org
> Subject: Re: Choreography and REST
> 
> 
<snip>
> 
> Further, I claim that CORBA does not have a choreography 
> problem. Good CORBA object design will enforce correct 
> choreography in an explicit, statically-checkable, 
> design-time-available manner. With good CORBA object design, 
> a standard Java or C# static type checker can prevent you 
> from calling messages in the wrong order, because 
> choreography is enforced by the structure of the data and 
> Java/C# type checkers enforce proper data structures.
> 
><snip>

Maybe I have a different definition of choreography, but CORBA (and COM
and c++ and java and c#) does have this problem. Given  the following:

Interface example {
    void a (in x:string);
    short b (inout y:short);
    boolean c(out temp:long);
};

How can anything know, and hence statically check, the correct
invocation order(s)? Aside from unparsable comments 
and documentation (if you're lucky), there is no extra information.
The fact that the corba community didn't address this problem doesn't
mean to say it doesn't exist.

What you need to do is augment interface definitions with extra
information.
Design by contract is one example, but also there is the excellent work
done by ANSA in the early 90s called  Path Expressions [1], which people
are only just re-inventing  (or is that re-discovering:)

Martin.

[1] http://www.ansa.co.uk/ANSATech/94/Primary/101001.pdf
Received on Tuesday, 13 August 2002 14:40:18 GMT

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