This is a (modelling), execution and store platform for S-BPM processes, based on microservices powered by Spring Boot. The modelling platform is based on Angular 1, the frontend for the execution and store platform, however, is based on Angular 2+.
Basically, the platform consists of the following modules:
A new version of the S-BPM modelling platform is available here.
The project hosted in this repository is a fork of the original project, where the intention was to build a S-BPM Modelling and Execution Platform. This fork however, aims to extend the platform by adding process-store functionality. This should allow for searching, buying, selling, reviewing and executing processes from the store(=market). Furthermore, organizations should be allowed to register and invite employees (as users) to the platform, and to give them different roles and rules.
Functionality | Implemented | Comment | |||
---|---|---|---|---|---|
Internal Subjects | Yes | - | |||
Multisubjects | No | - | |||
External Subjects | Yes | partially (Engine) | |||
Function States | Yes | - | |||
Send States | Yes | - | |||
Receive States | Yes | - | |||
Timeouts | Yes | partially (Engine) | |||
Refinements | Yes | partially (Engine) | |||
Business Objects | Yes | - | |||
Start Process | Yes | - | |||
Stop Process | Yes | - | |||
Nested Business Objects | Yes | partially (Engine) | Formbuilder | Yes | - |
OWL-Import | Yes | standard-pass-ont v0.7.2. & v0.7.5. | |||
Connected Processes | Yes | partially (Engine) | |||
Multiprocesses | Yes | partially (Engine) | |||
Event logging | Yes | Json and CSV |
Functionality | Implemented | Comment |
---|---|---|
SID View | yes | - |
SBD View | yes | - |
Subjects | yes | - |
Message Connector | yes | - |
Message Types (Business Objects) | yes | - |
Send State | yes | - |
Receive State | yes | - |
Function State | yes | - |
OWL-Import | no | standard-pass-ont |
OWL-Export | yes | - |
ZoomIn/Out | no | - |
Customizability | no | - |
In this section you will find Master's theses, which provide further information about the project.
Development only:
cd
into the /Setup/mysql_docker
folder of the project/Setup/mysql_docker
directory: docker-compose up
docker-compose up -d
ebusa-mysql
is running by using the command docker ps
.docker start ebusa-mysql
.
start.bat
script with administrator privileges, as it will not be able to execute all services.start.bat
script and choose dev mode
. Otherwise you can use the normal mode
.
Also check the section for further configuration details.
start.sh
./bin/bash
and NOT to use a zsh
shell as this can cause issues.
chsh -s /bin/bash
. To change it back to your custom shell, use the same command (i.e. chsh -s /bin/zsh
)start.sh
script with the following command: chmod +x start.sh
../start.sh -dev
.
Also check the section for further configuration details.
gradlew bootRun
gradlew bootRun
gradlew bootRun
gradlew bootRun
gradlew bootRun
gradlew bootRun
gradlew bootRun
gradlew bootRun
http://localhost:3000
gradlew bootRun
http://localhost:4000
If you prefer to run the jar files, without using gradlew:
java -jar ModellingPlatform-0.0.1-SNAPSHOT.jar
http://localhost:4000
Just for development purposes, not for production!
npm install
npm start
http://localhost:3000
Just for development purposes, not for production!
npm install -g yo bower grunt-cli gulp && npm install && bower install
to install required dependencies. npm install && bower install
gulp serve
http://localhost:3000
Basically, the following ports are used:
Service | Port |
---|---|
Gateway | 10000 |
ServiceDiscovery | 8761 |
ConfigurationService | 8888 |
ProcessModelStorage | Random |
ProcessEngine | Random |
ExternalCommunicator | Random |
EventLogger | Random |
GUI | 3000 |
ModellingPlatform | 4000 |
To change the port configuration, change the server port in this file e.g. Gateway: application.properties
Note: If you change the port of the Gateway, make sure to change the restApi configuration in allProcesses.service.ts and to rebuild the GUI-Dev and GUI project according to the guide provide below.
In general, the authentication concept ist based on RBAC. Each user can be assigned to one or more roles. Each role can be assigned to one more rules.
The current *.csv files for the user configuration:
User | Roles | Password |
---|---|---|
robert | BOSS | 1234 |
matthias | ADMIN, EMPLOYEE | 1234 |
stefan | EMPLOYEE | 1234 |
maksym | EMPLOYEE | 1234 |
marlene | TRAVEL MANAGEMENT | 1234 |
For the development process it is possible to activate the creation of example processes in order to avoid the manual creation of them during development and testing. The required steps are explained on page 72 in the master theses. The following steps are describing the steps mentioned in the thesis:
ippr.insert-examples.enabled
to true
in the application.properties
file found in the directory /ProcessModelStorage/src/main/resources
spring.jpa.hibernate.ddl-auto
to create
in the application.properties
file found in the directory /ProcessModelStorage/src/main/resources
ConfigurationService
microservice to avoid overwriting the configuration file. (See start all services for Windows or Linux/macOS how to do it)
ippr.insert-examples.enabled
to false
in the application.properties
file found in the directory /ProcessModelStorage/src/main/resources
spring.jpa.hibernate.ddl-auto
to update
in the application.properties
file found in the directory /ProcessModelStorage/src/main/resources
ConfigurationService
microservice. (See start all services for Windows or Linux/macOS how to do it)
Any further development concerning the ServiceDiscovery, the ConfigurationService, the Gateway, the ProcessModelStorage, the ExternalCommunicator or the ProcessEngine can be done directly in java. For further information please use the Spring Boot Documentation
Note: If you do any changes to a module, you have to rebuild it with gradlew build
Any further development concerning the GUI has to be done in the GUI-Dev module by using typescript and Angular 2. For further information please use the Angular Documentation and the ng2-admin Documentation.
Note: If you do any changes to the GUI-Dev project, you have to update the GUI project afterwards:
npm run prebuild:prod && npm run build:prod
gradlew build
or gradlew run
Any further development concerning the ModellingPlatform has to be done in the ModellingPlatform-Dev module by using javascript and Angular 1.
Note: If you do any changes to the ModellingPlatform-Dev project, you have to update the ModellingPlatform project afterwards:
gulp build
gradlew build
or gradlew run