Sistemas Distribuidos
Módulo 1
Introducción a los Sistemas
Distribuidos
Agenda
1. Conceptos Generales
2. Sistemas Distribuidos.
1. Definición
2. Desafíos
3. Conceptos de Software
4. Modelos de Sistemas
Sistemas Distribuidos - Introducción
Optimización del Rendimiento
Optimización del Rendimiento
Reducción Balance de Optimización Técnicas
Costos Comp Carga Comunicación Específicas
Como en Reducción Evitar Tolerancia a
computación de Latencia Latencia la Latencia
secuencial
Tecnología, Reordenamiento
Sobrecarga Prefetching
de sentencias, Multihilos
de Protocolo Replicación
Sistemas Distribuidos - Introducción
Complejidad de Diseño de Programa
o Granularidad o tamaño de la tarea - Puede ser fina, media o
gruesa.
o Planificación de tareas en sentido espacial y temporal y la
distribución de datos.
o El manejo de las comunicaciones y la sincronización (llamado en
conjunto coordinación). La correctitud es fundamental dado que la
coordinación puede generar efectos no deseados.
o Interbloqueo.
Problemas Intratables
Por ejemplo: dentro del grupo de problemas intratables
resulta el referido a la planificación de tareas, mas
específicamente el de mapear un grafo de programa a la
arquitectura.
Sistemas Distribuidos - Introducción
Portabilidad del Código y del Rendimiento
Un programa es portable si corre en una variedad de
arquitecturas, inclusive las futuras. Ventajas:
o El esfuerzo de escribir un programa.
o Pasar fácilmente a arquitecturas más potentes si es necesario
más poder de computación.
o Pasar fácilmente a arquitecturas alternativas si el sistema
original capotó.
o Los programas pueden ser desarrollados en plataformas
relativamente baratas.
Para tener en cuenta es portabilidad del rendimiento
El problema es que no se pueden aprovechar las especificidades
de las arquitecturas.
Sistemas Distribuidos - Introducción
Agenda
1. Conceptos Generales
2. Sistemas Distribuidos.
1. Definición
2. Desafíos
3. Conceptos de Software
4. Modelos de Sistemas
Sistemas Distribuidos - Introducción
Sistemas Distribuidos
Definiciones
«Un sistema distribuido es una colección de computadoras
independientes que aparecen ante los usuarios del
sistema como una única computadora» Tanenbaum.
«Sistemas Distribuidos son aquellos en los cuales los
componentes de hardware y software están ubicados en
computadoras de una red y se comunican y coordinan sus
acciones solamente por medio de mensajes» Coulouris.
Sistemas Distribuidos - Introducción
Sistemas Distribuidos
DESVENTAJAS de los sistemas distribuidos
● Software: Hay poco software disponible para sistemas
distribuidos. La algorítmica es menos controlable.
● Redes: Se pueden saturar o causar otros problemas
● Seguridad
Limitaciones que crean problemas tecnológicos en los SD.
No existe una memoria global (cada nodo tiene su
memoria local).
Establecer un estado global es complejo.
No se puede asegurar un tiempo global.
Sistemas Distribuidos - Introducción
Sistemas Distribuidos: Tendencias
Tecnología de red ubicua.
Computación ubicuo y la movilidad del usuario.
El incremento en la demanda de servicios multimedia.
La vista de sistemas distribuidos como utilidad.
Sistemas Distribuidos - Introducción
Sistemas Distribuidos: Ejemplos
Una red típica Internet
intranet %
%
% ISP
backbone
enlace satelital
computadora:
servidor:
enlace de red:
Sistemas Distribuidos - Introducción
Sistemas Distribuidos: Ejemplos
Una intranet típica
servidor de correo
computadoras
impresoras
y otros serv
servidor de Web LAN
servidor de
correo impresoras
Servidor de archivos
otros servidores
el resto de
Internet
router/firewall
Sistemas Distribuidos - Introducción
Sistemas Distribuidos: Ejemplos
Dispositivos portables y manuales en un sistema
distribuido
Internet
intranet huesped WAP
LAN inalámbrica Home intranet
gateway
teléfono
móvil
Impresora Laptop
Cámara Sitio huésped
Sistemas Distribuidos - Introducción KMC © 2020
Agenda
1. Conceptos Generales
2. Sistemas Distribuidos.
1. Definición
2. Desafíos
3. Conceptos de Software
4. Modelos de Sistemas
Sistemas Distribuidos - Introducción
Sistemas Distribuidos - Desafíos
o HETEROGENEIDAD
o EXTENSIBILIDAD
o SEGURIDAD
o ESCALABILIDAD
o MANEJO DE FALLAS
o CONCURRENCIA
o TRANSPARENCIA
o CALIDAD DE SERVICIO
Sistemas Distribuidos - Introducción KMC © 2020
SD- Desafío: HETEROGENEIDAD
Un sistema es heterogéneo si está compuesto por hardware y
software distinto.
Muchos sistemas distribuidos son heterogéneos, mientras que
programas paralelos son escritos frecuentemente para
máquinas homogéneas.
Aquí aparece la noción de interoperabilidad: denota la
habilidad de diferentes componentes, posiblemente de
distintos proveedores, para interactuar. Estas partes pueden
ser hardware o software.
Los componentes,
Los componentes,
parapara interoperar,
interoperar, deben respetar
deben respetar
determinadas interfaces estándares. (IDL)
determinadas interfaces estándares. (IDL)
Sistemas Distribuidos - Introducción KMC © 2020
SD- Desafío: ESCALABILIDAD
o Problemas
Concepto Ejemplo
Servicios Centralizados Un único servidor para todos los usuarios.
Datos Centralizados Una sola guía telefónica en línea.
Algoritmos Centralizados Ruteo basado en información completa.
Algoritmos Distribuidos
1.- Información PARCIAL ESTADO sistema
2.- Decisión con información local
3.- Falla de una máquina
4.- Ausencia de RELOJ GLOBAL
Sistemas Distribuidos - Introducción KMC © 2020
SD- Desafío: MANEJO DE FALLOS
Las fallas en los sistemas distribuidos son parciales, esto es,
algunos componentes pueden fallar y otros funcionar
correctamente.
o Detección de fallas
o Enmascaramiento de fallas
o Tolerancia de fallas
o Recuperación de fallas
o Redundancia
Sistemas Distribuidos - Introducción KMC © 2020
SD- Desafío: TRANSPARENCIA
Ocultación al usuario y al programador de aplicaciones de la
separación de los componentes en un sistema distribuido, de forma
que se perciba el sistema como un todo más que como una colección
de componentes independientes.
TRANSPARENCIA DESCRIPCIÓN
Esconde diferencias en la representación de datos y como un recurso
Acceso
es accedido.
Locación Esconde la locación del recurso.
Esconde que un recurso pueda ser compartido por varios usuarios
Concurrencia
competidores.
Esconde desde donde es utilizado un recurso compartido por varios
Replicación
usuarios competidores.
Fallas Esconde la falla y recuperación de un recurso.
Migración (Movilidad) Esconde el movimiento de un recurso a otra locación.
Esconde que un recurso pueda ser movido a otra locación mientras
Relocación
está en uso.
Persistencia Esconde si un recurso (software) esta en memoria o disco.
Sistemas Distribuidos - Introducción KMC © 2020
Agenda
1. Conceptos Generales
2. Sistemas Distribuidos.
1. Definición
2. Desafíos
3. Conceptos de Software
4. Modelos de Sistemas
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
o SOD (Sistemas Operativos Distribuidos)
o SOR (Sistemas Operativos de Red)
o Middleware
SISTEMA DESCRIPCIÓN OBJETIVO PRINCIPAL
Sistemas operativos fuertemente acoplados Esconde y maneja
SOD para multiprocesadores y multicomputadoras los recursos de
homogéneas hardware
Sistemas operativos flojamente acoplados Ofrece servicios
SOR para multicomputadoras heterogéneas (LAN locales a clientes
y WAN). remotos
Capa adicional sobre un SOR implementando Provee distribución
Middleware
servicios de propósito general. transparente
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
SISTEMAS OPERATIVOS MULTICOMPUTADORA - 1
Máquina A Máquina B Máquina C
Aplicaciones Distribuidas
Servicios del Sistema Operativo Distribuido
Kernel Kernel Kernel
Red
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
SISTEMA OPERATIVO DE RED
Máquina A Máquina B Máquina C
Aplicaciones Distribuidas
Servicios del SO Servicios del SO Servicios del SO
de Red de Red de Red
Kernel Kernel Kernel
Red
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
SISTEMA OPERATIVO DE RED
Máquina Máquina Máquina
Cliente 1 Cliente 2 Servidor de Archivos
Req
Resp
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
POSICIÓN DEL MIDDLEWARE
Máquina A Máquina B Máquina C
Aplicaciones Distribuidas
Servicios de Middleware
Servicios del SO Servicios del SO Servicios del SO
de Red de Red de Red
Kernel Kernel Kernel
Red
Sistemas Distribuidos - Introducción KMC © 2020
SD: Conceptos de Software
COMPARACIÓN ENTRE SISTEMAS
SO Distribuido
SO basado en
Item SO de Red
Middleware
Multiproces. Multicompu.
Grado de transparencia Muy alto Alto Bajo Alto
Igual SO en todos los
Si Si No No
nodos
Número de copias de SO 1 N N N
Base para Memoria
Mensajes Archivos Modelo específico
comunicaciones compartida
Global, Global,
Manejo de Recursos Por nodo Por nodo
central distribuido
Escalabilidad No Moderada Si Varía
Apertura Cerrado Cerrado Abierto Abierto
Sistemas Distribuidos - Introducción KMC © 2020
Agenda
1. Conceptos Generales
2. Sistemas Distribuidos.
1. Definición
2. Desafíos
3. Conceptos de Software
4. Modelos de Sistemas
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: Modelos de Sistemas
o Modelos FÍSICOS – capturan la composición del hardware de un
sistema en términos de las computadoras y las redes de
interconexión.
o Modelos ARQUITECTÓNICOS – describen el sistema en términos de las
tareas computacionales y de comunicación realizadas por los
elementos.
o Modelos FUNDAMENTALES – describen una perspectiva abstracta para
examinar un aspecto individual de un sistema distribuido.
Modelo de Interacción
Modelo de Fallo
Modelo de Seguridad
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO
o Elementos Arquitectónicos
Entidades
Paradigmas de comunicación
Roles y responsabilidades
Mapeo sobre la infraestructura física
Sistemas Distribuidos - Introducción KMC © 2020
SD Arquitectónico: ROLES Y RESPONSABILIDADES
CLIENTE-SERVIDOR
Cliente Servidor
invocación invocación
resultado resultado
Servidor
Cliente
Identificación:
Proceso: Computadora:
Sistemas Distribuidos - Introducción KMC © 2020
SD Arquitectónico: ROLES Y RESPONSABILIDADES
PEER-TO-PEER Peer 2
Peer 1
Aplicación
Aplicación
Objetos
Compartidos Peer 3
Aplicación
Peer 4
Aplicación
Peers 5 .... N
Sistemas Distribuidos - Introducción KMC © 2020
SD Arquitectónico: UBICACIÓN
SERVICIO PROVISTO POR MÚLTIPLES SERVIDORES
Servicio
Servidor
Cliente
Servidor
Cliente
Servidor
Sistemas Distribuidos - Introducción KMC © 2020
SD Arquitectónico: UBICACIÓN
CACHE – EJEMPLO SERVIDOR PROXY
Cliente servidor
Web
servidor
Proxy
Cliente servidor
Web
Sistemas Distribuidos - Introducción KMC © 2020
SD Arquitectónico: UBICACIÓN
CÓDIGO MÓVIL
a) El requerimiento del cliente resulta en la bajada de un código applet
Cliente servidor
Web
Código applet
b) El cliente interactúa con el applet
servidor
Cliente Applet Web
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO
Patrones Arquitectónicos
o Capas
o Tiers
o Clientes Delgados
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO -
PATRONES
CAPAS DE SOFTWARE Y HARDWARE
Aplicaciones, servicios
Middleware
Sistema Operativo
Plataforma
Hardware de Computadora y Red
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO -
PATRONES
DOS-TIERS
Computadoras personales o
Servidor
dispositivos móviles
Visión usuario,
control y Aplicación y manejo
manipulación de de datos
datos
Visión usuario,
control y Aplicación y manejo
manipulación de de datos
datos
Nivel 1 Nivel 2
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO -
PATRONES
TRES-TIERS
Computadoras personales o Servidor de aplicación
dispositivos móviles
Visión
usuario y Lógica de
control aplicación
Administrador
de base de
datos
Visión
usuario y Lógica de
control aplicación
Nivel 1 Nivel 2 Nivel 3
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO -
PATRONES
CLIENTES DELGADOS
servidor de cómputo
Red de computadoras o PCs
Cliente red Proceso de
Delgado aplicación
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO –
PATRONES
CLIENTE-SERVIDOR
o Las funciones reales de la aplicación pueden repartirse entre
cliente y servidor de forma que:
Se optimicen los recursos de la red y de la plataforma.
Se optimice la capacidad de los usuarios para realizar varias
tareas.
Se optimice la capacidad para cooperar el uno con el otro en el
uso de recursos compartidos
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO –
PATRONES CLIENTE-SERVIDOR
Cliente Servidor
Lógica de presentación
Lógica de aplicación
Lógica de base de datos
SGBD
(a) Proceso basado en una máquina central
Cliente Servidor
Lógica de presentación
Lógica de aplicación
Lógica de base de datos
SGBD
(b) Proceso basado en el servidor
Sistemas Distribuidos - Introducción KMC © 2020
SD Modelo de Sistema: ARQUITECTÓNICO –
PATRONES CLIENTE-SERVIDOR
Cliente Servidor
Lógica de presentación
Lógica de aplicación
Lógica de base de datos Lógica de base de datos
SGBD
(c) Proceso basado en el cliente
Cliente Servidor
Lógica de presentación
Lógica de aplicación Lógica de aplicación
Lógica de base de datos
SGBD
(d) Proceso cooperativo
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: MODELOS FUNDAMENTALES
El objetivo de un modelo es:
o Hacer explícitas todas las premisas relevantes sobre los sistemas
que estamos modelando.
o Hacer generalizaciones respecto a lo que es posible o no, dadas las
premisas anteriores.
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: MODELOS FUNDAMENTALES
Modelo de Interacción
Los sistemas distribuidos están compuestos por varios procesos,
interactuando de manera compleja.
o Las prestaciones de las comunicaciones son con frecuencia una
característica limitante.
- Latencia (demora entre el inicio de la transmisión y el
comienzo de la recepción)
- Ancho de banda
- Jitter es la variación en el tiempo invertido en completa el
reparto de una serie de mensajes.
- No es posible mantener una única noción global del tiempo
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: MODELOS FUNDAMENTALES
Modelo de Interacción
o
SISTEMAS
Sistemas distribuidos
DISTRIBUIDOS síncronos
SÍNCRONOS
1.- el tiempo de ejecución de cada etapa de un proceso tiene
ciertos límites inferior y superior conocidos.
2.- cada mensaje transmitido sobre un canal se recibe en un
tiempo limitado conocido.
3.- cada proceso tiene un reloj local cuya tasa de deriva sobre el
tiempo real tiene un límite conocido.
o Sistemas
SISTEMAS distribuidos
DISTRIBUIDOS asíncronos
ASÍNCRONOS
No tiene límite para la velocidad de ejecución de un proceso,
demora en la transmisión de un mensaje y deriva del reloj.
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: MODELOS FUNDAMENTALES
Modelo de Fallo
o Fallos por omisión
De procesos (fallo-parada, timeouts)
De comunicaciones (fallo omisión de envío, de recepción, de
canal)
o Fallos arbitrarios (fallo bizantino)
o Fallos de temporización se aplican a los sistemas distribuidos
síncronos
o Enmascaramiento de fallos
o Fiabilidad y comunicación uno a uno
Validez
Integridad
Sistemas Distribuidos - Introducción KMC © 2020
Sistemas Distribuidos: MODELOS FUNDAMENTALES
Modelo de Seguridad
La seguridad de un sistema distribuido puede lograrse asegurando
los procesos y los canales empleados para sus interacciones y
protegiendo los objetos que encapsulan contra el acceso no
autorizado
Sistemas Distribuidos - Introducción KMC © 2020
Resumen
Conceptos Generales
Conceptos Generales
o La computación paralela está orientada a resolver un problema de
manera eficiente, dividiéndolo en subtareas para alcanzar un
objetivo.
o La computación distribuida está orientada a que varias aplicaciones
puedan compartir recursos y colaborar entre ellas.
o Las motivaciones para el crecimientos de estas áreas se encuentra
en el uso eficiente de los recursos, el rendimiento, el crecimiento
incremental, etc.
Sistemas Distribuidos - Introducción KMC © 2020
Resumen
Sistemas Distribuidos
o ¿Qué es? Dos definiciones fueron presentadas, con similitudes y
diferencias de acuerdo al contexto dónde se lo ubique.
o Estos sistemas tienen ventajas, pero también desventajas y
limitaciones como:
o No existe una memoria global.
o Establecer un estado global es complejo.
o No se puede asegurar un tiempo global.
o El diseño de un sistema distribuido requiere considerar desafíos
para el diseño como: heterogenidad, transparencia, extensibilidad,
…
Sistemas Distribuidos - Introducción KMC © 2020
Resumen
Sistemas Distribuidos
o Otro aspecto al considerar el diseño es el modelo arquitectónico.
Esta vista considera los siguientes aspectos:
o los componentes y cómo estos se comunican entre sí,
o los roles que representa y en dónde ubicarán cada uno de los elementos.
o Uno de los modelos más ampliamente utilizados es el modelo cliente-
servidor
o Los modelos fundamentales ayudan a razonar sobre las
propiedades del sistema distribuido en términos de, por ejemplo,
rendimiento, confiabilidad y seguridad.
Sistemas Distribuidos - Introducción KMC © 2020
Bibliografía:
- Leopold, C; “Parallel and Distributed Computing: A Survey of
Models, Paradigms and Approaches”, John Wiley & Son, Inc,
2001.
- Tanenbaum, A.S.; van Steen, Maarten; “Distributed Systems:
Principles and Paradigms”. 3rd. Edition, 2017. 2nd Edition,
Prentice Hall, 2007
- Coulouris,G.F.; Dollimore, J. y T. Kindberg; “Distributed
Systems: Concepts and Design”. 5th Edition Addison Wesley,
2011.
Sistemas Distribuidos - Introducción KMC © 2020