Modelos de Comunicación en Sistemas Distribuidos
RPC (Llamada a un Procedimiento Remoto)
MOM (Middleware Orientado a los Mensajes)
Flujo de Datos
Comunicación en Sistemas Distribuidos
Base de la Comunicación
La comunicación en sistemas distribuidos se basa en el paso de mensajes de bajo nivel, tal como lo ofrece la red subyacente.
Sistemas Abiertos
Un sistema abierto está preparado para comunicarse con cualquier otro sistema abierto mediante reglas estándar que regulan el formato, contenido y significado de los mensajes enviados y recibidos.
Protocolos Orientados a Conexión vs. Protocolos No Orientados a Conexión
Protocolos orientados a conexión: Antes de intercambiar datos, el remitente y el destinatario establecen explícitamente una conexión y posiblemente negocian el protocolo que utilizarán.
Protocolos no orientados a conexión: No se necesita una configuración por adelantado. El remitente solo transmite el primer mensaje cuando está listo.
Modelo OSI
Capas, Interfaces y Protocolos
Estructura del Mensaje
Función de las Capas
Capa Física
La capa física se ocupa de transmitir ceros y unos. Define aspectos como los voltajes utilizados para representar 0 y 1, la velocidad de transmisión (bits por segundo) y si la transmisión puede ser bidireccional simultáneamente.
Capa de Enlace
Su función principal es detectar y corregir errores en las redes de comunicación. Agrupa los bits en unidades llamadas tramas y verifica que cada trama se reciba correctamente.
Mecanismo de Verificación en la Capa de Enlace
La capa de enlace de datos agrega a la trama la suma de verificación. El destinatario recalcula la suma de verificación de los datos recibidos y la compara con la suma de verificación incluida en la trama. Si coinciden, la trama se considera correcta; si no, se solicita la retransmisión.
Capa de Red
Su tarea principal es elegir la mejor ruta para la transmisión de datos, lo que se conoce como enrutamiento.
Protocolos de Bajo Nivel
- Protocolo físico: Maneja la estandarización eléctrica, mecánica y de señalización de interfaces.
- Protocolo de enlace de datos: Agrega la suma de verificación a la trama para la detección de errores.
- Protocolo de red: Realiza el enrutamiento, eligiendo la mejor ruta para la transmisión de datos.
Capa de Transporte
La capa de transporte transforma la red subyacente en algo que un desarrollador de aplicaciones puede utilizar.
UDP (User Datagram Protocol)
UDP es un protocolo mínimo de nivel de transporte orientado a mensajes.
Protocolos de Más Alto Nivel
- Sesión
- Presentación
- Aplicación
Tipos de Comunicación
- Comunicación Persistente
- Comunicación Transitoria
- Comunicación Asíncrona
- Comunicación Síncrona
RPC (Llamada a Procedimiento Remoto)
RPC es un programa que permite a una computadora ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambas.
Principio de la RPC entre un Programa Cliente y Servidor
Ningún mensaje de paso es visible para el programador.
Pasos para Hacer un RPC
- El procedimiento cliente llama al resguardo del cliente de manera normal.
- El resguardo del cliente construye un mensaje y llama al sistema operativo local.
- El sistema operativo del cliente envía el mensaje al sistema operativo remoto.
- El sistema operativo remoto da el mensaje al resguardo del servidor.
- El resguardo del servidor desempaca los parámetros y llama al servidor.
- El servidor realiza el trabajo y devuelve el resultado al resguardo.
- El resguardo del servidor empaca el resultado en un mensaje y llama a su sistema operativo local.
- El sistema operativo del servidor envía el mensaje al sistema operativo del cliente.
- El sistema operativo del cliente da el mensaje al resguardo del cliente.
- El resguardo desempaca el resultado y lo regresa al cliente.
Interacción Cliente-Servidor mediante dos RPC Asíncronas
IDL (Lenguaje de Definición de Interfaces)
DCE (Ambiente de Computación Distribuida)
DCE es un verdadero sistema middleware porque está diseñado para ejecutarse como una capa de abstracción entre sistemas operativos existentes (redes) y aplicaciones distribuidas.
Cronómetro en una Computadora
Un cronómetro de computadora, en general, es un cristal de cuarzo mecanizado con precisión. Cuando se somete a tensión, el cristal oscila a una frecuencia específica. Cada oscilación disminuye un contador, y cuando llega a cero, se genera una interrupción (marca de reloj) y el contador se reinicia.
Relojes Lógicos de Lamport
Esquema de Posicionamiento
Pasos para Implementar los Relojes Lógicos de Lamport
- Antes de ejecutar un evento, el proceso Pi incrementa su contador local Ci: Ci ← Ci + 1.
- Al enviar un mensaje m a Pj, Pi ajusta el registro de tiempo de m, ts(m), igual a Ci.
- Al recibir m, Pj ajusta su contador Cj: Cj ← máx{Cj, ts(m)}, luego incrementa Cj y entrega el mensaje.
Exclusión Mutua de Procesos
La exclusión mutua se utiliza para evitar que accesos concurrentes a recursos compartidos los corrompan o los vuelvan inconsistentes.
Comparación de Algoritmos de Exclusión Mutua
Elección en el Algoritmo del Abusón
Un proceso, P, celebra una elección:
- P envía un mensaje de ELECCIÓN a procesos con números superiores.
- Si nadie responde, P gana y se convierte en coordinador.
- Si un proceso superior responde, toma el mando.