Title: Sistemas Distribuidos: Presente y Futuro
1Sistemas Distribuidos Presente y Futuro
- M.C. Juan Carlos Olivares Rojas
- León, Guanajuato, México, 27 de Septiembre de 2007
2Agenda
Introducción
Definiciones básicas
Tendencias
Conclusiones
Investigación ITM
3Estado Actual de Cómputo
4ENIAC
5Supercomputadora
6Evolución de la Computación
- 50s-70s Una computadora múltiples usuarios
- 80s-90s Una computadora un usuario
- 2000s Un usuario múltiples computadoras
- Actualmente la información es totalmente
distribuida, aunque los datos centralizados se
siguen utilizando.
7Agenda
Introducción
Definiciones básicas
Tendencias
Conclusiones
Investigación ITM
8Qué 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)
9Arquitecturas 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
10Có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)
11Sistemas multiprocesadores
Tarjeta madre
Tarjeta madre
CPU 1
CPU n
CPU 2
CPU
N1
Nn
Memoria
Memoria
Modelo de n procesadores
Modelo de n núcleos
12Cómputo de Alto Desempeño
http//www.top500.org/ Blue Gene
13Sistemas 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.
14Sistemas Distribuidos
Cliente 1
Servidor
Servidor
Solicitud
. .
Cliente
Respuesta
Cliente n
Modelo Cliente/Servidor Tradicional
Modelo Cliente/Servidor Concurrente
Proxy en el lado cliente
Proxy en el lado servidor
Cliente
Cliente
Modelo Cliente/Servidor de n capas
15Sistemas 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.
16Sistemas 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.
17Sistemas Distribuidos
C2
C0 Coordinador
C1
C1
C2
Cn
Cn
P2P Simétrico
Cluster Asimétrico
Planificador
Planificador
Planificador
. . .
CPU Memoria Disco C1
CPU Memoria DISCO C2
CPU MEMORIA Disco Cn
Grid computing
18Evolución de Sistemas Distribuidos
Esquema básico de Arpanet en 1969 Amoeba
19Có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
20Paralelismo
A
P1
Homoparalelismo
B
P2
A
B
C
D
C
P3
D
P4
A
P1
B
P2
Hetereoparalelismo
A
B
C
D
C
P3
D
P4
21Paralelismo
- 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)
22Sistema 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
23Plan 9
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.
26Ventajas de los SD
- Compartir información y otros recursos.
- Economizar el rendimiento (procesamiento y
almacenamiento). - Crecimiento incremental.
- Alta disponibilidad
- Confiabilidad (tolerancia a fallos)
27Desventajas 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.
28Fallas en Sistemas Distribuidos
29Desventajas 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.
30Sincronización
31Desventaja 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).
32Técnicas de Especificación Formal
Red de Petri que representa la cena de 5
filósofos comensales
33Tecnologías Distribuidas
- Sockets (API Berkeley, WinSocks) C, Java, C,
etc. - RPC (Remote Procedure Call) C
- RMI (Remote Method Invocation) Java
- DCOM (Distributed Component Object Model)
Propietario de Microsoft
34Tecnologías Distribuidas
- CORBA (Common Object Request Broker
Architecture) C, C, Java, etc, - .NET Remoting C, C, J, etc.
- Servicios Web (SOA), XML (SOAP, WSDL, UDDI)
- Agentes móviles (JADE)
- Código Móvil (Applets, ActiveX)
35Agenda
Introducción
Definiciones básicas
Tendencias
Conclusiones
Investigación ITM
36Investigación
37Investigación
38Investigación
39Investigación
40Investigación
41Investigación
42Agenda
Introducción
Definiciones básicas
Tendencias
Conclusiones
Investigación ITM
43Pronóstico IDC 2007
- Virtualización
- Grid Computing
- Arquitectura orientada a servicios (SOA)
- Enterprise Information Management (EIM)
- Código abierto
- Acceso a la información
- Ajax
- Mashup Composite Model
- Computación Distribuida en el Ambiente (del
inglés, Pervasive Computing) - Recolección inteligente de datos.
44Pronóstico Gartner 2007
- Código abierto
- Virtualización
- Registro de servicios y repositorios
- Suites para la gestión de procesos de negocios
- Enterprise Information Management
- Cómputo ubicuo
- Acceso a la información
- Web 2.0 AJAX Rich Clients
- Web 2.0 - Mashup Composite Model
- Inteligencia colectiva y comunidades
45Otras Tendencias
- Web Semántica (Web 3.0?)
- WOA (Web Oriented Architectures).
- Hardware buses y redes de alta velocidad
(infiniband), ahorro energético. - Domótica.
46Web semántica
47Conclusiones
Á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
48Preguntas?
Email jcolivar_at_itmorelia.edu.mx MSN
juancarlosolivares_at_hotmail.com Web http//antare
s.itmorelia.edu.mx/jcolivar/