Vous êtes sur la page 1sur 54

Tema 1

Introducción a los Sistemas Distribuidos

F. García-Carballeira, Mª. Soledad Escolar,


Luis Miguel Sánchez, Fco. Javier García

Sistemas Distribuidos
Grado en Ingeniería Informática
Universidad Carlos III de Madrid
Contenido
 Evolución de la informática
 Concepto de sistema distribuido
 Ejemplos de aplicaciones distribuidas
 Ventajas e inconvenientes de los sistemas distribuidos
 Sistemas distribuidos vs. paralelos
 Principales desafíos de diseño
 Concepto de middleware
 Paradigmas de computación distribuida
 Plataformas hardware para sistemas distribuidos

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 2
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la Informática
 En los años 70:
 Mainframes centrales
 Sistemas de tiempo compartido
 Recursos centralizados
 Terminales simples
 Interfaces de usuario poco amigables
 Aparecen las primeras redes

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 3
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la Informática
 En los años 80:
 PCs y estaciones de trabajo
 Predominio de aplicaciones complejas
ejecutadas localmente
 Interfaces amigables
 Redes de área local (LAN)
 Aparecen los primeros sistemas operativos distribuidos
 Mach, Sprite, Chorus, ...

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 4
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la informática
 En los años 90:
 Despegue de las aplicaciones cliente/servidor
 Más descentralización
 Aplicaciones ejecutadas localmente y en red
 Enorme difusión de Internet gracias a la web
 Nuevas necesidades y aplicaciones basadas en web
 Comercio electrónico
 Multimedia
 Sistemas de control
 Aplicaciones médicas
 Supercomputación en Internet

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 5
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la informática
 En los años 2000:
 Nuevos paradigmas de computación distribuida
 Grid computing
 Peer-to-Peer
 Computación ubicua
 Dispositivos móviles
 Aplicaciones para Internet basadas en Web
 Tendencia:
todas las aplicaciones en red
Red

Aplicaciones
Puestos de trabajo
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 6
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la informática
 Infraestructura tradicional
Clientes

LAN

Servidores

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 7
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la informática
 Infraestructura tradicional  Consolidación de recursos

Clientes

LAN
LAN
Red de
almacenamiento

Servidores Almacenamiento
Compartido
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 8
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Evolución de la tecnología
 La ley de Bell (1972):
“aparecerá una nueva clase de

log (people per




computer)
computadoras (tecnología)
cada 10 años”

año

 La ley de Moore (1965):


 “el número de transistores por
chip se doblará cada
18-24 meses”

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 9
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Infraestructura tradicional

Sistema Operativo

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 10
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Máquinas Virtuales

SO1 SO2
MV1 MV2

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 11
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Sistema Distribuido
 Sistema formado por recursos de computación (hardware y software)
físicamente distribuidos e interconectados a través de una red, que
comunican mediante paso de mensajes y cooperan para realizar una
determinada tarea

Red

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 12
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Otras definiciones
“Un sistema distribuido es aquel en el que no puedes
trabajar con tu máquina por el fallo de otra máquina que
ni siquiera sabías que existía”
-Leslie Lamport

“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

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 13
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Conceptos previos
 Un programa es un conjunto de instrucciones

 Un proceso es un programa en ejecución

 Una red de computadores es un conjunto de computadores conectados


por una red de interconexión

 Sistema distribuido Un conjunto de computadores (sin memoria ni reloj


común) conectados por una red
 Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o más
computadores que colaboran y comunican intercambiando mensajes.

 Un protocolo es un conjunto de reglas e instrucciones que gobiernan la


comunicación en un sistema distribuido, es decir, el intercambio de
mensajes

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 14
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Ejemplos: red de área local
Workstations

PC

Red de área
local

Conexión al
exterior Servidores de Otros servidores
ficheros (impresión,...)
1s

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 15
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Ejemplo: Web

http://www.uc3m.es

Página Web

navegador www.uc3m.es

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 16
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Ejemplos de aplicaciones y sistemas
distribuidos
 Correo electrónico (IMAP, POP)
 Transferencia de ficheros (FTP)
 Servicios de News
 World Wide Web (WWW)
 Sistemas de control de tráfico aéreo
 Aplicaciones bancarias
 Comercio electrónico
 Aplicaciones multimedia (videoconferencias, vídeo bajo demanda , etc.)
 El ancho de banda en estas aplicaciones es un orden de magnitud mayor
que en otras
 Requieren calidad de servicio (QoS)
 Aplicaciones médicas (transferencia de imágenes)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 17
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Objetivos de los SSDD
 Sistemas distribuidos
 Objetivo: compartir recursos y colaborar
 Redes de computadoras

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 18
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Sistemas distribuidos y paralelos
 Sistemas distribuidos
 Objetivo: compartir recursos y colaborar
 Redes de computadoras
 Sistemas paralelos
 Objetivo:
 Alto rendimiento (speedup)
 Alta productividad
 Máquinas paralelas (arquitecturas dedicadas)
 Multiprocesadores
 Multicomputadores
 Redes de estaciones de trabajo trabajando como un
multicomputador (cluster)
 Grid Computing (www.gridcomputing.com)
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 19
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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 relación coste/rendimiento
 Capacidad de crecimiento (escalabilidad)
 Tolerancia a fallos, disponibilidad
 Replicación
 Concurrencia: servicio a múltiples usuarios simultáneamente
 Velocidad: capacidad global de procesamiento disponible para:
 Ejecución paralela de una aplicación

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 20
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Desventajas de los sistemas distribuidos
 Interconexión
 Coste
 Fiabilidad, pérdida de mensajes
 Saturación
 Comunicaciones inseguras
 Software más complejo
 Potencia de cada nodo no adecuada

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 21
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Topologías de red
Grid o malla Árbol

Lineal

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 22
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Sistemas Distribuidos
Desafíos de diseño

 Heterogeneidad de los componentes


 Nombrado
 Comunicación y sincronización
 Rendimiento
 Concurrencia
 Capacidad de crecimiento
 Estructura de software
 Fiabilidad
 Calidad de servicio (QoS)
 Transparencia

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 23
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Heterogeneidad
 Heterogeneidad de los SSDD:
 Es la variedad y diferencia de los siguientes componentes:
 Redes
 HW de computadores
 Sistemas operativos
 Lenguajes de programación
 Aplicaciones

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 24
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
¿Cómo resolver la heterogeneidad?
 Empleo de sistemas abiertos (es la característica del sistema
que determina si el sistema puede ser extendido y re-
implementado)
 Especificaciones e interfaces de acceso públicas (ej. RFCs)
 Mecanismos de comunicación uniformes
 Se pueden construir sobre SW y HW heterogéneo

 Ejemplos de sistemas abiertos:


 TCP/IP
 NFS
 CORBA (www.omg.org)
 Globus (www.globus.org)
 Web services

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 25
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Nombrado
 Los usuarios designan a los objetos mediante un nombre (ej.
www.uc3m.es)
 Los programas designan a los objetos mediante un
identificador (ej. 163.117.131.31)
 Resolver un nombre implica obtener el identificador a partir
del nombre
 Objetivo importante: los nombres deben ser
independientes de su localización
 Consideraciones de diseño a tener en cuenta:
 El espacio de nombres (tamaño, estructura, jerarquía, ...)
 El servicio de nombres que realiza la resolución (ej. DNS)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 26
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Comunicación y sincronización (C y S)
 Forma básica de C y S: paso de mensajes
 Mecanismos síncronos
 Mecanismos asíncronos

 Comunicación entre procesos:


 Las entidades que se comunican en distintas máquinas son procesos
 Primitivas básicas de comunicación:
 send
 receive
 Llamadas a procedimientos remotos
 Invocación de objetos remotos

 Comunicación en grupos
 Multicast, broadcast
 Útil para el trabajo en grupo, localizar el objeto, tolerancia a fallos,
mejorar el rendimiento (replicación), asegurar la consistencia
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 27
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Capacidad de crecimiento
 Un sistema posee capacidad de crecimiento o
escalabilidad si conserva su efectividad cuando se
incrementa significativamente el número de recursos o
usuarios.
 Ejemplo: crecimiento de Internet
140
Número de hosts

120
(milliones)

100
80
60
Web
40
20
0
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 28
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Aspectos a considerar
 Para que un sistema con n usuarios sea escalable, la cantidad
de recursos necesarios para soportarlo debería ser
proporcional a n ó O(n)

 Empleo de algoritmos distribuidos


 Algoritmos que usan estructuras jerárquicos 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

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 29
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Estructura de software
Sistema centralizado
 Estructura software típica de un sistema centralizado:

Aplicaciones
Lenguajes de programación
Sistema operativo
Hardware

 El sistema operativo (SO):


 Gestionar los recursos de hardware manera eficiente
 Ofrecer servicios a las aplicaciones para el acceso y la gestión de los
recursos
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 30
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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

 Lo importante es ofrecer un soporte para la


programación de aplicaciones distribuidas de una manera
fácil y transparente.

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 31
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Sistema operativo en red (SOR)
 El usuario ve un conjunto de máquinas independientes
 Se debe acceder de forma explícita a los recursos en otras
máquinas
 No hay transparencia
 Difíciles de utilizar para desarrollar aplicaciones distribuidas

Aplicaciones Aplicaciones
Lenguajes de programación Lenguajes de programación
Sistema operativo Sistema operativo
Hardware Hardware

Red de interconexión

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 32
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Sistema operativo distribuido (SOD)
 Se comporta como un SO único:
 Hace creer a los usuarios que trabajan con un único sistema centralizado
 Distribución
 Transparencia
 Se construyen normalmente como micronúcleos que ofrecen servicios
básicos de comunicación
 Restricción: todos los computadores deben ejecutar el mismo SOD
 Ejemplos: Mach, Amoeba, Chorus

Aplicaciones
Lenguajes de programación
Sistema operativo distribuido
Hardware Hardware

Red de interconexión

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 33
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Middleware y entornos distribuidos
 Abstracción de programación 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
 Ejemplos: DCE, CORBA, DCOM, WebOS, Globus, .NET
Aplicaciones
Lenguajes de programación
Middleware
Sistema operativo Sistema operativo
Hardware Hardware

Red de interconexión

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 34
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Fiabilidad
 La probabilidad de que un sistema funcione o desarrolle
cierta función, bajo condiciones fijadas y durante un
período de tiempo

 Para obtener fiabilidad hay que garantizar:


 Tratamiento de fallos
 Consistencia
 Seguridad

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 35
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Tratamiento de fallos
 Generalmente, en los SSDD se pueden producir fallos
parciales
 Objetivo de un sistema distribuido: disponibilidad
 Mide la proporción de tiempo que un sistema está disponible
para su uso
 Técnicas para mejorar la disponibilidad:
 Tolerancia a fallos
 Detección de fallos
 Enmascaramiento de fallos
 Recuperación ante fallos
 Redundancia

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 36
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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 replicación
 Coherencia de caches
 Coherencia ante fallos
 Relojes consistentes

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 37
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Seguridad
 Los recursos de información disponibles en los SSDD pueden
tener un valor importante para los usuarios (ej. información
bancaria)
 La seguridad tiene tres componentes:
1. Confidencialidad:
 protección contra el descubrimiento de datos por individuos no autorizados
2. Integridad
 protección contra la alteración o corrupción de los datos
3. Disponibilidad:
 protección contra la interferencia en los procedimientos de acceso a los
recursos
 Otros problemas de seguridad
 Ataques de denegación de servicio
 Seguridad del código móvil

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 38
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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
 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 comunicación
 Los servicios de comunicación empleados
 El sistema operativo
 El soporte para la programación de sistemas distribuidos
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 39
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Transparencia
 Ocultación al usuario de los componentes que
conforman un sistema distribuido:
 Acceso: acceso a recursos remotos y locales de igual forma
 Posición: acceso a los recursos sin necesidad de conocer su situación
 Concurrencia: acceso concurrente a recursos compartidos sin
interferencias
 Replicación: acceso a recursos replicados sin conocimiento de que lo
son
 Fallos: mantenimiento del servicio en presencia de fallos.
 Migración: permite que los recursos y objetos se muevan sin afectar a
la operación de los programas.
 Capacidad de crecimiento: facilidad para crecer sin afectar a la
estructura del sistema

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 40
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Paradigmas de computación
distribuida

 Paso de mensajes
 Cliente-servidor
 Llamadas a procedimientos remotos
 Peer-to-peer
 Objetos distribuidos
 Agentes móviles
 Servicios en red
 Aplicaciones colaborativas (groupware)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 41
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Paso de mensajes
 Paradigma fundamental para aplicaciones distribuidas
 Un proceso emisor envía 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

Proceso A Proceso B

m1
m2 Mensaje
m3
Paso de mensajes

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 42
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Paso de mensajes
 Operaciones básicas:
 Enviar (send)
 Recibir (receive)
 Modelos de comunicación:
 Orientadas a conexión
 Operaciones para conectar y desconectar
 No orientadas a conexión
 Ejemplo: sockets

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 43
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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

Servidor Cliente 1

Petición de servicio
Proceso cliente
Proceso servidor
Cliente 2
...

Servicio

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 44
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Cliente-Servidor
 Abstracción eficiente para facilitar los servicios de red
 La asignación de roles asimétricos simplifica la sincronización
 Implementación mediante:
 Sockets
 Llamada a procedimientos remotos (RPC)
 Invocación de métodos remotos (RMI, CORBA, …).
 Paradigma principalmente adecuado para servicios
centralizados
 Ejemplos: servicios de Internet (HTTP, FTP, DNS, … )

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 45
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Llamadas a procedimientos remotos
 Idea: hacer que el software distribuido se programe igual
que una aplicación no distribuida
 Conceptualmente igual que la invocación de un
procedimiento local
Cualquier programa Proceso A Proceso B

funcion(1,2) proc1(arg1, arg2)

proc2(arg1)
funcion(arg1,arg2)
….
return; proc3(arg1,arg2,arg3)

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 46
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Invocación de métodos remotos
 Modelo equivalente a las llamadas a procedimientos remotos
 Proceso invoca un método local de otro proceso
 Ejemplos: CORBA, RMI de Java, Microsoft COM, DCOM, Java
Beans, .NET Remoting

Proceso 2
Proceso 1

RMI método1
método2

Objeto remoto

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 47
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Peer-to-Peer
 Los procesos participantes en
la comunicación asumen el Proceso 1
mismo rol:
 Cliente y servidor Respuesta
Respuesta

 Los recursos y los servicios


son intercambiados entre los
Solicitud
computadores Solicitud

 Ejemplo: Proceso 2
 Napster → intercambio de
ficheros

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 48
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Agentes móviles
 Un agente móvil es un programa Computador 2
u objeto transportable
 El agente se lanza desde un
determinado computador origen
y “viaja” de manera autónoma de
un ordenador a otro Computador 1 Computador 3

 En cada salto de la ruta, el agente


realiza las funciones necesarias
para completar su tarea
 No intercambian mensajes
 Problema de seguridad: código
móvil ejecutable podría ser
malicioso
Computador 4
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 49
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Servicios en red
 Los procesos solicitantes acceden un servicio a través de una
referencia que le proporciona el servidor de directorio

 Para publicar los servicios, éstos deben registrarse en el


servicio de directorio

 Transparencia de localización
Servicio de directorio
 Ejemplo: SOAP
1

2
3

Solicitante del servicio Objeto de servicio

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 50
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Aplicaciones colaborativas (groupware)
 Varios procesos participan en una sesión de trabajo colaborativo
 Comunicación 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

mensaje

mensaje

groupware basado en mensajes groupware basado en pizarra


F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 51
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Comunicación 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
 Actualizaciones múltiples
 Operaciones colectivas en cálculo paralelo
emisor receptor

IPC uno-a-uno IPC grupo o multidifusión

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 52
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Arquitecturas paralelas
 MPP (Massively parallel processing)
 Multiprocesador de memoria distribuida
 SMP (Symmetric multiprocessing)
 Multiprocesador de memoria compartida
 CC-NUMA (Cache-Coherent Non-Uniform Memory
Access)
 Multiprocesador con una memoria de acceso no uniforme
 Clusters

F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 53
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Arquitecturas paralelas
P1 P2 Pn P1 P2 Pn

C C C C $ $

bus network

memory memory memory memory

Memoria compartida Memoria compartida distribuida


P0 NI P1 NI Pn NI
memory memory ... memory

interconnect

Memoria distribuida
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García 54
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.

Vous aimerez peut-être aussi