Open Source BPM - iteratec Architekturtag

Preview:

DESCRIPTION

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

Citation preview

Open Source BPM mit BPMN 2.0 und Java

bernd.ruecker@camunda.com

Publikationen Mitgliedschaften

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

Consultants | Software Developers

www.camunda.com/jobs

Abends bei nem Bier… Warum macht Ihr eigentlich so ein

Alte-Männer-Themawie BPM?

Skalierung durch Automatisierung der Kernprozesse

Skalierbarkeit durch BPM

OhneAutomatisierung

MitAutomatisierung

BPM Missverständnisse & Fehler

Fehler: Prozess verstecken! …im Code…

…imFachbereich…

Fehler: Mauern einziehen

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

Prozess-Konzeption

Prozess-Umsetzung

EPK, Flowchart-Like, BPMN-But

Antragprüfen

OK Nicht OK

> 5h

real BPMN

Antragprüfen

OK

Nicht OK

5h

BPMN steht für ein höheres Kommunikationsniveau

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

„real“ BPMN

BPMN-Prozessmodelle sind für BEIDE Fraktionen

Business IT

Das operative Prozessmodell gemeinsam entwickeln

EntwicklerFach-

anwender

Organisatoren / Business Analysten

Architekten &Zentralbereiche

Beispielprozess

Menschlicher und technischer Fluss vermischt

Besser: Saubere Trennung!

Anwender

Anwender

TechnischerProzess

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.

Live Demo:

BPMN 2.0

Workflow-Engine

Shiny BPM Suites?

BPM-Suite

Der Nutzen entsteht erst durch die Anwendung

BPM-Suite

+ Software-Entwicklung =

Prozess-Anwendung

Das große Versprechen

Fach-anwender

SoftwareEntwickler

BPM-Suite

+ Software-Entwicklung =

Prozess-Anwendung

Ein fundamental falscher Ansatz*

kompliziertrestriktiv

SoftwareEntwickler

restriktivproprietär

* zur Umsetzung individueller Prozessanwendungen

Fachanwender

BPM-Suite

Und die Suiten?

Prozesse

Integration

Rules

GUI

Reporting

Dokumente

und ich brauch noch...

Ham wa nich!

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

Ein anderer Ansatz

2 31 4

camunda BPM:www.camunda.org

Ausgewählte Referenzanwender

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

Use TX / JTA / EJB

(if you want)

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");

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, …

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)

Die zwei Dimensionen

Maturity

Completeness

“Habe Mut, dich deines eigenen

Verstandes zu bedienen.

Immanuel Kant

Vielen Dank! Fragen?

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

Recommended