J2EE: Applikationsentwicklung verliert an Komplexität

24.11.2003
Von Evgenia Rosa

Der nächste Schritt ist die Verteilung (Deployment) des Archivs auf den Application Server. Diesen Schritt unterstützen die meisten Entwicklungssuiten für mehrere Application Server mit einem einzigen Mausklick. Dabei wird das J2EE Web Service Archive entpackt und entsprechend den J2EE-Vorschriften so im Application Server verteilt, dass der Web-Service sofort lauffähig ist. Um vorab die Funktionsfähigkeit des Web-Service zu testen, erzeugen die meisten Ablaufumgebungen automatisch einen Test-Client in Form einer Java Server Page.

Datenbank: Provider oder Consumer

Als letzte Aufgabe muss die Client-Anwendung geschrieben werden. Hier profitiert der Java-Entwickler vom generierten Client-Stub. Es muss lediglich dafür gesorgt sein, dass im Client-Programm die gewünschten Web-Service-Aufrufe als lokale Java-Methodenaufrufe auf dem Stub programmiert sind.

Nicht nur Java-Applikationen lassen sich als Web-Services bereitstellen, sondern auch vorhandene Datenbankanwendungen können sehr komfortabel entsprechend "umgewandelt" werden. Dabei unterscheidet man grundsätzlich zwei Mechanismen: die Datenbank als Provider oder als Consumer. Im ersten Fall steckt die Implementierung, also die Programmlogik, in der Datenbank und soll als Web-Service von außen zugänglich sein. Dadurch lässt sich ein Zugriff auf relationale und multimediale Daten, XML-Dokumente und weitere Datenbankobjekte für andere, etwa Browser-basierende Anwendungen umsetzen. Der Vorteil: Auf diese Weise sind früher getätigte Investitionen in datenbankgestützte SQL-Anwendungen geschützt. Mit einem entsprechenden Tool werden die SQL-Prozeduren in eine Java-Hülle gepackt und eine Beschreibung mit WSDL angelegt. Per Soap können dann andere Programme darauf zugreifen.

Vorhandene Logik nutzen

Fungiert eine Datenbank als Consumer, holt sich die SQL- oder Java-Stored-Procedure-Anwendung Daten aus einem anderen System via Web-Service. Dazu müssen Soap-Bibliotheken sowie der Java-Client-Proxy in die Datenbank geladen werden, um den entfernten Service aufzurufen. Dies ist ein einfaches Mittel, um Logik, die in der Datenbank vorhanden ist, effizient zu nutzen. So lassen sich je nach Bedarf Daten, die sich permanent ändern (zum Beispiel Aktien- und Währungskurse, Zinssätze oder Wetterinformationen) aus einer Datenbankanwendung abfragen. Ein Beispiel: Unterschreitet der Lagerbestand, der durch eine Datenbanktabelle repräsentiert ist, einen bestimmten Mindestwert, wird automatisch die Nachbestellung der Ware im Lieferantensystem durch eine Soap-Nachricht ausgelöst.