next up previous contents
Next: Auswirkungen einer Firewall auf Up: Der Prototyp der ,,Jahreswagenbörse`` Previous: Die JAWA als dynamisches

Implementierungsalternativen

Neben der Programmiersprache C eignet sich perl hervorragend für die Entwicklung von CGI-Skripten. perl ist eine Programmiersprache, die sehr effiziente Möglichkeiten bietet, auf Textdateien zuzugreifen, Daten zu modifizieren sowie Daten aus einer Datei zu extrahieren. perl bietet außerdem Erweiterungen für alle gängigen Datenbanksysteme, wie beispielsweise oraperl für Oracle, sybperl für Sybase, isqlperl für Informix usw., mit denen sich Zugriffe auf die jeweilige Datenbank realisieren lassen. Mit den entsprechenden Erweiterungen kann perl somit auch zur Implementierung von CGI-Datenbank-Gateways herangezogen werden. Da die relationalen Datenbankoperationen typischerweise textorientiert sind, eignet sich perl sehr gut dazu, den aus der Datenbank extrahierten Datenstrom zu verarbeiten. Nach der Implementierung des Datenbank-Gateways ist man allerdings an ein bestimmtes Datenbanksystem gebunden, weil die Erweiterungen zu perl datenbankspezifisch sind. Eine Änderung des zugrundeliegenden Datenbanksystems würde ein Änderung des Gateways implizieren.

Verwendet man für die Datenbankzugriffe hingegen Standard SQL-Anweisungen, die in den C-Source-Code eingebettet sind, ist man nicht an das zugrundeliegende Datenbanksystem gebunden. Dies bedeutet, daß die Anwendung auf unterschiedlichen Datenbanksystemen ablauffähig ist, ohne daß dazu der Source-Code der Anwendung geändert werden muß. Um die Unabhängigkeit vom verwendeten Datenbanksystem zu wahren, wurde die JAWA in der Programmiersprache C unter Verwendung von ESQL-Anweisungen implementiert.

Eine weitere Alternative der Implementierung stellt die Verwendung von SQL*Report dar. Es handelt sich dabei um eine Oracle-spezifische Anwendung, mit der sog. ,,Reports`` erstellt werden können. Ein ,,Report`` ist dabei eine Textdatei, die Daten enthält, die mit Hilfe von SQL*Report aus der Datenbank extrahiert wurden. Das Format eines solchen ,,Reports`` kann durch den Benuzter beliebig spezifiziert werden. SQL*Report setzt sich aus zwei Komponeneten zusammen. Der ,,Report-Generator`` ermöglicht das Auslesen der Daten aus der Datenbank sowie das Einbetten der Daten in die ,,Reports``. Mit Hilfe des ,,Report-Formatierers`` wird das Format der ,,Reports`` festgelegt. Beide Anwendungen besitzen eine Kommandozeilen-Schnittstelle, über die sie aufgerufen werden können. Dies ermöglicht das Ausführen der beiden Anwendungen von einer Programmiersprache wie beispielsweise C oder perl heraus.

Der Entwicklung eines solchen CGI-Datenbank-Gateways kann beispielsweise folgende Architektur zugrunde liegen: Ein Benutzer startet über ein HTML-Formular eine Anfrage an die Datenbank. Das referenzierte CGI-Skript generiert entsprechend den übergebenen Parametern eine Datei, die Anweisungen für den ,,Report-Generator`` enthält und zur Laufzeit von diesem ausgewertet wird. Nach Aufruf des ,,Report-Generators`` interpretiert dieser die beim Aufruf übergebene Datei und extrahiert entsprechend den dort enthaltenen Anweisungen die Daten aus der Datenbank. Nach dem Auslesen der Daten wird mit Hilfe des ,,Report-Formatierers`` ein ,,Report`` generiert, der HTML-Anweisungen enthält und einem normalen WWW-Dokument entspricht. Die aus der Datenbank extrahierten Daten werden in das HTML-Dokument eingebettet. Als Ergebnis der Anfrage wird das so generierte HTML-Dokument an den WWW-Client zurückgeschickt.


next up previous contents
Next: Auswirkungen einer Firewall auf Up: Der Prototyp der ,,Jahreswagenbörse`` Previous: Die JAWA als dynamisches
Root on HPHEGER0
8/27/1998