Está en la página 1de 47

SISTEMAS DISTRIBUIDOS

Capítulo1
Introducción
Introducción
 La vida moderna se desenvuelve en un
entorno de redes:
 Celulares
 Empresariales
 De control de producción
 campus
 hogar
 En el vehículo
 Etc.

 Actualmente
 Aumento de la dependencia de los
negocios y la sociedad en general, en
los sistemas y aplicaciones distribuidas
 Se requiere analizar grandes cantidades
de datos mediante sistemas distribuidos
geográficamente (gran capacidad)
Objetivos de estudio

Conocer los aspectos de la


comunicación de sistemas de múltiples
componentes

Determinar las formas en que el diseño


de estos sistemas se ve afectado y
afecta al comportamiento de los
sistemas operativos, redes y protocolos
subyacentes. (Anthony , 2015)
4ta revolución industrial
“Estamos al borde de una revolución tecnológica
que alterará fundamentalmente la forma en que
vivimos, trabajamos y nos relacionamos entre
nosotros. En su escala, alcance y complejidad, la
transformación será diferente a todo lo que la
humanidad ha experimentado antes ... El
advenimiento de una "sociedad hiperconectada"
donde tecnologías como la inteligencia artificial y la
IoT están conectadas a todo desencadenará una
nueva revolución industrial…”
Klaus Schwab, Executive Chairman of W.E.F.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Definición de Leslie
Lamport’s (informal)
 “Un Sistema distribuido es aquel en el cual yo no
puedo terminar mi trabajo debido a que alguna
computadora de la que nunca había oído, ha
colapsado.“
 Leslie Lamport –investigador en sistemas distribuidos,
desarrollador LaTeX y BibTex
Sistema de computación distribuida
es aquel en el que los recursos utilizados por las
aplicaciones se distribuyen a través de numerosas
computadoras conectadas por una red.
(Anthony , 2015)
Definición de un Sistema
Distribuido (1)
 “Un Sistema en el cual un componente hardware o software localizado en
computadoras enlazadas en una red, se comunican y coordinan sus
acciones solamente mediante el paso de mensajes.” [Coulouris]

 Una colección de computadores independientes, que aparecen para los


usuarios como un solo Sistema coherente. [Tanenbaum]
Definición de un Sistema Distribuido (2)
Middleware:
• software que abstrae la complejidad y heterogeneidad de las redes de
comunicaciones, sistemas operativos y lenguajes de programación para permitir a
una aplicación interactuar con otras aplicaciones, redes, hardware y/o sistemas
operativos en los sistemas distribuidos.
• Funciona como una capa de abstracción de software que se sitúa entre las capas de
aplicaciones y las capas inferiores

Figura 1-1. Un Sistema distribuido organizado como un middleware. La capa middleware se extiende sobre múltiples
máquinas, y ofrece a cada aplicación la misma interface.
Aplicaciones distribuidas
modernas
 Buscadores web
 Redes sociales
 Sistemas de educacion online
 Juegos en línea con multijugadores
 Sistemas de negocios financieros
 Sistemas de control de vuelos
 redes de sensores IOT
 Redes eléctricas y smart grid
 Computación en la nube
 Minería de datos
Razones para usar Sistemas
distribuidos (1)
 1. Separación funcional entre recolección y procesamiento:
 Hay computadores con diferentes capacidades y propósitos:
 Clientes - servidores
 Recolección - procesamiento de datos

 2. Distribución inherente de datos, procesos y actividades:


 Información:
 Diferente informacion es creada y mantenida por diferentes personas
(ej., blogs)
 personas
 Las computadoras dan soporte al trabajo colaborativos (equipos
virtuales, etc.)
 Ej. Sistemas de inventarios para cadenas de supermercados
26-3-19
Razones para usar Sistemas
distribuidos (2)
 3. Desbalanceo de potencia y variacion de carga:
 Distribuir carga computacional entre diferentes
computadoras.
 4. Confiabilidad:
 Preservación a largo plazo y respaldo de datos en diferentes
lugares.
 5. Economía:
 Compartir dispositivos por varios usuarios y reducir el costo de
propiedad (Impresoras, Supercomputadoras ).
Características de los
sistemas distribuidos
 Actividades en paralelo
 Componentes autónomos ejecutando tareas
concurrentes
 Comunicacion via paso de mensajes
 No hay memoria compartida
 Compartir recursos
 Impresoras, Bases de datos, servicios
 No hay un estado global
 Ningún proceso puede tener conocimiento del
estado global actual del sistema
 No hay un reloj global
 Solamente hay una precision limitada de los
procesos para sincronizar sus relojes
Objetivos de los sistemas
distribuidos
 Conectar usuarios y recursos (compartir recursos)
 Hacerlo ampliamente disponible
 Transparencia
 En la complejidad detrás del sistema
 Apertura
 Uso de estándares comunes para interactuar y extender
 Escalabilidad
 Crecimiento de ser posible en forma lineal
 Disponibilidad mejorada
Retos de un sistema
distribuido
Retos
 Heterogeneidad
 Componentes Heterogeneos deben poder interactuar: middleware
 Tolerancia a fallos – Resiliencia
 El fallo de un componente (fallo parcial) no debe afectar a todo el
sistema: checksum, retransmisión, rollback, time out
 transparencia
 La distribución debería estar oculta al usuario tanto como sea posible
Transparencia en un Sistema
Distribuido

Performance transparency allows the system to be reconfigured to improve performance as


loads vary

Scaling transparency allows the system and applications to expand in scale without
change to the system structure or the application algorithms

Figura 1-2. Diferentes formas de transparencia en un sistema


distribuido (ISO, 1995).
Retos

 Concurrencia
 El acceso compartido a recursos debe ser posible (varios usuarios):
planificación, evitar interbloqueos (deadlocks)

 Escalabilidad
 Los sistemas deberían trabajar eficientemente al incrementarse el número
de usuarios
 El desempeño del Sistema debería incrementarse con la adición de
recursos extras

• Problemas
CS: Cuello de botella al incrementar usuarios y servicios
CD: Saturación de líneas de comunicación al tener datos centralizados (Ej. Resolución de DNS – guía tel.
única)
CA: Sobrecarga de la red al pasar datos al algoritmo centralizado y distribuir a los usuarios
Investigación. Próximo viernes
 1. Historia de TCP, Internet, WWW y tendencias futuras del Internet
 2. 4ta revolución industrial
 Distributed Computing Platforms
 5. The Grid
29-3-19
 6. Cloud Computing

 7. Mobile Ad hoc Networks

 8. Wireless Sensor Networks

 9, Electronic Health Care Systems

 10. Inteligencia artificial en entornos distribuidos - Watson


 11. Seguridad en entornos distribuidos
 12. Trabajos que están siendo desplazados por la tecnología y nuevos trabajos
 Elaborar un resumen + ensayo de como aprovechar esa tecnología para
solucionar 3 ejemplos de problemas locales (máximo bienestar - beneficio)
 Power point con máximo 5 diapositivas

 3 personas
 5 a 10 paginas de informe
Retos (cont…)
Escalabilidad (cont…)
Tipos de escalamiento
• Scaling out (escalado horizontal)
• adicionar más nodos al Sistema – Ej. Cluster
• Pros
• Economía: Máquinas simples con menos recursos
• Crecimiento gradual en mas o en menos
• Contras
• Comunicación: Incremento de complejidad , no la máxima velocidad
• Administración y desarrollo

• Scaling up (escalado vertical)


• Adicionando más recursos a un único nodo en el Sistema - Ej.
Supercomputadoras
• Pros
• Fácil mantenimiento y desarrollo, comunicación rápida
• Contras
• Función escalonada, baja tolerancia a fallos (único punto de falla)
• Costoso
Retos (cont…)
 Apertura
 Las interfaces deberán ser disponibles en forma pública
para facilitar la inclusión de nuevos components
 Estándares, API’s, protocolos
 ANSI C - estandar, portable
 W3C – define protocolos como HTML, Web Services, SOAP
 IEEE - define estandares como 802.1a/b/g/n

 Seguridad
 El Sistema solo debería ser usado en la forma que se
planeó: Encriptamiento, autentificación, control de
acceso, disponibilidad, etc.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Tipos de Sistemas distribuidos

 1 Sistemas de computación distribuida


 Cluster Computing Systems
 Grid Computing Systems

 2 Sistemas de información distribuida


 Transaction Processing Systems
 Enterprise Application Integration

 3 Sistemas distribuidos de alta penetración (pervasive)


 Home Systems
 Electronic Health Care Systems
 Sensor Networks

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
1. Tipos de Sistemas de cómputo
distribuidos
A) Sistema Multicomputador / Clusters
conjunto de computadores que trabajan juntos para que, puedan ser
vistos como un solo sistema, en el que cada nodo hace la misma
tarea; controlado y planificado por software
Características
 No hay memoria compartida
 Homogéneos en hardware y software
 Corre el mismo SO

 Conección de red alta velocidad


 Usado en programación paralela
 Ej. Beowulf clusters basados en Linux
1. Tipos de Sistemas de cómputo
distribuidos
B) Sistemas de cómputo Grid (malla - red)
• Conjunto de recursos informáticos en varias ubicaciones y de
diversas organizaciones, que buscan alcanzar un objetivo
común.
• cada nodo normalmente realiza una tarea / aplicación diferente.
• También puede dedicarse a una aplicación particular
• Es más heterogéneo y disperso geográficamente que el cluster.

 Fig. 1-7. Una arquitectura en capas de un Sistema de computo en malla


1. Tipos de Sistemas de cómputo
distribuidos
Sistemas de cómputo grid
Casos:
• Folding@Home 5.8 PFLOPS
• Proteinas y enfermedades relac.
• SETI@Home (Search for extraterrestrial intelligence ) 730 TFLOPS
• Inteligencia Extraterrestre
• Einstein@Home 210 TFLOPS
• (Astrofisica)
1. Tipos de Sistemas de cómputo
distribuidos
Diferenciación con los sistemas paralelos
 Sistema Multiprocesador
 Memoria compartida
 Red de interconexión basada en Bus
 Ejemplos.
 MPP(Massively parallel processor) para
supercomputadores,
 SMPs (symmetric multiprocessors) con 2 o
más CPUs (Xeon, coreiX)
1. Tipos de Sistemas de cómputo
distribuidos

La diferenciación con los sistemas


paralelos se vuelve difusa

 La extensibilidad de los clusters lleva a la


heterogenidad
 Al agregar mas nodos al crecer los requerimientos
 Extendiendo los cluster para incluir los recursos
ociosos de los computadores de los usuarios
 Conduciendo a la convergencia de varios
conceptos de los sistemas paralelos y distribuidos
2 Sistemas de información distribuida:
Caso:
Sistemas de procesamiento de Transacciones(1)

 Propiedades características de las


transacciones:
• Atomicidad:
• para el mundo exterior, las transacciones
son indivisibles.
• Consistencia:
• No violan las invariantes del Sistema.
• Aislamiento:
• las transacciones concurrentes no
interfieren entre si.
• Durabilidad:
• una vez ejecutada la transacción, los
cambios son permanentes.
2 Sistemas de información distribuida:
Sistemas de procesamiento de
Transacciones (2)
 Fig 1-8. primitivas
para transaciones.

 Fig. 1-9. Una


transacción anidada.
2 Sistemas de información distribuida:
Sistemas de procesamiento de
Transacciones(3)
 Fig. 1-10. El rol de un
monitor de procesamiento
de transacciones (TP
monitor) en sistemas
distribuidos.

 Fig 1-11. Un Middleware


como facilitador de
comunicación en la
integración de
aplicaciones empresariales.
3. Sistemas distribuidos de alta
penetración

 Requerimientos (Grimm et al. 2004)

• Acepta cambios contextuales


• Dispositivo consciente de cambios contínuos:
• físicos, software y localización (geográfica y de red).
• Alienta la composición ad-hoc.
• Los dispositivos serán usados de diversas formas por
diversos usuarios (celular: reproductor, control, lectura)
• Reconoce el compartir como lo predeterminado.
• Los dispositivos se unen a una red para aceder o proveer
información
3. Sistemas distribuidos de alta
penetración
Sistemas electrónicos de cuidado de
la salud (1)

 Fig 1-12. El monitoreo de una persona en un Sistema electrónico de cuidado


de la salud de gran alcance, usando (a) un concentrador local o
 (b) una conección inalámbrica contínua.
3. Sistemas distribuidos de alta penetración
Sistemas electrónicos de cuidado
de la salud (2)
 Preguntas que deben considerarse:
• Cuándo y cómo debería almacenarse la información monitoreada?
• Como podemos prevenir la pérdida de datos cruciales?
• Qué infraestructura se necesita para generar y propagar alertas?
• Cómo podrían los medicos proveer retroalimentacion en línea?
• Como se podría alcanzar una alta robustez del Sistema de monitoreo?
• Cuales son los asuntos de seguridad y cómo podrían dirigirse políticas
adecuadas?
3. Sistemas distribuidos de alta
penetración
Redes de sensores(1)
 Fig. 1-13. organizando una
base de datos de una red
de sensores, mientras se
almacena y procesan los
datos (a) solo en el lado del
operador o …

 Fig. 1-13. Organizando


la base de datos de
una red de sensores,
mientras se almacen y
procesan los datos … o
(b) solo en los sensores.
3. Sistemas distribuidos de alta
penetración
Redes de sensores (2)

 Preguntas relacionadas:
• Como podemos configurar (dinamicamente) un
árbol eficiente en una red de sensores?
• Cómo se da el agregamiento de resultados? Puede
ser controlado?
• Qué sucede cuando los enlaces caen?
Redes vehiculares 2-03-19

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Redes vehiculares

 Preguntas relacionadas
 Infraestructura mas eficiente en costo y funcionalidad
 Restricciones de tiempo de conexión
 Prioridad de transmisión de datos
 Cómo se tratan datos duplicados y envejecidos
 Privacidad y seguridad de datos
 Ética en la prevención de accidentes (v. autónomos)

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Falsas asunciones del
desarrollador novel:
(Peter Deutsch- Sun Microsystems)
• La red es confiable.
• La red es segura.
• La red es homogenea.
• La topología no cambia.
• La latencia es cero.
• El ancho de banda es infinito.
• El coste de transporte es cero.
• No hay un administrador.
Tendencias en sistemas
distribuidos 5/4/19

A. Naturaleza pervasiva de las redes de computadoras


B. Computacion móvil y ubicua
C. Creciente importancia de los sistemas distribuidos multimedia
D. El uso de los sistemas distribuidos como un servicio
(commoditie)(Cloud Computing)
A. Tendencias en sistemas
distribuidos: Naturaleza
pervasiva
 Pervasivo: invasivo, penetrante, permeable

 Los SDs están basados en las redes de computadoras:


 Internet
 Intranets,
 Wireless networks
Algunos servicios de internet:
servicios email, www, ftp, video/audio streaming etc.

Intranet %
%
% ISP

backbone

satellite link

desktop computer:
server:
network link:

 Internet es una colección vasta de redes de computadoras


de diferentes tipos que mantienen varrios tipos de servicios.
Una Intranet típica:
A Una porción de Internet que es administrada
separadamente y que permite la compartición
interna de recursos

Desktop
computers
Print and other servers email server

Local area
Web server network

email server
print
File server

other servers

the rest of
the Internet
router/firewall
B. Computacion mobil y
ubicua

Internet

WAP Home Intranet


Host Intranet Wireless LAN gateway

Printer
Mobile
phone
Camera Laptop Host site
• C. Creciente importancia de los sistemas
distribuidos multimedia:
provee acceso a musica, radio, canales de TV, video
conferencia para muchos usuarios.
Content delivery networks: Netflix, Youtube, etc.
D. Tendencias Cloud
El uso de los sistemas distribuidos como un utilitario o
commodity (Cloud Computing – Computacion como servicio)
Tarea (3personas)
 1.1 Proporcione cinco tipos de recursos de hardware y cinco tipos de datos o recursos de
software que puedan ser compartidos de manera útil. Da ejemplos de cómo se comparten en
la práctica en sistemas distribuidos
 1.2 ¿Cómo se sincronizan los relojes en dos computadoras que están conectadas por una red
local sin referencia a una fuente de tiempo externa? ¿Qué factores limitan la precisión del
procedimiento que describió? ¿Cómo se sincronizarían los relojes en una gran cantidad de
computadoras conectadas por Internet? Discuta la exactitud de ese procedimiento.
 1.3 Considere las estrategias de implementación para los juegos en línea multijugador
masivos. En particular, ¿qué ventajas ve al adoptar un enfoque de servidor único para
representar el estado del juego multijugador? ¿Qué problemas puede identificar y cómo se
pueden resolver?
 1.4 Un usuario llega a una estación de ferrocarril que nunca ha visitado antes, y lleva un PDA
que es capaz de establecer una red inalámbrica. Sugiera cómo se le puede proporcionar al
usuario información sobre los servicios y comodidades locales en esa estación, sin ingresar el
nombre o los atributos de la estación. ¿Qué desafíos técnicos deben superarse?
 1.5 ¿Comparar y contrastar la computación en la nube con una informática cliente-servidor
más tradicional? ¿Qué hay de novedoso sobre la computación en la nube como concepto?
 1.6 Use la World Wide Web como ejemplo para ilustrar el concepto de compartir recursos,
cliente y servidor. ¿Cuáles son las ventajas y desventajas de HTML, URL y HTTP como
tecnologías centrales para la búsqueda de información? ¿Alguna de estas tecnologías es
adecuada como base para la informática cliente-servidor en general?
 1.7 Un programa de servidor escrito en un idioma (por ejemplo, C ++) proporciona la
implementación de un objeto BLOB (Binary large object) al que deben acceder los clientes que
pueden escribirse en un idioma diferente (por ejemplo, Java). Las computadoras cliente y servidor
pueden tener hardware diferente, pero todas ellas están conectadas a internet. Describa los
problemas debidos a cada uno de los cinco aspectos de la heterogeneidad que deben resolverse
para que un objeto cliente pueda invocar un método en el objeto del servidor.
 1.8 Un sistema distribuido abierto permite agregar y acceder a nuevos servicios de recursos
compartidos, como el objeto BLOB en el Ejercicio 1.7, mediante una variedad de programas
cliente. Discutir en el contexto de este ejemplo, hasta qué punto las necesidades de apertura
difieren de las de la heterogeneidad.
 1.9 Suponga que las operaciones del objeto BLOB están separadas en dos categorías: operaciones
públicas que están disponibles para todos los usuarios y operaciones protegidas que están
disponibles solo para ciertos usuarios nombrados. Indique todos los problemas involucrados para
garantizar que solo los usuarios nombrados puedan usar una operación protegida. Suponiendo que
el acceso a una operación protegida proporciona información que no debe revelarse a todos los
usuarios, ¿qué otros problemas surgen?
 1.10 El servicio INFO gestiona un conjunto de recursos potencialmente muy grandes, a los que
pueden acceder los usuarios a través de Internet mediante una clave (un nombre de cadena).
Discuta un enfoque para el diseño de los nombres de los recursos que logre la pérdida mínima de
rendimiento a medida que aumente la cantidad de recursos en el servicio. Sugiera cómo se puede
implementar el servicio INFO para evitar cuellos de botella de rendimiento cuando la cantidad de
usuarios sea muy grande.
 1.11 Enumere los tres componentes principales del software que pueden fallar cuando un proceso
del cliente invoca un método en un objeto servidor, dando un ejemplo de falla en cada caso.
Sugiera cómo se pueden hacer los componentes para tolerar los errores de los demás.
 1.12 Un proceso de servidor mantiene un objeto de información compartido como el objeto
BLOB del ejercicio 1.7. Proporcione argumentos a favor y en contra de permitir que el servidor
ejecute las solicitudes del cliente al mismo tiempo. En el caso de que se ejecuten
simultáneamente, dé un ejemplo de posible "interferencia" que puede ocurrir entre las operaciones
de diferentes clientes. Sugiera cómo se puede prevenir tal interferencia.
 1.13 Un servicio es implementado por varios servidores. Explicar por qué los recursos pueden ser
transferidos entre ellos. ¿Sería satisfactorio que los clientes multicast todas las solicitudes al
grupo de servidores como una forma de lograr la transparencia de la movilidad para los clientes?
 1.14 Los recursos en la World Wide Web y otros servicios se nombran por URL. ¿Qué denotan las
iniciales URL? Dé ejemplos de tres tipos diferentes de recursos web que pueden nombrarse por
URL.
 1.15 Dar un ejemplo de una URL HTTP. Enumere los componentes principales de una URL
HTTP, indicando cómo se denotan sus límites e ilustre cada uno de su ejemplo. ¿En qué medida
es transparente la ubicación HTTP URL?

También podría gustarte