Está en la página 1de 52

+

Sistemas Distribuidos
Modelos
Rodrigo Santamara
+
Modelos
Componentes
Plataforma
Middleware
Modelos fsicos
Modelos arquitectnicos
Modelos fundamentales
2
+
Modelos de sistema distribuido
! 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
! 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.)
3
+
Componentes de un SD
Aplicaciones
de servicios
Middleware
Sistema
operativo
Computador y
HW de red
Componentes
4
+
Componentes de un SD
Plataforma
Aplicaciones
de servicios
Middleware
Sistema
operativo
Computador y
HW de red
Plataforma
Windows / Intel x86
Linux / Intel x86
MacOS / PowerPC
Sun OS / Sun SPARC
Solaris / Intel x86
5
+
Componentes de un SD
! Capa de SW cuyo propsito es enmascarar la diversidad
subyacente y proporcionar un modelo de programacin
conveniente
! Soporta abstracciones como
! Procedimientos de invocacin remota
! Comunicacin entre grupos de procesos
! Notificacin de eventos
! Replicacin de datos compartidos
! Transmisin de datos en tiempo real
Middleware
6
+
Componentes de un SD
! Algunos ejemplos:
! 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
! ISIS
! DCOM
! RM-OPD
Middleware
7
+
Modelos
Componentes
Modelos fsicos
Modelos arquitectnicos
Modelos fundamentales
8
+
Modelos fsicos
! Representacin de los elementos hardware en un SD
! Abstraen los detalles de las tecnologas de red o de
computadores subyacentes
! Sirven para diferenciar las distintas generaciones de SD
! A partir de un modelo base:
! Definicin de SD: componentes informticos localizados en una
red que se comunican por paso de mensajes
! Considerando los distintos desafos
! Escalabilidad
! Heterogeneidad
! Transparencia
! Calidad (tolerancia a fallos, seguridad, concurrencia)
9
+
Modelos fsicos
! Surgen en respuesta a las primeras redes locales (Ethernet)
! 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)
10
1G - Primeros sistemas distribuidos
+
Modelos fsicos
! Aparecen a raz del crecimiento de Internet
! P. ej. en 1996 Google lanza su primer motor de bsqueda
! El SD empieza a concebirse en un entorno de redes
interconectadas, es decir, una red de redes (Internet)
! Aumenta el nmero de nodos (escala)
! Aumenta la heterogeneidad
! nfasis en la definicin de estndares abiertos (CORBA)
11
2G Sistemas distribuidos en Internet
+
Modelos fsicos
! En 2G, los nodos de un sistema se consideraban
! Estticos: permanecen en un lugar determinado
! Discretos: no estn incluidos en otros dispositivos
! Autnomos: independientes de otras computadores
! Este concepto de nodo se rompe
! 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
12
3G- Sistemas distribuidos contemporneos
+
Modelos fsicos
Generacin 1 (Inicios) 2 (Internet) 3 (Contempornea)
poca 1970-1985 1985-2005 2005-
Escalabilidad
Baja Alta Muy alta
Heterogeneidad
Limitada
(configuraciones
homogneas)
Significativa
(plataformas,
lenguajes,
middleware)
Nuevas dimensiones,
(arquitecturas,
dispositivos)
Extensibilidad
No es una
prioridad
Significativa
(estndares)
Desafo (los estndares
no cubren sistemas
complejos)
Calidad
Inicios Significativa
(algunos
servicios)
Desafo (los servicios
no cubren sistemas
complejos)
13
Generaciones
+
Modelos
Componentes
Modelos arquitectnicos
Cliente - servidor
Mltiples servidores y proxies
Peer to peer
Modelos fundamentales
14
+
Modelos arquitectnicos
! Los tipos de modelos arquitectnicos se diferencian en
! El reparto de responsabilidades entre componentes del sistema
! La ubicacin de los componentes del sistema
! Tipos de modelos
! Cliente-servidor
! Servicios proporcionados por mltiples servidores
! Servidores proxy y cachs
! Sistemas de igual a igual (peer to peer)
Tipos
15
+
Modelo cliente-servidor
cliente
cliente
servidor
servidor
peticin
respuesta
peticin
respuesta
peticin
respuesta
16
+
Modelo cliente-servidor
! La arquitectura ms comn e importante
! Un servidor puede tambin ser cliente de otros
! 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
! 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)
17
+
Servicios proporcionados por
mltiples servidores
! Replicacin para
aumentar prestaciones
y disponibilidad
! Muchos servicios web
redirigen a varios
servidores replicados
cliente
cliente
servidor
servidor
servidor
18
+
Mltiples servidores
! Google Data Centers (2008)
! 12 dedicados, 24 compartidos
Ejemplo
http://royal.pingdom.com/2008/04/11/map-of-all-google-data-center-locations/
http://www.google.com/about/datacenters/locations/index.html
19
+
Servidores proxy
! Aumentan la disponibilidad y
prestaciones
! Usan cachs con los datos ms
recientemente solicitados por los clientes
! Tambin pueden utilizarse por motivos
de seguridad
cliente
cliente
servidor
proxy
servidor
servidor
20
+
Sistemas peer-to-peer
! Reduce los retardos en la comunicacin
! Eliminacin de intermediarios
! Requisitos adicionales en los clientes
! Ejemplos:
! Voz: Skype, VoIP
! Datos: Napster, BitTorrent
! Comunicaciones: ad hoc networks
aplicacin
------------
coordinacin
aplicacin
------------
coordinacin
aplicacin
------------
coordinacin
21
+
Modelo cliente-servidor
! Cdigo mvil (applets)
! El cdigo de un programa en el servidor es transferido al cliente
y es ejecutado localmente
! Agente mvil
! Un programa en ejecucin (cdigo y datos) se traslada/copia de
un computador a otro en la red realizando una determinada tarea:
! Instalacin y mantenimiento de software
! Comparacin de precios de productos
! Clculo intensivo mediante varios ordenadores
! Programa gusano: concepto similar al de agente mvil, pero
generalmente con connotaciones negativas
! Virus, spam, phising, etc.
Derivados
22
+
Modelo cliente-servidor
! Computadores en red
! 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
! 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
! Inconveniente: actividades altamente interactivas y de clculo
intensivo: interfaces grficas
Derivados
23
+
Modelo cliente-servidor
! Evolucin del cliente ligero
! El cliente no pierde su autonoma (sistema
operativo, aplicaciones locales) pero puede
acceder a servicios y archivos remotos
! Usualmente a travs de un navegador
! Ejemplos:
! Amazon Web services: computacin en
granjas de servidores
! Amazon Mechanical Turk (p. ej.
http://www.tenthousandcents.com/)
! Web Desktops: almacenamiento y gestin
de archivos, sincronizacin
! Google Docs, DropBox, iCloud, etc.
Cloud computing
24
+
Modelo cliente-servidor
Modelo mbito Ejecucin Almacenamiento
Cliente-servidor Un servicio Servidor Servidor
Cdigo mvil Un programa Cliente (previa descarga) Clientes
Agente mvil Un programa Cliente (descarga/viaje
inteligente)
Clientes
Computador en red Todo/casi todo el
software
Cliente Servidor
Cliente ligero Todo/casi todo el
software
Servidor Servidor
Cloud Computing Algunos programas Servidor Servidor
25
Resumen de variantes
+
Modelo cliente-servidor
! Avances tecnolgicos
! Dispositivos ms pequeos y transportables
! Redes inalmbricas de fcil acceso
! El modelo cliente-servidor se adapta a estas dos nuevas
caractersticas
! 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
! La conexin puede seguir un modelo peer-to-peer (redes ad hoc)

Dispositivos mviles y enlace espontneo
26
+
Modelos
Componentes
Modelos arquitectnicos
Modelos fundamentales
Modelos de interaccin
Modelos de fallo
Modelos de seguridad
27
+
Modelos fundamentales
! Todas las arquitecturas comparten algunas propiedades
fundamentales:
! Procesos que se comunican por paso de mensajes a travs de una
red de computadores
! En particular, trataremos con tres aspectos
! 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.
28
+
Modelo de interaccin
! Respecto a la interaccin, los sistemas distribuidos deben
tener en cuenta que
! 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
! 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
29
+
Modelo de interaccin
! Latencia
! Retardo entre el envo de un mensaje y su recepcin
! Ancho de banda
! Informacin que puede transmitirse en un intervalo de tiempo
! Fluctuacin (jitter)
! Variacin del tiempo invertido en repartir una serie de mensajes
Prestaciones del canal de comunicacin
30
+
Modelo de interaccin
! Cada computador tiene su propio reloj interno (reloj local)
! Puede usarse en procesos locales para marcas de tiempo
! Tasa de deriva de reloj (clock drift rate)
! Diferencia entre un reloj local y un reloj de referencia perfecto
! Receptores GPS
! Network Time Protocol (NTP)
! Mecanismos de ordenacin de eventos
! Dos tipos de modelo de interaccin
! Sncrono y asncrono
Relojes y eventos de tiempo
31
+
Modelo de interaccin
! Conocimiento de caractersticas temporales:
! 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
! Aunque a veces se pueden utilizar, por ejemplo como timeouts
Modelos sncronos
32
+
Modelo de interaccin
! No hay limitaciones en cuanto a
! Velocidad de procesamiento
! Retardos en la transmisin de mensajes
! Tasas de deriva de los relojes
! Los sistemas distribuidos reales suelen ser asncronos
! Por ejemplo, Internet
! Una solucin vlida para un sistema asncrono lo es tambin
para uno sncrono
Modelos asncronos
33
+
Modelo de interaccin
! 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)
! X manda un mensaje m
1
con el asunto Reunin
! Y y Z responden con mensajes m
2
y m
3
, 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:
Ordenacin de eventos
Mensaje De Asunto
m
3
Z Re: Reunin
m
1
X Reunin
m
2
Y Re: Reunin
34
+
Modelo de interaccin
Ordenacin de eventos
35
+
Modelo de interaccin
! Si los relojes de X, Y y Z estuvieran sincronizados, podramos
incluir el tiempo local t
1
, t
2
, t
3
en los mensajes m
1
, m
2
, m
3
! Estaramos seguros de que t
1
< t
2
< t
3
! Podramos ordenar los mensajes en concordancia
! Pero los relojes no suelen estar sincronizados
! 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
! Un mensaje siempre se recibe despus de enviarlo
! X manda m
1
antes de que Y reciba m
1
! La rplica no se enva hasta que no se ha recibido el original
! Y recibe m
1
antes de que enve m
2
Ordenacin de eventos
36
+
Modelo de interaccin
Ordenacin de eventos
1"2"3"4
37
+
Modelo de fallo
! Estudio de las causas posibles de fallo
! Para poder comprender sus consecuencias
! Tipo de fallo segn la entidad
! Fallos de proceso
! Fallos de comunicacin
! Tipo de fallo segn el problema
! Fallos por omisin
! No se consigue realizar una accin que se debera poder hacer
! Fallos arbitrarios (bizantinos)
! Errores de cualquier tipo, fuera del esquema de mensajes
! Fallos de temporizacin
! Superacin de tiempos lmite en un sistema sncrono
38
+
Modelo de fallo
! Fallo del procesamiento (crash)
! Deteccin del fallo por timeouts (sncrono)
! Si el proceso no responde, consideramos que ha habido un fallo
! En sistemas asncronos, nunca podemos estar seguros
! Fallo-parada (fail-stop)
! Fallo de procesamiento que puede ser detectado con certeza por
el resto de procesos
Fallo por omisin en procesos
39
+
Modelo de fallo
Fallo por omisin en comunicaciones
enva m recibe m
proceso p proceso q
canal de comunicacin
bfer de
mensajes
entrantes
bfer de
mensajes
salientes
fallo por
omisin de
recepcin
fallo por
omisin de
comunicacin
fallo por
omisin de
envo
40
+
Modelo de fallo
! En proceso:
! 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
! Corrupcin de mensajes
! Reparto de mensajes inexistentes
! Duplicacin del reparto de mensajes autnticos
! Origen: problema de los generales bizantinos
! Lamport, Shostak and Pease (1982). The Bizantine Generals
Problem. ACM Transaction on Programming Languages and Systems
4 (3): 382-401
Fallos arbitrarios o bizantinos
41
+
Modelo de fallo
Fallos bizantinos
42
+
Modelo de fallo
Tipo de fallo Afecta a Descripcin
Fallo-parada
(fail-stop)
Proceso El proceso para y permanece parado
Otros procesos pueden detectar la parada
Ruptura
(crash)
Proceso El proceso para y permanece parado
Otros procesos pueden no detectar la parada
Omisin Canal Un mensaje insertado en un bfer de mensajes
salientes nunca llega al bfer de mensajes
entrantes del destino
Omisin de
envo
Proceso Un proceso completa el envo pero no se coloca el
mensaje en el bfer de mensajes salientes
Omisin de
recepcin
Proceso El mensaje se coloca en el bfer de recepcin pero
el proceso no lo recibe
Arbitrario
(bizantino)
Proceso
o canal
El proceso/canal presenta un comportamiento
arbitrario: omisiones, paradas, envos o pasos
incorrectos sin patrn claro
Fallo por omisin y arbitrarios (resumen)
43
+
Modelo de fallo
! Sistemas sncronos

! Sistemas asncronos
! No existen fallos de temporizacin, ya que no se ha dado ninguna
garanta al respecto
Fallos de temporizacin
Tipo de fallo Afecta a Descripcin
Reloj Proceso El reloj local del proceso excede el lmite de su
tasa de deriva respecto al tiempo de referencia
Prestaciones Proceso El proceso excede el lmite sobre el intervalo
entre dos pasos
Prestaciones Canal La transmisin de un mensaje toma ms tiempo
que el lmite permitido
44
+
Modelo de fallo
! Construccin de servicios fiables a partir de componentes
que presenten fallos
! Por ocultacin del error
! Por conversin a fallos ms aceptables
! Por ejemplo:
! Checksum " de fallo arbitrario a fallo por omisin
! +retransmisin " de fallo por omisin a ocultacin
Enmascaramiento de fallos
45
+
Modelo de fallo
! Debe cumplir con dos criterios:
! Validez
! Cualquier mensaje en el bfer de mensajes salientes llegar,
eventualmente, al bfer de mensajes entrantes
! Es decir, no hay fallos por omisin en el canal
! Integridad
! El mensaje recibido es idntico al enviado, y no se repiten
mensajes
! Protocolo que adjunta nmeros de secuencia a los mensajes
! Canales de comunicacin seguros
! No hay fallos bizantinos en el canal
Comunicacin fiable entre dos procesos
46
+
Modelo de seguridad
! La seguridad en un sistema distribuido se basa en la
seguridad de los procesos y canales utilizados
! Entendida como seguridad de objetos
! Almacenados e invocados por los procesos
! Transmitidos a travs de los canales
! Se logra mediante un sistema de derechos de acceso y
distintos tipos de autoridad
47
+
Modelo de seguridad
! Principal: autoridad con la que se ordena cada invocacin
de objetos o sus resultados
! Se contrasta con los derechos de acceso de dicho objeto
Principal y derechos de acceso
48
+
Modelo de seguridad
! Entidad
! Cualquier mquina conectada (de forma autorizada o no) a la red
! Enemigo: entidad capaz de
! 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
Modelo de enemigo
49
+
Modelo de seguridad
! Amenazas a servidores
! Ciertos servicios no comprueban la identidad del cliente
! 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
! Reciben un resultado falso de la invocacin al servicio
! Generalmente, acompaado de suplantacin de identidad
! Amenazas a canales de comunicacin
! 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
Amenazas
50
+
Modelo de seguridad
! 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:
! 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
Tcnicas de seguridad
51
52

También podría gustarte