GRPC

gRPC, også kjent som Google Remote Procedure Calls, er et system for eksterne prosedyrekall bygd på åpen kildekode. gRPC ble opprinnelig utviklet av Google i 2015 som en videreutvikling av deres egen RPC-infrastruktur brukt internt under navnet Stubby. gPRC ble lansert i 2016. Den bruker HTTP/2 for transport, Protocol Buffers som beskrivelsesspråk for grensesnittet, og gir funksjoner som autentisering, toveisstrømming og flytkontroll, blokkerende eller ikke-blokkerende bindinger, samt kansellering og tidsavbrudd. Den lager kryssplattform-bindinger mellom klient/tjener for mange språk. De vanligste bruksscenariene inkluderer tilkobling av tjenester i en mikrotjenestearkitektur eller kobling av mobilklienter til backend-tjenester.

gRPC sin komplekse bruk av HTTP/2 gjør det umulig å implementere en gRPC-klient i nettleseren, og krever istedet en mellomtjener.

Autentisering 
gRPC støtter bruk av TLS og tokenbasert autentisering. Tilkobling til Google-tjenester må bruke TLS. Det finnes to typer legitimasjon: kanal-legitimasjon og kall-legitimasjon (henholdsvis channel credentials og call credentials).

Enkoding 
gRPC bruker Protocol Buffers for å enkode data. I motsetning til REST API-er med JSON har gRPC en strengere spesifikasjon. På grunn av at man har en enkelt spesifikasjon å forholde seg til eliminerer gRPC diskusjoner og sparer utviklingstid ettersom gRPC er konsekvent på tvers av plattformer og implementeringer.

Adopsjon 
En rekke ulike organisasjoner har tatt i bruk gRPC, for eksempel Uber, Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks, Spotify, Zalando og Dropbox.

Åpen kildekode-prosjektet u-bmc bruker gRPC for å erstatte Intelligent Platform Management Interface (IPMI). Den 8. januar 2019 annonserte Dropbox at den neste versjonen RPC-rammeverket deres "Courier", som ligger i kjernen av deres tjenesteorienterte arkitektur, ville migreres over til å være basert på gRPC, først og fremst fordi det passer bra med deres eksisterende spesialtilpassede RPC-rammeverk.

Se også 
 Protocol Buffers
 Apache Avro

Referanser 

Interprosesskommunikasjon
Fri programvare