zur Übersicht

BPMN

Lesedauer ca. 6 Minuten
26.09.2023

Ein Teil unserer Kunden arbeitet prozessgetrieben. Diese Prozesse müssen in der Software abgebildet sein. Oftmals werden Projekte unnötig kompliziert oder in die Länge gezogen, da Fachabteilung und IT andere Sprachen sprechen. Wie kann eine Zusammenarbeit gelingen, in der beide – Fachabteilung und IT – das gleiche Verständnis des Problems haben?

Damit Prozesse aus der Geschäftslogik optimal in der Softwareanwendung umgesetzt werden können, braucht es eine gemeinsame Sprache. Über die Jahre hat sich BPMN (Business Process Model and Notation) für unsere Projekte mit Kunden, deren Struktur stark prozessgebunden ist, als ideales Hilfsmittel erwiesen. BPMN bietet eine gemeinsame Sprache und einen visuellen Ansatz zur Beschreibung, Analyse und Optimierung von Geschäftsprozessen.

Was ist BPMN?

BPMN ist ein Standard zur Modellierung von Geschäftsprozessen. Ein wichtiger Aspekt von BPMN ist, dass Modelle grafisch dargestellt werden können. Diese Visualisierung dient zum besseren Verständnis von Prozessen an sich, zur Kommunikation mit betroffenen Stakeholdern und zur Optimierung des Arbeitsablaufs.

Zu den Basiselementen des Standards gehören:

  • Events (z. B. der Eingang einer E-Mail)
  • automatisierte Tasks (z. B. Eintragung von Daten in ein internes System)
  • manuelle Tasks (z. B. Treffen von Entscheidungen)
  • Gateways (Aufsplittung des Programmflusses)
  • Konnektoren (Verknüpfung der anderen BPMN-Elemente)

Fallbeispiel Bewerbungsprozess

Um die Vorteile der Arbeit mit einem strukturierten Prozess zu verdeutlichen, haben wir ein einfaches Fallbeispiel erarbeitet: In einem Unternehmen soll der Erstkontakt mit Bewerbenden durch ein IT-System abgebildet werden. Üblicherweise würde hier die Personalabteilung Anforderungen mit der Entwicklungsabteilung absprechen und die Umsetzung in Auftrag geben. Hierbei muss ein gemeinsames Verständnis vom Bewerbungsprozess erarbeitet werden. Ein Anforderungsdokument wird nun wahrscheinlich von allen Beteiligten ein wenig anders interpretiert und ob die Umsetzung den wirklichen Anforderungen entspricht, ist fraglich.

BPMN als Anforderungsspezifikation

BPMN kann hier helfen, um ein zentrales Dokument für Anforderungen und Umsetzung zu erarbeiten. Es dient explizit nicht nur für die Dokumentation, sondern kann durch den Einsatz einer Prozess-Engine auch Basis für die konkrete Implementierung sein.

Bewerbendenprozess_deutsch

Bereits dieses einfache Beispiel zeigt, dass selbst ohne spezielle Kenntnisse über die Details des Standards klar ist, wie der Prozess grundsätzlich funktioniert. Darüber hinaus können alle Stakeholder (Personalabteilung, Projektleitung, Product Owner, Designer, Entwickelnde etc.) im ständigen Austausch den Prozess verfeinern und verbessern. BPMN getriebenes Arbeiten ergänzt sich somit ideal mit agilen Vorgehensmodellen, welche bei uns gelebt werden.

In der oben angeführten Grafik werden folgende BPMN 2.0 Elemente verwendet:


Element Beschreibung
Start Event Über dieses Event wird ein Prozess gestartet. Sobald ein Prozess gestartet wird, wird technisch eine Instanz des Prozesses erzeugt. Diese Instanz enthält dann den aktuellen Status der Verarbeitung, alle assoziierten Daten und weitere Zusatzinformationen
Konnektoren Konnektoren regeln den Kontrollfluss und definieren jeweils die nächsten angesteuerten BPMN-Elemente nach Bearbeitung des aktuellen Elements
Aktivität Aktivitäten oder Tasks sind all die Dinge, die während eins Prozesses (manuell oder automatisch) gemacht werden müssen. Hier können externe Systeme angesprochen oder aber auch Daten manipuliert werden
Gateways Gateways trennen den Kontrollfluss auf und definieren anhand der vorliegenden Daten welche Elemente danach ausgeführt werden
End Event Sobald ein End Event erreicht wird, wird die Bearbeitung der aktuellen Prozessinstanz abgeschlossen


Überdies gibt es noch eine Vielzahl anderer Elemente, welche eine feingranulare Modellierung von Prozessen jeglicher Art unterstützen.

Eine genauere Spezifikation der Elemente findet sich in:

BPMN als Basis für die Implementierung (Camunda)

Wie oben bereits erwähnt, ist die erstellte Grafik nicht nur Spezifikation, sondern auch direkt Basis für eine technische Umsetzung. Es wird in BPMN-getriebenen Softwareumsetzungen nun eine sogenannte Process Enginge benötigt. Davon gibt es eine ganze Reihe für unterschiedliche Anwendungszwecke. Die besten Erfahrungen in unseren Projekten haben wir mit Camunda gemacht. Camunda verfügt über eine große Community, ist ein reifes Softwareprodukt und kann weiterhin kostenlos genutzt werden. Darüber hinaus bietet es verschiedene On-Premise- sowie Cloud-Lösungen. Aktuell nutzen wir Camunda 7 als On-Premise-Lösung in Verknüpfung mit Java und Spring Boot.

Architektur

Ein großer Vorteil der Implementierungslösung BPMN mit Process Engine ist, dass die Architekturentscheidungen vergleichsweise unkompliziert sind. Es bietet sich an, für jede Aktivität (Task) eine eigene Applikation zu erstellen und eine weitere Applikation für die Process Engine an sich. Somit lässt sich die Systemarchitektur im Groben aus der BPMN-Prozessbeschreibung ableiten.

bpmn_architektur_de

Wie aus der Abbildung hervorgeht, wird für jede Aktivität ein eigener Service gebaut. Dieser verbindet sich durch die Camunda-Bibliotheken automatisiert mit der zentralen Process Engine. Zu beachten ist hierbei, dass ein solches Vorgehen jedoch nicht unbedingt notwendig ist. Jeglicher Code könnte auch in einem zentralen Service liegen, würde damit allerdings einen großen Vorteil unserer Architektur untergraben. Jeder einzelne Task-Handler-Service ist frei skalierbar. Somit können auch Anwendungen entwickelt werden, bei denen sehr große Datenmengen verarbeitet werden müssen. Camunda stellt sicher, dass immer nur eine Aufgabe (verknüpft mit einer Prozessinstanz) an genau eine Service-Instanz weitergeleitet wird. Die Task-Handler fragen regelmäßig bei der Process Engine nach neuen Tasks und Camunda garantiert die exklusive Verarbeitung. Es handelt sich dabei also um ein Polling und nicht ein Push der einzelnen Tasks.

Ein Task-Handler verarbeitet den gegebenen Task und meldet an die Prozess-Engine die Antwort zurück. Während der Prozessierung kann der jeweilige Task-Handler auf Variablen zugreifen, die zum Start Event mitgegeben oder während des Durchlaufs von anderen Task-Handlern verändert oder erzeugt werden.

Die Speicherung der Variablen und anderer Daten erfolgt automatisch in der an die Process Engine angeschlossenen Datenbank und ist aus Nutzersicht völlig abstrahiert.

Code-Beispiel, wie sich ein Task-Handler mit der Engine verbindet:

bpmn_code

Die mitgelieferten Bibliotheken erlauben eine einfache Implementierung der jeweiligen Task-Handler, da sie die gesamte Logik für das Verbinden mit der Process Engine von alleine übernehmen. Zudem lassen sich auch viele Parameter konfigurieren, wie bspw. Polling- oder Lock-Intervalle, welche die maximale Abarbeitungszeit definieren.

Vorteile dieses Vorgehens

Wie bereits erwähnt, bietet die Verwendung von BPMN als Anforderungsspezifikation eine Reihe von Vorteilen, darunter:

  • Verbessertes Verständnis des Prozesses: Das visuelle Modell hilft allen Beteiligten, sich ein klares Bild des Prozesses zu machen.
  • Verbesserte Kommunikation: Das Modell kann als Kommunikationsmittel zwischen den verschiedenen Stakeholdern eingesetzt werden.
  • Erleichterte Implementierung: Das Modell kann als Grundlage für die konkrete Implementierung des Prozesses verwendet werden. Außerdem kann Camunda auch als Software-as-a-Service verwendet werden und somit fällt zusätzlicher Aufwand für Datenhaltung sowie Setup der Process Engine weg.

Einschränkungen

  • Nutzung für den richtigen Anwendungszweck: Für die Entwicklung eines Systems, welches auf Geschäftsprozessen basiert, ist die Verwendung von BPMN und Camunda eine hervorragende Lösung. Dies spiegelt sich auch in der Praxis unserer Arbeit mit den genannten Systemen wider.

  • Initialer (Lern-)aufwand: BPMN und Camunda haben eine relativ steile Lernkurve, was den Einstieg und die Akzeptanz bei Stakeholdern erschweren könnte. Es existieren hierfür allerdings genug Ressourcen, um eine Vielzahl von Problemen lösen zu können.

Fazit

Der Einsatz von BPMN erleichtert die Modellierung eines bestehenden Geschäftsprozesses und leistet auch für die Erarbeitung neuer Prozesse gute Dienste. Der Standard dient als Arbeitsmittel und Dokumentation zugleich und ist somit eine gute Basis, um ein gemeinsames Verständnis für fachliches Wissen zu erlangen. Einmal erstellt, ist der Prozess mithilfe von Process Engines wie Camunda eine perfekte Basis für die technische Umsetzung des vorliegenden Prozesses. Prozessmodellierung, agiles Vorgehen in der Entwicklung und Fokussierung auf fachliche Aspekte gehen hier Hand in Hand, um für unterschiedliche Kunden und Anwendungsfälle optimale Lösungen zu finden.