COMUNICACIÓN DE PROCESOS EN SISTEMAS DISTRIBUIDOS


La comunicación de procesos es una parte fundamental y básica en cualquier sistema distribuido. Existen dos enfoques de comunicación, ambos basados en el paso de mensajes:


  • Mecanismos de bajo nivel. En este tipo de esquemas se ofrecen servicios en los que el programador debe encargarse de establecer los protocolos de comunicación, la forma de representación de los datos, etc. Ejemplos de este tipo de mecanismos son las colas de mensajes de POSIX, los Mailslots. de Win32 y los sockets.


  • Mecanismos de alto nivel. En este tipo de enfoques se ofrecen abstracciones que facilitan la programación y en las que el programador no debe preocuparse de los aspectos de bajo nivel relacionados con el paso de mensajes. En este tipo de esquemas se incluyen las llamadas a procedimiento remotos y la invocación de métodos remotos, como la que ofrece CORBA o RMI de Java.

Aparte de los mecanismos de comunicación que se empleen, existen dos patrones básicos de comunicación en sistemas distribuidos:


  • Comunicación cliente-servidor: en el modelo cliente-servidor los procesos llamados servidores ofrecen una serie de servicios a otros procesos que se denominan, clientes. El protocolo típico utilizado es el de petición-respuesta. El cliente realiza la petición de un servicio y el servidor responde con el resultado al cliente. Éste es el esquema mayoritariamente utilizado en sistemas distribuidos, ya que más del 90 por 100 de las aplicaciones distribuidas actuales siguen este patrón de comunicación.

Cliente-servidor.jpeg


  • Comunicación en grupos. En la comunicación en grupos existe un conjunto de procesos que constituyen un grupo y que cooperan en algún trabajo común. En este modelo de comunicación se emplea el radiado de mensajes de un proceso al resto de procesos del grupo. Este modelo puede ser útil en el caso que se desee actualizar de forma simultánea la copia de un archivo que reside en varios servidores.


imageDOP.JPG