Coder Social home page Coder Social logo

elseviersoftwarex / softx-d-21-00180 Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 2.0 25.26 MB

TimeAwareBPMN-js: An Editor and Temporal Verification Tool for Time-Aware BPMN Processes. To cite this Original Software Publication: https://www.sciencedirect.com/science/article/pii/S2352711021001734

License: MIT License

JavaScript 96.18% CSS 1.31% HTML 0.94% Less 1.56%
bpmn temporal-process-modeling temporal-constraint-network dynamic-controllability

softx-d-21-00180's Introduction

TimeAwareBPMN-js

It is a tool for editing and verifying time-aware BPMN models, BPMN models having temporal constraints.

It is a web-application and consists of a graphical editor (bpmn.io) where it is possible to create or edit time-aware BPMN models and to select and run a plug-in for verifying temporal constraints.

Plug-in architecture allows the execution of different programs for verifying different temporal properties.

As a proof-of-concept, the application contains the CSTNU plug-in, that allows verifying if the model is dynamically controllable, i.e., it is possible to execute it whatever the duration of some activities, called contingent activities. Each contingent-activity duration is limited to stay in a temporal range, but the exact duration is decided at run-time by the external "agent" executing it. CSTNU plug-in verifies the dynamic controllability property using an external Java library.

Installation

To run the application, it is necessary Node.js and to install some Node.js modules and dependency.

  1. First, it is necessary to install Java module, necessary for the CSTNU plug-in.

    Installation in Mac OS X

    1. Install JDK 11 or 17 (if you are using brew, brew install openjdk@11 for JDK 11)
    2. Set the JAVA_HOME environment variable to JDK home.
      If you installed by brew, then the JAVA_HOME can be set for JDK 11 by
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
      or for JDK 17 by
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home
    3. Install compiling tools: npm install -g node-gyp
    4. Install java: npm i java

    Installation in Ubuntu

    1. Install JDK 11 or 17
    2. Install compiling tools: sudo apt install make g++
    3. Install java: npm i java
  2. Then, install all other dependencies

npm install
  1. Finally, run the project
npm start

Usage

It is possible to create a new model or load one by dragging the file in the editor or using the option Load BPMN model.

This is an screenshot of the interface of the TimeAwareBPMN-js showing the graphical editor and the tool with bottons for the possible action.

Screenshot of the interface

There are example models in the models folder.

Demos

Demos folder contains some video showing how to use the application.

Adding a plug-in

The application can be extended, adding other plug-ins for verifying other temporal properties (or other properties). There is an application API to ease the development of plug-in as JavaScript module. One a plug-in is developed, it can be used inside the application, just putting the JavaScript module in a specific directory.

A plug-in is divided into two parts:

  • Client-side plug-in. It has to show the possible actions as buttons in a toolbar, prepare the data for the checking, send the data to the corresponding server-side plug-in, and receive and show the results. More details are given at page client-side plug-in.

  • Server-side plug-in. It has to accept the verification requests, realize the verification executing some program/library, and return the results to the corresponding client-side plug-in. More details are given at page server-side plug-in.

Contributing

Pull requests of new plug-ins and fetures in the editor are welcome. For major changes in the editor, please open an issue first to discuss what you would like to change.

License

MIT

softx-d-21-00180's People

Contributors

marioocampo avatar posenato avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.