Internet-Protokolle, Teil 3: Neue Standards für die Aufgaben der Zukunft

Architektur/Methoden  –  0 Kommentare
Anzeige

Trotz sich ändernder Anforderungen verteilter Systeme ist es nicht sinnvoll, immer ein neues Protokoll zu erfinden, wenn ein altes an seine Grenzen stößt. BEEP bietet einen Ausgangspunkt, um Netzwerkkommunikation flexibel zu gestalten.

Nachdem in den ersten beiden Teilen der Artikelserie die wichtigsten Funktionen von TCP/IP und darauf aufsetzende Anwendungsprotokolle Thema waren, geht es im dritten und letzten Teil um zukünftige Standards für derartige Protokolle.

Nachrichtenprotokolle spielen eine besondere Rolle in modernen, verteilten Anwendungen. Dabei tauchen immer neue Anforderungen auf, was zu einer inflationären Standardisierung führt. Welche Protokolle das Wettrennen zwischen Anforderungen und Standards beenden werden, lässt sich kaum vorhersagen. Der Artikel beschreibt einige der aktuellen Herausforderungen und zeigt, wie die Flexibilisierung des Protokollstapels die langfristige Verwendbarkeit der Anwendung sichert.

Eine Alternative zu monolithischen Anwendungen bietet der aktuell stark im Trend liegende Architekturansatz der Microservices. Seine Vorteile sind beispielsweise eine gute Skalierbarkeit, hohe Fehlertoleranz und bessere Wartbarkeit. Besonders beim Betrieb auf Server-Clustern oder in der Cloud entfalten Microservices ihr Potenzial. So ermöglichen sie es unter anderem, Ressourcen je nach Lastanforderung dynamisch freizugeben oder hinzuzufügen.

Die Grundidee ist die Zerlegung einer Anwendung in kleinere Einheiten, die als Dienste zur Verfügung stehen und über das Netz miteinander kommunizieren. Dabei steigt die Menge und Komplexität der zwischen den Diensten ausgetauschten Informationen mit der Größe der Anwendung. Ungenügende Performance und inkompatible Schnittstellen sind zwei der Probleme, die daraus entstehen können. Neben der reinen Interprozesskommunikation zwischen den Diensten ist beim Einsatz dieser Architektur eine Überwachung des gesamten Systems nötig. Dienste müssen dafür im laufenden Betrieb Telemetriedaten und Log-Informationen liefern. Der interne Kommunikationsbedarf der gesamten Anwendung steigt erneut. All das darf keine Auswirkungen auf die Performance haben, egal wie der Betriebszustand des Systems ist.

Das Internet of Things (IoT) beziehungsweise das Internet of Everything (IoE) erweitern den Begriff des globalen Netzwerks. Nicht mehr nur Server in Rechenzentren liefern Daten, die Anwendungen ihren Nutzern zur Verfügung stellen, sondern Klein- und Kleinstgeräte bis hin zu einzelnen Sensoren lassen sich einbeziehen. Es ist dabei nicht immer möglich, die Verbindung mit dem Internet über eine TCP/IP-Verbindung herzustellen.

Die Geräte verwenden Batterien als Stromversorgung und müssen, da sie räumlich verteilt sind, auf energiesparende, drahtlose Übertragungstechniken wie Bluetooth zurückgreifen. Ähnlich wie bei Microservices steigt der Kommunikationsbedarf mit der Komplexität der verteilten Systeme. Je nach verwendeter Übertragungstechnik muss die Anwendung unterschiedliche Protokolle beherrschen und ihre Kommunikation entsprechend anpassen.

Internet of Things und Microservices sind Beispiele für Anwendungen, deren Anforderungen existierende Netzwerkprotokolle an ihre Grenzen bringen. Daher entstehen fortwährend neue Protokolle und Standards, wobei sich die Frage stellt, welchen Sinn letztere haben, wenn gleich mehrere Protokolle für einen Anwendungsfall geeignet sind. Solange es kein Standard geschafft hat, sich vollständig zu etablieren, folgen wohl zunehmend mehr. Anwendungsprotokolle, die über Jahrzehnte verwendet und immer nur leicht verändert wurden, sind auf überschaubare Anwendungsfälle spezialisiert. Beispiele sind Dateifreigabe (FTP, SMB), E-Mail-Versand (SMTP) oder das Ausliefern einer Textdatei mit HTML (HTTP).

Neue Dienste im Netz erfordern hingegen flexible Protokolle, die sich leicht den Anforderungen anpassen lassen. Neue Standards wie Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP) oder HTTP/2 konzentrieren sich auf spezielle Anwendungsfälle, die damit hinreichend gelöst sind. Im Kern sind es jedoch Nachrichtenprotokolle, die einige Übereinstimmungen aufweisen. Entwickler "erfinden" trotzdem viele solcher Funktionen immer wieder neu. Die Herausforderung könnte darin bestehen, derartige Gemeinsamkeiten von Nachrichtenprotokollen zu identifizieren und sie in einem Protokoll zusammenzufassen. Das Ergebnis sollte flexibel und für eine Vielzahl von Anwendungsfällen geeignet sein.

Anzeige