BPMN UND WORKFLOWS
IN .NET – DAS GEHT!
21. Februar 2017 | Michael Prüfer & Bernd Rücker
Basta! 2017
michael@pruefer.xyz
AUSGANGSSITUATION
AUSSCHNITT STELLT SICH VOR
 Medienbeobachtung
• 7.000 Printmedien
• 2.500 TV-Sendungen in 90 TV Sendern
• 4.500 Radio-Sendungen in 85 Radio-Sendern
• 120.000 Online-Medien
• 8 Nachrichtenagenturen
 Medienspiegel
 Medienanalyse
AUSGANGSSITUATION
 Legacy-System, mit klassischen Problemen
• Schnell gewachsenes System mit rapide geänderten Anforderungen
• Effizienz und Effektivität
• Dokumentation
• Skalierbarkeit
• Transparenz
• Erweiterbarkeit
• Deployment
AUSGANGSSITUATION
 Folge: hohe Wartungs- und Weiterentwicklungskosten
 Kommunikation über Systemabläufe mit Fachabteilungen schwierig
AUSGANGSSITUATION
 Neuentwicklung angestrebt unter Beachtung folgender Punkte
• Verfügbarkeit
• Skalierbarkeit
• Wartbarkeit
• Erweiterbarkeit
• Transparenz
• Dokumentation
AUSGANGSSITUATION
 Architekturentwurf sah stark nach einem Workflow-Management-System aus
 Idee, nach so etwas zu suchen (Wir können nicht die ersten sein die dieses
Problem haben!)
 Chef hatte da ne Idee :D => Camunda
Was ist Workflow?
*auch bekannt als Business Process Management
Beispiel
* Modelliert in BPMN
= ISO Standard für Modellierung und Ausführung
Realistischere Beispiele aus der Praxis
Herausforderungen
Human Task
Management
Service
Orchestrierung
Events, z.B.
Zeitsteuerung
Was man braucht
Zustand
Lang laufende
Prozesse
Timeouts &
Eskalationen
Monitoring &
Alarming
Was man darüber hinaus möchte: Sichtbarkeit!
Alarming by
management attention
GET /engine/default/incident/count
{
"count":1
}
OK. Aber warum Camunda?
The 7 sins of workflow and Java
Zero-code suites
Homegrown
engine
No engine Wrong engine Wrong usage
4
6
5
7
Fragt mich später!
Oder haltet ein Auge auf
@berndruecker
„Death by properties panel“
Script:
Please enter your complex code here.
(Without IDE support of course!)
BPM Suites
By the way, we introduce an own
development approach, IDE, version
control, user management, reporting, …
Zero Code & Entwickler
Wir haben
Probleme!
Es ist grauenvoll.
Ich hasse BPM!
Bernd Rücker
Mitgründer camunda
> 10+ Jahre Workflow-
Erfahrung
@berndruecker
bernd.ruecker@camunda.com
Camunda
Open Source BPM Plattform
Berlin + San Francisco
Inhabergeführt, kein
Fremdkapital
> 60 Mitarbeiter - wachsend
Camunda BPM
Ist eine
• entwicklerfreundliche
• Open Source – Plattform für
• Workflow & Business Process Management (BPM)
Geschäftsmodell: Enterprise Subscription
Unterstützt die Modellierung und Ausführung von
• BPMN 2.0
• CMMN 1.1
• DMN 1.1
Kostenloses Poster
verfügbar:
http://camunda.de/poster
Das Trio der Standards
Geschäftsentscheidung mit DMN 1.1
https://github.com/StephenOTT/Gov-DMN-Dog-License-Pricing-Example
Architektur
Cockpit
Modeler
DB
Tasklist Custom App
Business
Analyst
Java API
Engine
REST API
End User
Developer
Operator
Alter!
Java ?????
Weißt du, wo
du hier bist?
Architekturvorschlag mit .NET
Camunda
DB
.NET Anwendung
(Logik, BPMN,
Oberflächen, …)
Konsolenanwendung, WPF,
…
Eigener Server
(oder Cloud)
REST-API
Relationale Datenbank,
z.B. MS-SQL Server
.NET-Prozessanwendung
Camunda
Serviceaufrufe mit External Tasks
3.
Complete
2. Logik ausführen
1.
Fetch and lock
Live
Demo
External Task Workers
Architektur
Server
Camunda
Modeler
Camunda
Tasklist
Camunda
Cockpit
Camunda
Admin
Camunda Engine
(BPMN, CMMN, DMN)
Relationale DB
Prozessanwendung
(Console, WPF, Forms, App, …)
BPMN.xml REST APIDeploy
Microsoft
Visual Studio
Other .NET
Code
External
Task
Workers
Load/
Complete
Tasks
HTML Forms
Dateisystem /
Versionskontrolle
Camunda Client
(Klassenbibliothek)
http Client
Thread
NEUE ARCHITEKTUR & WORKFLOW
NEUE ARCHITEKTUR & WORKFLOW
NEUE ARCHITEKTUR & WORKFLOW
DB-Cluster
ElasticSearch
Cluster
SysServer
N Mal
Camunda
NEUE ARCHITEKTUR & WORKFLOW
DB-Cluster
TFS
Camunda
SysServer
N Mal
Binary Deployment
DACPACK
Rest Deployment
NEUE ARCHITEKTUR & WORKFLOW
Service Camunda
StartProcess
NEUE ARCHITEKTUR & WORKFLOW
Service Camunda
FetchAndLock
ExternalTask
NEUE ARCHITEKTUR & WORKFLOW
Service Camunda
Complete
Service Camunda
Failure
NEUE ARCHITEKTUR & WORKFLOW
NEUE ARCHITEKTUR & WORKFLOW
WAS WURDE ERREICHT
WAS WURDE ERREICHT?
 Verfügbarkeit
• Dev, Test, Live-System mit Camunda im Cluster-Betrieb
 Skalierbarkeit
• Sichergestellt durch die Anwendungsarchitektur
 Wartbarkeit
• Durch Anwendung von CleanCode-Prinzipien und Coding-Conventions
WAS WURDE ERREICHT?
 Erweiterbarkeit
• Camunda
 Transparenz
• Camunda
• ElasticSearch + Kibana
 Dokumentation
• Camunda
• CleanCode
ERFAHRUNGEN
ERFAHRUNGEN
 PoC mit Camunda-Consultant hat uns einen schnellen Einstieg ermöglicht
 Vorher genau definieren wie Variablen verarbeitet und durch den Workflow
mitgenommen werden
 Sehr gute Dokumentation (insbesondere Rest-API)
 Sehr gute Unterstützung durch den Support
• Schnelles Feedback und Lösungen von Camunda
 Prozessdefinition als Basis für Ausführung und Dokumentation ist super 
 Sehr positives Feedback aus den Fachabteilungen
AUSBLICK
 Bisher gesammelte Erfahrungen haben uns in unserer Entscheidung für
Camunda bestätigt
 Geplanter Ausbau des Prozessmodels für weitere Produktionsschritte
Download Camunda:
http://camunda.org/download/
http://camunda.de/trial/
Camunda kontaktieren:
https://camunda.com/de/bpm/
Enterprise Edition, Trainings,
Workshops, Proof of Concepts
Camunda Dokumentation
https://docs.camunda.org/
Forum, Network, …
https://camunda.org/
Loslegen
Beispiel-Anwendung &
Klassenbibliothek
https://github.com/berndruec
ker/camunda-dot-net-
showcase
Was zum Nachlesen…
Vielen Dank! Fragen?

BPMN und Workflows in .NET