Business Process Management und Workflow-Technologie Juni 2005 Der vorliegende Text darf für Zwecke der Vorlesung Business Process Management und Workflow-Technologie des Autors vervielfältigt werden. Eine weitere Nutzung bedarf der schriftlichen Einverständnis des Autors. © Copyright International Business Machines Corporation 2001,2005. Alle Rechte vorbehalten. Inhaltsverzeichnis Abbildungsverzeichnis . . . . . . . . v Vorwort . . . . . . . . . . . . . . vii Literaturverzeichnis . . . . . . . . . ix Kapitel 1. Einführung . . . . . . . . . 1 Die Systemarchitektur . . . . . . . . . Von der Modellierung zur Ausführung eines Prozesses . . . . . . . . . . . . . Wer macht was . . . . . . . . . . Schritte zur Erstellung eines lauffähigen Workflows . . . . . . . . . . . . Die Bearbeitung einer Process Instance . . Grundlegende Elemente eines Workflow-Modells Die wichtigsten Komponenten eines Workflow-Systems . . . . . . . . . . Aufgaben . . . . . . . . . . . . . . . 2 . . . 3 . 3 . . . . 3 . 3 . 3 . . . 4 . 4 Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems . . . . . . . . . . 5 Activities . . . . . . . . . . . . . . . 5 Container . . . . . . . . . . . . . . . 6 Navigation . . . . . . . . . . . . . . . 7 An Organizational Model integrated into a Workflow System . . . . . . . . . . . . . . . . 8 Die Zuweisung von Activities an Personen . . . . 9 Separate Staff-Datenbank . . . . . . . . . . 10 Systemstruktur eines Workflow-Systems . . . . . 10 XML als Invocation-Interface . . . . . . . . 11 Audit Trail . . . . . . . . . . . . . . . 11 Suche nach einem Vorgang . . . . . . . . . 12 Überwachung von Business-Zielen . . . . . . 12 Error Log . . . . . . . . . . . . . . . 13 Tracing . . . . . . . . . . . . . . . . 13 IT-orientierte Statistik, Monitoring . . . . . . . 14 Aufgaben . . . . . . . . . . . . . . . 14 Kapitel 3. Allgemeine Aspekte eines Workflow-Systems . . . . . . . . . . 17 Drei Dimensionen . . . . . . . . . . . . Kategorien von Workflow . . . . . . . . . Kriterien eines Geschäftsprozesses . . . . . . . Ändern von Geschäftsprozessen . . . . . . . Abgrenzung von Business Process Reengineering zur Geschäftsprozessoptimierung . . . . . . Ansätze für eine Geschäftsprozessoptimierung. . Beispiel der Optimierung des Geschäftsprozesses Scheckeinreichung . . . . . . . . . . . . Phasen der Geschäftsprozessoptimierung . . . Aufgaben . . . . . . . . . . . . . . . © Copyright IBM Corp. 2001,2005 17 17 18 19 19 20 20 22 23 Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden. . . . . . . . . . . . . . . 25 Relationales Datenbanksystem . . . . . . . Tabellen als Strukturierungsmittel von Daten . Trennung des Anwendungsprogramms von den Zugriffspfaden zur Datenbank . . . . . . Transaktionen . . . . . . . . . . . Verteilte Transaktionen . . . . . . . . . Two Phase Commit . . . . . . . . . . Messages und Queues . . . . . . . . . Message Queueing als Alternative zu einer verteilten Transaktion . . . . . . . . . Architektur eines Servers . . . . . . . . . Ablauf einer Servertransaktion . . . . . . . Verkettete Transaktionen . . . . . . . . . Kennzeichen einer verketteten Transaktion . . Prozessnavigation als verkettete Transaktion . Businesstransaktionen . . . . . . . . . . Compensation Spheres . . . . . . . . Atomic Spheres . . . . . . . . . . . Ersatzlösung für verteilte Transaktionen . . . Web-basierte Architekturen . . . . . . . . Safe Applications . . . . . . . . . . . Aufgaben . . . . . . . . . . . . . . . 25 . 25 . . . . . 25 25 27 27 28 . . . . . . . . . . . . . 30 31 34 34 34 35 36 36 38 38 39 40 40 Kapitel 5. Von 1-tier zu n-tier Systemen 43 Klassische Großrechnersysteme . Client-Server Systeme . . . . Clients als Integrationsplattform Middleware . . . . . . . Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 45 46 47 48 Kapitel 6. Komponenten eines Workflow-Systems . . . . . . . . . . 49 Kernel . . . . . . . . . . . . . . . ID Handling . . . . . . . . . . . . C++ spezifische Kernelmethoden . . . . . Messagelayer . . . . . . . . . . . . . Das Interface zur Datenbank . . . . . . . Verwendete Funktionen des Datenbanksystems Database Access Layer . . . . . . . . . TOM (Tiny Object Manager) . . . . . . . Staff Resolution . . . . . . . . . . . Server Framework . . . . . . . . . . . FDL Parser, Verifier . . . . . . . . . . . Regression Test . . . . . . . . . . . . . . . . . . . . . . . 49 50 51 51 52 52 53 54 54 57 57 58 Kapitel 7. Prozesse eines Workflow-Systems . . . . . . . . . . 59 Administration Server . . . Administration Client . . . Navigation, Execution Server Program Execution Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 60 iii Scheduling Server . . Cleanup Server . . . Workflow Client API . Web Client . . . . Staff Administration API LDAP Bridge . . . . Buildtime . . . . . Workload Management Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 61 62 62 62 63 63 63 Kapitel 8. Middleware: Standards und Produkte . . . . . . . . . . . . . . 65 RPC (Remote Procedure Call) . . . TP-Monitore (Transaction Processing) . Object Broker . . . . . . . . . Message Queueing . . . . . . . iv . . . . . . . . . . . . . . . . . . . . 65 65 66 66 Business Process Management und Workflow-Technologie Message Broker . . . . . . . . . . . Web Services . . . . . . . . . . . . Probleme bei der B2B Integration . . . . Verwendete Protokolle bei Web Services . . BPEL (BPEL4WS: Business Process Execution Language for Web Services) . . . . . . J2EE . . . . . . . . . . . . . . . .Net . . . . . . . . . . . . . . . Workflow . . . . . . . . . . . . . Vertikale Standards . . . . . . . . . . Aufgaben . . . . . . . . . . . . . . . . . . . . . 66 67 67 67 . . . . . . . . . . . . 69 69 69 70 70 70 Kapitel 9. Übungsaufgaben . . . . . . 71 Index . . . . . . . . . . . . . . . 73 Abbildungsverzeichnis 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Diagramm des Prozesses in einem graphischem Modellierungstool: . . . . . . . . . . 1 Die Interfaces der Workflow-Engine: . . . . 2 Die Modellierungsebenen von Geschäftsprozessen . . . . . . . . . . 3 Three-Tier Architektur . . . . . . . . . 4 Das Datenmodell eines Workflow-Systems 6 Navigation . . . . . . . . . . . . . 7 The entity-relationship diagram for staff data 8 Kontext einer Staff Resolution . . . . . . . 9 API-Struktur . . . . . . . . . . . . 10 Die Dimensionen von Workflow . . . . . 17 Eine Klassifikation von Workflow . . . . . 18 Orginaler Prozess Scheckeinreichung . . . . 21 Verbesserter Prozess Scheckeinreichung 21 Eine erfolgreiche Transaktion . . . . . . . 26 Eine Transaktion, bei der ein Fehler zum Abbruch der Transaktion führt . . . . . . 26 Die Beteiligten einer verteilten Transaktion 27 Die Statusübergänge beim Transaction Coordinator . . . . . . . . . . . . 27 Die Statusübergänge beim Resource Manager 28 Verteilte Transaktion, an der ein Datenbanksystem und ein Messagingsystem teilnimmt. . . . . . . . . . . . . . 29 Asynchrone verteilte Transaktionen mit Messaging . . . . . . . . . . . . . 30 Synchrone verteilte Transaktion . . . . . . 31 Pro Client ein Prozeß . . . . . . . . . 31 Pro Clientrequest ein Prozeß . . . . . . . 32 Ein Prozess bearbeitet alle Clientrequests 33 © Copyright IBM Corp. 2001,2005 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Ablauf einer Servertransaktion . . . . . . Zur Illustration der Navigation . . . . . . Transaktionsgrenzen bei der Navigation durch einen einfachen Prozess . . . . . . . . Reisebuchung mit Konsistenzbedingung als Workflow . . . . . . . . . . . . . Kompensation explizit modelliert . . . . . Kompensation implizit durch Compensation Sphere . . . . . . . . . . . . . . Aufruf eines Programms ohne Transaktionssicherheit . . . . . . . . . Sicherer Aufruf einer Program Activity Two-Tier Client-Server Konfiguration . . . . 4 Tier Client-Server Konfiguration . . . . . Die Komponenten einer Anwendung . . . . Die Struktur eines 1-tier Systems . . . . . Die Struktur eines 2-tier Systems (Client-Server) . . . . . . . . . . . Clients als Integrationsplattform . . . . . Middleware als Integrationsplattform . . . . Thin clients und Application Server . . . . Die Code-Ebenen beim Datenbankzugriff Der Tiny Object Manager . . . . . . . . Aufrufhierarchie Staff Resolution . . . . . Vereinfachtes Statusübergangsdiagramm von Activities . . . . . . . . . . . . . Die Architektur des Client APIs . . . . . . Die Architektur des Staff Administration APIs Architektur der LDAP Bridge . . . . . . Struktur einer SOAP Message . . . . . . 34 35 36 36 37 37 38 38 39 40 43 44 45 46 47 48 52 54 55 60 61 62 63 68 v vi Business Process Management und Workflow-Technologie Vorwort Dieser Text ist Teil des Skripts zur Vorlesung Workflow, Business Process Management von Dr. Andreas Wickenhäuser in Jena. Das Skript gibt nicht den vollständigen Stoff der Vorlesung wieder. Ein Mitschrieb ist während der Vorlesung fär den erfolgreichen Abschluß der Prüfung notwendig. Dr. Andreas Wickenhäuser Geboren 1961 in Stuttgart, verheiratet, zwei Kinder. 1981-1988 Diplomstudium Mathematik und Informatik an der FernUniversität Hagen. 1986-1987 Mitarbeit in einer Softwarefirma für Apothekensysteme. 1988-1990 Promotion in Mathematik an der FernUniversität Hagen. 1989- Mitarbeit bei der IBM 1994- Mitarbeit bei der Entwicklung von Workflow-Software 1997- Dozententätigkeit Telefon: 07031 164108 (Geschäft), 0711 734367 (privat) Internet: [email protected] © Copyright IBM Corp. 2001,2005 vii viii Business Process Management und Workflow-Technologie Literaturverzeichnis Neben dem Vorlesungsskript empfehle ich die Verwendung eines Buches wie Production Workflow.Die meisten hier aufgeführten Bücher gehen in ihrem Gebiet weit über den Umfang der Vorlesung hinaus und sind als weiterführende Literatur gedacht. Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju: Web Services Springer Verlag 2004, 350 Seiten. Beschreibt Konzepte und Architektur sowohl von Web Services als frühere Beispiele von Middleware. Ohne auf die technischen Details der einzelnen Produkte einzugehen wird hier die Entwicklung der Software hin zu den Web Servies beschrieben. William Crawford, Jonathan Kaplan: J2EE Design Patterns O’Reilly 2002, 350 Seiten. Andreas Gadatsch: Management von Geschäftsprozessen Vieweg 2001, 239 Seiten. Betrachtet Geschäftsprozesse und Workflow von der Anwenderseite aus. Der Schwerpunkt des Buches liegt in der Analyse und Beschreibung von Geschäftspozessen. Ulrike Hammerschall: Verteilte Systeme und Anwendungen Pearson Studium 2005, 208 Seiten. Ist im ersten Teil eine systematische Einführung in das Thema. Im zweiten Teil werden aktuelle Produkte und Standards vorgestellt wobei hier weniger technische Details im Vordergrund stehen sondern versucht wird, die Architektur dieser Produkte vorzustellen. Vorgestellt werden neben anderen: Web Services, J2EE, .Net. Internet-Applicationserver hier nicht beschrieben sind, gibt dieses Buch viele Einblicke sowohl von der Anwendungsseite als bei den technischen Details in dieses Thema. MQSeries Workflow Benutzerdokumentation Empfehlenswert im Rahmen der Vorlesung ist zuerst Concepts and Architecture. IBM Redbooks Weitere Literatur zu WebSphere und MQSeries Workflow und anderen Produkten der IBM. Frei erhältliche Bücher im pdf-Format. Meistens wird beschrieben, wie mit den konkreten Produkten ein Anwendungsproblem gelöst werden kann. Die zugrunde liegende Architektur wird weniger beschrieben. Siehe unter www.redbooks.ibm.com. Robert Orfali, Dan Harkey, Jeri Edwards: Client/Server Survival Guide www.wiley.com/compbooks/ 1999, 760 Seiten. Unterhaltsame und informative Einführung in verteilte Anwendungen, Themen sind: Datenbanken, verteilte Transaktionen, verteilte Objekte. Gibt auch eine Übersicht über das aktuelle Marktgeschehen in diesen Bereichen. Andrew S. Tanenbaum, Maarten van Steen: Distributed Systems Prentice Hall 2002, 800 Seiten. Gut lesbare Einführung in dieses Gebiet, der Schwerpunkt liegt eher auf den grundliegenden Prinzipien statt auf aktuell vorhandenen Produkten. Frank Leymann, Dieter Roller: Production Workflow, Concepts and Techniques Prentice-Hall 2000, 479 Seiten. Betrachtet vor allem die technische Seite eines Workflow-Systems. Jim Gray, Andreas Reuter: Transaction Processing: Concepts and Techniques Morgan Kaufmann 1993, 1070 Seiten. Standardwerk über Transaktionen und Transaktionsmanager. Obwohl das Buch älter ist und moderne © Copyright IBM Corp. 2001,2005 ix x Business Process Management und Workflow-Technologie Kapitel 1. Einführung Zur Einführung dient der folgende Prozess: Ein Onlineversandhaus hat folgenden Bestellprozess: Abbildung 1. Diagramm des Prozesses in einem graphischem Modellierungstool: Prozessstart Der Kunde erstellt mit einer Web-Applikation die Bestellung. Wenn er sie abgeschlossen hat, wird sie als XML-String dem neu gestarteten Prozess übergeben. Reservierung Die Bestellung wird in einer Datenbank gespeichert, die bestellte Ware wird reserviert, die Bestellung erhält eine Nummer. Zahlungsweise Die Bonität des Kunden wird abhängig von der Zahlungsweise geprüft. Der Zahlungsvorgang kann eingeleitet werden. Versand Der Versand bearbeitet die Bestellung, die Ware wird abgeschickt. © Copyright IBM Corp. 2001,2005 1 Warten Der Prozess wird für einige Tage angehalten, bis ein Geldeingang zu erwarten ist. Bestätigung schicken Eine E-Mail wird an den Kunden geschickt. Geldeingang prüfen Je nach Zahlungsweise wird der Geldeingang geprüft. Inkasso Falls die Rechnung nicht vollständig beglichen ist, wird eine Mahnung geschickt. Die Systemarchitektur Web Frontend Internet Web Frontend Intranet Buchhaltung Workflow Engine Bestell, Artikel DB Mail Versand Abbildung 2. Die Interfaces der Workflow-Engine: Dieses Beispiel erläutert die folgenden Schlagworte: Workflow Die Bearbeitung eines Geschäftsvorfalls (Process Instance) nach vorgegebenen Regeln. Dieser Begriff wird oft verwendet, wenn die einzelnen Schritte (Activities) von Personen ausgeführt werden. Enterprise Application Integration (EAI) Die Integration von Anwendungen, damit Geschäftsprozesse effizient bearbeitet werden können. Business Process Management (BPM) Ähnliche Bedeutung wie Workflow. Meint aber auch die Überwachung und Steuerung von Geschäftsprozessen. 2 Business Process Management und Workflow-Technologie Von der Modellierung zur Ausführung eines Prozesses Wer macht was Business Modeling Management, Consultant Workflow Modeling WF Specialist Function Programming Programmer Abbildung 3. Die Modellierungsebenen von Geschäftsprozessen Schritte zur Erstellung eines lauffähigen Workflows 1. Definition der Prozessmodelle und anderer Daten mit einem Modellierungstool. 2. Codierung oder Integration der von den Activities ausgeführten Programme. 3. Definition der Personen und ihrer Relationen im System. Ein ausführbares Prozessmodell wird Process Template genannt. Die Bearbeitung einer Process Instance 1. Ein Prozess wird gestartet, es wird also eine neue Process Instance erzeugt. 2. Eine zuständige Person kann eine Activity starten, diese kann dann nicht mehr von einer anderen Person gestartet werden. 3. Nach Abschluß der Activity wird nach den Regeln des Prozess Templates weiternavigiert. 4. Der Prozess ist beendet, wenn keine Activity mehr gestartet werden kann. Grundlegende Elemente eines Workflow-Modells Process Template Definiert, wie ein Vorgang (Process Instance) zu bearbeiten ist. Das Process Template kann als Graph dargestellt werden. Die Knoten sind Activities und die Kanten definieren den Kontroll- und Datenfluß. Process Instance Beschreibt den aktuellen Zustand eines Vorgangs. Activity Ist eine Ausführungseinheit eines Prozesses. Activities können weitere Activities enthalten ähnlich wie bei Blöcken in Programmiersprachen. Program Eine elementare Activity kann die Ausführung durch ein Program sein. Control Connector Definiert zeitliche Abhängigkeiten zwischen den Activities. Kapitel 1. Einführung 3 Data Connector Damit können Daten zwischen den einzelnen Activities ausgetauscht werden. Work Item Ein Work Item repräsentiert eine startbereite Activity für eine zuständige Person. Worklist In der Worklist (auch Todo-List) sind die Work Items einer Person zusammengefaßt. Work Items können z.B. gestartet werden. Die wichtigsten Komponenten eines Workflow-Systems MQSeries Workflow Client Tier one Buildtime components MQSeries Workflow Server (hot pool) Message queues Database client Database Server Tier two Runtime database FDL Import/Export Buildtime database Tier three Abbildung 4. Three-Tier Architektur Aufgaben 1. Die folgenden Daten werden bei Process Instances oder Process Templates benötigt. Überlegen Sie, welche dieser Daten Bestandteil der Template-Datenstrukturen sind und welche Bestandteil der Instance-Datenstrukturen sind. Bei unklaren Fällen versuchen Sie diese zu präzisieren und dann zuzuordnen: a. Die Zeiten, zu denen einzelne Activities ausgeführt wurden. b. Informationen über die zeitliche Abhängigkeit der Ausführung von Activities. c. Typ und Werte der Daten, die zwischen den Activities ausgetauscht werden. d. Name eines Prozesses. 4 Business Process Management und Workflow-Technologie Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems Activities Hier werden die einzelnen Schritte eines Prozesses ausgeführt. Activities können sein: Program Activities Hier wird ein Programm aufgerufen. Late Binding möglich. Block Activities Block Activities sind vergleichbar mit Funktionsaufrufen bei einer Programmiersprache. In einem Block kann ein Netzwerk von weiteren Activities definiert sein, die durchlaufen werden müssen, damit der Block abgearbeitet ist. Process Activities Hier wird eine neue Prozessinstanz gestartet. Zu welchem Prozesstemplate diese Instanz gehört, kann auch dynamisch bestimmt werden. Bei einem Programm würde dies einem Funktionsaufruf in einer DLL (Dynamic Link Library) entsprechen. Activities haben im wesentlichen folgende Eigenschaften: Startbedingung Die Activity kann gestartet werden, wenn mindestens ein eingehender Kontrollkonnektor wahr ist oder wenn alle Kontrollkonnektoren war sind. Hat eine Activity keine eingehenden Kontrollkonnektoren, so wird diese Prüfung übersprungen. Starttyp Dieser kann manuell oder automatisch sein. Manuelle Activities sind typischerweise Programme, die mit einer Person interagieren. Automatische Activities sind Programme, die ohne Benutzerinteraktion laufen, oder auch Blocks oder Subprocesses, die bei Gültigkeit der Startbedingung sofort gestartet werden können. Invocation 1. Wie und wo wird das Programm aufgerufen und ausgeführt ? Das Spektrum reicht von einem lokalen Funktionsaufruf auf dem Workflow-Server bis zum Aufruf eines Web-Services über das Internet. 2. Gibt es Benutzerinteraktion in der Activity ? Wenn ja wird das Programm lokal auf der Maschine des Benutzers ausgeführt oder z.B. auf einem Applicationserver. Wenn nicht (z.B. Backend-Anwendung) gibt es mehr Freiheiten. 3. Werden bei der Invocation Standards unterstützt oder gibt es propriätäre Elemente ? Staff Resolution Hier kann bestimmt werden, bei wem diese Activity als Item in der Workliste erscheint, wer diese Activity also starten kann. Exitbedingung Die Exitbedingung entspricht der Abbruchbedingung einer Do-While Schleife in einer Programmiersprache. © Copyright IBM Corp. 2001,2005 5 Expiration Wenn eine Activity zu lange nicht abgeschlossen wird, kann einfach weiternavigiert werden. Damit können zeitliche Abhängigkeiten modelliert werden. Notification Wenn eine Activity zu lange nicht abgeschlossen wird, kann eine andere Person benachrichtigt werden. Diese erhält dann ein sogenanntes Notification Item in die Workliste gestellt. Container Bei der Bearbeitung einer Prozessinstanz fallen im Allgemeinen Daten an, die Process Process Input Container Activity Activity Input Container Activity Process Output Container Output Container Abbildung 5. Das Datenmodell eines Workflow-Systems gespeichert werden müssen. Abhängig von diesen Daten sind dann später Entscheidungen zu treffen oder die Daten beeinflussen die Ausführung von späteren Activities. Am Beginn jedes Prozesses und jeder Activity steht ein Inputcontainer. Entsprechend steht am Ende ein Outputcontainer. Activities können aus ihren Inputcontainern lesen und in die Outputcontainer schreiben. Datenkonnektoren können definiert werden, die dafür sorgen, daß die Daten wie gewünscht durch den Prozess geroutet werden. Die Container sollten im Wesentlichen Referenzen enthalten. Werden beispielsweise in einer Versicherung eingehende Briefe gescannt und dann mit Workflow bearbeteitet, so sollten diese Briefe dann in einem Imagingsystem gespeichert sein. Die Container werden dann einige Schlüsseldaten wie Kundenname und Kundennummer enthalten sowie Referenzen auf die entsprechenden Dokumente in dem Imagingsystem. Die Programm Activitäten können dann diese Referenzen auflösen und dem Sachbearbeiter die zur Bearbeitung des Vorgangs notwendigen Dokumente vorlegen. Designalternativen für das Datenmodell eines Workflow-Systems Datentypen Die verwendbaren Datentypen können fest vorgegeben sein oder über Schnittstellen frei definierbar sein. Lokalität Innerhalb eines Prozesses können die Container jeweils lokale Input- oder 6 Business Process Management und Workflow-Technologie Outputcontainer sein. Oder ein globaler Container existiert, auf den alle Activities lesend und schreibend zugreifen können. Persistenz Speziell bei lokalen Containern können diese persistent sein, sodaß zur Auswertung von Bedingungen und bei der Staffresolution darauf zugegriffen werden kann, ohne daür spezielle Mappings definieren zu müssen. Sichtbarkeit Container enthalten oft Daten wie Kundennummern, Auftragsnummern, Termine. Queries über die Prozessinstanzen mit Filter- oder Ordnungskriterien für diese Daten sind oft sinnvoll. Auch die Speicherung dieser Daten mit Auditevents (siehe „Audit Trail” auf Seite 11) zu dieser Prozessinstanz kann sinnvoll sein. Navigation Die Reihenfolge der Bearbeitung der Activities wird durch Kontrollkonnektoren A Transition Condition: Zusatzprüfung=1 C B Exit Condition: rc=1 OR D E Abbildung 6. Navigation bestimmt. Die wesentlichen Regeln der Navigation sind: 1. Die Kontrollkonnektoren bilden einen gerichteten azyklischen Graphen. 2. Schleifen (genauer Do-While Schleifen) sind möglich durch die Definition einer Exit-Condition der Activity. Ist beim Abschluß der Activity die Exit-Condition nicht erfüllt, wird die Activity erneut gestartet. 3. Activities ohne eingehenden Kontrollkonnektoren können gleich gestartet werden. 4. Ist eine Activity beendet und die Exitbedingung erfüllt, werden alle Kontrollkonnektoren, die von dieser Activity ausgehen, bearbeitet. Dabei wird die Transition Condition des Kontrollkonnektors ausgewertet. Ist sie False, werden alle daraus folgenden Kontrollkonnektoren, die sicher nicht mehr gestartet werden können, mit False gekennzeichnet (Dead Path Elimination).Ist die Transition Condition gleich True, so wird die Zielaktivität des Kontrollkonnektors in einem nächsten Schritt überprüft. 5. Ändert sich bei einer Activity der Status eines eingehenden Kontrollkonnektors, wird überprüft, ob alle eingehenden Kontrollkonnektoren true oder false sind. Ist dies der Fall, so wird die Start Condition ausgewertet. Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems 7 6. Bei der Start Condition kann die Bedingugn angeben, unter der die Activity gestartet werden kann. Dies kann z.B. sein: Alle eingehenden Kontrollkonnektoren sind wahr oder mindestens einer. 7. Entlang der Kontrollkonnektoren, die auf True gesetzt wurden, werden jetzt die vorhandenen Datenkonnektoren ausgewertet und die Containerinhalte entsprechend kopiert. 8. Eine Prozessinstanz ist dann beendet, wenn alle Activities beendet wurden oder endgültig nicht bearbeitet wurden. An Organizational Model integrated into a Workflow System All relationships described in the diagram above can be used with staff resolution. reports 0,1 0..n Organization manager 0..n 1 0,1 0..n member 0,1 Person 0..n has 1 substitute 0..n member 0..n 0..m 0,1 0..n coordinator Role Level Abbildung 7. The entity-relationship diagram for staff data The primary entities in the staff model are person, organization, role and level. The following relations are defined between these entities: reports to Organizations can have at most one parent organization. This relation is used to build up the organizational hierarchy. is manager of Each organization must have one manager. A person can manage more than one organization. member of organization A person can be member of at most one organization. The organization a manager belongs to is independent of the organization the manager manages. A manager (as every person in this model) needs not be member of an organization. is substitute of For a person, at most one substitute can be defined. A person can be substitute of several people. is member of a role A person can have several roles, mutiple people can have a role. A role can be used to define a group of people able to do a specific task. Also, roles could be used to model matrix organizations: One dimension of the matrix organization could be modeled with the organizational hierachy, the other could be modeled with roles. is coordinator of a role For a role, at most one coordinator can be specified. 8 Business Process Management und Workflow-Technologie If for example a role specifies the ability to do a specific task, the coordinator of a role could be notified in case of problems when performing this task. has level Each person can have a level. If no level is specified for a person, then level 0 is assumed. With staff resolution, not only a level can be specified as criteria, but also intervals can be specified. Die Zuweisung von Activities an Personen Wenn eine Activity von einer Person ausgeführt werden soll, ist zu definieren, welche Personen diese Activity ausführen können (potential owner). Organization Process Instance Process Template Staff Resolution, Notification Worklists Abbildung 8. Kontext einer Staff Resolution Diese Zuweisung soll folgende Eigenschaften haben: 1. Zur Laufzeit. 2. Abhängig von Daten des Prozesses. 3. Abhängig von Eigenschaften der Personen. 4. Bei Abwesenheit einer Person sollte deren Vertreter diese Activity ausführen. 5. Abhängig von anderen Activities (Vier-Augen Prinzip oder Activity B soll vom Manager des Starters der Activity A ausgeführt werden). Üblicherweise werden diese Anforderungen erfüllt, indem Daten zu den Mitarbeitern separat von den Prozessen gespeichert werden. Für die beiden Fälle oben ist zu jedem Mitarbeiter ein Vertreter (Substitute) zu definieren und die Abteilungsstruktur muß im System gespeichert sein. Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems 9 Wesentliche Aspekte dieser Lösung sind: Trennung zwischen Prozesslogik und Organisation (Deutsch: Ablauforganisation versus Aufbauorganisation) Die Prozessmodelle sind weitgehend unabängig von organisatorischen Änderungen. Late Binding Ändert sich die Organisationsstruktur, so hat dies Auswirkungen auf alle Prozessinstanzen, die gerade ausgeführt werden: wurde in einem Prozess eine Activity gerade beendet und wird zur nächsten Activity navigiert, so wird zu diesem Zeitpunkt die Organisationsstruktur analysiert, um die Personen zu ermitteln, die die nächste Activity ausführen sollen. Separate Staff-Datenbank Vor allem große Organisationen versuchen, Informationen über Mitarbeiter möglichst zentral zu halten, z.B. mit einem LDAP-Directory (Leight-weight directory access protocol). Zwei mögliche Lösungen kommen in so einem Fall in Frage: 1. Staff Exit für den Online-Zugriff zur Authentication, Authorization, Staff Resolution. 2. Staff Bridge für eine Replication (z.B. nachts) in die Staff-Datenbank des Workflow-Systems. Systemstruktur eines Workflow-Systems Die in „Die wichtigsten Komponenten eines Workflow-Systems” auf Seite 4 besprochene Systemstruktur soll hier genauer beschrieben werden anhand einer Grafik aus Concepts and Architecture: Abbildung 9. API-Struktur Workflow-Systeme können nicht nach einfacher Installation betrieben werden. Neben der Anpassung oder Neuschreibung von Programmen, die in den Activities 10 Business Process Management und Workflow-Technologie aufgerufen werden, wird oft auch das User-Interface des Workflow-Clients speziell für die Anwendung geschrieben. Workflow kann quasi in die Anwendung eingebaut werden. Dies stellt eine wesentliche Erleichterung für die Benutzer des Produkts dar, die besser bei der Erfüllung ihrer Aufgaben geleitet werden können. Ein anderer Aspekt ist der Wunsch, Workflow auf einer ganzen Reihe von Plattformen und Umgebungen einsetzen zu können. Speziell bei automatischen Activities gibt es hier eine große Bandbreite. All dies sind Gründe, warum die APIs die eigentlichen Interfaces des Produkts sind. Außer dem Admin Client können alle anderen Clients ersetzt werden. Spezielle Funktionen lassen sich nur über das API ausführen. So haben die Clients eher den Character von Beispielprogrammen. XML als Invocation-Interface XML (eXtensible Markup Language) ist ein Standard, um strukturierte Daten in einem Textstring zu speichern und zu übertragen. Das Format (das XML-Schema) ist ist innerhalb der Grundsyntax frei definierbar. Es existieren Tools wie z.B. XML Parser, mit denen ein XML-Dokument relativ einfach mit einem Programm verarbeitet oder konvertiert werden kann. Im XML-Format können Requests direkt an den Execution-Server geschickt werden. Als Illustration soll folgende XML-Message dienen: <?xml version="1.0" standalone="yes"?> <WfMessage> <WfMessageHeader> <ResponseRequired>Yes</ResponseRequired> <UserContext>This data is sent back in the response</UserContext> </WfMessageHeader> <ProcessTemplateExecute> <ProcTemplName>OnlineCreditRequest</ProcTemplName> <ProcInstName>Credit_Request#658321</ProcInstName> <KeepName>true</KeepName> <ProcInstInputData> <_ACTIVITY_INFO> <Priority>1</Priority> </_ACTIVITY_INFO> <PersonInfo> <FirstName>Andreas</FirstName> <LastName>Wickenhaeuser</LastName> </PersonInfo> </ProcInstInputData> </ProcessTemplateExecute> </WfMessage> Mit dieser Beispielmessage kann ein Prozess gestartet werden. Eine andere Möglichkeit, XML hier einzusetzen ist, eine Activity durch XML zu starten. Audit Trail Sobald mit Workflow-Prozessen Dinge bearbeitet werden, die einen gewissen Wert haben oder die mit einem gewissen Risiko verbunden sind, wird es wichtig, daß dauerhaft gespeichert wird, wer wann was gemacht hat. Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems 11 Wenn zum Beispiel Wertpapieraufträge in Millionenhöhe bearbeitet werden, oder in einem Krankenhaus Patientendaten verwaltet werden, ist es sinnvoll beim Einsatz von Workflow-Systemen darauf zu achten, daß wichtige Aktionen protokolliert werden. Einige Daten, die bei einem Audit Event gespeichert werden: Timestamp Der Zeitpunkt, zu dem dieses Ereignis eingetreten ist. Event Numerisch codierter Typ des Ereignisses,, z.B.: v Process startet v Process terminated v Activity started Process Name Name der Prozessinstanz, in der dieses Ereignis eingetreten ist. User ID Person, die die Aktion ausgeführt hat. Anwendungsdaten In beschränktem Umfang können ausgewählte Anwendungsdaten wie z:B. Kundennummer oder Rechnungsnummer dem Event mitgegeben werden. Audit Events können in die Datenbank geschrieben werden oder als XML Messages verschickt werden, die dann von einer anderen Stelle aus gespeichrt und ausgewertet werden können. Suche nach einem Vorgang Ein typische Kundenanfrage in einer prozessorientierten Verwaltung lautet: Ich habe einen Versicherungsschaden gemeldet, wie ist der Stand der Bearbeitung ? Es ist also der Status einer Prozessinstanz zu ermitteln. Folgende Schritte interessieren hier: 1. Wir nehmen an, der Versicherungsschaden wird mit einer neuen Prozessinstanz bearbeitet. Der Name der Instanz kann z.B. die Kundennummer des Versicherungsnehmers enthalten. 2. Ruft der Kunde an, kann dann nach der Prozessinstanz gesucht werden. 3. Mit dem Prozessmonitor kann der Status der Instanz ermittelt werden. Überwachung von Business-Zielen Prozessinstanzen eines Prozesses haben Kennzahlen wie: 1. Kosten 2. Dauer 3. Qualität (z.B. Wahrscheinlichkeit von Fehlersituationen) Diese können in folgendem Zusammenhang zu Prozessen stehen: 1. Vorgaben bei der Entwicklung einer Workflow-Anwendung. 2. Überprüfung auf Konsistenz durch Simulation. 3. Verifizierung im produktiven Einsatz. 4. Veränderung des Prozesses zur besseren Zielerreichung. 12 Business Process Management und Workflow-Technologie Error Log Treten Fehler beim Betrieb auf, sollten diese einer zuständigen Person gemeldet werden. Bei Fehlern, die nicht direkt mit der Eingabe von Daten zusammenhängen, ist es oft nicht sinnvoll, dem Endanwender eine detaillierte Beschreibung des Fehlers zu geben. In solchen Fällen ist ein Administrator der eigentliche Adressat, der z.B. ein Error Log File analysieren kann, in dem die Fehler in chronologischer Reihenfolge verzeichnet sind. Tracing Da beim Kunden oft die Konfiguration komplex sein kann, sind Fehler, die beim Kunden auftreten, im Labor nicht einfach nachzuvollziehen. Das Produkt hat hier die Möglichkeit, wichtige Programmaktionen zu protokollieren. Es gibt Analogien zum Audit Trail, der Unterschied liegt aber, daß hier die Interessenten der protokollierten Informationen die Programmierer sind und oben es Personen sind, die an den Business-Prozessen interessiert sind, Entsprechend unterschiedlich sind die Daten, die protokolliert werden. Beispiel eines Traces: 2000-12-13, 16:31:51.78, fmcixbas.cxx( 781), ( 3,Fl,MC), fmcibie( 348- 346), FmcXLateBackend::GetBool(bool&,const FmcfAttributeDataReader&), <exit 2000-12-13, 16:31:51.78, fmcixbas.cxx( 808), ( 3,Fl,MC), fmcibie( 348- 346), FmcXLateBackend::GetTargetName (FmcString&,const FmcfEntity&,const FmcfLinkType&), >entry 2000-12-13, 16:31:51.78, fmcixbas.cxx( 819), ( 3,Gn,MC), fmcibie( 348- 346), FmcXLateBackend::GetTargetName (FmcString&,const FmcfEntity&,const FmcfLinkType&), Name is Staffless 2000-12-13, 16:31:51.78, fmcixbas.cxx( 808), ( 3,Fl,MC), fmcibie( 348- 346), FmcXLateBackend::GetTargetName (FmcString&,const FmcfEntity&,const FmcfLinkType&), <exit Da die Traceentries sehr lang sind, wurden sie auf mehrere Zeilen aufgeteilt und jeweils mit einer Leerzeile getrennt. Folgende Daten werden mit einem Traceentry hier geschrieben: 1. Timestamp 2. Sourcefile mit Zeilennummer, dessen Code gerade ausgeführt wird. 3. Tracelevel, hier 3, möglich ist 0–9. Tracing kann so eingestellt werden, daß z.B. nur Entries mit den Werten 0–2 geschrieben werden. 4. Kategorie des Traceentries. Hier wird Gn (General) und Fl (Flow) verwendet. Weitere mögliche Werte sind Er (Error) und Pf (Performance)... 5. Komponte des Sourcecodes. MC steht hier für Modeling Client. Weitere mögliche Werte sind KR (Kernel), EX (Execution Server) ... 6. Name des ausgeführten Programms mit Prozess-Id, Thread-Id. 7. Aktuelle Methode. 8. Frei definierbare Daten. 9. Optional >entry, wenn in eine Methode gesprungen wurde, <exit, wenn eine Methode verlassen wird. Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems 13 Der korrespondierende Sourcecode sieht wie folgt aus: void FmcXLateBackend::GetTargetName(FmcString& targetName, FmcfEntity const& source, FmcfLinkType const& linkType) { traceFlw(3, ModC, ""); FMC_REQUIRE(source.Alive()); FMC_REQUIRE(linkType.IsValid()); FmcfLink link = source.FirstLinkOfType(linkType); } if (link.IsValid()) { targetName = link.Target().Name(); traceDbg(3, Gen, ModC, "Name is " << targetName); } else { targetName.SetNull(); traceDbg(3, Gen, ModC, "No name defined"); } IT-orientierte Statistik, Monitoring Systemadministratoren haben dafür zu sorgen, daß möglichst reibungslos mit dem System gearbeitet werden kann. Überwacht werden muß beispielsweise: 1. Funktionsfähigkeit von allen Komponenten. 2. Anwortzeiten des Systems. 3. Verwaltung des Plattenplatzes (Datenbanksystem). Aufgaben 1. Sie haben verschiedenen Aspekte eines Workflow-Systems kennengelernt. Überlegen Sie sich, welche Personengruppen mit dem System zu tun haben und welche Qualifikationen diese Personen haben müssen. Denken Sie dabei an Aufgaben wie Planung der Prozesstemplates, Umsetzung, Installation, Betrieb, Kontrolle der Prozesse, Fehlerbehandlung. 2. Diese Aufgabe hat den Vergleich von System/Error Log, Audit Trail und Trace zum Thema. Nehmen Sie an, Sie betreuen einen Kunden eines Workflow-Produkts. Der Kunde beschwert sich bei Ihnen, daß der Trace so schwierig auszuwerten sei. Können Sie dem Kunden einen Tip geben ? 3. Wie kann die mehrfache Ausführung einer Gruppe von Aktivitäten modelliert werden ? Kann ein Kontrollkonnektor von der letzten Aktivität dieser Gruppe zu der ersten Aktivität gezogen werden ? 4. In einem Prozess, der die Laufzeit von einigen Wochen haben kann, muß eine Folge von Activities ausgeführt werden. Diese Activities werden in der Regel schnell durchlaufen. Wie ist diese Folge von Activities zu modellieren, wenn Änderungen in diesem Bereich auch für Prozesse gelten sollen, die schon gestartet worden sind ? 5. Bei der Navigation haben Sie den Begriff der Dead Path Elimination kennengelernt. Überlegen Sie sich, welche Konsequenzen es auf die Navigation haben würde, wenn keine Dead Path Elimination ausgeführt würde. a. Zeichnen Sie ein Beispiel von Aktivitäten und Kontrollkonnektoren, wo dies zu einem Problem führen kann. 14 Business Process Management und Workflow-Technologie b. Erläutern Sie dieses Problem, indem Sie Schritt für Schritt durch diese Aktivitäten und Kontrollkonnektoren durchnavigieren. c. Wie müßte die Semantik beim Start einer Activity geändert werden, damit es nicht zu unerwünschten Stops bei der Navigation kommen würde ? 6. Wird z.B. Rollen-basierte Staff Resolution für eine Activity ausgeführt, kann aus einer Gruppe von mehreren Personen einer diese Activity starten. Nennen Sie zwei Gründe warum es sinnvoll sein kann, wenn Program Activities, die auszuführen sind, von mehr als einer Person gestartet werden können. 7. Ausgangspunkt ist ein Ausschnitt eines Prozeßmodells, in dem es von der Aktivität A einen Control- und einen Datenconnector zur folgenden Aktivität B gibt. Diese Aktivität, die von Sachbearbeitern ausgeführt wird, soll stichprobenweise überprüft werden: In zufällig ausgewählten 10% der Instanzen soll nach dem Abschluß von A statt nach B zur Aktivität U gerouted werden. Ist U abgeschlossen, soll nach B weiternavigiert werden. Für die durchschnittlich 90% anderen Instanzen soll wie bisher nach B geroutet werden, ohne daß U durchlaufen wird. a. Beschreiben Sie, wie die zufällige Auswahl ausgeführt wird. Dies soll natürlich automatisch erfolgen. b. Wie ist das Prozessdiagramm zu ändern, sodaß die Auswahl stattfindet, U eventuell durchlaufen wird und dann in beiden Fällen zu B weiternavigiert wird. Skizzieren Sie das Diagramm. c. Beschreiben Sie anhand des Diagramms, wie es in den beiden relevanten Fällen durchlaufen wird. 8. Entscheiden Sie, ob die folgenden Aussagen wahr oder falsch sind, indem Sie diese mit der Abb. 7 auf Seite 8 überprüfen. Begründen Sie Ihre Aussagen: a. Eine Person kann Mitglied von mehreren Organisation sein. b. Eine Person kann Manager von mehreren Organisationen sein. c. Der Vertreter einer Person muß mindestens die Rollen der vertretenden Person haben. d. Eine Person kann Koordinator von mehreren Rollen sein. 9. In einem Unternehmen gebe es neben der üblichen hierarchischen Organisation eine Projektorganisation mit folgenden Eigenschaften: a. Jedes Projekt hat einen Projektverantwortlichen. b. Mitarbeiter können Mitglieder von mehreren Projekten sein. c. Mitarbeiter von verschiedenen Abteilungen können einem Projekt angehören. Überlegen Sie sich, wie dies mit dem in Abb. 7 auf Seite 8 definierten Organisationsmodell abgebildet werden kann. Hinweis: Sie sollten untersuchen, ob Sie die Projekte durch Organization oder durch Role abbilden können. Beachten Sie die Bedingungen, die bei den Relationen zwischen den Entities gelten müssen. Wie müsste die Staff Resolution einer Activity definiert werden, damit genau die Mitglieder eines Projekts diese Activity ausführen können ? 10. Wäre es nicht einfacher, statt den verschiedenen Input- und Outputcontainern mit den Mappingregeln, einen Container für den Prozeß zu definieren ? Mit diesem Container würden dann alle Activities des Prozesses arbeiten, also daraus lesen und schreiben. Die Definition von Mappingregeln wäre dann nicht mehr nötig. Kapitel 2. Wichtige Eigenschaften eines Workflow-Systems 15 a. Vergleichen Sie diese Alternative mit dem oben vorgestellten Konzept. Denken Sie z.B. an Probleme beim gleichzeitigen Zugriff auf den Container, bei Activities, die von mehreren anderen Activities abhängen. b. Was hat diese Lösung für Konsequenzen für Programme und Prozesse, die von verschiedenen Prozessen aus aufgerufen werden sollen ? 16 Business Process Management und Workflow-Technologie Kapitel 3. Allgemeine Aspekte eines Workflow-Systems Drei Dimensionen Abbildung 10. Die Dimensionen von Workflow Prozesslogik Die Prozesstemplates. Organisation Die Beziehungen zwischen den Mitarbeitern. IT-Struktur Die Hard- und Softwaresysteme, die verwendet werden. Das Workflow-System muß zum Beispiel mit der existierenden IT-Struktur zusammenarbeiten können: v Hardwareplattformen, Betriebssysteme. v Netzwerkprotokolle, Datenbanksysteme, Application Server. v Anwendungsprogramme, Transaktionssysteme. Workflow kann unter diesen drei Aspekten betrachtet werden. Obwohl sie miteinander zusammenhängen, sollten sie soweit wie möglich unabhängig voneinander definiert werden könen. Kategorien von Workflow © Copyright IBM Corp. 2001,2005 17 Geschäftswert Collaborative Entwicklungsprojekte Ad Hoc Unstrukturierte Kommunikation Production Freigabe von Krediten Administrative Einkaufsanforderungen Wiederholungsrate Abbildung 11. Eine Klassifikation von Workflow Wiederholungsrate steht hier für die Anzahl, wie oft ein Prozess genau in dieser Form ausgeführt wird. Ein Prozess, der zwar häufig ausgeführt wird, dann jeweils aber in anderer Form, hat daher eine eher niedrige Wiederholungsrate. Geschäftswert steht hier für den Wert einer Prozessinstanz. Von ihm hängt zum Beispiel das Risiko des Unternehmens ab, wenn dieser Prozess fehlerhaft ausgeführt wird. Workflow-Software ist eher bei Szenarien auf der rechten Seite zud finden. Auf der linken Seite wird Software mit weniger ausgeprägte Workflow-Eigenschaften eingesetzt. Kriterien eines Geschäftsprozesses Ein Geschäftsprozess ist die Bearbeitung eines Vorgangs oder das Erstellen eines Produkts in einem Unternehmen. Aspekte von Geschäftsprozessen: Geschäftsprozesse als Kernkompetenz eines Unternehmens Beispiele: Produktion eines Autos, Bearbeitung eines Schadenfalls bei einer Versicherung. Ebene Als Geschäftsprozess kann die Entwicklung eines neuen Flugzeugtyps betrachtet werden oder das Erstellen eines neuen Firmenausweises. Grad der Automatisierung Viele Geschäftsprozesse zeichnen sich durch einen geringen Automatisierungsgrad aus: z.B. die Ernennung eines Mitarbeiters zum Manager. Im Vergleich dazu dürfte die Bearbeitung der Online-Bestellung eines Buches weitgehend automatisiert sein. 18 Business Process Management und Workflow-Technologie Organisatorische Aspekte überwiegen Wenn Prozesse analysiert und verbessert werden, stehen meist organisatorische Fragen im Vordergrund: Wie schaut der Prozess aus, wer macht was, wer kontroliert wen, wer kann welche Daten ermitteln etc. Technische Fragen wie verwendete Programme, IT-Infrastruktur sind eher zweitrangig. Bevor die Frage nach der Änderung von Geschäftsprozessen gestellt wird, sind Kriterien zu definieren, nach denen Geschäftsprozesse beurteilt werden: Angemessenheit Ist der Prozess sinnvoll und der Aufgabenstellung angepaßt ? Effizienz Die Relation zwischen Kosten und Nutzen des Prozesses. Fehlerwahrscheinlichkeit Hohe Fehlerwahrscheinlichkeiten können negative Auswirkungen auf alle anderen Kriterien hier haben. Antwortzeiten Die Schnelligkeit bei der Bearbeitung von Aufträgen. Transparenz Geschäftsprozesse sind oft nicht ausreichend dokumentiert. Oft ist nur den ausführenden Mitarbeitern klar, wie sie funktionieren. Was ist der Status einer Prozessinstanz ? Welche Prozessschritte benötigen wieviel Resourcen ? Anpassungskosten Geschäftsprozesse ändern sich. Sind die Anpassungskosten bei Änderungen akzeptabel ? Erfüllung von Erwartungshaltungen, Kunden- und Mitarbeiterzufriedenheit Der Prozess sollte auf vorhandene Erwartungshaltungen von Kunden und Mitarbeitern eingehen (z.B. Servicezeiten, Entscheidungsspielräume von Sachbearbeitern, Gruppenarbeit statt Arbeit am Fließband). Ändern von Geschäftsprozessen Abgrenzung von Business Process Reengineering zur Geschäftsprozessoptimierung Business Process Reengineering 1. Radikale Änderung eines Geschäftsprozesses. 2. Personen von außen werden benötigt, mit deren Fachwissen Änderungen geplant und durchgesetzt werden können, die auch gegen die Interessen der beteiligten Personen gerichtet sein können. 3. Höheres Risiko, aber auch die Erwartung eines größeren Gewinns nach dem Abschluß des Projekts 4. Beispiel: Aufteilung eines Unternehmens in voneinander unabhängige Einheiten (Profit Center). Verschmelzung von Unternehmen mit anschließender Konsolidierung. 5. Weiteres Beispiel: Bei der Softwareentwicklung wurde früher oft ein Release von einer Abteilung entwickelt und es dann mit der Auslieferung beim Kunden einer anderen Abteilung übergeben, die für Kapitel 3. Allgemeine Aspekte eines Workflow-Systems 19 die Maintenance verantwortlich war. Heutzutage ist es eher üblich, daß Entwicklung und Maintenance einer Komponente von den gleichen Personen betrieben wird. Geschäftsprozessoptimierung 1. Inkrementelle Verbesserung eines Prozesses. 2. Der Prozess wird in Zusammenarbeit und unter Nutzung des Fachwissens der beteiligten Mitarbeiter verbessert. Ansätze für eine Geschäftsprozessoptimierung Eliminierung unnötiger Arbeit. Unnötige Arbeit festzustellen kann bei komplexen Prozessen schwer sein. Oft ist eine Risikoabschätzung notwendig, um zu ermitteln, ob alle relevanten Kriterien des Prozesses nach dem Vereinfachen noch erfüllt sind. Andere Organisation der Arbeit. Beispiel: Statt Produktion und Qualitätskontrolle als separate Abteilungen zu haben, wird die Qualitätskontrolle in die Produktion integriert. Vorteile: Kürzerer Feedback zur Produktion bei Qualitätsproblemen, klare Verantwortlichkeiten für die Qualität (besonders wenn die Produktionsschritte entsprechend protokolliert wird), Kosteneinsparungen. Risiken: Verminderte Produktqualität. Vermeidung von Brüchen im Informationsfluß. Beispiel: Manuelle Eingabe von Daten von einem System in ein anderes System. Als Begründung von solchen Schritten dient oft, daß mit der Eingabe auch eine manuelle Prüfung der Daten stattfindet. Bessere Unterstützung durch Programme. Dies kann durch Automatisierung geschehen oder der Vereinheitlicheung des User Interfaces geschehen. Einsatz von Standardlösungen. Statt selbstentwickelten Programmen werden branchenspezifische Prozesse oder Anwendungen verwendet. Worklists statt Queries. Wenn der Prozess datenbankorientiert ist, muß der Mitarbeiter oft anstehende Arbeit dadurch ermitteln, indem er verschiedene Queries absetzt, die als Resultate die Vorgänge liefert, die zu bearbeiten sind. Im Gegensatz dazu stellt eine Worklist dies an einer Stelle zusammen. Die Worklist kann sachgerecht sortiert sein, z.B. nach Priorität. Optimierung des Prozessflusses Zum Beispiel durch parallele Verarbeitung Beispiel der Optimierung des Geschäftsprozesses Scheckeinreichung Ein Unternehmen erhalte pro Tag etwa 10 Schecks, mit denen Kunden ihre Rechnungen bezahlen. 20 Business Process Management und Workflow-Technologie Buchhaltung Eintrag in Liste der Schecks Zuordnung erfolgt Zuordnung Kopie offene erstellen Posten Finanzabteilung Scheckeinreichung keine Zuordnung Kundenanruf Nacharbeit Abbildung 12. Orginaler Prozess Scheckeinreichung 1. Die Schecks werden im Unternehmen an die Buchhaltung geschickt, die auch für das Ausstellen von Rechnungen verantwortlich ist. 2. Die Schecks werden in eine Liste manuell eingetragen. 3. Mit einem Dialogprogramm wird versucht, den Scheck einem Offenen Posten des Kunden zuzuordnen. 4. In etwa 5% der Fälle ist eine eindeutige Zuordnung nicht sofort möglich (z.B. ein Scheck zum Begleichen von mehreren Rechnungen), der Kunde wird angerufen. 5. Der Scheck wird kopiert. 6. Der Orginalscheck geht an die Finanzabteilung, die den Scheck einreicht. 7. Die Kopie des Schecks bleibt in der Buchhaltung und wird abgelegt. Finanzabteilung Erfassung, Abgleich offene Posten Scheckeinreichung keine Zuordnung Buchhaltung Kundenanruf Nacharbeit Abbildung 13. Verbesserter Prozess Scheckeinreichung 1. Voraussetzungen: Kapitel 3. Allgemeine Aspekte eines Workflow-Systems 21 2. 3. 4. 5. a. Verwendung eines Datenbanksystems oder Imaging-Systems zur Speicherung der Scheckdaten. b. Die Finanzabteilung hat Zugriff auf die Offenen Posten der Buchhaltung. Die Schecks gehen an die Finanzabteilung. Nach der Erfassung mit einem Programm werden die Schecks eingereicht. Zusammen mit der Erfassung geschieht die Zuordnung zu den Offenen Posten. Die Scheckdaten werden vom System entsprechend ausgewertet.. Phasen der Geschäftsprozessoptimierung Die Akteure bei der Geschäftsprozessoptimierung Oft finden diese Projekte im Spannungsfeld zwischen den Fachabteilungen, die für die Prozesse verantwortlich sind und der IT-Abteilung (Information Technology), die für die Infrastruktur zuständig ist, statt. Wer sind auf der Managementseite Initiatoren und Unterstützer bei dem Projekt ? Wenn ein Geschäftsprozess zwei Abteilungen umfaßt und nur das Management der einen Abteilung die Optimierung unterstützt, kann dies zu Problemen führen. Ist-Analyse des Prozesses v Zusammenstellung von Dokumenten, die den Prozess beschreiben. v Interviews v Ermittlung von Prozesskenngrößen wie Durchlaufzeiten, Fehlerhäufigkeiten, Kundenzufriedenheit. v Bestimmung der Kosten eines Prozesses, z.B. der Kosten einer durchschnittlichen Prozessinstanz bei einer durchschnittlichen Anzahl von Prozessinstanzen pro Zeiteinheit. Definition Soll-Zustand v Was soll verbessert werden ? v Möglichst quantifizierbare Ziele definieren. v Abschätzung und Planung der Kosten des neuen Prozesses. Im einfachsten Fall setzen sich diese zusammen aus Umstellungskosten und den Kosten pro Prozessinstanz, die dann vergleichbar sein sollten zu den ermittleten Kosten des aktuellen Prozesses. Entwicklung der Lösung Änderungen können umfassen: v Prozessänderungen v Organisationsänderungen v Neue Stellenbeschreibungen v Einführung von neuer Software, Hardware. Pilotphase Der neue Prozess wird simuliert und getestet. Er wird im kleinen Rahmen eingeführt. Wie bei der Entwicklung bei Software allgemein üblich, sollte der Kontakt zu den Anwendern möglichst früh hergestellt werden mit Hilfe von Prototypen oder mit einem Piloten, um Fehlentwicklungen im Projekt möglichst frühzeitig korrigieren zu können. Roll-Out Der neue Prozess geht in Produktion. 22 Business Process Management und Workflow-Technologie Nachlese Die Kennzahlen des neuen Prozesses werden ermittelt und mit dem alten Prozess verglichen. Korrekturen des neuen Prozesses werden ausgeführt. Aufgaben 1. Im Diagramm Abb. 1 auf Seite 1 soll folgende Erweiterung eingebaut werden: Fall bei einer Bestellung einer der bestellten Artikel nicht auf Lager ist, soll er nachbestellt werden. Die Nachbestellung umfasse zwei Activities: a. Erstellung einer Nachbestellung b. Empfang und Bearbeitung der Nachbestellung Diese beiden Activities sollen parallel zur Activity Zahlungsweise ausgeführt werden. a. Skizzieren Sie den geänderten Prozessgraphen. b. Beschreiben Sie, wie der Start der Nachbestellung ausgeführt werden kann. Wie könnten hier Containervariablen verwendet werden ? c. Die Activity Versand ist Synchronisationspunkt der beiden Kontrollflüsse. Ist die Startbdingung dieser Activity AND oder OR ? Spielen Sie die beiden Alternativen (mit oder ohne Nachbestellung) durch. d. Nach einigen Tests des Prozesses habe sich ergeben, daß die Nachbestellung komplexer ist als ursprünglich angenommen. Überlegen Sie sich, wie eine stärkere Entkoppelung von dem Kundenbestellprozeß erreicht werden könnte. 2. Überlegen Sie sich Kriterien, nach denen sie Instanzen des ProzessesAbb. 1 auf Seite 1 beurteilen können a. Unter Business-Aspekten b. Unter IT-Aspekten 3. Wir betrachten die letzte Activity Inkasso im Diagramm Abb. 1 auf Seite 1 genauer. Diese Activity sei durch einen starken Anteil von manuellen Arbeiten geprägt (hoher Ad-Hoc-Anteil), die auch unterbrochen werden können. Gleichzeitig soll der Status persistent gespeichert sein, z.B. folgende Daten: a. 1. Mahnung erfolgte am: b. 2. Mahnung erfolgte am: c. Vollstreckungstitel beantragt am: d. Zahlung erfolgte am: e. Zahlung kann nicht eingetrieben werden. Überlegen Sie sich, wie dies sinnvoll modeliert werden kann 4. In der Beschreibung eines Projekts zur Optimierung eines Geschäftsprozess finden Sie folgende Sätze: In der Pilotphase zeigte sich, daß die Kosten einer Prozessinstanz im Durchschnitt 20% geringer sind als im aktuellen Prozess. Wenn der neue Prozess in Produktion geht, wird die Einführung des neuen Prozesses somit zu erheblichen Einsparungen führen. a. Beschreiben Sie in einem Satz, was in dem Projekt wohl schon gemacht wurde. b. Sind diese beiden Sätze plausibel ? Begründen Sie Ihre Antwort. 5. Gegeben sei folgender Vorschlag (die Verfügbarkeit entsprechender Systeme zum Betrieb wird vorausgesetzt und ist nicht Bestandteil des Vorschlags, Aufwände sind geschätzt und in einem Anhang des Vorschlags dokumentiert): Kapitel 3. Allgemeine Aspekte eines Workflow-Systems 23 Ein aktueller Prozess umfaßt 5 Schritte, die in 3 verschiedenen Fachabteilungen auszuführen sind. Für 4 Schritte gibt es jeweils ein Anwendungsprogramm zur Bearbeitung, 1 Schritt ist manuell auszuführen. Der Prozess soll auf die neueste Workflow-Technologie umgestellt werden. Projektplan: Evaluierung, Entscheidung, welche Produkte verwendet werden, Dauer 4 Wochen Anhand einer schon vorbereiteten Liste sollen verschiedene Produkte beurteilt werden und die passende Kombination an Software ausgewählt werden. Umstellung der Activities, Dauer 4 Wochen Aufträge werden vergeben zur Umstellung der 5 Prozessschritte zu Anwendungen, die sich in einen Workflow integrieren lassen können. Modellierung des Prozesses, Dauer 1 Woche Der Prozess wird im Workflow-System modelliert und zusammen mit den neuen Anwendungen integriert. Lasttest, Dauer 2 Wochen Die erwartete Last wird auf dem Testsystem simuliert zum Nachweis der Funktionsfähigkeit der Lösung. Umstellungsphase, Dauer 1 Woche Die Daten der Benutzer des Systems (etwa 200) werden übernommen, die Benutzer werden in das neue System eingewiesen, Neue Prozessinstanzen werden mit dem neuen Workflow-System bearbeitet. a. Welche Informationen fehlen, um beurteilen zu können, ob das Projekt sinnvoll ist ? b. Beurteilen Sie den Projektplan. 24 Business Process Management und Workflow-Technologie Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden Relationales Datenbanksystem Wenn Daten zu speichern sind, die eine gewisse feste Struktur haben, so eignet sich hierfür besonders ein Datenbanksystem. Die Personalabteilung eines Unternehmens zum Beispiel muß Daten von Mitarbeitern speichern. Zu jedem Mitarbeiter gibt es einen Datensatz, in dem Angaben wie Name, Personalnummer, Adresse, Gehalt gespeichert sind. Tabellen als Strukturierungsmittel von Daten Wenn wir diese Personaldaten in einer relationalen Datenbank (der heute übliche Typ von Datenbanken) speichern wollen, so müßten wir im einfachsten Fall eine Tabelle (Table) definieren. Die Spalten (Column) der Tabelle entsprechen den einzelnen Datenfeldern wie Name, Personalnummer..., jede Zeile (Row oder Record) entspricht dem Datensatz eines Mitarbeiters. Zugegriffen wird auf diese Daten mit SQL (Structured Query Language) einer speziellen Sprache. Trennung des Anwendungsprogramms von den Zugriffspfaden zur Datenbank Wesentliches Merkmal eines Datenbanksystemes ist, daß die Anwendungsprogramme, die auf die Daten zugreifen, nicht zu eng mit den Daten gekoppelt sind. Wird in unserem Beispiel in der Personaltabelle eine neue Spalte hinzugefügt (zum Beispiel E-Mail Adresse), so sollen alle Anwendungsprogramme ohne Änderungen weiterarbeiten können. (Ein Anwendungsprogramm, daß auf die E-Mail Adressinformationen zugreifen möchte, muß natürlich entsprechend angepaßt sein.) Transaktionen Datenbanksysteme werden von mehreren Anwendern gleichzeitig benutzt. Natürlich soll nicht nur gleichzeitig gelesen werden können, sondern auch gleichzeitig geschrieben werden können. Damit hier nicht Einer die Daten eines Anderen überschreibt, gibt es Mechanismen, die steuern, wer welche Aktionen ausführen kann, und wie im Konfliktfall vorgegangen wird. Das wichtigste Konzept in diesem Zusammenhang sind Transaktionen. Werden Daten in der Datenbank geändert, geschieht dies immer innerhalb von Transaktionen Beispiel: Überweisung von 100 € von Konto A auf Konto B der gleichen Bank. Begin Transaction; KontoA = KontoA - 100; KontoB = KontoB + 100; Commit Transaction; © Copyright IBM Corp. 2001,2005 25 Begin Transaction Datenbankstatus Commit Transaction Updates Abbildung 14. Eine erfolgreiche Transaktion Die Änderungen werden alle nicht vollzogen. Fehler können sein: Begin Transaction Datenbankstatus Rollback Transaction Updates Abbildung 15. Eine Transaktion, bei der ein Fehler zum Abbruch der Transaktion führt v Ein Befehl der Transaktion kann nicht ausgeführt werden (z.B. Konto existiert nicht). v Fehler bei der Ausführung (z.B. Rechnerabsturz). Transaktionen haben ACID-Eigenschaften: Atomicity Entweder alle Aktionen oder keine Aktion der Transaktion werden ausgeführt (Commit Transaction oder Rollback Transaction). Consistency Die Datenbank geht von einem konsistenten Zustand in einen anderen konsistenten Zustand über. Kein Programm sieht inkonsistente Daten. Isolation Nur Ergebnisse von abgeschlossenen Transaktionen sind für andere Programme sichtbar. Durability Die Ergebnisse von abgeschlossenen Transaktionen gehen nicht verloren (auch bei Stromausfall, Programmabsturz ...). Ein Synonym dazu ist Persistenz: Die Daten sind persistent (nichtflüchtig) gespeichert. Im Hauptspeicher sind Daten in der Regel transient gespeichert, da sie bei einem Stromausfall verloren gehen. 26 Business Process Management und Workflow-Technologie Verteilte Transaktionen Two Phase Commit Wenn wir bei dem Beispiel einer Geldüberweisung annehmen, daß die beiden Konten bei verschiedenen Banken sind und die Überweisung Transaktionseigenschaften haben soll (eine Geldtransaktion) besteht das Problem, daß zwei Datenbanksysteme entweder beide die Transaktion committen oder beide aborten. Vor allem das Commit kann dann keine einfache Aktion wie das Setzen eines Flags in einem Update-Record sein. Als Lösung des Problems wurde hier das Konzept der verteilten Transaktion eingeführt. Application Resource Manager 1 Transaction Coordinator Resource Manager 2 Abbildung 16. Die Beteiligten einer verteilten Transaktion Abbildung 17. Die Statusübergänge beim Transaction Coordinator Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 27 Init in: vote request out: vote commit in: vote request out: abort Ready in: global abort Abort in: global commit Commit Abbildung 18. Die Statusübergänge beim Resource Manager Anmerkungen zu verteilten Transaktionen 1. Die interessanteste Frage bei verteilten Transaktionen ist, wie ein Commit zustandekommt unter Einhaltung der ACID-Eigenschaften. 2. Das Verhalten im Fehlerfall (z.B. unterbrochene Kommunikation) ist hier nicht dargestellt. 3. Oft ist der Transaction Coordinator gleichzeitig ein Resource Manager. 4. Verteilte Transaktionen können hierarchisch organisiert sein, indem ein Resource Manager gleichzeitig als Transaction Coordinator weitere Resource Manager kontrolliert. 5. Verteilte Transaktionen werden nach meinem Kenntnisstand vor allem bei einer engen Koppelung der beteiligten Programme innerhalb einer Organisation eingesetzt. Bei einer Kommunikation zwischen gleichberectigten Organisationen wird diese Aufgabe oft durch spezielle Protokolle übernommen, wo z.B. auch ein neutraler dritter Beteiligter eine Notar-ähnliche Rolle haben kann (z.B. SWIFT-Netzwerk zur weltweiten Kommunikation zwischen Banken. SWIFT: Society for Worldwide Interbank Financial Telecommunication). Messages und Queues Bei einer verteilten Anwendung muß dafür gesorgt werden, daß die Kommunikation zwischen den Komponenten im praktischen Einsatz verläßlich arbeitet. Dies kann durch persistente Messages geschehen, welches in den Grundzügen hier vorgestellt werden soll. Messages Ähnlich wie bei einer E-Mail wird hier eine Kommunikation asynchron ausgeführt. Das heißt, der Empfänger muß beim Abschicken der Message nicht unbedingt erreichbar sein. Das Messaging-System sorgt daür, daß der Empfänger die Message dann bekommt, wenn er erreichbar ist. persistent, non-persistent Messages Bei persistent im Gegensatz zu non-persistentMessages sorgt das System darür, daß unter allen Umständen die Messages zum Ziel kommen. Dies soll auch dann der Fall sein, wenn Sender und Empfänger zu beliebigen Zeitpunkten ausfallen. Queues Messages werden in Queues gespeichert, entweder beim Sender, wenn der Empfänger gerade nicht erreichbar ist, oder dann beim Empfänger. Eine 28 Business Process Management und Workflow-Technologie Queue kann man sich als eine Datenbanktabelle vorstellen, in die transaktionsorientiert Messages geschrieben und gelesen werden. Queue Manager Queue Manager verwalten die Queues und sorgen dafür, daß die Messages zuverlässig die Empfänger erreichen. Two Phase Commit, Verteilte Transaktionen Datenbanktransaktionen können mit dem Messaging-System so abgestimmt werden, daß auf der Senderseite zum Beispiel eine Message genau dann abgeschickt wird, wenn die beteiligte Datenbanktransaktion erfolgreich abgeschlossen wird (Commit). Es handelt sich hier um verteilte Transaktionen, die mit einem Two Phase Commit-Protokoll synchronisiert werden. Genauso kann der Empfänger auch so arbeiten, daß er eine Message aus einer Queue nur dann löscht (sie also verarbeitet), wenn andere Transaktionen erfolgreich sind. Überweisung von 100 € vom Konto A bei Bank X auf Konto B bei Bank Y: Begin Transaction; KontoA = KontoA - 100; Sende Message to Y: KontoB + 100; Commit Transaction; Was passiert beim Abbruch nach Senden der Message nach Commit ? v Änderung des Kontos A wird zurückgesetzt. v Message ist aber schon abgeschickt. Lösung sind verteilte Transaktionen. Datenbankstatus Begin Updates Transaction Commit Transaction MessagesStatus Abbildung 19. Verteilte Transaktion, an der ein Datenbanksystem und ein Messagingsystem teilnimmt. v Zu sendende Message wird lokal auf Platte gespeichert (persistente Message). v Bei Rollback wird Kontobewegung und Speicherung der Message rückgängig gemacht. v Nach Commit wird die Message sicher verschickt. v Außerdem gehen alle Requests und Replies über die Messaging-Komponente: Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 29 Begin Transaction; Empfange Überweisungsauftrag vom Client; Änderung des Saldos von KontoA; Sende Message an Bank Y: Änderung des Saldos von KontoB; Sende ok an Client; Commit Transaction; Trigger Queue Manager können Anwendungen starten, wenn Messages in bestimmte Queues geschickt werden. Cluster Queue Manager auf verschiedenen Systemen können zu Clustern zusammengefaßt werden. Messages können dann an den Cluster geschickt werden. Die Queue Manager sorgen dann dafür, daß diese Messages auf die einzelnen Systeme verteilt werden. Damit kann eine Anwendung auf mehrere Systeme aufgeteilt werden. Diese Aufteilung ist für Clients transparent, da diese den lediglich den Cluster adressieren müssen ohne sich darum zu sorgen, welches System gerade läuft und nicht zu stark ausgelastet ist. JMS (Java Message Services) Dieses Interface ist Bestandteil von Java 2EE und kann verwendet werden, um von Java aus mit Messages arbeiten zu können. Für weitere Informationen siehe http://java.sun.com/products/jms/tutorial/index.html. Message Queueing als Alternative zu einer verteilten Transaktion Als Zusammenfassung sollen die beiden Vorschläge gegenübergestellt werden. 1. Empfänger Sender Trn 1 Trn 3 Trn 2 Abbildung 20. Asynchrone verteilte Transaktionen mit Messaging 2. 30 Business Process Management und Workflow-Technologie Empfänger Sender Trn 1 Abbildung 21. Synchrone verteilte Transaktion Vergleich der beiden Lösungen: Tabelle 1. Asynchroner Fall: Synchroner Fall: Drei Transaktionen Eine Transaktion Wenn Fehler bei der 2. oder 3. Transaktion auftreten, muß darauf außerhalb der ersten Transaktion reagiert werden. Die erste Transaktion muß komponsiert werden Tritt ein Fehler bei der Übertragung auf oder beim Verarbeiten bei der Bank 2, kann die ganze Transaktion mit einem Rollback zurückgenommen werden. Kürzer laufende Transaktionen Länger laufende Transaktion Robustere Lösung Lösung kann aus administrativen oder technischen Gründen nicht möglich sein. Architektur eines Servers Serversysteme, die eine große Anzahl von Clients unterstützen, könnten wie folgt strukturiert sein: 1. Limitierungen: Server Logon Requests/ Replies Logoff ein Client Zeit Abbildung 22. Pro Client ein Prozeß Speicher Würde jeder dieser Prozesse 10MB Speicher für Daten benötigen, müßte Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 31 das Betriebssysten bei 1000 Clients mindestens10GB an Daten (im Hauptspeicher und im Paging Space auf einer Festplatte) verwalten. Anzahl Prozesse Bei 1000 Clients müßte das Betriebssystem 1000 Prozess verwalten. Anzahl Kontrollstrukturen Kontrollstrukturen für offene Files, Datenbankverbindungen, Netzwerkverbindungen müßten verwaltet werden. Prozessschwitch Mit jedem Request muß ein Prozessor auf den laufenden Prozeß wechseln. 2. Server Request/ Reply Zeit Abbildung 23. Pro Clientrequest ein Prozeß Die Kommunikation zwischen Client und Server ist oft ein Request/Response Protokoll. Für jeden Request wird ein Prozess gestartet, der nach der Erzeugung der Response wieder beendet wird. a. Oft müssen zu jeder Client-Verbindung Daten gespeichert werden (Welcher Benutzer arbeitet am Client, was waren frühere Bearbeitungsschritte...). Diese Daten werden oft Kontext einer Verbindung genannt (Session Context). Der Session Context muß in diesem Fall gespeichert werden und nach dem Start des Prozesses vor dem Bearbeiten des Requests geladen werden. Identifiziert wird der Session Kontext oft durch eine Referenz, die der Client mit seinen Requests immer mitschicken muß. Diese wird Correl(ation) ID genannt. b. Das Starten und Beenden eines Prozesses ist ein aufwändiger Schritt. Selbst wenn statt eines Prozesses nur ein Thread innerhalb eines existierenden Prozesses gestartet würde, wäre dies oft aufwändiger als die eigentliche Bearbeitung des Requests. 3. 32 Business Process Management und Workflow-Technologie Server Client 1 Request/ Reply Client 2 Request/ Reply Client x Request/ Reply Zeit Abbildung 24. Ein Prozess bearbeitet alle Clientrequests Diese Alternative hat im Vergleich zur letzten Alternative den Vorteil, daß im laufenden Betrieb kein Prozess oder Thread gestartet und gestoppt werden muß. Nachteil dieser Lösung ist die schlechte Ausnutzung der Systemresourcen, wenn beispielsweise Daten von der Festplatte geladen werden. Der Prozess und somit alle Clientrequests warten jetzt. 4. Hotpool von Prozessen zum Bearbeiten der Clientrequests Hier läuft eine Anzahl von Prozessen gleichzeitig, die eingehenden Clientrequests werden auf diese Prozesse verteilt. Das System (besonders wenn es mehrere Prozessoren hat) wird hier besser ausgelastet. Ein separater Prozess (Admin Server genannt) überwacht in regelmäßigen Abständen die Anzahl der Prozesse und startet gegebenenfalls Prozesse nach. Bis auf die erste Alternative sind die Serverprozesse stateless, d.h. sie speichern zwischen den Transaktionen keine Session-Information. Dinge wie 1. UserId, die logged on ist, 2. Client-Netzwerkadresse, 3. Augenblicklicher Stand, wenn z.B. größere Worklisten zu übertragen sind, müssen entweder im Client-Request mitgeschickt werden oder in der Datenbank gespeichert werden. Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 33 Ablauf einer Servertransaktion Schreiben der Reply-Message Lesen der Request-Message Begin Transaction Kontext setzen Commit Transaction Lesen und Schreiben in die Datenbank Abbildung 25. Ablauf einer Servertransaktion Bei dieser verteilten Transaktion sind das Messageging-System und das Datenbank-System die Teilnehmer der Transaktion. Falls die Transaktion abbricht, wird also weder eine Message von der Input-Queue entfernt, noch DB-Updates getätigt noch die Message auf die Output-Queue gestellt. Folgende Probleme sind hier zu beachten: Poisoned Message Gibt es einen Request, der den Server zum Absturz bringt, bricht die Transaktion ab. Als Konsequenz bleibt dieser Request in der Input-Queue. Eine andere Instanz des Servers wird diesen Request wieder bearbeiten und stürzt wieder ab... Um dies zu beenden, kann es bei eine Begrenzung geben, die dafür sorgt, daß diese Schleife zum Beispiel nur drei Mal durchlaufen wird. Danach wird dieser Request in eine spezielle Queue zur manuellen Bearbeitung gestellt. Vorsicht: Die Transaktion kann auch aus anderen Gründen abbrechen, zum Beispiel ein Deadlock. Reproduzierberer Fehler Wird im Laufe der Transaktion festgestellt, daß ein Fehler vorliegt, reproduzierbar ist und eigentlich kein Commit erlaubt, so ist ein Rollback auch nicht die beste Lösung, da die Request-Message eigentlich verarbeitet werden soll, und vielleicht eine Reply-Message erzeugt werden soll. Verkettete Transaktionen Das Szenario Abb. 20 auf Seite 30 kann als Beispiel einer verketteten Transaktion (Chained Transaction) gesehen werden. Kennzeichen einer verketteten Transaktion Die Elemente Die einzelnen Transaktionen einer verketteten Transaktion können als klassische Transaktionen verstanden werden mit der Einschränkung, daß die Konsistenz schwächer sein kann. 34 Business Process Management und Workflow-Technologie Die Verbindung der Elemente Das System muß eine sichere Ausführung der Teiltransaktionen garantieren. Welche Konsequenzen hätte es, wenn dies nicht garantiert wäre ? Atomicity, Isolation, Consistency einer verketteten Transaktion Für die verkettete Transaktion als ganzes gilt nicht mehr: Atomicity, Isolation. Wenn keine verkettete Transaktion offen ist, ist das System wieder in einem konsistenten Zustand. Ausnahmebehandling, Kompensation Ausnahmebedingungen können dazu führen, daß frühere, bereits committete Transaktionen der Kette kompensiert werden müssen. Prozessnavigation als verkettete Transaktion Wir nehmen an, in einer Prozessinstanz wird eine Activity beendet und die Exit Condition ist wahr. Nachdem der Status der Activity selbst in der Datenbank geändert wurde, müssen alle ausgehenden Kontroll- und Datenkonnektoren verfolgt werden und der Status weiterer Objekte geändert werden. Falls die Bedingungen für Dead Path Elimination zutreffen, kann dieser Prozess rekursiv fortgesetzt werden. All diese Updates müßten in einer klassischen Transaktion ausgeführt werden mit einem hohen Risiko an Deadlocks. A C B D Abbildung 26. Zur Illustration der Navigation Alternativ dazu werden in einer ersten Transaktionen nur folgende Aktionen ausgeführt: 1. Statusupdate der Ausgangsaktivität. 2. Data Mapping entsprechend den ausgehenden Datenkonnektoren. 3. Für jeden ausgehenden Kontrollkonnektor schickt die Navigationsinstanz an sich selbst eine Message, damit der Status der Zielaktivität bearbeitet werden kann. Die verkettete Transaktion ist beendet, wenn die transitive Hülle der von der ersten Transaktion initiierten Transaktionen ausgeführt wurde. Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 35 Process Activity Transaktion 1 Transaktion 2 Transaktion 3 Transaktion 4 Abbildung 27. Transaktionsgrenzen bei der Navigation durch einen einfachen Prozess Businesstransaktionen Motivation, all-or-nothing Semantik für eine Gruppe von Activities in einem Prozess. Start Flug Hotel ok AND ok nicht ok ok nicht ok OR nicht ok Abbildung 28. Reisebuchung mit Konsistenzbedingung als Workflow Compensation Spheres In dem oben eingeführten Prozessmodell sind Flug und Hotel zwei Activities, die unabhängig voneinander ausgeführt werden. Wird die Activity nicht ok erreicht, kann es notwendig sein, eine dieser Activities zurückzusetzen. Dies kann explizit mit Hilfe von Compensation Activities modelliert werden: 36 Business Process Management und Workflow-Technologie Start Flug Hotel ok nicht ok ok AND ok nicht ok OR nicht ok Flug nicht ok Hotel nicht ok Flug’ Hotel’ Abbildung 29. Kompensation explizit modelliert Start Flug nicht ok Hotel Flug’ Hotel’ ok oder Kompensation Abbildung 30. Kompensation implizit durch Compensation Sphere Umfang der Compensation Sphere Die Compensation Sphere kann einen Teil oder den ganzen Prozess umfassen. Modellierung Jeder Activity kann eine Compensation Activity zugeordnet werden oder Mode Durch die Anwendung getriggert kann die Prozessinstanz vom normalen Mode in den Compensation Mode wechseln. Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 37 Compensation Processing Die Compensation Activities werden in umgekehrter Reihenfolge der ursprünglichen Navigation asugeführt. Vergleich von Compensation Spheres mit ACID-Transaktionen 1. Lang laufende Transaktionen 2. Konsistenz wird durch Kompensation erreicht 3. Die Transaktion ist Foreward Recoverable 4. Isolation und Atomicity sind nicht erfüllt. Atomic Spheres Wenn ein Prozess nur aus automatischen Activities besteht, könnte der Prozess auch in einer Transaktion (Atomic Sphere) ausgeführt werden. Im Einzelnen: Die Activities des Prozesses haben keine eigenen Transaktionsgrenzen Die Activities könnten an einer verteilten Transaktion partizipieren. Subprozesse übernehmen die Transaktion Wie Program Activities dürfen auch Process Activities keine eigenen Transaktion definieren. Ersatzlösung für verteilte Transaktionen Wir nehmen an, ein Service stehe lediglich als Program Activity zur Verfügung. Wie erreichen wir die Eigenschaftetn Atomicity und Durability ? Status der Activity Ready Running Finished Zeit Start Ende Programm läuft Abbildung 31. Aufruf eines Programms ohne Transaktionssicherheit Wenn die Nachricht der Beendigung der Activity nicht beim Workflow-System ankommt, soll dann die Activity noch einmal gestartet werden (at least once-Semantik) oder gleich weiternavigiert werden (at most once-Semantik) ? Block Activity Abbildung 32. Sicherer Aufruf einer Program Activity 38 Business Process Management und Workflow-Technologie Kennzeichen der Lösung: Activity Expiration Ein Timeout ist definiert, der die maximale Laufzeit der Activity begrenzt. Block Exit Condition Wenn die Activity expired ist, wird der Block erneut gestartet. Erst wenn die Activity erfolgreiche beendet wurde, wird weiternavigiert. Activity ist idempotent Wenn die Activity Daten verändert, kann z.B. mit Sequenznummern erreicht werden, daß die Activity für einen Prozess nicht mehrfach ausgeführt wird. Web-basierte Architekturen Einfache Client-Server Architekturen werden als Two-Tier bezeichnet (Tier 1: Client, Tier 2: Server), wenn der Server aus einer Maschine besteht. Verbindungen zu anderen Servern Serveranwendung DB System Clients Abbildung 33. Two-Tier Client-Server Konfiguration Es ist sinnvoll, die Serverfunktionen auf meherere Maschinen zu verteilen. Dies ergibt eine 4–tier Konfiguration: 1. Web-Browser alsClient 2. Ein Applicationserver für die Darstellungssicht (Server-side Execution). 3. Die Workflow-Engine und weitere Programme (Backend-Application). 4. Der Datenbankserver. Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 39 Datenbankserver Workflow-Engine Applicationserver Verbindungen zu anderen Servern Clients Abbildung 34. 4 Tier Client-Server Konfiguration Wesentliche Eigenschaften dieser Lösung: 1. Kein Installationsaufwand bei den Clients 2. Ausfallsicherheit und Skalierbarkeit im Tier 2 und 3 durch ″Blech″. D.h. mehrere Maschinen teilen sich die gleichen Aufgaben. 3. Nur das Datenbanksystem muß ausfallsicher sein. Safe Applications Safe Applications bietet eine exactly once Semantik beim Starten einer Anwendung vom Workflow-Server aus. beschreibt eine Technik, mit der eine Anwendung von einem Workflow—Server gestartet wird nach einem der folgenden Muster: 1. Die Anwendung läuft innerhalb der Servertransaktion. 2. Die Anwendung wird über Message Queuing eingebunden. Aufgaben 1. Der Audit Trail kann in die Datenbank geschrieben werden, der Trace dagegen in ein einfaches ASCII-File. Überlegen Sie sich, welchen Vorteil es hat, wenn der Audit Trail in die Datenbank geschrieben wird gegenüber dem Schreiben in ein File. Unter anderem können Sie folgende Aspekte betrachten: a. Transaktionen b. Sind Audit-Trail Daten strukturiert oder haben Sie eher ein freies Format ? 40 Business Process Management und Workflow-Technologie 2. 3. 4. 5. 6. c. Arten eines möglichen Zugriffs auf die Audit-Trail Daten, wie z.B. 1. Alle Aktionen einer Person in den letzten zwei Wochen. 2. Welche Aktionen wurden bei einer bestimmten Prozessinstanz ausgeführt ? 3. Wie lange hat im Durchschnitt die Ausführung einer bestimmten Activity gedauert ? In dem Kapitel über asynchrone verteilte Transaktionen wurde das Beispiel von drei Transaktionen gegeben, zwei lokalen, die jeweils das Datenbanksystem und das Messaging-System umfassen und einer, in der die Übertragung der Message abgewickelt wird (Abb. 20 auf Seite 30). Kann es sein, daß das Commit der zweiten Transaktion vor dem Commit der ersten Transaktion stattfindet ? Begründen Sie Ihre Antwort. Wir haben verschiedene Möglichkeiten kennengelernt, wie die Architektur eines Serverprogramms aussehen kann, um den Anforderungen gerecht zu werden. Nennen Sie drei Anforderungen an ein Serverprogramm, die hier relevant sind. Die Koppelung einer Servertransaktion mit einem Messaging-System haben wir als Beispiel einer verteilten Transaktion kennengelernt. Betrachen Sie den Rollback dieser Transaktion genauer beim Beispiel einer Poisoned Message. Gelten die ACID-Eigenschaften für diese verteilte Transaktion im Detail ? Ein Batchprogramm führe nacheinander eine Reihe von Transaktionen aus. Überlegen Sie sich, unter welchen Voraussetzungen man hier von verketteten Transaktionen sprechen kann. Nehmen Sie an, aus einer Atomic Sphere heraus wird eine Activity aufgerufen, die in einer separaten Transaktion ausgeführt wird, die mit Abschluß der Activity ein Commit macht. a. Schildern Sie ein Szenario, bei dem dies zu Problemen führen kann. b. Wie könnte dieses Problem umgangen werden ? Kapitel 4. Services und Techniken, die von einem Workflow-System verwendet werden 41 42 Business Process Management und Workflow-Technologie Kapitel 5. Von 1-tier zu n-tier Systemen client presentation layer application logic layer resource managment layer Abbildung 35. Die Komponenten einer Anwendung © Copyright IBM Corp. 2001,2005 43 Klassische Großrechnersysteme Haben sich aus den Batch-Systemen in den 60er und 70er Jahren zu client presentation layer application logic layer resource managment layer 1-tier information system Abbildung 36. Die Struktur eines 1-tier Systems Online-Systemen hin entwickelt. Kennzeichen Dumb Terminals Im allgemeinen Zeichenbasierte Terminals, wenig attraktiv für Benutzer. Zwar haben die Terminals etwas Programmlogik (in nichtflüchtigem Speicher), dieser ist aber nicht anwendungsspezifisch. Daher keine Software-Lifecycle-Kosten bei den Clients (Entwicklung, Installation, Maintenance von Software). Integrierte Programmlogik Alle Ebenen befinden sich auf einer Maschine, die Programme sind eng integriert, proprietäre Schnittstellen Hohe Effizienz und Stabilität Diese Systeme sind ausgereift und wegen den früheren beschränkten Resourcen sehr effizient programmiert. Änderungen schwierig bis unmöglich Monolithische Anwendungsprogramme haben oft eine hohe Komplexität. Außerdem gibt es oft Skillprobleme bei den verwendeten Tools und beim Anwendungsprogramm selbst. 44 Business Process Management und Workflow-Technologie Client-Server Systeme client presentation layer application logic layer resource managment layer server Abbildung 37. Die Struktur eines 2-tier Systems (Client-Server) Getrieben durch die Möglichkeiten der PCs: lokal ausgeführte Programme und ein attraktives User Interface entstanden Client-Server Systeme. Kennzeichen sind: v RPC, Client-Server Programmierung, der Client enthält den Code der Darstellungsschicht. Man spricht heute von einem Fat Client. v Um 1990 sehr populär als Leitbild einer Programmentwicklung, heute wird dies differenzierter betrachtet. v Startpunkt, bei der Serverentwicklung APIs statt Panels zu entwickeln. Probleme wurden unterschätzt: Skalierbarkeit Serverseitig wurden oft keine adäquaten Platformen gewählt. Skalierbarkeit wurde erreicht durch eine große Anzahl von Maschinen. Folge war ein hoher Maintenance-Aufwand und schwierige bis unmögliche Bereitstellung von zentralen Services. Software-Lifecycle-Kosten beim Client Software-Updates auf dem Client sind möglichst zu vermeiden oder setzen eine entsprechende Infrastruktur voraus. Neue Software-Releases des Servers sollten Backlevel Clients unterstützen. Tendenz zu Insellösungen Zusammen mit PCs und den 2–tier Systemen fand eine Abwertung der traditionellen IT-Strukturen in den Betrieben statt. IT-Entscheidungen wurden eher dezentral von den Fachabteilungen gefällt. Der Integrationsund Kompatibilitätsaspekt wurde zuerst vernachlässigt. Betrieb eines Fileservers:o 1. 1987 wurde ein Fileserver von einer Abteilung aufgebaut und betrieben (15 Mitarbeiter). Kapitel 5. Von 1-tier zu n-tier Systemen 45 2. 1993 wurde diese Aufgabe von der Hauptabteilung übernommen (100 Mitarbeiter). 3. Verfahrensanweisungen regeln immer genauer, wie der Fileserver zu betreiben ist: Benutzerverwaltung, Backup, Virenschutz. 4. 2001 übernimmt eine Serviceabteilung den Betrieb des Fileservers. 5. Eine zentrale LDAP-Directory ist möglich zur Benutzerverwaltung. Clients als Integrationsplattform client presentation layer application and integration logic layer application logic layer application logic layer resource managment layer server 1 resource managment layer server 2 Abbildung 38. Clients als Integrationsplattform Mögliche Fehlentwicklung: Integration auf der Clientseite von verschiedenen Servern. 46 Business Process Management und Workflow-Technologie Middleware client presentation layer application and integration logic layer middleware resource managment layer Abbildung 39. Middleware als Integrationsplattform Ausbau des Application-Logic-Layers zu einem Middleware-Layer als Integrationspunkt. Probleme sind fehlende Standards und die Beschränkung auf die Integration innerhalb einer Organisation. Insbesondere dürfen keine Firewalls zwischen den Komponenten existieren. Kapitel 5. Von 1-tier zu n-tier Systemen 47 Application Server client Web browser application server presentation layer application and integration logic layer middleware resource managment layer Abbildung 40. Thin clients und Application Server Ziel ist es, die Software-Lifecycle-Kosten beim Client und damit für das Gesamtsystem zu minimieren. Die Application Server entwickeln sich hin zu einer Integrationplattform. 48 Business Process Management und Workflow-Technologie Kapitel 6. Komponenten eines Workflow-Systems Das System kann nach zwei Kriterien analysiert werden: Komponenten Komponenten setzen sich aus Klassen in C++ oder Java mit iheren Methoden zusammen. In C++ ist eine Komponente üblicherweise ein Satz von Shared Libraries oder DLLs. Einige Komponenten werden in diesem Kapitel vorgestellt. Prozesse Im laufenden Betrieb besteht ein Workflow-System aus einer Reihe von Prozessen. Unter Prozeß wird hier ausgeführter Maschinencode verstanden, nicht Workflow-Prozeß. Beispiele sind: Execution Server oder FDL Import/Export. Während der Laufzeit eines Prozesses wird Code von verschiedenen Komponenten ausgeführt. Einige Prozesse des Workflow-Systems werden im nächsten Kapitel vorgestellt.. Kriterien für die Strukturierung des Codes: Vermeidung von Redundanz 1. über die verschiedenen Komponenten (Beispiel Syntax Checker) 2. über Plattformgrenzen (Die Server sind in C++ geschrieben: möglichst hoher Anteil an common code über die Plattformen.) 3. im Verarbeitungsfluß der Daten (Beispiel Messages, Datenbankinterface, Skripte zur Erstellung der Datenbank) Da immer mehr Teile in Java geschrieben sind, läßt sich nicht vermeiden, daß einige Komponenten in beiden Sprachen geschrieben wurden (Beispiel: Tracing). Isolierung von Interfaces durch Wrapper 1. um mit vertretbarem Aufwand andere Interfaces zu unterstützen 2. um allgemeine Interfaces zu spezialisieren für die Bedürfnisse des Produkts 3. zur Bereitstellung von Conveniance-Methoden Kernel Stellt Basisklassen zur Verfügung.Die Implementierung dieser Klassen kann durchaus plattform-spezifisch sein.Die Methoden und Variablen dieser Klassen, die public sind, sollten plattform-unabhängig sein. Eine Auswahl: Syntax Checker Testet Eingabewerte z.B. von UserIds, Paßwörtern, Namen auf Länge und gültige Zeichen. Assertion Handling Codiert wird nach dem Fail-Fast-Paradigma: Implizite Annahmen über Daten, die Input für Methoden sind, werden explizit durch Pre-Conditions geprüft. Konsistenzregeln am Ende einer Methode werden explizt durch Post-Conditions geprüft. Was passiert, wenn eine dieser Bedingungen verletzt ist: © Copyright IBM Corp. 2001,2005 49 1. 2. 3. 4. Abbruch des Programms Ausgabe der Sourcecodestelle des Fehlers Schreiben eines Traceeintrags Ausgabe des Callstacks Beispiel im Code: int Wert = 0; FMC_ASSERT( Wert != 0 ); Beispiel im Trace: THROW_INT, FmcAssertionException, Condition=*** Assertion failed in c:\V350\srd\fmctkstr.cxx(1724): Wert != 0 Tracing Wurde schon in einem früheren Kapitel vorgestellt. Profilezugriff Konfigurationsparameter des Systems werden je nach Plattform unterschiedlich gespeichert (Registry bei Windows, Files bei Unix, Data Sets bei zOS). Die Profileklasse verbirgt diese Details. Eine Liste der Konfigurationsvariablen ist definiert. Messages für Benutzer Alle Texte für Benutzer werden separat vom ausführbaren Code gehalten und werden in verschiedene Sprachen übersetzt. Es gibt Klassen, die dafür sorgen, daß die durch eine Zahl identifizierte Message formatiert (Parameterersetzung) und ausgegeben wird. Fehlermeldungen mit Erklärungen erscheinen auch in einem Buch (Messages and Codes). ID Handling Objekte, die bearbeitet werden, benötigen einen eindeutigen Namen. Es gibt hier zwei Ansätze: Namensvergabe durch den Benutzer Zum Beispiel die UserId einer Person wird vom Benutzer bei der Definition dieser Person vergeben. Namensvergabe durch das System Das System ermittelt einen eindeutigen Namen, hier OID (Object Identifier genannt). Vorteil: Kann eine kleine Schlüssellänge haben und dadurch schnellere Suche nach einem Objekt in der Datenbank. Wenn Objekte zusätzlich vom Benutzer vergebene eindeutige Namen haben, gibt es zwei Alternativen 1. Fremdschlüssel enthalten nur die OID. Dann ist bei Queries oft ein Join nötig. Beispiel: select Person.Name from Organization, Person where Organization.Name = ? and Person.OrgOID = Organization.OID 2. Fremdschlüssel enthalten OID und Name. Dies ergibt einfachere Queries wie select Name from Person where OrgName = ? Diese Lösung benötigt mehr Spalten und mehr Indexes. OID Handling OIDs sind binär und 16 Byte lang. Jedes Programm, welches persistente Objekte anlegt, reserviert zuerst einen Bereich von OIDs, die es verwenden kann. Die höchste vergebene OID ist persistent gespeichert 50 Business Process Management und Workflow-Technologie ID-Klassen Die IDs dienen zur Identifizierung von Objekten sowohl im Code als auch in der Datenbank. Dort sind die IDs Primary und Secondary Keys. Beispiel: ATID Activity Template ID, eine OID. BTID Block Template ID, eine OID. Zur Identifizierung von Blöck- und Prozesstemplates. BIID Block Instance ID, besteht aus einer OID und der BTID des entsprechenden Templates. AIID Activity Instance ID, besteht aus der laufenden Nummer in der Block Instance, der BIID und der ATID. Enthält auch Methoden zum Lesen und Schreiben bei Datenbankzugriffen und zur Serialisierung in Messages. C++ spezifische Kernelmethoden Diese Methoden hängen eng mit der Programmiersprache C++ zusammen. String-Klasse Enthält neben den Standard-String-Operationen auch Methoden zum Lesen und Schreiben bei Datenbankzugriffen, Methoden zum Verschlüsseln von Paßwörtern. Kann DBCS (Double Byte Character Sequence) verarbeiten. Codepage Conversion Einheitliche Benennung von gleichen oder fast gleichen Codepages über die verschiedenen Plattformen. Ermittlung der System-Codepage. Stringkonvertierung in zwei Schritten über Unicode. Strings sind im Programm in der Systemcodepage gespeichert. Eine Alternative wäre die Speicherung in Unicode (UTF-8 oder UTF-16, wie dies bei Java üblich ist). Streaming Klasse zur Serialisierung und Deserialisierung von Datenstrukturen in Messages und Datenbank. Werden diese Funktionen nicht selbst implementiert, (Beispiel Java) könnte sich daraus eine ungewünschte Releaseabhängigkeit ergeben (wenn die Serialisierung inkompatibel geändert würde). Verwaltung von Shared Libraries Methoden zum dynamischen Laden und Entladen von ausführbarem Code. Messagelayer Interface zum Message Queueing System: Fehlerbehandlung. Messages haben einen Messagetyp, der für die Aktion der Message steht, z.B. Start Activity. Für jeden Messagetyp ist folgendes definiert: 1. Quelle und Ziel der Message 2. Request/Reply Messages sind paarweise definiert. 3. Liste der Datenfelder der Message Für jedes Datenfeld einer Message sind folgende Attribute definiert: 1. Name 2. Typ 3. Maximale Länge Kapitel 6. Komponenten eines Workflow-Systems 51 4. Mögliche Anzahl; 0, 1, mehrfach Ein Codegenerator erzeugt C++ und Java Klassen mit den Interfaces zu Messages. Der generierte Code enthält die Methoden zur Serialisierung und Deserialisierung der Messages. Das Interface zur Datenbank Navigation Engine Staff Resolution TOM DBA Database Abbildung 41. Die Code-Ebenen beim Datenbankzugriff Verwendete Funktionen des Datenbanksystems Trigger, Constraints ... werden nicht verwendet. Die Integrität der Datenbank zu erhalten ist Aufgabe des Workflow-Systems. Es dürfen keine Updates in der Datenbank gemacht werden unter Umgehung des Workflow-Systems. Views ... sind definiert als Schnittstelle für Kunden: Selektiver Zugriff auf die Daten z.B. auf Audittrail-Tabelle: CREATE VIEW FMC.ACTSTART AS( SELECT CREATED, ASSOCIATED_OBJECT AS ACTID FROM FMC.AUDIT_TRAIL A1 WHERE EVENT IN (21007,21022) AND ACTIVITY_TYPE = 21100) Der Grund zur Verwendung der Views ist eine Abkoppelung des Interfaces für Kunden vom intern verwendeten Datenbankschema. Authorisierung Datenbanken haben ein Authorisierungskonzept. Verschiedene Personen können unterschiedliche Rechte haben beim Zugriff auf die Datenbank. Das Workflowsystem hat ein eigenes Authorisierungskonzept. Die Datenbankzugriffe für alle Workflow-Benutzer erfolgen immer mit dem gleichen Datenbankbenutzer. 52 Business Process Management und Workflow-Technologie Die Rechte dieses Datenbankbenutzers werden von manchen Kunden auf ein Minimum eingeschränkt, es muß also dokumentiert sein, was dieser minimale Satz an Berechtigungen ist. Datenbankschema erweiterbar Das mit dem Workflow-System bei der Installation angelegte Datenbankschema ist fest mit der folgenden Ausnahme: Der Global Datacontainer von Prozessen: Abhängig von der Struktur des Global Datacontainers wird eine Tabelle beim Import des Processtemplates angelegt. Tablespaces der Datenbank Bei der physischen Organisation der Daten unterstützen wir die Kunden, damit sie über geeignete Schnittstellen bei der Konfiguration die Datenbank an ihre Bedürfnisse bezüglich Speicherplatz und Performance anpassen können. Migration bei Releasewechsel Von einem Workflow-Release zum nächsten können Schemaerweiterungen vorgenommen werden. Falls in diesem Zusammenhang Änderungen der Kundendaten notwendig ist, wird ein Programm zur Datenbankmigration mit dem neuen Release ausgeliefert. Database Access Layer Generierter C++ Code Dieser Layer besteht im Wesentlichen aus generiertem Code. Beispieldefinition einer Query: METHOD seluni2 UNIQUE SELECT * FROM FMC.PROCESS_INST WHERE NAME = ? AND STATE <> 128 ; Static SQL Es wird hier statisches SQL verwendet, d.h. alle Queries und Update SQL-Statements sind zum Compilezeitpunkt definiert. Einfache Zugriffsstruktur Typisch für die SQL-Calls des DBA ist das Lesen und Schreiben aus einer Tabelle. Isolation vom Datenbanksystem Der generierte Code liest dann die Felder alle in eine entsprechende Datenstruktur ein. Durch diesen Layer werden Unterschiede zwischen verschiedenen DB2–Versionen und Oracle vom restlichen Code abgeschirmt: z.B. Unterschiede bei der SQL-Syntax oder verschiedene Datentypen, die verwendet werden können. Da für Oracle und DB2 das Interface von DBA zu TOM gleich ist, reicht es aus, nur den DBA an die Datenbank anzupassen und die Shared Libraries für beide Datenbanktypen auszuliefern. Der restliche ausführbare Code ist gleich. Denormalisierung beim Lesen Kapitel 6. Komponenten eines Workflow-Systems 53 Beim Lesen von Instanzdaten werden zusätzlich auch die Templatedaten gelesen und auch in der Datenstruktur der Instanz gespeichert (Denormalisierung der Daten beim Lesen). Templatedaten dürfen grundsätzlich nicht geändert werden. TOM (Tiny Object Manager) Eingenschaften des TOM Lesen von A Ändern von A Schreiben von A TOM Datenbank Abbildung 42. Der Tiny Object Manager 1. Hält Objekte in seinem Cache innerhalb einer Transaktion. 2. Objekte werden im Cache nach ihrem Schlüssel verwaltet. 3. Updates vom Anwendungsprogramm finden direkt auf den Objekten des TOM statt. 4. Das Zurückschreiben von Records in die Datenbank geschieht nur explizit 5. Einfache Updates von mehreren Records werden direkt ausgeführt, z.B. UPDATE work_item SET state = ’inactive’ WHERE process_inst = ? AND owner != ? Dazu sollte der Cache geleert werden, damit keine veralteten Daten im Cache stehen (Cache Coherency). 6. Werden mehrere Objekte mit einer Query gelesen, wird dem Anwendungsprogramm eine Liste dieser Objekte zurückgegeben. Wenn das Anwendungsprogramm nur eine beschränkte Anzahl an Objekten bearbeiten will, sollte vom TOM nur diese Anzahl geholt werden. Staff Resolution Wie im ganzen Code wurde auch hier versucht, mit statischem SQL zu arbeiten. Da die Menge der möglichen Staff-Resolution Queries nicht begrenzt ist, wurde folgende Lösung gewählt: 54 Business Process Management und Workflow-Technologie Navigation engine Regression test Code generation Resolve BldDynQry PerformQry ExecDynQry ExecStatQry Abbildung 43. Aufrufhierarchie Staff Resolution Die Staff Resolution liefert im Wesentlichen eine Liste von Personen, die ein Workitem zu einer bestimmten Activity erhalten sollen. Dies kann im Prinzip durch eine Query erreicht werden. Beispiel 1: Gesucht sind alle anwesenden Mitglieder einer Abteilung. Ist keiner anwesend, sollen alle Mitglieder der Abteilung ermittelt werden. DECLARE PQERY1111 CURSOR FOR WITH FMC.BASIC(NAME, ABSENT) AS ( SELECT P.NAME, P.ABSENT FROM FMC.PERSON P WHERE P.ORGANIZATION = :org ), FMC.ABS_INDICATOR(EMPTY) AS ( VALUES ( CASE WHEN (SELECT 1 FROM (VALUES(1)) AS Q WHERE EXISTS (SELECT * FROM FMC.BASIC WHERE ABSENT = 0)) IS NOT NULL THEN 0 ELSE 1 END ) ) SELECT P.NAME, 0 FROM FMC.BASIC P, FMC.ABS_INDICATOR I WHERE I.EMPTY = P.ABSENT FOR READ ONLY; Erläuterungen 1. Es werden hier Common Table Expressions verwendet. 2. FMC.BASIC ermittelt alle Personen der Abteilung. Kapitel 6. Komponenten eines Workflow-Systems 55 3. Mit FMC.ABS_INDICATOR wird ermittelt, ob es anwesende Personen gibt. In diesem Fall hat er den Wert 0, sonst 1. 4. Abhängig von diesem Indikator sucht dann die Query entweder die anwesenden Personen oder die abwesenden Personen dieser Abteilung. Die gleiche Aufgabe wird jetzt mit einer allgemeineren Query gelöst: DECLARE PQERY5073 CURSOR FOR SELECT P.NAME, P.ABSENT FROM FMC.PERSON P WHERE P.ORGANIZATION = :org FOR READ ONLY; Hier liefert die Query alle Mitglieder der Abteilung. Danach muß noch im C++ Code durch die Liste durchgegangen werden um entweder alle abwesenden oder alle anwesenden Personen zu löschen. Beispiel 2: Wie oben werden die Mitglieder einer Abteilung gesucht. Ist eine Person abwesend, soll ihr Vertreter ausgewählt werden, wenn sie anwesend ist. DECLARE PQERY1110 CURSOR FOR WITH FMC.BASIC(OID) AS ( SELECT P.OID FROM FMC.PERSON P WHERE P.ORGANIZATION = :org ), FMC.NORMAL(NAME, ASSIGNMENT_TYPE) AS ( SELECT P.NAME, 0 FROM FMC.PERSON P WHERE P.ABSENT = 0 AND P.OID IN (SELECT OID FROM FMC.BASIC) ), FMC.SUBSTITUTE(NAME, ASSIGNMENT_TYPE) AS ( SELECT DISTINCT P.NAME, 1 FROM FMC.PERSON P, FMC.PERSON P2 WHERE P2.ABSENT = 1 AND P2.SUBSTITUTE_OID IS NOT NULL AND P.OID = P2.SUBSTITUTE_OID AND P.ABSENT = 0 AND P2.OID IN (SELECT OID FROM FMC.BASIC) ) SELECT * FROM FMC.NORMAL UNION ALL SELECT * FROM FMC.SUBSTITUTE WHERE NAME NOT IN (SELECT NAME FROM FMC.NORMAL) FOR READ ONLY; Mit etwas C++ Code wird diese Aufgabe mit der folgenden Query erledigt: DECLARE PQERY5074 CURSOR FOR SELECT P.NAME, P.ABSENT, P.SUBSTITUTE, FMCS.ABSENT FROM FMC.PERSON P LEFT OUTER JOIN FMC.PERSON FMCS ON P.SUBSTITUTE_OID = FMCS.OID WHERE P.ORGANIZATION = :org FOR READ ONLY; Die Ergebnisliste wird wie folgt bestimmt:: 1. Von jedem gelesenen Record wird die Person ausgewählt, wenn sie anwesend ist. Ist sie abwesend und ist ihr Vertreter anwesend, wird der Vertreter ausgewählt. 2. Die so erhaltene Liste wird sortiert. 56 Business Process Management und Workflow-Technologie 3. Mehrfache Records der gleichen Person werden aus der Liste gelöscht. Server Framework Das Serverframework kann als Betriebssystem eines Servers bezeichnet werden. Aufgaben: 1. Initialisierung und Beenden des Servers. 2. Fangen und korrektes Verarbeiten von Exceptions, die vom Server geworfen wurden. 3. Weiterleiten der Message in eine Hold Queue, wenn sie nicht verarbeitet werden kann. 4. Die Main-Message-Loop: Transaktionsbeginn, Lesen einer Message, Bearbeiten und Abschluß der Transaktion. 5. Spezielle Anpassungen an das Betriebssystem bei z/OS. FDL Parser, Verifier Ausschnitt aus einer FDL-Definition eines Prozesses: PROCESS ’CreditRequest’ ( ’PersonInfo’, ’Default Data Structure’ ) DESCRIPTION ’Credit request’ PROMPT_AT_PROCESS_START NO AUTONOMY WINDOW ZOOM_FACTOR 100 WINDOW PAPERSIZE WIDTH 2970 HEIGHT 2100 WINDOW SHOW ALL CONNECTORS WINDOW SHOW TRANSITION_CONDITIONS SOURCE 1 XPOS -918 YPOS 433 PROGRAM_ACTIVITY ’AssessRisk’ ( ’CreditInfo’, ’CreditInfo’ ) DESCRIPTION ’Credit request for %CredReq.FirstName% %CredReq.LastName%’ START MANUAL WHEN AT_LEAST_ONE CONNECTOR TRUE EXIT AUTOMATIC LAYOUT XPOS -232 YPOS 177 NAME_POSITION XPOS -232 YPOS 102 DONE_BY STARTER_OF_ACTIVITY ’CollectCreditInformation’ PROGRAM ’NAssessCreditRisk’ END ’AssessRisk’ ... CONTROL FROM ’AssessRisk’ TO ’AcceptCredit’ WHEN ’CreditAmount<100000 AND RiskFactor="L"’ XPOS 188 YPOS 146 ... DATA FROM SOURCE 1 TO ’CollectCreditInformation’ MAP ’_STRUCT’ TO ’_STRUCT’ ... END ’CreditRequest’ Die FDL Parser bestehen aus zwei Teilen: Parser-Frontend Das Parser-Frontend für C++ ist mit einem YACC- (yet another compiler compiler) ähnlichen Tool geschrieben, für Java wurde JavaCC verwendet. Das Frontend baut einen Parsertree im Speicher auf. Syntaktische und semantische Fehler sollten möglichst bei diesem Schritt erkannt werden. Parser-Backend Der Parsetree wird vom Backend bearbeitet. Kapitel 6. Komponenten eines Workflow-Systems 57 Beispielsweise haben Runtime-Import und Buildtime-Import ein gemeinsames Frontend, aber verschiedene Backends. Regression Test Schon bei der Entwicklung von größeren Komponenten sind Tests zu schreiben, die sicherstellen, daß Szenarien korrekt bearbeitet werden. Kennzeichen: Produktstabilität Die Hauptaufgabe von Regressiontests ist, zu gewährleisten, daß neu eingebaute Funktionen oder Korrekturen nicht unerwünschte Nebeneffekte haben. Der Regression Test läuft automatisch ab. Validierung Die Ergebnisse werden entweder mit einem früheren, als korrekt identifiziertem Ergebnis verglichen oder auf auch eine andere Weise bestimmt und dann verglichen. Fehlerursachen Falls Differenzen auftreten, ist die Analyse oft sehr aufwändig. Mögliche Ursachen sind: Setupproblem beim Testcase, korrekt geänderter Code, liefert etwas andere Ergebnisse, neu eingebauter Fehler im Code. Aufsetzpunkt Speziell am Anfang eines Entwicklungsprojektes ist es sinnvoll, über spezielle Interfaces eine Komponente zu testen. Zum Beispiel kann dann ein Workflow-Server ohne das Message-Queueing-Interface getestet werden. Später sollten dann eher die offiziellen Schnittstellen beim Test verwendet werden, um praxisnähere Bedingungen zu haben. 58 Business Process Management und Workflow-Technologie Kapitel 7. Prozesse eines Workflow-Systems Außer dem Client API, welches multi-threaded betrieben werden kann, sind die Prozesse hier single-threaded. Folgende Kriterien wurden bei der Aufteilung der Funktionen verwendet: Trennung der Verarbeitung der Client-Requests von anderen Aufgaben Die Hauptlast eines Workflow-Systems sind Client-Requests. Durch diese Trennung läßt sich das System besser kontrollieren. Andere Transaktionen, die lange laufen, behindern dadurch nicht kurze Transaktionen, die vom gleichen Server zu bearbeiten wären. Sonderaufgaben müssen oft zentral für die ganze Installation ausgeführt werden. Für diese Aufgaben speziell geschriebene Programme können dies besser kontrollieren. Fehlertoleranz Fehler sollten zwar gemeldet werden, das System sollte aber nach Möglichkeit robust sein. Verschiedene Workflow-Installationen sinnvoll unterstützen Speziell bei größeren Kunden gibt es Systeme zum Modellieren, Testen und für die Produktion. Administration Server Watchdog Überwacht und steuert die anderen Server des Systems, gibt Auskunft über den Zustand des Systems. Session Handling Da eine Kommunikation mit dem Administration Server nur in einer gültigen Session möglich ist, und der Administration Server auch allein laufen sollte, wird das Session Handling für das gesamte Workflow-System vom Administration Server ausgeführt. Logging Es gibt verschiedene Ziele für Log-Messages: Administration Client, Datenbanktabellen, Files. Die Log-Messages werden an den Administration Server geschickt, der sie dann weiterverteilt. Hold-Quere Handling Messages, deren Backout-Count überschritten wurden, werden in die Hold-Queue geschickt. Der Administration Server ermöglicht die Verwaltung dieser Messages (Löschen, Wiederausführung, Lesen der Messages). Administration Client Stellt das Userinterface des Administration Servers dar: 1. Auskunft, welche Server gerade laufen. 2. Manuelles Starten und Stoppen von Serverinstanzen. 3. Ist Konsole des Systems, es werden Ereignisse des Systems wie z.B. Fehlersituationenen angezeigt. © Copyright IBM Corp. 2001,2005 59 Navigation, Execution Server Bearbeitet die Client Requests (Außer Logon/Logoff und Administration Tasks). Ist Quelle und Ziel der Messages von verketteten Transaktionen. Abbildung 44. Vereinfachtes Statusübergangsdiagramm von Activities Falls Memory Leaks auftreten, kann der Server nach einer festgelegten Anzahl von Transaktionen stoppen. Der Administration Server startet in diesem Fall eine neue Serverinstanz. Anlegen und Löschen von Process Instances kann auf Zeiten verlegt werden, bei denen das System weniger belastet ist. Program Execution Server Startet die Programmaktivitäten für das Workflow-System. Mögliche Invokationmechanismen: CICS, IMS Transaktionen Aufruf als Safe Application, das heißt als verkettete Transaktion. Ausführbares Programm Keine Transaktionssicherheit Java Programm, Shared Library Keine Transaktionssicherheit. Wichtige Optionen: 1. Fenced Mode: in separatem Prozess für eine größere Robustheit. 2. Keep Loaded: die Library wird im Speicher für eine bestimmte Zeit gehalten, damit nicht mit jedem Programmaufruf die Library erneut geladen werden muß. 60 Business Process Management und Workflow-Technologie Scheduling Server Es gibt zeitgesteuerte Ereignisse wie Notification (Mitteilung, wenn eine Activity zu lange in Bearbeitung ist) oder Expiration (Weiternavigation nach einer bestimmten Zeit). Diese Ereignisse werden in einer Tabelle gesammelt. Der Scheduling Server ermittelt regelmäßig die Ereignisse, die in der Vergangenheit liegen. Für jedes Ereignis wird eine Message an den Execution Server geschickt, der dann die notwendigen Aktionen ausführt. Cleanup Server Das Löschen von Prozessen läuft in drei Schritten ab: 1. Der Cleanup Server ermittelt die Prozesse, die gelöscht werden sollen. Dem Execution Server wird eine Liste dieser Prozesse geschickt. Das Löschen eines Prozesses kann auch explizit über ein API angestoßen werden. 2. Der Execution Server identifiziert alle Records, die gelöscht werden sollen und markiert sie als Deleted. 3. Der Cleanup Server löscht alle Records, die im Status Deleted sind. Workflow Client API Die eigentliche Benutzerschnittstelle. Existiert in zwei Formen: Abbildung 45. Die Architektur des Client APIs Java API Ist komplett in Java geschrieben. C-API Ist in C++ geschrieben, Das C-API ist auch Basis folgender APIs: C++, Cobol, COM/DCOM/ActiveX. Das Java API basierte in früheren Releases auch auf dem C-API (über JNI, Java Native Interface). Kapitel 7. Prozesse eines Workflow-Systems 61 Das Client API stellt folgende Funktionen zur Verfügung: Prozessnavigation Starten von Prozessen und Programmen Prozessadministration Status des Prozesses, Verändern des Prozessstatuses. Listen Basis zur Anzeige von Worklisten. Container API Zum Zugriff auf Containerfelder von einem Programm aus (wenn Invocation nicht über XML geht). Web Client Siehe auch Kapitel über Web-basierte Anwendungen oben. Der Web Client setzt auf das Java API auf. Die Darstellungssicht ist über JSP (Java Server Pages) programmiert. Session Handling geschieht über Cookies im Browser und die Services des Application Servers. Staff Administration API Um Personen, Organisationen und Rollen mit einer Kundenanwendung verwalten zu können, gibt es das Staff Administration API. Es gab drei Alternativen beim Entwurf dieses APIs: 1. Erweiterung des Client APIs um entsprechende Klassen und Methoden. 2. Staff Administration API basiert auf Datenbank-Client. 3. Kein API, sondern Freigabe der SQL-Schnittstelle. Die zweite Alternative wurde gewählt. Abbildung 46. Die Architektur des Staff Administration APIs LDAP Bridge Zum Abgleich mit einer externen Directory wird die LDAP Bridge verwendet. 62 Business Process Management und Workflow-Technologie Abbildung 47. Architektur der LDAP Bridge Buildtime Modellierungskomponente Workload Management Plattformen für geschäftskritische Anwendungen bieten ein Workload Management an. Hier werden Ziele für Durchsatz, Antwortzeiten und Prioritäten definiert. Workload Management steuert das System dann so, daß diese Ziele möglichst erreicht werden. Bei dem Workflow-System wurde dies auf z/OS umgesetzt. Aufgaben des Administration Servers werden hier von Workload Management übernommen. Aufgaben 1. Der Schedulingserver hat einen Konfigurationsparameter: die Zeit, die zwischen zwei Queries zum Ermitteln der aktuellen Ereignisse liegt. a. Welche Kriterien sind relevant bei der Frage, wie lang dieses Intervall sein sollte ? b. Welche andere Lösungen wären möglich, um diesen Konflikt zu entschärfen ? 2. Für diese Aufgabe betrachten wir im Detail, was im Execution Server abläuft, wenn ein Workitem im Zustand Ready selektiert wird und dadurch die assoziierte Activity gestartet wird. Wir nehmen an, diese Transaktion läuft wie folgt ab: Der Client-Request enthält neben der Aktion Start Workitem die Id des Workitems. Der Reihe nach werden folgende Records gelesen, um ihre Stati zu ändern: Als erstes wird der Workitem-Record gelesen um daraus auch die Activity zu ermittlen. Diese wird dann in einem zweiten Schritt gelesen. Zuletzt werden dann die restlichen Kapitel 7. Prozesse eines Workflow-Systems 63 Workitems dieser Activity gelesen. Das eigene Workitem und die Activity werden in den Status Running und alle anderen Workitems in den Zustand Disabled gesetzt. a. Überlegen Sie sich, welches Problem auftreten kann, wenn quasi gleichzeitig zwei verschiedene Workitems einer Activity gestartet werden. b. Überlegen Sie sich eine Lösung des Problems.. Hinweis: Datenbankrecords können auch ohne Setzen eines Locks (uncommitted read) gelesen werden. 64 Business Process Management und Workflow-Technologie Kapitel 8. Middleware: Standards und Produkte Dieses Kapitel beschreibt Ansätze, verteilte Anwendungen zu integrieren. Das Spektrum der erhältlichen Produkte ist diffus. Große Komplexität, keine oder verschiedene Standards, Überschneidungen beim Funktionsumfang sind üblich. RPC (Remote Procedure Call) RPC ist eine einfache Interaktion zwischen zwei Systemen. Kennzeichen: v Synchroner Aufruf. v Überwindung von Plattformgrenzen. v Darstellung des RPCs als lokaler Funktionsaufruf für den Anwendungsprogrammierer. v Verwendung einer IDL (Interface Definition Language). v Anzahl der RPCs zwischen den Partnern sollte in einer Session minmiert werden. v Referenzen auf Objekte im RPC müssen für beide Partner sinnvoll sein. v Authorisierung, Sicherheit Erweiterungen Dynamic Binding Erweitert die Möglichkeiten, wie ein Client den Service des Servers findet. Möglichkeiten sind hier: 1. Static Binding, also zum Compile-Zeitpunkt. 2. Binding by Reference, also durch einen Konfigurationsparameter. 3. Binding by Lookup, also durch Suchen in einer Service Registry. 4. Service Composition, bei der die Syntax und Semantik der Services erst aus der Service Registry ermittelt werden. TRPC (Transaktionaler RPC) Damit kann ein RPC an einer vereilten Transaktion mit 2 Phase Commit teilnehmen. Asynchroner RPC, persistente Messages Beim asynchronen RPC blockiert der Client nicht bei dem Aufruf bis zum Empfang der Antwort. Wird die feste Bindung zwischen Request und Reply aufgegeben, handelt es sich um ein Message-orientiertes Kommunikationssystem. TP-Monitore (Transaction Processing) Umfang eines TP-Monitors RPC IDL Compiler, Runtime Environment für RPC. TRPC Die Programmiersprache unterstützt Transaktionen. Ein Transaktionsmanager mit den Funktionen Logging, Recovery, Schnittstellen für Kundenerweiterugen (z.B. Audit Trail mit kundenspezifischen Daten). © Copyright IBM Corp. 2001,2005 65 System Administration Installation, Überwachen, Starten, Stoppen von Services, Workload Management. Interfaces zu Resource Managern Andere Komponenten wie z.B. Datenbanken sind integriert in den TP-Monitor. Transaktionssicherheit kann durch verteilte Transaktionen gewährleistet sein. Object Broker Als Beispiel sei hier CORBA (Common Object Request Broker Architecture) vorgestellt. Weiterer Vertreter ist COM+ (Component Object Model) von Microsoft. CORBA wurde Anfang der 1990–Jahre von der OMG (Object Managment Group) spezifiziert. Es gab viele CORBA-Implementierungen und Anwendungen, die darauf basierten. Mit Java, Application Server und Web Services hat CORBA viel an Aufmerksamkeit eingebüßt. Kennzeichen von CORBA RPC für Objekte Wendet das objektorientierte Paradigma auf RPC an: Vererbung und Polymorphie. Ein weiteres objektorientiertes Paradigma, Information Hiding, das heißt Zugriff auf Daten nur über definierte Interfaces ergibt sich schon aus den Umständen eines RPCs. Dynamic Service Invocation Wenn ein Service in CORBA zur Verfügung steht, kann sein Interface in CORBA beschrieben sein, sodaß Clients, dies dynamisch ermitteln können. Die Beschreibung umfaßt die Syntax der Services, aber nicht die Semantik (Bedeutung) und auch nicht zeitliche oder inhaltliche Abhängigkeiten zwischen den Services. Außer für administrative Zwecke (Service Directory) hat dies keine weite Verbreitung gefunden. Objekt Monitore als Weiterentwicklung von TP-Monitoren. Message Queueing Losere Koppelung von Anwendungen als bei RPC Message Queueing Produkte sind nicht so breit angelegt wie TP Monitore (keine IDL). Das Leitbild ist hier, aus verschiedenen Komponenten eine Lösung zu bauen. Message Broker Erweiterug von Message Queuing als Integrationsplattform, Kennzeichen 66 Business Process Management und Workflow-Technologie Message Transformation Tools werden bereitgestellt, zu transformieren, beispielsweise XML Messages in dem Umfang, wie es XSLT (XML Stylesheet Language Transformation) bietet. Adapter Sind Interfaces zu Produkten wie Datenbanken, E-Mail-Systemen, Application Servern, damit eine Integration mit diesen Produkten möglichst einfach wird. Publish Subscribe Ist ein Kommunikationsmodell zwischen einem Server und vielen Clients: Der Server liefert Daten, z.B. Aktienkurse und die Clients können sich für Kategorien registrieren z.B. die Kurse von bestimmten Firmen, die sie dann zugeschickt bekommen. Web Services Nach dem W3C (World Wide Web Consortium) ist ein Web Service a software application identified by a URL, whose interfaces and bindings are capable of being defined, described and discovered as XML artifacts. A Web Service supports direct interactions with other software agents using XML-based messages exchanged via Internet-based protocols. Probleme bei der B2B Integration Mit klassischer Middleware könnten auch Unternehmen miteinander verbunden werden. Dem spricht entgegen: Zentralisierte Administration Software, die unternehmsweite Services zur Verfügung stellt, sollte aus Kosten- und Effizienzgründen möglichst zentral administriert werden. Dies ist unpassend, wenn unabhängige Unternehmen miteinander kommunizieren. Information Hiding Soll beispielsweise ein Workflow zwischen Unternehmen definiert werden, so wird unterschieden zwischen der Interaktion zwischen den Firmen und dem internen Workflow innerhalb des Unternehmens. Ersteres muß zwischen den Unternehmen definiert sein, letzteres darf und soll nicht publik sein. Firewalls schränken mögliche Protokolle ein Bei B2B müssen Firewalls überwunden werden. Typischerweise werden hier HTTP (Hyper Text Transfer Protocol) und SMTP (Simple Mail Transfer Protocol) verwendet. Standardisierung Es besteht die Erwartung, daß B2B in einem ähnlichen Stadium ist wie das Internet vor der Einführung des WWW mit den Standards HTTP und HTML. Verwendete Protokolle bei Web Services SOAP (ursprünglich: Simple Object Access Protocol) SOAP ist ein durch das W3C definierter Standard. SOAP ist das Basisprotokoll der bei Web Serivices verwendeten Messages. SOAP spezifiziert folgendes: Kapitel 8. Middleware: Standards und Produkte 67 Message Format Beschreibt, wie Daten in XML-Messages einzupacken ist: Ein SOAP Header SOAP Envelope SOAP Header Header Block SOAP Body Body Block Abbildung 48. Struktur einer SOAP Message ist optinonal, während ein SOAP Body vorhanden sein muß. Attribute der Message können im SOAP Header gespeidhert werden (z.B. Informationen zu einem TRPC). RPC Konventionen Beschreibt, wie SOAP Messages für RPCs zu verwenden sind. Regeln zur Verarbeitgung von SOAP Messages Beschreibt, welche XML Elemente einer SOAP Message zu lesen sind und was der Empfänger zu tun hat, wenn er die SOAP Message nicht verarbeiten kann. SOAP Bindings Beschreibt, wie SOAP Messages über HTTP und SMTP zu verschicken sind. Üblicherweise wird HTTP eher bei einer RPC-ähnlichen Interaktion verwendet, während SMTP ein asynchrones Protokoll ist. WSDL (Web Service Definition Language) WSDL ist ein durch das W3C definierter Standard. Ist quasi die IDL bei Web Services. Beschreibt folgende Aspekte eines Web Services: InterfaceBindings Beschreibt, welche Attribute in der Message verwendet werden können, und wie sie codiert sind. Definiert auch das verwendete Protokoll wie HTTP oder SMTP. Ports Damit wird ein InterfaceBinding einer Netzwerkadresse zugeordnet. Services Ist eine logische Gruppierung von Ports. Stellt beispielsweise eine Anwendung mehrere Ports zur Verfügung, können diese zu einem Service zusammengefaßt werden. 68 Business Process Management und Workflow-Technologie Bei vorhandene Services, die über einen Adapter als Web Service zur Verfügung gestellt werden, sollte WSDL aus den existierenden Beschreibungen des Interfaces generiert werden. Eine vorhandene WSDL sollte verwendet werden können, um Server- oder Clientstub zu generieren. UDDI (Universial Description Discovery and Integration) UDDI ist ein von OASIS definierter Standard. UDDI definiert Registries, die vorhandene Web Services katalogisieren. Die UDDI stellt Daten zur Verfügung, die zum Designzeitpunkt oder zur Laufzeit einer Anwendung gelesen werden können, um Web Services zu finden und um Daten über diese Web Services zu ermitteln. BPEL (BPEL4WS: Business Process Execution Language for Web Services) BPEL hat verschiedene Aspekte: Service Composition Ein Business Prozeß, der zwischen Partnern abläuft, beinhaltet oft den Austausch von mehreren Messages, die nach bestimmten Regeln zu erfolgen hat. Prozeßbeschreibung BPEL kann wie die FDL verwendet werden, um ein Process Template zu definieren. J2EE J2EE ist eine Middleware-Platform von Sun. Die Weiterentwicklung von J2EE wird durch den JCP (Java Community Process) gesteuert,, in dem Java-Interessenten eingebunden sind. Basierend auf Java RMI (dem CORBA-Protokoll IIOP) stellt J2EE entfernte Methodenaufrufe zur Verfügung. Services werden in folgenden Containern zur Verfügung gestellt: EJB-Container Die Anwendungslogik läuft als Enterprise JavaBeans im Applicationserver. Servlet-Container Vor allem die Darstellungsschickt läuft als Servlet im Webserver. Application-Client-Container Java Clients können in diesem Container laufen. Applet-Container Dieser Code kann als Plugin in einem HTML-Browser laufen. .Net .Net ist eine von Microsoft entwickelte und kontrollierte Middleware-Plattform. Basis von .Net ist CLR, die Common Language Runtime. Die von CLR unterstützen Sprachen werden in MSIL (Microsoft Intermediate Language) umgewandelt, der vor der Ausführung in Maschinencode übersetzt werden kann (vergleichbar dem Byte-Code bei Java). Kapitel 8. Middleware: Standards und Produkte 69 .Net stellt vier teilweise inkompatible Kommunikationstechnologien zur Verfügung: ASP.Net Active Server Pages für Webanwendungen. Steht auch als Webservice zur Verfügung. .Net Remoting TCP-basierende entfernte Methodenaufrufe, die Kommunikationsinfrastruktur von .Net. DCOM Distributed Component Object Model, entfernte Methodenaufrufe, nicht auf CLR basierend. MS Message Queue Queuing-System für Enterprise Server. Workflow Begann mit Office Automation, Workflow als Bestandteil von Imaging Systemen. Bei solchen Systemen wird die eingehende Post einer Verwaltung eingescannt und dann papierlos weiterverarbeitet. Vertikale Standards Typisch für die Umsetzung einer Kommunikations- oder Datenverarbeitungsaufgabe ist die Verwendung von Ebenen (XML, HTTP, TCP, IP, Ethernet, Darstellungsschicht, Message Queuing, Datenbanken). Ein anderer Ansatz wird bei den folgenden Standards gewählt: UN/EDIFACT United Nations Directories for Electronic Data Interchange for Administration, Commerce and Transport. Wird beispielsweise zwischen Autoherstellern und Zulieferern eingesetzt. SWIFT Die Society for Worldwide Interbank Financial Telecommunication betreibt ein Netz zum Austausch von Finanznachrichten zwischen Banken mit der von Banken geforderten Sicherheit und Verläßlichkeit. Ähnliche Standards sind RosettaNet, xCBL (XML Common Business Library) von CommerceOne, ebXML (Electronic Business Using eXtensible Markup Language). Hier werden Messagetypen (Syntax und Semantik) für konkrete Anwendungsfälle definiert (z.B. Bestellung) im B2B (Business to Business) Fall. Weiter werden Protokollstacks und z.B. die zeitliche Abfolge von einem Messageaustausch definiert. Aufgaben 1. Vergleichen Sie ein Workflow-System mit einem TP-Monitor. Betrachten Sie folgende Aspekte: a. Dem Kunden zur Verfügung stehende Funktionsumfang b. Welche dieser Funktionen sind Bestandteil des Workflow-Systems oder des TP-Monitors, welche Funktionen werden von anderen Produkten bereitgestellt ? 70 Business Process Management und Workflow-Technologie Kapitel 9. Übungsaufgaben 1. Aufgabe In einem Workflow Prozess gebe es unter anderem zwei Activities A, B, die nacheinander auszuführen sind. Dieses Paar von Activities ist mehrfach zu durchlaufen bis eine Abbruchbedingung erfüllt ist. a. Skizzieren Sie, mit welchen Konstrukten dies zu modellieren ist. b. Wie wird die Abbruchbedingung spezifiziert ? 2. Aufgabe 3. 4. 5. 6. 7. Erläutern Sie, warum man im Zusammenhang mit Message Queuing von einer asynchronen Kommunikation spricht. Aufgabe Im Folgenden gehen wir von einer Einprozessorenmaschine aus. Ein Mikroprozessor mit der Taktgeschwindigkeit von 1 GHz führe im Durchschnitt einen Maschinenbefehl pro Takt aus. Werden Daten von der Festplatte gelesen, so benötige dies 10 ms bis die Daten im Hauptspeicher stehen. a. Wieviele Maschinenbefehle kann dieser Prozessor ausführen, bis angeforderte Daten von der Festplatte in den Hauptspeicher geladen sind ? b. Verwenden Sie diese Ergebnis, um zu begründen, warum es sinnvoll sein kann, ein Serverprogramm mehrfach zu starten, sodaß davon mehrere Prozesse quasiparallel laufen. Aufgabe Erläutern Sie, warum bei den ACID-Eigenschaften die Consistency-Eigenschaft als Voraussetzung die Isolation-Eigenschaft hat. Sehen Sie weitere Abhängigkeiten zwischen den ACID-Eigenschaften ? Aufgabe Warum ist es sinnvoll, für Process Instances und Process Templates zwei Datenbanktabellen in der Runtime-Datenbank eines Workflow-Systems vorzusehen und nicht die Daten gemeinsam in einer Tabelle zu speichern ? Aufgabe Workflow-Systeme unterstützen die Trennung von Anwendungslogik und Prozesslogik. a. Erläutern Sie diesen Satz. b. Was ist der Nutzen einer Trennung von Anwendungslogik und Prozesslogik ? c. Was könnten Nachteile des Einsatzes von Workflow-Systemem sein ? Aufgabe Warum sind in einem typischen Workflow-System die Mitarbeiter, die mit diesem System arbeiten und ihre Beziehungen zueinander in dem Workflow-System definiert ? © Copyright IBM Corp. 2001,2005 71 72 Business Process Management und Workflow-Technologie Index A I ACID siehe Atomicity, Consistency, Isolation, Durability Activity 3, 5 Atomicity 26 Atomicity, Consistency, Isolation, Durability 26 Audit Trail 11 Isolation Program 3 Activity 5 26 Q L Level einer Person Message Role 8 28 S Block Activity 5 N Navigation C Cluster von Queue Managern Consistency 26 Container 6 Control Connector 3 30 D Data Connector 4 Datenbanksystem 25 Dead Path Elimination Durability 26 8 R M B Queue 28 7 © Copyright IBM Corp. 2001,2005 Start Condition Substitute 9 7 T O Organization 7 8 P persistent 26 Person 8 Process Activity 5 Instance 3 Monitor 12 Template 3 Three-Tier Architektur Tracing 13 Transaction 25 transient 26 4 W Work Item 4 Worklist 4 73