- From: Burdett, David <david.burdett@commerceone.com>
- Date: Tue, 20 May 2003 10:11:50 -0700
- To: "'Yaron Y. Goland'" <ygoland@bea.com>, Jean-Jacques Dubray <jjd@eigner.com>, "'WS Chor Public'" <public-ws-chor@w3.org>
- Message-ID: <C1E0143CD365A445A4417083BF6F42CC053D1AFC@C1plenaexm07.commerceone.com>
I think that to make run-time validation work you need three identifiers in the headers of any message that is received which are: 1. The Choreography Definition identifier 2. The Interaction (i.e. message exchange) within the Choreography Definition, and 3. A Choreography Instance identifier You can then: 1. Map the Interaction to a specific Message format although in reality you are more likely to say that a particular Message format can support various interactions in various choreographies 2. Map states and conditions in the choreography to data in specific Message Formats. As a result you could automatically validate that an individual message received conformed to the rules of the choreography. Thoughts? David -----Original Message----- From: Yaron Y. Goland [mailto:ygoland@bea.com] Sent: Monday, May 19, 2003 11:39 AM To: Jean-Jacques Dubray; 'WS Chor Public' Subject: RE: Use Cases & Requirements If I read your letter correctly then the validation you discuss is the same as the "Run Time Validation" requirement I include in my paper. This requirement means that one can confirm in an automated fashion that the message choreography visible to a particular participant [1] is allowable by the definition of the cDl. The non-executable requirement [2] is intended to specify that the logic used to decide between two mutually exclusive paths in the cDL will be written in prose not in an executable form. As discussed at length in section 4.3 of the paper and also touched upon in sections 4.1 and 4.2, the removal of executable decision logic massively simplifies the cDL and allows it to focus on the choreography and thus enhance interoperability. Those seeking executable decision logic need to solve a number of difficult problems, including defining a programming language and execution environment, a problem the BPEL TC has already taken on. By way of comparison [3] a pair of cPls might say something like: Participant A's cPl: Receive(B, Order) If (Order.amount > 10000) OrderResponse.Status = "Wait 24 hours for approval" Send(B, OrderReponse) Receive(B, ACK) Else OrderResponse.Status = "Approved" Participant B's cPl: If (items > 30) Order.amount = 15934; else Order.amount = 20; Send(A, Order) Receive(A, OrderResponse) If (OrderResponse.Status = "Wait 24 hours for approval") Send(A, Ack) A visual representation of the cDl might look something like: [Start State/B] | Order | \_/ [Received Order/A] | OrderResponse | \_/ [Received Order Response/B] | *--->[END] | ACK (B sends Acks to confirm A's request to delay approval) | \_/ [Received Ack/A] | \_/ [END] Notice that upon entering the Received Order Response state there are two mutually exclusive paths that can be selected. Either the message choreography can end or an Ack message can be sent to participant A. The cPls explain exactly how this choice is made while the cDl only shows that a choice must be made but doesn't specify how beyond a text note. Yaron [1] I assume that by default any choreography is distributed such that each participant can only validate their own behavior. E.g. they know what messages they have sent and received and can validate those messages against the choreography. This doesn't preclude the existence of a central coordinator who could, in real time, detect every message sent by every participant and so validate the entire global system's state but the existence of this central coordinator is neither assumed nor required. [2] Originally the 'non-executable' requirement was called the 'declarative' requirement. Neither term particularly works. Hopefully in the official requirements we will find a better phrase. [3] Much thanks to Ricky Ho who pointed out to me that we really needed to write up the sort of cPl/cDl combined example I use here. The examples used here are inspired by his private communications with me. > -----Original Message----- > From: Jean-Jacques Dubray [mailto:jjd@eigner.com] > Sent: Saturday, May 17, 2003 11:38 AM > To: 'Yaron Y. Goland'; 'WS Chor Public' > Subject: RE: Use Cases & Requirements > > > Yaron: > > Thanks for taking the time to write this paper, I think it makes a very > important and clear distinction between CPL and CDL, which fit well with > Martin's definition of orchestration. > > I agree pretty much with everything you say, except for one point: you > are talking about "prose" and "non-executable logic". I strongly > disagree with that point. > > If it is true that as a global view, a CDL does not have an engine to > ensure its execution, one of the value of a machine processable CDL is > that each party can validate the choreography of messages based on rules > defined in a CDL. So for me it is a requirement that the "prose" you are > talking about be machine processable. > > Again, if you are a big organization, you are going to receive in the > order of 100,000 to 1,000,000 messages per day. Having a CDL that help > you validate whether or not you are supposed to receive any of these > messages before you start processing them is going to save a lot of code > within each application (not too mention that a given choreography could > involve multiple of your applications, which would compound the > problem). > > However there is catch when expressing this business logic. In order for > each participant to "know" the state of the choreography, this business > logic can only be expressed on the information being exchanged by any > two parties. For instance we could not have a transition "if I approved > your order" because the buyer has no way to know this information from > the supplier unless you specifically exchange a message containing this > information. This type of information becomes "prose". Interestingly > enough, the business logic of CPL is the prose of CDL. > > Cheers, > > Jean-Jacques Dubray____________________ > Chief Architect > Eigner Precision Lifecycle Management > 200 Fifth Avenue > Waltham, MA 02451 > 781-472-6317 > jjd@eigner.com > www.eigner.com > > > > >>-----Original Message----- > >>From: public-ws-chor-request@w3.org > [mailto:public-ws-chor-request@w3.org] > >>On Behalf Of Yaron Y. Goland > >>Sent: Freitag, 16. Mai 2003 21:20 > >>To: WS Chor Public > >>Subject: Use Cases & Requirements > >> > >> > >>I would like to submit the following use cases and requirements for > >>consideration by the working group - > >>http://lists.w3.org/Archives/Public/www-archive/2003May/att-0029/chor. > htm. > >> > >>Besides providing what I personally believe to be critical > requirements > >>for > >>the success of the working group I also think they help to outline > what I > >>believe to be the fundamental differences between what I think the W3C > >>Choreography WG should be doing and what the BPEL OASIS TC is doing. > Of > >>course all opinions on such differences are mine and mine alone, your > >>mileage may vary, objects in mirror are closer than they appear. > >> > >> Yaron > >
Received on Tuesday, 20 May 2003 13:12:03 UTC