In der Arbeit werden die Anforderungen an ein Workflow-Management System diskutiert und es wird ein Konzept (inklusive UML Datenmodell und Klassendefinitionen)
einer Workflow-Engine vorgestellt welches folgende Eigenschaften aufweist:
- Flexibilität durch Aufhebung der Trennung von Runtime und Buildtime.
- Erweiterbarkeit durch vollständige Objektorientierung
- Plattformunabhängigkeit durch CORBA
- Verteilung: keine Zentrale Workflow-Engine
- Persistenz: Objektdaten werden transparent in einer Datenbank gespeichert.
Bestandteil der Arbeit war die Implementierung eines Prototypen, der auf der CeBIT 1999 ausgestellt worden ist.
Inhaltsverzeichnis
1 Einleitung
2 Workflow-Management
2.1 Einführung
2.2 Eigenschaften von Workflows
2.2.1 Atomare Workflows und komplexe Workflows
2.2.2 Agenten- / Rollenkonzept
2.3 Anforderungen an ein Workflow-Management-System
2.3.1 Workflow-Meta-Modell-bezogene Anforderungen
2.3.2 Implementierungsbezogene Anforderungen
2.4 Kommerzielle Workflow-Management-Systeme
2.4.1 FlowMark von IBM
2.4.2 WorkParty von Siemens
2.5 Der erste WASA Prototyp
3 Objektorientierter Entwurf
3.1 Philosophie
3.2 Analyse-Objektmodell
3.3 Design-Objektmodell
3.4 Plattformanforderungen
4 Persistency-Service
4.1 Anforderungen
4.2 Spezifikation nach OMG
4.3 Neue Spezifikation
4.3.1 Database
4.3.2 Transaction
4.3.3 Persistent Object
4.4 Implementierung
4.5 Eine Beispielanwendung
4.5.1 Implementierung der Interface
4.5.2 Implementierung der Factory
4.5.3 Implementierung des Servers
4.6 Modul Utility
4.7 Performanz
4.8 Optimierungsmöglichkeiten
4.8.1 Verminderung des Datenumfanges
4.8.2 Vorcompilierte Datenbankbefehle
4.8.3 Zusammenfassen von Daten
4.8.4 Messungen
4.8.5 Fazit
5 Implementierung des Prototypen
5.1 Realisierung des Workflow-Management-Systems mit OrbixWeb
5.2 Übersicht Klassenhierarchie
5.3 Objektmodell-orthogonale Dienste
5.3.1 Trading-Object-Service
5.3.2 Event-Service
5.4 Systemarchitektur
5.4.1 Logische Systemsicht
5.4.2 Physische Systemsicht
5.5 Basisfunktionalität
5.5.1 Templates
5.5.2 Daten
5.6 Workflow-Engine Kernfunktionalität
5.6.1 Darstellung von Workflows
5.6.2 Atomare Workflows
5.6.3 Komplexe Workflows
6 Beispiel
6.1 Das Workflow-Modell
6.2 Darstellung des Workflow-Modells
6.3 Darstellung einer Workflow-Instanz
7 Schlußbetrachtung
7.1 Erfahrungen
7.2 Ideen
7.3 Fazit
A Klassen des Persistency-Service
A.1 Modul CosPersistency
A.1.1 IDL-Spezifikation
A.1.2 Klasse DatabaseImpl
A.1.3 Klasse PersistencyLoader
A.1.4 Klasse PersistentObjectImpl
A.1.5 Klasse RawdataIteratorImpl
A.1.6 Klasse TransactionImpl
A.2 Modul DB_Oracle
A.2.1 IDL-Spezifikation
A.2.2 Klasse Oracle_DatabaseImpl
A.2.3 Klasse Oracle_TransactionImpl
A.2.4 Klasse SQL_Statements
A.2.5 Datenbanktabellen
B Klassen der Workflow-Engine
B.1 Modul WASA
B.1.1 IDL-Spezifikation
B.1.2 Klasse AtomicImpl
B.1.3 Klasse AutomaticImpl
B.1.4 Klasse BinaryDataImpl
B.1.5 Klasse BooleanDataImpl
B.1.6 Klasse ComplexImpl
B.1.7 Klasse ConnectorImpl
B.1.8 Klasse DataObjectImpl
B.1.9 Klasse DecimalDataImpl
B.1.10 Klasse ForAllImpl
B.1.11 Klasse InputParameterImpl
B.1.12 Klasse InstanceOfImpl
B.1.13 Klasse NumberDataImpl
B.1.14 Klasse OutputParameterImpl
B.1.15 Klasse ParameterImpl
B.1.16 Klasse ParameterInstanceReferenceImpl
B.1.17 Klasse ParameterMappingImpl
B.1.18 Klasse StartConditionContextImpl
B.1.19 Klasse StartConditionImpl
B.1.20 Klasse StartConditionParameterReferenceImpl
B.1.21 Klasse StringDataImpl
B.1.22 Klasse TemplateImpl
B.1.23 Klasse WFSubWFRelationshipImpl
B.1.24 Klasse WorkflowImpl
B.1.25 Klasse WorkflowInputParameterReferenceImpl
B.1.26 Klasse WorkflowOutputParameterReferenceImpl
B.2 Modul Utility
B.2.1 IDL-Spezifikation
B.2.2 Klasse Creator
B.2.3 Klasse DynamicArrayImpl
B.2.4 Klasse IDLtoJAVA
B.2.5 Klasse JAVAtoIDL
B.2.6 Klasse State
Zielsetzung & Themen
Die Diplomarbeit hat das Ziel, ein flexibles Workflow-Management-System zu spezifizieren und zu implementieren, das auf dem objektorientierten Modell von [WHKS97] basiert. Die zentrale Forschungsfrage ist dabei, wie eine Workflow-Engine auf Basis von CORBA und Java entwickelt werden kann, die Verteilung, Persistenz sowie eine dynamische Anpassungsfähigkeit während der Laufzeit unterstützt.
- Spezifikation und Implementierung einer objektorientierten Workflow-Engine.
- Einsatz von CORBA als Middleware zur Realisierung plattformunabhängiger Verteilung.
- Konzeption eines Persistency-Service zur Sicherung von Workflow-Objekten in relationalen Datenbanken.
- Ermöglichung dynamischer Laufzeit-Änderungen an Workflow-Instanzen.
- Einbindung der Programmiersprache Java unter Verwendung von Metainformationen (java.lang.reflect).
Auszug aus dem Buch
4.3 Neue Spezifikation
Ziel der neuen Spezifikation des Persistency-Service ist es, die in Abschnitt 4.1 genannten Anforderungen so gut wie möglich zu erfüllen. Der Quelltextauszug 4.1 zeigt die verkürzte Spezifikation des Persistency-Service, bestehend aus einem Modul und drei Interfaces:
4.3.1 Database
Das Interface Database entspricht einer abstrakten Sicht auf eine Datenbank. Jede Datenbank im System, die vom Persistency-Service genutzt werden soll, muß genau eine Instanz dieses Interface zur Verfügung stellen. Der Quelltextauszug 4.2 zeigt die Methoden, die zur Verfügung gestellten werden müssen. Um Daten zu speichern, sieht das Konzept vor, eine Transaktion in der Datenbank zu belegen, die die notwendigen Methoden zur Speicherung der Daten zur Verfügung stellt.
Zur Identifizierung von persistenten Objekten wird ein im gesamten System eindeutiger Schlüssel benötigt. Hier ist es zunächst naheliegend den CORBA-Objektschlüssel zu verwenden. Dieses hat aber den unangenehmen Nebeneffekt, daß eine Verschiebung von Objekten zwischen den Rechnern nicht mehr transparent durchgeführt werden kann. Die Lösung des Problems ist die Verwendung nur noch eines Teils des CORBA-Objektschlüssels für die Identifikation. Die Idee ist, den Teil des Objektschlüssels zu nehmen, der für den Programmierer unabhängig von dem Ort des Objektes frei wählbar ist. Dieser ist der Marker, der nur die Restriktion hat, daß er eindeutig innerhalb eines Objektservers definiert sein muß. Dieser Marker wird im folgenden als eindeutiges Identifikationsmerkmal benutzt, indem sichergestellt wird, daß jeder Marker für persistente Objekte genau einmal vorkommt. Daher stellt jede Datenbank die Methode getNewObjectmarker zur Verfügung, die einen neuen eindeutigen Marker zurückgibt.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die historische Entwicklung computergestützter Arbeitssysteme und definiert das Ziel einer flexiblen, verteilten Workflow-Management-Lösung.
2 Workflow-Management: Erläutert grundlegende Workflow-Eigenschaften, Agenten-Konzepte und die Anforderungen an moderne Workflow-Management-Systeme.
3 Objektorientierter Entwurf: Stellt die Philosophie und das Meta-Modell der Workflow-Engine vor, die auf einer objektorientierten Struktur basieren.
4 Persistency-Service: Behandelt detailliert das Design und die Implementierung eines flexiblen Persistenzdienstes für CORBA-Objekte mittels Java.
5 Implementierung des Prototypen: Beschreibt die konkrete Realisierung des WASA-Prototypen unter Verwendung von OrbixWeb und die Einbindung in die Systemarchitektur.
6 Beispiel: Illustriert die Modellierung und Instanziierung eines Workflows anhand eines konkreten Kundenauftrag-Szenarios.
7 Schlußbetrachtung: Reflektiert die gesammelten Erfahrungen und schlägt Ansätze zur zukünftigen Weiterentwicklung vor.
A Klassen des Persistency-Service: Dokumentiert die technische Spezifikation und Implementierungsdetails der Persistenz-Klassen.
B Klassen der Workflow-Engine: Dokumentiert die technische Spezifikation und Implementierungsdetails der Workflow-Klassen.
Schlüsselwörter
Workflow-Management, CORBA, Persistency-Service, Objektorientierter Entwurf, Java, WASA, Verteilung, Workflow-Modellierung, Datenbankanbindung, Middleware, Prototyp, Dynamische Anpassungsfähigkeit, Laufzeitumgebung, Interface, IDL-Spezifikation.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Diplomarbeit befasst sich mit der Konzeption und Implementierung einer verteilten, persistenten Workflow-Engine, die auf CORBA und der Programmiersprache Java basiert.
Was sind die zentralen Themenfelder?
Die Schwerpunkte liegen auf dem Workflow-Management, dem objektorientierten Entwurf, der Speicherung von Objektdaten (Persistenz) und der Verteilung von Systemkomponenten.
Was ist das primäre Ziel der Arbeit?
Ziel ist es, ein flexibles System zu schaffen, das die starre Trennung zwischen Modellierung (Buildtime) und Ausführung (Runtime) aufhebt und somit ad-hoc Änderungen während der Laufzeit ermöglicht.
Welche wissenschaftliche Methode wurde verwendet?
Die Arbeit nutzt den objektorientierten Entwurf, spezifiziert durch die Unified Modeling Language (UML), und implementiert eine Middleware-Lösung unter Verwendung von CORBA-Schnittstellen und Java-Reflektion.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in die theoretischen Anforderungen, den objektorientierten Entwurf des Workflow-Meta-Modells, die detaillierte Spezifikation des Persistency-Service sowie die Implementierung des WASA-Prototypen.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zentrale Begriffe sind Workflow-Management, CORBA, Persistency-Service, Objektorientierung, verteilte Systeme und dynamische Workflow-Anpassung.
Warum ist Java für die Implementierung entscheidend?
Java ermöglicht durch die virtuelle Maschine eine hohe Plattformunabhängigkeit und erlaubt durch das Paket "java.lang.reflect" eine dynamische Verarbeitung von Objektdaten ohne strikte Vorgaben zur Compilezeit.
Welche Rolle spielt die Datenbank in diesem System?
Die Datenbank dient zur dauerhaften Sicherung der Objektzustände (Persistenz), um den Zustand der Workflow-Instanzen auch nach Systemausfällen korrekt wiederherstellen zu können.
- Quote paper
- Dominik Kuropka (Author), 1998, Spezifikation und Implementierung einer verteilten persistenten Workflow-Engine auf der Basis von CORBA, Munich, GRIN Verlag, https://www.grin.com/document/148