Está en la página 1de 34

Introducción a los Sistemas

Distribuidos

Jefferson Beltrán Morales


Basado en:

Evolución de la Computación Distribuida. Mafla Enrique. EPN.

Introducción a los Sistemas Distribuidos. García, F., Escolar, S., Sánchez L., García Javier. Universidad Carlos III de Madrid

Sistemas Distribuidos. De la Cruz Bernardo.


Contenido
ꢀ Evolución de la informática
ꢀ Concepto de sistema distribuido
ꢀ Ejemplos de aplicaciones distribuidas
ꢀ Ventajas e inconvenientes de los sistemas distribuidos
ꢀ Sistemas distribuidos vs. paralelos
ꢀ Desafíos de los sistemas distribuidos
ꢀ Arquitecturas de computación distribuida
Evolución de la Informática
ꢀ En los años 70:
ꢀ Mainframes centrales
ꢀ Sistemas de tiempo compartido
ꢀ Recursos centralizados
ꢀ Terminales simples
ꢀ Interfaces de usuario poco amigables
ꢀ Aparecen las primeras redes
Evolución de la Informática
ꢀ En los años 80:
ꢀ PCs y estaciones de trabajo
ꢀ Predominio de aplicaciones complejas ejecutadas localmente
ꢀ Interfaces amigables
ꢀ Redes de área local (LAN)
ꢀ Aparecen los primeros sistemas operativos distribuidos
ꢀ Mach, Sprite, Chorus, ...
Evolución de la informática
ꢀ En los años 90:
ꢀ Despegue de las aplicaciones cliente/servidor
ꢀ Más descentralización
ꢀ Aplicaciones ejecutadas localmente y en red
ꢀ Enorme difusión de Internet gracias a la web
ꢀ Nuevas necesidades y aplicaciones basadas en web
ꢀ Comercio electrónico
ꢀ Multimedia
ꢀ Sistemas de control
ꢀ Aplicaciones médicas
ꢀ Supercomputación en Internet
Evolución de la informática
ꢀ En los años 2000:
ꢀ Nuevos paradigmas de computación distribuida
ꢀ Grid computing
ꢀ Peer-to-Peer
ꢀ Computación ubicua
ꢀ Dispositivos móviles
ꢀ Aplicaciones para Internet basadas en Web
ꢀ Tendencia:
todas las aplicaciones en red
Evolución de la informática
ꢀ Infraestructura tradicional
Evolución de la informática
ꢀ Infraestructura tradicional ꢀ Consolidación de recursos
Evolución de la tecnología
ꢀ La ley de Bell (1972):
ꢀ “aparecerá una nueva clase de
computadoras (tecnología)
cada 10 años”

ꢀ La ley de Moore (1965):


ꢀ “el número de transistores por
chip se doblará cada
18-24 meses”
Infraestructura tradicional
Máquinas Virtuales
Sistema Distribuido
ꢀ Sistema formado por recursos de computación (hardware y software)
físicamente distribuidos e interconectados a través de una red, que
comunican mediante paso de mensajes y cooperan para realizar una
determinada tarea
Otras definiciones
“Un sistema distribuido es aquel en el que no puedes
trabajar con tu máquina por el fallo de otra máquina que
ni siquiera sabías que existía”
-Leslie Lamport

“Un sistema distribuido es aquel en el que los


computadores localizados en una red comunican y
coordinan sus acciones mediante paso de mensajes”
-George Coulouris
Conceptos previos
ꢀ Un programa es un conjunto de instrucciones

ꢀ Un proceso es un programa en ejecución

ꢀ Una red de computadores es un conjunto de computadores conectados


por una red de interconexión

ꢀ Sistema distribuido Un conjunto de computadores (sin memoria ni reloj


común) conectados por una red
ꢀ Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o más
computadores que colaboran y comunican intercambiando mensajes.

ꢀ Un protocolo es un conjunto de reglas e instrucciones que gobiernan la


comunicación en un sistema distribuido, es decir, el intercambio de
mensajes
Ejemplo: red de área local
Ejemplo: Web
Ejemplos de aplicaciones y sistemas
distribuidos
ꢀ Correo electrónico (IMAP, POP)
ꢀ Transferencia de ficheros (FTP)
ꢀ Servicios de News
ꢀ WorldWideWeb (WWW)
ꢀ Sistemas de control de tráfico aéreo
ꢀ Aplicaciones bancarias
ꢀ Comercio electrónico
ꢀ Aplicaciones multimedia (videoconferencias, vídeo bajo demanda , etc.)
ꢀ El ancho de banda en estas aplicaciones es un orden de magnitud mayor
que en otras
ꢀ Requieren calidad de servicio (QoS)
ꢀ Aplicaciones médicas (transferencia de imágenes)
Objetivos de los SSDD
ꢀ Sistemas distribuidos
ꢀ Objetivo: facilitar a los usuarios (y a las aplicaciones) el
acceso a los recursos remotos, y compartirlos de manera
controlada y eficiente
ꢀ Redes de computadoras
Sistemas distribuidos y paralelos
ꢀ Sistemas distribuidos
ꢀ Objetivo: compartir recursos y colaborar
ꢀ Redes de computadoras
ꢀ Sistemas paralelos
ꢀ Objetivo:
ꢀ Alto rendimiento (speedup)
ꢀ Alta productividad
ꢀ Máquinas paralelas (arquitecturas dedicadas)
ꢀ Multiprocesadores
ꢀ Multicomputadores
ꢀ Redes de estaciones de trabajo trabajando como un
multicomputador (cluster)
ꢀ Grid Computing (www.gridcomputing.com)
Ventajas que pueden ofrecer los SSDD
ꢀ Compartir recursos: HW, SW, datos (impresoras, computadoras,
dispositivos de almacenamiento, datos, archivos, paginas web y
Redes, etc.)
ꢀ Acceso a recursos remotos.
ꢀ Modelo cliente-servidor
ꢀ Modelo basado en objetos
ꢀ Ofrecen una buena relación coste/rendimiento
ꢀ Capacidad de crecimiento (escalabilidad)
ꢀ Tolerancia a fallos, disponibilidad
ꢀ Replicación
ꢀ Concurrencia: servicio a múltiples usuarios simultáneamente
ꢀ Velocidad: capacidad global de procesamiento disponible para:
ꢀ Ejecución paralela de una aplicación
Desventajas de los sistemas distribuidos
ꢀ Interconexión
ꢀ Coste
ꢀ Fiabilidad, pérdida de mensajes
ꢀ Saturación
ꢀ Comunicaciones inseguras
ꢀ Software más complejo
ꢀ Potencia de cada nodo no adecuada
Aspectos a tomar en cuenta en el diseño:
ꢀ Seguridad
ꢀ Mientras la conectividad y el intercambio aumentan, la
seguridad se vuelve cada vez más importante. En la práctica
común, los sistemas proporcionan poca protección en contra
del espionaje o de la intrusión en las
comunicaciones.
Aspectos a tomar en cuenta en el diseño:
ꢀ Transparencia en la distribución

ꢀ Un sistema distribuido debe ocultar el hecho de que


sus procesos y recursos están físicamente distribuidos a
través de múltiples computadoras,
Aspectos a tomar en cuenta en el diseño:
ꢀ Formas de Transparencia en la distribución
Transparencia Descripción
Acceso Oculta diferencias en la representación delos datos y
laforma en que un recurso accede a los datos.
Ubicación Oculta la localización de un recurso.
Migración Oculta el que un recurso pudiera moverse a otra
ubicación.
Reubicación Oculta el que un recurso pudiera moverse a otra
ubicación mientras está en uso.
Replicación Ocultael número de copias de un recurso.
Concurrencia Oculta que un recurso puede ser compartido por
varios usuarios que compiten por el.
Falla Oculta la falla y recuperación de un recurso.
Aspectos a tomar en cuenta en el diseño:
ꢀ Nivel de transparencia
ꢀ Buscar la transparencia de distribución puede ser un objetivo
cuando diseñamos e implementamos sistemas distribuidos, pero
debemos considerarla junto con otros problemas tales como
el rendimiento y la comprensibilidad.
ꢀ El costo de no tener capacidad para lograr la
transparencia completa puede ser sorprendentemente alto.
Aspectos a tomar en cuenta en el diseño:
ꢀ Grado de apertura
Un sistema distribuido abierto es un sistema que ofrece
servicios de acuerdo con las reglas estándar que describen la
sintaxis y la semántica de dichosservicios.
ꢀ La interoperabilidad define la extensión mediante el cual dos
implementaciones de sistemas o componentes de fabricantes
distintos pueden coexistir y trabajar juntos si únicamente se
apoyan en sus servicios mutuos tal como se especifica
mediante un estándar común.
ꢀ La portabilidad define la extensión mediante la cual una
aplicación desarrollada para un sistema distribuido A se
pueda ejecutar, sin modificación, en un sistema distribuido B
quecomparte la misma interfaz que A.
Aspectos a tomar en cuenta en el diseño:
ꢀ Escalabilidad
La escalabilidad de un sistema se puede medir de acuerdo con al
menostresdimensiones:
ꢀ Primero, un sistema puede ser escalable con respecto a su
tamaño, lo cual significa que podemos agregarle fácilmente
usuariosyrecursos.
ꢀ Segundo, un sistema escalable geográficamente es aquel
en el cual usuarios y recursos pueden radicar muy lejos unos de
los otros.
ꢀ Tercero, un sistema puede ser escalable
administrativamente; esto es, puede ser fácil de manejar
incluso si involucra muchas organizaciones administrativas
diferentes.
Aspectos a tomar en cuenta en el diseño:
ꢀ Escalabilidad
ꢀ Desafortunadamente, con frecuencia un sistema
escalable en una o más de estas dimensiones exhibe alguna
pérdida de rendimiento al escalarlo.

ꢀ En la mayoría de los casos, los problemas de


escalabilidad en sistemas distribuidos aparecen como
problemas de rendimiento ocasionados por la limitación de
capacidad de servidores y redes.
Arquitecturas de computación distribuida
ꢀ Cliente - servidor
ꢀ Servicios Web
ꢀ Computación en la nube
ꢀ Micro servicios
Modelo Cliente - Servidor
Servicios Web
Computación en la Nube
Micro Servicios
Gracias

También podría gustarte