Chamadas de Procedimento Remoto

Batching permite que um cliente envie uma sequência arbitrariamente grande de mensagens de chamadas para um servidor. O Batching geralmente usa protocolos de fluxo de bytes confiáveis, como o TCP/IP, para o seu transporte. Ao batalhar, o cliente nunca espera por uma resposta do servidor, e o servidor não envia respostas para solicitações rebatidas. Normalmente, uma sequência de chamadas em lote deve ser finalizada por uma RPC legítima e não bateada para esvaziamento do pipeline.

A arquitetura RPC foi projetada para que os clientes enviem uma mensagem de chamada e, em seguida, aguarde servidores para responder que a chamada teve sucesso. Isso implica que os clientes não computam enquanto servidores estão processando uma chamada. No entanto, o cliente pode não querer ou precisar de um reconhecimento para cada mensagem enviada. Por isso, os clientes podem usar instalações de lote RPC para continuar a computação enquanto esperam por uma resposta.

O Batching pode ser pensado como colocar mensagens de RPC em um pipeline de chamadas para um servidor desejado. O Batching assume o seguinte:

  • Cada chamada de procedimento remoto no pipeline requer nenhuma resposta do servidor, e o servidor não envia uma mensagem de resposta.
  • O pipeline de chamadas é transportado em um transporte de fluxo de bytes confiável, como o TCP/IP.

Para um cliente utilizar o batching, o cliente deve realizar chamadas de procedimento remoto em um transporte baseado em TCP/IP. As chamadas bateadas devem ter os seguintes atributos:

  • A rotina do XDR resultante deve ser de 0 bits (null).
  • O tempo limite do call' s do procedimento remoto deve ser de 0 minutos.

Como o servidor não envia nenhuma mensagem, os clientes não são notificados de eventuais falhas que ocorram. Por isso, os clientes devem lidar com seus próprios erros.

Como o servidor não responde a cada chamada, o cliente pode gerar novas chamadas que correm paralelas à execução do servidor de chamadas anteriores. Além disso, a implementação TCP/IP pode tampar muitas mensagens de chamadas, e enviá-las para o servidor com uma subroutine write . Essa execução sobreposta diminui o excesso de comunicação interprocesso dos processos do cliente e do servidor, bem como o tempo total decorrido de uma série de chamadas. As chamadas batchadas são bufferizadas, portanto, o cliente deverá eventualmente realizar uma chamada de procedimento remoto não rebatível para dar descarga no pipeline com reconhecimento positivo.