Erste Beta von Googles gRPC verfügbar

Das sprach- und plattformneutrale RPC-Framework soll die Entwicklung verteilter Anwendungen vereinfachen. Es ist quelloffen und setzt konsequent auf Standards.

In Pocket speichern vorlesen Druckansicht 23 Kommentare lesen
Erste Beta von Googles gRPC verfügbar
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Google hatte bereits seit langer Zeit eine eigene RPC-Infrastruktur (Remote Procedure Call) namens Stubby, um die zahlreichen Microservices auf den verteilten Servern zu verbinden. Das Unternehmen hat durchaus positive Erfahrungen damit, seine eigene Techniken als Open-Source-Software zu veröffentlichen und so auch von der Community bei der Entwicklung neuer Techniken zu profitieren. Beim Blick auf Stubby kamen die Entwickler jedoch zu dem Schluss, dass es für eine Veröffentlichung zu eng mit Googles Infrastruktur verknüpft war und zu wenig auf Standards beruhte. Daher war für gRPC ein Neustart nötig, der sich an Standards orientiert. Eine Nachricht auf der gRPC-Site erklärt die Motivation für das Projekt.

gRPC setzt auf Microservices und vermeidet dabei explizit verteilte Objekte mit Verweis auf den renommierten Autor und Referenten Martin Fowler. Gleichzeitig sollen die grundlegenden Funktionen für alle offen sein und die Bestandteile als Open Source veröffentlicht werden. Das System unterstützt zahlreiche Plattformen und bereits jetzt einen umfangreichen Sprachkatalog: C++, Java, Go, Python, Ruby, Node.js, Android Java, C#, Objective-C und PHP sind in der Dokumentation gelistet.

gRPC ermöglicht den Aufruf entfernter Methoden über unterschiedliche Betriebssyteme und Sprachen hinweg.

(Bild: Google)

Das Prinzip ist mehr oder weniger dasselbe wie bei anderen RPC-Systemen: Ein Service implementiert einen gRPC-Server und die Clients einen dazu passenden Stub mit denselben Methoden, Parametern und Rückgabetyp-Definitionen. Die Client-Anwendung ruft die Funktion im Stub auf, der daraufhin eine Anfrage an den Server schickt, auf dem die eigentliche Methode ausgeführt wird. Dieser schickt wiederum die Antwort an den Stub zurück, der sie an die Client-Anwendung als Rückgabewert weitergibt. Auf die Weise integrieren Entwickler die entfernten Methoden so wie lokale.

Auch beim Nachrichtenformat ist das System offen: Standardmäßig läuft die Kommunikation über Googles Protocol Buffers. Alternativ dürfen die Nachrichten auch in JSON, XML oder Thrift verfasst sein. Das gRPC-Protokoll zur Kommunikation spezifiziert die abstrakte Kommunikation. Eine Anleitung erklärt die Implementierung über HTTP/2. Die Quellen der Bibliotheken für die unterschiedlichen Sprachen stehen auf GitHub zum Herunterladen. (rme)