open source bpm - iteratec architekturtag

Post on 24-Jan-2015

447 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

top related