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