10. Februar 2021

Was ist ein Webservice und wie funktioniert er?

Was sind Webservices und wie funktionieren sie? Wie Webservices aufgebaut sind und wie sie die Kommunikation zwischen Maschinen ermöglichen, erfahren Sie hier.

Elena Di Gianvittorio

8 Minuten zum lesen

Viele Websites und Webanwendungen greifen auf Daten oder Funktionen zu, die andere Anbieter über das Internet bereitstellen. Ein bekanntes Beispiel ist der Online-Kartendienst Google Maps, dessen Funktionen auf vielen verschiedenen Internetseiten zu finden sind. Google stellt Website Betreibern seinen Dienst zur Verfügung, die darauf zugreifen und ihn in eigene Anwendungen implementieren können. Dadurch können sie schon vorhandene Daten nutzen und die aufwendige Entwicklung eines eigenen Kartendienstes vermeiden. Der Datenaustausch zwischen der Anwendung, die den Dienst nutzen möchte und dem Server, auf dem die Daten gespeichert sind, erfolgt über einen Webservice.

Was ist ein Webservice?

Webservices ermöglichen es, dass Maschinen oder Anwendungen miteinander kommunizieren können (M2M-Kommunikation). Sie bilden die Schnittstelle zwischen Client und Server und ermöglichen den automatischen Datenaustausch zwischen diesen Softwaresystemen. Ihren Dienst stellen sie über das Internet zur Verfügung, wo Softwareanwendungen sie ansprechen können. Zwei wichtige Eigenschaften sind entscheidend für Webservices. Zum einen die Plattformunabhängigkeit, was bedeutet, dass Server und Client auf unterschiedlichen Plattformen basieren können. Der Webservice sorgt für die Verbindung und den Austausch auf einer gemeinsamen Ebene. Zum anderen die Möglichkeit, dass mehrere Clients auf denselben Webdienst zugreifen und ihn gleichzeitig nutzen können.

Wie grenzen sich Webservices von Webanwendungen ab?

Der maßgebliche Unterschied zwischen einer Webanwendung und einem Webservice sind die Nutzer der jeweiligen Softwaresysteme. Webservices sind nicht für die Nutzung von Menschen vorgesehen. Sie haben keine Benutzeroberfläche, bei der Menschen Daten eingeben oder anzeigen lassen können. Sie dienen der reinen Machine-to-Machine Kommunikation. Eine Verbindung zwischen menschlichen Usern und Webdiensten besteht nur indirekt. Nutzer kommunizieren über die Benutzerschnittstelle mit Webanwendungen, um bestimmte Ergebnisse zu erhalten. Im Hintergrund nutzen die Anwendungen Webservices, was für den Menschen unbemerkt bleibt.

Grafik die den Zusammenhang von User, Webanwendung und Webservice darstelltZusammenhang zwischen User, Webanwendung und Webservice

Wie funktionieren Webservices?

Kommt ein Webservice zum Einsatz, läuft der Prozess wie folgt ab. Der Client sendet eine Anfrage an einen Server. Der Webservice ist die Schnittstelle zwischen den beiden Softwaresystemen. Er interpretiert die Anfrage und sorgt für eine Aktion beim Server. Führt dieser die Aktion aus, sendet der Webdienst eine Antwort zurück an den Client. Der Client erhält die Antwort im selben Format, in dem er die Anfrage gestellt hat. Die Services sind über eine eindeutige URI (Uniform Resource Identifier) ansprechbar, vergleichbar mit der URL einer Website.

Aufbau und Realisierung eines Webservices

Bei der Realisierung eines Webservices kommen definierte Schnittstellen, Protokolle und Standards zum Einsatz. Der Dienst selbst kann in beliebigen Programmiersprachen geschrieben und auf verschiedenen Hardware-Plattformen realisiert werden. In der Bitfactory haben wir uns auf die Entwicklung von Webservices mit dem serverseitigen JavaScript Interpreter Node.JS spezialisiert.

Die Microservice Architektur

Der Aufbau eines modernen Webservices basiert auf der Microservice Architektur. Dieser Architekturstil verfolgt den Grundgedanken, dass sich jede Einheit auf nur eine Aufgabe spezialisiert, diese aber besonders gut ausführt. Der Grundgedanke lässt sich sowohl auf den Aufbau des Services als auch auf die Arbeitsweise unserer Entwickler in der Bitfactory übertragen.

Microservices sind Module einer Anwendung, die jeweils für eine bestimmte Aufgabe zuständig sind. Sie werden unabhängig voneinander entwickelt und bilden zusammen das Endprodukt. Im Vergleich dazu werden bei traditionellen Services auch Monolithen genannt, alle Aufgaben in einer großen Anwendung realisiert. Dadurch entsteht eine hohe Abhängigkeit zwischen den einzelnen Bestandteilen.Unser Entwicklerteam kann bei der Umsetzung von Microservice Architekturen ebenfalls unabhängig voneinander arbeiten. Wir bilden kleinere Teams, die sich jeweils auf nur eine Aufgabe spezialisieren und diese in Form eines Microservices umsetzen. So können wir die Entwicklungszeit verkürzen, da wir an mehreren Services gleichzeitig arbeiten. Bei Monolithen bestehen stärkere Abhängigkeiten des Teams untereinander.

Aufbau Monolithen im Vergleich zu MicroservicesAufbau Monolithen vs. Microservices

Kommunikation mit REST Aufrufen

Die Kommunikation zwischen den einzelnen Microservice Instanzen erfolgt in der Regel mit REST Aufrufen (Representational State Transfer). Durch die simple, deskriptive Sprache, in der Regel JSON, können Systeme unterschiedlicher Plattformen miteinander kommunizieren.
Gegenüber der vorangegangen serviceorientierten Architekturen (SOA) erfüllen RESTful Webservices die Anforderungen des World Wide Web besser. Sie sind unabhängig von konkreten Protokollen, jedoch wird häufig das HTTP-Protokoll verwendet. Im Mittelpunkt der REST Architektur steht das Konzept der Ressourcen. Alles, was mit REST adressierbar ist, ist eine Ressource. Das können bestimmte gespeicherte Daten wie Videos, Bilder, Produkte oder Kundendaten sein.

Ressourcen müssen vier Anforderungen erfüllen:

  1. Adressierbarkeit: Sie müssen über eine eindeutige URI aufgerufen werden können.
  2. Zustandslosigkeit: Über einen Webservice werden keine Sessions oder Cookies gespeichert. Bei jeder Anfrage eines Clients müssen alle erforderlichen Informationen neu mitgeschickt werden. Dadurch werden REST-Webservices einfach skalierbar und ohne Sessions lassen sich mehrere Anfragen eines Clients auf verschiedene Server verteilen.
  3. Einheitliche Schnittstellen: Der Zugriff auf Ressourcen muss mit Standardmethoden möglich sein. Als Standardmethoden zählen beispielsweise die HTTP-Methoden GET, POST, PUT und DELETE.
  4. Entkopplung von Ressourcen und Repräsentation: Eine Ressource darf nicht an eine bestimmte Repräsentation gebunden sein. Sie kann in verschiedenen Formaten bestehen und von einem Client beispielsweise in XML- oder JSON-Format angefordert werden.

Standardmethoden des HTTP-Protokolls

HTTP ist ein etabliertes Protokoll, mit dem Daten über das World Wide Web ausgetauscht werden können. Die vier wichtigsten Methoden lauten wie folgt.

  • GET: Ressource lesen, aber nicht verändern
  • POST: neue Ressource mit neuer URI erstellen
  • PUT: Ressourcen mit bereits bekannter URI erstellen oder bearbeiten
  • DELETE: Ressourcen löschen

REST-Webservices verwenden häufig dieses Protokoll und können mit den vier Standardmethoden fast alle Aufgaben ausführen.

Grafik zum Anfordern von Ressourcen bei REST-ArchitekturenAnfordern von Ressourcen bei einer REST-Architektur

Sicherheit bei der Datenübertragung mit Webservices

Bei der Kommunikation über das öffentliche Internet ist die Sicherheit der Daten besonders zu beachten. Um die Daten vor unbefugten Zugriffen oder Manipulation zu schützen, authentifizieren sich die Kommunikationspartner gegenseitig vor jedem Austausch. Die Daten, die sie übertragen, sind mit einer Verschlüsselung geschützt. Dabei kommen Standards wie HTTPS (Hypertext Transfer Protocol Secure), Mutual Authentication, JWT (JSON Web Token), OAuth2 und weitere zum Einsatz.

Welche Vorteile haben Webservices?

Webservices bieten ein hohes Maß an Interoperabilität, also die Fähigkeit, mit Systemen zusammenzuarbeiten, die auf unterschiedlichen Plattformen basieren. Client und Server müssen kaum Gemeinsamkeiten haben, da standardisierte Formate verwendet werden, die alle Systeme verstehen. Außerdem sind die Services von überall nutzbar, da sie über das Internet erreichbar sind. Ein weiterer Vorteil wird vor allem durch die Trennung von Frontend und Backend deutlich. Da Webservices keine Benutzeroberfläche haben, können unsere Software-Entwickler Änderungen einfacher vornehmen. Diese Änderungen übertragen sie dann durch die Verbindung automatisch auf unterschiedliche Applikationen, ohne dass sie diese zusätzlich anpassen müssen.

Bei Webservices, die auf der Microservice Architektur basieren, entstehen zusätzliche Vorteile. Die Unabhängigkeit bei der Entwicklung und im Aufbau des Services ist dabei entscheidend. Unsere Entwickler müssen sich nicht mit anderen Projektgruppen absprechen und können die einzelnen Microservices sogar in unterschiedlichen Programmiersprachen schreiben. Sie können Änderungen an einem Teilaspekt des Webservices schneller vornehmen und unabhängig veröffentlichen. Dadurch ist die Möglichkeit einer Continuous Delivery Strategie gegeben, die gleichzeitig dem agilen Projektmanagement in der Bitfactory zugutekommt. Des Weiteren führt die Unabhängigkeit der Microservices dazu, dass diese Webdienste deutlich robuster sind als andere. Fällt ein Microservice aus, betrifft das nicht das gesamte System, sondern nur diese eine Funktion. Den Fehler können wir schnell finden und beheben, ohne die restlichen Funktionen des Webservices zu beeinflussen.

Benötigen Sie Hilfe bei der Umsetzung Ihres Softwareprojektes? Wir entwickeln Ihre individuelle digitale Lösung. Kontaktieren Sie uns telefonisch +49 711 21723730 oder per Mail hello@bitfactory.io.

Neuste Artikel

Zum Blog