20100118 BPMN 2.0 auf der OOP

3,566 views

Published on

Published in: Technology, Business
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
3,566
On SlideShare
0
From Embeds
0
Number of Embeds
57
Actions
Shares
0
Downloads
0
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

20100118 BPMN 2.0 auf der OOP

  1. 1. BPMN 2.0 Wird BPEL noch gebraucht?
  2. 2. 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
  3. 3. 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
  4. 4. 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!
  5. 5. 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
  6. 6. 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
  7. 7. Hurra! Kommt jetzt endlich der Roundtrip?
  8. 8. Naja… Manager Analyst
  9. 9. 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.
  10. 10. Wir brauchen zielgruppengerechte Modelle! Owner Manager Participant Analyst Engineer Prozessmodell Prozessmodell Prozessmodell Prozessmodell Prozessmodell Prozess-Realität
  11. 11. Entdecke die Möglichkeiten…
  12. 12.  BPMN + Tool = Reinfall  BPMN + Framework + Approach + Tool = Erfolg Menschen / Rollen / Organisation / Kultur Vorgehensmodell Framework / Pattern / Palette BPMN lt. Spezifikation BPM-Software
  13. 13. Blöd: Die Perspektiven sind doch sehr verschieden  Strategische Perspektive Fachlich- Technische operative Perspektive Perspektive
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. Weitere Requirements gruppieren sich um den Prozess GUI Daten Funktio- Prozess NFRs nalität Regeln Systeme
  22. 22. 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 /
  23. 23. Ebene 3 – Weiter detailliert
  24. 24. Änderungen durch technische „Detailaspekte“
  25. 25. BPMN Serialisierung Ausführungs- „Layout“ semantik Process Engine Messung der Durchlaufzeit Aufgaben- Aufgaben- Service-Call Service-Call Zuweisung Zuweisung
  26. 26. <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 />
  27. 27. Und der Roundtrip? Warum scheitern die Tools?
  28. 28. Jedem das Seine. Das gilt auch für Tools!
  29. 29. 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 • ...
  30. 30. 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
  31. 31. Moment, wir wollten doch ein Modell?
  32. 32. Wirklich? Fachlich abgenommen Produktiv Technisch in der Entwicklung Simulation von Alternativen ...
  33. 33. Möglich! Eclipse-Tooling + Java
  34. 34. 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
  35. 35. Trotzdem: Standards sind keine heilige Sandale!
  36. 36. Da war ja noch was… Wird BPEL noch gebraucht?
  37. 37. BPMN (2.0) funktioniert! (wenn man‘s kann ;-))
  38. 38. 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
  39. 39. 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

×