20100118 BPMN 2.0 auf der OOP
Transcript
BPMN 2.0
Wird BPEL noch gebraucht?
Business Process Modeling Notation: Ein Hype?
1000
800
600
400
200
0
EPK UML BPMN
Interesse Praxiserfahrung
Auswertung von rd. 2.400 Profilen auf BPM-Netzwerk.de, 09/2009
Werdegang der BPMN
bis 2002 Entwicklung
Stephen A. White, IBM
2002 Veröffentlichung
Business Process Management
Initiative (BPMI)
Seit 2005 Übernahme und Weiterentwicklung
Object Management Group (OMG)
Aktueller Stand: BPMN 1.2; In der Entwicklung: BPMN 2.0
Was an BPMN so schön ist
Die BPMN-Paradigmen für
die Prozessmodellierung
entsprechen den Paradigmen
moderner Softwaretechnik…
… und es gibt
hübsche
Symbole…
…das ist ja
gut fürs
Business-IT-
Alignment!
BPMN 1.2: Das aktuelle Problem
BPMN 1.2 Process
Administrator
Process
Analyst
Mapping
(KPI) Monitoring
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
Process Engine
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
Process
Engineer Execution (KPI)
BPEL etc. Reporting Process
Manager
TaskLists /
Portal / ESB Rule
Mobile / etc. Engine
Process Legacy / Backend
Participants intern / extern
Was wir mit BPMN 2.0 bekommen (unter anderem)
BPMN 2.0 Process
Administrator
Process
Analyst
Speichern
(KPI) Monitoring
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
Process Engine
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
Process
Engineer Execution (KPI)
Reporting Process
auch BPMN 2.0
Manager
TaskLists /
Portal / ESB Rule
Mobile / etc. Engine
c. L
et PE
B
Process Legacy / Backend
Participants intern / extern
Hurra! Kommt jetzt endlich der Roundtrip?
Naja…
Manager
Analyst
BPMN 2.0 – Business Process Model and Notation http://bpmb.de/poster
Die BPMN ist recht umfangreich…
Aktivitäten Konversationen Choreographien
Eine Kommunikation definiert einen Beteiligter A
Beteiligter A
Choreographie-
Ereigniss
e Start Zwischen
Nicht-unterbrechend
Ereignis-Teilprozess
Teilprozess
mehrfachen, logisch zusammen- Choreographie-
Angeheftet Nicht-
Eine Aufgabe ist eine Arbeitseinheit. Ein
unterbrechend
unterbrechend
Unterbrechend
gehörigen Nachrichtenaustausch Aufgabe
Eingetreten
Aufgabe zusätzliches markiert eine Aktivität als
Teilprozess
Angeheftet
Beteiligter B
Top-Level
Ereignis-
zugeklappten Teilprozess. Beteiligter B Beteiligter C
Ein Konversationslink verknüpft
Kommunikationen und Teilnehmer. Eine Choreographie- Eine Mehrfach-Beteiligter Ein Choreographie-
Aufgabe repräsentiert eine Markierung beschreibt eine Teilprozess enthält eine
Eine Transaktion ist eine Gruppe von Aktivitäten, Interaktion (Nachrichten- verfeinerte Choreographie mit
Reihe von Beteiligten
Transaktion die logisch zusammen gehören. Ein Ein aufgefächerter Konversationslink austausch) zwischen zwei mehreren Interaktionen.
derselben Sorte. Blanko: Untypisierte
Transaktionsprotokoll kann angegeben werden. verknüpft eine Kommunikation mit Beteiligten.
Ereignisse, i. d. R. am Start
mehrfachen Teilnehmern. oder Ende eines Prozesses.
Ein Ereignis-Teilprozess wird in einem anderen
Teilprozess platziert. Er wird durch ein
Choreographie-Diagramm
Nachricht: Empfang und
Ereignis- Startereignis ausgelöst und kann den Versand von Nachrichten.
Teilprozess umgebenden Teilprozess unterbrechen oder Konversationsdiagram Beteiligter A
parallel dazu ausgeführt werden, abhängig von Timer: Periodische zeitliche
der Art des Startereignisses. m Initiierende
Nachricht
Beteiligter A
Ereignisse, Zeitpunkte oder
Kommunikation Choreographie- Zeitspannen.
Eine Aufruf-Aktivität repräsentiert einen global
Aufgabe
definierten Teilprozess oder eine global definierte Pool Beteiligter A Participant B Eskalation: Meldung an den
Aufruf-Aktivität
Aufgabe, der bzw. die im aktuellen Prozess (zugeklappt) Beteiligter B nächsthöheren
Choreographie-
verwendet wird. Verantwortlichen.
Aufgabe
Beteiligter A Bedingung: Reaktion auf
Beteiligter B veränderte Bedingungen und
Choreographie-
Markierungen Aufgaben-Typen Mehrfach Aufgabe Bezug auf Geschäftsregeln.
Sie beschreiben das Pool Antwort- Link: Zwei
Sie beschreiben den Charakter beteiligter Pool Nachricht Beteiligter C
Ausführungs-verhalten von (zugeklappt) zusammengehörige Link-
einer Aufgabe: (zugeklappt)
Aktivitäten: Sub-Konversation Ereignisse repräsentieren
einen Sequenzfluss.
Beteiligter B Fehler: Auslösen und
Teilprozess Senden Beteiligter C behandeln von definierten
Schleife Empfangen Fehlern.
Parallele
Kollaborationsdiagramm Abbruch: Reaktion auf
abgebrochene Transaktionen
Benutzer oder Auslösen von
Mehrfachausführung
Pool (zugeklappt) Abbrüchen.
Sequentielle Manuell Kompensation: Behandeln
Nachrichtenfluss
Mehrfachausführung oder Auslösen einer
~ Ad Hoc Geschäftsregel
Service Ereignis-
Empfangende
Ad hoc Teilprozess
Angeheftetes
Timer-
Zwischen-
Kompensation
Signal: Signal über mehrere
Kompensation Aufgabe ereignis Manuelle Prozesse. Auf ein Signal kann
basiertes Aufgabe mehrfach reagiert werden.
Gateway Aufgabe
Skript End-
Zugeklappter Mehrfach: Eintreten eines von
Lane
Ereigni mehreren Ereignissen.
Teilprozess
s
Nachrichten- Aufgabe Auslösen aller Ereignisse.
Sequenzfluss Standardfluss Bedingter Fluss Startereignis
Mehrfach/Parallel: Eintreten
Timer- Eskalations- ~ Link-
Zwischen-
aller Ereignisse.
Pool (aufgeklappt)
Zwischen- Endereignis ereignis
Datenobjekt Liste Terminierung: Löst die
definiert die Abfolge wird durchlaufen wenn enthält eine Bedingung, ereignis sofortige Beendigung des
der Ausführung. alle anderen die definiert, wann er Prozesses aus.
Bedingungen nicht durchlaufen wird, und Teilprozess Text-Anmerkung
zutreffen. wann nicht. Signal-
Endereigni
Daten- Ereignis-Teilprozess Angeheftetes s Gruppierung
speicher Fehler-
Gateway Zwischen-
ereignis
Aufgabe
(Parallele
Daten
Bedingungs- Fehler- Mehrfach-
Bedingung
Lane
Startereignis Endereignis ausführung)
s
Exklusives Gateway
Bei einer Verzweigung wird der Fluss abhängig von
Verzweigungsbedingungen zu genau einer Link-
Zwischen-
Mehrfach/
Parallel-
Ein Dateninput ist ein externer Input fü
ausgehenden Kante geleitet. Bei einer ganzen Prozess. Er kann von einer Ak
ereignis Zwischen- Aufruf- Sendende gelesen werden.
Zusammenführung wird auf eine der eingehenden Schleifen- Input Aufgabe Out-
ereignis
Kanten gewartet, um den ausgehenden Fluss zu Teilprozess Aktivität Aufgabe put Ein Datenoutput ist eine Variable, die
Ereignis-basiertes aktivieren. End- Nachrichten-
Ergebnis eines ganzen Prozesses erze
Start- Exklusives Paralleles
Gateway Diesem Gateway folgen stets eintretende Ereignisse Ereignis Ereignis Endereignis wird.
Gateway Gateway
oder Empfänger-Aufgaben. Der Sequenzfluss wird zu
Ein Datenobjekt repräsentiert Informa
dem Ereignis geleitet, das zuerst eintritt.
durch den Prozess fließen, wie z.B. Do
Emails oder Briefe.
Wenn der Sequenzfluss verzweigt wird, werden alle
Paralleles Gateway
ausgehenden Kanten simultan aktiviert. Bei der
Swimlane
Pool
Zusammenführung wird auf alle eingehenden
Lane
Task Ein Listen-Datenobjekt repräsentiert e
Kanten gewartet, bevor der ausgehende Sequenzfluss
s Gruppe von Informationen, z.B. eine Li
Pool
aktiviert wird (Synchronisation).
Bestellpositionen.
Lane
Inklusives Gateway
Pool
Exklusives Ereignis-basiertes Task
Es werden je nach Bedingung Gateway (Instanziierung) Ein Datenspeicher ist ein Ort wo der P
eine oder mehrere ausgehende Sobald eines der nachfolgenden Daten lesen oder schreiben kann, z.B.
Kanten aktiviert bzw. ein- Ereignisse eintritt, wird der Die Abfolge des Daten- Datenbank oder ein Aktenschrank. Er e
Pools (Beteiligter) und Lanes Nachrichtenfluss
gehende Kanten synchronisiert. Prozess gestartet. Informationsaustauschs speicher unabhängig von der Lebensdauer der
repräsentieren symbolisiert den
Verantwortlichkeiten für Informationsaustausch. kann spezifiziert werden, Prozessinstanz.
Komplexes Gateway Paralleles Ereignis-basiertes Aktivitäten. Ein Pool oder eine Nachrichtenflüsse können indem Nachrichtenfluss
Verzweigungs- und Gateway (Instanziierung) und Sequenzfluss Eine Nachricht weist auf den Inhalt ein
Lane können eine an Pools, Aktivitäten und
Vereinigungsverhalten das Erst wenn alle nachfolgenden kombiniert werden. Kommunikation zwischen zwei Teilneh
Organisation, eine Rolle oder Nachrichtenereignisse
nicht von anderen Gateways Ereignisse eintreten, wird der ein System sein. andocken.
erfasst wird. Prozess gestartet.
Wir brauchen zielgruppengerechte Modelle!
Owner Manager Participant Analyst Engineer
Prozessmodell
Prozessmodell
Prozessmodell
Prozessmodell
Prozessmodell
Prozess-Realität
Entdecke die Möglichkeiten…
BPMN + Tool = Reinfall
BPMN + Framework + Approach + Tool = Erfolg
Menschen / Rollen / Organisation / Kultur
Vorgehensmodell
Framework / Pattern / Palette
BPMN lt. Spezifikation
BPM-Software
Blöd: Die Perspektiven sind doch sehr verschieden
Strategische
Perspektive
Fachlich-
Technische
operative
Perspektive
Perspektive
camunda BPMN-Framework (caBPMN)
Prozesslandschaft
Freund, Rücker, Henninger
Praxishandbuch BPMN
Januar 2010
Inhalt: Prozess im Überblick
Ebene 1 Ziel: Schnelles Verständnis
Strategisches
Prozessmodell
Inhalt: Operative Abläufe
Ebene 2 Ziel: Arbeits- und
Fachlich Operatives Prozessmodell Umsetzungsgrundlage
(Business)
Technisch
(IT) Ebene 3a
Ebene 3b
Technisches
IT-Spezifikation
Prozessmodell
Inhalt: Technische Details
Ziel: Umsetzung
Mit Process Engine
Ebene 4b
Implementierung
Ohne Process Engine
camunda BPMN-Framework (caBPMN)
Prozesslandschaft
Inhalt: Prozess im Überblick
Ebene 1 Ziel: Schnelles Verständnis
Strategisches
Prozessmodell
Inhalt: Operative Abläufe
Ebene 2 Ziel: Arbeits- und
Fachlich Operatives Prozessmodell Umsetzungsgrundlage
(Business)
Technisch
(IT) Ebene 3a
Ebene 3b
Technisches
IT-Spezifikation
Prozessmodell
Inhalt: Technische Details
Ziel: Umsetzung
Mit Process Engine
Ebene 4b
Implementierung
Ohne Process Engine
Kern #1: Semantische Brüche „nach oben“ verlagern
Prozesslandschaft
Inhalt: Prozess im Überblick
Ebene 1 Ziel: Schnelles Verständnis
Strategisches
Prozessmodell
Inhalt: Operative Abläufe
Ebene 2 Ziel: Arbeits- und
Fachlich Operatives Prozessmodell Umsetzungsgrundlage
(Business)
Technisch
(IT) Ebene 3a
Ebene 3b
Technisches
IT-Spezifikation
Prozessmodell
Inhalt: Technische Details
Ziel: Umsetzung
Mit Process Engine
Ebene 4b
Implementierung
Ohne Process Engine
Kern #2: Passende Sichten auf Ebene 2
Betrachter Process Participant Process Analyst Process Engineer
„Wie muss ich „Wie wird „Was macht die
Zentrale Frage
arbeiten?“ gearbeitet?“ Engine?“
Eigene Gesamte Orchestrierung der
Sicht
Orchestrierung Kollaboration Process Engine
Ebene 2: Operatives
Prozessmodell
Beispiel für ein Ebene -1- Modell
Vertrag unterschrieben
Fachabteilung
Freie Stelle
melden
Freie Stelle
entstanden Stelle besetzt
Unsere Firma
Recruiting-Prozess
Personalabteilung
Stellen- Bewerbungs- Stellen-
ausschreibung prüfung besetzung
Bewerber
Bewerbungs-
einreichung
Die Stellenausschreibung aus zwei Perspektiven…
Mehr Infos
erforderlich
Führungskraft Fachbereich
Aufgaben und
Anforderungen
mitteilen
Beschreibung
OK?
erhalten
Stellenbe- Stellenbe-
Freie Stelle Korrektur
schreibung Nein schreibung
melden anmahnen
sichten freigeben
Personal- Beschreibung
bedarf Ja freigegeben
SB Personal
Führungskraft Fachbereich
Alles klar?
Stellenbe-
Meldung Stelle
Ja schreibung Stelle
sichten beschreiben
SB Personal
korrigieren ausschreiben
Freie Stelle Korrektur Beschreibung Stelle
gemeldet Nein erbeten freigegeben ausgeschrieben
Angaben und
Anforderungen
erfragen
Ausschreibung
Von Ebene 2 zu Ebene 3…
erfolgreich
Aufgaben und
Sonstiges
Führungskraft Fachbereich
Anforderungen
mitteilen
Mehr Infos Stelle
erforderlich ausgeschrieben
Beschreibung
OK?
erhalten
HR-Portal
Stellenbe- Stellenbe-
Freie Stelle Korrektur
schreibung Nein schreibung
melden anmahnen
sichten freigeben
Personal-
bedarf Ja
Automatisch
Ausschreibung Erfolgsmeldung
durchführen senden
Stelle
ausgeschrieben
Process Engine
SB Personal
Stelle Stellenbe-
Ausschreibung
beschreiben schreibung
anstoßen
korrigieren
Nein
Führungskraft
Stellenbe-
schreibung Ja
prüfen
OK?
Alles klar?
Stellenbe-
HR-Portal
Stelle Kanäle für
Ja schreibung Ausschreibung
beschreiben Ausschreibung
korrigieren anstoßen
festlegen
Freie Stelle Korrektur Beschreibung
gemeldet erbeten freigegeben
SB Personal
Nein
Sonstiges
Aufgaben und
Anforderungen
erfragen
Ausschreibung Stelle
erfolgreich ausgeschrieben
Weitere Requirements gruppieren sich um den Prozess
GUI Daten
Funktio- Prozess NFRs
nalität
Regeln Systeme
Der Prozess der Process Engine
Automatisch
Ausschreibung Erfolgsmeldung
durchführen senden
Stelle
ausgeschrieben
Process Engine
SB Personal
Stelle Stellenbe-
Ausschreibung
beschreiben schreibung
anstoßen
korrigieren
BPMN 2.0 Nein Process
Führungskraft
Stellenbe-
Administrator
schreibung Ja
prüfen
OK?
ess
yst
Speichern
(KPI) Monitoring
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
Process Engine
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
cess
neer Execution (KPI)
Reporting Process
auch BPMN 2.0
Manager
TaskLists /
Ebene 3 – Weiter detailliert
Änderungen durch technische „Detailaspekte“
BPMN Serialisierung
Ausführungs-
„Layout“
semantik
Process Engine
Messung der
Durchlaufzeit
Aufgaben- Aufgaben-
Service-Call Service-Call
Zuweisung Zuweisung
<definitions …
typeLanguage=”http://www.w3.org/2001/XMLSchema”
expressionLanguage=”http://www.w3.org/1999/XPath”
XML-Format (Ausführungssemantik)
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 />
Und der Roundtrip?
Warum scheitern die Tools?
Jedem das Seine.
Das gilt auch für Tools!
Die verschiedene Arbeitsumgebungen (Projektbeispiel)
Process • Eigenen Pool einsehen
Participant • Status Prozessinstanz im eigenen
Pool visualisieren
• Verknüpfte Dokumente
herunterladen
• …
Process • Prozesse im Überblick
Analyst • Verschiedene Sichten auf Prozesse
(Fachlich, technisch, Detaillierung,
…)
• Koordination mit IT
• …
Process • Technische Umsetzung
Engineer • Softwareentwicklung
• …
Der Betrieb • Deployment
?
• Monitoring & Überwachung
• Eingreifen ein Fehlersituationen
• …
Vorgehen bei der Umsetzung (Projektbeispiel)
Process Analyst Analyst
Process Engineer
Überführen Technische Technische
Fachliches Engine Pool in Ebene 2 Modell Umsetzung Änderungen
Modell Ebene 2 Ebene 2 Modell in Grundgerüst Ebene 3 fachlich
Ebene 3 Prozess freigeben
Notwendige Engine Pool aus Ebene-2- Technischen Prozess aus Unterstützung des
Tool- BPMN-Modell als jBPM SVN nach Commit Alignments der fachlichen
Features: Prozess in Entwicklungs- automatisch in Engine Pool Pools
SVN kopieren Ebene-2-BPMN-Modell
überführen und Process
Analyst benachrichtigen
Moment, wir wollten doch ein
Modell?
Wirklich?
Fachlich
abgenommen
Produktiv
Technisch in der
Entwicklung
Simulation von
Alternativen
…
Möglich! Eclipse-Tooling + Java
Fazit BPMN 2.0 Execution <?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>
Komplex, ABER…
Kontrollfluß als Gemeinsame Keine feste Bindung
Graph Sprache BPMN an WS und XML
Trotzdem: Standards sind keine heilige Sandale!
Da war ja noch was…
Wird BPEL noch gebraucht?
BPMN (2.0) funktioniert!
(wenn man‘s kann ;-))
camunda services GmbH
Vielen Dank! Zossener Str. 55-58
1096 Berlin
1
Telefon: +49 30 664 0409-00
Telefax: +49 30 664 0409-29
Email: info@camunda.com
Jakob Freund
Geschäftsführer
Jakob.Freund@camunda.com
OOP
München, 28.01.2010
Der Praxis-Blog zu BPM:
www.bpm-guide.de
camunda services GmbH
Vielen Dank! Zossener Str. 55-58
1096 Berlin
1
Telefon: +49 30 664 0409-00
Telefax: +49 30 664 0409-29
Email: info@camunda.com
Bernd Rücker
Geschäftsführer
bernd.ruecker@camunda.com
OOP
München, 28.01.2010
Der Praxis-Blog zu BPM:
www.bpm-guide.de
Leave a Comment
You must be logged in to post a comment.