Sistema distribuido - Arcos

Anuncio
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
Descargar