/dsf-process-tutorial

Tutorial repository for developing process plugins for the Data Sharing Framework

Primary LanguageJavaApache License 2.0Apache-2.0

DSF Process Plugin Tutorial

This repository contains exercises to learn how to implement process plugins for the Data Sharing Framework (DSF). The main documentation for the DSF can be found under dsf.dev. The tutorial is divided into several exercises that build on each other. For each exercise, a sample solution is provided in a separate branch. You should work on solving the exercises in your local main branch and checkout the solution branches if necessary.

The first version of this tutorial was executed at the GMDS / TMF 2022 conference. A recording of the opening remarks by H. Hund and R. Wettstein can be found on YouTube. The slides of the opening remarks are available as a PDF download. Please note that the version presented was designed for DSF < 1.0.0 and that namespaces and other aspects have changed since then. The following tutorial is designed for the current version (above v1.4.x) of DSF.

Special thanks to Bastian Schaffer for his thorough feedback during development of the tutorial!

Prerequisites

In order to be able to solve the exercises described in this tutorial a software development environment with GIT, Java 17, Maven 3.8, Docker, Docker-Compose, a Java IDE like Eclipse or IntelliJ, Camunda Modeler as a BPMN Editor and a minimum of 16GB of RAM is needed. For more details see the detailed prerequisites document.

Exercise 1 - Simple Process

The first exercise focuses on setting up the testing environment used in this tutorial and shows how to implement and execute a simple BPMN process. For more details see the exercise 1 description.

Exercise 1.1 - Process Debugging

Exercise 1.1 looks at how to use the Java debugger of your IDE to remote debug the execution of a process plugin. For more details see the exercise 1.1 description.

Exercise 2 - Input Parameters

In order to configure processes that are packaged as process plugins, we will take a look at two possibilities on how to pass parameters into a process. For more details see the exercise 2 description.

Exercise 3 - DSF User Authentication and Authorization

This exercise looks at how to set authorization rules for DSF users and process plugins. For more details see the exercise 3 description.

Exercise 4 - Messaging

Communication between organizations is modeled using message flow events in BPMN processes. The third exercise shows you how a process at one organization can trigger a process at another organization. For more details see the exercise 4 description.

Exercise 5 - Exclusive Gateways

Different execution paths in a process based on the state of process variables can be achieved using exclusive gateways. In exercise 5 we will examine how this can be implemented. For more details see the exercise 5 description.

Exercise 6 - Event Based Gateways and Intermediate Events

In the final exercise we will look at message flows between three organizations as well as how to continue a waiting process, if no return message arrives. For more details see the exercise 6 description.