Table Of Content(cid:0)(cid:1)(cid:2) Ein Work(cid:3)ow(cid:4)Managementsystem auf der
Basis aktiver Datenbanken
Johann Eder(cid:0) Herbert Groiss
Abstract
Dieses Kapitel stellt eine Architektur fu(cid:0)r die Realisierung von
Work(cid:1)ow(cid:2)Managementsystemen vor(cid:3) die auf der Verwendung
von aktiven Datenbanksystemen basiert(cid:4) Bei diesem Ansatz
werden alle Informationen u(cid:0)ber das Work(cid:1)owsystem(cid:3) das sind
Proze(cid:5)strukturen(cid:3) Benutzer bzw(cid:4) Rolleninformation(cid:3)Metadaten
sowieBeziehungenzwischenProzessenundDaten(cid:3)alsauchs(cid:0)amt(cid:2)
liche Informationenu(cid:0)berdiedynamische Proze(cid:5)durchfu(cid:0)hrung in
der Datenbank verwaltet(cid:4) Die Work(cid:1)owde(cid:6)nitionen werden auf
Trigger u(cid:0)bersetzt(cid:3) die die Proze(cid:5)durchfu(cid:0)hrung ereignisorientiert
steuern(cid:4) Als Beispiel wird der Protoyp Panta Rhei vorgestellt(cid:3)
dem diese Architektur erfolgreich zugrundegelegt wurde(cid:4)
(cid:0)(cid:1)(cid:2)(cid:5) Einleitung
Work(cid:1)ow(cid:2)Systeme unterstu(cid:0)tzen die Durchfu(cid:0)hrung von Gesch(cid:0)aftsprozessen
mit informationstechnischen Mitteln(cid:4) Gesch(cid:0)aftsprozesse bzw(cid:4) Vorg(cid:0)ange
werden mit den dafu(cid:0)r entwickelten Modellierungswerkzeugen konzeptuell
modelliert(cid:4) Diese konzeptuellen Proze(cid:5)modelle k(cid:0)onnen dann auf Work(cid:1)ow(cid:2)
de(cid:6)nitionen(cid:3)dieProze(cid:5)schemata(cid:3) abgebildetwerden(cid:4) Esgibtdafu(cid:0)rnatu(cid:0)rlich
verschiedenste Ans(cid:0)atze (cid:7)(cid:8)HEA(cid:9)(cid:10)(cid:3) LCS(cid:11)(cid:12)(cid:3) ML(cid:9)(cid:13)(cid:3) TLF(cid:11)(cid:11)(cid:3) Zlo(cid:11)(cid:12)(cid:3) EB(cid:11)(cid:12)(cid:14)(cid:15) mit
recht unterschiedlicher M(cid:0)achtigkeit oder Flexibilit(cid:0)at(cid:4) Im wesentlichen spe(cid:2)
zi(cid:6)zieren Work(cid:1)owde(cid:6)nitionen folgendes(cid:16)
(cid:0)
Welche Aufgaben (cid:7)Tasks(cid:15) ausgefu(cid:0)hrt werden sollen(cid:4)
(cid:0)
InwelcherReihenfolgedieAufgabenausgefu(cid:0)hrtwerden(cid:7)meistabh(cid:0)angig
von Entscheidungen(cid:3) die ebenfalls Teil des Prozesses sind(cid:15)(cid:4)
(cid:0)
Wer die Aufgaben ausfu(cid:0)hren soll (cid:2) insbesondere(cid:3) ob die Aufgabe ma(cid:2)
schinell (cid:7)durch ein Anwendungsprogramm(cid:15) oder durch einen Mensch(cid:2)
Maschinen(cid:2)Dialog ausgefu(cid:0)hrt werden soll(cid:4)
(cid:0)
Welche RandbedingungeninbezugaufZeit(cid:3) Qualit(cid:0)atundRessourcen(cid:2)
verbrauch eingehalten werden mu(cid:0)ssen(cid:4)
(cid:13)
Work(cid:1)ow(cid:2)Managementsysteme haben die Aufgabe(cid:3) Work(cid:1)owde(cid:6)nitio(cid:2)
nen entgegenzunehmen und in ausfu(cid:0)hrbare Prozesse zu transformieren(cid:4) Sie
steuern die Durchfu(cid:0)hrung dieser Prozesse und gew(cid:0)ahrleisten die Sicherheit
und Zuverl(cid:0)assigkeit der Proze(cid:5)durchfu(cid:0)hrung auch bei Hard(cid:2) und Software(cid:2)
fehlern(cid:4) Au(cid:5)erdem verwalten sie Benutzerdaten und Berechtigungen(cid:3) doku(cid:2)
mentieren die Proze(cid:5)durchfu(cid:0)hrung und generieren Daten fu(cid:0)r das Manage(cid:2)
ment der Gesch(cid:0)aftsprozesse(cid:4)
Wir k(cid:0)onnen die Aufgaben eines Work(cid:1)ow(cid:2)Managementsystems deshalb
auf drei Ebenen betrachten(cid:4) Die erste Ebene verwaltet die Metadaten(cid:3) das
sind die De(cid:6)nitionen von Work(cid:1)ows und ihrer zugeh(cid:0)origen Prozesse(cid:3) Akti(cid:2)
vit(cid:0)aten(cid:3) Tasks(cid:3) die von diesen verwendeten Daten(cid:3) sowie die Beziehung zwi(cid:2)
schen Prozessen und Daten(cid:4) Die zweite Ebene umfa(cid:5)t die Verwaltung der
Instanzen(cid:3) das sindProze(cid:5)instanzen(cid:3) Dateninstanzen(cid:3) Benutzer undRollen(cid:2)
informationen sowie die Beziehungen zwischen Benutzern(cid:3) Dateninstanzen
und Proze(cid:5)instanzen(cid:4) Die dritte Ebene beinhaltet die Proze(cid:5)steuerung(cid:3) d(cid:4)h
das Ansto(cid:5)en von Prozessen (cid:7)Aktivit(cid:0)aten(cid:3) Tasks(cid:15)(cid:3) die Weiterleitung von
Dateninstanzen(cid:3) der automatische Start von Programmen(cid:3) etc(cid:4)
In diesem Kapitel wird ein neuer Ansatz fu(cid:0)r die Realisierung von Work(cid:2)
(cid:1)ow(cid:2)Managementsystemen beschrieben(cid:4) Die Grundidee ist die Verwendung
einer aktiven Datenbank fu(cid:0)r die Verwaltung s(cid:0)amtlicher Daten sowie fu(cid:0)r die
Steuerung der Proze(cid:5)instanzen(cid:4) Aktive Datenbanken erweitern herk(cid:0)omm(cid:2)
liche (cid:7)passive(cid:15) Datenbanken durch eine dynamische Komponente in Form
von Produktionsregeln bzw(cid:4) Trigger(cid:3) mit der sie auf Ereignisse wie A(cid:0)nde(cid:2)
rungen des Datenbankinhaltes automatisch reagieren k(cid:0)onnen(cid:4) Sie sind des(cid:2)
halb vorzu(cid:0)glich fu(cid:0)r Applikationen geeignet(cid:3) die (cid:2) wie Work(cid:1)ow(cid:2)Systeme (cid:2)
inh(cid:0)arent daten(cid:2) und ereignisgesteuert sind(cid:4)
Fu(cid:0)r die Verwaltung der Daten und Metadaten werden in Work(cid:1)ow(cid:2)
Managementsystemen h(cid:0)au(cid:6)g Datenbanken herangezogen(cid:4) In unserem An(cid:2)
satz wird auch die dynamische Statusinformation der Proze(cid:5)instanzen in
den Datenraum abgebildet(cid:4) Fu(cid:0)r jede Proze(cid:5)instanz wird in der Datenbank
eineDateninstanz angelegt(cid:3) dieunteranderem denaktuellenStand derPro(cid:2)
ze(cid:5)instanz enth(cid:0)alt(cid:4) Aus dieser Proze(cid:5)beschreibung kann insbesondere abge(cid:2)
lesen werden(cid:3) welche Tasks bereits absolviert sind und welche Tasks fu(cid:0)r die
Durchfu(cid:0)hrung bereit stehen(cid:4) Diese Statusinformation ist persistent(cid:3) da sie
von einer Datenbank verwaltet wird(cid:4) A(cid:0)nderungen an dieser Statusinforma(cid:2)
tion ist der Transaktionsverwaltung des Datenbanksystems unterworfen(cid:4)
Fu(cid:0)r die dynamische Proze(cid:5)durchfu(cid:0)hrung wird ebenfalls die Datenbank(cid:3)
und zwar die Trigger der aktiven Datenbank(cid:3) herangezogen(cid:4) Damit wird ei(cid:2)
nehochintegrierteArchitekturrealisiert(cid:3)die auf einemeinzigenBasissystem
beruht(cid:4) Gleichzeitig bietet diese Architektur eine gr(cid:0)o(cid:5)tm(cid:0)ogliche O(cid:17)enheit(cid:3)
da die aktive Datenbank beliebige externe Prozesse starten kann und u(cid:0)ber
die Verwendung der Datenbank als KommunikationsvehikelDaten zwischen
Programmenausgetauschtwerdenk(cid:0)onnen(cid:4) Damitk(cid:0)onnenineinenWork(cid:1)ow
beliebige Anwenderprogramme(cid:3) insbesondere bereits bestehende(cid:3) eingebun(cid:2)
(cid:12)
den werden(cid:4) Au(cid:5)erdem kann die Vielzahl der Schnittstellen und Werkzeu(cid:2)
ge moderner Datenbanksysteme direkt fu(cid:0)r das Work(cid:1)owsystem verwendet
werden(cid:4) Eine Besonderheit bietet dieses Konzept auch fu(cid:0)r die Ausl(cid:0)osung
von Work(cid:1)owprozessen(cid:4) So kann das Work(cid:1)owsystem in bestehende(cid:3) auf
Datenbanken basierende Informationssysteme integriert werden(cid:3) so da(cid:5) auf
bestimmte Situationen(cid:3) die durch bestehende Applikationen in die Daten(cid:2)
bank abgebildet werden(cid:3) u(cid:0)ber Trigger automatisch ein Work(cid:1)ow gestartet
wird(cid:4) Dafu(cid:0)r braucht die bestehende Applikation in keiner Weise ge(cid:0)andert
werden(cid:4)
Die hier vorgestellte Architektur ist auch dadurch charakterisiert(cid:3) da(cid:5)
m(cid:0)oglichst viel der vom aktiven Datenbanksystem zur Verfu(cid:0)gung gestellten
Funktionalit(cid:0)at direkt genutzt wird(cid:4) So wird zum Beispiel fu(cid:0)r die Steuerung
der Nebenl(cid:0)au(cid:6)gkeit direkt das Transaktionssystem der Datenbank verwen(cid:2)
det(cid:4) Weiters wird die erforderliche Sicherheit durch den Zugri(cid:17)sschutz der
Datenbank direktgew(cid:0)ahrleistet(cid:4) Das Recovery(cid:2)System derDatenbank sorgt
fu(cid:0)r die Wiederherstellung eines konsistenten Zustandes der Datenbank und
damit auch des Work(cid:1)owsystems im Falle eines Systemausfalls mit Prim(cid:0)ar(cid:2)
oderSekund(cid:0)arspeicherverlust(cid:4) DabeiwerdennichtnurdieDaten wiederher(cid:2)
gestellt(cid:3)sondernauchalleProzessewerdenaufdenletztenbest(cid:0)atigtenStand
gesetzt (cid:2) ohne jeglichen zus(cid:0)atzlichen Implementierungsaufwand(cid:4) Diese Ar(cid:2)
chitektur zeichnet sich daher auch durch vergleichsweise niedrigen Aufwand
fu(cid:0)r die Realisierung eines Work(cid:1)ow(cid:2)Managementsystems aus(cid:4)
Imn(cid:0)achstenAbschnittgebenwireinekurzeEinfu(cid:0)hrungindieFunktions(cid:2)
weise von aktiven Datenbanken(cid:3) danach wird die Abbildung von Work(cid:1)ow(cid:2)
Beschreibungen in Regeln aktiver Datenbanken beschrieben(cid:3) Abschnitt (cid:12)(cid:18)(cid:4)(cid:19)
zeigtdieArchitekturunseresPrototypenPantaRhei(cid:7)Heraklit(cid:16) Alles(cid:1)ie(cid:5)t(cid:21)(cid:15)
(cid:20)
und Abschnitt (cid:12)(cid:18)(cid:4)(cid:22) bringt eine Zusammenfassung und Bewertung unseres
Ansatzes(cid:4)
(cid:0)(cid:1)(cid:2)(cid:0) Aktive Datenbanken
Konventionelle Datenbanken sind passiv(cid:3) das hei(cid:5)t(cid:3) Anfragen und Ver(cid:0)ande(cid:2)
rungen werden nur durch explizite Aktionen eines Benutzers oder Anwen(cid:2)
dungsprogramms durchgefu(cid:0)hrt(cid:4) Aktive Datenbanken (cid:7)fu(cid:0)r eine Einfu(cid:0)hrung
siehe (cid:8)Day(cid:11)(cid:11)(cid:14)(cid:3) (cid:8)Cha(cid:9)(cid:12)(cid:14)(cid:15) hingegen erlauben die Spezi(cid:6)kation von Aktionen(cid:3)
die automatisch ausgefu(cid:0)hrt werden(cid:3) wenn bestimmte Ereignisse eintreten(cid:4)
Diegrunds(cid:0)atzlichenElementederArchitekturvonaktivenDatenbankensind
in Abbildung (cid:12)(cid:18)(cid:4)(cid:13) dargestellt(cid:4)
DasDatenbank(cid:2)ManagementsystemeineraktivenDatenbankenth(cid:0)alteinen
Mechanismus zum Erkennen von Ereignissen(cid:3)zum Pru(cid:0)fenvon Bedingungen
undzumDurchfu(cid:0)hrenbzw(cid:4) Ansto(cid:5)envonAktionen(cid:4) BeiallenAbfragenund
Ver(cid:0)anderungen(cid:3)dieinderDatenbank eintre(cid:17)en(cid:3)wirdu(cid:0)berpru(cid:0)ft(cid:3)obeineAk(cid:2)
tion durchgefu(cid:0)hrt werden soll(cid:23) diese Aktion kann wieder Ver(cid:0)anderungen in
(cid:18)
Spezifikation von Ereignissen
und Bedingungen
Passives DBMS +
..
Anfragen/Veranderungen
Anwendungsprogramme Ereigniserkennung + Aktionen
Condition Monitoring
Daten Daten
Abbildung (cid:12)(cid:18)(cid:4)(cid:13)(cid:16) Prinzip einer aktiven Datenbank
der Datenbank ausl(cid:0)osen oder eine Aktion au(cid:5)erhalb der Datenbasis ansto(cid:2)
(cid:5)en(cid:4)
Die Spezi(cid:6)kation von Ereignis(cid:3) Bedingungen und Aktionen erfolgt de(cid:2)
klarativ in Form von Event(cid:2)Condition(cid:2)Action (cid:7)ECA(cid:15) Regeln(cid:4)
Jeder Zugri(cid:17) auf die Datenbank durch einen Benutzer oder ein Anwen(cid:2)
dungsprogramm wird als Ereignis aufgefa(cid:5)t(cid:3) das eine Regelanwendung an(cid:2)
sto(cid:5)en kann(cid:4) Bei Triggerung einer Regel durch ein Ereignis werden die
Bedingungen dieser Regel u(cid:0)berpru(cid:0)ft(cid:4) Sind sie erfu(cid:0)llt(cid:3) werden die Aktionen
der Regel ausgefu(cid:0)hrt(cid:4)
Bedingungen sind dabei Beschreibungen von Zust(cid:0)anden in der Daten(cid:2)
bank(cid:4) Aktionen k(cid:0)onnen wiederum Ver(cid:0)anderungen in der Datenbank sein(cid:3)
aber auch Aufrufe von externen Prozeduren(cid:4)
Im folgenden wird fu(cid:0)r Beispiele die Syntax von SQL(cid:18) (cid:8)IA(cid:9)(cid:18)(cid:14) verwendet(cid:3)
der (cid:2) etwas vereinfachte (cid:2) Aufbau einer Regel sieht folgenderma(cid:5)en aus(cid:16)
create trigger name
after event on table
when condition
action
Mit create trigger wird eine Regel name de(cid:6)niert(cid:3) die auf Ver(cid:0)ande(cid:2)
rungen der Tabelle table reagiert(cid:4) Das die Regel triggernde Ereignis wird
nach dem Schlu(cid:0)sselwort after spezi(cid:6)ziert(cid:3) der Bedingungsteil nach dem
Schlu(cid:0)sselwort when enth(cid:0)alt eine quanti(cid:6)zierte SQL(cid:2)Abfrage(cid:3) die einen Boo(cid:2)
(cid:19)
leschen Wert retouniert(cid:4) Als Aktionen sind in SQL formulierte Datenban(cid:2)
kaktionen zul(cid:0)assig(cid:4)
Beispiel (cid:0)(cid:1)(cid:2)(cid:3) Bei Ver(cid:0)anderung des Lagerbestandes unter einen festgesetz(cid:2)
ten Wert soll automatisch eine Bestellung generiert werden(cid:4) Dazu wirdeine
Regel formuliert(cid:3) die bei Ver(cid:0)anderungen der Best(cid:0)ande getriggert wird und
beim Unterschreiten des Schwellwertes den Teil in eine Bestelliste eintr(cid:0)agt(cid:4)
create trigger store(cid:0)control
after update of quantity on store
when new(cid:1)quantity (cid:2) (cid:3)
insert into order(cid:0)list values (cid:4)new(cid:1)art(cid:0)no(cid:5) (cid:1)(cid:1)(cid:1)(cid:6)(cid:7)
Diese Regel reagiert auf Ver(cid:0)anderungen in der Tabelle store(cid:3) das triggern(cid:2)
de Ereignis ist eine Ver(cid:0)anderung des Attributs quantity bei einem Tupel
dieser Tabelle(cid:4) Die Bedingung ist eine SQL(cid:2)Abfrage(cid:3) die u(cid:0)berpru(cid:0)ft(cid:3) ob die
neue quantity kleiner (cid:3) ist(cid:4) Tri(cid:17)t dies zu(cid:3) wird ein Eintrag in die Tabelle
order(cid:0)list durchgefu(cid:0)hrt(cid:4)
Den Vorteilen von aktiven Datenbanken stehen natu(cid:0)rlich auch gewis(cid:2)
se Nachteile gegenu(cid:0)ber(cid:4) Zum einen ist die Verarbeitung der Regeln eine
zus(cid:0)atzliche Belastung fu(cid:0)r den Datenbankserver(cid:4) Aktive Datenbanken stel(cid:2)
len daher gr(cid:0)o(cid:5)ere Anforderungen an die Rechnerleistung der Server(cid:4) Zum
anderen ist die Strukturierungsehr gro(cid:5)er Regelmengen noch nicht wirklich
zufriedenstellend gel(cid:0)ost(cid:4)
(cid:0)(cid:1)(cid:2)(cid:1) Abbildung von Work(cid:3)ow(cid:4)Modellen auf akti(cid:4)
ve Datenbanken
(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:3) Referenzmodell einer Proze(cid:4)beschreibung
Bisweilen gibt es kein allgemein akzeptiertes Metamodell zur Beschreibung
von Work(cid:1)ows (cid:7)obwohl Versuche in diese Richtung gehen(cid:3) siehe (cid:8)WMC(cid:9)(cid:19)b(cid:14)(cid:3)
(cid:8)EL(cid:9)(cid:22)(cid:14)(cid:15)(cid:4) Abb(cid:4) (cid:12)(cid:18)(cid:4)(cid:12) stellt das Schema eines einfachen Modells dar(cid:16)
Work(cid:0)ows sind zusammengesetze Aktivit(cid:0)aten(cid:3) die die Ausfu(cid:0)hrung meh(cid:2)
rererTasksdurchverschiedeneAkteurebeschreiben(cid:4) EinAkteuristentweder
durch einen konkreten Benutzer oder ein Programm(cid:3) das die Datenmanipu(cid:2)
lation ausfu(cid:0)hrt(cid:3) oder eine Rolle stellvertretend fu(cid:0)r eine Menge von Akteu(cid:2)
ren(cid:3) spezi(cid:6)ziert(cid:4) Forms sind die Datencontainer(cid:3) die die Applikations(cid:2) und
Proze(cid:5)daten zwischen den Aktivit(cid:0)aten weiterreichen(cid:4) Die Wege der Forms
werden mittels Flows spezi(cid:6)ziert(cid:4)
Zur Darstellung von Work(cid:1)ows verwenden wir im folgenden die von uns
entwickelte Work(cid:1)ow(cid:2)Beschreibungssprache WDL(cid:4)
(cid:22)
0 or 1 0 or many
WORKFLOW 1 1+ 1 or many
ISA Part of
input
Form Flow Task Akteur
exekutiert
output
Benutzer Programm Rolle
Abbildung (cid:12)(cid:18)(cid:4)(cid:12)(cid:16) Work(cid:4)ow Metamodell
(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:0) Die Work(cid:5)ow(cid:6)Beschreibungssprache WDL
WDL ist im wesentlichen ein Darstellungskonzept fu(cid:0)r die obenbeschriebene
Modellierung (cid:7)Abb(cid:4) (cid:12)(cid:18)(cid:4)(cid:12)(cid:15) von Prozessen(cid:4) Die wichtigsten Designkriteri(cid:2)
en fu(cid:0)r diese Sprache waren(cid:16) einen einfach zu verwendenden Formalismus
zu scha(cid:17)en(cid:3) der es erm(cid:0)oglicht eine breite Palette von Gesch(cid:0)aftsprozessen zu
modellieren(cid:3)sowieguteAbbilddbarkeitaufeineImplementierungzugew(cid:0)ahr(cid:2)
leisten(cid:4)
Die wesentlichen Elemente eines Work(cid:1)ows lassen sich graphisch mittels
des WDL Proze(cid:5)diagramms darstellen(cid:4) Abb(cid:4) (cid:12)(cid:18)(cid:4)(cid:18) zeigt ein solches fu(cid:0)r den
Antrag einer Dienstreise(cid:4)
Dieser Proze(cid:5) erfordert die Interaktion verschiedener Personen und Ab(cid:2)
teilungen(cid:4) Ein Antragssteller(cid:3) der eine Reise plant(cid:3) braucht die Genehmi(cid:2)
gungvonInstitutsvorstandundDekan(cid:4) NachderReisebekommterdasGeld
von der Personalabteilung(cid:4) Die Tasks werden durch rechteckige K(cid:0)astchen
repr(cid:0)asentiert(cid:3) in denen der Name des Tasks sowie (cid:2) in eckigen Klammern (cid:2)
der Ausfu(cid:0)hrende eingetragen wird(cid:4) Fu(cid:0)r letzteren wird entweder direkt der
Benutzer oder eine Rolle spezi(cid:6)ziert (cid:7)z(cid:4)B(cid:4) Dekan(cid:15)(cid:4) Fu(cid:0)r Tasks(cid:3) die automa(cid:2)
tisch(cid:3) d(cid:4)h(cid:4) ohne Benutzer(cid:2)Interaktion ablaufen(cid:3) wird der Pseudo(cid:2)Benutzer
SYSTEM spezi(cid:6)ziert(cid:4) Dies erlaubt die Integration von beliebigen Program(cid:2)
men(cid:3) die die Daten manipulieren(cid:4) In obigem Beispiel kann ein Vorschlag
automatisch generiert werden(cid:3) der z(cid:4)B(cid:4) die Summe des noch vorhandenen
(cid:24)
Antrag Gehnemig. Gehnemig. Geld
stellen IV Dekan auszahlen
[Antragsteller] [IV] [Dekan] [Pers.abt]
Vorschlag
Bestätigung Geld
[System] anfordern
[Antragsteller]
[Antragsteller]
Abbildung (cid:12)(cid:18)(cid:4)(cid:18)(cid:16) Dienstreise
Geldes abfragt und entsprechende Aktionen setzt(cid:4) Au(cid:5)erdem kann der Be(cid:2)
nutzer als DYNAMIC spezi(cid:6)ziert werden(cid:23) in diesem Fall liest das System
den Benutzer aus einem Feld in einem der bearbeiteten Forms aus(cid:4)
DerKontroll(cid:1)u(cid:5)wirddurchdiePfeilerepr(cid:0)asentiert(cid:4) EinTaskkanneinen
odermehrereEingangs(cid:1)owssowieeinenodermehrereAusgangs(cid:1)owshaben(cid:3)
die verschieden verknu(cid:0)pft werden k(cid:0)onnen(cid:16)
Eingangsseite des Tasks(cid:16)
(cid:0)
mehrere Flows mu(cid:0)nden in einen Task(cid:16) dies bedeutet(cid:3) da(cid:5) der Task
aktiviert wird(cid:3) wenn eine der Forms den Task erreicht(cid:4)
(cid:0)
mehrere Input(cid:1)ows sind logisch verknu(cid:0)pft(cid:16) Der Task wird aktiviert(cid:3)
wenn die Boolesche Verknu(cid:0)pfung zwischen den Eingangs(cid:1)ows erfu(cid:0)llt
ist(cid:4) z(cid:4)B(cid:4)(cid:16) f(cid:13)UND (cid:7)f(cid:12)ODER f(cid:18)(cid:15) bedeutet(cid:3) da(cid:5) der Task aktiviertwird(cid:3)
wenn die Form f(cid:13) und entweder f(cid:12) oder f(cid:18) eingetro(cid:17)en sind(cid:4)
(cid:0)
Synchronisationpunkt(cid:16) Wenn ein Form zur parallelen Bearbeitung
an verschiedene Tasks weitergeleitet wird(cid:3) mu(cid:5) am Ende der Paral(cid:2)
lelfu(cid:0)hrung ein Synchronisationspunkt liegen(cid:4) Der nachfolgende Task
wird nur ausgefu(cid:0)hrt(cid:3) wenn alle parallelen Teilpfade abgearbeitet wor(cid:2)
den sind(cid:4)
Ausgangsseite des Tasks(cid:16)
(cid:0)
keine Verknu(cid:0)pfung(cid:16) Alle Forms werden den entsprechenden Nachfol(cid:2)
getasks geschickt(cid:4)
(cid:0)
UND Verknu(cid:0)pfung(cid:16) Die Form wirdan zwei Tasks zur parallelen Bear(cid:2)
beitung weitergereicht(cid:4)
(cid:0)
ODER(cid:16) Je nachdem(cid:3) welche Flow(cid:2)Bedingung erfu(cid:0)lltist(cid:3) wirddieForm
zu einem der beiden Nachfolgetasks weitergeschickt(cid:4)
(cid:25)
Zus(cid:0)atzlich zur De(cid:6)nition des Proze(cid:5)diagramms ist es notwendig(cid:3) einige
Informationen zum Proze(cid:5) anzugeben(cid:16)
(cid:0)
generelle Informationen zum Work(cid:1)ow(cid:16) De(cid:6)nition aller Benutzer und
Rollen(cid:3) die im Work(cid:1)ow vorkommen(cid:4)
(cid:0)
Struktur der involvierten Forms(cid:16) Das Proze(cid:5)diagramm zeigt nur den
Flu(cid:5) von Forms an(cid:3) nicht deren innere Struktur(cid:4)
zus(cid:0)atzliche Informationen zum Task(cid:16)
(cid:0)
Postconditions(cid:16) DurchdieDe(cid:6)nitionvonPostconditionserreicht man(cid:3)
da(cid:5) am Ende eines Tasks de(cid:6)nierte Zust(cid:0)ande herrschen(cid:4)
(cid:0)
Prozeduren(cid:16) Eine before(cid:2)procedure und eine after(cid:2)procedure k(cid:0)onnen
zur Ausfu(cid:0)hrung bevor bzw(cid:4) nach der Ausfu(cid:0)hrung eines Tasks spezi(cid:6)(cid:2)
ziert werden(cid:4)
(cid:0)
Benutzerauswahl(cid:16) Wenn eine Rolle als Akteur bei einem Task spe(cid:2)
zi(cid:6)ziert wird(cid:3) erfordert dies die De(cid:6)nition eines Selektionskriteriums(cid:3)
umdenkonkreten Benutzer zum Ausfu(cid:0)hrungszeitpunktbestimmenzu
k(cid:0)onnen(cid:4) M(cid:0)ogliche Auswahlkriterien sind(cid:16) W(cid:0)ahle Benutzer mit der
kleinsten workload(cid:3) zuf(cid:0)allige Auswahl(cid:3) o(cid:4)(cid:0)a(cid:4)
(cid:0)
Zugri(cid:17)sarten(cid:16) Der Zugri(cid:17) der Tasks auf die einzelnen Forms mu(cid:5) spe(cid:2)
zi(cid:6)ziert werden(cid:3) so ist es m(cid:0)oglich(cid:3) da(cid:5) auf einige Felder der Form
u(cid:0)berhaupt kein Zugri(cid:17) besteht(cid:3) auf andere Lesezugri(cid:17) oder Lese(cid:2) und
Schreibm(cid:0)oglichkeit(cid:4)
Fu(cid:0)r dieProzeduren(cid:3) Pre(cid:2) undPostconditionswurde keineexakte Syntax
de(cid:6)niert(cid:3) da diese von der Implementierung abh(cid:0)angt(cid:4) In unserer Imple(cid:2)
mentierung auf der Basis einer SQL(cid:2)Datenbank sind diese Prozeduren und
Ausdru(cid:0)cke jeweils SQL Konstrukte(cid:3) somit ist eine weitestgehende Portier(cid:2)
barkeit gew(cid:0)ahrleistet(cid:4) In Abschnitt (cid:12)(cid:18)(cid:4)(cid:19)(cid:4)(cid:12) wird ein Designeditor fu(cid:0)r WDL
beschrieben(cid:4)
(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1) Ausfu(cid:7)hrungsmodell
Ein WDL(cid:2)Proze(cid:5)diagramm de(cid:6)niert Abl(cid:0)aufe als den Weg von Forms zwi(cid:2)
schen Tasks(cid:4) Die Datenmanipulationen innerhalb der Tasks werden nicht
betrachtet(cid:4) Das Ausfu(cid:0)hrungsmodellfu(cid:0)rWDL kann daher mit den einzelnen
Schritten(cid:3) die zwischen der Beendigung eines Tasks und dem Starten eines
anderen vor sich gehen(cid:3) beschrieben werden(cid:4)
Nach dem Abschlu(cid:5) eines Tasks (cid:2) u(cid:0)blicherweise eine Manipulation von
Dokumenten oder Formularen (cid:2) geht die Kontrolle an den Work(cid:1)ow(cid:2)Server(cid:3)
der die folgenden Schritte ausfu(cid:0)hrt(cid:16)
(cid:11)
(cid:13)(cid:4) Die (cid:2) optionale (cid:2) Post(cid:2)Prozedur wird ausgefu(cid:0)hrt(cid:4)
(cid:12)(cid:4) Die Bedingungen(cid:3) die nach der Task(cid:2)Ausfu(cid:0)hrung gelten mu(cid:0)ssen(cid:3) wer(cid:2)
den u(cid:0)berpru(cid:0)ft(cid:4) Wenn sie erfu(cid:0)llt sind(cid:3) gilt diese Aktivit(cid:0)at als abge(cid:2)
schlossen(cid:3) im anderen Fall erh(cid:0)alt der Task eine Nachricht(cid:3) da(cid:5) eine
Weiterbearbeitung notwendig ist(cid:4)
(cid:18)(cid:4) Entsprechend der De(cid:6)nition der Abl(cid:0)aufe werden die bearbeiteten Do(cid:2)
kumente an die Nachfolger(cid:2)Aktivit(cid:0)aten geschickt(cid:4)
(cid:19)(cid:4) Die Vorbedingungen der Tasks werden u(cid:0)berpru(cid:0)ft(cid:4)
(cid:22)(cid:4) Falls die Vorbedingungen zur Ausfu(cid:0)hrung einer Aktivit(cid:0)at erfu(cid:0)llt sind(cid:3)
wirdsieeinembestimmtenBenutzer(cid:7)odereinerMaschine(cid:15)zugeordnet(cid:4)
(cid:24)(cid:4) Eine den Task vorbereitende Prozedur wird ausgefu(cid:0)hrt(cid:4)
(cid:25)(cid:4) Der Benutzer (cid:7)das Client(cid:2)Programm(cid:15) erh(cid:0)alt ein Signal(cid:3) da(cid:5) eine Ak(cid:2)
tivit(cid:0)at zur Bearbeitung ansteht(cid:4)
Fu(cid:0)r die Abbildung dieses Ablaufs in die Datenbank ist es notwendig(cid:3)
die Statusinformationen zu den laufenden Prozessen in Tabellen abzule(cid:2)
gen(cid:4) Beim Initiieren eines Prozesses wird fu(cid:0)r die neue Proze(cid:5)instanz eine
Identi(cid:6)kation und ein Eintrag in eine entsprechende Tabelle generiert(cid:4) Der
Gro(cid:5)teil der Informationen zu einem laufenden Proze(cid:5) wird mit den Task(cid:2)
Instanzen gespeichert(cid:16) eine Identi(cid:6)kation(cid:3) der zugeh(cid:0)orige Proze(cid:5) und Task(cid:3)
die Proze(cid:5)instanz(cid:3) der Benutzer(cid:3) ein Zeitstempel(cid:3) sowie der Status der Be(cid:2)
arbeitung entsprechend des obigen Ablaufmodells(cid:4) Au(cid:5)erdem werden alle
Form(cid:2)Instanzen mitzugeh(cid:0)origer Proze(cid:5)instanz(cid:3) demTypder Formundeine
Referenz zu den Daten(cid:3) sowie dem Task(cid:3) von dem die Form derzeit bearbei(cid:2)
tet wird(cid:3) in einer Tabelle verwaltet(cid:4) Eine Form(cid:2)Instanz entsteht(cid:3) wenn in
einemTaskeineneueFormgeneriertwird(cid:4) IneinerImplementierungmitak(cid:2)
tiven Datenbanken werden die A(cid:0)nderungen der Proze(cid:5)statusinformationen
in diesen Tabellen zur Triggerung der Regeln verwendet(cid:4)
(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:8) U(cid:7)bersetzung in Datenbank(cid:6)Trigger
In diesem Abschnitt wird die Realisierung des oben beschriebenen Ablauf(cid:2)
modells mit aktiven Datenbanken dargestellt(cid:4) Analog zu dem im vorigen
Abschnitt beschriebenen Ausfu(cid:0)hrungsmodell gibt es fu(cid:0)r jeden der Schritte
eine Gruppevon Regeln(cid:3) dieaus der Work(cid:1)ow(cid:2)Beschreibung generiert wird(cid:4)
Fu(cid:0)r jeden Flow wird eine Regel generiert(cid:3) die den Transport(cid:21) der Forms
(cid:20)
von einem Task zum n(cid:0)achsten durchfu(cid:0)hrt(cid:4) Diese Regel triggert nach erfolg(cid:2)
reicher Pru(cid:0)fung der Postcondition eines Tasks(cid:4) Dies entspricht dem dritten
Schritt in obigem Ausfu(cid:0)hrungsmodell(cid:4) Die folgende Regel spezi(cid:6)ziert einen
Flow einer Form des Typs form i von task A nach task B(cid:3) wobei die Form
gesendet wird(cid:3) wenn die Bedingung (cid:0)ow(cid:1)condition erfu(cid:0)llt ist(cid:4)
(cid:9)
create trigger (cid:0)ow n step(cid:8)
after update of status on form i
when new(cid:1)status(cid:9)(cid:10)finished(cid:10)
and new(cid:1)type(cid:9)form j and new(cid:1)task (cid:9) task A and (cid:0)ow(cid:1)condition
update new set task (cid:9) task B(cid:7)
DieRegelfeuert(cid:3)wennsichdasStatusfeldinderTabelleform iver(cid:0)andert(cid:4)
Die Bedingung ist erfu(cid:0)llt(cid:3) wenn der neue Wert des status (cid:26)(cid:6)nished(cid:26) ist(cid:23) in
diesem Fall wird das task(cid:2)Feld der Form auf den Nachfolgetask gesetzt(cid:4)
S(cid:0)amtliche Regeln k(cid:0)onnen wie diese aus (cid:6)xen Schablonen aufgebaut wer(cid:2)
den(cid:3) das Fu(cid:0)llen u(cid:0)bernimmt ein Compiler(cid:3) der die Regeln aus der De(cid:6)nition
des Work(cid:1)ows erzeugt(cid:4)
De folgenden Regeln werden aus den einzelnen Taskbeschreibungen er(cid:2)
zeugt(cid:16)
post(cid:5)task rule(cid:6) DieseRegeltriggert(cid:3) wennderTaskabgeschlossenist(cid:3)und
fu(cid:0)hrt die after(cid:2)procedure aus (cid:7)Schritt (cid:13) des Ausfu(cid:0)hrungsmodells(cid:15)(cid:4)
postcondition rule(cid:6) Diese Regel testet die postconditions (cid:7)Schritt (cid:12)(cid:15)(cid:4)
precondition rule(cid:6) Diese Regel pru(cid:0)ft die Vorbedingungen fu(cid:0)r einen Task(cid:4)
Dies ist notwendig(cid:3) wenn der Task mehrere Eingangs(cid:1)ows besitzt(cid:4) Bei
jedemEintre(cid:17)eneinerFormwirddieseRegelgetriggert undu(cid:0)berpru(cid:0)ft(cid:3)
ob bereitsalle Voraussetzungen zurBearbeitung des Tasks erfu(cid:0)lltsind
(cid:7)Schritt (cid:19)(cid:15)(cid:4)
dispatch rule(cid:6) DieseRegelexistiert(cid:3)wennfu(cid:0)rdenTasknichteinkonkreter
Benutzer(cid:3) sondern eine Rolle mit einem Auswahlkriterium spezi(cid:6)ziert
wurde (cid:7)Schritt (cid:22)(cid:15)(cid:4)
Wenn das user(cid:2)Feld des Tasks ausgefu(cid:0)llt wird(cid:3) triggert die n(cid:0)achste
Regel(cid:16)
pre(cid:5)task rule(cid:6) Diese Regel fu(cid:0)hrt die before(cid:2)procedure aus(cid:4) Nach Beendi(cid:2)
gung dieser Regel wird ein Signal an das Client(cid:2)Programm (cid:7)entweder
das Benutzerinterface oder ein den Task ausfu(cid:0)hrendes Programm(cid:15) ge(cid:2)
schickt(cid:4)
Hervorzuheben ist(cid:3) da(cid:5) der Work(cid:1)owmanager nur aus all den Regeln(cid:3)
die aus der Proze(cid:5)beschreibung generiert wurden(cid:3) besteht(cid:4) Alle anderen
notwendigen Funktionen stellt die Datenbank zur Verfu(cid:0)gung(cid:4)
Mit konventionellen Programmen (cid:2) d(cid:4)h(cid:4) ohne Verwendung von aktiven
Datenbanken (cid:2) lassen sich diese Funktionalit(cid:0)aten ebenfalls implementieren(cid:3)
es stehen dabei grunds(cid:0)atzlich zwei M(cid:0)oglichkeiten mit jeweils bedeutenden
Nachteilen zur Auswahl(cid:16)
(cid:13)(cid:10)
Description:Workflow-Managementsystemen vor, die auf der Verwendung . der Nebenl aufigkeit direkt das Transaktionssystem der Datenbank verwen- det.