Al giorno d'oggi, GRPC è diventato un argomento di grande attualità nella nostra società. Fin dalla sua nascita, GRPC ha catturato l'attenzione di esperti, accademici e grande pubblico, generando un dibattito continuo e arricchente. Nel corso degli anni, GRPC ha subito cambiamenti significativi, evolvendosi e adattandosi ai progressi tecnologici, culturali e sociali. In questo articolo daremo uno sguardo approfondito all'impatto di GRPC in diverse aree, esplorandone i contributi, le sfide e le prospettive future. In che modo GRPC ha influenzato la nostra vita quotidiana? Quali sono le implicazioni di GRPC nel contesto attuale? Unisciti a noi in questa esplorazione e scopriamo insieme l'importanza e la rilevanza di GRPC nel mondo contemporaneo.
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.
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]