IT用語辞典バイナリ |
リモートプロシージャコール
【英】Remote Procedure Call, RPC
リモートプロシージャコールとは、ネットワークによって接続された他のコンピュータ上でプログラムを呼び出し、実行させるための手法のことである。あるいは、そのためのプロトコルのことである。
リモートプロシージャコールでは、プログラムの実行に用いられるサブルーチンの呼び出し(プロシージャコール)をネットワークを通じたマシンに対して行うことによって、遠隔地のマシンに処理を行わせている。リモートプロシージャコールを用いることで、ネットワークを通じて他のマシンに処理を行わせ、その処理結果だけを受け取ることができる。
リモートプロシージャコールに対して、ローカルマシンにおいて行われる通常のプロシージャコールは特にローカルプロシージャコール(LPC)と呼ばれる。一般的に、プログラムを実行するアプリケーションソフトの側では、リモートプロシージャコールとローカルプロシージャコールの違いを意識せずに扱うことができるようになっている。
リモートプロシージャコールは、クライアント・サーバーシステムや分散処理(分散コンピューティング)技術を実現する仕組みとして利用されている。Sun Microsystemsが開発したNFS(Network File System)や、DCE(Distributed Computing Environment)、Microsoftの分散オブジェクト技術であるDCOM(Distributed Component Object Model)などでは基幹技術のひとつとして採用されている。リモートプロシージャコールを行うためのプロトコルとしては、HTTPを通じてXML形式のデータをやり取りするXML-RPCや、Javaを使用するJAX-RPCなどがある。
ウィキペディア |
RPC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2011/10/31 12:09 UTC 版)
| TCP/IP群 | |
|---|---|
| アプリケーション層 | |
|
BGP · DHCP · DNS · FTP · HTTP · IMAP · IRC · LDAP · MGCP · NNTP · NTP · POP · RIP · RPC · RTP · SIP · SMTP · SNMP · SSH · Telnet · TFTP · TLS/SSL · XMPP カテゴリ |
|
| トランスポート層 | |
|
TCP · UDP · DCCP · SCTP · RSVP · ECN カテゴリ |
|
| ネットワーク層 | |
|
IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec カテゴリ |
|
| リンク層 | |
|
ARP/InARP · NDP · OSPF · トンネリング (L2TP) · PPP · MAC (イーサネット, IEEE 802.11, DSL, ISDN, FDDI) カテゴリ |
RPC(英: remote procedure call、リモートプロシージャコール)とは、プログラムから別のアドレス空間(通常、共有ネットワーク上の別のコンピュータ上)にあるサブルーチンや手続きを実行することを可能にする技術。遠隔手続呼出とも。その際に遠隔相互作用の詳細を明示的にコーディングする必要がない。つまり、プログラマはローカルなサブルーチン呼び出しと基本的に同じコードをリモート呼び出しについても行う。RPCを行うソフトウェアがオブジェクト指向プログラミングに基づく場合、RPC のことを リモート呼び出し(remote invocation)あるいは リモートメソッド呼び出し (remote method invocation、RMI)と呼ぶこともある(Java RMIなど)。
RPC には例えば、ONC RPC や DCE/RPC といった互いに非互換な様々な技術が存在する。
目次 |
起源と歴史
RPC の考え方は、少なくともRFC 707が発表された1976年まで遡る。最初に RPC を商用に実用化したのはゼロックスの「Courier」であり、1981年のことであった。UNIXで最初に広く使われるようになった RPC 実装はサン・マイクロシステムズの RPC(ONC RPC)であり、NFS の基盤として使われた。ONC RPC は現在でも広く使われている。
もう一つのUNIXでの初期の実装として、アポロコンピュータの Network Computing System (NCS) がある。NCS は後に OSF の Distributed Computing Environment (DCE) で DCE/RPC の基盤として使われた。その約10年後、マイクロソフトが DCE/RPC を同社の RPC (MSRPC) の基盤として採用し、DCOM の実装に使った。同じころ(1990年代中盤)、継承機構を備えた分散オブジェクトに関する RPC パラダイムとして、パロアルト研究所の ILU と Object Management Group の CORBA が登場した。
メッセージパッシング
RPCクライアントは、実行する手続きと引数とを要求メッセージとして既知のリモートサーバに送信することで、RPCを開始する。サーバーがRPCを処理している間、クライアント側はブロックされる。サーバー上でメッセージが処理され、応答がクライアントに戻ってくると、クライアント上のプロセスは処理を続行する。
RPC プロトコルの実装によって微妙な違いをもった多くのバリエーションがあり、それらの間には互換性がない。
RPCが通常のローカル呼び出しと比べて違う点で重要なのは、予測できないネットワーク上の問題で失敗することがあるという点である。またそのような場合、手続きが実際に実行されたかどうかをクライアントが知ることができないことがある。そういったケースでは、二重に手続きを実行しても影響のない場合は容易に対処できるが、そうでなければ適切な対処は困難である。そのため、注意深く記述された低レベルなサブシステムの制限下で呼び出しコードを実行するという方法がよくとられる。
標準コンタクト機構
各種クライアントからサーバへのアクセスを可能とするため、いくつかの標準 RPC システムが開発されてきた。それらの多くはインタフェース記述言語 (IDL) を使って各種プラットフォーム間の RPC を可能としている。
IDL ファイルはクライアントとサーバ間のインタフェースのためのコードを生成するのに使われる。最も一般的なツールとしては RPCGEN がある。
- 1 RPCの概要
- 2 RPC に類似する概念
固有名詞の分類
- RPC-200|CSE、クリーン・レギュレーター:製品情報Stereo Sound
RPCに関係した商品