Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Distribuidos
1 / 47
ndice
Sistemas Distribuidos
2 / 47
Sistemas Distribuidos
3 / 47
Sistemas abiertos
La consistencia fuerte slo se necesita en algunos casos
En la mayora de los casos, se puede tolerar una consistencia
eventual (W. Vogels. Eventually Consistent. ACM Queue vol. 6, no. 6,
December 2008.)1
http://queue.acm.org/detail.cfm?id=1466448
Sistemas Distribuidos
4 / 47
Heterogeneidad
Redes
Hardware
Sistemas Operativos
Middleware
Extensibilidad
Seguridad
Escalabilidad
Tratamiento de Fallos
Concurrencia
Transparencia
Sistemas Distribuidos
5 / 47
Sistemas Distribuidos
6 / 47
Herramientas:
Protocolos de comunicacin
APIs estndar (Middleware)
Sistemas Abiertos (i.e. CORBA, Internet, etc.)
Especificaciones pblicas
Mecanismos de comunicacin estandarizados
Utilizando hardware y software COTS
Sistemas Distribuidos
7 / 47
Sistemas Distribuidos
8 / 47
Herramientas:
PKIs, SSL, Servicios de Directorio, Proxys anonimizadores, funciones
de hash, etc.
Sistemas Distribuidos
9 / 47
Soluciones:
Uso de software eficiente en tiempo y espacio
Patrones de diseo y de cdigo (idiomas) para manejar eficientemente
conexiones, threads, etc.
Uso de cachs, consistencia eventual, etc.
Uso de algoritmos altamente paralelizables (programacin funcional,
lgica, algoritmos Map/Reduce), etc.
Sistemas Distribuidos
10 / 47
Sistemas Distribuidos
11 / 47
Sistemas Distribuidos
12 / 47
de localizacin
de concurrencia
de replicacin
ante fallos
...
Sistemas Distribuidos
13 / 47
No escalables
Cmo aadir ms recursos?
Sistemas Distribuidos
14 / 47
Sistemas Distribuidos
15 / 47
Sistemas Distribuidos
16 / 47
Servidor
HTTP
Browser
HTTP
Internet
TCP/IP
HTTP
Nivel 1
Sistemas Distribuidos
P
aginas
HTML
SGBD
Prog.
CGI
Servidor
SMTP
Nivel 2
Nivel 3
17 / 47
Sockets
API de bajo nivel
Gestin de errores?
No hay tipos de datos... comprobacin?
etc.
Sistemas Distribuidos
18 / 47
Arquitecturas 2 y 3 niveles
Cliente
Presentaci
on
Logica del negocio
Acceso a datos
Servidor
Servidores BD
Sistemas Legacy
etc.
Nivel 1
Nivel 2
Cliente
Presentaci
on
Servidor
Servidores BD
Sistemas Legacy
etc.
Nivel 1
Nivel 2
Nivel 3, ...
Sistemas Distribuidos
19 / 47
Sistemas Distribuidos
20 / 47
Sistemas Distribuidos
21 / 47
Sistemas Distribuidos
22 / 47
Sistemas Distribuidos
23 / 47
Message-Oriented Middleware
Sncrono/asncrono
Normalmente Suscripcin/Respuesta
Documentos XML Mensajes
Loose Coupling
JMS, AMQP, ActiveMQ, MQ, MSMQ, D-Bus, etc.
ESBs: Mensajera + Servicios de dominio
Diego Sevilla Ruiz (DITEC Facultad de Informtica)
Sistemas Distribuidos
24 / 47
D-Bus
Sistemas Distribuidos
25 / 47
D-Bus (ii)
Sistemas Distribuidos
26 / 47
D-Bus (iii)
$ dbus - monitor
method call sender =:1.751 -> dest = org . gnome . GConf
serial =2 path =/ org / gnome / GConf ; interface = org .
gnome . GConf ; member = GetIOR
method return sender =:1.4 -> dest =:1.751 reply_serial
=2
string " IOR :01..."
signal sender = org . freedesktop . DBus -> dest =( null
destination ) serial =1218 path =/ org / freedesktop /
DBus ; interface = org . freedesktop . DBus ; member =
NameOwnerChanged
string ":1.751"
string ":1.751"
Sistemas Distribuidos
27 / 47
Peer to Peer
Sistemas Distribuidos
28 / 47
Web Services/SOA
Sistemas Distribuidos
29 / 47
30 / 47
REST (ii)
Patrn arquitectural de desarrollo de aplicaciones sobre el Web
Desarrollado por Roy T. Fielding en su tesis doctoral
Aprovecha el web tal y como est
El web ha sido escalable hasta ahora por tener una serie de
requisitos: se aplicarn a REST
Identificacin de recursos
Todos los elementos accedidos remotamente tienen una identificacin
(URI). Se elige una representacin para cada recurso (XML, YAML)
Manipulacin de recursos
Hay operaciones para crear, modificar y borrar (CRUD) recursos
Mensajes auto-descriptivos
Los recursos incluyen metadatos (cache, validez, MIME). Incluidos en
los headers de HTTP
Los metadatos permiten tratar el mensaje
Sistemas Distribuidos
31 / 47
Componentes: CCM/EJB
Sistemas Distribuidos
32 / 47
Sistemas Distribuidos
33 / 47
Sistemas Distribuidos
34 / 47
Cloud Computing
Sistemas Distribuidos
35 / 47
Sistemas Distribuidos
36 / 47
Sistemas Distribuidos
37 / 47
Inmaduros en su comienzo
Ahora sera el momento de avanzar en la direccin
GNU/Hurd
CODA
Amoeba, MOSIX
Sistemas Distribuidos
38 / 47
Patrones
Solucin dada reiteradamente a un problema comn
Best practices
Suben el nivel de abstraccin, tratan problemas en abstracto
En programacin distribuida poca experiencia
Los utilizaremos para aprender sobre cmo construir mejores
aplicaciones distribuidas
Elementos:
Nombre, Contexto, Problema, Cuestiones relevantes, Solucin
Sistemas Distribuidos
39 / 47
Idioms
Patrones, pero de ms bajo nivel
Asociados a un lenguaje, normalmente C++
No por ello menos importantes
Importantsimos por ejemplo en el mapping de C++ a CORBA
Ejemplo: Scoped Locking
C++ Idioms: James O. Coplien
http://www1.belllabs.com/user/cope/Patterns/C %2b %2bIdioms/EuroPLoP98.html
Sistemas Distribuidos
40 / 47
Sistemas Distribuidos
41 / 47
Sistemas Distribuidos
42 / 47
Sistemas Distribuidos
43 / 47
Sistemas Distribuidos
44 / 47
Metamodelado Eclipse
Sistemas Distribuidos
45 / 47
Modelos
SyncLock
Sistemas Distribuidos
46 / 47
Modelos (ii)
SyncLock
Sistemas Distribuidos
47 / 47