DE19955718A1 - Paralleler Datenbank-Support für Workflow-Management-Systeme - Google Patents

Paralleler Datenbank-Support für Workflow-Management-Systeme

Info

Publication number
DE19955718A1
DE19955718A1 DE19955718A DE19955718A DE19955718A1 DE 19955718 A1 DE19955718 A1 DE 19955718A1 DE 19955718 A DE19955718 A DE 19955718A DE 19955718 A DE19955718 A DE 19955718A DE 19955718 A1 DE19955718 A1 DE 19955718A1
Authority
DE
Germany
Prior art keywords
wfms
database
definition means
management system
parallel
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.)
Withdrawn
Application number
DE19955718A
Other languages
English (en)
Inventor
Frank Leymann
Dieter Roller
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19955718A1 publication Critical patent/DE19955718A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/954Relational
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

Die vorliegende Erfindung bezieht sich auf ein Mittel, um den parallelen Datenbank-Support in einem Workflow-Management-System (WFMS) bereitzustellen. DOLLAR A Die Erfindung empfiehlt Mittel, um einen Teil der zentralen System-Datenbank von einem Workflow-Management-System (WFMS) oder einem System mit vergleichbarer Funktionalität so zu definieren, daß dieser von einem Datenbankverwaltungssystem (DBMS) in einer parallelen Datenbank gehalten wird. Das WFMS enthält wenigstens ein Prozeßmodell. Es wird außerdem empfohlen, daß die Definitionsmittel zur Definition, welche Teile der zentralen System-Datenbank in der parallelen Datenbank gespeichert werden, in den WFMS-Konfigurationsspezifikationen enthalten sind, wie beispielsweise in diesem Prozeßmodell.

Description

1. Hintergrund der Erfindung 1.1 Bereich der Erfindung
Die vorliegende Erfindung bezieht sich auf Workflow-Manage­ ment-Systeme (WFMS).
Die Erfindung bezieht sich insbesondere auf Mittel zur Bereitstellung eines verbesserten Datenbank-Supports in einem Workflow-Management-System (WFMS).
1.2 Beschreibung und Nachteile des Stands der Technik
Ein neuer Technologiebereich von zunehmender Bedeutung ist der Bereich der Workflow-Management-Systeme (WFMS). WFMS unterstützen die Modellierung und Ausführung von Geschäftsprozessen. Geschäftsprozesse steuern, welcher Teil der Arbeit aus einem Netzwerk mit Teilen von Arbeit von wem durchgeführt wird und welche Betriebsmittel für diese Arbeit benutzt werden. So beschreibt beispielsweise ein Geschäftsprozeß, wie ein Unternehmen seine Geschäftsziele erreichen wird. Die einzelnen Teile der Arbeit könnten durch eine Vielzahl von verschiedenen Computersystemen verteilt werden, die über irgendeine Art von Netzwerk miteinander verbunden sind.
Der Prozeß, ein neues Produkt zu konzipieren, zu entwickeln und herzustellen und der Prozeß, ein vorhandenes Produkt zu ändern oder anzupassen, bietet für Produktmanager und Ingenieure viele Herausforderungen, da sie das Produkt in gleichbleibender Qualität oder besser noch in besserer Qualität zu niedrigsten Kosten und termingerecht auf den Markt bringen müssen. Viele Unternehmen sind sich darüber im klaren, daß der konventionelle Produktdesign-Prozeß nicht ausreicht, um diese Anforderungen zu erfüllen. Sie verlangen frühe Einbindung von Herstellungs-Engineering, Kosten- Engineering, Logistikplanung, Beschaffung, Herstellung, Kundendienst, und sie verlangen Unterstützung beim Design. Sie verlangen außerdem die Planung und Kontrolle der Produktdaten während der Entwicklung, der Freigabe und der Herstellung.
Die korrekte und wirksame Ausführung von Geschäftsprozessen innerhalb eines Unternehmens, beispielsweise die Entwicklungs- oder Produktionsprozesse, ist für ein Unternehmen von größter Wichtigkeit und hat wesentlichen Einfluß auf den Gesamterfolg des Unternehmens am Markt. Deshalb müssen diese Prozesse ähnlich wie Technologieprozesse betrachtet werden und getestet, optimiert und überwacht werden. Die Verwaltung von solchen Prozessen wird für gewöhnlich von einem computergestützten Prozeß oder Workflow-Management-System durchgeführt und unterstützt.
In D. J. Spoon: "Project Management Environment", IBM Technical Disclosure Bulletin, Vol. 32, No. 9A, February 1990, Seiten 250 bis 254, wird eine Prozeßverwaltungsumgebung beschrieben, die eine Betriebsumgebung, Datenelemente und Anwendungsfunktionen sowie Anwendungsprozesse enthält.
In R. T. Marshak: "IBM's FlowMark, Object-Oriented Workflow for Mission-Critical Applications", Workgroup Computing Report (USA), Vol. 17, No. 5, 1994, Seiten 3 bis 13, ist der Objektcharakter der IBM FlowMark als ein Client-/Server- Produkt, das auf einem echten Objektmodell aufgebaut ist, das auf die aufgabenkritische Entwicklung und den Einsatz der Produktionsprozeßanwendung abzielt, beschrieben.
In H. A. Inniss und J. H. Sheridan: "Workflow Management Based on an Object-Oriented Paradigm", IBM Technical Disclosure Bulletin, Vol. 37, No. 3, March 1994, Seite 185, sind weitere Aspekte der objektorientierten Modellierung, die an den Kunden angepaßt wird und Änderungen beschrieben.
In F. Leymann und D. Roller: "Business Process Management with Flowmark", Digest of papers, Cat. No. 94CH3414-0, Spring COMPCON 94, 1994, Seiten 230 bis 234 ist das Computer Process Management Tool aus dem Stand der Technik, IBM FlowMark, beschrieben. Das Meta-Modell von IBM FlowMark wird ebenso wie die Implementierung von IBM FlowMark vorgestellt. Die Möglichkeiten von IBM FlowMark, Geschäftsprozesse zu modellieren, werden ebenso wie ihre Ausführung erörtert. Das Produkt IBM FlowMark ist für verschiedene Computerplattformen lieferbar, und die Dokumentation für IBM FlowMark ist in jeder IBM-Filiale erhältlich.
In F. Leymann: "A meta model to support the modeling and execution of processes", Proceedings of the 11th European Meeting on Cybernetics and System Research EMCR92, Vienna, Austria, April 21 to 24, 1992, World Scientific 1992, Seiten 287 bis 294 wird ein Meta-Modell zur Steuerung von Geschäftsprozessen vorgestellt und ausführlich erörtert.
Das "IBM FlowMark for OS/2", Dokumentennummer GH 19-8215-01, IBM Corporation, 1994, das bei jeder IBM-Vertriebsstelle er­ hältlich ist, stellt ein typisches, modernes, hochentwickeltes und leistungsfähiges Workflow-Management- System dar. Es unterstützt die Modellierung von Geschäftsprozessen als ein Netz von Aktivitäten; siehe beispielsweise "Modeling Workflow", Dokumentennummer SH 19- 8241, IBM Corporation, 1996. Als eine weitere Information zu Workflow Management Systems, die in IBM-Vertriebsstellen erhältlich sind, ist eine noch besonders zu erwähnen: IBM MQSeries Concepts and Architecture, Dokumentennummer GH 12- 6285; IBM MQSeries Getting Started with Buildtime, Dokumentennummer SH 12-6286; IBM MQSeries Getting Started with Runtime, Dokumentennummer SH 12-6287. Dieses Netz von Aktivitäten, das Prozeßmodell, wird als gerichteter, azyk­ lischer, gewichteter, kolorierter Graph erstellt. Die Knoten des Graphen stellen die Aktivitäten oder Arbeitspositionen dar, die durchgeführt werden. Die Ränder des Graphen, die Steuersteckverbinder, beschreiben die potentielle Ausführungssequenz der Aktivitäten. Die Definition des Prozeßgraphen erfolgt über die IBM FlowMark Definition Language (FDL) oder den integrierten Grafikeditor. Die Laufzeitkomponente des Workflow Managers interpretiert den Prozeßgraphen und verteilt die Ausführung der Aktivitäten an die richtige Person am richtigen Ort, indem beispielsweise Aufgaben entsprechend der jeweiligen Person einer Arbeitsliste zugeordnet werden, wobei diese Arbeitsliste als digitale Daten innerhalb des Workflow- oder Prozeß- Management-Computersystem gespeichert ist.
In F. Leymann und W. Altenhuber: "Managing business processes as an information resource", IBM Systems Journal, Vol. 32 (2), 1994, ist die mathematische Theorie, die dem IBM FlowMark Produkt zugrunde liegt, beschrieben.
In D. Roller: "Verifikation von Workflows in IBM FlowMark", in J. Becker und G. Vossen (Hrsg.): "Geschaeftsprozessmodellierung und Workflows", International Thompson Publishing, 1995, ist die Bedingung und die Möglichkeit für die Verifikation von Workflows beschrieben. Des weiteren wird die Funktion der grafischen Animation zur Verifikation der Prozeßlogik vorgestellt wie sie im IBM FlowMark Produkt beschrieben ist.
Um ein computergestütztes Prozeß-Management-System zu imple­ mentieren, müssen zuerst die Geschäftsprozesse analysiert werden und dann ist als Ergebnis dieser Analyse ein Prozeßmodell als ein Netz von Aktivitäten zu erstellen, die dem Geschäftsprozeß entsprechen. Im IBM FlowMark Produkt werden die Prozeßmodelle nicht in ein ablauffähiges umgewandelt. Mit Laufzeit wird eine Instanz des Prozesses von dem Prozeßmodell erstellt, die sogenannte Prozeßinstanz. Diese Prozeßinstanz wird dann dynamisch von dem IBM FlowMark Produkt interpretiert.
Normalerweise führt ein Benutzer mit dem Workflow- Management-System über eine grafische Benutzerschnittstelle, die die von dem Benutzer durchzuführenden Aufgaben als Symbole darstellt, einen Dialog. Die Arbeit für eine bestimmte Aufgabe startet der Benutzer durch Doppelklicken auf das entsprechende Symbol, das seinerseits die Programmimplementierung der Aktivität startet.
Ein weiterer Technologiebereich ist die Technologie der Datenbankverwaltung. Die meisten Workflow-Systeme benutzen eine relationale Datenbank, um Informationen mit der Build- Time-Information zu verwalten, wie ihre Prozeßmodelle oder die Laufzeitinformation, wie der Status der Geschäftsprozesse. WFMSs nehmen deutlich an Komplexität und verwalteten Daten zu: immer mehr Geschäftsprozesse sind in WFMSs zu implementieren, was in einer deutlich größeren Anzahl von Prozeßmodellen resultiert, die von WFMSs zu bearbeiten sind; auch die Anzahl der kooperierenden WFMSs, d. h. der Grad der Verteilung verzeichnet einen dramatischen Anstieg usw. Um diesen neuen Anforderungen gerecht zu werden, muß die Interoperation von WFMS und des zugrundeliegenden Datenbankverwaltungssystems (Database Management System) (DBMS) verbessert werden. Spezifische Fragen sind die Fragen nach Gleichzeitigkeit, Parallelität und Verfügbarkeit.
Es müssen Techniken wie Hotpooling und Application-Server- Clustering angeboten werden, um Leistung und Verfügbarkeit zu verbessern. Es wurde jedoch noch kein Verfahren vorgeschlagen, um die Leistung über die Interoperation der WFMSs und der zugrundeliegenden Datenbankverwaltungssysteme (DBMS) zu verbessern. Außerdem sind die WFMSs aus dem Stand der Technik nicht in der Lage, den Konflikt zwischen dem verteilten Verfahren dieser WFMSs selbst und der zentralen Annäherung der DBMS zu reduzieren. Dieser Konflikt spitzt sich mit zunehmender Datenbankgröße immer mehr zu.
1.3 Ziel der Erfindung
Ziel der Erfindung ist es, die Zusammenarbeit der WFMSs und der zugrundeliegenden DBMS zu verbessern.
2. Zusammenfassung und Vorteile der Erfindung
Die Ziele der Erfindung werden durch Anspruch 1 gelöst.
Die Erfindung bezieht sich auf Mittel, um einen Teil der zentralen Systemdatenbank (system-repository) eines Workflow-Management-Systems (WFMS) oder eines Systems mit vergleichbarer Funktionalität, das von einem Datenbankverwaltungssystem (DBMS) in einer Datenbank gehalten werden muß, zu definieren. Das WFMS enthält ein oder eine Vielzahl von WFMS Instanzen, die in einem oder in einer Vielzahl von Computersystemen ausgeführt werden. Das WFMS enthält wenigstens ein Prozeßmodell. Die aktuelle Lehre empfiehlt, den Teil der zentralen Systemdatenbank zu definieren, der in einer parallelen Datenbank gehalten werden muß. Es wird außerdem empfohlen, daß die zur Durchführung notwendigen Definitionsmittel in den WFMS Konfigurationsspezifikationen, wie beispielsweise in diesem Prozeßmodell, enthalten sind.
Die Einführung der parallelen Datenbanktechnologie in die Workflow-Management-Systeme erlaubt letzteren, den steigenden Anforderungen und Erwartungen zu entsprechen. Die Speicherung von Teilen dieser zentralen System-Datenbank in parallelen Datenbanken führt zu deutlichen Verbesserungen in bezug auf Parallelität, Gleichzeitigkeit und Verfügbarkeit. Parallele Datenbanken ermöglichen es, gleichzeitig an Teilen von Daten zu arbeiten, und die Zeit, die für die Operation benötigt wird, auf eine verwaltbare Größe zuzuschneiden. Unterteilte Tabellen ermöglichen es einem Programm, gleichzeitig an Teilen mit Daten zu arbeiten, während der gleichzeitige Zugriff auf sonstige Programme in anderen Plattenspeicherbereichen erlaubt wird. Daten, auf die häufiger zugegriffen wird, können von den restlichen Daten getrennt und in einem eigenen Plattenspeicherbereich abgelegt werden und einen anderen Gerätetyp benutzen. Durch eine einzelne Abfrage in einer unterteilten Datenbank können mehrere parallele Operationen ausgelöst werden. Diese kleineren Abfragen laufen gleichzeitig in mehreren Pro­ zessoren ab, die parallel auf die Daten zugreifen. Dadurch reduziert sich die abgelaufene Zeit für eine Abfrage.
Da die Definitionsmittel im Prozeßmodell enthalten sind, wird eine sehr hohe Empfindlichkeit erreicht. Auf der Basis von individuellen Prozeßmodellen und einzelnen Tabellen kann mit der aktuelle Lehre festgelegt werden, ob die Tabellen der zentralen System-Datenbank zu parallelisieren sind oder nicht.
Insbesondere die Einführung der parallelen, relationalen Inter-Partition-Datenbanktechnologie, gemäß einem weiteren Ausführungsbeispiel der aktuellen Erfindung, bietet in bezug auf Parallelität, Gleichzeitigkeit und Verfügbarkeit die größten Vorteile. Diese Art der parallelen Datenbanktechnologie erlaubt eine optimale Nutzung von parallelen Prozessoren. Außerdem kann diese einfach mit allen anderen Arten parallelen Verarbeitungsverfahren wie Multi-Taskbetrieb und intra-parallele Datenbanktechnologie kombiniert werden.
Gemäß einem weiteren Ausführungsbeispiel der aktuellen Erfindung enthält dieser Teil der zentralen System-Datenbank wenigstens eine Tabelle mit einer Sequenz von Attributen, wobei die Tabelle einen oder mehrere Datensätze mit Sequenzen von Attributwerten behält. In dieser Umgebung enthalten die Definitionsmittel erste Definitionsmittel, um wenigstens eines dieser Attribute als Partitionierungscode von dieser Tabelle anzugeben, der von DBMS benutzt wird, um dieser Datensatz in einer Partition zu behalten, die von dem Attributwert dieses Partitionierungscodes für parallelen Datenbankzugriff gekennzeichnet wird. Zusätzlich oder anstatt enthalten diese Definitionsmittel zweite Definitionsmittel, um wenigstens ein zusätzliches Attribut als Partitionierungscode von dieser Tabelle anzugeben.
Basierend auf diesem zusätzlichen Funktionsmerkmal wird es möglich, ein bereits vorhandenes Tabellenattribut als Parti­ tionierungscode zu benutzen oder ein zusätzliches Attribut zu Partitionierungszwecken zu benutzen.
Weitere Vorteile werden erreicht, indem die Systemidentifikation dieser WFMS Instanzen als Partitionierungscode oder die Erstellungszeit von diesem Datensatz als Partitionierungscode benutzt wird.
Diese Attribute resultieren in idealen Partitionierungscodes, da dieselbe WFMS Systemidentifikation oder ähnliche Zeitwerte ein inhärentes Verhältnis zwischen den Einträgen angeben, mit denen es möglich ist, unabhängige Aktivitäten in bezug auf den Datenbankzugriff zu trennen, der in optimaler Parallelität resultiert.
Gemäß einem weiteren Ausführungsbeispiel der aktuellen Erfindung wird empfohlen, einen Partitionierungscode für eine oder mehrere Tabellen anzugeben, die dieses Prozeßmodell enthalten bzw. für eine oder mehrere Tabellen, die Ausführungsinstanzen von diesem Prozeßmodell enthalten bzw. für eine oder mehrere Tabellen, die eine Prüfspur (audit-trail) von diesem Prozeßmodell enthalten bzw. für eine oder mehrere Tabellen, die Arbeitspositionen bezogen auf Ausführungsinstanzen von diesem Prozeßmodell enthalten. Alle diese Tabellen sind Ziele von sehr starken Zugriffen. Deshalb verbessern parallelisierte Zugriffsfähigkeiten bezogen auf diese Tabellen die Vorteile der aktuellen Erfindung.
Die Ziele der Erfindung werden durch Anspruch 9 gelöst. Die Erfindung bezieht sich auf ein Workflow-Management-System (WFMS) oder auf ein System von vergleichbarer Funktionalität, das einen Teil der zentralen System- Datenbank von diesem WFMS in einer Datenbank mittels eines Datenbankverwaltungssystems (DBMS) behält. Gemäß der Erfindung enthält dieses WFMS ein oder eine Vielzahl von WFMS-Instanzen in einem oder in einer Vielzahl von Computersystemen. Dieses WFMS enthält wenigstens ein Prozeßmodell und behält diesen Teil der zentralen System- Datenbank in einer parallelen Datenbank.
Die oben erwähnten Vorteile finden ebenfalls auf dieses wei­ tere Ausführungsbeispiel Anwendung.
3. Kurzbeschreibung der Zeichnungen
Fig. 1 zeigt eine vereinfachte Struktur von einem solchen WFMS, das eine Vielzahl von WFMS Instanzen und ihre Interoperation mit einer DBMS enthält, die die zentrale System-Datenbank des WFNS in einer Datenbank speichert.
Fig. 2 zeigt eine einzelne logische Tabelle, die als Satz partitionierter Tabellen gespeichert wird.
Fig. 3 zeigt die Konzeptionsstruktur eines Datenbankverwaltungssystems, das parallele Datenbanken benutzt, die verschiedenen Clients den Eindruck eines einzelnen logischen Datenbankverwaltungssystem geben.
Fig. 4 faßt ein WFMS gemäß der aktuellen Erfindung zusam­ men, das Teile der Tabellen speichert, die die zentrale System-Datenbank in einer parallelen Datenbank bilden, die die logische Ansicht eines einzelnen Datenbankverwaltungssystem mit Bezug auf die verschiedenen WFMS Instanzen bietet. Durch die Nutzung der inter-parallelen Datenbanktechnologie werden die parallelisierten Teile der System- Datenbank in physisch unterschiedlichen Partitionen gespeichert, die ein Maximum an Parallelität, Gleichzeitigkeit und Verfügbarkeit bieten.
4. Beschreibung des bevorzugten Ausführungsbeispiels
Die aktuelle Erfindung ist auf dem Workflow-Management- System FlowMark von IBM aufgebaut. Selbstverständlich kann statt dessen ein anderes WFMS benutzt werden. Die aktuelle Lehre kann auch auf eine andere Systemart angewendet werden, die WFMS Funktionalitäten nicht als separates WFMS bietet sondern innerhalb einer anderen Systemart.
4.1 Einführung in die Workflow-Management-Systeme (WFMS)
Es folgt eine kurze Ausführung zu den Basiskonzepten eines Workflow-Management-Systems, das auf dem WFMS FlowMark von IBM basiert.
Vom Gesichtspunkt eines Unternehmens aus wird die Verwaltung von Geschäftsprozessen zunehmend wichtiger: Geschäftsprozesse oder der Geschäftsprozeß zur kurzen Kontrolle, welches Teil der Arbeit von wem durchgeführt wird, und welche Betriebsmittel für diese Arbeit eingesetzt werden, d. h. ein Geschäftsprozeß beschreibt, wie ein Unternehmen seine Geschäftsziele erreichen wird. Ein WFMS kann beides unterstützen, das Modellieren der Geschäftsprozesse und ihre Ausführung.
Die Modellierung eines Geschäftsprozesses als syntaktische Einheit auf eine Art und Weise, die direkt von einem Softwaresystem unterstützt wird, ist ausgesprochen wünschenswert. Das Software-System kann außerdem auch als Interpreter arbeiten, der hauptsächlich als Input eines solchen Modells dient. Das Modell, ein Prozeß- oder Workflow-Modell, kann dann die Instanz bilden, und die einzelne Sequenz der Arbeitsschritte, die von dem Kontext der Instanzbildung (instantiation) des Modells abhängen, können festgelegt werden. Ein solches Modell eines Geschäftsprozesses kann als Schablone für eine Kategorie ähnlicher Prozesse erkannt werden, die innerhalb eines Unternehmens ausgeführt werden. Es ist ein Schema, das alle möglichen Ausführungsvarianten einer bestimmten Art von Geschäftsprozeß beschreibt. Eine Instanz eines solchen Modells und seine Interpretation stellt einen individuellen Prozeß dar, d. h. eine konkrete, kontextabhängige Ausführung von einer Variante, die von dem Modell vorgeschrieben wird. Ein WFMS erleichtert die Verwaltung von Geschäftsprozessen. Es liefert ein Mittel, um Modelle der Geschäftsprozesse zu beschreiben (Erstellungszeit), und es steuert Geschäftsprozesse, die auf einem zugehörigen Modell (Laufzeit) basieren. Das Meta-Modell von dem WFMS FlowMark von IBM, beispielsweise die syntaktischen Elemente, die zur Beschreibung der Geschäftsprozeßmodelle bereitgestellt werden und die Bedeutung und Interpretation dieser syntaktischen Elemente ist nachstehend beschrieben.
Ein Prozeßmodell ist eine komplette Darstellung eines Prozesses, der ein Prozeßdiagramm und die Einstellungen enthält, die die Logik hinter den Komponenten des Diagramms definieren. Mittels verschiedener Dienste, die von FlowMark bereitgestellt werden, werden diese Erstellungszeit- Definitionen von den Prozeßmodellen in Prozeßschablonen umgewandelt, die von FlowMark mit Laufzeit genutzt werden. Zu den wichtigen Komponenten eines FlowMark Prozeßmodells gehören:
Prozesse
Aktivitäten
Blöcke
Control Flows
Konnektoren
Daten-Container
Datenstrukturen
Bedingungen
Programme
Personal
Es werden im folgenden nicht alle diese Elemente beschrieben.
Unter diesem Hintergrund ist ein Prozeß, der von einem Prozeßmodell innerhalb FlowMark modelliert wird, eine Sequenz von Aktivitäten, die abgeschlossen werden müssen, damit die Aufgabe erfüllt wird. Der Prozeß ist das Element in der höchsten Ebene eines FlowMark Workflow-Modells. In einem FlowMark Prozeß kann folgendes definiert werden:
  • - Wie die Arbeit von Aktivität zu Aktivität abgearbeitet wird.
  • - Welche Personen führen Aktivitäten aus und welche Pro­ gramme benutzen sie.
  • - Ob irgendwelche andere Prozesse, sogenannte Unterpro­ zesse, in dem Prozeß verschachtelt sind.
Aktivitäten sind die fundamentalen Elemente des Meta- Modells. Eine Aktivität stellt eine Geschäftsaktion dar, die unter einem bestimmten Gesichtspunkt eine eigenständige semantische Entität darstellt. Bei dem Modell des Geschäftsprozesses kann es eine Feinstruktur geben, die dann ihrerseits über ein Modell dargestellt wird, oder ihre Einzelheiten sind von einem Modellierungsgesichtspunkt eines Geschäftsprozesses aus gesehen, überhaupt nicht von Interesse. Die Verfeinerung von Aktivitäten über Prozeßmodelle ermöglichen sowohl das Modellieren von Ge­ schäftsprozessen von unten nach oben als auch von oben nach unten. Aktivitäten, die ein Schritt in einem Prozeß sind, stellen einen Teil der Arbeit dar, die die zugewiesene Person abschließen kann, indem sie ein Programm oder einen anderen Prozeß startet. In einem Prozeßmodell gehört die folgende Information zu jeder Aktivität:
  • - Welche Bedingungen müssen erfüllt werden, bevor die Aktivität beginnen kann.
  • - Ob die Aktivität manuell von einem Benutzer gestartet werden muß oder automatisch starten kann.
  • - Welche Bedingung angibt, daß die Aktivität abgeschlossen ist.
  • - Ob die Steuerung die Aktivität automatisch verlassen kann, oder ob die Aktivität zuerst als abgeschlossen von einem Benutzer bestätigt werden muß.
  • - Wieviel Zeit für den Abschluß der Aktivität gewährt wird.
  • - Wer für den Abschluß der Aktivität verantwortlich ist.
  • - Welches Programm oder welcher Prozeß benutzt wird, um die Aktivität abzuschließen.
  • - Welche Daten als Input in die Aktivität und als Output von der Aktivität benötigt werden.
Ein FlowMark Prozeßmodell besteht aus folgenden Aktivitätsarten:
Programmaktivität: Hat ein Programm, das zur Ausführung zugewiesen wurde. Das Programm wird aufgerufen, wenn die Aktivität startet. In einem vollautomatisierten Workflow führt das Programm die Aktivität aus, ohne daß der Eingriff eines Benutzers erforderlich ist. Andernfalls muß der Benutzer die Aktivität starten, indem er diese aus einer Laufzeit-Arbeitsliste auswählt. Der Output von Programm kann in der Ausgangsbedingung (Exit) für die Programmaktivität und für die Übergangsbedingungen in andere Aktivitäten benutzt werden.
Prozeßaktivität: Hat ein (Unter-)Prozeß, der zur Ausführung zugewiesen wurde. Der Prozeß wird aufgerufen, wenn die Aktivität startet. Eine Prozeßaktivität stellt einen Weg dar, um einen Satz Aktivitäten wiederzuverwenden, der den verschiedenen Prozessen gemein ist. Der Output von dem Prozeß kann in der Ausgangsbedingung für die Prozeßaktivität und für die Übergangsbedingungen in andere Aktivitäten benutzt werden.
Der Flow of Control, d. h. der Control Flow durch einen ablaufenden Prozeß bestimmt die Sequenz, in der Aktivitäten ausgeführt werden. Der FlowMark Workflow-Manager navigiert einen Pfad durch den Prozeß, der von der Bewertung in wahren Start-, Ausgangs- und Übergangsbedingungen bestimmt wird.
Die Ergebnisse, die im allgemeinen von der Arbeit erzeugt werden, die von einer Aktivität dargestellt wird, werden in einem Output-Container plaziert, der zu jeder Aktivität gehört. Da es eine Aktivität im allgemeinen erforderlich macht, auf Output-Container von anderen Aktivitäten zuzugreifen, gehört jede Aktivität ebenfalls zu einem Input- Container. Mit Laufzeit stellen die aktuellen Werte für die formellen Parameter, die den Input-Container einer Aktivität bilden, den aktuellen Kontext von einer Instanz der Aktivität dar. Jeder Daten-Container wird von einer Datenstruktur definiert. Eine Datenstruktur ist eine geordnete Liste von Variablen, Mitglieder genannt, die einen Namen und einen Datentyp haben. Die Datenkonnektoren repräsentieren die Übertragung von Daten von Output- Containern an Input-Container. Wenn ein Datenkonnektor auf einen Output-Container trifft, und die Datenstrukturen der beiden Container genau übereinstimmen, stellt der FlowMark Workflow-Manager die Daten automatisch dar.
Konnektoren verknüpfen die Aktivitäten in einem Prozeßmodell. Mit den Konnektoren definiert man die Sequenz der Aktivitäten und die Übertragung von Daten zwischen den Aktivitäten. Da die Aktivitäten nicht beliebig ausgeführt werden können, werden sie über Kontrollkonnektoren miteinander verbunden. Ein Kontrollkonnektor kann eine gerichtete Kante zwischen zwei Aktivitäten sein. Die Aktivität am Endpunkt des Steckverbinders kann nicht starten, bevor die Aktivität am Startpunkt des Konnektors beendet ist (erfolgreich). Kontrollkonnektoren modellieren somit den potentiellen Flow of Control in einem Geschäftsprozeßmodell. Standard-Konnektoren geben an, wo der Flow of Control sein sollte, wenn die Übergangsbedingung von keinem anderen Kontrollkonnektor eine mit wahr bewertete Aktivität verläßt. Standard-Konnektoren ermöglichen es dem Workflow-Modell, mit den außergewöhnlichen Ereignissen fertig zu werden.
Datenkonnektoren geben den Datenfluß in einem Workflow- Modell an. Ein Datenkonnektor stammt von einer Aktivität oder einem Block und hat als Ziel eine Aktivität oder einen Block. Man kann angeben, daß Output-Daten in ein Ziel oder in eine Vielzahl von Zielen gehen müssen. Ein Ziel kann mehr als einen ankommenden Datenkonnektor haben.
Bedingungen sind Mittel, mit denen der Flow of Control in einem Prozeß angegeben werden kann. In FlowMark Prozeßmodellen können logische Ausdrücke definiert werden, die von FlowMark mit Laufzeit definiert werden, um zu bestimmen, ob eine Aktivität starten oder enden kann, und ob die Steuerung zur nächsten Aktivität übergehen kann.
Neben der Beschreibung des potentiellen Flow of Control und der Daten zwischen Aktivitäten kann ein Geschäftsprozeßmodell auch die Beschreibung des Aktivitätenflusses an sich zwischen "Betriebsmitteln" berücksichtigen, die normalerweise die Teile der Arbeit ausführen, die von jeder Aktivität dargestellt werden. Ein Betriebsmittel kann als ein bestimmtes Programm, eine Person, eine Rolle oder eine Organisationseinheit angegeben werden. Mit Laufzeit werden Aufgaben in Anforderungen an be­ stimmte Personen aufgelöst, um die bestimmten Aktivitäten auszuführen, die in den Arbeitspositionen für diese Person resultieren. Personalzuordnungen sind Mittel, um Aktivitäten an die richtigen Leute in der Sequenz zu verteilen, die von dem Control-Flow-Aspekt eines Geschäftsprozeßmodells vorgeschrieben wird. Jede Aktivität in einem Prozeß wird einem oder mehreren Mitgliedern des Personals, die in der FlowMark Datenbank definiert sind, zugewiesen. Ob eine Aktivität manuell vom Benutzer oder automatisch vom FlowMark Workflow-Manager gestartet wird, ob der Dialog mit dem Benutzer erforderlich ist, um den Vorgang automatisch abzuschließen, es muß in jedem Fall ein Mitglied des Personals dieser Arbeit zugewiesen werden. FlowMark Personaldefinitionen erfordern mehr, als die Leute in Ihrem Unternehmen in der FlowMark Datenbank zu kennzeichnen. Jeder definierten Person können Sie eine Ebene, eine Abteilung und mehrere Rollen zuweisen. Diese Attribute können mit Laufzeit benutzt werden, um Aktivitäten Leuten mit passenden Attributen zuzuordnen.
Die Prozeßdefinition enthält die Modellierung von Aktivitäten, Kontrollkonnektoren zwischen den Aktivitäten, Input-/Output-Container und Datenkonnektoren. Ein Prozeß wird als ein gerichteter, azyklischer Graph mit den Aktivitäten als Knoten und den Kontroll-/Datenkonnektoren als Kanten des Graphen dargestellt. Der Graph wird über einen integrierten, Ereignis-gesteuerten CUA-kompatiblen Grafikeditor manipuliert. Die Daten-Container werden als bezeichnete Datenstrukturen angegeben. Diese Datenstrukturen selbst werden über die DataStructure Definitionseinrichtung angegeben.
Alle Datenstrukturen, die als Schablonen für die Container mit Aktivitäten und Prozessen genutzt werden, sind über die DataStructure Definitionsstruktur definiert. Datenstrukturen sind Namen und sind als elementare Datentypen, wie beispielsweise Gleitkomma, Ganzzahl oder Zeichenkette, und als Referenzen auf vorhandene Datenstrukturen definiert. Das Verwalten von Datenstrukturen als separate Entitäten hat den Vorteil, daß alle Schnittstellen von Aktivitäten und ihre Implementierungen durchweg an einer Stelle verwaltet werden (ähnlich Header-Dateien in Programmiersprachen).
Alle Programme, die Programmaktivitäten implementieren, werden über die Program-Registration-Einrichtung definiert. Für jedes Programm ist der Name des Programms, seine Speicherstelle und die Zeichenkette zu seinem Aufruf registriert. Die Aufruf-Zeichenkette besteht aus dem Programmnamen und der Befehlskette, die an das Programm übertragen wird.
Bevor die Prozeßinstanzen erstellt werden können, muß das Prozeßmodell übersetzt werden, um die Korrektheit und die Vollständigkeit des Prozeßmodells sicherzustellen. Die übersetzte Version des Modells wird als Schablone benutzt, wenn eine Prozeßinstanz erstellt wird. Dies ermöglicht es, Änderungen am Prozeßmodell vorzunehmen, ohne daß die in Ausführung begriffenen Prozeßinstanzen beeinflußt werden. Eine Prozeßinstanz wird entweder über die graphische Schnittstelle oder über die aufrufbare Anwendungsprogrammierschnittstelle des Prozesses gestartet. Wenn ein Prozeß gestartet wird, sind die Startaktivitäten fixiert, die richtigen Leute festgelegt, und die Aktivitäten werden als Arbeitspositionen in die Arbeitsliste der ausgewählten Leute gesetzt. Wählt ein Benutzer die Arbeitsposition aus, d. h. die Aktivität, wird die Aktivität ausgeführt und aus der Arbeitsliste eines anderen Benutzers entfernt, dem die Aktivität zugeteilt wurde. Nachdem eine Aktivität ausgeführt wurde, wird ihre Ausgangsbedingung bewertet. Wird diese nicht erfüllt, wird die Ausführung der Aktivität neu geplant. Andernfalls werden alle ausgehenden Kontrollkonnektoren und die zugehörigen Übergangsbedingungen bewertet. Ein Kontrollkonnektor wird ausgewählt, wenn die Bedingung TRUE bewertet. Dann werden die Zielaktivitäten der ausgewählten Kontrollkonnektoren bewertet. Wenn ihre Startbedingungen wahr sind, werden sie in die Arbeitsliste der ausgewählten Leute gesetzt. Ein Prozeß wird als abgeschlossen betrachtet, wenn alle Endaktivitäten abgeschlossen wurden. Um sicherzustellen, daß alle Endaktivitäten beendet sind, wird eine Dead-Path-Elimination durchgeführt. Dabei werden alle Kanten im Prozeßgraphen ent­ fernt, die niemals erreicht werden können, da die Übergangsbedingungen versagt haben. Alle Informationen über den aktuellen Status eines Prozesses werden in der Datenbank gespeichert, die von dem Server gehalten wird. Dies erlaubt die Vorwärts-Wiederherstellung im Fall von Systemabstürzen.
Normalerweise schreibt das Workflow-Management-System einen Audit-Trail. Dieser Audit-Trail enthält für jedes wichtige Ereignis einen Datensatz, beispielsweise den Start oder den Abschluß eines Prozesses oder einer Aktivität. Hauptzweck des Audit-Trails ist es, die Historie von der Ausführung einer Prozeßinstanz zu erfassen. Somit stellt ein Audit- Trail eine Art Ausführungsprotokoll der Prozeßmodelle dar, die von WFMS ausgeführt werden. Die meisten Workflow- Management-Systeme speichern den Audit-Trail direkt in einer relationalen Datenbank.
Nachfolgend fassen wir einige der Felder zusammen, die in einem solchen Audit-Trail vorhanden sind. Die WFMSs schreiben für jedes eingetretene Ereignis einen solchen Audit-Trail.
Timestamp
Datum und Uhrzeit, an dem das Ereignis stattfand.
Ereignis
Art des Ereignisses, das dazu geführt hat, daß der Audit-Trail geschrieben wurde. Zu den typischen Ereignissen gehören der Start eines Prozesses, der Abschluß eines Prozesses, der Start einer Aktivität oder der Abschluß einer Aktivität. Auch irgendwelche Ereignisse, die während der Ausführung einer bestimmten Aktivität auftreten, sind Kandidaten für den Audit- Trail. In einem solchen Fall würde die Aktivität selbst einen Audit-Trail erzeugen. Es ist daher für die aktuelle Erfindung nicht wichtig, welche Komponente das Ereignis erzeugt und somit den Audit-Trail-Datensatz auslöst. Dies kann von dem WFMS selbst oder einem anderen Programm ausgeführt werden.
Benutzer
Identifikation des Benutzers, der das Ereignis ausgeführt oder aufgerufen hat.
Prozeßmodell-Name
Name des Prozeßmodells. Jedes Prozeßmodell wird nur durch diesen Namen identifiziert.
Prozeßinstanz-Name
Identifikation der Prozeßinstanz. Jeder Prozeß wird nur durch diesen Namen identifiziert.
Aktivitätsname
Name der Aktivität. Jede Aktivität innerhalb eines Prozeßmodells wird nur durch den Namen identifiziert. Dieses Feld wird ausgefüllt, wenn das Ereignis mit einer Aktivität verbunden wird.
Zugehöriger Objektkennzeichner
Kennzeichnet nur das Objekt, das zu dem Ereignis gehört. Es könnte der Kennzeichner einer Arbeitsposition, einer aktiven Instanz oder der Prozeßinstanz sein. Dieser Kennzeichner kann benutzt werden, um mittels der Anwendungs­ programmierschnittstelle des Workflow-Managements auf das Objekt zuzugreifen.
Benutzerfeld
Enthält den Wert des Benutzerfelds. Benutzerfelder stellen einen Mechanismus bereit, um Import- Benutzerdaten, die zu einer Prozeßinstanz im Audit- Trail gehören, zu speichern. Ein typisches Beispiel ist eine Kundennummer oder der Betrag eines Kredits.
4.2 Die Rolle der Datenbankverwaltungssysteme in den WFMSs
Der MQSeries Workflow ist ein Workflow-System, das auf einer relationalen Datenbanktechnologie und dem Einreihen in die Nachrichtenwarteschlange basiert. Die relationale Datenbank wird benutzt, um alle Daten, die dauerhaft sein sollen, wie beispielsweise Geschäftsprozesse, zu speichern.
Fig. 1 zeigt eine vereinfachte Struktur eines solchen Work­ flow-Systems und seine Interoperation mit einem DBMS. Die aktuelle Spezifikation folgt der Struktur wie implementiert mittels MQSeries Workflow, obwohl dieser nur ein Beispiel sein soll und nicht den Bereich der aktuellen Erfindung begrenzen soll. Wie abgebildet, besteht das Workflow-System aus einem Satz individueller Systeme, den verschiedenen WFMS-Instanzen, die mit den Clients (101 bis 103) verbunden sind. Für einen Endbenutzer scheint dieses Netzwerk von kooperierenden WFMS Instanzen ein einzelnes logisches WFMS zu sein. Ein bestimmter Prozessor (110) oder (120) kann eines oder mehrere Workflow-Systeme (111 bis 113) oder (121 bis 123) halten. Jedes System besteht aus einem Hotpool mit einem oder mehreren zustandlosen Servern, die die verschiedenen Anforderungen verarbeiten, zum Beispiel das Starten eines Prozesses oder das Ausführen einer Aktivität. Jeder Server ist mit dem relationalen Datenbankver­ waltungssystem (130) verbunden, das die zentrale Datenbank des Workflow-Systems verwaltet. MQSeries Workflow nennt diese Kombination aus multiplen Systemen, die dieselbe Datenbank gemeinsam benutzen, eine Systemgruppe. Wie aus dieser Systemstruktur bereits ersichtlich ist, kann das Halten der zentralen Datenbank, zum Engpaß in bezug auf Gleichzeitigkeit, Parallelität und Verfügbarkeit werden, da die zentrale System-Datenbank der Brennpunkt des gesamten Datenverkehrs ist; dieser Konflikt ist eine Folge des verteilten Verfahren von diesem WFMS auf der einen Seite und dem zentralen Verfahren des DBMS auf der anderen Seite.
Die zentrale Datenbank des Workflow-Systems enthält nicht nur die Build-Time-Information, zum Beispiel Prozeßmodelle, Organisationsdaten und Merkmale der aufzurufenden Programme, sondern auch Laufzeitinformationen, zum Beispiel Prozeßinstanzen, Audit-Trail und die Arbeitspositionen, die den einzelnen Benutzern des Workflow-Systems zugeordnet wurden. Die meisten der Daten in der zentralen Datenbank sind Laufzeitinformationen; die Größe der Build-Time- Information kann fast vernachlässigt werden, wobei die Erstellung der Laufzeitinformation, insbesondere des Audit- Trails zum Haupt-Engpaß wird. Die Größe der Laufzeitinformation hängt von mehreren Faktoren ab: der Anzahl der Prozeßinstanzen, der Umfang der Audit-Trail- Information, die geschrieben wurde, und der Anzahl der Arbeitspositionen, die die Benutzer behalten, selbst nachdem sie diese verarbeitet haben, tragen wesentlich zur Gesamtgröße bei.
Die zentrale Datenbank besteht aus einem Satz Tabellen (falls ein relationales Datenbanksystem benutzt wird). Das Layout der Tabellen reflektiert die Struktur der Informationen, die sie behalten.
Die Prozeßinformation wird beispielsweise in mehreren Tabellen behalten, die die Struktur des Meta-Modell- Prozesses widerspiegeln. Es gibt beispielsweise eine Tabelle, die für jede Prozeßinstanz einen Eintrag behält, und eine Tabelle, die für jede Aktivität einen Eintrag behält. Alle Konstrukte, zum Beispiel Aktivitäten und Prozesse, werden durch einen einzigartigen Objektkennzeichner identifiziert, der von dem Workflow- System erzeugt wird. Diese Objektkennzeichner werden benutzt, um die Tupels in den einzelnen Tabellen zu verknüpfen. Das ist die Art und Weise, auf die beispielsweise die Tupels in der Aktivitätstabelle mit den Tupels in der Prozeßtabelle verknüpft werden.
Der Audit-Trail auf der anderen Seite ist eine einfache Ta­ belle, in der die einzelnen Einträge geschrieben werden.
Alle Informationen über einen Prozeß müssen wenigstens so lange behalten werden, bis der Prozeß beendet ist. Es kann jedoch notwendig sein, die Information über einen längeren Zeitraum zu behalten. Laut den gesetzlichen Vorschriften müssen diese Informationen manchmal über mehrere Jahre aufbewahrt werden. Dadurch wächst die zentrale Datenbank des Workflow-Systems an, wodurch die Leistung erheblich beeinträchtigt wird. Diese Leistungsbeeinträchtigung kann beispielsweise minimiert werden, indem das Workflow-System ältere, abgeschlossene Prozeßinstanzen und Audit-Trails archiviert oder aufteilt. Doch dann müssen diese Archive vom Workflow-System so verwaltet werden, daß das Workflow-System in der Lage ist, Anfragen zu beantworten, die in den archivierten Informationen enthalten sind. Im Fall einer solchen Anfrage muß das Workflow-System mehrere Anfragen ausgeben: eine an die zentrale Datenbank und eine oder mehrere an die Archive und dann die Anfrageergebnisse in einem einzelnen Anfrageergebnis zusammenfassen, anstatt, daß die Gesamtaktivität solcher Verfahren zu einem weiteren Anstieg führen würde. Abgesehen davon, daß die Implementierung der Archivierung nicht unbedeutend ist, ist die Leistung im allgemeinen nur tolerierbar, wenn diese Anfragen nur gelegentlich auftreten.
Die aktuelle Erfindung versucht daher, die Leistung von parallelen Datenbanken zu nutzen, um selbst große, zentrale Datenbanken des Workflow-Systems zu verwalten, und die Ansicht einer einzelnen logischen Datenbank bereitzustellen und parallele und gleichzeitige Zugriffe auf die verschiedenen Teile der zentralen System-Datenbank eines WFMS vorzusehen.
4.3 Parallele Datenbanken
Moderne relationale Datenbankverwaltungssysteme, zum Beispiel DB2 Universal Database Version 5 von IBM (siehe beispielsweise D. Chamberlin, A Complete Guide to DB2 Universal Database, Morgan Kaufmann Publishers, 1998), bieten die Fähigkeit, parallele Datenbanken zu unterstützen. Eine parallele Datenbank ist eine Datenbank, in der mehrere Aktionen gleichzeitig stattfinden können.
Die Parallelität ist seit vielen Jahren in relationalen Datenbanken vorhanden. Diese erlaubten, daß viele Benutzer mit mehreren Datenbanken verbunden sind, wobei jedoch jeder Benutzer meint, er sei der einzige, der mit relationalen Datenbankverwaltungssystem arbeitet. Dies wird durch Standardtechniken des Time-Sharing erreicht; d. h. jedem Benutzer einen bestimmten Anteil der Prozessorzeit zu geben, damit diese bzw. dieser seine Arbeit tun kann. Jeder Benutzer ist einem Betriebssystemprozeß zugeordnet, d. h. höchstens ein Prozessor kann mit der Durchführung einer Arbeit für eine bestimmte Person belegt sein. Zur Unterscheidung wird ein solches Datenbanksystem als serielles System bezeichnet, und die Parallelität wird durch den Multitask-Betrieb eingeführt.
In einem parallelen System kann eine Datenbank in mehrere separate Teile aufgeteilt werden, sogenannte Partitionen oder Knoten. Jede Tabelle in einer Datenbank kann in Partitionen aufgeteilt werden. Jede Partition kann in einem separaten Gerät ausgeführt werden. Sie hat ihr eigenes Protokoll und ihren eigenen Satz Indexe.
Es können zwei Arten von Parallelitäten unterschieden und auf die Verarbeitung eines SQL-Befehls angewendet werden. Die Intra-Partitions-Parallelität bezieht sich auf gleichzeitige Prozesse in einer einzelnen Partition, während sich die Inter-Partitions-Parallelität auf gleichzeitige Prozesse in mehreren Partitionen bezieht. Beide Arten der Parallelität verhalten sich orthogonal zueinander, d. h. beide Techniken können miteinander kombiniert und parallel angewendet werden.
Die Intra-Partitions-Parallelität wird normalerweise in symmetrischen Multiprozessoren (SMP) verwendet, in denen mehrere Prozessoren Speicher und Platten gemeinsam benutzen. Die Inter-Partitions-Parallelität wird komplett vom Datenbankverwaltungssystem verwaltet und erfordert keine besondere Aktion auf der Benutzerseite mit Ausnahme, daß dem Datenbankverwaltungssystem gesagt werden muß, daß es die Intra-Partitions-Parallelität benutzen muß.
Die Inter-Partitions-Parallelität arbeitet mit einem Satz Prozessoren, von denen jeder seinen eigenen Speicher und seine eigenen Platten hat. Die einzelnen Prozessoren benutzen nichts gemeinsam. Diese Hardware-Konfiguration wird als Shared-Nothing-System bezeichnet. Einige oder alle Prozessoren können selbst symmetrische Multiprozessoren sein, die dann die Intra-Partitions-Parallelität benutzen können. Somit können Intra-Partitions-Parallelität und Inter-Partitions-Parallelität als orthogonale Konzepte kombiniert werden. Ein typisches Gerät, das diese Architektur enthält, ist der IBM RS6000 SP2. Die verschiedenen Knotenprozessoren kommunizieren untereinander über das interne Hochgeschwindigkeitsnetz des Clusters.
Jede der verschiedenen Partitionen, die DB2 UDB einen Knoten nennt, wird einem einzigartigen Kennzeichner zugeordnet. Bei DB2 UDB ist dies eine Ganzzahl, die mit 0 beginnt. Jeder Knoten wird dann dem Prozessor zugeordnet, der die Partition behält. Die Tabellen, die den verschiedenen Partitionen zugeordnet werden (sogenannte partitionierte Tabellen), müssen jeweils einen Partitionierungscode haben, der bestimmt, welche Reihen der Tabelle unter den Partitionen verteilt werden. Die Werte des Partitionierungscodes werden dann mittels einer Hash-Funktion in dem Partitionssatz dargestellt. Diese Hash-Funktion wird von dem Datenbankverwaltungssystem geliefert.
Eine solche Situation ist in Fig. 2 dargestellt. Eine einzelne Logiktabelle (200) ist als ein Satz partitionierter Tabellen (201) und (202) gespeichert. Die Partitionierungscodes der einzelnen Datensätze werden benutzt, um festzulegen, welcher Datensatz, in welcher Partitionstabelle zu speichern ist. Im Beispiel von Fig. 2 sind Datensätze mit Partitionierungscodes im Bereich von 1 bis 10 (siehe 205 bis 206) in der Partition des Knotens 0 (201) gespeichert, während Datensätze mit Partitionierungscodes im Bereich von 71 bis 99 (siehe 207 bis 208) in der Partition des Knotens 1 (202) gespeichert sind. Der Zugriff auf die Logiktabelle (200) resultiert in inter-parallelem Zugriff auf die einzelnen Partitionen (201) bis (202).
Ein Datenbank-Client läßt sich mit einem der Knoten verbinden. Dieser Knoten, der Koordinator-Knoten, ist für alle Client-Anforderungen verantwortlich und verteilt diese Anforderungen an die einzelnen Knoten. Aus der Sicht eines Benutzers besteht daher kein Unterschied, ob ein SQL-Abruf von einer seriellen oder von einer parallelen Datenbank verarbeitet wird.
Fig. 3 zeigt die konzeptionelle Struktur eines solchen Datenbankverwaltungssystems, das parallele Datenbanken benutzt. Ein einzelnes, logisches Datenbankverwaltungssystem (301) bietet Zugriff auf verschiedene Datenbank-Clients (305) bis (307). Das Datenbankverwaltungssystem besteht derzeit aus einem Satz Knoten (302 bis 304) mit entsprechenden partitionierten Tabellen. Der Datenbank- Client (305) greift beispielsweise auf Knoten 1 (302) zu, während der Koordinator-Knoten für den Datenbank-Client den Ausdruck eines einzelnen logischen Datenbank­ verwaltungssystem erstellt.
4.4 Paralleler Datenbank-Support in WFMSs
Der Zweck der aktuellen Lehre ist es, den Inter- Parallelität-Support der parallelen Datenbanken für die WFMSs bereitzustellen (die zusätzliche Nutzung des orthogonalen Konzepts der Intra-Parallelität ist ohne Änderung der aktuellen Lehre möglich).
Die aktuelle Erfindung empfiehlt, den parallelen Datenbank- Support zu nutzen, indem die Tabellen der gesamten zentralen Datenbank des WFMS vorbereitet werden, d. h. die Laufzeit­ tabellen bzw. die Built-Time-Tabellen so zu nutzen, daß sie in mehrere Teile aufgeteilt werden können, die von dem zugrundeliegenden Datenbankverwaltungssystem als Partitionen behandelt werden können. Dies kann erreicht werden, indem zu allen relevanten Tabellen Spalten hinzugefügt und dann im Datenbankverwaltungssystem als Partitionierungscodes definiert werden, die zur Aufteilung der Tabellen dienen. Alle Tabellen, die Entitäten bilden, z. B. Prozesse, müssen diese hinzugefügte Spalte haben.
Durch die Benutzung des parallelen Supports des Datenbankverwaltungssystems wird die Leistung aufgrund der reduzierten Datenbankgröße, des reduzierten Konkurrenzbetriebs und der besseren Nutzung von CPUs verbessert. Die besten Leistungen werden erzielt, wenn eine Anforderung, die durch das Workflow-System erfolgt, das sich nur auf einen Knoten bezieht, genau auf diesen Knoten trifft. Die aktuelle Erfindung erreicht dieses Ziel, indem der Partitionierungscode enthalten ist, d. h. die Spalte, die in der WHERE-Klause der SQL-Befehle benutzt wurde, um die Tabelle in verschiedene Partitionen aufzuteilen.
Wie bereits erwähnt, sind die Prozeßinstanzen, der Audit- Trail und die Arbeitsliste der Benutzer ideale Kandidaten für die Nutzung des parallelen Datenbank-Supports. Diese Liste ist bei weitem nicht vollständig: es gibt sicherlich noch andere Kandidaten. Dies hängt von dem Meta-Modell ab, welches das Workflow-System implementiert. Es besteht auch kein Bedarf, die parallelen Datenbanken für alle Kandidaten zu nutzen. Sie sollten gerade für die Audit-Trail-Tabelle benutzt werden, eine Tabelle, die häufig genutzt wird. Die aktuelle Lehre stellt deshalb große Selektivität bereit, um zu entscheiden, welche der Tabellen zu parallelisieren sind.
Die aktuelle Erfindung führt zwei Verfahren ein, um die Spalten zu definieren, die helfen, die Aufteilung zu erreichen. In einem ersten Verfahren werden die internen Eigenschaften von den Tabellen der WFMS für die Erstellung von Partitionen benutzt. In einem zweiten Verfahren basiert die Erstellung von Partitionen auf den externen Eigenschaften. Interne Eigenschaften sind Eigenschaften, die im Workflow-System vorhanden sind und sich im allgemeinen auf Definitionen des WFMS als solches beziehen, wie beispielsweise Topologiedefinitionen. Deshalb enthalten die internen Eigenschaften mehr globale Definitionen, welche die Ausführung der Vielzahl von allen Prozeßmodellen steuern (sofern die Definitionen nicht von Spezifikationen in den einzelnen Prozeßmodellen aufgehoben werden). Externe Eigenschaften brauchen die Extradefinition vom Benutzer und sorgen so gegenüber der Verteilung unter den verschiedenen Partitionen/Knoten für eine bessere Steuerung. Die externen Eigenschaften enthalten somit alle Definitionen, die in dem einzelnen Prozeßmodell enthalten sein können, und die nur für ein spezifisches Prozeßmodell signifikant sind.
Unabhängig von dem derzeit ausgewählten Verfahren ist die fundamentale Idee der aktuellen Erfindung, die Definitionen, die für die Partitionierung der WFMS-Tabellen erforderlich sind, bereits in die einzelnen Prozeßmodelle aufzunehmen.
4.4.1 Interne Eigenschaften
Das Verfahren, die internen Eigenschaften von den Tabellen der WFMS zu benutzen, basiert auf der Tabellenstruktur in ihrer bisherigen Form, bei der die WFMS aus einer globalen Perspektive unabhängig von den einzelnen Prozeßmodellen, die vom WFMS ausgeführt werden, geführt und gesteuert werden. Dieses Verfahren wählt bereits verfügbare Tabellenattribute als Partitionierungscodes für die Parallelisierung aus.
Typische interne Eigenschaften sind die Erstellungs- /Startzeit eines Prozesses oder der Kennzeichner des Systems, das einen Prozeß erstellt hat. Andere könnten ebenfalls benutzt werden. Diese Eigenschaften sind genau des Prototyp der internen Eigenschaften. Trotzdem werden bestimmte Vorteile erreicht, indem genau diese Tabellenattribute als Partitionierungscode benutzt werden.
4.4.1.1 Startzeit
Jeder Prozeß ist mit einer Erstellungszeit/Startzeiteigen­ schaft verbunden, die, wenn der Prozeß erstellt/gestartet wird, in einen Tabelleneintrag geschrieben wird. Durch diese Eigenschaft können die Tabellen in Zeitrahmen aufgeteilt werden, beispielsweise Tage, Wochen, Monate usw. Die Benutzung eines Zeitattributs für Partitionierungszwecke basierend auf dem Zeitwert ist für Partitionstabellendatensätze geeignet, da ähnliche Zeitwerte auf ein inhärentes Verhältnis zwischen den Einträgen hinweisen.
4.4.1.2. System-Kennzeichner
In Fig. 1 ist die Systemstruktur des MQSeries Workflow und ihr Verhältnis zu den zugrundeliegenden Datenbankverwaltungssystemen abgebildet. In dieser Struktur wird jedes WFMS-System von einem WFMS-System-Kennzeichner identifiziert, der nur die WFMS-Instanzen angibt. Die aktuelle Lehre empfiehlt, diese Eigenschaft zu nutzen, um die Tabellen durch den System-Kennzeichner aufzuteilen. Diese Eigenschaft ist aus vielerlei Gründen eine ideale Eigenschaft, um die parallelen Datenbanken zu nutzen:
  • - Dem System, das einen Prozeß erstellt, ist dieser Prozeß eigen, bis der Prozeß beendet ist. Es gibt somit keinen Konkurrenzbetrieb in den Tabellen, die verschiedene Systeme gemeinsam benutzen; somit kann die Parallelisierung maximiert werden. Dies ist besonders für den Audit-Trail interessant, das es für jedes der Systeme eine eigene Partition geben wird.
  • - Jedes System kennt seinen Namen, d. h. den System-Kenn­ zeichner, ohne auf eine Datenbank zuzugreifen und kann deshalb den Namen in allen Zugriffen auf die Datenbank enthalten; d. h. in die WHERE-Klauseln der SQL-Befehle.
  • - Ein besonderes System könnte mit dem Knoten verbunden werden, der alle Laufzeitdaten dieses Systems behält.
4.4.1.3 Definitionen in den Topologiespezifikationen
Das folgende neue Konstrukt für die Spezifikation des parallelen Datenbank-Supports basierend auf den internen Eigenschaften ist eine Abbildung, wie der Support für parallele Datenbanken möglicherweise in der Flow- Definitionssprache des MQSeries Workflow ausgedrückt werden könnte.
Das Konstrukt definiert für die Systemgruppe "Stuttgart", d. h. eine Sammlung von WFMS-Systeminstanzen in einer Gruppe kombiniert und in einer Gruppe adressierbar, daß einige Tabellen aufgeteilt werden sollten und definiert für zwei Bereiche, wie dies erfolgen sollte. Die zweite Zeile zeigt ein Definitionskonstrukt, mit dem das WFMS informiert wird, daß die folgenden Tabellen in Partitionen aufgeteilt werden müssen. Die dritte und vierte Zeile reflektiert die Definitionskonstrukts, die im ersten Feld die Tabelle nennen, die zu partitionieren ist (d. h. zu parallelisieren ist); das zweite Feld definiert das Attribut von dem Wert, der sowohl von dem WFMS als auch von dem DBMS als Partitionierungscode benutzt wird. Mit Bezug auf das aktuelle Beispiel wird der Audit-Trail (AUDIT TRAIL) von der Systemidentifikation (SYSTEM ID) aufgeteilt (d. h. parti­ tioniert), d. h. daß Workflow-System behält und benutzt die Identifikationsspalte des WFMS-Systems im Audit-Trail. Die Tabellen, welche die Prozeßinformation (PROCESSES) halten, werden durch die Erstellungszeit (CREATION TIME) der Prozesse aufgeteilt. Somit muß das Workflow-System behalten werden und in jeder der Tabellen eine Spalte benutzen, welche die Erstellungszeit behält.
Aufgrund von der allgemeinen Art der Spezifikationen von den internen Eigenschaften steuern diese Definitionen die entsprechenden Tabellen von allen Prozeßmodellen, wenn diese nicht durch neue Spezifikationen in den einzelnen Prozeßmodellen außer Kraft gesetzt werden.
Basierend auf der aktuellen Lehre und mit Bezug auf das obengenannte Beispiel würde das WFMS den Partitionierungscode in jeder WHERE-Klausel der SQL-Befehle enthalten, die auf die Datenbanken zugreifen; der SELECT- Befehl für einen Audit-Trail-Zugriff würde somit wie folgt aussehen:
SELECT <attribute_list< FROM AUDIT_TRAIL WHERE SYSTEM_ID = 'SYS1'
Ein solches Verfahren resultiert in deutlichen Leistungsver­ besserungen, da die Optimizer der DBMS in der Lage sind, den Datenbankzugriff nur mit der Systemidentifikation "SYS1" zum adressierten System zu steuern.
4.4.2 Externe Eigenschaften
Externe Eigenschaften werden insbesondere von dem Benutzer definiert und mit den Konstrukts im Meta-Modell des Prozeßmodells verbunden. Im Fall der externen Eigenschaften weisen neue Definitionskonstrukts das WFMS und das DBMS an, weitere Attribute in eine Tabelle einzufügen, die als Partitionierungscode dienen. Außerdem können in einer weiteren Erweiterung der Lehre bestimmte Werte innerhalb des Prozeßmodells als Partitionierungscode zugeordnet werden, der angibt, in welchem Teil der Tabelle die entsprechende Datensatzinstanz gespeichert werden sollte. Das Workflow- System verwaltet dann eine bestimmte Spalte in den entsprechenden Tabellen.
Externe Eigenschaften setzen aufgrund ihrer lokalen Bedeutung (d. h. sind nur für das Prozeßmodell von Bedeutung, das die Spezifikationen enthält) die entsprechenden Spezifikationen der internen Eigenschaften außer Kraft (sind von allgemeiner Art).
Die folgende Tabelle zeigt, wie dieser Support für die parallelen Datenbanken möglicherweise in der Flow- Definitionssprache des MQSeries Workflow ausgedrückt werden könnte.
Mit Bezug auf das vorstehende Beispiel spiegelt die Spezifikation die Definition von folgenden Aspekten wider:
  • - Sie definiert, daß die Aufteilung von dem Benutzer mit einer externen Eigenschaft definiert wird (Zeilen 3 und 4). Dadurch fügt das Workflow-System eine bestimmte Spalte ein und behält diese (ähnlich der Systemidentifikationsspalte), d. h. ein bestimmtes Tabellenattribut, in der Audit-Trail-Tabelle und den Prozeßinstanztabellen zu Partitionierungszwecken. Die Werte des neuen Attributs werden als Partitionierungscode verwendet. Wenn dieses Beispiel als eine Erweiterung des Beispiels angesehen wird, das in bezug auf die internen Eigenschaften erwähnt wurde, dann werden die Definitionen der Systemgruppe "Stuttgart" außer Kraft gesetzt, falls die Tabellen der Prozeßmodelle von "Loan" und "TravelExpense" betroffen sind.
  • - Definitionen für den "Loan" Prozeß geben an, daß der Audit-Trail in "Node1" und die Prozeßtabellen in "Node2" (Zeilen 3 und 4) verwaltet werden sollten. Wann immer das Workflow-System mit einer Instanz des "loan" Prozesses arbeitet, wird es den entsprechenden Spaltenwert in der Audit-Trail-Tabelle auf "Node1" setzen, und die entsprechende Spalte in den Tabellen, die zu den Prozessen gehört, auf "Node2". Diese Definitionen weisen das WFMS im wesentlichen darauf hin, einen bestimmten Wert, nämlich "Node1" und "Node2", ausdrücklich als Partitionierungscode zuzuordnen. Ähnliche Definitionen sind in bezug auf das Datenbankverwaltungssystem für die Erstellung der ent­ sprechenden Datenbanktabellen verantwortlich. Das Work­ flow-System sollte sicherlich die entsprechenden Tabellen automatisch erstellen.
  • - Ähnliche Einträge für den "TravelExpense" Prozeß sind in den Zeilen 8 und 9 des vorstehenden Beispiels wiedergegeben.
4.4.3 Weitere Einstellungen
Die Einstellung des Workflow-Systems und des Datenbankverwaltungssystems könnte weitere Benutzeraktionen erforderlich machen, wie dies nachstehend erklärt werden wird.
Der Benutzer könnte einen speziellen Hash-Mechanismus bereitstellen, wenn der/die vom Datenbanksystem gelieferte/n Hash-Mechanismus/-Mechanismen nicht geeignet sind. Ein zufälliger Hash-Mechanismus würde beispielsweise nicht helfen, wenn jemand die Erstellungsdaten benutzen möchte, um die Tabellen durch die Erstellung von Datum-/Zeitrahmen zu partitionieren. Für solche Zwecke kann ein zusätzliches Definitionskonstrukt eingeführt werden (nicht in den obengenannten Figuren abgebildet), mit dem ein Benutzer eine Hash-Funktion angeben kann, die es einem Datenbankverwaltungssystem erlaubt, die verschiedenen Bereiche der Partitionierungscode-Werte auf Partitionie­ rungsnummern abzubilden.
Es kann vorkommen, daß der Benutzer angeben muß, wie das Workflow-System mit dem Datenbanksystem zu verbinden ist. Eine Option ist, daß alle Systeme mit einem Knoten verbunden sind und dieser Knoten alle Built-Time-Informationen behält, während die Laufzeitinformationen auf die anderen Knoten aufgeteilt sind. Eine weitere Option ist es, jedes System mit dem Knoten zu verbinden, der die meisten Daten behält. Ein Verfahren, das besonders hilfreich ist, wenn der Systemkennzeichner als Partitionierungscode benutzt wird.
4.4.4 Zusammenfassender Überblick
Fig. 4 zeigt einen zusammenfassenden Überblick über alle WFMS mit parallelem Datenbank-Support gemäß der aktuellen Erfindung. Im Gegensatz zu Fig. 1 speichert das WFSM gemäß dieser Lehre Teile der Tabelle, die die zentrale System- Datenbank in einer parallelen Datenbank bildet, und die logische Ansicht eines einzelnen (401) Datenbankverwaltungssystems in bezug auf die verschiedenen WFMS-Instanzen (401, 403) bietet. Durch die Nutzung der inter-parallelen Datenbanktechnologie sind die parallelisierten Teile (404, 405) der zentralen System- Datenbank derzeit in physisch unterschiedlichen Partitionen gespeichert, die für ein Maximum an Parallelität, Gleichzeitigkeit und Verfügbarkeit sorgen.

Claims (14)

1. Definitionsmittel, um einen Teil der zentralen System- Datenbank von einem Workflow-Management-System (WFMS) oder einem System mit vergleichbarer Funktionalität zu definieren, der von einem Datenbankverwaltungssystem (DBMS) in einer Datenbank gehalten wird,
wobei das WFMS eine oder eine Vielzahl von WFMS- Instanzen in einem oder in einer Vielzahl von Computersystemen enthält;
wobei das WFMS wenigstens ein Prozeßmodell enthält;
wobei die Definitionsmittel dadurch gekennzeichnet sind, daß
dieser Teil der zentralen System-Datenbank definiert wird, um in einer parallelen Datenbank gehalten zu wer­ den; und
wobei die Definitionsmittel in den Konfigurationsspezifikationen des WFMS enthalten sind, wie beispielsweise in diesem Prozeßmodell.
2. Definitionsmittel gemäß Anspruch 1, wobei die parallele Datenbank eine parallele, relationale Inter-Partitions-Datenbank ist.
3. Definitionsmittel gemäß Anspruch 2,
wobei dieser Teil der zentralen System-Datenbank wenig­ stens eine Tabelle mit einer Sequenz von Attributen enthält, und diese Tabelle eine oder mehrere Datensätze mit einer Sequenz von den Attributwerten behält,
wobei diese Definitionsmittel erste Definitionsmittel enthalten, um wenigstens eines dieser Attribute als Partitionierungscode von dieser Tabelle anzugeben,
wobei dieser Code von der DBMS benutzt wird, um den Datensatz in einer Partition zu halten, die von dem Attributwert dieses Partitionierungscodes für parallelen Datenbankzugriff identifiziert wird; und/oder
wobei diese Definitionsmittel zweite Definitionsmittel enthalten, um wenigstens ein zusätzliches Attribut als Partitionierungscode von dieser Tabelle anzugeben.
4. Definitionsmittel gemäß Anspruch 3,
wobei die ersten Definitionsmittel die Systemidentifikation von diesen WFMS-Instanzen als Partitionierungscode angeben; oder
wobei die ersten Definitionsmittel die Erstellungszeit des Datensatzes als Partitionierungscode angeben.
5. Definitionsmittel gemäß Anspruch 3, wobei die zweiten Definitionsmittel die Zuordnung eines bestimmten Werts zu diesem Partitionierungscode unter­ stützen.
6. Definitionsmittel gemäß Anspruch 2 oder 3, wobei die Definitionsmittel dritte Definitionsmittel enthalten, um anzugeben, daß eine Hash-Funktion von diesem DBMS benutzt werden kann, um den Attributwert von diesem Partitionierungscode in einem begrenzten Satz der Partitionierungscode-Werte abzubilden.
7. Definitionsmittel gemäß Anspruch 3,
wobei die ersten bzw. die zweiten Definitionsmittel einen Partitionierungscode für eine oder mehrere Tabellen, die dieses Prozeßmodell enthalten, nennen; bzw.
wobei die ersten bzw. die zweiten Definitionsmittel einen Partitionierungscode für eine oder mehrere Tabellen, welche die Ausführungsinstanzen von diesem Prozeßmodell enthalten, nennen; bzw.
wobei die ersten bzw. zweiten Definitionsmittel einen Partitionierungscode für eine oder mehrere Tabellen, die einen Audit-Trail von diesem Prozeßmodell enthalten, nennen; bzw.
wobei die ersten bzw. zweiten Definitionsmittel einen Partitionierungscode für eine oder mehrere Tabellen mit Arbeitspositionen, die zu den Ausführungsinstanzen von diesem Prozeßmodell gehören, nennen.
8. Definitionsmittel gemäß Anspruch 3, wobei das WFMS, das diese Attributwerte von diesem Partitionierungscode in der WHERE-Klausel des SQL- Befehls benutzt, auf die parallele Datenbank zur weiteren Optimierung durch diese DBMS zugreift.
9. Ein Workflow-Management-System (WFMS) oder ein System mit vergleichbarer Funktionalität, das einen Teil der zentralen System-Datenbank von diesem WFMS mittels eines Datenbankverwaltungssystems (DBMS) in einer Datenbank behält,
wobei das WFMS eine oder eine Vielzahl von WFMS- Instanzen in einem oder in einer Vielzahl von Computersystemen enthält;
wobei das WFMS wenigstens ein Prozeßmodell enthält;
wobei das WFMS dadurch gekennzeichnet ist, daß
dieser Teil der zentralen System-Datenbank in einer parallelen Datenbank behalten wird.
10. Ein WFMS gemäß Anspruch 9, das außerdem gekennzeichnet wird durch Definitionsmittel gemäß irgendeinem Anspruch 1 bis 8, die in diesen WFMS-Konfigurationsspezifikationen enthalten sind, beispielsweise in diesem Prozeßmodell.
11. Ein WFMS gemäß Anspruch 9, wobei die parallele Datenbank eine parallele, relationale Inter-Partitions-Datenbank ist.
12. Ein WFMS gemäß Anspruch 10,
wobei dieser Teil der zentralen System-Datenbank wenig­ stens eine Tabelle mit einer Sequenz von Attributen enthält und die Tabelle einen oder mehrere Datensätze mit einer Sequenz von Attributwerten behält, und
wobei das WFMS wenigstens eines dieser Attribute als Partitionscode von dieser Tabelle benutzt, die von dem DBMS benutzt wird, um diesen Datensatz in einer Parti­ tion zu behalten, die von dem Attributwert von diesem Partitionierungscode für den parallelen Datenbankzugriff identifiziert wird.
13. Ein WFMS gemäß Anspruch 10,
wobei die Systemidentifikation von diesen WFMS- Instanzen als Partitionierungscode benutzt wird; oder
wobei die Erstellungszeit von diesem Datensatz als Par­ titionierungscode benutzt wird.
14. Ein WFMS gemäß Anspruch 10, wobei dieses WFMS, das diese Attributwerte von diesem Partitionierungscode in der WHERE-Klausel des SQL- Befehls benutzt, auf die parallele Datenbank zwecks weiterer Optimierung durch diese DBMS zugreift.
DE19955718A 1998-11-17 1999-11-04 Paralleler Datenbank-Support für Workflow-Management-Systeme Withdrawn DE19955718A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98121819 1998-11-17

Publications (1)

Publication Number Publication Date
DE19955718A1 true DE19955718A1 (de) 2000-05-31

Family

ID=8232983

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19955718A Withdrawn DE19955718A1 (de) 1998-11-17 1999-11-04 Paralleler Datenbank-Support für Workflow-Management-Systeme

Country Status (2)

Country Link
US (1) US6415297B1 (de)
DE (1) DE19955718A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003071455A2 (de) * 2002-02-19 2003-08-28 Siemens Aktiengesellschaft Engineeringverfahren und engineeringsystem für industrielle automatisierungssysteme

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769113B1 (en) * 1999-10-08 2004-07-27 International Business Machines Corporation Enterprise process models and enterprise application for information technologies
US6732353B1 (en) * 1999-10-08 2004-05-04 International Business Machines Corporation Method and system for generating enterprise applications of a diversity of information technologies
US20020038228A1 (en) * 2000-03-28 2002-03-28 Waldorf Jerry A. Systems and methods for analyzing business processes
JP2001356907A (ja) * 2000-06-09 2001-12-26 Ibm Japan Ltd 処理コード情報を有するデータベース・システムおよび情報処理システム
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US7359951B2 (en) * 2000-08-08 2008-04-15 Aol Llc, A Delaware Limited Liability Company Displaying search results
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
US7076727B1 (en) * 2000-08-16 2006-07-11 Sparta Systems, Inc. Configuring activities to perform operations on user-defined fields
US7266764B1 (en) * 2000-08-16 2007-09-04 Sparta Systems, Inc. Graphical user interface for automated process control
US7216132B1 (en) * 2000-08-16 2007-05-08 Sparta Systems, Inc. System and method for automated process control
CA2319918A1 (en) * 2000-09-18 2002-03-18 Linmor Technologies Inc. High performance relational database management system
US7062749B2 (en) 2000-12-15 2006-06-13 Promenix, Inc. Measuring, monitoring and tracking enterprise communications and processes
US6658423B1 (en) * 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US6931390B1 (en) * 2001-02-27 2005-08-16 Oracle International Corporation Method and mechanism for database partitioning
US6892376B2 (en) * 2001-03-20 2005-05-10 International Business Machines Corporation Flexible infrastructure for managing a process
US6804678B1 (en) * 2001-03-26 2004-10-12 Ncr Corporation Non-blocking parallel band join algorithm
US20020142273A1 (en) * 2001-03-30 2002-10-03 Dollins James T. Interactive process learning aid
US7085769B1 (en) * 2001-04-26 2006-08-01 Ncr Corporation Method and apparatus for performing hash join
US7328241B2 (en) * 2002-01-04 2008-02-05 International Business Machines Corporation Dynamic visualization of electronic mail propagation
US20030172106A1 (en) * 2002-02-14 2003-09-11 Iti, Inc. Method of increasing system availability by assigning process pairs to processor pairs
US7113938B2 (en) * 2002-02-14 2006-09-26 Gravic, Inc. Method of increasing system availability by splitting a system
US7805327B1 (en) * 2002-07-31 2010-09-28 Sap Aktiengesellschaft Transformations between combined and individual workflows
US7653562B2 (en) * 2002-07-31 2010-01-26 Sap Aktiengesellschaft Workflow management architecture
US8650152B2 (en) * 2004-05-28 2014-02-11 International Business Machines Corporation Method and system for managing execution of data driven workflows
US8423950B2 (en) 2004-06-25 2013-04-16 International Business Machines Corporation Method and apparatus for optimizing performance and network traffic in distributed workflow processing
US7272616B1 (en) * 2004-07-29 2007-09-18 Oag Worldwide Limited Method and apparatus for generating custom configured output
US7725820B2 (en) * 2005-05-16 2010-05-25 Planview, Inc. Method of generating a display for a directed graph and a system for use with the method
US7797628B2 (en) 2005-05-16 2010-09-14 Planview, Inc. Method of using a directed graph and a system for use with the method
US8561071B2 (en) 2005-07-11 2013-10-15 International Business Machines Corporation Process instance serialization
US7739314B2 (en) * 2005-08-15 2010-06-15 Google Inc. Scalable user clustering based on set similarity
US8443351B2 (en) * 2006-02-23 2013-05-14 Microsoft Corporation Parallel loops in a workflow
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US8051034B2 (en) * 2007-06-15 2011-11-01 Sap Ag Parallel processing of assigned table partitions
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US20090055347A1 (en) * 2007-08-24 2009-02-26 United Space Alliance, Llc Wireless Emergency Management Application
US20090077657A1 (en) * 2007-09-13 2009-03-19 James Williams System and method of managing user roles in an automated workflow process
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US11042514B2 (en) * 2011-08-23 2021-06-22 Graeme Perkins Collaboration computer system
US8875137B2 (en) * 2011-09-05 2014-10-28 Sap Se Configurable mass data portioning for parallel processing
CN108696559B (zh) * 2017-04-11 2021-08-20 华为技术有限公司 流处理方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
JP2865573B2 (ja) * 1994-09-21 1999-03-08 株式会社日立製作所 ワークフロー管理システム
CA2150745C (en) * 1995-06-01 2001-05-01 Chaitanya K. Baru Method and apparatus for implementing partial declustering in a parallel database system
DE69719269T2 (de) * 1996-08-01 2003-10-30 Ibm Absicherung der Unteilbarkeit für eine Ansammlung von transaktionellen Arbeitsschritten in einem Arbeitsflussverwaltungssystem
US5960420A (en) * 1996-09-11 1999-09-28 International Business Machines Corporation Systems, methods and computer program products for implementing a workflow engine in database management system
JPH10105623A (ja) * 1996-09-27 1998-04-24 Hitachi Ltd 階層型ワークフロー管理方法及びワークフロー書類回覧方法
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
EP0854431A3 (de) * 1997-01-20 2001-03-07 International Business Machines Corporation Ereignisse als Aktivitäten in Modellen von Arbeitsflussverwaltungssystemen
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
US6122633A (en) * 1997-05-27 2000-09-19 International Business Machines Corporation Subscription within workflow management systems
DE69811790T2 (de) * 1997-08-01 2003-11-20 Ibm Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen
US6078982A (en) * 1998-03-24 2000-06-20 Hewlett-Packard Company Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003071455A2 (de) * 2002-02-19 2003-08-28 Siemens Aktiengesellschaft Engineeringverfahren und engineeringsystem für industrielle automatisierungssysteme
DE10206902A1 (de) * 2002-02-19 2003-09-11 Siemens Ag Engineeringverfahren und Engineeringsystem für industrielle Automatisierungssysteme
WO2003071455A3 (de) * 2002-02-19 2004-05-13 Siemens Ag Engineeringverfahren und engineeringsystem für industrielle automatisierungssysteme
CN100380382C (zh) * 2002-02-19 2008-04-09 西门子公司 用于工业自动化系统的工程方法和工程系统
US7657404B2 (en) 2002-02-19 2010-02-02 Siemens Aktiengesellschaft Engineering method and system for industrial automation systems

Also Published As

Publication number Publication date
US6415297B1 (en) 2002-07-02

Similar Documents

Publication Publication Date Title
DE19955718A1 (de) Paralleler Datenbank-Support für Workflow-Management-Systeme
DE19955004A1 (de) Ableitung und Ausführung von Workload-Manager-Enklaven aus Workflows
DE19948028A1 (de) Verfahren und System zum Optimieren des Anforderungsschickens in Workflow Management Systemen
DE69838139T2 (de) Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen
EP0855062B1 (de) Informationssystem und verfahren zur speicherung von daten in einem informationssystem
DE69829442T2 (de) System und Verfahren für transparenten, globalen Zugang zu physikalischen Geräten in einem Rechnersystem
DE10003015A1 (de) Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
DE10348337A1 (de) Inhaltsverwaltungsportal und Verfahren zum Kommunizieren von Informationen
DE19712946A1 (de) Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
DE102004022481A1 (de) Datenverwaltungssystem, das einen Datenthesaurus zur Abbildung zwischen mehreren Datenschemata oder zwischen mehreren Domänen innerhalb eines Datenschemas bereitstellt
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE112013000916T5 (de) System zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt
DE102017207686A1 (de) Einblicke in die belegschaftsstrategie
DE19954268A1 (de) Verfahren und System zur Verbesserung des Workflow-Durchsatzes in Workflow-Anwendungssystemen
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
EP1699005A1 (de) Integration von MES- und Controls-Engineering
DE102007046049A1 (de) System, Verfahren und Programm zur Unterstützung der Schaffung von Geschäftsprozessen
DE19960048A1 (de) Zeitgesteuerte Startbedingungen für Aktivitäten in Workflow-Management-Systemen
DE69633373T2 (de) Verfahren und Gerät zur Programmierung eines Aufgabentickets in einem Dokumentenverarbeitungssystem
DE10034694A1 (de) Verfahren zum Vergleichen von Suchprofilen
WO2000060497A2 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen
EP3776257B1 (de) Objektdatenbank zur geschäftsmodellierung mit verbesserter datensicherheit
EP1285315B1 (de) Informationsverarbeitungssystem und verfahren zu dessen betrieb

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8120 Willingness to grant licences paragraph 23
R120 Application withdrawn or ip right abandoned

Effective date: 20120404