Tema 1Introduccin a los Sistemas Distribuidos
F. Garca-Carballeira, M. Soledad Escolar,
Luis Miguel Snchez, Fco. Javier Garca
Sistemas Distribuidos
Grado en Ingeniera Informtica
Universidad Carlos III de Madrid
Contenido
Evolucin de la informtica
Concepto de sistema distribuido
Ejemplos de aplicaciones distribuidas
Ventajas e inconvenientes de los sistemas distribuidos
Sistemas distribuidos vs. paralelos
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Principales desafos de diseo
Concepto de middleware
Paradigmas de computacin distribuida
Plataformas hardware para sistemas distribuidos
2
Evolucin de la Informtica
En los aos 70: Mainframes centrales
Sistemas de tiempo compartido
Recursos centralizados
Terminales simples
Interfaces de usuario poco amigables
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Interfaces de usuario poco amigables
Aparecen las primeras redes
3
Evolucin de la Informtica
En los aos 80: PCs y estaciones de trabajo
Predominio de aplicaciones complejas ejecutadas localmente
Interfaces amigables
Redes de rea local (LAN)
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Redes de rea local (LAN)
Aparecen los primeros sistemas operativos distribuidos Mach, Sprite, Chorus, ...
4
Evolucin de la informtica
En los aos 90: Despegue de las aplicaciones cliente/servidor
Ms descentralizacin Aplicaciones ejecutadas localmente y en red
Enorme difusin de Internet gracias a la web
Nuevas necesidades y aplicaciones basadas en web
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Nuevas necesidades y aplicaciones basadas en web Comercio electrnico
Multimedia
Sistemas de control
Aplicaciones mdicas
Supercomputacin en Internet
5
Evolucin de la informtica
En los aos 2000: Nuevos paradigmas de computacin distribuida
Grid computing
Peer-to-Peer
Computacin ubicua
Dispositivos mviles
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Dispositivos mviles
Aplicaciones para Internet basadas en Web
Tendencia: todas las aplicaciones en red
6
AplicacionesPuestos de trabajo
Red
Evolucin de la informtica
Infraestructura tradicional
Clientes
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Servidores
7
LAN
Evolucin de la informtica
Infraestructura tradicional Consolidacin de recursos
Clientes
LAN
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Red dealmacenamiento
AlmacenamientoCompartido
8
Servidores
LANLAN
Evolucin de la tecnologa
La ley de Bell (1972): aparecer una nueva clase de computadoras (tecnologa) cada 10 aos
l
o
g
(
p
e
o
p
l
e
p
e
r
c
o
m
p
u
t
e
r
)
ao
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
La ley de Moore (1965): el nmero de transistores por chip se doblar cada18-24 meses
9
Infraestructura tradicional
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Sistema Operativo
10
Mquinas Virtuales
SO1 SO2
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
MV1 MV2SO1 SO2
11
Sistema Distribuido
Sistema formado por recursos de computacin (hardware y software) fsicamente distribuidos e interconectados a travs de una red, que comunican mediante paso de mensajes y cooperan para realizar una determinada tarea
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
12
Red
Otras definiciones
Un sistema distribuido es aquel en el que no puedes trabajar con tu mquina por el fallo de otra mquina que ni siquiera sabas que exista
-Leslie Lamport
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Un sistema distribuido es aquel en el que los computadores localizados en una red comunican y coordinan sus acciones mediante paso de mensajes
-George Coulouris
13
Conceptos previos
Un programa es un conjunto de instrucciones
Un proceso es un programa en ejecucin
Una red de computadores es un conjunto de computadores conectados por una red de interconexin
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Sistema distribuido Un conjunto de computadores (sin memoria ni reloj comn) conectados por una red
Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o ms computadores que colaboran y comunican intercambiando mensajes.
Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicacin en un sistema distribuido, es decir, el intercambio de mensajes
14
Ejemplos: red de rea local
Workstations
Red de realocal
PC
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
1 s
local
Servidores deficheros
Conexin al exterior Otros servidores
(impresin,...)
15
Ejemplo: Web
http://www.uc3m.es
Pgina Web
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
navegador www.uc3m.es
16
Ejemplos de aplicaciones y sistemas distribuidos
Correo electrnico (IMAP, POP)
Transferencia de ficheros (FTP)
Servicios de News
WorldWideWeb (WWW)
Sistemas de control de trfico areo
Aplicaciones bancarias
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Aplicaciones bancarias
Comercio electrnico
Aplicaciones multimedia (videoconferencias, vdeo bajo demanda , etc.)
El ancho de banda en estas aplicaciones es un orden de magnitud mayorque en otras
Requieren calidad de servicio (QoS)
Aplicaciones mdicas (transferencia de imgenes)
17
Objetivos de los SSDD
Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
18
Sistemas distribuidos y paralelos
Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras
Sistemas paralelos Objetivo:
Alto rendimiento (speedup)
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
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)
19
Ventajas que pueden ofrecer los SSDD
Compartir recursos (HW, SW, datos) Acceso a recursos remotos.
Modelo cliente-servidor
Modelo basado en objetos
Ofrecen una buena relacin coste/rendimiento
Capacidad de crecimiento (escalabilidad)
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Capacidad de crecimiento (escalabilidad)
Tolerancia a fallos, disponibilidad Replicacin
Concurrencia: servicio a mltiples usuarios simultneamente
Velocidad: capacidad global de procesamiento disponible para: Ejecucin paralela de una aplicacin
20
Desventajas de los sistemas distribuidos
Interconexin Coste
Fiabilidad, prdida de mensajes
Saturacin
Comunicaciones inseguras
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Software ms complejo
Potencia de cada nodo no adecuada
21
Topologas de red
Grid o malla rbol
Lineal
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
22
Sistemas DistribuidosDesafos de diseo
Heterogeneidad de los componentes Nombrado Comunicacin y sincronizacin Rendimiento Concurrencia
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Concurrencia Capacidad de crecimiento Estructura de software Fiabilidad Calidad de servicio (QoS) Transparencia
23
Heterogeneidad
Heterogeneidad de los SSDD:
Es la variedad y diferencia de los siguientes componentes:
Redes
HW de computadores
Sistemas operativos
Lenguajes de programacin
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Lenguajes de programacin
Aplicaciones
24
Cmo resolver la heterogeneidad?
Empleo de sistemas abiertos (es la caracterstica del sistema que determina si el sistema puede ser extendido y re-implementado) Especificaciones e interfaces de acceso pblicas (ej. RFCs) Mecanismos de comunicacin uniformes Se pueden construir sobre SW y HW heterogneo
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Ejemplos de sistemas abiertos: TCP/IP NFS CORBA (www.omg.org) Globus (www.globus.org) Web services
25
Nombrado
Los usuarios designan a los objetos mediante un nombre (ej. www.uc3m.es)
Los programas designan a los objetos mediante unidentificador (ej. 163.117.131.31)
Resolver un nombre implica obtener el identificador a partir del nombre
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
del nombre
Objetivo importante: los nombres deben ser independientes de su localizacin
Consideraciones de diseo a tener en cuenta: El espacio de nombres (tamao, estructura, jerarqua, ...)
El servicio de nombres que realiza la resolucin (ej. DNS)
26
Comunicacin y sincronizacin (C y S) Forma bsica de C y S: paso de mensajes
Mecanismos sncronos Mecanismos asncronos
Comunicacin entre procesos: Las entidades que se comunican en distintas mquinas son procesos Primitivas bsicas de comunicacin:
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
send receive
Llamadas a procedimientos remotos Invocacin de objetos remotos
Comunicacin en grupos Multicast, broadcast til para el trabajo en grupo, localizar el objeto, tolerancia a fallos, mejorar el rendimiento (replicacin), asegurar la consistencia
27
Capacidad de crecimiento
Un sistema posee capacidad de crecimiento o escalabilidad si conserva su efectividad cuando se incrementa significativamente el nmero de recursos o usuarios.
Ejemplo: crecimiento de Internet
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
020406080
100120140
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010
N
m
e
r
o
d
e
h
o
s
t
s
(
m
i
l
l
i
o
n
e
s
)
Web
28
Aspectos a considerar
Para que un sistema con n usuarios sea escalable, la cantidad de recursos necesarios para soportarlo debera ser proporcional a n O(n)
Empleo de algoritmos distribuidos Algoritmos que usan estructuras jerrquicos mejor que lineales
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Algoritmos que usan estructuras jerrquicos mejor que lineales
Evitar cuellos de botella (bottleneck) en el sistema Algoritmos descentralizados
Evitar el desbordamiento de los recursos SW Ejemplo: 32 bits para las direcciones IP
29
Estructura de softwareSistema centralizado
Estructura software tpica de un sistema centralizado:
Sistema operativoLenguajes de programacin
Aplicaciones
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
El sistema operativo (SO): Gestionar los recursos de hardware manera eficiente Ofrecer servicios a las aplicaciones para el acceso y la gestin de los recursos
30
Sistema operativoHardware
Estructura de software
Sistema Distribuido
Existen tres posibilidades para estructurar el software de un sistema distribuido Emplear sistemas operativos en red
Utilizar un sistema operativo distribuido
Utilizar middlewares o entornos distribuidos
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Lo importante es ofrecer un soporte para la programacin de aplicaciones distribuidas de una manera fcil y transparente.
31
Sistema operativo en red (SOR)
El usuario ve un conjunto de mquinas independientes
Se debe acceder de forma explcita a los recursos en otras mquinas
No hay transparencia
Difciles de utilizar para desarrollar aplicaciones distribuidas
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
32
Sistema operativoLenguajes de programacin
Aplicaciones
Red de interconexin
Hardware
Sistema operativoLenguajes de programacin
Aplicaciones
Hardware
Sistema operativo distribuido (SOD)
Se comporta como un SO nico: Hace creer a los usuarios que trabajan con un nico sistema centralizado Distribucin Transparencia
Se construyen normalmente como microncleos que ofrecen servicios bsicos de comunicacin
Restriccin: todos los computadores deben ejecutar el mismo SODEjemplos: Mach, Amoeba, Chorus
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Ejemplos: Mach, Amoeba, Chorus
Sistema operativo distribuidoLenguajes de programacin
Aplicaciones
Red de interconexin
Hardware Hardware
33
Middleware y entornos distribuidos
Abstraccin de programacin que permite enmascarar la heterogeneidad de las redes subyacentes, HW, SO y LP
Servicios y protocolos estandarizados: sistemas abiertos Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres, ...)
Facilitan el desarrollo de aplicaciones distribuidas Independientes del HW y del SO subyacente
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Independientes del HW y del SO subyacente Ejemplos: DCE, CORBA, DCOM, WebOS, Globus, .NET
Sistema operativoMiddleware
Lenguajes de programacinAplicaciones
Red de interconexin
HardwareSistema operativo
Hardware
34
Fiabilidad
La probabilidad de que un sistema funcione o desarrolle cierta funcin, bajo condiciones fijadas y durante un perodo de tiempo
Para obtener fiabilidad hay que garantizar:
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Tratamiento de fallos
Consistencia
Seguridad
35
Tratamiento de fallos
Generalmente, en los SSDD se pueden producir fallosparciales
Objetivo de un sistema distribuido: disponibilidad Mide la proporcin de tiempo que un sistema est disponible para su uso
Tcnicas para mejorar la disponibilidad:
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Tcnicas para mejorar la disponibilidad: Tolerancia a fallos
Deteccin de fallos
Enmascaramiento de fallos
Recuperacin ante fallos
Redundancia
36
Consistencia
El problema de la consistencia (coherencia) surge cuando varios procesos acceden y actualizan datos de forma concurrente Coherencia de las actualizaciones
Coherencia de la replicacin
Coherencia de caches
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Coherencia de caches
Coherencia ante fallos
Relojes consistentes
37
Seguridad
Los recursos de informacin disponibles en los SSDD pueden tener un valor importante para los usuarios (ej. informacin bancaria)
La seguridad tiene tres componentes:1. Confidencialidad:
proteccin contra el descubrimiento de datos por individuos no autorizados
2. Integridad
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
2. Integridad proteccin contra la alteracin o corrupcin de los datos
3. Disponibilidad: proteccin contra la interferencia en los procedimientos de acceso a los recursos
Otros problemas de seguridad Ataques de denegacin de servicio Seguridad del cdigo mvil
38
Calidad de servicio (QoS)
Es la habilidad de satisfacer los requerimientos de tiempo cuando se transmiten y procesan flujos de datos multimedia en tiempo real
Rendimiento de un sistema: Tiempo de respuesta adecuado
Latencias
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Latencias
Tasa de transferencia de datos Velocidad en la cual los datos pueden ser transferidos entre dos computadoras de la red, usualmente medido en bits por segundo (bps)
El rendimiento viene determinado por: La red de comunicacin Los servicios de comunicacin empleados El sistema operativo El soporte para la programacin de sistemas distribuidos
39
Transparencia
Ocultacin al usuario de los componentes que conforman un sistema distribuido: Acceso: acceso a recursos remotos y locales de igual forma Posicin: acceso a los recursos sin necesidad de conocer su situacin Concurrencia: acceso concurrente a recursos compartidos sin interferencias
Replicacin: acceso a recursos replicados sin conocimiento de que lo
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Replicacin: acceso a recursos replicados sin conocimiento de que loson
Fallos: mantenimiento del servicio en presencia de fallos. Migracin: permite que los recursos y objetos se muevan sin afectar a la operacin de los programas.
Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema
40
Paradigmas de computacindistribuida
Paso de mensajes
Cliente-servidor
Llamadas a procedimientos remotos
Peer-to-peer
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Peer-to-peer
Objetos distribuidos
Agentes mviles
Servicios en red
Aplicaciones colaborativas (groupware)
41
Paso de mensajes
Paradigma fundamental para aplicaciones distribuidas
Un proceso emisor enva un mensaje de solicitud
El mensaje llega al proceso receptor, el cual procesa la solicitud y devuelve un mensaje en respuesta
Esta respuesta puede originar posteriores solicitudes por parte del proceso emisor
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
m1m2
m3
Proceso A Proceso B
Mensaje
Paso de mensajes
42
Paso de mensajes
Operaciones bsicas: Enviar (send)
Recibir (receive)
Modelos de comunicacin: Orientadas a conexin
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Operaciones para conectar y desconectar No orientadas a conexin
Ejemplo: sockets
43
Cliente-Servidor
Asigna roles diferentes a los procesos que comunican: cliente y servidor
Servidor:
Ofrece un servicio
Elemento pasivo: espera la llegada de peticiones
Cliente:
Solicita el servicio
Elemento activo: invoca peticiones
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Elemento activo: invoca peticiones
.
.
.
Peticin de servicio
Proceso servidorProceso cliente
Servicio
Servidor Cliente 1
Cliente 2
44
Cliente-Servidor
Abstraccin eficiente para facilitar los servicios de red
La asignacin de roles asimtricos simplifica la sincronizacin
Implementacin mediante:
Sockets
Llamada a procedimientos remotos (RPC)
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Invocacin de mtodos remotos (RMI, CORBA, ).
Paradigma principalmente adecuado para servicios centralizados
Ejemplos: servicios de Internet (HTTP, FTP, DNS, )
45
Llamadas a procedimientos remotos
Idea: hacer que el software distribuido se programe igual que una aplicacin no distribuida
Conceptualmente igual que la invocacin de un procedimiento local
Proceso A Proceso BCualquier programa
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
proc1(arg1, arg2)
proc2(arg1)
proc3(arg1,arg2,arg3)
Proceso A Proceso BCualquier programa
funcion(1,2)
funcion(arg1,arg2).
return;
46
Invocacin de mtodos remotos
Modelo equivalente a las llamadas a procedimientos remotos
Proceso invoca un mtodo local de otro proceso
Ejemplos: CORBA, RMI de Java, Microsoft COM, DCOM, JavaBeans, .NET Remoting
Proceso 2
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
mtodo1mtodo2
Proceso 1Proceso 2
Objeto remoto
RMI
47
Peer-to-Peer
Los procesos participantes en la comunicacin asumen el mismo rol: Cliente y servidor
Los recursos y los servicios
Proceso 1
RespuestaRespuesta
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Los recursos y los servicios son intercambiados entre los computadores
Ejemplo: Napster intercambio de ficheros
48
SolicitudSolicitud
Proceso 2
Agentes mviles Un agente mvil es un programa u objeto transportable
El agente se lanza desde un determinado computador origeny viaja de manera autnoma de un ordenador a otro
En cada salto de la ruta, el agente
Computador 2
Computador 1 Computador 3
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
En cada salto de la ruta, el agente realiza las funciones necesarias para completar su tarea
No intercambian mensajes
Problema de seguridad: cdigo mvil ejecutable podra ser malicioso
49
Computador 4
Servicios en red
Los procesos solicitantes acceden un servicio a travs de una referencia que le proporciona el servidor de directorio
Para publicar los servicios, stos deben registrarse en el servicio de directorio
Transparencia de localizacin
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Transparencia de localizacin
Ejemplo: SOAP
50
Solicitante del servicio
Servicio de directorio
Objeto de servicio
1
23
Aplicaciones colaborativas (groupware)
Varios procesos participan en una sesin de trabajo colaborativo Comunicacin unicast, multicast y broadcast Dos formas:
Basado en mensajes: usan mensajes para enviar datos a todos o parte del grupo Basado en pizarra: usan pizarras o tablones virtuales que permiten leer o escribir
datos sobre un espacio compartido
mensaje
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
51
mensaje
mensaje
mensaje
groupware basado en mensajes groupware basado en pizarra
Comunicacin de grupos
Utiliza mensajes multicast
til para: Ofrecer tolerancia a fallos basado en servicios replicados
Localizar objetos en sistemas distribuidos
Mejor rendimiento mediante datos replicados
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
Actualizaciones mltiples
Operaciones colectivas en clculo paralelo
52
emisor receptor
IPC uno-a-uno IPC grupo o multidifusin
Arquitecturas paralelas
MPP (Massively parallel processing) Multiprocesador de memoria distribuida
SMP (Symmetric multiprocessing) Multiprocesador de memoria compartida
CC-NUMA (Cache-Coherent Non-Uniform Memory
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
CC-NUMA (Cache-Coherent Non-Uniform Memory Access) Multiprocesador con una memoria de acceso no uniforme
Clusters
53
Arquitecturas paralelas
P1
bus
C
memory
P2
CPn
C
P1
network
C
memory
P2
$Pn
$
memory memory
F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca
Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.
memory memory memory
interconnect
P0
memory
NI
. . .
P1
memory
NI Pn
memory
NI
Memoria compartida Memoria compartida distribuida
Memoria distribuida54