![]() |
![]() | ![]() | ![]() | Fallstudie: Erstellung eines neuen WebserviceEin erfolgreiches und innovatives Unternehmen mit mehreren Produktlinien und unterschiedlichen Entwicklungszyklen benötigte eine Methode, um das gesamte Unternehmen über alle Features der neuesten Produktversionen immer auf neuestem Stand zu halten. Übersicht Das Produktmanagement-Team bei Altova erstellte eine Datenbank für Produktinformationen, über die die verschiedenen Abteilungen (Verkauf, Support, Buchhaltung usw.) jederzeit Informationen zu jedem beliebigen Altova-Produkt abrufen konnten. Als ideale Methode, um die Daten abteilungsübergreifend überall in der Firma zur Verfügung zu stellen, erwies sich ein Webservice im Firmen-Intranet.
Aufgabenstellung Im Rahmen der Projektanalyse wurden sechs Aufgabenpunkte bzw. Fragestellungen ermittelt, die hier nach Schwierigkeitsgrad - vom einfachsten bis zum zeitaufwändigsten - gereiht sind: F: Welchen Namen soll der Webservice erhalten? Als Name für den Webservice wurde altovaCatalog gewählt F: Wo soll der Webservice laufen? Der Webservice wird in einem hausinternen Serververzeichnis namens /services/altovaCatalog angelegt werden. F: Wie soll die Client-Kommunikation mit dem Webservice erfolgen? Die Webservice Client-Applikationen werden SOAP- / RPC-codierte Messages senden und empfangen. Für den Anfang wird die Webservice-Kommunikation mit dem Endbenutzer über einen Webbrowser erfolgen, doch können zu einem späteren Zeitpunkt andere Client-Applikationsarten hinzugefügt werden. F: Welche Operationen soll der Webservice ausführen? Es wurden drei Operationen ausgewählt: Abrufen einer Liste von Produktkategorien, Anzeigen einer Liste von Produkten in einer Kategorie und Anzeigen von detaillierten Informationen zu einzelnen Produkten. F: Welche Parameter werden für die einzelnen Operationen als Input benötigt und was soll als Ergebnis zurückgegeben werden? Abrufen einer Kategorieliste - dies ist eine Abfrage ohne Parameter, die eine Liste der in der Datenbank definierten Kategorien zurückgibt.
F: Welche Datentypen oder Datenstrukturen werden von den einzelnen Input- und Output-Parametern benötigt? Die Datentypen sollen auf der Struktur der bestehenden Datenquelle basieren. Lösung Zum Definieren der Funktionalität des Webservice wurde eine WSDL-Datei benötigt. Diese WSDL-Datei sollte ein Schema enthalten, in dem die Datenstrukturen, die von Webservice-Abfragen und Antworten übergeben werden, identifiziert werden. Mit Hilfe von Altova XMLSpy wurde eine Verbindung zur Datenbank hergestellt, in der die Produktinformationen gespeichert sind und es wurde automatisch ein XML-Schema generiert, welches anschließend für den Webservice optimiert wurde. Zur Auswahl des RPC Message-Stils mussten die Schema-Komponenten als Typen und nicht als Elemente definiert werden, und die in den SOAP Messages zu übergebenden Parameter mussten in der Schema-Hierarchie als globale Komponenten strukturiert werden. Dies ließ sich in XMLSpy mit wenigen Mausklicks bewerkstelligen.
Schema für die in der Datenbank gespeicherten Produktinformationen, das für den Webservice optimiert wurde Nach Fertigstellung des optimierten Schemas erstellte der Entwickler über die XMLSpy Menüoption Datei / Neu eine neue WSDL-Datei, die er in das Schema einfügte. Als nächstes wurden die Services, Bindings und Operationen mit ihren jeweiligen Inputs und Outputs im XMLSpy WSDL Designer definiert. Die Arbeit erfolgte in der graphischen Ansicht, in der die Struktur des Webservice klar zu erkennen ist, während XMLSpy im Hintergrund automatisch eine WSDL-Datei mit über 175 Zeilen (mehr als 7.000 Bytes) erzeugte, die jederzeit durch Wechseln in die Textansicht überprüft werden konnte.
Graphische Ansicht der fertigen WSDL-Datei in XMLSpy.
Als nächstes wurde über das XMLSpy-Menü "SOAP" ein SOAP Request der WSDL-Datei für jede der drei Operationen erstellt. Dazu wurden die Operationen einfach aus einer Liste in einem Dialogfeld ausgewählt, der Rest wurde von XMLSpy erledigt. Die SOAP Requests wurden zum späteren Testen und für die Erstellung des Browser-basierten Webservice Clients als XML-Dateien gespeichert.
MapForce Mapping für die Operation getProductsByCategoryID. Die Datenbank wird in der linken oberen Ecke angezeigt, die Input Message in der linken unteren Ecke und die Antwort des Webservice auf der rechten Seite.
Mit Hilfe des integrierten MapForce-Prozessors wurden die Mappings noch während der Erstellung getestet. Dazu musste nur die zuvor in XMLSpy gespeicherte SOAP Request XML-Datei als Input für die Operation zugewiesen werden. Dies erfolgte durch Rechtsklick und Eingabe des Dateipfads im Dialogfeld "Komponenteneinstellungen". Bei Klick auf das MapForce Register "Ausgabe-Vorschau" unterhalb des Mapping-Fensters wurde die Request-Beispieldatei so verarbeitet, als handelte es sich um eine SOAP Message, die Datenbank wurde mit Hilfe der in der Request-Datei enthaltenen Parameter abgefragt und das Ergebnis, die SOAP Response, wurde im XML-Format angezeigt. Dank dieses Verfahrens konnte die Entwicklung enorm beschleunigt werden, da kein Programmquellcode geschrieben, kompiliert oder bereitgestellt werden musste, um die Funktionsfähigkeit einer Webservice-Operation zu testen.
Das XMLSpy-Menü "SOAP" Zum Schluss werden mittels der ASP Skriptsprache die Webseiten für die Webservice Client-Schnittstelle erstellt. In XMLSpy wurde schließlich ein XSLT Stylesheet erstellt, um die XML-Antworten des Webservice in ansprechende HTML-Seiten zu transformieren, die im Webbrowser angezeigt werden.
Browser-Ansicht der Produkte in der Kategorie "Software" Bald zeigte sich auch ein entscheidender Vorteil der Webservice-Implementierung, als ein Produktmanager zur Beschreibung neuer Funktionen in der neuesten Produkt-Release eine neue Kategorie zur Datenbank hinzufügte. Da die neue Kategorie neue Informationen zur Datenbank hinfügte, die zugrunde liegende Datenstruktur dadurch aber unverändert blieb, und da der Webservice so ausgelegt war, dass bei jeder Ausführung eine Liste der Kategorien abgerufen wird, musste der Webservice nicht adaptiert werden und die neuen Informationen standen sofort firmenweit zur Verfügung.
Browser-Ansicht einer Produktinformationsseite. Beachten Sie die neue Kategorie links oben.
Um den altovaCatalog Webservice online bereitszustellen, sendete der Produktmanager einfach eine E-Mail-Ankündigung an die jeweiligen Abteilungen. Die E-Mail enthielt einen Link zur anfangs angezeigten Produktkategorieliste, über die die Katalogdaten sofort abrufbar waren.
| ![]() |
![]() | ![]() | ||||||||||||
| Altova | Rechtsabteilung | Presse | Partner | Karriere | Übersicht | Kontakt | Altova Blog | |||||
|
