Proceso por lotes de llamadas de procedimiento remoto
El proceso por lotes permite a un cliente enviar una secuencia arbitrariamente grande de mensajes de llamada a un servidor. El proceso por lotes suele utilizar protocolos de secuencia de bytes fiables, como TCP/IP, para su transporte. Durante el proceso por lotes, el cliente nunca espera una respuesta del servidor, y el servidor no envía respuestas a las solicitudes por lotes. Normalmente, una secuencia de llamadas por lotes debe ser terminada por un RPC legítimo y no por lotes para vaciar la interconexión.
La arquitectura RPC está diseñada para que los clientes envíen un mensaje de llamada y, a continuación, esperen a que los servidores respondan que la llamada se ha realizado correctamente. Esto implica que los clientes no calculan mientras los servidores están procesando una llamada. Sin embargo, es posible que el cliente no desee o necesite un acuse de recibo para cada mensaje enviado. Por lo tanto, los clientes pueden utilizar los recursos de proceso por lotes RPC para seguir calculando mientras esperan una respuesta.
El proceso por lotes puede considerarse como la colocación de mensajes RPC en una interconexión de llamadas a un servidor deseado. El proceso por lotes presupone lo siguiente:
- Cada llamada de procedimiento remoto en la interconexión no requiere ninguna respuesta del servidor, y el servidor no envía un mensaje de respuesta.
- La interconexión de llamadas se transporta en un transporte de secuencia de bytes fiable como, por ejemplo, TCP/IP.
Para que un cliente utilice el proceso por lotes, el cliente debe realizar llamadas de procedimiento remoto en un transporte basado en TCP/IP. Las llamadas por lotes deben tener los atributos siguientes:
- La rutina XDR resultante debe ser 0 (nulo).
- El tiempo de espera de la llamada de procedimiento remoto debe ser 0.
Puesto que el servidor no envía ningún mensaje, no se notifica a los clientes de las anomalías que se produzcan. Por lo tanto, los clientes deben manejar sus propios errores.
Debido a que el servidor no responde a cada llamada, el cliente puede generar nuevas llamadas que se ejecuten en paralelo a la ejecución del servidor de las llamadas anteriores. Además, la implementación TCP/IP puede almacenar en el almacenamiento intermedio muchos mensajes de llamada y enviarlos al servidor con una subrutina write . Esta ejecución solapada disminuye la sobrecarga de comunicación entre procesos de los procesos de cliente y servidor, así como el tiempo total transcurrido de una serie de llamadas. Las llamadas por lotes se almacenan en el almacenamiento intermedio, por lo que el cliente debe realizar finalmente una llamada de procedimiento remoto no por lotes para vaciar la interconexión con acuse de recibo positivo.