Sonntag, April 15, 2007

Templates für dynamische Webserviceaufrufe

Im letzten Bericht hatte ich euch über meine neuen Aufgaben im Projekt berichtet. Ich war nun dabei, einen Prototypen zu implementieren, der aus einer WSDL-Datei (WebService Definition Language ) dynamisch Templates für den Aufruf des Services erzeugt, um diese später nur noch mit Daten zu befüllen und abzuschicken. Diese Funktionalität wurde schon von einigen Tools, unter anderem SoapUI, umgesetzt. Allerdings bestehen mit diesen Programmen zu viele Abhängigkeiten zu anderen Bibliotheken und deshalb haben wir im Team beschlossen, die Templategenerierung selbst zu implementieren und in einen Dienst auszulagern. Dies sollte auch auf lange Sicht unserer geplanten Architektur genügen, aber dazu in einem späteren Bericht mehr. Weiterhin konnte man mit diesem Lösungsansatz schneller auf Fehler und veränderte Anforderungen reagieren.

Als erstes galt es, sich für eine Technologie zu entscheiden. Nach kurzer Suche im Internet sind wir auf die wsdl4j - Bibliothek gestoßen, mit deren Hilfe sich eine WSDL-Datei ganz leicht in ihre einzelnen Bestandteile zerlegen lässt. Auf die einzelnen Beschreibungen der Operationen und Parameter kann man dann mittels Javamethoden zugreifen. Nach einer ersten euphorischen Stimmung, wie einfach das Thema doch zu bearbeiten ist, fingen aber auch schon die Probleme an. Für einfache Webservices stellte diese Methode der Aufbereitung kein Problem dar . Es dauerte nur wenige Stunden und ich konnte aus einer WSDL ein Template für Operationen mit einfachen Parametern generieren. Für komplexe oder Arraydatentypen war dies aber nicht ganz so einfach.

Dazu musste die WSDL genauer analysiert werden. Jede WSDL führt im ersten Part ein Inhaltsverzeichnis und eine Aufschlüsselung aller in der WSDL verwendeten komplexen Objekte mit. Auf diesen Teil musste ich nun zugreifen, um auch die komplexen Datentypen in Objekte mit simplen Attributen zerlegen zu können. Die wsdl4j – Bibliothek stellte für den Zugriff auf diesen Part nur unzureichende Funktionalität zur Verfügung und ich musste eine anderen Weg finden. Nach einiger Suche mit google ( der beste Freund des Programmierers ) bin ich auf einen Lösungsansatz gestoßen, bei dem der Abschnitt auf den ich zugreifen wollte, in ein JDOM - Objekt umgewandelt wurde, auf das man nun etwas einfacher zugreifen konnte. Nach ein zwei Fehlversuchen funktionierte es dann aber auch endlich und ich konnte mit der eigentlichen Implementierung fortfahren.

Da die Verschachtelung der komplexen Objekte theoretisch eine beliebige Tiefe erreichen konnte, war hier ein rekursives Vorgehen bei der Aufschlüsselung in simple Datentypen angebracht, was ich letztendlich auch so umsetzte.

Es dauerte noch bis zum Ende der Woche , bis mein Prototyp auch komplexe und Arraydatentypen verarbeiten konnte. Als Kontrolle dienten mir dabei die von SoapUI erstellten Templates.

Am Mittwoch hatte ich mich mit ein paar Arbeitskollegen aus einem anderen Team zum Lunch verabredet. Eine gute Gelegenheit, um über den eigenen Tellerrand zu schauen und Erfahrungen auszutauschen. Gleich am nächsten Tag hatte ich noch ein Mittagessen außerhalb meines Teams.

Tamas und ich hatten uns einen Termin ausgemacht, um das Essen in einer der anderen Kantinen auszuprobieren. Ich kannte bis dato nur das Essen der Betriebskantine. Auf dem Firmengelände gibt es aber drei Kantinen, von denen die von uns ausgesuchte die Beste sein sollte. Dies war auch nicht übertrieben, denn man konnte den Köchen beim Zubereiten der Gerichte zuschauen und die Auswahl an Speisen war um einiges größer.

Am Abend desselben Tages war Tönnies von Donop in Hamburg, um die neue SI&T-Struktur im Zuge der Umstrukturierung von Accenture vorzustellen und uns bei Fragen Rede und Antwort zu stehen. Da durfte ich natürlich nicht fehlen. Nach dem offiziellen Part ließen wir den Abend noch mit Fingerfood und ein paar Cocktails ausklingen.

Den Freitag nutzte ich dann, um meine Arbeit am Prototypen abzuschliessen und eine entsprechende Dokumentation zu beginnen, die ich allerdings im Laufe der nächsten Woche noch beenden müsste.

Und schon war auch das Wochenende in greifbare Nähe gerückt. Ich hatte mir vorgenommen, dem Planetarium in Hamburg einen Besuch abzustatten. Meine Freundin und ein Arbeitskollege haben mich in eine Vorführung über die Zukunft unseres Planeten begleitet. Auch wenn das Programm mehr auf Kinder zugeschnitten war, was man eindeutig am Publikum ausmachen konnte, war ich im Nachhinein positiv überrascht, vor allem was die Qualität der Vorführung anging. Eine Adresse in Hamburg, die man definitiv weiterempfehlen kann.

Thomas

Keine Kommentare: