Na chamada de procedimento remoto (RPC), os stubs do cliente e do servidor são peças de código cruciais que atuam como intermediários, permitindo a comunicação entre um aplicativo cliente e um aplicativo de servidor residente em diferentes máquinas. Eles abstraem as complexidades da comunicação de rede, permitindo que os programadores escrevam código como se estivessem fazendo chamadas de procedimentos locais.
stub do cliente: *
Localização: Reside na máquina cliente.
*
função: Atua como um proxy para o procedimento remoto. Quando o cliente chama um procedimento remoto, ele realmente chama uma função no stub do cliente.
*
Responsabilidades: *
Marshalling: Pacotes os argumentos do procedimento em um formato adequado para transmissão sobre a rede (por exemplo, serializar estruturas de dados).
*
Comunicação de rede: Envia os dados organizados para o servidor.
*
UMARSHALLING: Recebe a resposta do servidor e o descompacta (unirShalling) em um formato utilizável para o cliente.
*
Manuseio de erro: Lida com erros de rede e outras exceções que podem ocorrer durante a comunicação.
*
Apresentação: Apresenta o resultado da chamada do procedimento remoto para o aplicativo cliente como se fosse uma chamada local.
STUB do servidor: *
Localização: Reside na máquina do servidor.
*
função: Atua como um proxy para a implementação real do servidor do procedimento remoto. Ele recebe solicitações do stub do cliente e interage com o servidor.
*
Responsabilidades: *
UMARSHALLING: Recebe os dados organizados do cliente e descompacta -os (UnarsHalling) em um formato adequado para o procedimento do servidor.
*
Invocação do procedimento: Chama a implementação real do lado do servidor do procedimento remoto com os argumentos não marítimos.
*
Marshalling: Pacotes o resultado do procedimento (e qualquer informação de erro) em um formato adequado para transmissão de volta ao cliente.
*
Comunicação de rede: Envia a resposta organizada de volta ao stub do cliente.
Analogia: Pense em um stub de cliente e um stub de servidor como dois operadores telefônicos. O cliente (você) fala com o stub do cliente (operador 1), que então retransmite a mensagem para o stub (operador 2) em uma linha telefônica diferente. O operador 2 interage com o servidor (a pessoa que você está ligando) e retransmite a resposta de volta pelo operador 1 para você. Você não precisa se preocupar com os detalhes de como as linhas telefônicas funcionam; Os operadores lidam com tudo isso para você.
em essência: Os stubs do cliente e do servidor lidam com os detalhes da comunicação de rede, serialização de dados e manuseio de erros, permitindo que os desenvolvedores se concentrem na lógica de seus aplicativos, em vez dos meandros da computação distribuída. Eles fornecem uma interface limpa e abstrata para chamadas de procedimentos remotos.