2.3 Programmierung/Entwicklungsumgebung
Die von den Gateway-Herstellern zur Verfügung gestellten Programmierschnittstellen für die Entwicklung von Web-Datenbank-Anwendungen sind sehr unterschiedlich. Wichtige Kriterien für die Beurteilung der Programmierschnittstellen sind
2.3.1 Hohe Programmiersprachen vs. Scriptsprachen
Die Entwicklung einer Web-Datenbank-Anwendung von Grund auf in einer Programmiersprache wie C/C++, Visual Basic und auch Java halte ich aus folgenden Gründen in den meisten Fällen für nicht sinnvoll:
Es gibt noch weitere Argumente für den Einsatz von Scriptsprachen für Web-Datenbank-Anwendungen: Gerade für einfache Aufgaben bedarf es nicht der Einarbeitung in eine neue Programmierumgebung, da die Script-Befehle wie normale Tags in die HTML-Seite integrierte werden und somit ein gewöhnlicher Texteditor ausreicht.
Für umfangreiche Web-Projekte ist es denkbar, die HTML-Seiten selbst in einer Datenbank statt im Dateisystem zu verwalten. Auch in diesem Zusammenhang ist die textorientierte Struktur von Skriptsprachen und ihre Integration in die HTML-Seiten ein Vorteil gegenüber compilierten Sprachen.
2.3.2 Proprietäres Server Side Scripting
Beim Server Side Scripting (SSS) werden Kommandos für die Datenbankzugriffe mit speziellen, nichtstandardisierten HTML-Tags in die HTML-Seite integriert. Solche erweiterten HTML-Seiten werden nach einer Anfrage zunächst von einem Gateway geparst, welches die Datenbankbefehle interpretiert, ausführt und die Ergebnisdaten an Stelle dieser Tags in die HTML-Seite einsetzt. Die so manipulierte Seite wird an den Server zurückgegeben, der sie an den anfragenden Browser liefert. Dieser erhält somit von spezifischen Tags bereinigten Standard-HTML-Code.
So erweiterte HTML-Seiten werden oft auch als "Templates" bezeichnet, da sie neben normalem HTML-Code Platzhalter beinhalten, die beim Aufruf dieser Seite durch Daten aus der Datenbank ersetzt werden.
Um dafür zu sorgen, daß ein solches Template vor Auslieferung durch den Web-Server von dem Gateway geparst wird, werden zwei unterschiedliche Methoden verwendet:
SSS ist die am häufigsten verwendete Methode zur Programmierung von Web-Datenbank-Gateways. Der Sprachumfang dieser Skriptsprachen reicht vom reinen Einfügen von SQL-Abfragen, die beim Seitenaufruf durch entsprechende Ergebnistabellen ersetzt werden, bis zu vollwertigen Programmiersprachen mit Funktionen, Variablen und Objektbasierung. Manche Hersteller integrieren außerdem noch Email-Schnittstellen und ähnliche Erweiterungen zur Erstellung "stark interaktiver" Webanwendungen.
Vorteile
Nachteile
2.3.3 JavaScript
JavaScript ist eine objektbasierte Skriptsprache, deren Sourcecode ebenfalls in HTML-Seiten integriert ist und nach Aufruf dieser Seite entweder auf dem Server oder erst auf dem Client (Web-Browser) von einem Interpreter ausgeführt wird.
2.3.3.1 JavaScript auf Clientseite
JavaScript wurde von Netscape und Sun Microsystems entwickelt und war zunächst "nur" für die einfache Gestaltung dynamischer HTML-Seiten gedacht. Der JavaScript-Interpreter ist im Web-Browser integriert. JavaScript hat vordefinierte Objekte mit Attributen und/oder Methoden u.a. für Strings, mathematische Operationen, alle HTML-Elemente, insbesondere die Formularelemente, sowie für Frames und Windows des Browsers. Diese Objekte können durch zusätzliche Methoden und Attribute erweitert werden und es können neue Objekte definiert werden. Objekte können Attribute anderer Objekte sein ("Has a"-Beziehung). Vererbung ("Is a"-Beziehung) wird allerdings nicht unterstützt, weshalb JavaScript auch nicht objektorientiert, sondern eine objektbasierte Sprache genannt wird ([L5], S. 58).
Klassische Einsatzgebiete von JavaScript auf Clientseite sind Berechnungen mit Benutzereingaben aus Formularen oder die Clientseitige Validierung von Formulareingaben für die Verarbeitung auf dem Server.
Beispiel
Für einen Veranstaltungskalender sollen die Benutzer Terminvorschläge machen können. Ein Formular nimmt die Daten entgegen und ein CGI-Programm erzeugt daraus eine Email, die an den Webmaster geschickt wird.
Ohne JavaScript gibt es bei Einsatz eines fertigen CGI-Programms zum Verschicken von Formulareingaben per Email keine Möglichkeit, Datumseingaben des Benutzers auf Gültigkeit zu Prüfen. Stattdessen muß ein neues CGI-Programm geschrieben werden, welches die Plausibilitätsüberprüfung durchführt und die Email-Funktionalität beinhaltet. Neben dem zusätzlichen Programmieraufwand läßt sich folgendes Problem nicht lösen: Benutzereingaben werden auf jeden Fall zunächst an den Server übertragen. Dort findet die Validierung der Daten statt. Im Falle eines Fehlers muß eine neue HTML-Seite mit einer entsprechenden Fehlermeldung an den Browser zurückgeliefert werden und der Benutzer muß seine Eingaben wiederholen oder korrigieren. Nachdem die Korrekturen gemacht wurden, werden wiederum sämtliche Eingaben an den Server übertragen und hier wieder geprüft.
Mit JavaScript kann die Validierung der Daten auf Clientseite erfolgen, so daß der Benutzer ggf. direkt eine Fehlermeldung in Form einer Alertbox erhält und seine Korrekturen machen kann, bevor die Daten an den Server übertragen werden. Dies hat mehrere Vorteile:
JavaScript wurde speziell für das Internet entwickelt und ist - ähnlich wie Java - ein offener Standard, der von mehreren Herstellern unterstützt wird. So hat Microsoft beispielsweise JavaScript unter dem Namen JScript in den Internet Explorer ab Version 3.0 integriert. Dadurch hebt sich JavaScript grundsätzlich von allen proprietären Skriptsprachen ab, ist aber dennoch wesentlich einfacher zu lernen als Java oder andere hohe Programmiersprachen.
2.3.3.2 JavaScript auf Serverseite
Die Entwicklung, JavaScript auch auf Serverseite einzusetzen, ist relativ neu. Ziel ist es, mit einfachen, aber zugleich mächtigen Mitteln Datenbankbasierte interaktive Webanwendungen schreiben zu können. JavaScript für Serverseitige Ausführung wird ebenfalls in HTML-Seiten integriert und durch Einschluß in die HTML-Tags <SERVER> ... </SERVER> entsprechend markiert. Es gibt zusätzliche Objekte für den Server und für Datenbankzugriffe.
Vorteile
Nachteile
Zur Zeit gibt es zwei nichtkompatible Produkte zur Ausführung von JavaScript-Programmen auf Serverseite:
Die Netscape-Lösung wird ausführlich in Abschnitt 3.3 behandelt. Borland hat JavaScript für den Serverseitigen Einsatz mit IntraBuilder um Objekte zur Datenbankentwicklung sowie um objektorientierte Konzepte wie formaler Klassendefinition und Vererbung erweitert, mit der Syntax von Java. Abbildung 11 zeigt die Multi-Tier-Architektur des IntraBuilder-Servers.
Abbildung 11: Architektur des IntraBuilder-Servers
IntraBuilder enthält ein umfangreiches RAD-Tool zur Erstellung und Pflege von Datenbankbasierten HTML-Formularen und -Reports sowie Borlands bereits aus Delphi, C++, Paradox und dBase her bekannte "Borland Database Engine" (BDE) zur Anbindung einer Vielzahl von Datenbank (ODBC sowie nativ IBM DB2, Oracle, Sybase, Informix, MS SQL Server u.a.).
Der große Nachteil von IntraBuilder ist, daß er im Gegensatz zum Netscape-Server nur auf Windowsplattformen (95/NT) verfügbar ist.
Ich halte JavaScript als Programmiersprache für die Entwicklung von Web-Datenbank-Anwendungen für einen gelungenen Kompromiß zwischen Einfachheit und Flexibilität. Trotz gewisser Kinderkrankheiten liefert JavaScript aufgrund seiner ausschließlichen Weborientierung und der Möglichkeit, in einer Programmiersprache auf Client- und Serverseite zu entwickeln, interessante Ansätze.