gRPC (gRPC Remote Procedure Calls) – wieloplatformowy, otwartoźródłowy oraz wysokowydajny framework protokołu zdalnego wywołania procedury. Został napisany przez Google będąc wersją rozwojową ich wewnętrznego protokołu RPC o nazwie Stubby wykorzystywanego do komunikacji pomiędzy licznymi mikroserwisami działającymi w centrach danych od 2001 roku. W marcu 2015 roku zapadła decyzja o zastąpieniu Stubby nowym protokołem, który miał być tworzony jako otwarte oprogramowanie. Efektem tych prac było wydanie w 2016 roku pierwszej wersji gRPC.

Charakterystyka gRPC wykorzystuje HTTP/2 jako protokół komunikacyjny oraz Protocol Buffers jako język opisu interfejsu, definiujący również format serializacji i kodowanie danych. W celu uwierzytelniania stosowany jest protokół kryptograficzny TLS. Obsługiwane są dwa typy list uwierzytelniających: kanałowa (ang. channel) oraz wywoławcza (ang. call). Do autoryzacji dostarczane są dwa typy przechwytywaczy: Service Interceptor oraz Client Interceptor.

Ze względu na silne oparcie się o HTTP/2 nie jest możliwa implementacja klienta gRPC w przeglądarce internetowej, w tym celu wymagane jest użycie odpowiedniego proxy.

Wykorzystanie gRPC wykorzystuje się głównie do komunikacji pomiędzy serwisami w architekturze mikroserwisów oraz komunikacji urządzeń mobilnych z serwisami backendowymi. Do swoich rozwiązań produkcyjnych został on zaadaptowany przez między innymi Uber, Block, Inc., Netflix, IBM, Docker, Arista Networks, Cisco Systems, Spotify, Dropbox oraz własnego autora Google.

Otwartoźródłowy project u-bmc wykorzystuje gRPC jako zastępstwo dla Intelligent Platform Management Interface.

Przypisy

Linki zewnętrzne Główna strona projektu Kod źródłowy na platformie GitHub gRPC w Google Open Source

Kategoria:Oprogramowanie na licencji Apache License Kategoria:Produkty Google Kategoria:Protokoły internetowe