35
Java Forum Stuttgart 02.07.2009 [email protected] Next generation open source BPM JBoss jBPM 4

Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

  • Upload
    votuong

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Java Forum Stuttgart

02.07.2009

[email protected]

Next generation open source BPM

JBoss jBPM 4

Page 2: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Guten Morgen ☺

Bernd Rücker / [email protected] / 2

Page 3: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Berater, Trainer, Coach

Softwareentwickler

Committer bei jBPM

Blog: www.bpm-guide.de

Bernd Rü[email protected]

Bernd Rücker / [email protected] / 3

Page 4: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Ganzheitliches BPM

Beratung

Seminare

Process Hosting

camunda services GmbH

Bernd Rücker / [email protected] / 4

Standort: Berlin / Stuttgart

Mitarbeiter: 6

Page 5: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Prozessbeispiel:

Designer-

Taschen

Bernd Rücker / [email protected] / 5

Page 6: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

• BegriffsdefinitionWas ist ein Geschäftsprozess?

Bernd Rücker / [email protected] / 6

KundeBestel-

lung Lieferung KundeBestell-

annahme

Rechnung-stellung

Waren-entnahme

Versand

Page 7: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Wie setze ich das bloß

technisch um?

Bernd Rücker / [email protected] / 7

Page 8: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Probleme Geschäftsprozesse

• Lang laufend

Möglichkeit 1:

Java-Entwicklung

Bernd Rücker / [email protected] / 8

• Lang laufend

• Wartezustände

• Timeouts & Eskalation

Nachteile

• Zu viel Arbeit!

• Prozess unsichtbar

Page 9: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Business

Process

Engine!

Bernd Rücker / [email protected] / 9

Open Source (LGPL)

POJO + Hibernate

„Library“

Version 4.0 (10.07.09)

Page 10: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Der Prozess

(Workflow)

Bernd Rücker / [email protected] / 10

Page 11: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Der Prozess

(Workflow)user task

Business Process Modeling Notation

(BPMN 2.0)

Bernd Rücker / [email protected] / 11

Page 12: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Der Prozess

(Workflow)java

Bernd Rücker / [email protected] / 12

Page 13: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Der Prozess

(Workflow)

gateway = decision

Bernd Rücker / [email protected] / 13

Page 14: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Der Prozess

(Workflow)wait state !=

task

Bernd Rücker / [email protected] / 14

Page 15: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Demo

Bernd Rücker / [email protected] / 15

Page 16: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

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 / [email protected] / 16

process execution

Zeit…

Page 17: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

JBoss Process Virtual

Machine (PVM)

Bernd Rücker / [email protected] / 17

Page 18: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Eine Prozessinstanz

Bernd Rücker / [email protected] / 18

Page 19: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Die Hüllen fallen

gelassen…

Bernd Rücker / [email protected] / 19

Page 20: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

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 / [email protected] / 20

jPDL ImplementierungPVM Interface

Pro

cess

Service

Task

ServiceInterceptor

Event Listener

API

Serv

ices

Page 21: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

<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 / [email protected] / 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

Page 22: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

...

<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 / [email protected] / 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

Page 23: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

<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 / [email protected] / 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);

}

}

Page 24: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Möglichkeiten

& Features

Bernd Rücker / [email protected] / 24

Page 25: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Möglichkeiten

& Features

Bernd Rücker / [email protected] / 25

Page 26: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

jbpm und die BPMN-Spezifikation

„Why can‘t we be friends?“

Bernd Rücker / [email protected] / 26

Page 27: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Prozesse

Bonitäts-prüfung

Kunden-anlage

Kredit-vergabe

GUI

BPM & SOA – Blueprint & Vision

Bernd Rücker / [email protected] / 27

Services

Bonitätscheck Kundendaten Kreditantrag

Ressourcen

Web-Service Kundenkonto-Komponente

SAPServer

Page 28: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

ArchitekturEJB-Container (oder Tomcat oder Java SE)

Session

Bean

JCA JMSEJB

WS

jbpmHuman

TaskMgmntWeb-

Anwendung

Rich-Client

Bernd Rücker / [email protected] / 28

WS

EJB-Container

JMS, …EJB

.NET HumanTask

Mgmnt

WS WS WS

WSJava

BPEL-Server

Page 29: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Fachliche

Analyse,

Modellierung,

Dokumentation

&

Kommunikation

Human

Workflow

GUI-Steuerung

Pageflow

BPM aus IT-Perspektive

Bernd Rücker / [email protected] / 29

Software-

Entwicklung

Prozess-

Automatisierung

Prozess-

Beschreibung

Integration

& EAI

Kommunikation

Anwendungs-

entwicklung

Page 30: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

jbpm 3

vs. jbpm 4Process Virtual Machine

Bernd Rücker / [email protected] / 30

BPMNSaubere Architektur

Page 31: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Und was nehme

ich im Projekt?

Bernd Rücker / [email protected] / 31

Page 32: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Bernd Rücker / [email protected] / 32

Doch selber

bauen? Quelle: Zitty, Berlin

siehe www.bpm-guide.de

Page 33: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Und das

Besondere

an jbpm?

Bernd Rücker / [email protected] / 33

Page 34: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

www.jboss.org/jbossjbpm/ Und jetzt?

JavaMagazin www.bpm-guide.de

Bernd Rücker / [email protected] / 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

Page 35: Next generation open source BPM JBoss jBPM 4alt.java-forum-stuttgart.de/jfs/2009/folien/A1.pdf · 07.02.2009 · 1.) Aufgabe erzeugen 2.) Aufgabe abschließen 1.) System aufrufen

Bernd Rücker / [email protected] / 35

Bernd Rücker

Geschäftsführer

Berater, Trainer & Coach

[email protected]

+49 30 664040901

+49 711 3278645

Fragen &

Antworten