Professional Documents
Culture Documents
Presentacin e introduccin
Ing. Lintol Contreras Salas
Distributed systems
Single system
(multiple systems)
PC/work.
SMP/MPP
clusters
Vector
Mainframe
Client/Server
Cloud
Grids
Peer-to-peer
decentralized
Sistema distribuido
Sistema compuesto por recursos de computacin fsicamente
Computacin distribuida
Computacin que se realiza en un sistema distribuido
procesos
servicios
procesos
procesos
K. Hwang et al.
K. Hwang et al.
K. Hwang et al.
Sistema tradicional
virtualizacin
Prximos 10 aos
(Communications of the ACM, 9/2011)
Internet de las cosas. En 2020 habr 50 billones de
del
Caractersticas
Mltiples componentes autnomos
Ausencia de un reloj global
Todos los recursos pueden no ser accesibles a la vez
El software ejecuta en procesos concurrentes sobre mquinas
diferentes
Software ms complejo
Aspectos de diseo
Heterogeneidad: contemplar diferentes HW, SW, lenguajes de
programacin, velocidad,
Extensibilidad: abierto a nuevos estndares, aplicaciones,
tecnologas.
Escalabilidad: permitir el crecimiento del sistema
Seguridad: confidencialidad, integridad, autenticacin
Tolerancia a fallos y disponibilidad: identificar y tratar los
fallos
Control de concurrencia: coordinar las acciones que
ocurren diferentes sistemas.
en
Aspectos de diseo
Puntos de control no nicos: funciones distribuidas en sistemas
autnomos
Sin una visin global: es imposible tener una visin precisa e
instantnea del estado de todo el sistema
Transparencia: visin de un sistema unico
Asincrona: los mensajes tardan un tiempo (variable) en ser
entregados
Calidad de servicio: ofrecer garantias del servicio
(velocidad, seguridad, disponibilidad,.)
Algoritmos eficientes
Sistemas distribuidos
Objetivo: compartir recursos y colaborar.
Redes de computadores
Sistemas paralelos
Objetivo:
Alto rendimiento (speedup).
Alta productividad
Mquinas paralelas (arquitecturas dedicadas)
Multiprocesadores
Multicomputadores
Redes de estaciones de trabajo trabajando como un multicomputador
(cluster)
Grid Computing (www.gridcomputing.com)
Q
Q
Fuertemente acoplados
Multiprocesadores de memoria
compartida
Multicomputadores de memoria
distribuida
Debilmente acoplados
Clusters
Gestin centralizada
Grids
Agregacin de sistemas distribuidos
Gestin distribuida
Q
Transparencia
Escalabilidad
Un sistema distribuido es escalable si su capacidad de
Dimensiones:
Q
Tcnicas de escalabilidad
Replicacin
Q
Caching
Consistencia
Distribucin
Distribucin de carga en mltiples nodos
Q
Control de concurrencia
Un sistema distribuido es inherentemente concurrente
Se debe asegurar:
Q
24
Tolerancia a fallos
Un sistema distribuido es inherentemente ms propenso a
errores
Un sistema es tolerante a fallos si el sistema cumple sus
especificaciones a pesar de la presencia de fallos
Se debe asegurar:
Q
ing
La red es fiable
La latencia es cero
El ancho de banda es infinito
Q
La red es segura
La topologa no cambia
Hay un administrador
El coste de transporte es cero
La red es homognea
Lectura
The Seven Deadly Sins of Distributed Systems
El teorema CAP
Brewer, PODC 2000
Middelware
Software que soporta la ejecucin de aplicaciones distribuidas
Aplicaciones
Lenguajes de programacin
Middleware
Sistema operativo
Sistema operativo
Hardware
Hardware
Red de interconexin
http://www.cs.wustl.edu/~schmidt/PDF/middleware-chapter.pdf
Funciones de un middleware
Permite que componentes, procesos o aplicaciones
intercambien informacin
Ocultar la distribucin
Ocultar la heterogeneidad de los componentes (HW, SW,
datos, protocolos, lenguajes de programacin, )
Ofrecer interfaces de alto nivel estndar y uniformes para el
desarrollo de aplicaciones
Ofrecer servicios comunes para facilitar la colaboracin entre
las aplicaciones
Paradigmas de comunicacin
Paso de mensajes
Modelo cliente-servidor
Objetos distribuidos
Servicios web
Middlewares orientados a mensajes
Punto a punto
Sockets
multicast
Comunicacin cliente-servidor
Cliente
Solicitar
operacin
Servidor
Mensaje de peticin
Recibir peticin
Seleccioar servicio
(esperar)
Mensaje de respuesta
(contina)
Ejecutar servicio
Enviar respueta
Process A
proc1(arg1, arg2)
proc2(arg1)
proc3(arg1,arg2,arg3)
35
p e tici
n
servidor
respuesta
sumar(int a, int b)
int r;
r = a + b;
return r;
}
Stub
main(){
...
r = sumar (4, 5);
...
}
sumar(int a, int b)
send(a, b);
receive(r);
return(r);
}
Dir retorno
a
b
c
p e ticio
n
respuesta
servidor
main(){
receive (4, 5)...
r = sumar (4, 5);
send (r)
}
sumar(int a, int b)
int r;
r = a + b;
return r;
}
Stub
Objetos distribuidos
Invocacin de mtodos remotos
Mquina A
Mquina B
Mquina C
CORBA
Representa un modelo para crear objetos y componentes
distribuidos
Modelo de comunicacin estndar para entornos heterogneos
(HW, SW, lenguajes)
Es una especificacin
Desarrollado por Object Management Group (OMG)
Q
Arquitectura de comunicaciones
en CORBA
Cliente
DII
Stub
ORB
Objeto Servidor
ORB
ORB
Interfaz
Interfaz
ORB
Red
Skel.
DSI
Objeto Servidor
6
5
DII
Stub
ORB
ORB
Interface
Interface
Skel.7
ORB
DSI
ORB
Cuenta
{
ingresar(in
long
cantidad);
boolean
boolean retirar(in long cantidad);
long
balance();
};
programacin.
IDL
short
C++
CORBA::Short
long
CORBA::Long
float
char
string
boolean
CORBA::Float
CORBA::Char
char *
CORBA::Boolean
Ejemplo de aplicacin
Definicin del IDL
struct
HoraDelDia
short
hora;
short
minutos;
short
segundos;
};
Interface
Hora
HoraDelDia
};
{
obtener_hora();
referencias
El cliente busca en el servicio de nombre la referencia
Registro de un nombre
bind(MiCuenta,IOR:X)
NameService
MiCuenta=IOR:X
Cuenta
IOR:NS=resolve_initial_references(NameService)
Cliente
NameService
MiCuenta=IOR:X
Cuenta
IOR:X=resolve(MiCuenta)
Cliente
NameService
MiCuenta=IOR:X
Cuenta
mensajes
Los mensajes llegan en el orden correcto
Prioridades
Entrega causal
Diferentes modelos de comunicacin
Punto a punto
Uno a muchos
Muchos a muchos
Cluster
Arquitectura distribuida formada por un conjunto de
network
frontend
Grid computing
The Globus Project defines Grid as:
Q
Computacin voluntaria
voluntarios
Internet
Proyectos
Computacin voluntaria
La computacin voluntaria es un tipo de computacin
distribuida que se basa en el empleo de ordenadores
(voluntarios) conectados a Internet.
En general, estos ordenadores suelen ser ordenadores
domsticos de uso privado, que se utilizan para la ejecucin de
diversos proyectos cientficos.
Servidor BOINC
Solicita trabajo
Enva trabajo
Cloud Computing
Vieja idea: software como servicio
Objetivo: ofrecer computacin a travs de servicios ofrecidos
desde Internet
Actualmente: HW, infraestructura, plataforma, aplicaciones y
datos como servicio
In this architecture, the data is mostly resident on servers
somewhere on the Internet and the application runs on
both the cloud servers and the users browser.
Eric Schmidt in Information Factories by G. Gilder
Redes de sensores
Una red de sensores (el ingles, Wireless Sensor Network) es