From BPEL to SAL And Back: a Tool Demo on Back-Annotation with VIATRA2

Authors: Ábel Hegedüs, István Ráth, Dániel Varró

In the proposed SEFM Tool demo we proposed the presentation of an end-to-end back-annotation tool including an execution trace metamodel and a technique for replaying a simulation run according to the persisted execution trace model.1

Implementation details

Here, some further details along with screenshots of the tool are presented. The tool is implemented in Java and the VIATRA2 model transformation framework.

The execution trace models are stored in the model space of the VIATRA2 framework along with the trace manipulator transformation. The framework can be accessed from the Eclipse environment through graphical user interface and through native Java code as well. Our tool uses a model controller which invokes the VIATRA2 framework and assembles the parameters for the execution trace manipulation transformation.

The tool includes an animation controller with a graphical interface and underlying program code. Here, the high-level trace manipulation operators are visible as buttons of the graphical view. We used execution traces of BPEL business processes and extended the Eclipse BPEL Designer to animate the processes. Click on the images to view the full sized version.

The execution trace controller graphical view

The graphical view can be used to load an existing execution trace model, navigate in the trace forwards and backwards. It is possible to reset the trace to the beginning and enable fast stepping (for jumping through 5 steps at a time instead of one). Finally, continuous animation can be started and stopped.

Trace controller

Trace controller view

Note that the controller works by invoking the underlying model transformation framework and the model space changes during the animation. The model space can be saved for in a separate file so the models may be examined with the VIATRA2 graphical user interface or an earlier animation can be resumed.

The business process execution animation

After the execution trace is loaded, the business process animation is set in the initial state. The "Step Forward" button can be used for navigating forwards in the trace and the "Step back" button becomes active if there is an earlier step.

Animation Initial State

Animation Initial State

Animation Middle State

Animation Middle State

Fast stepping

With the "Fast stepping" button enabled, longer execution traces can be easier navigated as the "Step Forward" and "Step Backward" functions move 5 steps in the trace instead of one.

Fast stepping - Step 0

Fast stepping - Step 0

Fast stepping - Step 5

Fast stepping - Step 5

Fast stepping - Step 10

Fast stepping - Step 10

Continuous animation

Instead of clicking on the "Step Forward" button over and over again, the execution can be animated continuously with our implementation. The animation steps forward in the trace with a given time interval as long as the trace lasts. Currently, the animation keeps playing as long as it remains enabled, starting from the beginning after the trace is finished.

Continuous animation

Continuous animation

The execution trace controller code fragment

The below code fragment is from the implementation of the trace controller view. The "modelC" is the reference to the model controller. The return value signals whether the trace had another step or if the trace is ended. This is required fto correctly display the current step index.

Animation controller

Animation controller class

Transformation framework

The VIATRA2 model space can be viewed using the user interface of the model transformation framework as well. The execution trace and the dynamic model are both visible in the tree structure of the model space.

Model space

Model space

The trace manipulation transformation contains the required graph patterns and transformation rules for navigating through trace models and synchronozing the dynamic model with the current state of the trace. Here, a fragment from this transformation is shown which handles the first part of forward stepping (searching for the current step in the trace).

Model transformation fragment

Model transformation fragment

The complete implementation and any related details are available on request. Please do not hesitate to ask.

Footnotes:

  1. This work was partially supported by the SENSORIA (IST-3-016004) European project and the CertiMoT project.