1. BPM –
Brücke zwischen Business und IT?
Status, Mythen, Missverständnisse und Potentiale
Jakob Freund & Bernd Rücker
camunda services GmbH
OOP - 29.01.2009
2. BPM & SOA
Agenda
1. Fraktionen und Visionen
2. Standards: BPMN und BPEL
3.
3 Aktueller Stand in der Praxis
4. Konkrete Perspektiven
camunda services GmbH / info@camunda.com / 2
3. Was ist BPM?
Begriffsproblem
Organisationslehre
O i ti lh
Business Process (g)
(Orga-) Geschäftsprozess-
p
Ablauforganisation
Reengineering - BPR Management - GPM
bis 1990
1990 - 2000 ab 2000
Business
Business Process Management - BPM
IT
ab 2004
Prozessautomatisierung
ab 2006
Human Serviceorientierte
Workflow Management Architekturen (SOA)
ab 2000 ab 2005
Dokumenten-Management – Enterprise Appliation Integration –
Systeme – DMS (u.a.) EAI
camunda services GmbH / info@camunda.com / 3
4. Orga + IT = BPM
Begriffsproblem
Organisationslehre
Prozessorganisation
Strategisches
Prozessmanagement Prozessmodellierung
Prozessanalyse Prozessoptimierung
Business Process Management
Steuerung /
Monitoring/Reporting
Business Rules
Human Workflow
EAI/SOA Management
Informationstechnologie
camunda services GmbH / info@camunda.com / 4
5. Aktuelle Ambitionen
Der BPM-Kreislauf
Prozess-
Strategie
Prozess-
P Prozess-
P KVP
entwurf controlling
Business
Prozess-
IT
implementierung
Business
camunda services GmbH / info@camunda.com / 5
6. Der Traum der Magic BPM-Suite
Der BPM-Kreislauf
Modelling Monitoring
Business
IT
Magic BPM-Suite
Human Workflow EAI / SOA
camunda services GmbH / info@camunda.com / 6
7. BPM & SOA
Agenda
1. Fraktionen und Visionen
2. Standards: BPMN & BPEL
3.
3 Aktueller Stand in der Praxis
4. Konkrete Perspektiven
camunda services GmbH / info@camunda.com / 7
8. Business Process Modeling Notation
Historie
• Entwicklung 2002 von Stephen A. White (IBM)
• Veröffentlichung durch Business Process
Management Initative (BPMI)
• 2005 Üb
Übernahme d h di Obj t M
h durch die Object Management
t
Group (OMG)
• Offizieller OMG Standard seit 2006
• Aktuelle Version: 1.1 (17.02.2008)
( )
camunda services GmbH / info@camunda.com / 8
9. Zwei Welten – Zwei Sprachen
Motivation für BPMN
Business
IT
Wir müssen mit Hilfe
der richtigen KPI
unsere Performance
messen, um den ROI
zu bestimmen!
Wenn wir alle RMI-Calls
durch SOAP Requests
SOAP-Requests
ersetzen, könnt Ihr eure
Performance vergessen!
camunda services GmbH / info@camunda.com / 9
10. Ein Prozessmodell für Business und IT?
Motivation für BPMN
Ereignisgesteuerte Prozesskette (EPK)
Rechnung
geht ein
„Woran erkenne ich, dass es soweit ist?“
Rechnung
SB Buchhaltung
erfassen
„Wieso weiß er Bescheid?“
Rechnung
SB Buchhaltung
B hh lt
prüfen lassen
„Muss ich senden/empfangen? Wie?“
SB Rechnung
„Wie ordne ich die Vorgänge zu?“
Fachabteilung prüfen
„Was soll ich machen, wenn nichts passiert?
Prüfungs-
SB
ergebnis
Fachabteilung
mitteilen
„ Ist dies ein gutes oder schlechtes Ende?“
XOR
Rechnung
Rechnung ok
nicht ok
Zahlung
SB Buchhaltung
anweisen
Zahlung
angewiesen
camunda services GmbH / info@camunda.com / 10
11. Ein Prozessmodell für Business und IT?
Motivation für BPMN
Business Process Execution Language (BPEL)
<!-- Deklaration eines asynchronen “Hello World” Prozesses -->
<process name=”HelloWorld” ... >
” ll ld”
<!-- Liste der am Prozess beteiligten Services -->
<partnerLinks>
<!-- Nur ein beteiligter Service: Der Dienst-Nutzer -->
<partnerLink name=”client” partnerLinkType =”HelloWorld”
myRole=”HelloWorldProvider” partnerRole=”HelloWorldRequester” />
</partnerLinks>
<!-- Liste der (XML-)Dokumente, die im Prozess verwendet werden -->
<variables>
<!-- XML-Dokument, das der Dienst-Nutzer beim Aufruf übergibt -->
<variable name=quot;inputquot; messageType=quot;HelloWorldRequestMessagequot;/>
<!-- XML-Dokument, das der Dienst-Nutzer vom Prozess erhält -->
?
<variable name=quot;outputquot; messageType=quot;HelloWorldResultMessagequot;/>
variable name output messageType HelloWorldResultMessage /
</variables>
<!-- Definition der Ablauflogik im Prozess (Aktiviäten) -->
<sequence>
<!-- Übergabe-Parameter vom Dienst-Nutzer entgegen nehmen -->
<receive name=quot;receiveInputquot; partnerLink=quot;clientquot;
portType=quot;tns:HelloWorldquot; operation=quot;initiatequot; variable=quot;inputquot;
createInstance=quot;yesquot;/>
<!-- Output-Parameter abhängig vom Input erstellen -->
<assign>
<copy> <from expression=quot;concat('Hello
',bpws:getVariableData('input', 'test','/tns:name'))quot;/>
<to variable=quot;outputquot; part=quot;testquot;
query=quot;/resultquot;/>
/ l/
</copy>
</assign>
<!-- Dienst-Nutzer aufrufen, um Antwort zu übergeben -->
<invoke name=quot;replyOutputquot; partnerLink=quot;clientquot;
portType=quot;tns:HelloWorldCallbackquot; operation=quot;onResultquot;
inputVariable= output />
inputVariable=quot;outputquot;/>
</sequence>
</process>
camunda services GmbH / info@camunda.com / 11
12. Idee: Prozessmodelle für Business UND IT
Motivation für BPMN
<!-- D kl
<! Deklaration eines asynchronen “H ll
ti i h “Hello
World” Prozesses -->
<process name=”HelloWorld” ... >
<!-- Liste der am Prozess beteiligten Services
-->
<partnerLinks>
<!-- Nur ein beteiligter Service: Der
Dienst-Nutzer -->
<partnerLink name=”client”
partnerLinkType =”HelloWorld”
myRole=”HelloWorldProvider”
partnerRole= HelloWorldRequester
partnerRole=”HelloWorldRequester”
/>
</partnerLinks>
<!-- Liste der (XML-)Dokumente, die im Prozess
verwendet werden -->
<variables>
<!-- XML-Dokument, das der Dienst-Nutzer
beim Aufruf übergibt -->
<variable name=quot;inputquot;
messageType=quot;HelloWorldRequestMessagequot;/>
<!-- XML-Dokument, das der Dienst-Nutzer vom
Prozess erhält -->
<variable name=quot;outputquot;
messageType=quot;HelloWorldResultMessagequot;/>
</variables>
<!-- Definition der Ablauflogik im Prozess
(Aktiviäten) -->
<sequence>
camunda services GmbH / info@camunda.com / 12
13. Ping-Pong spielen
Das Prinzip interagierender Prozesse
Sequenzfluss
Produkt Bestätigung
nde
bestellen annehmen
Kun
Nachrichtenfluss
N h i ht fl
erant
Bestellung Auftrag
Liefe
annehmen bestätigen
camunda services GmbH / info@camunda.com / 13
14. Mehrstufige Eskalation
Nachrichten,
Nachrichten Timer und Unterprozesse
Kunde
e
camunda services GmbH / info@camunda.com / 14
15. Fehlerbehandung und sofortige Beendigung
Fehler-,
Fehler- und Terminierungsereignisse
SPG - Vertrieb
camunda services GmbH / info@camunda.com / 15
16. Typisches Integrationsszenario
BPMN und EAI / SOA
Neue Bestellung
nder
Bestellung
Anwen
prüfen
Process Engine – Email-Eingang
Email sortieren
Emails
Bestellung in
die Task List
Anhang = 1 XLS
g
(Browser)
1 Minute
Neue Emails
abrufen (POP3)
Email
archivieren
(HTTP)
s
Unterprozess –
Mehrfache
Instanz
Archi System
Mai Server
iv
il
camunda services GmbH / info@camunda.com / 16
17. Klassische Idee: vom Prozess zum Workflow
Verfeinerung von Prozessmodellen
Design und Im
D
Prozesse
Ebene
Prozess-E
mplementieru von Proze
Sub-Prozesse
ung
Aktivitäten
essen
Workflow-Ebene
Arbeitsschritte
Manuelle Automatisierte
Tätigkeit Tätigkeit
Wertschöpfend Steuernd
(Softwareentwicklung) (Prozessautomatisierung)
camunda services GmbH / info@camunda.com / 17
19. Vom „Was“ zum „Wie“ – Gar nicht so einfach
Verfeinerung von Prozessmodellen
SPG mail-Eingang
Proces Engine – Em
ss
camunda services GmbH / info@camunda.com / 19
20. WS-BPEL 2.0
Business Process Execution Language (BPEL)
• Standardisiert durch OASIS, aktuell Version 2.0
(04/2007)
• BPEL = Orchestrierung von Services zu neuen
Services
• Ausgerichtet auf WS-*-Stack
• Human Task Management durch Einführung von
BPEL4People & WS-HumanTask
Warum WS-BPEL?
• Existierende Message Exchange Patterns in
WebServices ungenügend für Geschäftsprozesse
• Korrelation über lang laufende Konversationen
g
notwendig
camunda services GmbH / info@camunda.com / 20
21. Basic Activities
Business Process Execution Language (BPEL)
process
Do a blocking wait for a Immediately terminate
matching message to arrive / execution of a business
receive reply
py exit
send a message in reply process instance
Invoke compensation on
Invoke a one-way or all completed child scopes
invoke compensate
request-response operation in default order
Update the values of Invoke compensation on
assign compensateScope
variables or partner links one completed child scope
with new data
Wait for a given time
Validate XML data stored wait
validate period or until a certain
in variables
time has passed
Generate a fault from inside No-op instruction for
throw empty
py
the b i
th business process ab i
business process
Wrapper for language
Forward a fault from inside rethrow extensionActivity
extensions
a fault handler
camunda services GmbH / info@camunda.com / 21
22. Structured Activities
Business Process Execution Language (BPEL)
process
Contained activities are Block and wait for a
flow pick
A
executed i parallel,
t d in ll l suitable message t arrive
it bl to i
M1 M2 … A
partially ordered through (or time out)
C
B
control links
Contained activities are Contained activity is
y
sequence forEach
performed sequentially in performed sequentially or
2. … N.
lexical order in parallel, controlled by a
2. … N. 1.
1.
specified counter variable
Contained activity is Select exactly one branch
while
hil if-elseif-else
if l if l
repeated while a predicate of activity from a set of
c1 c2
holds choices
c …
Contained activity is Associate contained activity
repeatUntil scope
repeated until a predicate with its own local variables,
holds partner links, etc.,
c
and handlers
camunda services GmbH / info@camunda.com / 22
26. Von BPMN nach BPEL
BPMN zu BPEL
“This version does provide a non-normative
mapping from BPMN to WSBPEL but the
WSBPEL,
BPMN specification itself is known to be
incomplete with respect to capturing all the
required information for WSBPEL. So the
mapping is insufficient in any case ”
insufficient, case.
BPMN 1.1 Specification
camunda services GmbH / info@camunda.com / 26
27. BPMN to BPEL – Fazit
BPMN zu BPEL
• Die Generierung von BPEL ist möglich, aber
• BPEL M d ll h t oft wenig mit BPMN Modell
BPEL-Modell hat ft i it M d ll
gemeinsam
• BPEL R
BPEL-Rumpf i t meist nur rudimentär
f ist it di tä
• Technische Details müssen in BPEL hinzugefügt
werden (R
d (Roundtrip?)
dt i ?)
• Unklare Semantik in BPMN & fehlende Konzepte
(z.B. Datenhandling)
( B D t h dli ) machen P bl h Probleme
• Nur bedingt gemeinsame Sprache
• Welchen Wert hat Generierung von unleserlichen
BPEL-Modellen (Programmcode), die wenig
Ähnlichkeit it d
Äh li hk it mit dem fachlichen Modell h b ?
f hli h M d ll haben?
camunda services GmbH / info@camunda.com / 27
28. „Zero Code“-Ansätze
Wenn schon unleserlich warum dann BPEL ;-)
unleserlich,
BPMN
Process
Engine
camunda services GmbH / info@camunda.com / 28
29. Kritik BPEL
Gemeinsame Sprache
• Human Task Management (BPEL4People) noch
neu
• BPEL ist blockorientiert
• Umfangreiches Know-How notwendig (BPEL, XML,
XML-Schema, XPath, XSLT, WSDL, WS-*, …)
, , , , ,)
• Skills fehlen in Projekten heute
• Tools sind notwendig
• XML-Programmiersprache, kein BPM
• Aber: Jeder redet darüber
camunda services GmbH / info@camunda.com / 29
30. Use Case BPEL
Gemeinsame Sprache
• Bei Orchestrierung heterogener Services zu neuen
Services durchaus geeignet
Si dh i t
• Bei Entwicklung „prozessorientierter“ Anwendung
vielleicht eher (noch?) nicht
BPEL
Service B
Prozess 1
Service A
Service D
Service C BPEL
Prozess 2
Service E
camunda services GmbH / info@camunda.com / 30
31. BPM & SOA
Agenda
1. Fraktionen und Visionen
2. Standards: BPMN und BPEL
3.
3 Aktueller Stand in der Praxis
4. Konkrete Perspektiven
camunda services GmbH / info@camunda.com / 31
32. Gemeinsame Sprache
Was ist mit BPM heute schon erreichbar?
<!-- D kl
<! Deklaration eines asynchronen “H ll
ti i h “Hello
World” Prozesses -->
<process name=”HelloWorld” ... >
<!-- Liste der am Prozess beteiligten Services
?
-->
<partnerLinks>
<!-- Nur ein beteiligter Service: Der
Dienst-Nutzer -->
<partnerLink name=”client”
partnerLinkType =”HelloWorld”
myRole=”HelloWorldProvider”
partnerRole= HelloWorldRequester
partnerRole=”HelloWorldRequester”
/>
</partnerLinks>
<!-- Liste der (XML-)Dokumente, die im Prozess
verwendet werden -->
<variables>
<!-- XML-Dokument, das der Dienst-Nutzer
beim Aufruf übergibt -->
<variable name=quot;inputquot;
messageType=quot;HelloWorldRequestMessagequot;/>
<!-- XML-Dokument, das der Dienst-Nutzer vom
Prozess erhält -->
<variable name=quot;outputquot;
messageType=quot;HelloWorldResultMessagequot;/>
</variables>
<!-- Definition der Ablauflogik im Prozess
(Aktiviäten) -->
<sequence>
camunda services GmbH / info@camunda.com / 32
33. XPDL – XML Process Definition Language
Gemeinsame Sprache
<Activity Id=“xxxquot; Name=quot;plan part. productionquot;>
<Description>Make plan assuming OK to partial-
ship</Description>
<Implementation>
<Tool Id=quot;Application_Repository App4quot; Type=quot;APPLICATIONquot;/>
pp p y_ pp yp /
</Implementation>
<Performer>Participant_Repository_Par12</Performer>
<ExtendedAttributes>
<ExtendedAttribute Name=quot;XOffsetquot; Value=quot;397quot;/>
<ExtendedAttribute Name=quot;YOffsetquot; Value=quot;29quot;/>
<ExtendedAttribute Name=quot;VariableToProcess_OUTquot;
Value=quot;No_Of_Items_To_Producequot;/>
<ExtendedAttribute Name=quot;VariableToProcess_INquot;
Value=quot;Order_Quantityquot;/>
<ExtendedAttribute Name=quot;VariableToProcess_INquot;
Value=quot;No_Of_Stocked_Itemsquot;/>
</ExtendedAttributes>
</Activity>
camunda services GmbH / info@camunda.com / 33
34. XPDL
Gemeinsame Sprache
• WfMC-Standard, Aktuell Version 2.0
• Gerichteter G h (A ti iti
G i ht t Graph (Activities & Transitions)
T iti )
• Extension-Points
• Systemanbindung durch „Application Repository“
• Verschiedene Tools können XPDL-Prozess
unterschiedlich verarbeiten
• Verschiedene Implementierungen g
p g grafischer
Editoren und Process Engines existieren
• Nur die Prozessstruktur ist portabel!
p
• XPDL fokussiert Austauschformat für
Prozessdiagramme (
g (evtl. für BPMN?) )
camunda services GmbH / info@camunda.com / 34
37. jBPM – „Java oriented BPM“
Gemeinsame Sprache
• Pragmatische Workflowengine („Graph oriented
programming ) incl. Human-Task-Management
programming“) incl Human Task Management
• Java orientiert
•KKann in jeder U
i j d Umgebung zum Ei
b Einsatz k
t kommen
(einfache Java-Library), keine Speicher- oder
Performance-Probleme
Performance Probleme
• Prozessdiagramm und „Prozesscode“ immer
synchronisiert,
synchronisiert da single source
single-source.
• Prozessdiagramm begrenzt Fachanwendertauglich
• K i St d d!
Kein Standard!
• jBPM 4: Process Virtual Machine wird mehrere
Sprachen unterstützen, auch MDSD
S h t tüt h
camunda services GmbH / info@camunda.com / 37
39. Prozessorientierung in den Köpfen der User
Gemeinsame Sprache
camunda services GmbH / info@camunda.com / 39
40. Andere proprietäre Ansätze…
Gemeinsame Sprache
Bsp: Inubit IS, 2007
camunda services GmbH / info@camunda.com / 40
41. Vom Prozess zum Workflow
Was ist heute schon erreichbar?
Ansätze
• Anforderungsmanagement +
• Executable Model (z.B. BPMN)
( )
– Generierung von Software (MDSD) o
– Generierung von Workflow (BPEL) -
– Direkte Ausführung (executable BPMN) -
• Verknüpfung fachlicher & technischer Modelle o
Aber: Vieles ist Gegenstand aktueller Forschung
camunda services GmbH / info@camunda.com / 41
42. Ist das alles hilfreich?
Status Quo / Praxisansätze
• Weit weg von Magic Process Engine oder
Prozessimplementierung d h B i
P il ti durch Business A l t
Analyst
• Aber wiederverwendbare Business Process
Engines bieten
– Basis-Dienste: Persistenz, Prozess-Versionierung,
Logging, Timeouts, …
– Zusätzliche Funktionalität wie Analyse (BAM) oder
Simulation (BPS)
– Technisches Monitoring
• Vorfertigungsgrad hoch für
– Human Tasks: Generische Tasklisten & Formulareditoren
– Service-Orchestrierung & Konnektoren
camunda services GmbH / info@camunda.com / 42
43. Ein Wort zur Technik
BPM: Die IT-Seite
EJB-Container (oder Tomcat oder Java SE)
jBPM (jPDL)
Human
Task
Session
Mgmnt
Bean
JCA JMS
EJB
WS
BPEL-Server
WS
Java WS WS WS WS
.NET Human
EJB-Container …
Task
Mgmnt
JMS,
JMS …
EJB
camunda services GmbH / info@camunda.com / 43
44. Status quo im Business
Aktueller Stand in der Praxis
• Verständnis für IT-BPM reift prinzipiell heran
• P bl
Problematische G dh lt
ti h Grundhaltungen:
– „Ich will nicht wissen, wie die IT es macht, ich will wissen,
dass sie es macht“
macht
– „Das wird mir jetzt zu technisch“
– „Prozessmodellierung ist Fleißarbeit“
– „Hauptsache, der Betrachter versteht das Prozessmodell“
• Einige Erkenntnisse sind noch nicht angekommen
(z.B. Problematik d V f i
( B P bl tik der Verfeinerung von
Prozessmodellen)
• Aber: Die Bereitschaft zur Veränderung ist mehr und
mehr vorhanden
camunda services GmbH / info@camunda.com / 44
45. BPM & SOA
Agenda
1. Fraktionen und Visionen
2. Standards: BPMN und BPEL
3.
3 Aktueller Stand in der Praxis
4. Konkrete Perspektiven
camunda services GmbH / info@camunda.com / 45
46. Service ≠ Service ≠ Service
Das eigentliche Problem
Strategie 1-2
1 2 Jahre
3-6 Monate
Organisation
SOPA: SOA* auf Prozessebene
Integration Task Service Task
Zuweisung
g Aufruf Zuweisung
g
SOIA: SOA auf Integrationsebene
Process Engine
IT
Software 6-10 Jahre
SOSA: SOA auf Software-Ebene
Infrastruktur
*SOA = Serviceorientierte Architekturen
In Anlehnung an:
Prof. Dr. Robert Winter, Institut für Wirtschaftsinformatik, Universität St. Gallen
camunda services GmbH / info@camunda.com / 46
47. Es entstehen neue Berufsbilder
Perspektiven
Process Analyst Process Engineer
camunda services GmbH Management47 Development
/ info@camunda.com /
48. Ganzheitliches BPM in der Praxis
Aktuelle Projekterfahrung
Aktuelle Problemstellung
• Ausfälle im Prozessbetrieb (Stillstände etc.)
• Fachliche Prozessbetreuer müssen in BPEL modellieren
• Schlechte fachliche Unterstützung des Prozessbetriebs
• Fachliches Prozessmanagement völlig entkoppelt von IT-BPM
Lösungsansätze
Lö ät
• Aufsetzen sauberer technischer Architektur
• Einführung eines einheitlichen Modellierungsframeworks für die
fachlich-technische Kommunikation
• Verbesserung der SLA-Überwachung (z.B. Push statt Pull)
• Definition von Rollen und Gremien für die fachlich-technische
Zusammenarbeit (z.B. BPM-Board)
camunda services GmbH / info@camunda.com / 48
49. Wie kommen wir mit BPM kurzfristig weiter?
Perspektiven
FALSCHER ANSATZ
• Krampfhaft versuchen, technische Workflows aus fachlichen
Prozessmodellen zu generieren
• Standards als „heilige Sandale“
Sandale
RICHTIGER ANSATZ
Neue BPM-Methoden (und ggf. Tools) zur Kommunikation
zwischen Business und IT nutzen.
Punktuelle Anpassungen durch Business ermöglichen (speziell:
Business Rules)
Fachliche Prozessmonitoring- und Reportingfunktionen
aufsetzen und d h d B i
ft d durch das Business k fi i b machen
konfigurierbar h
Step-by-Step statt Big Bang
Eigene Kompetenz aufbauen (Coachings Open Source BPM)
(Coachings,
camunda services GmbH / info@camunda.com / 49
50. Ein Muss: Die BPM-Suite
Perspektiven
• Kommerzielle Lösung beschaffen
– Pro: Out-of-the-box (?)
– Contra: Große Investition, Abhängigkeit, Risiko
• Auf Open Source entwickeln
– Pro: Klein beginnen, eigenes Know-How aufbauen
g g
– Contra: Entwicklungsressourcen benötigt
• SaaS-Lösung nutzen
SaaS Lösung
– Pro: Grow-as-you-need, schnell und günstig
– Contra: Vertrauen notwendig
Es gilt: A fool with a tool is still a fool
camunda services GmbH / info@camunda.com / 50
51. Fragen & Antworten
camunda services GmbH
info@camunda.com
www.camunda.com
www camunda com
Unsere Themen
•GGanzheitliches BPM
h itli h
• Prozessautomatisierung
• SOA, BPEL, XPDL, JBoss SOA
Platform (jBPM D l ESB)
Pl tf (jBPM, Drools,
• BPMN
• BPM-Toolauswahl
Unsere Leistungen
• Beratung
• Seminare
• Process Hosting
camunda services GmbH / info@camunda.com / 51