El documento presenta una introducción a los sistemas distribuidos, incluyendo definiciones, tendencias e investigación actual. Explica la evolución de la computación desde sistemas centralizados a distribuidos y define los componentes de un sistema distribuido. También describe diferentes arquitecturas como clientes-servidores, P2P, clusters y grids computing. Finalmente, discute pronósticos de tendencias tecnológicas e identifica a los sistemas distribuidos como un área de crecimiento.
6. Evolución de la Computación
• 50’s-70’s: “Una computadora múltiples usuarios”
• 80’s-90’s: “Una computadora un usuario”
• 2000’s: “Un usuario múltiples computadoras”
• Actualmente la información es totalmente
distribuida, aunque los datos centralizados se
siguen utilizando.
8. ¿Qué es un Sistema Distribuido?
• “Es una colección de computadoras independientes
que aparecen ante los usuarios del sistema como
una única computadora” (Principio de
transparencia)
• ¿Qué es un sistema?
– Componentes de Hardware (Procesadores, mecanismos
de interconexión)
– Componentes Software (programación de sistemas y
aplicaciones)
9. Arquitecturas de cómputo
• Taxonomía de Flynn:
– SISD (Single Instruction Single Data) Procesador único.
– SIMD (Single Instruction Multiple Data). Procesadores
vectoriales (multimedia)
– MISD (Multipe Instruction Single Data). No
implementada
– MIMD (Multiple Instruction Multiple Data). Cómputo
distribuido
10. Cómputo Distribuido
• La distribución del cómputo puede realizarse de
diversas formas de acuerdo a su grado de
acoplamiento en:
• Fuertemente acopladas: Multiprocesadores
(memoria compartida). UMA (Uniform Memory
Acces)
• Débilmente acopladas: Multicomputadoras
(memoria privada). NUMA (Non Uniform Memory
Access)
11. Tarjeta madre
Tarjeta madre
Sistemas multiprocesadores
CPU 1 CPU nCPU 2
Memoria
Modelo de n procesadores
CPU
N1 Nn
Memoria
Modelo de n núcleos
…
…
13. Sistemas multicomputadoras
• Están basados en el modelo cliente/servidor
• Este modelo se basa en un protocolo solicitud –
respuesta. El cliente envía una solicitud de cierto
servicio al servidor, el servidor realiza el trabajo y
regresa el resultado de la operación.
• La principal ventaja de este protocolo es su
sencillez, únicamente se necesita la ubicación del
servidor.
14. Sistemas Distribuidos
Cliente Servidor
Solicitud
Respuesta
Modelo Cliente/Servidor Tradicional
Cliente 1
Servidor
Modelo Cliente/Servidor Concurrente
Cliente
Proxy en
el lado
cliente
Modelo Cliente/Servidor de n capas
Cliente
Proxy en
el lado
servidor
Cliente n
.
.
15. Sistemas Distribuidos
• P2P (Peer to Peer) los procesos son totalmente
descentralizados, funcionan como clientes y servidores a la
vez, existen diversas arquitecturas.
• Cluster es una agrupación de computadoras
intercomunicadas entre sí a través de un nodo central y
cuyo objetivo es realizar una tarea específica.
• Grid computing es muy parecido a P2P y al cluster.
16. Sistemas Distribuidos
• Grid computing se parece al cluster en que
consisten en una asociación de computadoras con
la única diferencia de que no existe un nodo
centralizador. Está característica lo asemeja a P2P.
• La idea del grid es que el poder de cómputo
siempre esté presente a semejanza de la red
eléctrica.
• Esto a dado pie al software bajo demanda.
19. Cómputo paralelo
• ¿Es el cómputo paralelo un sistema distribuido?
• Sí y No. Depende de la implementación.
• Los objetivos de la programación en paralelo son:
• Reducir el tiempo de procesamiento utilizado por
un algoritmo convencional
• Reducir la complejidad del algoritmo
20. Paralelismo
A B C D
A
B
C
D
P1
P2
P3
P4
Homoparalelismo
A B C D
A
B
C
D
P1
P2
P3
P4
Hetereoparalelismo
21. Paralelismo
• El problema del paralelismo radica en que muchos
algoritmos no pueden paralelizarse (son seriales o
secuenciales).
• Existen dos tecnologías principales para realizar
paralelismo:
• PVM (Parallel Virtual Machine)
• MPI (Message Passing Interface)
22. Sistema de Red vs. Distribuido
• Un Sistema de Red es totalmente autónomo en su
administración (local) mientras que las decisiones
en un Sistema Distribuido son globales.
• La mejor forma de tener una aplicación distribuida
es a través del sistema operativo.
• Ejemplos de SOD: Amoeba, Mach, Chorus, Sprite,
Plan9
24. Áreas de los SD
• Redes de computadoras (Internet e intranet).
• Sistemas operativos distribuidos.
• Sistemas multimedia distribuidos.
• Cómputo paralelo.
• Bases de datos distribuidas.
25. Áreas de los SD
• Sistemas de tiempo real distribuidos.
• Cómputo Móvil y ubicuo.
• Comercio Electrónico.
• Sistemas Distribuidos Inteligentes.
26. Ventajas de los SD
• Compartir información y otros recursos.
• Economizar el rendimiento (procesamiento y
almacenamiento).
• Crecimiento incremental.
• Alta disponibilidad
• Confiabilidad (tolerancia a fallos)
27. Desventajas de los SD
• Administración más compleja (requerimientos de
mayores controles de procesamiento y acceso).
• Costos.
• Interconexión de componentes.
• Fallas de propagación.
29. Desventajas de los SD
• Localización, recuperación y coordinación de
recursos (sistema de nombre: DNS, JNDI).
• No se tiene disponibilidad de una memoria global y
un reloj global.
• Seriabilización (Marshalling).
• Se requiere de sincronización para actualizar el
estado del sistema.
30. D i f e r e n c ia s d e r e lo je s in t e r n o s e n u n a r e d
8 : 0 6
8 : 0 5 8 : 1 3
8 : 1 2
Sincronización
31. Desventaja de los SD
• Concurrencia.
• Seguridad.
• Tiempo de respuesta limitado debido a las
comunicaciones (ancho de banda).
• Se requiere más capacidad y mejores formas de
almacenamiento (NFS, Coda, GFS).
43. Pronóstico IDC 2007
1. Virtualización
2. Grid Computing
3. Arquitectura orientada a servicios (SOA)
4. Enterprise Information Management (EIM)
5. Código abierto
6. Acceso a la información
7. Ajax
8. Mashup Composite Model
9. Computación Distribuida en el Ambiente (del inglés,
Pervasive Computing)
10. Recolección inteligente de datos.
44. Pronóstico Gartner 2007
1. Código abierto
2. Virtualización
3. Registro de servicios y repositorios
4. Suites para la gestión de procesos de negocios
5. Enterprise Information Management
6. Cómputo ubicuo
7. Acceso a la información
8. Web 2.0 – AJAX Rich Clients
9. Web 2.0 - Mashup Composite Model
10. Inteligencia colectiva y comunidades
45. Otras Tendencias
• Web Semántica (¿Web 3.0?)
• WOA (Web Oriented Architectures).
• Hardware: buses y redes de alta velocidad
(infiniband), ahorro energético.
• Domótica.
47. Conclusiones
¿Área de mayor crecimiento?
Sistemas Distribuidos
¿Área de mayor demanda?
Sistemas Distribuidos
¿Área que ofrece mayores expectativas?
Sistemas Distribuidos
¿Área que hay que estudiar?
Sistemas Distribuidos
Aquí debemos platicar del contenido de cada sección. Iniciar con una breve introducción del tema
– Ley de Grosch (obsoleta):
Prestaciones = cto x (Precio)2
Hablar de cuantas supercomputadoras existen
Aquí debemos platicar del contenido de cada sección. Iniciar con una breve introducción del tema
La mayor problemática de los SDs es la gran heterogeneidad tanto en software y en especial en hardware, ya que se necesita de mucho esfuerzo para lograr la transparencia.
Modelo Tradicional se comparte el mismo bus de datos. Los micros deben sincronizarse para evitar cuellos de botella e interbloqueos.
Multinúcleos la sincronización se realiza de mejor manera. Se consume menos energía pero se disipa más calor.
El cliente realiza el front end de la aplicación, el servidor implementa el back end o la lógica del negocio
Generalmente están asociado al modelo cliente/servidor (c/s). Muchos servicios de Internet siguen este modelo: Web, e-mail, etc.
En el modelo c/s, el proceso cliente realiza peticiones de procesamiento al proceso servidor, realizando éste último el trabajo pesado.
Existen otros modelos como P2P (par a par), cluster y grid computing.
Son sistemas donde cada unidad de proceso es autónoma e independiente de las demás pero trabajan de manera conjunta.
La interconexión de unidades de proceso se hace a través de redes de computadora de preferencia de altas velocidades.
Este es el concepto más estandarizado de un SD.
Geometría redes paralelas. Son rectas que nunca se intersectan. Visualmente en infinito parecen estarlo.
Rectas paralelas comparten la misma pendientes
El objetivo es distinto. En un SD el objetivo es que muchos usuarios trabajen en forma conjunta y los sistemas paralelos cuya meta es lograr la máxima rapidez de un problema.
El procesamiento en paralelo implica tener dos o más procesadores trabajando en forma conjunta sobre el mismo problema, de manera que sea posible la reducción de su tiempo de solución.
El procesamiento en paralelo implica tener dos o más procesadores trabajando en forma conjunta sobre el mismo problema, de manera que sea posible la reducción de su tiempo de solución.
Homoparalelismo: dividir las tareas en varias cargas iguales,
A1, A2, A3, A4 A1
A2
A3
A4
Heteroparalelismo: dividir las tareas en partes iguales
AAA, B, CC, DDDD
Debido a que la tecnología de los SD aún está siendo explorada, no se tiene la experiencia suficiente en el diseño, implantación y uso del software distribuido y se debe contestar a preguntas tales como:
¿Qué tipos de sistemas operativos, lenguajes de programación y aplicaciones son los adecuados para estos sistemas?,
¿Cuánto deben saber los usuarios de la distribución?
Las redes de comunicación, pueden llegar a perder mensajes, latencia de las comunicaciones o saturación de mensajes.
Otra de las desventajas de los SD es la vulnerabilidad que puede sufrir la información que puede llegar a estar disponible para un gran número de usuarios del sistema.
Es la misma tecnología pero basada en estándares abiertos, XML y la Web
Aquí debemos platicar del contenido de cada sección. Iniciar con una breve introducción del tema
Aquí debemos platicar del contenido de cada sección. Iniciar con una breve introducción del tema
Redes alta velocidad
Buses infiniband
SD: hw y sw construcción
SOD: paln 9, plan b, amoeba, sprite, mach
P2P: bittorrent, ares, Marshalling
Virtualización
Arq. Computadoras
Tiempo Real
Casos de éxito
XML
Sabías que: la información de la Web se replica x veces
LA biblioteca más grande del mundo: 20 millones esa información se replica cada vez.