Contract-based Data Flow Validation of BPMN Workflows for Microservices
The Business Process Model and Notation (BPMN) is a well established notation for modelling business processes that can be executed by workflow engines.
For the automatic workflow execution, every service task of a BPMN workflow has to be realized as software. This can be done in the form of microservices. In some business domains it is possible to reuse individual tasks in different business processes. However, the task implementations may depend on input data which has to be considered when modelling the workflows.
This combination leads to possible problems at creation and change of microservices and workflows. In this thesis, it is laid out that the data flow definition of such systems might cause problems, since the workflows are created by domain experts without the full needed knowledge of service developers. Errors are often only recognized at runtime with complex test cases for the workflow as a whole or in production
To support the correct modelling of BPMN workflows, a static data flow validation approach is presented that is implemented in a prototype called COntract BAsed data FLOW validation (CobaFlow). Every microservice implementing a BPMN service task has to provide a contract specifying their needed input and output. On this basis CobaFlow analyses the workflow’s data flow for missing input data. This proposed solution should support the workflow creation and can be implemented into the Continuous Integration (CI) process of the microservices.
A small industry case study with six participants was conducted, to get first insights about the validation prototype. The results indicate that the prototype is perceived as helpful for creating new workflows and modifying existing ones.