Willkommen an der Hochschule Reutlingen

Werbung
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
Herunterladen