Está en la página 1de 28

Modelos de sistema - 2

Sistemas Distribuidos ITInformtica


Csar Llamas, febrero 2003
Algunos esquemas de esta presentacin estn tomados de:
Instructors Guide for Coulouris, Dollimore and Kindberg
Distributed Systems: Concepts and Design Edn. 3
Addison-Wesley Publishers 2000

ndice

Introduccin

Modelos arquitectnicos
Capas de software
Arquitecturas
Variaciones del modelo cliente-servidor
Interfaces y objetos
Requisitos de diseo

Modelos fundamentales
... de interaccin
... de fallo
... de seguridad

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Introduccin
El

modelo arquitectnico describe:

Interacciones entre componentes


Enlace con la plataforma de red:
simplifica y abstrae las funciones y roles de
los componentes individuales
El

enfoque CDK es un poco confuso

Estructura de niveles de software


Variantes del modelo cliente-servidor
Cdigo mvil
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

ntroduccin
Modelos

de requisitos no funcionales

Modelo de interaccin
Modelo de fallo
Modelo de seguridad

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelos arquitectnicos

capas de soft

Servicios de la aplicacin
Middleware
Sistema operativo
Hardware

Componentes

Plataforma

importantes:

Plataforma
Middleware

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelos arquitectnicos

capas de soft

Plataforma

Contiene los servicios propios de cada


computadora concreta
Depende del hardware y del S.O.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelos arquitectnicos
Permite

Middleware

enmascarar la heterogeneidad

Puede

dar un modelo y una interfaz de


programacin utilizable

Puede

soportar abstracciones como:

Llamadas a procedimientos remotos (RPC)


Comunicacin en grupo
Eventos, replicacin, servicios multimedia,
etc...
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelos arquitectnicos
Qu

middleware

forma tiene el middleware? :

Bibliotecas adicionales:
Procedimientos remotos (RPC)
Objetos remotos (RMI, CORBA)

Herramientas de programacin
Lenguajes de definicin de interfaces (IDL)
+ Compiladores para ellos

Servicios bsicos de ayuda


servicios de nombres, para buscar objetos
de notificacin de eventos,
De control de transacciones, etc.
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelos arquitectnicos
Qu

middleware

limitaciones impone?

Se incrementa la complejidad arquitectnica:


Hay ms niveles

Hay que aprender ms herramientas


Se pierde el control de bajo nivel sobre los
modos de fallo
Se depende de terceras partes,
...

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Arquitecturas de sistema
Modelo

ndice

cliente-servidor

Mltiples

servidores

Procesos

de igual a igual

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

10

Arquitecturas cliente servidor


Cliente

invocacin

cliente-servidor

invocacin

Servidor

respuesta

respuesta

Servidor
invocacin

Cliente

proceso

mquina

respuesta

Muy

habitual (DNS, Web, ftp, telnet, ...)


Un servidor puede ser cliente de otro
servicio (servidor web -> crawler)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Arquitecturas cliente servidor


Cliente

11

servidores mltiples
Servidor

Servidor

Cliente

Muy
26/03/2003

Servidor

usada en DNS, Web y NIS


Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

12

proxy y cach

Arquitecturas cliente servidor

Cach:

almacena los recursos ms


probablemente usados.

Un

cach puede responder a un esquema


de proxy
Los servidores proxy para el web aumentan
la disponibilidad.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

13

proxy y cach

Arquitecturas cliente servidor


Cliente web

Servidor web
Servidor
proxy

Cliente web

Usualmente, una
Intranet
26/03/2003

Servidor web

El resto de Internet

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

14

proxy y cach

Arquitecturas cliente servidor

Interfaz
Sujeto
+peticin ( )

sujetoReal
+peticin ( )

26/03/2003

Proxy
+peticin ( )

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Arquitecturas de sistema

15

procesos pares

Cuando

los roles entre procesos son de


igual a igual (peer-to-peer)
Desempean tareas semejantes
til al descomponer aplicaciones en tareas
coordinadas

Ejemplo:

Cooperacin y coordinacin
Algoritmos descentralizados
(coordinacin de agendas, trabajo
colaborativo, ...)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

16

Arquitecturas de sistema

procesos pares

Aplicacin

Aplicacin

Cdigo de
coordinacin

Cdigo de
coordinacin

Aplicacin
Cdigo de
coordinacin

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Ejemplos

Variaciones en el modelo cliente-servidor

Ejemplo:

17

applets para clientes Web

Para implementar interfaces complejos


Para simular un modelo push sobre Web

Cliente web

Cliente web

26/03/2003

Servidor web

Applet

Servidor

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

18

Ejemplos

Variaciones en el modelo cliente-servidor

Algunas

posibilidades:

Segn la ubicacin del cdigo del proceso


cliente:
9Cdigo esttico
Cdigo con movilidad (recolocacin del proceso)

Segn la proporcin de tareas que recae


sobre el cliente y el servidor
9Clientes al estilo habitual
Clientes ligeros de aplicaciones complejas
Computadoras de red
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Variaciones en el modelo cliente-servidor

19

cliente ligero

Aplicacin
centralizada
Distribucin

26/03/2003

Cliente
ligero (interfaz)

Procesamiento
(lgica de negocio)

Network Computer
o PC

Servidor de cmputo

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

20

10

Variaciones en el modelo cliente-servidor

Ms

red espontnea

posibilidades

Segn la conexin:
9Enlace esttico
Enlace dinmico (Dispositivos mviles y enlace
espontneo)

Conexin

espontnea

Metropolitana (GPRS, UTMS)


Media (x0 o x00 m) (Wavelan, Wireless 802.11b)
Corta (x o x0 m) (BlueTooth, infrarojos, HomeRF)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Variaciones en el modelo cliente-servidor

21

red espontnea

Music
service

Alarm
service

gateway
Internet

Hotel wireless
network

Discovery
service

Camera

TV/PC

26/03/2003

Laptop

PDA

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Guests
devices

22

11

Variaciones en el modelo cliente-servidor

Ventajas

red espontnea

del enlace espontneo

Facilidad de conexin a la red local


Facilidad de integracin con los servicios
locales
Cuestiones

a resolver

Problemas de conectividad (zonas sombra,


cambio de clula, ...)
Seguridad
Servicios de deteccin y/o descubrimiento
Admisin
Bsqueda
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

23

Variaciones en el modelo cliente-servidor


Ms

posibilidades

Segn el diseo de la interfaz entre procesos:


9Interfaz esttico
Interfaz orientado a llamada a procedimiento
remoto

Interfaz

remoto:

con llamada a procedimiento

9Esttico (el habitual en RPC)


Orientado a objetos (Dinmico)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

24

12

Interfaces y objetos
Interfaz

de un proceso
Conjunto de peticiones a que responde

Estilos

Mediante interfaces de mdulos mdulos


Soportado en Modula2, RPC, ...
Mediante la interfaz de los objetos en OOP
Soportado de modo natural para SD en:
Java RMI
CORBA

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

25

Interfaces y objetos para S.D.

Los procesos contienen objetos cuyos


mtodos podemos invocar de modo
remoto
Es

deseable que las referencias a los


objetos remotos se usen de modo
transparente (como las locales)

No

podemos hablar exclusivamente de


procesos cliente y procesos servidor, sino
de objetos cliente y objetos servidor

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

26

13

Requisitos de diseo para arquitecturas distribuidas

Requisitos no funcionales (Anlisis del


sistema)
medibles
Requisitos de rendimiento o prestaciones
Requisitos de calidad de servicio
(cuestin relacionada: cach y replicacin)

no medibles (fiabilidad)
Tolerancia
Seguridad
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Requisitos de diseo ...

27

sobre prestaciones

Capacidad de respuesta (responsiveness)


Est limitada por:
La velocidad de las redes
La velocidad de los nodos, y en este caso
La cantidad de capas (middleware).

Productividad (throughput)
Tareas completadas /tiempo

Balance de cargas (disminuyen la competicin)


Entre computadoras alternativas
Entre los procesos implicados

26/03/2003

Ej: 1000 reservas de


billete por segundo.

Ej: la carga media


de cada servidor
debe estar
balanceada y no
superar el 50 %

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

28

14

Requisitos de diseo ...


Calidad de
Servicio
(en general):

sobre calidad de servicio

Capacidad de respuesta,
Productividad,
Balance de carga
+ fiabilidad, seguridad, adaptabilidad

Indicador de la aceptabilidad de un servicio


Est relacionada con fiabilidad, seguridad y
adaptabilidad.
Actualmente se recomienda usar QoS para hacer
referencia a la capacidad de garantizar tasas de
transferencia y tiempos lmite (en telecomunicaciones)
... Importante para datos crticos en el tiempo
(caudales de sonido, de vdeo, etc...)

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Requisitos de diseo ...

29

sobre prestaciones

Las

prestaciones son un obstculo


principal para el despliegue de soluciones
distribuidas
Al usar rplicas y
cach, se disminuye comunicacin y tiempos.

Ejemplo:

protocolo de cach de web (para


navegadores y clientes web)
Recurso + tiempo de expiracin + tiempo
local del servidor web

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

30

15

Requisitos de diseo ...

Correccin

Tolerancia a fallos

sobre fiabilidad

Se consigue introduciendo redundancia en recursos


software y en componentes fsicos;
Computadoras, procesos, enlaces de red, ...

tambin con protocolos con reconocimiento, y


con mecanismos de recuperacin.

Seguridad
Proteccin activa y pasiva contra ataques, y
Mecanismos de seguridad criptogrfica.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

31

Modelos fundamentales

Modelo: contiene los elementos esenciales


para comprender y razonar sobre el
sistema
Manifiesta las premisas del sistema
Generaliza sobre lo que es posible o no.
Principales

modelos:

De interaccin
De fallo
De seguridad
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

32

16

Modelo de Interaccin
proceso p
enva(m)

emisin

canal recepcin

proceso q
recibe(m)

La

forma en que se produce el paso de


mensajes entre los procesos restringe los
modos de interaccin
Retrasos, precisin, y tiempo
Modelo de
Programacin
distribuido

26/03/2003

Modelo de
comunicacin

Modelo de
Canal de
comunicacin

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

33

Modelo de interaccin
Problemas

del canal

presentados en las prestaciones

Latencia: Retardo entre la emisin y recepcin:


acceso + transmisin + propagac. niveles soft.
Velocidad limitada (Datos/t)
Fluctuacin o cortes (jitter)
Problemas

presentados en la nocin de
tiempo (timestamps de cada evento):
Derivas (diferencia horaria) diferentes
Tasas de derivas (ritmo de deriva) diferentes

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

34

17

Modelo de interaccin

tiempo y sincronicidad

En virtud del modelo de comunicacin aparecen


dos familias de sistemas:
Sistemas distribuidos sncronos
Sistemas distribuidos asncronos
Sistema distribuido sncrono

Sistema distribuido
asncrono

Respuesta de los
procesos

Timeouts superior e inferior en Velocidad de proceso


cada etapa de proceso
muy variable

Tiempo de
comunicacin

Timeouts de recepcin
conocidos

Retardos
imprevisibles en la
transmisin

Error en los
relojes

Tasas de deriva locales


conocidas

Tasas de de deriva
imprevisibles

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelo de interaccin

35

tiempo y sincronicidad

Consecuencia bsica de la asincronicidad


en un sistema asncrono los eventos
pueden observarse desordenados con
respecto a su generacin

Ejemplo:
1.

El usuario X enva un mensaje con el


tema Reunin.

2.

Los usuarios Y y Z responden con un


mensaje con el tema Re: Reunin.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

36

18

tiempo y sincronicidad

Modelo de interaccin

Bandeja de entrada
Elemento Emisor Asunto
23

Re: Reunin

24

Reunin

25

Re: Reunin

Si rompe la relacin de causalidad

Si los relojes de X, Y y Z pudieran sincronizarse,


podramos observar la secuencia ordenada.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

tiempo y sincronicidad

Modelo de interaccin
X

enva m1

recibe

recibe

recibe

enva m2

37

recibe
enva m3

recibe recibe

observador
23
t1
26/03/2003

t2

t3

24 25

Tiempo fsico

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

38

19

Modelo de interaccin

tiempo y sincronicidad

Posibilidad en sistemas asnconos:


Relojes lgicos: Proporcionan enteros consecutivos que
permiten ordenar eventos marcados por un timestamp,
con la relacin de orden ocurri_antes(S1,S2).
X enva m1 antes de que Y reciba m1
T(enva(X,m1)) < T(recibe(Y,m1))
ocurri_antes(enva(X,m1), recibe(Y,m1))
Y recibe m1 antes de enviar m2
T(recibe(Y,m1)) < T(enva(Y,m2))
ocurri_antes(recibe(Y,m1), enva(Y,m2))
Luego, por transitividad:
T(enva(Y,m2)) < T(recibe(X,m2))
ocurri_antes(enva(X,m1), enva(Y,m2))
X enva m1 antes de que Y enve m2

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelo de fallo
Fallo

39

tipos

por omisin (del proceso, o del canal)

Los componentes no cumplen sus funciones


de

temporizacin
El fallo arbitrario requiere una categora
especial (o binzantinos)
Temas de robustez y fiabilidad frente a fallos
Enmascaramiento de fallos
Fiablidad y comunicacin uno a uno
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

40

20

tipos

Modelo de fallo
Rotura o cada (crash)

El proceso se detiene indefinidamente, y el error puede no


ser detectable.
Opciones:
1.

Un protocolo temporizado puede detectar fallos en la


operacin.

2.

Un mecanismo de encuesta (polling) puede detectar


fallos.

Es mejor que ciertos procesos caigan antes que


fallar y funcionar mal.
El diseo es ms simple si se supone que los
procesos errneos caen y se detecta la cada.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

41

tipos

Modelo de fallo
Fallo-detencin (fail-stop)

Cada detectable
Opciones: Se recoge una notificacin de cada
Posiblemente
admite
reintentos

Omisin de emisin

R 

Se completa enva(), pero no llega a emitirse el mensaje


Opciones: enva() devuelve un mensaje de error, que
hay que catalogar
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

42

21

tipos

Modelo de fallo
Omisin de recibimiento

Se completa la recepcin (escucha), pero no se recibe()


el mensaje
Opciones:
1.

recibe() emite un error que hay que catalogar

2.

Si recibe() est temporizado no se emite error y hay


que interrogar a la interfaz de red.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

tipos

Modelo de fallo
Omisin del canal

43

El mensaje no llega a ser escuchado


Opciones:
1.

26/03/2003

Si recibe() est temporizado no se emite error y hay


que interrogar a la interfaz de red.

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

44

22

tipos

Modelo de fallo
Fallo arbitrario (bizantino)

El sistema presenta un comportamiento arbitrario:


omisiones, tiempos arbitrarios, paradas, fallos.
Opciones:
1.

Intentar catalogar el fallo de un modo ms preciso


mediante sondeos.

2.

Incluir comprobaciones para descartar


comportamientos puntualmente errneos (ej:
checksums)

3.

El sistema puede tener que parar completamente para


no ocasionar daos.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

tipos

Modelo de fallo
Fallo en el reloj

45

La tasa de deriva del reloj es excesiva, y afecta al proceso


local.
Opciones:
1.

Sincronizar frecuentemente.

2.

Considerar invlido el reloj local.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

46

23

tipos

Modelo de fallo
Fallo de prestaciones en el proceso

El proceso se demora en exceso


Opciones:
1.

Introducir un protocolo de sondeo con procesos de


apoyo, para descartar fallos en el canal.

2.

Invalidar el proceso mediante timeouts.

Fallo de prestaciones en el canal

La transmisin se demora en exceso.


Opciones:
1.

Introducir un protocolo de sondeo con procesos de


apoyo, para descartar fallos en el proceso.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelo de fallo

47

enmascaramiento de fallo

An

es posible construir servicios fiables


con componentes que presenten fallos.
Ocultndolos bajo una capa software que se
recupere de ciertos fallos
Ejemplo: TCP/IP sobre red no fiable.
(Reintentos) + (Reordenamiento)

Convirtindolo en un fallo ms aceptable


Ejemplo: un fallo en un checksum de un dato
recibido (fallo arbitrario) se puede convertir en un
fallo por omisin del canal.
(Comprobaciones auxiliares)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

48

24

Modelo de fallo
Mediante

enmascaramiento de fallo

redundancia y replicacin

Ej: sistema de varios servidores con rplicas


Ej: sistema RAID para archivos.
(soluciones ad-hoc) ...
El

enmascaramiento y ocultacin del fallo


suele requerir el diseo de un servicio de
ms alto nivel:
Ej: la pila de niveles de transporte TCP e
ISO/OSI no solo elevan el nivel de
abstraccin sino que enmascaran y ocultan
muchos fallos.

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

49

Modelo de seguridad

Las tcnicas de seguridad permiten la


comprobacin de fallos y la minimizacin de su
posible aparicin:

Comunicacin fiable

Validez de la comunicacin:
cualquier mensaje enviado() ser escuchado.
Integridad de la comunicacin:
Cualquier mensaje recibido() es correcto y respeta la
secuencialidad.

Amenazas:
Duplicacin de mensajes, desorden, corrupcin del
mensaje, revelacin, (y sigue...)

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

50

25

Modelo de seguridad
A

amenazas

los procesos:

Acceso indebido a los recursos


Ataque a la integridad del proceso
Suplantacin de los principales interlocutores
Falsificacin de servicios
Falsificacin de peticiones

26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelo de seguridad
A

51

amenazas

los canales:

Acceso indebido al canal


Captura de mensajes
Reenvo de mensajes
Eliminacin de mensajes
Modificacin de mensajes y de cdigo mvil
A

la disponibilidad del servicio:

Ataque a la integridad de los servicios


Ataque de denegacin de servicio
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

52

26

amenazas

Modelo de seguridad
proceso p

emisin

enva(m)

canal recepcin

proceso q
recibe(m)

enemigo
Principal emisor

Seguridad

Principal receptor

de...

Las interacciones en procesos y canales


Las acciones de acceso a objetos (derechos)
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

Modelo de seguridad
Criptografa

pblica)

53

tcnicas

(de clave secreta y de clave

Encriptacin para preservar la privacidad


Firmas para preservar la autenticidad
Autenticacin para preservar la identidad
Contrato digital para preservar la legalidad
Ejemplos

de servicios seguros

Correo electrnico seguro


Pagos seguros por Internet
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

54

27

Modelo de seguridad
Tcnicas

tcnicas

sobre derechos de acceso

Control de acceso a los recursos


Control de acceso a los servicios
Tcnicas

de filtrado y seguridad de trfico


en redes.
Mecanismos de confianza por dominios
Proteccin pasiva
Cortafuegos

Tunelizacin
...
26/03/2003

Sistemas Distribuidos (I.T.Informtica - UVA (c) Csar Llamas Bello 2003)

55

28