Kategorien
Webdesign

Workshop: Einführung in Webservices

Der Begriff Webservices könnte das Internet in den kommenden Jahren prägen. Doch was sind Webservices überhaupt, wie funktionieren sie und wie kann sie ein Webworker nutzen? Webservices sind Dienste, die über das Internet bereitgestellt werden. Trotz dieser…

Der Begriff Webservices könnte das Internet in den kommenden Jahren prägen. Doch was sind Webservices überhaupt, wie funktionieren sie und wie kann sie ein Webworker nutzen?

Webservices sind Dienste, die über das Internet bereitgestellt werden. Trotz dieser scheinbar recht einfachen Definition, haben sich die „Großen“, Microsoft, IBM, Hewlett Packard, Sun und andere. noch nicht auf eine verbindliche Definition geeinigt. Als kleinster gemeinsamer Nenner kann man sagen, dass über Webservices dem Nutzer (Client) Funktionen, Daten und Anwendungen bereitgestellt werden können. Dabei ist der Client nicht mehr der vor seinem Computer sitzende Surfer – es handelt sich um eigenständige Anwendungen, welche Webservices für bestimmte Programmfunktion nutzen.

Ein erstes Beispiel dafür sind die Google Webservices, die Ihnen wahrscheinlich schon einmal begegnet sind. Spezielle Services, die Google nutzen, aber von Dritten und nicht von Google bereitgestellt werden. Ein Programmierer kann über Webservices auf mächtige Funktionen Googles zugreifen und diese direkt in seine eigenen Anwendungen integrieren. So können zum Beispiel siteinterne Spezialsuchmaschinen ohne viel Aufwand erstellt werden. Genau das haben wir zu einem späteren Zeitpunkt auch vor.

Über Webservices kann man folglich komplette Anwendungen modellieren. Doch wie funktioniert die Kommunikation zwischen den verschiedenen Anwendungen? Die Daten müssen ja in irgendeiner Form von einem Programm zum anderen geschickt werden.

Das versenden der Daten wird über das HTTP-Protokoll bewerkstelligt. Anfragen und Antworten werden in Form von XML gesendet. Man hat sich auf diese Standards geeinigt, da sie quasi überall „verstanden“ werden. Sie sind plattform- und insbesondere programmiertechnisch unabhängig.

Anfragen an den Webservice werden in XML verpackt und über HTTP versendet. Die XML-Nachricht wird vom Webservice interpretiert und wiederum in Form von XML beantwortet.

Da Webservices für die Integration von Programmfunktionen in anderen Anwendungen gedacht sind, musste man sich auch hier auf eine einheitliche Form der Datenübertragung zum Nutzen aller einigen. So entstand SOAP, das so genannte Simple Object Access Protocol, basierend auf XML. Dadurch erhalten Anfragen und Antworten eine einheitliche Form. Zwar gibt es auch Webservices, die nicht auf SOAP zurückgreifen, dennoch wird sich SOAP in Zukunft durchsetzen, da nur durch eine einheitliche Datenübertragung die Nutzung von Webservices eine allgemeine Bedeutung erlangen kann.

Ein Anfrage besteht, wie man im folgenden Diagramm sehen kann aus einem festen Grundgerüst.

Struktur einer SOAP Nachricht

Das Grundgerüst ähnelt dem einer HTML-Seite, bestehend aus einem Head- und einem Body-Bereich, in dem Antwort- und Anfragedaten abgelegt sind.

Die Abbildung unten stellt ein einfaches Schema für den Datenfluss bei der Nutzung von Webservices dar. Dabei besitzt die Anwendung welche auf den Webservice zurückgreift ebenfalls einen XML Interpreter, über welchen die XML Daten in ein Format überführt werden, in welchem sie weiterverarbeitet werden können. Die SOAP Antwort muss von der Anwendung verarbeitet werden. Auf diese Weise wird die Nutzung von Webservices nicht nur auf einzelne Programmiersprachen beschränkt. Man kann Webservices über jede Programmiersprache verwenden, die eine XML- beziehungsweise SOAP-Schnittstelle besitzt.

Einfaches Datenflussdiagramm für die Nutzung von Webservices

Man kann dieses einfache Modell erweitern, indem man sich den Webservice auf den man zurückgreift selbst als eine Anwendung vorstellt, welche auf verschiedene andere Webservices zurückgreift.

Dies lässt sich an einem einfachen Beispiel veranschaulichen. Bei einer Buchbestellung möchten Sie den Status ihrer Bestellung verfolgen. Sie können jetzt direkt beim Verkäufer den Status bis zum Versand betrachten. Beim Zusteller (Post, UPS …) können Sie den weiteren Verlauf im Auge behalten.
Durch Webservices ist es nun möglich, dass der Verkäufer den Status der Bestellung auch über die eigenen Systemgrenzen verfolgen kann, indem er auf einen Webservice des Zustellers zurückgreift und dort den Status des Versands ermitteln und diesen an den Käufer weitergeben kann. Aber das ist nur ein sehr einfaches Beispiel der Integration von Webservices in andere Anwendungen.

Auch für den Programmierer ergeben sich Aspekte, die er zu beachten hat. Woher weiß der Programmierer auf welche Funktionen er bei der Nutzung von Webservices zurückgreifen kann und welche Parameter brauchen diese?

Hierzu wurde von IBM und Microsoft gemeinsam die Webservice Description Language, kurz WSDL, entwickelt. Sie basiert ebenfalls auf XML und ermöglicht die standardisierte Beschreibung von Webservices – sie wird auch vom W3C als möglicher Standard diskutiert.

Ein weiteres Problem besteht darin, dass bei einer Vielzahl von Webservices unklar ist, wer überhaupt was anbietet. Die Webservices müssen irgendwo verzeichnet sein. Idealerweise sollte der Webservicenutzer nur noch eine Anfrage an das Webserviceverzeichnis machen müssen; dieses leitet ihn dann direkt an den für die Anfrage passenden Webservice weiter. Ein solches „Telefonbuch“ für Webservices wurde durch UDDI (Universal Description, Discovery and Integration) geschaffen. In ihm sind die Webservice Anbieter und die von ihnen angebotenen Webservices verzeichnet. Bereits viele Anbieter haben UDDI implementiert.

Doch was für Chancen oder Zukunftsaussichten liegen in Webservices? Der Nutzen für Unternehmen ist eindeutig, da sie bei ihren Anwendungen – einfach gesagt – nicht mehr alles selbst programmieren müssen. Die jeweiligen Firmen werden sich durch ihre Webservices stärker als bisher vernetzen und so insbesondere in den Beziehungen zu den Kunden verbessern.

Und was bedeutet das für den Internetnutzer? Eine Vision besteht darin, dass man über Webservices eine Personalisierung des ganzen Internets bewerkstelligen könnte. So hat Microsoft bereits über sein .NET Passport einen ersten Schritt dahin getan. Über einen .NET Passport kann man auf die verschiedenen Angebote Microsofts zugreifen ohne jedes Mal ein neuen Account anlegen zu müssen. Das heißt, man muss seine persönlichen Daten nur noch in einem virtuellen Pass hinterlegen, über welchen man dann auf die unterschiedlichsten Internetdienste zugreifen kann. Heftige Diskussionen darüber sind ebenfalls im Gange, da mit einer solchen Praxis erhebliche Sicherheitsbedenken einhergehen.

Webworker können Webservices bisher nur im beschränkten Maße nutzen. Wie man das in Angriff nimmt, möchten wir Ihnen später in einem mehrteiligen Workshop nahe bringen. Lernen Sie, wie man die Webservices von Amazon und Google zum Wohle der eigenen Seiten einsetzen kann.

Von Thiemo Fetzer

Thiemo Fetzer lebt seit 2008 in London und promoviert dort im Fachbereich "Entwicklungsökonomie" an der London School of Economics. Zuvor hat er Wirtschaftswissenschaften, Mathematik und Informatik in Magdeburg und Ulm studiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.