RPC(遠隔手続呼出し)とは?あーるぴーしー
RPC(遠隔手続呼出し)とは、手続き(プログラムの中の関数)をネットワーク越しの別のコンピュータで実行させ、呼び出す側からは自分の中の関数を呼ぶのと同じ書き方で使えるようにする仕組み。呼出し側では「スタブ」と呼ばれる代理の関数が引数を送信用のデータに変換(マーシャリング)して送り、サーバ側の結果を戻り値として受け取る。クライアントサーバシステムを支える基本技術として出題される。
最終更新:2026-10-09
基本情報を最短で暗記・合格する →背景
クライアントとサーバで処理を分けると、本来は「送るデータの形式を決め、接続を開き、送り、返事を待つ」という通信の手順を毎回書かなければならず、業務の処理より通信の処理のほうが長くなる。通信の面倒を代理関数(スタブ)に閉じ込め、プログラマには普通の関数呼出しに見せるという発想がRPCで、1980年代にSun Microsystems(サン・マイクロシステムズ)のNFS(ネットワーク経由でファイルを共有する仕組み)で広く使われて定着した。
具体例
Googleが公開しているgRPCは現代のRPCで、注文サービスのプログラムが在庫サービスの「在庫を減らす(商品ID, 個数)」を呼ぶと、裏でProtocol Buffersというデータ形式に変換してHTTP/2(HTTPの新しい版)で送り、返事を戻り値として受け取る。呼び出す側のコードには通信の処理がほとんど現れない。
試験での引っ掛け
見た目が普通の関数呼出しでも中身は通信なので、遅延・相手サーバの停止・途中でのタイムアウトが起こりうる。「自分の中の関数と同じ」という前提で書いたプログラムは、障害時に返事を待ったまま固まる。またRPCは「手続き(動詞)を呼ぶ」発想で、URLで「資源(名詞)を指して」読み書きするREST(Webの仕組みに沿ったAPIの設計の考え方)とは設計の出発点が違う。
関連用語
出典・参考
公式シラバスの2 コンピュータシステム > 1. システムの構成 > (4) クライアントサーバシステムに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。