process monitoring mit camunda
TRANSCRIPT
MONITORING UND KPIS
MIT CAMUNDA BPM
HOLGER HAGEN, NOVATEC CONSULTING GMBH
ERIC KLIEME, NOVATEC CONSULTUNG GMBH
Kundenlogo bitte
hier platzieren
AGENDA
VORSTELLUNG
CAMUNDA
KURZVORSTELLUNG
NOVATEC
Die NovaTec Unternehmensgruppe gliedert sich in drei eigenständige operative
Einheiten. Diese sind 100%-Töchter der NovaTec Holding GmbH.
NovaTec Holding GmbH
NovaTec Consulting GmbH
NovaTec Solutions GmbH
NovaTec Products GmbH
Ganzheitliche IT-
Beratung,
Produktvorentwicklung
Lösungen und
Dienstleistungen im
Bereich IT-Strategie
und IT-Management
Produktentwicklung,
Product Lifecycle
Management,
Produktberatung
Berlin
Frankfurt/Main
München Stuttgart
(Zentrale)
Jeddah
(Saudi-Arabien)
5 23.11.2015 Monitoring und KPIs mit camundaBPM
Unsere Kernkompetenzen
Dienstleistungsportfolio
Unser Anspruch: Tiefes Spezialwissen und eine fundierte Beratung, die nicht nur
kurzfristig Probleme löst. Sondern nachhaltige und strategische Vorteile bietet.
Data Center
Automation
Enterprise
Application
Development
Application
Performance
Management
Agile Methods
Enterprise
Application
Integration
Business
Process
Management
Enterprise
Mobility
6 23.11.2015 Monitoring und KPIs mit camundaBPM
Softwarelösungen für alle Anforderungen
Produktportfolio
Mit unserer langjährigen Themenkompetenz und dem einzigartigen Know-how erfüllen
unsere Produkte die Anforderungen unserer Kunden punktgenau.
Provisioning
Lizenzmanagement
Lasttest
Performanceanalyse
7 23.11.2015 Monitoring und KPIs mit camundaBPM
Damit wir unseren Kunden immer die optimalen Lösungen bieten können, haben wir
mit verschiedenen IT-Unternehmen umfassende Partnerschaften geschlossen.
8 23.11.2015 Monitoring und KPIs mit camundaBPM
Wir führen Kooperationen mit zahlreichen Hochschulen und Bildungspartnern, um
technologisch und methodisch immer auf der Höhe der Zeit zu sein, junge Talente zu
fördern und den technischen Fortschritt aktiv mitzugestalten.
9 23.11.2015 Monitoring und KPIs mit camundaBPM
GRUNDLAGEN
PROZESSMONITORING
Der Business Process Management-Zyklus
11
Modellierung
Simulation
Optimierung
Umsetzung
und
Ausführung
Überwachung
Aufnahme der Geschäftsprozesse (SOLL bzw. IST)
Definition von KPIs
Zuweisung von Ressourcen
Reaktion in Echtzeit
Einflussnahme auf die
Prozessabläufe durch
Anpassung der
Regeln und
Parameter
Kontinuierliche Prozessverbesserung
Einflussnahme auf die Prozessabläufe durch
Anpassung des Modells auf Grund von
Erkenntnissen aus dem laufenden Betrieb
Überwachung der definierten KPIs
Benachrichtigung bei kritischen
Abweichungen
Prüfung von Varianten
Korrektur der identifizierten Schwachstellen
Simulation der Modelle
Prüfung auf Schwachstellen (z.B.
Engpässe, überflüssige Tätigkeiten,
lange Wartezeiten, etc.)
Funktionale und Lasttests
Umsetzung der Prozesse
(idealerweise IT-unterstützt
mit einer Prozesslaufzeit-
umgebung)
Anbindung an die
Umsysteme
Etablierung der
Schnittstellen
23.11.2015 Monitoring und KPIs mit camundaBPM
Ein einfaches Beispiel
Wieviele Prozesse
laufen aktuell?
Wieviele Aufgaben
liegen aktuell an?
Wieviele Prozesse
sind heute
gestartet worden?
Was war die
Durchlaufzeit
meiner Prozesse?
23.11.2015 Monitoring und KPIs mit camundaBPM 12
Messpunkte können über intermediate Events auch explizit gemacht werden.
23.11.2015 Monitoring und KPIs mit camundaBPM 13
Wieviele Vorgänge
waren bereits
bearbeitet?
Vorteile:
• Explizit sichtbar im Prozess
• Erleichtert die Diskussion mit
den Prozessverantwortlichen
• Leichtere Auswertung / leichtere
Erstellung von Reports
In manchen Szenarien sollen die Messpunkt bzw. Meilensteine auch in einem
externen System (z.B. einem Geschichtsbuch) abgelegt werden.
14
Vorteile:
• Nutzung eines eigenen, dedizierten Datenmodells für die Events
• Ablage der Informationen in einem separaten Datentopf, losgelöst vom Lifecycle der Prozessinstanz
(interessant möglicherweise sowohl für die Sachbarbeiter als auch für die Revision)
• (Noch) leichtere Erstellung von Auswertungen Reports auf Grund der eigenen Datenstruktur
23.11.2015 Monitoring und KPIs mit camundaBPM
Bei der Nutzung einer externen Ablage können auch weitere Systeme angebunden
werden, um übergreifende Aspekte zu überwachen
15 23.11.2015 Monitoring und KPIs mit camundaBPM
Postkorb-
anwendung
Inputm
anagem
ent
Werden alle Vorgänge
erfolgreich an das
nächste System
übergeben?
Wie oft werden Aufgaben
an andere Bereiche im
Unternehmen
weitergeleitet?
Fach-
anwendung
Wie oft musste bei der
Bearbeitung ein neuer
Partner/Beteiligter im
System angelegt werden?
Handelt es sich bei der Bearbeitung um eine Fallbearbeitung, so wird das
übergreifende Monitoring noch interessanter…
16 23.11.2015 Monitoring und KPIs mit camundaBPM
Fach-
anwendung
??? ??? ??? Auf Grund des weniger strukturierten Ablaufs sind
Auswertungen zum Ablauf umso interessanter:
• Wie lief der Fall ab?
• Gibt es wiederkehrende Muster in der
Bearbeitung?
• Kann ich daraus Erkenntnisse für zukünftige
Fälle ziehen?
17 23.11.2015 Monitoring und KPIs mit camundaBPM
Auf Basis eines Geschichtsbuchs oder ähnlichem lassen sich neben dem klassischen
BI-Reports auch Algorithmen wie das Process Mining anwenden
18 23.11.2015 Monitoring und KPIs mit camundaBPM
Bis hierher ist das alles klassisches BI-Geschäft…
Quelle: Akash Kapoor http://www.google.de/imgres?imgurl=http%3A%2F%2Felearning.greatlakes.edu.in%2Fpgpba%2Fblog%2Fwp-content%2Fuploads%2F2014%2F09%2Fakash-
kapoor.png&imgrefurl=http%3A%2F%2Felearning.greatlakes.edu.in%2Fpgpba%2Fblog%2Ftransition-from-business-intelligence-to-web-analytics-role-
perspective%2F&h=850&w=1791&tbnid=rXewqHcP8kmZmM%3A&zoom=1&docid=Zaz6NkUS_cMmSM&ei=NhiIVcvWBOj-ywOY-
aWwAQ&tbm=isch&iact=rc&uact=3&dur=4685&page=2&start=39&ndsp=46&ved=0CKgBEK0DMCw
Muss noch schneller und zeitnah ausgewertet werden, so bietet sich eine Complex
Event Processing (CEP) – Architektur an
Quelle: Wikipedia
(https://fr.wikipedia.org/wiki/Traitement_des_%C3%A9v%C3%A9nements_complexes#/media/File:Complex_Event_Processing.jpg)
19 23.11.2015 Monitoring und KPIs mit camundaBPM
Realtime Monitoring von Prozessen mit Complex Event Processing
20 23.11.2015 Monitoring und KPIs mit camundaBPM
??? Stehen die beiden
Ereignisse im richtigen
Verhätlnis zueinander?
CEP-Plattform
JBoss WSO2
… wer noch mehr wissen will, kann es auch mit Predictive Analytics versuchen.
21
Beispiel:
Wieviel mehr Verträge würde ich abschließen, wenn eine Gesundheitsprüfung
schneller durchgeführt würde?
Die Wahrscheinlichkeit für die Policierung (Y = 4) eines Vertrages in
Abhängigkeit der Durchlaufzeit in der Risikoprüfung und des Alters
des Versicherungsnehmers kann nun durch folgende Formel
berechnet werden:
23.11.2015 Monitoring und KPIs mit camundaBPM
EINBLICK IN DIE TECHNIK
Und nun zur Technik…[camundaBPM]
Modellierung
Simulation
Optimierung
Umsetzung
und
Ausführung
Überwachung
Aufnahme der Geschäftsprozesse (SOLL bzw. IST)
Definition von KPIs
Zuweisung von Ressourcen
Überwachung Bietet mir camunda Dashboards für meine KPIs?
Gibt es Alerting-Möglichkeiten?
Wie kann ich auf Auffälligkeiten reagieren?
Modellierung
Kann ich KPIs in camunda modellieren?
Kann ich modellieren, welche Informationen
gespeichert werden sollen und welche nicht?
Überwachung der definierten KPIs
Benachrichtigung bei kritischen
Abweichungen
Prüfung von Varianten
Korrektur der identifizierten Schwachstellen
Simulation der Modelle
Prüfung auf Schwachstellen (z.B.
Engpässe, überflüssige Tätigkeiten,
lange Wartezeiten, etc.)
Funktionale und Lasttests
Umsetzung der Prozesse
(idealerweise IT-unterstützt mit
einer Prozesslaufzeit-
umgebung)
Anbindung an die Umsysteme
Etablierung der Schnittstellen
Umsetzung Welche historischen Daten
speichert camunda für mich?
Wie kann ich externe
Datentöpfe anbinden?
23 23.11.2015 Monitoring und KPIs mit camundaBPM
Umsetzung – die camundaBPM History-Architektur
24
• camundaBPM emittiert per-default einen Eventstrom für durchgeführte Aktionen (u.A. Start, End) im Kontext typischer
Artefakte wie Tasks, Aktivitäten, Prozessinstanzen oder Cases
• Standardmäßig wird dieser in die History Tabellen geschrieben, getrennt von Laufzeit Tabellen
• Das Detaillevel der History ist konfigurierbar, es kann ein eigenes Level definiert werden
• Es kann ein eigenes History-Backend verwendet werden
History Level Umfang
NONE Keine Events
ACTIVITY Start, Update, End-Events von Aktivitäten, d.h.
Prozesse, Tasks, Cases etc.
AUDIT Zusätzlich für Variablen, nur neueste Version
FULL Variablen-Historisierung, Taskoperation, Historische
Jobs, Incidents
AUTO Für mehrere Engines auf einer Datenbank
CUSTOM Gemäß Anforderungen, bspw. auf Prozessdefinitionen
oder bestimmte Aktivitäten oder Events begrenzt
23.11.2015 Monitoring und KPIs mit camundaBPM
Das Datenbankschema der Camunda History Tabellen
25
Abgeschlossene
Usertasks
Abgeschlossene
Aktivitäten
Durchgeführte
Nutzeroperationen
Abgeschlossene
Entscheidungen
23.11.2015 Monitoring und KPIs mit camundaBPM
Abgeschlossene
Prozessinstanzen
Parameter, die in
Entscheidungen
benötigt wurden
Anpassungsmöglichkeiten des History-Backends
26
Erstellt History Events, befüllt diese mit Informationen der
Runtime-Artefakte und emittiert die Ereignisse
- Erhält nur Ereignisse entsprechend Detail-Level
Verarbeitet Events. Standardmäßig erfolgt die
Speicherung in den History Tabelle
Eigene Implementierung möglich
Eigene Implementierung möglich
23.11.2015 Monitoring und KPIs mit camundaBPM
Modellierung von KPIs - BPMN
27
explizit
implizit Die History-Tabellen werden
automatisch gefüllt (gemäß
Level)
KPIs können auf Basis von
automatisch abgespeicherten
Informationen aggregiert
werden
Die History-Tabellen werden
automatisch gefüllt (gemäß
Level)
Intermediate Events werden
durchlaufen und hinterlassen
dedizierte Einträge in der
Aktivitäts-Tabelle
KPIs können auf Basis von
dedizierten Einträgen ermittelt
werden
Woher weiß ich, dass dieser
Pfad durchlaufen wurde?
23.11.2015 Monitoring und KPIs mit camundaBPM
Modellierung von KPIs – CMMN
28 23.11.2015 Monitoring und KPIs mit camundaBPM
• CMMN besitzt explizite „Milestones“ um
erreichbare (fachliche) Zustände zu modellieren
Milestones sind explizit in History aufzufinden
Lebenszyklus Milestone
Der Lebenszyklus als implizite Informationsquelle – Task Lifecycle BPMN
30 23.11.2015 Monitoring und KPIs mit camundaBPM
Explizite Implementierung von Event-Logging in Prozessen / Cases
31
Mit Hilfe des Standard Task/Execution-Listener Konzeptes
Implementierung einer KPI/Messpunkt-Logik in notify-Methode
Annotieren der entsprechenden Tasks o. Aktivitäten im Modell
Kann durch eigenen Parse-Listener automatisiert im Hintergrund stattfinden
Einhängen in CDI-Event Bus mit Hilfe der „CDI Event Bridge“
Baut auf Publish/Subscribe Mechanismus von CDI auf
Definition von Events, Emittieren mit fire(), Observieren mit @Observes
camundaBPM bietet Filtermöglichkeiten
@BusinessProcessDefinition, @StartActivity, @EndActivity, @AssignTask…
public void startArchiveDocuments(@Observes @BusinessProcessDefinition(“documentRouting") @StartActivity(“archive documents") BusinessProcessEvent evt) { // handle event }
public void endArchiveDocuments(@Observes @BusinessProcessDefinition(“documentRouting")
@EndActivity(“archive documents") BusinessProcessEvent evt) { // handle event }
Beispiel
23.11.2015 Monitoring und KPIs mit camundaBPM
DEMO
Überwachung von KPIs – camunda BPM
33
Definition eigener Queries
Zugriff auf HistoryService
via Java- und REST-API
Plugin-Schnittstelle Zugriff von extern möglich:
- Nagios
- ELK-Stack
- …
23.11.2015 Monitoring und KPIs mit camundaBPM
Zugriff via Java-API oder REST-API
34
camundaBPM stellt HistoryService für Abfragen an History-Tabellen bereit (Fluent-API):
camundaBPM stellt REST-Schnittstelle für Abfragen an History-Tabellen bereit:
historyService.createHistoricProcessInstanceQuery().finished()
.processDefinitionId(„inputRouting").orderByProcessInstanceDuration().desc().listPage(0, 100);
historyService.createHistoricDetailQuery().variableUpdates().processInstanceId("123")
.orderByVariableName().asc().list()
historyService.createUserOperationLogQuery().successLog().list();
Beispiel
23.11.2015 Monitoring und KPIs mit camundaBPM
Erstellen eines Cockpit- (oder Tasklist-) Plugins
35
Einbindung in Cockpit via Java
ServiceLoader Facilities
Ermöglicht Einbindung neuer
Funktionalität ohne Modifikation des
Source-Codes
Vorgabe definierter Service-
Interfaces und Klassen für
Implementierung
Bspw. Ressourcen
Standard-Bestandteile vom Cockpit
sind als Plugin umgesetzt
Positionierung eines Plugins wird
über Plugin-Points definiert
Camunda Plugin-Store ermöglicht
das individuelle Zusammenstellen
der Plugins zu einem Cockpit
http://camunda.org/plugins/
Cockpit-Architektur
23.11.2015 Monitoring und KPIs mit camundaBPM
Definieren eigener Abfragen an die Datenbank [Kontext: Cockpit-/Tasklist-Plugin]
36
SQL Definition wird in einem XML abgelegt
Das Mapping der Datenelemente erfolgt dann
mittels eines DTOs
MyBatis hat weitere Möglichkeiten die SQL
Abfragen zu manipulieren
Einfache Logik-Konstrukte wie if/else möglich
(bspw. für Nutzung datenbankspezifischer
Funktionen)
Auslagern von wiederverwendbaren
Bestandteilen
23.11.2015 Monitoring und KPIs mit camundaBPM
Das Camunda Statistics Plugin – Community Extension der NovaTec
37
Cockpit-Plugin, welches Informationen
aus History-Datenbank visualisiert
Durchlaufzeiten von Prozessinstanzen,
Aktivitäten, Cases
Start/Ende von Prozessinstanzen /
Aktivitäten
23.11.2015 Monitoring und KPIs mit camundaBPM
Camunda Statistics Plugin – Verwendete Technologien
38
Angular JS
• Services für Querschnittsfunktion [Singleton], bspw. Zugriff auf Ressourcen
• Controller für Verknüpfung von Frontend mit Services, bspw. Verknüpfen von Daten mit Plots
• Directives um HTML spezifisch anzureichern, auf Attribut oder Element-Ebene <plot></plot>
• Shipped with camundaBPM
D3.js, nvd3
• JavaScript Visualisierungsframework auf Basis von HTML, SVG und CSS (Open Source)
• Kombination mit Angular führt zu Anwendung auf Basis von Directives
Twitter Bootstrap, angular-ui.bootstrap
• CSS Framework bereitgestellt durch Twitter
• Shipped with camundaBPM (kombiniert mit Angular auf Basis von Directives)
Camunda REST API & Custom Queries
• Custom Queries für direkte Aggregation auf Datenbank-Ebene (AVG, MIN, MAX)
• REST-API für restliche Daten, Aggregation mit JavaScript
HTML 5 Local Storage
• Speichern von Plugin-Konfiguration
23.11.2015 Monitoring und KPIs mit camundaBPM
DEMO
Camunda Statistics Plugin – Roadmap / geplante Features
40
Blogbeitrag über aktuelle Features:
• http://blog.novatec-gmbh.de/camunda-cockpit-plugin-part-1/
• http://blog.novatec-gmbh.de/camunda-cockpit-plugin-part-2/
• http://blog.novatec-gmbh.de/camunda-cockpit-plugin-part-3/
Performance Optimierung
Case KPIs
Visualisierung von Fachdaten
Generische / Manuelle Auswertung von KPIs
To be continued…
Camunda Community Contributions sind Open Source und stehen unter der Apache License
…feel free to contribute ;)
23.11.2015 Monitoring und KPIs mit camundaBPM
Ehemaliges „Heatmap“ Community Plugin ist in EE Edition 7.4 enthalten
23.11.2015 Monitoring und KPIs mit camundaBPM 41
Exkurs: Integration in ein Complex-Event-Processing System [WSO2 CEP]
42
CEP Dashboard
JMS, HTTP, SOAP, Kafka
bspw. via eigenem
HistoryEventHandler
camundaBPM JMS, HTTP, SOAP, Kafka
…
Data Warehouse
Elasticsearch
„Realtime“
Erste Aggregation
…
Fachliche Historisierung
23.11.2015 Monitoring und KPIs mit camundaBPM
Zusammenfassung: Monitoring und KPIs mit camundaBPM
43
• camundaBPM bietet out-of-the-box bereits eine umfangreiche, anpassbare und erweiterbare
Historisierung:
• Out-of-the-box History-Datenbank mit definierten Leveln
• Eigene History-Eventhandler bzw. eigene History-Level möglich
• Explizites Modellieren oder Implementieren von Event-Logging
• Implizites Event-Logging durch Plugins
• Bereitstellung von Schnittstellen für Abfrage und Präsentation
• HistoryService-API
• Plugin-Mechanismus für Tasklist oder Cockpit
• REST-API
23.11.2015 Monitoring und KPIs mit camundaBPM
VIELEN DANK FÜR EURE AUFMERKSAMKEIT
WWW.NOVATEC-GMBH.DE
HOLGER HAGEN, NOVATEC CONSULTING GMBH
ERIC KLIEME, NOVATEC CONSULTUNG GMBH
Kundenlogo bitte
hier platzieren