20091112 wjax bpmn 2.0 - wird bpel noch gebraucht?
TRANSCRIPT
BPMN 2.0
Wird BPEL noch gebraucht?
BPMN ist ein Hype-Thema
0
200
400
600
800
1000
EPK UML BPMN
Interesse Praxiserfahrung
Auswertung von rd. 2.400 Profilen auf BPM-Netzwerk.de, 09/2009
BPM ist ein ewiges Thema
Process Engines sind toll, aber…
BPMN 2.0 – Die Essentials
BPMN in der Praxis – Den Graben schließen?
BPMN 2.0 – Ein zweiter Blick
Der rote Faden…
Wir werden die Welt verbessern!
Wir bringen allen Organisationen bei, wie sie mitBPM ihre Geschäftsprozesse verbessern, und machen die notwendige Technologie für Jeden erschwinglich.
Mit unserer Hilfe wird sich jede Organisation wieder auf das konzentrieren können, worin ihr eigentlicher Wert für die Gesellschaft besteht.
• BPM = Geschäftsprozessmanagement• Automatisierte und Nicht-Automatisierte Prozesse• Systematischer Ansatz zur Verbesserung• Abstimmung mit der Unternehmensstrategie
BPM Common Body of Knowledge 2009:
BPM ist wie Bergwandern…N
utz
en
BPM-Reifegrad
Projekt
RO
I
Existierende Prozesse dokumentierenExistierende Prozesse verbessernNeue Prozesse einführen
Typische Etappenziele
BPM erfordert einen harmonischen Dreiklang
BPM
Rollen
Methoden Werkzeuge
camunda BPM-Kreislauf
Prozess-
erhebung
Prozess-
dokumentation
Prozess-
konzeption
Prozess-
umsetzung
Prozess-
controlling
Prozess-
analyse
Existierender
Prozess
Neuer
Prozess
Ja
Nein
Schwachstellen?
IST-
Prozessmodell
SOLL-
Prozessmodell
IST-
Prozess-
modell
Kontinuierlich, bis
Prozessverbesserung
notwendig wird
Problemdiagnose
Ursachenforschung
Potentialschätzung
Modellierung
Soll-Konzept
Prozess-Simulation
Bewertung von Alternativen
ROI-Schätzung
Change Management
Klassische IT-Projekte
Prozessautomatisierung
Workshops
Interviews
Beobachtung
Modellierung
Prozesslandkarten
Ablaufdiagramme
BPM-Governance
BPM ist ein ewiges Thema
Process Engines sind toll, aber…
BPMN 2.0 – Die Essentials
BPMN in der Praxis – Den Graben schließen?
BPMN 2.0 – Ein zweiter Blick
Der rote Faden…
Vorfertigungsgrade
Vielseitigkeit
Überwachbarkeit
Business-IT-Alignment (?)
Vorteile einer Process Engine
<?xml version="1.0" encoding="UTF-8"?>
<bpws:process name="SimpleBPEL"
targetNamespace="http://www.camunda.com/example" ... >
...
<bpws:partnerLinks>
<bpws:partnerLink name="client"
myRole="SimpleBPELProvider"
partnerLinkType="tns:SimpleBPEL"/>
<bpws:partnerLink name="someWebservice"
partnerRole="ServiceProvider"
partnerLinkType="tns:SimpleService"/>
</bpws:partnerLinks>
<bpws:variables>
<bpws:variable messageType="tns:RequestMessage" name="input"/>
<bpws:variable messageType="tns:InvokeMessage" name="parameter"/>
</bpws:variables>
<bpws:sequence name="main scope">
<bpws:receive name="receive"
createInstance="yes"
operation="initiate"
variable="input"
partnerLink="client"
portType="tns:SimpleBPEL"/>
<bpws:assign name="assign" validate="no">
...
</bpws:assign>
<bpws:invoke name="invoke"
operation="methodName"
inputVariable="parameter"
partnerLink="someWebservice"
portType="tns:ServiceInvoke"/>
</bpws:sequence>
</bpws:process>
Ein technisches Prozessmodell in BPEL
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
BPM ist ein ewiges Thema
Process Engines sind toll, aber…
BPMN 2.0 – Die Essentials
BPMN in der Praxis – Den Graben schließen?
BPMN 2.0 – Ein zweiter Blick
Der rote Faden…
Liegt aktuell als Entwurf vor
Feinschliff in der „Finalization Task Force (FTF)“
Verabschiedung voraussichtlich Q2/2010
Formales Metamodell (XSD)
Direkte Ausführbarkeit (BPMN Engine erforderlich)
Neue Symbole für BPD
2 neue Diagrammtypen
BPMN 2.0: Essentials
BPM ist ein ewiges Thema
Process Engines sind toll, aber…
BPMN 2.0 – Die Essentials
BPMN in der Praxis – Den Graben schließen?
BPMN 2.0 – Ein zweiter Blick
Der rote Faden…
Vom fachlichen zum
technischen Prozessmodell?
„Real Practice“ Modellierung: Alles geklärt?
Kunde schickt
Bestellung
Vertrieb prüft die
Bestellung
Logistik
versendet die
Ware
Buchhaltung stellt
die RechnungKunde bezahlt
„Real Practice“ Modellierung: Alles verstanden?
Wir brauchen rollengerechte Prozessmodelle!
Prozess-Realität
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Rolle? Rolle? Rolle? Rolle? Rolle?
Process Owner
Process Manager
Process Participant
Process Analyst
Process Engineer
Ein Prozess – Viele Modelle!
Prozess-Realität
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Pro
zessm
odell
Owner Manager Participant Analyst Engineer
Entdecke die Möglichkeiten…
Menschen / Rollen / Organisation / Kultur
Vorgehensmodell
Framework / Pattern / Palette
Immer schön an den Dreiklang denken!
BPMN lt. Spezifikation
BPM-Software
BPM
Rollen
Methoden Werkzeuge
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
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
Auf Ebene 2 muss jeder seine „Sicht“ bekommen
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
Stellenaus-
schreibung
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
Bewerber
ausgewählt
Stelle
ausgeschrieben
Bewerbung
(Post, Email)
Stellenausschreibung
(Webseite, Job-Portale)
Stellenmeldung
(Email)
MS Excel
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 Aspekte werden „angedockt“P
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
Freie Stelle melden
Interne Bezeichnung
Aufgaben (Stichpunkte)
Anforderungen (Stichpunkte)
Prozess starten
Stellenbeschreibung prüfen
Fertig
Eckdaten Ihre Aufgaben Ihr Profil
OK Nicht ok: <Ihr Kommentar>
Job-Bezeichnung: [Bezeichnung]
Beschäftigungsart: [Regulär/Student/Praktikum]
Beschäftigungsart: Regulär
Ansprechpartner/in: [SB Personal]
Kennzeichen: [ID]
Prozess
gestartet
Stelle beschreiben
Fertig
Eckdaten Ihre Aufgaben Ihr Profil
Job-Bezeichnung:
Beschäftigungsart: [Regulär/Student/Praktikum]
Ansprechpartner/in: [Aktueller User]
Kennzeichen: [Generierte ID]
Stellenbeschreibung korrigieren
Fertig
Eckdaten Ihre Aufgaben Ihr Profil
<Kommentar>
Job-Bezeichnung:
Beschäftigungsart: [Regulär/Student/Praktikum]
Ansprechpartner/in: [SB Personal]
Kennzeichen: [ID]
[Vorschlag Fachbereich] [Bezeichnung]
Kommentar des Fachbereiches
Ausschreibung anstoßen
Fertig
Eckdaten Ihre Aufgaben Ihr Profil
Job-Bezeichnung: [Bezeichnung]
Beschäftigungsart: [Regulär/Student/Praktikum]
Ansprechpartner/in: [SB Personal]
Kennzeichen: [ID]
Kanäle auswählen
Firmen-WebsiteIntranet
Schrittstein.de BPM-Netzwerk.de
Sehr geehrte[r] [Herr/Frau] [Name],
die gemeldete Stelle [ID, Bezeichnung] wurde soeben erfolgreich über folgende Kanäle ausgeschrieben:
- Intranet- Firmenwebsite- BPM-Netzwerk.de
Wir wünschen viel Erfolg bei der Kandidatensuche.
Mit freundlichen Grüßen,
Ihre Process Engine
Beispiel Best Practice 1: Umgang mit Fehlern
Liefertermin
ermitteln
Auftragsbe-
stätigung
faxen
Be
ste
llan
na
hm
e
Vollständigkeit
prüfenBonität prüfen
Auftrag
bestätigt
Bestellung
erhalten
Aufgabe
Ergebnis?
OK
Nicht OKFehler
Modellieren Sie folgende Probleme: 1. Die Bestelldaten sind unvollständig.2. Die Bestelldaten sind unleserlich.3. Die Kundennummer in der Bestellung ist falsch.4. Der Kunde besitzt keine ausreichende Bonität.5. Der bestellte Artikel ist nicht lieferbar.6. Beim Faxen der Auftragsbestätigung nimmt am anderen Ende der
Leitung eine Person ab und fragt unser Faxgerät, ob das ein schlechter Scherz sein soll.
Verwenden Sie für jedes Problementweder ein Fehlereignis an der Aufgabe, oder ein XOR-Gateway nach der Aufgabe.
Prozess im Happy Path:
Außer bei 6. sollten alle Probleme zurAblehnung des Auftrags führen!
Lösungsvorschlag: Umgang mit Fehlern
Liefertermin
ermitteln
Auftragsbe-
stätigung
faxen
Be
ste
llan
na
hm
e
Vollständigkeit
prüfenBonität prüfen
Auftrag
bestätigt
Bestellung
erhalten
Vollständig?
Ja Ja
Bonität?
Auftrag
ablehnen
Nein Nein
Auftrag
abgelehnt
Kunden-Nr.
falschNicht
lieferbar
Korrekte
Faxnummer
ermitteln
Faxnummer
falsch
Beispiel Best Practice 2: Regeln raus aus den Prozessen!
Liefertermin
ermitteln
Auftragsbe-
stätigung
faxen
Be
ste
llan
na
hm
e
Bestelldaten
prüfenBonität prüfenja
nein
Bonität zu
prüfen?
Regelwerk
anwenden
Regelwerk
„Bonität zu
prüfen“
Entscheidung
Kundentyp Bestellhöhe Bonität zu prüfen?
A-Kunde egal NEIN
> 300.000 € JA
<= 300.000 € NEIN
Neukunde >= 50.000 € JA
< 50.000 € NEIN
Sonstiger Bestandskunde
Bedingungen
Bestellung
erhalten
Liefertermin
ermitteln
Auftragsbe-
stätigung
faxen
Be
ste
llan
na
hm
e
Bestelldaten
prüfenBonität prüfenNeukunde
A-Kunde
Kunde?
Bestellwert?
Bestellwert?
Sonstiger
Bestandskunde
>= 50
TEUR
> 300
TEUR
sonst
sonst
Bestellung
erhalten
Häufigkeiten von Symbolen auf Ebene 2Immer Häufig
Blanko
TeilprozessTransaktion
SchleifeMehrfach-
Instanz
Kompensation
Gateways
Teilprozesse
Flüsse
Start-
ereignisse
Artefakte
Swimlanes
Neu in
BPMN 2.0
Aufgaben
(Marker)
Aufgaben
(Typen)
SchleifeMehrfach-
Instanz
Anwender ManuellSenden Empfangen SkriptService
Adhoc
~
Zwischen-
ereignisse
Po
ol La
ne
La
ne
Sequenz
Blanko
Nachricht
Nachricht Zeit Bedingung
Zeit Bedingung Signal Nachricht
Mehrfach
End-
ereignisse
BedingtStandardAssoziationNachricht
XOR AND
Blanko Signal Nachricht Mehrfach Kompensation Abbruch
Event
Individuelle
SymboleAnmerkung
Data Store
Ereignis-
Teilprozess
Geschäftsregel
AufgabeAufruf-Aktivität
Event
Start AND
Sequentielle
Mehrfach-
Aktivität
Mehrfach AND/XOR
Nachricht
(Anfrage / Antwort)
Datenobjekt
(Input / Output)
Event
Start XOR
Nachricht, Zeit, Bedingung:
Angeheftet, aber nicht unterbrechendMehrfach AND
Nachricht, Zeit, Bedingung:
Start / nicht-unterbrechend
(für Ereignis-Teilprozess)
Signal Fehler Eskalation
Eskalation
Immer mal wieder Selten Fast nie
Complex
Mehrfach Kompensation Abbruch
Signal
Blanko Fehler Link
TerminierungFehler
OR
Gruppierung
Datenobjekt
BPM ist ein ewiges Thema
Process Engines sind toll, aber…
BPMN 2.0 – Die Essentials
BPMN in der Praxis – Den Graben schließen?
BPMN 2.0 – Ein zweiter Blick
Der rote Faden…
„Layout“Ausführungs-
semantik
BPMN Serialisierung
Aufgaben-
ZuweisungService-Call Service-Call
Aufgaben-
Zuweisung
Process Engine
Messung der
Durchlaufzeit
XML-Format
<?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>
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
Trotzdem: Standards sind keine heilige Sandale!
Status BPMN 2.0 Execution
…
camundaBPMN
Framework
Da war ja noch was…
Wird BPEL noch gebraucht?
Menschen / Rollen / Organisation / Kultur
Vorgehensmodell
Framework / Pattern / Palette
BPMN lt. Spezifikation
BPM-Software
BPMN (2.0) funktioniert!
… wenn man‘s kann…
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
W-Jax BPM-Day
München, 12.11.2009