Protocolo de chamada de procedimento remoto (RPC) em sistema distribuído

O que é RPC?

Chamada de procedimento remoto (RPC) é uma técnica de comunicação entre processos. A forma completa de RPC é Chamada de Procedimento Remoto. É usado para aplicativos cliente-servidor. Os mecanismos 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ço diferente, que é codificado como uma chamada de procedimento normal sem que o programador codifique especificamente os detalhes para a interação remota.

Esta chamada de procedimento também gerencia protocolos de transporte de baixo nível, como User Datagram Protocol, Transmission Protocolo de controle/Protocolo de Internet etc. É usado para transportar dados de mensagens entre 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

Este tipo de RPC permite um paradigma P2P entre os processos participantes. Ajuda um processo a ser serviços de cliente e servidor.

Funções do RPC de retorno de chamada:

  • Problemas de aplicativos interativos processados ​​remotamente
  • Oferece servidor com identificador de clientes
  • O retorno de chamada faz o processo do cliente esperar
  • Gerenciar impasses de retorno de chamada
  • Facilita um paradigma peer-to-peer entre os processos participantes.

RPC de transmissão

Broadcast RPC é uma solicitação do cliente, que é transmitida na rede, 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.
  • Ajuda a reduzir a carga na rede física

RPC em modo lote

O RPC em modo lote ajuda a enfileirar e separar solicitações RPC, em um buffer de transmissão, no lado do cliente, e depois enviá-las em uma rede em um lote para o servidor.

Funções do RPC em modo lote:

  • Ele minimiza a sobrecarga envolvida no envio de uma solicitação, pois as envia pela rede em um lote para o servidor.
  • Este tipo de protocolo RPC só é eficiente para aplicações que necessitam de taxas de chamada mais baixas.
  • Precisa de um protocolo de transmissão confiável.

RPC Archiarquitetura

A arquitetura RPC possui principalmente cinco componentes do programa:

  1. Cliente
  2. Esboço do cliente
  3. Tempo de execução RPC
  4. Esboço do servidor
  5. servidor
RPC Archiarquitetura
RPC Archiarquitetura

Como funciona o RPC?

As etapas a seguir ocorrem durante o processo RPC:

Passo 1) O cliente, o stub do cliente e uma instância do tempo de execução RPC são executados na máquina cliente.

Passo 2) Um cliente inicia um processo stub de cliente passando parâmetros da maneira usual. O stub do cliente é armazenado no próprio espaço de endereço do cliente. Ele também solicita que o RPC Runtime local envie de volta ao stub do servidor.

Passo 3) Nesta etapa, o RPC é acessado pelo usuário fazendo Cal Processual Local regular. O RPC Runtime gerencia a transmissão de mensagens entre a rede entre cliente e servidor. Ele também executa o trabalho de retransmissão, confirmação, roteamento e criptografia.

Passo 4) Depois de concluir o procedimento do servidor, ele retorna ao stub do servidor, que empacota (marshall) os valores de retorno em uma mensagem. O stub do servidor então envia uma mensagem de volta para a camada de transporte.

Passo 5) Nesta etapa, a camada de transporte envia de volta a mensagem de resultado para a camada de transporte do cliente, que retorna uma mensagem para o stub do cliente.

Passo 6) Nesta etapa, o stub do cliente descompacta (descompacta) os parâmetros de retorno, no pacote resultante, e o processo de 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 residirá 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
  • Forneça uma interface bem definida
  • Ele pode se comunicar entre processos na mesma máquina ou em máquinas diferentes

Vantagens do RPC

Aqui estão os prós/benefícios do RPC:

  • O método RPC ajuda os clientes a se comunicarem com os servidores pelo uso convencional de chamadas de procedimento em linguagens de alto nível.
  • O método RPC é modelado na chamada de procedimento local, mas é mais provável que o procedimento chamado seja executado em um processo diferente e geralmente em um computador diferente.
  • RPC oferece suporte a modelos orientados a processos e threads.
  • O RPC oculta o mecanismo interno de passagem de mensagens do usuário.
  • O esforço necessário para reescrever e desenvolver novamente o código é mínimo.
  • Chamadas de procedimento remoto podem ser usadas para fins de ambiente distribuído e local.
  • Ele compromete muitas das camadas do protocolo para melhorar o desempenho.
  • RPC fornece abstração. Por exemplo, a natureza da transmissão de mensagens na comunicação em rede permanece oculta ao usuário.
  • O RPC permite a utilização das aplicações em um ambiente distribuído que não está apenas no ambiente local.
  • Com o código RPC, o esforço de reescrita e redesenvolvimento é minimizado.
  • Suporte a modelos orientados a processos e a threads por RPC.

Desvantagens do RPC

Aqui estão os contras/desvantagens de usar RPC:

  • Chamada de procedimento remoto passa parâmetros apenas por valores e valores de ponteiro, o que não é permitido.
  • O tempo de chamada (e retorno) de procedimento remoto (ou seja, despesas gerais) pode ser significativamente menor do que o de um procedimento local.
  • Este mecanismo é altamente vulnerável a falhas, pois envolve um sistema de comunicação, outra máquina e outro processo.
  • O conceito RPC pode ser implementado de diferentes maneiras, o que não pode ser padronizado.
  • Não oferece nenhuma flexibilidade em RPC para arquitetura de hardware, pois é principalmente baseado em interação.
  • O custo do processo aumenta devido a uma chamada de procedimento remoto.

Resumo

  • Uma chamada de procedimento remoto é um comunicação entre processos técnica.
  • Três tipos de RPC são 1) RPC de retorno de chamada 2) RPC de transmissão e 3) RPC de modo em lote
  • A arquitetura RPC tem principalmente cinco componentes do programa: 1) Cliente 2) Stub do cliente 3) Tempo de execução RPC 4) Stub do servidor e 5) Servidor
  • No método RPC os processos não compartilham espaço de endereço
  • RPC oferece sintaxe de chamada simples e semântica conhecida
  • O método RPC ajuda os clientes a se comunicarem com os servidores pelo uso convencional de chamadas de procedimento em linguagens de alto nível.
  • A maior desvantagem do método RPC é que ele é altamente vulnerável a falhas, pois envolve um sistema de comunicação, outra máquina e outro processo.