Die Integration verschiedenartiger Informationssysteme und Datenquellen ist eine ständig wiederkehrende Anforderung. Neben dem „klassischen“ Anwendungsbereich in der betrieblichen Datenverarbeitung ist die Integration – z.B. auch bei der Realisierung von Data-Warehouse-Systemen und Unternehmensportalen – von zentraler Bedeutung. Integration spielt darüber hinaus auch für eine sanfte Migration von Alt- auf Neusystemen eine wesentliche Rolle, da in der Übergangsphase Alt- und Neusystem zusammenarbeiten müssen. Die Information ist ein wettbewerbsentscheidender Faktor, Entscheidungsträger, Mitarbeiter, Partner und auch Kunden benötigen Wissen und Informationen, die in Datenhaltungssystemen lagern. Diese Daten lassen sich allen Benutzern am besten mit plattformunabhängigen Lösungen über JDBC-Treiber und Java-Applets/-Servlets zur Verfügung stellen.

Die Informationen und Daten sind in funktions- oder abteilungsspezifischen Applikationen auf zentralen und dezentralen bzw. abteilungseigenen Systemen abgelegt und lagern in relationalen Datenbanken (DB2, Oracle, Sybase, Informix, MS SQL Server), in hierarchischen Datenbanken (DL1 bzw. IMS) oder als VSAM-Files. Der Anwender erhält direkten Zugriff auf die Datenbestände durch Standard-Schnittstellen wie ODBC (Open Database Connectivity) oder JDBC (Java Database Connectivity). Die JDBC-Schnittstelle ist das Java-Pendant zur ODBC-Schnittstelle. Alle Java-Applikationen und Java-Applets/Servlets greifen via JDBC auf Datenbanken zu, sofern ein JDBC-Treiber für diese vorhanden ist.

Der JDBC-Treiber stellt einen direkten Link von Java-Applets, Java-Applikationen oder Java-Servlets mit JDBC-Schnittstelle zum Server via TCP/IP und den dort residierenden Datenbanken her. Zum Web-Zugriff wird in diesem Fall auf Client-Seite lediglich ein Browser benötigt. Als Schnittstelle für Entwickler können JDBC 1.2 API und JDBC 2.0 API verwendet werden. Die so entwickelten Lösungen verhalten sich je nach Ausrichtung verschieden. Diese Unterschiede beschreibt der Artikel, wobei er ein Hauptaugenmerk auf die Servlet-Anbindung legt. Den Ausführungen zugrunde gelegt sind JDBC-Treiber Typ 4.

Applets, Applikationen und Servlets

Ein Applet ist ein Java-Programm, welches innerhalb eines Browsers arbeitet und auf Web-Seiten platziert werden kann. Ausgeführt wird das Applet auf dem lokalen Rechner des Nutzers, der die Seite aufgerufen hat. Administratoren installieren das Applet also zentral auf dem Web-Server. Nach dem Download des Applets spricht es den JDBC-Treiber auf dem Web-Server an, dieser wird ebenso heruntergeladen und dann im Browser ausgeführt. Das Applet braucht die Erlaubnis, sich mit der Zieldatenbank zu verbinden; anschließend stellt der JDBC-Treiber die Verbindung her (Abbildung 1).

Im Gegensatz dazu liegen Java-Applikationen lokal auf dem Client, ebenso der JDBC-Treiber. Der Download als Applet entfällt, allerdings erhöht sich der Installationsaufwand bei einer größeren Anzahl Clients enorm. Der Verbindungsaufbau zur Datenbank erfolgt dann ähnlich dem Aufbau bei Applets. Die lokale Applikation spricht den lokalen JDBC-Treiber an, worauf dieser wiederum die Verbindung zur Datenbank aufbaut.

Ein Servlet ist ein Java-Programm, das serverseitig ausgeführt wird. Dadurch wird der Client-Computer nicht belastet und es sind trotzdem komplexe Anwendungen möglich, da Servlets die ganze Breite an Java-Funktionen nutzen können. Der Vorteil besteht darin, dass nur der Web-Server entsprechend konfiguriert werden muss (bei Applets und Applikationen muss auf Client-Seite eine Java Virtual Machine (JVM) installiert sein). Auch der JDBC-Treiber liegt auf dem Web-Server und baut von dort – nach Aufforderung vom Servlet – die Verbindung zur Datenbank auf (Abbildung 2). Oberflächlich betrachtet sind sich Servlets und CGI-Skripts ähnlich; beide generieren im Wesentlichen eine HTML-Seite. Die dahinterstehende Technologie weist jedoch enorme Unterschiede auf. Ein Vorteil von Servlets gegenüber CGI-Programmen ist, dass diese um einiges schneller in der Ausführung sind, also wesentlich mehr Requests pro Zeiteinheit bearbeiten können. Dies ist dadurch begründet, dass Servlets nicht als eigener Prozess laufen, sondern lediglich ein neuer Thread gestartet wird. Einmal aufgerufen bleibt das Programm im Speicher. Bei CGI-Skripts hingegen startet der Interpreter im Fall der am häufigsten anzutreffenden Skriptsprache „Perl“ bei jedem Request erneut. Deshalb kommt es zu erheblichen Performance-Einbußen. Das Vorhalten des Servlets im Speicher ermöglicht auch persistente Objekte, d.h.: Objekte können wiederverwendet werden. Gerade für Applikationen, die auf Datenbanken zugreifen, ist dies vorteilhaft, da die Verbindung zur Datenbank nur ein einziges Mal hergestellt werden muss.

Ablauf bei Anfragen

Servlets nehmen GET- oder POST-Anfragen eines Clients entgegen. Sie verarbeiten dann auf dem Server die im Query String enthaltenen Daten. Mehrere Servlets können untereinander kommunizieren. Als Output erzeugt ein Servlet Zeichenketten, die an den Client zurückgeschickt werden. Servlets haben kein eigenes grafisches User Interface. Sie erfordern auf dem Server die Zusammenarbeit mit der Servlet Engine und einer JVM (mindestens Version 1.2 und Servlet-Erweiterungen JDK2.0 oder 2.1). Im Servlet können Daten (z.B. aus einer HTML-Form) entgegengenommen und anhand der definierten Business-Logic verarbeitet werden.

Aufrufen eines Servlets

Ein Servlet wird von einem Client aufgerufen. Aus Sicht des Clients gibt es verschiedene Wege, ein Servlet aufzurufen. Entweder ruft der Web-Browser des Clients das Servlet mittels dessen URL auf, oder der Aufruf erfolgt aus HTML-Seiten heraus. Innerhalb des Servlets können Daten von der Datenbank abgefragt oder auf diese geschrieben werden. Die Datenbankverbindung kann dabei temporär auf- und wieder abgebaut oder permanent gehalten werden.

Ein Treiber für (fast) alle Datenbanken

Mit HOBLink J-DRDA (JDBC Treiber Typ 4) bereitet die Web-Integration verschiedenster Datenbanken keine Probleme. Die Anbindung erfolgt entweder als Applikation, Applet oder Servlet. Alle verfügbaren DB2-Datenbanken sowie alle Datenbanksysteme, die der DRDA-Architektur entsprechen, sind eingebunden. Mit HOBDB connect im Zusammenspiel gehören auch die Datenbank Management Systeme MS SQL Server, Oracle, Sybase, Informix sowie alle weiteren Datenbanken, die den Zugriff per ODBC erlauben, zur Lösung. Ganz entscheidend dabei: Das ressourcenschonende DRDA-Protokoll findet Verwendung.

Einbindung von Legacy-Daten aus Datenhaltungssystemen (VSAM, DL/1) in Web-Konzepte

Viele Unternehmensdaten sind als VSAM-Dateien gespeichert. Ebenso besitzt das Datenbanksystem DL/1 eine zentrale Rolle in der Datenhaltung vieler Großunternehmen. Diese Applikationen laufen stabil. Eine Umstellung auf SQL bzw. DB2 ist sehr aufwändig, weil alle Programme mehr oder weniger stark geändert werden müssten. Auch sind diese Zugriffsmethoden sehr performant, so dass die Umstellung auf SQL nicht lohnt. Mit HOBDB online, einem CICS-Transaktionsprogramm für MVS/CICS und VSE/CICS, wird dieser Zugriff auf JDBC-, ODBC- oder eSQL-Basis (eingeschränkt auf dynamisches SQL) realisiert. Durch Definition der Datenstruktur (VSAM, DL1) in HOBDB online ist ein Arbeiten mit SQL-Statements möglich. HOBDB online emuliert eine relationale DB2-Datenbank. Der Zugriff auf diese älteren Datenbestände kann in Verbindung mit HOBLink J-DRDA mit jeder JDBC-fähigen Java-Lösung durchgeführt werden.

Fazit

Die Integration heterogener und verteilter Datenbanken in e-Business-Konzepte lässt sich durch den Einsatz von universellen Datenbank-Treibern erheblich erleichtern. Ob Unternehmen sich für Java Applets, Applikationen oder Servlets entscheiden, hängt vom Einsatzzweck ab. Grundvoraussetzung bildet immer ein JDBC-Treiber für die jeweilige Datenbank.

HOB electronic GmbH & Co. KG

D–90556 Cadolzburg

Telefon: (+49) 09103/715-0

www.hob.de