Datenbankanbindung an das Web (Teil 4)

Apptivity erstellt reine Java-Anwendungen

29.08.1997

Viele der mittlerweile erhältlichen, komfortablen Entwicklungs-Tools für das Web sind weiterhin der klassischen Architektur verhaftet: allen voran dem Common Gateway Interface (CGI) und Hypertext-Markup-Lan- guage-(HTML-)Formularen für die Eingabe von Benutzerdaten. Beide Technologien sind zwar offene Standards, leiden aber unter relativ geringer Perfomance und schlechter Skalierbarkeit.

Die Apptivity Corp. bewirbt ihr Werkzeug als eines der zweiten Generation, das diese Beschränkungen überwindet. Wie das in der CW Nr. 26 vom 27. Juni 1997 auf Seite 23 besprochene "Infoscape Fresco" setzt auch Apptivity auf eine vollständig in Java gehaltene Lösung. Die Funktion des Web-Servers reduziert sich auf das Herunterladen der Client-Software, die als Applet in einem Java-fähigen Browser abläuft. Diese baut anschließend über ein proprietäres Protokoll eine persistente Verbindung zum dazugehörigen, ebenfalls vollständig in Java implementierten Applikations-Server auf. Er ist für die Datenbankverbindungen zuständig.

Diese Architektur geht damit auch den Problemen des zustandslosen Hypertext Transfer Protocol (HTTP) aus dem Weg, die Programmierer bevorzugt über den Einsatz sogenannter Cookies meistern. Sie erlauben das Abspeichern von verbindungsspezifischen Information auf der Client-Seite.

Ein weiterer Vorteil des übergreifenden Java-Ansatzes ist die Portierbarkeit der erstellten Anwendungen. Als Plattformen kommen alle Betriebssysteme in Frage, die über eine Java VM (Virtual Machine) verfügen.

Der Anwendungsarchitektur entsprechend, setzt sich die Software aus zwei Hauptkomponenten zusammen: der unter Windows ablaufenden, visuellen Entwicklungsumgebung "Apptivity Developer" und dem "Apptivity Server". Mit ersterer lassen sich im Point-and-click-Verfahren sowohl die Client-Anwendungen als auch die Applikationsslogik für die Server-Seite erstellen. Es steht dem Programmierer deshalb frei, Anwendungen zur Entwicklungszeit in Server- und Client-Module zu partitionieren. Eine dynamische Anwendungspartitionierung zur Laufzeit wird von der aktuellen Version jedoch nicht unterstützt.

Der Apptivity Developer präsentiert sich als komplette Umgebung für das Rapid Application Development (RAD). Ein damit erstelltes Client-Modul läuft entweder als Java-Applet in einem Browser oder als eigenständige Java-Applikation.

Da Applets allerdings aus Sicherheitsgründen nur auf den Rechner zugreifen können, von dem sie geladen wurden, muß dort auch der Apptivity-Server installiert sein. Java-Applikationen müssen andererseits auf tradionelle Weise installiert werden und können die einfache Distribution via Web nicht nutzen. Die typische Größe für Client-Programme liegt nach Angaben des Herstellers unter 200 KB.

Über einen "Form Wizard" läßt sich die Benutzeroberfläche auf der Client-Seite entwerfen. Der Developer stellt alle Elemente von Javas Abstract Window Toolkit (AWT) zur Verfügung. Dank spezieller Erweiterungen lassen sich auch Datenbanktabellen übersichtlich präsentieren. Der nötige Java-Code wird automatisch generiert und der Anwender braucht lediglich festzulegen, welches Ereignis eine bestimmte Datenbankoperation nach sich zieht.

Über einen Query-Editor werden alle für die Anwendung relevanten Anfragen an die Datenbank festgelegt. Egal ob Abfragen, Einfüge- oder Löschoperationen, die Logik des Editors ist so aufgebaut, daß alle Arbeitsschritte bequem erledigt werden können. Da alle Tabellen der ausgewählten Datenbank in Form einer Baumstruktur visualisiert werden, kann der Entwickler jederzeit per Mausklick den nötigen SQL-Code erzeugen. Dabei stehen ihm alle Konstrukte zur Verfügung, die Standard-SQL vorsieht. Allerdings muß man betonen, daß ohne ein gewisses Maß an Java- und SQL-Kenntnissen alle Möglichkeiten dieses Tools kaum ausgenutzt werden können.

Abschließend wird die gesamte Applikation in der Entwicklungsumgebung kompiliert und getestet. In Sachen Fehlersuche besteht bei Apptivity allerdings noch Nachholbedarf. Programmierfehler werden zwar angezeigt, jedoch besitzt die Entwicklungsumgebung keinen Debugger. Positiv zu vermerken sind die vielen Konfigurationsmöglichkeiten. Wem beispielsweise der Editor zu asketisch ist, der kann auch ein ihm angenehmes Modell verwenden. Auch ein schnellerer Just-In-Time (JIT-) Compiler kann bei Bedarf eingebunden werden.

Der Zugriff auf die Datenbank erfolgt via Java Database Connectivity (JDBC). Sie wurde von Sun als einheitliche Schnittstelle für diesen Zweck konzipiert und gehört zum Lieferumfang des aktuellen Java Development Kit (JDK) 1.1. Für Apptivity kommen daher alle Datenbanken in Frage, für die bereits JDBC-Treiber existieren, beispielsweise Oracle, Sybase oder Informix. Wer ODBC-fähige Datenquellen benutzen möchte, muß den Umweg über die JDBC-ODBC-Bridge nehmen. Diese Methode ist zwar etwas langsamer im Zugriff, stellt aber zumindest eine praktikable Übergangslösung dar.

Auch in Sachen Skalierbarkeit hat sich Apptivity einiges einfallen lassen. Bei Bedarf lassen sich weitere Instanzen des Servers starten, über die die Arbeitslast dynamisch verteilt wird. Diese Instanzen laufen entweder als eigener Prozeß oder als Java-Thread. Sollte man zu einem späteren Zeitpunkt wieder weniger parallele Zugriffsmöglichkeiten brauchen, werden die überflüssigen Prozesse angehalten und verschwenden somit keinen Speicherplatz.

Der Apptivity Developer kostet 1995 Dollar, der Applikations-Server mit zehn Nutzerlizenzen ist für 2500 Dollar erhältlich. Weitergehende Informationen sind unter http://www.apptivity.com zu finden. Dort findet sich auch eine zeitlich begrenzte Testversion.

*Thomas Nitsche arbeitet als freier Autor in München.