Stub

スタブは、プロキシと同様に、1 つ以上のインターフェイス部分とマネージャーで構成されます。 各インターフェイス スタブには、オブジェクトでサポートされているインターフェイスのいずれかを呼び出すパラメーターとコードのマーシャリングを解除するコードが用意されています。 各スタブには、内部通信用のインターフェイスも用意されています。 スタブ マネージャーは、使用可能なインターフェイス スタブを追跡します。

ただし、スタブとプロキシには次の違いがあります。

  • 最も重要な違いは、スタブがオブジェクトのアドレス空間内のクライアントを表す点です。
  • スタブは、クライアントを 1 つのユニットとして表示する必要がないため、集計オブジェクトとして実装されません。スタブ内の各部分は個別のコンポーネントです。
  • インターフェイス スタブはパブリックではなくプライベートです。
  • インターフェイス スタブは、 IRpcProxyBuffer ではなく IRpcStubBuffer を実装します。
  • マーシャリングするパラメーターをパッケージ化する代わりに、スタブはマーシャリングされた後にパッケージ化を解除し、応答をパッケージ化します。

スタブの構造

次の図は、スタブの構造を示します。 各インターフェイス スタブは、オブジェクト上のインターフェイスに接続されます。 チャネルは、受信メッセージを適切なインターフェイス スタブにディスパッチします。 すべてのコンポーネントは、RPC ランタイム ライブラリへのアクセスを提供するインターフェイスである IRpcChannelBuffer を介してチャネルと通信します。

Screenshot that shows the structure of the Stub.

Channel

オブジェクト間通信

マーシャリングの詳細

Microsoft RPC

Proxy