リモートプロシージャコールとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > リモートプロシージャコールの意味・解説 

リモート‐プロシージャコール【remote procedure call】


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

別名:遠隔手続き呼び出しリモート手続き呼び出し
【英】Remote Procedure Call, RPC

リモートプロシージャコールとは、ネットワークによって接続された他のコンピュータ上でプログラム呼び出し実行させるための手法のことである。あるいは、そのためのプロトコルのことである。

リモートプロシージャコールでは、プログラムの実行用いられるサブルーチン呼び出し(プロシージャコール)をネットワーク通じたマシンに対して行うことによって、遠隔地マシンに処理を行わせている。リモートプロシージャコールを用いることで、ネットワーク通じて他のマシンに処理を行わせ、その処理結果だけを受け取ることができる。

リモートプロシージャコールに対して、ローカルマシンにおいて行われる通常のプロシージャコールは特にローカルプロシージャコール(LPC)と呼ばれる一般的にプログラム実行するアプリケーションソフトの側では、リモートプロシージャコールとローカルプロシージャコールの違い意識せずに扱うことができるようになっている

リモートプロシージャコールは、クライアント・サーバーシステム分散処理分散コンピューティング技術実現する仕組みとして利用されている。Sun Microsystems開発したNFSNetwork File System)や、DCEDistributed Computing Environment)、Microsoft分散オブジェクト技術であるDCOMDistributed Component Object Model)などでは基幹技術ひとつとして採用されている。リモートプロシージャコールを行うためのプロトコルとしては、HTTP通じてXML形式データやり取りするXML-RPCや、Java使用するJAX-RPCなどがある。

ネットワークシステムのほかの用語一覧
コンピュータシステム:  ネットワークドライブ  PnP  リモートアクセス  リモートプロシージャコール  リモートログイン  リモート  ローカルアドレス

遠隔手続き呼出し

(リモートプロシージャコール から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/12 08:52 UTC 版)

遠隔手続き呼出し(えんかくてつづきよびだし、: remote procedure call、リモートプロシージャコール、略してRPC)とは、プログラムから別のアドレス空間(通常、共有ネットワーク上の別のコンピュータ上)にあるサブルーチン手続きを実行することを可能にする技術。その際に遠隔相互作用の詳細を明示的にコーディングする必要がない。つまり、プログラマはローカルなサブルーチン呼び出しと基本的に同じコードをリモート呼び出しについても行う。遠隔手続き呼出しを行うソフトウェアがオブジェクト指向プログラミングに基づく場合、遠隔手続き呼出しのことを リモート呼び出し: remote invocation)あるいは リモートメソッド呼び出し: remote method invocation: RMI)と呼ぶこともある(Java RMIなど)。

遠隔手続き呼出しには例えば、ONC RPCDCE/RPCといった互いに非互換な様々な技術が存在する。

起源と歴史

遠隔手続き呼出し (RPC) の考え方は、少なくともRFC 707が発表された1976年まで遡る。最初にRPCを商用に実用化したのはゼロックスの「Courier」であり、1981年のことであった。UNIXで最初に広く使われるようになったRPC実装はサン・マイクロシステムズのRPC (ONC RPC) であり、NFSの基盤として使われた。ONC RPCは現在でも広く使われている。

もう一つのUNIXでの初期の実装として、アポロコンピュータNetwork Computing System (NCS) がある。NCSは後にOSFDistributed Computing Environment (DCE) でDCE/RPCの基盤として使われた。その約10年後、マイクロソフトがDCE/RPCを同社のRPC (MSRPC) の基盤として採用し、DCOMの実装に使った。同じころ(1990年代中盤)、継承機構を備えた分散オブジェクトに関するRPCパラダイムとして、パロアルト研究所ILUObject Management GroupCORBAが登場した。

メッセージパッシング

RPCクライアントは、実行する手続きと引数とを要求メッセージとして既知のリモートサーバに送信することで、RPCを開始する。同期型のRPCでは、サーバーがRPCを処理している間、クライアント側は応答があるまで待機する(呼び出しはブロックされる)。サーバー上でメッセージが処理され、応答がクライアントに戻ってくると、クライアント上のプロセスは処理を続行する。非同期型のRPCでは、クライアント側からの呼び出し後、クライアントは応答を待たず、次の処理を続行できる。サーバーからの応答はコールバックによって通知される。サーバーあるいはクライアントが低速の場合や、大量のデータを転送する必要がある場合などに、同期RPCでは制限および問題があるが、非同期RPCではそれらを解決することができる[1]

RPCプロトコルの実装によって微妙な違いをもった多くのバリエーションがあり、それらの間には互換性がない。

RPCが通常のローカル呼び出しと比べて違う点で重要なのは、予測できないネットワーク上の問題で失敗することがあるという点である。またそのような場合、手続きが実際に実行されたかどうかをクライアントが知ることができないことがある。そういったケースでは、二重に手続きを実行しても影響のない場合は容易に対処できるが、そうでなければ適切な対処は困難である。そのため、注意深く記述された低レベルなサブシステムの制限下で呼び出しコードを実行するという方法がよくとられる。各種操作にタイムアウト時間を設け、タイムアウト時間内に応答(処理)がなされなかった場合は例外をスローする方式になっているAPIもある[2]

標準コンタクト機構

各種クライアントからサーバへのアクセスを可能とするため、いくつかの標準RPCシステムが開発されてきた。それらの多くはインタフェース記述言語 (IDL) を使って各種プラットフォーム間のRPCを可能としている。

IDLファイルはクライアントとサーバ間のインタフェースのためのコードを生成するのに使われる。最も一般的なツールとしてはRPCGENがある。

遠隔手続き呼出しの各種技術および規格

  • JavaJava RMI APIは、標準的UNIX RPCとほぼ同等の機能を提供する。
  • XML-RPCは、呼び出しをXMLで符号化し、HTTPを通信プロトコルに使用するRPCプロトコルである。
  • マイクロソフトのDCOMは、COMベースの分散型オブジェクト指向RPC技術。.NETの各種RPCによって代替されており、非推奨。
  • マイクロソフトの.NET Remotingは、Windowsプラットフォーム上に実装された分散システムでのRPC機能を提供するものである。非推奨のレガシー技術。
  • マイクロソフトのWCFは、.NET Remotingの代替となるRPC機構。.NET Framework 3.0で導入されたが、.NET Coreには完全移植されていない。
  • JSON-RPCは、符号化にJSONを用いる、2000年代後半に制定された非常にシンプルなRPCプロトコルである。
  • GooglegRPCは、Protocol BuffersHTTP/2を用いた2010年代のWeb技術によるRPCである。

脚注

関連項目

参考文献

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「リモートプロシージャコール」の関連用語

リモートプロシージャコールのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



リモートプロシージャコールのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【リモートプロシージャコール】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの遠隔手続き呼出し (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS