MPMS provides end-to-end (i.e., from order reception until product delivery) manufacturing process management and orchestration of activities by:
- modeling processes and agents
- executing in automated way the processes by assigning activities to agents (either human or automated agents)
- providing process monitoring for a complete status overview of the manufacturing processes
A process application for a Manufacturing Process Management System for SHOP4CF project. Developed by Information Systems research group of TUe and European Dynamics.
*This project has been generated as a Spring Boot application (Spring Boot version 2.4.3) embedding Camunda Platform, Community Edition v7.15.0. (More info can be found on Camunda Spring Boot Integration)
In general, MPMS includes modules for both Design and Execution phases. The overall architecture is shown below: The steps to use the above modules are:
- Based on your scenario requirements (process flow, list of tasks, involved agents, rules, etc.), model your processes in BPMN 2.0 notation with the Modeler module. Download the Modeler from Camunda Modeler. (Requirements and any other relevant info can also be stored in a Definitions/Business DB)
- The Core application (a Spring Boot Java application) is built (in any IDE) to implement the business logic behind the process models (e.g., write the delegate code that a BPMN Service task calls). The source code you get in this repository has the basic functionality, which you can adapt (as explained in the next section).
- When the application is deployed and running, the Process Engine module enacts the process models by invoking the implemented business logic. The Process Engine is started within the Spring Boot application.
- When processes are running, three types of web applications are provided: i) Tasklist UI for task items for humans, ii) Cockpit for process status, iii) Admin for users configuration.
Regarding the Execution (runtime) bundles that this repository generates (as Docker containers/images), the overview is the following: (PostgreSQL DBs can be changed with your DB of your preference)
With respect to interfacing to other components, MPMS is primarily built to communicate through FIWARE. MPMS posts task assignments on FIWARE, which are eventually picked-up by device controllers, any resources, or any component who is interested in these tasks (Note that these tasks refer to ones directed to automated agents, opposed to the tasks for human agents can be directly provided in the built-in Tasklist web application). Accordingly, MPMS receives task statuses. Resource statuses and alerts are also picked-up by MPMS through FIWARE. Of course, communication to/from MPMS can be done through the REST/JAVA API, or (HTTP) Connectors, or web services.
In SHOP4CF, the chosen Context Broker component of the FIWARE platform is the Orion-LD, which implements the NGSI-LD information model and API.
More info on the source code structure...
The structure of data exchanged between MPMS and FIWARE is based on the SHOP4CF Data models (which is a SHOP4CF_project-elaboration of the generic FIWARE data models).
See examples for creating subscriptions and performing CRUD operations on NGSI-LD Linked Data tutorial and NGSI-LD Operations tutorial
Prerequisites:
- Deployment requires Docker Compose v3.8 or above.
- During initial installation, internet access is required in order to download:
- openjdk:11.0.13-jre-slim (appears in
Dockerfile
) - image: postgres:14-alpine (for both
shop4cf-mpms-core-postgres
andshop4cf-mpms-app-postgres
containers) - image: adminer:4.8.1 (optional image)
- openjdk:11.0.13-jre-slim (appears in
Package the application and Deploy the docker services:
-
In your IDE environment, run
mvn clean package spring-boot:repackage
A
mpms_7-15-1.0.0-SNAPSHOT.jar
file is generated intarget
folder. So, you basically need the following file structure: -
Configure parameters in
.env
file- e.g., OrionLD CB url:port, DB ports, passwords
-
Open a terminal, navigate to the
docker
folder and run: -
To see the console of the
shop4cf-mpms
application, run:
Access MPMS web applications on: http://[host_address]:[port]/camunda/app/welcome/default/#!/login
-
Configure users of the web applications on Admin
Built and tested against Camunda Platform version 7.15.0, Spring Boot version 2.4.3.
Provided under various open source licenses (mainly Apache License 2.0 and MIT). Third-party libraries or application servers included are distributed under their respective licenses. Full list including optional dependencies can be found on Camunda - Third party libraries.
-
Version 1.0 (25-Feb-2022)
Initial version of MPMS with:
- Core functionality
- FIWARE integration
- Subscriptions to entities
- Receive notifications from subscriptions
- Post entities
- DB integration
- Postgres "Process Engine" DB (for persisting engine's runtime data)
- Postgres "Application" DB (for storing definitions and relevant business data)
- FIWARE integration
- Core functionality