JBoss jBPM 4

Post on 20-Jun-2015

1,749 views 2 download

Tags:

description

Vorstellung der Open Source Process Engine JBoss jBPM 4 auf dem Java Forum Stuttgart 2009.

transcript

Java Forum Stuttgart

02.07.2009

bernd.ruecker@camunda.com

Next generation open source BPMJBoss jBPM 4

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

Guten Morgen

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

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 / 4

Standort: Berlin / StuttgartMitarbeiter: 6

Ganzheitliches BPM

Beratung

Seminare

Process Hosting

camunda services GmbH

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

Prozessbeispiel:Designer-Taschen

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

• Begriffsdefinition

KundeBestel-

lung Lieferung KundeBestell-

annahme

Rechnung-stellung

Waren- entnahme

Versand

Was ist ein Geschäftsprozess?

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

Wie setze ich das bloß

technisch um?

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

Probleme Geschäftsprozesse• Lang laufend• Wartezustände• Timeouts & Eskalation

Nachteile• Zu viel Arbeit!• Prozess unsichtbar

Möglichkeit 1:Java-Entwicklung

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

Open Source (LGPL)

POJO + Hibernate

„Library“

Version 4.0 (10.07.09)

Business Process Engine!

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

Der Prozess (Workflow)

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

Der Prozess (Workflow)

user task

Business Process Modeling Notation (BPMN 2.0)

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

Der Prozess (Workflow)

java

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

Der Prozess (Workflow)

gateway = decision

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

Der Prozess (Workflow)

wait state != task

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

Demo

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

Process ExecutionWie funktioniert das?

Tasklist ExternesSystem

Transaction / Request

process execution

Zeit

Process Execution Engine

Client

1.) Aufgabe erzeugen2.) Aufgabe abschließen

1.) System aufrufen / Message2.) Asynchrone Antwort als Message

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

JBoss Process Virtual Machine (PVM)

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

Eine Prozessinstanz

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

Die Hüllen fallen gelassen…

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

jPDL ImplementierungPVM Interface

Clie

nt

APIs & Architektur

Pro

cess

Eng

ine

Process Service

Execution Service

Management Service

TaskService

Command Service

Interceptor

Interceptor

Lokal oder RemoteSync oder Async

JTA oder nicht

Commands

Event Listener API

Ser

vice

s

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

<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"/> </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

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

...

<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?"/> </state>

... <end name="end" g="906,212,48,48" /> <end-cancel name="cancel" g="905,152,48,48"/></process>

jPDL Quellcode

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

<state name="wait" > <on event="start"> <event-listener class="org.jbpm.examples.eventlistener.LogListener"/> </on> <transition to="end"> <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); }}

Und ActionHandler?

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

Möglichkeiten & Features

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

Möglichkeiten & Features

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

jbpm und die BPMN-Spezifikation„Why can‘t we be friends?“

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

ProzesseBonitäts-prüfung

Kunden-anlage

Kredit-vergabe

Services

Bonitätscheck Kundendaten Kreditantrag

Ressourcen

Web-Service Kundenkonto-Komponente

SAPServer

GUI

BPM & SOA – Blueprint & Vision

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

ArchitekturEJB-Container (oder Tomcat oder Java SE)

SessionBean

JCA JMSEJB

WS

WS

EJB-Container

JMS, …EJB

.NET HumanTask

Mgmnt

WS WS WS

WSJava

jbpm

BPEL-Server

HumanTask

MgmntWeb-Anwendung

Rich-Client

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

Software-Entwicklung

Prozess-Automatisierung

Prozess-Beschreibung

Integration& EAI

Fachliche Analyse,

Modellierung, Dokumentation

& Kommunikation

HumanWorkflow

Anwendungs-entwicklung

GUI-SteuerungPageflow

BPM aus IT-Perspektive

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

BPMN

jbpm 3vs. jbpm 4

Process Virtual Machine

Saubere Architektur

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

Und was nehme ich im Projekt?

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

Doch selber bauen? Quelle: Zitty, Berlin

siehe www.bpm-guide.de

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

Und das Besondere an jbpm?

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

www.jboss.org/jbossjbpm/ Und jetzt?

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ückerGeschäftsführer

Berater, Trainer & Coachbernd.ruecker@camunda.com

+49 30 664040901+49 711 3278645

Fragen & Antworten