introducción a los sistemas distribuidos · 2009. 8. 21. · desarrollo de aplicaciones...

76
Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 1 Introducción a los sistemas distribuidos Roberto Gómez Cárdenas h //h i / Dr. Roberto Gómez Cárdenas Lámina 1 http://homepage.cem.itesm.mx/rogomez [email protected] Hacer Con-ciencia Alguien pidió una explicación de la teoría de Einstein. El profesor Alguien pidió una explicación de la teoría de Einstein. El profesor con mucho gusto le habló de tensores y con mucho gusto le habló de tensores y geódesicas geódesicas tetradimensionales tetradimensionales. No he entendido una solo palabra No he entendido una solo palabra dijó dijó el estudiante estupefacto el estudiante estupefacto - No he entendido una solo palabra No he entendido una solo palabra - dijó dijó el estudiante estupefacto. el estudiante estupefacto. El profesor reflexionó un momento, y con menos entusiasmo le da una El profesor reflexionó un momento, y con menos entusiasmo le da una explicación menos técnica, conservando algunas explicación menos técnica, conservando algunas geódesicas geódesicas, pero , pero haciendo intervenir aviadores y disparos de revolver. haciendo intervenir aviadores y disparos de revolver. Ya entiendo casi todo Ya 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árdenas Lámina 2 2 De De primido primido, 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ón aviadores que fuman mientras viajan a la velocidad de la luz, jefes de estación que disparan un revólver con la mano derecha y verifican tiempos en un que disparan un revólver con la mano derecha y verifican tiempos en un cronó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 relatividad Ahora sí entiendo la relatividad - exclamó el estudiante con alegría. exclamó el estudiante con alegría. - Sí - le le respondio respondio amargamente el profesor, amargamente el profesor, - pero ahora ya NO ES la relatividad pero ahora ya NO ES la relatividad

Upload: others

Post on 07-Dec-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 2: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 3: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 4: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 5: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 6: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 7: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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.

Page 8: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas 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

Page 9: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 9

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 17

Escalamiento horizontal y vertical

Dr. Roberto Gómez CárdenasLámina 18

Page 10: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 10

Escalamiento horizontal y vertical

Dr. Roberto Gómez CárdenasLámina 19

Ejemplos de limitantes escalabilidad 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 20

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.

Page 11: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 11

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 21

algoritmo.• No se asume la existencia de un reloj global.• El envío de mensajes es el medio de

comunicación.

Técnicas de escalamiento

• Esconder las latencias de la comunicación

• Distribución

• Replicación

Dr. Roberto Gómez CárdenasLámina 22

Page 12: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 12

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 23

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 24

Page 13: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 13

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 25

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 26

Page 14: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 14

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 27

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 28

g ptodo instante las copias físicas xi tengan el mismo valor x

x1 = x2 = ... xi ... = xn = x

Page 15: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 15

Ejemplo distribución

x1 x2

Pierre 500 Sam 500

Dr. Roberto Gómez CárdenasLámina 29

x3

Juan 900

Ejemplo replicación

Pi 500

x1x2

Pierre 500Sam 700Juan 900

Pierre 500Sam 700Juan 900

Dr. Roberto Gómez CárdenasLámina 30

x3

Pierre 500Sam 700Juan 900

Page 16: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 16

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 31

• 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 32

Sistemas distribuidosubicuos

Computo en la nube

Sistemas caseros

Sistemas de cuidado de la salud

Redes de sensores

Page 17: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 17

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 33

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 34

Page 18: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 18

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 35

• 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 36

Page 19: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 19

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 37

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 38

Sistema OperativoLocal

Componente aplicación paralela

Sistema OperativoLocal

Componente aplicación paralela

Sistema OperativoLocal

Componente aplicación paralela

Nodo Computadora Nodo Computadora Nodo Computadora

Page 20: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 20

Diferencia clusters vs supercomputadoras

• EscalamientoDi ibilid d• Disponibilidad

• Administración sistema

Dr. Roberto Gómez CárdenasLámina 39

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 40

Page 21: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 21

Capas de la arquitectura de un sistema grid

Aplicaciones

Capa Colectiva

Capa Conectividad Capa Recursos

Dr. Roberto Gómez CárdenasLámina 41

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 42

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).

Page 22: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 22

¿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 43

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 44

(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

Page 23: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 23

Gráfica dependencia

t1:= -b

t2:= b^2 t3:=4 * a

Dr. Roberto Gómez CárdenasLámina 45

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 46

Código objetoparalelo

Ejecución

Código objetoparalelo

Ejecución

Para

leli

Para

lel

Page 24: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 24

Desarrollo aplicaciones distribuidas

• Memoria compartidaP d j• Paso de mensajes

• RPC• Objetos distribuidos

– Paso de mensajesRMI

Dr. Roberto Gómez CárdenasLámina 47

– 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 48

cabo a través de esta zona.

Page 25: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 25

Paso mensajes

• Procesadores se envían mensajes entre ellos.• Una opción: sockets• Una opción: sockets

Dr. Roberto Gómez CárdenasLámina 49

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 50

Page 26: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 26

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 51

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 52

p q• La portabilidad prima sobre la potencia• Tolerancia a fallas• 1989 Oak Ridge National Laboratory• http://www.csm.ornl.gov/pvm/

Page 27: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 27

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 53Cada 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 54

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;

}

Page 28: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 28

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 55

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 56

• 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/

Page 29: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 29

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 57

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 58

Page 30: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 30

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 59

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 60

• Posible seleccionar entre diferentes protocolos de mensajería– JRMP, SOAP, RPC

• http://harness2.org

Page 31: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 31

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 61

• 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 62

• Desarrollado y mantenido por Brendan Kosowski.• Basado en CLISP (Common LISP)• Plataformas Linux & BSD• http://grid.bmk.com.au/

Page 32: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 32

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 63

• 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 64

• 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

Page 33: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 33

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 65

• 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.

• 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 66

• Varios clientes realizan diferentes peticiones de forma concurrente

• Transacciones distribuidas

– Permitir que las aplicaciones se comuniquen entre ellas de forma directa: EAI

Page 34: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 34

Sistemas procesamiento transacciones

• Sistemas usan transacciones requieren primitivas especiales que deben ser proporcionadas por elespeciales que deben ser proporcionadas por el sistema distribuido o por el sistema del lenguaje.

• Ejemplos primitivas

Primitiva DescripciónBEGIN_TRANSACTION Marcar el inicio de una transacciónEND TRANSACTION Terminar transacción e intentar completar esta

Dr. Roberto Gómez CárdenasLámina 67

END_TRANSACTION Terminar transacción e intentar completar estaABORT_TRASACTION 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 68

– 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.

Page 35: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 35

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 69

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 70

. . .

end.

. . .

end

Page 36: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 36

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 71

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 72

Page 37: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 37

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 73

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 74

p y• A y B responde “ok” a TC• TC responde “ok” a cliente.

Page 38: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 38

¿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 75

• 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 76

Page 39: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 39

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 77

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 78

• Las dos fases del protocolo son– Fase de petición de completar– Fase de completar

Page 40: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 40

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 79

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 80

Page 41: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 41

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 81

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 82

3. Cada participante envía un reconocimiento (ack) al coordinador.

4. El Coordinador completa la transacción cuando han sido recibidos los reconocimientos

Page 42: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 42

Fase 2 del 2PC

Dr. Roberto Gómez CárdenasLámina 83

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 84

p ppoder comunicarse entre ellos y no necesariamente a través del modelo de petición/respuesta.

Page 43: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 43

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 85

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 86

S.O. local 1 S.O. local 2 S.O. local 3 S.O. local 4

p ( )

Red

Page 44: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 44

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 87

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 88

• 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

Page 45: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 45

El modelo Publish/Subscribe

Dr. Roberto Gómez CárdenasLámina 89

El modelo Point-to-Point

• Modelo de mensajería tradicional

Dr. Roberto Gómez CárdenasLámina 90

Page 46: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 46

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 91

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 92

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.

Page 47: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 47

Ejemplos redes ubicuoas

• Sistemas caseros.

• Sistemas de cuidado de la salud.

• Redes de sensores.

Dr. Roberto Gómez CárdenasLámina 93

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 94

g– Auto administración– Auto configuración– Espacios personales

Page 48: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 48

Home Entertainment Network

Dr. Roberto Gómez CárdenasLámina 95

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 96

¿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?

Page 49: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 49

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 97

agenda, fotos familiares, un diario, música y videos, etc.– Esto debe almacenarse se 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 98

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.

Page 50: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 50

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 99

,través de una conexión wireless, que recibielos 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 100

Transmisormovimiento

AlmacenamientoexternoTilt Sensor: Sensor de inclinación

ECG Sensor: Sensor electrocardiograma

Page 51: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 51

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 101

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 102

• 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.

Page 52: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 52

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 103

– 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 104

– software de aplicación y – trasductores.

Page 53: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 53

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 105

– 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 106

Sitio del Operador

Los sensores soloenvían respuestas

Petición

Cada sensor puede procesar y almacenar datos

Page 54: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 54

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 107

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 108

iniciador.– Agregaciones se hacen

donde dos o más ramas de un árbol se unen.

Page 55: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 55

Arquitecturas vs In-network data processing

Dr. Roberto Gómez CárdenasLámina 109

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 110

¿Puede ser contralada?

• ¿Qué pasa si el enlace de red falla?

Page 56: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 56

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 111

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 112

Page 57: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 57

Cloud computing

• Computación en nube• Definición NIS (Draft del 6 1 09)• Definición NIS (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 113

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 114

Page 58: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 58

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 115

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 116

plataformas hetereogeneassimples.

Page 59: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 59

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 117

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 proveerse 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 118

recursos disponibles para su uso aparecen como infinitos y pueden ser adquiridos en cualquier cantidad y tiempo.

Page 60: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 60

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 119

• 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 120

– Proporciona procesamiento, almacenamiento, redes y otros recursos computacionales donde el consumidor ´puede desarrollar y correr cualquier software.

Page 61: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 61

Cloud Software as a Service(SaaS).

• Recursos proporcionado al consumidor es poder usar aplicaciones que corren en lapoder usar aplicaciones que corren en la infraestr

Dr. Roberto Gómez CárdenasLámina 121

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 122

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.

Page 62: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 62

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 123

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).

Diferencia entre modelo tradicional y el computación en nube

Dr. Roberto Gómez CárdenasLámina 124

Page 63: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 63

Ejemplos computación en la nube

Dr. Roberto Gómez CárdenasLámina 125

Amazon y Google

Dr. Roberto Gómez CárdenasLámina 126

Page 64: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 64

Arquitecturas sistemas distribuidos

Dr. Roberto Gómez CárdenasLámina 127

Arquitecturas sistemas distribuidos

• Arquitectura de un sistemaQ é t l f ?– ¿Qué componentes lo forman?

– ¿Cómo interaccionan entre sí?

• Dos modelos principales en los sistemas distribuidos

Dr. Roberto Gómez CárdenasLámina 128

distribuidos– Cliente-servidor– Igual a igual (peer-to-peer)

Page 65: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 65

Arquitectura igual a igual

• Los procesos tienen un rol similar, aunque pueden asumir un rol q pcliente/servidor en ciertos momentos.

• Mejora la tolerancia a falla y la escalabilidad

• Difícil de coordinar

Dr. Roberto Gómez CárdenasLámina 129

• Ejemplo:– Búsqueda distribuida,– Enrutamiento– Cálculo distribuido

Arquitectura cliente/servidor

• Cliente– Proceso que quiere acceder a datos,

usar recursos o realizar operaciones en un dispositivo diferente.

• Servidor– Proceso que administra datos o

cualquier otro tipo de recurso y que es capaz de hacerlos disponibles a

Dr. Roberto Gómez CárdenasLámina 130

es capaz de hacerlos disponibles a otros procesos que están en otros dispositivos.

• Interacción– Enviar petición / recibir resultado

Page 66: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 66

Interacción cliente servidor

Esperar por

Cliente

Servidor

Petición Respuesta

p pel resultado

Proporcionar l i i Tiempo

Dr. Roberto Gómez CárdenasLámina 131

el servicio Tiempo

Cliente servidor paso de mensajes

Dr. Roberto Gómez CárdenasLámina 132

Page 67: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 67

Características paso mensajes

• Cada pareja transmite un mensaje entre cliente y servidorservidor.

• Por lo general es de forma asíncrona.• Habitualmente

– La instrucción send( ) es no bloqueante– La instrucción receive( ) es bloqueante (puede

implementarse como no bloqueante)

Dr. Roberto Gómez CárdenasLámina 133

implementarse como no bloqueante)• Los mensajes intercambiados pueden ser

– Mensajes de texto (p.e. HTTP)– Formateados de acuerdo a la aplicación (p.e. XML)– Mensajes binarios.

Cliente servidor: RPC

x = suma(1,2) en host B

suma(x, y){

res = x + yreturn res

}

Dr. Roberto Gómez CárdenasLámina 134

Host BHost A

Page 68: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 68

Características RPC

• Desarrollado por la gente de Xerox en 1988.T i d l d j• Transparencia del paso de mensajes.

• Permite a los desarrolladores enfocarse en la aplicación bajo el paradigma de llamado de funciones.

• Versión orientada a objetos: RMI

Dr. Roberto Gómez CárdenasLámina 135

• Versión orientada a objetos: RMI– Remote Method Invocation

Tipos servidores

• Servidor de archivosS id d i• Servidor de impresoras

• Servidor de red• Servidor de bases de datos• Servidor de aplicaciones

Dr. Roberto Gómez CárdenasLámina 136

• Servidor de servicios de Internet – WWW, ftp, correo, etc

Page 69: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 69

¿Un solo servidor o varios servidores?

peticiónpetición

resultado

Clientes

Servidor

Clientes

resultado

petición

resultado

petición

resultado

resultado

petición

resultado

petición

resultado

Servicio

Dr. Roberto Gómez CárdenasLámina 137

…. ….petición

resultado

petición

resultado

Un solo servidor Múltiples servidores

Características múltiples servidores

• Servicios son suministrados por multiples servidores– Distribución de los recursos entre servidores

• Ejemplo: Web• Mantenimiento de las ligas

– Ligas perdidas

– Replicación de los recursos• Servidores de alta disponibilidad: sitios de descarga, portales

• Replicación de recursosA t t i

Dr. Roberto Gómez CárdenasLámina 138

– Aumentar prestaciones– Tolerancia a fallos– Disponibilidad– Problema de coordinación o de coherencia

• La información no llega simultáneamente a todos los servidores.

Page 70: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 70

Rack servers vs Blade servers

• Una computadora moderna requiere de E/S Procesador y Memoria

• RackRack– Los componentes son unidades completas que

contiene la CPU, memoria, fuente de alimentación, ventiladores y disipadores.

– Estos servidores son atornillados en el rack, y cada uno es conectado a la red corporativa usando un cable separado.

• Blade

Dr. Roberto Gómez CárdenasLámina 139

– Optimizados para minimizar el uso de espacio físico.– Incluye CPU, memoria y dispositivos para almacenar

datos. – No tiene fuente de alimentación eléctrica ni

ventiladores. – Son insertados en slots y enlazados entre si gracias a

un bus de alta velocidad dentro del chasis.

Servidores pesados o clientes pesados

• Fat clients vs fat servers• El modelo de servidor pesado carga más p g

funcionalidades en el servidor– Groupware, traductores y servidores web son

ejemplos de este tipo de servidores.• El modelo de cliente pesado hace lo contrario.

– Servidores de bases de datos son ejemplos de

Dr. Roberto Gómez CárdenasLámina 140

clientes pesados

Page 71: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 71

Características clientes pesados

• La forma más tradicional de la arquitectura cliente/servidor.

• La parte pesada de la aplicación corre en el cliente.• En modelos de servidores de archivos y bases de

datos, el cliente sabe como están los datos organizados y almacenados en el lado del servidor.

• Estos clientes son usados para soporte de decisiones y

Dr. Roberto Gómez CárdenasLámina 141

p p ysoftware personal.

• Proporcionan flexibilidad y oportunidades para crear herramientas de tipo front-end que los usuarios finales crean sus propias aplicaciones.

Características servidores pesados

• Más fáciles de administrar y liberar en la red.– Ya que la mayor parte del código corre en el servidor– Ya que la mayor parte del código corre en el servidor.

• Intentan minimizar intercambios de red creando niveles de servicio más abstractos.

• En lugar de exportar datos en bruto, exportan procedimientos (o métodos) que operan con los datos

Dr. Roberto Gómez CárdenasLámina 142

datos.• El cliente proporciona el GUI e interactua con

servidor a través de RPCs (o RMIs)

Page 72: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 72

Server side scripting

• Es una tecnología de servidor web en la cual la petición de un usuario es atendida corriendo unpetición de un usuario es atendida corriendo un script directamente en el servidor del web para generar páginas dinámicas – Sitios web interativos que sirven de interfaz con

bases de datos.Escritos en leng ajes como Perl PHP son

Dr. Roberto Gómez CárdenasLámina 143

– Escritos en lenguajes como Perl y PHP, son ejecutados por el servidor web cuando el usuario solicita un documento

– El usuario no puede ver el código fuente de los scripts.

Client side scripting

• Generalmente se refiere a las clases de programas de computadoras en el web que son ejecutados ende computadoras en el web que son ejecutados en el lado del cliente, a través de su web brower– Es una parte importante del concepto de DHTML

(Dynamic DHTML).– Se encuentran escritos en lenguajes como JavaScript o

VBScript

Dr. Roberto Gómez CárdenasLámina 144

– El browser debe entender los scripts.– Es posible que los usuarios no puedan ver su código

fuente

Page 73: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 73

Arquitectura de una aplicación de n capas

• N capas (n-tiers) • Cualquier número de capas• Cualquier número de capas• Los más común:

– 1 aplicación monolítica, 2 capas y 3 capas• No implica separación física en diferentes

dispositivos, pueden ser implementados

Dr. Roberto Gómez CárdenasLámina 145

p , p p– Físicamente (procesamiento distribuido)

• Procesos en diferentes ubicaciones

– Lógicamente • Procesos en un o más procesadores físicos.

Ventajas

• Permite modificar una capa sin tener que modificar toda la aplicaciónmodificar toda la aplicación.– Aplicación una capa: existe un gran

acoplamiento en la aplicación.• Simplifica la administración de los sistemas.• Disponibilidad inmediata de cambios en la

Dr. Roberto Gómez CárdenasLámina 146

plógica de aplicación o datos.

• Posibilita el balanceo de la carga de trabajo entre distintos dispositivos (computadoras).

Page 74: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 74

Ejemplo separación de funciones en modelo de 3 capas

• Lógica de presentación– Interfaz de usuario a través de la cual interactúa con laInterfaz de usuario a través de la cual interactúa con la

aplicación.– Interfaz gráfico (GUI) o basado en texto.

• Lógica de negocio– El núcleo de la aplicación.– Implementa la funcionalidad de la aplicación.

Dr. Roberto Gómez CárdenasLámina 147

• Lógica de datos– Administra la persistencia de los datos– Persistencia: Existencia o duración de una cosa durante

mucho tiempo

Interacción cliente servidor en 3 capas

Cliente

Esperar por el resultado

Cliente

ServidorAplicación

Peticiónoperación

Regresoresultado

Petición datos Regreso datos

Esperar por datos

Dr. Roberto Gómez CárdenasLámina 148

Tiempo

ServidorBase Datos

Page 75: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 75

Ejemplo modelo de dos capas

• Parte cliente (front-end) y servidor (back-end)• Diferentes requisitos de hardware: velocidad de• Diferentes requisitos de hardware: velocidad de

procesamiento, capacidad de almacenamiento de datos, etc.

• Entorno heterogéneo y multi-vendedor: la plataforma no tiene por qué ser la misma (se comunican a través de un API conocido)

Dr. Roberto Gómez CárdenasLámina 149

comunican a través de un API conocido).• Cliente: interfaz gráfica de usuario, entorno

amigable.

Ejemplo modelo de tres capas

• Safari• Firefox• Internet Explorer• Konqueror

• Apache• PHP (PHP Hypertext Pre-processor)

• Internet Information ServicesASP (A ti S P )

Dr. Roberto Gómez CárdenasLámina 150

• ASP (Active Server Pages )

• MySQL• SQL Server

Page 76: Introducción a los sistemas distribuidos · 2009. 8. 21. · Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos Dr. Roberto Gómez Cárdenas 11 Características

Desarrollo de Aplicaciones Distribuidas Introducción a los Sistemas Distribuidos

Dr. Roberto Gómez Cárdenas 76

Desventajas modulo 3 capas

• Asigna una gran carga a la red.E á difí il b f• Es más difícil programar y probar software que en una arquitectura de dos capas ya que más dispositivos tienen que comunicarse para completar una transacción del usuario.

Dr. Roberto Gómez CárdenasLámina 151

Ejemplo aplicación

Dr. Roberto Gómez CárdenasLámina 152