Was sind Webhooks? eine Erklärung und ihre historische Entwicklung

In diesem Beitrag erkläre ich euch das Konzept von Webhooks, ihre Herkunft und typische Anwendungsbereiche. Für viele ist dieser Begriff möglicherweise noch vollkommen unbekannt, aber im Laufe ihrer beruflichen Laufbahn werden Systemadministratoren und Entwickler mit ziemlich hoher Wahrscheinlichkeit eines Tages auf den Begriff „Webhooks“ stoßen. In der Regel geschieht dies, wenn wir sicherstellen möchten, dass mindestens zwei Server miteinander kommunizieren können. Gehen wir im nächsten Absatz zunächst auf die Entstehung und die Namensgebung ein.

Inhaltsverzeichnis

Was verstehen wir unter dieser Technologie?

Auf Deutsch würde man Webhooks vermutlich als „Webhaken“ mit der Funktion beschreiben, Daten über eine Schnittstelle (Haken) abzufangen, die dann weiterverarbeitet werden können. Letztlich handelt es sich bei dieser Technologie um das bereits bekannte Prinzip zwischen Sender und Empfänger. Die ersten Konzepte, die heute unter dem Begriff „Webhooks“ bekannt sind, wurden bereits in den frühen 2000er-Jahren entwickelt, um Daten zwischen webbasierten Servern und Anwendungen auszutauschen und miteinander zu verknüpfen. Das genaue Datum scheint nach meiner Recherche nirgends so richtig validiert worden zu sein.

Praktische Anwendungen von Webhooks

Webhooks finden häufig Anwendung in automatisierten Monitoring-Systemen, beispielsweise zur Überwachung von Servern, Computern und Komponenten, um einem anderen Programm über das Netzwerk oder Internet selektierte Informationen über einen bestimmten Status mitzuteilen. In der Systemadministration kann eine zentralisierte Server-Software gehostet werden, die Informationen wie CPU-Auslastung, RAM-Auslastung und Speicherbelegung von zahlreichen Serversystemen auf einer benutzerfreundlichen Oberfläche zusammenfasst.

Dadurch können Administratoren frühzeitig über Fehler oder Ausfälle informiert werden. Hierbei werden üblicherweise HTTP-Callbacks und POST-Anfragen verwendet, um von einer Anwendung zur anderen zu kommunizieren. Das erleichtert die Administration großer Serverlandschaften und hilft bei der Verwaltung. Diese Kommunikationsweise über das Netzwerk oder das World Wide Web (WWW) hat ihnen den leicht merkbaren Namen „Webhooks“ eingebracht. Im Bereich des Smarthomes nutzen viele Anbieter und Softwareoptionen die Datenübertragung mittels Webhooks, um auf eine bestimmte Aktion automatisiert über mehrere Geräte hinweg zu reagieren.

Dies ist besonders sinnvoll, da Webhooks nahezu in Echtzeit kommunizieren können, was zu sehr geringen Latenzen führt. Bei einer Helligkeit von unter X % können so zum Beispiel bestimmte Lichter automatisch eingeschaltet werden. Die Helligkeit würde über Sensoren bestimmt und dem Server zugesandt werden.

Dabei wird in der Regel eine URL (Webadresse) definiert, an die die Daten zur Weiterverarbeitung gesendet werden (Endpunkt). Die Daten, die vom Sender zum Empfänger mittels Webhooks (http-Callbacks) übermittelt werden, sind strukturiert und liegen meist in Form von JSON oder XML vor. Auf diese Weise können sogar spezifische Zustände übertragen werden. Zur noch besseren Verständlichkeit folgt im nächsten Abschnitt ein Beispiel für die Integration und Verwendung von Webhooks im Bahnnetz.

So funktionieren Webhooks: ein Beispiel mit einem Bahnnetz

Angenommen, eine Zugstrecke beträgt insgesamt 200 Kilometer und umfasst fünf Bahnhöfe. Bei jedem Haltestopp wird 20 % der Gesamtstrecke zurückgelegt, das sind also 40 Kilometer. Wenn man den Mitarbeitern in der Zentrale die genaue Position des Zuges mitteilen möchte, um den Zugfahrplan und die Ankunftszeiten zu berechnen und auf einem Anzeigebrett am Gleis anzuzeigen, kann dies durch die Integration von Webhooks ermöglicht werden.

Der Zug sendet Statusmeldungen über einen Webhook als POST-Anfrage an die Zentrale. In diesem Szenario fungiert der Zug als Sender, auch Agent genannt, und die Zentrale betreibt den Server (Empfänger), der die verarbeiteten Daten an das Anzeigebrett überträgt.

Webhooks - Beschreibung mit einem Beispiel

In der Praxis könnten zusätzlich zur Zugposition auch Daten wie Zuggeschwindigkeit und Motortemperatur in Echtzeit übertragen werden, um Fehler rechtzeitig zu erkennen und gegebenenfalls aus der Ferne reagieren zu können.

Welche alternativen Methoden gibt es?

Es gibt alternative Protokolle zur Datenübertragung, darunter klassische E-Mails (SMTP/IMAP), Web Sockets, Reverse APIs und andere netzbasierte Protokolle. Dennoch bieten Webhooks mehrere Vorteile: Sie sind sehr zuverlässig, können dank moderner Webentwicklungsprogrammiersprachen (z. B. Flask oder Node.js) angepasst und weiterentwickelt werden und ermöglichen die Echtzeitverarbeitung von Daten. Ich hoffe, dass ich eure Fragen zu dieser Technologie in diesem Beitrag ausreichend behandelt und gut dargestellt habe. Hinterlasst gerne einen Kommentar, falls ihr etwas zu diesem Thema beitragen möchtet.

Schreibe einen Kommentar

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