Diplomarbeit Konzeption und prototypische Implementation einer

Werbung
Diplomarbeit
Konzeption und prototypische
Implementation einer Rich Internet
Application zur Modellierung von
Human(Workflow)-Geschäftsprozessen
vorgelegt von
Manfred Schuljak
Busdorfwall 14
33098 Paderborn
Matrikelnummer: 6014690
Prüfer:
Prof. Dr. Ludwig Nastansky
Prof. Dr. Gerd Szwillus
Betreuer:
Dr. Rolf Kremer
Fachgebiet Informatik
Fakultät für Elektrotechnik, Informatik und Mathematik
Universität Paderborn
Paderborn, 22. März 2010
Ich erkläre hiermit, dass ich die vorliegende Diplomarbeit selbstständig ohne Hilfe Dritter und ohne Benutzung anderer als der angegebenen Quellen
und Hilfsmittel verfasst habe. Alle den benutzten Quellen wörtlich oder
sinngemäß entnommenen Stellen sind als solche einzeln kenntlich gemacht.
Diese Arbeit ist bislang keiner anderen Prüfungsbehörde vorgelegt worden
und auch nicht veröffentlicht worden.
Paderborn, den 22. März 2010,
Inhaltsverzeichnis
1 Einleitung
2
1.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Aufgabenstellung und Zielgruppe . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2 Analyse
bestehender
visueller
Sprachen
zur
Modellierung
von
Geschäftsprozessen
5
2.1
Petrinetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1.1
Klassische Petri - Netze . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1.2
High Level Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.3
Petri-Netze Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2
UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3
BPMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Vergleich von BPMN und UML . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1
BPMN und UML-Aktivitätendiagramm . . . . . . . . . . . . . . . . 22
2.4.2
Anwendung der Notationen zur Geschäftsprozessmodellierung . . . 30
3 Abgrenzung bestehender Ausführungssprachen
3.1
32
BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.1
Dokumentaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2
Umgebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.3
BPEL4People . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.4
Beziehungen zu anderen Spezifikationen
. . . . . . . . . . . . . . . 36
INHALTSVERZEICHNIS
3.2
3.3
XPDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1
Conformance Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.2
Metamodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.3
Teilnehmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.4
Pools & Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.5
Aktivitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.6
Applikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4 Rich Internet Application Technologien
4.1
4.2
ii
42
Vergleich bestehender Rich Internet Application Technologien . . . . . . . 43
4.1.1
AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2
Adobe Flex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5 Kontept/Architektur des Business Process Modeler
50
5.1
Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2
Design und Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3
5.2.1
Grobentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.2
Feinentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6 Zusammenfassung und Ausblick
73
A Hinweise zur beigelegten CD
75
B Tabelle der Werkzeuge zur Geschäftsprozessmodellierung
76
Literaturverzeichnis
79
Abbildungsverzeichnis
2.1
Beispiel einer Transitionsschaltung in Petri-Netzen vgl. [Fro10] . . . . . . .
7
2.2
Beispiel eines simplen Arbeitsablaufs modelliert mit Petri-Netzen vgl. [Lau10]
8
2.3
Beispiele für WF-Netze-Operatoren vgl. [vdA] . . . . . . . . . . . . . . . . 10
2.4
Beispiel eines WF-Netzes mit Triggern vgl. [vdA] . . . . . . . . . . . . . . 10
2.5
Typen der Ereignisse. a) Startereignis b) Zwischenereignis c) Endereignis . 15
2.6
Aktivität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.7
Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.8
Sequenzfluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9
Nachrichtenfluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.10 Assoziation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11 Swimlanes. a) Pool b) Lane vgl. [pre10] . . . . . . . . . . . . . . . . . . . . 18
2.12 Beispiel eines Diagramms mit Pool vgl. [pre10] . . . . . . . . . . . . . . . . 18
2.13 Ein Prozess mit Lanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.14 Artefakte. a) Datenobjekt b) Gruppe c) Annotation . . . . . . . . . . . . . 19
2.15 Ein Prozess mit Datenobjekt, Gruppe und Annotation . . . . . . . . . . . 20
2.16 Sequenz - Geschäftsprozessdiagramm. vgl. [Whi06] . . . . . . . . . . . . . . 22
2.17 Sequenz - Aktivitätendiagramm. vgl. [Whi06] . . . . . . . . . . . . . . . . 23
2.18 Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 1. vgl. [Whi06] 23
2.19 Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 2. vgl. [Whi06] 24
2.20 Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 3. vgl. [Whi06] 24
2.21 Parallele Spaltung - Aktivitätendiagramm. vgl. [Whi06] . . . . . . . . . . . 25
ABBILDUNGSVERZEICHNIS
iv
2.22 Synchronisation - Geschäftsprozessdiagramm. Mechanismus 1. vgl. [Whi06]
26
2.23 Synchronisation - Geschäftsprozessdiagramm. Mechanismus 2. vgl. [Whi06]
26
2.24 Synchronisation - Aktivitätendiagramm. vgl. [Whi06] . . . . . . . . . . . . 27
2.25 Ausschließende Wahl - Geschäftsprozessdiagramm. vgl. [Whi06] . . . . . . 28
2.26 Ausschließende Wahl - Aktivitätendiagramm. vgl. [Whi06] . . . . . . . . . 28
2.27 Einfaches Mischen - Geschäftsprozessdiagramm. Variante 1. vgl. [Whi06] . 29
2.28 Einfaches Mischen - Geschäftsprozessdiagramm. Variante 2. vgl. [Whi06] . 29
2.29 Einfaches Mischen - Aktivitätendiagramm. vgl. [Whi06] . . . . . . . . . . . 30
3.1
Modellierung eines Geschäftsablaufs am Beispiel einer Bäckerei . . . . . . . 37
4.1
RIA-Architektur vgl. [Wal08] . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2
Einsatzbereich für RIA-Technologie vgl. [Wal08] . . . . . . . . . . . . . . . 44
5.1
Systemarchitektur: Externe Anforderungen . . . . . . . . . . . . . . . . . . 53
5.2
Überblick der Softwarearchitektur . . . . . . . . . . . . . . . . . . . . . . . 54
5.3
Benutzeroberfläche. Standardkomponenten. . . . . . . . . . . . . . . . . . . 57
5.4
Schnellzugangsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5
Akkordeon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.6
Uiaccordeon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.7
Lasso im Einsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.8
Lasso-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.9
Aktivitäten-Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.10 BPMNElement Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.11 Elemente der Klassenstufe 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.12 Elemente der Klassenstufe 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.13 Klassenhierarchie der BPMN-Elemente. . . . . . . . . . . . . . . . . . . . . 64
5.14 Abbildung der PAVONE-Prozessdefinitionsdatei auf einen Baum . . . . . . 66
5.15 Teilbaum für allgemeine Einstellungen . . . . . . . . . . . . . . . . . . . . 66
5.16 Aktivitäten-Teilbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
ABBILDUNGSVERZEICHNIS
1
5.17 Zustandsautomat bei Aktivierung und Verwendung des Lasso Elements . . 69
5.18 Geladener Geschäftsablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.19 allgemeine Einstellungen Dialog . . . . . . . . . . . . . . . . . . . . . . . . 70
5.20 Direkte Tastatureingabe auf einem Aktivitaten Element . . . . . . . . . . . 71
5.21 PAVONE ProcessModeler . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.22 Mögliches Einbindungsszenario des Modelers innerhalb der PAVONE Live
Umgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Kapitel 1
Einleitung
1.1
Motivation
Die Verwaltung von Arbeitsabläufen in einem Unternehmen oder einer Organisation ist
eine wichtige und komplexe Aufgabe, um erfolgreiche Betriebswirtschaft zu führen. Die
Anforderungen umfassen dabei sowohl unternehmensinterne als auch unternehmensübergreifende Prozesse. Ressourcen, Aktivitäten der Mitarbeiter, Zusammenarbeit mit Partnern und Kunden sind Gegenstand des Geschäftsmanagements und erfordern effektive
Methoden zur Gestaltung und Modellierung der unternehmerischen Tätigkeit.
Eine Hilfe dafür bieten Geschäftsprozessmodellierungswerkzeuge, die die Erzeugung und
Verwaltung der Prozessmodelle unter Beachtung der Spezialisierung der Organisation
ermöglichen. Der Markt von diesen Modellierungswerkzeugen hat sich in den letzten Jahren zunehmend weiterentwickelt und der Einsatz von diesen Werkzeugen erweist sich
dementsprechend für viele Unternehmen als eine Voraussetzung für eine sichere Planung
und Ausführung der Geschäftsprozesse.
Je nach der Zielstellung werden verschiedene Modellierungsansätze und Modellelemente
benötigt, was eine Varietät an Notationen - auch Modellierungssprachen - und Muster
der von den Herstellern entwickelten und vermarkteten Modellierungsansätze mit sich
bringt. Es steht somit eine Vielzahl von Modellierungswerkzeugen zur Verfügung, die
allerdings keinen einheitlichen Standard verwenden und darüber hinaus Erweiterungen
in den Notationen zulassen, um kundenindividuellen Anforderungen nachzukommen, was
die Anwendung dieser Produkte für verschiedene Benutzergruppen verkompliziert.
Es entsteht damit ein Bedarf an einer konsistenten und standardisierten Lösung des
Geschäftsprozessmanagements, welche in Form von Software für alle Benutzergruppen
einheitliche und intuitiv bedienbare Modellierungswerkzeuge zur Verfügung stellt. Zurzeit
1 Einleitung
3
hat sich neben den vielfältigen Formen der Notationen und Modellierungssprachen ein
neuer Standard durchgesetzt und wird bereits von vielen Anbietern unterstützt. Dieser
Standard wurde von der BPMI (Business Process Management Initiative) entwickelt und
wird als BPMN (Business Process Management Notation) bezeichnet. Das Ziel von BPMN
ist es, eine Notation zu liefern, die für alle an Prozessdesign und -implementierung beteiligten Personengruppen verständlich ist. In diesem Zusammenhang bietet ein auf BPMN
basiertes Tool eine benutzerfreundliche Modellierungsumgebung und gewährleistet zudem,
dass die Sprachen, die für die Ausführung der Geschäftsprozesse entwickelt wurden, solche wie BPEL (Business Process Execution Language), mit einer gemeinsamen Notation
visualisiert werden könnten.
Ein Vorteil für die Unternehmen, die Applikationen für den Betrieb ihres Geschäfts benötigen, kann im Einsatz des SaaS (Software as a Service)-Prinzips bestehen, bei welchem die
Instandhaltung von Applikationen vom Dienstanbieter übernommen wird. Bei diesem Modell mieten die Endnutzer die Software, in der Regel auf monatlicher Basis, und müssen
sie nicht kaufen. Damit erhalten die Kunden eine flexible und praktische Lösung, so dass
sie sich auf den Betrieb ihres Unternehmens konzentrieren können und sich nicht mit
dem Kauf und der Patch- und Update-Verwaltung von Software-Applikationen auseinandersetzen müssen. Dieser Trend ist eines der am schnellsten wachsenden Segmente der
IT-Industrie [DKKZ08].
Für die Darstellung und den Einsatz der SaaS-Produkte gibt es unterschiedliche Ansätze.
Neben dem statischen Export finden sich integrierte Webanwendungen, die jederzeit den
aktuellen Zustand der Modelle anzeigen und auch die Erzeugung und Verwaltung der
Prozessmodelle direkt im Browser möglich machen.
1.2
Aufgabenstellung und Zielgruppe
Das Ziel dieser Arbeit ist, gängige visuelle und Ausführungssprachen zur Modellierung
von Geschäftsprozessen zu analysieren und zu untersuchen, wie diese Konzepte für eine
Rich Internet Application (RIA) zur Modellierung von Human (Workflow)-Geschäftsprozessen angewendet werden können. Da die Modellierung mithilfe von visuellen Sprachen
erfolgt, die Ergebnisse der Modellierung aber maschinell ausführbar sein müssen, sind
dafür entsprechende Ausführungssprachen erforderlich. Es müssen deswegen verschiedene
am Markt existierende Ausführungsengines ermittelt und verglichen werden. Ein weiterer
Aspekt der Arbeit liegt in der Konzeption und prototypischen Umsetzung eines Werkzeugs zur Modellierung von Geschäftsprozessen, welches im Rahmen einer SaaS-Lösung
implementiert werden soll. Zu diesem Zweck werden vorhandene Technologien und Ent-
1 Einleitung
4
wicklungsframeworks zum Erstellen von Rich Internet Applications untersucht. Die Applikation soll vollständig im Webbrowser nutzbar sein, ohne eine Installation auf der lokalen
Festplatte durchführen zu müssen.
Zu der Zielgruppe gehören die Mitarbeiter der Geschäftsleitungsabteilungen, die die
Geschäftsprozesse entwerfen, verwalten und kontrollieren. Es wird dabei nicht vorausgezetzt, dass sie über fundierte Kenntnisse in der Implementierung der Technologie zur
Ausführung der Prozesse und über technisches Hintergrundwissen im informationstechnischen Bereich verfügen. Im Folgenden wird diese Gruppe als Fachanwender bezeichnet.
1.3
Aufbau der Arbeit
Zunächst wird im Kapitel 2 ein Überblick über die bestehenden visuellen Sprachen zur
Modellierung von Geschäftsprozessen gegeben. Es werden gängige Notationen untersucht
und miteinander verglichen. Das Ziel dieser Untersuchung ist es, einen Zusammenhang
zwischen der Aufgabenstellung und den dafür geeigneten Modellierungstechniken herzustellen. Im darauffolgenden Kapitel werden die Ausführungssprachen behandelt. Darin
werden die bestehenden Ausführungssprachen vorgestellt und deren detaillierte Analyse
beleuchtet. Kapitel 4 widmet sich den Rich Internet Application Technologien. Es wird
die Möglichkeit für den Einsatz der Geschäftsprozessmodellierung in Webanwendungen
aufgezeigt und die Entscheidung über die Wahl der in der vorliegenden Arbeit verwendeten RIA-Technologie begründet. Im Kapitel 5 werden das Konzept und die Architektur des in der Arbeit umgesetzten Business Process Modelers beschrieben und erklärt.
Das abschließende Kapitel fasst die Ergebnisse dieser Arbeit zusammen. Offen gebliebene Fragestellungen sowie Anregungen für weiterführende Arbeiten werden als Ausblick
behandelt.
Kapitel 2
Analyse bestehender visueller
Sprachen zur Modellierung von
Geschäftsprozessen
Geschäftsprozessmodellierung bedeutet, einen bestehenden Geschäftsprozess zu beschreiben und zu verstehen und mit den Ergebnissen der Geschäftsprozessmodellierung die
Geschäftsprozesse zu analysieren, zu verbessern und die Verbesserung umzusetzen.
Geschäftsprozessmodellierung ist keine neue Technik, es gibt bereits eine Vielzahl von Methoden und Techniken, um Prozesse zu beschreiben. Jede Modellierungssprache, welche
durch äußere Ereignisse gesteuerte Abläufe modellieren kann, eignet sich grundsätzlich zur
Modellierung von Arbeits- bzw. Geschäftsprozessen. Gebräuchlich sind UML-Aktivitätsdiagramme, möglich sind ferner Petrinetze und Flußdiagramme. Eine Übersicht der Standardnotationen zur Geschäftsprozessmodellierung bietet die Tabelle, die vom Fraunhofer
IAO in der Marktstudie zur Geschäftsprozessmanagementwerkzeugen entsprechend der
Angaben der Hersteller erstellt wurde und die im deutschsprachigen Raum angebotenen
Werkzeuge, die diese Notationen unterstützen, zeigt [DKKZ08]. Die Tabelle kann dem Anhang B dieser Arbeit entnommen werden. Die zahlreichen Modellierungssprachen sollen
die Geschäftsprozesse aus unterschiedlichen Blickwinkeln beleuchten und auf diese Weise
überschaubar bleiben, zusammengenommen aber ein Gesamtbild des Geschäftsprozesses
abgeben. Modelle richten sich nach Anforderungen und basieren auf Elementen der Modellierungssprachen. Der Sprachumfang dieser Sprachen ist dabei unabhängig von Programmiersprachen und Plattformen. Die errichteten Modelle sind somit ebenfalls unabhängig
von derartigen Technologien. Egal, welche Programmiersprachen und Plattformen in Zukunft wichtig sein werden - die Modelle bleiben gültig und müssen nicht an technische
Entwicklungen angepasst werden.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
6
Im Folgenden wird eine Abgrenzung bestehender Modellierungssprachen vorgestellt. Die
Auswahl der betrachteten Sprachen orientiert sich an der Entstehungszeit und der Bedeutung für das Prozessmanagement. So wurden Petrinetze als eine der ältesten formalen
Modellierungsmethoden, die UML als einer der in der Praxis am häufigsten eingesetzten
Modellierungsansätze und BPMN als der sich in den letzten Jahren durchgesetzte Standard zur Analyse genommen. Es werden die Charakteristika der Sprachen gegeben und
ihre Tauglichkeit zur Modellierung der Geschäftsprozesse diskutiert. Zum Schluß werden
BPMN und die Aktivitätsdiagramme von UML miteinander verglichen und die Unterschiede in der Verwendung der beiden Notationen aufgezeigt.
2.1
Petrinetze
Petri-Netze wurden durch Carl Adam Petri in den 1960er Jahren definiert [Bal93]. Hierbei
handelt es sich um eine mathematische formal definierte Methode, die ursprunglich fur die
Beschreibung, Analyse und Simulation von dynamischen Systemen eingesetzt wurde. Die
Petri-Netze erlauben es, dynamische und parallele Prozesse zu beschreiben, sowie Nebenlaufigkeiten oder das Zusammenwirken von Prozessen abzubilden [DKKZ08]. Nach wie
vor ist das Simulieren das zentrale Anwendungsfeld der Petri-Netze. Fur die Modellierung
von Geschaftsablaufen wurden die Petri-Netze erst später entdeckt.
2.1.1
Klassische Petri - Netze
Ein Petri-netz ist ein 6-Tupel (S,T,F,K,W,m0 )
• S, nichtleere Menge von Stellen S = {s1 , s2 , ..., sn }
• T, nichtleere Menge von Transitionen T = {t1 , t2 , ..., tn }
• F, nichtleere Menge der gerichteten Kanten F ⊆ (S x T) ∪ (T x S)
• K, Kapazitäten der Plätze, K : S → N ∪ {∞}
• - Kosten der Kanten, Gewichtsfunktion W: F → N
• m0 , Startmarkierung m0 : S → N
N - die Anzahl der Knoten
Eine Stelle S wird als ein Kreis, eine Transiton T als ein Rechteck dargestellt. Diese Elemente können miteinander mittels gerichteter Kanten verbunden werden. Untereinander
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
7
können jeweils nur eine Stelle mit einer Transition oder umgekehrt eine Transition mit
einer Stelle verbunden werden. Verbinden von gleichartigen Elementen ist nicht möglich.
Kanten, die von den Stellen zu einer Transition laufen, heißen Eingabestellen von T. Die
Stellen, zu denen von t aus Kanten führen, heißen Ausgabestellen von T. Die Kanten
können mit einem Gewicht belegt werden. Einer Stelle kann eine Kapazität zugewiesen
werden, welche einer maximal möglichen Anzahl der Markierungen, die sich zu einem Zeitpunkt innerhalb einer Stelle befinden können, entspricht. Die Startmarkierung m0 gibt
die Verteilung der Markierungen auf die Stellen im Anfangszustand an. Die Markierung
selbst wird als ein Punkt dargestellt. Eine Verteilung von Marken auf das Petri-Netz stellt
den aktuellen Zustand eines Petri-Netzes dar.
Ein sehr simpler Schaltungsschritt ist in der Abbildung 2.1 zu sehen. Die Transition T1
kann erst dann schalten, wenn mindestens zwei Markierungen an der Stelle S1 vorhanden
sind, weil die Schaltungsvoraussetzung durch die Kapazität der Verbindung w = 2 gegeben
ist. Nach dem Schaltungsschritt werden zwei Markierungen aus der Stelle S1 entfernt und
drei Markierungen (da Gewicht der Verbindung von T1 nach S2 w = 3 ist) der Stelle
S2 hinzugefügt. Danach ist kein Schaltvorgang in dem Petrinetz mehr möglich, da zum
einen die Schaltungsvoraussetzung (w=2) nicht erfüllt ist und zum anderen die Kapazität
der Stelle S2 (da K Maximum 3) erschöpft ist. Zur Analyse eines Petrinetzes wird ein so
w=3
w=2
T1
S1
w=3
w=2
S2
S2
T1
S2
Bild 2.1: Beispiel einer Transitionsschaltung in Petri-Netzen vgl. [Fro10]
genannter Erreichbarkeitsgraph erstellt und auf bestimmte Eigenschaften (Lebendigkeit,
Reversibilität etc.) untersucht.
Je nach Verwendungszweck werden den Stellen und Transitionen unterschiedliche Rollen
zugewiesen. Im Falle einer Workflow Anwendung entspricht einer Transition eine Aktivität und einer Stelle Anfangs- und Endbedingungen für die Ausführung einer Aktivität.
Markierungen repräsentieren Objekte des zu modellierenden Systems (Ressourcen, Personen, etc). Ein Beispiel einer simplen Workflow-Anwendung ist in der Abbildung 2.2 zu
sehen. Falls das Dokument vorhanden und ein Mitarbeiter bereit ist, kann die Dokumentbearbeitungsaktivität T1 erfolgen.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
8
Dokument
Vorhanden
Dokument wird vom
Mitarbeiter bearbeitet
Beginne
Bearbeitung
Beende
Bearbeitung
Mitarbeiter
bereit
Bild 2.2: Beispiel eines simplen Arbeitsablaufs modelliert mit Petri-Netzen vgl. [Lau10]
2.1.2
High Level Petri-Netze
Ein Versuch, reale Prozesse mittels der Petri-Netze zu modellieren, führt gewöhnlich auf
eine viel zu komplexe Darstellung des zu modellierenden Vorgangs. Des Weiteren wird
in der klassischen Petri-Netz-Notation die Modellierung von Datum und Zeit nicht unterstützt. Um diese Probleme zu lösen, wurden mehrere Erweiterungen des klassischen
Petri-Netze Modells eingeführt. Die drei Häufigsten sind: Farb-, Zeit- sowie Hierarchieerweiterungen. Ein Petri-Netz mit mindestens einer dieser Erweiterungen wird als High
Level Petri-Netz bezeichnet [vdA]. Im Folgenden werden diese Erweiterungen kurz informell beschrieben.
Farberweiterung
Wie bereits erwähnt, werden die Markierungen zur Modellierung von Ressourcen, Personen sowie weiteren Objekten verwendet. Dies führt zwangsläufig zur Notwendigkeit, die
Attribute dieser Objekte, wie zum Beispiel den Namen einer Person oder Inventarnummer einer Ressource, visuell darzustellen. Hierfür wird das klassische Modell um farbige
Markierungen erweitert [JK09]. Zu diesem Zweck wird ein Attribut einer bestimmten
Farbe zugewiesen. Bei der Schaltung einer Transition wird die Farbe der zu erzeugenden
Markierung anhand der Farben von konsumierten Markierungen berechnet.
Zeiterweiterung
Bei der Modellierung real vorhandener Systeme ist es notwendig, die Dauer sowie Verzögerungen zwischen den Abläufen zeitlich zu steuern. Das klassische Petri-Netz Modell kann
zu diesem Zweck auf unterschiedliche Art und Weise, wie zum Beispiel mittels der Asso-
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
9
ziation der Zeit mit Markierungen, Stellen und Transitionen, erweitert werden.
Hierarchieerweiterung
Die Erweiterung mit Zeit und Farbe erlaubt es bereits, Geschäftsabläufe auf eine effiziente
Weise zu modellieren. Jedoch neigt die Modellierung eines real vorhanden Systems zu
Unübersichtlichkeit und zu einer viel zu komplexen Darstellungsform. Um dieses Problem
zu lösen, wird ein so genanntes Subnetz-Konstrukt [vdA] eingeführt. Dieses Konstrukt
wird benutzt, um komplexe Prozesse zu strukturieren. Einerseits ist es möglich, einen
Prozess vereinfacht und übersichtlich darzustellen, ohne jedes einzelne Detail des Prozesses
zu betrachten, andererseits kann innerhalb des Subnetzes detailliert spezifiziert werden.
WorkFlow-Netz
Eine weitere Erweiterung für Petri-Netze ist das so genannte WorkFlow-Netz (kurz WFNetz). Diese Notation wurde an der Universität Eindhoven von Prof. Aals [vdA] mit dem
Ziel entwickelt, eine einfache Modellierung von Arbeitsabläufen zu ermöglichen. WF-Netz
genügt folgenden Bedingungen: WF-Netz verfügt über eine Eingabestelle (i) und eine
Ausgabestelle (o). Jede Aktivitätsdefinition muss auf dem Pfad zwischen i und o erreichbar
sein. Jede Aktivitätsdefinition muss mindestens einmal beim Durchlauf vom Startzustand
bis zum Endzustand ausgeführt werden.
WF-Netz Formale Definition: Ein Petri - Netz PN = (S,T,F,K,W,m0 ) ist ein WFNetz (WorkFlow Netz) wenn:
(i) PN besitzt zwei spezielle Stellen: i und 0. Die Stelle i ist die Quellstelle *i = 0. Die
Stelle 0 ist eine Zielstelle 0* =0;
(ii) Falls eine Transtion t* zu PN* hinzugefügt wird, welche die Stelle 0 mit der Stelle i
verbindet (i.e *t* = {0} und t* = {i}), dann ist das resultierende Petri-Netz strongly
connected.
WorkFlow Netz Operatoren: Um eine bessere Lesbarkeit zu gewährleisten, wird in
der WF-Netz Notation die Verwendung von booleschen Operatoren (AND, OR, XOR,
usw) unterstützt. Links in der Abbildung 2.3 ist die klassische Variante und rechts ein
Analogon in der WF-Netz Variante zu sehen.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
10
T1
OR-Split
T1
T2
T3
T1
XOR-Join
T1
T2
WF-Netz: Operatoren
Klassisches Petri-Netz
Bild 2.3: Beispiele für WF-Netze-Operatoren vgl. [vdA]
Trigger In WF-Netzen ist es möglich, den einzelnen Transitionen einen oder mehrere
Auslöser (Trigger) hinzuzufügen. Insgesamt existieren drei Triggerarten: externes Ereignis, Ressource als Auslöser und Zeitereignis. Eine Transition wird aktiviert, wenn eines
dieser Ereignisse eintritt. Dieses Konzept erlaubt die Arbeitsabläufe zu automatisieren.
Ein Beispiel eines solchen Ablaufs ist in der Abbildung 2.4 zu sehen.
T1
T2
T3
Bild 2.4: Beispiel eines WF-Netzes mit Triggern vgl. [vdA]
2.1.3
Petri-Netze Fazit
Petri-Netze sind ein mathematisch definiertes Konstrukt, dessen Stärke in der Parallelisierung und Simulation von Abläufen liegt. Es handelt sich jedoch um eine Notation,
die ursprünglich nicht zur Modellierung von Arbeitsabläufen entwickelt wurde. Zusätzliche Erweiterungen ermöglichen zwar insgesamt ein benutzerfreundliches Arbeiten, führen
aber in der Praxis auf viel zu komplexe und schwer leserliche Strukturen. Des Weiteren ist
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
11
die Petri-Netz Notation zu technisch und kann nur durch die Benutzer mit technischem
Hintergrund verstanden und verwendet werden.
2.2
UML
Die UML ist in ihrem Ursprung eine Notation zur Spezifikation, Konstruktion, Visualisierung und Dokumentation von Modellen für Softwaresysteme. [OWS+ 03] Die Geschäftsprozessmodellierung hat zunächst zu der Softwareentwicklung keine direkte Beziehung, dadurch aber, dass die Abläufe in einem Unternehmen zum großen Teil durch Software
unterstützt werden, entsteht ein Bezug der Geschäftsprozessmodellierung zur Softwareentwicklung. Damit ist die UML, obwohl sie in erster Linie zur Beschreibung objektorientierter Softwaremodelle dient, auch für die Modellierung von Geschäftsprozessen geeignet.
Den Vorteil, Geschäftsprozessmodellierung mit der UML auszuüben, bieten einheitliche
Beschreibungssprache, die Benutzung gleicher Werkzeuge und eine einheitliche Struktur
zur Ablage, Verwaltung und Dokumentation. Außerdem können die Anforderungen an
die Software besser nachvollzogen und im Kontext der Betriebswirtschaft wahrgenommen
werden.
Mit den UML-Aktivitätsdiagrammen werden Abläufe grafisch dargestellt und im Vergleich
zu der natürlichen Sprache, mit welcher gewöhnlich nur einfache Abläufe verständlich
beschrieben werden können, ermöglichen es die Aktivitätsdiagrammen, auch komplexe
Abläufe mit vielen Ausnahmen, Sprüngen und Wiederholungen noch übersichtlich und
verständlich darzustellen.
Als Modellierungssprache stellt die UML geometrische Formen zur Verfügung, mit denen
Softwaremodelle erstellt werden können. Die zusammengesetzten geometrischen Formen
ergeben Zeichnungen, die bestimmte Strukturen einer Software oder Abläufe in einer Software repräsentieren. In den Diagrammen werden unterschiedliche Aspekte der Software
hervorgehoben. Jedes Diagramm stellt demzufolge ein Modell dar, welches bestimmte
Aspekte der Software hervorhebt. Die Software wird durch Diagramme aus verschiedenen
Gesichtspunkten beschrieben.
Je nach dem Gesichtspunkt sind unterschiedliche geometrische Formen und Regeln zum
Zusammenstellen dieser Formen notwendig und die UML definiert 13 Diagrammtypen.
Die UML weist diese Diagrammtypen entweder den Strukturdiagrammen oder den Verhaltensdiagrammen zu. Die Strukturdiagramme sind Modelle einer Struktur und sind somit
statisch. Sie stellen Zusammenhänge in einer Software zu einem bestimmten Zeitpunkt
dar. Verhaltensdiagramme hingegen erklären Abläufe. Sie sind dynamisch und stellen Zusammenhänge im Zeitablauf dar.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
12
Folgende sechs Diagrammtypen werden zu den Strukturdiagrammen gezählt.
• Klassendiagramm: Das Klassendiagramm ist der wichtigste Diagrammtyp in der
UML. Damit werden Klassen beschrieben und Zusammenhänge zwischen Klassen
repräsentiert.
• Objektdiagramm: Mit diesem Diagrammtyp werden die während der Laufzeit zu einem bestimmten Zeitpunkt existierenden Objekte und deren Zusammenhänge dargestellt. Während Klassen im Laufe des Programms existieren, können Objekte
erstellt und zerstört werden. Das Objektdiagramm ist daher eine momentane Aufnahme, während das Klassendiagramm zeitlos ist.
• Komponentendiagramm: Diese Diagramme gehen auf das Konzept von Komponenten zurück, mit welchem Einheiten beschrieben werden, die die nächsthöhere Ebene
über den Klassen darstellen und in erster Linie über Schnittstellen beschrieben werden.
• Kompositionsstrukturdiagramm: Das Kompositionsstrukturdiagramm kann als Gegenstück zum Komponentendiagramm aufgefasst werden - es beschreibt die interne
Struktur von Kompositionen.
• Verteilungsdiagramm: Dieser Diagrammtyp ist insbesondere für verteilte Software
tauglich, wenn gezeigt werden muss, auf welchen Geräten welche Programme ausgeführt werden und wie diese Programme miteinander kommunizieren.
• Paketdiagramm: In diesem Diagramm werden Klassen zu Paketen gruppiert. Pakete
werden eingesetzt, um Klassen übersichtlich anzuordnen.
Zu den Verhaltensdiagrammen zählen folgende sieben Diagrammtypen.
• Use-Case-Diagramm: Dieser Diagrammtyp beschreibt, wie die zu modellierende
Software mit dem Anwender interagiert. Use-Case-Diagramme werden eingesetzt,
um Anforderungen an eine zu entwickelnde Software zu beschreiben.
• Aktivitätsdiagramm: Das Aktivitätsdiagramm ist das universale Diagramm in der
UML zur Beschreibung von Abläufen. Es beschreibt den Ablauf von Aktionen und
ist in seinen Darstellungsmöglichkeiten sehr flexibel.
• Zustandsautomat: Der Zustandsautomat beschreibt einen Ablauf nicht als Aneinanderreihung von Aktionen, sondern als Zustandswechsel.
• Sequenzdiagramm: Das Sequenzdiagramm beschreibt die Abläufe, die zwischen mehreren interagierenden Partnern stattfinden. Das können Klassen oder Objekte sein.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
13
• Kommunikationsdiagramm: Das Kommunikationsdiagramm ist eine Form des Sequenzdiagramms, wobei der Fokus nicht auf den Abläufen zwischen interagierenden
Partnern liegt, sondern auf den interagierenden Partnern selbst.
• Timing-Diagramm: Timing-Diagramme werden in den Fällen eingesetzt, wenn nicht
nur die Reihenfolge von Abläufen von Bedeutung ist, sondern auch Zeitangaben
wichtig sind. So wird im Timing-Diagramm beschrieben, nach wie vielen Sekunden
eine Aktion auf eine andere folgen muss.
• Interaktionsübersichtsdiagramm: Dieser Diagrammtyp vereint mehrere Verhaltensdiagramme, um deren Zusammenwirkung zu repräsentieren. Es können mehrere Aktivitäts- und Sequenzdiagramme in einem Interaktionsübersichtsdiagramm zusammengefügt werden, um Zusammenhänge zwischen den in verschiedenen Diagrammen
abgebildeten Abläufen darzustellen.
Unter diesen Diagrammtypen werden Diagramme für dynamisches Verhalten, solche wie UML-Aktivitätsdiagramme und Use-Case-Diagramme, häufig verwendet, um
Geschäftsprozesse zu modellieren.
Obwohl die UML eine flexible Notation ist, hat der Bereich Geschäftsprozessmodellierung
in der UML keinen besonderen Platz und wird nicht hinreichend unterstützt. Es sind auch
nicht alle Elemente enthalten, die für die Modellierung von Geschäftsprozessen notwendig
sind. Die in der UML enthaltenen Use-Cases bieten einen Ansatzpunkt, werden aber
meistens mit natürlicher Sprache beschrieben. Nach festgelegten formalen Regeln können
jedoch Erweiterungen vorgenommen werden. Dabei wird ein so genanntes UML-Profil
[BE] für Geschäftsprozessmodellierung genutzt.
Im Gegensatz zu der im Aktivitätsdiagramm vorgesehenen Komponente Aktivität hat ein
Prozess zusätzliche zu modellierende Merkmale [BE]. So hat ein Prozess ein oder mehrere
Ziele. Er verwendet spezifische Input-Objekte und analog dazu spezifische Output-Objekte
unterschiedlichen Typs. Er benötigt Ressourcen zur Durchführung von Aktivitäten und
besteht aus einer Anzahl Aktivitäten, die in Abhängigkeit von Ereignissen oder Bedingungen (Business Rules) in einer bestimmten Reihenfolge ausgeführt werden müssen. Er
betrifft mehr als eine Organisationseinheit und erzeugt einen erkennbaren Mehrwert für
den Kunden. Die Geschäftsprozessmodellierung bedingt damit die Einführung einer Reihe
zusätzlicher Konzepte wie z. B. Ziele, Ressourcen, Organisationseinheiten, die in UML in
dieser Form nicht vorhanden sind.
Sofern nur einfache Diagrammelemente wie Aktivitäten und Transitionen verwendet werden, sind solche Diagramme weitgehend allgemein verständlich. Bei Verwendung spezieller Konstrukte wie beispielsweise Signale, Objektknoten etc. sind hingegen grundlegende
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
14
UML-Kenntnisse notwendig. Somit ist die Verwendung von UML mehr in den Projekten
geeignet, wo technische Kräfte mit entsprechenden Kenntnissen eingesetzt sind.
2.3
BPMN
BPMN ist eine Abkürzung für Business Process Modeling Notation. Es ist ein neuer
Standard für die Modellierung von Geschäfts- und Web-Service-Prozessen, entwickelt von
BPMI - Business Process Management Initiative [Whi04a]. Das primäre Ziel von BPMN
ist es, eine Notation zu liefern, die für alle Fachanwender verständlich ist, beginnend mit
den Geschäftsanalytikern, die die ersten Skizzen der Prozesse entwerfen, bis zu den technischen Entwicklern, die die Technologie implementieren, welche diese Prozesse ausführen
wird, und, letztendlich, Fachanwendern, die diese Prozesse verwalten und kontrollieren
werden.
Das zweite wichtige Ziel war zu gewährleisten, dass Sprachen, die für die Ausführung
der Geschäftsprozesse entwickelt wurden, wie BPEL4WS (Business Process Execution
Language for Web Services) [ACD+ 03] und BPML (Business Process Modeling Language)
[Ark02], mit einer gemeinsamen Notation visualisiert werden konnten.
BPMN besteht aus einem Diagramm, genannt Business Process Diagram (BPM), welches als einfach zu benutzen und zu verstehen entworfen wurde, bietet aber die Möglichkeit, komplexe Geschäftsprozesse zu modellieren. Es basiert auf der Technik des Aufstellens von Flussdiagrammen, zugeschnitten für die Erzeugung von grafischen Modellen der
Geschäftsprozesshandlungen. Ein Modell des Geschäftsprozesses ist dementsprechend ein
Netzwerk von grafischen Objekten, die als Aktivitäten aufgefasst werden, und Flusssteuerungselementen, die die Abfolge ihrer Ausführung bestimmen.
Um den Ablauf eines Geschäftsprozesses zu modellieren, müssen Ereignisse modelliert
werden, um einen Prozess zu starten; die Prozesse, die ausgeführt werden und die Endergebnisse des Prozessablaufs. Geschäftsentscheidungen und Ablaufverzweigung werden
durch Gateways modelliert. Weiterhin kann ein Prozess Subprozesse enthalten, die grafisch mit einem anderen Business Process Diagram dargestellt werden können, verbunden
durch einen Hyperlink mit dem Prozesssymbol. Ist ein Prozess in Subprozesse nicht unterteilt, wird er als ein Task aufgefasst - ein Prozess der niedrigsten Ebene.
Die grafischen Elemente, die das Diagramm bilden, sind voneinander unterscheidbar und
verwenden die Formen, die den meisten Modellierern vertraut sind. So werden die Aktivitäten als Rechtecke und die Entscheidungen als Rauten dargestellt. Innerhalb der
Grundkategorien der Elemente können zusätzliche Variationen und Informationen hin-
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
15
zugefügt werden, um die Forderung nach der Komplexität aufrechtzuerhalten, ohne das
Aussehen des Diagramms dramatisch zu ändern. Es gibt auch spezielle Notationen, um
botschaftsbezogene Ereignisse und das Versenden der Botschaften zwischen den Organisationen zu beschreiben. [Whi04a] Die vier Grundkategorien der Elemente sind:
• Flussobjekte (Flow Objects)
• Verbindungsobjekte (Connecting Objects)
• Verantwortlichkeitsbereich (Swimlanes)
• Artefakte (Artifacts)
Bei der tieferen Geschäftsanalyse kann spezifiziert werden, “wer macht was”, indem die
Ereignisse und Prozesse in schattierte Bereichte, genannt Pools, platziert werden. Diese
Bereiche zeigen an, wer einen Prozess ausführt. Im weiteren kann ein Pool in Lanes aufgeteilt sein. Ein Pool stellt typischerweise eine Organisation dar und ein Lane eine Abteilung
in dieser Organisation.
Im Folgenden wird ein näherer Blick auf diese Elemente gegeben.
Flussobjekte
Ein Business Process Diagramm hat einen kleinen Satz von Kernelementen, den Flussobjekten, so dass die Modellierer keine große Anzahl von verschiedenen Formen zu erlernen
und zu erkennen haben.
• Ereignis Ein Ereignis wird durch einen Kreis dargestellt und bedeutet ein Geschehnis im Laufe eines Geschäftsprozesses. Die Ereignisse beeinflussen den Prozessablauf
und haben gewöhnlich eine Ursache (Trigger) oder eine Wirkung (Resultat). Ereignisse sind ungefüllte Kreise und erlauben interne Markierer zur Unterscheidung
verschiedener Trigger und Resultate. Es gibt drei Typen von Ereignissen, bezogen
auf den Zeitpunkt, wann sie den Ablauf beeinflussen: Start, Zwischenereignis und
Ende (Abbildung 2.5).
A)
B)
C)
Bild 2.5: Typen der Ereignisse. a) Startereignis b) Zwischenereignis c) Endereignis
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
16
• Aktivität Eine Aktivität wird durch ein Rechteck mit gerundeten Ecken repräsentiert und ist ein allgemeiner Ausdruck für den Arbeitsgang, der von einem Betrieb
ausgeführt wird. Eine Aktivität kann atomar oder nicht-atomar (zusammengesetzt)
sein. Die Typen der Aktivitäten sind Task und Sub-Prozess. Ein Sub-Prozess ist
ausgezeichnet durch ein kleines Plus-Zeichen im unteren Mittelteil der Form (Abbildung 2.6).
Bild 2.6: Aktivität
• Gateway Ein Gateway wird durch die Rautenform repräsentiert und zur Steuerung der Abzweigungen und Zusammenlaufen des Sequenzflusses (Abbildung 2.7)
benutzt. Es bestimmt somit traditionelle Entscheidungen sowie Gabelung, Vereinigung und Verbindung der Pfade. Interne Markierer deuten den Typ der Steuerung
des Verhaltens an.
Bild 2.7: Gateway
Verbindungsobjekte
Die Flussobjekte werden in einem Diagramm zusammen verbunden und erzeugen die
skelettartige Grundstruktur eines Geschäftsprozesses. Es gibt drei Verbindungsobjekte,
die diese Funktion gewährleisten. Es sind:
• Sequenzfluss Ein Sequenzfluss wird durch eine durchgezogene Linie mit solider
Pfeilspitze dargestellt und benutzt, um die Reihenfolge, mit welcher die Aktivitäten
in einem Prozess ausgeführt werden, zu zeigen (Abbildung 2.8).
Bild 2.8: Sequenzfluss
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
17
• Nachrichtenfluss Ein Nachrichtenfluss wird durch eine gestrichelte Linie mit einer
ungefüllten Pfeilspitze dargestellt und benutzt, um einen Nachrichtenfluss zwischen
zwei separaten Prozessteilnehmern (Geschäftsunternehmen oder Geschäftsrollen),
die die Nachrichten senden und erhalten, zu zeigen (Abbildung 2.9).
Bild 2.9: Nachrichtenfluss
• Assoziation Eine Assoziation wird durch eine gepunktete Linie mi einer Linienpfeilspitze dargestellt und benutzt, um Daten, Texte und andere Artefakten mit
Flussobjekten zu assoziieren. Assoziationen werden auch zum Anzeigen der Eingaben und Ausgaben der Aktivitäten verwendet (Abbildung 2.10).
Bild 2.10: Assoziation
Für die Modellierer, die eine niedriege Ebene der Präzision beim Erzeugen der Prozessmodelle für Dokumentation und Kommunikation erfordern, gewährleisten die Kernelemente
zusammen mit den Verbindungen die Möglichkeit, verständliche Diagramme leicht zu erzeugen.
Für die Modellierer, die eine höhere Ebene der Präzision beim Erzeugen der Prozessmodelle erfordern, die zum Gegenstand einer detaillierten Analyse oder vom Geschäftsprozessmanagementsystem geleitet werden, können zu den Kernelementen zusätzliche Details
hinzugefügt und durch interne Markierer angezeigt sein.
Swimlanes
Viele Methodologien der Prozessmodellierung verwenden den Konzept von Swimlanes als
einen Mechanismus zur Organisierung der Aktivitäten in separate visuelle Kategorien, um
verschiedene funktionale Fähigkeiten oder Zuständigkeiten zu erläutern [RO03]. BPMN
unterstützt Swimlanes mit zwei Grundkonstrukten. Die Typen der Swimlane-Objekten in
einem Geschäftsprozessdiagramm sind:
• Pool Ein Pool repräsentiert einen Teilnehmer in einem Prozess. Er tritt auch als
ein grafischer Container zur Aufteilung eines Satzes von Aktivitäten von anderen
Pools auf.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
18
• Lane Ein Lane ist eine Untergliederung innerhalb eines Pools und erstreckt sich
für die ganze Länge des Pools, entweder senkrecht oder waagerecht. Lanes werden
a)
Name
b)
Name
Name Name
verwendet, um die Aktivitäten zu organisieren und zu kategorisieren.
Bild 2.11: Swimlanes. a) Pool b) Lane vgl. [pre10]
Pools werden verwendet, wenn das Diagramm zwei separate Geschäftsunternehmen oder
Teilnehmer einschliesst und sie im Diagramm physikalisch getrennt sind. Die Aktivitäten
innerhalb der separaten Pools werden als eigenständige Prozesse betrachtet. Deshalb kann
ein Sequenzfluss die Grenzen eines Pools nicht durchqueren. Ein Nachrichtenfluss wird definiert als ein Mechanismus zum Anzeigen der Kommunikation zwischen zwei Teilnehmern
und muss deswegen Verbindungen zwischen zwei Pools (oder zwischen Teilnehmern in-
Patient
nerhalb des Pools) herstellen. Lanes sind näher auf die traditionelle Methodologie der
Send Doctor
Request
Recive Appl.
Send
Symptoms
5) go see doctor
Doctor‘s Office
1) I want to see doctor
Receive
Doctor
Request
6) I feel sick
Send Appl.
Receive
Symptoms
Receive
Prescription
Pickup
8) Pickup you medicine
and you can leave
Send
Prescription
Pickup
Receive
Medicine
Send Medicine
Request
10) Here is my medicine
9) Need my medicine
Receive
Medicine
Request
Send
Medicine
Bild 2.12: Beispiel eines Diagramms mit Pool vgl. [pre10]
Modellierung von Swimlane-Prozessen bezogen. Die Lanes werden oft benutzt, um die
Aktivitäten, die mit einer spezifischen Betriebsfunktion oder Rolle assoziiert sind, abzugrenzen [RO03]. Ein Sequenzfluss kann die Grenzen der Lanes innerhalb eines Pools
überschreiten, ein Nachrichtenfluss aber kann zwischen Flussobjekten in den Lanes desselben Pools nicht angewandt werden.
Administration
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
19
A
Sub. Process
Management
Prepare PO
Web Server
Approve
Request
Dispatch to
Approver
Bild 2.13: Ein Prozess mit Lanes
Artefakte
BPMN war entwickelt, um den Modellierern und den Modellierungstools Flexibilität in der
Erweiterung der Grundnotation und Gewährleistung der Fähigkeit zum zusätzlichen, der
spezifischen Modellierungsstuation angemessenen Kontext, zu erlauben. Es können beliebig viele Artefakte einem Diagramm zugefügt sein, soweit erforderlich für den Kontext des
zu modellierenden Geschäftsprozesses. In der aktuellen Version der BPMN-Spezifikation
[omg09] sind drei Typen der Geschäftsprozessdiagramm-Artefakte vordefiniert:
• Datenobjekt Datenobjekte sind Mechanismen, die zeigen, wie Daten von den Aktivitäten gefordert oder erzeugt werden. Sie sind mit den Aktivitäten durch Assoziationen verbunden.
• Gruppe Eine Gruppe wird durch ein Rechteck mit gerundeten Ecken dargestellt,
gezeichnet mit gestrichelter Linie. Die Gruppierung kann zwecks Dokumentation
oder Analyse verwendet werden, beeinflusst aber nicht den Sequenzfluss.
• Annotation Annotationen sind ein Mechanismus für den Modellierer, zusätzliche
textuelle Information dem Leser eines BPMN-Diagramms zu gewährleisten.
Text annotation allows
a modeler to provide
additional information
Name
[State]
A)
B)
C)
Bild 2.14: Artefakte. a) Datenobjekt b) Gruppe c) Annotation
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
20
Modellierer können ihre eigenen Typen von Artefakten erzeugen, die in weitere ergänzt
werden. Dennoch wird die Grundstruktur des Prozesses, wie sie mit den Aktivitäten,
Gateways und dem Sequenzfluss bestimmt ist, mit dem Hinzufügen von den Artefakten
Web Server
Management
Administration
ins Diagramm nicht geändert.
Purchase Info
Prepare PO
Approval
Request
E-Mail
Approve
Request
This
activities can
be started at
the same time
Bild 2.15: Ein Prozess mit Datenobjekt, Gruppe und Annotation
2.4
Vergleich von BPMN und UML
UML ist eine Sprache, die den Entwicklern hilft, Modelle von den Softwaresystemen zu
spezifizieren, zu visualisieren und zu dokumentieren. Sie ist sehr stark an die Systemarchitekten und Softwareingenieure gerichtet und wurde als Mittel entwickelt, den Prozess
der Softwareentwicklung sukzessiv zu gestalten, vom Architekturdesign bis zur Anwendungsimplementation für die Nutzung in technischen Fachkreisen.
BPMN ist an die Geschäftsanalytiker, Systemarchitekten und Softwareingenieure gerichtet. Sie wurde entwickelt als Methode, den gesamten Entwicklungsprozess des Geschäftslebenszykluses ab dem Prozessentwurf sukzessiv zu gestalten, was in den Geschäftsfachkreisen durchgeführt wird.
BPNM ist UML insofern verwandt, dass sie eine graphische Notation für Geschäftsprozesse
definiert, die den UML-Verhaltensdiagrammen ähnlich ist. Jedoch haben BPMN und UML
sehr unterschiedliche Ansätze zur Modellierung der Geschäftsprozesse.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
21
UML bietet einen objekt-orientierten Ansatz für die Modellierung der Anwedungen,
während BPMN einen prozess-orientierten Ansatz nimmt. Die meisten UML-Methoden
erfordern zuerst das Erstellen von Objekten unter Benutzung der statischen Strukturdiagrammen. Erst danach werden dynamische Verhaltensdiagramme gebildet, um zu zeigen, wie die Objekte zusammenwirken. Diese Methode der Modellierung ist den meisten
Geschäftsanalytikern fremd.
BPMN bietet einen prozess-orientierten Ansatz, welcher natürlich und intuitiv für die
Geschäftsanalytiker ist. Mit BPMN werden zuerst die Kontroll- und Nachrichtenflüsse
der Prozesse modelliert. Ein Objektmodell des Prozesses wird eher implizit als explizit
definiert. BPNM bietet auch die Option, Geschäftsobjekte explizit zu modellieren, die
durch Geschäftsdienste im Prozessfluss dargelegt werden können.
UML ist ein Satz von Diagrammen, die sich aus den bewährten Kollektivverfahren verschiedener Anwender ergeben haben [Whi06]. Das bedeutet, dass die Diagramme eine
Ansammlung darstellen, aber nicht speziell dazu erschaffen wurden, um miteinander zusammenzuwirken. Im Gegensatz dazu definiert BPMN einen einfachen Typ von Diagrammen, welcher vielfache Ansichten hat, hergeleitet aus demselben zu Grunde liegenden
Meta-Modell der Prozessausführung. Das Ergebnis ist, dass die Implementation in einer Geschäftsprozessausführungssprache lediglich zu einer anderen logischen Ansicht des
Prozesses wird.
Schließlich definiert UML kein Meta-Modell für die Ausführung der Geschäftsprozesse,
die damit modelliert wurden. Stattdessen muss jedes Ausführungsmetamodell unter Benutzung von modellgetriebener Architektur (engl.: Model Driven Architecture, MDA)
[Sch08] definiert werden. BPMN basiert auf dem Metamodell der Prozessausführung von
BPML und erfordert somit keine zusätzlichen Schritte für die Modellierung vollständig
ausführbarer Prozesse.
In Zukunfr werden BPMN und UML sehr wahrscheinlich koexistieren [Whi06]. Es wird
Benutzer im technischen Bereich geben, die nicht beabsichtigen, BPMN als letztes Mittel
der Entwicklung zu verwenden und weiter mit UML arbeiten wollen. BPMN kann dann
benutzt werden, um Lösungen anzusteuern, die direkt auf einem Geschäftsprozessmanagementserver (BPMS) laufen oder als ein Front-End der Geschäftsanalyse für die nachfolgende Systementwicklung mit UML verwendet werden. Unter diesem Szenario würden
die UML-Benutzer die Geschäftsprozesse lediglich als einen anderen Komponententyp betrachten.
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
2.4.1
22
BPMN und UML-Aktivitätendiagramm
Das Ziel dieses Abschnitts ist zu untersuchen, wie zwei Modellierungsnotationen, das
BPMN-Geschäftsprozessdiagramm und das UML 2.0-Aktivitätendiagramm die Muster
des Arbeitsablaufs graphisch darstellen können. Für jedes Muster werden die beiden Notationen in Hinblick darauf verglichen, wie gut sie die Muster behandeln. Der Mittelpunkt
des Vergleichs stellt sowohl technisch als auch visuell jede Notation der Muster vor.
Ablaufmuster: Sequenz
Das Sequenzmuster ist definiert als eine geordnete Folge von Aktivitäten, wobei eine
Aktivität startet, nachdem die vorhergehende Aktivität beendet ist.
Geschäftsprozessdiagramm Ein Geschäftsprozessdiagramm definiert dieses Muster
als eine Folge von Aktivitäten verbunden durch einen Sequenzfluss (Abbildung 2.16).
Die Richtung der Pfeilspitzen des Sequenzflusses bestimmt den Ablauf der Sequenz. Das
Verhalten dieses Musters kann durch eine Begriffsmarke beschrieben werden, welche sich
durch den Sequenzfluss vom Ausgangsobjekt zum Zielobjekt bewegt, abhängig von der
Richtung der Pfeile. Wenn bei diesem Muster eine Aktivität beendet ist, läuft die Marke
durch den Sequenzfluss von dieser Aktivität zur nächsten Aktivität in der Sequenz. Es
gibt keine Bedingtheit oder eine andere Art der Kontrolle über die Marke. In BPMN wird
jede auf den Fluss der Marken gesetzte Kontrolle durch eine Raute kennzeichnet, entweder
in einem Gateway-Objekt oder einem bedingten Sequenzfluss.
A
B
C
Bild 2.16: Sequenz - Geschäftsprozessdiagramm. vgl. [Whi06]
Aktivitätendiagramm Das UML-Aktivitätendiagramm definiert dieses Muster als eine Folge von Aktivitäten verbunden durch einen Kontrollfluss (Abbildung 2.17). Die Richtung der Pfeilspitzen des Kontrollflusses bestimmt den Ablauf der Sequenz. So wie beim
Geschäftsprozessdiagramm läuft die Marke beim Beenden einer Aktivität durch den Kontrollfluss von dieser Aktivität zu der nächsten Aktivität in der Sequenz.
Vergleich Es gibt keinen großen Unterschied zwischen BPMN und UML im Erstellen
der Diagramme für Sequenzmuster. Beide Notationen verwenden gerundete Vierecke, um
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
A
B
23
C
Bild 2.17: Sequenz - Aktivitätendiagramm. vgl. [Whi06]
Aktivitäten darzustellen. Der genaue Grad der Rundung für die Ecken der Vierecke liegt
an dem Modellierer oder dem Tool-Anbieter. Die beiden Notationen benutzen durchgezogene, gerichtete Linien, um die Richtung des Flusses anzuzeigen. Jedoch sind die
Pfeilspitzen in den beiden Standards verschieden. UML verwendet Linienpfeilspitze für
den Kontrollfluss und den Fluss von Standardobjekten, während BPMN solide Pfeilspitze
für den Sequenzfluss benutzt.
Ablaufmuster: parallele Spaltung
Das Muster für die parallele Spaltung ist definiert als ein Mechanismus, welcher es erlaubt, die Aktivitäten gleichzeitig anstatt hintereinander auszuführen. Ein einzelner Pfad
durch den Prozess wird in zwei oder mehrere Pfade gesplittet, so dass zwei oder mehrere
Aktivitäten zu gleicher Zeit starten.
Geschäftsprozessdiagramm Ein BPMN- Geschäftsprozessdiagramm liefert drei Mechanismen für das Erzeugen von Mustern für parallele Spaltung. Der erste Mechanismus
erlaubt, dass ein Flussobjekt zwei oder mehr ausgehende Sequenzflüsse haben kann (Abbildung 2.18). Ein spezielles Flusskontrollobjekt zum Aufspalten des Pfades ist nicht erforderlich, weil es als ein nicht kontrollierter Fluss betrachtet wird. Der Fluss verläuft
somit jeden Pfad hinunter ohne irgendwelche Abhängigkeiten oder Bedingungen, d.h. es
gibt kein Gateway, welches den Fluss kontrolliert. Eine Marke wird für jeden ausgehenden Sequenzfluss erzeugt. Ein aufgespalteter Sequenzfluss kann von einem Task, einem
Sub-Prozess oder einem Startereignis gebildet werden.
B
A
Parallel Splitt
Uncontrolled Flow
C
Bild 2.18: Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 1. vgl.
[Whi06]
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
24
Der zweite Mechanismus benutzt ein paralleles Gateway (eine Raute mit einem PlusZeichen als interner Marker, siehe Abbildung 2.19). Nachdem die Marke das Gateway
erreicht hat, wird eine Marke unverzüglich in jeden ausgehenden Sequenzfluss gesendet.
Es gibt andere Situationen, wo ein paralleles Gateway erforderlich sein könnte, wie z.B.
eine parallele Spaltung, die einer ausschließenden Wahl folgt (siehe Abbildung 2.25 für
das Beispiel einer ausschließenden Wahl.)
B
A
C
Parallel Splitt
Forwarding
Gateway
Bild 2.19: Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 2. vgl.
[Whi06]
Es kann ein dritter Mechanismus für das Erzeugen von Mustern der parallelen Spaltung
verwendet werden. Wenn ein Prozess oder Sub-Prozess kein Startereignis besitzt, welches
optional ist, dann startet jede Aktivität, die keine eingehenden Sequenzflüsse hat, wenn
der Sub-Prozess startet. Es wird eine Marke für jede gestartete Aktivität erstellt. Die
Hauptidee besteht darin, dass der Modellierer eine parallele Box, wie in Abbildung 2.20
zu sehen ist, und eine parallele Situation mit einer kompakten und visuell deutlichen
Technik erzeugen kann.
B
A
Parallel Splitt
Uncontrolled Flow
Applies to Start
Events
C
Bild 2.20: Parallele Spaltung - Geschäftsprozessdiagramm. Mechanismus 3. vgl.
[Whi06]
Aktivitätendiagramm Das UML-Aktivitätendiagramm benutzt einen Zweigknoten,
um einen Satz von parallelen Pfaden zu erzeugen (ein senkrechter oder waagerechter Balken - sieh Abbildung 2.21). Der Balken zeigt an, dass der gesamte vom Balken ausgehende
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
25
Kontrollfluss einen Satz von parallelen Flüssen erzeugt. Eine Marke wird für jeden ausgehenden Kontrollfluss erstellt. Die Zielaktivitäten für jeden dieser Flüsse werden verfügbar
sein, um zur gleichen Zeit anzufangen.
B
A
C
Bild 2.21: Parallele Spaltung - Aktivitätendiagramm. vgl. [Whi06]
Vergleich Die Mechanismen, die die Muster für parallele Spaltung bereitstellen, sind
bei den beiden Notationen verschieden. BPMN bietet viel einfachere Mechanismen mit
mehrfach ausgehendem Sequenzfluss und der parallelen Box. Wenn ein Kontrollobjekt
benötigt oder erwünscht wird, dann ist ein paralleles Gateway vorhanden. UML erfordert, dass ein graphisches Objekt, ein Zweigknoten, die parallele Spaltung erzeugt. Im
Allgemeinen ist der Ansatz für den Kontrollfluss in beiden Notationen unterschiedlich.
BPMN verwendet eine einzige Form, die Raute, um jede Art von Kontrolle oder Bedingung auf dem Ablauf der Marken zwischen den Aktivitäten darzustellen. Interne Marker
zeigen den genauen Typ der Kontrolle an (z.B. alternative oder parallele Spaltung). Die
Rautenform wurde gewählt, weil sie weitgehend als ein Entscheidungsobjekt beim Erstellen der Flussdiagramme anerkannt ist. BPMN sieht einen kleineren Satz von Kernobjekten
der Modellierung vor. UML benutzt zwei verschiedene Typen von Objekten (Raute und
Balken), um die Kontrolle über dem Markenfluss darzustellen. Das gewährleistet eine
leichtere Unterscheidung zwischen den zwei Grundtypen der Kontrolle (alternativ und
parallel), wenn aber eine komplexere Kontrolle gefordert wird, welche sowohl alternative
als auch parallele Verhalten enthält, wird diese Unterscheidung weniger deutlich.
Ablaufmuster: Synchronisation
Das Synchronisationsmuster vereinigt Pfade, die durch ein Muster für parallele Spaltung
erzeugt wurden. Alle Aktivitäten innerhalb der Flüsse müssen vollendet werden, bevor
der Prozess fortfahren kann. Das ist die Synchronisation der parallelen Pfade.
Geschäftsprozessdiagramm In BPMN gibt es zwei Mechanismen für die Synchronisationsmuster. Der erste Mechanismus ist mit der Anwendung von parallelen Gateways
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
26
verbunden (siehe Abbildung 2.22). Dieses Gateway wird auch bei den Mustern für parallele
Spaltung eingesetzt und kann die beiden Funktionen gleichzeitig ausführen. Das Gateway
empfängt den mehrfachen eingehenden Sequenzfluss und wartet darauf, dass die Marken
von jedem Fluss ankommen, bevor eine einzige Marke nach dem Gateway fortfährt. Dieser
Mechanismus wird für die beiden ersten Typen der Muster für parallele Spaltung verwendet. Ein Gateway muss in diesem Fall benutzt werden, weil der Prozessfluss kontrolliert
und synchronisiert wird. Der zweite Mechanismus ist der abschließende Teil der Technik
A
C
B
Synchronization
Joining Gateway
Bild 2.22: Synchronisation - Geschäftsprozessdiagramm. Mechanismus 1. vgl. [Whi06]
der parallelen Box, wie in der Abbildung 2.23 gezeigt. Wenn ein Prozess oder ein SubProzess kein Endereignis hat, dann endet der Sub-Prozess, wenn alle Aktivitäten beendet
sind, die keine ausgehenden Sequenzflüsse haben. Der Sub-Prozess wird nicht vollendet,
bis alle interne Aktivitäten vollendet sind. Dann fährt eine Marke nach dem Sub-Prozess
innerhalb des gesamten Prozesses fort. Der Mechanismus der parallelen Box ist geradezu eine Teilmenge des allgemeinen Mechanismus für das Beenden eines Sub-Prozesses.
Gibt es parallele Pfade innerhalb eines Sub-Prozesses, so kann jeder dieser Pfade in einem
einzelnen deterministischen Endereignis enden. Der Sub-Prozess wird nicht vollendet, bis
alle parallelen Pfade das Endereignis nicht erreicht haben. Das synchronisiert den Fluss,
welcher sich weiter zum Prozess auf einer höheren Ebene bewegt.
A
C
B
Synchronization
Applies to End
Events
Bild 2.23: Synchronisation - Geschäftsprozessdiagramm. Mechanismus 2. vgl. [Whi06]
Aktivitätendiagramm Das UML-Aktivitätendiagramm verwendet einen Verbindungsknoten, um einen Satz von parallelen Pfaden zu vereinigen (Abbildung 2.24). Der
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
27
Balken sieht genauso wie der Zweigknoten aus und tatsächlich kann ein einziger Balken
die beiden Funktionen ausführen. Der Verbindungsbalken deutet an, dass die Marken
von allen in den Balken eingehenden Kontrollflüssen ankommen müssen. Dann wird eine
einzelne Marke nach dem Balken fortsetzen. Ein anderer Mechanismus, der einem Akti-
A
C
B
Bild 2.24: Synchronisation - Aktivitätendiagramm. vgl. [Whi06]
vitätendiagramm zur Verfügung steht, benutzt eine Sub-Aktivität. Gibt es parallele Pfade
innerhalb einer Sub-Aktivität, kann jeder dieser Pfade in einem gesonderten deterministischen Endknoten des Flusses enden. Der Sub-Prozess wird nicht vollendet sein, bis
alle parallelen Pfade einen Endknoten des Flusses nicht erreichen. Das synchronisiert den
Fluss, welcher sich weiter zum Prozess auf einer höheren Ebene bewegt.
Vergleich Die Mechanismen für die Bereitstellung des Synchronisationsmusters sind
im Grunde dieselben für die beiden Notationen, sehen aber unterschiedlich aus. Ein
Geschäftsprozessdiagramm verwendet ein paralleles Gateway und ein Aktivitätendiagramm verwendet einen Verbindungsknoten. Die beiden Notationen bieten auch synchronisiertes Verhalten für die Vollendung eines Sub-Prozesses. Die entsprechenden Vorteile
der Flusskontrollobjekte wurden beim Vergleich des Musters für eine parallele Spaltung
diskutiert.
Ablaufmuster: Ausschließende Wahl
Das Muster für ausschließende Wahl wird als eine Stelle in einem Prozess definiert, wo
der Fluss in zwei oder mehrere ausschließende alternative Pfade geteilt wird. Das Muster
ist ausschließend, weil nur einer der alternativen Pfade für die Fortsetzung des Prozesses
gewählt werden kann.
Geschäftsprozessdiagramm Da ein zusätzlicher Kontrollmechanismus benötigt wird,
um das Muster für ausschließende Wahl zu erzeugen, benutzt BPMN ein Gateway. Für
dieses Muster wird ein ausschließendes datenbasiertes Gateway verwendet (eine Raute,
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
28
sieh Abbildung 2.25). Der vom Gateway ausgehende Sequenzfluss enthält boolesche Ausdrücke, die ausgewertet werden, um zu bestimmen, welcher Sequenzfluß verwendet werden
muss, um den Prozess fortzusetzen. Wenn eine Marke am Gateway ankommt, werden die
Ausdrücke ausgewertet (in einer festgelegten Weise) und für den ersten Ausdruck, der als
wahr bestimmt wurde, wird der entsprechende Sequenzfluß gewählt und die Marke fährt
diesen Pfad fort. Nur eine Marke verlässt das Gateway für jede Marke, die am Gateway
ankommt.
Condition 1
B
A
Condition 2
C
Bild 2.25: Ausschließende Wahl - Geschäftsprozessdiagramm. vgl. [Whi06]
Aktivitätendiagramm Das UML-Aktivitätendiagramm benutzt einen Entscheidungsknoten, um einen Satz von ausschließenden alternativen Pfaden zu erzeugen (Abbildung
2.26). Der vom Entscheidungsknoten ausgehende Kontrollfluss enthält boolesche Ausdrücke, die ausgewertet werden, um zu bestimmen, welcher Kontrollfluß verwendet werden
muss, um den Prozess fortzusetzen. Wenn eine Marke am Entscheidungsknoten ankommt,
werden die Ausdrücke ausgewertet (in einer nicht festgelegten Weise) und für den Ausdruck, der als wahr bestimmt wurde, wird der entsprechende Kontrollfluß gewählt und
die Marke fährt diesen Pfad fort. Nur eine Marke verlässt den Entscheidungsknoten für
jede Marke, die am Knoten ankommt.
B
A
C
Bild 2.26: Ausschließende Wahl - Aktivitätendiagramm. vgl. [Whi06]
Vergleich Dieses Muster ist ein Beispiel dafür, dass die beiden Notationen das Verhalten
auf nahezu dieselbe Weise darstellen. Die beiden Notationen benutzen eine Raute, um
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
29
diese Art der Entscheidung darzustellen.
Ablaufmuster: einfaches Mischen (simple merge)
Das Muster für einfaches Mischen wird definiert als eine Stelle in einem Prozess, in dem
ein Satz von alternativen Pfaden in einen einzigen Pfad vereinigt wird.
Geschäftsprozessdiagramm Das Muster für einfaches Mischen ist ein anderes Beispiel für einen nicht kontrollierten Fluß innerhalb BPMN. Das heißt, eine Marke kann
zwischen zwei Aktivitäten ohne jeden eingreifenden Kontrollmechanismus (Gateway) verlaufen. Mehrfache eingehende Sequenzflüsse sind erlaubt (Abbildung 2.27), weil ein Verhalten angenommen wird, dass nur von einem der eingehenden Sequenzflüsse erwartet
wird, eine Marke zur Ausführungszeit zu haben. Wenn die Marke ankommt, startet die
Aktivität unverzüglich. Ein ausschließendes Gateway kann auch verwendet werden, um
Condition 1
B
A
D
C
Condition 2
Bild 2.27: Einfaches Mischen - Geschäftsprozessdiagramm. Variante 1. vgl. [Whi06]
alternative Pfade zu mischen (siehe Abbildung 2.28). Modellierer können es als ein bewährtes Verfahren benutzen. Wenn eine Marke am Gateway ankommt, und nur eine erwartet
wird, verläuft sie sofort den ausgehenden Sequenzfluß hinunter.
Condition 1
B
A
D
Condition 2
C
Single Merge
Merging
Gateway
Bild 2.28: Einfaches Mischen - Geschäftsprozessdiagramm. Variante 2. vgl. [Whi06]
Aktivitätendiagramm Das UML-Aktivitätendiagramm verwendet einen Mischknoten, um einen Satz alternativer Pfade zusammenfließen zu lassen (Abbildung 2.29). Die
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
30
Raute sieht dabei genauso wie Entscheidungsknoten aus und, tatsächlich, eine einzige
Raute kann beide Funktionen ausführen. Wenn eine Marke am Knoten ankommt, verläuft
sie sofort den ausgehenden Kontrollfluß hinunter. Technisch gesehen ist ein Mischknoten
nicht erforderlich und mehrere eingehende Kontrollflüsse sind für eine Aktivität erlaubt,
doch es ist nicht als geeignete Methode für das Modellieren des Verhaltens der Aktivitätendiagramme angesehen.
Condition 1
B
A
D
Condition 2
C
Bild 2.29: Einfaches Mischen - Aktivitätendiagramm. vgl. [Whi06]
Vergleich Als Standardpraxis liefert ein Geschäftsprozessdiagramm einen einfacheren
Mechanismus für das Muster des einfachen Mischens: mehrere eingehende Sequenzflüsse.
Ein ausschließendes Gateway kann benutzt werden, wenn erwünscht, und das macht das
Geschäftsprozessdiagramm äquivalent der Lösung mit dem Aktivitätendiagramm.
2.4.2
Anwendung der Notationen zur Geschäftsprozessmodellierung
Der Vergleich der Modellierung von Ablaufmustern mittels Geschäftsprozessdiagramme
und Aktivitätendiagramme zeigt, dass die beiden Notationen die meisten Muster adäquat
modellieren können. Die einzige Ausnahme besteht darin, dass das Aktivitätendiagramm
keine adäquate graphische Darstellung für die Muster der verschachtelten parallelen
Abläufe hat, selbst wenn das dem Aktivitätendiagramm zugrunde liegende Metamodel
eine angemessene Struktur für das Erzeugen der Muster besitzt.
Die Tatsache, dass die beiden Notationen änliche Lösungen für die meisten Muster liefern,
zeigt wie nah die Notationen in ihrer Gestaltung sind. Die beiden benutzen viele gemeinsame Formen für dieselben Zwecke (z. B. gerundete Vierecke für Aktivitäten, Raupen für
Entscheidungen usw.). Es gibt einige Unterschiede in der Modellierung der Objektformen.
Dabei enthält BPMN wenigere Kernobjekte aber enthält weitere Objektvariationen, um
Komplexitäten zu beherrschen, die in den Modellierungsprozessen entstehen könnten. Ein
anderer Unterschied zwischen den beiden Diagrammen liegt häufig nur in der Terminolo-
2 Analyse bestehender visueller Sprachen zur Modellierung von Geschäftsprozessen
31
gie. So hat z.B. ein Aktivitätendiagramm einen Startknoten und ein Geschäftsprozessdiagramm ein Startereignis. Zusätzliche Unterschiede existieren, wenn Datenflüsse zwischen
den Aktivitäten betrachtet werden.
Die Ähnlichkeiten zwischen den Diagrammen bestehen deswegen, weil sie entwickelt wurden, um dasselbe Grundproblem zu lösen: Erstellen der Diagramme von den verfahrensorientierten Geschäftsprozessen. Die Unterschiede zwischen den beiden Diagrammen bestehen wegen der Zielbenutzer der Diagramme. Der Durchsatz von BPMN erfolgte vor
wenigen Jahren mit dem Ziel, eine Notation für die Benutzung durch Fachanwender zu
erzeugen. UML wurde vor mehreren Jahren durchgesetzt, um die Softwareentwicklung zu
standardisieren und das Aktivitätendiagramm wurde als Teil davon eingesetzt. Obwohl
die Entwicklung von UML 2.0 ein mehr konzentriertes Bestreben umfasste, das Aktivitätendiagramm in Hinblick auf dessen Benutzung unter Geschäftsleuten auszubauen,
ist es immer noch mehr technisch orientiert.
Kapitel 3
Abgrenzung bestehender
Ausführungssprachen
Geschäftsprozessmodellierungssprachen sind XML-basierte Meta-Sprachen, die als Mittel
zur Modellierung von Geschäftsprozessen in einem XML-Format benutzt werden. BPMN
wurde entwickelt, um verständliche graphische Darstellungen von Geschäftsprozessen zu
erstellen. Sie ist auch mit geeigneten Eigenschaften für graphische Objekte ausgestattet,
die die Erzeugung von Geschäftsprozessausführungssprachen möglich machen. Es sind
mehrere verschiedene Geschäftsprozessausführungssprachen vorgestellt worden. Die meisten von ihnen benutzen XML und bauen auf der Web Service Description Language
(WSDL) vom W3C-Standard auf. Die Spezifikation von BPMN schliesst in sich die Abbildung auf die Geschäftsprozessausführungssprache BPEL (Business Process Execution
Language) ein [Whi05], so dass die Techniken zur Einbettung der einzelnen Services in
einen Geschäftsprozess gegeben sind und die Wiederverwendbarkeit der Komponenten
erhöht ist. Eine andere Ausführungssprache, XPDL (XML Process Definition Language),
ist von der WfMC spezifiziert und in der Spezifikation wird die Abbildung von BPMN auf
XPDL ebenso definiert. Im Folgenden werden die beiden Ausführungssprachen, BPEL und
XPDL, vorgestellt und es wird auf die Besonderheiten der beiden Sprachen eingegangen.
3.1
BPEL
Bei der Abbildung eines BPMN-Diagramms auf BPEL muss die Entscheidung hinsichtlich
der Grundstruktur des BPEL-Dokumentes getroffen werden. BPMN-Diagramme können
in vielen Methodologien und für viele Zwecke verwendet werden, von der beschreibenden Modellierung auf einer höheren Ebene bis zur detaillierten Modellierung für die
3 Abgrenzung bestehender Ausführungssprachen
33
Prozessausführung. Wenn eines der Ziele des Prozessmodells die Definition der Prozessausführung ist, so muss das Prozessmodell mit einem Modellierungstool entworfen
werden, welches dafür entwickelt wurde. Das Diagramm allein wird all die Information,
die für die Erzeugung einer gültigen BPEL-Datei erforderlich ist, nicht anzeigen. Ein Diagramm mit all dieser Information wird zu unübersichtlich. BPMN-Diagramme sind dafür
vorgesehen, die Grundstruktur und den Fluss von Aktivitäten und Daten innerhalb eines
Geschäftsprozesses anzuzeigen. Deshalb ist ein Modellierungstool erforderlich, mit dem
zusätzliche Informationen über den Prozess erfasst werden können, die zur Erzeugung
einer ausführbaren BPEL-Datei notwendig sind.
3.1.1
Dokumentaufbau
In der Praxis werden gegenwärtig Konzepte für die informationstechnische Realisierung
partnerübergreifender Geschäftsprozesse entwickelt. Im Mittelpunkt dieser Konzepte steht
der Begriff des Services. Ein Service ist eine Menge von Aktivitäten, angeordnet in einer
Kontrollstruktur, z.B. einem Workflow. Für die Beschreibung der Kontrollstruktur eines Services wird die Sprache Business Process Execution Language for Web Services
(BPEL4WS, WS-BPEL) verwendet [ACD+ 03].
BPEL ist eine imperative Programmiersprache für die Beschreibung von Geschäftsvorgängen, die eine XML-Notation hat. BPEL unterscheidet zwischen der Spezifikation
von abstrakteren Geschäftsprotokollen und ausführbaren Prozessen. Beide Anwendungen
haben eine gemeinsame Schnittmenge von Sprachelementen, die den Grossteil von BPEL
ausmacht. Die Syntax wird je nach Anwendungsziel weiter spezifiziert.
Jede BPEL Beschreibung hat den folgenden Grundaufbau:
1
<process name ="ProcessName">
2
<partnerLinks>..</partnerLinks>
3
<variables>..</variables>
4
<correlationSets>..</correlationSets>
5
<faultHandlers>..</faultHandlers>
6
<compensationHandler>..</compensationHandler>
7
<eventHandlers>..</eventHandlers>
8
activity
9
</process>
Das Dokument besteht aus einem process-Element, welches mit dem name-Attribut den zu
spezifizierenden Geschäftsvorgang benennt. Bis auf eine Aktivität sind alle Kindelemente
3 Abgrenzung bestehender Ausführungssprachen
34
optional. BPEL unterscheidet zwischen den so genannten Basisaktivitäten und strukturellen Aktivitäten. Basisaktivitäten sind atomare Operationen, die elementare Effekte, wie
die Kommunikation mit anderen Diensten bereitstellen. Ihre XML-Elemente sind:
receive, reply, invoke, assign, throw, terminate, wait, empty, scope, compensate
Strukturelle Aktivitäten beschreiben die Ablaufreihenfolgen und Ablaufbedingungen ihrer gekapselten Elemente, welche einfache Basisaktivitäten oder weitere strukturelle Aktivitäten sein können. Erst sie erlauben die mächtige Komposition von Basisaktivitäten.
Strukturelle Aktivitäten in BPEL sind die Elemente:
sequence, switch, while, pick, flow
3.1.2
Umgebungen
Die globale Umgebung beinhaltet alle Elemente des Wurzelelements ‘process’. Unterumgebungen mit lokalem Namensraum lassen sich mit dem ‘scope’-Element bilden. Das scopeElement kann, bis auf das partnerLinks-Element, alle Elemente enthalten, die das processElement enthalten darf. Insbesondere lassen sich so Variablen lokal deklarieren oder die
Ausnahmebehandlung in der Zuständigkeit auf bestimmte Bereiche einschränken. Semantisch entspricht dies Bereichen, die in imperativen Programmiersprachen durch Klammersetzung entstehen.
Ein BPEL-Prozess basiert vor allem auf XML, einschließlich Nachrichten, die im BPELProzess ein- und ausgehen, Nachrichten, die mit externen Services ausgetauscht werden
und jede lokale Variable, die vom Fluß selbst benutzt wird. Die Typen für alle diese Nachrichten und Variablen sind mit XML-Schema definiert, gewöhnlich in der WSDL-Datei
für den Fluß selbst oder in den WSDL-Dateien für die Services, die er aufruft. Darum
sind alle Variablen in BPEL XML-Dokumente und jeder BPEL-Prozess wendet eine angemessene Menge seines Codes auf, um diese Variablen zu verarbeiten. Das beinhaltet
üblicherweise Datentransformation zwischen den Darstellungen, die für verschiedene Services erforderlich sind, sowie eine lokale Verarbeitung der Daten (z.B um die Ergebnisse
von verschiedenen Services-Aufrufen zusammenzuknüpfen).
Der Startpunkt für den Umgang mit den Daten in BPEL ist die <assign>-Aktivität, die
auf dem XPath-Standard aufbaut. XPath-Anfragen, Ausdrücke und Funktionen spielen
eine große Rolle in diesem Typ der Manipulation und es sind auch fortgeschrittene Methoden vorhanden, die die Benutzung von XQuery, XSLT oder JAVA (gewöhnlich um
komplexere Datentransformation oder -manipulation durchzuführen) einbeziehen.
3 Abgrenzung bestehender Ausführungssprachen
35
Die <assign>-Aktivität erlaubt, Daten von einer XML-Variablen zu anderen zu kopieren
oder den Wert eines Ausdrucks zu berechnen und in einer Variable zu speichern. Das
<copy>-Element innerhalb der Aktivität beschreibt die Quelle und das Ziel der Zuweisung
(was woher und wohin zu kopieren ist), welche vom kompatiblen Typ sein müssen. Die
formale Syntax in der BPEL-Spezifikation ist:
1
<assign standard-attributes>
2
standard-elements
3
<copy>+
4
from-spec
5
to-spec
6
</copy>
7
</assign>
Detailliert wird das im Folgenden erklärt. From-spec und to-spec spezifizieren typischerweise eine Variable oder Variablenteil:
1
<assign>
2
<copy>
3
<from variable="c1" part="address"/>
4
<to variable="c3"/>
5
</copy>
6
</assign>
3.1.3
BPEL4People
Die BPEL-Spezifikation richtet sich auf Geschäftsprozesse, deren Aktivitäten als Interaktionen mit Webdiensten angenommen werden, ohne jedes weitere vorausgesetzte Verhalten. Das Spektrum der Aktivitäten, die die Geschäftsprozesse allgemeiner Anwendung
bilden, ist jedoch viel breiter. Menschen nehmen oft an der Ausführung der Geschäftsprozesse teil und leiten neue Aspekte ein, wie Interaktion zwischen dem Prozess und der
Benutzerschnittstelle, und ziehen menschliches Verhalten in Betracht.
Das BPEL4People [CKM+ 09] ist ein Satz von Elementen, welche die BPEL-StandardElemente erweitern und eine Modellierung von menschlichen Interaktionen ermöglichen,
die von einfachen Rollenzuweisungen bis zu komplexen Szenarios wie Trennung der Aufgabenbereiche und Interaktionen einschließlich ad-hoc-Daten reichen.
Die menschlichen Aktivitäten werden als ein neuer Typ der Basisaktivitäten dargestellt,
welche die Spezifikation der menschlichen Interaktionen in den Prozessen auf einem di-
3 Abgrenzung bestehender Ausführungssprachen
36
rekten Weg erlauben. Die Implementation der menschlichen Aktivitäten kann eine InlineAufgabe oder eine autonome menschliche Aufgabe sein, definiert in der WS-HumanSpezifikation.
Die BPEL4People-Erweiterung ist auf solche Weise definiert, dass sie auf BPEL aufsetzt,
so dass ihre Funktionen mit den BPEL-Funktionen immer, wenn erforderlich, zusammengesetzt werden können.
3.1.4
Beziehungen zu anderen Spezifikationen
BPEL4People benutzt folgende Spezifikationen:
• WS-BPEL 2.0: BPEL4People erweitert das WS-BPEL-2.0-Prozessmodel und verwendet existierende Ressourcen von BPEL-2.0, solche wie für Datenbehandlung.
• WS-HumanTask 1.1: BPEL4People benutzt die Definition der menschlichen Aufgaben und Notifikationen und erweitert allgemeine menschliche Rollen und Zuordnungen eingeführt in WS-HumanTask 1.1.
• WSDL 1.1: BPEL4People benutzt WSDL für die Definition der Service-Schnittstelle.
• XML Schema 1.0: BPEL4People verwendet das Datenmodell von XML Schema.
• XPath 1.0: BPEL4People benutzt XPath als Standardsprache für Anfragen und
Ausdrücke.
3.2
XPDL
XML Process Definition Language (XPDL) ist eine standardisierte Sprache zur Abbildung von Geschäftsprozessen [FGI+ ]. XPDL ist ein weit verbreiteter Standard, welcher von vielen kommerziellen und Open Source Anwendungen unterstützt wird [Rüc08].
Sie wurde von der WfMC (Workflow Management Coalition) standardisiert und ist etwa so alt wie BPEL. Das Ziel bei der Entwicklung dieser Sprache war ein universeller Standard zum Austausch von Geschäftsprozessbeschreibungen zwischen unterschiedlichen Workflow-Engines. Seit der Version 2.0 (2005) wird BPMN unterstützt [HKM].
Die Sprache lässt sich grob als bestehend aus einer Menge von Standardsymbolen für
die graphische Beschreibung des Geschäftsablaufs und der Arbeitsablaufstruktur und einer unendlichen Menge von Erweiterungspunkten beschreiben. Eine Struktur, welche mit
Standardsymbolen beschrieben wird, ist für alle Workflow-Engines verständlich und bei
3 Abgrenzung bestehender Ausführungssprachen
37
den Erweiterungspunkten handelt es sich um die Strukturen für die jeweilige spezifische
Workflow-Engines-Umsetzung der Arbeitsprozesse. Da die Sprache recht umfangreich ist,
wird im Folgenden anhand eines kleinen Beispiels der Aufbau und die Funktionsweise der
Bäckerei
Sprache beschrieben.
Brötchen
backen
Brötchen
verkaufen
Kasse
abrechnen
Bild 3.1: Modellierung eines Geschäftsablaufs am Beispiel einer Bäckerei
3.2.1
Conformance Klasse
Allgemeine Modellrestriktionen bezüglich der Prozessmodellierung können in einer so
genannten Conformance Klasse gesetzt werden. Hierfür existieren zwei unabhängige in der Conformance Klasse definierte Kategorien: Graphkonformität und BPMNModellportabilitat.
Graph-Conformance
Es gibt drei Graph-Conformance Klassen mit folgenden Eigenschaften:
NON-BLOCKED
- keine Restriktionen bezüglich der modellierten Prozessablaufgraphen.
LOOP-BLOCKED
- Aktivitäten und Abläufe bilden einen azyklischen Graphen.
FULL-BLOCKED
- Zu jeder Gabelung existiert genau eine korrespondierende Verbindung und, umgekehrt,
zu jeder Verbindung existiert genau eine korrespondierende Gabelung.
BPMN Model Portability Conformance
BPMN kann sowohl für “abstrakte” Modellierung des Aktivitätenflusses als auch für ein
vollständig ausführbares Design verwendet werden. Viele Werkzeuge verwenden jedoch
BPMN für die abstrakte Modellierung, fügen aber noch ausführbare Elemente in den
spezifischen Eigenschaften der Aktivitäten hinzu. Eines der Ziele von XPDL ist die Unterstützung der Portabilität von abstrakten Aktivitätenflüssen zwischen den Werkzeugen.
3 Abgrenzung bestehender Ausführungssprachen
38
Das erfordert eine Trennung der Elemente und Attribute von BPMN, welche die Modellierung der Aktivitätenflüsse betreffen, von denjenigen, die das ausführbare Design betreffen.
Die Spezifikation von BPMN definiert diese Trennung nicht, bei XPDL wird sie dagegen
in Form von Klassen der Konformität zur Portabilität der BPMN-Modelle definiert. Im
Allgemeinen repräsentieren die Elemente des “abstrakten Modells” diejenigen BPMNKonstrukte, die im Geschäftsprozessdiagramm ausgedrückt werden, solche die den Typ
oder Subtyp des Flussobjekts definieren (z.B. Schleifen der Benutzertasks, gescheiterte
Subprozesse, ausschließende Gateways, Timerereignisse) oder nur Attribute einschließen,
die Subtyp, Label (Nameattribut) und eindeutige Identifizierer für das Objekt selbst und
die Zeiger auf andere Identifizierer im Diagramm spezifizieren. Elemente und Attribute, die Daten, Nachrichten oder andere Details der Implementation darstellen, sind aus
dem abstrakten Prozessmodell ausgelassen. In anderen Worten beschreibt das Modell das
“was” und “wann” des Prozessaktivitätsflusses und nicht das “wie” der Implementation
der Flussobjekte.
3.2.2
Metamodell
Damit das Mapping zwischen XPDL und BPMN einfacher verläuft, wurde ein Metamodell für XPDL erzeugt, bei welchem die Aktivitäten, Transitionen und weitere Elemente
direkt an BPMN angelehnt sind [Hei09]. Im Metamodell sind auch Swimlanes und Pools
enthalten, die für BPMN typisch sind und einzelne Akteure voneinander abgrenzen oder
gruppieren.
3.2.3
Teilnehmer
Teilnehmer (Participants) sind in XPDL Ressourcen, Organisationseinheiten, Rollen,
Menschen oder das System. In einem Bäckereibeispiel wären es Bäcker und Kassierer
und der XML-Eintrag hätte folgende Form:
1
2
<Participants>
<Participant Id="Becker">
3
<ParticipantType Type="ROLE"/>
4
<Description>Brötchen hersteller</Description>
5
</Participant>
6
<Participant Id="Kassierer">
7
...
8
</Participant>
9
</Participants>
3 Abgrenzung bestehender Ausführungssprachen
3.2.4
39
Pools & Lines
Innerhalb des Pools sind Lines entsprechend der BPMN Notation definiert. Lines innerhalb
eines Pools werden in eine XML-Darstellung verschachtelt abgebildet. Des Weiteren muss
einer Line jeweils eine ausführende Instanz zugeordnet werden. In dem Beispiel existiert
ein Bäckerei - Pool, welcher genau eine Swimmline enthält. Dies führt in dem vorgestellten
Beispiel zur folgenden XPDL-Darstellung:
1
2
3
<Pools>
<Pool Process=" 1 " Id=" 2 " Name="Bäckerei" BoundaryVisible="true">
<Lanes /><NodeGraphicsInfos>...</NodeGraphicsInfos>
4
</Pool>
5
...
6
</Pools>
3.2.5
Aktivitäten
Die Aktivitäten werden hier wiederum in Tasks, Subprozesse, Ereignisse und Gateways
unterteilt. Es entstehen dabei reduzierbare Graphen, deren Erzeugung durch Subprozesse
bzw. Blockaktivitäten stattfinden. Die Ausführung des Prozesses wechselt in den Startzustand des jeweiligen Subprozesses und kehrt nach dem Erreichen einer Austrittsaktivität
in den aufrufenden Prozess zurück. In den Aktivitäten können außerdem noch Implementierungen und ausgehende Transitionen enthalten sein. Dies ergibt für zuvor genanntes
Beispiel den folgenden XPDL-XML-Code:
1
<WorkflowProcess Id="Simple" Name="Simple">
2
<Activities>
3
<Activity ID = "Brötchen Backen">...<Activity>
4
<Activity ID = "Brötchen verkaufen">...<Activity>
5
<Activity ID = "Kasse abschliessen">
6
<Implementation>...</Implementation>
7
<Performer>Kassierer</Performer>
8
</Activity>
9
<Transitions>...</Transitions>
10
11
...
<WorkflowProcess>
3 Abgrenzung bestehender Ausführungssprachen
3.2.6
40
Applikation
Mit einer Applikation werden Anwendungen und Tools deklariert, die im Verlauf eines
Prozesses aufgerufen werden. Dadurch wird Abstraktion konkreter Implementierungen
oder Plattformen erreicht. Die Aufgabe der Prozess-Engine ist es, die in diesem Bereich
definierten Anwendungen zu instantiieren.
3.3
Zusammenfassung
BPEL unterstützt wie keine andere Sprache die Transaktionen, Kompensation, Fehlerbehandlung sowie abstrakte Prozesse und ist als Standard anerkannt. Obwohl der Umfang
der von BPEL unterstützten Elemente groß ist, bestehen auch Nachteile in BPEL und
zwar sind es fehlende Unterstützung von HumanTask, fehlende Metamodell und wechselseitige Abbildung zwischen BPEL und BPMN sowie Komplexität. Diese Vor- und Nachteile von BPEL werden von BPEL4People als Erweiterung zu BPEL übernommen. Durch
die Entwicklung und Einbettung der Spezifikation von WS-HumanTask wurde auch die
Komplexität deutlich erhöht.
Die menschlichen Interaktionen gehören zu den Kernelementen von XPDL und es werden dafür keine zusätzlichen Erweiterungen benötigt. Für die Einbindung von HumanTask kann ein Task verwendet werden, welcher im allgemeinen Fall mit dem Element
<taskUser> und für Aufgaben außerhalb des Workflows mit dem Element <taskManual>
versehen wird. In diesem Task sind Verweise auf ausführende Instanzen enthalten, in den
Aktivitäten können auch weitere beschreibende Attribute festgesetzt werden.
Die fehlende Unterstützung der oben genannten Konzepte von Transaktionen und Fehlerbehandlung in XPDL bringt Nachteile in der Praxis mit sich. Außerdem ist ein graphenbasierter Ansatz anfällig, unübersichtlich zu werden. Im Vergleich zum blockstrukturierten
Ansatz von BPEL erweist er sich aber als flexibler.
Zu den weiteren Vorteilen von XPDL gehören die integrierte Unterstützung menschlicher
Interaktionen über die Webservices und die Definition der ausführenden Instanzen und
Teilnehmer. Durch die vordefinierten Standardeingaben ist es in XPDL auch möglich,
Prozesse zu simulieren, was bei größeren Prozessen gute Anwendung zum Testen der
Arbeitsabläufe findet.
Abschließend bietet sich somit die Festlegung, dass die beiden Sprachen verschiedene
Zielsetzungen haben: BPEL mit BPEL4People werden als Prozessausführungssprachen im
Umfeld der Webservices verwendet und XPDL dient als Austauschformat für verschiedene
BPMN-Anwendungen. Bei der Wahl, welche der beiden Sprachen in einem Projekt zu
3 Abgrenzung bestehender Ausführungssprachen
41
benutzen ist, muss deswegen die Zielsetzung des Projekts in Betracht gezogen werden.
Jede dieser Sprachen hat ihre überzeugenden Aspekte und die beiden Sprachen befinden
sich noch in Entwicklung.
Kapitel 4
Rich Internet Application
Technologien
Rich Internet Applikationen (RIA), die in der letzten Zeit immer mehr Verbreitung finden,
sind Web-Anwendungen, die im Gegensatz zu den traditionellen auf HTML basierten Webapplikationen reichere Funktionalität und Interfaces besitzen, welche mit den DesktopAnwendungen vergleichbar sein können. Sie werden von den Web-Browsern nicht direkt
unterstützt, erfordern aber keine lokale Installation.
Die Forderung von den Internetapplikationen nach Benutzerschnittstellen, wie man sie
eigentlich nur noch von reinen Desktop-Applikationen kennt, entstand durch die Entwicklung von serviceorientierten Architekturen, für welche die RIA ein bequemes Front-end
anbieten.
Sie können in vielen Bereichen zum Einsatz kommen und mit dem World Wide Web
als globale Informationsplattform auch als Basis von Unternehmensapplikationen benutzt
werden. Gegenüber den zuvor entwickelten Client-Server-Webtechnologien bieten die RIA
erhebliche Vorteile für Geschäftsanwendungen im Unternehmensumfeld. Sie verbessern
und erweitern den Anwendungsbereich von Webapplikationen in Unternehmen, globale Geschäftsprozesse lassen sich einfacher automatisieren und ein zentrales Management
von Informationsdiensten, welches durch diese Technologie möglich wird, bringt weitere
betriebliche Vorteile mit sich.
Traditionelle Webapplikationen wurden in der Client-Server-Architektur erstellt, wo die
gesamte Anwendung auf dem Server implementiert ist und auf dem Client nur die Präsentation der Inhalte stattfindet. Bei den RIAs werden auch die Client-Ressourcen ausgenutzt, indem eine größere Verteilung der Daten am Client anfällt, der nun auch einen
größeren Teil der Programmlogik übernimmt.
4 Rich Internet Application Technologien
43
Da die Verarbeitung der Daten und die Berechnungen teilweise lokal erfolgen, vermeidet
die RIA-Technologie unnötige Last auf dem Netzwerk durch spezielle Techniken wie z.B.
das Vorladen oder partielles Laden von Daten, die gecacht werden, bis der Nutzer sie
benötigt. Dies reduziert die Notwendigkeit von Serveranfragen zur Laufzeit und erhöht
die Leistungsfähigkeit und Performance der Applikationen. RIAs lassen sich viel flüssiger bedienen, sie reagieren schneller auf die Eingaben der Benutzer und Rückmeldungen
können schneller erzeugt werden.
Manche RIA können auch im Offline-Modus ausgeführt werden und müssen nicht unbedingt zu jedem Zeitpunkt mit dem Webserver verbunden sein. Die Nachfrage nach
Offline-Funktionen hat einige RIA-Hersteller dazu bewogen, zum alten “fat client” zurückzukehren und Möglichkeiten zu schaffen, Webapplikationen auf dem Desktop auszuführen.
Adobe AIR und Google Gears sind Beispiele fur diesen Trend.
Ein gemeinsames Merkmal dieser Desktop-RIAs ist die Plattformunabhängigkeit. Das
Betriebssystem an sich spielt keine Rolle mehr. Die RIA-Plattform regelt den Zugang zu
Ressourcen wie dem lokalen Dateisystem oder der Datenbank.
Die Möglichkeit der Einbindung von multimedialen Daten ist ein weiteres wichtiges RIAFunktionsmerkmal. Interaktionsmöglichkeiten werden zum Beispiel durch die Bedienbarkeit über Tastenkürzel oder Drag-and-Drop-Möglichkeiten erweitert.
4.1
Vergleich bestehender Rich Internet Application
Technologien
Die Architektur der Rich Internet Applikationen unterscheidet sich und reicht von den
“Rich Fat Clients” bis zu den “Rich Thin Clients” (Abbildung 4.1). Die Architektur
einer “Rich Thin Client”-Applikation ist ähnlich einer klassischen HTML-basierten Webapplikation. Auch hier ist die gesamte Applikation serverseitig implementiert, statt des
Browsers wird jedoch eine mächtigere User Interface Rendering Engine benötigt, die entweder separat auf dem Client oder aber als Plugin eines Internetbrowsers zu installieren
ist. Die weiteren Architekturvarianten unterscheiden sich von der “Rich Thin Client”Variante dadurch, dass mehr und mehr Logik vom Server auf den Client ausgelagert wird.
Eine Möglichkeit dieser Auslagerung besteht darin, die Präsentationslogik auf dem Client
auszuführen, die Geschäftslogik jedoch noch auf dem Server zu lassen. Im extremsten Fall
- der “Rich Fat Client”-Variante - liegt die gesamte Applikationslogik auf dem Client vor
und lediglich die Daten werden noch auf einem Server gehalten.
Vor dem Einsatz von RIA-Technologie muss jedoch die Entscheidung darüber getroffen
4 Rich Internet Application Technologien
44
Bild 4.1: RIA-Architektur vgl. [Wal08]
werden, welche Applikationen überhaupt mit derartiger Technologie entwickelt oder erweitert werden sollen und welche Technologie aus dem heute noch unübersichtlichen Markt
verwendet werden soll. Die Entscheidung, ob für die Entwicklung einer Webapplikation
(oder deren Teile) RIA-Technologie eingesetzt werden soll, hängt von den Anforderungen
an die Benutzerschnittstelle ab. Dabei steigen der Entwicklungsaufwand und die Belastung
des Netzwerks im Betrieb überproportional zu den Anforderungen an die Benutzerschnittstelle, die in der Webapplikation realisiert werden soll.
Bild 4.2: Einsatzbereich für RIA-Technologie vgl. [Wal08]
4 Rich Internet Application Technologien
45
Die Technologien zur Umsetzung der Rich Internet Applikationen sind typischerweise
Ajax-Lösungen, die auf JavaScript basieren oder Lösungen, die auf Adobes “Flash” Umgebung basieren. Für den Einsatz von Flash gibt es mittlerweile mehrere Vorgehensweisen. Flash-Applikationen können wie üblich über die Tools, wie Adobe Flash oder
SWiSH, erstellt werden. Es ist auch möglich, die Applikation in einer XML-Sprache zu
programmieren und durch einen Flash-Compiler in eine ausführbare SWF-Datei umzuwandeln. Diesen Ansatz verfolgen sowohl Adobe Flex als auch OpenLaszlo. Ajax selbst
ist keine eigenständige Technologie, sondern eine Konzeption der Benutzung mehrerer
angrenzenden Technologien. In folgenden Unterabschnitten werden Ajax und Adobe Flex
vorgestellt und ihre Anwendung in Web-Applikationen behandelt.
4.1.1
AJAX
Ajax (Asynchronous JavaScript and XML) ist eine Gruppe zusammenhängender Techniken für die Entwicklung von Web-Schnittstellen, die auf der Clientseite als interaktive
Anwendungen benutzt werden und es erlauben, Anfragen an den Server durchzuführen
und die Webseiten zu verändern, ohne dass die Webseite komplett neu geladen wird.
Mithilfe von Ajax rufen die Web-Applikationen die Daten vom Server asynchron im Hintergrund ab und beeinflussen die Darstellung und das Verhalten der Seiten nicht.
Ajax ist eine Sammlung von Technologien, die seit der Entstehung von Web existieren
und eine Ajax-Anwendung basiert auf folgenden Web-Techniken:
• Eine Kombination von HTML (oder XHTML) und CSS zur Darstellung und Gestaltung der Information
• Document Object Model (DOM) zur dynamischen und interaktiven Repräsentation
der Daten oder Inhalte
• Datenaustausch und -transformation unter Einsatz von XML und XSLT
• XMLHttpRequest-Objekt für asynchrone Extraktion der Daten von dem Server
• JavaScript, welches als Schnittstelle zwischen einzelnen Komponenten dient
Die Ajax-Anwendungen basieren auf dem Client-Server-Architekturprinzip, so dass sowohl
im Browser als auch auf dem Server eine Komponente notwendig ist, die eine Ajax-basierte
Kommunikation ermöglicht.
Im Browser wird zur Umsetzung solcher Komponente meistens eine umfangreiche Funktionalität benötigt, die auf JavaScript und XMLHttpRequest-Objekt beruht und für welche
zwei mögliche Varianten der Umsetzung zur Verfügung stehen:
4 Rich Internet Application Technologien
46
Direkte Ajax-Implementierung Dabei ist auf der Clientseite ein API zur direkten
Kommunikation von Daten verfügbar. Dafür muss auf der Serverseite ein Einstiegspunkt
zur Übermittlung der Daten realisiert werden.
Indirekte Ajax-Implementierung Bei dieser Vorgehensweise werden von der Serverseite an die Clientseite neue HTML-Fragmente gesendet und die vorhandene Seite wird
ergänzt oder Teile davon werden ersetzt. Dafür wird auf der Serverseite die anzuzeigende Seite komplett neu aufgebaut, es werden jedoch nur die relevanten Differenzen zur
Clientseite übertragen.
Beide Verfahren haben ihre Vor- und Nachteile. Während die direkte Verwendung oft
serverseitige Ressourcen schont, vereinfacht die indirekte Variante die Implementierung.
Der Prozessfluss der Anwendung und die eigentliche Programmlogik werden auf einem
Server untergebracht. Das kann in Form von EJBs, .NET-Komponenten oder aber in Form
von Skript-Komponenten sein. Eine spezifische Technik, mit deren Hilfe die serverseitige
Programmlogik umgesetzt werden muss, wird vom Ajax-Konzept nicht erfordert. Sowohl
der Server als auch die Anwendungslogik werden im Ajax-Kontext als Server-Plattform
bezeichnet.
Zur Aufgabe des Webservers gehört bei den Ajax-Applikationen unter anderem die Bereitstellung der im Browser benötigten Komponenten. Da aber ein Cross-Site-Scripting
aufgrund der Sicherheitseinstellungen der Browser nicht erlaubt ist, stellt der Server auch
Daten von anderen Servern für die Clientseite zur Verfügung und übernimmt damit die
Funktion eines Proxy-Rechners.
Ajax ist eine einfache Technologie, die von den meisten Browsern unterstützt wird. Die
einzige vorläufige Bedingung für den Einsatz von Ajax ist die Verwendung von JavaScript,
wodurch alle in Ajax vorhandenen Techniken zusammen verbunden werden. JavaScript ist
eine schlanke, dynamisch typisierte, objektorientierte, aber klassenlose Skriptsprache, die
dennoch allen objektorientierten Programmierparadigmen unter anderem auf der Basis
von Prototypen gerecht wird. In JavaScript lässt sich objektorientiert und sowohl prozedural als auch rein funktional programmieren.
4.1.2
Adobe Flex
Bei Flex (Referenz auf die Flexseite) handelt es sich um ein Open-Source-Framework
für die Entwicklung und Pflege webbasierter Anwendungen, welche sich in allen gängigen
Browsern ausführen lassen. Allerdings wird hierfur als Vorraussetzung eine Vorinstallation
des Flash-Plugins in der Version 9 benötigt. In der Praxis stellt es kein Hindernis dar,
4 Rich Internet Application Technologien
47
da das Flash-Plugin laut Adobe bereits auf über 98%1 aller Desktops weltweit installiert
ist. Für die Entwicklung der Flex- Anwendungen kann sowohl eine kostenloses Flex-SDK
R Flex
R BuilderTM
(Software Development Kit) als auch ein kostenpflichtiger Adobe
verwendet werden.
Das Flex-Framework schliesst in sich einen Kernsatz von Sprachen und Bibliotheken ein,
die als Grundlage aller Flexanwendungen dienen. Durch die Benutzung von MXML, ActionScript und der Klassenbibliothek von Flex kann der Inhalt der Anwendung konstruiert,
kompiliert und in einen Flash-Player geladen werden.
MXML
MXML ist eine XML-basierte Auszeichnungssprache ursprünglich entwickelt für Beschreibung des Bildschirmlayouts. In dieser Hinsicht ähnelt sie sich HTML. Mit den MXMLTags können Komponenten für Formensteuerung und Mediawiedergabe den Layoutcontainern wie Grid zugefügt werden. Zusätzlich können mithilfe von MXML Effekte, Transitionen, Datenmodelle und Datenbindung beschrieben werden. MXML ist hinreichend
robust, so dass es möglich ist, viele Applikationen vollständig mit MXML zu bilden.
Obwohl MXML den Flex-Inhalt deklarativ erzeugt, ist sie recht leistungsstark. MXML
bietet eine schnelle und mächtige Art, das Layout und den Inhalt der Benutzerschnittstellen zu erzeugen. Die MXML-Dokumente werden jedoch in mehreren Schritten kompiliert.
Der erste davon konvertiert MXML in eine Klasse von ActionScript. Das bedeutet, dass
die MXML-Dokumente die volle Kraft des objekt-orientierten Designs enthalten, bieten
aber den Komfort einer Auszeichnungssprache. Außerdem werden die MXML-Dokumente
als Klassen von ActionScript zur Laufzeit behandelt.
ActionScript
ActionScript ist die Programmiersprache, die vom Flash-Player verstanden wird und ist
die grundlegende Engine für alle Flex-Anwendungen. MXML vereinfacht die Gestaltung
des Bildschirms und viele Grundaufgaben, doch alles, was mit MXML möglich ist, ist
auch mit ActionScript möglich und mit ActionScript kann mehr gemacht werden als mit
MXML. Zum Beispiel ist ActionScript erforderlich, um auf Ereignisse wie Mausklicks zu
reagieren.
Obwohl es möglich ist, eine Applikation vollständig mit MXML oder mit ActionScript zu
bilden, ist es mehr üblich und sinnvoll, MXML und ActionScript in einer geeigneten Ba1
Quelle: http://www.adobe.com/products/player census/flashplayer/version penetration.html
4 Rich Internet Application Technologien
48
lance zu benutzen. Beide haben ihre Vorteile und sie funktionieren gut zusammen. MXML
ist am besten für die Gestaltung der Benutzeroberfläche und elementare Datenfunktionen
geeignet, ActionScript für Benutzerinteraktion, komplexe Datenfunktionalität und jede
spezifische Funktionalität, die in der Klassenbibliothek von Flex nicht enthalten ist.
ActionScript ist nativ vom Flash Player unterstützt und erfordert keine zusätzlichen Bibliotheken, um zu laufen. Alle nativen Klassen von ActionScript (Klassen, die im Flash
Player eingebaut sind) sind im Paket flash oder im Top-Level-Packet gepackt. Im Gegensatz ist Flex-Framework in ActionScript geschrieben, dessen Klassen aber werden in einer
.swf-Datei zur Kompilierungszeit eingefügt. Alle Klassen von Flex-Framework befinden
sich im mx-Packet.
Unterschiede zwischen traditionellen und Flex-Webanwendungen
Viele Anwendungen im Web benutzen HTML als ihre Benutzerschnittstelle. FlexAnwendungen sind in vielen Hinsichten ähnlich, haben aber deutliche Unterschiede. Sowohl traditionelle als auch Flex-Anwendungen haben n Schichten. Die genaue Anzahl
und Typen der Schichten in einer Anwendung hängen von mehreren Faktoren ab. Die
meisten traditionellen Anwendungen haben zumindest eine Datenschicht, eine Funktionsschicht und eine Präsentationsschicht. Flex-Anwendungen haben eine Datenschicht und eine Funktionsschicht, allerdings führen sie auch eine Clientschicht ein, was sie stark von den
traditionellen Webanwendungen unterscheidet. Die Clientschicht der Flex-Anwendungen
ermöglicht die Offlineberechnungen von den Clienten, das Freisetzen der Netzwerklatenz
und das Erstellen von reaktionsfähigen und höchst interaktiven Benutzerschnittstellen.
Datenschichten bestehen hauptsächlich aus Datenbanken oder ähnlichen Resourcen. Die
Funktionsschichten bestehen aus der Kernlogik der Anwendungsfunktion. Zum Beispiel
kann eine Funktionsschicht Aufforderungen von einer Client- oder Präsentationsschicht
annehmen, die Datenschicht anfragen und die angefragten Daten zurückgeben.
In traditionellen Anwendungen besteht die Präsentationsschicht aus HTML, CSS, JavaScript, JSP, ASP, PHP oder ähnlichen Dokumenten. Üblicherweise wird eine Aufforderung
vom Webbrowser des Benutzers zu einer spezifischen Resource der Präsentationsschicht
gemacht und der Webserver startet die erforderlichen Interpreter, um die Resource in
HTML und JavaScript zu konvertieren, welche danach dem Webbrowser auf dem Clientcomputer zurückgegeben wird. Technisch gesehen ist der im Browser übersetzte HTML
eine Clientschicht in einer traditionellen Webanwendung. Da aber die Clientschicht einer
traditionellen Webanwendung zustandslos und nicht reagierend ist, wird sie im Allgemeinen nicht als vollwertige Schicht betrachtet. (Eine Ausnahme dafür ist der Fall einer
Ajax-Anwendung, welche JavaScript und XML auf der Clientseite benutzt um reagierende
4 Rich Internet Application Technologien
49
und anspruchsvolle Clientschichten zu bilden.)
Die Flex-Anwendungen sind gewöhnlich innerhalb der Präsentationsschicht eingebettet.
Zusätzlich können sie mit der Präsentationsschicht zusammengefügt sein, um fest gekopellte clientseitige Systeme zu bilden. Flex-Anwendungen benutzen Flash Player, um
anspruchsvolle Teile der Clientschicht der Anwendung auszuführen. Ein Client der FlexAnwendung ist zustandsbasiert, was bedeutet, dass er die Darstellung ändern kann, ohne
eine Aufforderung an den Server senden zu müssen. Außerdem ist der Client der FlexAnwendung reaktionsfähig. Zum Beispiel kann der Flash Player auf die Benutzerinteraktionen wie Mausbewegungen, Mausclicks und Tastatureingaben und auf Ereignisse wie
Notifikationen von der Funktionsschicht, wenn Daten an den Client geliefert werden, reagieren. Flash Player kann auch auf die Timerereignisse reagieren. Da der Flash Player
ein intelligenter Client ist, ist er fähig, den Netzwerk-Overhead zu vermeiden und die
Bandbreitenutzung zu sparen, indem er die clientseitige Logik steuert, ohne die Funktionsschicht hinzuzuziehen. Zum Beispiel kann eine Flex-Anwendung den Benutzer durch
eine schrittbasierte oder Assistent-ähnliche Interface führen, die Daten sammeln und validieren und es dem Benutzer erlauben, die vorhergehenden Schritte zu aktualisieren und
editieren, ohne die Funktionsschicht aufzufordern, bis der Benutzer entscheidet, die Daten
abzusenden.
4.2
Fazit
Das grundsätzliche Problem, auf das bei fast allen Lösungen gestoßen wird, ist die Unreife der Produkte und die hohe Fragmentierung des Marktes. Das erschwert eine Auswahl,
wenn eine langfristige Investition geplant wird. In dieser Situation ist es sinnvoll, bei der
Auswahl einer Lösung ausschließlich von den konkreten Anforderungen und Randbedingungen der zu entwickelnden Applikation auszugehen.
Ein weiterer Punkt ist es, dass für die RIA entsprechende Plug-ins, Laufzeitumgebungen
oder Skripting Engines installiert werden müssen. Diese werden im Laufe der Zeit aktualisiert, so dass die lokale Version und die Applikationen auf dem Laufenden gehalten
werden müssen.
Für die Implementierung des Prototyps im praktischen Teil dieser Arbeit wurde eine Entscheidung zugunsten der Adobe Flex Technologie getroffen. Diese Technologie zeichnet
sich im Gegensatz zu Ajax dadurch aus, dass sie von allen Browsern unterstützt wird
und die damit erstellten Applikationen in jedem Browser identisch aussehen und funktionieren. Die gemeinsame balancierte Verwendung von MXML und ActionScript liefert ein
mächtiges Konzept für die Umsetzung der Rich Internet Applikationen.
Kapitel 5
Kontept/Architektur des Business
Process Modeler
Das Ziel ist es, ein Werkzeug zur Modellierung von Arbeitsabläufen und Geschäftsprozessen zu entwickeln. Hierbei sollte es sich um eine Lösung handeln, welche die BPMN
unterstützt, möglichst benutzerfreundlich und im Rahmen einer SaaS-Lösung innerhalb
eines Browsers ausführbar ist. Für die Entwicklung und Umsetzung der Softwaresysteme wird gewöhnlich eine durch das klassische Wasserfallmodell definierte Vorgehensweise
verwendet. Im Folgenden werden die ersten zwei Phasen des Wasserfallmodels vorgestellt:
1. die Definition der Anforderungen
2. Entwurf und Design des Systems
Anschließend wird ein Beispiel der Vorgehensweise eines Anwenders bei der Verwendung
des Softwaresystems beschrieben.
5.1
Anforderungen
In dieser Phase des Wasserfallmodells werden alle Leistungen beschrieben, die die zu erstellende Software erbringen soll. Bestandteile dieser Phase, auf die in diesem Abschnitt
eingegangen wird, sind: funktionale Anforderungen, nichtfunktionale Anforderungen und
Anwendungsfälle (Use Cases). Die funktionalen Anforderungen beschreiben, was die Software in bestimmten Situationen bzw. bei bestimmten Eingaben leisten soll. Die nichtfunktionalen Anforderungen sind Anforderungen, die über die Funktionalität der Software hinausgehen (wie zum Beispiel Ressourcenverbrauch, Wahl der Entwicklungsumge-
5 Kontept/Architektur des Business Process Modeler
51
bung usw.). Die Use Cases beschreiben funktionale Anforderungen im Hinblick auf die
Benutzerziele.
Funktionale Anforderungen
Folgende funktionale Anforderungen wurden für die Umsetzung des Modellierungswerkzeugs vorgegeben:
- Software muss mittels eines URL-Aufrufes innerhalb eines Browsers ausführbar sein.
- Ein Zugriff auf die BPMN-Elemente soll mittels einer Schnellzugriffsleiste bzw. eines
Akkordeon-Elements ermöglicht werden.
- Mittels des Drag&Drop-Verfahrens soll es möglich sein, die Elemente der BPMNNotation auf der Benutzeroberfläche zu platzieren und zu verschieben.
- Es soll möglich sein, Elemente gemaß der BPMN-Notation untereinander zu verbinden.
- Mittels eines Menüaufrufes soll es ermöglicht werden, eine Dialogbox mit allgemeinen
Einstellungen aufzurufen.
- Mittels eines Doppelclicks auf ein Aktivitäten-Element soll ermöglicht werden, eine Dialogbox mit Einstellungen für das ausgewählte Element aufzurufen.
- Mittels eines Doppelclicks auf ein Verbindungselement (Sequence Flow) soll es
ermöglicht werden, eine Dialogbox mit Einstellungen für das ausgewählte Element aufzurufen.
- Es sollen für die Benutzeroberflache übliche Funktionalitäten (ausschneiden, kopieren,
einfügen) umgesetzt werden.
- Es soll ermöglicht werden, im PAVONE ProcessModeler XML-Format gespeicherte Prozessdefinitionen zu importieren.
- Es soll ermöglicht werden, Prozessdefinitionen im PAVONE ProcessModeler XMLFormat zu exportieren.
Nichtfunktionale Anforderungen
Einer Anwendung, die innerhalb eines Browsers ausgeführt wird, stehen zwangsläufig geringere Ressourcen zur Verfügung als einer Anwendung, die direkt auf die Systemressourcen zugreifen kann, weil zum einen der Zugriff über mehrere Schichten erfolgen
5 Kontept/Architektur des Business Process Modeler
52
muss und zum anderen ein Zugriff auf die Hardwarebeschleunigungsschnittstellen (solche
wie z.B. DirectX-Schnittstellen unter Windows) versperrt ist. Somit stehen einer FlashAnwendung nur die CPU-Ressourcen zur Verfügung, auf die die Anwendung über mehrere
“Umwege” (Schichten) (Browser ⇒ System) zugreifen kann. Dies führt trivialerweise auf
die nichtfunktionale Anforderung, dass die Software möglichst effizient programmiert werden muss.
Use Cases
Es können folgende USE CASES modelliert werden:
UC1: Neuen Arbeitsablauf modellieren
Hauptakteur: Kunde1, Kunde2
Nebenakteure: keine
Hauptszenario:
1. Kunde startet eine neue Modellierungssession
2. Kunde setzt mittels der Dialogbox Allgemeine Einstellungen
3. Kunde modelliert einen Arbeitsablauf
4. Kunde setzt mittels der Dialogboxen Einstellungen für Aktivitäten und Flüsse
5. Kunde speichert den modellierten Arbeitsablauf
UC2: PAVONE ProcessModeler XML-Definition editieren
1. Kunde1 öffnet die im PAVONE ProcessModeler XML-Format definierte Arbeitsabläufe
2. Kunde1 bearbeitet den Arbeitsablauf im PAVONE ProcessModeler
3. Kunde1 speichert die neue Version des Arbeitsablaufs im PAVONE ProcessModeler
im XML-Format
4. Kunde2 öffnet die XML-Datei mit dem Arbeitsablauf und bearbeitet diesen
5.2
Design und Entwurf
Im Wasserfallmodel bestehen das Design und die Entwurf-Phase aus zwei Teilen: dem Grobentwurf und dem Feinentwurf. Im Grobentwurf wird das System in Teilsysteme/Module
5 Kontept/Architektur des Business Process Modeler
53
zerlegt, die für die Umsetzung erforderlichen Bibliotheken, Frameworks und Module werden ausgewählt.
5.2.1
Grobentwurf
In dem Abschnitt zuvor wurde die Anforderung definiert, dass der Benutzer in der Lage
sein soll, eine PAVONE ProcessModeler XML Ausführungsdatei in den Prototyp zu laden, im Prototyp zu bearbeiten und die Änderungen als eine PAVONE ProcessModeler
XML Ausführungsdatei zu speichern. Diese Anforderung gibt die Richtung der Entwicklung des Prototyps vor. Dieser muss im Prototyp über eine Schnittstelle verfügen, welche
die XML-Dateien laden, interpretieren und speichern kann. Da der direkte Dateizugriff
wegen der Sicherheitsrestriktionen des Adobe Flash Players nicht möglich ist, muss dies
unter Einbeziehung eines Webservers geschehen. Hierfür muss eine Vermittlungsschnittstelle umgesetzt werden, welche eine Kommunikation zwischen dem Webserver und dem
Prototyp ermöglicht. Dies führt nun auf die im Folgenden beschriebene Softwarearchitektur.
XML
Prototyp
XML
JBoss Webserver
Desktop
XML
PAVONE ProcessModeler
Bild 5.1: Systemarchitektur: Externe Anforderungen
Allgemein wird für ein Softwaresystem eine zentrale Instanz gebraucht, welche die Arbeit einzelner Module untereinander koordiniert. (Im weiteren Verlauf wird dieses Mo-
5 Kontept/Architektur des Business Process Modeler
54
dul als Kernel bezeichnet.) Da es sich bei der Software um ein bedienbares Softwarewerkzeug handelt, wird entsprechend ein Benutzeroberflächenmodul benötigt, welches die
Darstellungs- und Bedingungslogik der gesamten Anwendung umsetzt. (Im Weiteren wird
es als Benutzeroberflächenmodul bezeichnet.) Bei dem Softwaresystem handelt es sich um
ein Werkzeug, welches eine Modellierung von Arbeitsabläufen mittels der BPMN-Notation
unterstützen muss. Aus diesem Grund wird eine Datenstruktur benötigt, welche die einzelnen Elemente und deren Beziehungen im System speichert und Zugriffsmöglichkeiten für
die anderen Module anbietet. (Im folgenden wird dieses Modul als BPMN Datenstruktur
bezeichnet.)
Da das Modellierungswerkzeug auf die als XML-Dateien gespeicherten Arbeitsabläufe
zugreifen und die Arbeitsabläufe speichern muss, wird ein Schnittstellenmodul benötigt,
welches einerseits die in den Dateien gespeicherten Einstellungen und Modeler-Strukturen
auf die interne Darstellung abbildet und andererseits die im internen Format gespeicherten
Informationen in einer für die anderen Anwendungen verstandlichen Form speichert (im
Folgenden als XML-Zugriffsmodul bezeichnet).
Für die Zusammenarbeit der einzelnen Module müssen geeignete Kommunikationsschnittstellen entwickelt werden, wobei die komplette Kommunikation über das Kernelmodul
zentral erfolgen soll, da es im allgemeinen von Vorteil ist, eine einzige koordinierende Instanz zu haben, welche einen einheitlichen Zugriff auf das gesamte System ermöglicht und
regelt.
Ein Überblick der Gesamtarchitektur ist in der Abbildung 5.2 zu sehen:
Benutzeroberfläche
Modul
Kernel
Modul
XML Dateizugriff
Modul
Bild 5.2: Überblick der Softwarearchitektur
BPMN Datenstruktur
Modul
5 Kontept/Architektur des Business Process Modeler
55
Auswahl der Bibliotheken
Da es sich bei diesem Softwaresystem um eine Anwendung handelt, die mit Grafiken
arbeitet, werden die Klassen zum Laden von Bitmap-Grafiken, sowie die mathematischen
Funktionalitäten für die Abbildung der geladenen Bitmaps auf die Benutzeroberfläche
benötigt. Diese Funktionalitäten werden von Standard Flash Bibliotheken geliefert.
• flash.display.Graphics;
• flash.geom.Matrix;
• flash.display.BitmapData;
• flash.display.Bitmap;
Bei den auf Benutzeroberflächen basierten Softwaresystemen werden sehr viele Abläufe
über die Ereignisse (Aktivieren eines Menüs, Mausdoppelklick, etc) ausgelöst und abgehandelt. Hierfür können die Flash-Klassen verwendet werden:
• flash.display.StageDisplayState;
• flash.events.*;
• flash.ui.Mouse;
Bei den Dialogboxen, die umgesetzt werden müssen, handelt es sich technisch gesehen um
Pop-up Fenster. Für diese wird eine entsprechende Flash-Klasse benötigt:
• mx.managers.PopUpManager;
Um auf das lokale Dateisystem zuzugreifen, muss eine entsprechende Klasse verwendet
werden:
• flash.net.FileReference;
Zur Kommunikation mit dem Webserver werden Funktionalitäten zur Arbeit mit dem
Netzwerk benötigt:
• flash.net.*;
5 Kontept/Architektur des Business Process Modeler
5.2.2
56
Feinentwurf
Als Nächstes müssen die in dem Grobentwurf entstandenen Module verfeinert werden.
Dafür werden die Module in Teilmodule unterteilt und deren Funktionalitäten und Eigenschaften sind auf die Strukturen, die den einzelnen Programmblöcken entsprechen, abzubilden. ActionScript ist eine objekt-orientierte Sprache und viele Funktionalitäten und
Eigenschaften lassen sich dabei intuitiv direkt in den einzelnen Klassen umsetzen. Ferner ermöglicht eine objekt-orientierte Vorgehensweise auch bessere Erweiterbarkeit und
Wartbarkeit.
Verfeinerung des Benutzeroberflächenmoduls
Erfahrungsgemäß besteht die Benutzeroberfläche eines “klassischen” Modellierungswerkzeugs aus einer bedienbaren Menüleiste mit Standardaktionen, einer Schnellzugangsleiste mit am häufigsten verwendeten Aktionen, einem so genannten AkkordeonBedienungselement, welcher den Zugriff auf die sämtlichen Elemente einer Notation
ermöglicht, sowie dem eigentlichen Modellierungsbereich.
Zur Darstellung und Umsetzung der Modellierungsumgebung bietet sich ein CanvasObjekt der Entwicklungsumgebung an.
Bei der Abbildung der graphischen Inhalte auf das Canvas-Objekt sind grundsätzlich zwei
Vorgehensweisen möglich. Zum einen liefert Adobe Flex die graphischen Objekte des jeweiligen Darstellungstypes (wie zum Beispiel Texte, Texteingabefelder, Bitmaps usw.),
welche direkt erzeugt und dem Canvas-Objekt hinzugefügt werden können. Dies vereinfacht zwar die Programmierung, führt jedoch in der Praxis bei großeren Darstellungen zur
Verringerung der Performance. Eine andere Vorgehensweise besteht darin, die jeweiligen
graphischen Objekte in Form vom Bitmaps zu erzeugen und auf das Canvas-Objekt zu
plotten.
Eine nichtfunktionale Anforderung ist es, mit Ressourcen möglichst sparend umzugehen.
Aus diesem Grund muss die zweite aufwendigere aber schnellere Vorgehensweise gewählt
werden. Diese Vorgehensweise bietet sich auch für die Umsetzung der weiteren Elemente: dem Akkordeon und der Schnellzugangsleiste. Diese können im Endeffekt als Bitmaps
erzeugt und auf die Fläche geplottet werden. Dies würde in der Praxis einen wesentlich flexibleren Einsatz dieser Elemente ermöglichen, da es möglich wäre, diese auf eine beliebige
Art darzustellen und auf eine beliebige Stelle der Benutzeroberfläche zu platzieren.
Diese Elemente können gemaß dem folgenden Schema (in der Abbildung 5.3 zu sehen)
angeordnet werden:
5 Kontept/Architektur des Business Process Modeler
57
Menüleiste
Schnellzugangsleiste
Akkordeon
Medellierungsoberfläche
Bild 5.3: Benutzeroberfläche. Standardkomponenten.
Menüleiste
Die Umsetzung der Menüleiste ist durch die technischen Gegebenheiten der Entwicklungsumgebung vorgegeben und lässt keine Variationen bei dem Design und Implementierung
zu. Technisch gesehen handelt es sich um eine Mischung aus MXML und ActionScript. In
MXML wird der optische Menüaufbau und in ActionScript die eigentliche Funktionalität
der einzelnen Menüaufrufe umgesetzt.
1
<menuitem label="File">
2
<menuitem label="New" data="new"/>
3
...
4
</menuitem>
Schnellzugangsleiste
Bei der Schnellzugangsleiste handelt es sich um eine rechteckige Struktur mit einer Menge
von Symbolen. Durch einen Mausklick auf eines dieser Symbole muss ein diesem Symbol
zugeordnetes Ereignis ausgelöst und behandelt werden.
Bild 5.4: Schnellzugangsleiste
Somit wird eine Klasse benötigt, welche in den Objektvariablen die absoluten Koordinaten
der jeweiligen Elemente speichert, eine Methode zum Zeichnen des Elements, sowie eine
5 Kontept/Architektur des Business Process Modeler
58
Methode, die die Mauseingaben behandelt und den Namen des angeklickten Symbols
zurückliefert.
Akkordeon
Beim Akkordeonelement handelt es sich um ein spezifisches Objekt, welches eine größere Menge von graphischen Elementen beinhalten und darstellen kann. Diese Elemente
können nach bestimmten Kriterien zu kleineren Teilgruppen unter einem jeweiligen gemeinsamen Label zusammengefasst werden. Durch die Aktivierung dieses Labels werden
die dazugehörenden Elemente angezeigt, während die Elemente von anderen Labels versteckt werden.
Bild 5.5: Akkordeon
Für die Umsetzung dieses Elements kann eine geeignete eigenständige Klasse (UIAccordion) entworfen werden. Eine Instanz dieser Klasse benötigt Koordinaten für die Darstellung
auf der Zeichenfläche und Variablen zum Speichern des jeweiligen Objektzustandes.
Da es sich um ein graphisches Element handelt, muss eine Methode zum Zeichnen implementiert werden, welcher als Parameter die Hauptzeichenfläche übergeben wird. Das
Akkordeonelement muss auf die Mauseingaben reagieren und entweder die selektierten
Elemente zurückliefern oder den Zustand des Akkordeonelements umschalten. Hierfür
wird eine Methode benötigt, welche die Mauseingabekoordinaten überprüft und eine entsprechende Aktion ausführt.
Lasso
Beim Lasso handelt es sich um eine spezielle Benutzeroberflächenfunktionalität, die es
ermöglicht, eine Gruppe von Elementen zu selektieren und ggf. zu verschieben. Zur Aktivierung dieser Funktionalität muss die Benutzeroberfläche des Softwaresystems mittels
einer Mauseingabefolge “umgeschaltet” werden. Für die “Schaltung” der Benutzeroberfläche ist das Kernel-Modul verantwortlich, deswegen muss diese Funktionalität in enger
5 Kontept/Architektur des Business Process Modeler
59
Bild 5.6: Uiaccordeon
“Zusammenarbeit” mit dem Kernel-Modul umgesetzt werden. Da es sich um eine abgegrenzte in sich geschlossene Funktionalität handelt, kann hierfür eine eigenständige Klasse
entworfen und eingesetzt werden.
Bild 5.7: Lasso im Einsatz
Ein Lasso wird auf bestimmte Koordinaten der Benutzeroberfläche “geworfen”. Diese
Stelle muss in dem Lasso-Objekt mittels einer hierfür geeigneten Methode (throwLassoAtCoords) gespeichert werden. Nachdem das Lasso-Objekt “geworfen” wurde, wird es
gezogen und alle Objekte, die in das Lasso geraten, werden markiert. Dieser Vorgang kann
in einer entsprechenden Methode (pullLassoToCoords()) umgesetzt werden. Diese Methode muss das Lasso optisch auf die angegebenen Koordinaten verschieben und mittels einer
Kollisionsabfrage die Elemente, die in das Lasso “geraten”, markieren. Falls graphische
Elemente mit dem Lasso markiert wurden, entsteht ein spezieller Bereich auf der Benutzeroberfläche, welcher die markierten Elemente und das Lasso im losgelassenen Zustand
enthält. Sobald nun der Mauszeiger über diesem Bereich schwebt, muss er sein Aussehen verändern, um zu verdeutlichen, dass dieser Bereich mit den selektierten Elementen
verschoben werden kann. Aus diesem Grund wird eine Methode (processMouseInput())
benötigt, welche das Aussehen des Mauszeigers entsprechend ändert. Falls der Benutzer
sich dazu entschließt, das Lasso und die im Lasso enthaltenen Elemente zu verschieben,
müssen die Lassokoordinaten und die Koordinaten der selektierten Elemente entsprechend
den neuen, bei der Bewegung entstehenden Koordinaten angepasst werden. Dies kann innerhalb einer Methode (moveCapturedElements()) umgesetzt werden. Für das Objekt der
5 Kontept/Architektur des Business Process Modeler
60
Klasse werden im Wesentlichen Variablen für den Start- und Endpunktkoordinaten des
Lassos benötigt.
Bild 5.8: Lasso-Klasse
Dialogboxen
Für die Anwendung werden insgesamt drei Dialoge benötigt. Ein Dialog, in welchem
die allgemeinen Einstellungen der aktuellen Sitzung manipuliert und angesehen werden
können, sowie zwei Dialoge, jeweils für erweiterte Einstellungen der Aktivitäten und Verbindungen.
Technisch gesehen kann eine Dialogbox als ein Popup-Fenster aufgerufen werden.
Für die Umsetzung des Popup-Fensters kann eine Mischstruktur aus der MXMLAuszeichnungssprache und dem ActionScript verwendet werden, wobei die meisten statischen Elemente des Popup-Fensters im MXML und die dynamischen in ActionScript
programmiert werden.
Beim Design und Entwurf muss für diese Dialoge die Vorgabe erfüllt werden, äußerlich und
funktionell den Dialogen aus der PAVONE ProzessModeller Anwendung zu entsprechen.
Ein Dialog besteht aus einer Menge der Elementen: Texteingabefeldern, einer CheckBox,
einem Radio- sowie einem Popupbutton. Um dieses Element zu entwerfen, muss verstanden werden, wie eine solche Struktur in der Adobe Flex Entwicklungsumgebung zu einem
Dialog umgesetzt werden kann.
Die ersten drei Elemente sind statisch und können mit der MXML-Auszeichnungssprache
umgesetzt werden. Hierbei wird eine hierarchische Struktur in einem XML-ähnlichen
Speicherformat erstellt. Der Typ der Struktur wird mittels eines entsprechenden Wurzeltags eingeleitet. Da es sich hierbei um ein Fenster handelt, wird die Struktur mit einem
(<mx:TitleWindow>)-Tag eingeleitet. Technisch werden für diejenigen graphischen Elemente, die sich innerhalb anderer graphischen Elemente befinden, die ihnen entsprechende
5 Kontept/Architektur des Business Process Modeler
61
Tags innerhalb der Tags der umschliessenden XML-Elemente im Dokument gesetzt. Da
alle graphischen Elemente innerhalb des Fensters platziert werden, muss dies durch das
Hinzufügen entsprechender Tags umgesetzt werden. Wenn zum Beispiel zwei Textfelder in
dem Dialog hinzugefügt werden müssen, wird dies durch den Einsatz von dem in der Entwicklungsumgebung definierten <mx:TextInput>-Tag eingeleitet. Als Parameter müssen
innerhalb des Tags absolute Koordinaten des Texteingabefeldes, ein das Element eindeutig
identifizierender Id, sowie eine Textzuweisung definiert werden.
1
<mx:TitleWindow>
2
<mx:TextInput x="80" y="10" id="BPMNActivityName" text ="Name"/>
3
...
4
</mx:TitleWindow>
Auf solche Weise können weitere statische Elemente, wie zum Beispiel Radiobuttons,
Checkboxen oder Panels hinzugefügt werden. Etwas komplizierter gestaltet sich die Umsetzung von dynamischen Elementen (wie zum Beispiel eines Popupbuttons). Deren Programmierung muss gewöhnlich mit Zuhilfenahme des ActionScriptes erfolgen. Der Einsatz des Scriptes erfolgt innerhalb der MXML-Auszeichnungssprache durch Einleitung
eines <mx:Script>-Tags. Für das Verhalten und die Reaktionen des dynamischen Elements muss ein Ereignismodell definiert werden, welches auf die Elementeingaben reagiert, sowie die dem Kontext entsprechenden Aktionen ausführt. Um den Datenaustausch
zwischen dem ActionScript und MXML-Elementen zu gewährleisten, muss eine MXMLDatenstruktur definiert werden, welche die den IDs zugeordneten Datenwerte dem ActionScript zur Verfügung stellt:
strAcitvityName = modelBPMNActivity.BPMNActivityName;
1
2
<mx:Model id="modelBPMNActivity">
<BPMNActivity>
3
<BPMNActivityName>{BPMNActivityName.text}</BPMNActivityName>
4
...
5
6
</BPMNActivity>
</mx:Model>
Bei den drei Dialogboxen handelt es sich praktisch um Minianwendungen, die mittels der
vorgestellten Techniken umgesetzt werden können.
5 Kontept/Architektur des Business Process Modeler
62
Bild 5.9: Aktivitäten-Dialog
Umsetzung der BPMN Datenstruktur
Für die Umsetzung der BPMN-Datenstruktur bietet sich eine strikte objekt-orientierte
Vorgehensweise an, wobei die einzelnen BPMN-Elemente auf jeweils entsprechende
ActionScript-Klassen abgebildet werden. Ähnliche Funktionalitäten der BPMN-Elemente
können in den jeweiligen Elternklassen zusammengefasst und in den Kinderklassen können
die Funktionalitäten und Ausprägungen der einzelnen Elemente verfeinert werden. Es ergibt sich das im Folgenden beschriebene dreistufige Klassenmodell.
Klassenstufe 1 Allgemein wird eine Oberklasse benötigt, die die gesamten Einstellungen für alle Elemente der Unterklassen speichert und eine einheitliche Behandlung aller
BPMN Elemente ermöglicht. (Dies sind zum Beispiel absolute Koordinaten, allgemeine
Einstellungen wie z.B. Schriften, Farben, Linienstarke usw.).
Bild 5.10: BPMNElement Klasse
5 Kontept/Architektur des Business Process Modeler
63
Klassenstufe 2 In der BPMN Notation sind vier Grundkategorien der Darstellungselemente (Flußobjekte, Verbindungsobjekte, Verantwortlichkeitsbereich und Artefakte)
definiert. Diese Objektgruppen besitzen unterschiedliche funktionelle Ausprägungen. So
besteht beispielsweise die Gruppe der Verbindungselemente aus unterschiedlichen Pfeilelementausprägungen mit Start und Zielkoordinaten. Dagegen besteht die Gruppe der
Flussobjekte aus Elementen mit fester Breite und wird auf bestimmte X, Y- Koordinaten
auf der Zeichenfläche abgebildet. Somit können die für die jeweilige Gruppe charakteristischen Methoden und Variablen in den entsprechenden Klassen zusammengefasst werden
und diese Funktionalität den Unterklassen zur Verfügung stellen.
Bild 5.11: Elemente der Klassenstufe 2
Klassenstufe 3 Durch die Klassen der Stufen 1 und 2 zur Verfügung gestellte Funktionalitäten ermöglichen es, Klassen mit konkreter Ausprägung der einzelnen BPMNElemente zu entwickeln. Es handelt sich somit um die Klassen, die die jeweiligen individuellen Ausprägungen der einzelnen BPMN-Elemente enthalten und umsetzen.
Bild 5.12: Elemente der Klassenstufe 3
Methoden zur Behandlung der Mauskollisionsabfragen
Für alle graphischen Objekte, die auf die Benutzeroberfläche platziert werden, wird
eine Methode benötigt, welche feststellt, ob ein Objekt angeklickt wurde oder nicht.
Grundsätzlich muss hierfür festgestellt werden, ob die Eingabekoordinaten innerhalb des
dargestellten Objekts liegen. Bei der Umsetzung dieser Methode muss beachtet werden,
Klassenebene 1
5 Kontept/Architektur des Business Process Modeler
BPMN Element
- Element ID
- Eigenschaften
- ...
Klassenebene 2
Klassenebene 3
64
Connection
Flow
- startXY
- endXY
...
- XYCoord
- ...
...
...
Activity
SequenceF.
MessageF.
- draw()
- ...
- draw()
- ...
Activity
XOR
- draw()
- drawText()
- draw()
- ...
Bild 5.13: Klassenhierarchie der BPMN-Elemente.
5 Kontept/Architektur des Business Process Modeler
65
dass es sich um eine der am häufigsten ausgeführten Operationen der Benutzeroberfläche
handelt. Aus diesem Grund muss diese Operation möglichst effizient ausführbar sein.
Am effektivsten wird diese Operation auf einem Rechteck ausgeführt, da an dieser Stelle
vier logische Abgleiche mit dem Rechteckkoordinaten genügen, um festzustellen, ob sich
der Punkt innerhalb des Rechtecks befindet. Bei den anderen Figuren, wie zum Beispiel
einem Kreis oder einer Raute führt dieser Vorgang auf eine Reihe von kostenintensiven
Berechnungen. An dieser Stelle bietet sich folgende Näherung an: berechne ein Rechteck,
welches eine Figur umschließt (Kosten: einmalig zwei Additionsoperationen, da technologiebedingt die Weite und Breite der Figur bekannt ist) und führe eine Abgleichsoperation
auf dem umschließenden Rechteck durch.
Eine etwas komplizierte Vorgehensweise muss zur Kollisionsabfrage für die Pfeiloperationen durchgeführt werden. Um zu berechnen, ob ein Pfeilelement getroffen wurde, wird
eine kostenintensive Berechnung, die nach Möglichkeit vermieden werden sollte, durchgeführt. Deswegen wird zuerst (ähnlich wie in dem Algorithmus davor) das Pfeilelement
mit einem leicht vergrößerten Rechteck umgeben, auf diesem Rechteck die Kollisionsabfrage durchgeführt, und erst wenn die Kollisionsabfrage positiv ist, wird die wirkliche
Pfeilelementkollisionsabfrage durchgeführt.
XML Dateien Physischer Zugriff
Wie bereits erwähnt, muss das Softwaresystem in der Lage sein, auf die XML-Dateien
zuzugreifen. Jedoch lässt das Sicherheitsmodell von Flash-basierten Anwendungen keinen
direkten Lese- oder Schreibzugriff auf das lokale Dateisystem zu. An dieser Stelle muss ein
kleiner Umweg genommen werden. Flash-Technologie lässt einen Dateiupload auf einen
Webserver zu und es ist möglich, auf die auf einem Webserver gespeicherte Dateien lesend
zuzugreifen. Somit kann ein Lesezugriff auf eine lokal gespeicherte Datei als eine Operation
aus Dateiupload und URL Lesezugriff auf die hochgeladene Datei umgesetzt werden. Auf
ähnliche Weise kann der Speichervorgang einer Datei modelliert werden. Die XML-Datei
wird zuerst auf dem Webserever gespeichert und anschließend runtergeladen und auf dem
lokalen Dateisystem gespeichert.
Abbildung der XML-Dateien auf die Modeller interne Darstellung der Arbeitsabläufe
Nachdem eine XML Datei ausgelesen wurde, muss deren Inhalt auf die interne Einstellungen, Notationsobjekte und Verbindungen abgebildet werden. Hierzu muss zuerst der
Aufbau der PAVONE ProzessModeler XML-Datei analysiert werden und anschließend
5 Kontept/Architektur des Business Process Modeler
66
müssen Methoden zur Abbildung auf die interne Datenstruktur entwickelt werden. Zum
besseren Verständnis und Lesbarkeit wird in diesem Abschnitt die PAVONE ProcessModeller XML-Datei auf einen Baum abgebildet (siehe Abbildung 5.14). Die Analyse des
Baumes wird nun im Folgenden Abschnitt eingeführt.
PAVONEProcessDefinition
<PAVONEProcessDefinition>
<PDGeneral>...</PDGeneral>
<ActivityDefinitions>...</ActivityDefinitions>
<PAVONEProcessDefinition>
PDGeneral
ActivityDefinitions
Bild 5.14: Abbildung der PAVONE-Prozessdefinitionsdatei auf einen Baum
Der Baum besteht aus zwei Hauptteilbaumen: dem allgemeine Einstellungen Teilbaum
(PDGeneral) und dem ActivityDefinitions-Teilbaum.
Allgemeine Einstellungen Teilbaum (PDGeneral)
PDGeneral-Teilbaum enthält allgemeine Einstellungen, wobei die Struktur dieses Teilbaumes starr und genau vorgegeben ist. Somit ist die Position der einzelnen Einstellungen
genau bekannt und kann direkt ausgelesen und auf die interne Programmstruktur abgebildet werden. (siehe Abbildung 5.15)
PDGeneral
PDBasic
ProcessDefinitionID
Arno Rautman(2010-03-22 14:57:38)
Bild 5.15: Teilbaum für allgemeine Einstellungen
5 Kontept/Architektur des Business Process Modeler
67
Activity Definition-Teilbaum (PDGeneral)
Im Gegensatz zum Teilbaum “Allgemeinen Einstellungen” wird der Inhalt dieses Baumes
dynamisch gefüllt, wobei ein Teilbaum dieses Baumes genau ein Aktivitäten Element
enthält. Der Aktivity Definitions Baum enthält zum Teil starre, zum Teil dynamische
Strukturen. Zum Beispiel kann der Zugriff auf den Namen der Aktivitat (siehe Abbildung
5.16) über den Pfad ActivityDefinition → ADBasic → Name erfolgen.
Dagegen wird in dem Pfad ActivityDefinition → ADBasic → ADLinks eine beliebige
Anzahl der Verbindungselemente gespeichert. Somit muss bei der Abbildung der Inhalte
die Struktur des Baumes berücksichtigt und eine Abbildung für starre und dynamische
Strukturen umgesetzt werden.
ActivityDefinition
ADBasic
Name
ADLinks
“Register Order“
ADLink
ADLink
Bild 5.16: Aktivitäten-Teilbaum
KERNEL
Beim Kernel Modul handelt es sich um die zentrale Instanz des Programms, welche die
Zusammenarbeit unterschiedlicher Module ermöglicht und koordiniert. Um einen einheitlichen Zugriff zu ermöglichen, ist es ratsam, dieses Modul auf eine einzige Klasse abzubilden. Im Folgenden werden Überlegungen zu den einzelnen Teilen der Kernel-Klasse
aufgestellt.
Universelle Schnittstelle Durch die BPMN Klassenbasierte Struktur ist eine Funktionalität gegeben, die BPMN Instanzen der unterschiedlichen Ausprägungen zu erzeugen und zu speichern. Die Speicherung der Elemente sollte möglichst in einer allgemein
zugänglichen Stelle in dem Softwaresystem erfolgen, um einen gemeinsamen Zugriff auf
5 Kontept/Architektur des Business Process Modeler
68
diese Elemente zu ermöglichen. Die zentrale allgemein zugängliche Stelle im System, die
vereinbart wurde, ist die Kernel-Klasse. Ein Datentyp, welcher die Speicherung von Objekten beliebiger Ausprägung erlaubt, ist ein Array vom Datentyp Objekt. Somit können die
im Softwaresystem vorhandenen Objekte in einem Array der Kernel-Klasse zur Verfügung
gestellt werden.
Schnittstelle zu Benutzeroberflächen Modul Wie bereits besprochen, muss die
Hauptzeichenfläche des Softwaresystems aus einer Canvas-Komponente bestehen. Als eine
der UI-Komponenten der Adobe Flex Entwicklungsumgebung implementiert Canvas die
updateDisplayList()-Methode, welche immer dann aufgerufen wird, wenn auf irgendeine
Art und Weise mit einer UI-Komponente interagiert wird (z.B. durch Maus und Tastatureingaben, Änderung der Komponentengröße u.s.w.). Diese Komponente kann überschrieben und mit eigenem Inhalt gefüllt werden. Auf diese Weise kann die Routine zum
Zeichnen sämtlicher Grafik umgesetzt werden. Dies kann in eigene Methode ausgelagert
werden. Da die sämtlichen Elemente außer der Menüstruktur gezeichnet werden, bietet
sich folgender Ablauf an:
• Zeichne die Objekte der BPMN-Notation
• Zeichne das Akkordeonobjekt
• Zeichne das Aktionsleistenobjekt
Oberflächenzustandsautomat
Durch manche Aktionen wie z.B. die Aktivierung des Lasso-Elements oder durch Umschaltung in den Verbindungsmodus muss das Softwaresystem auf bestimmte Eingaben unterschiedlich reagieren. Dieses Verhalten kann mittels eines Zustandsautomaten modelliert
und innerhalb des Kernels umgesetzt werden. Für das Lasso kann dieser Zustandsautomat auf folgende Art und Weise definiert werden. Als Startzustand wird Standardmodus
der Benutzeroberfläche definiert. Im Standardmodus befindet sich das Softwaresystem
genau dann, wenn keine “speziellen” Aktionen (Lassoaktionen, Elementverbindungsaktionen) ausgeführt werden. Wird nun eine Stelle der Benutzeroberfläche angeklickt, die
keine BPMN enthält, und wird mit der gedrückten Maustaste eine Bewegung ausgeführt,
so wird diese Reihenfolge als ein Wunsch interpretiert, die Lassofunktionalität zu aktivieren. An dieser Stelle schaltet der Kernel in einen Zustand, welcher das Lassoobjekt
aktiviert und die Mausaktionen auf die Koordinaten des Lassoobjekts abbildet.
5 Kontept/Architektur des Business Process Modeler
69
Standard Mode
[switch to lasso mode]
[switch to standard mode]
Lasso Mode
do/listen if elements captured
[switch to standard mode]
[switch to lasso elements captured mode]
Lasso Elements Captured
do/listen if selected elements to be moved
[switch to move captured lasso elements mode]
Move Lasso Captured Elements
do/move captured elements
Bild 5.17: Zustandsautomat bei Aktivierung und Verwendung des Lasso Elements
Beschreibung eines Anwendungsfalls
Im Folgenden wird ein mögliches Szenario bei den Anwendungen mit der aktuellen Version
des Prototyps aus der Benutzersicht beschrieben. Eine Vorrausetzung für dieses Szenario
ist die Existenz einer lokal gespeicherten Version einer PAVONE ProcessModeler XML
Ausführungsdatei. Der Benutzer startet einen Browser und gibt die URL des Prototyps
ein. Nachdem die Software gestartet wurde, kann der Benutzer über einen Menüaufruf
die PAVONE ProcessModeler XML Ausführungsdatei öffnen. Hierdurch wird die in der
XML-Datei gespeicherte Struktur geladen und auf der Oberfläche des Softwaresystems
dargestellt.
Durch einen Menüaufruf kann ein Dialog für allgemeine Einstellungen gestartet werden.
Die Einstellungen können nun manipuliert und mittels einer Bestatigung (via “OK”Button) von dem System übernommen werden.
Durch jeweils einen Doppelklick auf eine Aktivität oder einen Verbindungspfeil können die
Dialogboxen mit erweiterten Einstellungen dieser Elemente angesehen und gegebenenfalls
geändert werden. Die graphischen Elemente können auf der Benutzeroberfläche auf andere
Koordinaten verschoben werden. Durch die Selektion einer Aktivität kann deren Name
mittels der direkten Tastatureingabe geändert werden.
Der Benutzer kann nun mittels eines Menüaufrufes eine Speicherroutine starten. Dem
5 Kontept/Architektur des Business Process Modeler
Bild 5.18: Geladener Geschäftsablauf
Bild 5.19: allgemeine Einstellungen Dialog
70
5 Kontept/Architektur des Business Process Modeler
71
Bild 5.20: Direkte Tastatureingabe auf einem Aktivitaten Element
Benutzer wird angeboten, die Stelle in dem Dateisystem zu wählen, wo die gespeicherte
Datei abzulegen ist.
Der Benutzer könnte nun die XML-Ausführungsdatei mit der lokalen installierten lokalen
Version des PAVONE ProcessModellers öffnen und die erweiterten Möglichkeiten (wie
zum Beispiel Simulation) dieses Werkzeugs nutzen.
Bild 5.21: PAVONE ProcessModeler
Die XML-Ausführungsdatei kann innerhalb der beiden Anwendungen bearbeitet und zwischen diesen beliebig ausgetauscht werden.
5.3
Fazit
In diesem Kapitel wurden Konzepte und Methoden für die Umsetzung des Prototyps einer
Rich Internet Application zur Modellierung von Geschäftsprozessen basierend auf BPMN
entwickelt und beschrieben. Hierfür wurde ein klassisches Wasserfallmodell verwendet,
es wurden Anforderungen an das Softwaresystem definiert, die Einsatzumgebung analysiert und, auf diesen Erkenntnissen basierend, die Systemarchitektur entwickelt. Weitere
Detaillierung erfolgte im Grobentwurf, wo das System in Module aufgeteilt wurde. Zum
5 Kontept/Architektur des Business Process Modeler
72
Schluß fand eine Verfeinerung der Module und deren Abbildung auf die einzelnen Klassen
statt.
Ein mögliches Szenario für die Einbindung des Modeleres ist die Einbindung innerhalb
PAVONE Live Umgebung1 . Momentan können in der PAVONE Live Umgebung Prozessdefinitionen mittels eines Formulars angelegt werden. Da es aber erwünscht ist, die
Einbindung durch Modellierungswerkzeug durchzuführen, wäre es an dieser Stelle von
Vorteil, die entsprechende Komponente der in dieser Arbeit entwickelten Anwendung in
PAVONE Live Umgebung zu integrieren. Ein mögliches Aussehen eines solchen Szenarios
ist in der Abbildung 5.22 zu sehen.
Bild 5.22: Mögliches Einbindungsszenario des Modelers innerhalb der PAVONE Live
Umgebung
1
http://www.pavonelive.pavone.de
Kapitel 6
Zusammenfassung und Ausblick
In dieser Arbeit wurde die Anwendung einer Rich Internet Application zur Modellierung
von Geschäftsprozessen untersucht. Die Zielsetzung war, die bestehenden Technologien
zur Modellierung und Ausführung der Geschäftsprozesse in einer Software zu analysieren und zu vergleichen und die Konzepte des BPMN-Modellierung-Standards in einem
Geschäftsprozessmodellierungstool zu implementieren. Dabei wurde das Tool als eine Rich
Internet Application konzipiert und prototypisch umgesetzt.
Im Rahmen der Arbeit wurde Fachliteratur zu den Themen visuelle Sprachen zur Modellierung von Geschäftsprozessen und Ausführungssprachen studiert und die Konzepte und
Methoden untersucht, die in diesen Gebieten Verwendung finden. Es wurden Verfahren
zur Erzeugung einer Rich Internet Applikation erforscht und in Bezug auf die gestellte
Aufgabe - Umsetzung des Business Process Modeler verglichen. Nach den Literaturrecherchen wurde die Entwicklungsumgebung Adobe Flex gewählt, um eine benutzerfreundliche
Umsetzung zu gewährleisten.
Das entwickelte Werkzeug zur Modellierung von Geschäftsabläufen ist vollständig in einem Webbrowser nutzbar, ohne dass eine Installation auf der lokalen Festplatte des Benutzers erforderlich ist. Dabei wurde darauf geachtet, dass der Programmcode gut wartbar
und erweiterbar sein sollte. Durch die Verwendung einer strikt objekt-orientierten Vorgehensweise bei der Umsetzung des Softwaresystems kann diese Zielsetzung als erreicht
betrachtet werden. Gute Wartbarkeit wurde durch die strikte Trennung und Wiederverwendung der einzelnen Funktionalitäten erreicht. Erweiterbarkeit ist durch die Klassenstruktur gewährleistet. So können zum Beispiel die zusätzlichen BPMN-Elemente auf eine
einfache Art und Weise der Datenstruktur hinzugefügt werden, indem die gruppenspezifischen Eigenschaften jeweils von der Gruppenoberklasse geerbt werden. Verwendung eines
Benutzeroberflächenzustandsautomaten ermöglicht es, weitere benutzeroberflächenspezifische Elemente problemlos hinzuzufügen.
6 Zusammenfassung und Ausblick
74
Für den Benutzer sollte das Softwaresystem benutzerfreundlich und schnell sein. Benutzerfreundlichkeit wurde erreicht, indem die meisten Aktionen mittels eines Mauseklicks
oder mittels eines Drag & Drop - Verfahrens ausgeführt werden können. Die Performanz
wurde durch die Verwendung einer Reihe von Verfahren und Algorithmen, die bei der
Entwicklung des Werkzeugs umgesetzt wurden, erreicht.
Einer der Aspekte bei der Umsetzung des Werkzeugs war die Abbildung auf die
Ausführungssprachen. In dem in der Arbeit erreichten Stand des Werkzeugs wird die
Abbildung auf die Ausführungssprache von PAVONE ProcessModeler unterstützt, in Zukunft sind auch Erweiterungen auf BPEL und XPDL möglich.
Die bei der Umsetzung des Prototyps verwendete Vorgehensweise ermöglicht eine Umsetzung des Prototyps für mobile Geräte, was zum Gegenstand weiterer Entwicklung werden
könnte.
Insgesamt können die Ziele der Diplomarbeit als erreicht betrachtet werden.
Anhang A
Hinweise zur beigelegten CD
Der Diplomarbeit ist eine CD beigelegt, auf welcher sich die aktuelle Version des Prototyps befindet (Stand 22.03.2010). Der Prototyp kann im Verzeichnis ’Prototyp’ durch
Öffnen der Datei ’index.html’ gestartet werden. Allerdings stehen dann keine ’Öffnen’
und ’Speichern’-Funktionen zur Verfügung. Hierfür muss eine lokale Version eines JSP
unterstützenden Web-Servers (z.B. JBoss) gestartet werden. In diesem Fall kann der Prototyp mittels eines URL-Aufrufs (http://localhost:8080/ProcessModeler.html) in einem
Browser gestartet werden.
Im Verzeichnis ’ProzessDefinitionen’ befinden sich Beispielsdateien der Prozessabläufe,
die geladen und bearbeitet werden können.
Im Verzeichnis ’Diplomausarbeitung’ bifindet sich die finale Version der Diplomausarbeitung im PDF und PS Format.
Um den Quellcode anzusehen, muss die aktuelle Version des Adobe Flex Builders installiert sein. (Kann von der Herstellerseite unter https://www.adobe.com/ geladen werden.)
Innerhalb des Adobe Flex Builders kann mittels eines Menüaufrufes (File→Import→Flex
Project...→Archive file) eine Datei importiert werden, welche sich im Verzeichnis ’Prozessmodeler’ befindet. Hierdurch wird der aktuelle Stand des Projekts in den Flex Builder
geladen.
Anhang B
Tabelle der Werkzeuge zur
Geschäftsprozessmodellierung
Legende: ⊙ - Notation unterstützt, • - Standardnotation
B Tabelle der Werkzeuge zur Geschäftsprozessmodellierung
77
Binner IMS
BOC
Dr. Lürzer
EMPRISE
Get Process
IDS Scheer
IMG / S&T
intellior
ADONIS
promol.NET
BONAPART
Income Suite
ARIS Plattform
SemTalk/Prome@work
AENEIS
Produkt
sycat
Anbieter
Agresso Business Modeller Agresso
Tabelle B.1: Werkzeuge und unterstützte Modellierungssprachen
Geschäftsprozessmodellierungssprache
- UML
⊙
- BPMN
⊙
- BPEL
⊙
- IUM
⊙
⊙
⊙
- LOVEM
⊙
•
⊙
⊙
⊙
⊙
⊙
•
- EPK
•
- SOM
⊙
- KSA
⊙
- Flowchart
⊙
•
- Ishikawa
Eigene Notation implementieren
•
⊙
•
⊙
•
•
•
⊙
⊙
•
⊙
⊙
⊙
•
•
⊙
⊙
•
⊙
- Sonstige
Selbstdefinierte Objektbibliothek
⊙
•
•
•
⊙
⊙
•
⊙
•
•
⊙
•
•
•
•
•
•
•
•
•
•
•
B Tabelle der Werkzeuge zur Geschäftsprozessmodellierung
Semtation
Soreco
ViCon
SemTalk
Xpert.ivy
ViFlow
MID
Innovator
pulinco
MEGA
MEGA Process
Anbieter
TopEASE
IPK
Mo2 GO
Espresso Workflow PAVONE
inubit
inubit
Tabelle B.2: Werkzeuge und unterstützte Modellierungssprachen. Fortsetzung.
Produkt
Geschäftsprozessmodellierungssprache
⊙
⊙
•
⊙
⊙
⊙
•
•
•
•
- UML
⊙
•
•
⊙
⊙
⊙
•
- BPEL
•
- IUM
•
- LOVEM
•
•
- EPK
⊙
⊙
⊙
⊙
⊙
•
- SOM
⊙
•
•
•
- KSA
⊙
•
⊙
•
- Flowchart
- Ishikawa
•
•
- BPMN
•
•
•
•
•
•
⊙
⊙
- Sonstige
•
•
Selbstdefinierte Objektbibliothek
•
•
Eigene Notation implementieren
78
Literaturverzeichnis
[ACD+ 03] T. Andrews, F. Curbera, H. Dholakia, Y. Goland, J. Klein, F. Leymann,
K. Liu, D. Roller, D. Smith, S. Thatte, I. Trickovic, and S. Weerawarana.
Business Process Execution Language for Web Services, Version 1.1. BEA
Systems, IBM International Business Machines Corporation, Microsoft Corporation, SAP AG, Siebel Systems, 2003.
[Ark02] Assif Arkan. Business Process Modeling Language. Business Process Management Initiative, 2002.
[Bal93] H. Balzert. CASE, Systeme und Werkzeuge. 1993.
[BE] Heide
Brücher
and
Rainer
Endl.
Erweiterung
geschäftsregelorientierten Prozessmodellierung.
von
UML
zur
Technical report, Uni-
versität Bern, Institut für Wirtschaftsinformatik, Engehaldenstrasse 8,
CH-3012 Bern, Switzerland.
[CKM+ 09] Luc Clement, Dieter König, Vinkesh Mehta, Ralf Mueller, Ravi Rangaswamy, Michael Rowley, and Ivana Trickovic. WS-BPEL Extension for People
(BPEL4People) Specification Version 1.1. OASIS, 2009.
[DKKZ08] Jens Drawehn, Florian Kicherer, Dietmar Kopperger, and Daniel Zähringer.
Process Management Tools 2008. Eine evaluierende Marktstudie zu aktuellen
Werkzeugen. Fraunhofer IRB Verlag, 2008.
[FGI+ ] A. Filograna, G. Giunta, N. Ingraffia, L. Loiacono, and D. ZA A. Corallo. An
integrated approach for modelling business processes using bpmn and xpdl
standards. Technical report, Engineering Ingegneria Informatica S.p.A., R&D
Lab, Palermo,90100, Italy.
[Fro10] Ingo
Frommholz.
Prozessmodellierung
mit
petri-netzen.
http://www.is.inf.uni-due.de/courses/ie ss07/folien/folien-prozesse.pdf,
am 20.03.2010.
unter
LITERATURVERZEICHNIS
80
[Hei09] Martin Heinzerling. Vergleich von prozessbeschreibungssprachen: Bpel vs.
xpdl vs. jpdl, 2009.
[HKM] Thomas Hornung, Agnes Koschmider, and Jan Mendling. Integration of heterogeneous bpm schemas: The case of xpdl and bpel. Technical report, Institute
of Computer Science, Albert-Ludwigs University Freiburg, Germany, Institute
of Applied Informatics and Formal Description Methods University of Karlsruhe (TH), Germany, Institute of Information Systems and New Media, WU
Vienna, Austria.
[JK09] Kurt Jensen and Lars M. Kristensen. Coloured petri nets. Springer, 2009.
[KL08] Chafic Kazoun and Joey Lott. Programming Flex 3. O’Reilly, 2008.
[Lau10] Prof. Dr. Georg Lausen. Petri-netze. unter http://electures.informatik.unifreiburg.de/lectures/db fgis/2007-2008ws/slides/3-1-petrinetze 4up.pdf,
am
20.03.2010.
[omg09] Business Process Model and Notation (BPMN). Object Management Group,
2009.
[OWS+ 03] Bernd Oestereich, Christian Weiss, Claudia Schröder, Tim Weilkiens, and
Alexander Lenhard. Objektorientierte Geschäftsprozessmodellierung mit der
UML. dpunkt.verlag GmbH, 2003.
[pre10] Bpmn-spezifikation version 1.2. unter http://www.omg.org/spec/bpmn/1.2/pdf,
am 20.03.2010.
[Rüc08] Bernd Rücker. Welche Sprache spricht BPM? JavaSPEKTRUM, Ausgabe:
April 2008.
[RO03] Jog Roj and Martin Owen. BPMN and Business Process Management. Popkin
Software, 2003.
[Sch08] Ina Schieferdecker. Model driven architecture - foundations and applications.
Fraunhofer IRB Verlag, 2008.
[vdA] W.M.P. van der Aalst. The application of petri nets to workflow management.
Technical report, Eindhoven University of Technology, Department of Mathematics and Computing Science, P.O. Box 513, NL-5600 MB, Eindhoven, The
Netherlands.
LITERATURVERZEICHNIS
81
[Wal08] Hans-Dirk Walter. Rich Internet Applications. Eine perfekte Kombination benutzerfreundlicher Schnittstellen mit Webtechnologie. Informatik-Spektrum,
pages 333–343, 2008.
[Whi04a] Stephen A. White. Introduction to BPMN. IBM, 2004.
[Whi04b] Stephen A. White. Workflow Patterns with BPMN und UML. IBM, 2004.
[Whi05] Stephen A. White. Using BPMN to model a BPEL Process. IBM, 2005.
[Whi06] Stephen A. White. Process Modeling Notations and Workflow Patterns. IBM,
2006.
Herunterladen