Chamada de procedimento remoto ou RPC é uma técnica poderosa para construir aplicativos distribuídos baseados em cliente-servidor. Também é conhecido como chamada de função ou chamada de sub-rotina. Uma chamada de procedimento remoto ocorre quando um programa de computador faz com que um procedimento seja executado em um espaço de endereço diferente, codificado como uma chamada de procedimento local, sem que o programador declare explicitamente os detalhes da interação remota. O programador escreve essencialmente o mesmo código, seja a sub-rotina local para o programa em execução ou remota. Esta é uma forma de interação cliente-servidor implementada por meio de um sistema de passagem de mensagens de solicitação-resposta.
O modelo RPC implica transparência de localização que os procedimentos de chamada são basicamente os mesmos, sejam locais ou remotos. Normalmente, eles não são idênticos, de modo que as chamadas locais podem ser diferenciadas das chamadas remotas. As chamadas remotas são geralmente muito mais lentas e menos confiáveis do que as chamadas locais, portanto, diferenciá-las é importante.
RPCs são uma forma de comunicação entre processos (IPC), em que diferentes processos possuem diferentes espaços de endereço. Eles possuem espaços de endereço virtual distintos na mesma máquina host, embora o espaço de endereço físico seja o mesmo. Embora estejam em hosts diferentes, o espaço de endereço físico é diferente.
Como fazer uma chamada de procedimento remoto
O ambiente de chamada é suspenso, os parâmetros do procedimento são transferidos através da rede para o ambiente onde o procedimento será executado e o procedimento é executado lá.
Quando o procedimento termina e produz seus resultados, ele é transferido de volta para o ambiente de chamada, onde a execução é retomada como se estivesse retornando de uma chamada de procedimento normal.
NOTA: O RPC é especialmente adequado para interação cliente-servidor (por exemplo, consulta-resposta), na qual o fluxo de controle alterna entre o chamador e o receptor. Conceitualmente, o cliente e o servidor não são executados simultaneamente; em vez disso, o thread de execução salta do chamador para o receptor e depois volta novamente.
Tipos de RPC
Existem três tipos de chamada de procedimento remoto (RPC) em um sistema operacional, como:
1. 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. Callback RPC possui as seguintes funções, como:
diferença entre um gigabyte e um megabyte
- 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.
2. Transmitir RPC
Broadcast RPC é uma solicitação do cliente transmitida na rede, processada por todos os servidores com o método para processar essa solicitação. Broadcast RPC possui as seguintes funções, como:
- 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.
3. RPC em modo lote
como refazer no photoshop
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. O RPC em modo lote tem as seguintes funções, como:
- Ele minimiza a sobrecarga envolvida no envio de uma solicitação, enviando-as pela rede em um lote para o servidor.
- Este tipo de protocolo RPC só é eficiente para uma aplicação que necessita de taxas de chamada mais baixas.
- Precisa de um protocolo de transmissão confiável.
O que o RPC faz?
Quando instruções de programa usando a estrutura RPC são compiladas em um programa executável, um stub é incluído no código compilado representando o código do procedimento remoto.
Quando o programa é executado e a chamada do procedimento é emitida, o stub recebe a solicitação e a encaminha para um programa de tempo de execução cliente no computador local. Na primeira vez que o stub do cliente é chamado, ele contata um servidor de nomes para determinar o endereço de transporte onde o servidor reside.
O programa de tempo de execução do cliente sabe como endereçar o computador remoto e o aplicativo do servidor e envia a mensagem pela rede solicitando o procedimento remoto. Da mesma forma, o servidor inclui um programa de tempo de execução e um stub que faz interface com o próprio procedimento remoto, e os protocolos de solicitação de resposta são retornados da mesma maneira.
Recursos do RPC
Em um sistema operacional, a chamada de procedimento remoto (RPC) possui os seguintes recursos, como:
- O RPC esconde do usuário a complexidade do processo de passagem de mensagens.
- O RPC usa apenas camadas específicas do modelo OSI, como a camada de transporte.
- Os clientes podem se comunicar com o servidor usando linguagens de nível superior.
- O RPC funciona bem com ambientes locais e remotos.
- O programa RPC é escrito em código simples e é facilmente compreendido pelo programador.
- O sistema operacional pode lidar facilmente com processos e threads envolvidos no RPC.
- O sistema operacional oculta as abstrações do RPC do usuário.
Como funciona o RPC?
Quando uma chamada de procedimento remoto é invocada, o ambiente de chamada é suspenso, os parâmetros do procedimento são transferidos através da rede para o ambiente onde o procedimento será executado e o procedimento é então executado nesse ambiente.
Quando o procedimento termina, os resultados são transferidos de volta para o ambiente de chamada, onde a execução é retomada como se retornasse de uma chamada de procedimento normal.
Uma chamada de procedimento remoto (RPC) funciona nas seguintes etapas em um sistema operacional:
Passo 1: O cliente, o stub do cliente e o tempo de execução RPC são executados na máquina cliente.
junções e tipos de junções
Passo 2: Um cliente inicia um processo stub de cliente passando parâmetros da maneira usual. O empacotamento dos parâmetros do procedimento é chamado ordenação . O stub do cliente é armazenado no próprio espaço de endereço do cliente e também solicita que o RPC Runtime local envie de volta ao stub do servidor.
Etapa 3: Nesta etapa, o usuário pode acessar o RPC fazendo uma Chamada Processual Local regular. O RPC Runtime gerencia a transmissão de mensagens entre a rede entre cliente e servidor e 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.
Etapa 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.
Etapa 6: Neste estágio, o stub do cliente descompacta (descompacta) os parâmetros de retorno no pacote resultante e o processo de execução retorna ao chamador.
Problemas de Chamada de Procedimento Remoto (RPC)
Em um sistema operacional, a chamada de procedimento remoto ou RPC enfrentou alguns problemas que devem ser resolvidos, como:
1. Tempo de execução RPC
O sistema de tempo de execução RPC é uma biblioteca de rotinas e serviços que tratam das comunicações de rede subjacentes ao mecanismo RPC. No decorrer de uma chamada RPC, o código dos sistemas de tempo de execução do lado do cliente e do lado do servidor trata da ligação, estabelece comunicações por meio de um protocolo apropriado, transmite dados de chamada entre o cliente e o servidor e trata de erros de comunicação.
fim do java
2. Esboço
A função do stub é fornecer transparência ao código do aplicativo escrito pelo programador.
3. Encadernação
Como o cliente sabe para quem ligar e onde reside o serviço?
A solução mais flexível é usar ligação dinâmica e localizar o servidor em tempo de execução quando o RPC for feito pela primeira vez. Na primeira vez que o stub do cliente é chamado, ele contata um servidor de nomes para determinar o endereço de transporte no qual o servidor reside. A encadernação consiste em duas partes:
4. A semântica de chamada associada ao RPC
É classificado principalmente nas seguintes opções,
Características do RPC
Aqui estão as características essenciais da chamada de procedimento remoto:
- 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.
Vantagens do RPC
Aqui estão algumas vantagens ou benefícios do RPC, como:
- 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 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 distribuição e ambiente 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, os esforços de reescrita e novo desenvolvimento são minimizados.
- Modelos orientados a processos e orientados a threads suportados por RPC.
Desvantagens do RPC
Aqui estão algumas desvantagens ou inconvenientes do uso de RPC, como:
- 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 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.