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 BPMS liefern eine hohe Transparenz, Monitoring von Prozessen und Hilfe bei der Entwicklung. BPMN ist eine standardisierte Modellierungssprache zum erstellen ausführungsnaher Prozesse. Herausforderung Dunkelverarbeitung spielt eine große Rolle in Geschäftsprozessen. Für eine leistungsfähige Dunkelverarbeitung ist Parallele Ausführung von Aufgaben notwendig. Konflikte 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 Maßnahme Wie sieht die „Out-of-the-Box“ Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Implementierung eines Prozesses mit parallelem Konstrukt in Camunda BPM Wie kann die Implementierung eines Prozesses bei Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? 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 Ergebnis Implementierung eines Prozesses in Camunda BPM • Paralleles Gateway sorgt nicht für eine parallele Verarbeitung der Ausführungspfade • Die Ausführung ist nicht intuitiv 7 Fragestellungen und Maßnahme Fragestellung Maßnahme Wie sieht die „Out-of-the-Box“ Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Implementierung eines Prozesses in Camunda BPM Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? 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 Ergebnis Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren • 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 Maßnahme Wie sieht die „Out-of-the-Box“ Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Implementierung eines Prozesses in Camunda BPM Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? 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 Sp 10.000.000 Sp 20.000.000 Sp 1 2 4 8 21259 11826 11773 7605 1,00 1,80 1,81 2,80 61162 33796 31157 17425 1,00 1,81 1,96 3,51 174282 95964 95521 56971 1,00 1,82 1,82 3,06 Java Applikation p\n 5.000.000 Sp 10.000.000 Sp 20.000.000 Sp 1 2 4 8 21094 10861 5805 4318 1,00 1,94 3,63 4,89 59702 30755 16641 12403 1,00 1,94 3,59 4,81 168817 87003 48402 34877 1,00 1,94 3,49 4,84 20 Fragestellung Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? Maßnahme Ergebnis Vergleich der optimierten Implementierung mit einer Java Applikation • 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 Maßnahme Wie sieht die „Out-of-the-Box“ Implementierung eines parallel zu bearbeitenden Prozesses in Camunda BPM aus? Wie funktioniert sie? Implementierung eines Prozesses in Camunda BPM Wie kann die Implementierung eines Prozesses in Camunda BPM durch spezifische Konfiguration in der Software erreicht oder optimiert werden? Softwarespezifische Konfigurationen, um den Prozess zu parallelisieren und die Laufzeiten zu optimieren Wie effizient ist die Implementierung eines Prozesses in Camunda BPM im Vergleich zu einer Java Applikation? 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