Académique Documents
Professionnel Documents
Culture Documents
Sistemas Distribuidos
Modelos
Rodrigo Santamara
+ Modelos
Componentes
Plataforma Middleware
Todos los tipos de SD tienen caractersticas bsicas comunes Modelo: descripcin abstracta simplificada pero consistente de cada aspecto relevante del diseo de un SD Veremos tres tipos de modelos
n n n
Fsicos: representacin abstracta de los elementos del sistema Arquitectnicos: relacin entre los componentes del sistema Fundamentales: segn las principales caractersticas de un sistema (interaccin, fallos, seguridad, etc.)
Componentes de un SD
Componentes de un SD
Plataforma
Aplicaciones de servicios Middleware Sistema operativo Plataforma Computador y HW de red Windows Linux MacOS Sun OS Solaris / Intel x86 / Intel x86 / PowerPC / Sun SPARC / Intel x86
Componentes de un SD
Middleware
n
Capa de SW cuyo propsito es enmascarar la diversidad subyacente y proporcionar un modelo de programacin conveniente Soporta abstracciones como
n n n n n
Procedimientos de invocacin remota Comunicacin entre grupos de procesos Notificacin de eventos Replicacin de datos compartidos Transmisin de datos en tiempo real
Componentes de un SD
Middleware
n
Algunos ejemplos:
n n n
Sun RPC: Sun Remote Procedure Call CORBA: Common Object Request Broker Architecture Java RMI: Java Remote Method Invocation SOAP: Simple Object Access Protocol REST: REpresentational State Transfer Otros n ISIS n DCOM n RM-OPD
n n
+ Modelos
Modelos fsicos
n
A partir de un modelo base: n Definicin de SD: componentes informticos localizados en una red que se comunican por paso de mensajes Considerando los distintos desafos n Escalabilidad n Heterogeneidad n Transparencia n Calidad (tolerancia a fallos, seguridad, concurrencia)
10
Modelos fsicos
1G - Primeros sistemas distribuidos
n
10 a 100 nodos Conectividad a Internet limitada Pocos servicios (conexin a impresora, servidores de archivos, email, transferencia de archivos) Nodos homogneos (no hay mucha necesidad de estndares)
11
Modelos fsicos
2G Sistemas distribuidos en Internet
n
El SD empieza a concebirse en un entorno de redes interconectadas, es decir, una red de redes (Internet)
n n n
Aumenta el nmero de nodos (escala) Aumenta la heterogeneidad nfasis en la definicin de estndares abiertos (CORBA)
12
Modelos fsicos
3G- Sistemas distribuidos contemporneos
n
Estticos: permanecen en un lugar determinado Discretos: no estn incluidos en otros dispositivos Autnomos: independientes de otras computadores
Computacin mvil: porttiles, smart phones Computacin ubicua: los computadores se encuentran en objetos cotidianos o en el ambiente (chip en la lavadora o el coche) Computacin en la nube y arquitecturas de cluster: de un nodo que hace una tarea a grupos de nodos que juntos proveen de un servicio
13
Modelos fsicos
Generaciones
Generacin poca Escalabilidad Heterogeneidad 1 (Inicios) 1970-1985
Baja Limitada (configuraciones homogneas) No es una prioridad Inicios
2 (Internet) 1985-2005
Alta Significativa (plataformas, lenguajes, middleware) Significativa (estndares) Significativa (algunos servicios)
3 (Contempornea) 2005Muy alta Nuevas dimensiones, (arquitecturas, dispositivos) Desafo (los estndares no cubren sistemas complejos) Desafo (los servicios no cubren sistemas complejos)
Extensibilidad Calidad
+ Modelos
Modelos fundamentales
14
15
Modelos arquitectnicos
Tipos
n
El reparto de responsabilidades entre componentes del sistema La ubicacin de los componentes del sistema
Tipos de modelos
n n n n
Cliente-servidor Servicios proporcionados por mltiples servidores Servidores proxy y cachs Sistemas de igual a igual (peer to peer)
16
Modelo cliente-servidor
cliente
peticin respuesta
peticin
servidor
servidor
peticin
respuesta
cliente
respuesta
17
Modelo cliente-servidor
n n
Un servidor web es cliente del servicio DNS que traduce nombres de dominio a direcciones IP Un buscador web es servidor de pginas pero para recopilar la informacin que presenta es tambin cliente de otros servidores web, a travs de web crawlers
n
Web crawler (araa web): programa que inspecciona pginas web, de forma metdica y automatizada, para obtener informacin (generalmente realizar copias para su posterior uso en motores de bsqueda)
18
cliente
servidor
n
Replicacin para aumentar prestaciones y disponibilidad Muchos servicios web redirigen a varios servidores replicados
servidor
cliente
servidor
19
Mltiples servidores
Ejemplo
n
12 dedicados, 24 compartidos
http://royal.pingdom.com/2008/04/11/map-of-all-google-data-center-locations/ http://www.google.com/about/datacenters/locations/index.html
20
Servidores proxy
cliente
servidor proxy
servidor
servidor cliente
n
Usan cachs con los datos ms recientemente solicitados por los clientes
21
Sistemas peer-to-peer
aplicacin -----------coordinacin aplicacin -----------coordinacin
aplicacin -----------coordinacin
n n
Ejemplos:
n n n
22
Modelo cliente-servidor
Derivados
n
Agente mvil
n
Un programa en ejecucin (cdigo y datos) se traslada/copia de un computador a otro en la red realizando una determinada tarea: n Instalacin y mantenimiento de software n Comparacin de precios de productos n Clculo intensivo mediante varios ordenadores Programa gusano: concepto similar al de agente mvil, pero generalmente con connotaciones negativas n Virus, spam, phising, etc.
23
Modelo cliente-servidor
Derivados
n
Computadores en red
n
La mayora de los programas ejecutados por el cliente se descargan de la red, incluido el sistema operativo Las aplicaciones se lanzan localmente pero los archivos estn almacenados en un servidor de archivos
Clientes ligeros
n
Como un computador en red, pero las aplicaciones se lanzan en modo remoto (p. ej. sistema de ventanas X11 de UNIX) Muy til para clculos pesados, mediante el uso de potentes servidores (o grupos de servidores clusters-) de clculo n Inconveniente: actividades altamente interactivas y de clculo intensivo: interfaces grficas
24
Modelo cliente-servidor
Cloud computing
El cliente no pierde su autonoma (sistema operativo, aplicaciones locales) pero puede acceder a servicios y archivos remotos n Usualmente a travs de un navegador Ejemplos:
n
Web Desktops: almacenamiento y gestin de archivos, sincronizacin n Google Docs, DropBox, iCloud, etc.
25
Modelo cliente-servidor
Resumen de variantes
Modelo
Cliente-servidor Cdigo mvil Agente mvil Computador en red Cliente ligero Cloud Computing
mbito
Un servicio Un programa Un programa Todo/casi todo el software Todo/casi todo el software Algunos programas
Ejecucin
Servidor Cliente (previa descarga) Cliente (descarga/viaje inteligente) Cliente Servidor Servidor
Almacenamiento
Servidor Clientes Clientes Servidor Servidor Servidor
26
Modelo cliente-servidor
Dispositivos mviles y enlace espontneo
n
Avances tecnolgicos
n n
El cliente puede ser un smart phone, una tableta, etc. El enlace se hace a travs de un protocolo inalmbrico
Los clientes pueden ser cada vez ms ligeros y confiar en servicios aportados por la nube, con conexin ubicua
n
+ Modelos
28
Modelos fundamentales
n
Procesos que se comunican por paso de mensajes a travs de una red de computadores
Interaccin: el modelo debe definir y clasificar la comunicacin entre elementos del sistema Fallos: el modelo debe definir y clasificar los fallos que pueden darse en el sistema. Seguridad: el modelo debe definir y clasificar los tipos de ataque que pueden afectar al sistema.
29
Modelo de interaccin
n
Hay limitaciones debidas a la comunicacin Es imposible predecir el retraso con el que llega un mensaje Es imposible tener una nocin global de tiempo La ejecucin es no determinista y difcil de depurar
Algoritmo distribuido
n
Definicin de los pasos que hay que llevar a cabo por cada uno de los procesos del sistema, incluyendo los mensajes de transmisin entre ellos
30
Modelo de interaccin
Prestaciones del canal de comunicacin
n
Latencia
n
Ancho de banda
n
Fluctuacin (jitter)
n
31
Modelo de interaccin
Relojes y eventos de tiempo
n
Diferencia entre un reloj local y un reloj de referencia perfecto Receptores GPS Network Time Protocol (NTP) Mecanismos de ordenacin de eventos
Sncrono y asncrono
32
Modelo de interaccin
Modelos sncronos
n
El tiempo de ejecucin de cada etapa de un proceso tiene ciertos lmites inferior y superior conocidos Cada mensaje transmitido sobre un canal se recibe en un tiempo lmite conocido Cada proceso tiene un reloj local cuya tasa de deriva sobre el tiempo de referencia tiene un lmite conocido
A nivel terico, podemos establecer unos lmites para tener una idea aproximada de cmo se comportar el sistema A nivel prctico, es imposible garantizar esos lmites siempre
n
33
Modelo de interaccin
Modelos asncronos
n
Una solucin vlida para un sistema asncrono lo es tambin para uno sncrono
34
Modelo de interaccin
Ordenacin de eventos
n
Podemos describir un sistema en trminos de eventos, solucionando as la falta de precisin de los relojes Imaginemos un grupo de usuarios de correo (X, Y, Z, A)
n n
X manda un mensaje m1 con el asunto Reunin Y y Z responden con mensajes m2 y m3, respectivamente y en ese orden, con el asunto Re: Reunin Debido a la independencia en los retardos de cada envo, el usuario A podra ver lo siguiente: Mensaje m3 m1 m2 De Z X Y Asunto Re: Reunin Reunin Re: Reunin
35
Modelo de interaccin
Ordenacin de eventos
36
Modelo de interaccin
Ordenacin de eventos
n
Si los relojes de X, Y y Z estuvieran sincronizados, podramos incluir el tiempo local t1, t2, t3 en los mensajes m1, m2, m3
n n
Estaramos seguros de que t1 < t2 < t3 Podramos ordenar los mensajes en concordancia
Lamport [1978] propuso un modelo de tiempo lgico Infiere el orden de los mensajes sin recurrir al tiempo fsico Se basa en las siguientes afirmaciones n Un mensaje siempre se recibe despus de enviarlo n X manda m1 antes de que Y reciba m1 n La rplica no se enva hasta que no se ha recibido el original n Y recibe m1 antes de que enve m2
37
Modelo de interaccin
Ordenacin de eventos
1234
38
Modelo de fallo
n
Para poder comprender sus consecuencias Fallos de proceso Fallos de comunicacin Fallos por omisin n No se consigue realizar una accin que se debera poder hacer Fallos arbitrarios (bizantinos) n Errores de cualquier tipo, fuera del esquema de mensajes Fallos de temporizacin n Superacin de tiempos lmite en un sistema sncrono
39
Modelo de fallo
Fallo por omisin en procesos
n n
Fallo del procesamiento (crash) Deteccin del fallo por timeouts (sncrono)
n n
Si el proceso no responde, consideramos que ha habido un fallo En sistemas asncronos, nunca podemos estar seguros
Fallo-parada (fail-stop)
n
Fallo de procesamiento que puede ser detectado con certeza por el resto de procesos
40
Modelo de fallo
Fallo por omisin en comunicaciones
proceso p enva m
fallo por omisin de envo bfer de mensajes salientes fallo por omisin de comunicacin
proceso q recibe m
fallo por omisin de recepcin bfer de mensajes entrantes
canal de comunicacin
41
Modelo de fallo
Fallos arbitrarios o bizantinos
n
En proceso:
n n n
Se omiten pasos necesarios o deseables del procesamiento Se realizan pasos innecesarios o indeseables en el procesamiento Se omite arbitrariamente la respuesta a mensajes
En canales de comunicacin
n n n
Corrupcin de mensajes Reparto de mensajes inexistentes Duplicacin del reparto de mensajes autnticos
Lamport, Shostak and Pease (1982). The Bizantine Generals Problem. ACM Transaction on Programming Languages and Systems 4 (3): 382-401
42
Modelo de fallo
Fallos bizantinos
43
Modelo de fallo
Fallo por omisin y arbitrarios (resumen)
Tipo de fallo Fallo-parada (fail-stop) Ruptura (crash) Omisin Afecta a Proceso Proceso Canal Descripcin El proceso para y permanece parado Otros procesos pueden detectar la parada El proceso para y permanece parado Otros procesos pueden no detectar la parada Un mensaje insertado en un bfer de mensajes salientes nunca llega al bfer de mensajes entrantes del destino Un proceso completa el envo pero no se coloca el mensaje en el bfer de mensajes salientes El mensaje se coloca en el bfer de recepcin pero el proceso no lo recibe El proceso/canal presenta un comportamiento arbitrario: omisiones, paradas, envos o pasos incorrectos sin patrn claro
44
Modelo de fallo
Fallos de temporizacin
n
Sistemas sncronos
Tipo de fallo Reloj Prestaciones Prestaciones Afecta a Proceso Proceso Canal Descripcin El reloj local del proceso excede el lmite de su tasa de deriva respecto al tiempo de referencia El proceso excede el lmite sobre el intervalo entre dos pasos La transmisin de un mensaje toma ms tiempo que el lmite permitido
Sistemas asncronos
n
45
Modelo de fallo
Enmascaramiento de fallos
n
Por ejemplo:
n
Checksum de fallo arbitrario a fallo por omisin n +retransmisin de fallo por omisin a ocultacin
46
Modelo de fallo
Comunicacin fiable entre dos procesos
n
Validez n Cualquier mensaje en el bfer de mensajes salientes llegar, eventualmente, al bfer de mensajes entrantes n Es decir, no hay fallos por omisin en el canal Integridad
n
Protocolo que adjunta nmeros de secuencia a los mensajes Canales de comunicacin seguros
47
Modelo de seguridad
n
48
Modelo de seguridad
Principal y derechos de acceso
n
Principal: autoridad con la que se ordena cada invocacin de objetos o sus resultados
n
49
Modelo de seguridad
Modelo de enemigo
n
Entidad
n
Enviar cualquier mensaje a cualquier proceso Leer o copiar cualquier mensaje compartido entre dos procesos Leer mensajes o emitir mensajes falsos de peticin de servicios
50
Modelo de seguridad
Amenazas
n
Amenazas a servidores
n
Ciertos servicios no comprueban la identidad del cliente n Si la comprueban, no suele ser difcil suplantarla (spoofing) En vez de una peticin de servicio autntica se busca, p. ej., obtener informacin no autorizada o bloquear el servicio (DoS)
Amenazas a clientes
n
Inyeccin, copia o alteracin de mensajes que viajan por el canal Por ejemplo: obtener un mensaje de transferencia de dinero, cambiar la cuenta y reenviarlo despus
51
Modelo de seguridad
Tcnicas de seguridad
n n n
Autenticacin: comprobacin de la identidad del proceso Criptografa: uso de claves pblicas y privadas Canales seguros: canal de comunicacin sobre el que dos procesos han establecido una capa de seguridad basada en criptografa + autenticacin:
n n n
Se garantiza la identidad fiable de servidores y clientes Se garantiza la integridad y privacidad de los mensajes enviados Los mensajes incluyen una marca de tiempo para prevenir su repeticin o reordenacin maliciosa
52