O modelo de programação

Nos primeiros dias de programação de computador, cada programa era escrito como uma grande parte monolítica, cheia de instruções goto . Cada programa precisava gerenciar sua própria entrada e saída para diferentes dispositivos de hardware. Conforme a disciplina de programação amadureceu, esse código monolítico foi organizado em procedimentos, com os procedimentos mais usados empacotados em bibliotecas para compartilhamento e reutilização.

instruções goto monolíticas versus procedimentos empacotados em bibliotecas compartilhadas

A linguagem de programação C dá suporte à programação orientada a procedimentos. Em C, o procedimento main está relacionado a todos os outros procedimentos como caixas pretas. Por exemplo, o procedimento main não pode descobrir como os procedimentos A, B e X fazem seu trabalho. O procedimento main chama apenas outro procedimento; ele não tem informações sobre como esse procedimento é implementado.

isolamento de atividades executadas em procedimentos externos

Linguagens de programação orientadas a procedimentos fornecem mecanismos simples para especificar e escrever procedimentos. Por exemplo, o protótipo de função C padrão ANSI é um constructo usado para especificar o nome de um procedimento, o tipo do resultado que ele retorna (se houver) e o número, sequência e tipo de seus parâmetros. Usar o protótipo de função é uma maneira formal de especificar uma interface entre procedimentos.

O Microsoft RPC se baseia nesse modelo de programação, permitindo que os procedimentos, agrupados em interfaces, residam em processos diferentes do chamador. O Microsoft RPC também adiciona uma abordagem mais formal à definição de procedimento que permite que o chamador e a rotina chamada adotem um contrato para trocar dados remotamente e invocar a funcionalidade. No modelo de programação RPC da Microsoft, as chamadas de função tradicionais são complementadas com dois elementos adicionais.

  • O primeiro elemento é um arquivo .idl/.acf que descreve precisamente a troca de dados e o mecanismo de passagem de parâmetros entre o chamador e o procedimento chamado.
  • O segundo elemento é um conjunto de APIs em tempo de execução que fornecem aos desenvolvedores controle granular da chamada de procedimento remoto, incluindo aspectos de segurança, gerenciamento de estado no servidor, especificação de quais clientes podem se comunicar com o servidor e assim por diante.