Business Process Modeling Notation: Ein Hype?
0
200
400
600
800
1000
EPK UML BPMN
Interesse Praxiserfahrung
Auswertung von rd. 2.400 Profilen auf BPM-Netzwerk.de, 09/2009
Werdegang der BPMN
bis 2002 EntwicklungStephen A. White, IBM
2002 VeröffentlichungBusiness Process Management Initiative (BPMI)
Seit 2005 Übernahme und WeiterentwicklungObject Management Group (OMG)
Aktueller Stand: BPMN 1.2; In der Entwicklung: BPMN 2.0
Die BPMN-Paradigmen für die Prozessmodellierung
entsprechen den Paradigmen moderner Softwaretechnik…
Was an BPMN so schön ist
…das ist ja gut fürs
Business-IT-Alignment!
… und es gibt hübsche
Symbole…
BPMN 1.2: Das aktuelle Problem
(KPI)Reporting
Rule Engine
Process Engine
ESBTaskLists /
Portal / Mobile / etc.
Legacy / Backendintern / extern
ProcessParticipants
(KPI) Monitoring
ProcessAnalyst
ProcessEngineer
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
BPMN 1.2
BPEL etc.
Mapping
Execution
ProcessAdministrator
ProcessManager
Was wir mit BPMN 2.0 bekommen (unter anderem)
(KPI)Reporting
Rule Engine
Process Engine
ESBTaskLists /
Portal / Mobile / etc.
Legacy / Backendintern / extern
ProcessParticipants
(KPI) Monitoring
ProcessAnalyst
ProcessEngineer
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
BPMN 2.0
auch BPMN 2.0
Speichern
Execution
ProcessAdministrator
ProcessManager
BPEL
etc.
AktivitätenKonversationen Ereigniss
e
Gateway
s
Konversationsdiagram
m
Blanko: Untypisierte
Ereignisse, i. d. R. am Start
oder Ende eines Prozesses.
Nachricht: Empfang und
Versand von Nachrichten.
Timer: Periodische zeitliche
Ereignisse, Zeitpunkte oder
Zeitspannen.
Fehler: Auslösen und
behandeln von definierten
Fehlern.Abbruch: Reaktion auf
abgebrochene Transaktionen
oder Auslösen von
Abbrüchen.Kompensation: Behandeln
oder Auslösen einer
Kompensation
Bedingung: Reaktion auf
veränderte Bedingungen und
Bezug auf Geschäftsregeln.
Signal: Signal über mehrere
Prozesse. Auf ein Signal kann
mehrfach reagiert werden.
Mehrfach: Eintreten eines von
mehreren Ereignissen.
Auslösen aller Ereignisse.
Link: Zwei
zusammengehörige Link-
Ereignisse repräsentieren
einen Sequenzfluss.
Terminierung: Löst die
sofortige Beendigung des
Prozesses aus.
Eskalation: Meldung an den
nächsthöheren
Verantwortlichen.
Mehrfach/Parallel: Eintreten
aller Ereignisse.
Start EndeZwischen
Ein
ge
tre
ten
Au
sg
elö
st
Ere
ign
is-
Te
ilp
roze
ss
Un
terb
rec
he
nd
To
p-L
ev
el
Ere
ign
is-T
eilp
roze
ss
Nic
ht-
un
terb
rec
he
nd
An
ge
he
fte
t
un
terb
rec
he
nd
An
ge
he
fte
t N
ich
t-
un
terb
rec
he
nd
Sequenzfluss
definiert die Abfolge
der Ausführung.
Bedingter Fluss
enthält eine Bedingung,
die definiert, wann er
durchlaufen wird, und
wann nicht.
Standardfluss
wird durchlaufen wenn
alle anderen
Bedingungen nicht
zutreffen.
AufgabeEine Aufgabe ist eine Arbeitseinheit. Ein
zusätzliches markiert eine Aktivität als
zugeklappten Teilprozess.
Transaktion
Eine Transaktion ist eine Gruppe von Aktivitäten,
die logisch zusammen gehören. Ein
Transaktionsprotokoll kann angegeben werden.
Ereignis-
Teilprozess
Ein Ereignis-Teilprozess wird in einem anderen
Teilprozess platziert. Er wird durch ein
Startereignis ausgelöst und kann den
umgebenden Teilprozess unterbrechen oder
parallel dazu ausgeführt werden, abhängig von
der Art des Startereignisses.
Aufruf-Aktivität
Eine Aufruf-Aktivität repräsentiert einen global
definierten Teilprozess oder eine global definierte
Aufgabe, der bzw. die im aktuellen Prozess
verwendet wird.
Aufgaben-TypenSie beschreiben den Charakter
einer Aufgabe:
Senden
Empfangen
Benutzer
Manuell
Geschäftsregel
Service
Skript
Sie beschreiben das
Ausführungs-verhalten von
Aktivitäten:
Markierungen
Teilprozess
Schleife
Parallele
Mehrfachausführung
Sequentielle
Mehrfachausführung
~ Ad Hoc
Kompensation
Eine Kommunikation definiert einen
mehrfachen, logisch zusammen-
gehörigen Nachrichtenaustausch
Ein aufgefächerter Konversationslink
verknüpft eine Kommunikation mit
mehrfachen Teilnehmern.
Ein Konversationslink verknüpft
Kommunikationen und Teilnehmer.
Inklusives Gateway
Es werden je nach Bedingung
eine oder mehrere ausgehende
Kanten aktiviert bzw. ein-
gehende Kanten synchronisiert.
Komplexes Gateway
Verzweigungs- und
Vereinigungsverhalten das
nicht von anderen Gateways
erfasst wird.
Exklusives Ereignis-basiertes
Gateway (Instanziierung)
Sobald eines der nachfolgenden
Ereignisse eintritt, wird der
Prozess gestartet.
Paralleles Ereignis-basiertes
Gateway (Instanziierung)
Erst wenn alle nachfolgenden
Ereignisse eintreten, wird der
Prozess gestartet.
Bei einer Verzweigung wird der Fluss abhängig von
Verzweigungsbedingungen zu genau einer
ausgehenden Kante geleitet. Bei einer
Zusammenführung wird auf eine der eingehenden
Kanten gewartet, um den ausgehenden Fluss zu
aktivieren.
Exklusives Gateway
Diesem Gateway folgen stets eintretende Ereignisse
oder Empfänger-Aufgaben. Der Sequenzfluss wird zu
dem Ereignis geleitet, das zuerst eintritt.
Ereignis-basiertes
Gateway
Wenn der Sequenzfluss verzweigt wird, werden alle
ausgehenden Kanten simultan aktiviert. Bei der
Zusammenführung wird auf alle eingehenden
Kanten gewartet, bevor der ausgehende Sequenzfluss
aktiviert wird (Synchronisation).
Paralleles Gateway
Pool
(zugeklappt)
Mehrfach
beteiligter Pool(zugeklappt)
Kommunikation
Sub-Konversation
Pool
(zugeklappt)
Participant B
Die Abfolge des
Informationsaustauschs
kann spezifiziert werden,
indem Nachrichtenfluss
und Sequenzfluss
kombiniert werden.
Po
ol
Po
ol
Pools (Beteiligter) und Lanes
repräsentieren
Verantwortlichkeiten für
Aktivitäten. Ein Pool oder eine
Lane können eine
Organisation, eine Rolle oder
ein System sein.
La
ne
Task
La
ne
Task
Po
ol
Nachrichtenfluss
symbolisiert den
Informationsaustausch.
Nachrichtenflüsse können
an Pools, Aktivitäten und
Nachrichtenereignisse
andocken.
Daten
AufgabeInput Out-
put
Daten-
speicher
Ein Datenobjekt repräsentiert Informationen, die
durch den Prozess fließen, wie z.B. Dokumente,
Emails oder Briefe.
Ein Datenspeicher ist ein Ort wo der Prozess
Daten lesen oder schreiben kann, z.B. eine
Datenbank oder ein Aktenschrank. Er existiert
unabhängig von der Lebensdauer der
Prozessinstanz.
Eine Nachricht weist auf den Inhalt einer
Kommunikation zwischen zwei Teilnehmern hin.
Ein Listen-Datenobjekt repräsentiert eine
Gruppe von Informationen, z.B. eine Liste mit
Bestellpositionen.
Pool (zugeklappt)
Kollaborationsdiagramm
Po
ol (a
ufg
ek
lap
pt)
La
ne
La
ne
Choreographien
Choreographie-Diagramm
Eine Choreographie-
Aufgabe repräsentiert eine
Interaktion (Nachrichten-
austausch) zwischen zwei
Beteiligten.
Choreographie-
Aufgabe
Beteiligter A
Beteiligter B
Ein Choreographie-
Teilprozess enthält eine
verfeinerte Choreographie mit
mehreren Interaktionen.
Choreographie-
Teilprozess
Beteiligter A
Beteiligter C
Beteiligter B
Eine Mehrfach-Beteiligter
Markierung beschreibt eine
Reihe von Beteiligten
derselben Sorte.
Swimlane
s
BPMN 2.0 - Business Process Model and Notation
Liste
Ad hoc Teilprozess
Aufgabe
Aufgabe
~
Nachrichten-
Startereignis
Nachrichtenfluss
Datenobjekt
Zugeklappter
Teilprozess
Ereignis-
basiertes
Gateway
Eskalations-
EndereignisTimer-
Zwischen-
ereignis
Empfangende
Aufgabe
Angeheftetes
Timer-
Zwischen-
ereignis
Link-
Zwischen-
ereignis
Manuelle
AufgabeEnd-
Ereigni
s
Daten-
speicher
Link-
Zwischen-
ereignis
Mehrfach/
Parallel-
Zwischen-
ereignis
Text-Anmerkung
Gruppierung
Aufgabe (Parallele
Mehrfach-
ausführung)
Nachrichten-
Endereignis
Sendende
Aufgabe
Paralleles
Gateway
Exklusives
Gateway
Angeheftetes
Fehler-
Zwischen-
ereignis
Signal-
Endereigni
s
Aufruf-
Aktivität
Teilprozess
Ereignis-Teilprozess
Bedingungs-
Startereignis
Fehler-
Endereignis
Start-
Ereignis
End-
Ereignis
Schleifen-
Teilprozess
Bedingung
http://bpmb.de/poster
Beteiligter A
Beteiligter C
Beteiligter B
Choreographie-
Aufgabe
Beteiligter A
Beteiligter B
Choreographie-
Aufgabe
Beteiligter A
Beteiligter C
Initiierende
Nachricht
Antwort-
Nachricht
Choreographie-
Aufgabe
Beteiligter B
Beteiligter A
Ein Dateninput ist ein externer Input für den
ganzen Prozess. Er kann von einer Aktivität
gelesen werden.
Ein Datenoutput ist eine Variable, die als
Ergebnis eines ganzen Prozesses erzeugt
wird.
Die BPMN ist recht umfangreich…
Wir brauchen zielgruppengerechte Modelle!
Prozess-Realität
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Owner Manager Participant Analyst Engineer
Menschen / Rollen / Organisation / Kultur
Vorgehensmodell
Framework / Pattern / Palette
BPMN + Tool = Reinfall
BPMN + Framework + Approach + Tool = Erfolg
BPMN lt. Spezifikation
BPM-Software
Blöd: Die Perspektiven sind doch sehr verschieden
Fachlich-operative
Perspektive
Technische Perspektive
Strategische Perspektive
camunda BPMN-Framework (caBPMN)
Ebene 2
Operatives Prozessmodell
Ebene 3a
Technisches
Prozessmodell
Ebene 1
Strategisches
Prozessmodell
Ebene 3b
IT-Spezifikation
Ebene 4b
Implementierung
Prozesslandschaft
Inhalt: Prozess im Überblick
Ziel: Schnelles Verständnis
Inhalt: Operative Abläufe
Ziel: Arbeits- und
Umsetzungsgrundlage
Inhalt: Technische Details
Ziel: Umsetzung
Fachlich
(Business)
Technisch
(IT)
Mit Process Engine
Ohne Process Engine
Freund, Rücker, HenningerPraxishandbuch BPMNJanuar 2010
camunda BPMN-Framework (caBPMN)
Ebene 2
Operatives Prozessmodell
Ebene 3a
Technisches
Prozessmodell
Ebene 1
Strategisches
Prozessmodell
Ebene 3b
IT-Spezifikation
Ebene 4b
Implementierung
Prozesslandschaft
Inhalt: Prozess im Überblick
Ziel: Schnelles Verständnis
Inhalt: Operative Abläufe
Ziel: Arbeits- und
Umsetzungsgrundlage
Inhalt: Technische Details
Ziel: Umsetzung
Fachlich
(Business)
Technisch
(IT)
Mit Process Engine
Ohne Process Engine
Kern #1: Semantische Brüche „nach oben“ verlagern
Ebene 2
Operatives Prozessmodell
Ebene 3a
Technisches
Prozessmodell
Ebene 1
Strategisches
Prozessmodell
Ebene 3b
IT-Spezifikation
Ebene 4b
Implementierung
Prozesslandschaft
Inhalt: Prozess im Überblick
Ziel: Schnelles Verständnis
Inhalt: Operative Abläufe
Ziel: Arbeits- und
Umsetzungsgrundlage
Inhalt: Technische Details
Ziel: Umsetzung
Fachlich
(Business)
Technisch
(IT)
Mit Process Engine
Ohne Process Engine
Kern #2: Passende Sichten auf Ebene 2
Ebene 2: Operatives
Prozessmodell
Process Participant Process Analyst Process EngineerBetrachter
„Wie muss ich
arbeiten?“
„Wie wird
gearbeitet?“
„Was macht die
Engine?“Zentrale Frage
Eigene
Orchestrierung
Gesamte
Kollaboration
Orchestrierung der
Process EngineSicht
Beispiel für ein Ebene -1- ModellR
ecru
itin
g-P
roze
ss
Un
se
re F
irm
a
Stellen-
ausschreibung
Bewerbungs-
einreichung
Be
we
rbe
r
Bewerbungs-
prüfung
Fa
ch
ab
teilu
ng
Stellen-
besetzung
Freie Stelle
entstanden
Freie Stelle
melden
Pe
rso
na
lab
teilu
ng
Stelle besetzt
Vertrag unterschrieben
Die Stellenausschreibung aus zwei Perspektiven…
Freie Stelle
melden
Fü
hru
ng
skra
ft F
ach
be
reic
h
Personal-
bedarf
Aufgaben und
Anforderungen
mitteilen
Stellenbe-
schreibung
sichten
Korrektur
anmahnen
Stellenbe-
schreibung
freigeben
Nein
JaBeschreibung
freigegeben
OK?
SB Personal
Beschreibung
erhalten
Mehr Infos
erforderlich
SB
Pe
rso
na
l
Angaben und
Anforderungen
erfragen
Nein
Stelle
beschreibenJa
Stellenbe-
schreibung
korrigieren
Stelle
ausgeschrieben
Alles klar?
Freie Stelle
gemeldet
Korrektur
erbeten
Stelle
ausschreiben
Führungskraft Fachbereich
Beschreibung
freigegeben
Meldung
sichten
SB
Pe
rso
na
l
Aufgaben und
Anforderungen
erfragen
Nein
Stelle
beschreibenJa
Stellenbe-
schreibung
korrigieren
Kanäle für
Ausschreibung
festlegen
Stelle
ausgeschrieben
Alles klar?
Freie Stelle
gemeldet
Korrektur
erbeten
Ausschreibung
anstoßen
Beschreibung
freigegeben
Ausschreibung
erfolgreich
HR
-Po
rta
lS
on
stig
es
Freie Stelle
melden
Fü
hru
ng
skra
ft F
ach
be
reic
h
Personal-
bedarf
Aufgaben und
Anforderungen
mitteilen
Stellenbe-
schreibung
sichten
Korrektur
anmahnen
Stellenbe-
schreibung
freigeben
Nein
Ja
Stelle
ausgeschrieben
OK?Beschreibung
erhalten
Mehr Infos
erforderlich
HR
-Po
rta
lS
on
stig
es
Ausschreibung
erfolgreich
Pro
ce
ss E
ng
ine
Au
tom
atisch
SB
Pe
rso
na
lF
üh
run
gskra
ft
Stelle
beschreiben
Stellenbe-
schreibung
prüfen
Stellenbe-
schreibung
korrigieren
Nein
Ausschreibung
anstoßen
Ja
Ausschreibung
durchführen
Stelle
ausgeschrieben
OK?
Erfolgsmeldung
senden
Von Ebene 2 zu Ebene 3…
Weitere Requirements gruppieren sich um den Prozess
Prozess
GUI Daten
NFRs
Regeln
Funktio-nalität
Systeme
Der Prozess der Process EngineP
roce
ss E
ng
ine
Au
tom
atisch
SB
Pe
rso
na
lF
üh
run
gskra
ft
Stelle
beschreiben
Stellenbe-
schreibung
prüfen
Stellenbe-
schreibung
korrigieren
Nein
Ausschreibung
anstoßen
Ja
Ausschreibung
durchführen
Stelle
ausgeschrieben
OK?
Erfolgsmeldung
senden
(KPI)Reporting
Rule Engine
Process Engine
ESBTaskLists /
Portal / Mobile / etc.
Legacy / Backendintern / extern
ProcessParticipants
(KPI) Monitoring
ProcessAnalyst
ProcessEngineer
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
BPMN 2.0
auch BPMN 2.0
Speichern
Execution
ProcessAdministrator
ProcessManager
„Layout“Ausführungs-
semantik
BPMN Serialisierung
Aufgaben-
ZuweisungService-Call Service-Call
Aufgaben-
Zuweisung
Process Engine
Messung der
Durchlaufzeit
<definitions ...
typeLanguage="http://www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath"
xmlns:sample="http://sample.bpmn.camunda.com/">
...
<import namespace="http://sample.bpmn.camunda.com/"
location="SampleService.xsd"
importType="http://www.w3.org/2001/XMLSchema" />
<itemDefinition id="ausschrebungDef" itemKind="Information"
structureRef="sample:ausschreibung" />
...
<import
namespace="http://sample.bpmn.camunda.com/"
location="SampleService.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/soap/" />
<itemDefinition id="StelleAnlegenDef" itemKind="Information"
structureRef="sample:stelleAnlegen" />
<message name="StelleAnlegen" id="StelleAnlegenNachricht"
structureRef="StelleAnlegenDef" />
<interface id="SchrittsteinInterface" name="Schrittstein.de Schnittstelle">
<operation name="stelleAnlegen">
<inMessageRef>StelleAnlegenNachricht</inMessageRef>
</operation>
</interface>
...
<process id="Stellenausschreibungsprozess" name="Stellenausschreibung">
<serviceTask id="SchrittsteinAnlegen"
name="Anzeige auf Schrittstein.de publizieren"
implementation="WebService"
operationRef="StelleAnlegen">
<ioSpecification>
<dataInput id="SchrittsteinAnlegenInput" isCollection="false"
itemSubjectRef="StelleAnlegenNachricht" />
<inputSet>
<dataInputRefs>SchrittsteinAnlegenInput</dataInputRefs>
</inputSet>
<outputSet />
XML-Format (Ausführungssemantik)
Die verschiedene Arbeitsumgebungen (Projektbeispiel)Process
Participant
ProcessAnalyst
• Eigenen Pool einsehen• Status Prozessinstanz im eigenen Pool visualisieren
• Verknüpfte Dokumente herunterladen
• ...
• Prozesse im Überblick• Verschiedene Sichten auf Prozesse(Fachlich, technisch, Detaillierung, …)
• Koordination mit IT• ...
• Technische Umsetzung• Softwareentwicklung• ...
ProcessEngineer
Der Betrieb • Deployment• Monitoring & Überwachung• Eingreifen ein Fehlersituationen• ...?
Vorgehen bei der Umsetzung (Projektbeispiel)
Fachliches Modell Ebene 2
Engine Pool in Ebene 2 Modell
Überführen Ebene 2 Modell in Grundgerüst
Ebene 3
Technische Umsetzung
Ebene 3 Prozess
Technische Änderungen
fachlich freigeben
Process Engineer
Process Analyst Analyst
Engine Pool aus Ebene-2-BPMN-Modell als jBPM Prozess in Entwicklungs-SVN kopieren
Unterstützung des Alignments der fachlichen Pools
Technischen Prozess aus SVN nach Commit automatisch in Engine Pool Ebene-2-BPMN-Modell überführen und ProcessAnalyst benachrichtigen
Notwendige Tool-Features:
Wirklich?
Fachlich abgenommen
Technisch in der Entwicklung
Produktiv
Simulation von Alternativen
...
Fazit BPMN 2.0 Execution
Kontrollfluß als Graph
Komplex, ABER…
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions id="ShipmentDefinitions"
...
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://sample.bpmn.camunda.com/">
<!-- definition structures for process variables -->
<bpmn:itemDefinition id="lieferungDef" itemKind="Information"
structureRef="sample:shipment"/>
<!-- interfaces -->
<bpmn:interface id="ProzessInterface" name="Lieferprozess Schnittstelle">
<bpmn:operation name="startShipmentProcess">
<bpmn:inMessageRef>tns:ProzessStartenNachricht</bpmn:inMessageRef>
</bpmn:operation>
<bpmn:operation name="notifyShipmentConsigned">
<bpmn:inMessageRef>tns:KommissioniertNachricht</bpmn:inMessageRef>
</bpmn:operation>
</bpmn:interface>
<bpmn:process id="Shipment" name="Shipment">
<bpmn:documentation id="doc1">Teilprozess der Lieferung</bpmn:documentation>
<!-- process variables -->
<bpmn:dataObject id="lieferungVariable" name="Lieferung"
itemSubjectRef="tns:lieferungDef"/>
<!-- Start-Event -->
<bpmn:startEvent id="Start">
<bpmn:dataOutput id="ProzessStartOutput"
itemSubjectRef="tns:ProzessStartenNachricht"/>
<bpmn:dataOutputAssociation>
<bpmn:assignment>
<bpmn:from xsi:type="bpmn:tFormalExpression">
getDataOutput('ProzessStartOutput')/shipment
</bpmn:from>
<bpmn:to xsi:type="bpmn:tFormalExpression">
getDataObject('lieferungVariable')
</bpmn:to>
</bpmn:assignment>
<bpmn:sourceRef>ProzessStartOutput</bpmn:sourceRef>
<bpmn:targetRef>tns:lieferungVariable</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:messageEventDefinition messageRef="tns:ProzessStartenNachricht">
<bpmn:operationRef>tns:startShipmentProcess</bpmn:operationRef>
</bpmn:messageEventDefinition>
</bpmn:startEvent>
Keine feste Bindung an WS und XML
Gemeinsame Sprache BPMN
Vielen Dank!camunda services GmbHZossener Str. 55-5810961 Berlin
Telefon: +49 30 664 0409-00Telefax: +49 30 664 0409-29
Email: [email protected]
www.bpm-guide.deDer Praxis-Blog zu BPM:
@camunda.com
Geschäftsführer
Jakob Freund
Jakob.Freund
OOP
München, 28.01.2010
Vielen Dank!camunda services GmbHZossener Str. 55-5810961 Berlin
Telefon: +49 30 664 0409-00Telefax: +49 30 664 0409-29
Email: [email protected]
www.bpm-guide.deDer Praxis-Blog zu BPM:
@camunda.com
Geschäftsführer
Bernd Rücker
bernd.ruecker
OOP
München, 28.01.2010