Modelo de RPC

O modelo de chamada de procedimento remoto (RPC) é semelhante a um modelo de chamada de procedimento local. No modelo local, o ouvinte coloca argumentos para um procedimento em um local especificado como um registro de resultados.

Em seguida, o ouvinte transfere o controle para o procedimento. O ouvinte acaba por reger o controle, extrai os resultados do procedimento e continua a execução.

A RPC funciona de maneira semelhante, naquele um fio de ventos de controle logicamente através de dois processos: o processo de caller e o processo do servidor. Primeiramente, o processo do caller envia uma mensagem de chamada que inclui os parâmetros de procedimento para o processo do servidor. Em seguida, o processo do caller aguarda por uma mensagem de resposta (blocos). Em seguida, um processo no lado do servidor, que fica adormecida até a chegada da mensagem de chamada, extrai os parâmetros de procedimento, computa os resultados e envia uma mensagem de resposta. O servidor aguarda a próxima mensagem de chamada. Por fim, um processo no ouvinte recebe a mensagem de resposta, extrai os resultados do procedimento e o caldo retoma a execução.

A Figura do Fluxo de Chamada de Procedimento Remoto (Figura 1) ilustra o paradigma de RPC.

Figura 1. Fluxo De Chamada De Procedimento Remoto
Este diagrama mostra o processo do cliente na esquerda que contém (listado de cima para baixo) o cliente, stub de cliente, biblioteca de tempo de execução de RPC. O processo do servidor à direita contém o seguinte (listado de cima para baixo): stored procedures, server stub e a biblioteca RPC run-time. As chamadas podem ir do cliente para os procedimentos do gestor cruzando o fluxo aparente e acima da interface. A chamada do cliente também pode passar pela interface para o stub do cliente. A partir do stub do cliente, a chamada pode viajar para a biblioteca de tempo de execução do RPC no processo do cliente. A chamada pode viajar para a biblioteca no processo do servidor como uma mensagem de rede. As chamadas no processo do servidor podem ir da biblioteca de tempo de execução do RPC para o stub do servidor e do stub do servidor para os procedimentos do gestor. Observe que há um retorno na direção oposta de cada chamada mencionada anteriormente.

No modelo RPC, apenas um dos dois processos é ativo em qualquer momento. Além disso, este modelo é apenas um exemplo. O protocolo RPC não faz restrições quanto ao modelo de simultaneidade implementado, e outros são possíveis. Por exemplo, uma implementação pode escolher Chamadas de Procedimento Remoto assíncronas para que o cliente possa continuar trabalhando enquanto aguarda uma resposta do servidor. Adicionalmente, o servidor pode criar uma tarefa para processar solicitações recebidas e, assim, manter-se livre para receber outros pedidos.