Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf ·...

Preview:

Citation preview

Java Forum Stuttgart

02.07.2009

bernd.ruecker@camunda.com

Next generation open source BPM

JBoss jBPM 4

Guten Morgen ☺

Bernd Rücker / bernd.ruecker@camunda.com / 2

Berater, Trainer, Coach

Softwareentwickler

Committer bei jBPM

Blog: www.bpm-guide.de

Bernd Rückerbernd.ruecker@camunda.com

Bernd Rücker / bernd.ruecker@camunda.com / 3

Ganzheitliches BPM

Beratung

Seminare

Process Hosting

camunda services GmbH

Bernd Rücker / bernd.ruecker@camunda.com / 4

Standort: Berlin / Stuttgart

Mitarbeiter: 6

Prozessbeispiel:

Designer-

Taschen

Bernd Rücker / bernd.ruecker@camunda.com / 5

• BegriffsdefinitionWas ist ein Geschäftsprozess?

Bernd Rücker / bernd.ruecker@camunda.com / 6

KundeBestel-

lung Lieferung KundeBestell-

annahme

Rechnung-stellung

Waren-entnahme

Versand

Wie setze ich das bloß

technisch um?

Bernd Rücker / bernd.ruecker@camunda.com / 7

Probleme Geschäftsprozesse

• Lang laufend

Möglichkeit 1:

Java-Entwicklung

Bernd Rücker / bernd.ruecker@camunda.com / 8

• Lang laufend

• Wartezustände

• Timeouts & Eskalation

Nachteile

• Zu viel Arbeit!

• Prozess unsichtbar

Business

Process

Engine!

Bernd Rücker / bernd.ruecker@camunda.com / 9

Open Source (LGPL)

POJO + Hibernate

„Library“

Version 4.0 (10.07.09)

Der Prozess

(Workflow)

Bernd Rücker / bernd.ruecker@camunda.com / 10

Der Prozess

(Workflow)user task

Business Process Modeling Notation

(BPMN 2.0)

Bernd Rücker / bernd.ruecker@camunda.com / 11

Der Prozess

(Workflow)java

Bernd Rücker / bernd.ruecker@camunda.com / 12

Der Prozess

(Workflow)

gateway = decision

Bernd Rücker / bernd.ruecker@camunda.com / 13

Der Prozess

(Workflow)wait state !=

task

Bernd Rücker / bernd.ruecker@camunda.com / 14

Demo

Bernd Rücker / bernd.ruecker@camunda.com / 15

Process ExecutionWie funktioniert das?

Tasklist ExternesSystem

Transaction / RequestProcess Execution Engine

Client

1.) Aufgabe erzeugen

2.) Aufgabe abschließen

1.) System aufrufen / Message

2.) Asynchrone Antwort als Message

Bernd Rücker / bernd.ruecker@camunda.com / 16

process execution

Zeit…

JBoss Process Virtual

Machine (PVM)

Bernd Rücker / bernd.ruecker@camunda.com / 17

Eine Prozessinstanz

Bernd Rücker / bernd.ruecker@camunda.com / 18

Die Hüllen fallen

gelassen…

Bernd Rücker / bernd.ruecker@camunda.com / 19

Clie

nt

APIs &

Architektur

Pro

cess

Engin

e

Process

Service

Execution

Service

Management

Service

Command

Service

Interceptor

Lokal oder Remote

Sync oder Async

JTA oder nicht

Commands

Bernd Rücker / bernd.ruecker@camunda.com / 20

jPDL ImplementierungPVM Interface

Pro

cess

Service

Task

ServiceInterceptor

Event Listener

API

Serv

ices

<process name="Bestellung" xmlns="http://jbpm.org/4.0/jpdl">

<start name="start" g="18,150,48,48">

<transition to="Bestellung pruefen"/>

</start>

<task candidate-groups="Lager" name="Bestellung_pruefen"

g="191,149,109,52">

<transition name="Problem aufgetreten"

to="Alternativvorschlag_erarbeiten„

g="267,103:-3,27"/>

<transition name="Auftrag OK" to="Bestellung_buchen"

g="268,236:0,-25"/>

Bernd Rücker / bernd.ruecker@camunda.com / 21

g="268,236:0,-25"/>

</task>

<java name="Kunden informieren"

class="com.camunda.training.jbpm.service.MockService"

method="informCustomer" g="493,75,119,52">

<arg><object expr="#{order.customer}"/></arg>

<arg><object expr="#{problem}"/></arg>

<transition to="Auf Entscheidung warten"/>

</java>

jPDL

Quellcode

...

<decision name="Stornierung?" g="804,84,48,48">

<transition name="Alternativvorschlag bestellen"

to="Bestellung_pruefen"

g="828,43;245,43:247,-19">

<condition expr="#{orderChanged}"/>

</transition>

<transition name="Stornierung" to="cancel" g="-26,-18"/>

</decision>

<state name="Auf Entscheidung warten" g="695,72,144,52" >

<transition to="Stornierung?"/>

Bernd Rücker / bernd.ruecker@camunda.com / 22

<transition to="Stornierung?"/>

</state>

...

<end name="end" g="906,212,48,48" />

<end-cancel name="cancel" g="905,152,48,48"/>

</process>

jPDL

Quellcode

<state name="wait" >

<on event="start">

<event-listener

class="org.jbpm.examples.eventlistener.LogListener"/>

</on>

<transition to="end">

<event-listener

Und ActionHandler?

Bernd Rücker / bernd.ruecker@camunda.com / 23

<event-listener

class="org.jbpm.examples.eventlistener.LogListener"/>

</transition>

</state>

public class LogListener implements EventListener {

public void notify(EventListenerExecution execution) {

execution.getVariable("logs");

...

execution.setVariable("logs", logs);

}

}

Möglichkeiten

& Features

Bernd Rücker / bernd.ruecker@camunda.com / 24

Möglichkeiten

& Features

Bernd Rücker / bernd.ruecker@camunda.com / 25

jbpm und die BPMN-Spezifikation

„Why can‘t we be friends?“

Bernd Rücker / bernd.ruecker@camunda.com / 26

Prozesse

Bonitäts-prüfung

Kunden-anlage

Kredit-vergabe

GUI

BPM & SOA – Blueprint & Vision

Bernd Rücker / bernd.ruecker@camunda.com / 27

Services

Bonitätscheck Kundendaten Kreditantrag

Ressourcen

Web-Service Kundenkonto-Komponente

SAPServer

ArchitekturEJB-Container (oder Tomcat oder Java SE)

Session

Bean

JCA JMSEJB

WS

jbpmHuman

TaskMgmntWeb-

Anwendung

Rich-Client

Bernd Rücker / bernd.ruecker@camunda.com / 28

WS

EJB-Container

JMS, …EJB

.NET HumanTask

Mgmnt

WS WS WS

WSJava

BPEL-Server

Fachliche

Analyse,

Modellierung,

Dokumentation

&

Kommunikation

Human

Workflow

GUI-Steuerung

Pageflow

BPM aus IT-Perspektive

Bernd Rücker / bernd.ruecker@camunda.com / 29

Software-

Entwicklung

Prozess-

Automatisierung

Prozess-

Beschreibung

Integration

& EAI

Kommunikation

Anwendungs-

entwicklung

jbpm 3

vs. jbpm 4Process Virtual Machine

Bernd Rücker / bernd.ruecker@camunda.com / 30

BPMNSaubere Architektur

Und was nehme

ich im Projekt?

Bernd Rücker / bernd.ruecker@camunda.com / 31

Bernd Rücker / bernd.ruecker@camunda.com / 32

Doch selber

bauen? Quelle: Zitty, Berlin

siehe www.bpm-guide.de

Und das

Besondere

an jbpm?

Bernd Rücker / bernd.ruecker@camunda.com / 33

www.jboss.org/jbossjbpm/ Und jetzt?

JavaMagazin www.bpm-guide.de

Bernd Rücker / bernd.ruecker@camunda.com / 34

JavaMagazin www.bpm-guide.de

Versionsverwirrung

• Aktuell: 3.2.6 & 4.0

• Unsupported community release: 3.3.x• Roadmap: 01.09. � 4.1, 01.11. � 4.2

Bernd Rücker / bernd.ruecker@camunda.com / 35

Bernd Rücker

Geschäftsführer

Berater, Trainer & Coach

bernd.ruecker@camunda.com

+49 30 664040901

+49 711 3278645

Fragen &

Antworten

Recommended