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 Verfahrens

Info

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
Application number
DE4303062A
Other languages
English (en)
Other versions
DE4303062A1 (de
Inventor
Meichun Hsu
Adel Ghoneimy
Karl Kleissner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE4303062A1 publication Critical patent/DE4303062A1/de
Application granted granted Critical
Publication of DE4303062C2 publication Critical patent/DE4303062C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution 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.
Ablauf-Verwaltung-Systemkomponenten
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.
Komponenten eines Arbeitsablaufs
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.
Arbeitsablauf-Beschreibungs-Datenbank
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.
- Ablauf-Tabelle.
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.
- Typ-Ref.-Tabelle.
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.
- Bogen-Tabelle.
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.
- Schritt-Typ-Tabelle.
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.
- Anschluß-Tabelle.
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".
Eingangs-Bedingungen und Eingangs-Daten-Zuordnung
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.
- Ereignis-Typ-Tabelle.
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.
- Eingangs-Daten-Zuordnungs-Tabelle.
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.
-Eingangs-Bedingungs-Tabelle.
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.
- API-Tabelle.
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.
Ausgangs-Bedingung-Beurteilung und Ausgangs-Daten-Zuordnen
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.
Schleife als optionale Ausgangs-Bedingung
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.
Ablauf-Controller
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.
Prozeß T1.
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.
Prozeß T2.
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.
Benachrichtigungsschritte
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.
Steuerschritte
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.
Protokoll-Eintrag-Datenbank und System-Ausfall-Wiederherstel­ lung
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:
  • 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
  • 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
das Wiederstarten von Arbeitsabläufen aus diesen Arbeitsab­ läufen, die durch einen System-Ausfall unterbrochen werden, in­ dem die dauerhaften Protokoll-Einträge überprüft werden und in­ dem die Ausführung der unterbrochenen Arbeitsabläufe wiederge­ startet wird, so daß eine Wiederausführung von deren Schritten, die bereits zu Ende geführt wurden, vermieden wird, wobei die Ablauf-Beschreibungs-Daten Ausgangs-Ereignis-Daten aufweisen, die für jeden spezifizierten Schritt dieser Schritte
  • 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;
wobei das Verfahren aufweist
  • 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;
wobei spezifizierte Schritte aus diesen Schritten unterschied­ liche Ausgangs-Ereignis-Signale an unterschiedliche Ziel-Be­ stimmungs-Schritte in Übereinstimmung mit definierten Kriterien senden können, die nach der Ausführung der spezifizierten Schritte aus diesen Schritten ermittelt werden.
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.
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)
  • 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;
wobei das Arbeitsablauf-Verwaltungs-System eine Wiederstart- Einrichtung zum Wiederstarten von Arbeitsabläufen hat, die durch einen Systemausfall unterbrochen wurden, indem die dauer­ haften Protokoll-Einträge überprüft werden und indem die Aus­ führung mit der unterbrochenen Arbeitsabläufe wiedergestartet werden, so daß eine Wiederausführung von Schrittender Arbeits­ abläufe, die bereits beendet wurden, vermieden wird.
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;
wobei der Arbeitsablauf-Controller (130) eine Einrichtung
  • 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;
wobei spezifizierte Schritte dieser Schritte unterschiedliche Ausgangs-Ereignis-Signale an unterschiedliche Zielbestimmungs- Schritte in Übereinstimmung mit definierten Kriterien senden, die nach der Ausführung von spezifizierten Schritten aus diesen Schritten ermittelt werden.
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.
DE4303062A 1992-02-04 1993-02-03 Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens Expired - Fee Related DE4303062C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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