Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 und Java

Preview:

DESCRIPTION

Session siehe http://www.sigs-datacom.de/seacon2013/konferenz/sessiondetails.html?tx_mwconferences_pi1[showUid]=1154&tx_mwconferences_pi1[anchor]=%23Fr12&tx_mwconferences_pi1[s]=0

Citation preview

Prozessautomatisierung mit BPMN 2.0 und Java

bernd.ruecker@camunda.com

Bernd Rücker

camunda services GmbH

Demo

Was ist Prozessautomatisierung

mit BPMN 2.0

<process id="invoice" isExecutable="true">

<startEvent name="Rechnung eingegangen" />

<userTask name="Rechnung freigeben" />

<exclusiveGateway name="Freigabe erfolgt?"

...

Aufgaben-

ZuweisungService-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 …im 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");

Process Engine = Infrastruktur

Process Engine

Container

My process application2

Java Classes

BPMN 2.0 Processes

JPA, EJB, JTA …

My process application1

Java Classes

BPMN 2.0 Processes

My process application1

process engine (jar)

Java Classes

BPMN 2.0 Processes

… My process application2

process engine (jar)

Java Classes

BPMN 2.0 Processes

Websphere, WebLogic, …

Best of breed

ESB

Integration

Zum Beispiel Remoting/WebService

Generic Implemenation

+ z.B, Apache CXF

ESB

Integration

Zum Beispiel Remoting/WebService

Generic Implemenation

+ z.B, Apache CXF

ESB

Integration

Zum Beispiel Remoting/WebService

Generic Implemenation

+ z.B, Apache CXF

Best of breed

Beispiel Patentantrag

Dokumenteneingang strukturiert & IT-unterstützt

In manchen Bereichen strukturiert

In anderen Bereichen unstrukturiert

Geschäfts- Verantwortlicher

(Knowledge-Worker)

Geschäft / Kontext (Case)

Strukturierte Vorgäng

Gesamtvorgehen ist unstrukturiert

Rote & blaue Bereiche

Quelle: Gerhard Wohland - Denkwerkzeuge der Höchstleister, Murmann 2007

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

Denn 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 / Architekten Fach-

anwender

Organisatoren / Business Analysten

so erlebt z.B. bei:

Wenn ihr direkt loslegen wollt:

Open Source (Apache License)

enterprise ready

Based on Standards

GET IT NOW!

Learn BPM and BPMN

camunda BPM Komponenten

Glassfish

Tomcat

JBoss

WebSphere

WebLogic

Auf camunda.org…

Patterns & Best Practices bernd.ruecker@camunda.com

Wie kann Ich mit-REDEN?

Mit-MACHEN!

Wer macht sowas schon heute?

…und viele mehr…

Produktisierung

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

Prozessautomatisierung mit BPMN 2.0 und Java

Hamburg, 17.05.2013

Recommended