- From: Monica J. Martin <monica.martin@sun.com>
- Date: Tue, 25 Mar 2003 10:15:41 -0700
- To: Ricky Ho <riho@cisco.com>
- CC: "Cummins, Fred A" <fred.cummins@eds.com>, public-ws-chor@w3.org
- Message-ID: <3E808EBD.DA83D77B@sun.com>
Two points: 1) choreography and state occurs at different levels for processes and objects 2) Interaction between an internal process/application can go both ways. The external state may be dependent on an internal response. Example, in B2B, you receive a message with payload. Check for well-formedness - handoff to parser to check - valid - handoff to external view where an acknowledgement is generated and sent. Thanks. Ricky Ho wrote: > At 01:37 PM 3/21/2003 -0600, Cummins, Fred A wrote: > >> I believe the concerns about variation in message content and >> meaning can >> be addressed by a clear definition of scope of the choreography >> specification. >> The mechanisms of transport and reliable delivery should be >> abstracted out >> of the choreography, as should the message envelope/packaging. >> Furthermore, >> the determinination of the validity and meaning of a message should >> be >> performed by the participant's internal business logic/process that >> is also >> abstracted out of the choreography specification. Let me explain. > > > +1 > > >> >> Each participant has a public state where possible states and state >> transitions >> are defined in the choreography. The public state only changes as a >> result of >> the receipt or sending of a message. > > > Not necessary. The "public state" can change after a timeout-period. > E.g. If you don't accept my offer in 2 hours, my offer is > automatically invalid. > > >> >> When a participant sends a message, it's public state is changed to >> a state >> that reflects the possible responses expected. > > > I think there will be different levels of choreography. We can have > high level business choreography (e.g. sending a PO) or low level one > (e.g. RM handshaking etc.) This one you describe can be sitting at > the middle level (e.g. MEP). I think choreography should be capable > to describe TCP handshaking, but lets focus at business level > choreography. > > > >> When a response is received, >> the message content is not determined within the scope of the >> choreography >> specification, but is delegated to the internal process/application >> to which >> the response is directed. The only immediate change to the public >> state >> may be to reflect that the internal process is busy processing the >> input. When >> the internal process determines the validity and meaning of the >> input, it >> formulates an appropriate response (as constrained by the valid >> state transitions >> from the current public state), it sends the response and it causes >> the public >> state to change accordingly. >> >> Consequently, while the public states and state transitions, and >> message >> semantics are referenced by the choreography, the interpretation of >> the message >> content and the determination of the corresponding public state >> transition >> are accomplised within the internal process/application, and need >> not be >> specified in the choreography. > > > It really depends on whether the decision criteria is a private one or > a contractual binding. > Yes ! The private decision shouldn't be defined in the choreography. > But the public, "mutually agree-upon" decision should be defined in > the choreography. E.g. The order will be rejected if the amount is > over 500K and doesn't have a valid signature. > > >> >> It may be useful to indicate the "normal" state transitions expected >> for each >> message input or output in order to focus on the performance of the >> exchange, >> but the choreography should express all valid exchanges where the >> messages >> are expected to be meaningful, whether or not they represent a >> successful >> business transaction. > > > I agree ! But the level of message exchange details depends on the > level of choreography you want to express. E.g. If I'm expressing a > business level choreography about order processing, I probably won't > specify the underlying RM ACK, RM retry message exchange. > > >> >> Where faults occur in the communication, these must be communicated >> to >> the internal applications for subsequent action. The choreography >> should be >> able to express possible continuation (e.g., retry, re-connect) of >> the exchange >> in spite of faults or delays. A time-out would be similar to the >> receipt of a bad >> message. It is probably useful to specify the time-out period in >> the >> choreography so there is an understanding of how long a participant >> will wait >> for a response. A time-out might be treated differently from a bad >> message, >> but the determination of the resulting public state transition >> should probably still be >> delegated to the internal process/application. > > > I'm not sure about the last statement. Because public state > represents a "consensus" between collaborating parties, I don't think > the internal process of one party can unilaterally control the public > state transition. I think public state transition is a co-ordination > handshaking. Lets look at the following scenarios, assuming the > current public state is S1 > > 1) PartyA propose moving to S2. The contract says PartyB don't have > any choice. So PartyA move to S2 after sending the proposal message. > 2) The contract say PartyB doesn't have to agree. When she disagree, > the contract say the public state will be staying at the original > state (ie: S1). > 3) Alternatively, when PartyB disagree, the contract say the the > public state will be move to another state S3 > > Rgds, Ricky > > >> >> So it doesn't matter to the choreography how the message is >> communicated >> nor how it is packaged or formatted. The choreography only deals >> with the >> semantics of the message (i.e., the business intent of the message, >> such >> as new order, acknowledgement, rejection, counter-offer) and the >> possible >> state transitions that will be selected by the internal >> process/application. >> >> Fred Cummins >> EDS >
Received on Tuesday, 25 March 2003 12:10:45 UTC