- From: Fletcher, Tony <Tony.Fletcher@choreology.com>
- Date: Mon, 28 Apr 2003 12:20:50 +0100
- To: <public-ws-chor@w3.org>, <public-ws-chor-comments@w3.org>
Dear Colleagues, I would like to propose some requirements coming out of this exchange. Note: replace the term 'entity' below with whatever term we agree for the 'thing' that is bound to (or implements a) role in a particular run of an instance of a choreography (examples role = seller; entity that provides that role in a particular run of a choreography = Amazon. 1) Each choreography instance should have a specific goal and should end when that goal is achieved (or a fatal error condition is encountered. 2) A Choreography starts with a minimum of two entities bound to specific roles. 3) Entities may be brought into the choreography (and bound to a specified role) at any point in the choreography as demanded or permitted by the choreography definition. 4) Subject to at least 2 roles with entities bound to them remaining, entities may leave the choreography (and thus be unbound from a specified role) at any point in the choreography as demanded or permitted by the choreography definition. 5) "Inactive" is different from "leaving" (or "unbound"). "Inactive" is to describe the "role" while "leaving" is to describe an entity (/participant). For example, once an order is placed and shipment arrange, all the interactions are between the role "buyer" and role "shipper". The role "seller" is "inactive" but not "unbound". On the other hand, the role "shipper" is very "active" even though the participant "Fedex" has already left that role (and been replaced by participant "UPS"). {Triggered by subsequent emails} 6) A Choreography instance specifies a finite and specified number of roles. (It does not permit new roles to be defined at runtime.) 7) A Choreography instance specifies whether just a single entity may be bound to a particular specified role, or a specified number sequentially, or an arbitrary number sequentially. It is for further study as to whether more than one entity can be bound to a specified role concurrently. Best Regards Tony A M Fletcher Cohesions 1.0 (TM) Business transaction management software for application coordination Choreology Ltd., 13 Austin Friars, London EC2N 2JX UK Tel: +44 (0) 20 76701787 Fax: +44 (0) 20 7670 1785 Mobile: +44 (0) 7801 948219 tony.fletcher@choreology.com (Home: amfletcher@iee.org) -----Original Message----- From: public-ws-chor-request@w3.org [mailto:public-ws-chor-request@w3.org] On Behalf Of Ricky Ho Sent: 18 April 2003 05:34 To: Assaf Arkin Cc: public-ws-chor@w3.org Subject: Re: Change of participants Assaf, thanks for feedback ! My comments embedded. At 01:40 PM 4/17/2003 -0700, Assaf Arkin wrote: >First, can we view it in a more generic sense as a conversation where >participants can join and leave? We certainly can take this more generic view. But I try to explore whether certain roles (e.g. initiator) has some distinct behavior, although it is not very clear to me at this moment. >Second, can we make a distinction between roles and participants. Roles >are not bound - they should be defined as part of the choreography. A >seller is always a seller. Participants are bound and they could >change. It could be Amazon today and CDNow tomorrow. I mean the same thing as you, maybe just the terminology difference. "Role" is like a named variable and "Participant" is like a value. Binding is like an assigning a value to a variable. (e.g. seller = "Amazon") >For the choreography to be defined there need to be at least two roles >otherwise no one is communicating. No value for services talking to >themselves ;-) Of course, but I think the question is whether these two roles need to be bound at the creation of the choreography instance, or whether the second role can be bound one day later. And my vote is the former. >For the choreography to start you need one participant to be bound to >one role, otherwise nothing will happen. Everything else is optional. This one participant must be the initiator who send the first message. But to whom he sends the message... Isn't the participant who receive the message also need to bind to another role ? Then there must be at least two roles being bound when the choreography start. >At some point a participant for some role may have no further >contribution to the choreography, but the choreography must progress. >At this point do we force the choreography to stop because a >participant has no contribution to make? Do we force the participant to >send "I am alive, I have nothing to say, but I am alive" messages ? "Inactive" is different from "leaving" (or "unbound"). "Inactive" is to describe the "role" while "leaving" is to describe a participant. For example, once the order is place and shipment arrange. All the interactions are between the role "buyer" and role "shipper". The role "seller" is "inactive" but not "unbound". On the other hand, the role "shipper" is very "active" even though the participant "Fedex" has already left that role (and replaced by participant "UPS"). >Can you explain the value that these restrictions bring to the >definition of the choreography? Back to the Amazon selling use case, should Amazon define each online transaction as one choreography instance ? or should Amazon define a "RunTheBusiness" choreography which has only one instance running for many many years ? I think this restriction may help to limit the life span of a choreography. And this reflects most real life scenarios. When a buyer switch to a different seller, he is starting a new conversation rather than using the existing conversation. Can you give me a real life example where changing the initial two roles doesn't start a new conversation ? A participant is NOT equivalent to a web service endpoint. Changing an endpoint is not the same as a role rebind. E.g. Amazon can change its endpoint address and pass the endpoint reference around to other participants (somewhat like passing channel in mobile process calculus), but this is NOT a role rebind. But Amazon may appoint Fedex as the shipper and send the endpoint of Fedex to the buyer. This is a role binding. Rgds, Ricky >arkin > > >Ricky Ho wrote: > >> >>For point 2a, is this related to multi-party choreography ? I can't >>imagine a use case of participant change in a bi-party choreography. >> >>In multi-party choreography, we need to look into the constraints of >>such changes. For example, in a buyer/seller/shipper choreography, I >>see "changing a shipper" can still be the same choreography instance. >>But I have a hard time to understand if the "seller" can be changed, even >>harder if the "buyer" is changed. >> >>So I'm thinking a stricter one ... >>1) For a choreography to start, there needs to be at least two roles >>being binded. >>2) These two initial role binding cannot be changed >> >>as well as a looser one ... >>1) For a choreography to start, there needs to be at least one role >>(the >>initiator) being binded. >>2) The initiator role binding cannot be changed. >> >>Comments ? >> >>Rgds, ricky >> >>At 12:04 PM 4/17/2003 -0700, Martin Chapman wrote: >> >>>As per my action point here is a list of proposed requirements >>>extracted from the minutes of the tues 8 April con call. >>> >>>1. A Choreography should be independent of message formats >>> >>>2. A Choreography may have run time changes: >>> a. the actual participants can vary >>> b. the actual choreography can vary [ed: I think we ruled this >>>out but have listed it for completeness] >>> >>>3. It should be possible to query the state of a Choreography >>> >>>4. Error/fault handling and compensation features need to be able to >>>be expressed in the language. >>> >>>5. Choreographies should be composable (into a hierarchy) >>> >>> >>>Martin. >>> >>>_________________________________________________________________ >>>Martin Chapman 500 Oracle Parkway >>>Consulting Member of Technical Staff Ms 4op990 >>>Oracle Redwood Shores, >>>P: +1 650 506 6941 CA 94065 >>>e: martin.chapman@oracle.com USA > > >-- >"Those who can, do; those who can't, make screenshots" > >---------------------------------------------------------------------- >Assaf Arkin arkin@intalio.com >Intalio Inc. www.intalio.com >The Business Process Management Company (650) 577 4700 > > >This message is intended only for the use of the Addressee and may >contain information that is PRIVILEGED and CONFIDENTIAL. If you are not >the intended recipient, dissemination of this communication is >prohibited. If you have received this communication in error, please >erase all copies of the message and its attachments and notify us >immediately. > > >
Received on Monday, 28 April 2003 07:21:16 UTC