簡単に言うと、RPCはプロセス間通信の手法です。リモートプロシージャコールとして展開され、知っておくべき人気のクライアントサーバ型プログラミングモデルです。
RPCの意味について疑問をお持ちですか? 簡単にご説明します。
コンピュータソフトが、あたかも通常の手続き呼び出しのように、別のアドレス空間にあるサービスや関数にアクセスする際、RPCの手法が用いられます。
本記事は、RPC、RPC API、種類、特徴、利点、欠点について信頼性の高い情報を提供することを目的としています。では、詳しく見ていきましょう。
RPCは分散型、クライアントサーバ型のプログラム作成に有効な手法です。RPCはメソッド呼び出しやサブルーチン呼び出しと呼ばれることもあります。
開発者がリモート通信の特性を明示しなくても、コンピュータのプログラムはあたかもローカル呼び出しかのように、別のアドレス領域で関数を実行できる仕組みです。
実行中のソフトウェアからサブルーチンがローカルにあるかリモートにあるかにかかわらず、開発者は同じコードを記述します。さらに、RPCプロトコルを利用して、この種のクライアントサーバ通信ではメッセージ伝達を行うクライアントインターフェースが用いられます。
RPC呼び出しにおける処理は、以下の順番で実行されます。
インターフェース定義言語(IDL)は、ソフトウェアコンポーネントのAPI Security Platformを記述するための言語であり、RPCで広く利用されています。この場合、IDLは異なるOSやプログラミング言語を用いるコンピュータ同士をつなぐ役割を果たします。
RPCの基本的な特性は以下の通りです。
この方式では、クライアントのリクエストがネットワーク全体にブロードキャストされ、そのリクエストを処理するすべてのサーバが対応します。この種のRPCには以下の特徴があります。
この種類のRPCは、関与する手法間でP2Pアーキテクチャを実現します。この方式は、クライアントスタブとサーバスタブの双方として機能する点が利点です。主な特徴は以下の通りです。
複数のRPCリクエストをまとめ、一括してサーバに送信することができます。特徴は以下の通りです。
RPCの動作方法は、システムやOSごとに異なる場合がありますが、基本的な流れは以下の通りです。
Step 1: クライアント側で、クライアントプロトタイプとRPC実行環境が使用されます。
Step 2: 従来のパラメータ転送手法を用いて、クライアントスタブの処理を開始します。『マーシャリング』とはパラメータを整理することを意味します。その後、クライアントスタブはローカルRPCランタイムに、データをサーバスタブへ送信し、クライアントのアドレス空間に格納するよう依頼します。
Step 3: クライアントは通常のローカルルーチンを呼び出してRPCにアクセスします。RPCインターフェースは、サーバとクライアント間でのメッセージ配信、確認、転送、検出、および再送信を管理します。
Step 4: 以上のステップが完了すると、サーバスタブはサーバプロトタイプに戻り、戻り値のパラメータをレスポンスに組み込みます。その後、サーバコンポーネントがトランスポート層に通知のためのメッセージまたはシグナルを送信します。
Step 5: クライアントのネットワーク層が情報とパラメータを受信し、通知とともにクライアントインターフェースに転送します。
Step 6: クライアントコンポーネントが結果パケット内の戻り値のフレームワークを展開すると、処理は呼び出し元に戻ります。
RPCの特徴
RPCの利点は以下の通りです。
すべてのRPCエンドポイント実装は、APIとAPIプロトコルを守るための補助ライブラリを提供する必要があります。同パッケージの機能は以下を含むべきです。
まとめると、RPCはプロセスやサービスが別々のOSや環境にある場合のプロセス間通信手法です。主にコールバック、ブロードキャスト、バッチ転送の3種類が用いられ、主要な構成要素はRPCランタイム、クライアントスタブ、サーバ、およびサーバスタブとなります。これでRPCについて必要な知識が網羅されたことと思います。
最新情報を購読