Dienste über das Web in Anspruch zu nehmen, ist für viele Menschen eine Selbst­ver­ständ­lich­keit. Online einkaufen, Zeitung lesen, einen Tisch im Re­stau­rant re­ser­vie­ren, 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 Bild­schirm navigiert im Netz und trifft Ent­schei­dun­gen. Min­des­tens genauso viel passiert aber zwischen Maschine und Maschine. Anfragen und Antworten werden fort­wäh­rend zwischen Client und Server hin und her gesendet. Web­ser­vices machen das möglich.

Was ist ein Web­ser­vice? De­fi­ni­ti­on der Lösung

Ein Web­ser­vice stellt einen Dienst über das Internet zur Verfügung. Er ist somit eine Schnitt­stel­le, über die zwei Maschinen (oder An­wen­dun­gen) mit­ein­an­der kom­mu­ni­zie­ren können. Dabei sind zwei Ei­gen­schaf­ten für die Technik ent­schei­dend:

  • Platt­form­un­ab­hän­gig: Client und Server müssen nicht die gleichen Kon­fi­gu­ra­tio­nen haben, damit sie mit­ein­an­der kom­mu­ni­zie­ren können. Der Web­ser­vice sorgt für eine ge­mein­sa­me Ebene.
     
  • Verteilt: Ein Web­ser­vice steht in den meisten Fällen nicht nur einem Client zur Verfügung. Über das Internet greifen un­ter­schied­li­che Clients auf den Dienst zu.

Kommt ein Web­ser­vice zum Einsatz, sendet ein Client eine Anfrage an einen Server und löst damit eine Aktion bei diesem Server aus. An­schlie­ßend sendet der Server eine Antwort zurück an den Client.

Hinweis

An­fäng­lich wurden Web­ser­vice nur über SOAP rea­li­siert. In­zwi­schen sind aber auch noch andere Methoden wie REST in Gebrauch.

Die Technik hinter einem Web­ser­vice – am Beispiel erklärt

Ein Web­ser­vice wird über einen ein­deu­ti­gen Uniform Resource Iden­ti­fier (URI) an­ge­spro­chen. Ähnlich wie ein Uniform Resource Locator (URL), mit dem man Websites an­spre­chen kann, ist der URI eine Adresse für den ent­spre­chen­den Web­ser­vice. Theo­re­tisch spielt auch der Ver­zeich­nis­dienst UDDI eine Rolle, über den sich Web­ser­vices finden lassen. Dieser Dienst hat sich al­ler­dings nie durch­ge­setzt und die größten Un­ter­stüt­zer haben sich aus dem Projekt zu­rück­ge­zo­gen.

Wichtiger ist al­ler­dings die Sprache Web Service De­scrip­ti­on Language (WSDL): Ein Web­ser­vice besitzt eine Datei in WSDL, in der der Dienst näher be­schrie­ben wird. Der Client kann über die In­for­ma­ti­on verstehen, was für Funk­tio­nen er am Server über den Web­ser­vice ausführen kann. Die Kom­mu­ni­ka­ti­on funk­tio­niert schließ­lich über ver­schie­de­ne Pro­to­kol­le und Ar­chi­tek­tu­ren. Beliebt sind z. B. das Netz­werk­pro­to­koll SOAP in Kom­bi­na­ti­on mit dem In­ter­net­stan­dard HTTP oder auch RESTful Web­ser­vices. Mit diesen Techniken werden Anfragen und Antworten hin und her gesendet.

Oftmals funk­tio­niert die Kom­mu­ni­ka­ti­on mit der Ex­ten­si­ble Markup Language (XML). Die relativ simple Sprache kann von Menschen und Computern glei­cher­ma­ßen ver­stan­den werden und ist bestens dazu geeignet, Systeme mit un­ter­schied­li­chen Vor­aus­set­zun­gen mit­ein­an­der zu verbinden. Doch REST lässt auch andere Formate wie JSON zu.

Zur Ver­deut­li­chung ein Web­ser­vice-Beispiel: Gehen wir von einer Software aus, die in Visual Basic ge­schrie­ben wurde und auf einer Windows-Maschine läuft. Das Programm benötigt den Dienst eines Apache Web­ser­vers. Dafür sendet der Client eine SOAP-Anfrage in Form einer HTTP-Nachricht an den Server. Der Web­ser­vice in­ter­pre­tiert den Inhalt der Anfrage und sorgt dafür, dass der Server eine Aktion durch­führt. Nach Aus­füh­rung for­mu­liert der Web­ser­vice eine Antwort und sendet diese – wieder mit SOAP und HTTP – an den Client zurück. Dort wird die Antwort wiederum in­ter­pre­tiert und die In­for­ma­tio­nen gelangen in die Software, wo sie wei­ter­ver­ar­bei­tet werden.

Vor- und Nachteile von Web­ser­vices

Der Haupt­vor­teil von Web­ser­vices liegt darin, dass die Kom­mu­ni­ka­ti­on platt­form­un­ab­hän­gig abläuft. Client und Server müssen kaum Ge­mein­sam­kei­ten aufweisen, damit die Kom­mu­ni­ka­ti­on funk­tio­nie­ren kann. Dafür greifen Web­ser­vices auf stan­dar­di­sier­te 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 Da­ten­pa­ke­ten führt. Bei langsamen Netz­werk­ver­bin­dun­gen kann dies Probleme ver­ur­sa­chen. Eine andere Mög­lich­keit, wie zwei Systeme sich über das Internet mit­ein­an­der verbinden können, sind Web-APIs – Schnitt­stel­len, die ebenfalls über das Internet auf­ge­ru­fen werden können. Diese sind zwar gemeinhin schneller, legen al­ler­dings sehr viel klarere Vorgaben an Client und Server, weshalb die In­ter­ope­ra­bi­li­tät ein­ge­schränkt ist.

Zum Hauptmenü