|
3. Executable Choreography Framework
Fig. 1. Executable choreography framework stack Fig. 1 shows the different ECF modeling and implementation layers. The lower layer represents composite services that are composed using centralized workflow mechanisms, such as BPEL engines. Executable choreographies are realized by deploying composition and transformation units across different domains of control. ECF uses an Aspect-Oriented Programming (AOP) [1,2] language to weave composition logic at the level of the message processing engine. These units work together to carry out the global model of the choreography process. These composition elements should be traceable back to a global business process definition, which can be formally checked for correctness. A formal relationship between the global model and the executable composition elements needs therefore to be defined. Tough, formal treatment of the model is out of the scope of this paper. The upper layer represents the global contracts and business rules across and within domains of control. These contracts establish constraints on the choreography model and implementation. When deploying or refining a choreography, new relationships between control domains can be created. Administrative domains should be able to enforce constraints on those relationships, so that the choreography does not violate the mutual business rules of participants. Contracts between controllers take the form of a set of reactive rules. The contracts do not specify the specific ordering of messages; they are application independent. Those business rules imperatively need to be enforced at the level of the executable choreography process, to ensure safety of the participants. The treatment of inter-domain and cross-domain business rules is out of the scope of this paper. Tough, the paper discusses platform support for the enforcement of constraints on the composition. Next sections establish the relationship process analysis models, executable choreography elements and a choreography process meta-model. |