Re: Routing and choreography

(moving a discussion from the private list to the public one)

On Wed, Aug 28, 2002 at 06:17:52PM -0400, Champion, Mike wrote:
> > -----Original Message-----
> > From: Mark Baker [mailto:distobj@acm.org]
> > Sent: Wednesday, August 28, 2002 5:29 PM
> > To: Martin Chapman
> > Cc: w3c-ws-arch@w3.org
> > Subject: Re: Routing and choreography
> > 
>  
> > "Routing is the specification or determination, at design time or
> > run time, of the next (or preceeding) intermediary or intermediaries
> > to which a message should be, or should have been, directed."
> 
> So, "routing" is about coordinating point-to-point messages to produce
> end-to-end messages,

If you replace "messages" with "contracts" there, yes.  I think that's
probably what you meant.

> and "choregraphy" is about coordinating end-to-end
> messages to produce operations in a business process?  

That, I'm not so sure about.

In the context of REST, there are two types of "control" (I'll try to
avoid using existing terms); control of application state via hypertext
links[1], and control of the message flow that constructs a hypertext
document that declares those links.

An example ...

Let's say we have a complex business process for ordering shoes.  The
general "flow" of the application state that comprises the process is
controlled by hypertext; first, you retrieve an order form which you
fill out, submit to the provided URI, which returns the result which
may include another link to an invoice.  Now let's say you want to
modify this flow, perhaps to decouple the immediate invoicing from the
order submission by introducing a "confirmation receipt" step.  This can
obviously be done by modifying the resource which declared the invoice
transition such that the new transition is to the receipt.  But another
way to do it is to use a specialized intermediary (a reverse proxy in
this case, as WS-Referral or HTTP's 305 response code enables) that
recognizes the output from the order processor, and basically intercepts
the invoice link and replaces it with a receipt link - and of course,
also updates the receipt to point to the invoice.

That example isn't the best one to explain the value of intermediaries,
but it's hopefully illustrative of how these two forms of "control"
relate.

 [1] http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0211

MB
-- 
Mark Baker, CTO, Idokorro Mobile (formerly Planetfred)
Ottawa, Ontario, CANADA.               distobj@acm.org
http://www.markbaker.ca        http://www.idokorro.com

Received on Wednesday, 28 August 2002 23:31:15 UTC