Workflow engine documentation



The R-IO Suite workflow engine, called WORMS (for WOrkflow engine for R-io suite Mega System) is developed for the execution of processes, that can be crisis management processes, supply chain processes, etc.

Thus it has to be generic and able to be tuned according to business specific characteritics.

It takes as input a model (GJaxbGenericModel) containing a process (for instance the figure 1. top). By default, this model has tasks, edges and gateways, and is then close to the BPMN format (at the display level). However,it is extended with specific concepts coming from supply chain and crisis management points of view, such as
risks, opportunities, strategies, that lead to enrich the original model with optional edges and tasks (see the core meta model (TODO LINK) to obtain more information).

The model is compiled into a workflow (see figure1. bottom) that can be then executed. Tasks become nodes carrying a behaviour (process/scope behaviour, conditional behaviour, fork/join behaviour) and edges between tasks become transitions which are crossed by executions. 

One execution is created at the beginning, for each start task found in the model. This main execution will be the top parent of other executions that will be created when parallel flows, forks will occur.

The process is considered as a scope node (i.e. with its variables) for which a main transition is attached as the first incoming transition The main execution is attached to this transition and the execution of the process starts.

The behaviour of the process is to attach to the execution the first transition that leads to the start node.

Then the flow is either a sequence flow and the execution crosses the transitions in sequence, either it is a parallel flow and then the execution is suspended on the fork and children executions are created for each branch (see transitions 2 and 5).