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 Process Engineer <xml> <asass>sddsd</sdsd> <sdds>sdsds</sdsds> <sdd> <sddsds>sddsd</fff> </sdd> </ffdfsdf> BPEL etc. Execution Process Engine (KPI) Reporting Process Manager TaskLists / Portal / Mobile / etc. ESB Rule Engine Process Participants Legacy / Backend intern / extern
BPEL etc. Was wir mit BPMN 2.0 bekommen (unter anderem) BPMN 2.0 Process Administrator Process Analyst Speichern (KPI) Monitoring Process Engineer <xml> <asass>sddsd</sdsd> <sdds>sdsds</sdsds> <sdd> <sddsds>sddsd</fff> </sdd> </ffdfsdf> auch BPMN 2.0 Execution Process Engine (KPI) Reporting Process Manager TaskLists / Portal / Mobile / etc. ESB Rule Engine Process Participants Legacy / Backend intern / extern
Hurra! Kommt jetzt endlich der Roundtrip?
Naja Manager Analyst
Konversationen Choreographien Aktivitäten Die BPMN ist recht umfangreich Beteiligter A Aufgabe Transaktion Angeheftet Nichtunterbrechend Ereignis- Teilprozess Aufruf-Aktivität Markierungen Sie beschreiben das Ausführungs-verhalten von Aktivitäten: ~ Teilprozess Schleife Parallele Mehrfachausführung Sequentielle Mehrfachausführung Ad Hoc Kompensation Sequenzfluss definiert die Abfolge der Ausführung. Gateway s Exklusives Gateway Ereignis-basiertes Gateway Paralleles Gateway Eine Aufgabe ist eine Arbeitseinheit. Ein zusätzliches markiert eine Aktivität als zugeklappten Teilprozess. Eine Transaktion ist eine Gruppe von Aktivitäten, die logisch zusammen gehören. Ein Transaktionsprotokoll kann angegeben werden. 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. Eine Aufruf-Aktivität repräsentiert einen global definierten Teilprozess oder eine global definierte Aufgabe, der bzw. die im aktuellen Prozess verwendet wird. Standardfluss wird durchlaufen wenn alle anderen Bedingungen nicht zutreffen. Aufgaben-Typen Sie beschreiben den Charakter einer Aufgabe: Senden Empfangen Benutzer Manuell Geschäftsregel Service Skript Bedingter Fluss enthält eine Bedingung, die definiert, wann er durchlaufen wird, und wann nicht. 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. Inklusives Gateway Es werden je nach Bedingung eine oder mehrere ausgehende Kanten aktiviert bzw. eingehende Kanten synchronisiert. Komplexes Gateway Verzweigungs- und Vereinigungsverhalten das nicht von anderen Gateways erfasst wird. Diesem Gateway folgen stets eintretende Ereignisse oder Empfänger-Aufgaben. Der Sequenzfluss wird zu dem Ereignis geleitet, das zuerst eintritt. 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). 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. BPMN 2.0 - Business Process Model and Notation Eine Kommunikation definiert einen mehrfachen, logisch zusammengehörigen Nachrichtenaustausch Ein Konversationslink verknüpft Kommunikationen und Teilnehmer. Ein aufgefächerter Konversationslink verknüpft eine Kommunikation mit mehrfachen Teilnehmern. Konversationsdiagram m Pool (zugeklappt) Pool (zugeklappt) Sub-Konversation Kommunikation Mehrfach beteiligter Pool (zugeklappt) Kollaborationsdiagramm Pool (aufgeklappt) Lane Lane Nachrichten- Startereignis Datenspeicher Link- Zwischenereignis Pool Lane Lane Nachrichtenfluss Datenobjekt Task Task Zugeklappter Teilprozess 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. Ereignisbasiertes Gateway Teilprozess Ereignis-Teilprozess Start- Ereignis Bedingungs- Startereignis Schleifen- Teilprozess Fehler- Endereignis Swimlane s Nachrichtenfluss symbolisiert den Informationsaustausch. Nachrichtenflüsse können an Pools, Aktivitäten und Nachrichtenereignisse andocken. Choreographie- Aufgabe Eine Choreographie- Aufgabe repräsentiert eine Interaktion (Nachrichtenaustausch) zwischen zwei Beteiligten. Pool (zugeklappt) Timer- Zwischenereignis End- Ereignis Beteiligter B Empfangende Aufgabe Pool Pool Choreographie-Diagramm Eskalations- Endereignis Aufruf- Aktivität Beteiligter A Choreographie- Aufgabe Beteiligter B Die Abfolge des Informationsaustauschs kann spezifiziert werden, indem Nachrichtenfluss und Sequenzfluss kombiniert werden. Eine Mehrfach-Beteiligter Markierung beschreibt eine Reihe von Beteiligten derselben Sorte. Ad hoc Teilprozess Aufgabe Aufgabe ~ Angeheftetes Fehler- Zwischenereignis Signal- Endereigni s Bedingung Exklusives Gateway Initiierende Nachricht Antwort- Nachricht Beteiligter A Beteiligter B Beteiligter C Text-Anmerkung Paralleles Gateway Beteiligter A Beteiligter A Choreographie- Aufgabe Participant B Beteiligter B Choreographie- Aufgabe Beteiligter C Gruppierung Sendende Aufgabe Beteiligter A Choreographie- Teilprozess Beteiligter B Beteiligter C Ein Choreographie- Teilprozess enthält eine verfeinerte Choreographie mit mehreren Interaktionen. Manuelle Aufgabe Liste Angeheftetes Timer- Zwischenereignis Link- Zwischenereignis End- Ereigni s Mehrfach/ Parallel- Zwischenereignis Aufgabe (Parallele Mehrfachausführung) Nachrichten- Endereignis Ereigniss e 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. Eskalation: Meldung an den nächsthöheren Verantwortlichen. Bedingung: Reaktion auf veränderte Bedingungen und Bezug auf Geschäftsregeln. Link: Zwei zusammengehörige Link- Ereignisse repräsentieren einen Sequenzfluss. 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 Signal: Signal über mehrere Prozesse. Auf ein Signal kann mehrfach reagiert werden. Mehrfach: Eintreten eines von mehreren Ereignissen. Auslösen aller Ereignisse. Mehrfach/Parallel: Eintreten aller Ereignisse. Terminierung: Löst die sofortige Beendigung des Prozesses aus. Daten Input Aufgabe http://bpmb.de/poster Top-Level Output Datenspeicher Start Ereignis- Teilprozess Unterbrechend Ereignis-Teilprozess Nicht-unterbrechend Eingetreten Angeheftet unterbrechend Zwischen Ein Dateninput ist ein externer Input fü ganzen Prozess. Er kann von einer Ak gelesen werden. Ein Datenoutput ist eine Variable, die Ergebnis eines ganzen Prozesses erze wird. Ein Datenobjekt repräsentiert Informa durch den Prozess fließen, wie z.b. Do Emails oder Briefe. Ein Listen-Datenobjekt repräsentiert e Gruppe von Informationen, z.b. eine Li Bestellpositionen. Ein Datenspeicher ist ein Ort wo der P Daten lesen oder schreiben kann, z.b. Datenbank oder ein Aktenschrank. Er e unabhängig von der Lebensdauer der Prozessinstanz. Eine Nachricht weist auf den Inhalt ein Kommunikation zwischen zwei Teilneh
Prozessmodell Prozessmodell Prozessmodell Prozessmodell Prozessmodell Wir brauchen zielgruppengerechte Modelle! Owner Manager Participant Analyst Engineer 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 Fachlichoperative Perspektive Technische Perspektive
camunda BPMN-Framework (cabpmn) Prozesslandschaft Freund, Rücker, Henninger Praxishandbuch BPMN Januar 2010 Ebene 1 Strategisches Prozessmodell Inhalt: Prozess im Überblick Ziel: Schnelles Verständnis Fachlich (Business) Ebene 2 Operatives Prozessmodell Inhalt: Operative Abläufe Ziel: Arbeits- und Umsetzungsgrundlage Technisch (IT) Ebene 3a Technisches Prozessmodell Mit Process Engine Ebene 3b IT-Spezifikation Ebene 4b Implementierung Inhalt: Technische Details Ziel: Umsetzung Ohne Process Engine
camunda BPMN-Framework (cabpmn) Prozesslandschaft Ebene 1 Strategisches Prozessmodell Inhalt: Prozess im Überblick Ziel: Schnelles Verständnis Fachlich (Business) Ebene 2 Operatives Prozessmodell Inhalt: Operative Abläufe Ziel: Arbeits- und Umsetzungsgrundlage Technisch (IT) Ebene 3a Technisches Prozessmodell Mit Process Engine Ebene 3b IT-Spezifikation Ebene 4b Implementierung Inhalt: Technische Details Ziel: Umsetzung Ohne Process Engine
Kern #1: Semantische Brüche nach oben verlagern Prozesslandschaft Ebene 1 Strategisches Prozessmodell Inhalt: Prozess im Überblick Ziel: Schnelles Verständnis Fachlich (Business) Ebene 2 Operatives Prozessmodell Inhalt: Operative Abläufe Ziel: Arbeits- und Umsetzungsgrundlage Technisch (IT) Ebene 3a Technisches Prozessmodell Mit Process Engine Ebene 3b IT-Spezifikation Ebene 4b Implementierung Inhalt: Technische Details Ziel: Umsetzung Ohne Process Engine
Kern #2: Passende Sichten auf Ebene 2 Betrachter Process Participant Process Analyst Process Engineer Zentrale Frage Wie muss ich arbeiten? Wie wird gearbeitet? Was macht die Engine? Sicht Eigene Orchestrierung Gesamte Kollaboration Orchestrierung der Process Engine Ebene 2: Operatives Prozessmodell
Beispiel für ein Ebene -1- Modell Fachabteilung Freie Stelle entstanden Freie Stelle melden Vertrag unterschrieben Stelle besetzt Recruiting-Prozess Unsere Firma Personalabteilung Stellenausschreibung Bewerbungsprüfung Stellenbesetzung Bewerber Bewerbungseinreichung
Die Stellenausschreibung aus zwei Perspektiven Führungskraft Fachbereich Freie Stelle melden Mehr Infos erforderlich Aufgaben und Anforderungen mitteilen Beschreibung erhalten Personalbedarf Stellenbeschreibung sichten OK? Ja Nein Korrektur anmahnen Stellenbeschreibung freigeben Beschreibung freigegeben SB Personal Führungskraft Fachbereich Alles klar? SB Personal Freie Stelle gemeldet Meldung sichten Nein Ja Angaben und Anforderungen erfragen Stelle beschreiben Korrektur erbeten Stellenbeschreibung korrigieren Beschreibung freigegeben Stelle ausschreiben Stelle ausgeschrieben
Von Ebene 2 zu Ebene 3 Führungskraft Fachbereich HR-Portal Sonstiges Freie Stelle melden Mehr Infos erforderlich Aufgaben und Anforderungen mitteilen Beschreibung erhalten Personalbedarf Stellenbeschreibung sichten OK? Ja Nein Korrektur anmahnen Stellenbeschreibung freigeben Ausschreibung erfolgreich Stelle ausgeschrieben Automatisch Ausschreibung durchführen Erfolgsmeldung senden Stelle ausgeschrieben Process Engine SB Personal Stelle beschreiben Nein Stellenbeschreibung korrigieren Ausschreibung anstoßen Führungskraft Stellenbeschreibung prüfen OK? Ja Alles klar? SB Personal HR-Portal Freie Stelle gemeldet Nein Ja Stelle beschreiben Korrektur erbeten Stellenbeschreibung korrigieren Beschreibung freigegeben Kanäle für Ausschreibung festlegen Ausschreibung anstoßen Sonstiges Aufgaben und Anforderungen erfragen Ausschreibung erfolgreich Stelle ausgeschrieben
Weitere Requirements gruppieren sich um den Prozess GUI Daten Funktionalität Prozess NFRs Regeln Systeme
Der Prozess der Process Engine Automatisch Ausschreibung durchführen Erfolgsmeldung senden Stelle ausgeschrieben Process Engine SB Personal Führungskraft BPMN 2.0 Stelle beschreiben Stellenbeschreibung prüfen Nein OK? Ja Stellenbeschreibung korrigieren Process Administrator Ausschreibung anstoßen ss st Speichern (KPI) Monitoring ess eer <xml> <asass>sddsd</sdsd> <sdds>sdsds</sdsds> <sdd> <sddsds>sddsd</fff> </sdd> </ffdfsdf> auch BPMN 2.0 Execution Process Engine (KPI) Reporting Process Manager TaskLists /
Ebene 3 Weiter detailliert
Änderungen durch technische Detailaspekte
BPMN Serialisierung Layout Ausführungssemantik Process Engine Messung der Durchlaufzeit Aufgaben- Zuweisung Service-Call Service-Call Aufgaben- Zuweisung
<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)
Und der Roundtrip? Warum scheitern die Tools?
Jedem das Seine. Das gilt auch für Tools!
Die verschiedene Arbeitsumgebungen (Projektbeispiel) Process Participant Process Analyst Process Engineer 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... Der Betrieb? Deployment Monitoring & Überwachung Eingreifen ein Fehlersituationen...
Vorgehen bei der Umsetzung (Projektbeispiel) Process Analyst Analyst Process Engineer 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 Notwendige Tool- Features: Engine Pool aus Ebene-2- BPMN-Modell als jbpm Prozess in Entwicklungs- SVN kopieren Technischen Prozess aus SVN nach Commit automatisch in Engine Pool Ebene-2-BPMN-Modell überführen und Process Analyst benachrichtigen Unterstützung des Alignments der fachlichen Pools
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 Graph Gemeinsame Sprache BPMN Keine feste Bindung 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 ;-))
Vielen Dank! camunda services GmbH Zossener Str. 55-58 10961 Berlin 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
Vielen Dank! camunda services GmbH Zossener Str. 55-58 10961 Berlin 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