Está en la página 1de 48

CONTECSI 2007

Sistemas Distribuidos: Presente y


Futuro
M.C. Juan Carlos Olivares Rojas

León, Guanajuato, México, 27 de Septiembre de 2007


Agenda

Introducción Definiciones básicas

Investigación ITM Tendencias Conclusiones


Estado Actual de Cómputo
ENIAC
Supercomputadora
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.
Agenda

Introducción Definiciones básicas

Investigación ITM Tendencias Conclusiones


¿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)
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
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)
Sistemas multiprocesadores

CPU 1 CPU 2 … CPU n


N1 Nn

Memoria CPU

Tarjeta madre Memoria

Tarjeta madre

Modelo de n procesadores
Modelo de n núcleos
Cómputo de Alto Desempeño

http://www.top500.org/ Blue Gene


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.
Sistemas Distribuidos
Cliente 1
Solicitud .
Cliente Servidor
Servidor .
Respuesta
Cliente n

Modelo Cliente/Servidor Tradicional Modelo Cliente/Servidor Concurrente

Proxy en Proxy en
Cliente el lado el lado Cliente
cliente servidor

Modelo Cliente/Servidor de n capas


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.


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.


Sistemas Distribuidos
C2 C0
Coordinador

C1
C1 … Cn
C2
Cn
P2P Cluster
Simétrico Asimétrico

Planificador Planificador Planificador


CPU CPU . CPU
Grid computing Memoria Memoria . MEMORIA
Disco DISCO Disco
C1 C2 . Cn
Evolución de Sistemas Distribuidos

Esquema básico de Arpanet en 1969 Amoeba


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


Paralelismo
A P1

B P2 Homoparalelismo

A B C D
C P3

D P4

A P1

B P2
A B C D Hetereoparalelismo
C P3

D P4
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)


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
Plan 9
Áreas de los SD
• Redes de computadoras (Internet e intranet).

• Sistemas operativos distribuidos.

• Sistemas multimedia distribuidos.

• Cómputo paralelo.

• Bases de datos distribuidas.


Áreas de los SD
• Sistemas de tiempo real distribuidos.

• Cómputo Móvil y ubicuo.

• Comercio Electrónico.

• Sistemas Distribuidos Inteligentes.


Ventajas de los SD
• Compartir información y otros recursos.

• Economizar el rendimiento (procesamiento y


almacenamiento).

• Crecimiento incremental.

• Alta disponibilidad

• Confiabilidad (tolerancia a fallos)


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.
Fallas en Sistemas Distribuidos
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.
Sincronización

Diferencias de relojes internos en una red

8:06 8:12

8:05 8:13
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).
Técnicas de Especificación Formal

Red de Petri que representa la cena de 5 filósofos comensales


Tecnologí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
Tecnologí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)


Agenda

Introducción Definiciones básicas

Investigación ITM Tendencias Conclusiones


Investigación
Investigación
Investigación
Investigación
Investigación
Investigación
Agenda

Introducción Definiciones básicas

Investigación ITM Tendencias Conclusiones


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.
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
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.
Web semántica
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
¿Preguntas?
Email: jcolivar@itmorelia.edu.mx

MSN:
juancarlosolivares@hotmail.com

Web:
http://antares.itmorelia.edu.mx/~
jcolivar/

También podría gustarte