バージョンアップ情報
gRPC情報
gRPCとは
gRPC(ジーアールピーシー)はGoogleが2015年に開発したオープンソースのRPCフレームワークです。
RPC(Remote Procedure Call/遠隔手続き呼び出し)とは、ネットワーク上の他端末と通信するための仕組みのことで、これによって他端末のプログラムをリモートで実行することができます。
gRPCは、Google社内で10年以上利用されていた独自のRPCであるStubbyをもとにしており、SPDYやHTTP/2、QUICの台頭に連動して標準化されました。
負荷分散、トレース、ヘルスチェック、認証へのプラグインをサポートし、データセンター内外のサービスを効率的に接続できます。
デバイス、モバイルアプリケーション、ブラウザをバックエンドサービスとする分散コンピューティングのラストマイルにも適用できます。
主な特徴
gRPCには、以下のような特徴があります。
シンプルなサービス定義
強力なデータシリアライズ化メカニズムであるProtocol Buffersを使用してサービスを定義可能。
容易に始められスケールアップ可能
1行でランタイム環境と開発環境をインストールし、フレームワークを使用して 1 秒あたり数百万の RPC に拡張することも可能。
言語やプラットフォームを超えて動作
さまざまな言語とプラットフォームで、クライアントとサーバーのスタブを自動的に生成
双方向ストリーミングと統合認証
HTTP/2 ベースのトランスポートによる双方向ストリーミングと完全に統合されたプラグイン可能な認証
gRPCは、クライアントアプリケーションが他端末上のサーバーアプリケーションのメソッドを直接呼び出せるため、分散アプリケーションやサービスを容易に作成できます。
リモートで実行できるメソッドはクライアントのスタブに記載されています。
スタブからメソッドを指定すると、サーバー側にて指定されたメソッドを処理します。
他のコンポーネントとのやりとりを記述するIDL(Interface Definition Language)としてProtocol Buffersを利用しています。
Protocol Buffersとはオープンソースのバイナリシリアライズメカニズムであり、サービスの定義やクライアントライブラリの自動生成を容易に実施できます。
そのため、異なる言語やプラットフォーム同士であっても効率よくデータのやりとりができます。
また、HTTP/2上で動作するため、双方向ストリーミングや1つのTCP接続に対する多重リクエストを実現します。
これにより、gRPCを用いてレスポンシブでリアルタイム性のあるアプリを開発することができます。
ユースケース
gRPCはiOSおよびAndroid用のライブラリを生成でき、HTTP/2を使用してプロキシやファイアウォールを容易に通過できるため、モバイルクライアントやWebクライアントをバックエンドサービスと繋げる際に利用されています。ブラウザで使用するJSライブラリを開発する際にも利用されています。また、マイクロサービスの相互接続として理想的であり、Googleでもマイクロサービスを接続するためにgRPCを使用しています。
下記URLに具体的なユースケース例の記載があります。
動作環境
gRPCはC++やJava、python、Go、Rubyなどさまざまな言語に対応しています。
言語ごとの公式サポート状況は下記の表の通りです(※2024年6月現在)。
C/C++ |
Linux,Mac:GCC 7.3.1以上、Clang 6以上 |
---|---|
C# |
Linux,Mac:.NET Core, Mono4以上 |
Dart |
Linux,Mac,Windows:Dart:2.12以上 |
Go |
Linux,Mac,Windows:Go 1.13以上 |
Java |
Linux,Mac,Windows:Java 8以上(Android:Kitkat以上) |
Kotlin |
Linux,Mac,Windows:Kotlin:1.3 以上 |
Node |
Linux,Mac,Windows:Node v8 以上 |
Objective-C |
macOS (10.10以上)、iOS(9.0以上):XCode 12以上 |
PHP |
Linux,Mac:PHP:7.0以上 |
Python |
Linux,Mac,Windows:Python:3.7以上 |
Ruby |
Linux,Mac,Windows:Ruby:2.3以上 |
最新の情報は、下記URLをご参照ください。
gRPCのライセンス
gRPCのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
tRPC
ティーアールピーシー。フルスタックのTypeScript開発者向けのフレームワークです。