Заглушка

Заглушка, как и прокси-сервер, состоит из одного или нескольких частей интерфейса и руководителя. Каждая заглушка интерфейса предоставляет код для отмены параметров и кода, вызывающих один из поддерживаемых интерфейсов объекта. Каждая заглушка также предоставляет интерфейс для внутреннего взаимодействия. Диспетчер заглушки отслеживает доступные заглушки интерфейса.

Однако существуют следующие различия между заглушки и прокси-сервером:

  • Самое важное отличие заключается в том, что заглушка представляет клиента в адресном пространстве объекта.
  • Заглушка не реализуется как агрегатный объект, так как не требуется, чтобы клиент рассматривался как один блок; каждый элемент в заглушку является отдельным компонентом.
  • Заглушки интерфейса являются частными, а не общедоступными.
  • Заглушки интерфейса реализуют IRpcStubBuffer, а не IRpcProxyBuffer.
  • Вместо упаковки параметров, которые необходимо маршалировать, заглушки распаковывают их после маршалирования, а затем упаковывают ответ.

Структура заглушки

На следующей схеме показана структура заглушки. Каждая заглушка интерфейса подключена к интерфейсу объекта. Канал отправляет входящие сообщения в соответствующую заглушку интерфейса. Все компоненты передают канал через IRpcChannelBuffer, интерфейс, предоставляющий доступ к библиотеке времени выполнения RPC.

Screenshot that shows the structure of the Stub.

Канал

Взаимодействие между объектами

Сведения о маршалинге

Microsoft RPC

Proxy