Open Network Computing Remote Procedure Call(ONC RPC)は、分散システムにおける遠隔手続き呼出し(RPC)を実現するためのプロトコルの一つです。
サン・マイクロシステムズが
Network File System(NFS)の一部として開発したもので、Sun ONCまたはSun RPCとも呼ばれます。ここではONCと略して記述します。
ONCは、
UNIXと
C言語の呼び出し規約に準拠して設計されています。データのシリアライズには、XDR(External Data Representation)という標準形式が用いられます。XDRは、異なるシステム間でデータを交換する際に、データの表現形式の違いを吸収する役割を果たします。
ONCの通信は、主にUDPまたはTCPプロトコルを使用して行われます。クライアントは、XDRでシリアライズされたデータをこれらのプロトコルでサーバーに送信し、サーバーは処理結果を同じくXDR形式でクライアントに返します。このプロセスにより、異なるアーキテクチャやオペレーティングシステムを持つマシン間でも、データの整合性を保ちながら通信が可能になります。
RPCサービスに
アクセスする際には、ポートマッパーという仕組みが利用されます。ポートマッパーは、特定のポート番号で待機し、RPCサービスのポート番号を問い合わせるクライアントに応答します。通常、UDPまたはTCPの111番ポートがポートマッパーに使用されます。クライアントは、ポートマッパーに問い合わせることで、目的のRPCサービスが使用しているポート番号を動的に取得し、サービスに接続できるようになります。
ONCは、多くの
UNIX系システムに標準で実装されています。また、
マイクロソフトはWindows向けの実装をServices for
UNIXの一部として提供しています。さらに、
サードパーティーによって、Windows向けのONC実装も複数提供されており、
C言語、
C++、
Java、.NETなどの様々なプログラミング言語から利用可能です。
ONC RPCの仕様は、RFC 1831で詳細に記述されています。また、ONC RPCの認証機構については、RFC 2695、RFC 2203、RFC 2623でそれぞれ規定されています。
関連技術として、分散コンピューティング環境(DCE)、XDR、XML-RPCなどが挙げられます。これらの技術は、ONCと同様に分散システムにおけるデータ交換や手続き呼び出しをサポートするためのものです。
関連項目
Distributed Computing Environment (DCE)
XDR
XML-RPC
外部リンク
ONC/RPC Implementation of the University of Aachen (Germany)
Remote Tea (LGPL Java Implementation)
Distinct Corporation's ONC RPC for Windows
*
Linux Journal article on ONC RPC