Implementing Remote Procedure Calls

September 11, 2021

Xeroxのプログラミング環境Cedarのために開発されたRPCを解説した84年の論文である。 RPCの開発目的は、分散コンピューティングを簡単に実装できるようにする、通信時間を短くする、通信をセキュアにすることの3点である。 RPCは大部分でMesaが使われた。

CedarのRPCの設計は現在のRPCフレームワークのものと大きく変わらない。 以下に設計の全体像を図示する。 大きくUser, User-stub, RPCRuntime, Server-stub, Serverの5つのモジュールならなる。 RPCを呼び出すUserからみれば、RPCでないメソッドを呼び出すようにRPCを呼び出すことができる。 Stubは、RPCと通常のメソッドの差異を埋めるためにあり、Lupineというプログラムで生成できる。 Userの対称にあるServerも同様で、server-stubがServerからみてRPCメソッドをほかのメソッドと違わないように見せる。 RPCRuntimeは通信の信頼性や通信のセキュアを確保する。 overview 論文をこちらからダウンロードできます。