EasierCos is an implementation of a choreography engine. It aims at interpreting choreography processes and executing them in a SOA middleware. As for EasyBPEL that manages the WS-BPEL 2.0 layer, EasierCos manages the BPMN 2.0 layer (Choreography Modeling Conformance).
Both are based on the generic SOA process engine EasyVIPER.
EasierCos functionality
BPMN choreography: airport use case involving 5 partners.
EasierCos takes as input a BPMN (Choreography) process (figure above). It compiles it in order to generate an EasyVIPER process instance, that consists in an executable graph composed of behaviours dedicated to the choreography. Once started, a process instance subscribes to partners involved in the choreography relationships.
Indeed, in the context of a SOA middleware, as an ESB for instance, we can consider every partner - every service provider - is prone to be a notification producer. Notifications containing QoS and technical information can be sent if activated.
Then, the process instance waits for the different notifications it expects, and checks the several timestamps validity. In case of time out or not acceptable timestamps, it's the EasierCos turn to send alerts to higher level middleware tools, such as governance platform.
How does it work?
EasierCos is a top layer implementing a particular model (BPMN choreography) upon the generic EasyVIPER engine. The figure below shows the architecture of the EasierCos component.
EasierCos layer architecture: compilation and process definition registry.
The main job is done by EasyVIPER. Once compiled by EasierCos, EasyVIPER executes the choreography as an execution graph (exclusive and inclusive gateways have been intepreted as corresponding EasyVIPER behaviours at compilation time), into which nodes correspond to choreography tasks (see figure below).
Indeed, EasyVIPER provides main behaviours related to SOA process execution, such as Receiver, Sender, Loop, If,...
Furthermore, we can benefit from the fact it's an extensible library, for which new behaviours can be implemented. A new behaviour dedicated to the choreography is then implemented. This behaviour, called MEMB (for Message Exchange Monitoring Behaviour), is a WS-Notification consumer that previously subscribed on specific topics related to partners and that is able to check notifications validity.
EasyVIPER process instance corresponding to the choreography diagram.
If you want know how to use EasierCos library, please consult the list of How-tos.
If you have any questions, please use the [EasierCos contact form|Contact].