gRPC 【gRPC Remote Procedure Calls】
概要
gRPC(gRPC Remote Procedure Calls)とは、米グーグル(Google)社が開発したRPC(リモートプロシージャコール)仕様の一つ。異なるシステム間で機能を呼び出して連携することができる。2015年に発表され、Apacheライセンスに基づいてオープンソースとして公開されている。RPC(Remote Procedure Call:遠隔手続き呼び出し)は、あるコンピュータ上で動作しているプログラムからネットワークを通じて別のコンピュータで動作しているプログラムの機能を呼び出す仕組みで、共通のデータ形式や通信手順に従って処理依頼や応答を送受信する。
RPCの規格には様々な種類があり、gRPCはGoogle社が自社サービスの運用改善のために考案したものを公開したものである。コンピュータ間の通信にHTTP/2、標準のデータ形式として同社のProtocol Buffersを用い、スピードと効率を重視した仕様となっている。
同期通信と非同期通信の両方に対応し、データの終端があらかじめ決まっていないストリーミング型のデータ送信も可能となっている。APIによる機能拡張、単位時間あたりのデータ伝送量の制限、新規の接続のみを断る終了方式の実現など、実用的な仕様も盛り込まれている。
主な想定用途としてマイクロサービス型のシステムにおけるサービス間の通信があり、モバイルアプリとサーバの連携などにも採用されている。Java(Android版含む)、C#、C++言語、Go言語、Kotlin、Objective-C、Node.js、Python、Ruby、PHPなどのプログラミング言語に対応しており、異なる言語のプログラム間の連携も可能である。
(2023.10.7更新)