- 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>
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 UTC