Open Source BPM
mit BPMN 2.0 und Java
bernd.ruecker@camunda.com
bernd.ruecker@camunda.com
https://twitter.com/berndruecker

Publikationen

Mitgliedschaften
Consultants | Software Developers
www.camunda.com/jobs
Abends bei nem Bier…

Warum macht Ihr
eigentlich so ein

Alte-MännerThema
wie BPM?
Skalierung durch Automatisierung der Kernprozesse
Skalierbarkeit durch BPM

Ohne
Automatisierung

Mit
Automatisierung
BPM Missverständnisse & Fehler
Fehler: Prozess verstecken!

…im
Fachbereich…

…im Code…
Fehler: Mauern einziehen

•
•
•

ProzessKonzeption

ProzessUmsetzung

EPK
Flowchart-Like
„BPMN-But“
EPK, Flowchart-Like, BPMN-But

Antrag
prüfen

OK

Nicht OK

> 5h
real BPMN

OK

Antrag
prüfen
Nicht OK
5h
BPMN steht für ein höheres Kommunikationsniveau

„real“ BPMN

• EPK
• Flowchart-Like
• „BPMN-But“
BPMN-Prozessmodelle sind für BEIDE Fraktionen

Business

IT
Das operative Prozessmodell gemeinsam entwickeln

Fachanwender

Organisatoren /
Business
Analysten

Entwickler

Architekten &
Zentralbereiche
Beispielprozess
Menschlicher und technischer Fluss vermischt
Besser: Saubere Trennung!

Anwender

Technischer
Prozess

Anwender
Typische BPM-Architektur mit BPMN 2.0
Process
Administrator

BPMN 2.0

Process
Analyst

Speichern
(KPI) Monitoring

Process
Engineer

<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>

Process Engine
(KPI)
Reporting

Execution
auch BPMN 2.0
TaskLists /
Portal /
Mobile / etc.

B
et PE
c. L

ESB

Process
Participants

Legacy / Backend
intern / extern

Rule
Engine

Process
Manager
Live Demo:
BPMN 2.0
Workflow-Engine
Shiny BPM Suites?
BPMSuite
Der Nutzen entsteht erst durch die Anwendung

BPMSuite

+

SoftwareEntwicklung

=

ProzessAnwendung
Das große Versprechen
BPMSuite

+

SoftwareEntwicklung

=

ProzessAnwendung

Fachanwender

Software
Entwickler
Ein fundamental falscher Ansatz*

kompliziert
restriktiv

restriktiv
proprietär
BPM-Suite

* zur Umsetzung individueller Prozessanwendungen

Fachanwender

Software
Entwickler
Und die Suiten?
GUI

Prozesse

Integration

Dokumente

Rules

Reporting
Ham wa
nich!

und ich brauch noch...
BPM TOP 5 Missverständnisse & Fehler
1. Hartcodierte / versteckte Prozesse

2. Allmächtige (vernagelte) „Zero Code BPM Suiten“
3. Graben zwischen Business & IT / „BPMN but“
4. Mapping im Roundtrip (BPEL, XPDL, proprietär, …)
5. Selbstgeschriebene Workflow-Engines
Ein anderer Ansatz

1

camunda BPM:
www.camunda.org

2

3

4
Ausgewählte Referenzanwender
Embeddable Process Engine

@Inject
ProcessEngine engine;
Embeddable Engine
CDI / Spring
(if you want)

@Inject
private ProcessEngine engine;
[…]
Deployment deployment = engine.getRepositoryService()
.createDeployment()
.addClasspathResource("invoice.bpmn")
.deploy();

Services to talk
to the engine

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);
Use TX / JTA /
EJB
(if you want)
Some code

Process XML refers
CDI/Spring bean
or Java Class

<process ...>
<serviceTask camunda:delegateExpression="#{svnService}"
name="PDF in SVN ablegen">
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");
Process Engine = Infrastruktur

My process application1
Java
Classes

BPMN 2.0
Processes

process
engine (jar)

…

My process
application1

My process
application2

Java
Classes

BPMN 2.0
Processes

process
engine (jar)

…

Java
Classes

BPMN 2.0
Processes

My process application2

Java
Classes

…

BPMN 2.0
Processes

Process Engine

JPA, EJB, JTA

…

Container

Websphere,
WebLogic,
…
“Die offene Plattform erlaubt

Best of Breed

uns die Abbildung unserer
individuellen Anforderungen
mit einer Konsequenz, die
geschlossene BPM-Suiten nicht
erreichen können.“

Prozesse
camunda BPM

(Marko Lehn, Teamlead Software Engineering, Zalando
GmbH)

+
Integration

GUI

Reporting

Rules

•

Apache CXF

•

HTML 5, PHP

•

Jasper

•

JBoss Drools

•

Apache Camel

•

•

BIRT

•

IBM ILOG

•

Mule ESB

JSF, Vaadin,
GWT

•

...

•

...

•

Talend ESB

•

IBM ESB

•

Apache CMIS

•

...

•

xyz Portal
Server

•

Swing

•

Orbeon

•

...

Documents

...what ever!

•

Alfresco ECM

•

Java

•

...

•

... (REST)
Die zwei Dimensionen

Maturity

Completeness
“Habe Mut, dich deines eigenen

Verstandes zu bedienen.
Immanuel Kant
Vielen Dank! Fragen?

bernd.ruecker@camunda.com
https://twitter.com/berndruecker

Open Source BPM - iteratec Architekturtag