Was sind Webservices?


In vielen Softwareprojekten werden auf sogenannte Webservices zurückgegriffen. Viele wissen jedoch nicht was Webservices sind. Was sie darstellen und welchen Zweck diese haben. In diesem Artikel versuchen wir diese Begrifflichkeit etwas näher zu erklären.

Webservices – Ich verstehe nur Bahnhof

Warum eine Terminologie wie „Webservices“ benutzen, wenn es doch schon Begriffe wie Web-Anwendungen, Webseiten etc. gibt?

Hintergund

Oftmals gibt es Software- oder Webapplikationen welche bereits programmiert und über das Netz erreichbar sind. Ein Beispiel sind die Google Maps die von Google bereit gestellt werden. Diese lassen sich auf den Seiten des Suchmaschinenbetreibers aufrufen.

Was ist jedoch, wenn wir auf unserer eigenen Webseite eine Kartenanwendung anzeigen möchten? Wir können entweder eine komplette Kartenanwendung, für die Webseite, von Grund auf programmieren. Dies würde jedoch viel Zeit und Aufwand bedeuten. Oder wir könnten uns im Internet umschauchen und nach Applikationen suchen, welche unseren Anforderungen in etwa entsprechen.

Google stellt zum Beispiel einen Webservice bereit, um die Kartenanwendung auf der eigenen Webseite anzuzeigen.

Wie wird zum Beispiel eine Google-Kartenanwendung auf ihrer Webseite angezeigt?

Um einen Webservice zu beschreiben, umschreiben wir den Weg wie eine Google-Kartenanwendung auf Ihre Webseite kommt.

Google hat die Kartenanwendung bereits fertig programmiert und diese Anwendung liegt auf dem Server von Google.

(Client und Server Architektur)


Wenn wir nun diese Anwendung nutzen wollen, müssen wir das bei Google anfragen. Eine Webanwendung, in diesem Fall unsere Webseite, würde nun die Kartenanwendungsfunktion von Google anfragen. In diesem Fall wäre die Webseite der Client und die Kartenanwendungsserver wäre der Server.

Das besondere hierbei ist auch, dass der Client und der Server nicht unbedingt in der gleichen Softwaresprache geschrieben sein müssen. D.h. Der Client kann in Java geschrieben sein und der Server in .NET. Beide Systeme müssen auch nicht auf dem gleichen Rechner liegen. Was es jedoch braucht, ist ein Netzwerk,welches beide Softwareprogramme verbindet.

(Wie findet die Kommunikation statt? Interneverbindung, HTTP, SOAP)

Um die Kommunikation zwischen dem Client und dem Server zu ermöglichen, braucht es ein 1) Medium und ein 2) Format. Im Fall von Webservices ist das Medium eine Internetverbindung mit einem HTTP Protokoll (Analogie: Würden zwei Personen miteinander telefonieren, dann wäre das Medium, die Telefonverbindung), das Format ist hier das sogenannte SOAP (Analogie: Würden zwei Menschen miteinander sprechen, dann wäre das Format die Sprache Deutsch (vorausgesetzt beide sprechen auf Deutsch), SOAP ist also so etwas ähnliches wie eine Sprache mit welcher der Server und der Client kommunizieren können).

Warum SOAP?

Man könnte sich jetzt fragen: „Warum braucht es soetwas wie SOAP, können die Systeme nicht direkt miteinander kommunizieren? Ist doch schon alles kompliziert genug.“

Mit SOAP umgeht man die folgende Problemstellung: Es kann sein, das der Client der den Webservice aufruft, in Java programmiert ist, und der Server Beispielsweise in PHP. Nun kann aber Java keine PHP Programme ausführen. Hier kommt SOAP ins Spiel. Beide, Java und PHP, beherrschen SOAP und können darüber kommunizieren.

Welche Informationen sind benötigt um Webservices in Anspruch zu nehmen?

Webservices sind offen im Internet erhältlich. Um diese anzusprechen, braucht man einige Informationen. Diese sind 1) der Standort des Servers und 2) weitere Informationen zum Webservice (zum Beispiel, welche Funktionen dieser Webservice bereitstellt, Welche Standards und Protokolle werden von dem Service verwendet etc.)

Alle diese Informationen gibt es in sogenannten XML Dateien (es ist zwar sehr vereinfacht beschrieben, aber man kann XML mit HTML vergleichen), eine sogenannte WSDL (Web Service Description Language) Datei. Diese Datei wird vom Service-Bereitsteller in dieser Form (XML Datei), dem Client bereitgestellt.

Mit Hilfe dieser XML Datei ist der Client in der Lage, den Service vom Server aufzurufen.

Nächste Frage: Wie kommt man an solch eine XML Datei von einem Service-Bereitsteller?

Hierfür gibt es zwei Antworten:

1) Entweder der Service-Bereitsteller stellt dem Client die XML Datei bereit, wenn sich beide bereits kennen.

oder

2) Es gibt im Internet eine Anlaufstelle namens UDDI (Universal Description Discovery and Integration). Man kann es mit den Gelben Seiten vergleichen. Nur das hier alle Webservices registriert werden, welche ein Service-Anbieter im Internet anbieten möchte. Dies macht der Service-Anbieter in dem er die WSDL Datei, UDDI mitteilt.

Würde ein Client also nach einem passenden Service suchen, dann würde er zu UDDI gehen und dort recherchieren. UDDI würde dann alle Anbieter zurückgeben, welche diesen Service anbieten. Aus dieser Liste an Anbietern kann der Client den passenden Service aussuchen. UDDI stellt dann die WSDL Datei für diesen Service bereit.

Nochmals: Der Zusammenhang zwischen SOAP, XML und WSDL

Eine XML Datei muss nicht immer im Zusammenhang mit Webservices genutzt werden. SOAP hingegen ist ein Standard, welcher für den Zugriff speziell auf Webservices gedacht ist. Und SOAP wiederum basiert auf XML. Um den Service aufrufen zu können, muss die XML in einem speziellen Format sein, welcher hierbei WSDL (Web Service Description Language), welche den Service beschreibt, ist.

Und was ist jetzt nochmal HTTP?

HTTP ist das Protokoll, mit welchem Daten über das World Wide Web ausgetauscht werden. (Analogie von vorhin: Ähnlich wie die Telefonverbindung, wenn zwei Personen telefonieren). Beispiel: Wenn man eine URL in einem Browser eingibt, dann wird ein HTTP Befehl zum Web Server gesendet, und weisst diesen an, die Webseite zu holen und diese an die angegebene Webseite auszuliefern.

Protokoll?

Ein Protokoll ist ein Format welcher von allen Seiten akzeptiert wird, um Daten zwischen zwei Geräten auszutauschen. Das Protokoll beschreibt das Folgende:

• Wie Fehler gehandhabt werden müssen
• Wie die Daten komprimiert werden, falls verlangt
• Wie die Bestätigung einer Nachricht vorgenommen wird

Es gibt verschiedenste Standard-Protokolle aus denen ein Programmierer wählen kann. Jedes hat seine Vorteile und seine Nachteile. Beispielsweise sind einige einfacher als andere, manche sind stabiler, manche sind schneller.

Fazit

Viele Softwareanwendungen sind bereits im Internet vorhanden und man muss diese eventuell nicht neu programmieren. Durch Webservices kann man auf diese Anwendungen, von seiner eigenen Anwendung aus, zugreifen. Das gute hierbei ist, dass beide System in unterschiedlichen Softwaresprachen geschrieben sein können und trotzdem, mit Hilfe des SOAP/ WSDL Protokolls, miteinander kommunizieren können.

Ein weiterer Vorteil dieser Services ist, dass man diese, verschiedenen Applikationen, bereitstellen kann.
Bei Updates wiederum, muss nur der Webservice erneuert werden, die Applikationen die diese Service in Anspruch nehmen, können gleich bleiben.

Was ist Ihre Erfahrung mit solchen Services? Ich freue mich auf einen Austausch.

Interessante Artikel zum Thema:

Wikipedia zum Thema
Definition und Informationen zu Webservice


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches, kleinen und mittelständischen IT Firmen, Programmierer bereitstellt.

2 Kommentare
  1. Hallo, bis ich diese Website gefunden habe, hatte ich mehrere Videos angeschaut und Artikel über Webservices gelesen, was mir zum Verständnis nicht helfen konnte.

    Danke sehr für sie einfache Erklärungen. Das ist echt super

    😊

  2. Sehr gut erklärt, Danke!

Schreibe einen Kommentar