Tema 1 Introducción a los Sistemas Distribuidos Grupo ARCOS Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenido Evolución de la informática Concepto de sistema distribuido Ejemplos de aplicaciones distribuidas Ventajas e inconvenientes de los sistemas distribuidos Sistemas distribuidos vs. paralelos Principales desafíos de diseño Concepto de middleware Paradigmas de computación distribuida Plataformas hardware para sistemas distribuidos 2 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la Informática En los años 70: Mainframes centrales Interfaces de usuario poco amigables Aparecen las primeras redes. Internet 3 Sistemas de tiempo compartido Recursos centralizados Terminales simples ARPANET ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la Informática En los años 80: PCs y estaciones de trabajo Predominio de aplicaciones complejas ejecutadas localmente Interfaces amigables Redes de área local (LAN) Aparecen los primeros sistemas operativos distribuidos 4 Mach, Sprite, Chorus, ... ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la informática En los años 90: Despegue de las aplicaciones cliente/servidor Más descentralización Enorme difusión de Internet gracias a la web Nuevas necesidades y aplicaciones basadas en web 5 Aplicaciones ejecutadas localmente y en red Comercio electrónico Multimedia Sistemas de control Aplicaciones médicas Supercomputación en Internet ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la informática En los años 2000: Nuevos paradigmas de computación distribuida Grid computing Peer-to-Peer Computación ubicua Dispositivos móviles Aplicaciones para Internet basadas en Web Tendencia: todas las aplicaciones en red Red Aplicaciones 6 Puestos de trabajo ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Dispositivos de red en el futuro 7 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sensores y RFID 8 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la informática Infraestructura tradicional Clientes LAN Servidores 9 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la informática Infraestructura tradicional Consolidación de recursos Clientes LAN LAN Red de almacenamiento Servidores 10 Almacenamiento Compartido ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología La ley de Bell (1972): “aparecerá una nueva clase de computadoras (tecnología) cada 10 años” log (people per computer) año La ley de Moore (1970): 11 “el número de transistores por chip se doblará cada 24 meses” ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología Nº de transistores La ley de Moore: 12 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología Nº de transistores en procesadores Intel Doblar la densidad implica reducir las dimensiones de sus elementos en un 30% En 1971 el Intel 4004 tenía 2300 transistores con tamaños de 10 micrometros Hoy en día se consiguen chips con distancias de 45 nanometros Para cumplir la ley de Moore se necesita tecnología doblar el precio cada 4.4 años 13 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología Nº de transistores en procesadores Intel 14 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología Consumo de potencia en procesadores Intel 15 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos CPU/Memoria 16 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Problema con el aumento de la frecuencia de reloj Power Density (W/cm2) 10000 Rocket Nozzle 1000 Nuclear Reactor 100 8086 Hot Plate 10 4004 8008 8085 386 286 8080 1 1970 17 Sun’s Surface 1980 P6 Pentium® 486 1990 Year Source: Patrick Gelsinger, Intel 2000 2010 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Arquitecturas multicore 18 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución de la tecnología Almacenamiento. Precio por MB 19 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Infraestructura tradicional Sistema Operativo 20 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Máquinas Virtuales SO1 MV1 21 SO2 MV2 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sistema Distribuido Sistema compuesto por recursos de computación (hardware y software) físicamente distribuidos e interconectados a través de una red, que son capaces de colaborar con el fin de realizar una determinada tarea Red 22 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Conceptos previos Un programa es un conjunto de instrucciones Un proceso es un programa en ejecución Una red de computadores es un conjunto de computadores conectados por una red de interconexión Sistema distribuido Un conjunto de computadores (sin memoria ni reloj común) conectados por una red Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o más computadores que colaboran y comunican intercambiando mensajes. Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicación en un sistema distribuido, es decir, el intercambio de mensajes 23 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Otras definiciones “Un sistema distribuido es aquel en el que no puedes trabajar con tu máquina por el fallo de otra máquina que ni siquiera sabías que existía” -Leslie Lamport “Un sistema distribuido es aquel en el que los computadores localizados en una red comunican y coordinan sus acciones mediante paso de mensajes” -George Coulouris 24 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ejemplos: red de área local Workstations PC Red de área local Conexión al exterior 1s 25 Servidores de ficheros Otros servidores (impresión,...) ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ejemplo: Web http://www.uc3m.es Página Web navegador 26 www.uc3m.es ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ejemplos de aplicaciones y sistemas distribuidos Correo electrónico (IMAP, POP) Transferencia de ficheros (FTP) Servicios de News World Wide Web (WWW) Sistemas de control de tráfico aéreo Aplicaciones bancarias Comercio electrónico Aplicaciones multimedia (videoconferencias, vídeo bajo demanda , etc.) El ancho de banda en estas aplicaciones es un orden de magnitud mayor que en otras Requieren calidad de servicio (QoS) Aplicaciones médicas (transferencia de imágenes) 27 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ventajas que pueden ofrecer los SSDD Compartir recursos (HW, SW, datos) Acceso a recursos remotos. Ofrecen una buena relación coste/rendimiento Capacidad de crecimiento (escalabilidad) Tolerancia a fallos, disponibilidad Modelo cliente-servidor Modelo basado en objetos Replicación Concurrencia: servicio a múltiples usuarios simultáneamente Velocidad: capacidad global de procesamiento disponible para: 28 Ejecución paralela de una aplicación ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Desventajas de los sistemas distribuidos Interconexión Coste Fiabilidad, pérdida de mensajes Saturación Comunicaciones inseguras Software más complejo Potencia de cada nodo no adecuada 29 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sistemas distribuidos y paralelos Sistemas distribuidos Objetivo: compartir recursos y colaborar Ejemplo: Redes de computadores Sistemas paralelos Objetivo: Alto rendimiento (speedup) Alta productividad Ejemplos: Máquinas paralelas (arquitecturas dedicadas) 30 Multiprocesadores Multicomputadores Redes de estaciones de trabajo trabajando como un multicomputador (cluster) Grid Computing (www.gridcomputing.com) ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Arquitecturas paralelas P2 P1 C C P2 P1 Pn $ C C Pn $ network bus memory memory memory Memoria compartida P0 memory memory Memoria compartida distribuida NI P1 memory NI Pn ... NI memory interconnect Memoria distribuida 31 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Topologías de red Grid o malla Árbol Lineal 32 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sistemas Distribuidos Desafíos de diseño Heterogeneidad de los componentes Nombrado Comunicación y sincronización Rendimiento Concurrencia Capacidad de crecimiento Estructura de software Fiabilidad Calidad de servicio (QoS) Transparencia 33 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Heterogeneidad Heterogeneidad de los SSDD: 34 Es la variedad y diferencia de los siguientes componentes: Redes HW de computadores Sistemas operativos Lenguajes de programación Aplicaciones ARCOS @ UC3M 2010-2011 Sistemas Distribuidos ¿Cómo resolver la heterogeneidad? Empleo de sistemas abiertos (es la característica del sistema que determina si el sistema puede ser extendido y reimplementado) Especificaciones e interfaces de acceso públicas (ej. RFCs) Mecanismos de comunicación uniformes Se pueden construir sobre SW y HW heterogéneo Ejemplos de sistemas abiertos: 35 TCP/IP NFS CORBA (www.omg.org) Globus (www.globus.org) Web services ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Nombrado Los usuarios designan a los objetos mediante un nombre (ej. www.uc3m.es) Los programas designan a los objetos mediante un identificador (ej. 163.117.131.31) Resolver un nombre implica obtener el identificador a partir del nombre Objetivo importante: los nombres deben ser independientes de su localización Consideraciones de diseño a tener en cuenta: 36 El espacio de nombres (tamaño, estructura, jerarquía, ...) El servicio de nombres que realiza la resolución (ej. DNS) ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Comunicación y sincronización (C y S) Forma básica de C y S: paso de mensajes Mecanismos síncronos Mecanismos asíncronos Comunicación entre procesos: Las entidades que se comunican en distintas máquinas son procesos Primitivas básicas de comunicación: send receive Llamadas a procedimientos remotos Invocación de objetos remotos Comunicación en grupos 37 Multicast, broadcast Útil para el trabajo en grupo, localizar el objeto, tolerancia a fallos, mejorar el rendimiento (replicación), asegurar la consistencia ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Capacidad de crecimiento Número de hosts (milliones) Un sistema posee capacidad de crecimiento o escalabilidad si conserva su efectividad cuando se incrementa significativamente el número de recursos o usuarios. Ejemplo: crecimiento de Internet 38 140 120 100 80 60 40 20 0 1965 Web 1970 1975 1980 1985 1990 1995 2000 2005 2010 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Aspectos a considerar Para que un sistema con n usuarios sea escalable, la cantidad de recursos necesarios para soportarlo debería ser proporcional a n ó O(n) Empleo de algoritmos distribuidos Evitar cuellos de botella (bottleneck) en el sistema Algoritmos que usan estructuras jerárquicos mejor que lineales Algoritmos descentralizados Evitar el desbordamiento de los recursos SW 39 Ejemplo: 32 bits para las direcciones IP ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Estructura de software Sistema centralizado Estructura software típica de un sistema centralizado: Aplicaciones Lenguajes de programación Sistema operativo Hardware El sistema operativo (SO): Gestionar los recursos de hardware manera eficiente Ofrecer servicios a las aplicaciones para el acceso y la gestión de los recursos 40 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Estructura de software Sistema Distribuido Existen tres posibilidades para estructurar el software de un sistema distribuido Emplear sistemas operativos en red Utilizar un sistema operativo distribuido Utilizar middlewares o entornos distribuidos Lo importante es ofrecer un soporte para la programación de aplicaciones distribuidas de una manera fácil y transparente. 41 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sistema operativo en red (SOR) El usuario ve un conjunto de máquinas independientes No hay transparencia Se debe acceder de forma explícita a los recursos en otras máquinas Difíciles de utilizar para desarrollar aplicaciones distribuidas Aplicaciones Aplicaciones Lenguajes de programación Lenguajes de programación Sistema operativo Sistema operativo Hardware Hardware Red de interconexión 42 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Sistema operativo distribuido (SOD) Se comporta como un SO único: Hace creer a los usuarios que trabajan con un único sistema centralizado Distribución Transparencia Se construyen normalmente como micronúcleos que ofrecen servicios básicos de comunicación Restricción: todos los computadores deben ejecutar el mismo SOD Ejemplos: Mach, Amoeba, Chorus Aplicaciones Lenguajes de programación Sistema operativo distribuido Hardware Hardware Red de interconexión 43 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Middleware y entornos distribuidos Abstracción de programación que permite enmascarar la heterogeneidad de las redes subyacentes, HW, SO y LP Servicios y protocolos estandarizados: sistemas abiertos Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres, ...) Facilitan el desarrollo de aplicaciones distribuidas Independientes del HW y del SO subyacente Ejemplos: DCE, CORBA, DCOM, WebOS, Globus, .NET Aplicaciones Lenguajes de programación Middleware Sistema operativo Sistema operativo Hardware Hardware Red de interconexión 44 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Fiabilidad La probabilidad de que un sistema funcione o desarrolle cierta función, bajo condiciones fijadas y durante un período de tiempo Para obtener fiabilidad hay que garantizar: 45 Consistencia Seguridad Tratamiento de fallos ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Consistencia El problema de la consistencia (coherencia) surge cuando varios procesos acceden y actualizan datos de forma concurrente 46 Coherencia de las actualizaciones Coherencia de la replicación Coherencia de caches Coherencia ante fallos Relojes consistentes ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Tratamiento de fallos Generalmente, en los SSDD se pueden producir fallos parciales Objetivo de un sistema distribuido: disponibilidad Mide la proporción de tiempo que un sistema está disponible para su uso Técnicas para mejorar la disponibilidad: Tolerancia a fallos 47 Detección de fallos Enmascaramiento de fallos Recuperación ante fallos Redundancia ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Seguridad Los recursos de información disponibles en los SSDD pueden tener un valor importante para los usuarios (ej. información bancaria) La seguridad tiene tres componentes: 1. Confidencialidad: 2. Integridad 3. protección contra la alteración o corrupción de los datos Disponibilidad: protección contra el descubrimiento de datos por individuos no autorizados protección contra la interferencia en los procedimientos de acceso a los recursos Otros problemas de seguridad 48 Ataques de denegación de servicio Seguridad del código móvil ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Calidad de servicio (QoS) Es la habilidad de satisfacer los requerimientos de tiempo cuando se transmiten y procesan flujos de datos multimedia en tiempo real Rendimiento de un sistema: Tiempo de respuesta adecuado Latencias Tasa de transferencia de datos Velocidad en la cual los datos pueden ser transferidos entre dos computadoras de la red, usualmente medido en bits por segundo (bps) El rendimiento viene determinado por: 49 La red de comunicación Los servicios de comunicación empleados El sistema operativo El soporte para la programación de sistemas distribuidos ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Transparencia Ocultación al usuario de los componentes que conforman un sistema distribuido: 50 Acceso: acceso a recursos remotos y locales de igual forma Posición: acceso a los recursos sin necesidad de conocer su situación Concurrencia: acceso concurrente a recursos compartidos sin interferencias Replicación: acceso a recursos replicados sin conocimiento de que lo son Fallos: mantenimiento del servicio en presencia de fallos. Migración: permite que los recursos y objetos se muevan sin afectar a la operación de los programas. Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Paradigmas de computación distribuida Paso de mensajes Cliente-servidor Llamadas a procedimientos remotos Peer-to-peer Objetos distribuidos Agentes móviles Servicios en red Aplicaciones colaborativas (groupware) 51 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Paso de mensajes Paradigma fundamental para aplicaciones distribuidas Un proceso emisor envía un mensaje de solicitud El mensaje llega al proceso receptor, el cual procesa la solicitud y devuelve un mensaje en respuesta Esta respuesta puede originar posteriores solicitudes por parte del proceso emisor Proceso A Proceso B m1 m2 Mensaje m3 Paso de mensajes 52 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Paso de mensajes Operaciones básicas: Modelos de comunicación: Enviar (send) Recibir (receive) Orientadas a conexión Operaciones para conectar y desconectar No orientadas a conexión Ejemplo: sockets 53 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Cliente-Servidor Asigna roles diferentes a los procesos que comunican: cliente y servidor Servidor: Ofrece un servicio Elemento pasivo: espera la llegada de peticiones Cliente: Solicita el servicio Elemento activo: invoca peticiones Servidor ... 54 Cliente 1 Cliente 2 Petición de servicio Proceso cliente Proceso servidor Servicio ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Cliente-Servidor Abstracción eficiente para facilitar los servicios de red La asignación de roles asimétricos simplifica la sincronización Implementación mediante: Sockets Llamada a procedimientos remotos (RPC) Invocación de métodos remotos (RMI, CORBA, …). Paradigma principalmente adecuado para servicios centralizados Ejemplos: servicios de Internet (HTTP, FTP, DNS, … ) 55 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Llamadas a procedimientos remotos Idea: hacer que el software distribuido se programe igual que una aplicación no distribuida Conceptualmente igual que la invocación de un procedimiento local Cualquier programa funcion(1,2) Proceso B Proceso A proc1(arg1, arg2) proc2(arg1) funcion(arg1,arg2) …. return; 56 proc3(arg1,arg2,arg3) ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Invocación de métodos remotos Modelo equivalente a las llamadas a procedimientos remotos Proceso invoca un método local de otro proceso Ejemplos: CORBA, RMI de Java, Microsoft COM, DCOM, Java Beans, .NET Remoting Proceso 2 Proceso 1 RMI método1 método2 Objeto remoto 57 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Peer-to-Peer Los procesos participantes en la comunicación asumen el mismo rol: Cliente y servidor Los recursos y los servicios son intercambiados entre los computadores Ejemplo: 58 Proceso 1 Napster → intercambio de ficheros Respuesta Respuesta Solicitud Solicitud Proceso 2 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Agentes móviles Un agente móvil es un programa u objeto transportable El agente se lanza desde un determinado computador origen y “viaja” de manera autónoma de un ordenador a otro En cada salto de la ruta, el agente realiza las funciones necesarias para completar su tarea No intercambian mensajes Problema de seguridad: código móvil ejecutable podría ser malicioso Computador 2 Computador 1 Computador 3 Computador 4 59 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Servicios en red Los procesos solicitantes acceden un servicio a través de una referencia que le proporciona el servidor de directorio Para publicar los servicios, éstos deben registrarse en el servicio de directorio Transparencia de localización Ejemplo: SOAP Servicio de directorio 1 2 Solicitante del servicio 60 3 Objeto de servicio ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Aplicaciones colaborativas (groupware) Varios procesos participan en una sesión de trabajo colaborativo Comunicación unicast, multicast y broadcast Dos formas: Basado en mensajes: usan mensajes para enviar datos a todos o parte del grupo Basado en pizarra: usan pizarras o tablones virtuales que permiten leer o escribir datos sobre un espacio compartido mensaje mensaje mensaje groupware basado en mensajes 61 groupware basado en pizarra ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ejemplo de aplicación de Internet: la Web Desarrollado en el CERN por Tim Berners-Lee en 1992 La Web es el servicio estrella de Internet Permite acceder a la información disponible en Internet de manera sencilla La información se almacena en forma de páginas web y se accede utilizando el protocolo HTTP Estas páginas web se almacenan en servidores web www.w3.org http://www.uc3m.es Página Web navegador 62 www.uc3m.es ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Componentes del servicio Web Lenguaje de etiquetado de hipertexto (HTML, Hipertext Markup Language) Localizadores uniformes de recursos (URL, Uniform Resource Locator) Lenguaje para especificar el contenido y diseño de las páginas Web Protocolo://Servidor[:puerto][/caminoDeLaPag][?argumentos] Ejemplo: http://www.uc3m.es/index.html Protocolo HTTP (HiperText Transfer Protocol) 63 Protocolo cliente-servidor ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Evolución 10,000,000 1,000,000 Internet Hosts 100,000 10,000 1,000 WWW Servers 100 10 4 1 1969 64 1970 1975 1980 1985 1990 1995 2000 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Arquitecturas paralelas MPP (Massively parallel processing) SMP (Symmetric multiprocessing) Multiprocesador de memoria compartida CC-NUMA (Cache-Coherent Non-Uniform Memory Access) Multiprocesador de memoria distribuida Multiprocesador con una memoria de acceso no uniforme Clusters 65 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Tendencias Constelaciones ; 38; 8% MPP; 98; 20% Clusters; 364; 72% Junio de 2006 66 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Clusters Tipo de sistema distribuido/paralelo que consta de un conjunto de computadores conectados para trabajar de forma cooperativa como un único recurso integrado Aparece como un único sistema a los usuarios y aplicaciones Ofrece un modo efectivo en coste para obtener unas buenas prestaciones Cada nodo (o computador): 67 Un sistema independiente (procesador o multiprocesador) con E/S, memoria, almacenamiento y SO propios Puede residir físicamente en un rack o conectarse mediante una LAN ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Arquitectura de un cluster Parallel Applications Parallel Applications Parallel Applications Sequential Applications Sequential Applications Sequential Applications Parallel Programming Environment Cluster Middleware (Single System Image and Availability Infrastructure) PC/Workstation PC/Workstation PC/Workstation PC/Workstation Communications Communications Communications Communications Software Software Software Software Network Interface Hardware Network Interface Hardware Network Interface Hardware Network Interface Hardware Cluster Interconnection Network/Switch Buyya 68 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Grid Computing Ian Foster y Carl Kesselman (1999) plantean un sistema distribuido como una analogía con el suministro eléctrico: El usuario debe tener acceso a los recursos computacionales en condiciones similares a las que tiene para utilizar la energía eléctrica: desde cualquier sitio (geográficamente dispersos) con una interfaz uniforme pudiendo confiar en su funcionamiento (fiables,robustos) a un coste asequible Este concepto se basa en: 69 Agregar Compartir ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Grid Computing Un sistema grid es una colección de recursos distribuidos conectados a través de Internet y que residen en dominios de administración diferentes Objetivo: compartir y agregar recursos Una aplicación grid es una aplicación que ejecuta en un entorno grid Un middleware grid es el software que permite la construcción de sistemas y aplicaciones grid 70 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Grid Computing WAN 71 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Computación voluntaria voluntarios Internet Proyectos 72 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Potencialidad de la computación voluntaria SETI@home: 500.000 CPUs, 65 TeraFLOPs 1000 Millones de PCs conectados a Internet in 2010, 50% de uso privado Con 100M: ~ 100 PetaFLOPs ~ 1 Exabyte (10^18) de almacenamiento public computing Potencia CPU almacenamiento Grid computing cluster computing Supercomputing coste 73 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Middlewares para computación voluntaria The Berkeley Open Infrastructure for Network Computing (BOINC) Bayanihan: general-purpose web-based volunteer computing systems using Java Xtremweb: the Open Source Platform for Desktop Grids Xgrid: Simple solution for distributed computing 74 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Arquitectura de BOINC Proyecto BOINC Identificado por una URL Incluye múltiples aplicaciones BBDD con información sobre aplicaciones/participantes/trabajos/resultados Servidor de tareas Servidor de datos 75 Envía trabajos a los clientes y recibe los resultados Descarga los datos sobre los clientes ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Servidor BOINC voluntarios BBDD BOINC Interfaces web Cliente BOINC Servidor de tareas BBDD de aplicaciones Servidor de datos ficheros 76 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Ejemplos de proyectos basados en BOINC Einstein@home Rosetta@home CERN; accelerator simulation Africa@home U.C. Berkeley; SETI LHC@home U. Washington; protein study SETI@home LIGO; gravitational wave astronomy STI, U. of Geneva; malaria epidemiology IBM World Community Grid 77 ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Redes de sensores Una red de sensores (el inglés, Wireless Sensor Network) es un sistema distribuido donde parte de sus nodos (nodos sensores) son capaces de interactuar con el entorno físico Interactuar: lectura/actuación sobre el medio Wireless Sensor and Actuator Networks (WSAN) Nodos sensores son dispositivos electrónicos, autónomos, distribuidos geográficamente alrededor de un fenómeno para monitorizarlo, con capacidades de: sensing, cómputo, almacenamiento y comunicación inalámbrica ARCOS @ UC3M 2010-2011 Sistemas Distribuidos Tema 1 Introducción a los Sistemas Distribuidos Grupo ARCOS Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de Madrid