DE4303062C2 - Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens - Google Patents
Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des VerfahrensInfo
- Publication number
- DE4303062C2 DE4303062C2 DE4303062A DE4303062A DE4303062C2 DE 4303062 C2 DE4303062 C2 DE 4303062C2 DE 4303062 A DE4303062 A DE 4303062A DE 4303062 A DE4303062 A DE 4303062A DE 4303062 C2 DE4303062 C2 DE 4303062C2
- Authority
- DE
- Germany
- Prior art keywords
- workflow
- steps
- generated
- data
- workflows
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Description
Die vorliegende Erfindung betrifft allgemein ein Verfahren und eine Vorrichtung zu dessen Durchführung, welche zur Behebung von
Systemausfällen in einem verteilten Computersystem mit einer Vielzahl von unter
einander verbundenen Computern, die zur Steuerung und Überwachung von Ar
beitsabläufen (workflows) dienen. Hierbei geht es um eine computergestützte
Koordination von Aufgaben, die eine kooperative Teilnahme durch viele Teil
nehmer erfordern, und eine computergestützte Koordination von langlaufenden
Prozessen, die von einem verteilten Computersystem und/oder von anderen Teil
nehmern (principals) ausgeführt werden.
Auf dem Gebiet der Transaktionsverarbeitung sind Transaktionen typischerweise
kurz andauernde Verarbeitungen, die einen gut definierten Anfang und ein gut
definiertes Ende haben. Es gibt verschiedene Protokolle, die sicherstellen, daß alle
Teilnehmer an einer Transaktion darin übereinstimmen, wie die Transaktion
beendet werden soll, wobei die meisten Protokolle auf dem sogenannten Zwei
phasen-Ausführungsprotokoll (2 PC Protokoll = Two Phase Commit Protocol)
basieren.
Wichtige Eigenschaften von Transaktionsverarbeitungssystemen sind die Zuver
lässigkeit und die Atomisierung. Die Zuverlässigkeit betrifft Dinge oder Vorgänge,
wie z. B. das Sicherstellen, daß der Zustand eines Systems nach einem Fehler,
einer Störung bzw. einem Ausfall wieder hergestellt werden kann, und daß alle
unterbrochenen Transaktionen wieder gestartet werden können oder ansonsten so
behandelt werden können, daß der Systemausfall keine unvorhersehbaren
Resultate erzeugt. Atomisierung bedeutet, daß jede Transaktion als eine unteilbare
Einheit behandelt wird, die entweder erfolgreich ist, wobei in diesem Fall die Er
gebnisse der Transaktion dauerhaft gespeichert werden, oder abgebrochen wird,
wobei in diesem Fall alle Daten, die von der Transaktion berührt werden, in ihren
Zustand zurückgebracht werden, der vor der Auslösung der Transaktion vor
gelegen hat.
Ein Workflow (Arbeitsablauf)-Management umfaßt typischerweise Prozesse, wie
z. B. Geschäftsaktivitäten, die Zeitdauern von einigen Minuten, Stunden oder sogar
von Tagen haben und deshalb viel längere Dauern haben als die diskreten Trans
aktionen, die durch herkömmliche Transaktions-Verarbeitungssysteme behandelt
bzw. gesteuert und gemanagt wurden. Das Workflow-Management unterscheidet
sich gegenüber herkömmlichen Transaktions-Verarbeitungssystemen auch darin,
daß ein typischer Workflow nicht nur mehrere Computer und andere Maschinen
umfaßt, sondern auch die Teilnahme von mehreren menschlichen Teilnehmern,
also das Zusammenspiel von Computern und Menschen umfaßt.
Das vorliegende Dokument beschäftigt sich mit lang lebenden bzw. lang an
dauernden Aktivitäten, wie z. B. Viel-Benutzer-Verarbeitungen (multi user
computations) und Geschäftsabläufen. Solche Aktivitäten werden manchmal als
Workflows bzw. Arbeitsabläufe bezeichnet. Ein Beispiel für einen Arbeitsablauf be
steht darin, daß Daten von einer großen Anzahl von Quellen gesammelt werden
und dann diese Daten auf irgendeine Art und Weise integriert werden. Der Daten-
Sammelprozeß umfaßt zahlreiche Interaktionen zwischen verschiedenen
Hardware-Einrichtungen und/oder menschlichen Teilnehmern, und die Dauer des
Arbeitsablaufs kann in Abhängigkeit von der Verfügbarkeit aller erforderlicher teil
nehmender Computer und anderer Hardware-Einrichtungen ausgedehnt werden.
Ein weiteres Beispiel für einen lang laufenden Arbeitsablauf ist der Prozeß bzw.
der Vorgang des Erstellens einer Zeitungsausgabe, das zusammenwirkende
Arbeitsleistungen von vielen Personen aber auch von Computern und weiteren
Einrichtungen erfordert.
Aus der EP 0 082 225 A1 ist ein Transaktionssystem bekannt, das es erlaubt,
Transaktionen zu unterbrechen und wieder aufzunehmen.
Es ist eine Voraussetzung der vorliegenden Erfindung, daß eine wichtige Über
legung bzw. ein wichtiges Ergebnis oder Vorgang in einem Aktivitäts-Management
system nach Systemausfällen wiederhergestellt werden kann. Das Aktivitäts-
Managementsystem muß in der Lage dazu sein, automatisch
von praktisch jedem Systemausfall aus wieder hergestellt werden
zu können, wenn das System einmal wieder in Funktion zurückge
setzt worden ist. Das bedeutet, daß das System ausreichend Da
ten dafür speichern muß, um bestimmen zu können, was sein Zu
stand war, gerade bevor der Systemausfall aufgetreten ist, und
um die Verarbeitung aller unterbrochener Arbeitseinheiten
wieder auslösen zu können, die hier als Schrit
te bezeichnet werden, und zwar mit so wenig Nachhinken
bzw. Verzögerung wie möglich.
Bei den Transaktions-Verarbeitungssystemen
wird die System-Wiederherstellung
implementiert, indem alle unterbrochenen
Transaktionen, an ihrem Anfang wieder gestartet werden. Proto
koll-Aufzeichnungen bzw. Protokoll-Einträge wer
den am Anfang und am Ende jeder dieser Transaktionen gespei
chert, was es einer Systemausfall-Wiederherstellungs-Routine
ermöglicht, zu bestimmen, welche Transaktionen abgeschlossen
worden sind, und welche gerade gelaufen sind, als ein System
ausfall auftrat. Diese Lösung ist für Aktivitäts-Verwaltungssy
steme, die lang laufende Arbeitsabläufe behandeln, nicht geeig
net, da dieses Wiederherstellungs-Verfahren das erneute Ausfüh
ren von viel wertvoller Arbeit bedeuten würde. Ein zusätzliches
Problem, das lang laufende Arbeitsabläufe und kurz
andauernde Transaktionen voneinander unterscheidet besteht in
dem Problem des Beibehaltens ausreichender Einträge, die den
Status jeder Transaktion betreffen. Bei kurz andauernden oder
kurz lebenden Transaktionen ist es im allgemeinen ausreichend,
(A) Protokoll-Einträge zu erzeugen und zu speichern, die den
Anfang jeder Transaktion markieren, und ausreichend Daten auf
zuzeichnen, um diese Transaktion erneut zu starten, (B) die die
Änderungen aufzuzeichnen, welche in verschiedenen Datenstruktu
ren durchgeführt wurden, so daß diese Änderungen rückgängig ge
macht werden können, wenn notwendig, und (C) den Schluß bzw.
das Ende der Transaktion zu markieren, wenn die Ergebnisse der
Transaktion einmal dauerhaft gespeichert wurden. Bei lang lau
fenden Arbeitsabläufen ist das Sichern bzw. der Back-up des Systems
typischerweise viel zeitraubender, und in manchen Fällen ist es
praktisch unmöglich, die gesamte Arbeit, die vom Arbeitsablauf
bis zum Auftreten eines Systemausfalls durchgeführt wurde, un
geschehen zu machen.
Ein weiteres Problem, das mit lang lebenden Aktivitäten oder
Arbeitsabläufen verbunden ist, betrifft die Verwendung von Da
tensperr-Mechanismen. Um zwei unter
schiedliche Verarbeitungen daran zu hindern, auf
eine Aufzeichnung in einer Datenbank oder auf irgendein anderes
spezifiziertes Objekt zuzugreifen und inkonsistente Änderungen
durchzuführen, stellen die meisten Multitasking Computersysteme
Sperrmechanismen zur Verfügung, die einem Prozeß erlauben, die
exklusive Verwendung eines spezifizierten Objekts zu haben, bis
die Transaktion entweder abgeschlossen oder explizit ihren Zu
griff bzw. ihre Sperre auf das Objekt freigegeben hat.
In den meisten Fällen behält ein Prozeß eine Sperre auf jedem
Objekt bei, das von dem Prozeß verwendet wird, bis entweder der
Prozeß beendet ist und dessen Ergebnisse dauerhaft gespeichert
sind oder bis der Prozeß abgebrochen wird und irgendwelche Zwi
schenänderungen rückgängig gemacht worden sind. Das Problem,
das mit lang lebenden Aktivitäten verbunden ist, besteht darin,
daß das Sperren von Objekten, die von jeder Arbeitseinheit
verwendet werden, für eine lange Zeitdauer in einem
System-Stillstand resultieren kann, wo viele
Arbeitseinheiten nicht mehr in der Lage dazu sind, weiterzuar
beiten, da andere Arbeitseinheiten oder Arbeitsabläufe Sperren
auf Objekte eingerichtet haben, die von den blockierten Ar
beitseinheiten benötigt werden. Es ist klar, daß das Ausmaß des
Stillstand-Problems mit der durchschnittlichen Anzahl von Ob
jekten verbunden ist, die von jedem Arbeitsablauf verwendet
werden, und mit dem durchschnittlichen Betrag an Überlappung
zwischen Arbeitsabläufen bezüglich der Objekte verbunden ist,
die von diesen Arbeitsabläufen verwendet werden. Nichtsdestowe
niger erhöht die Zeitdauer lang andauernder Arbeitsabläufe
stark die Wahrscheinlichkeiten dafür, daß Arbeitsabläufe, die um Quellen
konkurrieren, um signifikante Zeitdauern verzögert werden.
Ein zusätzliches Problem, das mit lang andauernden Arbeitsabläufen verbunden
ist, und das kein Problem bei kurz andauernden Transaktionen ist, betrifft das
Schritthalten dieser Arbeitsabläufe. Bei kurz andauernden Transaktionen ist es im
allgemeinen ausreichend, zu wissen, daß die jeweilige Transaktion entweder
gerade in Verarbeitung ist, bei der Verarbeitung ist aber für ein Fortschreiten
blockiert ist, da eine erforderliche Ressource nicht verfügbar ist, abgebrochen ist
oder beendet ist. Bei lang andauernden Arbeitsabläufen ist es jedoch wichtig, den
Zustand jedes Arbeitsablaufs mit einem viel größeren Maß an Detailgenauigkeit zu
überwachen.
Zusammenfassend sind die Probleme, die lang andauernde Arbeitsabläufe von
kurz andauernden Transaktionen unterscheiden, das Wiederherstellen
unterbrochener Arbeitsabläufe, ein Stillstand, verursacht durch Datensperren, und
die Notwendigkeit, in der Lage dazu zu sein, den Zustand von Arbeitsabläufen zu
verfolgen oder zu überwachen, die gerade in der Verarbeitung sind.
Die Aufgabe der Erfindung besteht darin, ein Verfahren und eine Vorrichtung zur Durchführung des Verfahrens zu schaffen, um diese Probleme beim Stand der Technik
zu beseitigen und insbesondere bei langlaufenden Arbeitsabläufen bzw. Trans
aktionen eine schnelle, sichere und effektive Wiederherstellung des Systems nach
Systemausfällen zu ermöglichen.
Diese Aufgabe wird durch das Verfahren nach Patentanspruch 1 bzw. durch
die Vorrichtung nach Patentanspruch 5 gelöst.
Was hier spezifisch beschrieben wird, ist ein Arbeitsablauf-Verwaltungs-System
und ein zugehöriges Verfahren zum Ausführen
und zum Verfolgen bzw. Überwachen des Fortschreitens lang lau
fender Arbeitsabläufe und zum Wiederherstellen nach Systemaus
fällen während der Ausführung lang laufender Arbeitsabläufe.
Jeder Typ eines lang laufenden Arbeitsablaufs, der in einem be
stimmten System verwendet wird, wird in einer Ablaufbeschrei
bung-Datenbank als ein Satz aus
Schritten mit Datenflüssen zwischen den Schritten dargestellt.
Jeder Schritt führt ein Anwendungsprogramm bzw. ein Applikati
onsprogramm aus und wird als individuelle Verarbeitung behan
delt, insoweit als es die dauerhafte Speicherung seiner Ergeb
nisse betrifft. Datenabläufe zwischen den Schritten werden in
der Ablaufbeschreibung-Datenbank als Bögen zwischen den
Schritten angegeben.
Ein Ablauf-Controller steuert den Prozeß der Ausführung von
Schritten jedes definierten Typs von Arbeitsablauf. Die Ausfüh
rung eines Arbeitsablaufs beginnt, wenn ein entsprechender Satz
von extern erzeugten Eingangs-Ereignis-Signalen durch den Ab
lauf-Controller empfangen wird. Während der Ausführung eines
Arbeitsablaufs wird jeder Schritt des Arbeitsablaufs nur dann
ausgeführt, wenn ein definierter Satz an Eingangssignalen emp
fangen wird. Zu diesem Zeitpunkt wird ein Fall bzw.
ein Beispiel bzw. eine Ausgabe des erforderlichen Schritt-Typs
erzeugt und ausgeführt, was die Erzeugung eines oder mehrer
Ausgangssignale ergibt. Schritte, die von menschlichen Bedie
nern ausgeführt werden, werden durchgeführt, indem der mensch
liche Bediener eine Nachricht sendet, indem der menschliche Be
diener darauf wartet, daß angezeig wird, daß der Schritt durch
geführt worden ist, und indem dann die Ausführung eines Ablauf-
Steuerprozesses aufgenommen wird. Nach der Beendigung eines
Schritts werden die Ausgangssignale des Schritts in Eingangs-
Ereignis-Signale für andere Schritte des Arbeitsablaufs in
Übereinstimmung mit "Bogen"-Daten umgesetzt, die in der Ablauf-
Beschreibung-Datenbank gespeichert sind.
Zudem werden Protokolleinträge dauerhaft bei der Fallbildung
bzw. bei der Auslösung, bei der Ausführung und
bei Beendigung jedes Schritts eines Arbeitsablaufs gespeichert,
und Ausgangs-Ereignis-Signale werden ebenfalls protokolliert,
um dadurch ausreichend Daten dauerhaft zu speichern, damit ein
Arbeitsablauf mit praktisch keinem Verlust an Arbeit, die vor
einem Systemausfall durchgeführt worden ist, wiederhergestellt
werden kann.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteran
sprüchen zu entnehmen
Weitere Vorteile und Anwendungsmöglichkeiten der vorliegenden
Erfindung sind aus der nachfolgenden Beschreibung von bevorzug
ten Ausführungsformen in Verbindung mit den Zeichnungen er
sichtlich. Es zeigen:
Fig. 1 ein Blockdiagramm eines verteilten Computersystems, das
dazu verwendet wird, Arbeitsabläufe auszuführen;
Fig. 2 ein Blockdiagramm primärer Software-Komponenten eines
Arbeitsablauf-Verarbeitungssystems;
Fig. 3 schematisch einen Arbeitsablauf;
Fig. 4 ein Blockdiagramm der Komponenten eines einzigen
Schritts;
Fig. 5 ein Blockdiagramm mit Primär-Tabellen, die in einer Ar
beitsablauf-Beschreibung-Datenbank verwendet werden;
Fig. 6 und 7 einige der Datenstrukturen der Einträge in den
Tabellen bzw. Tafeln der Arbeitsablauf-Beschreibung-Datenbank;
Fig. 8 ein Blockdiagramm eines Satzes aus Eingangs-Bedingungs-
Tabelleneinträgen, die wechselnde Eingangsbedingungen für das
Fallbilden eines bestimmten Schritts wiederge
ben;
Fig. 9 die Datenstruktur einer Anwendungs-Parameter-Identifi
kationstabelle in der Arbeitsablauf-Beschreibung-Datenbank der
bevorzugten Ausführungsform;
Fig. 10 ein Flußdiagramm des Prozesses zum Zuordnen von Aus
gangsparametern, die durch ein Anwendungsprogramm erzeugt wer
den, zu einem Satz von Ausgangs-Ereignis-Signalen.
Fig. 11 die Datenstruktur von Tabellen in der Arbeitsablauf-
Beschreibung-Datenbank der bevorzugten Ausführungsform, welche
zum Zuordnen bzw. Zuweisen von Ausgangsparametern verwendet
werden;
Fig. 12 schematisch einen Ablauf, in dem ein Satz aus Schrit
ten wiederholt werden kann;
Fig. 13 ein Blockdiagramm eines Ablauf-Verwaltungssystems, das
die Prozesse und Datenstrukturen wiedergibt, welche in der be
vorzugten Ausführungsform dazu verwendet werden, um die Fall
bildung und Ausführung von Schritten eines Ar
beitsablaufs zu steuern;
Fig. 14, 15, 16, 17, 18 und 19 die Datenstrukturen von
Schlangen, die von dem Ablauf-Verwaltungssystem nach Fig. 13
dazu verwendet werden, um Eingangs- und Ausgangs-Ereignissigna
le darzustellen und um Schritte des Prozesses, der ausgeführt
werden soll, darzustellen;
Fig. 20 die Struktur einer Historien-Datenbank,
die in der bevorzugten Ausführungsform verwendet wird;
und
Fig. 21 und 22 einen Arbeitsablauf und einen entsprechenden
Satz an Protokoll-Einträgen, die in der Historie-Datenbank der
bevorzugten Ausführungsform gespeichert sind;
Gemäß Fig. 1 ist die bevorzugte Ausführungsform der vorliegen
den Erfindung ein Arbeitsablauf-Verwaltungssystem und ein zuge
höriges Verfahren, daß typischerweise im Zusammenhang mit einem
verteilten Computersystem 100 arbeitet, das einen Satz aus Com
putern 102 bis 110 hat, die durch ein lokales oder ein breitan
gelegtes Netzwerk 112 oder irgendwelche anderen Kommunikations
einrichtungen untereinander verbunden werden. Jeder dieser Com
puter 102 bis 110 ist in einem ausgeprägten Knoten des verteil
ten Computersystems 100 angesiedelt.
Jeder Computer 102 bis 110 enthält Standard-Computersystem-Kom
ponenten, die eine Datenverarbeitungseinheit, einen Systembus,
einen Speicher mit wahlfreien Zugriff (RAM), einen Nur-Lese
speicher (ROM), einen Massenspeicher (z. B. magnetische oder op
tische Platten), ein Benutzer-Interface (z. B. eine Tastatur,
einen Monitor oder einen Drucker) und Kommunikations-Einrich
tungen bzw. Anschlüsse umfassen. Diese physikalischen Computer-
Komponenten (nicht gezeigt) werden durch die vorliegende Erfin
dung nicht modifiziert und werden deshalb hier nicht im Detail
beschrieben.
Zumindest einer der Netzwerk-Computer 110 ist dafür verant
wortlich, eine Arbeitsablauf-Beschreibung-Datenbank 114 auf
rechtzuerhalten und der gleiche Computer oder ein anderer des
Systems hält eine Arbeitsablauf-Historie-Datenbank 116 auf
recht. Wie im Detail weiter unten beschrieben wird, speichert
die Arbeitsablauf-Beschreibung-Datenbank 114 Daten, die jede
Art von lang laufenden Arbeitsablauf angeben, der für das vor
liegende System definiert wurde. Die Historie-Datenbank 116 ist
im wesentlichen eine Protokoll-Eintrag-Datenbank, die überprüft
werden kann, um den Zustand eines laufenden Arbeitsablaufs zu
bestimmen und um laufende Arbeitsabläufe zu rekonstruieren,
wenn eine Wiederherstellung nach einem Systemausfall durchge
führt wird.
Gemäß Fig. 2 verwendet die bevorzugte Ausführungsform der vor
liegenden Erfindung ein Ablauf-Verwaltungssystem 120, das aus
einem Satz von Software-Modulen besteht, um die Ausführung von
Arbeitsabläufen zu steuern. Ein Beschreibung-Verwaltungsmodul
122 ist dafür verantwortlich, Daten zu speichern, die jeden Typ
von Arbeitsablauf in der Arbeitsablauf-Beschreibung-Datenbank
114 wiedergeben. Der Beschreibung-Verwaltungs-Modul 122 und die
Struktur der Arbeitsablauf-Beschreibung-Datenbank 114 wird wei
ter unten mit Bezug auf die Fig. 3 bis 5 beschrieben.
In der bevorzugten Ausführungsform stellt ein Ablauf-Editor-Mo
dul 124 eine Grafik-Schnittstelle zur Verfügung, um den Vorgang
des Definierens von Arbeitsabläufen zu erleichtern. Es können
jedoch standardgemäße Datenbank-Editierungswerkzeuge dazu ver
wendet werden, Arbeitsabläufe in Übereinstimmung mit der vor
liegenden Erfindung zu definieren.
Ein Historie-Verwaltungs-Modul 126 ist dafür verantwortlich,
Protokoll-Einträge zu speichern, die während der Ausführung von
Arbeitsabläufen erzeugt werden. Die Protokoll-Einträge werden
definiert und gespeichert, so daß es möglich ist, den Zustand
jedes Schritts jeder Ausführung eines Arbeitsablaufs zu bestim
men. Tatsächlich erlauben die Protokoll-Einträge, die in der
bevorzugten Ausführungsform verwendet werden, den exakten Punkt
bzw. status quo der Ausführung jedes Schritts des Arbeitsab
laufs zu bestimmen, und reichen dazu aus, ein erneutes Starten
jedes dieser Schritte in verschiedenen Zwischenschrittstufen im
Fall eines Systemausfalls und einer Systemwiederherstellung zu
erlauben. Ein Historie-Überprüfungs-Modul 128 stellt ein Benut
zer-Interface bzw. eine Benutzer-Schnittstelle zum Überprüfen
des Status bzw. Zustands der Ausführung von Arbeitsabläufen zur
Verfügung. Die Protokoll-Einträge erlauben auch einen Überblick
über abgeschlossene Arbeitsabläufe. Das Format der Protokoll-
Einträge, das in der bevorzugten Ausführungsform verwendet
wird, und der Verbindungen zwischen den Protokoll-Einträgen,
die dazu verwendet werden, eine Hilfe zum Bestimmen des gegen
wärtigen Zustands jedes Arbeitsablaufs zu geben, werden weiter
unten mit Bezug auf die Fig. 19 bis 21 im Abschnitt erläu
tert, der mit "Protokoll-Eintrag-Datenbank und System-Ausfall-
Wiederherstellung" betitelt ist.
Ein Ablauf-Controller 130 ist die Haupteinrichtung der bevor
zugten Ausführungsform. Er steuert die Ausführung jedes Ar
beitsablaufs, einschließlich der Erstellung neuer Fälle
vordefinierter, lang andauernder Arbeitsabläufe,
der Handhabung und Steuerung von Übertragungen von
Nachrichten zwischen Schritten der Arbeitsabläufe, der dauer
haften Speicherung der Ergebnisse jedes Schritts, des Erzeugens
von Protokoll-Einträgen, die für eine System-Absturz-
Wiederherstellung und für die Zustandsüberwachung verwendet
werden, usw.. Der Ablauf-Controller 130 und seine grundlegenden
Datenstrukturen werden ausführlich weiter unten erläutert.
Ein Ablauf-Debugger 132 (Fehlersuch-Programm) und ein Ablauf-
Simulator 134 sind Software-Module, die während des Prozesses
des Definierens von Arbeitsabläufen verwendet werden, um dem
Programmierer dabei zu helfen, während er die definierten Ar
beitsabläufe überprüft und nach Fehlern in ihnen sucht.
Gemäß Fig. 3 ist jeder Typ von Arbeitsablauf als ein "Ablauf"
150 nachgebildet. Ein Ablauf 150 weist einen Satz aus Schritten
152 auf, die durch Datensignal-Wege 154, die als Bögen bezeich
net werden, miteinander und untereinander verbunden sind. Ein
Ablauf 150 kann Unter-Abläufe 156 enthalten, was bedeutet, daß
Abläufe verschachtelt werden können. Jeder Schritt 152 des Ar
beitsablaufs hat Eingangsanschlüsse bzw. Ein
gangseinrichtungen 158 und hat für gewöhnlich zumindest einen
Ausgangsanschluß bzw. eine Ausgangseinrichtung.
Des weiteren hat jeder Ablauf 150 spezielle Eingangs-Ausgangs-
Steuerschritte 160 bzw. 162 zum Zuordnen bzw. Umsetzen
(mapping) von Eingangs-Ereignissen und Ausgangs-Ereignissen
zwischen dem Ablauf 150 und der Außenwelt.
Obwohl der Satz aus Bögen 154, der in Fig. 3 gezeigt wird,
sehr einfach ist, sollte verstanden werden, daß die Datenweg-
Verbindungen zwischen den Schritten unter bestimmten Umständen
sehr komplex werden können und sogar Schleifen oder Rückkoppel-
Wege für Situationen enthalten können, in denen ein Satz aus
Schritten erneut unter spezifischen Bedingungen schrittweise
abgearbeitet werden muß (siehe die Erläuterungen der Eingangs-
und Ausgangsbedingungen weiter unten).
Beim Definieren einer lang andauernden Aktivität oder eines
entsprechenden Arbeitsablaufs unter Einsatz der bevorzugten
Ausführungsform gibt es einen angemessenen Größenbetrag dafür,
wieviel Arbeit in jedem Schritt 152 enthalten sein soll. Dies
ist Sache der Programmier-Auswahl seitens der Person, die den
Arbeitsablauf definiert. Die allgemeinen Kriterien dafür sind,
daß jeder Schritt (1) eine Arbeitseinheit durchführen soll, die
nützlich ist und die es Wert ist, ablaufintern gesichert zu
werden, falls der gesamte Arbeitsablauf ausfällt, und (2) aus
reichend kurz in der Dauer ist, daß er nicht die Systemprogram
me bzw. Quellen für eine ausgedehnte Zeitdauer an sich bindet.
Es müssen auch klare Kriterien dafür gegeben sein, wann jeder
Schritt 152 oder Unterablauf 156 für den Beginn einer Ausfüh
rung bereit ist, welche Eingaben er benötigt und woher diese
Eingaben kommen und wohin seine Ausgänge bzw. Ausgangsdaten hin
gesendet werden sollen.
Wie in Fig. 3 gezeigt wird, kann ein Arbeitsablauf parallele
Arbeitsablaufwege enthalten. Es ist von Vorteil, Arbeitsabläufe
immer dann mit parallelen Wegen zu definieren, wenn Schritte
nicht sequentiell ausgeführt werden müssen, da die parallelen
Wege gleichzeitig durchgeführt werden können, wenn ausreichende
Ressourcen (z. B. Personen und/oder Prozessoren) ver
fügbar sind. Dies ermöglicht eine effiziente Verwendung von
Ressourcen und kann auch den Betrag an Zeit reduzieren, der für
den Abschluß eines Arbeitsablaufs erforderlich ist.
Gemäß Fig. 4 ist jeder Schritt 152 eines Ablaufs in der bevor
zugten Ausführungsform so ausgebildet bzw. nachgebildet, daß er
mehrere Komponenten hat, von denen jede einen Unterschritt
durchführt, der mit der Ausführung des Schrittes verbunden ist.
Ein Eingangs-Bedingung-Beurteilungs-Modul 170 bestimmt, wenn
genug Eingangs-Ereignisse empfangen worden sind, daß ein Fall
des Schritts 152 erzeugt und ausgeführt werden kann. Ein Ein
gangs-Daten-Zuordnungs-Modul 172 ordnet Daten, welche aus den
Eingangs-Ereignissen empfangen werden, in die Reihenfolge, die
für die Ausführung einer spezifizierten Anwendungs-Routine bzw.
eines Programmes 174 erforderlich ist. Das Anwendungsprogramm
174 ist die tatsächliche Verarbeitungs- oder Mitteilungs-Routi
ne, die von dem Schritt durchgeführt wird. Das Programm 174
kann komplex oder einfach sein, wie es durch den Programmierer
definiert wird, der den Arbeitsablauf festlegt. Ein Ausgangsda
ten-Zuordnungsmodul 176 ordnet Ausgangswerte des Anwendungspro
grammes 174 in eine spezifizierte Ordnung bzw. Reihenfolge ein
und der Ausgangsbedingung-Beurteilungsmodul 178 gibt Ausgangs
ereignis-Nachrichten über einen oder mehrere Ausgangsanschlüsse
180 aus.
Gemäß den Fig. 2 und 5 wird ein "Modell" jedes Typs von Ar
beitsablauf, der für ein bestimmtes verteiltes Computersystem
definiert ist, in der Form eines Tabellensatzes gespeichert,
der im weiteren als Arbeitsablauf-Beschreibungs-Datenbank 114
bezeichnet wird. Anders ausgedrückt werden alle Beziehungen
zwischen Schritten 152 eines Arbeitsablaufs aber auch alle wei
teren Informationen, die dafür benötigt werden, um den Arbeits
ablauf zu definieren und auszuführen, in der Form eines Satzes
flacher Datenbank-Tabellen gespeichert.
Die Ausdrücke "Schritt" und "Arbeitseinheit" werden hier als
austauschbare Ausdrücke verwendet.
Gemäß Konzept bzw. begrifflich können die Daten, die in der Ar
beitsablauf-Beschreibungs-Datenbank gespeichert sind, dazu ver
wendet werden Geschäfts-Ablauf-Schemata zu spezifizieren, so
ähnlich wie die Schemata für eine Datenbank. Ein Geschäfts-Pro
zeß-Schema spezifiziert Arbeitseinheiten, Bedingungen zum Aus
lösen jeder Arbeitseinheit, das Anwendungsprogramm, das dazu
verwendet wird, die Arbeitseinheit auszuführen, das Format der
Ausgangssignale oder Nachrichten, die durch die Arbeitseinheit
erzeugt werden, usw.. Das Schema repräsentiert Arbeitsabläufe
durch spezifizierende Verbindungen zwischen Arbeitseinheiten in
Ausdrücken ihrer Reihenfolge oder Ausführungen, einschließlich
Spezifikationen oder Bedingungen, unter denen die Reihenfolge
der Ausführung variiert, und den Fluß bzw. die Verteilung von
Nachrichten und Daten zwischen Arbeitseinheiten. Die vorlie
gende Erfindung macht einen deutlichen Unterschied zwischen der
Ausführung einzelner Arbeitseinheiten, die von Anwendungspro
grammen unter der Steuerung von Teilnehmern bzw. Klienten (d. h.
von Prozessen, die auf Computern des Systems laufen) bearbeitet
werden, und der Steuerung bzw. der Kontrolle dessen, was zwi
schen der Ausführung der Arbeitseinheiten passiert, was durch
den Ablauf-Controller des Systems gehandhabt und gesteuert
wird.
Für das Verständnis der nachfolgenden Beschreibung ist es wich
tig, zwischen einem "Ablauf-Typ" und einem Fall (instance) des
Ablauf-Typs zu unterscheiden. Ein Ablauf-Typ gibt einen Typ ei
nes Arbeitsablaufs wieder, der viele Male durchgeführt werden
kann. Jedesmal, wenn dieser Ablauf-Typ aufgerufen wird, wird
ein Fall bzw. eine Kopie dieses Ablauf-Typs in dem verteilten
Computersystem erzeugt und es ist die Durchführung dieses Ab
lauf-Falls, die verfolgt wird. Ganz ähnlich ist ein Schritt-Typ
ein Modell eines bestimmten Schrittes, während ein Schritt-Fall
einen Schritt dieses Schritt-Typs in einem Ablauf wiedergibt.
Gemäß Fig. 6 enthält die Ablauf-Tabelle 200 einen Eintrag 201
für jeden definierten Ablauf-Typ. Die Ablauf-Tabelle-Einträge
enthalten jeweils ein Ablauf-Typ ID 202, das ein einzigartiger
Wert ist, der jedem Ablauf-Typ zugeordnet ist, einen Eingangs-
Schriftsatz-Zeiger 204, der auf eine Zeichenkette (string), die
Eingaben in Abläufe dieses Ablauf-Typs betreffen, zeigt, einen
Ausgangs-Schriftsatz-Zeiger 206, einen Ausnahme-Verwalter-
Schriftsatz-Zeiger 208, einen Graphik-Informationszeiger 210,
der auf eine Datei mit Graphik-Informationen zeigt, welche,
wenn eine Darstellung des Ablaufs angezeigt wird, verwendet
werden, und einen Ablauf-Typ-Namen 212, der einer Zeichenkette
entspricht, die den Namen des Ablaufs zeigt, wie er den System-
Benutzern und Programmieren gezeigt wird. Die Schriftsatz-Zei
ger 204, 206 und 208 zeigen alle auf Datensätze bzw. Eintragun
gen in einer "Schriftsatz"-Tabelle bzw. Tafel, wobei jeder Ein
trag dieser Tabelle eine Zeichenkette enthält, die Beschrei
bungstext enthält.
Die Typ-Ref-Tabelle 220 enthält eine einen Eintrag 221 für je
den Schritt und für jedes Ablaufelement jedes Ablauf-Typs. Die
Typ-Ref.-Einträge enthalten jeweils ein Typ-Ref. ID 222, das
ein einzigartiger Wert ist, der jedem Ablauf und Schrittelement
der definierten Ablauf-Typen zugeordnet ist, ein Ablauf-Typ ID
224, das einem Zeiger (der manchmal als Fremdschlüssel (foreign
key) bezeichnet wird) auf einen entsprechenden Eintrag in der
Ablauf-Tabelle 200 für diesen Ablauf entspricht, ein Ab
lauf/Schritt ID 226, das auf einen Eintrag in der Schritt-Typ-
Tabelle zeigt, die einem Schritt entspricht, ein Prolog ID 228
und ein Epilog ID 230, einen Kompensations-Programm-Zeiger 232,
einen Begrenzungs- bzw. Abgrenzungs-Wert 234, ein Ressourcen-Auf
löse-Funktion ID 236, eine Ablauf-Dauer 237 und ein Anwendungs-
Zeichen 238. Der Abgrenzungs-Wert 234 gibt an, ob ein
Schritt am Anfang, am Ende oder an einer Zwischenstelle inner
halb eines Ablaufs gegeben ist.
Der Kompensations-Programm-Zeiger 232 zeigt auf eine
"Kompensations-Programm", die aufgerufen werden kann, wenn eine
Ausnahme (wie z. B. eine Auszeit) während der Ausführung eines
Schrittes oder eines Ablaufs auftritt. Jeder Schritt-Typ kann
somit eine kundenspezifische Kompensations-Prozedur enthalten.
Typischerweise wird, wenn ein Schritt eines Ablaufs für die
Ausführung ausfällt, was in einer Entscheidung resultiert, den
Arbeits-Ablauf abzubrechen, die Kompensations-Routine für den
Schritt, der ausfällt, ausgeführt, und dann werden die Kompen
sations-Routinen für alle Schritte des Ablaufs ausgeführt, die
vorher ausgeführt wurden, aber in der umgekehrten Reihenfolge
der Schritte. Die Schrittkette, die bereits im Ablauf ausge
führt wurde, wird aus den Protokoll-Einträgen bestimmt, die von
dem System, wie später beschrieben wird, aufrechterhalten wer
den. Kompensations-Routinen werden somit dazu verwendet, um
"aufzuräumen", nachdem ein Arbeitsablauf oder ein Fluß abgebro
chen wurde. In der bevorzugten Ausführungsform werden die Kom
pensations-Routinen nicht automatisch verwendet, sondern von
einem menschlichen System-Bediener (z. B., nachdem der Bediener
es versucht hat, aber es nicht gelingt, die Ausführung des Ar
beitsablaufs erneut zu starten) ausgeführt.
Das Ressourcen-Auflösungs-Funktion ID 236 zeigt direkt oder indi
rekt auf ein Software-Programm, das als Ressourcen-Auflösungs-
Funktion 240 bezeichnet wird, die
eine "Ressource" (d. h. einen Computer oder eine andere Einrich
tung, wie z. B. eine Person) auswählt, um den jeweiligen Schritt
auszuführen. Ressourcen werden hier manchmal als "Teilnehmer
(principals)" bezeichnet. Jedesmal dann, wenn ein Schritt fall
gebildet wird, ruft der Ablauf-Controller die
spezifizierte Ressourcen-Auflösungs-Funktion auf, um eine Ressource
oder einen Teilnehmer aus einer Liste 242 definierter Ressourcen
auszuwählen, um den Schritt-Fall auszuführen. Somit wird die
Ressource, die verwendet wird, um jeden fallgebildeten Schritt
auszuführen, dynamisch zum Zeitpunkt der Ausführung ausgewählt.
Das System kann viele Ressourcen-Auflösungs-Funktionen enthalten,
wobei jede von ihnen unterschiedliche Kriterien zum Auswählen
der Ressource auswählt, die verwendet wird, um einen bestimmten
Fall auszuführen. In einigen Fällen wird die Ressource so ausge
wählt, daß sie der gleichen Ressource entspricht, die zuvor ausge
wählt wurde, um einen früheren Schritt des lang laufenden Ar
beits-Ablaufs auszuführen. Weitere Kriterien zum Auswählen ei
ner Ressource können die Funktion bzw. Rolle umfassen, die von dem
Schritt gespielt wird, den "Klienten" oder "Kunden" für den ein
Job durchgeführt wird, die Historie des Arbeitsablaufs bis zum
vorliegenden Punkt bzw. Zeitpunkt usw..
Für Arbeitsabläufe, in denen ein Verwalter (manager) gewisse
Arbeitsablauf-Schritte bestimmten Individuen zuordnen will,
kann der Manager solche Arbeits-Zuweisungen in einer vordefi
nierten Datei aufzeichnen. Die Ressourcen-Auflösungs-Funktion, die
zum Auswählen eines Teilnehmers verwendet wird, damit solche
Arbeits-Ablauf-Schritte ausgeführt werden können, konsultiert
zuerst die vorher definierte Datei, um zu sehen, ob ein Indivi
duum diesem Schritt zugeordnet worden ist, wobei, wenn das der
Fall ist, daß spezifizierte Individuum diesem Schritt zugeord
net wird. Wenn keine Zuordnung in der Datei gefunden wird, wird
ein Teilnehmer für den Schritt durch die Ressourcen-Auflösungs-
Funktion ausgewählt, wobei ein Satz aus Auswahl-Kriterien, wie
oben erläutert, verwendet wird.
Der Zeitablauf-Dauer-Wert 237 gibt den maximalen Zeitwert an,
der für die Ausführung des zugeordneten Ablaufs oder Schritts
vorgesehen werden sollte.
Das AP-Zeichen 238 ist wahr, wenn der Schritt, der mit der Auf
zeichnung 221 verbunden ist, ein Anwendungsprogramm ausführt,
und ist falsch, wenn der Schritt nur ein Steuerschritt ist, der
kein Anwendungsprogramm ausführt.
Es wird darauf hingewiesen, daß die Fig. 6, 7, 8 und 9 die
Schematas der Primär-Tabellen wiedergeben, die in der Arbeits
ablauf-Beschreibung-Datenbank verwendet werden, um jeden defi
nierten Typ von Arbeitsablauf darzustellen.
Die Bogen-Tabelle 250 enthält Einträge 251, die Informationen
für jeden Datenweg innerhalb eines Ablaufs bereitstellen. Jeder
Eintrag hat ein einzigartiges Bogen ID 252 für jeden Bogen des
Ablauf-Typs, ein Ablauf ID 254, das den Ablauf-Typ, in dem der
Bogen gefunden wird, angibt, ein "von-Typ-Ref. ID" 256 und ein
"von-Anschluß ID" 258, die den Komponenten-Typ bzw. den An
schluß-Typ spezifizieren, von denen Datensignale von dem Bogen
empfangen werden, und einen "zu-Typ-Ref. ID" 260 bzw. "zu-An
schluß ID" 262, die den Komponenten-Typ bzw. den Anschluß-Typ
spezifizieren, zu dem die Datensignale gesendet werden. Ein Bo
gen-Name 264 ist ein Kennzeichen oder Zeichenketten-Namen, der
dem Bogen gegeben wird, der typischerweise einen Wert wie z. B.
"Ablauf X Bogen 21" hat.
Die Schritt-Typ-Tabelle 270 enthält einen Eintrag 271 für jeden
Schritt jedes definierten Ablauf-Typs. Dem Schritt-Typ-Eintrag
271 werden ein einzigartiges Schritt-Typ ID 272, ein Anwendungs
ID 274, das das Anwendungsprogramm identifiziert, wenn über
haupt eines von dem vorliegenden Schritt ausgeführt wird, Ein
gangs- und Ausgangs-Schriftsatz-Zeiger 276 und 278, ein
Schritt-Namen 280, der einem Zeichenkettennamen entspricht, der
dem Schritt gegeben wurde, und einen Anwendungs-Namen 282 zuge
ordnet, der eine Zeichenkette ist, welche den Namen des Anwen
dungsprogrammes identifiziert, das von dem Schritt ausgeführt
wird, wenn eines vorhanden ist.
Gemäß Fig. 7 definiert die Anschluß-Tabelle 300
jeden der Eingangs- und Ausgangsanschlüsse für jeden Schritt
jedes definierten Ablaufs. Ein Anschluß-Tabellen-Eintrag 301
für einen Anschluß hat ein einzigartiges Anschluß ID 302, ein
Ablauf/Schritt ID 304, das den Ablauf oder den Schritt identi
fiziert, für den der Anschluß definiert ist, ein Ereignis-Typ
ID 306, das auf einen Eintrag 321 in der Ereignis-Typ-Tabelle
320 (unten erläutert) hinweist, einen Anschluß-Typ 308, der de
finiert, ob der Anschluß ein Eingangs- oder Ausgangsanschluß
ist, und einen Anschlußnamen 310, der ein Zeichenketten-Namen
ist, der dem Anschluß gegeben wird, wie z. B. "Ausgangs-An
schluß-A" oder "Q1".
Begrifflich ist ein "Ereignis" das Auftreten von etwas, das ein
Datensignal erzeugt. Für die Zwecke des vorliegenden Dokuments
ist ein Ereignis-Signal (das oft als "ein Ereignis" bezeichnet
wird) ein Datensignal, das ein Ereignis wiedergibt.
Der Zweck einer Eingangs-Bedingung besteht darin, einen oder
mehrere Sätze von Eingangs-Ereignis-Signalen zu spezifizieren,
die dafür ausreichen, die Ausführung jedes Typs von Schritt,
auszulösen, der in der Arbeits-Ablauf-Beschreibungs-Datenbank
definiert wird. Ein bestimmter Ablauf oder Schritt-Typ kann
viele Eingang-Bedingungen haben, wobei jede eine unterschiedli
che Kombination von Eingangs-Ereignis-Signalen spezifiziert.
Wenn der Ablauf-Controller Eingangs-Ereignis-Signale empfängt,
die irgendeine Eingangs-Bedingung für einen bestimmten Schritt-
Typ einhalten, wird ein Fall dieses Schritts erzeugt und für
die Ausführung geplant. Der Prozeß des Erzeugens eines Schritt-
Falls wird als "Fallbildung"
oder als "Fallbilden eines Schritts"
bezeichnet.
Der Zweck der Anschluß-, Ereignis-Typ-, Eingangs-Daten-Zuord
nungs-, Eingangs-Bedingung- und API-Tabellen 300, 320, 340, 360
bzw. 380 besteht darin, einen flexiblenm Mechanismus zum Defi
nieren von Eingangs-Bedingungen für jeden Schritt-Typ bereitzu
stellen, und besteht ebenfalls darin, Daten, die in Ereignis-
Signalen enthalten sind, in die Parameter umzusetzen, die von
den Anwendungsprogrammen, die von jedem Schritt-Typ ausgeführt
werden, benötigt werden.
Jeder Ereignis-Typ hat ein zugeordnetes Format oder eine ent
sprechende Schablone für die Daten, die von dem Ereignis zuge
führt werden, und die Ereignis-Typ-Tabelle 320 definiert das
Format jedes Typs von Ereignis-Signal. Jeder Ereignis-Typ-Ein
trag 321 definiert ein Datenfeld eines Ereignis-Signals und hat
ein einzigartige Ereignis-Feld ID 322 und auch ein Ereignis-Typ
ID 324, das den Ereignis-Typ für den ein Feld definiert ist,
identifiziert (ID = Kennzeichen). Ein Ereignis-Signal mit zwei
Datenfeldern würde zum Beispiel zwei Einträge in der Ereignis-
Typ-Tabelle 320 haben. Der Eintrag 321 hat auch einen Daten-
Typ-Wert 326, der angibt, ob die Daten dieses Feldes eine ganze
Zahl, eine Fließkommazahl bzw. eine Gleitpunktzahl, Zeichenket
ten usw. sind. Die Größe 328 gibt den Betrag an Speicher an,
der von dem Feld eingenommen wird, und der Feld-Name 330 ist
eine Zeichen- bzw. Textkette des Namens des Feldes.
Der Zweck der Eingangs-Daten-Zuordnungs-Tabelle besteht darin,
zu spezifizieren, welche Eingangs-Ereignis-Signale in die Para
meter umgesetzt werden sollen, die von dem Anwendungsprogramm
des Schrittes benötigt werden. Jeder Eintrag 341 der Tabelle
340 gibt ein Eingangs-Ereignis wieder, das von einem bestimmten
Schritt empfangen werden kann, und enthält ein Bedingung ID
342, das weiter unten erläutert wird, ein Schritt-Typ ID 344,
das den Schritt identifiziert, der das Ereignis-Signal emp
fängt, ein Anschluß ID 346, das den Anschluß identifiziert, an
dem das Ereignis-Signal empfangen werden soll, ein Ereignis-
Feld ID 348, das das Format des Ereignis-Signals definiert, in
dem es auf einen der Einträge in der Ereignis-Typ-Tabelle 320
hinweist, und ein Parameter ID 350, das den Parameter des An
wendungsprogramms identifiziert, dessen Wert von dem Ereignis-
Signal bereitgestellt werden soll.
Die Eingangs-Bedingungs-Tabelle 360 spezifiziert ob die richti
ge Kombination aus Ereignis-Signalen empfangen worden ist, um
die Ausführung eines Schritts in einem Arbeits-Ablauf zu initi
ieren. Wie oben erläutert wurde, kann jeder Schritt zwei oder
mehr Eingangs-Bedingungen haben, wobei jede Eingangs-Bedingung
die logische Verbindung eines oder mehrerer Eingangs-Anschlüsse
ist, was bedeutet, daß die Eingangs-Bedingung erfüllt ist, wenn
die Ereignis-Signale auf allen Anschlüssen empfangen werden,
die durch die Eingangs-Bedingung spezifiziert werden. Das Er
füllen einer Eingangs-Bedingung reicht für die Fallbildung des
Schritts aus.
Die Eingangs-Bedingungs-Tabelle 360 hat einen Eintragsatz für
jede Eingangs-Bedingung jedes Schrittes. Jeder Eintrag 361 ent
hält das Schritt ID 362 des Schritts, zu dem er gehört, ein Be
dingungs ID 364, daß eine bestimmte Eingangs-Bedingung identi
fiziert, ein Anschluß ID 366, das den Anschluß identifiziert,
an dem ein Ereignis-Signal empfangen werden kann, einen Zei
chen-Wert 368 und einen Positionswert 370. Die
Einträge in der Eingangs-Bedingungs-Tabelle werden so geordnet,
daß alle Einträge 361 für ein Schritt ID zusammengefaßt
sind, wobei alle Einträge für jede Eingangs-Bedin
gung des Schrittes zusammengefaßt sind und geordnet sind, so
daß der Positions-Wert 370 im Wert innerhalb des Eintrags-Clu
sters für jede Eingangs-Bedingung ansteigt. Der Zeichen-Wert
368 ist gleich "ja" nur für Einträge, die dem letzten Eingangs-
Ereignis-Signal für eine bestimmte Eingangs-Bedingung entspre
chen, ansonsten ist es gleich "nein". Somit ist das Zeichen 368
nur dann gleich "ja", wenn der entsprechende Satz aus Eingangs-
Signalen notwendig und ausreichend für die Fallbildung ist.
Unter Bezug auf die Fig. 8 wird die Verwendung der Eingangs-
Bedingungs-Tabelle 360 am einfachsten beispielhaft erläutert.
Es wird ein Schritt STP 71 betrachtet, der drei Eingangs-An
schlüsse P, Q und R und zwei Eingangs-Bedingungen C1 und C2
hat. Die Eingangs-Bedingung C1 ist gleich "P und Q" und die
Eingangs-Bedingung C2 ist "Q und R". Das bedeutet, daß, wenn
Ereignis-Signale an den Anschlüssen P und Q oder an den An
schlüssen Q und R empfangen werden, der Schritt STP 71 einer
Fallbildung unterzogen wird. Wie weiter unten erläutert wird,
werden alle Ereignis-Signale des verteilten Computersystems in
einer Schlange bzw. Reihe gespeichert, die als FIE (Ablauf-Ein
gangs-Ereignis)-Schlange bezeichnet wird. Die Ereignisse in der
Schlange werden nach dem Schritt ID für den Schritt, zu dem das
Ereignis-Signal gesendet werden soll, und dann nach dem Ein
gangs-Anschluß ID sortiert. Der Zeichen-Wert 368 und der Posi
tions-Wert 370 sind einfach eine bequeme Methode zum Schritt
halten mit der Anzahl von Eingangs-Ereignis-Signa
len, die empfangen werden müssen, um jede Eingangs-Bedingung
erfüllen zu können.
Der Zweck der API (Anwendung-Parameter-Eingang)-Tabelle 380 be
steht darin, jeden der Eingangs- und Ausgangs-Parameter, die
mit dem Anwendungsprogramm verbunden sind, zu definieren. Jede
Reihe 381 der Tabelle 380 definiert einen einzigen Parameter
für ein einziges Anwendungsprogramm. Die Komponenten jeder
Reihe 381 sind ein einzigartiges Parameter ID 382 und ein Para
meter-Namen 384 für den Parameter, der definiert wird, das An
wendungs-ID 386 für das Anwendungsprogramm, das mit dem defi
nierten Parameter verbunden ist, ein Parameter-Typ 388 (d. h.
Eingang, Ausgang oder Eingang/Ausgang = I/O), ein Daten-Typ-
Spezifizierer 390, der angibt, ob der Parameter eine ganze
Zahl, eine Fließkommazahlen, usw. ist, und ein Positionswert
392, der die Position des Parameters in der Aufrufkette für je
des Anwendungsprogramm anzeigt.
Das grundlegende Konzept, daß die Ausgangs-Daten-Zuordnung be
trifft, ist wie folgt. Während viele Schritte (d. h., Anwen
dungsprogramme) den gleichen Satz von Ereignis-Signalen (z. B.
Ereignis-Signale an Ausgangsanschlüssen Q1 und Q2) immer dann
ausgeben, wenn sie laufen, ist es für einige Schritte wichtig,
das sie unterschiedliche Sätze von Ausgangs-Ereignis-Signalen
in Abhängigkeit von bestimmten Steuerparametern erzeugen kön
nen. Jeder einzelne Wert des Steuerparameters wird als eine
Ausgangs-Bedingung bezeichnet und ein entsprechender spezifi
zierter Satz aus Ausgangs-Ereignis-Signalen wird erzeugt.
Gemäß den Fig. 10 und 11 spezifiziert eine Ausgangs-Bedin
gung-Beurteilung-Tabelle 400 für jedes Programm in der bevor
zugten Ausführungform, welcher Steuer-Parameter der richtige
ist, der die Auswahl der Ausgangs-Ereignis-Signale steuern
wird. Die Tabelle 400 hat einen Eintrag 401 für jeden Schritt-
Typ, wobei ein Schritt-Typ ID 402 spezifiziert wird, und einen
Typ-Wert 404, der angibt, ob der Steuer-Parameter ein Ausgangs-
Parameter ist, der von dem Anwendungsprogramm erzeugt wird, ein
Eingangs-Ereignis-Feld oder die Eingangs-Bedingung, die bei der
Beispielgebung des Schrittes herausgekommen ist. Zwei weitere
Parameter 406 und 408 kennzeichnen ein Ausgangs-Parameter ID,
einen Eingangs-Anschluß und ein Eingangs-Ereignis-Feld oder ein
Eingangs-Bedingung ID, was vom Typ-Wert 404 abhängt.
Als nächstes werden die Informationen, die von der Ausgangs-Be
dingung-Beurteilung-Tabelle 400 erhalten werden, dazu verwen
det, die Wert-Ausgangs-Bedingung-Zuordnungs-Tabelle 420 durch
zusuchen, um die Ausgangs-Bedingung, die verwendet werden soll,
auszuwählen. Die Wert-Ausgangs-Bedingung-Zuordnung-Tabelle 420
enthält einen Eintrag 421 für jede Ausgangsbedingung, die mit
jedem Schritt-Typ verbunden ist. Für einen gegebenen Schritt-
Typ sind das Schritt-Typ ID 422 und der Typ-Wert 424 in der Ta
belle 420 die gleichen wie in der Tabelle 400. Jeder Eintrag
421 für einen gegebenen Schritt-Typ hat ein unterschiedliches
Ausgangs-Bedingung ID 426, wobei ein solcher Eintrag 421 ausge
wählt wird, indem entweder das Eingangs-Bedingungs-ID-Feld 428
mit der Eingangs-Bedingung für die Fallbildung des Schrittes
verglichen wird oder indem das Wert-Feld 430 mit dem Wert des
spezifizierten Ausgangs-Parameter-Feldes oder des Eingangs-Er
eignis-Feldes verglichen wird. Das Endresultat der Verwendung
der Tabellen 400 und 420 besteht in der Auswahl eines Ausgangs-
Bedingung ID.
Die Ausgangs-Bedingung-Tabelle 440 enthält für jedes unter
schiedliche Ausgangs-Bedingung ID eines gegebenen Schritt-Typs
einen Eintrag 441 für jeden Ausgang-Anschluß, an dem ein Aus
gangs-Ereignis-Feld erzeugt werden soll. Somit enthält jeder
Eintrag 441 ein Ausgangs-Bedingung ID 442, einen Schritt-Typ
444 und ein Ausgangs-Anschluß ID 446. Z. B. können für einen ge
gebenen Schritt-Typ die Ausgangs-Anschlüsse Q1 und Q2 verwendet
werden, wenn die Ausgangs-Bedingung OC1 ausgewählt wird, wohin
gegen die Ausgangs-Anschlüsse Q2 und Q3 verwendet werden kön
nen, wenn die Ausgangs-Bedingung OC2 ausgewählt wird. In diesem
Beispiel würde es vier Ausgangs-Bedingung-Tabellen-Einträge 441
für diesen Schritt-Typ geben.
Der Zweck der Ausgangs-Daten-Zuordnungs-Tabelle 460 besteht
darin, die Informationsquelle zu spezifizieren, in die jedes
Datenfeld der Ausgangs-Ereignis-Signale eingegeben werden soll.
Es wird darauf hingewiesen, daß ein Ereignis möglich ist, das
keine Datenfelder aufweist. Solche Ereignis-Signale sind nütz
lich, da sie anzeigen, daß ein bestimmter Schritt eines Ar
beits-Ablaufs beendet worden ist. In jedem Fall hat die Tabelle
460 einen Eintrag 461 für jedes Datenfeld jedes Ausgangs-Ereig
nisses, das mit der ausgewählten Ausgangs-Bedingung verbunden
ist. Jeder Eintrag 461 enthält ein Bedingung ID 462 und ein
Schritt-Typ ID 464, das den Schritt-Typ bzw. die Ausgangs-Be
dingung spezifiziert, auf die sich der Eintrag bezieht. Die
Quelle der Daten für das eine Ausgangs-Ereignis-Feld wird ent
weder durch ein Eingangs-Anschluß ID 464 und ein Eingangs-Feld
ID 468 oder durch ein Ausgangs-Parameter-ID (das auch im Feld
468 gespeichert ist) spezifiziert, und das entsprechende Aus
gangs-Ereignis-Feld wird durch ein Ausgangs-Anschluß ID 470 und
ein Ausgangs-Feld ID 472 spezifiziert.
Es wird darauf hingewiesen, daß, wenn das ausgewählte Ausgangs-
Bedingung ID und der Satz von Ausgangs-Anschluß IDs einmal be
kannt ist, die Anschluß-Tabelle 300 dazu verwendet wird, das
Ereignis-Typ ID für jedes der Ausgangs-Ereignis-Signale, das
erzeugt werden soll, zu suchen, wonach diese Ereignis-Typ IDs
dazu verwendet werden, in der Ereignis-Typ-Tabelle 320 den Da
ten-Typ und die Größe jedes Datenfeldes in den Ausgangs-Ereig
nissen, die erzeugt werden sollen, zu suchen.
In einigen Zusammenhängen bzw. Fällen kann es notwendig sein,
einen Satz aus einem oder mehreren Schritten zu wiederholen. In
dem beispielhaften Arbeits-Ablauf 470, der in Fig. 12 gezeigt
wird, besteht die Funktion des Schrittes 472 darin, die Arbeit,
welche von früheren Schritten 152-1 bis 152-5 des Ablaufs
durchgeführt wurde, durchzusehen und zu entscheiden, ob die
Ausführung dazu bereit ist, zum Schritt 474 fortzuschreiten
oder statt dessen zum Schritt 476 zurückgeschickt zu werden.
Die Schritte 476 und 152-1 bis 152-5, die in Fig. 12 beispiel
haft gezeigt werden, können Tasks sein, die dem Instandsetzen
bzw. Reparieren eines bestimmten Maschinentyps zugeordnet sind,
und der Schritt 472 kann z. B. einen Qualitäts-Überblick dar
stellen, der durchgeführt wird, bevor der Job bzw. die Bearbei
tung bzw. das Programm zu einem nachfolgenden Schritt (wie z. B.
die Benachrichtigung des Kunden, das die Maschine repariert
worden ist) weitergegeben wird.
Der optionale Schleifenweg, der in Fig. 12 gezeigt wird, wird
einfach implementiert bzw. realisiert, in dem die Ausgangs-Be
dingung-Definitionen, die oben beschrieben wurden, verwendet
werden. Insbesondere kann der Schritt 472 so definiert werden,
daß er zwei Ausgangs-Bedingungen hat, wobei die Ausgangs-Bedin
gung auf der Basis eines Ausgangs-Parameters, der vom Schritt
472 erzeugt wird, ausgewählt wird. Somit würde gemäß Fig. 11
der Eintrag 401 der Ausgangs-Bedingung-Beurteilung-Tabelle 400,
der mit dem Schritt 472 verbunden ist, in dem Feld 404 spezifi
zieren, daß der Typ des Beurteilungs-Parmeters ein Ausgangs-Pa
rameter ist, und das Feld 400 würde den bestimmten Ausgangs-Pa
rameter, der verwendet wird (z. B. einen Ausgangs-Parameter, der
als "Qualität" bezeichnet wird) spezifizieren. Die Wert-Aus
gangs-Bedingung-Zuordnung-Tabelle würde zwei Einträge haben,
die mit dem Schritt 472 verbunden sind, wobei z. B. ein Eintrag
spezifiziert, daß ein Wert der Qualität = Eins mit einem ersten
Ausgangs-Bedingung ID verbunden ist und daß ein zweiter Eintrag
spezifiziert, daß ein anderer Qualitätswert mit einem zweiten
Ausgangs-Bedingung ID verbunden ist. Die Ausgangs-Bedingung-Ta
belle 440 spezifiziert den Ausgangs-Anschluß 480 oder den Aus
gangs-Anschluß 482, der für jeden dieser zwei Ausgangs-Bedin
gung ID verwendet werden soll. Schließlich spezifiziert die
Ausgangs-Daten-Zuordnungs-Tabelle 460 die Inhalte jedes Feldes
der zwei Typen von Ausgangs-Ereignis-Signalen, die erzeugt wer
den können.
In Zusammenfassung zeigt die oben stehende Beschreibung auf,
wie ein Arbeits-Ablauf in Komponenten-Teile zerlegt werden
kann, die hier als Schritte und Abläufe bezeichnet werden, wo
bei ebenfalls gezeigt wird, wie eine komplette Beschreibung der
Schritte (Arbeitseinheiten), die von dem Arbeits-Ablauf durch
geführt werden, und wie die Datenflüsse zwischen den Schritten
in einem Satz von Datenbank-Tabellen gespeichert werden können.
Es wird darauf hingewiesen, daß die Daten, die in der Arbeits-
Ablauf-Beschreibung-Datenbank 114 gespeichert sind, einen Satz
von "Arbeits-Ablauf-Typ" oder "Aktivitäts-Typen" repräsentie
ren, wobei jeder dieser Typen im wesentlichen eine Schablone
(template)(bzw. ein Rahmen bzw. ein Muster) ist, die unbegrenzt
oft verwendet werden kann. Man nehme z. B. an, daß ein Typ des
Arbeits-Ablaufs der automatisierte Zusammenbau einer Maschine
unter der Steuerung eines Computers oder eines Computersatzes
ist. Die Schritte und Abläufe, die mit diesem Arbeits-Ablauf-
Typ verbunden sind, werden dann in der Arbeits-Ablauf-Beschrei
bung-Datenbank 114 gespeichert. Jedesmal, wenn der Prozeß des
Zusammenbauens einer zusätzlichen Maschine gestartet wird, wird
ein neuer Fall (instance) dieses Arbeits-Ablauf-Typs in dem
Steuer-Computer erzeugt. Somit ist es möglich, daß dutzende,
hunderte oder sogar tausende von Fällen eines bestimmten Ar
beits-Ablauf-Typs gleichzeitig in einem Computer ausgeführt
werden oder zumindest gleichzeitig in einem Computer in Bear
beitung sind.
Insbesondere wird immer dann, wenn ein neuer Arbeits-Ablauf ge
startet wird, ein Fall der Anfangs-Schritte des Arbeits-Ablaufs
erzeugt und ausgeführt. Jeder Schritt und Ablauf nach den an
fänglichen Schritten wird nur dann erzeugt oder fallgebildet,
wenn ein ausreichender Satz an Eingangs-Ereignis-Signalen vor
handen ist. Jeder Fall eines Ablaufs wird durch ein einzigarti
ges Ablauf-Fall ID und durch sein Ablauf-Typ ID identifiziert.
Jeder Fall eines Schrittes wird durch ein einzigartiges
Schritt-Fall ID wie auch durch sein Schritt-Typ ID identifi
ziert.
Nachfolgend wird eine Erläuterung dafür gegeben, wie eine tat
sächliche Ausführung eines Arbeits-Ablaufs ausgeführt wird.
Fig. 13 stellt die Komponenten des Ablauf-Controllers 130 dar.
Der Ablauf-Controller 130 verwendet fünf Prozesse T1 bis T5, um
die Ausführung jedes Schrittes eines Arbeits-Ablaufs zu steu
ern. Jeder dieser Prozesse hat eine entsprechende Eingangs-
Schlange. Die Fig. 14 bis 19 zeigen die Datenstrukturen die
ser Schlangen. Die FIE-Schlange speichert Eingangs-Daten-Ereig
nisse. Die Eingangs-Daten-Ereignisse enthalten sowohl Ereignis-
Signale, die durch zuvor ausgeführte Schritte erzeugt wurden,
als auch Ereignis-Signale externen Ursprungs. Extern erzeugte
Ereignis-Signale entsprechen typischerweise einer Nachfrage
nach dem Start eines neuen Arbeits-Ablaufs und werden in eine
FIE-Schlange durch einen Prozeß eingefügt, der als Post-Server
500 bezeichnet wird.
Eine bedeutende Eigenschaft des Ablauf-Controllers 130 besteht
darin, daß die Anzahl der gleichzeitig laufenden Prozesse, die
mit dem Ablauf-Controller 130 verbunden sind, konstant bleiben,
unabhängig von der Anzahl der Arbeits-Abläufe, die zu einem
Zeitpunkt ausgeführt werden.
Wie nachfolgend erläutert wird, wird jeder Ablauf und jedes
Schritt-Beispiel von dem Ablauf-Controller einer bestimmten Sy
stem-Quelle (typischerweise einem der Prozessoren des Systems)
für die Ausführung zugeordnet. Der Job bzw. die Aufgabe des Ab
lauf-Controllers besteht darin, die Ausführung der Arbeits-Ab
lauf-Schritte und der Datenflüsse zwischen den Schritten zu ko
ordinieren, wohingegen aber die tatsächliche Ausführung jedes
Schrittes woanders bewerkstelligt wird. Indem diese Arbeits-
Aufteilung verwendet wird, ist der Ablauf-Controller 130 darin
"skalierbar", daß er dazu in der Lage ist, einen sehr großen
Bereich an Arbeitslasten zu bewerkstelligen. Um das System auf
zurüsten, große Anzahlen von Arbeits-Abläufen auszuführen, muß
der Systemverwalter nur die Anzahl der Prozessoren erhöhen, de
nen der Ablauf-Controller Arbeit zuweisen kann. Die Anzahl der
Schritte oder Anwendungsprogramme, die simultan in dem System
auf den verschiedenen Prozessoren des Systems ausgeführt bzw.
bearbeitet werden, ist sowohl von der Anzahl der Arbeits-Ab
läufe abhängig, die gegenwärtig ausgeführt werden, als auch vom
Wert der Verarbeitungsleistung abhängig, die dazu verfügbar
ist, diese Arbeits-Abläufe zu bedienen.
Der Prozeß T1 erzeugt neue Fälle von Abläufen und Schritten,
immer dann, wenn die Ereignis-Signale in der FIE-Schlange 510
dafür ausreichen, die Eingangs-Bedingungen einzuhalten, die für
den entsprechenden Fluß-Typ oder Schritt-Typ spezifiziert sind.
Wie obenstehend mit Bezug auf die Fig. 7 und 8 erläutert
wurde, wird immer dann, wenn die Ereignis-Signale, die in der
FIE-Schlange warten, die Eingangs-Bedingung eines Schritt-Typs
erfüllen, ein Fall dieses Schritt-Typs erzeugt. Gemäß Fig. 14
spezifiziert jedes Eingangs-Ereignis-Signal 511 in der FIE-
Schlange 510 den eingeschlossenen Ablauf-Fall 512, in dem der
Bogen für das Signal untergebracht ist, und auch den Schritt-
Typ 514 und das Anschluß ID 516 dieses Schritt-Typs, zu dem das
Eingangs-Ereignis-Signal dirigiert ist.
Weitere Informationen in jedem Eingangs-Ereignis-Signal 511
enthalten ein Protokoll-Referenz (log ref) 518 Feld, das ein
Zeiger auf einen entsprechenden Protokoll-Eintrag ist, den Ab
lauf-Typ 520 und das Bogen ID 524 des Bogens, der den Schritt,
der das Ereignis-Signal erzeugt hat, mit dem Schritt verbindet,
zu dem das Ereignis-Signal gesendet werden soll. In dem Ereig
nis-Signal sind auch Quellen-Daten 526 bezüglich des Schrittes
enthalten, der das Ereignis-Signal erzeugt hat, eine Zeitmarke
530, die angibt, wann das Ereignis erzeugt wurde, ein Wieder
versuchs-Parameter 532, der die Anzahl der Wiederversuche an
zeigt, mit denen das System versucht hat, einen FOE-Eintrag in
den FIE-Eintrag umzuwandeln, und einen Arbeitsplatz-Beschreiber
(descriptor) 532, der auf ein Speichergebiet zeigt, in dem alle
Datenfelder des Ereignis-Signals gespeichert sind.
Dann erzeugt der T1 Prozeß "einen Fall" eines Schritts durch
Zuordnen eines neuen Schritt-Fall ID und durch Speichern eines
neuen Eintrag 541 in der ϕ5 Schlange 540. Im wesentlichen exi
stiert der neue Schritt-Fall in diesem Punkt nur als neuer Ein
trag 541 in der ϕ5 Schlange 540.
Wie in Fig. 15 gezeigt wird, sind mehrere Felder der ϕ5
Schlangen-Einträge 541 die gleichen wie in den FIE-Schlangen-
Einträgen. Zu bemerken ist, daß das spezifizierte Ablauf-Fall
ID, das Ablauf-Typ ID und das Ablauf-Quelle ID dem Ablauf-Fall
entsprechen, in dem der erzeugte Schritt-Fall angeordnet ist.
Wenn der Schritt-Fall ein Eingangs-Steuer-Schritt ist, weist
der T1-Prozeß zuerst ein neues Ablauf-Fall ID zu und einen ent
sprechenden Protokoll-Eintrag (log record), bevor er die ϕ5-
Schlangen-Einträge 541 erzeugt.
Da mehrere Ereignis-Signale dazu verwendet werden können, einen
Schritt-Fall zu erzeugen, können die Ereignis-Daten-Felder auf
die vom Arbeitsplatz-Deskriptor 542 im ϕ5-Schlangen-Eintrag 541
hingedeutet wird, Daten von mehreren Eingangs-Ereignissen ent
halten. Die neuen Informationen in jedem ϕ5-Schlangen-Eintrag
541 enthalten das Schritt-Fall ID 544 und das Schritt-Quellen
ID 548, das den Computer, eine Maschine oder eine Person iden
tifiziert bzw. kennzeichnet, der die Ausführung des Schrittes
zugeordnet worden ist. Das Schritt-Quellen-ID 548 wird ausge
wählt, indem die Quellen-Auflösung-Funktions-Referenzen von der
Typ-Ref.-Tabelle 220 (siehe Fig. 6) für den spezifizierten
Schritt-Typ verwendet werden.
Der Prozeß T2 führt eine Eingangs-Daten-Zuordnung bzw. Umset
zung (mapping) und eine Quellen-Umsetzung durch. Weder die Ein
gangs-Daten-Zuordnung noch die Quellen-Zuordnung werden durch
Eingangs- und Ausgangs-Steuerschritte durchgeführt.
Quellen-Zuordnung ist der Prozeß, bei dem der Typ oder die
Klasse des Computers, der Maschine oder eines anderen Teilneh
mers, der einen bestimmten Ablauf-Schritt ausführen kann, be
stimmt wird. Die Quellen-Zuordnung basiert auf dem Quellen-Auf
lösungs-Funktions ID für den Schritt oder den Ablauf, wie es in
der TYP-Ref-Tabelle spezifiziert wird.
Für die Eingangs- und Ausgangs-Steuerschritte lädt der T2-Prozeß
einen kurzen bzw. kleinen Eintrag in die STQ2 570 Schlange, der
anzeigt, daß der Steuerschritt für die Verarbeitung durch den
T3-Prozeß bereit bzw. fertig ist. Der T2-Prozeß fügt ebenfalls
einen Eintrag für den Steuerschritt der S_R2-Arbeitsliste für
ausführende Arbeiten 580 zu. Die Datenstrukturen der Einträge
in den STQ1- und STQ2-Schlangen 560 bzw. 570 werden in der
Fig. 16 gezeigt.
Ausgangs-Steuer-Schritte erfordern eine Ausgangs-Daten-Zuord
nung und der Eintrag, der der S_R2-Liste 580 für den Steuer
schritt hinzugefügt wird, teilt dem T3-Prozeß mit, daß der
Steuerschritt für die Verarbeitung bereit ist. Die Datenstruk
tur der Einträge in der S_R2-Liste 580 werden in der Fig. 17
gezeigt. Zu bemerken ist, daß die Datenstruktur der Einträge in
der S_R2-Liste die gleichen sind wie bei der Struktur der Ein
träge in der ϕ5-Schlange, unter Hinzufügung eines Zustands-Fel
des 584, einer Zeitsetzung 586, einer akkumulierten Zeit 588
und einer Ist-Position 590. Das Zustands-Feld 584 gibt den Zu
stand des Schrittes an, wie z. B. "Warten auf den Start",
"Ausführung" oder "Beendet". Wenn der S_R2-Eintrag des Schritts
angibt, daß dessen Ausführung abgeschlossen ist, übernimmt der
Prozeß T3 die Bearbeitung dieses Schrittes. Die Zeitsetzung 584
ist gleich einer Zeit, bei der der Schritt abläuft (Auszeit)
wenn die Ausführung des Schritts noch nicht beendet ist, und
wird vom T2-Prozeß als Startzeit des Schrittes plus die Aus
zeit-Dauer des Schrittes berechnet.
Für Nicht-Steuer-Schritte führt der T2-Prozeß eine Eingangs-Zu
ordnung aus und lädt dann einen kleinen Eintrag in die STQ1-
Schlange 560, der angibt, daß der Schritt für die Ausführung
und die Verarbeitung durch den T3-Prozeß bereit ist. Der T2-
Prozeß fügt auch einen Eintrag für jeden Schritt der S_R2 Ar
beitsliste für auszuführende Arbeiten hinzu. Der Prozeß zum
Durchführen von Eingangs-Daten-Zuordnen wurde oben beschrieben.
Das Endergebnis des Eingangs-Daten-Zuordnungs-Prozesses ist ei
ne Liste mit Parametern, die in der Reihenfolge auftreten, wel
che zum Aufrufen eines Anwendungsprogrammes erforderlich ist.
Die zugeordneten Eingangs-Daten werden in Speicher-Bereichen
gespeichert, auf die durch den Arbeitsplatz-Deskriptor 582 des
S_R2 Eintrags hingewiesen wird.
Eine zweite Funktion, die durch den T2-Prozeß durchgeführt
wird, ist das Überwachen von Auszeit-Grenzen für jeden Schritt-
Fall und für jeden Ablauf-Fall.
Sitzungs-Verwalter, T3-Prozeß und Anwendungs-Ausführung. Gemäß
Fig. 13 besteht die Funktion des Sitzungs-Verwalter-Prozesses
600 (session manager process) darin, Einträge bzw. Einheiten
(item) aus der STQ1-Schlange 560 zu lesen, diese aus der
Schlange 560 zu entfernen und diese Einträge einer Zustandsli
ste 602 hinzuzufügen, die intern in Sitzungs-Verwalter 600 ge
speichert ist. Zu bemerken ist, daß die Einträge bzw. Datenein
heiten in der STQ1 Schlange 560 die Quelle angeben (d. h. den
Computer), von dem jeder Schritt ausgeführt werden soll. Klien
ten- bzw. Abnehmerprozesse 610 laufen auf verschiedenen Compu
tern des verteilten Systems, die im Sitzungs-Verwalter 600 pro
tokolliert sind, um eine Liste aller Dateneinheiten der Zu
standsliste 602, die zu dem jeweiligen Abnehmer gehören, erhal
ten zu können. Wenn ein Abnehmer-Prozeß 610 dazu bereit ist,
ein neues Anwendungsprogramm auszuführen, entnimmt er einen
Eintrag der Liste 602 (wenn es welche gibt, die auf diesen Pro
zeß warten).
Ein Abnehmer-Prozeß führt dann das Anwendungsprogramm 620 wie
folgt durch. Zuerst ruft der Abnehmer den Anwendungs-Verwalter-
Prozeß T3 auf, indem er ihn das Schritt-Fall ID (das er aus dem
STQ1-Schlangen-Eintrag erhält) des jeweiligen auszuführenden
Schrittes zuführt, und fordert den Prozeß T3 auf, ihm die Liste
mit Eingangs-Parametern für die Anwendung bzw. Applikation zu
senden. Der Anwendungs-Verwalter-Prozeß T3 findet den Eintrag
in der S_R2-Liste 580, der dem spezifizierten Schritt-Fall ID
entspricht. Dann startet er bzw. löst er eine "Transaktion"
zwischen dem T3-Prozeß und dem Abnehmer bzw. Klienten 610 aus
und sendet dem Abnehmer den Namen des Anwendungsprogrammes, das
laufen soll, (den er aus der Schritt-Typ-Tabelle erhält) und
die Eingangs-Parameter für das jeweilige Anwendungsprogramm
(die er aus dem Eintrag in der S_R2-Liste entsprechend dem spe
zifizierten Schritt-Fall-ID erhält) zu. Der Abnehmer führt das
Anwendungsprogramm aus und sendet die resultierenden Ausgangs-
Parameter dem Anwendungs-Verwaltungs-Prozeß T3 zu. Der Prozeß
T3 speichert die Ausgangs-Parameter im Arbeitsplatz bzw. Ar
beitsspeicher, der durch den Arbeitsplatz-Deskriptor 582 in dem
S_R2-Eintrag für den Schritt-Fall, der ausgeführt wird, gekenn
zeichnet wird, und beendet dann die Transaktion mit dem Abneh
mer-Prozeß unter dauerhafter Speicherung der Ergebnisse des
Schrittes.
Zu diesem Zeitpunkt fügt der Anwendungs-Verwalter-Prozeß T3 ei
nen Eintrag der STQ1-Schlange 560 zu, der angibt, daß die Aus
führung des Anwendungsprogrammes beendet worden ist. Der Sit
zungs-Verwalter 602 verwendet diese Informationen, um seine in
terne Liste 602 zu aktualisieren, d. h., um die Eintragung, die
dieses Schritt-Beispiel betrifft, aus seiner internen Liste 602
zu streichen bzw. zu löschen.
Anschließend führt der Anwendungs-Verwaltungs-Prozeß T3 eine
Ausgangs-Zuordnung durch, wobei Eingangs- und Ausgangs-Parame
ter des Schrittes den Feldern der Ausgangs-Ereignis-Signale zu
geordnet werden. Der Ausgangs-Zuordnungs-Prozeß wurde weiter
oben mit Bezug auf die Fig. 10 bereits erläutert.
Die Ausgangs-Steuerschritte, die den letzten Schritt am Ende
jedes Ablaufs darstellen, werden ebenfalls der Ausgangs-Zuord
nung unterzogen. Jeder Ausgangs-Steuerschritt wird durch einen
Eintrag in der STQ2-Schlange und auch durch einen Eintrag in
der S_R2-Liste wiedergegeben. Diese Einträge werden von dem An
wendungs-Verwaltungs-Prozeß T3 aufgenommen und die Eingangs-Si
gnale für den Steuerschritt werden in Ausgangs-Signale umge
setzt, in dem der Arbeitsplatz-Descriptor aus dem entsprechen
den S-R2-Eintrag verwendet wird, um die Eingangs-Signal-Daten
lokalisieren zu können.
Der Anwendungs-Verwaltungs-Prozeß T3 erzeugt einen Eintrag in
der ϕ7-Schlange 630 für einen ausgeführten Schritt. Das Format
der ϕ7-Schlange 630 wird in der Fig. 18 gezeigt. Jeder Aus
gangs-Ereignis-Eintrag hat Felder, die den entsprechenden Pro
tokoll-Eintrag 632, den Ablauf-Fall 634 bis 638 und den
Schritt-Fall 640 bis 644, der das Ausgangs-Ereignis erzeugte,
die Eingangs-Bedingung 650, die den Schritt-Fall fallbildete
und die Ausgangs-Bedingung 652, die für die Ausgangs-Signal-Er
zeugung ausgewählt wird, plus einen Arbeitsplatz-Descriptor 656
identifizieren, der auf einen Speicherbereich zeigt, in dem al
le Ausgangs-Ereignis-Daten-Felder, die mit dem Schritt verbun
den sind, gespeichert sind.
Anschließend erzeugt der Schritt-Beendigung-Prozeß T4 (siehe
Fig. 13) einen getrennten Ausgangs-Ereignis-Eintrag in der
FOE-Schlange 660 für jedes Ausgangs-Ereignis-Signal. Der
Schritt T4 verarbeitet auch Protokoll-Einträge des Schrittes,
was weiter unten von dem Abschnitt "Protokoll-Eintrag-Daten
bank" erläutert wird. Das Format der FOE-Schlange 660 wird in
der Fig. 19 gezeigt. Jeder Ausgangs-Ereignis-Eintrag hat Fel
der, die den entsprechenden Protokoll-Eintrag 662, den Ablauf-
Fall 664 bis 668 und den Ursprungs-Schritt-Fall 670 bis 678,
der das Ausgangs-Ereignis erzeugt hat, plus einen Arbeitsplatz-
Beschreiber 686 identifizieren, der auf einen Speicherbereich
zeigt, in dem die Datenfelder der Ausgangs-Ereignis-Signale ge
speichert sind.
Schließlich durchsucht der Bogen-Auflösungs-Prozeß T5 jeden
Eintrag in der FOE-Schlange 660, durchsucht den entsprechenden
Eintrag in der Bogen-Tabelle 250 (siehe Fig. 6) und erzeugt
dann einen entsprechenden FIE-Eintrag in der FIE-Schlange 510.
Die Struktur der Einträge in der FIE-Schlange sind oben stehend
mit Bezug auf die Fig. 14 erläutert worden. Zu bemerken ist,
daß für Ausgangs-Steuerschritte, deren Ausgangs-Ereignis-Si
gnale zu neuen Abläufen gesendet werden, die bis jetzt noch
nicht erzeugt wurden, der T1-Prozeß ein neues Ablauf-Fall ID
erzeugt, um den neuen Fall des Ablauf-Typs, der in der Bogen-
Tabelle 250 spezifiziert ist, zu repräsentieren.
Damit hat man nunmehr den gesamten Verarbeitungszyklus der Aus
führung eines Schrittes beendet. In einem typischen System sind
viele Schritte vieler unterschiedlicher Abläufe zur gleichen
Zeit unter Verarbeitung und deshalb können viele Einträge in
jeder der Schlangen zu jedem Zeitpunkt sein, die auf ihre Ver
arbeitung warten. Wenn ein Schritt sich durch die T1 bis T5-
Schleife durcharbeitet, werden seine Einträge in der früheren
Schlange gelöscht und neue Einträge in der nächsten Schlange
entlang der Schleife erzeugt. Protokoll-Einträge werden von je
dem der Prozesse T1 bis T5 erzeugt, um eine Wiederherstellung
von Schritten, die durch Systemausfälle bzw. Störungen unter
brochen wurden, zu ermöglichen. Die Protokoll-Eintrag-Erzeugung
und Wartung werden weiter unten erläutert.
Es wird darauf hingewiesen, daß die spezielle Gliederung der
Operationen zwischen den Prozessen T1 bis T5 nur eine mögliche
Ausführungsform der Erfindung wiedergeben. Die T3 und T4 Pro
zesse können leicht kombiniert bzw. zusammengelegt werden. Die
Erfinder fanden es jedoch wünschenswert, den Schritt so schnell
wie möglich abzuteilen und auszuführen. Der Prozeß T3 führt
deshalb so wenig Arbeit wie möglich aus, um die Ausführung des
Schrittes zu vervollständigen und um dauerhaft seine Ergebnisse
zu speichern. Der Prozeß T4 beendet dann den Prozeß der Erzeu
gung von Ausgangs-Ereignis-Signalen.
Gemäß den Fig. 3 und 13 können die Schritte 152 in einem de
finierten Arbeitsablauf automatisierte Schritte, die automa
tisch von einem Computer oder einen anderen Maschine durchge
führt werden, und auch "manuelle" Schritte enthalten, die von
oder unter der Steuerung und Kontrolle einer Person oder eines
anderen unabhängigen Teilnehmers ausgeführt werden (d. h. einem
Teilnehmer, der autonom vom Standpunkt des Ablauf-Controllers
aus ist). Von dieser Perspektive aus besteht der Zweck der vor
liegenden Erfindung darin, die Aktivitäten zu koordinieren, die
von einer Vielzahl von Teilnehmern durchgeführt werden, welche
zusammen an einem definierten Projekt arbeiten. In Abhängigkeit
von der bestimmten Anwendung der Erfindung können "Teilnehmer
(principals)" eine Anzahl von menschlichen Vertretern enthal
ten, von den jeder verschieden definierte Aufgaben (tasks)
durchführen muß, bevor das Projekt zur nächsten Stufe fort
schreiten kann. Es kann auch eine Anzahl von Computern und Ma
schinen umfassen, die definierte Aufgaben durchführen, wenn das
definierte Projekt einmal einen bestimmten Punkt erreicht hat.
Die Typen definierter Projekte, die menschliche Teilnehmer be
treffen, sind stark variierend. Beispiele dafür enthalten den
Vorgang einer Auto-Motor-Herstellung oder den Vorgang der Her
stellung einer Uhr oder sogar den Prozeß des Herstellens und
Zusammenbauens einer Zeitungsausgabe. Die Ablauf-Spezifikation
gibt die Reihenfolge an, in der die Aufgaben (d. h. die Schrit
te) ausgeführt werden müssen, und spezifiziert auch den Typ des
Teilnehmers, der für die Ausführung des jeweiligen Schrittes
erforderlich ist.
Zu bemerken ist, daß jeder Eintrag in der Typ-Ref.-Tabelle
(siehe Fig. 6) ein Ressourcen-Auflösungs-Funktions ID 236 enthä
lt, das direkt oder indirekt auf ein Software-Programm zeigt,
das eine "Ressource" (d. h. z. B. einen Computer oder einen Bediener
bzw. Agenten, wie z. B. eine ausgewählte Person) auswählt, um
den Schritt auszuführen. Wenn die Ressourcen-Auflösungs-Funktion
einen menschlichen Teilnehmer dazu auswählt, einen Schritt aus
zuführen, dann spezifizieren die Auswahlkriterien typischerwei
se einen Job-Titel, der an die erforderlichen Fähigkeiten der
auszuwählenden Person und auch weitere Kriterien spezifiziert,
wie z. B. die vorhandene Arbeitsbelastung der Person oder die
Beziehung der Person zu dem Job, der durchgeführt wird, spezi
fiziert.
Gemäß Fig. 13 hat das Anwendungsprogramm, das mit den
"manuellen" Schritte, die von einem menschlichen Teilnehmer
ausgeführt werden sollen, verbunden ist, typischerweise als
seine einzige Aufgabe, das Senden von Nachrichten bzw. von Be
nachrichtigungen an eine bestimmte Person oder an irgendeine
verfügbare Person, die zu der spezifizierten "Funktion
bzw. Rolle" (z. B. einen bestimmten Job-Titel oder einer bestimm
ten Beschreibung) paßt. Die Benachrichtigung gibt typischerwei
se an, daß (A) ein bestimmter Job dafür bereit ist, bearbeitet
zu werden, und daß (B) ein bestimmter Befehl in das Computersy
stem eingegeben werden soll, wenn die Bearbeitung bzw. die Ar
beit der Person an dem Projekt abgeschlossen ist, so daß das
Projekt in seine nächste Phase eintreten kann.
Wie oben stehend beschrieben sendet der T2-Prozeß eine Nach
richt an den Sitzungs-Verwalter 600 über die STQ1-Schlange 560,
unabhängig davon, ob der Schritt eine automatisierte Verarbei
tung oder ein manueller Schritt ist. Der Sitzungs-Verwalter 600
aktualisiert dann den Schritt in der Zustandsliste 602. Sogar
manuelle Schritte, die von einem menschlichen Teilnehmer durch
geführt werden sollen, werden nominell von einem Computer inso
weit ausgeführt, daß ein ausgewählter Computer-Prozessor dazu
benötigt wird, das Anwendungsprogramm, das den menschlichen Be
nutzer bzw. Teilnehmer benachrichtigt, auszuführen.
Der Benachrichtigung-Schritt durchläuft die gleichen Basis-
Schritte wie andere Schritte während der Ausführung. Er nimmt
somit Eingangs-Parameter via dem T3-Prozeß auf. Die Eingangs-
Parameter für einen Benachrichtigungs-Schritt enthalten die In
formationen, die von dem menschlichen Teilnehmer dazu benötigt
werden, einen bestimmten Schritt durchzuführen. Diese Informa
tionen können einfach die durchzuführende Aufgabe identifizie
ren oder sie können Dinge bzw. Informationen enthalten wie z. B.
eine oder mehrere zugeordnete Dateien. Informationen können
auch zum Teilnehmer weitergegeben werden, indem Mechansimen au
ßerhalb der Datenflüsse, die mit den Bögen zwischen Schritten
verbunden sind, verwendet werden. Z. B. können Informationen,
die sich auf ein Projekt beziehen, in verschiedene Dateien in
einem Sekundärspeicher bzw. Massenspeicher gespeichert werden.
Wenn eine Benachrichtigungs-Nachricht an einen Menschen oder
sogar an einen automatisierten Teilnehmer, der an dem Projekt
arbeitet, gesendet wird, dann kann die Benachrichtigungs-Nach
richt ganz einfach den Namen der Datei angeben, und eine Kopie
der Datei als Eingangs-Parameter muß nicht tatsächlich zugelei
tet werden.
Ein ähnlicher Weiterleitungs-Mechanismus für indirekte Informa
tionen kann dazu verwendet werden, um Informationen zwischen
unterschiedlichen Arbeits-Ablauf-Fällen zu übertragen, die nor
malerweise nicht miteinander kommunizieren, indem in jedem Ar
beitsablauf ein Schritt enthalten ist, der entweder Informatio
nen in einen vorgegebenen Platz (wie z. B. einer Plattendatei)
einschreibt oder aus diesem Platz ausliest, auf den von den an
deren aus zugegriffen werden kann.
Für Schritte, die eine lange Zeit dafür benötigen, daß sie von
einem menschlichen Teilnehmer durchgeführt werden, kann das An
wendungsprogramm 620 tatsächlich aus einer Anzahl von Program
men bestehen. Ein Programm kann z. B. die Benachrichtigung sen
den, ein zweites Programm kann dazu verwendet werden, um peri
odisch nachfolgende Erinnerungsnachrichten an den menschlichen
Teilnehmer (der auch manchmal als Agent oder Vertreter bezeich
net wird) zu senden, und ein drittes Programm kann von dem
menschlichen Teilnehmer dazu verwendet werden, anzugeben, daß
der Schritt abgeschlossen worden ist. In diesem Beispiel be
nachricht das dritte Programm den Prozeß T3 davon, daß das
"Anwendungs-Programm" ausgeführt wurde und leitet an den T3-
Prozeß einen Zeiger zu irgendwelchen erzeugten Ausgängen wei
ter, wonach T3 dauerhaft Daten, die die Ergebnisse der Ausfüh
rung des Schrittes wiedergeben in der Historie-Datenbank des
Systems speichert.
Das Anwendungsprogramm eines Benachrichtigung-Schritts beendet
dessen Ausführung nicht, bis es ein "Aufgabe beendet"-Kommando
von dem Teilnehmer empfängt, an den die Benachrichtigung gesen
det wurde. In vielen Fällen wird von dem Teilnehmer, der einen
bestimmten Schritt vervollständigt hat, eine Datei oder ein an
derer Datensatz dem System zugeführt, damit er nachfolgenden
Schritten des Arbeitsablaufs zugeteilt werden kann. Wenn z. B.
der Job des menschlichen Teilnehmers darin bestand, einen Zei
tungsartikel auszuarbeiten, der eine spezifizierte Anzahl von
Zeitungs- "Spalten Inches" ausfüllen sollte, dann wäre der Aus
gang des Anwendungsprogrammes, das mit diesem Schritt verbunden
ist, eine Datei, die den editierten Zeitungsartikel enthält.
Alternativerweise können die Ergebnisse eines Schrittes, der
von einem menschlichen Teilnehmer durchgeführt wird, zugeführt
werden, indem Mechanismen außerhalb der Datenflüsse, die mit
dem Ablauf-Controller verbunden sind, verwendet werden, indem
die Ergebnisse des Schrittes in einer Datei oder auf einer Dis
kette zur Verwendung durch einen nachfolgenden Schritt gespei
chert werden. In diesem Fall kann der Datei entweder ein zuvor
festgelegter Dateiname zugewiesen werden, wobei in diesem Fall
der Schritt keine anderen Ausgangs-Daten bzw. Signale erzeugt,
als die eine Anzeige, daß er beendet worden ist, oder der Da
teiname kann nachfolgenden Schritten als Ausgangsparameter in
einem oder mehreren Ausgangs-Ereignis-Signalen zugeführt wer
den.
Die meisten Schritte eines Arbeitsablaufs werden als einfacher
Schritt mit einem Eingangs-Anschluß und einem Ausgangs-Anschluß
ausgebildet, wobei die Nachrichten, die den Eingangs- und Aus
gangsanschlüssen zugewiesen werden, so ausgebildet sind, daß
sie die Informationen, die der Aufgabe zugeordnet sind, die
nachgebildet werden soll, zuführen. Ein solcher einfacher
Schritt ist einfach zu verstehen und zu verwenden, da er nur
eine Eingangs-Bedingung und nur eine einzige Ausgangs-Bedingung
hat. Diese Schritte können relativ unabhängig vom Ablauf-Kon
text ausgelegt werden, in dem sie angesprochen werden.
Ein Arbeitsablauf verbindet diese einfachen Schritte miteinan
der, und er kann Gebrauch von Steuerschritten machen, um krea
tive Verbindungen zu erzeugen. Wenn z. B. zwei Schritte A und B
von A nach B verbunden werden sollen und wenn die Ausgangsnach
richt von A nicht richtig zur Eingangsnachricht von B paßt,
kann die Arbeitsablauf-Beschreibung so eingestellt werden, daß
sie einen Steuerschritt C zwischen den Schritten A und B enthä
lt, um die Daten in den Nachrichtenfeldern zuzuordnen bzw. an
zupassen. Wenn die Zuordnung der Eingang- und Ausgangsnachrich
ten-Felder mehr als nur ein Datenfeld-Umordnen enthält, kann es
notwendig werden, ein spezielles Anwendungsprogramm zu schrei
ben, das dieses Zuordnen bzw. Anpassen durchführt, damit dann
der Schritt C so definiert ist, daß er dieses Programm aus
führt. Während der Schritt A neu geschrieben werden kann, so
daß er sowohl seine Hauptfunktion als auch die Funktionen von
Schritt C durchführt, ist die Verwendung eines separaten Steu
erschritts nützlich, da er es ermöglicht, daß die Hauptausfüh
rungsschritte relativ unabhängig von ihrem Ablauf-Zusammenhang
ausgelegt bzw. entwickelt werden können.
In einem weiteren Beispiel, wenn nach einem Schritt A, zwei
Schritte B und C parallel zueinander mit Daten von A arbeiten,
die in irgendeiner Weise aufgeteilt wurden, kann man einen
Steuerschritt dazwischen anordnen, der einen Eingangs- und zwei
Ausgangs-Anschlüsse hat und die Datenzuordnung aufweist, die
für das Aufteilen der Daten erforderlich ist.
Wenn zwei Schritte B und C verbunden werden müssen, bevor ein
Schritt E ausgeführt werden kann, kann ein Steuerschritt mit
zwei Eingangs-Anschlüssen und einem Ausgangs-Anschluß nach B
und C und vor E eingefügt werden, der die Ausgänge der Schritte
B und C vereinigt und eine einzige Nachricht erzeugt, um den
Schritt E auszulösen.
Unter Verwendung des gleichen Prinzips können Abläufe auch so
ausgelegt werden, daß sie einen einzigen Eingangs-Anschluß und
einen einzigen Ausgangs-Anschluß zur Erleichterung der Einbet
tung dieser Abläufe in andere Abläufe haben.
Wenn ein Benutzer es wünscht, explizit darüber benachrichtigt
zu werden, daß ein gewisser Punkt in einem Arbeitsablauf
erreicht worden ist, und es weiterhin wünscht, den
Arbeitsablauf auszusetzen, bis er zustimmt, kann ein
"Unterbrechungspunkt-Steuerschritt" in den Ablauf eingefügt
werden, wobei der Benutzer als die autorisierende Ressource dafür
spezifiziert wird, den Ablauf wieder "neu zu starten". Ein
Unterbrechungspunkt-Steuer-Schritt kann in einen speziellen
Anwendungsschritt eingefügt werden, wobei der Benutzer das
Benachrichtigungsziel des Schrittes ist. Der Benutzer kann dann
den Unterbrechungspunkt in seiner normalen, auszuführenden
Arbeit bzw. Verarbeitung sehen, wenn der Unterbrechungspunkt
erreicht wird. Weiterhin kann der Abnehmer ein einfaches
Programm einbringen, das es dem Benutzer erlaubt, eine Schritt-
eine Schritt-Beendigungs-Nachricht zurück an den Ablauf-Con
troller als Befehl bzw. Kommando des Benutzers zu senden.
Verzögerungen können zwischen zwei Schritten eingeführt werden
(z. B., um sicherzustellen, daß eine Zusatzfrist bestätigt wird,
bevor eine Aktion ausgeführt wird), indem ein "Verzögerungs-
Steuerschritt" der Arbeits-Ablauf-Beschreibung hinzugefügt
wird. Der Verzögerungs-Steuerschritt kann so eingestellt wer
den, daß ein spezielles Anwendungsprogramm aufgerufen wird, das
einen Takt überwacht, um zu bestimmen, wann eine "Schritt-Been
digung"-Nachricht zurück zum Ablauf-Controller geschickt werden
soll.
Eine wichtige Eigenschaft der vorliegenden Erfindung besteht in
der zuverlässigen Wiederherstellung nach Systemausfällen. Bei
lang andauernden Arbeit 09725 00070 552 001000280000000200012000285910961400040 0002004303062 00004 09606s-Abläufen ist die Wiederherstellung von
Zwischenergebnissen wichtig, damit vermieden werden kann, die
Arbeitsabläufe an ihrem absoluten Anfang erneut starten zu müs
sen.
Gemäß Fig. 20 werden in der bevorzugten Ausführungsform mehre
re Typen von Protokoll-Einträgen erzeugt. Die Haupttypen der
Protokoll-Einträge werden in Fig. 20 aufgelistet. Wie gesehen
werden kann enthalten FIE-, FOE-, IFS- (Fallbilden Ablauf-
Schritt) und TFS- (beende Ablauf-Schritt) Protokoll-Einträge
Kopien von Einträgen der FIE-, FOE-, ϕ5- und ϕ7-Schlangen. Die
FIE-Protokoll-Einträge werden von dem T5-Bogen-Auflösungs-Pro
zeß und dem Post-Server erzeugt, die FOE-Einträge werden von
dem T4-Beendigung-Prozeß erzeugt, die IFS-Einträge werden von
dem T1-Eingangs-Daten-Zuordnungs-Prozeß erzeugt und die TFS-
Einträge werden von dem T3 Anwendungs-Verwalter-Prozeß erzeugt.
Die IFP-(Fallbilden Ablauf-Prozeß) und TFP-(Beenden-Ablauf-
Prozeß)-Protokoll-Einträge werden von dem T1-Prozeß bzw. dem
T4-Prozeß erzeugt. Die WSP-Protokoll-Einträge enthalten die Da
tenwerte, auf die von den Arbeitsplatz-Descriptoren in ver
schiedenen Schlangen-Einträgen hingewiesen wird. Die WSP-Proto
koll-Einträge speichern diese Daten in einem selbstdokumentie
renden Format, so daß der Datentyp und das zugeordnete Ereig
nisfeld für jedes Datum durch den WSP-Protokoll-Eintrag spezi
fiziert werden. Des weiteren weisen die FIE-, FOE- und weitere
Protokoll-Einträge auf entsprechende Einträge der WSP-Proto
koll-Einträge mittels des Arbeitsplatz-Descriptor-Feldes am En
de dieser Einträge hin, wodurch ein Zugriff auf die Ereignis-
Feld-Datenwerte erzeugt wird, die zum Wiederherstellen nach ei
nem Systemausfall benötigt werden.
Es gibt keine Protokoll-Einträge, die der STQ1-Schlange, der
STQ2-Schlange und der S_R2-Liste für auszuführende Arbeiten zu
geordnet sind. Die STQ1-Schlange, die STQ2-Schlange und die
S_R2-Arbeitsliste für auszuführende Arbeiten werden jedoch un
abhängig dauerhaft gespeichert, so daß diese gesamten Daten
strukturen im Falle eines Systemausfalls rekonstruiert werden
können.
Die Struktur der Historie-Datenbank 116, die hier auch als Pro
tokoll-Eintrag-Datenbank bezeichnet wird, enthält zwei Tabellen
700 und 720. Die erste Tabelle 700 enthält die Protokoll-Ein
träge, von denen jeder ein "Eintrag-Typ"-Feld 702, das den Typ
des Protokoll-Eintrags angibt, einen einzigartigen Schlüssel-
Wert 704, um ein schnellen Zugriff auf einen spezifizierten
Protokoll-Eintrag zu erzeugen (wobei der Schlüssel-Wert nur
einzigartig für seinen bestimmten Eintrag-Typ sein muß), ein
Vergessen-Zeichen 706, das anzeigt, ob der Protokoll-Eintrag
für die System-Wiederherstellung benötigt werden würde, einen
Puffer-Größen-Wert 708, der die Gesamtgröße des Protokoll-Ein
trags angibt, und einen Datenpuffer 710 enthält, in dem alle
Datenfelder für Protokoll-Aufzeichnung gespeichert sind.
Die zweite Tabelle 720 wird dazu verwendet, den "Vorgänger"
(predecessor) jedes Protokoll-Eintrags zu finden, der es ermög
licht, die Kette aus Ereignissen in der Verarbeitung eines Ab
laufs wiederherzustellen. Jeder Eintrag in dieser Tabelle 720
enthält den gleichen Eintrag-Typ und den gleichen Schlüssel-
Wert wie in der ersten Tabelle 700 plus den Eintrag-Typ und den
Schlüssel-Wert des Vorgängers des Protokoll-Eintrags.
In den Fig. 21 und 22 wird das Konzept der Vorgänger-Proto
koll-Einträge beispielhaft erläutert. In Fig. 21 wird ein Ab
lauf mit vier Schritten S1, S2, S3 und S4 gezeigt. Die vier
Schritte haben Eingangs- und Ausgangs-Anschlüsse, die hier als
P1 bis P9 bezeichnet werden. Der Ablauf wird auf den Empfang
von zwei extern abgeleiteten Eingangs-Ereignis-Signalen hin
ausgelöst.
Um den Satz von Protokoll-Einträgen zu verstehen, der während
der Ausführung des Ablaufs 750 erzeugt wird, ist es unter Be
zugnahme der Fig. 13, 21 und 22 hilfreich, die Verarbei
tungsschleife der Fig. 13 zu betrachten. Die Zeit-Skala der
Fig. 22 geht von links nach rechts und die obere Reihe der
Fig. 22 gibt den Prozeß an, der den jeweiligen Protokoll-Eintrag
erzeugt. Jede Legende in der jeweiligen Box gibt den Eintrags-
Typ des erzeugten Protokoll-Eintrags an und auch den Schritt
oder Eingangs/Ausgangs-Anschluß, der mit dem Protokoll-Eintrag
verbunden ist. Die Pfeile, die bezüglich der Zeit nach rück
wärts zeigen, geben an, welcher der Protokoll-Einträge der Vor
gänger jedes anderen Protokoll-Eintrags ist.
Auf der linken Seite der Fig. 22 beginnend geben die ersten
zwei FIE-Protokoll-Einträge die extern abgeleiteten Eingangs-
Signale wieder. Danach fallbildet der T1-Prozeß den Ablauf, in
dem er einen IFP-Protokoll-Eintrag erzeugt, und der Schritt S1
des Abflusses wird ebenfalls fallgebildet, indem ein IFS-Proto
koll-Eintrag erzeugt wird. Nachdem der Schritt S1 ausgeführt
wurde, erzeugt der T3-Prozeß einen TFS-Protokoll-Eintrag und
der T4 Prozeß erzeugt zwei FOE-Protokoll-Einträge entsprechend
den Ausgangs-Ereignis-Signalen, die für die Anschlüsse P1 und
P2 erzeugt werden. Diese Kette aus Ereignissen setzt sich fort,
bis der Schritt S4 des Abflusses beendet wird, wobei die Pro
zesse T1, T3, T4 und T5 Protokoll-Einträge entlang dieses Ver
arbeitungs-Weges erzeugen, wobei jeder Protokoll-Eintrag auf
seinen Vorgänger in dem Arbeits-Ablauf zeigt.
Alle Protokoll-Einträge für alle laufenden Arbeits-Abläufe wer
den dauerhaft gespeichert, und zwar typischerweise auf Platten-
Speicher-Laufwerken in für gewöhnlich einer einfachen zeitse
quentiellen Ordnung. Immer dann, wenn ein Ablauf beendet wird,
erzeugt der T4-Prozeß einen Terminal-Ablauf TFP-Protokoll-Ein
trag und auch einen FOE-Protokoll-Eintrag für jedes Ausgangs-
Ereignis-Signal. Der T4-Prozeß markiert dann alle Protokoll-
Einträge des Ablaufs, die nun für eine System-Wiederherstellung
nicht mehr notwendig sind, als "Vergessen" unter Verwendung der
Vergessen-Zeichen-Felds der Protokoll-Einträge, die in Fig. 20
gezeigt werden. Insbesondere müssen nur die IFP-TFP-Protokoll-
Einträge und die FOE-Protokoll-Einträge für Ausgangs-Ereig
nisse, die von dem Ablauf ausgegeben werden, für System-Wieder
herstellungs-Zwecke beibehalten werden. Ein Durchlaufen aller
Protokoll-Einträge für einen abgeschlossenen Ablauf wird ausge
führt, indem die Vorgänger-Zeiger verwendet werden, welche von
der zweiten Historie-Datenbank-Tabelle 720 bereitgestellt wer
den.
Im Fall eines Systemausfalls werden die Protokoll-Einträge in
der Historie-Datenbank überprüft, um alle Einträge, die zu den
FIE-, FOE-, ϕ5 und ϕ7 Schlangen gehören zu regenerieren. Dies
wird durchgeführt, indem die Protokoll-Einträge für jeden lang
laufenden Arbeits-Ablauf durchgesehen werden, indem der Zeit
punkt bzw. Punkt gefunden wird, bei dem jeder Ablauf und jeder
Schritt durch den Systemausfall unterbrochen wurden, indem die
entsprechenden Schlangen-Einträge aus den Daten in den Proto
koll-Einträgen regeneriert werden und indem die T1 bis T5 Pro
zesse wieder gestartet werden.
Der Historie-Überprüfungs-Modul 128 stellt, wie oben erwähnt
mit Bezug auf Fig. 2, eine Benutzer-Schnittstelle zum Überprü
fen des Zustands von ausgeführten Arbeits-Abläufen bereit. Der
Historie-Überprüfungs-Modul 128 liest die Protokoll-Einträge
für spezifizierte Arbeits-Ablauf-Fälle und erzeugt Status-In
formationen, die den Status jedes Arbeits-Ablauf-Falls zusam
menfassen. Die erzeugten Zustandsinformationen enthalten z. B.
typischerweise den Zeitwert, der seit der Auslösung des Ar
beits-Ablauf-Falls abgelaufen ist, eine Liste von Arbeits-Ab
lauf-Schritten, die anhängig sind, und eine Liste von irgend
welchen Arbeits-Ablauf-Schritten, die fehlgeschlagen sind, die
Zeit begrenzt wurden oder irgendein anderes Problem erzeugt ha
ben, das ein Fortschreiten des Arbeits-Ablauf-Falls blockiert.
Ein Verwalter (Manager) mit der Autorität, den Historie-Über
prüfungs-Modul zu verwenden, kann nicht nur den Zustand aller
anhängigen Arbeits-Abläufe überprüfen, sondern kann auch die
anhängigen Arbeits-Ablauf-Schritte, die jedem Teilnehmer zuge
ordnet sind (d. h. einer Person, einem Computer oder einer Ma
schine) überprüfen und kann auch die Beendigung von Arbeits-Ab
läufen erleichtern, indem anhängige Arbeits-Ablauf-Schritte von
dem einen Teilnehmer zu einem anderen Teilnehmer erneut zuge
ordnet werden. Wenn z. B. ein Arbeits-Ablauf-Schritt einer er
sten Person zugeordnet wurde, die krank ist oder mit Arbeit im
Rückstand ist oder irgendwie anders nicht in der Lage dazu ist,
an dem anhängigen Arbeits-Ablauf-Schritt teilzunehmen, kann der
Verwalter die Arbeitsbelastungen anderer Teilnehmer überprüfen
und durchsehen und dann einige der Schritte von der ersten Per
son zu einer Person der anderen Teilnehmer auf Basis von Infor
mationen erneut zuweisen bzw. abziehen, die von der Historie-
Datenbank geliefert werden. Immer dann, wenn ein Arbeits-Ab
lauf-Schritt "manuell" einem neuen Teilnehmer auf diese Art und
Weise zugewiesen wird, wird ein entsprechender Protokoll-Ein
trag in der Historien-Datenbank 116 gespeichert, so daß der Zu
stand des Arbeits-Ablaufs mit einer genauen Überwachung fortge
setzt werden kann.
Claims (9)
1. Verfahren zur Behebung von Systemausfällen in einem verteilten
Computersystem mit einer Vielzahl von untereinander verbundenen
Computern, die zur Steuerung und Überwachung von Arbeitsabläufen dienen,
wobei das Verfahren die folgenden Schritte aufweist:
- 1. Speichern von Arbeitsablauf-Beschreibungs-Daten von einer Vielzahl von Arbeitsablauf-Typen in einem Computerspeicher, wobei jeder Arbeitsablauf- Typ als ein Satz von Schritten mit Informationsflüssen in und aus jedem Schritt dargestellt wird;
- 2. Erzeugen von bestimmten Arbeitsablauf-Fällen aus der Vielzahl der Arbeitsablauf-Typen und Auslösen der Ausführung der Schritte der Arbeitsablauf-Fälle, wenn entsprechende Eingangs-Ereignisse für jeden dieser Schritte vorliegen;
- 3. dauerhaftes Speichern von Ergebnissen von jedem ausgeführten Schritt;
- 4. Speichern von Zustandsdaten, die die erzeugten Fälle der jeweiligen Arbeitsablauf-Fälle betreffen, während deren Ausführung, wobei die Zustandsdaten Informationen über jeden Schritt der erzeugten Arbeitsablauf-Fälle enthalten; und
- 5. Lesen der Zustandsdaten, wenn der Zustand der Arbeitsabläufe überprüft wird oder wenn die jeweiligen Arbeitsabläufe nach einem Systemausfall wiederhergestellt werden sollen.
2. Verfahren nach Anspruch
1, dadurch gekennzeichnet, daß die Arbeitsablauf-Beschreibungs-Daten
aufweisen: Ausgangs-Ereignis-Daten, die Ausgangs-Ereignis-Signa
le definieren, die von jedem Schritt jedes Arbeitsablaufs er
zeugt werden, Anschluß-Daten zum Definieren von Eingangs-An
schlüssen für jeden Schritt jedes Arbeitsablaufs und Bogen-Da
ten, die für jedes Ausgangs-Ereignis-Signal einen Zielbestim
mungs-Schritt und den Eingangs-Anschluß des Zielbestimmungs-
Schritts definieren, dem das Ausgangs-Ereignis-Signal zugesen
det werden soll;
wobei das Verfahren aufweist:
wobei das Verfahren aufweist:
- A) das Empfangen von Ausgangs-Pa rametern, die durch ausgeführte Schritte der erzeugten Fälle aus der Vielzahl von Arbeitsabläufen erzeugt werden, und das Erzeugen eines Satzes aus entsprechenden Ausgangs-Ereignis-Si gnalen in Übereinstimmung mit den Ausgans-Ereignis-Daten und
- B) das Fortleiten der Ausgangs-Ereignis-Signale zu Eingangs- Anschlüssen entsprechender Schritte der erzeugten Fälle aus der Vielzahl von Arbeitsabläufen in Übereinstimmung mit den Bogen- Daten.
3. Verfahren nach Anspruch
2, dadurch gekennzeichnet, daß es aufweist:
das Erzeugen dauerhafter Protokoll-Einträge, die
das Erzeugen dauerhafter Protokoll-Einträge, die
- A) jedem er zeugten Fall aus einer der Vielzahl von Arbeitsabläufen,
- B) der Beendigung der Ausführung jedes erzeugten Falls eines Ar beitsablaufs aus der Vielzahl von Arbeitsabläufen,
- C) jedes erzeugten Falls eines Schrittes in einem Arbeitsablauf aus der Vielzahl von Arbeitsabläufen und
- D) der Beendigung jedes er zeugten Falls eines Schritts in einem Arbeitsablauf aus der Vielzahl von Arbeitsabläufen entsprechen; und
- A) eine Vielzahl von Ausgangs-Bedingungen,
- B) Kriterien zum Auswählen einer Ausgangs-Bedingung aus den Ausgangs-Bedingungen nach der Ausführung des Schrittes,
- C) Ereignis-Signale, die mit jeder der Ausgangs-Bedingungen verbunden sind, nach jeder Ausführung des Schrittes erzeugt werden sollen und eine Spezifikation von Parametern, die in jedem Ereignis-Signal enthalten ist, enthal ten, und
- D) Daten definieren, die für jedes definierte Aus gangs-Ereignis-Signal einen Ziel-Bestimmungs-Schritt bezeich nen, zu dem das Ausgangs-Ereignis-Signal gesendet werden soll;
- A) das Ermitteln der Kriterien zum Auswählen einer der Ausgangs-Bedingungen nach der Ausfüh rung jedes Schrittes,
- B) das Erzeugen von Ereignis-Signalen in Übereinstimmung mit der ausgewählten Ausgangs-Bedingung nach Auswählen des Schrittes und
- C) das Senden der erzeugten Aus gangs-Ereignis-Signale an den entsprechenden Ziel-Bestimmungs- Schritt, der durch die Ablauf-Beschreibungs-Daten definiert wird;
4. Verfahren nach Anspruch
1, dadurch gekennzeichnet, daß die Arbeitsablauf-Beschreibungs-Daten,
Daten enthalten, die mit jedem Schritt aus den definierten
Schritten eine Ressourcen-Auflösungs-Funktion verbinden, die eine
Ressource auswählt, die den definierten Schritt auszuführen soll,
wenn der definierte Schritt fallgebildet wird;
wobei das Verfahren die Ressourcen-Auflösungs-Funktion, die mit dem fallgebildeten Schritt verbunden ist, immer dann ausführt, wenn ein Schritt fallgebildet wird, und dadurch eine Ressource zum Ausführen des Instanz umgesetzten Schrittes ausgewählt wird,
wobei das Verfahren gleichzeitig laufende Prozesse zum Fallbil den der Schritte der erzeugten Fälle der Arbeits-Abläufe, zum Auswählen einer Ressource, um jeden fallgebildeten Schritt auszu führen, zum Empfangen von Ausgangs-Ereignis-Signalen, die von den ausgeführten Schritten erzeugt werden, und zum Senden der Ausgangs-Ereignis-Signale zu anderen Schritten der erzeugten Fälle der Arbeits-Abläufe enthält;
wobei die Anzahl der Vielzahl von gleichzeitig laufenden und ausgeführten Prozessen konstant bleibt, unabhängig von der An zahl der fallgebildeten Schritte, die im System vorhanden sind.
wobei das Verfahren die Ressourcen-Auflösungs-Funktion, die mit dem fallgebildeten Schritt verbunden ist, immer dann ausführt, wenn ein Schritt fallgebildet wird, und dadurch eine Ressource zum Ausführen des Instanz umgesetzten Schrittes ausgewählt wird,
wobei das Verfahren gleichzeitig laufende Prozesse zum Fallbil den der Schritte der erzeugten Fälle der Arbeits-Abläufe, zum Auswählen einer Ressource, um jeden fallgebildeten Schritt auszu führen, zum Empfangen von Ausgangs-Ereignis-Signalen, die von den ausgeführten Schritten erzeugt werden, und zum Senden der Ausgangs-Ereignis-Signale zu anderen Schritten der erzeugten Fälle der Arbeits-Abläufe enthält;
wobei die Anzahl der Vielzahl von gleichzeitig laufenden und ausgeführten Prozessen konstant bleibt, unabhängig von der An zahl der fallgebildeten Schritte, die im System vorhanden sind.
5. Vorrichtung zur Durchführung des Verfahrens nach Anspruch 1,
gekennzeichnet durch:
- 1. eine Arbeitsablauf-Beschreibungs-Datenbank (114) zum Speichern von Arbeitsablauf-Beschreibungs-Daten einer Vielzahl von Arbeitsablauf-Typen, wobei jeder Arbeitsablauf-Typ als ein Satz von Schritten mit den Informationsflüssen in und aus jedem Schritt dargestellt wird,
- 2. eine Arbeitsablauf-Steuereinrichtung (Ablauf-Controller) (130), die zum
Zugreifen auf die Arbeitsablauf-Beschreibungs-Daten mit der Arbeitsablauf-
Beschreibungs-Datenbank (114) verbunden ist, und die ferner zum
Erzeugen von bestimmten Arbeitsablauf-Fällen aus der Vielzahl von
Arbeitsablauf-Typen und zum Steuern der Ausführung der Arbeitsablauf-
Fälle vorgesehen ist, wobei die Arbeitsablauf-Steuereinrichtung (130)
aufweist:
eine Einrichtung zum Auslösen der Ausführung des ersten Schritts und zum Auslösen der Ausführung der übrigen Schritte in jedem der erzeugten Arbeitsablauf-Fälle, wenn vordefinierte Eingangs-Ereignisse für jeden dieser Schritte erfüllt sind, sowie
eine Einrichtung zum dauerhaften Speichern von Ergebnissen jedes ausgeführten Schritts, - 3. eine Historie-Management-Einrichtung (126) mit einer Einrichtung sowohl
zum Speichern von Zustandsdaten, die die erzeugten Arbeitsablauf-Fälle
betreffen, wobei die Arbeitsabläufe in Schritten ausgeführt werden und die
die Ausführung der einzelnen Schritte betreffenden Zustandsdaten während
deren Ausführung in der Historie-Management-Einrichtung (126) ge
speichert werden und wobei die Zustandsdaten Informationen über jeden
Schritt der erzeugten Arbeitsablauf-Fälle enthalten,
als auch zum Lesen der Zustandsdaten, wenn der Zustand der Arbeits abläufe überprüft wird oder wenn die jeweiligen Arbeitsabläufe nach einem Systemausfall wiederhergestellt werden sollen.
6. Vorrichtung nach Anspruch 5, dadurch
gekennzeichnet, daß die Arbeitsablauf-Beschreibungs-Datenbank (114)
aufweist: eine Ausgangs-Ereignis-Tabellen-Einrichtung zum
Definieren von Ausgangs-Ereignis-Signalen, die von jedem
Schritt jedes Arbeitsablaufs erzeugt werden, eine Anschluß-Ta
bellen-Einrichung zum Definieren von Eingangs-Anschlüssen für
jeden Schritt jedes Arbeitsablaufs und eine Bogen-Tabellen-
Einrichtung zum Speichern von Daten, die für jedes definierte
Ausgangs-Ereignis-Signal einen Zielschritt und den Eingangs-An
schluß des Zielschrittes bezeichnen, an den das Ausgangs-Ereig
nis-Signal gesendet werden soll;
wobei der Arbeitsablauf-Controller (130)
wobei der Arbeitsablauf-Controller (130)
- A) eine Schritt-Beendi gungs-Einrichtung zum Empfangen von Ausgangs-Parametern, die von ausgeführten Schritten der erzeugten Fälle der Vielzahl von Arbeitsabläufen erzeugt werden, und zum Erzeugen eines Satzes von entsprechenden Ausgangs-Ereignis-Signalen in Übereinstim mung mit der Ausgangs-Ereignis-Tabellen-Einrichtung und
- B) ei ne Bogen-Auflösungs-Einrichtung zum Fortleiten der Ausgangs-Er eignis-Signale zu Eingangs-Anschlüssen der entsprechenden Schritte der erzeugten Fälle aus der Vielzahl von Arbeitsab läufen in Übereinstimmung mit der Bogen-Tabellen-Einrichtung enthält.
7. Vorrichtung nach Anspruch 5, dadurch
gekennzeichnet, daß der Ablauf-Controller (130) eine Einrichtung zum
Erzeugen dauerhafter Protokoll-Einträge enthält, die
- A) jedem erzeugten Fall eines aus der Vielzahl von Arbeitsabläufen,
- B) der Beendigung der Ausführung jedes erzeugten Falls eines aus der Vielzahl von Arbeitsabläufen,
- C) jedes erzeugten Falls eines Schrittes eines aus der Vielzahl von Arbeitsabläufen und
- D) der Beendigung jedes erzeugten Falls eines Schrittes in ei nem aus der Vielzahl von Arbeitsabläufen entsprechen;
8. Vorrichtung nach Anspruch 5, dadurch
gekennzeichnet, daß die Arbeitsablauf-Beschreibungs-Datenbank (114) eine
Ausgangs-Ereignis-Definitions-Einrichtung enthält zum Definieren für
jeden spezifizierten der Schritte
- A) einer Vielzahl von Aus gangs-Bedingungen,
- B) von Kriterien zum Auswählen einer der Ausgangs-Bedingungen nach der Ausführung dieses Schrittes,
- C) von Ereignis-Signalen, die mit jeder definierten Ausgangs-Be dingung verbunden sind, um nach der Ausführung des Schritts er zeugt zu werden, wobei eine Spezifikation von Parametern ent halten ist, die in jedem Ereignis-Signal enthalten sein soll, und
- D) von Daten, die für jedes definierte Ausgangs-Ereignis- Signal einen Zielbestimmungs-Schritt bezeichnen, zu dem das Ausgangs-Ereignis-Signal gesendet werden soll;
- A) zum Ermitteln der Kriterien zum Auswählen einer aus den Ausgangs- Bedingungen nach Ausführung des Schrittes,
- B) zum Erzeugen von Ereignis-Signalen in Übereinstimmung mit der ausgewählten Aus gangs-Bedingung nach Ausführung des Schrittes und
- C) zum Sen den der erzeugten Ausgang-Ereignis-Signale an den entsprechen den Zielbestimmungs-Schritt, der durch die Arbeitsablauf-Beschrei bungs-Datenbank (114) definiert ist, enthält;
9. Vorrichtung nach Anspruch 1, dadurch
gekennzeichnet, daß die Arbeitsablauf-Beschreibungs-Datenbank (114)
eine Vielzahl von Ressourcen-Auflösungs-Funktionen enthält,
wobei jede Ressourcen-Auflösung-Funktion Kriterien zum Auswählen einer Ressource definiert, um einen spezifizierten Schritt auszu führen, wenn der spezifizierte Schritt fallgebildet wird;
wobei die Arbeitsablauf-Beschreibungs-Datenbank auch eine Einrich tung zum Verbinden mit jedem der definierten Schritte einer der Ressourcen-Auflösungs-Funktionen enthält;
wobei der Arbeitsablauf-Controller (130) eine Einrichtung zum Aus führen der Ressourcen-Auflösungs-Funktion, die mit dem fallgebil deten Schritt verbunden ist, immer dann, wenn ein Schritt fall gebildet wird, enthält, wobei der Arbeitsablauf-Controller (130) ei ne Vielzahl von gleichzeitig ablaufenden Prozessen zum Fallbil den der Schritte der erzeugten Fälle von Arbeitsabläufen, zum Auswählen einer Ressource, um jeden fallgebildeten Schritt auszu führen, zum Empfangen von Ausgangs-Ereignis-Signalen, die von ausgeführten Schritten erzeugt wurden, und zum Senden von Aus gangs-Ereignis-Signalen zu anderen Schritten der erzeugten Fälle der Arbeitsabläufe enthält; wobei die Anzahl aus der Vielzahl von gleichzeitig laufenden Prozessen des Arbeitsab lauf-Controllers konstant bleibt, unabhängig von der Anzahl der fallgebildeten Schritte, die im System vorhanden sind.
wobei jede Ressourcen-Auflösung-Funktion Kriterien zum Auswählen einer Ressource definiert, um einen spezifizierten Schritt auszu führen, wenn der spezifizierte Schritt fallgebildet wird;
wobei die Arbeitsablauf-Beschreibungs-Datenbank auch eine Einrich tung zum Verbinden mit jedem der definierten Schritte einer der Ressourcen-Auflösungs-Funktionen enthält;
wobei der Arbeitsablauf-Controller (130) eine Einrichtung zum Aus führen der Ressourcen-Auflösungs-Funktion, die mit dem fallgebil deten Schritt verbunden ist, immer dann, wenn ein Schritt fall gebildet wird, enthält, wobei der Arbeitsablauf-Controller (130) ei ne Vielzahl von gleichzeitig ablaufenden Prozessen zum Fallbil den der Schritte der erzeugten Fälle von Arbeitsabläufen, zum Auswählen einer Ressource, um jeden fallgebildeten Schritt auszu führen, zum Empfangen von Ausgangs-Ereignis-Signalen, die von ausgeführten Schritten erzeugt wurden, und zum Senden von Aus gangs-Ereignis-Signalen zu anderen Schritten der erzeugten Fälle der Arbeitsabläufe enthält; wobei die Anzahl aus der Vielzahl von gleichzeitig laufenden Prozessen des Arbeitsab lauf-Controllers konstant bleibt, unabhängig von der Anzahl der fallgebildeten Schritte, die im System vorhanden sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83065492A | 1992-02-04 | 1992-02-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4303062A1 DE4303062A1 (de) | 1993-08-05 |
DE4303062C2 true DE4303062C2 (de) | 1999-01-07 |
Family
ID=25257411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4303062A Expired - Fee Related DE4303062C2 (de) | 1992-02-04 | 1993-02-03 | Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens |
Country Status (4)
Country | Link |
---|---|
US (1) | US5581691A (de) |
JP (1) | JPH0683841A (de) |
DE (1) | DE4303062C2 (de) |
GB (1) | GB2263988B (de) |
Families Citing this family (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994018620A1 (en) * | 1993-02-08 | 1994-08-18 | Action Technologies, Inc. | Method and apparatus for managing business processes |
SE9300671D0 (sv) * | 1993-03-01 | 1993-03-01 | Sven Nauckhoff | Work flow management |
EP0697652A1 (de) * | 1994-08-16 | 1996-02-21 | International Business Machines Corporation | Verfahren zur Wiederdurchführung eines Vorgangs auf einem Rechnersystem zur Fehlerkorrektur |
JP2865573B2 (ja) * | 1994-09-21 | 1999-03-08 | 株式会社日立製作所 | ワークフロー管理システム |
JP3658422B2 (ja) * | 1994-09-21 | 2005-06-08 | 株式会社日立製作所 | 電子回覧システム及び電子回覧方法 |
JP2947713B2 (ja) | 1994-09-21 | 1999-09-13 | 株式会社日立製作所 | 電子化書類回覧システム |
US6526425B2 (en) | 1994-09-21 | 2003-02-25 | Hitachi, Ltd. | Digitized document circulating system with circulation history |
US5634127A (en) * | 1994-11-30 | 1997-05-27 | International Business Machines Corporation | Methods and apparatus for implementing a message driven processor in a client-server environment |
JP2923552B2 (ja) * | 1995-02-13 | 1999-07-26 | 富士通株式会社 | 組織活動データベースの構築方法,それに使用する分析シートの入力方法及び組織活動管理システム |
US5873067A (en) * | 1995-02-14 | 1999-02-16 | Kabushiki Kaisha Toshiba | Work flow system |
GB2301909A (en) * | 1995-06-07 | 1996-12-18 | Ibm | Reduction of logging in distributed transaction processing systems |
JP3647512B2 (ja) * | 1995-08-04 | 2005-05-11 | 富士通株式会社 | 広域ワークフローシステムの保守方式 |
JP3050510B2 (ja) * | 1995-09-20 | 2000-06-12 | 株式会社日立製作所 | イメージデータ管理装置 |
US9619841B2 (en) | 1996-03-28 | 2017-04-11 | Integrated Claims Systems, Llc | Systems to assist in the creation, transmission, and processing of health insurance claims |
US6003007A (en) * | 1996-03-28 | 1999-12-14 | Dirienzo; Andrew L. | Attachment integrated claims system and operating method therefor |
DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
JP3672208B2 (ja) * | 1996-07-02 | 2005-07-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 階層化トランザクション処理方法 |
EP0817019B1 (de) * | 1996-07-02 | 2003-01-29 | International Business Machines Corporation | Verfahren zur geschichteter Transaktionsverarbeitung |
EP0914637B1 (de) * | 1996-07-03 | 2001-10-17 | Sopheon N.V. | System zum unterstützen der produktion von dokumenten |
DE69719269T2 (de) * | 1996-08-01 | 2003-10-30 | Ibm | Absicherung der Unteilbarkeit für eine Ansammlung von transaktionellen Arbeitsschritten in einem Arbeitsflussverwaltungssystem |
EP0831398B1 (de) * | 1996-08-01 | 2003-02-26 | International Business Machines Corporation | Absicherung der Unteilbarkeit für eine Ansammlung von transaktionellen Arbeitsschritten in einem Arbeitsflussverwaltungssystem |
JPH10105623A (ja) * | 1996-09-27 | 1998-04-24 | Hitachi Ltd | 階層型ワークフロー管理方法及びワークフロー書類回覧方法 |
WO1998021654A1 (en) * | 1996-11-14 | 1998-05-22 | Mitsubishi Electric Information Technology Center America, Inc. | Log based data architecture for a transactional message queuing system |
US6353834B1 (en) * | 1996-11-14 | 2002-03-05 | Mitsubishi Electric Research Laboratories, Inc. | Log based data architecture for a transactional message queuing system |
US6014673A (en) * | 1996-12-05 | 2000-01-11 | Hewlett-Packard Company | Simultaneous use of database and durable store in work flow and process flow systems |
US6041306A (en) * | 1996-12-05 | 2000-03-21 | Hewlett-Packard Company | System and method for performing flexible workflow process execution in a distributed workflow management system |
US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US6311225B1 (en) * | 1996-12-23 | 2001-10-30 | Nortel Networks Limited | Method and apparatus for transferring data between process modules |
EP0854431A3 (de) * | 1997-01-20 | 2001-03-07 | International Business Machines Corporation | Ereignisse als Aktivitäten in Modellen von Arbeitsflussverwaltungssystemen |
JPH10254719A (ja) | 1997-03-14 | 1998-09-25 | Canon Inc | 情報処理装置及びその方法 |
US5748478A (en) * | 1997-03-17 | 1998-05-05 | Vanguard International Semiconductor Corporation | Output management of processing in a manufacturing plant |
EP0872805A3 (de) * | 1997-04-15 | 2001-08-22 | International Business Machines Corporation | Datenbehälter-Materialisierung und Dematerialisierung zum Reduzieren der Datenlast und Verbesseren der Datenkonsistenz in Arbeitsfluss-Verwaltungssystemen |
US6073111A (en) * | 1997-04-15 | 2000-06-06 | International Business Machines Corporation | Container materialization/dematerialization for reduced dataload and improved data-coherency in workflow-management systems |
US7117165B1 (en) | 1997-04-28 | 2006-10-03 | Ariba, Inc. | Operating resource management system |
US5985214A (en) * | 1997-05-16 | 1999-11-16 | Aurora Biosciences Corporation | Systems and methods for rapidly identifying useful chemicals in liquid samples |
JPH10320490A (ja) * | 1997-05-21 | 1998-12-04 | Hitachi Ltd | 複合ワークフロー管理システム |
JP3490256B2 (ja) * | 1997-06-12 | 2004-01-26 | 三菱電機株式会社 | エージェント方式 |
DE69811790T2 (de) | 1997-08-01 | 2003-11-20 | Ibm | Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen |
EP0895169B1 (de) * | 1997-08-01 | 2003-03-05 | International Business Machines Corporation | Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen |
US6038538A (en) * | 1997-09-15 | 2000-03-14 | International Business Machines Corporation | Generating process models from workflow logs |
US6021410A (en) * | 1997-09-25 | 2000-02-01 | International Business Machines Corporation | Extensible digital library |
US6321374B1 (en) | 1997-11-07 | 2001-11-20 | International Business Machines Corporation | Application-independent generator to generate a database transaction manager in heterogeneous information systems |
US6256636B1 (en) | 1997-11-26 | 2001-07-03 | International Business Machines Corporation | Object server for a digital library system |
US6088679A (en) * | 1997-12-01 | 2000-07-11 | The United States Of America As Represented By The Secretary Of Commerce | Workflow management employing role-based access control |
US6115646A (en) * | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
EP0933714A3 (de) * | 1998-01-28 | 2004-03-10 | International Business Machines Corporation | Verfahren und Rechnersystem zum Ausführen von Transaktionen auf einer Datenbank |
JPH11306244A (ja) * | 1998-04-16 | 1999-11-05 | Hitachi Ltd | ワーク管理システム |
US6442563B1 (en) | 1998-04-30 | 2002-08-27 | Enterworks | Workflow management system, method, and medium that morphs work items |
US6430538B1 (en) | 1998-04-30 | 2002-08-06 | Enterworks | Workflow management system, method and medium with personal subflows |
JP2000040104A (ja) * | 1998-07-23 | 2000-02-08 | Hitachi Ltd | ワークフロー管理方法 |
CA2279504A1 (fr) * | 1998-08-13 | 2000-02-13 | Guy Fouquet | Document multimedia dynamique |
US6937993B1 (en) * | 1998-09-16 | 2005-08-30 | Mci, Inc. | System and method for processing and tracking telecommunications service orders |
US6405215B1 (en) | 1998-11-06 | 2002-06-11 | International Business Machines Corp. | Workflow agent for a multimedia database system |
DE19948028A1 (de) * | 1998-11-20 | 2000-05-31 | Ibm | Verfahren und System zum Optimieren des Anforderungsschickens in Workflow Management Systemen |
US6327362B1 (en) | 1998-11-23 | 2001-12-04 | Lucent Technologies Inc. | System and method including dynamic differential treatment in workflows and contact flow |
US7024670B1 (en) * | 1998-12-17 | 2006-04-04 | International Business Machines Corporation | Timed start-conditions for activities in workflow management systems |
US6493731B1 (en) * | 1999-01-27 | 2002-12-10 | Xerox Corporation | Document management system for recording and viewing the history of document use |
US6505219B1 (en) * | 1999-01-27 | 2003-01-07 | Xerox Corporation | Process management system wherein process descriptions provide indices to document histories |
US6424948B1 (en) * | 1999-02-19 | 2002-07-23 | Guozhu Dong | Declarative workflow system supporting side-effects |
US7117172B1 (en) | 1999-03-11 | 2006-10-03 | Corecard Software, Inc. | Methods and systems for managing financial accounts |
US6308163B1 (en) | 1999-03-16 | 2001-10-23 | Hewlett-Packard Company | System and method for enterprise workflow resource management |
US6418351B1 (en) | 1999-03-30 | 2002-07-09 | International Business Machines Corporation | Determining the capacity components of tools/toolsets in a manufacturing line |
US6629096B1 (en) | 1999-08-09 | 2003-09-30 | Mindflow Technologies, Inc. | System and method for performing a mindflow process |
US6519578B1 (en) | 1999-08-09 | 2003-02-11 | Mindflow Technologies, Inc. | System and method for processing knowledge items of a knowledge warehouse |
US6732139B1 (en) * | 1999-08-16 | 2004-05-04 | International Business Machines Corporation | Method to distribute programs using remote java objects |
AU6782800A (en) * | 1999-08-16 | 2001-07-03 | Z-Force Corporation | System of reusable software parts for implementing concurrency and hardware access, and methods of use |
US6539379B1 (en) * | 1999-08-23 | 2003-03-25 | Oblix, Inc. | Method and apparatus for implementing a corporate directory and service center |
US7302430B1 (en) * | 1999-08-31 | 2007-11-27 | International Business Machines Corporation | Workflow management system for generating output material based on customer input |
US7028303B2 (en) * | 1999-09-17 | 2006-04-11 | International Business Machines Corporation | Method, system, and program for processing a job in an event driven workflow environment |
EP1087306A3 (de) * | 1999-09-24 | 2004-11-10 | Xerox Corporation | Meta-Dokumente und entsprechendes Verwaltungsverfahren |
US7171373B2 (en) * | 1999-10-21 | 2007-01-30 | International Business Machines Corporation | Database driven workflow management system for generating output material based on customer input |
US6671692B1 (en) | 1999-11-23 | 2003-12-30 | Accenture Llp | System for facilitating the navigation of data |
US6671693B1 (en) | 1999-11-23 | 2003-12-30 | Accenture Llp | System for effectively collecting and disseminating data |
US8606588B1 (en) * | 1999-11-23 | 2013-12-10 | Accenture Global Services Limited | Merger and acquisition knowledgebase |
US7184966B1 (en) * | 1999-12-30 | 2007-02-27 | Honeywell International Inc. | Systems and methods for remote role-based collaborative work environment |
DE10007563A1 (de) * | 2000-02-18 | 2001-09-06 | Intershop Software Entwicklung | Verfahren zur Steuerung von Datenverarbeitungsvorgängen |
WO2001073666A1 (en) * | 2000-03-28 | 2001-10-04 | Seebeyond Technology Corporation | Systems and methods for analyzing business processes |
US7409671B1 (en) | 2000-04-28 | 2008-08-05 | Microsoft Corporation | Model for business workflow processes |
US6516322B1 (en) | 2000-04-28 | 2003-02-04 | Microsoft Corporation | XML-based representation of mobile process calculi |
US6625602B1 (en) | 2000-04-28 | 2003-09-23 | Microsoft Corporation | Method and system for hierarchical transactions and compensation |
US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
US7467371B1 (en) | 2000-04-28 | 2008-12-16 | Microsoft Corporation | Binding for business workflow processes |
US7774219B1 (en) * | 2000-04-28 | 2010-08-10 | Microsoft Corporation | Long running transaction integration with selective dehydration and selective compensation |
US7503033B2 (en) | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US20030121027A1 (en) * | 2000-06-23 | 2003-06-26 | Hines Kenneth J. | Behavioral abstractions for debugging coordination-centric software designs |
US20030005407A1 (en) * | 2000-06-23 | 2003-01-02 | Hines Kenneth J. | System and method for coordination-centric design of software systems |
US7080077B2 (en) * | 2000-07-10 | 2006-07-18 | Oracle International Corporation | Localized access |
US8204999B2 (en) * | 2000-07-10 | 2012-06-19 | Oracle International Corporation | Query string processing |
US7464162B2 (en) | 2000-07-10 | 2008-12-09 | Oracle International Corporation | Systems and methods for testing whether access to a resource is authorized based on access information |
US7134137B2 (en) * | 2000-07-10 | 2006-11-07 | Oracle International Corporation | Providing data to applications from an access system |
US9038170B2 (en) * | 2000-07-10 | 2015-05-19 | Oracle International Corporation | Logging access system events |
US7249369B2 (en) | 2000-07-10 | 2007-07-24 | Oracle International Corporation | Post data processing |
US7124203B2 (en) | 2000-07-10 | 2006-10-17 | Oracle International Corporation | Selective cache flushing in identity and access management systems |
US7194764B2 (en) | 2000-07-10 | 2007-03-20 | Oracle International Corporation | User authentication |
US8661539B2 (en) * | 2000-07-10 | 2014-02-25 | Oracle International Corporation | Intrusion threat detection |
US7925527B1 (en) * | 2000-08-16 | 2011-04-12 | Sparta Systems, Inc. | Process control system utilizing a database system to monitor a project's progress and enforce a workflow of activities within the project |
JP2002073348A (ja) * | 2000-08-31 | 2002-03-12 | Mitsubishi Electric Corp | シナリオ解析型制御システム装置 |
EP1332418A4 (de) * | 2000-10-03 | 2006-06-07 | Michael Setteducati | Arbeitsflussmanagementsoftware-übersicht |
US7328232B1 (en) | 2000-10-18 | 2008-02-05 | Beptech Inc. | Distributed multiprocessing system |
JP2002141608A (ja) * | 2000-11-02 | 2002-05-17 | Furukawa Electric Co Ltd:The | 半導体レーザモジュールとそれを用いたラマン増幅器 |
US20020055963A1 (en) * | 2000-11-06 | 2002-05-09 | Yasuhiko Kanemasa | Data interchange system, data interchange instrument and method thereof |
JP2002183104A (ja) * | 2000-12-11 | 2002-06-28 | Hitachi Ltd | ワークフローシステムの案件割当方法、ワークフローシステムおよび前記方法を実現するプログラム並びに前記プログラムを格納した計算機読み取り可能な記録媒体 |
US20020078117A1 (en) * | 2000-12-19 | 2002-06-20 | Wang Baldonado Michelle Q. | System for creating efficient multi-step document conversion services |
US7197749B2 (en) * | 2000-12-19 | 2007-03-27 | Xerox Corporation | Method and system for executing batch jobs by delegating work to independent service providers |
US6901405B1 (en) | 2000-12-20 | 2005-05-31 | Microsoft Corporation | Method for persisting a schedule and database schema |
US7475151B2 (en) | 2000-12-22 | 2009-01-06 | Oracle International Corporation | Policies for modifying group membership |
US7213249B2 (en) | 2000-12-22 | 2007-05-01 | Oracle International Corporation | Blocking cache flush requests until completing current pending requests in a local server and remote server |
US6816871B2 (en) * | 2000-12-22 | 2004-11-09 | Oblix, Inc. | Delivering output XML with dynamically selectable processing |
US7711818B2 (en) | 2000-12-22 | 2010-05-04 | Oracle International Corporation | Support for multiple data stores |
US7937655B2 (en) * | 2000-12-22 | 2011-05-03 | Oracle International Corporation | Workflows with associated processes |
US7802174B2 (en) | 2000-12-22 | 2010-09-21 | Oracle International Corporation | Domain based workflows |
US8015600B2 (en) * | 2000-12-22 | 2011-09-06 | Oracle International Corporation | Employing electronic certificate workflows |
US7581011B2 (en) | 2000-12-22 | 2009-08-25 | Oracle International Corporation | Template based workflow definition |
US7349912B2 (en) * | 2000-12-22 | 2008-03-25 | Oracle International Corporation | Runtime modification of entries in an identity system |
US7380008B2 (en) * | 2000-12-22 | 2008-05-27 | Oracle International Corporation | Proxy system |
US6782379B2 (en) * | 2000-12-22 | 2004-08-24 | Oblix, Inc. | Preparing output XML based on selected programs and XML templates |
US7415607B2 (en) | 2000-12-22 | 2008-08-19 | Oracle International Corporation | Obtaining and maintaining real time certificate status |
US7085834B2 (en) * | 2000-12-22 | 2006-08-01 | Oracle International Corporation | Determining a user's groups |
US7363339B2 (en) | 2000-12-22 | 2008-04-22 | Oracle International Corporation | Determining group membership |
US7287147B1 (en) | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
US7237090B1 (en) | 2000-12-29 | 2007-06-26 | Mips Technologies, Inc. | Configurable out-of-order data transfer in a coprocessor interface |
US20040015816A1 (en) * | 2001-01-05 | 2004-01-22 | Hines Kenneth Joseph | Coordination synthesis for software systems |
US7185364B2 (en) | 2001-03-21 | 2007-02-27 | Oracle International Corporation | Access system interface |
US7240324B2 (en) * | 2001-02-28 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Event-based scheduling method and system for workflow activities |
US7184967B1 (en) | 2001-03-06 | 2007-02-27 | Microsoft Corporation | System and method utilizing a graphical user interface of a business process workflow scheduling program |
US20030140126A1 (en) * | 2001-03-30 | 2003-07-24 | Vitria Technology, Inc. | Method of deployment for concurrent execution of multiple versions of an integration model |
US7120896B2 (en) | 2001-10-31 | 2006-10-10 | Vitria Technology, Inc. | Integrated business process modeling environment and models created thereby |
US7124072B1 (en) | 2001-04-30 | 2006-10-17 | Mips Technologies, Inc. | Program counter and data tracing from a multi-issue processor |
US7134116B1 (en) | 2001-04-30 | 2006-11-07 | Mips Technologies, Inc. | External trace synchronization via periodic sampling |
US7178133B1 (en) | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
US7069544B1 (en) | 2001-04-30 | 2006-06-27 | Mips Technologies, Inc. | Dynamic selection of a compression algorithm for trace data |
US7168066B1 (en) | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
US7181728B1 (en) | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US7185234B1 (en) | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7065675B1 (en) | 2001-05-08 | 2006-06-20 | Mips Technologies, Inc. | System and method for speeding up EJTAG block data transfers |
US7231661B1 (en) | 2001-06-21 | 2007-06-12 | Oracle International Corporation | Authorization services with external authentication |
US7231551B1 (en) | 2001-06-29 | 2007-06-12 | Mips Technologies, Inc. | Distributed tap controller |
US7043668B1 (en) | 2001-06-29 | 2006-05-09 | Mips Technologies, Inc. | Optimized external trace formats |
US7120699B2 (en) * | 2001-09-20 | 2006-10-10 | Ricoh Company, Ltd. | Document controlled workflow systems and methods |
US20030061266A1 (en) * | 2001-09-27 | 2003-03-27 | Norman Ken Ouchi | Project workflow system |
AUPR804601A0 (en) * | 2001-10-02 | 2001-10-25 | Bevington & Partners Pty Ltd | System and method of managing change process |
US20030078975A1 (en) * | 2001-10-09 | 2003-04-24 | Norman Ken Ouchi | File based workflow system and methods |
US20030074270A1 (en) * | 2001-10-16 | 2003-04-17 | Brown Otis F. | Computerized method and system for managing and communicating information regarding an order of goods |
JP4681225B2 (ja) * | 2001-10-17 | 2011-05-11 | ベプテック インコーポレイテッド | オペレーティングシステムにわたる通信の方法 |
US20030078820A1 (en) * | 2001-10-19 | 2003-04-24 | Ouchi Norman Ken | Object based workflow route |
US20030084071A1 (en) * | 2001-11-01 | 2003-05-01 | International Business Machines Corporation | Method and system for managing computer performance |
US7155400B1 (en) | 2001-11-14 | 2006-12-26 | Qgenisys, Inc. | Universal task management system, method and product for automatically managing remote workers, including automatically recruiting workers |
US6931404B2 (en) * | 2001-11-14 | 2005-08-16 | Inventec Corporation | System and method for operating workflow |
US6859523B1 (en) | 2001-11-14 | 2005-02-22 | Qgenisys, Inc. | Universal task management system, method and product for automatically managing remote workers, including assessing the work product and workers |
US6938048B1 (en) | 2001-11-14 | 2005-08-30 | Qgenisys, Inc. | Universal task management system, method and product for automatically managing remote workers, including automatically training the workers |
US7225256B2 (en) | 2001-11-30 | 2007-05-29 | Oracle International Corporation | Impersonation in an access system |
US7051036B2 (en) | 2001-12-03 | 2006-05-23 | Kraft Foods Holdings, Inc. | Computer-implemented system and method for project development |
US20030117417A1 (en) * | 2001-12-20 | 2003-06-26 | Nortel Networks Limited | Generic application flow management system and method |
US7299465B2 (en) * | 2002-01-08 | 2007-11-20 | International Business Machines Corporation | Configurable application integrating service request and fulfillment process |
US20030149604A1 (en) * | 2002-01-25 | 2003-08-07 | Fabio Casati | Exception analysis, prediction, and prevention method and system |
US7216163B2 (en) | 2002-05-15 | 2007-05-08 | Oracle International Corporation | Method and apparatus for provisioning tasks using a provisioning bridge server |
US7840658B2 (en) | 2002-05-15 | 2010-11-23 | Oracle International Corporation | Employing job code attributes in provisioning |
US8375113B2 (en) | 2002-07-11 | 2013-02-12 | Oracle International Corporation | Employing wrapper profiles |
US7512585B2 (en) * | 2002-07-11 | 2009-03-31 | Oracle International Corporation | Support for multiple mechanisms for accessing data stores |
US7114037B2 (en) * | 2002-07-11 | 2006-09-26 | Oracle International Corporation | Employing local data stores to maintain data during workflows |
US7428592B2 (en) * | 2002-07-11 | 2008-09-23 | Oracle International Corporation | Securely persisting network resource identifiers |
US7206851B2 (en) * | 2002-07-11 | 2007-04-17 | Oracle International Corporation | Identifying dynamic groups |
US7467142B2 (en) * | 2002-07-11 | 2008-12-16 | Oracle International Corporation | Rule based data management |
US7428523B2 (en) * | 2002-07-11 | 2008-09-23 | Oracle International Corporation | Portal bridge |
US7447701B2 (en) * | 2002-07-11 | 2008-11-04 | Oracle International Corporation | Automatic configuration of attribute sets |
US8602774B2 (en) * | 2002-12-04 | 2013-12-10 | Bryan Wasylucha | Process of tooth whitening and apparatus therefor |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
US20040260593A1 (en) * | 2003-05-20 | 2004-12-23 | Klaus Abraham-Fuchs | System and user interface supporting workflow operation improvement |
US7159101B1 (en) | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
US20050033594A1 (en) * | 2003-06-02 | 2005-02-10 | Shen Michael Y. | Flow management analysis system and method for healthcare related business |
US20050010371A1 (en) * | 2003-07-09 | 2005-01-13 | Merriam-Leith Christopher Scott | Workflow-based research system with genetic pedigree display and organism tracking |
US7536376B2 (en) * | 2003-10-03 | 2009-05-19 | International Business Machines Corporation | Task oriented log retrieval utilizing a self-learning search tool |
US7882132B2 (en) | 2003-10-09 | 2011-02-01 | Oracle International Corporation | Support for RDBMS in LDAP system |
US7904487B2 (en) | 2003-10-09 | 2011-03-08 | Oracle International Corporation | Translating data access requests |
US7340447B2 (en) * | 2003-10-09 | 2008-03-04 | Oracle International Corporation | Partitioning data access requests |
US7693916B2 (en) * | 2004-01-05 | 2010-04-06 | Microsoft Corporation | Correlating process instance data across multiple applications |
US20050193004A1 (en) * | 2004-02-03 | 2005-09-01 | Cafeo John A. | Building a case base from log entries |
US20050246212A1 (en) * | 2004-04-29 | 2005-11-03 | Shedd Nathanael P | Process navigator |
US7539982B2 (en) * | 2004-05-07 | 2009-05-26 | International Business Machines Corporation | XML based scripting language |
DE102004043419A1 (de) * | 2004-09-06 | 2006-03-30 | Siemens Ag | System zum Abwickeln eines industriellen Geschäftsprozesses |
US20060064316A1 (en) * | 2004-09-23 | 2006-03-23 | Wallace Keith M | Interactive computer system in the field of family and children adoption services |
US7630974B2 (en) | 2004-09-28 | 2009-12-08 | Oracle International Corporation | Multi-language support for enterprise identity and access management |
US8170901B2 (en) | 2004-10-01 | 2012-05-01 | Microsoft Corporation | Extensible framework for designing workflows |
US7805324B2 (en) | 2004-10-01 | 2010-09-28 | Microsoft Corporation | Unified model for authoring and executing flow-based and constraint-based workflows |
US7848942B2 (en) * | 2004-12-28 | 2010-12-07 | Sap Aktiengesellschaft | Distribution of integrated business process models |
US8521570B2 (en) * | 2004-12-28 | 2013-08-27 | Sap Aktiengesellschaft | Integration of distributed business process models |
US20060190184A1 (en) * | 2005-02-23 | 2006-08-24 | Incogen, Inc. | System and method using a visual or audio-visual programming environment to enable and optimize systems-level research in life sciences |
US20060195750A1 (en) * | 2005-02-25 | 2006-08-31 | Oracle International Corporation | Simplifying Troubleshooting of Errors in Configurable Parameter Values Associated with Computer Supported Business-flows |
US7418306B2 (en) * | 2005-02-28 | 2008-08-26 | Microsoft Corporation | Framework for managing process including sequential actions |
US8554599B2 (en) * | 2005-03-25 | 2013-10-08 | Microsoft Corporation | Work item rules for a work item tracking system |
US7363628B2 (en) * | 2005-06-27 | 2008-04-22 | Microsoft Corporation | Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host |
JP4785489B2 (ja) | 2005-10-14 | 2011-10-05 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US7475275B2 (en) * | 2005-10-27 | 2009-01-06 | International Business Machines Corporation | Method for fault handling in a co-operative workflow environment |
US20070156503A1 (en) * | 2005-11-30 | 2007-07-05 | Accenture Global Services, Gmbh | Merger integration framework and tool |
US7792872B1 (en) * | 2005-12-29 | 2010-09-07 | United Services Automobile Association | Workflow administration tools and user interfaces |
US7840526B1 (en) * | 2005-12-29 | 2010-11-23 | United Services Automobile Association (Usaa) | Workflow administration tools and user interfaces |
US7792871B1 (en) | 2005-12-29 | 2010-09-07 | United Services Automobile Association | Workflow administration tools and user interfaces |
US7822706B1 (en) | 2005-12-29 | 2010-10-26 | United Services Automobile Association (Usaa) | Workflow administration tools and user interfaces |
US8688813B2 (en) | 2006-01-11 | 2014-04-01 | Oracle International Corporation | Using identity/resource profile and directory enablers to support identity management |
US20080040180A1 (en) * | 2006-03-27 | 2008-02-14 | Accenture Global Services, Gmbh | Merger integration toolkit system and method for merger-specific functionality |
US20080040173A1 (en) * | 2006-03-27 | 2008-02-14 | Accenture Global Services,Gmbh | Merger integration toolkit system and method for secure navigation hierarchy and workflow functionality |
US9406034B2 (en) * | 2006-03-27 | 2016-08-02 | Accenture Global Services Limited | Merger integration toolkit system and method for milestone tracking |
US7933925B2 (en) * | 2006-06-01 | 2011-04-26 | International Business Machines Corporation | System and method for role based analysis and access control |
US8205189B2 (en) * | 2006-07-13 | 2012-06-19 | Oracle International Corporation | Method and system for definition control in a data repository application |
US9691038B2 (en) * | 2006-11-03 | 2017-06-27 | International Business Machines Corporation | Method and apparatus for examining workflow processes |
US20080109467A1 (en) * | 2006-11-03 | 2008-05-08 | Microsoft Corporation | Data entity centric approach for designing workflows |
JP5029616B2 (ja) * | 2006-12-22 | 2012-09-19 | 富士通株式会社 | 検証装置、検証方法および検証プログラム |
US9175547B2 (en) * | 2007-06-05 | 2015-11-03 | Schlumberger Technology Corporation | System and method for performing oilfield production operations |
US9152995B2 (en) * | 2007-08-30 | 2015-10-06 | Cc Serve Corporation | Method and system for loan application non-acceptance follow-up |
US20090063320A1 (en) * | 2007-08-30 | 2009-03-05 | Shawna Kerry Powell | Electronic Lending System Method and Apparatus for Loan Completion |
US20090060165A1 (en) * | 2007-08-30 | 2009-03-05 | Pradeep Kumar Dani | Method and System for Customer Transaction Request Routing |
US8589283B2 (en) * | 2007-08-30 | 2013-11-19 | Ccip Corp. | Method and system for loan application non-acceptance follow-up |
JP5145910B2 (ja) | 2007-12-07 | 2013-02-20 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US7836053B2 (en) * | 2007-12-28 | 2010-11-16 | Group Logic, Inc. | Apparatus and methods of identifying potentially similar content for data reduction |
JP4995127B2 (ja) * | 2008-03-18 | 2012-08-08 | 株式会社リコー | ワークフロー管理システム |
JP5473267B2 (ja) * | 2008-07-14 | 2014-04-16 | キヤノン株式会社 | ワークフロー実行システム及びワークフロー実行方法 |
US8145944B2 (en) * | 2009-09-30 | 2012-03-27 | International Business Machines Corporation | Business process error handling through process instance backup and recovery |
US8495730B2 (en) * | 2009-10-12 | 2013-07-23 | International Business Machines Corporation | Dynamically constructed capability for enforcing object access order |
US20110093406A1 (en) * | 2009-10-21 | 2011-04-21 | Kana Software, Inc. | User interface workflow composition method, system and computer program product |
US20110184870A1 (en) * | 2009-10-21 | 2011-07-28 | Kana Software, Inc. | Form processing in a user interface workflow composition tool |
US8347021B1 (en) | 2010-04-09 | 2013-01-01 | Google Inc. | Storing application messages |
US8756118B1 (en) | 2010-10-06 | 2014-06-17 | Coupa Incorporated | Shopping at e-commerce sites within a business procurement application |
US8321433B1 (en) * | 2011-05-06 | 2012-11-27 | Sap Ag | Systems and methods for business process logging |
US8452786B2 (en) * | 2011-05-06 | 2013-05-28 | Sap Ag | Systems and methods for business process logging |
US20120330859A1 (en) * | 2011-06-27 | 2012-12-27 | International Business Machines Corporation | Interactive business process modeling and simulation |
WO2013140609A1 (ja) * | 2012-03-23 | 2013-09-26 | 株式会社日立製作所 | 運用を管理する管理システム及び方法 |
US10817819B2 (en) * | 2012-07-16 | 2020-10-27 | Micro Focus Llc | Workflow compilation |
US9164811B1 (en) * | 2014-05-16 | 2015-10-20 | Xerox Corporation | Synchronize multipart jobs through automation workflow |
US9946635B2 (en) * | 2015-09-29 | 2018-04-17 | International Business Machines Corporation | Synchronizing multi-system program instruction sequences |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10095552B2 (en) * | 2016-02-05 | 2018-10-09 | Sas Institute Inc. | Automated transfer of objects among federated areas |
US9684543B1 (en) * | 2016-02-05 | 2017-06-20 | Sas Institute Inc. | Distributed data set storage, retrieval and analysis |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10264056B2 (en) * | 2016-12-08 | 2019-04-16 | Bank Of America Corporation | Multicomputer processing of an event request from an event origination device with centralized event orchestration |
CN111461641A (zh) * | 2020-03-12 | 2020-07-28 | 北京美住美宿科技有限公司 | 一种审批流处理方法、系统、设备及可读存储介质 |
CN113836873A (zh) * | 2021-08-27 | 2021-12-24 | 厦门云评众联科技有限公司 | 电子底稿的底稿管理方法及流程管理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0082225A1 (de) * | 1981-12-23 | 1983-06-29 | International Business Machines Corporation | Geschäftssystem |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3631452A (en) * | 1968-12-23 | 1971-12-28 | Willard H Richard | Work-scheduling apparatus |
DE3206891A1 (de) * | 1982-02-26 | 1983-09-15 | Robert Bosch Gmbh, 7000 Stuttgart | Verfahren zur fehlerdiagnose fuer speicherprogrammierbare steuerungen |
US4503499A (en) * | 1982-09-14 | 1985-03-05 | Eaton Corporation | Controlled work flow system |
US4703481A (en) * | 1985-08-16 | 1987-10-27 | Hewlett-Packard Company | Method and apparatus for fault recovery within a computing system |
US4803039A (en) * | 1986-02-03 | 1989-02-07 | Westinghouse Electric Corp. | On line interactive monitoring of the execution of process operating procedures |
US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
FR2602891B1 (fr) * | 1986-08-18 | 1990-12-07 | Nec Corp | Systeme de correction d'erreur d'un systeme a multiprocesseurs pour corriger une erreur dans un processeur en mettant le processeur en condition de controle apres achevement du redemarrage du microprogramme a partir d'un point de reprise |
US4815014A (en) * | 1987-02-27 | 1989-03-21 | Westinghouse Electric Corp. | Machine assisted execution of process operating procedures |
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
US5182705A (en) * | 1989-08-11 | 1993-01-26 | Itt Corporation | Computer system and method for work management |
US5093794A (en) * | 1989-08-22 | 1992-03-03 | United Technologies Corporation | Job scheduling system |
-
1993
- 1993-01-29 GB GB9301823A patent/GB2263988B/en not_active Expired - Fee Related
- 1993-02-03 DE DE4303062A patent/DE4303062C2/de not_active Expired - Fee Related
- 1993-02-04 JP JP5017297A patent/JPH0683841A/ja active Pending
-
1995
- 1995-08-18 US US08/516,729 patent/US5581691A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0082225A1 (de) * | 1981-12-23 | 1983-06-29 | International Business Machines Corporation | Geschäftssystem |
Also Published As
Publication number | Publication date |
---|---|
GB2263988A (en) | 1993-08-11 |
GB9301823D0 (en) | 1993-03-17 |
JPH0683841A (ja) | 1994-03-25 |
GB2263988B (en) | 1996-05-22 |
US5581691A (en) | 1996-12-03 |
DE4303062A1 (de) | 1993-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4303062C2 (de) | Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens | |
DE4216871C2 (de) | Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen | |
EP0929864B1 (de) | Koordinations-system | |
DE69839145T2 (de) | Kompensierender Betriebsmittelverwalter | |
EP0346801B1 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE4497149B4 (de) | Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung | |
US5524241A (en) | System and method for executing, tracking and recovering long running computations | |
DE60013658T2 (de) | Fehlertolerante virtuelle Javamaschine | |
EP0635792B1 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE69815946T2 (de) | Informationsverarbeitungsvorrichtung | |
DE10003015A1 (de) | Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen | |
DE19955004A1 (de) | Ableitung und Ausführung von Workload-Manager-Enklaven aus Workflows | |
DE10392709T5 (de) | Systeme und Verfahren zum Prädizieren von Arbeitslisten | |
DE19844071A1 (de) | Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
DE102005053727A1 (de) | Verteilte Verriegelung | |
DE69913375T2 (de) | Anzeige eines fehlers in einem transaktionsverarbeitungssystem | |
DE10059796A1 (de) | Steuerung der Lebensdauer von Aktivitäten für die Datenverarbeitung | |
EP0807883B1 (de) | Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen | |
DE19963673A1 (de) | Verfahren, Systeme und Computerprogrammprodukte zur Dokumentenverwaltung für Software-Entwicklungssysteme | |
DE4101623A1 (de) | Informationsverarbeitungssystem | |
DE10119876A1 (de) | Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
EP1701266A1 (de) | Testvorrichtung zur Überprüfung einer Stapelverarbeitung | |
EP0836721B1 (de) | Anlaufsystem eines rechnersystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 15/403 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |