Compartilhar 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 perspectiva do objeto de chamada, o proxy é o objeto. Normalmente, a função do proxy é empacotar os parâmetros de interface para chamadas a 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 manipula o transporte entre processos. O proxy é implementado como um objeto agregado ou composto. Ele contém uma peça do gerenciador 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 de componente, o proxy parece ser o objeto real.

Nota

Com o marshaling personalizado, o proxy pode ser implementado da mesma forma 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 marshaling para uma das interfaces do objeto. O proxy representa o objeto para o qual ele fornece código de marshaling. Cada proxy também implementa a interface deIRpcProxyBuffer. Embora a interface do objeto representada pelo proxy seja pública, a implementação IRpcProxyBuffer é privada e é usada internamente dentro do proxy. O gerenciador de proxy mantém o controle dos proxies de interface e também contém a implementação pública da interface de controle IUnknown para a agregação. Cada proxy de interface pode existir em uma DLL separada que é carregada quando a interface compatível é materializada para o cliente.

Estrutura do Proxy

O diagrama a seguir mostra a estrutura de um proxy que dá suporte ao marshaling 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 de agregação. Quando o proxy estiver pronto para passar seus parâmetros marshalados pelo limite do processo, ele chamará 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 alcançar seu destino no objeto.

Diagrama que mostra a estrutura do proxy.

Channel

de ComunicaçãoInter-Object

detalhes de marshaling

microsoft RPC

Stub