Limitations and Potentials of modern BPM Systems for High-Performance Shadow Processing in Business Processes of Digital Companies Martin Schmollinger, Jürgen Krauß Hochschule Reutlingen, Alteburgstraße 150, 72762 Reutlingen, www.reutlingen-university.de 1
Agenda 1. Einleitung 2. Fragestellung und Maßnahme 3. Ergebnisse und Ausblick 2
Einleitung Grundlage BPM Herausforderung Konflikte BPMS liefern eine hohe Transparenz, Monitoring von Prozessen und Hilfe bei der Entwicklung. BPMN ist eine standardisierte Modellierungssprache zum erstellen ausführungsnaher Prozesse. Dunkelverarbeitung spielt eine große Rolle in Geschäftsprozessen. Für eine leistungsfähige Dunkelverarbeitung ist Parallele Ausführung von Aufgaben notwendig. Parallele Ausführung wird in der BPMN Spezifikation nicht vorgeschrieben. Leistungsfähigkeit des BPMS bei der Ausführung paralleler Konstrukte ist individuell. 3
Anforderungen an das BPMS BPMN CMMN Dunkel BPMN Dunkelverarbeitung wird außerhalb von einem BPMS ausgeführt. Konsequenz: Vorteile des BPMS gehen verloren. Medienbruch. Eventuell Rückführung in das BPMS notwendig. Lösung: BPMS sollte alle Prozessvarianten unterstützen. Kandidat: Camunda BPM 4
Fragestellungen und Maßnahme Fragestellung Wie sieht die Out-of-the-Box Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Wie kann die Implementierung eines Prozesses bei Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Implementierung eines Prozesses mit parallelem Konstrukt in Camunda BPM Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Vergleich einer optimierten Implementierung mit einer Java Applikation 5
Implementierung des Prozesses 6
Fragestellung Wie sieht die Out-of-the-Box Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Maßnahme Implementierung eines Prozesses in Camunda BPM Ergebnis Paralleles Gateway sorgt nicht für eine parallele Verarbeitung der Ausführungspfade Die Ausführung ist nicht intuitiv 7
Fragestellungen und Maßnahme Fragestellung Wie sieht die Out-of-the-Box Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Implementierung eines Prozesses in Camunda BPM Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Vergleich der optimierten Implementierung mit einer Java Applikation 8
Softwarespezifische Konfiguration 9
Softwarespezifische Konfiguration Asynchronous Continuation Konfigurierbar vor und nach Gateways oder Tasks Persistiert den Zustand einer Transaktion Asynchronous Jobs werden von einem Job Executor verwaltet. Der von ihm genutzte Thread Pool ist die Vorrausetzung für parallele Ausführung Job Executor verhindert parallele Ausführung wegen eventuellen Konsistenzproblemen! 10
Softwarespezifische Konfiguration Non-exlusive Tasks Die nicht Exklusivität von Tasks bringt den Job Executor dazu Asynchronous Jobs parallel auszuführen. Jeder nicht exklusive Task erhält einen eigenen Thread ohne vorherige Abhängigkeitsprüfung. 11
Softwarespezifische Konfiguration Resultat 12
Softwarespezifische Konfiguration Probleme Transaction Timeout lässt den Job Executor eine Transaktion nach fünf Minuten abbrechen. Lock Timeout lässt einen, vom Job Executor gesperrten Job, nach fünf Minuten entsperren. Die Transaktion startet von Neuem, obwohl sie bereits ausgeführt wird. 13
Softwarespezifische Konfiguration Alternative 1 14
Softwarespezifische Konfiguration Probleme Modelle sind nicht skalierbar. 15
Softwarespezifische Konfiguration Alternative 2 16
Fragestellung Wie kann die Implementierung eines Prozesses bei Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Maßnahme Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Ergebnis Parallele Ausführung kann erreicht werden Konfigurationen sind im Modell nicht sichtbar und übertragbar Timeout Probleme tauchen auf Multi Instance ist eine skalierbare Lösung für parallele Ausführung. 17
Fragestellungen und Maßnahme Fragestellung Wie sieht die Out-of-the-Box Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Implementierung eines Prozesses in Camunda BPM Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Vergleich der optimierten Implementierung mit einer Java Applikation 18
Vergleich Aufbau Einfach parallel ausführbare Aufgabe mit sequentiellem Anteil -> Maximale Primzahl in einer Liste Parallele Tasks greifen auf einen gemeinsamen synchronisierten Speicher zu Experiment wurde mit einer Listengröße von 5, 10 und 20 Millionen Zahlen (n) mit jeweils 1, 2, 4 und 8 Tasks (p) durchgeführt. 19
Vergleich Ergebnis Camunda BPM p\n 5.000.000 S p 10.000.000 S p 20.000.000 S p 1 21259 1,00 61162 1,00 174282 1,00 2 11826 1,80 33796 1,81 95964 1,82 4 11773 1,81 31157 1,96 95521 1,82 8 7605 2,80 17425 3,51 56971 3,06 Java Applikation p\n 5.000.000 S p 10.000.000 S p 20.000.000 S p 1 21094 1,00 59702 1,00 168817 1,00 2 10861 1,94 30755 1,94 87003 1,94 4 5805 3,63 16641 3,59 48402 3,49 8 4318 4,89 12403 4,81 34877 4,84 20
Fragestellung Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Vergleich der optimierten Implementierung mit einer Java Applikation Ergebnis p=1 und p=2 sind für beide Lösungen sehr ähnlich ~10% Verlust durch die Engine Mit p>2 wird der Zuwachs an Geschwindigkeit der Engine schlechter. Der Grund ist eine schlechte Nutzung des Threadpools. 21
Fragestellungen und Maßnahme Fragestellung Wie sieht die Out-of-the-Box Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Implementierung eines Prozesses in Camunda BPM Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Vergleich der optimierten Implementierung mit einer Java Applikation 22
Zusammenfassung/Ausblick 1. Parallele Ausführung in Camunda BPM ist möglich. 2. Die aktuelle Lösung ist nicht zufriedenstellend. Der Entwickler scheint gegen die Engine zu entwickeln und Workarounds zu implementieren die Kompromisse zwischen paralleler Ausführung und Konsistenz darstellen. 3. Die Leistung der parallele Ausführung ist nicht effizient. Wie funktionieren andere BPMS in Hinblick auf ein standardisiertes Konzept der parallelen Ausführung? Können vergleichbare Softwaresysteme als Vorbild genommen werden, um bessere Ergebnisse zu erzielen? Kann die parallele Ausführung nicht in das Modell von BPMN eingeführt werden? 23