Protocolo de chamada de procedimento remoto (RPC) em sistema distribuído
⚡ Resumo Inteligente
A Chamada de Procedimento Remoto (RPC, na sigla em inglês) é um protocolo de comunicação entre processos que permite que um programa execute um procedimento em outro espaço de endereço ou máquina, ocultando os detalhes da rede por trás de uma chamada de função local comum em sistemas distribuídos cliente-servidor.

O que é RPC?
Chamada de procedimento remoto (RPC) é um comunicação entre processos Técnica utilizada em aplicações cliente-servidor. A sigla RPC significa Chamada de Procedimento Remoto. Os mecanismos de RPC são usados quando um programa de computador faz com que um procedimento ou sub-rotina seja executado em um espaço de endereçamento diferente, codificado como uma chamada de procedimento normal, sem que o programador precise codificar explicitamente os detalhes da interação remota.
Essa chamada de procedimento também gerencia protocolos de transporte de baixo nível, como UDP e TCP/IP, para transportar os dados da mensagem entre os programas.
Tipos de RPC
Três tipos de RPC são:
- RPC de retorno de chamada
- RPC de transmissão
- RPC em modo lote
RPC de retorno de chamada
Esse tipo de RPC possibilita um paradigma ponto a ponto (P2P) entre os processos participantes. Ele permite que um processo atue tanto como cliente quanto como servidor.
Funções do RPC de retorno de chamada:
- Lida com problemas de aplicativos interativos processados remotamente.
- Fornece ao servidor o identificador do cliente.
- O retorno de chamada faz com que o processo do cliente espere.
- Gerencia impasses de retorno de chamada.
- Isso facilita um paradigma de troca entre pares nos processos participantes.
RPC de transmissão
O Broadcast RPC é uma solicitação do cliente que é transmitida na rede e processada por todos os servidores que possuem o método para processar essa solicitação.
Funções de transmissão RPC:
- Permite especificar que a mensagem de solicitação do cliente deve ser transmitida.
- Você pode declarar portas de transmissão.
- Isso ajuda a reduzir a carga na rede física.
RPC em modo lote
O RPC em modo batch ajuda a enfileirar solicitações RPC separadas em um buffer de transmissão no lado do cliente e, em seguida, enviá-las pela rede em um único lote para o servidor.
Funções do RPC em modo Batch:
- Isso minimiza a sobrecarga envolvida no envio de uma solicitação, pois envia as solicitações pela rede em lote para o servidor.
- Esse tipo de protocolo RPC é eficiente apenas para aplicações que necessitam de taxas de chamadas mais baixas.
- Precisa de um protocolo de transmissão confiável.
RPC Archiarquitetura
A arquitetura RPC possui principalmente cinco componentes do programa:
- Clientes
- Esboço do cliente
- Tempo de execução RPC
- Esboço do servidor
- servidor
RPC Archiarquitetura
Como funciona o RPC?
Os seguintes passos ocorrem durante o processo RPC:
Passo 1) O cliente, o stub do cliente e uma instância do ambiente de execução RPC são executados na máquina do cliente.
Passo 2) O cliente inicia um processo stub do cliente passando parâmetros da maneira usual. O stub do cliente é armazenado no próprio espaço de endereçamento do cliente. Ele também solicita ao ambiente de execução RPC local que envie a solicitação ao stub do servidor.
Passo 3) Nesta etapa, o usuário acessa o RPC fazendo uma chamada de procedimento local comum. O ambiente de execução do RPC gerencia a transmissão de mensagens entre o cliente e o servidor pela rede. Ele também realiza as tarefas de retransmissão, confirmação, roteamento e criptografia.
Passo 4) Após a conclusão do procedimento do servidor, a execução retorna ao stub do servidor, que empacota (serializa) os valores de retorno em uma mensagem. O stub do servidor então envia a mensagem de volta para a camada de transporte.
Passo 5) Nesta etapa, a camada de transporte envia a mensagem de resultado de volta para a camada de transporte do cliente, que retorna a mensagem para o stub do cliente.
Passo 6) Nessa etapa, o stub do cliente desempacota (desdobra) os parâmetros de retorno no pacote resultante, e a execução retorna ao chamador.
Características do RPC
Aqui estão as características essenciais do RPC:
- O procedimento chamado está em outro processo, que provavelmente reside em outra máquina.
- Os processos não compartilham espaço de endereço.
- Os parâmetros são passados apenas por valores.
- O RPC é executado no ambiente do processo do servidor.
- Não oferece acesso ao ambiente do procedimento de chamada.
Recursos do RPC
Aqui estão os recursos importantes do RPC:
- Sintaxe de chamada simples.
- Oferece semântica conhecida.
- Oferece uma interface bem definida.
- Ele permite a comunicação entre processos na mesma máquina ou em máquinas diferentes.
Vantagens do RPC
Aqui estão as vantagens/benefícios do RPC:
- RPC ajuda os clientes a se comunicarem com os servidores através do uso convencional de chamadas de procedimento em linguagens de alto nível.
- O RPC é modelado na chamada de procedimento local, mas o procedimento chamado é muito provavelmente executado em um processo diferente e geralmente em um computador diferente.
- O RPC suporta modelos orientados a processos e modelos orientados a threads.
- O RPC oculta do usuário o mecanismo interno de troca de mensagens.
- Ele compromete muitas das camadas do protocolo para melhorar o desempenho.
- RPC fornece abstracção; por exemplo, a natureza de troca de mensagens da comunicação em rede permanece oculta para o usuário.
- RPC pode ser usado tanto em ambientes distribuídos quanto locais.
- O esforço necessário para reescrever e desenvolver novamente o código é mínimo.
Desvantagens do RPC
Aqui estão os contras/desvantagens de usar RPC:
- A chamada de procedimento remoto passa parâmetros apenas por valores; valores de ponteiro (referência) não são permitidos.
- O tempo de chamada (e retorno) para procedimentos remotos — a sobrecarga — é significativamente maior do que para um procedimento local.
- Esse mecanismo é altamente vulnerável a falhas, pois envolve um sistema de comunicação, outra máquina e outro processo.
- O conceito de RPC pode ser implementado de diferentes maneiras, portanto não existe um padrão único.
- Não oferece flexibilidade para a arquitetura de hardware, pois é baseada principalmente em interação.
- O custo do processo aumenta devido à chamada de procedimento remoto.

