Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitecturas 1pp
Arquitecturas 1pp
Arquitectura de
los Sistemas
Distribuidos
ndice
Introduccin
Arquitecturas para computacin distribuida
Arquitecturas de computacin en Google
Modelo Map-Reduce y Pregel
Arquitectura cliente-servidor
Variaciones del modelo
Aspectos de diseo del modelo cliente/servidor
Arquitectura editor-subscriptor
Arquitectura Peer-to-peer
Sistemas P2P desestructurados
Sistemas P2P estructurados
Protocolo Chord
Sistemas Operativos Distribuidos
2
Arquitecturas de los SD
Organizacin lgica de componentes de aplicacin distribuida
Grado de acoplamiento
Sea cual sea el modelo, conlleva interaccin entre entidades
Interaccin tradicional implica acoplamiento espacial y temporal
Desacoplamiento espacial (de referencia)
Entidad inicia interaccin no hace referencia directa a la otra entidad
No necesitan conocerse entre s
Arquitecturas para CD
Maestro-trabajador M/T (aka maestro-esclavo)
M va repartiendo trabajos entre nodos trabajadores T
Tolerancia a fallos:
Cada de T: M reasigna sus trabajos pendientes (efectos laterales!)
Cada de M: punto crtico de fallo
int MPI_Cart_create(MPI_Comm comm, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart);
int MPI_Cart_shift(MPI_Comm comm_cart, int direction, int disp, int *rank_source, int *rank_dest);
Using MPI
William Gropp, Ewing Lusk y Anthony Skjellum (MIT Press)
Sistemas Operativos Distribuidos
6
Interaccin 1-N
Editor/subscriptor
Extensin de esquema guiado por eventos a SD
Facilita el desacoplamiento espacial y, potencialmente, el temporal
Interaccin M-N
Peer-to-peer
Procesos cooperantes con el mismo rol
Interaccin N-N
Modelo cliente/servidor
Arquitectura asimtrica: 2 roles en la interaccin
Cliente: Solicita servicio
Esquema cliente/servidor
Interfaz de Servicio
Peticin (args.)
Cliente
Servidor
Respuesta
Resp=Cdigo(args)
Mismas ops. para todos servicios pero sobre distintos recursos (REST)
nfasis en recursos: ops. CRUD (HTTP GET, PUT, DELETE, POST)
Ejemplo:
AddBook(nb) vs.
GUI
GUI + parte de la lgica de negocio
GUI + lgica de negocio
GUI + lgica de negocio + parte de lgica de acceso
Interfaz de Servicio 1
Peticin (args.)
Cliente
Respuesta
Proxy
Interfaz de Servicio 2
Respuesta
Peticin
Servidor
Sistemas Operativos Distribuidos
17
Open
Reverse
Cliente/servidor jerrquico
Servidor acta como cliente de otro servicio
Igual que biblioteca usa servicio de otra biblioteca
C
C
C
p
S
p
C
C
Cdigo mvil
Viaja el cdigo en vez de los datos y/o resultados
Requiere:
Arquitecturas homogneas o
Interpretacin de cdigo o
Mquinas virtuales
Modelos alternativos
Agentes mviles
Interfaz de Servicio
Peticin
Cliente
Cdigo
Servidor
Resp=Cdigo(args)
Evaluacin remota
Interfaz de Servicio
Peticin(args)+Cdigo
Cliente
Servidor
Respuesta
Resp=Cdigo(args)
mbito global
Mejor nombre de texto de carcter jerrquico (como pathname)
Transparencia de ubicacin
Posible replicacin: ID servicio (DMS1, PS1) | (DMS2, PS2) ....
Posibilidad de migracin de servicio (incluso en mitad de un servicio)
Convivencia de mltiples versiones del servicio
ID servicio = [DM+pto]
M2
M1
C DM2 + ptoS
Info. de contacto
Sistemas Operativos Distribuidos
28
DM2 + ptoS
Direccin de servicio
Fernando Prez Costoya
M1
C DM2+idsrv
1
Binder ptoB
Idsrv ptoS
M2
DM2 + ptoS S
Info. conocida
Mensaje
Info. binder
Binder ptoB
Fernando Prez Costoya
idsrv?
Binder ptoB
ptoS
2
M2
DM2 + ptoS S
Binder ptoB
idsrv
binder DM3+ptoB
idsrv
idsrv?
binder DM3+ptoB
DM2 + ptoS
2
M2
DM2 + ptoS S
binder DM3 +ptoB
M2
Idsrv ptoS
idsrv
BL ptoL | BG DM3+ptoB
DM2 + ptoL BL
Idsrv ptoS
M2 1
M3
Idsrv DM2
BG DM3 + ptoB
4 Idsrv DM2
Sistemas Operativos Distribuidos
33
DM2 + ptoS S
BL ptoL | BG DM3+ptoB
Fernando Prez Costoya
idsrv?
idsrv?
M1
idsrv
M2
Idsrv ptoS
1
DM2
M3
BG DM3 + ptoB
Idsrv DM2
Sistemas Operativos Distribuidos
34
ptoS
DM2 + ptoL BL
M2
DM2 + ptoS S
BL ptoL | BG DM3+ptoB
Fernando Prez Costoya
Binding
Caso con BG y BL + versiones:
Servidor:
Elige puerto local
Informa a binder local del alta:
(id. servicio + versin) = puerto
Cliente:
Consulta a binder global
Servidor concurrente
Solucin ms natural y que aprovecha paralelismo HW
Threads (T) vs. Procesos (P)
Generalmente threads: Ms ligeros y comparten ms recursos
Gestin de conexiones
En caso de que se use un esquema con conexin
1 conexin por cada peticin
1 operacin cliente-servidor
conexin, envo de peticin, recepcin de respuesta, cierre de conexin
open(f,...)
3
x N | pos 0
OPEN, f
x
f; inodo N
read(3,b,t)
3
x N | ant+tl
READ, x, t
DATOS, tl (ledo)
f; inodo N
lseek(3,m,p)
3
x N | pos p
LSEEK,x,m=SEEK_SET,p
p
f; inodo N
close(3)
3
CLOSE, x
OK
f; inodo N
open(f,...)
3 N | pos 0
BUSCAR, f
N
f; inodo N
read(3,b,t)
3 N | ant+tl
READ, N, ant, t
DATOS, tl (ledo)
f; inodo N
lseek(3,m,p)
3 N | pos p
f; inodo N
close(3)
3
f; inodo N
Beneficios
Facilita integracin y despliegue independiente de componentes
Facilita incorporacin de tcnicas de caching o polticas de seguridad
Leases
Mecanismo para mejorar tolerancia a fallos en SD
Modo de operacin
C2
C3
lock(m1)
lock(m2)
lock(m3)
..............
..............
..............
unlock(m1)
unlock(m2)
unlock(m3)
m1 libre
m2 C2
m3 libre
S
Fernando Prez Costoya
C2
C3
lock(m1)
lock(m2)
lock(m3)
..............
..............
..............
unlock(m1)
unlock(m2)
unlock(m3)
m1 C1
m2 C2
m3 libre
S
Fernando Prez Costoya
C2
C3
lock(m1)
lock(m2)
lock(m3)
..............
..............
..............
unlock(m1)
unlock(m2)
unlock(m3)
m1 C1
m2 C2
m3 libre
Sistemas Operativos Distribuidos
54
cola de mensajes de S
S
Fernando Prez Costoya
C2
C3
lock(m1)
lock(m2)
lock(m3)
..............
..............
..............
unlock(m1)
unlock(m2)
unlock(m3)
c1 lease(m1)
c3 lock(m3) cola de mensajes de S
c2 lease(m2)
Treinicio>Tlease S
C2
C3
lock(m1)
lock(m2)
lock(m3)
..............
..............
..............
unlock(m1)
unlock(m2)
unlock(m3)
m1 C1
m2 C2
m3 libre
c3 lock(m3)
cola de mensajes de S
S
Fernando Prez Costoya
Alternativas:
Uso de pocas:
Peticiones de cliente llevan asociadas un n de poca
En rearranque de cliente C: transmite (++n de poca) a servidores
Servidor aborta servicios de C con n de poca menor
Uso de leases:
Servidor asigna lease mientras dura el servicio
Si cliente no renueva lease se aborta el servicio
Modelo editor/subscriptor
Sistema de eventos distribuidos (Jini, s. eventos/notifi. CORBA)
Suscriptor S (subscriber) muestra inters por eventos
Se subscribe a ciertos eventos: filtro por tipo, por tema, por contenido
Modelo editor/subscriptor
Su1
suscribe(ev5)
notifica(ev5)
Su2
suscribe(ev3)
Su3
Su4
Ed1
publica(ev5)
suscribe(ev5)
notifica(ev5)
suscribe(ev1)
Ed2
Ed3
Ejemplo editor/suscriptor
Mercado burstil
Tipo de evento
Cada valor (V) del mercado
Subscriptor
Proceso interesado (PI) en operaciones sobre un determinado valor
Editores
Proceso que realiza operaciones (PO) sobre un determinado valor
Ed
genera
datos
genera
datos
imprime
datos
almacena
datos
proyecta
datos
imprime
datos
almacena
datos
proyecta
datos
Se1
Se2
Se3
Su1
Su2
Su3
Implementaciones editor/suscriptor
Su1
Su2
Ed1
Ed2
Su3
Su4
Su1
Su2
Ed1
Int.
Ed2
Su3
Ed3
Su4
Ed3
Su1
Int.
Su2
Su3
Su4
Ed1
Int.
Ed2
Int.
Ed3
Proceso intermediario
Red de intermediarios
Acoplamiento espacial
Desacoplamiento espacial
Desacoplamiento espacial
Escalabilidad y fiabilidad
Entidad
Entidad
Entidad
Entidad
Entidad
Entidad
Entidad
Entidad
Entidad
Interfaz de Dilogo
Estructurados:
Topologa de conexin prefijada (p.e. anillo en protocolo Chord)
Ubicacin de recursos predecible y dependiente de la topologa
Generalmente definida por funcin hash distribuida
Protocolo Chord
Hashing consistente asigna ID a clave recurso y a IP de nodo
ID con m bits tal que n recursos (K) + n nodos (N) << 2m
IDs organizados en anillo mdulo 2m
Proporciona distribucin uniforme
Fingers en anillo 24
Wikipedia Chord
Sistemas Operativos Distribuidos
76
Bsqueda en anillo 24
Wikipedia Chord
Sistemas Operativos Distribuidos
77
Alta de un nodo
Operacin join de nodo N:
Alta de un nodo
Np
Ns
Np
Ns
Np
Ns
Np
Ns
Nn
Nn
Nn
Nn
Estado
inicial
join(Nn)
stabilize(Nn)
stabilize(Np)
Baja de un nodo
Baja voluntaria de nodo implica acciones complementarias
Devolver recursos a nuevo sucesor
Informar a predecesor y sucesor para que reajusten estado