Sistemas Distribuidos: Fundamentos, Arquitectura, Modelos IPC y Protocolos de Red
Introducción a los Sistemas Distribuidos
Un sistema distribuido (SD) está compuesto por computadoras conectadas a través de una red que se comunican y coordinan entre sí para lograr un objetivo global.
Motivos Principales
- Compartir recursos de hardware y software.
Retos Fundamentales
- Heterogeneidad.
- Extensibilidad.
- Seguridad.
- Escalabilidad.
- Gestión de fallos.
- Concurrencia.
- Transparencia.
Conceptos Clave
- Middleware: Capa de abstracción que oculta la heterogeneidad y ofrece un modelo uniforme de programación.
- Seguridad: Garantizada mediante confidencialidad, integridad y disponibilidad.
- Escalabilidad: Capacidad de mantener la efectividad al aumentar el número de usuarios o recursos.
- Fallos: Involucra detección, enmascaramiento, tolerancia, recuperación y uso de redundancia.
Tipos de Transparencia
La transparencia consiste en ocultar al usuario la existencia de componentes separados:
- Acceso: El acceso local y remoto se realiza de la misma manera.
- Ubicación: El usuario no necesita saber dónde se encuentra físicamente el recurso.
- Concurrencia: Los procesos comparten recursos sin interferir entre sí.
- Replicación: Existen varias copias de los datos sin que el usuario lo note.
- Fallo: Se ocultan las fallas del sistema automáticamente.
Modelos Arquitectónicos
El modelo arquitectónico define la ubicación de las distintas partes y sus relaciones.
Tipos de Arquitecturas
- Capas: Separan la complejidad del sistema en niveles.
- Cliente/Servidor: Los clientes solicitan servicios y los servidores los proporcionan.
- P2P (Peer-to-Peer): Los procesos o pares participan directamente en igualdad de condiciones.
- Proxy / Caché: Intermediarios que facilitan y aceleran el acceso a los servidores.
- Cliente ligero: Arquitectura donde la gran parte del procesamiento se realiza en el servidor.
Comunicación entre Procesos (IPC)
El IPC (Inter-Process Communication) permite la comunicación entre diferentes procesos.
Operaciones y Mecanismos
- Operaciones básicas:
sendyreceive. - El Sistema Operativo administra el IPC mediante colas, semáforos y memoria compartida.
- Unicast: Comunicación de 1 proceso a 1 proceso.
- Multicast: Comunicación de 1 proceso a un grupo de procesos.
Sincronización y Bloqueos
- Síncrona: Las operaciones
sendyreceiveson bloqueantes. - Asíncrona: El
sendno es bloqueante; continúa al copiar el mensaje al búfer. - Blocking: El proceso queda retenido hasta que se completa la comunicación.
- Deadlock (Bloqueo mutuo): Situación donde los procesos quedan esperando datos entre sí. Se previene o detecta mediante mecanismos de timeout.
Gestión de Datos y Formatos
La red transmite los datos como un flujo binario continuo.
Serialización de Datos
- Marshalling: Aplanar la estructura de datos y convertirla a una representación externa estándar.
- Unmarshalling: Convertir la representación externa a interna y reconstruir la estructura original.
- Formatos comunes: XDR, ASN.1 y XML.
- XML: Formato basado en texto donde las etiquetas indican el significado del dato.
Modelo OSI
Estructura de 7 capas: Aplicación → Presentación → Sesión → Transporte → Red → Enlace → Física.
Protocolos de Comunicación
Un protocolo establece las reglas mutuamente acordadas para intercambiar datos de forma correcta.
Requisitos de un Protocolo
- Definir la secuencia de intercambio.
- Establecer el formato de los datos.
El Protocolo HTTP
Funciona bajo el esquema donde el cliente envía una solicitud (request) y el servidor devuelve una respuesta (response).
- Request HTTP: Comando + Dirección + Versión + Header opcional + Datos opcionales.
- Response: Línea de estado + Headers + Documento o contenido solicitado.