Introducción a los
Sistemas Distribuidos
Agenda
Introducción a Sistemas Distribuidos
Características de Sistemas
Distribuidos
Arquitectura de Sistemas Distribuidos
2
Generaciones
4ta
3era Generación
Generación
2da
Generación
1era
Generación
Prehistoria,
Mecánica
Importancia de la Computación
4
Ecosistema de Digitalización de Ronald Berger 2016
Teorías de la computación
Teoría de la computación.
Teoría de autómatas.
Teoría de la computabilidad.
Teoría de la complejidad computacional:
límites fundamentales (en especial de espacio en
memoria y tiempo) de los cómputos.
Redes Digitales Entorno Digital en Expansión
[Link]
¿Qué es un sistema distribuido?
Un sistema distribuido es un
conjunto de programas
informáticos que utilizan recursos
computacionales en varios nodos
de cálculo distintos para lograr un
objetivo compartido común.
La finalidad de los sistemas
distribuidos es eliminar los cuellos
de botella o los puntos de error
centrales de un sistema.
Características
Los sistemas de computación distribuida tienen las
características siguientes:
Recursos compartidos: los sistemas distribuidos pueden
compartir hardware, software o datos
Procesamiento simultáneo: varias máquinas pueden
procesar la misma función a la vez
Escalabilidad: la capacidad computacional y de
procesamiento puede escalarse hacia arriba según sea
necesario cuando se añaden máquinas adicionales
Detección de errores: los errores se pueden detectar más
fácilmente
Transparencia: un nodo puede acceder a otros nodos del
sistema y comunicarse con ellos
¿Cuál es la diferencia entre un sistema
centralizado y un sistema distribuido?
Un sistema de computación centralizado es
aquel en el que todos los cálculos los realiza
un solo ordenador en una ubicación.
La principal diferencia entre un sistema
centralizado y un sistema distribuido es el
patrón de comunicación entre los nodos del
sistema. El estado de un sistema centralizado
se encuentra dentro de un nodo central al
que los clientes acceden a través de un
método personalizado.
Todos los nodos de un sistema centralizado
acceden al nodo central, lo que puede
sobrecargar y ralentizar la red. Los sistemas
centralizados tienen un punto de error único.
Este no es el caso de los sistemas distribuidos.
Taller: Aplicaciones
Encuentre y explique
tipos y ejemplos de
sistemas distribuidos
Arquitectura de Control Distribuido
Arquitecturas de sistemas distribuidos
Cliente-servidor
Una arquitectura cliente-servidor se divide en dos
responsabilidades principales. El cliente se encarga de
la presentación de la interfaz de usuario, que luego se
conecta al servidor a través de la red.
Por capas
Una arquitectura por capas amplía la arquitectura
cliente-servidor. En ella, el servidor se descompone en
otros nodos granulares, que desacoplan
responsabilidades adicionales del servidor backend,
como el procesamiento y la gestión de los datos.
Punto a punto
En un sistema distribuido punto a punto, cada nodo
contiene la instancia completa de una aplicación. No
hay separación de nodos entre la presentación y el
procesamiento de datos. Un nodo contiene la capa de
presentación y las capas de gestión de datos. Los otros
nodos pueden contener todos los datos de estado del
sistema.
Arquitecturas de sistemas distribuidos
Arquitectura orientada a servicios
La arquitectura orientada a servicios (SOA) es
anterior a los microservicios. La principal diferencia
entre la SOA y los microservicios es el alcance de los
nodos: el alcance de los nodos de los microservicios
está a nivel de la función. En los microservicios, un
nodo encapsula la lógica empresarial para gestionar
un conjunto específico de funciones, como el
procesamiento de los pagos.
Los microservicios contienen varios nodos de lógica
empresarial dispares que interactúan con nodos de
bases de datos independientes. Comparativamente,
los nodos SOA encapsulan toda una aplicación o
toda una división empresarial. El límite de servicio
de los nodos SOA suele ser un sistema de base de
datos completo dentro del nodo.
Sistemas concurrentes, paralelos y distribuidos
Programación concurrente: teoría y
práctica de cómputos simultáneos y
computación interactiva.
Redes de computadoras: algoritmos
y protocolos para comunicar
eficientemente datos a través de
largas distancias, incluye también la
corrección de errores.
Cómputo paralelo: computación
usando múltiples computadoras y
múltiples procesadores en paralelo.
Multiprocesador y Multicomputador
Virtualización
Hyper Threading
Multinucleo con HyperThreading
[Link]
Taller: Actividad Inicial
[Link]
23
Referencias Bibliográficas
1. John L. Hennessy, David A. Patterson; “Computer Architecture”;
6° Edition; 2017.
2. William Stallings; “Computer Organization And Architecture”;
10° Edition; 2016.
3. Andrew S. Tanenbaum, Todd Austin; “Structured Computer
Organization”; 6° Edition; 2012.
• John L. Hennessy, David A. Patterson; “Estructura y Diseño de Computadores”; 4° Edition; 2011
• Behrooz Parhami; “Arquitectura De Computadores”; 1° Edition; 2007.
• Mafla, E. (2001) Course Notes, CDA3101, at URL [Link] (as-of 11 Apr
2001)
• Mudawar, M. (2014) Computer Architecture course slides, Computer Engineering Department
King Fahd University of Petroleum and Minerals,
[Link]
[Link]