Die Early Access Release des WebService Developer Pack im Detail

Attack of the Web Services

Andreas Holubek

Betrachtet man sich zur Zeit die IT-Gemeinde, kommt man um die WebServices nicht mehr herum. Jede Sprache und jedes System, sei es .NET, Java etc., versucht mit der bestmöglichen Implementierung aufzutrumpfen. Natürlich könnten wir uns an dieser Stelle fragen, wie die theoretisch optimale Lösung beschaffen sein sollte, aber für heute werden wir dem neuen Hype ein Stück in die reale Java-Welt folgen.

Pünktlich zur Java SE Version 1.4 liegt auch das Java Web Services Developer Pack (JWSDP) in einer ersten Version vor. Schon beim Download [1] oder der Installation wird einem die Dimension deutlich. So entpacken sich die ca. 26 MByte großen Installationsfiles auch auf 53 MByte Festplatte. Spätestens hier erahnt man zum ersten Mal, dass es sich wohl nicht um ein weiteres Standard API oder eine Sammlung von Bibliotheken handelt. Es handelt sich tatsächlich um eine vollständige Entwicklungsumgebung für WebServices und für dynamische Web-Inhalte. Abpictureung 1 zeigt einen Überblick über die Bestandteile.

Abb. 1: Bestandteile des JWSDP

Betrachtet man sich den Inhalt genauer, fällt als Erstes sicherlich ein alter Bekannter – das XML-Pack – auf. Damit fängt aber auch die Verwirrung an. Leider wird nicht das XML-Pack als Ganzes mit hineingenommen (Fall, Winter, … – 01 Release), sondern die einzelnen APIs werden speziell aufgezählt. Da aber derzeitig noch alle Versionsnummern synchron sind, bleibt zu hoffen, dass es sich lediglich um eine Ausschmückung der Inhalte im JWSDP handelt. Im Folgenden werden die einzelnen APIs des XML-Packs etwas genauer vorgestellt.

JavaTM API for XML Messaging („JAXM“) 1.0 EA 1

Das Java API for Messaging (JAXM) definiert einen Standard für Nachrichten und deren Austausch zwischen verschiedenen Systemen auf Basis von XML. Dabei wird das genaue Format der Nachricht und die möglichen Protokolle offen gelassen. Mögliche Formate sind zum Beispiel SOAP oder auch ebXML. Folgende Ziele werden mit JAXM verfolgt:

  • Unterstützung für Standard-Nachrichtenformate und Adressen
  • Sichere Auslieferung von Nachrichten, Verfolgung des Weges einer Nachricht
  • Unterstützung für Nachrichtentemplates
  • Definition der zu nutzenden Datentypen und Formate
  • Definition von Zugriffskontrolle, Sicherheitsmechanismen sowie Authentifikation und Autorisation

Ein wichtiger Bestandteil des JWSDP ist die Integration der Standard Tag Library aus dem Jakarta-Projekt. Diese Tag Library trennt die Programmlogik aus einer JSP-Seite heraus. Web Designer können somit ohne Java Code anspruchsvolle Seiten gestalten. Das Hauptziel der Standard Tag Library ist die Bereitstellung einer Script- freien Umgebung für den Designer.
In der verfügbaren EA3 Version wird die Basis für die zukünftige Bibliothek gelegt. So sind neben den verschiedenen Iterator-Tags auch Elemente zur Bearbeitung von XML, zur Lokalisierung von Seiten und zum Datenbankzugriff via. JDBC enthalten.

Java WSDP Registry Server 1.0 EA 1

Ein Registry Service stellt einen Mechanismus zum Finden und Erkennen von Web-Services zur Verfügung. Der im Java WSDP enthaltene Registry Server implementiert die Version 1 des Universal Description-, Discovery- and Integration (UDDI)-Projektes. Er stellt eine UDDI-kompatible Registry für Web-Services in einem privaten Umfeld bereit. Primär ist er jedoch als Testumgebung (Test-Registry) für die Web-Service-Entwicklung gedacht. So kann er genutzt werden, um Anwendungen zu testen, welche das Java API for XML Registries (JAXR) nutzen. Im JSWDP ist zusätzlich ein Registry-Browser für Testzwecke enthalten.
Informationen, welche in der Registry abgelegt sind, werden in einem Repository gespeichert. Das Repository für den JWSDP Registry Server ist die XML-Datenbank Xindice, welche Teil des Apache XML- Projektes ist.

Offene Fragen und Offene Antworten

Mehr als bei anderen Bibliotheken oder Entwickler-Kits bleiben beim Java Web Services Developer Kit Fragen offen. Die Java Architecture for XML Binding (JAXB) befindet sich schon seit längerem in einem Early Access- Stadium, hat es aber bis heute weder in das XML-Pack noch ins JWSDP geschafft, obwohl das performante Lesen und Schreiben von XML-Dokumenten in und aus einer Objektstruktur nicht unterschätzt werden darf. Das zweite wichtige API betrifft die JavaServer Faces. Einmal fertiggestellt, werden die JavaServer Faces die Entwicklung von Webanwendungen deutlich positiv beeinflussen. Genau wie heute Clientanwendungen auf ein reiches Angebot an GUI-Komponenten zugreifen können (Swing), wird das in Zukunft auch für Web-Forms möglich sein. Mit der Standard Tag Library (JSTL) wurde ein erster Schritt getan, diese kann aber nicht an die Idee hinter dem JSR-127 (JavaServer Faces) heranreichen. Hier hat wahrscheinlich der Zeitplan für das JWSDP einen Strich durch die Rechnung gemacht.
Ein anderer offener Punkt wird gern als Versionshölle‘ bezeichnet. So befindet sich ein XML Parser derzeitig in dem J2SE ab 1.4, dem XML Pack, dem Java Web Services Developer Pack, vielen J2EE- Implementierungen und vielen Client-Programmen, die noch vor Java 1.4 entwickelt worden sind, um nur einige zu nennen. Wenn jetzt Bug-Fixes, Erweiterungen etc. am Parser durchgeführt werden, ist es für den Entwickler nicht mehr ganz so einfach, diese neuen Archive einzuspielen (verschiedene Parser können jedoch über Umgebungseinstellungen bekannt gemacht werden – aber nur wenn diese verschiedene Namen haben). So ist im J2SE 1.4 der JAXP 1.1 (JSR-63) enthalten, im XML- und Web Services Pack jedoch schon JAXP 1.2EA. Eine geeignete Lösungsstrategie muss noch diskutiert werden.

Das Tutorial

Gut gelungen ist das zum JWSDP erhältliche Tutorial. Ein Doppelklick auf das bereitgestellte PDF-Dokument mit über 500 Seiten präsentiert eine unglaubliche Menge an Informationen. Parallel dazu existiert ein umfangreiches HTML-Dokumentationsset. Viele Beispiele demonstrieren sehr anschaulich die Nutzung von Web-Services in der Praxis. Wie wäre es zum Beispiel mal mit einem Übersetzungs-Service in ihrer Anwendung (siehe Abb. 2)?

Abb. 2: Nutzung des Altavista babelfish translation service
Geschrieben von
Andreas Holubek
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.