intro ssdd y middle ware

79
Introducci´on a los sistemas distribuidos y middleware Departamento de Sistemas Telem´ aticos y Computaci´ on (GSyC) Septiembre de 2012 GSyC - 2012 Introducci´ on a los sistemas distribuidos y middleware 1

Upload: diana-gonzalez

Post on 29-Dec-2014

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intro Ssdd y Middle Ware

Introduccion a los sistemas distribuidos ymiddleware

Departamento de Sistemas Telematicos y Computacion (GSyC)

Septiembre de 2012

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 1

Page 2: Intro Ssdd y Middle Ware

c©2012 Grupo de Sistemas y Comunicaciones.Algunos derechos reservados.

Este trabajo se distribuye bajo la licenciaCreative Commons Attribution Share-Alike

disponible en http://creativecommons.org/licenses/by-sa/2.1/es

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 2

Page 3: Intro Ssdd y Middle Ware

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidos

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 3

Page 4: Intro Ssdd y Middle Ware

Introduccion

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidos

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 4

Page 5: Intro Ssdd y Middle Ware

Introduccion

Referencias para esta introduccion

Distributed systems. Principles and paradigms. AndreTanenbaum, Maarten Van Steen. Pearson - Prentice Hall.Second edition (2006)

Distributed systems. Concepts and design. George Coulouris,Jean Dollimore, Tim Kindberg. Addison-Wesley.

Wikipedia [citacion needed ]

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 5

Page 6: Intro Ssdd y Middle Ware

Introduccion

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 6

Page 7: Intro Ssdd y Middle Ware

Introduccion

CERN - sistemas de control

http://cerncourier.com/cws/article/cnl/36787

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 7

Page 8: Intro Ssdd y Middle Ware

Introduccion

ESB

http://www.jot.fm/issues/issue_2004_09/column5/

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 8

Page 9: Intro Ssdd y Middle Ware

Introduccion

Internet

http://www.chrisharrison.net/index.php/Visualizations/InternetMap

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 9

Page 10: Intro Ssdd y Middle Ware

Motivacion

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidos

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 10

Page 11: Intro Ssdd y Middle Ware

Motivacion

Motivacion

Demanda creciente en la necesidad de proceso de informacion.

Economıa de escala en capacidad de proceso.

Redes de comunicacion.

Necesidad de compartir recursos.

Tolerancia a fallos; alta disponibilidad.

Geografıa.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 11

Page 12: Intro Ssdd y Middle Ware

Motivacion

Demanda creciente

http://www.nathaninfocus.com/2011/01/social-networking-phenomenon/facebook-growth-chart/

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 12

Page 13: Intro Ssdd y Middle Ware

Motivacion

Economıa de escala

Ley de Moore: la densidad de integracion de transistores sedobla cada dos anos.

Los fabricantes necesitan amortizar las inversiones en nuevastecnologıas.Intel’s new $5 billion plant in Arizona has Obama’s blessing:http://www.usatoday.com/tech/news/

2011-03-28-intel-manufacturing.htm

La mayor rentabilidad en terminos de (potencia de calculo/coste)se consigue con varıas CPUs mas baratas en lugar de una maspotente.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 13

Page 14: Intro Ssdd y Middle Ware

Motivacion

Economıa de escala

http://www.cpubenchmark.net/high_end_cpus.html (Diciembre 2011)

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 14

Page 15: Intro Ssdd y Middle Ware

Motivacion

Redes de comunicacion

Accesibles ¿Fiables? ¿Rapidas?

Conexiones especiales. P.e.: fibre channel a 8Gbps.

Intranet tıpica basada Ethernet: 1Gbps

Internet: depende... es muy importante tener en cuenta lalatencia.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 15

Page 16: Intro Ssdd y Middle Ware

Motivacion

Comparticion de recursos

Ejemplo: un periodico digital:El contenido del periodico es compartido por todos los lectores ytambien por los creadores de contenidos.Los recursos estan vivos, se actualizan frecuentemente.Se plantean desafıos en cuanto a:

Seguridad.

Localizacion de los recursos.

Concurrencia.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 16

Page 17: Intro Ssdd y Middle Ware

Motivacion

Seguridad

Distintos usuarios tienen distintos roles sobre los recursoscompartidos.

Lectores: son consumidores de contenidos.

Periodistas: generan contenidos (un artıculo).

Editores: deciden los artıculos y estructura de su seccion.

Administradores: acceso total.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 17

Page 18: Intro Ssdd y Middle Ware

Motivacion

Tolerancia a fallos y alta disponibilidad

La redundancia es la clave para conseguir sistemas de altadisponibilidad.Podemos pensar en como centrales nucleares o aviones tienecomponentes dos y tres veces replicados.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 18

Page 19: Intro Ssdd y Middle Ware

Motivacion

Geografıa

Existen situaciones en las que la informacion esta inherentementedistribuida.En estas situaciones tiene sentido distribuir tambien elprocesamiento de informacion.

Se evitan cuellos de botella.

Se reduce la latencia.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 19

Page 20: Intro Ssdd y Middle Ware

Motivacion

Geografıa

Ejemplo: correo electronico.

Imagina que el correo electronico fuese un sistema monolıtico, enel que solo existiese un unico ordenador para servir el correo detodo el mundo.Ademas de convertirse un cuello de botella, serıa una lastima quelos bytes del correo electronico que envıas a tu vecina tengan queviajar de tu casa al servidor central y de luego de vuelta a tuedificio.No ocurre ası. De forma natural la arquitectura actual de losservidores de correo electronico imitan a la red de oficinas decorreo: un sistema distribuido: la carta que envıas a tu vecina nosale de tu barrio.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 20

Page 21: Intro Ssdd y Middle Ware

Sistemas distribuidos

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidos

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 21

Page 22: Intro Ssdd y Middle Ware

Sistemas distribuidos

Sistemas distribuidos, que son

Sistema distribuido: un conjunto independiente deordenadores que funciona de forma coherente como unaunidad. - A. Tanenbaum.

Los procesos, ejecutandose en distinto hardware, secomunican mediante el envıo de mensajes, utilizando una redde comunicacion.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 22

Page 23: Intro Ssdd y Middle Ware

Sistemas distribuidos

Que no son

Sistemas monolıticos. Solo encontramos una CPU.

Sistemas SMP (symmetric multiprocessing). En unaarquitectura hardware SMP varias CPUs identicas compartenla memoria principal.

http://en.wikipedia.org/wiki/Symmetric_multiprocessing

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 23

Page 24: Intro Ssdd y Middle Ware

Sistemas distribuidos

Componentes

En un sistema distribuido siempre vamos a encontrar tres tipos decomponentes:

Hardware

Red

Software

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 24

Page 25: Intro Ssdd y Middle Ware

Sistemas distribuidos

Hardware

Un sistemas distribuidos esta compuesto por distintoscomponentes hardware independientes.

Varios ordenadores comunicados por red.

Por “ordenador” entendemos un hardware con al menos unaCPU y RAM propia, no compartida.

”Sistemas distribuidos: sabes que tienes uno cuando un fallo en unordenador del que nunca habıas oido hablar hace que todo deje defuncionar.” - Leslie Lamport.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 25

Page 26: Intro Ssdd y Middle Ware

Sistemas distribuidos

Red

Infraestructura para paso de mensajes entre los distintos procesossoftware.

Peter Deutsch, falacias del desarrollo de aplicaciones distribuidas:

1 La red es fiable.

2 La red es segura.

3 La red es homogenea.

4 La topologıa no cambia.

5 La latencia es cero.

6 El ancho de banda es infinito.

7 No existen costes de transporte.

8 Existe un administrador.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 26

Page 27: Intro Ssdd y Middle Ware

Sistemas distribuidos

Software

1 Facilita la comunicacionentre aplicaciones ocomponentes de unaaplicacion distribuida.

2 Oculta las diferencias en elhardware.

3 Proporciona la apariencia deun sistema unico yhomogeneo.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 27

Page 28: Intro Ssdd y Middle Ware

Sistemas distribuidos

Middleware

Capa de software que proporciona un nivel de abstraccionocultando diferencias en sistemas operativos, redes, hardware ylenguages de programacion. Ejemplos:

Servidor web, servidores de aplicaciones.

Gestores de colas.

Coordinadores de transacciones.

Bases de datos.

ICE, CORBA, .NET.

Tambien aquı hablamos de “frameworks”: componentes softwareque simplifican tareas tıpicas (en nuestro caso relativas a sistemasdistribuidos). Normalmente asociados a un lenguaje deprogramacion. Ejemplos: Ruby on Rails, Django, JaxWS, etc, etc...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 28

Page 29: Intro Ssdd y Middle Ware

Sistemas distribuidos

Servidores

Servidor: un proceso que acepta peticiones.

Esperan a que un cliente haga una peticion, entoncesresponden. Normalmente no inician una conversacion.

Corren en espacio de usuario (no en el kernel).

Pueden tener permisos especiales.

Podemos configurar nuestra maquina para que el sistema operativolo ejecute automaticamente al iniciar. Hablamos entonces de unservicio, entendido como una capacidad que nuestra maquinapone a disposicion de los clientes.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 29

Page 30: Intro Ssdd y Middle Ware

Sistemas distribuidos

Clientes

Los que hacen peticiones a un servidor.

No es raro que los roles esten combinados: un servidor puede a suvez ser cliente de otros servidores.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 30

Page 31: Intro Ssdd y Middle Ware

Sistemas distribuidos

Comunicacion entre aplicaciones

Cuando disenas un sistema distribuido tienes varias posibilidadesen cuanto al tipo de tecnologıas (componentes software,protocolos, etc.) que puedes utilizar:

Apoyarte en un estandar existente (ISO, ITU, W3C, etc.).

Definir tu propia tecnologıa, pero documentandola, publicandoesta documentacion y haciendolo tan modular y extensiblecomo puedas. Hablamos entonces de una tecnologıa abierta.

Definir tu propia tecnologıa, sin hacer publicos sus detalles.Esto es una tecnologıa cerrada o propietaria.

Las tres opciones son validas, con sus ventajas e inconvenientes.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 31

Page 32: Intro Ssdd y Middle Ware

Sistemas distribuidos

Ventajas e inconvenientes

Ventajas Inconvenientes

Estandar Mayor soporte de la in-dustria. Menos trabajo.

Menos eficiente? Pue-de ser que no existaun estandar ideal paranuestro caso de uso.

Abierto Mas eficiente y flexible,con mas sinergias.

Mas trabajo.

Cerrado Mas eficiente. Menostrabajo que el abierto?Creas un nicho.

Menos valor (para tu cliente).

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 32

Page 33: Intro Ssdd y Middle Ware

Sistemas distribuidos

Ejemplos de tecnologıas cerradas

Middleware: Microsoft IIS (servidor web)

Protocolo de comunicacion: Siri (Apple - Nuance)

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 33

Page 34: Intro Ssdd y Middle Ware

Sistemas distribuidos

Ejemplo de tecnologıas abiertas

La web: basada en estandares:

HTTPHTMLURLCSSECMAScript (javascript)...

Aunque puedes utilizar componentescerrados para implementar ciertasfunciones. Por ejemplo, puedes usarMicrosoft IIS para servir paginas de tuweb.

Sir Tim Berners-Lee

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 34

Page 35: Intro Ssdd y Middle Ware

Sistemas distribuidos

Sistemas abiertos

Sus interfaces tanto internos como externos estansuficientemente documentados, idealmente basados enestandares (aunque no es imprescindible).Los mas populares estan bien disenados: son modularespermitiendo reemplazar un modulo sin afectar al resto. Losinterfaces de los componentes clave son publicos y estandocumentados.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 35

Page 36: Intro Ssdd y Middle Ware

Sistemas distribuidos

Intercambio de datos entre aplicaciones

Partimos de una red que nos permite enviar mensajes. Un mensajepara la red es solo un conjunto de unos y ceros.Para nuestras aplicaciones esos unos y ceros sı tienen significado:

Pueden ser datos simples: un nombre, una imagen, un numerode telefono...

Estructuras que combinan datos simples: una direccion postal,una referencia bibliografica...

O pueden ser estructuras complejas: una lista de direcciones,un diccionario con referencias cruzadas...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 36

Page 37: Intro Ssdd y Middle Ware

Sistemas distribuidos

Ejemplos

Existen librerıas o frameworks que nos permiten el envıo yrecepcion de datos a distintos niveles de abstraccion:

Unos y ceros: Sockets.

Datos simples/estructuras: MPI (Message Passing Interface).

Objetos: Aquı hablamos de “serializacion” y “deserializacion”de objetos. Todos los lenguajes de programacion OOproporcionan esta capacidad. Luego el objeto serializadopuede enviarse al destino como un conjunto de unos y ceros.Ejemplos de frameworks que nos permiten intercambiarobjetos independientemente del lenguage: CORBA, ICE.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 37

Page 38: Intro Ssdd y Middle Ware

Sistemas distribuidos

Invocaciones remotas

Subiendo el nivel de abstraccion, podemos entender lacomunicacion de aplicaciones como una invocacion para realizaruna determinada accion, enviando unos datos de entrada yesperando recibir una respuesta compuesta de unos datos de salida.Estilo de invocacion procedural.

La ejecucion de la llamada a una funcion se va a hacer en unamaquina remota.Ejemplo: RPC (Remote Procedure Call), Web services...

Estilo de invocacion orientado a objetos.

Tienes la posibilidad de instanciar objetos remotos.Los objetos remotos pueden tener o no estado. (Paramantener estado necesitarıas un middleware mucho massofisticado).Las llamadas a metodos de estas instancias se van a ejecutaren una maquina remota.Ejemplo: ICE, CORBA, RMI, COM, Pyro...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 38

Page 39: Intro Ssdd y Middle Ware

Sistemas distribuidos Sincronizacion

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 39

Page 40: Intro Ssdd y Middle Ware

Sistemas distribuidos Sincronizacion

Sincronizacion

Los sistemas distribuidos se caracterizan por la inexistenciade un reloj global.

Cada componente hardware sı tiene su reloj local.

Cada reloj local difiere del tiempo ideal en un valor particulary difiere a un ritmo tambien particular.

En la practica es imposible mantener todos los relojes localesperfectamente sincronizados. Ejemplo: una sincronizacion porGPS puede llegar a dar una precision de 1µs.

Se pueden clasificar los sistemas distribuidos en dos tipos:

Sıncronizados.Asıncronos.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 40

Page 41: Intro Ssdd y Middle Ware

Sistemas distribuidos Sincronizacion

Sincronizados

Para que distintas aplicaciones ejecutando en distinto hardwarepuedan funcionar sincronizadas (por ejemplo, dos aplicaciones A yB deben enviar un mensaje que debe llegar exactamente a unacierta hora a un servidor central) debe de cumplirse estas trescondiciones:

Los tiempos de ejecucion de los procesos software estandefinidos en un rango ⇒ SO de tiempo real.

Los tiempos de transmision estan definidos en un rango ⇒redes que pueden garantizar una calidad de servicio (QoS).

Los relojes locales trabajan con un ritmo de desviacionrespecto el tiempo ideal que esta acotado.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 41

Page 42: Intro Ssdd y Middle Ware

Sistemas distribuidos Sincronizacion

Sistemas distribuidos asıncronos

En la practica es muy difıcil que se cumplan los tres requisitosanteriores.En el ejemplo anterior, el servidor central puede enviar primero unmensaje a las aplicaciones para decirles “enviadme el mensajeahora” y luego quedarse escuchando por un periodo de tiemposuficiente.El orden en que ocurren las cosas sı se puede controlar. Aunque nose sepa a que hora llegaron los mensajes de A y B, sı puedes sabersi el de A llego antes que el de B.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 42

Page 43: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 43

Page 44: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Latencia

Latencia: tiempo que transcurre desde que envıas un mensaje hastaque recibes la respuesta.Debida a varios factores:

Tiempo de procesamiento en el servidor.

Sobrecarga en la red debida a enrutamiento, etc.

Propagacion de la senal.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 44

Page 45: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Propagacion de la senal

Por desgracia no puedes saltarte las leyes de la fısica:

http://www.sandstorming.com/2006/02/the-worlds-underwater-submarine-cables/

Distancia Madrid-San Francisco: 9300Km.Tiempo de latencia mınimo t = 2 ∗ 9300/c = 62ms

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 45

Page 46: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Capacidad almacenaje / latencia

http://www.buildagamingpc.org/gaming-cpu/cpu-cache

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 46

Page 47: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Magnitudes de latencia

CPU (@3GHz) registro 0.3ns

CPU Cache 1ns

RAM (DDR3-1333MHz) 10ns

Disco SSD 0.1ms

Disco convencional 10ms

Internet 100-1000ms

Es difıcil hacernos una idea de estas magnitudes...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 47

Page 48: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Magnitudes de latencia

... supon que el tiempo de latencia para un registro de CPU es 1s.Entonces:

CPU (@3GHz) registro 1s

CPU Cache 3s

RAM (DDR3-1333MHz) 30s

Disco SSD 3.4 dıas

Disco convencional 1 ano

Internet 10-100 anos

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 48

Page 49: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

Estilos sıncronos/asıncronos

El tiempo de respuesta tiene un gran efecto en el diseno deaplicaciones distribuidas.Para ejecuciones que tardan mucho tiempo en completarse, enlugar de quedarnos esperando a que vuelva la respuesta (modosıncrono), lo que hace el servidor es apuntar en una lista que debeejecutar la tarea solicitada. La llamada vuelve rapidamenteindicando que “su orden ha sido aceptada”. La ejecucion sehara en un momento posterior y al cliente se le notificara delresultado (modo asıncrono).

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 49

Page 50: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

MoM

MoM: Message Oriented-Middleware. Entre otras cosasproporcionan servicios de gestion de colas de mensajes.

Proporcionan esa lista (cola) donde apuntarse las tareas(mensajes).

Las colas debe ser persistentes y tener capacidadestransaccionales.

Prioridades entre los mensajes.

Notificaciones a clientes: suscripcion / publicacion de eventos.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 50

Page 51: Intro Ssdd y Middle Ware

Sistemas distribuidos Latencia

MoM

http://www.amqp.org/product/overview

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 51

Page 52: Intro Ssdd y Middle Ware

Sistemas distribuidos Comparticion de recursos

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 52

Page 53: Intro Ssdd y Middle Ware

Sistemas distribuidos Comparticion de recursos

Comparticion de recursos

Seguridad

Localizacion de recursos

Concurrencia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 53

Page 54: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 54

Page 55: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Autorizacion

Queremos por un lado compartir recursos, pero queremos hacerlosolamente a ciertos clientes (humanos o software) y con un ciertonivel de acceso.Ejemplo del periodico:

Lectores con acceso de lectura.

Periodistas con acceso de escritura a su seccion o artıculo.

Editores con acceso total a su seccion.

Administradores con acceso total.

Autorizacion: Distintos clientes estan autorizados a ciertasacciones sobre un mismo recurso. Quien puede hacer que.

ACL: Access control list.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 55

Page 56: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Autenticacion

Por otro lado estos recursos compartidos pueden ser valiosos desdeun punto de vista economico o de inteligencia (la informacion espoder) ⇒ existen agentes que van a intentar de forma maliciosa unacceso a recursos compartidos al cual no tienen derecho.

Autenticacion: No puedes fiarte de la identidad de los clientes,debes asegurarte de alguna manera:

Conocimiento de un secreto compartido entre el cliente y elservidor.

El cliente demuestra una caracterıstica unica, no replicable:tecnicas biometricas.

Es importante autenticar clientes pero tambien los servidores(ejemplo: comercio electronico).

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 56

Page 57: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Ataques

Un enemigo puede impersonar a clientes o servidores.

Ataques al canal de comunicacion:

Escucha no autorizada.Alteracion de mensajes.Inclusion de mensajes.Repeticion de mensajes.Desordenamiento de mensajes.

DoS: Denial of Service.

Applets maliciosos, “markets” falsos.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 57

Page 58: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Defensas

Integridad del mensaje: firma digital

Canales de comunicacion seguros:

Garantizan la identidad tanto del receptor como del emisor

Garantizan la privacidad e integridad de los mensajes.

Proteccion contra la repeticion o desordenado de mensajes.

La criptografıa es tu amiga.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 58

Page 59: Intro Ssdd y Middle Ware

Sistemas distribuidos Seguridad

Desafıos para la seguridad

La replicacion de recursos compartidos implica que debe estarprotegidos en todos los lugares donde aparecen replicados. Tusistema es tan seguro como lo sea el mas inseguro de suscomponentes.

En sistema moviles ejecutamos aplicaciones que confiamos nosean maliciosas y tambien a la inversa las aplicaciones se vana ejecutar en un entornos que el creador de la aplicacion nocontrola y que puede ser malicioso.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 59

Page 60: Intro Ssdd y Middle Ware

Sistemas distribuidos Localizacion de recursos

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 60

Page 61: Intro Ssdd y Middle Ware

Sistemas distribuidos Localizacion de recursos

Localizacion de recursos

Los recursos compartidos deben estar identificados:

Puede ser una ruta a un archivo dentro de un sistema dearchivos. En un sistema distribuido ademas puedes necesitarindicar el servidor donde esta el sistema de archivos al que terefieres.

Una URL (uniform resource locator)

Protocolo: http, ftp, ...Dominio (o IP)Numero de puerto.Ruta al recurso.Cadena de consulta (“query string”).Identificador de fragmento (dentro de una pagina HTML, es el#...)

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 61

Page 62: Intro Ssdd y Middle Ware

Sistemas distribuidos Localizacion de recursos

Servidores de nombres

En lugar de pedir un recurso directamente al servidor que lo aloja,pregunta primero a un servidor de nombres por su ubicacion.

No necesitas saber de antemano la ubicacion del recurso.

Puedes mover el recurso de un servidor a otro. Esto teproporciona transparencia en la ubicacion del recurso.

Ejemplos:

DNS (domain name system): traduce nombres a direccionesIP en Internet.

UDDI (universal description discovery and integration): unregistro de web services.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 62

Page 63: Intro Ssdd y Middle Ware

Sistemas distribuidos Localizacion de recursos

Contraindicaciones

A veces la transparencia en la ubicacion no es deseable:

Para evitar problemas de latencia podemos querer usar elrecurso que esta exactamente en un cierta ubicacion.

Location-aware applications: por ejemplo, conectado a una redmovil, cuando mandas a imprimir un documento, estarıa muybien que se imprimiera en la impresora que tienes mas cercana.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 63

Page 64: Intro Ssdd y Middle Ware

Sistemas distribuidos Concurrencia

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 64

Page 65: Intro Ssdd y Middle Ware

Sistemas distribuidos Concurrencia

Concurrencia

El acceso a recursos compartido plantea problemas deconcurrencia. Quizas en un periodico no es crıtico pero para unbanco sı lo es.

Acceso concurrente en lectura: sin problema.

Acceso en escritura: necesitamos bloqueos y sincronizacion.

Aparece aquı el concepto de transaccion.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 65

Page 66: Intro Ssdd y Middle Ware

Sistemas distribuidos Concurrencia

Transacciones

begin transaction

operacion #1

...

operacion #n

commit / rollback

La modificacion transaccional de datos es una de las cosas masimportantes que una base de datos puede hacer por nosotros.

Transaccional quiere decir que cumple con los atributos ACID:

Atomic

Consistent

Isolated

Durable

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 66

Page 67: Intro Ssdd y Middle Ware

Sistemas distribuidos Concurrencia

Transacciones anidadas

Las transacciones se pueden anidar:

begin transaction A

operacion #A1

...

begin transaction B

operacion #B1

...

operacion #Bn

commit B / rollback B

...

operacion #An

commit A / rollback A

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 67

Page 68: Intro Ssdd y Middle Ware

Sistemas distribuidos Concurrencia

Transacciones distribuidas

begin transaction

operacion en servidor X

operacion en servidor Y

commit / rollback

Las operaciones dentro de una transaccion pueden involucrardistintos servicios / servidores.

En este caso es necesario usar un coordinador de transacciones.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 68

Page 69: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Contenidos

1 Introduccion

2 Motivacion

3 Sistemas distribuidosSincronizacionLatenciaComparticion de recursosSeguridadLocalizacion de recursosConcurrenciaRedundancia

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 69

Page 70: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Redundancia ⇒ sistema distribuido

La redundancia implica componentes replicados que deben decoordinarse y actuar sincronizadamente. Hablamos por tanto de unsistema distribuido.Puedes utilizar la redundancia con distintos objetivos:

Hacer nuestro sistema resistente a fallos.

Permitir su mantenimiento y actualizacion.

Mejorar su rendimiento: disminuir la latencia.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 70

Page 71: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Resistencia a fallos

Un ordenador que funciona con una fiabilidad promedio del 99.9 %(en un ano, 8760 horas, hay 9h que no funciona). Entonces,usando dos, las probabilidades de que fallen a la vez son1− 0,0012 = 99,9999 % o 32s al ano en promedio.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 71

Page 72: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Resistencia a fallos

Dificultad: el la practica es imposible distinguir cuando unrecurso esta muerto o es solo que va muy lento.

Efecto en el rendimiento: cuando una maquina no respondepuedes decidir repetir la comunicacion varias veces mas, por siacaso.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 72

Page 73: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Recuperacion ante fallos

Hardware: deteccion del fallo y arranque del sistema enreserva.

Red: retransmision de paquetes perdidos o corruptos.

Software: deteccion y re-arranque de procesos que mueren.Re-arranque planificado de procesos.

En el diseno de tu sistema distribuido, ten en cuenta el nivel defiabilidad que cada capa puede ofrecerte y cuanto te costarıamejorarlo.

Muchas veces es mas barato mejorar la fiabilidad en nivelessuperiores (de aplicacion por ejemplo) que en niveles inferiores.

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 73

Page 74: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Actualizacion del sistema

La redundancia es clave tambien para conseguir laactualizacion de sistemas que necesitan ofrecer altadisponibilidad.

Hay que disenarla con cuidado. Por ejemplo en la industria sehabla de entornos:

Pruebas.Pre-produccion.Produccion...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 74

Page 75: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Mejora del rendimiento

Cuando replicas la informacion en localizaciones mas cercanasa los usuarios consigues reducir el tiempo de latencia.Ejemplo: redes de distribucion de contenidos como Akamai:

http://www.akamai.com

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 75

Page 76: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Desafıos de la redundancia

La redundancia plantea bastantes problemas (desafıos suenamejor):

La informacion tambien debe ser replicada.

Seguridad: la redundancia implica un mayor numero decomponentes... que hay que proteger.

Un sistema con mayor numero de componentes puede ser masfragil (!)

La actualizacion de los componentes debe de pensarse concuidado.

Cuando los datos compartidos estan replicados debesacordarte de actualizar todas las copias!

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 76

Page 77: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Redundancia, ejemplo: Facebook

http://www.flickr.com/photos/faceyspacey/2637848351/lightbox/

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 77

Page 78: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Redundancia, ejemplo: Facebook

http://www.datacenterknowledge.com/archives/2010/11/11/facebook-plans-north-carolina-...

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 78

Page 79: Intro Ssdd y Middle Ware

Sistemas distribuidos Redundancia

Redundancia, ejemplo: Facebook

http://www.oregon4biz.com/Business-Oregon-News/May-2011/

GSyC - 2012 Introduccion a los sistemas distribuidos y middleware 79