Open Source BPM - iteratec Architekturtag

35
Open Source BPM mit BPMN 2.0 und Java [email protected]

description

Vortrag über leichtgewichtiges BPM mit BPMN 2.0 und Java auf dem iteratec Architekturtag am 20.11.2013

Transcript of Open Source BPM - iteratec Architekturtag

Page 1: Open Source BPM - iteratec Architekturtag

Open Source BPM mit BPMN 2.0 und Java

[email protected]

Page 2: Open Source BPM - iteratec Architekturtag

Publikationen Mitgliedschaften

[email protected]://twitter.com/berndruecker

Page 3: Open Source BPM - iteratec Architekturtag

Consultants | Software Developers

www.camunda.com/jobs

Page 4: Open Source BPM - iteratec Architekturtag

Abends bei nem Bier… Warum macht Ihr eigentlich so ein

Alte-Männer-Themawie BPM?

Page 5: Open Source BPM - iteratec Architekturtag

Skalierung durch Automatisierung der Kernprozesse

Page 6: Open Source BPM - iteratec Architekturtag

Skalierbarkeit durch BPM

OhneAutomatisierung

MitAutomatisierung

Page 7: Open Source BPM - iteratec Architekturtag

BPM Missverständnisse & Fehler

Page 8: Open Source BPM - iteratec Architekturtag

Fehler: Prozess verstecken! …im Code…

…imFachbereich…

Page 9: Open Source BPM - iteratec Architekturtag

Fehler: Mauern einziehen

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

Prozess-Konzeption

Prozess-Umsetzung

Page 10: Open Source BPM - iteratec Architekturtag

EPK, Flowchart-Like, BPMN-But

Antragprüfen

OK Nicht OK

> 5h

Page 11: Open Source BPM - iteratec Architekturtag

real BPMN

Antragprüfen

OK

Nicht OK

5h

Page 12: Open Source BPM - iteratec Architekturtag

BPMN steht für ein höheres Kommunikationsniveau

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

„real“ BPMN

Page 13: Open Source BPM - iteratec Architekturtag

BPMN-Prozessmodelle sind für BEIDE Fraktionen

Business IT

Page 14: Open Source BPM - iteratec Architekturtag

Das operative Prozessmodell gemeinsam entwickeln

EntwicklerFach-

anwender

Organisatoren / Business Analysten

Architekten &Zentralbereiche

Page 15: Open Source BPM - iteratec Architekturtag

Beispielprozess

Page 16: Open Source BPM - iteratec Architekturtag

Menschlicher und technischer Fluss vermischt

Page 17: Open Source BPM - iteratec Architekturtag

Besser: Saubere Trennung!

Anwender

Anwender

TechnischerProzess

Page 18: Open Source BPM - iteratec Architekturtag

Typische BPM-Architektur mit BPMN 2.0

(KPI)Reporting

Rule Engine

Process Engine

ESBTaskLists /

Portal / Mobile / etc.

Legacy / Backendintern / extern

ProcessParticipants

(KPI) Monitoring

ProcessAnalyst

ProcessEngineer

<xml>

<asass>sddsd</sdsd>

<sdds>sdsds</sdsds>

<sdd>

<sddsds>sddsd</fff>

</sdd>

</ffdfsdf>

BPMN 2.0

auch BPMN 2.0

Speichern

Execution

ProcessAdministrator

ProcessManager

BPEL

etc.

Page 19: Open Source BPM - iteratec Architekturtag

Live Demo:

BPMN 2.0

Workflow-Engine

Page 20: Open Source BPM - iteratec Architekturtag

Shiny BPM Suites?

BPM-Suite

Page 21: Open Source BPM - iteratec Architekturtag

Der Nutzen entsteht erst durch die Anwendung

BPM-Suite

+ Software-Entwicklung =

Prozess-Anwendung

Page 22: Open Source BPM - iteratec Architekturtag

Das große Versprechen

Fach-anwender

SoftwareEntwickler

BPM-Suite

+ Software-Entwicklung =

Prozess-Anwendung

Page 23: Open Source BPM - iteratec Architekturtag

Ein fundamental falscher Ansatz*

kompliziertrestriktiv

SoftwareEntwickler

restriktivproprietär

* zur Umsetzung individueller Prozessanwendungen

Fachanwender

BPM-Suite

Page 24: Open Source BPM - iteratec Architekturtag

Und die Suiten?

Prozesse

Integration

Rules

GUI

Reporting

Dokumente

und ich brauch noch...

Ham wa nich!

Page 25: Open Source BPM - iteratec Architekturtag

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

BPM TOP 5 Missverständnisse & Fehler

Page 26: Open Source BPM - iteratec Architekturtag

Ein anderer Ansatz

2 31 4

camunda BPM:www.camunda.org

Page 27: Open Source BPM - iteratec Architekturtag

Ausgewählte Referenzanwender

Page 28: Open Source BPM - iteratec Architekturtag

Embeddable Process Engine

@Inject

ProcessEngine engine;

Page 29: Open Source BPM - iteratec Architekturtag

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 talkto the engine

Use TX / JTA / EJB

(if you want)

Page 30: Open Source BPM - iteratec Architekturtag

Some code

<process ...>

<serviceTask camunda:delegateExpression="#{svnService}"

name="PDF in SVN ablegen">

Process XML refersCDI/Spring bean

or Java Class

Code is executed whenprocess instances runs

through

@Named("svnService")

public class StorePDFDelegate implements JavaDelegate {

public void execute(DelegateExecution execution) throws Exception {

String someData = (String) execution.getVariable("someData");

Page 31: Open Source BPM - iteratec Architekturtag

Process Engine = Infrastruktur

Process Engine

Container

My processapplication2

Java Classes

BPMN 2.0 Processes

JPA, EJB, JTA …

My processapplication1

Java Classes

BPMN 2.0 Processes

My process application1

processengine (jar)

Java Classes

BPMN 2.0 Processes

My process application2

processengine (jar)

Java Classes

BPMN 2.0 Processes

Websphere, WebLogic, …

Page 32: Open Source BPM - iteratec Architekturtag

Best of Breed

Integration

• Apache CXF

• Apache Camel

• Mule ESB

• Talend ESB

• IBM ESB

• Apache CMIS

• ...

GUI

• HTML 5, PHP

• JSF, Vaadin, GWT

• xyz Portal Server

• Swing

• Orbeon

• ...

Prozesse

camunda BPM

+Reporting

• Jasper

• BIRT

• ...

Rules

• JBoss Drools

• IBM ILOG

• ...

Documents

• Alfresco ECM

• ...

...what ever!

• Java

• ... (REST)

“Die offene Plattform erlaubt

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

(Marko Lehn, Teamlead Software Engineering, ZalandoGmbH)

Page 33: Open Source BPM - iteratec Architekturtag

Die zwei Dimensionen

Maturity

Completeness

Page 34: Open Source BPM - iteratec Architekturtag

“Habe Mut, dich deines eigenen

Verstandes zu bedienen.

Immanuel Kant

Page 35: Open Source BPM - iteratec Architekturtag

Vielen Dank! Fragen?

[email protected]://twitter.com/berndruecker