Está en la página 1de 54

+

Sistemas Distribuidos
Modelos

Rodrigo Santamara

+ Modelos

Componentes

Plataforma
Middleware

Modelos fsicos
Modelos arquitectnicos
Modelos fundamentales
2

Modelos de sistema distribuido


n

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: clasificacin segn las principales
caractersticas de un sistema (interaccin, fallos, seguridad, etc.)

Componentes de un SD

Aplicaciones
de servicios
Middleware
Componentes
Sistema
operativo
Computador y
HW de red

Plataforma

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

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

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

+ Modelos

Componentes
Modelos fsicos
Modelos arquitectnicos
Modelos fundamentales

Modelos fsicos
n

Representacin de los elementos hardware en un SD


n

Abstraen los detalles de las tecnologas de red o de


computadores subyacentes

Sirven para diferenciar las distintas generaciones de SD


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)

Modelos fsicos
1G - Primeros sistemas distribuidos
n

Surgen en respuesta a las primeras redes locales (Ethernet)


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

10

Modelos fsicos
2G Sistemas distribuidos en Internet
n

Aparecen a raz del crecimiento de Internet


n

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

Aumenta el nmero de nodos (escala)

Aumenta la heterogeneidad
nfasis en la definicin de estndares abiertos (CORBA)

11

Modelos fsicos
3G- Sistemas distribuidos contemporneos
n

En 2G, los nodos de un sistema se consideraban


n

Estticos: permanecen en un lugar determinado


Discretos: no estn incluidos en otros dispositivos

Autnomos: independientes de otros dispositivos

Este concepto de nodo se rompe


n

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

Modelos fsicos
Generaciones
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)

+ Modelos

Componentes
Modelos arquitectnicos

Cliente - servidor
Mltiples servidores y proxies

Peer to peer

Modelos fundamentales
13

14

Modelos arquitectnicos
Tipos
n

Los tipos de modelos arquitectnicos se diferencian en


n
n

El reparto de responsabilidades entre componentes del sistema


La ubicacin de los componentes del sistema

Tipos de modelos
n

Cliente-servidor
n Servicios proporcionados por mltiples servidores
n

Otros derivados
Sistemas de igual a igual (peer to peer)

n
n

Servidores proxy y cachs

15

Modelo cliente-servidor

peticin

peticin

cliente

servidor

respuesta

servidor
peticin

cliente

respuesta

respuesta

16

Modelo cliente-servidor
n

La arquitectura ms comn e importante

Un servidor puede tambin ser cliente de otros


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 peridica y automatizada, para obtener
informacin (generalmente realizar copias para su posterior
uso en motores de bsqueda)

17

Modelo cliente-servidor
Servicios proporcionados por mltiples servidores
n

Replicacin para aumentar prestaciones y disponibilidad

Muchos servicios web redirigen a varios servidores replicados

cliente

servidor

servidor

cliente

servidor

18

Modelo cliente-servidor
Mltiples servidores: Google
n

Google Data Centers (2008)


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

19

Modelo cliente-servidor
Servidores proxy

servidor
proxy

cliente

servidor

servidor
cliente

Aumentan la disponibilidad y
prestaciones
n

Usan cachs con los datos ms


recientemente solicitados por los clientes

Tambin pueden utilizarse por motivos


de seguridad

20

Modelo cliente-servidor
Derivados
n

Cdigo mvil (applets)


n

El cdigo de un programa en el servidor es transferido al cliente


y es ejecutado localmente

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.

21

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

22

Modelo cliente-servidor
Cloud computing

Evolucin del cliente ligero


n

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

Amazon Web services: computacin en


granjas de servidores
n

Amazon Mechanical Turk (p. ej.


http://www.tenthousandcents.com/)

Web Desktops: almacenamiento y gestin


de archivos, sincronizacin
n Google Docs, DropBox, iCloud, etc.

23

Modelo cliente-servidor
Resumen de variantes
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

Cliente o Servidor

Servidor

Podras poner ejemplos de sistemas que


respondan a cada uno de estos modelos?

24

Modelo cliente-servidor
Dispositivos mviles y enlace espontneo
n

Avances tecnolgicos
n
n

El modelo cliente-servidor se adapta a estas dos nuevas


caractersticas
n
n

Dispositivos ms pequeos y transportables


Redes inalmbricas de fcil acceso

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

La conexin puede seguir un modelo peer-to-peer (redes ad hoc)


Ves alguna desventaja en este modelo
de aligeramiento de los clientes?

25

Sistemas peer-to-peer
aplicacin
-----------coordinacin

aplicacin
-----------coordinacin

aplicacin
-----------coordinacin

Reduce los retardos en la comunicacin

Eliminacin de intermediarios
n

Requisitos adicionales en los clientes

Ejemplos:
n
n
n

Voz: Skype, VoIP


Datos: Napster, BitTorrent
Comunicaciones: ad hoc networks

+ Modelos

Componentes
Modelos arquitectnicos
Modelos fundamentales

Modelos de interaccin
Modelos de fallo

Modelos de seguridad

26

27

Modelos fundamentales
n

Todas las arquitecturas comparten algunas propiedades


fundamentales:
n

Procesos que se comunican por paso de mensajes a travs de una


red de computadores

En particular, trataremos tres aspectos


n

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
n

Respecto a la interaccin, los sistemas distribuidos deben


tener en cuenta que
n
n
n
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

29

Modelo de interaccin
Prestaciones del canal de comunicacin
n

Latencia
n

Ancho de banda
n

Retardo entre el envo de un mensaje y su recepcin

Informacin que puede transmitirse en un intervalo de tiempo

Fluctuacin (jitter)
n

Variacin del tiempo invertido en repartir una serie de mensajes

30

Modelo de interaccin
Relojes y eventos de tiempo
n

Cada computador tiene su propio reloj interno (reloj local)


n

Tasa de deriva de reloj (clock drift rate)

Evolucin de la diferencia entre un reloj local y un reloj de


referencia perfecto
Receptores GPS

Network Time Protocol (NTP)

Mecanismos de ordenacin de eventos

Puede usarse en procesos locales para marcas de tiempo

Dos tipos de modelo de interaccin


n

Sncrono y asncrono

31

Modelo de interaccin
Modelos sncronos
n

Conocimiento de caractersticas temporales:


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

Aunque a veces se pueden utilizar, por ejemplo como timeouts

32

Modelo de interaccin
Modelos asncronos
n

No hay limitaciones en cuanto a


n

Velocidad de procesamiento
Retardos en la transmisin de mensajes

Tasas de deriva de los relojes

Los sistemas distribuidos reales suelen ser asncronos


n

Por ejemplo, Internet

Una solucin vlida para un sistema asncrono lo es tambin


para uno sncrono

33

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

De

Asunto

m3

Re: Reunin

m1

Reunin

m2

Re: Reunin

34

Modelo de interaccin
Ordenacin de eventos

35

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

Pero los relojes no suelen estar sincronizados


n
n
n

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

36

Modelo de interaccin
Ordenacin de eventos

1234

37

Modelo de fallo
n

Estudio de las causas posibles de fallo


n

Tipo de fallo segn la entidad


n
n

Para poder comprender sus consecuencias


Fallos de proceso
Fallos de comunicacin

Tipo de fallo segn el problema


n
n
n

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

38

Modelo de fallo
Fallo por omisin en procesos
n

Fallo del procesamiento (crash)

Fallo-parada (fail-stop)
n

Fallo de procesamiento que puede ser detectado con certeza por


el resto de procesos

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

39

Modelo de fallo
Fallo por omisin en comunicaciones

proceso p

proceso q

enva m

recibe m
fallo por
omisin de
comunicacin

fallo por
omisin de
envo
bfer de
mensajes
salientes

canal de comunicacin

fallo por
omisin de
recepcin
bfer de
mensajes
entrantes

40

Modelo de fallo
Fallos arbitrarios o bizantinos
n

En proceso:
n
n
n

En canales de comunicacin
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
Corrupcin de mensajes
Reparto de mensajes inexistentes
Duplicacin del reparto de mensajes autnticos

Origen: problema de los generales bizantinos


n

Lamport, Shostak and Pease (1982). The Bizantine Generals


Problem. ACM Transaction on Programming Languages and Systems
4 (3): 382-401
n http://vis.usal.es/rodrigo/documentos/papers/Lamport82.pdf

41

Modelo de fallo
Fallos bizantinos

42

Modelo de fallo
Fallo por omisin y arbitrarios (resumen)
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

43

Modelo de fallo
Fallos de temporizacin
n

Sistemas sncronos
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

Sistemas asncronos
n

No existen fallos de temporizacin, ya que no se ha dado ninguna


garanta al respecto

44

Modelo de fallo
Enmascaramiento de fallos
n

Construccin de servicios fiables a partir de componentes


que presenten fallos
n
n

Por ocultacin del error


Por conversin a fallos ms aceptables

Por ejemplo:
n

Checksum de fallo arbitrario a fallo por omisin


n +retransmisin de fallo por omisin a ocultacin

45

Modelo de fallo
Comunicacin fiable entre dos procesos
n

Debe cumplir con dos criterios:


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

El mensaje recibido es idntico al enviado, y no se repiten


mensajes
n
n

Protocolo que adjunta nmeros de secuencia a los mensajes


Canales de comunicacin seguros

No hay fallos bizantinos en el canal

46

Modelo de seguridad
n

La seguridad en un sistema distribuido se basa en la


seguridad de los procesos y canales utilizados
n

Entendida como seguridad de objetos


n Almacenados e invocados por los procesos
n

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 y derechos de acceso
n

Principal: autoridad con la que se ordena cada invocacin


de objetos o sus resultados
n

Se contrasta con los derechos de acceso de dicho objeto

48

Modelo de seguridad
Modelo de enemigo
n

Entidad
n

Cualquier mquina conectada (de forma autorizada o no) a la red

Enemigo: entidad capaz de


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

49

Modelo de seguridad
Amenazas
n

Amenazas a servidores
n

Amenazas a clientes
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)

Reciben un resultado falso de la invocacin al servicio


n Generalmente, acompaado de suplantacin de identidad

Amenazas a canales de comunicacin


n
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

50

Modelo de seguridad
Tcnicas de seguridad
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

51

52

Resumen
n

Un modelo da una idea aproximada de


lo que nos vamos a encontrar en un
sistema distribuido

Los modelos fsicos identifican qu


tipo de procesos y comunicacin
tenemos, principalmente en cuanto a
heterogeneidad y escala. Sirven para
clasificar los SD en generaciones

Los modelos arquitectnicos


determinan la relacin entre procesos,
desde cliente/servidor hasta pares
iguales

Los modelos fundamentales atienden


a cmo es el sistema desde el punto de
vista de la sincronizacin, la seguridad
y los fallos

Los SDs pueden ser sncronos o


asncronos, dependiendo de si
tenemos informacin sobre los lmites
temporales de la comunicacin o no

Los SDs pueden tener tres tipos de


fallos: por omisin (el proceso o canal
no funciona, anuncindolo o no),
arbitrarios (el proceso/canal funciona
mal) o temporales (se exceden los
lmites de tiempo en sistemas
sncronos)

Los SDs tienen que atender a distintos


problemas de seguridad, resueltos
generalmente con mtodos de
autenticacin y criptografa, aunque
no entraremos en detalle

53

Referencias
n

G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed


Systems: Concepts and Design (5th Ed). Addison-Wesley, 2011
n

Captulo 2: System Models

Lamport, Shostak and Pease (1982). The Bizantine Generals


Problem. ACM Transaction on Programming Languages and
Systems 4 (3): 382-401
n

http://vis.usal.es/rodrigo/documentos/papers/Lamport82.pdf

54

Todos los modelos estn equivocados, pero


algunos son tiles
George E. P. Box (estadstico, famoso por sus trabajos en modelado,
prediccin e inferencia bayesiana)

También podría gustarte