RPC
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| アプリケーション層 |
| CMIP · DHCP (DHCPv4 · DHCPv6) · DNS · EHRP · FTP · Gopher · GTP · HTTP · IMAP4 · IRC · NNTP · NTP · POP3 · RTCP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · TELNET · XMPP |
| プレゼンテーション層 |
| HTML · XML · AFP |
| セッション層 |
| SSL/TLS · RPC |
| トランスポート層 |
| DCCP · IGMP · PPTP · RSVP · RTP · RUDP · SCTP · TCP · UDP · UDP-Lite |
| ネットワーク層 |
| ARP · BGP · ICMP · ICMPv6 · IGP · IP (IPv4 · IPv6) · IPsec · IS-IS · OSPF · RARP · RIP |
| データリンク層 |
| 802.11 · 802.16 · ATM · DTM · EVDO · FDDI · GPRS · HDLC · HSPA · ISDN · L2TP · PPP · SLIP · SMDS · Wi-Fi · WiMAX · アークネット · イーサネット · トークンリング · フレームリレー |
| 物理層 |
| G.709 · OFDM · PLC · SONET/SDH · イーサネット物理層 · ツイストペアケーブル · 同軸ケーブル · 光ファイバー · モデム |
RPC(Remote Procedure Call、リモートプロシージャコール)とは、プログラムから別のアドレス空間(通常、共有ネットワーク上の別のコンピュータ上)にあるサブルーチンや手続きを実行することを可能にする技術。遠隔手続呼出とも。その際に遠隔相互作用の詳細を明示的にコーディングする必要がない。つまり、プログラマはローカルなサブルーチン呼び出しと基本的に同じコードをリモート呼び出しについても行う。RPCを行うソフトウェアがオブジェクト指向プログラミングに基づく場合、RPC のことを Remote Invocation あるいは Remote Method Invocation と呼ぶこともある(Java RMIなど)。
RPC には例えば、ONC RPC や DCE/RPC といった互いに非互換な様々な技術が存在する。
- 分散システムにおいてアプリケーション(個々の分散処理)の協調を容易にする(プロセス間通信)方法。(分散システム構築する時に幅広く使われている。)
- クライアントサーバモデルに基づき、メッセージ通信を手続呼出の下に隠蔽したもの。
- 分散透明性の実現アーキテクチャー
- 分散処理アーキテクチャーの基本
目次 |
[編集] 起源と歴史
RPC の考え方は1976年に RFC 707 で記述されており、起源はそれより遡る。最初に RPC を商用に実用化したのはゼロックスの "Courier" であり、1981年のことであった。UNIXで最初に広く使われるようになった RPC 実装はサン・マイクロシステムズの RPC(ONC RPC)であり、NFS の基盤として使われた。ONC RPC は現在でも広く使われている。
もう1つの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 システムが開発されてきた。それらの多くはインタフェース記述言語 (IDL) を使って各種プラットフォーム間の RPC を可能としている。
IDL ファイルはクライアントとサーバ間のインタフェースのためのコードを生成するのに使われる。最も一般的なツールとしては RPCGEN がある。
[編集] RPC に類似する概念
- Java の Java RMI (Java Remote Method Invocation) API は、標準的 UNIX RPC とほぼ同等の機能を提供する。
- XML-RPC は、呼び出しをXMLで符号化し、HTTP を通信プロトコルに使用する RPC プロトコルである。
- マイクロソフトの .NET Remoting は、Windows プラットフォーム上に実装された分散システムでの RPC 機能を提供するものである。
[編集] NT上のサービス
Windows NTでは、svchost.exeを使用する。 このサービスを強制終了させると、1分で強制的に再起動される。ただし、設定で再起動を無効にした場合や猶予時間を変更した場合はこの限りではない。
[編集] 不信頼性
- 通信ネットワークやコンピュータの故障から、要求や応答の送受信不良が生じた場合、この分散処理の信頼性・正確性は低下する。
[編集] 関連項目
[編集] 参考文献
- RFC 1057 - Specifies version 1 of ONC RPC
- RFC 1831 - Specifies version 2 of ONC RPC
- Remote Procedure Calls (RPC) A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University
この記述は GNU Free Documentation License のもとに公開されているコンピュータ用語辞典『 Free On-line Dictionary of Computing (FOLDOC) 』に基づいています。