Do 6.1 January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich BPM - Brücke zwischen Business und IT? Status, Mythen, Missverständnisse und Potentiale Jakob Freund Bernd Rücker
BPM Brücke zwischen Business und IT? Status, Mythen, Missverständnisse und Potentiale Jakob Freund & Bernd Rücker camunda services GmbH OOP - 29.01.2009 BPM & SOA Agenda 1. Fraktionen und Visionen 2. Standards: BPMN und BPEL 3. Aktueller Stand in der Praxis 4. Konkrete Perspektiven camunda services GmbH / info@camunda.com / 2
Was ist BPM? Begriffsproblem Organisationslehre Ablauforganisation bis 1990 Business Process (Orga-) Geschäftsprozess- Reengineering - BPR Management - GPM 1990-2000 ab 2000 Business IT Business Process Management - BPM Prozessautomatisierung ab 2004 ab 2006 Human Serviceorientierte Workflow Management Architekturen (SOA) ab 2000 ab 2005 Dokumenten-Management Systeme DMS (u.a.) Enterprise Appliation Integration EAI camunda services GmbH / info@camunda.com / 3 Orga + IT = BPM Begriffsproblem Organisationslehre Strategisches Prozessmanagement Prozessanalyse Prozessorganisation Prozessmodellierung Prozessoptimierung Business Process Management Steuerung / Business Rules EAI/SOA Monitoring/Reporting Human Workflow Management Informationstechnologie camunda services GmbH / info@camunda.com / 4
Aktuelle Ambitionen Der BPM-Kreislauf KVP Business IT Business Prozess- Strategie Prozessentwurf Prozesscontrolling Prozess- implementierung camunda services GmbH / info@camunda.com / 5 Der Traum der Magic BPM-Suite Der BPM-Kreislauf Modelling Monitoring Business IT Magic BPM-Suite Human Workflow EAI/SOA camunda services GmbH / info@camunda.com / 6
BPM & SOA Agenda 1. Fraktionen und Visionen 2. Standards: BPMN & BPEL 3. Aktueller Stand in der Praxis 4. Konkrete Perspektiven camunda services GmbH / info@camunda.com / 7 Business Process Modeling Notation Historie Entwicklung 2002 von Stephen A. White (IBM) Veröffentlichung durch Business Process Management Initative (BPMI) 2005 Übernahme durch die Object Management Group (OMG) Offizieller OMG Standard seit 2006 Aktuelle Version: 1.1 (17.02.2008) camunda services GmbH / info@camunda.com / 8
Zwei Welten Zwei Sprachen Motivation für BPMN Business Wir müssen mit Hilfe der richtigen KPI unsere Performance messen, um den ROI zu bestimmen! IT Wenn wir alle RMI-Calls durch SOAP-Requests ersetzen, könnt Ihr eure Performance vergessen! camunda services GmbH / info@camunda.com / 9 Ein Prozessmodell für Business und IT? Motivation für BPMN Rechnung geht ein Ereignisgesteuerte Prozesskette (EPK) SB Buchhaltung SB Buchhaltung SB Fachabteilung SB Fachabteilung Rechnung erfassen Rechnung prüfen lassen Rechnung prüfen Prüfungsergebnis mitteilen XOR Woran erkenne ich, dass es soweit ist? Wieso weiß er Bescheid? Muss ich senden/empfangen? Wie? Wie ordne ich die Vorgänge zu? Was soll ich machen, wenn nichts passiert? Ist dies ein gutes oder schlechtes Ende? Rechnung ok Rechnung nicht ok SB Buchhaltung Zahlung anweisen Zahlung angewiesen camunda services GmbH / info@camunda.com / 10
Ein Prozessmodell für Business und IT? Motivation für BPMN Business Process Execution Language (BPEL) <!-- Deklaration eines asynchronen Hello World Prozesses --> <process name= HelloWorld ld... > <!-- Liste der am Prozess beteiligten Services --> <partnerlinks> <!-- Nur ein beteiligter Service: Der Dienst-Nutzer --> <partnerlink name= client partnerlinktype = HelloWorld myrole= HelloWorldProvider partnerrole= HelloWorldRequester /> </partnerlinks> <!-- Liste der (XML-)Dokumente, die im Prozess verwendet werden --> <variables> <!-- XML-Dokument, das der Dienst-Nutzer beim Aufruf übergibt --> <variable name="input" messagetype="helloworldrequestmessage"/> <!-- XML-Dokument, das der Dienst-Nutzer vom Prozess erhält --> <variable name="output" messagetype="helloworldresultmessage"/>? </variables> <!-- Definition der Ablauflogik im Prozess (Aktiviäten) --> <sequence> <!-- Übergabe-Parameter vom Dienst-Nutzer entgegen nehmen --> <receive name="receiveinput" partnerlink="client" porttype="tns:helloworld" operation="initiate" variable="input" createinstance="yes"/> <!-- Output-Parameter abhängig vom Input erstellen --> <assign> <copy> <from expression="concat('hello ',bpws:getvariabledata('input', 'test','/tns:name'))"/> <to variable="output" part="test" query="/result"/> / </copy> </assign> <!-- Dienst-Nutzer aufrufen, um Antwort zu übergeben --> <invoke name="replyoutput" partnerlink="client" porttype="tns:helloworldcallback" operation="onresult" inputvariable="output"/> </sequence> </process> camunda services GmbH / info@camunda.com / 11 Idee: Prozessmodelle für Business UND IT Motivation für BPMN <!-- Deklaration eines asynchronen Hello World Prozesses --> <process name= HelloWorld... > <!-- Liste der am Prozess beteiligten Services --> <partnerlinks> <!-- Nur ein beteiligter Service: Der Dienst-Nutzer --> <partnerlink name= client partnerlinktype = HelloWorld myrole= HelloWorldProvider partnerrole= HelloWorldRequester /> </partnerlinks> <!-- Liste der (XML-)Dokumente, die im Prozess verwendet werden --> <variables> <!-- XML-Dokument, das der Dienst-Nutzer beim Aufruf übergibt --> <variable name="input" messagetype="helloworldrequestmessage"/> <!-- XML-Dokument, das der Dienst-Nutzer vom Prozess erhält --> <variable name="output" messagetype="helloworldresultmessage"/> </variables> <!-- Definition der Ablauflogik im Prozess (Aktiviäten) --> <sequence> camunda services GmbH / info@camunda.com / 12
Ping-Pong spielen Das Prinzip interagierender Prozesse Sequenzfluss Kun nde Produkt bestellen Bestätigung annehmen Nachrichtenfluss ht Liefe erant Bestellung annehmen Auftrag bestätigen camunda services GmbH / info@camunda.com / 13 Mehrstufige Eskalation Nachrichten, Timer und Unterprozesse Kunde camunda services GmbH / info@camunda.com / 14
Fehlerbehandung und sofortige Beendigung Fehler-, und Terminierungsereignisse SPG - Vertrieb camunda services GmbH / info@camunda.com / 15 Typisches Integrationsszenario BPMN und EAI / SOA Anwen nder Neue Bestellung Bestellung prüfen il-eingang s Engine Ema Process 1 Minute Neue Emails abrufen (POP3) Emails Email sortieren Anhang = 1 XLS Bestellung in die Task List (Browser) Email archivieren (HTTP) Unterprozess Mehrfache Instanz Mai il Server Archi iv System camunda services GmbH / info@camunda.com / 16
Klassische Idee: vom Prozess zum Workflow Verfeinerung von Prozessmodellen Workflow-Ebene Prozess-E Ebene Prozesse Sub-Prozesse Aktivitäten Arbeitsschritte Manuelle Tätigkeit Automatisierte Tätigkeit Design und Im mplementieru ung von Proze essen Wertschöpfend (Softwareentwicklung) Steuernd (Prozessautomatisierung) camunda services GmbH / info@camunda.com / 17 Problem: Unterschiedliche Präzision Verfeinerung von Prozessmodellen Bestelleingang Bestellung prüfen Auftragsbestägigung Bestellung empfangen (FAX) Bestellung empfangen (Telefon) Bestelldaten notieren Bestellung prüfen Auftragsbestägigung (FAX) Bestellung empfangen (Email) Bestelldaten ausdrucken Fehlerbehandlung Auftragsablehnung (Anruf) Eskalation camunda services GmbH / info@camunda.com / 18
Vom Was zum Wie Gar nicht so einfach Verfeinerung von Prozessmodellen mail-eingang ss Engine Em Proces SPG camunda services GmbH / info@camunda.com / 19 WS-BPEL 2.0 Business Process Execution Language (BPEL) Standardisiert durch OASIS, aktuell Version 2.0 (04/2007) BPEL = Orchestrierung von Services zu neuen Services Ausgerichtet auf WS-*-Stack Human Task Management durch Einführung von BPEL4People & WS-HumanTask Warum WS-BPEL? Existierende Message Exchange Patterns in WebServices ungenügend für Geschäftsprozesse Korrelation über lang laufende Konversationen notwendig camunda services GmbH / info@camunda.com / 20
Basic Activities Business Process Execution Language (BPEL) process Do a blocking wait for a matching message to arrive / send a message in reply receive reply py exit Immediately terminate execution of a business process instance Invoke a one-way or request-response operation invoke compensate Invoke compensation on all completed child scopes in default order Update the values of variables or partner links with new data Validate XML data stored in variables assign validate compensatescope wait Invoke compensation on one completed child scope Wait for a given time period or until a certain time has passed Generate a fault from inside the business process throw empty py No-op instruction for a business process Forward a fault from inside a fault handler rethrow extensionactivity Wrapper for language extensions camunda services GmbH / info@camunda.com / 21 Structured Activities Business Process Execution Language (BPEL) process Contained activities are executed in parallel, l partially ordered through control links A B flow C M1 M2 pick A Block and wait for a suitable message to arrive (or time out) Contained activities are performed sequentially in lexical order sequence foreach 1. 2. N. 1. 2. N. Contained activity is performed sequentially or in parallel, controlled by a specified counter variable Contained activity is repeated while a predicate holds c while c1 if-elseif-else l Select exactly one branch of activity from a set of c2 choices Contained activity is repeated until a predicate holds repeatuntil c scope Associate contained activity with its own local variables, partner links, etc., and handlers camunda services GmbH / info@camunda.com / 22
Graphstruktur vs. Blockstruktur BPMN zu BPEL! camunda services GmbH / info@camunda.com / 23 Quelle: Gero Decker, HPI Mapping Probleme BPMN zu BPEL Quelle: http://www.infoq.com/articles/bpelbpm camunda services GmbH / info@camunda.com / 24
BPMN + BPEL = gemeinsame Sprache? BPMN zu BPEL camunda services GmbH / info@camunda.com / 25 Von BPMN nach BPEL BPMN zu BPEL This version does provide a non-normative mapping from BPMN to WSBPEL, but the BPMN specification itself is known to be incomplete with respect to capturing all the required information for WSBPEL. So the mapping is insufficient, in any case. BPMN 1.1 Specification camunda services GmbH / info@camunda.com / 26
BPMN to BPEL Fazit BPMN zu BPEL Die Generierung von BPEL ist möglich, aber BPEL-Modell hat oft wenig mit BPMN Modell gemeinsam BPEL-Rumpf ist meist nur rudimentär Technische Details müssen in BPEL hinzugefügt werden (Roundtrip?) Unklare Semantik in BPMN & fehlende Konzepte (z.b. Datenhandling) machen Probleme Nur bedingt gemeinsame Sprache Welchen Wert hat Generierung von unleserlichen BPEL-Modellen (Programmcode), die wenig Ähnlichkeit hk it mit dem fachlichen h Modell haben? camunda services GmbH / info@camunda.com / 27 Zero Code -Ansätze Wenn schon unleserlich, warum dann BPEL ;-) BPMN Process Engine camunda services GmbH / info@camunda.com / 28
Kritik BPEL Gemeinsame Sprache Human Task Management (BPEL4People) noch neu BPEL ist blockorientiert Umfangreiches Know-How notwendig (BPEL, XML, XML-Schema, XPath, XSLT, WSDL, WS-*, ) Skills fehlen in Projekten heute Tools sind notwendig XML-Programmiersprache, kein BPM Aber: Jeder redet darüber camunda services GmbH / info@camunda.com / 29 Use Case BPEL Gemeinsame Sprache Bei Orchestrierung heterogener Services zu neuen Services durchaus geeignet Bei Entwicklung prozessorientierter Anwendung vielleicht eher (noch?) nicht Service A BPEL Prozess 1 Service B Service D Service C camunda services GmbH / info@camunda.com / 30 BPEL Prozess 2 Service E
BPM & SOA Agenda 1. Fraktionen und Visionen 2. Standards: BPMN und BPEL 3. Aktueller Stand in der Praxis 4. Konkrete Perspektiven camunda services GmbH / info@camunda.com / 31 Gemeinsame Sprache Was ist mit BPM heute schon erreichbar?? <variable <!-- Deklaration eines asynchronen Hello World Prozesses --> <process name= HelloWorld... > <!-- Liste der am Prozess beteiligten Services --> <partnerlinks> <!-- Nur ein beteiligter Service: Der Dienst-Nutzer --> <partnerlink name= client partnerlinktype = HelloWorld myrole= HelloWorldProvider partnerrole= HelloWorldRequester /> </partnerlinks> <!-- Liste der (XML-)Dokumente, die im Prozess verwendet werden --> <variables> <!-- XML-Dokument, das der Dienst-Nutzer beim Aufruf übergibt --> <variable name="input" messagetype="helloworldrequestmessage"/> <!-- XML-Dokument, das der Dienst-Nutzer vom Prozess erhält --> name="output" messagetype="helloworldresultmessage"/> </variables> <!-- Definition der Ablauflogik im Prozess (Aktiviäten) --> <sequence> camunda services GmbH / info@camunda.com / 32
XPDL XML Process Definition Language Gemeinsame Sprache <Activity Id= xxx" Name="plan part. production"> <Description>Make plan assuming OK to partialship</description> <Implementation> <Tool Id="Application _ Repository y_ App4" Type="APPLICATION"/> </Implementation> <Performer>Participant_Repository_Par12</Performer> <ExtendedAttributes> <ExtendedAttribute Name="XOffset" Value="397"/> <ExtendedAttribute Name="YOffset" Value="29"/> <ExtendedAttribute Name="VariableToProcess_OUT" Value="No_Of_Items_To_Produce"/> <ExtendedAttribute Name="VariableToProcess_IN" Value="Order_Quantity"/> <ExtendedAttribute Name="VariableToProcess_IN" Value="No_Of_Stocked_Items"/> </ExtendedAttributes> </Activity> camunda services GmbH / info@camunda.com / 33 XPDL Gemeinsame Sprache WfMC-Standard, Aktuell Version 2.0 Gerichteter t Graph (Activities iti & Transitions) Extension-Points Systemanbindung durch Application Repository Verschiedene Tools können XPDL-Prozess unterschiedlich verarbeiten Verschiedene Implementierungen grafischer Editoren und Process Engines existieren Nur die Prozessstruktur ist portabel! XPDL fokussiert Austauschformat für Prozessdiagramme (evtl. für BPMN?) camunda services GmbH / info@camunda.com / 34
XPDL = gemeinsame Sprache? camunda services GmbH / info@camunda.com / 35 JBoss jbpm jpdl (proprietär) Gemeinsame Sprache camunda services GmbH / info@camunda.com / 36
jbpm Java oriented BPM Gemeinsame Sprache Pragmatische Workflowengine ( Graph oriented programming ) incl. Human-Task-Management Java orientiert Kann in jeder Umgebung zum Einsatz kommen (einfache Java-Library), keine Speicher- oder Performance-ProblemeProbleme Prozessdiagramm und Prozesscode immer synchronisiert, da single-source. source Prozessdiagramm begrenzt Fachanwendertauglich Kein Standard! d! jbpm 4: Process Virtual Machine wird mehrere Sprachen unterstützen, tüt auch MDSD camunda services GmbH / info@camunda.com / 37 jpdl = gemeinsame Sprache? camunda services GmbH / info@camunda.com / 38
Prozessorientierung in den Köpfen der User Gemeinsame Sprache camunda services GmbH / info@camunda.com / 39 Andere proprietäre Ansätze Gemeinsame Sprache camunda services GmbH / info@camunda.com / 40 Bsp: Inubit IS, 2007
Vom Prozess zum Workflow Was ist heute schon erreichbar? Ansätze Anforderungsmanagement + Executable Model (z.b. BPMN) Generierung von Software (MDSD) o Generierung von Workflow (BPEL) - Direkte Ausführung (executable BPMN) - Verknüpfung fachlicher & technischer Modelle o Aber: Vieles ist Gegenstand aktueller Forschung camunda services GmbH / info@camunda.com / 41 Ist das alles hilfreich? Status Quo / Praxisansätze Weit weg von Magic Process Engine oder Prozessimplementierung durch Business Analyst Aber wiederverwendbare Business Process Engines bieten Basis-Dienste: Persistenz, Prozess-Versionierung, Logging, Timeouts, Zusätzliche Funktionalität wie Analyse (BAM) oder Simulation (BPS) Technisches Monitoring Vorfertigungsgrad hoch für Human Tasks: Generische Tasklisten & Formulareditoren Service-Orchestrierung & Konnektoren camunda services GmbH / info@camunda.com / 42
Ein Wort zur Technik BPM: Die IT-Seite EJB-Container (oder Tomcat oder Java SE) jbpm (jpdl) Session Bean Human Task Mgmnt EJB JCA JMS WS BPEL-Server WS Java WS WS WS WS EJB-Container EJB JMS,.NET Human Task Mgmnt camunda services GmbH / info@camunda.com / 43 Status quo im Business Aktueller Stand in der Praxis Verständnis für IT-BPM reift prinzipiell heran Problematische Grundhaltungen: Ich will nicht wissen, wie die IT es macht, ich will wissen, dass sie es macht Das wird mir jetzt zu technisch Prozessmodellierung ist Fleißarbeit Hauptsache, der Betrachter versteht das Prozessmodell Einige Erkenntnisse sind noch nicht angekommen (z.b. Problematik der Verfeinerung von Prozessmodellen) Aber: Die Bereitschaft zur Veränderung ist mehr und mehr vorhanden camunda services GmbH / info@camunda.com / 44
BPM & SOA Agenda 1. Fraktionen und Visionen 2. Standards: BPMN und BPEL 3. Aktueller Stand in der Praxis 4. Konkrete Perspektiven camunda services GmbH / info@camunda.com / 45 Service Service Service Das eigentliche Problem Strategie 1-2 Jahre Organisation 3-6 Monate SOPA: SOA* auf Prozessebene Integration Task Service Task Zuweisung Process Engine Aufruf Zuweisung SOIA: SOA auf Integrationsebene IT Software 6-10 Jahre SOSA: SOA auf Software-Ebene Infrastruktur *SOA = Serviceorientierte Architekturen In Anlehnung an: Prof. Dr. Robert Winter, Institut für Wirtschaftsinformatik, Universität St. Gallen camunda services GmbH / info@camunda.com / 46
Es entstehen neue Berufsbilder Perspektiven Process Analyst Process Engineer camunda servicesmanagement GmbH / info@camunda.com / 47 Development Ganzheitliches BPM in der Praxis Aktuelle Projekterfahrung Aktuelle Problemstellung Ausfälle im Prozessbetrieb (Stillstände etc.) Fachliche Prozessbetreuer müssen in BPEL modellieren Schlechte fachliche Unterstützung des Prozessbetriebs Fachliches Prozessmanagement völlig entkoppelt von IT-BPM Lösungsansätze Aufsetzen sauberer technischer Architektur Einführung eines einheitlichen Modellierungsframeworks für die fachlich-technische Kommunikation Verbesserung der SLA-Überwachung (z.b. Push statt Pull) Definition von Rollen und Gremien für die fachlich-technische Zusammenarbeit (z.b. BPM-Board) camunda services GmbH / info@camunda.com / 48
Wie kommen wir mit BPM kurzfristig weiter? Perspektiven FALSCHER ANSATZ Krampfhaft versuchen, technische Workflows aus fachlichen Prozessmodellen zu generieren Standards als heilige Sandale RICHTIGER ANSATZ Neue BPM-Methoden (und ggf. Tools) zur Kommunikation zwischen Business und IT nutzen. Punktuelle Anpassungen durch Business ermöglichen (speziell: Business Rules) Fachliche Prozessmonitoring- und Reportingfunktionen aufsetzen und durch das Business konfigurierbar i machen Step-by-Step statt Big Bang Eigene Kompetenz aufbauen (Coachings, Open Source BPM) camunda services GmbH / info@camunda.com / 49 Ein Muss: Die BPM-Suite Perspektiven Kommerzielle Lösung beschaffen Pro: Out-of-the-box (?) Contra: Große Investition, Abhängigkeit, Risiko Auf Open Source entwickeln Pro: Klein beginnen, eigenes Know-How aufbauen Contra: Entwicklungsressourcen benötigt SaaS-Lösung nutzen Pro: Grow-as-you-need, schnell und günstig Contra: Vertrauen notwendig Es gilt: A fool with a tool is still a fool camunda services GmbH / info@camunda.com / 50
Fragen & Antworten camunda services GmbH info@camunda.com www.camunda.com com Unsere Themen Ganzheitliches h BPM Prozessautomatisierung SOA, BPEL, XPDL, JBoss SOA Platform (jbpm, Drools, ESB) BPMN BPM-Toolauswahl Unsere Leistungen Beratung Seminare Process Hosting camunda services GmbH / info@camunda.com / 51