480 likes | 634 Views
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. Conclusiones. Investigación ITM. Estado Actual de Cómputo. ENIAC. Supercomputadora.
E N D
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 Conclusiones Investigación ITM
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 Conclusiones Investigació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)
Sistemas multiprocesadores Tarjeta madre Tarjeta madre CPU 1 CPU 2 CPU n … CPU N1 Nn … Memoria Memoria 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 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
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 softwarebajo demanda.
Sistemas 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
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 Homoparalelismo B P2 A B C D C P3 D P4 A P1 B P2 Hetereoparalelismo A B C D C P3 D P4
Paralelismo El problema del paralelismo radica en que muchos algoritmos no pueden paralelizarse (son seriales o secuenciales). Existen dos tecnologíasprincipales 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
Á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 Compartirinformació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.
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.
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 RemotingC#, 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 Conclusiones Investigación ITM
Agenda Introducción Definiciones básicas Tendencias Conclusiones Investigación ITM
Pronó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.
Pronó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
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.
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/