gRPC

Fra Wikipedia, den frie encyklopedi

gRPC, også kjent som Google Remote Procedure Calls,[1][2] 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.[3][4][5] 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.[5]

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

Autentisering[rediger | rediger kilde]

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).[7]

Enkoding[rediger | rediger kilde]

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.[8]

Adopsjon[rediger | rediger kilde]

En rekke ulike organisasjoner har tatt i bruk gRPC, for eksempel Uber,[9] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks,[10] Spotify,[11] Zalando[12] og Dropbox.[13]

Åpen kildekode-prosjektet u-bmc bruker gRPC for å erstatte Intelligent Platform Management Interface (IPMI).[14] 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.[15]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ «FAQ». gRPC. 
  2. ^ «FAQ». 
  3. ^ «gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments | Google Cloud Blog». 
  4. ^ «Introducing gRPC, a new open source HTTP/2 RPC Framework». 
  5. ^ a b «About gRPC». Besøkt 25. mai 2021. 
  6. ^ «The state of gRPC in the browser». 
  7. ^ «gRPC». Besøkt 24. februar 2020. 
  8. ^ JamesNK. «Compare gRPC services with HTTP APIs». Besøkt 24. februar 2020. 
  9. ^ «gRPC at Uber». 
  10. ^ «gRPC». Besøkt 24. februar 2020. 
  11. ^ «gRPC at Spotify» (PDF). Besøkt 12. mai 2020. 
  12. ^ «Zalando Tech Radar». Besøkt 8. april 2021. 
  13. ^ «How we migrated Dropbox from Nginx to Envoy». Besøkt 30. oktober 2020. 
  14. ^ «u-bmc». 
  15. ^ Nigmatullin, Ruslan. «Courier: Dropbox migration to gRPC». Besøkt 9. januar 2019.