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:
- Cliente
- Esboço do cliente
- Tempo de execução RPC
- Esboço do servidor
- servidor
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.