RPCリモートプロシージャコール

RPCプロトコルは、ネットワーク化されたコンピュータ間の通信を容易にします

ネットワーク上のあるコンピュータ上のプログラムは、リモートプロシージャコールを使用して、ネットワークの詳細を知らずに、 ネットワーク上の別のコンピュータ上のプログラムの要求を行います。 RPCプロトコルは、ソフトウェアアプリケーション内またはソフトウェアアプリケーション間のポイントツーポイント通信用のネットワークプログラミングモデルです。 RPCは、サブルーチン呼び出しまたは関数呼び出しとも呼ばれます。

RPCのしくみ

RPCでは、送信側コンピュータは、プロシージャ、関数、またはメソッド呼び出しの形式で要求を行います。 RPCはこれらの呼び出しを要求に変換し、ネットワーク経由で目的の宛先に送信します。 RPC受信者は、プロシージャ名と引数リストに基づいて要求を処理し、完了したら応答を送信者に送信します。 RPCアプリケーションは、通常、リモート呼び出しを仲介し、ローカルプロシージャコールと同じになるようプログラマに見せるようにする、「プロキシ」および「スタブ」と呼ばれるソフトウェアモジュールを実装します。

RPC呼び出しアプリケーションは通常、リモートプロシージャが結果を返すのを待って同期的に動作します。 ただし、同じアドレスの軽量スレッドを使用すると、複数のRPCが同時に発生する可能性があります。 RPCには、ネットワーク障害やRPCが返されないその他の状況を処理するタイムアウトロジックが組み込まれています。

RPCテクノロジ

RPCは1990年代からUnixの世界で一般的なプログラミング手法でした。 RPCプロトコルは、Open Software Foundationの分散コンピューティング環境とSun Microsystems Open Network Computingライブラリの両方に実装されています。どちらも広く展開されています。 最近のRPCテクノロジの例には、Microsoft DCOM、Java RMI、XML-RPC、SOAPなどがあります。