ADOxxWEB Simulation

DETAILS: ADOxxWEB Simulation

( Details  Use  -  Extend )

The ADOxxWEB Simulation provides a fast and extendible service able to simulate business process executions. The service is provided through a REST interface that take as input the model to simulate and some simulation parameters and return an XML with simulation results. The service is focused on business process models but is flexible enough to be adapted and to simulate any kind of models. The Simulation service provide also an asynchronous html/javascript client in order to use and test the service without integrate it in a tool.


How does it work

The service internally use a Petri Net structure in order to represent the model to simulate. The semantic of the simulation, in this way, rely on the Petri Net strong formalism. In case of Business Process models, the simulation use state-of-the-art mapping rules in order to import the model as a Petri Net. This import phase can also be skipped, providing to the simulator directly a Petri Net model in PNML standard format. This give the possibility to simulate any kind of model that can be expressed as a Petri Net, also generated by external systems.

The services expose REST APIs in order to be easily integrated in every system. Examples of such integration have been provided in ADO Script format for ADOxx and in MFB template for Adonis NP.

The Simulation service provide also an asynchronous html/javascript client in order to use and test the service without integrate it in a tool.


Features and Functionality

The simulation service expose the following characteristics:

  • Automatic models identification:

The simulation service is able to automatically recognize the following xml formats in which a model can be provided: BPMN2 OMG, ADOxx Xml, Adonis Light Xml and PNML. When the BPMN2 is provided the model is converted to a petri net using state of the art mapping rules. In cases of ADOxx and ADO NP xml the same mapping rules are used but multiple petri nets can be generated, one for each Business Process model present inside the xml. Instead, when a PNML model is provided, it is loaded directly into the simulator as it represent a petri net.

  • Wide set of managed BPMN concepts:

An extended set of mapping rules from bpmn to petri nets has been implemented. This rules concern all kind of tasks and intermediate events, sub-process, start and end events (with and without message), looping tasks, bounded events, exclusive gateway, parallel gateway, inclusive and complex gateways, event based gateway, sequence flows and messages flows. All this concepts are supported from both BPMN OMG models than ADO Business Process models.

  • Extensible measures system:

The simulator implement an event based measurement systems that give the possibility to easily add simulation indexes through the definition of listeners. The currently supported indexes are Costs, Execution Times and Waiting Times (which are automatically calculated on the execution times). The simulator implements also the concepts of Traces and Paths over which the indexes are calculated.

  • Extensible transitions probability management system:

The base mechanisms automatically choose between parallel paths and paths with predefined probabilities of executions. Missing probabilities are automatically calculated. An extension of this system has already been provided which add supports of dynamic probabilities through the use of javascript code.

  • Light results:

In case of big or high looping models the simulation results can be heavy to transfer over the network. In particular the high numbers of traces and paths can affect system performance. For this reason a light result feature has been implemented. In such case, detailed results are avoided but only partials are provided.

  • Integration with ADOxx and Adonis NP:

The simulation service has been successfully integrated in ADOxx through the definition of a specific mechanism in ADOScript, and in Adonis NP through the creation of a MFB plugin. Both acts as clients for the simulation service. The service provide also an asynchronous html/javascript client in order to use and test the service without integrate it in a tool.



In the following, the high level architecture of the simulation service is provided:

The petri net core module is the component that contain the main logic of a petri net and manage its semantic. The simulation service use this component in order to evaluate at each step which transition can be enabled.

The import module is an easy to extend component that is able to automatically recognize the format of the provided model and convert it in the internal petri net structure. It manage separately the logic of document parsing and of object mapping in order to reuse the same mapping logic for multiple file format (like in the case of BPMN and ADOxx BPMN).

The export module is for diagnostic only. It give the possibility to export the internal petri net structure in PNML standard format in order to be visualized in any supported editor.

The simulation measures module is an easy to extend component that give the possibility to define listeners for the simulation event. Each listener produce a measure or a result from a single simulation, like a trace, a path, the waiting times or the execution costs. The resulting indexes can then be collected in a special container in order to calculate some final indexes (like average values).

The simulation transition choice module is the component that perform the choice of the transition to execute between the available one. The module provide a base mechanism that perform a fear choice between parallel transitions and a user defined probabilistic choice between concurrent transitions. The base mechanism has been also extended in order to support dynamic probability evaluation using a scripting system.

The simulation module is the component that manage all the simulations, invoking the functionalities of the measures module and of the transition choice. It is also responsible for the generation of the simulation output in a structured xml format.