close
Vai al contenuto

gRPC

Da Wikipedia, l'enciclopedia libera.

gRPC (gRPC Remote Procedure Calls[1]) è un framework multipiattaforma ad alte prestazioni per chiamate di procedura remota (RPC).

gRPC venne inizialmente creato da Google, ma è open source e viene utilizzato in molte organizzazioni. I casi d'uso spaziano dai microservizi all'"ultimo miglio" dell'informatica (dispositivi mobili, web e Internet delle cose). gRPC utilizza HTTP/2 per il trasporto, Protocol Buffers come linguaggio di descrizione dell'interfaccia (IDL) e fornisce funzionalità quali autenticazione, streaming bidirezionale e controllo del flusso, associazioni bloccanti o non bloccanti, annullamento e timeout. Genera associazioni tra client e server multipiattaforma per molti linguaggi. Gli scenari di utilizzo più comuni includono la connessione di servizi in un'architettura in stile microservizi o la connessione di client di dispositivi mobili a servizi backend.[2]

L'utilizzo di HTTP/2 da parte di gRPC è considerato complesso. Rende impossibile implementare un client gRPC nel browser, richiedendo invece un proxy.[3]

A partire dal 2001 circa, Google ha creato un'infrastruttura RPC di uso generale chiamata Stubby per connettere il gran numero di microservizi in esecuzione all'interno e tra i suoi centri elaborazione dati.[4] Nel marzo 2015, Google ha deciso di realizzare la versione successiva di Stubby e di renderla open source. Il risultato è stato gRPC.

Autenticazione

[modifica | modifica wikitesto]

gRPC supporta l'utilizzo del protocollo crittografico Transport Layer Security (TLS) e l'autenticazione basata su token. La connessione ai servizi Google deve utilizzare TLS. Esistono due tipi di credenziali: credenziali di canale e credenziali di chiamata.

Per l'autorizzazione basata su token, gRPC fornisce un Server Interceptor[5] e un Client Interceptor.[6]

gRPC utilizza i Protocol Buffers per codificare i dati. I buffer di protocollo forniscono un formato di serializzazione e un linguaggio di definizione dell'interfaccia (IDL).[7]

Alcuni degli strumenti software utilizzati per testare le implementazioni gRPC includono Postman, ezy,[8] Insomnia e Step CI.[9]

Molte organizzazioni utilizzano gRPC, tra cui Uber,[10] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Arista Networks, Cisco, Juniper Networks,[11] Spotify,[12] Zalando,[13] Dropbox,[14] e Google come sviluppatore originale.

Il progetto open source u-bmc utilizza gRPC per sostituire l'Intelligent Platform Management Interface (IPMI).[15] L'8 gennaio 2019, Dropbox ha annunciato che la prossima versione di "Courier", il loro framework RPC al centro della loro architettura orientata ai servizi (SOA), sarebbe stata migrata per essere basata su gRPC, principalmente perché si allineava bene con i loro framework RPC personalizzati esistenti.[16]

Soluzioni alternative

[modifica | modifica wikitesto]
  1. (EN) FAQ, su grpc.io, gRPC. URL consultato il 7 aprile 2026.
  2. (EN) About gRPC, su grpc.io, gRPC. URL consultato il 7 aprile 2026.
  3. (EN) Johan Brandhorst, The state of gRPC in the browser, su grpc.io, gRPC, 8 gennaio 2019. URL consultato il 7 aprile 2026.
  4. (EN) Varun Talwar, gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments, su cloud.google.com, Google Cloud, 24 agosto 2016. URL consultato il 7 aprile 2026.
  5. (EN) gRPC interceptors with Java, su thecodedata.com, The Code Data, 27 febbraio 2023 (archiviato dall'url originale il 7 marzo 2023).
  6. (EN) Authentication, su grpc.io, gRPC. URL consultato il 7 aprile 2026.
  7. (EN) James Newton-King, Compare gRPC services with HTTP APIs, su docs.microsoft.com, Microsoft Learn. URL consultato il 7 aprile 2026.
  8. (EN) ezy, su github.com, GitHub. URL consultato il 7 aprile 2026.
  9. (EN) Testing gRPC APIs, su docs.stepci.com, Step CI. URL consultato il 7 aprile 2026.
  10. (EN) Rohit Patali, Abhishek Parwal e Madan Thangavelu, The Architecture of Uber’s API gateway, su eng.uber.com, Uber Blog, 19 maggio 2021. URL consultato il 7 aprile 2026.
  11. (EN) FAQ - Who’s using this and why?, su grpc.io, gRPC. URL consultato il 7 aprile 2026.
  12. (EN) Adopting gRPC at Spotify (PDF), su jfokus.se, Jfokus 2019, 6 febbraio 2019. URL consultato il 7 aprile 2026.
  13. (EN) Zalando Tech Radar, su opensource.zalando.com, Zalando, luglio 2020 (archiviato dall'url originale l'8 giugno 2021).
  14. (EN) Alexey Ivanov e Oleg Guba, How we migrated Dropbox from Nginx to Envoy, su dropbox.tech, Dropbox Tech, 30 luglio 2020. URL consultato il 7 aprile 2026.
  15. (EN) u-bmc, su github.com, GitHub. URL consultato il 7 aprile 2026.
  16. (EN) Ruslan Nigmatullin e Alexey Ivanov, Courier: Dropbox migration to gRPC, su dropbox.tech, Dropbox Tech, 8 gennaio 2019. URL consultato il 7 aprile 2026.

Collegamenti esterni

[modifica | modifica wikitesto]