Remote Procedure Call
Chamada remota de procedimento (RPC, acrônimo de Remote Procedure Call) é uma tecnologia de comunicação entre processos que permite a um programa de computador chamar um procedimento em outro espaço de endereçamento (geralmente em outro computador, conectado por uma rede).
A concepção do RPC foi criada com base na observação do funcionamento do mecanismo de transferência de dados e controle dentro um programa em um simples computador. A partir desta observação procurou-se estender esta mesma funcionalidade para um ambiente distribuído, ou seja, a partir da implementação deste mecanismo seria possível chamar procedimentos localizados em outras máquinas. Em outras palavras, a idéia por trás do RPC é fazer com que uma chamada de procedimento remoto se pareça como uma chamada local, tornando-se o mais transparente possível.
OBJETIVOS
O RPC tem como objetivo a invocação de procedimentos remotos evitando que os programadores de sistemas distribuídos se preocupem com detalhes de interface com a rede. Idealmente, o mecanismo de RPC deve ser totalmente transparente para o programador, no sentido em que ele desenvolverá os módulos cliente e servidor como se fossem estar residentes no mesmo nó. O módulo cliente não é ligado diretamente ao módulo servidor, mas mais propriamente a um stub (procedimentos que criam uma mensagem que contém informações como o tipo de serviço requisitado e os parâmetros fornecidos, e chamam o núcleo para enviá-la ao servidor) cliente que atua com uma representação para o servidor e ativa um mecanismo genérico de RPC.
FUNCIONAMENTO
Para que um cliente execute uma chamada de procedimento remoto, o client stub empacota o parâmetro em uma mensagem e solicita para o kernel enviar a mensagem para o servidor. Quando a mensagem chega ao servidor, o kernel passa a mensagem para o server stub que desempacota o parâmetro e então chama o procedimento do servidor. O servidor executa seu trabalho e então retorna o resultado para o