RPC: Remote Procedure Call

Seguimos con el middleware, ya que parece que el tema ha resultado de interés.

Remote Procedure Call (RPC) es una tecnología que permite la comunicación entre procesos ubicados en diferentes máquinas sin que el programador tenga que preocuparse explícitamente de especificar esta comunicación. Es decir, RPC permite que un proceso cliente invoque a otro servidor en una máquina remota igual que si invocara a uno local.

Se ve claramente que RPC es el paradigma clásico de las arquitecturas cliente/servidor. El cliente envía una petición de ejecución al servidor junto con los parámetros necesarios, el servidor está constantemente a la escucha de este tipo de peticiones, así que la recibe, ejecuta el proceso solicitado y devuelve los resultados al cliente. Mientras el servidor realiza la ejecución solicitada, el cliente está bloqueado esperando la respuesta.

De hecho la única diferencia importante ente ejecutar procesos locales y remotos cuando se utiliza RPC está en el que programador debe protegerse de los fallos de red cuando las llamadas son remotas, ya que si no, se corre el peligro de que la aplicación quede bloqueada y no finalice.

Para que los procesos en los servidores puedan ser llamados desde distintos tipos de clientes, es necesario definir unos estándares de invocación mediante un IDL (Interfaz Description Language).

Algunos ejemplos de tecnologías RPC o que permiten RPC son DCOM (Microsoft), ONC RPC (Sun), DCE/RPC (OSF), RMI (Java) o XML-RPC. Los Web Services, de los que hemos hablado en entradas anteriores, también permiten utilizar RPC.
ddd

1 comentario:

Anónimo dijo...

Gracias por la informacion ha sido muy utlil.