Embeddable Process Engines mit
BPMN 2.0
Das Beste aus verschiedenen Welten
bernd.ruecker@camunda.com
Bernd Rücker
camunda services GmbH
Was ist Prozessautomatisierung?
…
Das Ganze ist ein BPMN Prozess
<process id="invoice" isExecutable="true">
<startEvent name="Rechnung eingegangen" />
<userTask name="Rechnung freigeben" />
<exclusiveGateway name="Freigabe erfolgt?"
...
Aufgaben-
Zuweisung
Service-Call Service-Call
Aufgaben-
Zuweisung
Process Engine
Prozessbeteiligter IT-System IT-System Prozessbeteiligter
Messung der
Durchlaufzeit
Monitoring und
Reporting
Prozessautomatisierung mit Process Engine
Ausführbares
Prozessmodell
Human Workflow
Management
Service
Orchestration
Engines & BPMN sind mächtig
Der Prozess wird sichtbar …statt Code…
…im
Fachbereich…
Was man möchte
Ebene 2
Operatives Prozessmodell
Ebene 3a
Technisches
Prozessmodell
Ebene 1
Strategisches
Prozessmodell
Ebene 3b
IT-Spezifikation
Ebene 4b
Implementierung
Prozesslandschaft
Inhalt: Prozess im Überblick
Ziel: Schnelles Verständnis
Semantik: logisch-abstrakt
Inhalt: Operative Abläufe
Ziel: Abstimmung von Details
Semantik: physisch-konkret
Inhalt: Technische Details
Ziel: Umsetzung
Semantik: physisch-konkret
Fachlich
(Business)
Technisch
(IT)
Mit Process Engine
Ohne Process Engine
Was oft dahintersteckt
Und die Hersteller auch verkaufen
Business
User
Software
Developer
Missverständnisse & Fehler
Missverständnisse & Fehler
WRONG
Unsere Vision
BPM + Java
Embeddable Process Engine
@Inject
ProcessEngine engine;
Embeddable Engine
@Inject
private ProcessEngine engine;
[…]
Deployment deployment = engine.getRepositoryService()
.createDeployment()
.addClasspathResource("invoice.bpmn")
.deploy();
engine.getRuntimeService().startProcessInstanceByKey("invoice");
List<Task> list = engine.getTaskService().createTaskQuery().list();
HashMap<String, Object> variables = new HashMap<String, Object>();
variables.put("approver", "bernd");
engine.getTaskService().complete(list.get(0).getId(), variables);
CDI / Spring
(if you want)
Services to talk
to the engine
Use TX / JTA /
EJB
(if you want)
Some code
<process ...>
<serviceTask camunda:delegateExpression="#{svnService}"
name="PDF in SVN ablegen">
Process XML refers
CDI/Spring bean
or Java Class
Code is executed when
process instances runs
through
@Named("svnService")
public class StorePDFDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
String someData = (String) execution.getVariable("someData");
Nahtlose Integration
IT infrastructure
camunda BPM
• Components (BPM, ESB, BRM etc.)
• Technologies (UI, Persistence etc.)
• Programming Model (Java EE, Spring, REST etc.)
• Test Automation (JUnit, Atmosphere etc.)
• Continues Integration (Jenkins etc.)
• Runtime Container (Tomcat, JBoss, WAS etc.)
• IDE (Eclipse, etc.)
BPM Suite
IT infrastructure
Apropos Toolchain & IDE Integration
BPMN 2.0 for Business-IT-Alignment
My BPMN 2.0
Modeler
Was wir nicht mehr wollen:
Fachkonzept
Ich Kunde,
Du Knecht!
Denk doch
mal mit!
BPMN 2.0 Methodik 2
3a
1
3b
4
Biz
IT
BPMN-Methodik(c) camunda services GmbH
Anwender
Anwender
Technischer
Prozess
Das operative Prozessmodell gemeinsam entwickeln
Entwickler /
ArchitektenFach-
anwender
Organisatoren /
Business
Analysten
so erlebt z.B. bei:
Das geht dann auch komplizierter…
Automatisierung?
Business Process Maturity Levels
# Name Description
1 Initial Wherein business processes are performed in inconsistent
sometimes adhoc ways with results that are difficult to
predict.
2 Managed Wherein management stabilizes the work within local work
units to ensure that it can be performed in a repeatable way
that satisfies the workgroup‘s primary commitments.
However, work units performing similar tasks may use
different procedures.
3 Standardized Wherein common, standardizes processes are synthesized
from best practices identified in the work groups and
tailoring guidelines are provided for supporting different
business needs. Standard processes provide an economy of
scale and a foundation for learning from common measures
and experience.
4 Predictable Wherein the capabilities enabled by standard processes are
exploited and provided back into the work units.
5 innovative Wherein both proactive and opportunistic improvement
actions seek innovations.
Jeder Geschäftsprozess muss geklärt werden
Reifegrad
Ist
Reifegrad
Soll
Möglichkeiten des
Prozessmanagements
Häufige Fälle
2/3 2/3 Ist-Dokumentation;
Soll-Gestaltung
Support-Prozesse
1 2/3 Soll-Gestaltung Kern-Prozesse
1 1 - Management-
Prozesse
Beispiel: Schadenregulierung ≠ Schadenregulierung
Schadenregulierungsprozess bei KfZ
Parameter:
- Relativ häufig
- Schadensummen relativ niedrig bzw.
- geringe mögliche Bandbreite der Summen
- Regulierung muss effizient sein
Konsequenzen:
- Standardisierter Ablauf
- Dynamik nur bei Ausnahmen (Betrugsverdacht)
- Kaum „Knowledge-Worker“ erforderlich
- Automatisierung möglich und lohnend
- Kann mit BPMN präzise beschrieben werden
Schadenregulierungsprozess bei Unfall
Parameter:
- Relativ selten
- Schadensummen relativ hoch bzw.
- Hohe mögliche Bandbreite (Rente etc.)
- Regulierung muss effektiv sein (=> wenig Auszahlung)
Konsequenzen:
- Wenig standardisierter Ablauf, viel Dynamik
- Basiert auf Know-how und Motivation der Sachbearbeiter
- Automatisierung kann höchstens unterstützen
- Kann mit BPMN nur grob beschrieben werden
camunda BPM
Auf camunda.org…
Wie kann Ich mit-REDEN?
Mit-MACHEN!
Wer macht sowas schon heute?
…und viele mehr…
Produktisierung
Why BPMN belongs in the toolbox of every Java developer
it‘s easy it‘s visible it connects
X
Quelle: Zitty, Berlin
Vielen Dank!
Vielen Dank!
camunda services GmbH
Zossener Str. 55-58
10961 Berlin
Telefon: +49 30 664 0409-00
Telefax: +49 30 664 0409-29
Email: info@camunda.com
www.bpm-guide.de
Der Praxis-Blog zu BPM:
@camunda.com
Geschäftsführer
Bernd Rücker
bernd.ruecker
Embeddable Process Engines
mit BPMN 2.0 - das Beste aus
verschiedenen Welten
Achenkirch, 26.04.2013

SE-Live 2013: Embeddable Process Engines mit BPMN 2.0

  • 1.
    Embeddable Process Enginesmit BPMN 2.0 Das Beste aus verschiedenen Welten bernd.ruecker@camunda.com
  • 2.
  • 3.
  • 4.
    Das Ganze istein BPMN Prozess
  • 5.
    <process id="invoice" isExecutable="true"> <startEventname="Rechnung eingegangen" /> <userTask name="Rechnung freigeben" /> <exclusiveGateway name="Freigabe erfolgt?" ... Aufgaben- Zuweisung Service-Call Service-Call Aufgaben- Zuweisung Process Engine Prozessbeteiligter IT-System IT-System Prozessbeteiligter Messung der Durchlaufzeit Monitoring und Reporting Prozessautomatisierung mit Process Engine Ausführbares Prozessmodell Human Workflow Management Service Orchestration
  • 6.
    Engines & BPMNsind mächtig
  • 7.
    Der Prozess wirdsichtbar …statt Code… …im Fachbereich…
  • 8.
    Was man möchte Ebene2 Operatives Prozessmodell Ebene 3a Technisches Prozessmodell Ebene 1 Strategisches Prozessmodell Ebene 3b IT-Spezifikation Ebene 4b Implementierung Prozesslandschaft Inhalt: Prozess im Überblick Ziel: Schnelles Verständnis Semantik: logisch-abstrakt Inhalt: Operative Abläufe Ziel: Abstimmung von Details Semantik: physisch-konkret Inhalt: Technische Details Ziel: Umsetzung Semantik: physisch-konkret Fachlich (Business) Technisch (IT) Mit Process Engine Ohne Process Engine
  • 9.
  • 10.
    Und die Herstellerauch verkaufen Business User Software Developer
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    Embeddable Engine @Inject private ProcessEngineengine; […] Deployment deployment = engine.getRepositoryService() .createDeployment() .addClasspathResource("invoice.bpmn") .deploy(); engine.getRuntimeService().startProcessInstanceByKey("invoice"); List<Task> list = engine.getTaskService().createTaskQuery().list(); HashMap<String, Object> variables = new HashMap<String, Object>(); variables.put("approver", "bernd"); engine.getTaskService().complete(list.get(0).getId(), variables); CDI / Spring (if you want) Services to talk to the engine Use TX / JTA / EJB (if you want)
  • 16.
    Some code <process ...> <serviceTaskcamunda:delegateExpression="#{svnService}" name="PDF in SVN ablegen"> Process XML refers CDI/Spring bean or Java Class Code is executed when process instances runs through @Named("svnService") public class StorePDFDelegate implements JavaDelegate { public void execute(DelegateExecution execution) throws Exception { String someData = (String) execution.getVariable("someData");
  • 17.
    Nahtlose Integration IT infrastructure camundaBPM • Components (BPM, ESB, BRM etc.) • Technologies (UI, Persistence etc.) • Programming Model (Java EE, Spring, REST etc.) • Test Automation (JUnit, Atmosphere etc.) • Continues Integration (Jenkins etc.) • Runtime Container (Tomcat, JBoss, WAS etc.) • IDE (Eclipse, etc.) BPM Suite IT infrastructure
  • 18.
    Apropos Toolchain &IDE Integration
  • 19.
    BPMN 2.0 forBusiness-IT-Alignment My BPMN 2.0 Modeler
  • 20.
    Was wir nichtmehr wollen: Fachkonzept Ich Kunde, Du Knecht! Denk doch mal mit!
  • 21.
    BPMN 2.0 Methodik2 3a 1 3b 4 Biz IT BPMN-Methodik(c) camunda services GmbH Anwender Anwender Technischer Prozess
  • 22.
    Das operative Prozessmodellgemeinsam entwickeln Entwickler / ArchitektenFach- anwender Organisatoren / Business Analysten so erlebt z.B. bei:
  • 23.
    Das geht dannauch komplizierter…
  • 24.
  • 25.
    Business Process MaturityLevels # Name Description 1 Initial Wherein business processes are performed in inconsistent sometimes adhoc ways with results that are difficult to predict. 2 Managed Wherein management stabilizes the work within local work units to ensure that it can be performed in a repeatable way that satisfies the workgroup‘s primary commitments. However, work units performing similar tasks may use different procedures. 3 Standardized Wherein common, standardizes processes are synthesized from best practices identified in the work groups and tailoring guidelines are provided for supporting different business needs. Standard processes provide an economy of scale and a foundation for learning from common measures and experience. 4 Predictable Wherein the capabilities enabled by standard processes are exploited and provided back into the work units. 5 innovative Wherein both proactive and opportunistic improvement actions seek innovations.
  • 26.
    Jeder Geschäftsprozess mussgeklärt werden Reifegrad Ist Reifegrad Soll Möglichkeiten des Prozessmanagements Häufige Fälle 2/3 2/3 Ist-Dokumentation; Soll-Gestaltung Support-Prozesse 1 2/3 Soll-Gestaltung Kern-Prozesse 1 1 - Management- Prozesse
  • 27.
    Beispiel: Schadenregulierung ≠Schadenregulierung Schadenregulierungsprozess bei KfZ Parameter: - Relativ häufig - Schadensummen relativ niedrig bzw. - geringe mögliche Bandbreite der Summen - Regulierung muss effizient sein Konsequenzen: - Standardisierter Ablauf - Dynamik nur bei Ausnahmen (Betrugsverdacht) - Kaum „Knowledge-Worker“ erforderlich - Automatisierung möglich und lohnend - Kann mit BPMN präzise beschrieben werden Schadenregulierungsprozess bei Unfall Parameter: - Relativ selten - Schadensummen relativ hoch bzw. - Hohe mögliche Bandbreite (Rente etc.) - Regulierung muss effektiv sein (=> wenig Auszahlung) Konsequenzen: - Wenig standardisierter Ablauf, viel Dynamik - Basiert auf Know-how und Motivation der Sachbearbeiter - Automatisierung kann höchstens unterstützen - Kann mit BPMN nur grob beschrieben werden
  • 28.
  • 29.
  • 30.
    Wie kann Ichmit-REDEN?
  • 31.
  • 32.
    Wer macht sowasschon heute? …und viele mehr…
  • 33.
  • 34.
    Why BPMN belongsin the toolbox of every Java developer it‘s easy it‘s visible it connects X
  • 35.
  • 36.
  • 37.
    Vielen Dank! camunda servicesGmbH Zossener Str. 55-58 10961 Berlin Telefon: +49 30 664 0409-00 Telefax: +49 30 664 0409-29 Email: info@camunda.com www.bpm-guide.de Der Praxis-Blog zu BPM: @camunda.com Geschäftsführer Bernd Rücker bernd.ruecker Embeddable Process Engines mit BPMN 2.0 - das Beste aus verschiedenen Welten Achenkirch, 26.04.2013