Der Webservice wurde entwickelt, um eine andere, auf XML basierende Möglichkeit für die Interaktion mit der von der Auktionsanwendung verwendeten Artikeldatenbank bereitzustellen. Über den Webservice des Auktionsbeispiels können Benutzer Artikel in der Datenbank hinzufügen und löschen und Informationen zu einem oder allen aktuellen Auktionsartikeln anzeigen.
Bei einem Webservice handelt es sich um eine Gruppe zusammengehöriger Anwendungsfunktionen, die im Internet publiziert, lokalisiert und aufgerufen werden können. Webservices ermöglichen mit Hilfe von XML-basierten Komponenten die Interaktion von Anwendungen, die auf unterschiedlichen Plattformen ausgeführt werden und in unterschiedlichen Sprachen programmiert sind.
Bei der Entwicklung von Webservices werden zwei Hauptvorgehensweisen unterschieden: Top-down und Bottom-up. Beim Top-down-Verfahren wird ein Webservice, wie in WSDL- (Web Services Description Language) und XSD-Dateien (XSD) definiert, auf der Basis der Webservice-Schnittstelle und der XML-Typen entwickelt. Vom Entwickler wird diese Skeleton-Implementierung anschließend geändert, so dass sie eine Schnittstelle zur Geschäftslogik darstellt. Beim Bottom-up-Verfahren wird ein Webservice auf Basis der vorhandenen Geschäftslogik in Java-Beans oder EJBs erstellt. Eine WSDL-Datei wird generiert, um die entstandene Webservice-Schnittstelle zu beschreiben. Das Top-down-Verfahren ermöglicht eine umfassendere Steuerung der Webservice-Schnittstelle und der verwendeten XML-Typen. Dieses Verfahren wird deshalb für die Entwicklung von Webservices empfohlen.
Der Webservice des Auktionsbeispiels wurde mit dem Top-Down-Verfahren entwickelt, d. h. es wurden zunächst die WSDL-Datei und die XSD-Datei definiert. Die WSDL-Datei definiert die anzuzeigende Oberfläche, die aufzurufenden Operationen und die bei Ausführung der jeweiligen Operationen zu übergebenden Nachrichten. Für die exakte Definition dieser Nachrichten verweist die WSDL-Datei auf die XSD-Datei.
Die folgende Abbildung veranschaulicht die verschiedenen Phasen bei der Entwicklung des Webservices. WSDL- und XSD-Editoren werden zum Definieren von WSDL- und XSD-Dateien verwendet. Die zweite Komponente, das Java-Bean-Skeleton, enthält drei unterschiedliche, mit einem Assistenten entwickelte Bestandteile. Da diese Bestandteile gleichzeitig generiert und als eine Einheit getestet werden, werden sie an dieser Stelle auch zusammen beschrieben.
Die Webservice-Schnittstelle und die XML-Typen, die in der WSDL-Datei und der XSD-Datei definiert sind, beschreiben durch die Definition von Elementen und den zugehörigen Aktionen die optische Darstellung und die Funktionsweise des Webservices.
Bei der Entwicklung des Webservices wurde mit dem XML-Schemaeditor eine neue XSD-Datei erstellt, die die an den Webservice übergebenen XML-Schematypen definiert.
Anschließend wurde mit dem Assistenten für das Erstellen neuer WSDL-Dateien eine neue WSDL-Datei erstellt. Der Assistent erstellt eine Skeleton-WSDL-Datei mit der Standarddarstellung und unter Verwendung des Dokumentliterals. Dies entspricht den WS-I-Empfehlungen (Web Services Interoperability Organization). Bei der WS-I handelt es sich um ein offenes, von verschiedenen Industrie-Unternehmen gebildetes Gremium, das Richtlinien veröffentlicht, um die Interoperabilität von Webservices unterschiedlicher Hersteller sicherzustellen.
Die Skeleton-WSDL-Datei wurde nach dem Erstellen mit dem WSDL-Editor bearbeitet. Es wurden neue
Operationen, Nachrichten und Teile in der WSDL-Datei erstellt und ein neues Binding generiert. Der
WSDL-Editor ist eng mit dem XML-Schemaeditor verknüpft und ermöglicht den Aufruf dieses Editors,
so dass die Bestandteile der WSDL-Datei auf die in der XSD-Datei definierten XML-Teile verweisen
können (siehe Abbildung).
Das Java-Bean-Skeleton wird mit dem Assistenten 'Webservices' über die WSDL- und die XSD-Datei erstellt. Der Assistent 'Webservices' generiert den Java-Code nach dem JAX-RPC-Programmiermodell. Die Webservice-Implementierungsdeskriptoren werden gemäß der J2EE-Spezifikationen für Webservices generiert.
Das parallele Erstellen von Java-Proxy und Beispiel-JSP mit dem Skeleton-Webservice ermöglicht es, alle Elemente des Webservices problemlos gleichzeitig zu testen.
Nach dem Erstellen des Webservice-Skeletons wurde die generierte Java-Skeleton-Implementierungsdatei mit dem Java-Editor geöffnet, der entsprechend den Definitionen in der WSDL-Datei die erforderliche Schnittstelle für die Methoden enthält. An diesem Punkt wurde vom Entwickler durch Änderungen an der Skeleton-Implementierungsdatei sichergestellt, dass die Implementierungsdatei auf die Back-End-Geschäftslogik zugreift.
Die generierte Beispiel-JSP ist einfach strukturiert und funktional. Der Inhalt ist in drei Rahmen aufgeteilt. Der linke Rahmen enthält eine Liste der Methoden, die für die Benutzer verfügbar sind. Wenn Sie auf eine dieser Methoden klicken, wird im rechten oberen Rahmen ein Eingabebereich angezeigt. Nach Eingabe der gewünschten Angaben in der Maske wird durch Klicken auf die Schaltfläche 'Aufrufen' die Methode zum Verarbeiten der Eingabe aufgerufen. Die Ergebnisse werden anschließend im rechten unteren Rahmen angezeigt.
Beim Webservice des Auktionsbeispiels haben wird die generierte Beispiel-JSP geändert, um eine ansprechendere Oberfläche zu erstellen. Wir haben ebenfalls eine Unterstützung für die Handhabung von Tabellen hinzugefügt, da die Operation, die eine Liste aller Artikel der Datenbank zurückgibt, die Daten in Form einer Tabelle zurückgibt.