Stub
O stub, como o proxy, é composto por uma ou mais peças de interface e um gerente. Cada stub de interface fornece código para desmarcar os parâmetros e o código que chama uma das interfaces suportadas do objeto. Cada stub também fornece uma interface para comunicação interna. O gerenciador de stubs controla os stubs de interface disponíveis.
Há, no entanto, as seguintes diferenças entre o stub e o proxy:
- A diferença mais importante é que o stub representa o cliente no espaço de endereço do objeto.
- O stub não é implementado como um objeto agregado porque não há exigência de que o cliente seja visto como uma única unidade; Cada peça no esboço é um componente separado.
- Os stubs de interface são privados em vez de públicos.
- Os stubs de interface implementam IRpcStubBuffer, não IRpcProxyBuffer.
- Em vez de parâmetros de embalagem a serem empacotados, o stub os desempacota depois de terem sido empacotados e, em seguida, empacota a resposta.
O diagrama a seguir mostra a estrutura do esboço. Cada stub de interface é conectado a uma interface no objeto. O canal envia mensagens de entrada para o stub de interface apropriado. Todos os componentes conversam com o canal por meio de IRpcChannelBuffer, a interface que fornece acesso à biblioteca de tempo de execução RPC.