Ingeniería de Sistemas e Informática
Sistemas Distribuidos
Dudas de la clase anterior…
Imagen extraída de: [Link]
Sesión 3 – Arquitectura de Sistemas
Modelos de Arquitectura
Imagen Extraída de: [Link]
Conocimientos Previos
Mira la imagen y responde…
¿A que se asemeja la estructura de cubos
mostrada?
¿Los cubos fuera de la estructura pueden
comunicarse con los demás?¿Porqué?
¿Qué se necesita para comunicar a todos
los componentes?
Imagen extraída de: [Link]
Logro de Aprendizaje
Al finalizar la sesión el alumno
reconoce los conceptos básicos de
los diferentes modelos de
arquitectura de sistemas
distribuidos de la actualidad y su
importancia en la sociedad
La imagen fue extraída de : [Link]
D8Pu2kYBnHQ/U5oFOPwKwPI/AAAAAAAAACA/GXh0E7mog0gOqyGYvfmvjjW9hBm3ZapfQCJkC/s1600-w1000/
Utilidad
Conocer y diferenciar los modelos de arquitectura actuales
¿Por qué crees que es importante aprender
sobre los modelos de arquitectura?
a) Para conocerlos
b) Para memorizar datos
¿Por qué crees que es importante diferenciar
los modelos de arquitectura?
Imagen extraída de: [Link]
Contenido
1. Sistemas Centralizados
1. Cliente/Servidor
2. Multicapa
2. Sistemas Descentralizados
1. Peer-to-Peer Estructurados
2. Peer-to-Peer No Estructurados
3. Peer-to-Peer Jerárquicamente Organizados
3. Arquitecturas Hibridas
1. Edge Servers
2. Sistemas Colaborativos Distribuidos
4. Práctica: Caso propuesto
5. Práctica: Python básico
Imagen extraída de: [Link]
1
Sistemas
Centralizados
Imagen Extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 9
Sistemas de Organización Centralizada
✓ Los sistemas distribuidos son conceptualizados
en torno a la idea del cliente y del servidor
✓ Muchos académicos sostienes que de esta
forma, se entiende y se gestiona mejor un
sistema distribuido
✓ La centralización se debe a la existencia de un
servidor que brinda los recursos solicitados
por el cliente
✓ Andrew Tanenbaum los clasifica en:
• Arquitectura Cliente/Servidor
• Arquitectura Multicapa
Imagen extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 10
Arquitectura Cliente-Servidor
✓Un servidor es un proceso
implementando un servicio específico
✓Un cliente es un proceso que solicita
un servicio al servidor
✓La interacción entre ambos se
denomina request-reply (solicitud-
respuesta)
Imagen extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 11
Arquitectura Cliente-Servidor
✓La solicitud (request) se formula en el lado
del cliente y se empaqueta en un mensaje
✓En el lado del servidor, se recibe el
mensaje, se decodifica y se procesa la
petición
✓La respuesta (response) es enviada en
forma de otro mensaje
✓El cliente recibe el mensaje del servidor y
completa su solicitud
Imagen extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 12
Principales protocolos base Cliente-Servidor
Orientado a la conexión NO orientado a la conexión
Imagen extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 13
Arquitectura Multicapa
✓Permite tener mas de 2 tipos de
máquinas en un sistema distribuido
✓Muchas aplicaciones se dividen en 3
capas (capa de presentación, capa de
procesamiento o lógica de negocio,
capa de datos)
✓Las capas pueden ser físicas o lógicas
(virtualización)
Imagen extraída de: [Link]
1 Sistemas Distribuidos | Modelos de Arquitectura >> 14
Arquitectura Multicapa
✓Es importante notar que el modelo
multicapa es una extensión en la
organización del modelo
cliente/servidor
✓El tiempo que el cliente espera
dependerá en el software utilizado no
solo en las capas restantes, sino
también en la infraestructura de red
Imagen extraída de Libro “Sistemas Distribuidos – Tanembaum & Steem”
2
Sistemas
Descentralizados
Imagen Extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 16
Sistemas de Organización Descentralizada
✓En este tipo de organización, un cliente
o servidor puede ser dividido
físicamente en partes equivalentes
✓Cada parte es responsable de una
parte de la información que le
corresponde
✓Se les conoce como sistema peer-to-
peer
Imagen extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 17
Tipos de Sistemas de Organización Descentralizada
Arquitecturas Peer-to- Arquitecturas Peer-to- Arquitecturas Peer-to-
Peer Estructurados Peer No Estructurados Peer Jerárquicamente
organizados
2 Sistemas Distribuidos | Modelos de Arquitectura >> 18
Sistemas Peer-to-Peer
✓Desde una perspectiva de alto nivel,
un sistema p2p los procesos que lo
constituyen son todos iguales
✓Como consecuencia, debe existir una
elevada simetría en la comunicación
de los procesos
✓Cada proceso actúa a la vez como
cliente y servidor (servant)
Imagen extraída de: [Link]
01-28%2Bat%2B8.19.09%[Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 19
Sistemas Peer-to-Peer Estructurados
✓Los nodos están organizados en una
red superpuesta que se adhiere a una
topología específica
✓La topología puede ser: anillo, arboles
binarios, grid, etc.
✓Es utilizada para buscar datos de
forma eficiente, utilizando un modelo
DHT
Imagen extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 20
Sistemas Peer-to-Peer Estructurados
✓El sistema como un todo, es
responsable de guardar pares clave-
valor (key, value)
✓Cada nodo se responsabiliza por un
subconjunto de claves
✓Cualquier nodo puede buscar
cualquier clave aplicando una función
hash, maximizando su eficiencia
Imagen extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 21
Sistemas Peer-to-Peer No Estructurados
✓Cada nodo mantiene una lista ad-hoc de
nodos vecinos, donde como resultado un
grafo aleatorio
✓Los nodos deben descubrir a otros nodos
cuando se conectan ya que no hay un
índice central
✓Son altamente escalables, pero el proceso
de búsqueda es mas lenta (flooding &
random walks)
Imagen extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 22
Sistemas Peer-to-Peer No Estructurados
✓ Flodding: Proceso de búsqueda en el cual el
nodo pasa la petición a todos sus nodos
vecinos. Al ser muy costoso, se limita
mediante una asociación TTL a la petición
✓ Random Walk: El nodo elige a un nodo vecino
de modo aleatorio, esperando que tenga los
datos solicitados. Consume menos ancho de
banda pero se expone a tiempo de respuestas
elevados
✓ Los sistemas p2p utilizan método de búsqueda
basado en políticas que combinan el uso de
estos 2 mecanismos
Imagen extraída de: [Link]
2 Sistemas Distribuidos | Modelos de Arquitectura >> 23
Sistemas Peer-to-Peer Jerarquicamente organizados
✓Mejora la escalabilidad de los sistemas
peer-to-peer no estructurados
✓La propuesta es usar nodos especiales
para mantener índices de datos
✓Los CDN (Content Delivery Network) son
un ejemplo de estos sistemas, que ofrecen
copias de de datos distribuidos en varios
de sus nodos de índices (super-peer) a los
clientes (week-peer)
Imagen extraída de: [Link]
3
Arquitecturas
Hibridas
Imagen Extraída de: [Link]
3 Sistemas Distribuidos | Modelos de Arquitectura >> 25
Arquitecturas Hibridas
✓Muchos sistemas distribuidos
combinan sus características de
arquitectura
✓Consiguen implementar lo que se
conoce como super-peer network
✓Combina la solución cliente-servidor
con la arquitectura descentralizada
Imagen extraída de: [Link]
3 Sistemas Distribuidos | Modelos de Arquitectura >> 26
Tipos de Arquitecturas Híbridas
Sistemas Sistemas Colaborativos
Edge-Servers Distribuidos
3 Sistemas Distribuidos | Modelos de Arquitectura >> 27
Sistemas Edge-Servers
✓Son sistemas desplegados en internet
✓Los servidores están desplegados “al
borde” de la red
✓Este borde esta formado por los límites
entre las redes de la empresa y la red de
internet
✓Los ISP son un ejemplo de estos sistemas
Imagen extraída de: [Link]
3 Sistemas Distribuidos | Modelos de Arquitectura >> 28
Sistemas Edge-Servers (al borde)
Imagen extraída de Libro “Sistemas Distribuidos – Tanembaum & Steem”
3 Sistemas Distribuidos | Modelos de Arquitectura >> 29
Sistemas Colaborativos Distribuidos
✓Son sistemas diseñados para colaborar y
compartir recursos valiéndose de la
infraestructura de cada cliente (nodo)
✓Cada nodo es responsable de proveer
piezas de información a los demás nodos
para poder acceder a los recursos de otros
nodos
✓Un sistema muy popular es el sistema
BitTorrent
Imagen extraída de: [Link]
3 Sistemas Distribuidos | Modelos de Arquitectura >> 30
Sistemas Colaborativos Distribuidos
Imagen extraída de Libro “Sistemas Distribuidos – Tanembaum & Steem”
Practica: Caso propuesto
La empresa XYZ cuenta con 500 empleados distribuidos por todo el Perú. Se desea que
todos los empleados puedan subir videos en un sistema propio de tal forma que pueda
ser accesible en le menor tiempo posible al resto de los empleados aprovechando los
recursos de cada computadora de sus empleados.
¿Explique cual es el problema central y los problemas secundarios que podría tener la
empresa en el escenario actual de pandemia?
¿Qué modelo de arquitectura le recomendaría implementar a la empresa XYZ de tal
forma que la solución le asegure el adecuado funcionamiento y disposición de toda la
información y sea lo más económica posible? Explique y fundamente su elección
Utilice Microsoft Word para detallar su respuesta
Imágenes Extraída de:
[Link]
Resumiendo
1. ¿Qué modelos de arquitectura
existen a la fecha?
2. ¿Qué es la arquitectura cliente-
servidor?
3. ¿Cómo funciona la arquitectura
peer-to-peer?
4. ¿Qué es BitTorrent?
Imagen extraída de: [Link]
05441_VS_R1b.jpg
Bibliografía
• Tanenbaum & Van Steen (2008). Sistemas Distribuidos - Principios y Paradigmas,
2da Edición. Pearson Education
• George Coulouris (2012). Distributed System Concepts and Design, Fifth Edition.
Addison-Wesley