DETAILS: ADOxxWEB Simulation
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.
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:
- 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:
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.