BPMN Business Management German Methodology Presentations Process Management Process Modeling

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

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="https://www.businessprocessincubator.com/content/20100118-bpmn-2-0-auf-der-oop/?feed=html" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples

BPMN.org

XPDL.org

×