Partilhar via


Procuração

Um proxy reside no espaço de endereço do processo de chamada e atua como um substituto para o objeto remoto. Da perspetiva do objeto chamador, o proxy é o objeto. Normalmente, a função do proxy é empacotar os parâmetros de interface para chamadas para métodos em suas interfaces de objeto. O proxy empacota os parâmetros em um buffer de mensagens e passa o buffer para o canal, que lida com o transporte entre processos. O proxy é implementado como um objeto agregado ou composto. Ele contém uma peça de gerenciamento fornecida pelo sistema chamada gerenciador de proxy e um ou mais componentes específicos da interface chamados proxies de interface. O número de proxies de interface é igual ao número de interfaces de objeto que foram expostas a esse cliente específico. Para o cliente que está em conformidade com o modelo de objeto do componente, o proxy parece ser o objeto real.

Observação

Com o marshaling personalizado, o proxy pode ser implementado de forma semelhante ou pode se comunicar diretamente com o objeto sem usar um stub.

 

Cada proxy de interface é um objeto de componente que implementa o código de empacotamento para uma das interfaces do objeto. O proxy representa o objeto para o qual ele fornece código de empacotamento. Cada proxy também implementa o IRpcProxyBuffer interface. Embora a interface de objeto representada pelo proxy seja pública, a implementação IRpcProxyBuffer é privada e é usada internamente no proxy. O gerenciador de proxy mantém o controle dos proxies de interface e também contém a implementação pública do controlador IUnknown interface para a agregação. Cada proxy de interface pode existir em uma DLL separada que é carregada quando a interface que ele suporta é materializada para o cliente.

Estrutura do Proxy

O diagrama a seguir mostra a estrutura de um proxy que suporta o empacotamento padrão de parâmetros pertencentes a duas interfaces: IA1 e IA2. Cada proxy de interface implementa IRpcProxyBuffer para comunicação interna entre as partes agregadas. Quando o proxy está pronto para passar seus parâmetros empacotados através do limite do processo, ele chama métodos na interfaceIRpcChannelBuffer, que é implementada pelo canal. O canal, por sua vez, encaminha a chamada para a biblioteca de tempo de execução RPC para que ela possa chegar ao seu destino no objeto.

Diagrama que mostra a estrutura do proxy.

Canal

Inter-Object Comunicação

Marshaling Detalhes

Microsoft RPC

Stub