introducción a los sistemas distribuidos · 2009-08-31 · curso: sistemas distribuidos i int...
TRANSCRIPT
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 1
Introducción a los sistemas distribuidos
Roberto Gómez Cárdenash //h i /
Dr. Roberto Gómez CárdenasLámina 1
http://homepage.cem.itesm.mx/[email protected]
Hacer Con-ciencia
Alguien pidió una explicación de la teoría de Einstein. El profesorAlguien pidió una explicación de la teoría de Einstein. El profesorcon mucho gusto le habló de tensores y con mucho gusto le habló de tensores y geódesicasgeódesicas tetradimensionalestetradimensionales..
No he entendido una solo palabraNo he entendido una solo palabra dijódijó el estudiante estupefactoel estudiante estupefacto-- No he entendido una solo palabraNo he entendido una solo palabra -- dijódijó el estudiante estupefacto.el estudiante estupefacto.
El profesor reflexionó un momento, y con menos entusiasmo le da unaEl profesor reflexionó un momento, y con menos entusiasmo le da unaexplicación menos técnica, conservando algunas explicación menos técnica, conservando algunas geódesicasgeódesicas, pero, perohaciendo intervenir aviadores y disparos de revolver.haciendo intervenir aviadores y disparos de revolver.
Ya entiendo casi todoYa entiendo casi todo -- dijo el estudiante con bastante alegría dijo el estudiante con bastante alegría -- pero pero hay algo que casi no entiendo, esas geodésicas, esas coordenadas …hay algo que casi no entiendo, esas geodésicas, esas coordenadas …
Dr. Roberto Gómez CárdenasLámina 2 2
De De primidoprimido, el profesor piensa un largo rato y se dedica exclusivamente a , el profesor piensa un largo rato y se dedica exclusivamente a aviadores que fuman mientras viajan a la velocidad de la luz, jefes de estaciónaviadores que fuman mientras viajan a la velocidad de la luz, jefes de estaciónque disparan un revólver con la mano derecha y verifican tiempos en unque disparan un revólver con la mano derecha y verifican tiempos en uncronómetro que tienen en la mano izquierda, trenes y campanas.cronómetro que tienen en la mano izquierda, trenes y campanas.
-- Ahora sí entiendo la relatividadAhora sí entiendo la relatividad -- exclamó el estudiante con alegría.exclamó el estudiante con alegría.-- Sí Sí -- le le respondiorespondio amargamente el profesor, amargamente el profesor, -- pero ahora ya NO ES la relatividadpero ahora ya NO ES la relatividad
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 2
Desarrollos conceptuales1960s 1970s 1980s
Id
experiencia requerimientos experiencia requerimientosCiclos
Tiempo Compartido
Gráficas
Redes
Computadoras como
herramientaspersonales
Estaciones detrabajo
Cliente/Servidor
Redes Locales
Sistemasabiertos,
escalables,tolerantes
a fallas
Ideasclave
Dr. Roberto Gómez CárdenasLámina 3
Redes
Institucionespilares
Xerox AltoLisp machineApple IISmalltalkAloha net
MIT CTSSCambridge TSSTenex, UnixSketchpadARPANET
Xerox DoradoSun 1, Apollo DomainXerox: DFS, GrapevineBerkeley UnixNewcastle ConnectionCambridge DCSEthernet, Cambridge Ring
Sistema V - StanfordSun NFSMIT: X-11, ArgusCMU: Accent, AndrewMachAmoebaChrous
Dr. Roberto Gómez CárdenasLámina 4
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 3
Antecedentes
• Dos grandes avances tecnológicos en los 80’s– Desarrollo de microprocesadores– Desarrollo de microprocesadores
• De una máquina de 10 millones de dólares que ejecuta una instrucción por minuto, se pasa a máquinas de 1000 dólares que ejecutan 10 millones de instrucciones por seg..
– Invención de redes• Posibilidad de conectar uno o más computadoras entre sí
– Pequeña observación:
Dr. Roberto Gómez CárdenasLámina 5
Pequeña observación:• Roll Royce de 100 dólares con un billón de kilómetros por litro• Tamaño manual para abrir puerta: 200 pgs.
¿Qué es un sistema distribuido?
Una colección de dispositivos independientes que es vista
como un solo sistema independiente
Dr. Roberto Gómez CárdenasLámina 6
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 4
Objetivos de un sistema distribuido
• Recursos accesiblesT i• Transparencia
• Apertura• Escalabilidad
Dr. Roberto Gómez CárdenasLámina 7
Recursos computacionales
Dr. Roberto Gómez CárdenasLámina 8
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 5
Hay de recursos, a recursos
Dr. Roberto Gómez CárdenasLámina 9
Dr. Roberto Gómez CárdenasLámina 10
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 6
Transparencia
Esconder el hecho de que los procesos y los recursos se encuentran
físicamente distribuidos entre varios dispositivos
Dr. Roberto Gómez CárdenasLámina 11
Tipos de transparencia
Transparencia DescripciónAcceso Esconder diferencias en la representación de datos y como el
didrecurso es accedidoUbicación Esconder el lugar donde se encuentra un recursoMigración Esconder que un recurso pudo moverse a otra ubicaciónReubicación Esconder que un recurso puede moverse a otra ubicación
mientras se encuentre en usoReplicación Esconder que un recurso es replicado.Concurrencia Esconder que un recurso puede ser compartido por varios
Dr. Roberto Gómez CárdenasLámina 12
q p p pusuarios
Falla Esconder y recuperarse de la falla de un recurso
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 7
Apertura
Sistema que ofrece servicios de acuerdo a reglas estandarizadas
que describen la sintaxis y que describen la sintaxis y semánticas de dichos servicios.
Dr. Roberto Gómez CárdenasLámina 13
Objetivo apertura
• Que sea posible intercambiar componentes de software y hardware, p ydando a un usuario mayor posibilidad de escoger productos de acuerdo a sus necesidades y fomentando la competencia entre proveedores, que deben mejorar sus servicios para ganar clientes (ciudadanos).
• Es la plataforma adecuada para el
Dr. Roberto Gómez CárdenasLámina 14
desarrollo de aplicaciones distribuidas, porque se pueden combinar las ventajas de diferentes máquinas y sistemas operacionales.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 8
Los IDL
• En sistemas distribuidos los servicios generalmente son especificados a través degeneralmente son especificados a través de interfaces, que son descritas a través de una Interface Definition Language.
• Las IDLs solo capturan la sintaxis de los servicios.
Dr. Roberto Gómez CárdenasLámina 15
• Especifican los nombres y funciones, tipos de parámetros, valores de regreso y excepciones que se pueden alcanzar, que se encuentran disponibles.
Ejemplo IDL en CORBA
Estructura dedatos
Excepción
Dr. Roberto Gómez CárdenasLámina 16
Interfaz
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 9
Características interfaces
• Completas• Neutrales• Extensibles
• Interoperabilidad• Portabilidad
Dr. Roberto Gómez CárdenasLámina 17
Escalabilidad
Capacidad del sistema para t i jmantener, si no mejorar, su
rendimiento medio conforme aumenta o disminuye el número de
clientes o recursos.
Dr. Roberto Gómez CárdenasLámina 18
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 10
Dimensiones de escalamiento
• Con respecto al tamaño– Añadir más usuarios y recursos al
sistema
Desafortunadamente un sistema que escala en cualquiera de estas
dimensiones casi siempre exhibe l d d l d sistema.
• Con respecto a la geografía– Usuarios y recursos pueden
encontrarse separadas por una gran distancia geográfica.
• Con respecto a su
alguna perdida en el desempeño cuando el sistema escala hacia arriba.
Dr. Roberto Gómez CárdenasLámina 19
Con respecto a su administración– Puede continuar a ser fácil de
administrar aún si este atraviesa diferentes organizaciones administrativas independientes.
Escalamiento horizontal y vertical
Dr. Roberto Gómez CárdenasLámina 20
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 11
Escalamiento horizontal y vertical
Dr. Roberto Gómez CárdenasLámina 21
Ejemplos de limitantes escalabilidad en el tamaño en sistemas centralizados
Concepto Problema EjemploServicios centralizados
Cuello de botella Un solo servidor para todos los usuarios.
Datos Capacidad de los medios de Un solo directorio telefónico
Dr. Roberto Gómez CárdenasLámina 22
centralizados almacenamiento y saturación de las líneas de comunicación
para todos los usuarios.
Algoritmos centralizados
Transporte de toda la información de entrada y salida.
Llevar a cabo ruteo basadoen información completa.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 12
Características algoritmos distribuidos
• Ausencia de un estado global perceptible por un observadorun observador.
• Los elementos del sistema distribuido hacen decisiones basados en su información local.
• La falla en una máquina no acaba con el algoritmo.
Dr. Roberto Gómez CárdenasLámina 23
algoritmo.• No se asume la existencia de un reloj global.• Comunicación en base a mensajes
Problemas de escalar en la dimensión geográfica
• El problema de escalar de sistemas distribuidos que fueron diseñados para redes LAN es que estánfueron diseñados para redes LAN es que están basados en comunicación síncrona: cliente bloqueado hasta que la respuesta llega– Distancia pequeña entre las máquinas que se comunican:
respuesta entregada en microsegundos.– Distancia más grande: respuesta en milisegundos
Dr. Roberto Gómez CárdenasLámina 24
• Comunicación en redes LAN es confiable y de tipo broadcast– Localizar un servicio a nivel LAN es diferente que a
nivel Internet
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 13
Problemas escalamiento dimensión administración
• Manejo de conflictos en la políticas de los diferentes dominios con respecto a uso de recursos (y pago)dominios con respecto a uso de recursos (y pago), administración y seguridad.
• Si un sistema distribuido se expande en otro domino, se cuenta con dos tipos de medidas de seguridad a tomar en cuenta– Sistema distribuido se tiene que proteger de ataques del
Dr. Roberto Gómez CárdenasLámina 25
Sistema distribuido se tiene que proteger de ataques del nuevo dominio.
– El nuevo dominio se tiene que proteger de ataques del sistema distribuido
Técnicas de escalamiento
• Existen tres técnicas
1. Esconder las latencias de la comunicación
2. Distribución
Dr. Roberto Gómez CárdenasLámina 26
3. Replicación
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 14
Escondiendo las latencias
• Intentar evitar la espera de respuestas a peticiones remotas de serviciospeticiones remotas de servicios.
• Una alternativa: uso de comunicaciones asíncronas.
• Otra alternativa: reducción de la comunicación entre las dos partes, pasándole
Dr. Roberto Gómez CárdenasLámina 27
comunicación entre las dos partes, pasándole trabajo al cliente. – Ejemplo: acceder bases de datos usando formas.
Verificación de llenado formas en el cliente o en el servidor
Dr. Roberto Gómez CárdenasLámina 28
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 15
Distribución
• Tomar un componente, dividirlo en pequeñas partes y después esparcir estas partes a través de todo ely después esparcir estas partes a través de todo el sistema.
• Ejemplo1: DNS– Espacio nombres organizado jerárquicamente en un
árbol de dominios, los cuales se dividen en zonas– Nombres en cada zona son manejadas por un servidor
Dr. Roberto Gómez CárdenasLámina 29
j p
• Ejemplo 2: WWW– Varios usuarios lo ven como un sistema de información
único, donde cada documento tiene su propio nombre en forma de URL
Ejemplo DNS
• Encontrando el nombre: nl.vu.cs.flits– Primero se busca en Z1, que regresa servidor de Z2…Primero se busca en Z1, que regresa servidor de Z2…
Dr. Roberto Gómez CárdenasLámina 30
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 16
Replicar
• Replicar componentes a través del sistema distribuidodistribuido.
• Incrementa disponibilidad y ayuda en el balanceo de cargas entre componentes para un mejor desempeño.
• Dos puntos a tomar en cuenta
Dr. Roberto Gómez CárdenasLámina 31
Dos puntos a tomar en cuenta– Cache: forma especial de replicación– Consistencia: todas las replicas deben contar con
el mismo contenido.
Distribución vs Replicación
• DistribuciónP bt l t t lid d d l i f ió– Para obtener la totalidad de la información se tiene que consultar a todo el mundo
• Replicación– Asegurar la coherencia mutua de las copias a
I = (x1 + x2 + ... xi ... + xn)
Dr. Roberto Gómez CárdenasLámina 32
g ptodo instante las copias físicas xi tengan el mismo valor x
x1 = x2 = ... xi ... = xn = x
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 17
Ejemplo distribución
x1 x2
Pierre 500 Sam 500
Dr. Roberto Gómez CárdenasLámina 33
x3
Juan 900
Ejemplo replicación
Pi 500
x1x2
Pierre 500Sam 700Juan 900
Pierre 500Sam 700Juan 900
Dr. Roberto Gómez CárdenasLámina 34
x3
Pierre 500Sam 700Juan 900
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 18
Errores comunes de falsas presunciones
• La red es confiableL d• La red es segura
• La red es homogenea• La topología no cambia• La latencia es cero
Dr. Roberto Gómez CárdenasLámina 35
• El ancho de banda es infinito• El costo del transporte es cero• Solo hay un administrador.
Tipos de sistemas distribuidos
Sistemas distribuidosd t
Cluster computing
Supercomputadoras
Grid computing
Sistemas Distribuidos
de computo
Sistemas distribuidosde información
Grid computing
Computo cooperativo
Sistemas de procesamiento de transacciones
EAI: Enterprise Application Integration
Dr. Roberto Gómez CárdenasLámina 36
Sistemas distribuidosubicuos
Computo en la nube
Sistemas caseros
Sistemas de cuidado de la salud
Redes de sensores
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 19
Sistemas distribuidos de computo
• Usados para tareas de computo de alto desempeñodesempeño.
• En esta categoría se pueden mencionar:– Supercomputadoras– Cluster computing– Grid computing
Dr. Roberto Gómez CárdenasLámina 37
Grid computing– Computo cooperativo
¿De que se trata?
• El objetivo es solucionar un problema proporcionando pequeñas partes del problema a varias unidades de cálculo para solucionarlos y después combinar las soluciones parciales para encontrar una solución del problema.
Dr. Roberto Gómez CárdenasLámina 38
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 20
Computo distribuido vs supercomputadora
• Supercomputadora C j t d d f t t– Conjunto de procesadores fuertemente acoplados.
– Soporte de algoritmos inter-procesadores.– Generalmente con un propósito en específico.– Alto costo
Dr. Roberto Gómez CárdenasLámina 39
• Computo distribuidos– Acoplamiento débil– Costo variable– Diferentes opciones en software
Lista de supercomputadoras más rápidas
Dr. Roberto Gómez CárdenasLámina 40
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 21
Los clusters
• Conjunto de recursos de hardware reunidos para llevar ahardware reunidos para llevar a cabo una tarea en común.
• Características– Mejor rendimiento.– Disponibilidad.
Dr. Roberto Gómez CárdenasLámina 41
p– Menor costo a una
supercomputadora.– Alta disponibilidad
Ejemplo arquitectura de un sistema cluster
Aplicación deadministración
Librería funcionesparalelas
Sistema OperativoLocal
Red de acceso remoto Red alta velocidad
Red estándar
Nodo Maestro
Dr. Roberto Gómez CárdenasLámina 42
Sistema OperativoLocal
Componente aplicación paralela
Sistema OperativoLocal
Componente aplicación paralela
Sistema OperativoLocal
Componente aplicación paralela
Nodo Computadora Nodo Computadora Nodo Computadora
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 22
Diferencia clusters vs supercomputadoras
• EscalamientoDi ibilid d• Disponibilidad
• Administración sistema
Dr. Roberto Gómez CárdenasLámina 43
Un perroUn conjunto de perrosUn perro multícabezas
Grid computing
• Grid es un una infraestructura de software yhardware para coordinar el proceso de compartirp p precursos y resolver problemas en organizacionesvirtuales dinámicas.
Dr. Roberto Gómez CárdenasLámina 44
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 23
Capas de la arquitectura de un sistema grid
Aplicaciones
Capa Colectiva
Capa Conectividad Capa Recursos
Dr. Roberto Gómez CárdenasLámina 45
Capa Fabricante
Computo voluntario
• Cómputo en el cual la gente (voluntarios) otorgan recursos computacionales a uno o varios proyectosrecursos computacionales a uno o varios proyectos. – Computo Distribuido.– Medio de almacenamiento.
• Características:– Los voluntarios son miembros del público general que
Dr. Roberto Gómez CárdenasLámina 46
Los voluntarios son miembros del público general que tienes su computadora conectada a Internet.
– Los proyectos generalmente son de tipo académico y de investigación científica (SETI@home, LHC@home, etc).
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 24
¿Y cuál es el problema?
• ¿Cómo los comunico?Có l i i ?• ¿Cómo los sincronizo?
• No todos los algoritmos se pueden paralelizar.
Dr. Roberto Gómez CárdenasLámina 47
Paralelización de instrucciones básicas
• Ejemplo: la formula del “chicharronero”X= ( b + (b ^ 2 4 * a * c) ^ 0 5) / ( 2 * a )X= (- b + (b ^ 2 - 4 * a * c) ^ 0.5) / ( 2 * a )
(1) t1 := b ^ 2(2) t2 := 4 * a(3) t2 := t2 * c(4) t1 := t1 - t2 (5) t1 := t1 ^ 0 5
(1) t1 := -b (2) t2 := b ^ 2(3) t3 := 4 * a(4) t4 := 2 * a(5) t5 := t3 * c
Dr. Roberto Gómez CárdenasLámina 48
(5) t1 := t1 0.5(6) t1 := -b + t1(7) t2 := 2 * a (8) t1 := t1 / t2
( )(6) t5 := t2 - t5(7) t5 := t5 ^ 0.5(8) t5 := t1 + t5(9) t5 := t5 / t4
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 25
Gráfica dependencia
t1:= -b
t2:= b^2 t3:=4 * a
Dr. Roberto Gómez CárdenasLámina 49
t4:=2*at5 := t3 * c
t5 := t2 - t5
t5 := t5 ^0.5t5 := t1 + t5
t5 := t5 / t4
Paralelismo implicito vs explicito
Programador Programador
Compiladorparalelizador
Programa fuente escrito enlenguaje secuencial C, fortran
Lisp o Pascal
Código fuente escrito en versión paralela de C, fortran
Lisp o Pascal
Compilador
lism
o Im
plíci
to
lism
o E
xplíc
ito
Dr. Roberto Gómez CárdenasLámina 50
Código objetoparalelo
Ejecución
Código objetoparalelo
Ejecución
Para
leli
Para
lel
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 26
Desarrollo aplicaciones distribuidas
• Memoria compartidaP d j• Paso de mensajes
• RPC• Objetos distribuidos
– Paso de mensajesRMI
Dr. Roberto Gómez CárdenasLámina 51
– RMI
Memoria compartida
• No es el caso de sistemas distribuidos, aplica a lo que es computadoras paralelasa lo que es computadoras paralelas.
• Procesadores comparten una zona de memoria.
• Comunicación y sincronización se llevan a cabo a través de esta zona.
Dr. Roberto Gómez CárdenasLámina 52
cabo a través de esta zona.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 27
Paso mensajes
• Procesadores se envían mensajes entre ellos.• Una opción: sockets• Una opción: sockets
Dr. Roberto Gómez CárdenasLámina 53
RPC
• Enmascarar el envío mensajes• Cliente llama función definida en servidor• Cliente llama función definida en servidor
Dr. Roberto Gómez CárdenasLámina 54
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 28
Vayamos más arriba
• PVMP ll l Vi t l M hi– Parallel Virtual Machine
• MPI– Message Passing Interface
Dr. Roberto Gómez CárdenasLámina 55
PVM
• Parallel Virtual Machine• Herramienta que permite crear aplicacionesHerramienta que permite crear aplicaciones
paralelas y distribuidas. • Funciona sobre una colección heterogénea de
computadoras corriendo Unix en una o más redes. • Comunicación: paradigma de paso de mensajes.• Se basa en el concepto de Máquina Paralela Virtual
Dr. Roberto Gómez CárdenasLámina 56
p q• La portabilidad prima sobre la potencia• Tolerancia a fallas• 1989 Oak Ridge National Laboratory• http://www.csm.ornl.gov/pvm/
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 29
Esquema general PVM
“Ejecución de aplicaciones paralelas distribuidas en ordenadores heterogéneos”
maestro
esclavo1 esclavo3esclavo2 esclavo4
• libpvm3.a:d
Dr. Roberto Gómez CárdenasLámina 57Cada uno con su dirIP
M E1 E2 E3 E4pvm_send,pvm_recv,-------------
Hello Word: Maestro
#include <stdio.h>#include <stdlib.h>#include "pvm3.h"int main (int argc, char* argv[] ){
int i, mytid, *tids, nprocs;nprocs=atoi(argv[1]); if(nprocs<1)nprocs=1;
mytid=pvm_mytid();tids=malloc(sizeof(int)*nprocs);i=pvm spawn("hello worker" (char**)0
Dr. Roberto Gómez CárdenasLámina 58
i=pvm_spawn( hello_worker ,(char )0, PvmTaskDefault,"",nprocs,tids);
printf("hello, world! My id is %x \n",mytid);pvm_exit();free(tids);return 0;
}
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 30
Hello Word: esclavo
#include <stdio.h>#include "pvm3.h"
int main(int argc, int argv[]){int mytid;char buff[100];mytid=pvm_mytid();gethostname(buff 100);
Dr. Roberto Gómez CárdenasLámina 59
gethostname(buff,100);printf("Hello world from %s!
My id is %x\n",buff,mytid);pvm_exit();return 0;
}
MPI
• Message Passing Inferface• Data de 1993Data de 1993• Diseñado para un desempeño alto tanto en máquinas paralelas como
en clusters de estaciones de trabajo.• La especificación detalla las funciones que se pueden utilizar, no el
modo como se compilan y lanzan-ejecutan los programas, lo cual puede variar de una implementación a otra.Si i d l d l SPMD l i ibi á li ió
Dr. Roberto Gómez CárdenasLámina 60
• Siguiendo el modelo SPMD, el usuario escribirá su aplicación como un proceso secuencial del que se lanzarán varias instancias que cooperan entre sí.
• http://www.mcs.anl.gov/research/projects/mpi/
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 31
Ejemplo MPI: Hello world
#include <stdio.h>#include <mpi.h>#include <mpi.h>
int main (int argc, char *argv[ ]){
int rank, size,
MPI_Init (&argc, &argv); /* starts MPI */ MPI_Comm_rank (MPI_COMM_WORLD, &rank);
i ( i )
Dr. Roberto Gómez CárdenasLámina 61
MPI_Comm_size (MPI_COMM_WORLD, &size); printf( "Hello world from process %d of %d\n",
rank, size );MPI_Finalize();return 0;
}
Plataformas de desarrollo
• Plataformas de desarrollo de aplicaciones distribuidasdistribuidas.
• Varias de ellas son de código abierto.• Varían en el sistema operativo y los
lenguajes que soportan.
Dr. Roberto Gómez CárdenasLámina 62
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 32
Alchemi
• Reposa sobre .NET• Instalación simple basada en instaladores windows• Instalación simple basada en instaladores windows.• Máquinas puede estar en una LAN o en Internet.• Máquinas puede encontrarse detrás de firewalls o
servidores NAT• Solo tiempo muerto de CPU de las máquinas en la
id d l li i d l i
Dr. Roberto Gómez CárdenasLámina 63
grid es usado, las aplicaciones de los usuairos no son afectadas.
• Modelo de programación orientado a objetos• http://www.gridbus.org/~alchemi/
H2O
• Plataforma middleware para construir y desarrollar aplicaciones distribuidasaplicaciones distribuidas.
• Basada en Java• Componentes pueden comunicarse via RMI
(síncronos y asíncronos) y un modelo de publicación/subscripción.
• Posible seleccionar entre diferentes protocolos de
Dr. Roberto Gómez CárdenasLámina 64
• Posible seleccionar entre diferentes protocolos de mensajería– JRMP, SOAP, RPC
• http://harness2.org
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 33
Lenguajes grid
• El desarrollo de aplicaciones grid esta basado en el uso de toolkits y API’s quebasado en el uso de toolkits y API s que permiten integrar funcionalidad distribuida a un programa en otro lenguaje de programación como Java, C o alguna de la plataforma .NET.
Dr. Roberto Gómez CárdenasLámina 65
• Estos API’s encapsulan funcionalidad como llamadas al sistema y envío de trabajado a los nodos y los proporcionan como métodos o bindings.
Simple Grid Protocol
• Es un paquete freeware de computo grid.• Permite a los usuarios en una red TCP/IP o en• Permite a los usuarios en una red TCP/IP o en
Internet ejecutar programas en su computadora que utiliza recursos de computadoras inactivas en la red o Internet.– Programas compuestos de tareas locales y portables
• Desarrollado y mantenido por Brendan Kosowski
Dr. Roberto Gómez CárdenasLámina 66
• Desarrollado y mantenido por Brendan Kosowski.• Basado en CLISP (Common LISP)• Plataformas Linux & BSD• http://grid.bmk.com.au/
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 34
Globus toolkit
• Toolkit de open source usado para construir gridscomputacionalescomputacionales.
• Las herramientas cubren mediciones de seguridad, localización de recursos, manejo de recursos, comunicaciones y más.
• Desarrollado y proporcionado por Globus Alliance.• Incluye varios estándares
Dr. Roberto Gómez CárdenasLámina 67
• Incluye varios estándares– OGSA, OGSI, WSRF, JSDL, DRMAA, GSI, etc
• Programación en Java y XML• http://www.globus.org/toolkit/
Comodity Grid (CoG) Kits
• Permite a usuarios Grid, desarrolladores de aplicaciones Grid y administradores de Grid utilizar, programar yGrid y administradores de Grid utilizar, programar y administrar Grids desde un marco de nivel alto.
• Proporciona un mapeo entre Java y el Globus Toolkit, extendiendo el usro de Globus al permitir el uso de características avanzadas de Java para programación Grid.
Dr. Roberto Gómez CárdenasLámina 68
• Se cuenta con herramientas automáticas para soportar código Fortran como objetos Phyton
• Soporta Java y Python.• http://wiki.cogkit.org/wiki/Main_Page
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 35
BOINC
• Berkeley Open Infrastructure for Network Computing• Permite la computación distribuida aprovechando laPermite la computación distribuida aprovechando la
capacidad de computo no utilizada por los usuarios de computadoras personales.
• Desarrollado inicialmente para soportar el proyecto SETI@home.
• Arquitectura: Cliente-Servidor conectados con RPC
Dr. Roberto Gómez CárdenasLámina 69
• Arquitectura: Cliente-Servidor, conectados con RPC• Plataformas: Mac, Windows o Linux• Estadísticas uso: http://www.allprojectstats.com/• http://boinc.berkeley.edu/
Sistemas distribuidos de información
• Organizaciones confrontadas con una gran variedad de aplicaciones de red, pero para lasvariedad de aplicaciones de red, pero para las cuales resulta muy difícil inter-operar.
• Integración aplicaciones bajo dos enfoques:– Servidores corriendo aplicaciones accesibles a
programas remotos conocidos como clientes. V i li li dif i i d f
Dr. Roberto Gómez CárdenasLámina 70
• Varios clientes realizan diferentes peticiones de forma concurrente
• Transacciones distribuidas
– Permitir que las aplicaciones se comuniquen entre ellas de forma directa: EAI
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 36
Sistemas procesamiento transacciones
• Aplicaciones Bases de Datos• Sistemas que usan transacciones requieren q q
primitivas especiales que deben ser proporcionadas por el sistema distribuido o por el lenguaje.
• Ejemplos primitivas
Primitiva DescripciónBEGIN TRANSACTION Marcar el inicio de una transacción
Dr. Roberto Gómez CárdenasLámina 71
BEGIN_TRANSACTION Marcar el inicio de una transacciónEND_TRANSACTION Terminar transacción e intentar completar estaABORT_TRANSACTION Matar la transacción y restablecer los antiguos
valoresREAD Leer datos de un archivo, o tablaWRITE Escribir datos a un archivo o tabla
Propiedades transacciones: ACID
• Atomicidad– Desde el punto de vista externo la transacción es indivisible.
• Consistencia– Una transacción T transforma un estado consistente de la base de datos en
otro estado consistente, aunque T no tiene por qué preservar la consistencia en todos los puntos intermedios de su ejecución.
• Aisladas (Isolated)– Transacciones concurrentes no deben interferir entre ellas.
l li i d d i b l i
Dr. Roberto Gómez CárdenasLámina 72
– Asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.
• Durables– Una vez que la transacción es completada (commits), los cambios son
permanentes.– Ninguna falla después de completada puede deshacer los resultados.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 37
Transacciones anidadas
• Construidas a partir de un número de sub-transacciones.
• Transacción de alto nivel puede crear hijos que corren en paralelo uno con otro en máquinas diferentes, para ganar desempeño o simplificar programación.
• Detalle a cuidar– Transacción empieza sub-transacciones.
Dr. Roberto Gómez CárdenasLámina 73
p– Una sub-transacción completa y se lo hace notar al padre.– El padre aborta, re-estableciendo el sistema a un estado
anterior al del inicio de la transacción.– Los resultados de la sub-transacción nunca serán deshechos.
Ejemplo transacción anidada
Substransacción Substransacción
Transacción anidada
Begin_transaction Reservación
Base datos aerolínea Base datos hotel
Dos bases de datos diferentes (independientes)
. . .
Begin_transaction Vuelo
. . .
end. {Vuelo}
. . .
Begin_transaction Hotel
Dr. Roberto Gómez CárdenasLámina 74
. . .
end.
. . .
end
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 38
Transaction Processing Monitor
• También conocido como TP monitor.• Su tarea principal es permitir que una aplicación acceda p p p q p
a múltiples servidores/bases de datos, proporcionando un modelo de programación transaccional.
Peticiones
Servidor
P ti ió
Petición
Respuesta
Dr. Roberto Gómez CárdenasLámina 75
Aplicación del cliente
Monitor TP
Respuesta
Servidor
Servidor
Petición
Respuesta
Petición
Respuesta
Transacciones distribuidas
• Transacción es distribuida entre n procesos• Cada proceso debe decidir si completa (commit) o p p ( )
aborta la transacción• Una transacción debe completar en todos los sitios
o abortar en todos los sitios.
Dr. Roberto Gómez CárdenasLámina 76
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 39
Ejemplo
• Transferencia dinero de un banco A a un banco Bbanco B
• Debitar en A, acreditar en B y decirle al cliente que todo es correcto.
• Necesario que ambos lo hagan o que ninguno lo haga.
Dr. Roberto Gómez CárdenasLámina 77
lo haga.• Nunca que solo uno lo haga.
– Preferible dejar todo como estaba antes, como si nada hubiera pasado.
Una implementación “naïve”
• ComponentesCli t B A B B di d d– Cliente, Banco A, Banco B y coordinador de transacciones TC
• Cliente envía petición transacción a TC.• TC informa a A y B que lleven a cabo
operaciones de debito y crédito
Dr. Roberto Gómez CárdenasLámina 78
p y• A y B responde “ok” a TC• TC responde “ok” a cliente.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 40
¿Qué puede salir mal?
• No hay suficiente dinero en la cuenta de AL l b B i• La cuenta en el banco B ya no existe o es incorrecta.
• La comunicación a B se rompe.• A o B crash
TC h t l í d j
Dr. Roberto Gómez CárdenasLámina 79
• TC crash entre el envío de mensajes.
¿Qué se desea?
• Si A completa, que B no aborte.Si A b B l• Si A aborta, que B no complete.
• A o B decidirán entre abortar o completar.
Dr. Roberto Gómez CárdenasLámina 80
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 41
Propiedades de un “completado” atómico
1. Todos los participantes involucrados en la decisión alcanzan la misma decisióndecisión alcanzan la misma decisión.
2. Si cualquier participante decide completar, entonces todos los participantes deben votar SI.
3. Si todos los participantes votan SI y no ninguna falla ocurre, entonces todos los participantes deciden completar
Dr. Roberto Gómez CárdenasLámina 81
deciden completar4. Cada participante decide una sola vez (una
decisión no es reversible).
Two-Phase Commit Protocol(2PC)
• Protocolo distribuido que permite a todos los nodos de un sistema distribuido ponerse denodos de un sistema distribuido ponerse de acuerdo para completar o abortar una transacción.
• Elementos protocolo– Uno de los procesos actúa como coordinador– Los otros se conocen como cohorts
Dr. Roberto Gómez CárdenasLámina 82
• Las dos fases del protocolo son– Fase de petición de completar– Fase de completar
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 42
Fase 1: Petición de completar
1. El coordinador envía un mensaje consulta para commit a todos los participantes.
2. Los participantes ejecutan la transacción hasta el punto donde ellos serán preguntados para realizar commit. – Pueden escribir una entrada a su log undo (log de deshacer)
y una entrada a su log redo(log de rehacer).3 C d i i d j d i
Dr. Roberto Gómez CárdenasLámina 83
3. Cada participante responde con un mensaje acuerdo si la transacción tuvo éxito, o un mensaje abortar si falló la transacción.
4. El Coordinador espera hasta que tenga un mensaje de cada participante.
Fase 1 del 2PC
Dr. Roberto Gómez CárdenasLámina 84
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 43
Fase 2: completar (éxito)
• Coordinador recibió un mensaje acuerdo de todos los participantes durante la fase de petición de commit:1. El coordinador envía un mensaje commit a todos los
participantes.2. Cada participante completa la operación, y libera todos
los bloqueos y recursos mantenidos durante la transacción.
3 Cada participante envía un reconocimiento(ack) al
Dr. Roberto Gómez CárdenasLámina 85
3. Cada participante envía un reconocimiento(ack) al coordinador.
4. El coordinador completa la transacción cuando ha recibido todos los reconocimientos.
Fase 2 completar (fracaso)
• Si algún participante envió un mensaje abortar durante la fase de petición de commit:durante la fase de petición de commit:1. El coordinador envía un mensaje rollback a todos los
participantes.2. Cada participante deshace la transacción usando el log
undo (log de deshacer), y libera los recursos y bloqueos mantenidos durante la transacción.
3 C d i i í i i ( k) l
Dr. Roberto Gómez CárdenasLámina 86
3. Cada participante envía un reconocimiento (ack) al coordinador.
4. El Coordinador completa la transacción cuando han sido recibidos los reconocimientos
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 44
Fase 2 del 2PC
Dr. Roberto Gómez CárdenasLámina 87
Enterprise Application Integration
• A medida que las aplicaciones son separadas de las bases de datos más evidente se hace lade las bases de datos, más evidente se hace la necesidad de facilidades para integrar aplicaciones independiente de sus bases de datos.
• Los componentes de las aplicaciones deben
Dr. Roberto Gómez CárdenasLámina 88
p ppoder comunicarse entre ellos y no necesariamente a través del modelo de petición/respuesta.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 45
Middleware
Capa de software intermedio entre dos entidades. Es la capa de software que nos
permiten gestionar los mecanismos de comunicaciones.
Dr. Roberto Gómez CárdenasLámina 89
Middleware como sistema distribuido
Computadora 1 Computadora 2 Computadora 3 Computadora 4
Aplicación A Aplicación C
Capa del sistema distribuido (middleware)
Aplicación B
Dr. Roberto Gómez CárdenasLámina 90
S.O. local 1 S.O. local 2 S.O. local 3 S.O. local 4
p ( )
Red
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 46
Middleware de comunicación
Aplicación del
cliente
Aplicación del
clientecliente
Middleware de comunicación
Aplicación del l d d l
Aplicación del l d d l
Aplicación del l d d l
cliente
Dr. Roberto Gómez CárdenasLámina 91
lado delservidor
lado delservidor
lado delservidor
Opciones middleware de comunicación
• Necesidad de comunicación entre aplicaciones lleva a diferentes modelos de middleware delleva a diferentes modelos de middleware de comunicación.– RPC
• Remote Procedure Call– RMI
Remote Method In ocation
Dr. Roberto Gómez CárdenasLámina 92
• Remote Method Invocation– Message Oriented Middleware (MOM)
• Aplicaciones envían mensajes a los puntos de contacto• Mensajes descritos por un subject.• Sistemas de tipo publish/subscribe
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 47
El modelo Publish/Subscribe
Dr. Roberto Gómez CárdenasLámina 93
El modelo Point-to-Point
• Modelo de mensajería tradicional
Dr. Roberto Gómez CárdenasLámina 94
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 48
Sistemas distribuidos ubicuos
• Dispositivos móviles y empotrados • Pequeños con batería móviles y que cuenten con• Pequeños, con batería, móviles y que cuenten con
una conexión inalámbrica.• Este tipo de sistemas son parte del ambiente que
nos rodea.• En algunos casos los dispositivos pueden ser
configuradas por sus dueños pero de otra forma
Dr. Roberto Gómez CárdenasLámina 95
configuradas por sus dueños, pero de otra forma ellos necesitan descubrir su ambiente e introducirse en él lo mejor posible.
Requerimientos
• Percibir cambios contextuales– Dispositivo debe estar consciente de que el ambiente puede cambiar.– Por ejemplo: red no disponible en el caso de un usuario que se mueve
entre estaciones
• Fomentar la configuración ad-hoc– Varios dispositivos serán usados de diferentes formas por diferentes
usuarios.– Facilidad para configurar las aplicaciones que corren en el dispositivo
de forma automática o por el usuario
Dr. Roberto Gómez CárdenasLámina 96
de forma automática o por el usuario.
• Reconocer el compartir información como default– Dispositivos se integran a la red para acceder o proporcionar
información.– Contar con los medios para leer, escribir, almacenar, administrar y
compartir información.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 49
Ejemplos redes ubicuoas
• Sistemas caseros.
• Sistemas de cuidado de la salud.
• Redes de sensores.
Dr. Roberto Gómez CárdenasLámina 97
Sistemas caseros
• Una o más computadoras personales TVs equipospersonales, TVs, equipos de audio y video, dispositivos de juego, teléfonos, PDAs.
• Algunos retos
Dr. Roberto Gómez CárdenasLámina 98
g– Auto administración– Auto configuración– Espacios personales
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 50
Home Entertainment Network
Dr. Roberto Gómez CárdenasLámina 99
Auto config. y auto admon: Estándar UPnP
• UPnP: Universal Plug and PlayDi i i b i d f á i• Dispositivos obtienen de forma automática direcciones IP, pueden descubrirse entre ellos, etc.
• A resolver:– ¿Cómo se puede actualizar el firmware y software
Dr. Roberto Gómez CárdenasLámina 100
¿Cómo se puede actualizar el firmware y software de los dispositivos sin intervención manual?
– ¿Cómo asegurarse de que la actualización no interfiere con la compatibilidad con otros dispositivos?
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 51
Espacios personales
• Sistemas caseros consisten de dispositivos compartidos y personalescompartidos y personales.
• Datos en estos sistemas cuentan con restricciones para compartirse.
• Ejemplo– Parte del espacio personal de Alicia puede consistir de su
agenda fotos familiares un diario música y videos etc
Dr. Roberto Gómez CárdenasLámina 101
agenda, fotos familiares, un diario, música y videos, etc.– Esto debe almacenarse de tal forma que sean accesibles
para cuando ella lo considere apropiado.– Parte de este espacio personal puede ser temporalmente
accesible a otros, p.e. agenda para citas.
Sistema electrónicos de cuidado de salud
• Sistemas relacionados con el cuidado de la salud de las personas.
• Dispositivos para monitorear la salud de las personas y solicitar ayuda de forma automática en caso necesario.
• Dispositivos con sensores organizados dentro de una BAN (Body Area Network)
• El sistema debe estorbar lo menos posible al usuario.
Dr. Roberto Gómez CárdenasLámina 102
El sistema debe estorbar lo menos posible al usuario.• El sistema debe funcionar mientras la persona se
mueve sin cables atados a dispositivos no móviles.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 52
Arquitecturas
1. Un hub central es parte de la red BAN y colecta los datos conforme se necesitancolecta los datos conforme se necesitan.
– De tiempo en tiempo los datos son enviados a un dispositivo de almacenamiento más grande
2. La BAN esta “atada” a una red externa, a
Dr. Roberto Gómez CárdenasLámina 103
,través de una conexión wireless, que recibe los datos de los sensores.
Esquema de las dos arquitecturas
Red del área del cuerpo Red del área del cuerpo
Sensor Tilt
PDA
Sensoresmovimiento
SensorECG
GPRS/UMTS
Dr. Roberto Gómez CárdenasLámina 104
Transmisormovimiento
AlmacenamientoexternoTilt Sensor: Sensor de inclinación
ECG Sensor: Sensor electrocardiograma
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 53
Aspectos a tomar en cuenta
• ¿Dónde y como se va a almacenar los datos de monitoreo?
• ¿Cómo se puede prevenir perdida de datos cruciales?• ¿Qué infraestructura es necesaria para generar y
propagar alertas?• ¿Cómo se puede proporcionar retroalimentación en
línea?
Dr. Roberto Gómez CárdenasLámina 105
línea?• ¿Cómo se puede garantizar la robustez del sistema de
monitoreo?• ¿Cuáles son los aspectos de seguridad a considerar y
como se pueden definir las políticas correctas?
Redes de sensores
• Consiste de decenas a centenas o miles de nodos pequeños con un dispositivo sensorial.
• La mayor parte de los dispositivos usan comunicación inalámbrica y los nodos usan baterías.
Dr. Roberto Gómez CárdenasLámina 106
• Limitación en recursos, capacidad de comunicación y energía hacen que la eficiencia sea un punto clave a tomar en cuanta en su diseño.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 54
Redes sensoriales y sistemas distribuidos
• Redes sensoriales pueden ser vistas como una base datos distribuidascomo una base datos distribuidas– Redes usadas para medir y supervisar
aplicaciones. – Operador extrae información de la
red, o parte de esta, a través de queries• Operaciones de agregación
Dr. Roberto Gómez CárdenasLámina 107
– Una operación de agregación calcula un valor único a partir de una colección de valores.
– Redes sensores: aggregation queries
Sistemas SCADA
• Supervisory Control and Data Acquisition
• Consisten primordialmente de cinco componentes principales: – una computadora maestra, – una terminal remota, – periféricos para la comunicación,
Dr. Roberto Gómez CárdenasLámina 108
– software de aplicación y – trasductores.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 55
Organización redes sensoriales
• Para organizar una red de sensores como una base de datos distribuida existen dos formasbase de datos distribuida, existen dos formas de hacerlo:– Sensores no llevan a cabo ningún cálculo, solo
envían información a una base de datos centralizada ubicada en el sitio del operador.
Dr. Roberto Gómez CárdenasLámina 109
– Sensores envían información a sensores relevantes, estos calculan una respuesta y el operador agrega las respuestas recibidas.
Esquema organización redes de sensores
Sitio del Operador
Red de Sensores
Datos del sensor sonenviados directamenteal operador
Red de Sensores
Dr. Roberto Gómez CárdenasLámina 110
Sitio del Operador
Los sensores soloenvían respuestas
Petición
Cada sensor puede procesar y almacenar datos
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 56
Desventajas arquitecturas
• La primera arquitectura requiere envío información a través de la red con elinformación a través de la red, con el desperdicio de recursos y energía de la red.
• En la segunda, los sensores relevantes aportaran menos información.
Dr. Roberto Gómez CárdenasLámina 111
aportaran menos información.
• Solución: In-network data processing.
In-network data processing
• Procesamiento puede hacerse de varias formashacerse de varias formas.– Enviar query a todos los
procesadores a través de un árbol que abarque todos los nodos y cuya raíz sea el iniciador
Dr. Roberto Gómez CárdenasLámina 112
iniciador.– Agregaciones se hacen
donde dos o más ramas de un árbol se unen.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 57
Arquitecturas vs In-network data processing
Dr. Roberto Gómez CárdenasLámina 113
Problemas in-network data processing
• ¿Cómo se configura (dinámicamente) un árbol eficiente en una red sensorial?árbol eficiente en una red sensorial?
• ¿Cómo se lleva a cabo la agregación de resultados?– ¿Puede ser contralada?
Dr. Roberto Gómez CárdenasLámina 114
¿Puede ser contralada?
• ¿Qué pasa si el enlace de red falla?
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 58
Tiny DB
• Interface de base de datos declarativa para redes de sensores inalámbricas.p– Interfaz tipo SQL
• Nodo intermediario colecta y agrega los resultados de sus hijos, junto con lo que ha recolectado y lo envía a la raíz.
• Para dar eficiencia, los queries abarcan un periodo de tiempo que permite la
Dr. Roberto Gómez CárdenasLámina 115
u pe odo de t e po que pe te acalendarización de operaciones, de tal forma que los recursos de red y energía sean aprovechados de forma óptima.
• ¿Queries iniciados en diferentes puntos?
Computo en la nube
Cloud computing
Dr. Roberto Gómez CárdenasLámina 116
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 59
Cloud computing
• Computación en nube• Definición NIST (Draft del 6 1 09)• Definición NIST (Draft del 6-1-09)
– Es un modelo para habilitar acceso a un conjunto de recursos informáticos configurables (p.e. redes, servidores, almacenamiento, aplicaciones y servicios) que puede ser aprovisionados y liberados rápidamente con un mínimo esfuerzo o interacción con el proveedor de servicio
Dr. Roberto Gómez CárdenasLámina 117
de servicio.• La nube debe promover disponibilidad y esta
compuesta de cinco características esenciales, tres modelos de entrega y cuatro modelos de implantación.
Características esenciales
• On demand self-serviceUbi i k• Ubiquitous network access
• Location independent resource pooling• Rapid elasticity• Measured Service
Dr. Roberto Gómez CárdenasLámina 118
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 60
On-demand self-service
• Consumidor puede unilateralmente aprovisionarse de recursos computacionales, como tiempo de servicio y almacenamiento en red, de forma automática conforme lo necesite sin requerir interacción humana con cada proveedor de servicio
Dr. Roberto Gómez CárdenasLámina 119
servicio.• El consumidor pay-as-you-go y
solo usa lo que necesita, todo manejado por un browser, una aplicación o un API
Acceso ubíquo a la red
• Los recursos se encuentran disponiblesencuentran disponibles en la red y son accedidos a través de mecanismos que promueven el uso de
l t f
Dr. Roberto Gómez CárdenasLámina 120
plataformas hetereogeneassimples.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 61
Poleo de recursos independiente de su ubicación
• El proveedor de recursos usa un modelo de atención concurrente, con diferentes recursos físicos y virtuales dinámicamente asignados y reasignados de acuerdo a la demanda del consumidor.
• Consumidor no controla o no l bi ió t d l
Dr. Roberto Gómez CárdenasLámina 121
conoce la ubicación exacta de los recursos proporcionados, pero puede especificar una ubiuación en un nivel de abstracción alto (país, estado o datacenter).
Elasticidad rápida
• Los recursos son provistos rápida y elásticamente pararápida y elásticamente para escalar de forma inmediata tanto hacia arriba como hacia abajo.
• Para el consumidor, los di ibl
Dr. Roberto Gómez CárdenasLámina 122
recursos disponibles para su uso aparecen como infinitos y pueden ser adquiridos en cualquier cantidad y tiempo.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 62
Servicio a la medida
• De forma automática se controlan y optimizan los recursos locales
d f id dusados recursos ofrecidos de acuerdo al tipo de servicio (p.e.almacenamiento, procesamiento, ancho de banda y cuentas activas usuarios).
• El uso de los recursos puede ser
Dr. Roberto Gómez CárdenasLámina 123
• El uso de los recursos puede ser monitoreado, controlado y reportado proporcionando transparencia del recurso consumido tanto para el proveedor como para el consumidor .
Modelos de entrega
• Cloud Software as a Service (SaaS). – Uso de aplicaciones corriendo en la nube, accesibles desde
varios clientes a través de interfaces “delgadas”.
• Cloud Platform as a Service (PaaS). – Desarrollar dentro de la nube aplicaciones usando lenguajes
de programación y herramientas soportadas por el proveedor.• Cloud Infrastructure as a Service (IaaS).
Dr. Roberto Gómez CárdenasLámina 124
– Proporciona procesamiento, almacenamiento, redes y otros recursos computacionales donde el consumidor ´puede desarrollar y correr cualquier software.
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 63
Modelos de implementación
• Nube privada– La nube es operado solo para una organización.– Puede ser manejada por la misma organización o un
tercero.
• Nube comunitaria– La nube es compartida por varias organizaciones y
soporta a una comunidad específica que tiene intereses comunes (p e misión requerimientos de seguridad
Dr. Roberto Gómez CárdenasLámina 125
comunes (p.e. misión, requerimientos de seguridad, políticas y consideraciones de compliance).
– Puede ser manejada por la misma organización o un tercero.
Modelos de implementación
• Nube pública– Disponible a todo el público y o a un grupo industrial
grande y es propiedad de una organización que vende servicios de nube.
• Nube híbrida.– La infraestructura de la nube esta compuesta por dos o
más nubes (privada, comunitaria o pública) que permanecen como entidades únicas pero que son unidos
Dr. Roberto Gómez CárdenasLámina 126
permanecen como entidades únicas pero que son unidos por tecnología estandarizada o propietaria que habilita la portabilidad de datos y aplicaciones (p.e. cloud bursting).
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 64
Diferencia entre modelo tradicional y el computación en nube
Dr. Roberto Gómez CárdenasLámina 127
Ejemplos computación en la nube
Dr. Roberto Gómez CárdenasLámina 128
Curso: Sistemas Distribuidos I Introducción a los Sistemas Distribuidos
Dr. Roberto Gómez Cárdenas 65
Amazon y Google
Dr. Roberto Gómez CárdenasLámina 129