Integration von Geschäftsprozessen leicht gemacht mit Camunda
Problem
Im Projektalltag begegnen uns des Öfteren aufwendige Geschäftsprozesse, die wir für den Kunden in bestehender Software abbilden müssen. Im Normalfall erhält oder erstellt man auf Basis der Kundenanforderungen ein Prozessdiagramm in "PowerPoint Notation" und implementiert z.B. einen eigenen Automaten, der dem Prozess entspricht.
Eine solche Individuallösung ist aber meist sehr unflexibel und man läuft Gefahr, dass bei Änderungen des Prozesses das Ausgangsdiagramm und der Code auseinander laufen.
Lösung
Es gibt verschiedene Workflow Management Systeme, die auf unterschiedliche Art und Weise in ein bestehendes Projekt integriert werden können. In zwei Projekten im ABI-Umfeld haben wir uns für Camunda entschieden, eine Open Source Java Workflow-Engine, die mit Prozessdefinitionen nach BPMN 2.0, DMN 1.1 und CMMN 1.1 arbeitet.
Dies bietet viele Vorteile:
- da die unterstützten Notationen standardisiert sind, ist man nicht an eine bestimmte Workflow-Engine gebunden
- ein BPMN-Prozess ist ein XML-Dokument, das visuell mit dem Kunden in Editoren modelliert und von Workflow-Engines verarbeitet werden kann
- durch Versionierung von Prozessen ist es sehr einfach, mit dem Kunden Prozesse weiterzuentwickeln
- Geschäftsprozesse können in Teilprozesse untergliedert werden
- Camunda bringt drei Webanwendungen mit, um manuelle Prozessaufgaben zu bearbeiten, User zu verwalten und Prozesse zu überwachen
- Camunda kann auf unterschiedliche Art integriert werden, z.B. als JAR-Bibliothek, als clusterfähiger standalone REST-Service oder als Container-Service
Beispiel
Die Abbildung beschreibt einen BPMN-Prozess, um eine Pizza im Restaurant zu bestellen. Er besteht aus 3 Lanes, jeweils eine für den Gast, für den Kellner und für den Koch.
Weiterführende Aspekte
- Camunda Webseite: https://camunda.org
- Beispiele zur Verwendung von Camunda: https://github.com/camunda/camunda-bpm-examples
- BPMN Spezifikation der OMG: http://www.bpmn.org
- Liste verschiedener Workflow-Management-Systeme: https://en.wikipedia.org/wiki/Workflow_management_system#List_of_notable_WfMS
---
Autor
Andreas Springer / Senior Software Architect / Business Division Banking & Insurance
Zum Toilet Paper #89: Integration von Geschäftsprozessen leicht gemacht mit Camunda (pdf)