prev up next

Web Services

Bisher wurden Informationen im Internet über von Menschen lesbare Webseiten angeboten; zum Finden der passenden Webseiten helfen Suchmaschinen, wie z.B. Google. Inzwischen existieren auch Angebote in maschinenlesbarer Form, sogenannte Web Services, die über genormte Schnittstellen Informationen bereitstellten, die von Programmen abgefragt und ausgewertet werden können. Zum Auffinden dieser maschinenlesbaren Angebote gibt es Verzeichnisdienste, in denen der Anbieter seine Dienste kategorisiert ankündigt.

Mittlerweile existieren folgende auf XML basierende Standards:

  1. UDDI: Universal Description, Discovery and Integration: Auf dieser Norm sind die Verzeichnisdienste organisiert, mit denen interessierte Clienten sich über angebotetene Dienste informieren und mit deren Hilfe sie die zuständigen WSDL-Dateien finden können.
  2. WSDL: Web Services Description Language: In dieser Notation kündigt der Diensteanbieter an, welche Art von Anfragen er zulässt, welche Art von Antworten zu erwarten sind und an welchen Server die Anfragen gerichtet werden können. Dieses Dokument kann, aber muss nicht in einem UDDI-Verzeichnisdienst gepflegt werden und muss auch nicht auf demselben Server liegen, der den Dienst bereitstellt.
  3. SOAP: Simple Object Access Protokoll: Hiermit sendet der anfragende Client gemäß der im WSDL-Dokument genannten Spezifikation einen Request in Form eines XML-Dokuments an den anbietenden Dienst und erhält von dort die Antwort, wiederum als XML-Dokument.

Die Firmen Google und Amazon bieten beispielsweise Web Services an, welche dieselben Anfragen erlauben, die auch über die Menschen-lesbare Webseite möglich sind. Details sind zu finden unter http://www.google.com/apis bzw. http://www.amazon.com/gp/aws/sdk/002-5975367-0251255?v=2005%2d03%2d23&s=AWSEcommerceService

Die Amazon-WSDL-Datei lautet
http://soap.amazon.com/schemas2/AmazonWebServices.wsdl .

Wenn man sich beim Amazon Web Service registrieren lässt, erhält man eine Subscription-ID, mit der man sich in Anfrage authentifizieren kann. Z.B. kann die Suche nach Harry Potter wie folgt an den Amazon Web Service gestellt werden: http://webservices.amazon.de/onca/xml?Service=AWSECommerceService&SubscriptionId=0BB9F8ZNDA7HG04QG1G2&Operation=ItemSearch&SearchIndex=Books&Keywords=Harry%20Potter&ResponseGroup=Small

Das Testen von Web Services unter Angabe einer WSDL-Datei wird angeboten von
http://www.mindreef.net .

Ein einfacher Verzeichnisdienst liegt unter http://www.xmethods.net .

Zur Demonstration wurde auf dem Apache Tomcat Server terra im Informatik-Netz ein sehr einfacher Web Service installiert, welcher folgende Funktionalität bietet:

Die Anfrage GetLehrumfangVonProfessorRequest, versehen mit einem ProfName wird beantwortet als GetLehrUmfangVonProfessorResponse, versehen mit dem LehrUmfang.

Die zugehörige WSDL-Datei liegt unter
http://www-lehre.inf.uos.de/~dbs/2005/WS/UniVerwaltung.wsdl

Listing 10.19 zeigt den Quelltext der Klasse InquireDB.java, welche vom Apache Tomcat Server beim Eintreffen einer Anfrage an den Webservice gestartet wird.

Listing 10.19: InquireDB.java

Listing 10.20 zeigt den Quelltext des WSDL-Dokuments UniVerwaltung.wsdl, in dem die Funktionalität angekündigt wird.

Listing 10.20: UniVerwaltung.wsdl

Listing 10.21 zeigt den SOAP-Envelope, in dem die Anfrage nach dem Lehrumfang von Sokrates an den Web Service geschickt wird. Listing 10.22 zeigt den SOAP-Envelope, der die Antwort vom Web Service enthält.

Listing 10.21: Request, an den Web Service gerichtet      Aufruf von request.xml

Listing 10.22: Response, vom Web Service geliefert      Aufruf von response.xml

Listing 10.23 zeigt den Quelltext eines ''handgestrickten'' Klienten ClientUniVerwaltung.java, welcher das zur Anfrage ''Welchen Lehrumfang hat Sokrates ?'' passende XML-Dokument als SOAP-Envelope erstellt, verschickt, das Ergebnis wieder als SOAP-Envelope entgegennimmt und ausgibt.

Listing 10.23: ClientUniVerwaltung.java


prev up next