Webservices: Dienste von Maschine zu Maschine

Dienste über das Web in Anspruch zu nehmen, ist für viele Menschen eine Selbstverständlichkeit. Online einkaufen, Zeitung lesen, einen Tisch im Restaurant reservieren, Filme gucken – alles Dienste, die wir mehr oder weniger jeden Tag in Anspruch nehmen. Dabei passiert vieles direkt zwischen Mensch und Maschine, denn die Person vor dem Bildschirm navigiert im Netz und trifft Entscheidungen. Mindestens genauso viel passiert aber zwischen Maschine und Maschine. Anfragen und Antworten werden fortwährend zwischen Client und Server hin und her gesendet. Webservices machen das möglich.

Was ist ein Webservice? Definition der Lösung

Ein Webservice stellt einen Dienst über das Internet zur Verfügung. Er ist somit eine Schnittstelle, über die zwei Maschinen (oder Anwendungen) miteinander kommunizieren können. Dabei sind zwei Eigenschaften für die Technik entscheidend:

  • Plattformunabhängig: Client und Server müssen nicht die gleichen Konfigurationen haben, damit sie miteinander kommunizieren können. Der Webservice sorgt für eine gemeinsame Ebene.
     
  • Verteilt: Ein Webservice steht in den meisten Fällen nicht nur einem Client zur Verfügung. Über das Internet greifen unterschiedliche Clients auf den Dienst zu.

Kommt ein Webservice zum Einsatz, sendet ein Client eine Anfrage an einen Server und löst damit eine Aktion bei diesem Server aus. Anschließend sendet der Server eine Antwort zurück an den Client.

Hinweis

Anfänglich wurden Webservice nur über SOAP realisiert. Inzwischen sind aber auch noch andere Methoden wie REST in Gebrauch.

Die Technik hinter einem Webservice – am Beispiel erklärt

Ein Webservice wird über einen eindeutigen Uniform Resource Identifier (URI) angesprochen. Ähnlich wie ein Uniform Resource Locator (URL), mit dem man Websites ansprechen kann, ist der URI eine Adresse für den entsprechenden Webservice. Theoretisch spielt auch der Verzeichnisdienst UDDI eine Rolle, über den sich Webservices finden lassen. Dieser Dienst hat sich allerdings nie durchgesetzt und die größten Unterstützer haben sich aus dem Projekt zurückgezogen.

Wichtiger ist allerdings die Sprache Web Service Description Language (WSDL): Ein Webservice besitzt eine Datei in WSDL, in der der Dienst näher beschrieben wird. Der Client kann über die Information verstehen, was für Funktionen er am Server über den Webservice ausführen kann. Die Kommunikation funktioniert schließlich über verschiedene Protokolle und Architekturen. Beliebt sind z. B. das Netzwerkprotokoll SOAP in Kombination mit dem Internetstandard HTTP oder auch RESTful Webservices. Mit diesen Techniken werden Anfragen und Antworten hin und her gesendet.

Oftmals funktioniert die Kommunikation mit der Extensible Markup Language (XML). Die relativ simple Sprache kann von Menschen und Computern gleichermaßen verstanden werden und ist bestens dazu geeignet, Systeme mit unterschiedlichen Voraussetzungen miteinander zu verbinden. Doch REST lässt auch andere Formate wie JSON zu.

Zur Verdeutlichung ein Webservice-Beispiel: Gehen wir von einer Software aus, die in Visual Basic geschrieben wurde und auf einer Windows-Maschine läuft. Das Programm benötigt den Dienst eines Apache Webservers. Dafür sendet der Client eine SOAP-Anfrage in Form einer HTTP-Nachricht an den Server. Der Webservice interpretiert den Inhalt der Anfrage und sorgt dafür, dass der Server eine Aktion durchführt. Nach Ausführung formuliert der Webservice eine Antwort und sendet diese – wieder mit SOAP und HTTP – an den Client zurück. Dort wird die Antwort wiederum interpretiert und die Informationen gelangen in die Software, wo sie weiterverarbeitet werden.

Vor- und Nachteile von Webservices

Der Hauptvorteil von Webservices liegt darin, dass die Kommunikation plattformunabhängig abläuft. Client und Server müssen kaum Gemeinsamkeiten aufweisen, damit die Kommunikation funktionieren kann. Dafür greifen Webservices auf standardisierte Formate zurück, die alle Systeme verstehen.

In diesen Formaten liegt aber auch einer der Nachteile. Gerade XML ist ein eher sperriges Format, das zu großen Datenpaketen führt. Bei langsamen Netzwerkverbindungen kann dies Probleme verursachen. Eine andere Möglichkeit, wie zwei Systeme sich über das Internet miteinander verbinden können, sind Web-APIs – Schnittstellen, die ebenfalls über das Internet aufgerufen werden können. Diese sind zwar gemeinhin schneller, legen allerdings sehr viel klarere Vorgaben an Client und Server, weshalb die Interoperabilität eingeschränkt ist.