Introducción a la Programación M.C. Juan Carlos Olivares Rojas.
Sistemas Distribuidos: Presente y Futuro M.C. Juan Carlos Olivares Rojas CONTECSI 2007 León,...
-
Upload
rainerio-pintado -
Category
Documents
-
view
219 -
download
6
Transcript of Sistemas Distribuidos: Presente y Futuro M.C. Juan Carlos Olivares Rojas CONTECSI 2007 León,...
Sistemas Distribuidos: Presente y Futuro
M.C. Juan Carlos Olivares Rojas
CONTECSI 2007
León, Guanajuato, México, 27 de Septiembre de 2007
Agenda
Introducción Definiciones básicas
Tendencias ConclusionesInvestigación ITM
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
Tendencias ConclusionesInvestigación ITM
¿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)
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
…
…
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 Servidor
Solicitud
Respuesta
Modelo Cliente/Servidor Tradicional
Cliente 1
Servidor
Modelo Cliente/Servidor Concurrente
ClienteProxy en el lado cliente
Modelo Cliente/Servidor de n capas
ClienteProxy en el lado
servidor
Cliente n
.
.
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
C1
C2
CnP2P
Simétrico
C0Coordinador
C1
C2
Cn…
Cluster
Asimétrico
Planificador
CPUMemoria
DiscoC1
Planificador
CPUMemoriaDISCO
C2
Planificador
CPUMEMORIA
DiscoCn
.
.
.
Grid computing
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 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
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.
Diferencias de relojes internos en una red
8:06
8:05 8:13
8:12
Sincronización
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
Tendencias ConclusionesInvestigación ITM
Investigación
Investigación
Investigación
Investigación
Investigación
Investigación
Agenda
Introducción Definiciones básicas
Tendencias ConclusionesInvestigación ITM
Pronóstico IDC 2007
1. Virtualización2. Grid Computing3. Arquitectura orientada a servicios (SOA)4. Enterprise Information Management (EIM)5. Código abierto6. Acceso a la información7. Ajax8. Mashup Composite Model9. Computación Distribuida en el Ambiente (del inglés,
Pervasive Computing)10. Recolección inteligente de datos.
Pronóstico Gartner 2007
1. Código abierto2. Virtualización 3. Registro de servicios y repositorios4. Suites para la gestión de procesos de negocios5. Enterprise Information Management6. Cómputo ubicuo7. Acceso a la información 8. Web 2.0 – AJAX Rich Clients 9. Web 2.0 - Mashup Composite Model10. 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: [email protected]
MSN: [email protected]
Web:
http://antares.itmorelia.edu.mx/~jcolivar/