WS-Business Activity Specification doesnt clearly states who should govern the activity based on what rules. The specification provides the state changes and the message exchange pattern. However, unlike in Atomic Transactions, It doesnt mention how the voting should take place.
As an example, in Atomic transactions it is All or None. i.e for the transaction to be committed, all the participant should vote with either Committed, or Readonly. However, Business Activities are more abstract. It doesnt mention the set of rules which governs the final out come of the activity.
Lets consider a simple scenario as follows.
- Five participants register for ParticipantCompletion
- Three send Completed, One send Fault and the other one sends Exit to the Coordinator.
- What should the Coordinator do? Should he send Close or Compensate
to those who have Completed?
Also following problems arise
- How to distinguish an Initiator from other participants? In AT the Initiator register for the Completion protocol. Is there an equivalent in BA?
- When a participant register for CoordinatorCompletion, the coordinator should inform the participant whether to Complete. Based on what does the Coordinator take this decision?
- What is MixedOutcome? Does that mean participants will receive different outcomes from the Coordinator? In that case, what is the outcome for the Initiator?
Im currently implementing a BA Coordinator and would like to hear any ideas/opinions on this. Can these rules be different from implementation to implementation? If that is the case, what is the level of flexibility expected? Can the rules be defined per activity basis? or is it per implementation? How does the participant know the set of rules by which the activity is governed? Highly appreciate your feedback on this. Thanks.
Regards,
Sanjaya Amarasekera
Get your email and more, right on the new Yahoo.com
