07.08.2013 Aufrufe

Pflichtenheft FlowWorkJ

Pflichtenheft FlowWorkJ

Pflichtenheft FlowWorkJ

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!