Pflichtenheft FlowWorkJ
Pflichtenheft FlowWorkJ
Pflichtenheft FlowWorkJ
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Experte: Jean-Jacques Jaquier<br />
Betreuer: Rolf Jufer, Hoang-Van Chau<br />
Autoren: Hugo Graf, Marco Zbinden<br />
Version: 2.3<br />
Status: final<br />
Ausgabedatum: 11.06.2002<br />
Dokumentname: <strong>Pflichtenheft</strong>.doc<br />
Webseite: http://home.dtc.ch/flowworkj/<br />
<strong>Pflichtenheft</strong><br />
<strong>FlowWorkJ</strong><br />
Diplomarbeit<br />
Framework für Internet-basierte Workflow-Lösungen
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Änderungskontrolle<br />
Änderungskontrolle<br />
Version Datum Ausführende Stelle Bemerkungen/Art der Änderung<br />
2.3 11.06.2002 Marco Zbinden Ergänzungen der Punkte 0 und 9.2.1.<br />
Endfassung<br />
2.2 09.06.2002 Marco Zbinden Versionen zusammenführen - Endfassung<br />
2.1 08.06.2002 Hugo Graf Neu Aktivitätszustand und Korrektur<br />
Prozesszustand<br />
2.0 06.06.2002 Marco Zbinden Endgültige Fassung<br />
1.2 03.06.2002 Marco Zbinden Korrigierte Fassung<br />
1.1 01.06.2002 Hugo Graf &<br />
Marco Zbinden<br />
Korrekturen einbringen gem. Sitzungsprotokoll<br />
vom 29. Mai 2002<br />
1.0 28.05.2002 Hugo Graf Entwurf für <strong>Pflichtenheft</strong>-Sitzung<br />
0.2a 19.05.2002 Marco Zbinden Hermes Ausrichtung ➜ wird fallengelassen<br />
0.2 19.05.2002 Hugo Graf 2. Entwurf<br />
0.1 17.05.2002 Hugo Graf 1. Entwurf<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 1
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Inhaltsverzeichnis<br />
Inhaltsverzeichnis<br />
1 Abkürzungen..............................................................................................................................4<br />
2 Zielbestimmung .........................................................................................................................5<br />
2.1 Themenvorschlag für eine Diplomarbeit ...................................................................................5<br />
2.2 Leistung für den Benutzer.........................................................................................................5<br />
2.3 Schwerpunkte im Anforderungskatalog ....................................................................................5<br />
2.3.1 Definition Workflow und Workflow-Engine .............................................................................5<br />
2.3.2 Workflow-Beispiel...................................................................................................................5<br />
2.3.3 Anmerkungen .........................................................................................................................6<br />
2.3.3.1 Befolgung von Standards ....................................................................................................6<br />
3 Produkteinsatz...........................................................................................................................7<br />
3.1 Anwendungsdiagramm .............................................................................................................7<br />
3.2 Software....................................................................................................................................7<br />
3.3 Hardware...................................................................................................................................8<br />
4 Begriffe der «Workflow-Welt» ..................................................................................................9<br />
4.1 Aktivitäten..................................................................................................................................9<br />
4.2 Applikationen.............................................................................................................................9<br />
4.3 Build Time .................................................................................................................................9<br />
4.4 Daten.........................................................................................................................................9<br />
4.5 Datenfluss .................................................................................................................................9<br />
4.6 Ressourcen...............................................................................................................................9<br />
4.7 Run Time.................................................................................................................................10<br />
4.8 Transitionen ............................................................................................................................10<br />
5 Standard ...................................................................................................................................11<br />
5.1 Das Referenzmodell der WfMC ..............................................................................................11<br />
5.1.1 Workflow Enactment Service ...............................................................................................11<br />
5.1.2 Process Definition (Schnittstelle 1).......................................................................................11<br />
5.1.3 Workflow Client Applications (Schnittstelle 2) ......................................................................12<br />
5.1.4 Invoked Applications (Schnittstelle 3) ..................................................................................12<br />
5.1.5 Other Workflow Enactment Service(s) (Schnittstelle 4) .......................................................12<br />
5.1.6 Administration & Monitoring Tools (Schnittstelle 5)..............................................................12<br />
6 Mögliche Formen von WFMS .................................................................................................13<br />
6.1 Ad-hoc Workflow.....................................................................................................................13<br />
6.2 Flexibler Workflow...................................................................................................................13<br />
6.3 Produktions-Workflow .............................................................................................................13<br />
7 Konstrukte des Workflow-Modells ........................................................................................14<br />
7.1 Kontrollknoten .........................................................................................................................14<br />
7.1.1 Beispiel eines Workflows......................................................................................................14<br />
7.1.2 Start ......................................................................................................................................14<br />
7.1.3 Split und Join-Knoten ...........................................................................................................15<br />
7.1.4 Wiederholte Ausführung (Schleife).......................................................................................15<br />
7.2 Organisationsmodell ...............................................................................................................16<br />
7.2.1 Rollen ...................................................................................................................................16<br />
7.2.2 Basis <strong>FlowWorkJ</strong>-Rollen ......................................................................................................16<br />
7.2.2.1 Administrator......................................................................................................................17<br />
7.2.2.2 Prozessersteller .................................................................................................................17<br />
7.2.2.3 Instanzbesiter.....................................................................................................................17<br />
7.2.2.4 Worker ...............................................................................................................................17<br />
7.3 Aktivitäten................................................................................................................................17<br />
7.3.1 Sub-Workflow .......................................................................................................................17<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 2
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Inhaltsverzeichnis<br />
7.3.2 Automatisierte Aktivität.........................................................................................................17<br />
7.3.3 Manuelle Aktivität .................................................................................................................17<br />
7.4 Transitionen ............................................................................................................................18<br />
7.4.1 Transitionsbedingung ...........................................................................................................18<br />
7.4.1.1 Normale Transitionen.........................................................................................................18<br />
7.4.1.2 Synchronisations-Transitionen ..........................................................................................18<br />
8 Anwendungsfälle.....................................................................................................................19<br />
8.1 Personen und Rollen verwalten (A1) ......................................................................................19<br />
8.1.1 Zielsetzung ...........................................................................................................................19<br />
8.1.2 Akteure .................................................................................................................................19<br />
8.1.3 Vorbedingung .......................................................................................................................19<br />
8.1.4 Normaler Ablauf....................................................................................................................20<br />
8.2 Prozess definieren (A2) ..........................................................................................................20<br />
8.2.1 Zielsetzung ...........................................................................................................................20<br />
8.2.2 Akteure .................................................................................................................................20<br />
8.2.3 Vorbedingung .......................................................................................................................20<br />
8.2.4 Nachbedingung ....................................................................................................................20<br />
8.2.5 Normaler Ablauf....................................................................................................................21<br />
8.2.6 Ausnahme (b).......................................................................................................................21<br />
8.2.7 Alternativen...........................................................................................................................21<br />
8.3 Automatisierte Aktivitäten erstellen (A3).................................................................................21<br />
8.3.1 Zielsetzung ...........................................................................................................................21<br />
8.3.2 Akteure .................................................................................................................................21<br />
8.3.3 Vorbedingung .......................................................................................................................21<br />
8.3.4 Nachbedingung ....................................................................................................................21<br />
8.3.5 Normaler Ablauf....................................................................................................................21<br />
8.3.6 Ausnahme (b).......................................................................................................................22<br />
8.4 Manuelle Aktivität ausführen (A4)...........................................................................................22<br />
8.4.1 Zielsetzung ...........................................................................................................................22<br />
8.4.2 Akteure .................................................................................................................................22<br />
8.4.3 Vorbedingung .......................................................................................................................22<br />
8.4.4 Normaler Ablauf....................................................................................................................22<br />
8.4.5 Alternative (a) .......................................................................................................................22<br />
8.4.6 Alternative (c) .......................................................................................................................22<br />
8.4.7 Ausnahme (c) .......................................................................................................................22<br />
8.4.8 Implementierung...................................................................................................................22<br />
8.4.8.1 GUI.....................................................................................................................................22<br />
8.5 Instanz überwachen und steuern (A5)....................................................................................23<br />
8.5.1 Zielsetzung ...........................................................................................................................23<br />
8.5.2 Akteure .................................................................................................................................23<br />
8.5.3 Vorbedingung .......................................................................................................................23<br />
8.5.4 Normaler Ablauf....................................................................................................................23<br />
8.5.5 Implementierung...................................................................................................................23<br />
8.5.5.1 Prozesszustand .................................................................................................................23<br />
8.5.5.2 Aktivitätszustand................................................................................................................24<br />
9 Abnahmekriterien ....................................................................................................................25<br />
9.1 Funktionale Anforderungen.....................................................................................................25<br />
9.2 Qualitätszielbestimmungen.....................................................................................................26<br />
9.2.1 Definition der Qualitätszielbestimmungskriterien .................................................................26<br />
9.3 Abgrenzung.............................................................................................................................26<br />
10 Glossar .....................................................................................................................................28<br />
11 Abbildungsverzeichnis ...........................................................................................................31<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 3
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 1 Abkürzungen<br />
1 Abkürzungen<br />
DBMS Data Base Management System<br />
DTD Dokumenttyp-Definition<br />
GUI Grafical User Interface<br />
JMS Java Messaging Service<br />
OMG Object Management Group, Arbeitsgruppe für Konzepte zur Verwaltung von Objekten<br />
SOAP Simple Object Access Protocol<br />
UML Unified Modeling Language<br />
WfMC Workflow Management Coalition<br />
WFMS Workflow Management Systems<br />
XML eXtensible Markup Language<br />
XPDL XML Processing Description Language<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 4
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 2 Zielbestimmung<br />
2 Zielbestimmung<br />
2.1 Themenvorschlag für eine Diplomarbeit<br />
Titel: Framework für Internet-basierte Workflow-Lösungen<br />
Bearbeiter: Hugo Graf & Marco Zbinden<br />
Betreuer: Rolf Jufer & Hoang-Van Chau<br />
Experte: Jean-Jacques Jaquier<br />
Umfeld: Bis vor kurzem war für die Ausführung von Workflows häufig ein «proprietärer» Client notwendig<br />
(einen solchen werden Sie im Rahmen des weiteren I&O Unterrichts noch kennen lernen).<br />
Erst in jüngerer Zeit ist es möglich, solche Workflows auch mit Hilfe von Web-Browsern auszuführen.<br />
Aufgabenstellung & Zielsetzung:<br />
1. Entwicklung eines Frameworks, welches als Basis für die Realisierung von (einfachen) Intranetbasierten<br />
Workflows dienen soll.<br />
2. Im Sinne eines «Proof-of-Concept» soll auf der Grundlage dieses Frameworks eine einfache<br />
Workflow-Lösung «Auftragsabwicklung bei ProLux (siehe Fallbeispiel im I&O-Unterricht)» realisiert<br />
werden, welche später für Unterrichtszwecke benutzt werden kann.<br />
Lerninhalte: Wirtschaftsinformatik, E-Business, Workflow-Management<br />
Hardware & Software: Java Servlets, JSP, Java Beans, J2EE, SQL-DB, XML<br />
Aufgabensteller: Rolf Jufer<br />
Bemerkungen:<br />
Die Aufgabe kann jederzeit nach Absprache mit den Betreuern erweitert oder eingeschränkt werden.<br />
2.2 Leistung für den Benutzer<br />
Der Benutzer erhält mit <strong>FlowWorkJ</strong> die Möglichkeit Geschäftprozesse als Workflow abzubilden. An<br />
den Instanzen dieser Prozesse kann er entsprechend seiner Rolle aktiv teilnehmen, zudem kann er<br />
die einzelnen Prozesse beobachten und steuernd eingreifen.<br />
2.3 Schwerpunkte im Anforderungskatalog<br />
2.3.1 Definition Workflow und Workflow-Engine<br />
Zurzeit ist wohl die Java 2 Enterprise Edition die momentan erfolgreichste Komponentenarchitektur für<br />
verteilte Transaktionen. Daher bietet es sich an, die Workflow Engine für diese Umgebung zu konzipieren.<br />
1. Modellierung von Geschäftsprozessen mittels XML<br />
2. Eine Ablaufumgebung für die modellierten Prozesse<br />
3. Eine Administrationsumgebung und Monitoringwerkzeug für das gesamte Workflow System<br />
2.3.2 Workflow-Beispiel<br />
Folgende Applikationsintegrationen werden implementiert und mit dem Workflow-Beispiel überprüfbar<br />
gemacht.<br />
• Web Service mit SOAP<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 5
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 2 Zielbestimmung<br />
• Java Server Pages<br />
• Session Bean<br />
Die oben genannten Applikationstypen können Ein- und Ausgabedaten haben.<br />
2.3.3 Anmerkungen<br />
Der in der Aufgabenstellung formulierte Auftrag präsentiert sich sehr offen und lässt uns sehr viel<br />
Spielraum. Wir haben uns daher einige zusätzliche Überlegungen gemacht.<br />
2.3.3.1 Befolgung von Standards<br />
Da die Implementierung des Prozessdefinitions-Werkzeuges nicht zu den Anforderungen gehört, stellt<br />
sich uns die Frage, ob wir die Standards der WfMC umsetzen wollen, wobei damit vorwiegend die<br />
XML Process Definition Language gemeint ist. Dies hätte den Vorteil, dass eine weitere Diplomarbeit<br />
die grafische Prozessdefinition zum Inhalt haben könnte und sich diese auf eine Standardschnittstelle<br />
abstützen könnte. Anderseits betrachten wir zu diesem Zeitpunkt die manuelle Erstellung einer Prozessdefinition<br />
durch den Benutzer im XML-Format gemäss den XPDL-Schema als eher zeitaufwändig<br />
und schwierig.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 6
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 3 Produkteinsatz<br />
3 Produkteinsatz<br />
3.1 Anwendungsdiagramm<br />
In der Abbildung 1 sind nur die Komponenten aufgeführt, welche für die Ausführung von <strong>FlowWorkJ</strong><br />
notwendig sind, das heisst die Komponenten von externen Applikationen und Datenbanken sind nicht<br />
aufgeführt.<br />
Worker-PC<br />
Internet Browser<br />
J2EE Applikation-PC<br />
Notification Daemon<br />
J2EE-Appliaktion Server<br />
Web Container<br />
EJB Container<br />
Abbildung 1: Einsatzdiagramm von <strong>FlowWorkJ</strong><br />
3.2 Software<br />
DTD oder Schema für<br />
Prozessdefinition<br />
XML-Prozessdefinition<br />
Dieses Werkzeug<br />
gehöhrt nicht zum<br />
Lieferumfang von<br />
<strong>FlowWorkJ</strong><br />
<strong>FlowWorkJ</strong>-DBMS<br />
Prozessersteller-PC<br />
Autoren-XML/DTD/Schema-<br />
Werkzeug<br />
<strong>FlowWorkJ</strong>-Deployment<br />
Werkzeug<br />
Java Applikation<br />
Instanzbesitzer/Administrator-PC<br />
<strong>FlowWorkJ</strong><br />
Administrations /<br />
Monitoring-Werkzeug<br />
Benutzte Java-Frameworks werden hier nicht aufgeführt. Es werden nur Open Source-Produkte verwendet.<br />
Als Betriebsystem wird sicherlich Windows NT/2000 unterstützt.<br />
<strong>FlowWorkJ</strong> DBMS Eine frei verfügbare Datenbank wie zum Beispiel MySQL, Interbase usw.<br />
Java JDK 1.3.x<br />
Internet Browser Internet Explorer 5.0<br />
Notification Daemon Dieser Daemon wird benutzt, um zum Beispiel die Worker bei Terminüberschreitungen<br />
mittels E-Mail zu informieren. Dabei werden die Soll- und Ist-<br />
Termine periodisch verglichen.<br />
Web Container Tomcat 4.X<br />
EJB Container JBoss – Der EJB Container muss den EJB 2.0 Standard bezüglich JMS und<br />
Message Driven Beans implementiert haben. Falls parallele, automatische<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 7
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 3 Produkteinsatz<br />
3.3 Hardware<br />
Aktivitäten durchgeführt werden, muss eine Parallelität in EBJ Container<br />
stattfinden können. Diese lässt sich mit JMS und Message Driven Beans<br />
realisieren.<br />
An die Hardware werden keine speziellen Anforderungen gestellt.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 8
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 4 Begriffe der «Workflow-Welt»<br />
4 Begriffe der «Workflow-Welt»<br />
4.1 Aktivitäten<br />
Aktivitäten sind die atomaren Arbeitseinheiten innerhalb eines Prozesses. Für jede Aktivität wird eine<br />
verantwortliche Ressource festgelegt. Eine Aktivität kann sein:<br />
• eine «manuell» ausgeführte Tätigkeit<br />
• ein ausgeführtes Programm<br />
• ein (Unter-) Prozess<br />
• eine Schleife<br />
4.2 Applikationen<br />
Applikationen werden in Aktivitäten aufgerufen, wobei eine Applikation von mehreren Aktivitäten aufgerufen<br />
werden kann. Die Eingangs- und Ausgangsparameter der Applikation müssen aus den Daten<br />
des Prozesses bestimmt werden.<br />
4.3 Build Time<br />
In der Buildtime-Umgebung des Workflow System wird die automatisierte Abarbeitung der Arbeitsabläufe<br />
vorbereitet. Ein zentraler Aspekt ist dabei die Transformation eines realen Arbeitsablaufs in eine<br />
computerbasierte Darstellung, die Workflow-Definition genannt wird.<br />
Eine Workflow-Definition enthält eine formale, vom Computer abarbeitbare Darstellung der Beschreibung<br />
einer Anzahl von einzelnen Aktivitäten mit den zugehörigen automatischen und/oder manuellen<br />
Operationen, sowie Regeln, die den Ablauf der Abarbeitung der einzelnen Aktivitäten steuern.<br />
4.4 Daten<br />
Unter Daten verstehen wir die durch die Aktivitäten eines Prozesses bearbeiteten Geschäftsdaten<br />
sowie Steuerdaten des Prozesses. Sie können vom primitiven Typ (Integer, String) sein oder vom Typ<br />
einer Referenz auf komplexere Daten.<br />
4.5 Datenfluss<br />
Für die Ausführung einzelner Aktivitäten werden meist Eingabedaten benötigt, die diese verarbeiten<br />
und daraus resultierende Ausgabedaten bereitstellen. Diese Ausgabedaten können wiederum als<br />
Eingabedaten einer späteren Aktivität dienen, welche jedoch nicht unbedingt die im Kontrollfluss direkt<br />
folgende Aktivität sein muss. Dieser Zusammenhang von Ausgabe- und Eingabedaten verschiedener<br />
Aktivitäten wird als Datenfluss bezeichnet und grafisch durch eine zweite Art von Kanten dargestellt,<br />
Datenflusskanten genannt. Der Datenfluss zwischen Aktivitäten wird als interner Datenfluss bezeichnet.<br />
Ausserdem können am Datenfluss externe Datenquellen wie zum Beispiel Datenbanken beteiligt<br />
sein, die Ausgangsdaten für Aktivitäten bereitstellen bzw. in denen Endergebnisse zur späteren Verwendung<br />
abgelegt werden. Dieser Datenfluss wird entsprechend externer Datenfluss genannt.<br />
4.6 Ressourcen<br />
Diese führen Aktivitäten aus und können sein:<br />
• Worker<br />
• Geräte<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 9
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 4 Begriffe der «Workflow-Welt»<br />
• Gruppen von Ressourcen<br />
Diese Workflowbegriffe sind bei der WfMC standardisiert und damit nicht proprietär. Verwendet man<br />
diese Begriffe für die Beschreibung von Geschäftsprozessen, können leicht Schätzmodelle für Entwicklungsprojekte<br />
entwickelt werden. Ausserdem können Aktivitäten als Einstiegspunkt für<br />
Komponenten dienen, so dass die Aktivität ein Arbeitsschritt einer Komponente sein kann. Dabei<br />
können eben auch die verwendeten Applikationen integriert und so transparent für den Benutzer<br />
aufgerufen werden.<br />
4.7 Run Time<br />
Die Funktionalität der Run Time bildet die Verbindung zwischen der modellierten Workflow-Definition<br />
und dem real ausgeführten Arbeitsablauf. Die Workflow Engine führt die Workflow-Definitionen aus,<br />
indem sie Instanzen von diesen erzeugt, den Inhalt der Workflow-Definitionen interpretiert und entsprechend<br />
der Beschreibung der Aktivitäten bestimmte Aktionen durchführt. Die Workflow-Engine ist<br />
damit die zentrale Komponente der Runtime-Umgebung. Die einzelnen Aktivitäten in einem Workflow<br />
sind meist mit Benutzer-Interaktionen verbunden, oft in Zusammenhang mit der Verwendung einer<br />
bestimmten Applikation, zum Beispiel zum Ausfüllen eines Formulars. Eine solche Applikation kann<br />
vom Workflow-System gestartet und gesteuert werden.<br />
4.8 Transitionen<br />
Transitionen beschreiben Übergänge zwischen den Aktivitäten. Jede Transition trägt eine Bedingung<br />
für die Daten des Prozesses. Ist die Bedingung – von der die Transition ausgeht – nach Ausführung<br />
der Aktivität erfüllt, so wird die Transition durchlaufen.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 10
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 5 Standard<br />
5 Standard<br />
Es ist wichtig, das Referenzmodell der WfMC zu verstehen, da sich einige Anforderungen nach diesem<br />
Modell richten.<br />
5.1 Das Referenzmodell der WfMC<br />
Die WfMC ist ein Industriestandardisierungsgremium – vergleichbar mit der OMG – mit dem Unterschied,<br />
dass der Fokus rein auf Standards für Workflow-Managementsystem gerichtet ist.<br />
Abbildung 2: Referenzmodell der WfMC<br />
5.1.1 Workflow Enactment Service<br />
• Ist die Softwarekomponente, welche die Laufzeitunterstützung für die Ausführung zur Verfügung<br />
stellt<br />
• Generiert aus den Prozessdefinition Instanzen und arbeitet diese ab (Kreation, Aktivierung, Anhalten,<br />
Beenden usw.)<br />
• Ist ein Interface, um Benutzer-Interaktionen zu unterstützen<br />
• Ermöglicht Austausch-relevanter Daten zwischen Benutzer und Anwendung<br />
5.1.2 Process Definition (Schnittstelle 1)<br />
Eine Vielzahl von Werkzeugen kann zu Hilfe genommen werden, um Geschäftsvorgänge zu analysieren,<br />
zu modellieren und zu beschreiben. Das WfMC-Referenzmodell schreibt nicht vor, wie diese<br />
Werkzeuge zu arbeiten haben. Stattdessen beinhaltet es eine Import/Export-Schnittstelle für die Definitionen<br />
von Geschäftsvorgängen. Das gemeinsame Austauschformat bietet folgende Arten von Informationen<br />
an:<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 11
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 5 Standard<br />
• Bedingungen für das Starten und Beenden von Prozessen<br />
• Identifizierung von Aktivitäten innerhalb eines Prozesses, einschliesslich dazugehöriger Applikationen<br />
und vorgangsrelevanter Daten<br />
• Identifizierung von Datentypen und Zugriffspfaden<br />
• Definition von Übergangsbedingungen und Flussregeln<br />
• Informationen zu Entscheidungen über Ressourcen-Belegungen<br />
5.1.3 Workflow Client Applications (Schnittstelle 2)<br />
• Zusammenarbeit mit den Anwendern<br />
• Aktivierung spezieller Applikationen<br />
• Liste aller Arbeitsschritte und der zugehörigen Benutzer<br />
5.1.4 Invoked Applications (Schnittstelle 3)<br />
Interaktionsunabhängige Applikationen stellen spezielle Programme dar, die von WFMS direkt aktiviert<br />
werden können, um eine Aktion auszulösen. Im Gegensatz zur Anwendung von Klientenbenutzerapplikationen<br />
werden diese Aktionen ohne Benutzereingaben durchgeführt.<br />
5.1.5 Other Workflow Enactment Service(s) (Schnittstelle 4)<br />
Ein Hauptanliegen der WFMC ist es, Standards zu definieren, die es Workflow Enactment Services<br />
unterschiedlicher Hersteller ermöglichen sollen, untereinander Arbeitsteile weiterzugeben. Verschiedene<br />
Workflow Enactment Services unterscheiden sich unter anderem in ihrem Detaillierungsgrad<br />
bezüglich der Geschäftsvorgänge. Während das eine Produkt nur Aufgaben oder Daten weiterleitet,<br />
ist ein anderes auf genau geregelte Produktionsabläufe ausgelegt. Um zu vermeiden, dass sich<br />
WFMS-Produktanbieter zwischen Interoperabilitätstandards oder einem hohen Detaillierungsgrad<br />
entscheiden müssen, werden mehrere Ausbaustufen für den Standard entwickelt. Interoperabilität<br />
kann auf verschieden Levels realisiert werden: Von einfacher Aufgabenweiterleitung bis hin zu WFMS<br />
mit vollständigem Austausch von Vorgangsbeschreibungen, vorgangsrelevanten Daten und gemeinsamem<br />
Look and Feel.<br />
5.1.6 Administration & Monitoring Tools (Schnittstelle 5)<br />
• Werkzeug für das Monitoring: Zustand/Auslastung der laufenden Instanzen<br />
• Protokollierung zur nachträglichen Fehlererkennung und Auswertung<br />
• Tools zur Benutzerverwaltung<br />
• Tuning-Tools: Anpassung technischer Parameter<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 12
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 6 Mögliche Formen von WFMS<br />
6 Mögliche Formen von WFMS<br />
6.1 Ad-hoc Workflow<br />
Ad-hoc Workflow ist durch blosse Verwendung von E-Mail-Systemen gegeben. Es werden Mitteilungen<br />
verschickt. Weitere Abarbeitungsregeln können nicht abgeleitet werden.<br />
6.2 Flexibler Workflow<br />
Unter Flexiblem Workflow versteht man das Erstellen einer Prozessdefinition vor der Ausführung, aber<br />
mit der Möglichkeit, die Prozesse und ihre Modelle während der Ausführung zu modifizieren.<br />
6.3 Produktions-Workflow<br />
Produktions-Workflow beinhaltet das Erstellen von vordefinierten Prozessen mit relativ strenger Ausdruckskraft.<br />
Die Prozess-Modelle können nur als Ganzes verändert werden. Einzelne laufende Prozesse<br />
sind nicht modifizierbar. Diese Definition entspricht dem klassischen Workflow-Konzept.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 13
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 7 Konstrukte des Workflow-Modells<br />
7 Konstrukte des Workflow-Modells<br />
Im Folgenden wird ein Workflow-Modell beschrieben. Aufgrund dieses Modells wird ein Teil der Abnahmekriterien<br />
erstellt.<br />
7.1 Kontrollknoten<br />
Mittels Kontrollknoten kann der Ablauf des Kontrollflusses gesteuert werden.<br />
7.1.1 Beispiel eines Workflows<br />
Der folgende Prozess ist ein Aktivitäts-Diagramm der UML Notation; natürlich ist dieser nicht vollständig,<br />
da einige Konstrukte in diesem Diagrammtyp fehlen.<br />
[Eilbestellung]<br />
Express-<br />
Lieferung<br />
Auftragsbearbeitung Kundenbetreung Buchhaltung<br />
Bestellung<br />
bearbeiten<br />
{Or-Split} auf<br />
den<br />
Transitionen<br />
{And-Split}<br />
[sonst]<br />
Normale<br />
Lieferung<br />
{Or-Join}<br />
Abbildung 3: Beispielprozess mit Join- und Splitknoten<br />
7.1.2 Start<br />
Bestellung<br />
entgegennehmen<br />
Rechnung<br />
ausstellen<br />
{And-Join}<br />
Bestellung<br />
abschliessen<br />
Startknoten<br />
Zahlung<br />
verbuchen<br />
Jede Workflow-Definition enthält genau einen Startknoten. Ein Endknoten muss nicht explizit definiert<br />
werden. Der Start einer Workflow-Instanz kann ausgelöst werden:<br />
• Durch ein externes Ereignis, wie zum Beispiel durch eine einkommende E-Mail<br />
• Manuell durch den Worker oder Instanzbesitzer<br />
• Zeitgesteuert<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 14
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 7 Konstrukte des Workflow-Modells<br />
7.1.3 Split und Join-Knoten<br />
Split-Knoten ermöglichen die Verzweigung des Kontrollflusses in mehrere parallel ablaufende Pfade.<br />
Ausserdem kann durch die Angabe von Bedingungen an den ausgehenden Transitionen des Split-<br />
Knotens festgelegt werden, unter welchen Bedingungen der folgende Pfad abgearbeitet werden soll.<br />
Jeder Split-Knoten hat als Gegenstück genau einen Join-Knoten. Dieser vereinigt die parallel einlaufenden<br />
Kontrollpfade zu einem ausgehenden Kontrollpfad.<br />
Es können zwei Arten von Split-Knoten verwendet werden:<br />
• And-Split: Die ausgehenden Transitionen haben keine Bedingungen, es werden also immer alle<br />
ausgehenden Kontrollpfade abgearbeitet.<br />
• Or-Split: Die ausgehenden Transitionen haben (bis auf eine) Bedingungen, sie werden jeweils<br />
genau dann aktiviert, wenn die Bedingung erfüllt ist. Genau eine der ausgehenden Transitionen<br />
hat keine Bedingung, dies ist die sogenannte Default-Transition. Sie wird dann aktiviert, wenn keine<br />
der anderen Transitionen aktiviert wird. Damit ist sichergestellt, dass mindestens eine ausgehende<br />
Transition des Or-Splits aktiviert wird, es können aber auch mehrere aktiviert werden.<br />
Für Join-Knoten stehen drei verschiedene Typen zur Verfügung:<br />
• And-Join: Die ausgehende Transition des Join-Knotens wird aktiviert, wenn alle eingehenden<br />
Transitionen aktiviert sind. Wenn der zugehörige Split ein Or-Split ist, dann werden nur die eingehenden<br />
Transitionen berücksichtigt, deren Kontrollpfade tatsächlich abgearbeitet werden.<br />
• Or-Join: Die ausgehende Transition des Join-Knotens wird aktiviert, wenn eine der eingehenden<br />
Transitionen aktiviert wird. Die Kontrollpfade aller anderen eingehenden Transitionen werden weiter<br />
abgearbeitet.<br />
• XOr-Join: Die ausgehende Transition des Join-Knotens wird aktiviert, wenn eine der eingehenden<br />
Transitionen aktiviert wird. Die Abarbeitung der Kontrollpfade aller anderen eingehenden Transitionen<br />
wird abgebrochen.<br />
7.1.4 Wiederholte Ausführung (Schleife)<br />
Mittels Loop-Start- und Loop-Ende-Knoten kann die wiederholte Ausführung bestimmter Abschnitte<br />
des Kontrollflusses festgelegt werden.<br />
Aktivität 1<br />
Loop-Start<br />
Abbildung 4: Wiederholte Ausführung<br />
[Bedingung]<br />
A B Aktivität 4<br />
Loop-Ende<br />
Vom Loop-End-Knoten führt eine Transition zurück zum Loop-Start-Knoten, diese wird als Loop-<br />
Transition bezeichnet. Die Loop-Transition besitzt immer eine wertebasierte Bedingung. Solange diese<br />
Bedingung wahr ist, wird die Schleife erneut abgearbeitet. Erst wenn diese Bedingung falsch ist,<br />
wird die ausgehende Transition des Loop End-Knotens aktiviert und damit der folgende Kontrollfluss<br />
abgearbeitet.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 15
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 7 Konstrukte des Workflow-Modells<br />
7.2 Organisationsmodell<br />
Das Organisationsmodell beruht auf Personen und Rollen. Jedem Aktivitätsknoten wird während der<br />
Modellierungsphase eine Rolle zugewiesen, die für ihre Ausführung verantwortlich ist. Mit dem Administratorenwerkzeug<br />
erfolgt die konkrete Zuordnung von Person zu Rolle.<br />
7.2.1 Rollen<br />
Jede Person hat eine bestimme Beziehung zu einer Rolle, eine Person kann jedoch auch mehrere<br />
Rollen haben.<br />
7.2.2 Basis <strong>FlowWorkJ</strong>-Rollen<br />
Zusätzlich definiert <strong>FlowWorkJ</strong> Basisrollen, welche die Zugriffsrechte zu den einzelnen <strong>FlowWorkJ</strong>-<br />
Modulen regelt.<br />
Adminstrator<br />
Worker<br />
Instanzbesitzer<br />
Prozessersteller<br />
Abbildung 5: Rollen in <strong>FlowWorkJ</strong><br />
Manuelle Aktivität<br />
ausführen<br />
<strong>FlowWorkJ</strong><br />
Personen und Rollen<br />
verwalten<br />
Prozess definieren<br />
<br />
Automatisierte Aktivität<br />
erstellen<br />
Instanz überwachen und<br />
steuern<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 16
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 7 Konstrukte des Workflow-Modells<br />
7.2.2.1 Administrator<br />
Die Rollen und Benutzer werden durch diese Rolle verwaltet.<br />
7.2.2.2 Prozessersteller<br />
Der Prozessersteller übersetzt das Geschäftsablaufmodell in einen Workflow-Modul-Prozess. Diese<br />
Rolle ist der «Besitzer» der Prozessdefinition. Nur der Besitzer hat die Berechtigung, die Prozessdefinition<br />
zu ändern oder zu löschen. Zusätzlich besorgt diese Rolle die Integration von Applikationen.<br />
7.2.2.3 Instanzbesiter<br />
Der Instanzbesitzer überwacht und steuert die Instanzen seiner Prozesse. Weiter kann er Prozesse<br />
erzeugen oder abbrechen.<br />
7.2.2.4 Worker<br />
Jeder Benutzer von <strong>FlowWorkJ</strong> ist zugleich Worker. Der Worker ist die allgemeinste Klasse von Teilnehmern<br />
an einem Workflow-Prozess. Diese Rolle charakterisiert die Person, die während der Erledigung<br />
täglicher Aufgaben mit dem WFMS arbeitet.<br />
7.3 Aktivitäten<br />
Wir unterscheiden zwischen komplexen und einfachen Aktivitätsdefinitionen. Ein Sub-Workflow ist<br />
eine komplexe Aktivität.<br />
7.3.1 Sub-Workflow<br />
Eine komplexe Aktivitätsdefinition beinhaltet eine komplette (Sub-)Workflow-Definition, die ausgeführt<br />
wird, wenn der zugehörige Aktivitätsknoten aktiviert wird. Nachdem ein Sub-Workflow vollständig abgearbeitet<br />
ist, wird auch der zur Aktivitätsdefinition gehörige Aktivitätsknoten als beendet angesehen.<br />
Ein Sub-Workflow-Definition kann ihrerseits wieder Aktivitätsknoten mit komplexen Aktivitätsdefinitionen<br />
enthalten, so dass eine mehrfache Verschachtelung möglich ist.<br />
7.3.2 Automatisierte Aktivität<br />
Applikationen werden jeweils einer einfachen Aktivitätsdefinition zugeordnet. Diese Applikationen<br />
werden zur Runtime dann durch die Workflow Engine über den Applikation Server gestartet und mit<br />
ihren Eingabe-Objekten versorgt. Die Workflow Engine nimmt dann auch die Ausgabeobjekte der<br />
Applikationen wieder entgegen. Nach erfolgreicher Beendigung der Applikation wird die Aktivität als<br />
abgeschlossen angesehen.<br />
7.3.3 Manuelle Aktivität<br />
Bei manuellen Aktivitäten wird der Benutzer darüber informiert, dass eine Aktivität auszuführen ist, es<br />
kann eine rein manuelle oder eine teilweise vom Computer unterstützte Aktivität sein.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 17
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 7 Konstrukte des Workflow-Modells<br />
7.4 Transitionen<br />
7.4.1 Transitionsbedingung<br />
7.4.1.1 Normale Transitionen<br />
Transitionen legen fest, welche Knoten zu einem Kontrollpfad gehören. Ihnen können zwei Arten von<br />
Bedingungen zugeordnet werden:<br />
• Temporale Bedingungen: Beinhalten zeitliche Bedingungen, wie eine minimale Wartezeit oder<br />
maximale Wartezeit zwischen zwei Aktivitäten.<br />
• Wertebasierte Bedingungen: Beinhalten Bedingungen, die sich auf die Werte von Objekten aus<br />
dem Objektfluss beziehen. Diese Art von Bedingungen ist nur bei Or-Split-Knoten oder wiederholter<br />
Ausführung zulässig.<br />
7.4.1.2 Synchronisations-Transitionen<br />
Synchronisations-Transitionen legen fest, dass parallel liegende Knoten in einer bestimmten Reihenfolge<br />
abzuarbeiten sind. Dies ist in Abbildung 6 dargestellt. Synchronisations-Transitionen sind nur<br />
zwischen parallel liegenden Knoten zulässig, das heisst wenn die Reihenfolge der Abarbeitung der<br />
Knoten nicht durch normale Transitionen eindeutig definiert ist, wie dies in Split-Join-Regionen der Fall<br />
ist. Ausserdem darf weder der Quell- noch der Ziel-Knoten ein Start- oder End-Knoten sein und er darf<br />
nicht in einer Schleife liegen.<br />
Abbildung 6: Transitionen<br />
Split<br />
A<br />
C<br />
Synchronisations Transition<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 18<br />
B<br />
D<br />
Join
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
8 Anwendungsfälle<br />
Da sowohl dem Auftraggeber wie auch dem Auftragnehmer die Grundprinzipien von Anwendungsfällen<br />
bekannt sind, verzichten wir hier auf eine Prosabeschreibung von Szenarien. Anwendungsfälle<br />
sind Abstraktionen von Szenarien, das heisst ähnliche Szenarien werden zusammengefasst und deren<br />
Gemeinsamkeiten ausgearbeitet.<br />
Im folgenden werden die Anwendungsfälle von Abbildung 5: Rollen in <strong>FlowWorkJ</strong> wiedergeben.<br />
8.1 Personen und Rollen verwalten (A1)<br />
8.1.1 Zielsetzung<br />
Personen und Rollen können erfasst, gelöscht und miteinander verknüpft werden. Zum Beispiel lässt<br />
sich eine wie in Abbildung 7: Personen und Rollen dargestellte Organisation in <strong>FlowWorkJ</strong> abbilden,<br />
wobei keine Relation zwischen den Rollen erfasst wird, das heisst in diesem Beispiel hat die Fertigung<br />
1 keine Relation zur Produktion.<br />
Person4<br />
Person1<br />
Abbildung 7: Personen und Rollen<br />
Produktion Marketing<br />
Anlagen Fertigung 1<br />
Person6<br />
Person3<br />
(UML-Kenner mögen uns entschuldigen für dieses Diagramm)<br />
Person5<br />
Unternehmensleitung<br />
Person2<br />
Fertigung 2<br />
• Die Rollen und Personen werden erfasst, dabei kann eine Person 0..n Rollen (maximale Anzahl<br />
Rollen) und eine Rolle 0..n Personen (maximale Anzahl Personen) haben.<br />
• Personen oder Rollen können gelöscht werden, falls dies die referenzielle Integrität erlaubt.<br />
8.1.2 Akteure<br />
Administrator<br />
8.1.3 Vorbedingung<br />
• Der Administrator hat sich erfolgreich am <strong>FlowWorkJ</strong> Administratoren/Monitoring Werkzeug angemeldet.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 19
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
8.1.4 Normaler Ablauf<br />
Dieser Anwendungsfall wird während der Analysephase verfeinert.<br />
8.2 Prozess definieren (A2)<br />
8.2.1 Zielsetzung<br />
Der Prozesserstellter definiert den Geschäftsprozess mittels XML und führt das Deployment dieser<br />
XML-Prozessdefinition durch.<br />
Rolle<br />
0..1<br />
hat<br />
0..* hat<br />
Transitions Bedinung<br />
Abbildung 8: Elementares Metamodell<br />
1..*<br />
hat<br />
Prozessdefinition<br />
1..* besteht aus<br />
Aktivitaet<br />
1 hat<br />
0..1 hat<br />
Applikation<br />
Workflow relevante Daten<br />
Dynamische Daten, wie z.B.<br />
Personen-/Rollenzuordnung, Ein<br />
und Ausgabedaten von Applikat<br />
Dabei besteht die XML-Prozessdefinition wie in Abbildung 8: Elementares Metamodell dargestellt aus<br />
Aktivitäten, Rollen, usw.<br />
8.2.2 Akteure<br />
Prozessersteller<br />
8.2.3 Vorbedingung<br />
• Der Prozessersteller hat eine konkrete Vorstellung des Geschäftprozesses und kennt XML.<br />
• Die Organisation ist in der <strong>FlowWorkJ</strong>-DBMS definiert, damit die Personen-/Rollenzuordnung<br />
funktioniert.<br />
• Der Prozesshersteller ist als Prozessersteller in der <strong>FlowWorkJ</strong>-DBMS eingetragen.<br />
• Der Prozess hat eine eindeutige Kennung.<br />
8.2.4 Nachbedingung<br />
Das Deployment war erfolgreich und Instanzen von diesem Prozess können gebildet werden.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 20
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
8.2.5 Normaler Ablauf<br />
a. Der Prozessersteller setzt den Geschäftprozess in eine XML-Prozessdefinition um. Dabei wird er<br />
durch DTD oder XML-Schema untertstützt.<br />
b. Der Prozessersteller führt das Deployment der XML-Prozessdefinition mittels dem <strong>FlowWorkJ</strong>-<br />
Deployment-Werkzeug in die <strong>FlowWorkJ</strong>-DBMS durch, dabei bestimmt er den Instanzbesitzer.<br />
8.2.6 Ausnahme (b)<br />
1) Beim Deployment treten semantische Fehler auf wie zum Beispiel:<br />
• Die Rollenzuordnung ist fehlgeschlagen.<br />
8.2.7 Alternativen<br />
1) Der Prozess wird in der <strong>FlowWorkJ</strong>-DBMS gelöscht bzw. als zu löschen markiert.<br />
8.3 Automatisierte Aktivitäten erstellen (A3)<br />
8.3.1 Zielsetzung<br />
<strong>FlowWorkJ</strong> hat Schnittstellen zu verschiedenen Technologien, welche die Integration von computerunterstützten<br />
Aktivitäten erlauben, dabei kann mit Ein- und Ausgabedaten gearbeitet werden.<br />
Der Prozessersteller programmiert Session Beans, Java Server Pages und Web Services, dabei wird<br />
durch Open Source- und/oder <strong>FlowWorkJ</strong> Framework/s unterstützt. Diese automatisierten Aktivitäten<br />
werden in der XML-Prozessdefintion bekannt gemacht und auf den J2EE Application Server deployed.<br />
8.3.2 Akteure<br />
Prozessersteller<br />
8.3.3 Vorbedingung<br />
• Der Prozessersteller kennt die Grundlagen von Session Bean, Java Server Pages und Web Services<br />
mit SOAP.<br />
• Der Prozessersteller kennt das Deployment-Verfahren seines Applikationsservers.<br />
• Der Prozessersteller ist als Prozessersteller in der <strong>FlowWorkJ</strong>-DBMS eingetragen.<br />
8.3.4 Nachbedingung<br />
Das Deployment ist erfolgreich und Instanzen von diesem Prozess können gebildet werden.<br />
8.3.5 Normaler Ablauf<br />
a. Der Prozessersteller programmiert die computerunterstützten Aktivitäten.<br />
b. Der Prozessersteller führt das Deployment der computerunterstützten Aktivitäten auf dem Applikationsserver<br />
durch.<br />
c. In der XML-Prozessdefinition werden die Schnittstellen definiert.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 21
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
8.3.6 Ausnahme (b)<br />
1) Das Deployment auf dem Applikationsserver ist fehlgeschlagen.<br />
8.4 Manuelle Aktivität ausführen (A4)<br />
8.4.1 Zielsetzung<br />
Der Worker führt eine manuelle Aktivität durch.<br />
8.4.2 Akteure<br />
Worker<br />
8.4.3 Vorbedingung<br />
• Der Worker hat sich mittels des Anmeldedialogs angemeldet.<br />
• Der Worker hat eines oder mehrere Arbeitselemente in der Arbeitsliste bzw. Prozesse in der Prozessliste.<br />
8.4.4 Normaler Ablauf<br />
a. Der Worker wählt ein Arbeitselement aus der Arbeitsliste aus.<br />
b. Der Worker bestätigt die Annahme der Aktivität.<br />
c. Der Worker führt die Aktivität durch.<br />
d. Der Worker schliesst die manuelle Aktivität ab.<br />
e. Der Work Engine schaltet zur nächsten Aktivität.<br />
8.4.5 Alternative (a)<br />
1) Der Worker erzeugt eine neue Instanz aus der Prozessliste.<br />
2) Fortsetzung mit c.<br />
8.4.6 Alternative (c)<br />
1) Die Tätigkeit wird suspendiert.<br />
2) Sofortige oder spätere Fortsetzung mit a.<br />
8.4.7 Ausnahme (c)<br />
1) Die Ausführung der computerunterstützten Aktivität ergab einen Fehler.<br />
2) Der Prozess wird abgebrochen.<br />
8.4.8 Implementierung<br />
8.4.8.1 GUI<br />
In der Abbildung 9: Frameaufteilung des Webclient ist eine mögliche, grobe Bildschirmaufteilung des<br />
Webclient dargestellt.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 22
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
<strong>FlowWorkJ</strong><br />
Abbildung 9: Frameaufteilung des Webclient<br />
Anzeige Prozess- und<br />
Arbeitsliste<br />
8.5 Instanz überwachen und steuern (A5)<br />
8.5.1 Zielsetzung<br />
Arbeitsfläche<br />
Der Instanzbesitzer kann seine Instanzen überwachen und steuernd eingreifen, dazu gehören:<br />
• Eine Instanz eines Prozesses erzeugen, dabei muss er die erste Aktivität nicht durchführen.<br />
• Wahlweise pro Aktivität einer Instanz einen Termin setzen.<br />
• Eine Instanz im Zustand «erzeugt» löschen<br />
• Eine Instanz in den Zustand «abgebrochen» führen.<br />
• Den Arbeitsfortschritt und Prozesszustand beobachten.<br />
8.5.2 Akteure<br />
Instanzbesitzer<br />
8.5.3 Vorbedingung<br />
• Der Instanzbesitzer hat sich mittels des Anmeldedialogs angemeldet.<br />
8.5.4 Normaler Ablauf<br />
Dieser Anwendungsfall wird während der Analysephase verfeinert.<br />
8.5.5 Implementierung<br />
8.5.5.1 Prozesszustand<br />
Die folgende Prozesszustände können durch den Instanzbesitzer beobachtet werden:<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 23
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 8 Anwendungsfälle<br />
Abbildung 10: Prozesszustände<br />
erzeugt<br />
läuft<br />
nicht ausgeführt<br />
nicht gestartet<br />
suspendiert<br />
beendet<br />
abgeschlossen<br />
abgebrochen<br />
• erzeugt: Der Prozess wird durch den Instanzbesitzer oder Worker erzeugt.<br />
• nicht gestartet: Instanzbesitzer erzeugt eine Instanz.<br />
• läuft: Der Prozess hat keine Aktivität welche den Zustand suspendiert hat.<br />
• suspendiert: Ein oder mehrere Aktivitäten haben den Zustand suspendiert.<br />
• beendet: Der Prozess wird ordnungsgemäss abgeschlossen oder manuell bzw. durch einen Programmfehler<br />
abgebrochen.<br />
• abgeschlossen: Der Prozess wird ordnungsgemäss beendet.<br />
• abgebrochen: Der Prozess wird manuell oder durch einen Programmfehler abgebrochen.<br />
8.5.5.2 Aktivitätszustand<br />
Die folgende Aktivitätszustände können durch den Instanzbesitzer beobachtet werden:<br />
inaktiv<br />
Abbildung 11: Aktivitätszustände<br />
suspendiert<br />
aktiv abgeschlossen<br />
• inaktiv: Die Aktivität wurde erzeugt aber noch nicht aktiviert.<br />
• aktiv: Ein Arbeitselement wird durch den Worker oder einer Applikation dieser Aktivität bearbeitet.<br />
• suspendiert: Worker wählt ein Arbeitselement aus der Prozessliste, schliesst dies aber nicht ab<br />
und seine Session ist nicht mehr aktiv.<br />
• abgeschlossen: Der Worker oder die Applikation schliesst die Aktivität ordnungsgemäss ab.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 24
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 9 Abnahmekriterien<br />
9 Abnahmekriterien<br />
9.1 Funktionale Anforderungen<br />
Zu den in den Anwendungsfällen (A1-A5) beschriebenen Anforderungen bestehen zusätzlich folgende<br />
funktionale Anforderungen:<br />
Bereich Ziel M 1 /W 2<br />
Mögliche Formen<br />
von WFMS<br />
Konstrukte des<br />
Workflow-Modells<br />
Unterstützt den Produktions-Workflow<br />
Wertebasierte Bedingungen auf Transitionen<br />
Split und Join-Knoten werden vollständig implementiert M<br />
Optional wird die Rolle – bzw. der Worker – bei Terminüberschreitungen<br />
mittels E-Mail an seine Pflichten erinnert<br />
Optional wird der Instanzbesitzer bei Terminüberschreitungen mittels E-<br />
Mail informiert<br />
Wiederholte Ausführung M<br />
Es wird ein Framework bereitgestellt, welches das Herunter- und<br />
Hinaufladen einer Datei in die Datenbank unterstützt<br />
Synchronisations-Transitionen W<br />
Befolgung von Standards bezüglich des XML-WfMC-Referenz-Modells W<br />
Sub-Workflow W<br />
Temporale Bedingungen auf Transitionen W<br />
Die Prozessdefinition erfolgt mit einem grafischen Werkzeug W<br />
Eine Instanz kann zeitgesteuert erzeugt werden W<br />
Workflow-Beispiel Das Beispiel der einfachen Auftragsabwicklung kann für den Schulunterricht<br />
benutzt werden<br />
Die Studenten können dabei Rollen einnehmen und aktiv teilnehmen M<br />
Die implementierten Schnittstellen werden alle genutzt M<br />
Dokumentation Falls kein grafisches Werkzeug für die Prozessmodellierung vorliegt,<br />
muss die XML-Prozessdefinition sehr ausführlich in englischer oder<br />
deutscher Sprache beschrieben sein<br />
1 Muss-Ziel<br />
2 Wunsch-Ziel<br />
Für die Installation und den Betrieb des Produktes wird das Wissen der<br />
Entwickler dieses Produktes nicht benötigt, da ein vollständiges Betriebshandbuch<br />
geliefert wird<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 25<br />
M<br />
M<br />
M<br />
M<br />
M<br />
M<br />
M<br />
M
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 9 Abnahmekriterien<br />
9.2 Qualitätszielbestimmungen<br />
Produktequalität sehr wichtig wichtig unwichtig<br />
Funktionalität<br />
Angemessenheit<br />
Richtigkeit<br />
Interoperabilität<br />
Ordnungsmässigkeit<br />
Zuverlässigkeit<br />
Reife<br />
Fehlertoleranz<br />
Wiederherstellbarkeit<br />
Benutzbarkeit<br />
Verständlichkeit<br />
Erlernbarkeit<br />
Bedienbarkeit<br />
Effizienz<br />
Zeitverhalten<br />
Verbrauchsverhalten<br />
Änderbarkeit<br />
Analysierbarkeit<br />
Erweiterbarkeit<br />
Stabilität<br />
Übertragbarkeit<br />
Anpassbarkeit<br />
Installierbarkeit<br />
Konformität<br />
Austauschbarkeit<br />
9.2.1 Definition der Qualitätszielbestimmungskriterien<br />
sehr wichtig: Hier kann der Auftraggeber feststellen das sich der Auftragnehmer der Problematik<br />
bewusst war und eine optimierte Lösung anbietet.<br />
wichtig: Der Auftragnehmer ist sich der Problematik bewusst und betreibt einen Mehraufwand, wobei<br />
aufwändige Optimierungen nicht durchgeführt werden. Falls dieser Mehraufwand durch den Auftragnehmer<br />
im Endprodukt nicht sichtbar ist, kann dies der Auftragnehmer begründen.<br />
unwichtig: Es hat keine Bedeutung, daher wird schon gar nicht über eine Optimierung nachgedacht.<br />
9.3 Abgrenzung<br />
• Es gibt kein Simulationswerkzeug um den Workflow zu simulieren.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
X<br />
Seite 26
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 9 Abnahmekriterien<br />
• Die Qualität der Dokumentation bezüglich Application Server liegt nicht in unserer Kompetenz.<br />
• Other Workflow Enactment Service(s) (Schnittstelle 4) des WfMC-Referenzmodelles wird nicht<br />
implementiert.<br />
• Versionierung von Prozessen wird nicht unterstützt.<br />
• Eine Instanz kann nicht durch eine E-Mail erzeugt werden. Siehe auch Kapitel «Start».<br />
• Ein XML-Autoren-Werkzeug gehört nicht zum Lieferumfang.<br />
• Die Sprache der Applikation ist Deutsch, andere Sprachen werden nicht unterstützt.<br />
• Da es sich um eine Serverlösung mit J2EE handelt und nicht um eine lokale Ausführung von Programmen,<br />
kann es keine direkte Integration von Microsoft-Office Anwendungen in den Workflow-<br />
Engine geben.<br />
• Die Verwaltung der XML-Prozessdefinitions Dateien gehört nicht zum Umfang von <strong>FlowWorkJ</strong>.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 27
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 10 Glossar<br />
10 Glossar<br />
Deployment: Das Deployment kann als ein Einspielen einer oder mehreren Komponenten auf eine<br />
Zielumgebung angesehen werden.<br />
Dokumenttyp-Definition (DTD): In einer Dokumenttyp-Definition werden die Regeln festgelegt, die<br />
für Dokumente eines bestimmten Typs gelten sollen. Für den Verfasser von XML-Dokumenten macht<br />
sich die Verwendung von DTDs in erster Linie als Einschränkung bemerkbar. Es können nur bestimmte<br />
Elemente verwendet werden, und es müssen die Vorgaben für die Verschachtelung der Elemente<br />
und für die Attribut-Werte eingehalten werden. Eine Dokumenttyp-Definition kann in einer separaten<br />
Datei untergebracht werden; man spricht dann von einer externen DTD (oder auch von einer externen<br />
DTD-Untermenge). Die Definitionen können aber auch am Anfang von einem Dokument erscheinen.<br />
In diesem Fall spricht man von einer internen DTD (bzw. einer internen DTD-Untermenge).<br />
Entity Beans: Der wesentliche Unterschied zwischen Session und Entity Beans definiert sich über die<br />
Persistenz. Session Beans sind nicht persistent, das heisst sie haben kein echtes Gegenstück auf der<br />
Datenbank (bei Entity Beans könnte das Gegenstück zum Beispiel ein Datensatz in einer Tabelle<br />
sein). Ein «Entity Bean» repräsentiert folglich eine Objektsicht auf Geschäftsdaten, die in der (relationalen)<br />
Datenbank gespeichert sind. Das Bean bringt einen sogenannten «object wrapper» mit, der ein<br />
einfaches Zugreifen auf die Daten und deren kontrollierte Manipulation ermöglicht. Entity Beans sind<br />
in diesem Kontext transaktionsgeschützt, das heisst die Beans repräsentieren immer den letzten konsistenten<br />
Zustand der Daten. Ein Entity Bean kann seine Persistenz selbst kontrollieren (bean managed<br />
persistence) oder die Aufgabe an den Container delegieren (container managed persistence). Ein<br />
Entity Bean wird über einen Primärschlüssel identifiziert. Wenn der Container abstürzt, in dem das<br />
Bean läuft, überleben das Entity Bean, sein Primärschlüssel sowie jede Referenz darauf.<br />
Framework: Als Framework bezeichnet man eine Menge von verknüpften Klassen, welche zusammen<br />
ein wiederverwendbares und erweiterbares Gerüst für die Entwicklung von Software eines bestimmten<br />
Typs bilden.<br />
J2EE: Die Java 2 Enterprise Edition ist ein Sammlung verschiedenster Spezifikationen auf deren<br />
Grundlage Softwareprodukte, insbesondere Internetanwendungen, entwickelt werden können. Die<br />
J2EE-Spezifikation kennt die folgenden vier Typen von Komponenten, die von J2EE-kompatiblen Application<br />
Servern unterstützt werden müssen :<br />
Application Clients: Das sind typischerweise Programme mit grafischem User Interface, die auf dem<br />
Desktop Computer beim Anwender laufen.<br />
Applets: Dieses sind GUI-Komponenten, die von einem Web Server in den Web Browser beim Anwender<br />
geladen und dort ausgeführt werden.<br />
Servlets, JavaServer Pages (JSP), Filter und Web Eventlistener: Diese werden als Web-<br />
Komponenten bezeichnet und Serverseitig ausgeführt.<br />
Enterprise Java Beans: Sie repräsentieren typischerweise die Geschäftslogik einer Anwendung und<br />
werden ebenfalls serverseitig ausgeführt.<br />
Java Server Pages: Die JavaServer Pages-Technologie ermöglicht das Erstellen von dynamischen<br />
Inhalten für Web Clients. Eine JSP-Seite ist ein textbasiertes Dokument, das die Behandlung eines<br />
Requests und die damit verbundene Antwort (Response) beschreibt. Der Vorteil bei der Verwendung<br />
von JSP-Seiten gegenüber Servlets liegt darin, dass eine Trennung von Darstellungs- und inhaltserzeugender<br />
Logik möglich wird. Der Seitenaufbau kann mit Hilfe von HTML- oder XML-Elementen realisiert<br />
werden. Der dynamische Inhalt wird mit Hilfe von JSP-Elementen, wie Zugriffe auf instanziierte<br />
JavaBeans (hier als serverseitige Komponenten zu verstehen) oder zum Beispiel sogenannte «Scriptlets»<br />
(Fragmente aus Java-Code), erzeugt.<br />
JMS: Das Java Messaging Service API unterstützt asynchrone Kommunikation in verschiedenen<br />
Messaging-Systemen, wie zum Beispiel verlässliches Queuing oder Publish and Subscribe Services.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 28
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 10 Glossar<br />
Open Source: Software, die sowohl als Quelltext als auch in ausführbarer Form inspiziert, verändert<br />
und auch verändert unter gleicher Lizenz weitergegeben werden darf. Der Quellcode ist meist öffentlicht<br />
zugängig und kann von anderen Programmierern verwendet werden.<br />
Session Beans: Ein Session Bean wird erzeugt, um dem aufrufenden Client eine bestimmte Funktionalität<br />
zur Verfügung zu stellen. Ein solches Bean existiert typischerweise nur für die Dauer einer einzelnen<br />
Client Server Session. Session Beans werden benutzt, um spezielle «Business Cases» zu<br />
implementieren, das heisst in ihnen liegt die eigentliche Geschäftslogik. Demzufolge kann ein Session<br />
Bean unter Umständen der verlängerte Arm des Clients sein, der auf dem Server als logische Erweiterung<br />
des Clients fungiert. Session Beans repräsentieren nicht notwendigerweise Daten aus der Datenbank.<br />
Allerdings können sie Routinen beinhalten, die einen Zugriff und die Manipulation der Daten<br />
erlauben oder auch einen «Workflow» darstellen, das heisst einen Vorgang, der aus mehreren Einzelschritten<br />
besteht. Das Bean kann dabei transaktionsorientiert sein, allerdings ist der Vorgang nicht<br />
wieder herstellbar, falls der Container während einer laufenden Transaktion abstürzt. Weiterhin wird<br />
zwischen «stateful» und «stateless» Session Beans differenziert. Ganz simpel ausgedrückt handelt es<br />
sich bei einem «stateless» Session Bean um eine Komponente, auf die ohne Kenntnisse des vorherigen<br />
oder zukünftigen Zustands zugegriffen wird, das heisst die Zugriffe erfolgen isoliert voneinander.<br />
Ein «stateful» Session Bean hingegen kann als Erweiterung der Client-Applikation aufgefasst werden,<br />
da es Aufgaben für einen Client durchführt und sich auch den Zustand des korrespondierenden<br />
Clients merkt. Dieser Typ von Enterprise Beans bildet Logik ab, die bei einer klassischen Client-<br />
Server-Architektur im Client liegen würde (und nun auf der Middle-Tier liegt!). Man nennt diesen Zustand<br />
auch «conversational state», da er eine kontinuierliche Konversation zwischen dem stateful<br />
Session Bean und dem Client repräsentiert.<br />
SOAP (Simple Object Access Protocol) ist für Web Services die zentrale Middleware-Technologie.<br />
Sie basiert auf offenen Standards wie XML und definiert einen Nachrichtenaustausch zwischen 2<br />
Partnern im Internet:<br />
Ein Dienstanbieter (Server), auch Web Service Provider genannt, stellt eine beliebige Online-<br />
Dienstleistung via SOAP zur Verfügung. Er akzeptiert Nachrichten über das Standard-Internet-<br />
Protokoll HTTP, die in XML formatiert sind.<br />
Ein Dienstnehmer (Client), kann den Service des Anbieters durch eine entsprechend formulierte<br />
SOAP Nachricht nutzen kann.<br />
Web Services sind lose verbundene, offene Schnittstellen, die auf Basis plattformunabhängiger<br />
Technologien angebunden werden können. Sie ermöglichen eine zeitnahe und dynamische Abwicklung<br />
von komplexen Geschäftsprozessen über System- und Unternehmensgrenzen hinweg. IBM definiert<br />
Web Services wie folgt: «Web Services sind gekennzeichnet durch einen dreistufigen Web Service<br />
Stack, der die offenen Standards SOAP (Simple Object Access Protocol), WSDL (Web Services<br />
Description Language) und UDDI (Universal Discovery, Description and Integration) beinhaltet.» Der<br />
Charme von Web Services liegt eben in dieser konsequenten und ausschliesslichen Verwendung von<br />
standardisierten und Web-tauglichen Technologien, die nicht nur Kommunikation sondern auch verteilte<br />
Transaktionen über Unternehmensgrenzen und Firewalls hinweg ermöglichen.<br />
XML-Schema ist ein neuer Ansatz zur Definition von Dokument-Typen und damit zur Spezifikation<br />
von XML-Sprachen. Mit der Erhebung der eXtensible Markup Language (XML) zum Industriestandard<br />
1998 hatte sich zunächst die von der Standardized Generalized Markup Language (SGML) übernommene<br />
Document Type Definition (DTD) als Format zur Beschreibung konkreter XML-Sprachen etabliert.<br />
Mit der starken Verbreitung von XML in der Praxis machten sich zunehmend die Schwachpunkte<br />
der DTDs bemerkbar, insbesondere die dokumentenzentrierte Sichtweise der DTDs unter Vernachlässigung<br />
von Datentypen erwiesen sich in Zeiten der Annäherung der Programmiersprachen an die<br />
Datenmodellierung als Problem. Auch lassen die DTDs weder die Beschreibung bestimmter semantischer<br />
Bedingungen noch die Festlegung von Wertebereichen zu. Als Nachfolger der DTDs markiert<br />
XML-Schema den entscheidenden Wendepunkt von der bisherigen dokumentenorientierten Sichtweise<br />
hin zu einer datenorientierten Sichtweise. Durch das Hinzufügen von Datentypen erhöht XML-<br />
Schema seine Ausdruckskraft und die Nutzbarkeit von XML für E-Commerce und Datenbanken. XML-<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 29
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 10 Glossar<br />
Schema erfüllt die Anforderung, Daten in einem einheitlichen, dabei aber flexiblen und leicht modifizierbaren<br />
Format, welches sich zudem leicht auswerten (parsen) lässt, zu transportieren. XML-<br />
Schema stellt die DTD-Regeln zur Verfügung, nach denen ein XML-Dokument auf seine Gültigkeit hin<br />
überprüft wird (Validierung). Da jedes XML-Schema auch ein XML-Dokument ist, lässt es sich selbst<br />
auch durch ein Schema oder eine DTD beschreiben.<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3<br />
Seite 30
<strong>Pflichtenheft</strong> - <strong>FlowWorkJ</strong> Kapitel: 11 Abbildungsverzeichnis<br />
11 Abbildungsverzeichnis<br />
Abbildung 1: Einsatzdiagramm von <strong>FlowWorkJ</strong>...................................................................................... 7<br />
Abbildung 2: Referenzmodell der WfMC............................................................................................... 11<br />
Abbildung 3: Beispielprozess mit Join- und Splitknoten ....................................................................... 14<br />
Abbildung 4: Wiederholte Ausführung................................................................................................... 15<br />
Abbildung 5: Rollen in <strong>FlowWorkJ</strong>......................................................................................................... 16<br />
Abbildung 6: Transitionen...................................................................................................................... 18<br />
Abbildung 7: Personen und Rollen........................................................................................................ 19<br />
Abbildung 8: Elementares Metamodell ................................................................................................. 20<br />
Abbildung 9: Frameaufteilung des Webclient........................................................................................ 23<br />
Abbildung 10: Prozesszustände............................................................................................................ 24<br />
Abbildung 11: Aktivitätszustände .......................................................................................................... 24<br />
©<strong>Pflichtenheft</strong>.doc 06.01.2003 – Version: 2.3 Seite 31