iX 8/2024
S. 130
Praxis
Softwareentwicklung

Sicher und zuverlässig mit gRPC

Für die Netzwerkkommunikation via RPC eignet sich neben REST und Message Brokers auch gRPC. Es nutzt Protocol Buffers und punktet mit einigen Vorteilen.

Von Tobias Karger und Dr. Sebastian Bindick

APIs sind ein essenzieller Bestandteil jeder IT-Systemlandschaft und ermöglichen den Austausch von Daten zwischen Services im Netzwerk. Neben den auf REST oder Message Brokers basierenden Ansätzen hat sich das von Google entwickelte gRPC-Framework als Alternative für die Kommunikation etabliert [1]. gRPC verfolgt das Remote-Procedure-Call-Grundkonzept (RPC), das erlaubt, entfernte Prozeduren (Funktionen) über das Netzwerk in anderen Adressräumen aufzurufen. Dabei setzt gRPC das Client-Server-Modell um und abstrahiert die Schicht der Interprozesskommunikation (siehe Abbildung). Entwicklerinnen und Entwickler können Schnittstelle und Funktionen sprachneutral über Protocol Buffers definieren. Aus den Protocol Buffers ist dann automatisch Quellcode für Client und Server für Programmiersprachen wie C#, C/C++, Go, Java, Node, PHP, Python und Ruby generierbar.

Aufbau einer gRPC-Client-Server-Anwendung.
Aufbau einer gRPC-Client-Server-Anwendung.

Darüber hinaus serialisiert und deserialisiert gRPC die in der Protocol-Buffers-Datei beschriebenen Daten für die eigentliche Übertragung in ein kompaktes Binärformat, was einen effizienten Transfer auch großer Datenmengen ermöglicht. Außerdem setzt es auf das HTTP/2-Protokoll als Transportschicht und erlaubt so eine asynchrone bidirektionale (Duplex-)Kommunikation zwischen Client und Server. Der Artikel zeigt den Aufbau einer verteilten gRPC-Anwendung. Neben den Grundkonzepten von gRPC stehen Datenvalidierung, Testing, Webintegration, Performance, Fehlerbehandlung, Statuscodes und Datenstreaming im Blickpunkt.

Kommentieren