next up previous contents index
Next: Aufbau und Erzeugung eines Up: No Title Previous: Workflow-Anwendungen

Architektur

Entsprechend der Aufgabenstellung soll ein WWW-Browser als Benutzerschnittstelle zur Workflow-Anwendung dienen. Dadurch muss bei den Benutzern keine spezielle Client-Software installiert werden, da ein WWW-Browser in der Regel bei einem Betriebssystem bereits vorhanden ist oder einfach und kostenlos installiert werden kann. Um mit möglichst allen gängigen Browsern kompatibel zu sein, haben wir uns in diesem FoPra auf HTML 3.2 beschränkt. Es wurden keine Skript-Sprachen, die beim Client ausgeführt werden (z.B. JavaScript), oder JAVA-Applets verwendet. Da verschiedene Textbrowser keine Frames sinnvoll darstellen können, wurde auch auf dieses Gestaltungselement verzichtet. Letztlich war es unser Ziel, dass jeder Browser von Lynx bis Internet Explorer - auch in einer evtl. älteren Version - die generierten HTML-Seiten verarbeiten und darstellen kann.

Die Kommunikation zwischen Client und Server erfolgt auf Anwendungsebene mittels HTTP (Abbildung [*]). Dabei ist zu berücksichtigen, dass dieses Protokoll zustandslos ist. Ein neuer HTTP-Request eines Clients kann allein mit den Mitteln von HTTP nicht mit vorhergegangenen Anfragen in Zusammenhang gebracht werden. Hier ist zusätzlicher Aufwand bei der Entwicklung der Anwendung notwendig, um dieses Problem zu kompensieren. Der Client spricht durch einen URL eine bestimmte Ressource auf einem Server an. Handelt es sich um ein Dokument (z.B. HTML-Dokument, Grafik), schickt der Server (entsprechende Zugriffsrechte vorausgesetzt) dieses direkt an den Client zurück. Handelt es sich um ein Skript oder ein Programm, kann er es zur Ausführung bringen. Dem Skript bzw. dem Programm können vom HTTP-Server Umgebungsvariablen übergeben werden, die u.a. vom Client zusammen mit der URL übermittelt wurden. Die Ausgabe des Programms wird dann an den Client zurückgeschickt. Im FoPra wird diese Methode verwendet, um HTML-Seiten dynamisch zu generieren.


 
Abbildung:  Architektur

Im einzelnen wurde als HTTP-Server Apache 1.3 mit SSL-Unterstützung unter Linux eingerichtet. Die SSL-Unterstützung ist zur Authentifizierung mittels Zertifikaten notwendig (Abbildung [*]). Für die dynamische Generierung der HTML-Seiten wurde PHP (PHP Hypertext Preprocessor, früher: Personal Homepage) in der Version 4 verwendet. Hierbei handelt es sich um eine Skriptsprache, die auf dem Server ausgeführt wird. Der PHP-Code kann zusammen mit HTML-Code in einem Dokument enthalten sein, wobei der PHP-Anteil durch spezielle Tags zu kennzeichnen ist. Zur Laufzeit werden vom PHP-Interpreter die PHP-Anweisungen im Dokument verarbeitet und durch eine eventuelle Ausgabe ersetzt. Das so umgearbeitete Dokument enthält nun nur noch Code der beim Client verarbeitet werden kann, also HTML, JavaScript o.ä. Die Entscheidung für PHP wurde aus folgenden Gründen getroffen:

Eine genaue Evaluation von PHP findet in einem anderen FoPra statt.


 
Abbildung:  Zugriffsmöglichkeiten

PHP kann klassisch über das Common Gateway Interface (CGI) oder als Webserver-Erweiterung (bei Apache: Dynamic Shared Object - DSO) benutzt werden. Die Verwendung als Webserver-Erweiterung hat den Vorteil, dass die Skripte nicht extern in jeweils eigenen Prozessen, sondern intern innerhalb des Webserver-Prozesses ablaufen. Dadurch wird eine bessere Performance erreicht.

Die PHP-Skripte greifen zur Generierung der HTML-Seiten auf Informationen zurück, die in einer Datenbank enthalten sind. Dies sind zum einen Informationen die mit dem Workflow in Zusammenhang stehen (z.B. Name des geraden aktuellen Workflowschritts), zum anderen Verwaltungsinformationen, die im Workflow dargestellt werden sollen (z.B. für eine Klausur reservierte Räume). Von PHP wird der Zugriff auf zahlreiche Datenbank Management Systeme (DBMS) durch Funktions-Bibliotheken unterstützt. Experimentiert wurde mit MySQL 3.23, PostgreSQL 7.0 und Interbase 6. Eingerichtet wurde die Datenbank letztlich unter PostgreSQL. PostgreSQL hat folgende Vorteile, durch die es sich zum Teil von den anderen DBMS unterscheidet:

MySQL hingegen kennt keine Views und auch keine referentielle Integrität. Bei Interbase ist die PHP-Unterstützung noch nicht so weit gediehen. Eine genaue Evaluation der verschiedenen DBMS findet in einem anderen FoPra statt.


next up previous contents index
Next: Aufbau und Erzeugung eines Up: No Title Previous: Workflow-Anwendungen
Copyright Munich Network Management Team