Wenn ein Kunde Geschäftsprozesse automatisieren und rationalisieren muss und kein größeres Informationssystem zur Verfügung hat, um diese abzudecken, ist der Einsatz einer BPMN-Engine die optimale Lösung.
Ermöglicht wird dies durch die sogenannten BPMN-Engines. Eine BPMN-Engine ist eine Softwarekomponente, die ein gezeichnetes BPMN-Modell interpretieren kann. Sie bietet Werkzeuge für die Einbindung von Systemen, die für die Lösung der technischen Aufgaben eines Prozesses zuständig sind, sowie Unterstützung bei der Spezifikation und Bearbeitung von Benutzeraufgaben durch benutzerdefinierte Rollen. Wenn ein Kunde Geschäftsprozesse automatisieren und rationalisieren muss und nicht über ein größeres Informationssystem verfügt, um diese abzudecken, ist der Einsatz einer BPMN-Engine die optimale Lösung.
Auf dem Markt gibt es eine Reihe von BPMN-Implementierungen, die auf verschiedenen Technologien basieren und von unterschiedlicher Qualität sind. Siehe zum Beispiel den Vergleich: https://www.itcentralstation.com/categories/business-process-management. In der Vergangenheit haben wir jBPM verwendet, aber in den letzten Jahren sind wir auf die Lösung von Camunda umgestiegen, und wir sind wirklich begeistert davon.
Camunda ist ein Paket von Werkzeugen, das als Camunda-Plattform bezeichnet wird und Tätigkeiten abdeckt, die von der Prozessanalyse (DESIGN) über den Einsatz modellierter Prozesse als Teil von Informationssystemen (AUTOMATE) bis zur Optimierung ihrer Leistung (IMPROVE) reichen:
Die Camunda-Plattform ist wie üblich in einer kostenlosen Community-Version und einer kostenpflichtigen Enterprise-Version erhältlich.
In der vorherigen Abbildung habe ich die verschiedenen Tools farblich markiert:
Das Tolle ist, dass die Community-Version so umfangreich, funktional und dokumentiert ist, dass wir damit schon mehrere Projekte erfolgreich umsetzen konnten.
In diesem Blog geht es um die Nutzung der Community-Version der Camunda-Plattform. Ich werde Sie einführen in:
Ich werde die Aufgabenliste nicht vorstellen, da diese für den kommerziellen Einsatz zu schlicht ist und wir unsere eigene schönere Aufgabenliste mit Angular implementieren werden.
Camunda Modeler ist ein sehr schöner, voll funktionsfähiger BPMN-Editor. Er bietet alle Elemente des BPMN 2.0 Standards:
Die verschiedenen Teile des Camunda Modeler:
Im Camunda Modeler ist es möglich, BPMN-Modelle, die in anderen Analysewerkzeugen erstellt wurden, zu bearbeiten, sofern sie dem BPMN 2.0 Standard entsprechen.
Wir haben dies zum Beispiel erfolgreich mit dem weit verbreiteten Enterprise Architect getestet.
Neben der Speicherung in BPMN-Dateien können gezeichnete Modelle auch als Bilder exportiert werden, was eine praktische Funktion bei der Erstellung von Dokumentationen ist.
Die vom Hersteller empfohlenen Komponenten, die mit der BPMN-Engine arbeiten (der sogenannte Technologie-Stack), sind für die meisten Projekte mit mittleren Anforderungen ausreichend:
Die verschiedenen Schichten der Architektur:
| Browser | Camunda Tasklist – GUI for viewing user lists created within running process instances and Camunda Cockpit – an administrative GUI for monitoring the Camunda Process Engine and addressing incidents – are implemented as a web client that can be used from the following supported web browsers:
|
| Camunda REST | The interface implemented as a REST API provides services for:
|
| Camunda Engine | Camunda Process Engine – the main component of the architecture – is implemented in Java. Supported Java versions:
|
| Relational Database | A relational database is used to persist the current state of individual process instances. Communication between the Process Engine and the database is done via the JDBC interface. Supported relational databases:
|
Der in der relationalen Datenbank persistierte Zustand einer bestimmten Prozessinstanz wird in Datenbanktransaktionen geändert, die durch die Wartezustände des ausführenden Prozesses begrenzt sind. Zum Beispiel:
In diesem Prozess wird der persistierte Zustand des Prozesses geändert, wenn die Operationen aus der abgeschlossenen Benutzeraufgabe (Lieferadresse bereitstellen) erfolgreich ausgeführt werden
bis hin zum Timer (Warten bis zum nächsten Arbeitstag). Tritt innerhalb dieser Operationen eine Ausnahme auf, setzt der Prozesslauf die Bearbeitung dieser Ausnahme fort oder verbleibt im Fehlerzustand = Vorfall.
Wartezustände, die Transaktionen von dem Prozess trennen, auf den sie warten:
Transaktionen können auch durch BPMNelement-Parameter gesteuert werden, aber das würde den Rahmen dieses Blogs sprengen.
Abhängig von der Größe, der Architektur und den Anforderungen des Systems, auf dem die Camunda Engine eingesetzt werden soll, werden 3 Einsatzmöglichkeiten unterstützt:
Faktoren, die die Hardwareanforderungen der Camunda Engine bestimmen:
| FACTOR | IMPACT | |
| #1 | The average time between the start of process instances is necessary to estimate the number of process instances started per second. |
|
| #2 | Average runtime of a single process instance. In conjunction with factor #1, it determines the number of concurrently active process instances. |
|
| #3 | Number of concurrently accessing clients: The number of users working in parallel on user tasks and accessing external modules and systems. |
|
| #4 | History Level Configuration of the detail level recorded for executing process instances. |
|
Empfohlene Hardware-Konfigurationen je nach Bedarf:
| Degree | ||
| Low | A small server is sufficient for most cases. Running fewer than 100 process instances per second. |
|
| Medium | Medium-sized server. Running more than 100 process instances per second. |
|
| High | Large server for extreme cases. |
|
Camunda Cockpit ist eine in Form eines Webclients implementierte Administrationsoberfläche, über die es möglich ist, laufende Prozessinstanzen zu überwachen und deren Vorfälle zu beheben.
Nach dem Einloggen in Camunda Cockpit wird eine allgemeine Übersicht über den Status der Camunda Engine angezeigt:
Zeigt die Anzahl der bereitgestellten Prozesse, der laufenden Instanzen, die aktuelle Anzahl der Vorfälle, d. h. der Instanzen von Prozessen, die in einem Fehlerzustand stecken, und die Anzahl der eingegebenen Benutzeraufträge an.
Wenn Sie „Laufende Prozessinstanzen“ (rot hervorgehoben) auswählen, erhalten Sie eine Aufschlüsselung der bereitgestellten Prozesse:
Bedeutung der Tabellenspalten:
Wenn Sie auf den Namen des ausgewählten Prozesses klicken, wird das Prozessmodell angezeigt:
Für Elemente, die als schwebend definiert sind (siehe Kapitel Datenbanktransaktionen), wird die
Handelt es sich bei dem Element um einen Unterprozess, sind diese Zahlen die Summe seiner Warteelemente.
Wir können uns darin einnisten und die Verteilung seiner Instanzen und Vorfälle im Detail sehen:
In der nachstehenden Tabelle sind diese Instanzen aufgeführt. Wenn Sie auf die ID der ausgewählten Instanz klicken, können Sie die aktuellen Werte der Prozessvariablen anzeigen, ihre Werte ändern und auf diese Weise Vorfälle beheben.