View
228
Download
0
Category
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