DataFlow BPMN is a free BPMN 2.0 modeling platform that can be extended and customized by any BPMN 2.0 compliant execution engine. DF-BPMN is based on the Eclipse Graphical Language Server Platform (GLSP) and on Open BPMN project providing an open-source framework for building diagram editors based on modern web technologies.
DataFlow BPMN techninal report (how to use DF-BPMN)
The Business Process Model and Notation (BPMN 2.0) is an open standard to describe business processes that can be visualized in diagram editors and executed by process engines compliant with the BPMN 2.0 standard. This makes BPMN an interoperable, interchangeable and open standard in the field of business process management.
BPMN was intended for users at all levels, from the business analysts who create the initial design, to the developers who implement the technical details, and finally, to the business users responsible for managing and monitoring the processes.
As a XML language proposed by the Object Management Group (OMG), BPMN is not only a notation for describing business workflows but also higher-level collaborations between business partners and the choreography of information flows between applications, microservices and cloud platforms.
BPMN 2.0 introduces an extensibility mechanism that allows extending standard BPMN elements with additional properties and behavior. It can be used by modeling tools to add non-standard elements or Artifacts to satisfy a specific need, such as the unique requirements of a vertical domain, and still have a valid BPMN Core.
One goal of DA BPMN is to allow the developer to model BPMN includes all the data needed in each task.
DA BPMN is based on the Eclipse Graphical Language Server Platform (GLSP) and provides the following building blocks:
- open-bpmn.metamodel - an open BPMN 2.0 metamodel
- open-bpmn.glsp-server - the GLSP Server implementation
- open-bpmn.glsp-client - the GLSP Client components and Theia integration
DF-BPMN provides a BPMN 2.0 Metamodel based on pure java. This library can be used to generate a BPMN model programmatically as also import or export a model form any .bpmn file. So in case you want to implement you own BPMN workflow engine the DF-BPMN Metamodel is the perfect library to work with BPMN 2.0 files. THe DF-BPMN Metamodel is based o the org.w3c.dom
XML API and includes a set of junit test classes which may be helpful to implement you own business logic.
The open-bpmn.glsp-server provides the GLSP Server part. The server part is responsible to load and store the diagram from a .bpmn file.
The DF-bpmn.glsp-client is the GLSP Client part of DF-BPMN providing the graphical modeling tool.
We use nodejs on Linux Debian during development. To manage version of nodejs in debian see: https://phoenixnap.com/kb/update-node-js-version
For development with Eclipse Theia the expected version is ">=10.11.0 <17". For that reason we tested with following version 16.11.0. You can list all current versions here.
In case you have install npm you can install a specific nodejs version with:
$ sudo n 16.11.0
To install typescript run:
$ sudo npm install -g typescript
We use nodejs 16.11.0 on windows 11 and windows 10.
For development with Eclipse Theia the expected version is ">=10.11.0 <17". For that reason we tested with following version 16.11.0. You can list all current versions here.
In our build on widowns we use maven 3.8.6 and yarn 1.22.19.
You need to download maven and yarn from official sites.
To build the complete project run
$ ./build.sh
This will build the server module with maven and the client modules with yarn. The script finally automatically starts the application.
The Application can be started from a Web Browser
http://localhost:3000/
$ mvn clean install -DskipTests
$ cd open-bpmn.glsp-client/
$ yarn
$ yarn start
The Application can be started from a Web Browser
http://localhost:3000/
$ cd integration-openai
$ python app.py <api-key>
$ docker pull alinoureldin/df-bpmn:latest
$ docker run --name="df-bpmn" --rm -p 3000:3000 -p 3001:3001 --env OPENAI_KEY=<open-api-key> -it -v /path/to/bonita-workspace:/usr/src/app/bonita alinoureldin/df-bpmn
The Application can be started from a Web Browser
http://localhost:3000/#/usr/src/app/workspace
More detail about build your own code in docker here
During development you can run the frontend and backend in separate tasks. This gives you more control over the CLient and the Backend Component.
To build & start the GLSP Server only, run:
$ ./build.sh -b
To build & start the GLSP Client only, run:
$ ./build.sh -f
To start the GLSP Client without building, run:
$ ./build.sh -s
For a full clean & reinstall of the GLSP Client (after upgrades), run:
$ ./build.sh -c -i
You will find more details in the Client Section and the Server Section.
DA BPMN is based on Eclipse GLSP and adapts the different concepts in various ways. The following sections provide details about the development with Eclipse GLSP and the solutions used in DA BPMN.