Transcript
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
2
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
3
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
4
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
5
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
6
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
7
Evolución de la informática
Infraestructura tradicional
Consolidación de recursos
Clientes
LAN LAN Red de almacenamiento
Servidores F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Almacenamiento Compartido 8
Evolución de la tecnología La ley de Bell (1972):
“aparecerá una nueva clase de computadoras (tecnología) cada 10 años”
log (people per computer)
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
9
Infraestructura tradicional
Sistema Operativo
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
10
Máquinas Virtuales
SO1 MV1
SO2 MV2
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
11
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
12
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
13
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
14
Ejemplos: red de área local Workstations PC
Red de área local
Conexión al exterior
1s
Servidores de ficheros
Otros servidores (impresión,...)
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
15
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
16
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
17
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
18
Sistemas distribuidos y paralelos
Sistemas distribuidos
Objetivo: compartir recursos y colaborar Redes de computadoras
Sistemas paralelos
Objetivo:
Máquinas paralelas (arquitecturas dedicadas)
Alto rendimiento (speedup) Alta productividad 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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
19
Ventajas que pueden ofrecer los SSDD
Compartir recursos (HW, SW, datos)
Acceso a recursos remotos.
Ofrecen una buena relación coste/rendimiento Capacidad de crecimiento (escalabilidad) Tolerancia a fallos, disponibilidad
Modelo cliente-servidor Modelo basado en objetos
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
20
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
21
Topologías de red Grid o malla
Árbol
Lineal
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
22
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
23
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
24
¿Cómo resolver la heterogeneidad?
Empleo de sistemas abiertos (es la característica del sistema que determina si el sistema puede ser extendido y reimplementado)
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
25
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
26
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
27
Capacidad de crecimiento
Número de hosts (milliones)
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 120 100 80 60 40 20 0 1965
Web
1970
1975
1980
1985
1990
1995
2000
2005
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
2010
28
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
Evitar cuellos de botella (bottleneck) en el sistema
Algoritmos que usan estructuras jerárquicos mejor que lineales
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
29
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
30
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
31
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
32
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
33
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
34
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
35
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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 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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
37
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:
2.
Integridad
3.
protección contra la alteración o corrupción de los datos
Disponibilidad:
protección contra el descubrimiento de datos por individuos no autorizados
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
39
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
40
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
41
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
42
Paso de mensajes
Operaciones básicas:
Modelos de comunicación:
Enviar (send) Recibir (receive) 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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
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
...
Servidor
Cliente 1
Cliente 2
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
Petición de servicio Proceso cliente Proceso servidor Servicio
44
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
45
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
funcion(1,2)
Proceso B
Proceso A 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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
46
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
47
Peer-to-Peer
Los procesos participantes en la comunicación asumen el mismo rol:
Proceso 1
Cliente y servidor
Los recursos y los servicios son intercambiados entre los computadores
Respuesta Respuesta
Solicitud Solicitud
Ejemplo:
Napster → intercambio de ficheros
Proceso 2
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
48
Agentes móviles
Un agente móvil es un programa u objeto transportable
El agente se lanza desde un determinado computador origen y “viaja” de manera autónoma de un ordenador a otro
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 2
Computador 1
Computador 3
Computador 4 F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
49
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
Solicitante del servicio
3 Objeto de servicio
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
50
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
51
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 Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
52
Arquitecturas paralelas
MPP (Massively parallel processing)
SMP (Symmetric multiprocessing)
Multiprocesador de memoria compartida
CC-NUMA (Cache-Coherent Non-Uniform Memory Access)
Multiprocesador de memoria distribuida
Multiprocesador con una memoria de acceso no uniforme
Clusters
F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
53
Arquitecturas paralelas P2
P1 C
C
P2
P1
Pn
$
C
C
Pn $
network
bus memory
memory memory
Memoria compartida P0 memory
memory
Memoria compartida distribuida NI
P1 memory
NI
Pn ...
NI
memory
interconnect
Memoria distribuida F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
54