![Page 1: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/1.jpg)
Diseño de Sistemas DistribuidosMáster en Ciencia y Tecnología Informática
Curso 2017-2018
Félix García CarballeiraGrupo de Arquitectura de [email protected]
Presentación e introducción
![Page 2: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/2.jpg)
Sistemas de memoria compartida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •2
![Page 3: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/3.jpg)
Memoria compartida vs memoriadistribuida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •3
![Page 4: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/4.jpg)
Memoria compartida vs memoriadistribuida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •4
§ Comunicación mediante memoria§ Sincronización mediante Locks
§ Comunicación mediante paso de mensajes§ Sincronización mediante paso de mensajes
![Page 5: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/5.jpg)
Tipos de sistemas informáticos
Computer systems
Single system Distributed systems
(multiple systems)
PC/work. SMP/MPP Vector Mainframe
clusters Client/Server Grids Peer-to-peer
centralized decentralizedcontrol and management
•Félix García Carballeira •5•Sistemas Distribuidos (2017-2018)
Cloud
![Page 6: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/6.jpg)
Sistema distribuido
§ Sistema compuesto por recursos de computación físicamente distribuidos conectados a través de una red que se comunican y coordinan entre sí
•Félix García Carballeira •6•Sistemas Distribuidos (2017-2018)
![Page 7: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/7.jpg)
Computación distribuida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •7
§ Computación que se realiza en un sistema distribuido
procesos procesos
procesos
servicios
![Page 8: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/8.jpg)
Definición de Leslie Lamport
§ A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •8
![Page 9: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/9.jpg)
Mejoras en las tecnologías para SSDD
§ Avance en los procesadores
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •9
•K. Hwang et al.
![Page 10: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/10.jpg)
Mejoras en las tecnologías para SSDD
§ Arquitecturas multicore y many-core
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •10
•K. Hwang et al.
![Page 11: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/11.jpg)
Mejoras en las tecnologías para SSDD
§ Mejoras en las memorias y tecnologías de almacenamiento
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •11
•K. Hwang et al.
![Page 12: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/12.jpg)
Mejoras en las tecnologías para SSDD
§ Mejoras en la tecnología de red§ Ley de Gilder
q El ancho de banda agregado se triplica cada año
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •12
![Page 13: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/13.jpg)
Mejoras en las tecnologías para SSDD
§ Virtualización
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •13
§ Posibilidad de ejecutar en un computador (host) un programa que crea un computador virtual (guest) sobre el que ejecutar cualquier entorno.
Sistema tradicional virtualización
![Page 14: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/14.jpg)
Elementos de un sistema distribuido
§ Programa: conjunto de instrucciones.§ Proceso: programa en ejecución.§ Datos manipulados por los programas§ Componente: elemento HW o SW que soporta la ejecución del
sistema§ Una red de computadores es un conjunto de computadores
conectados por una red de interconexión.§ Un protocolo es un conjunto de reglas e instrucciones que
gobiernan la comunicación en un sistema distribuido, es decir, el intercambio de mensajes.
§ Middleware: Software que soporta la ejecución de aplicaciones distribuidas
•Félix García Carballeira •14•Sistemas Distribuidos (2017-2018)
![Page 15: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/15.jpg)
Paso de mensajes
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •15
![Page 16: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/16.jpg)
Características
§ Múltiples componentes autónomos§ Ausencia de un reloj global§ Todos los recursos pueden no ser accesibles a la vez§ El software ejecuta en procesos concurrentes sobre máquinas
diferentes§ Software más complejo§ Múltiples puntos de fallo§ Múltiples puntos de control§ Comunicación a través de redes
•Félix García Carballeira •16•Sistemas Distribuidos (2017-2018)
![Page 17: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/17.jpg)
Ventajas que pueden ofrecer los sistemas distribuidos
§ Compartir recursos (HW, SW, datos). § Ofrecen una buena relación coste/rendimiento§ Capacidad de crecimiento§ Tolerancia a fallos, disponibilidad, replicación§ Distribución de la carga§ Concurrencia. Servicio a múltiples usuarios§ Velocidad. Capacidad global de procesamiento disponible para
ejecución paralela de una aplicación
•Félix García Carballeira •17•Sistemas Distribuidos (2017-2018)
![Page 18: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/18.jpg)
Aspectos de diseño
§ Heterogeneidad: contemplar diferentes HW, SW, lenguajes de programación, velocidad, …
§ Extensibilidad: abierto a nuevos estándares, aplicaciones, tecnologías.
§ Escalabilidad: permitir el crecimiento del sistema§ Seguridad: confidencialidad, integridad, autenticación§ Tolerancia a fallos y disponibilidad: identificar y tratar los
fallos§ Control de concurrencia: coordinar las acciones que ocurren en
diferentes sistemas.
•Félix García Carballeira •18•Sistemas Distribuidos (2017-2018)
![Page 19: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/19.jpg)
Aspectos de diseño
§ Puntos de control no únicos: funciones distribuidas en sistemas autónomos
§ Sin una visión global: es imposible tener una visión precisa e instantánea del estado de todo el sistema
§ Transparencia: visión de un sistema “unico”§ Asincronía: los mensajes tardan un tiempo (variable) en ser
entregados§ Calidad de servicio: ofrecer garantias del servicio (velocidad,
seguridad, disponibilidad,….)§ Algoritmos eficientes
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •19
![Page 20: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/20.jpg)
Sistemas distribuidos y paralelos
§ Sistemas distribuidosq Objetivo: compartir recursos y colaborar.q Redes de computadores
§ Sistemas paralelosq Objetivo:
§ Alto rendimiento (speedup).§ Alta productividad
q Máquinas paralelas (arquitecturas dedicadas)§ Multiprocesadores§ Multicomputadores
q Redes de estaciones de trabajo trabajando como un multicomputador(cluster)
q Grid Computing (www.gridcomputing.com)
•Félix García Carballeira •20•Sistemas Distribuidos (2017-2018)
![Page 21: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/21.jpg)
Transparencia
§ Heterogeneidad: acceso a recursos heterogéneos de forma idéntica§ Acceso: acceso a recursos locales y remotos de forma idéntica§ Ubicación: Acceso a recursos sin conocimiento de su posición física en la
red§ Concurrencia: ejecución concurrente de procesos sin interferencias§ Replicación: uso de múltiples réplicas de recursos sin conocimiento de su
existencia § Fallos: permitir la ejecución aun en presencia de fallos§ Movilidad: permitir el movimiento de los recursos y clientes sin afectar a
su funcionamiento§ Crecimiento: permitir la capacidad de crecimiento sin afectar al sistema y
aplicaciones§ Rendimiento: rendimiento similar en recursos locales y remotos
•Félix García Carballeira •21•Sistemas Distribuidos (2017-2018)
![Page 22: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/22.jpg)
Escalabilidad
§ Un sistema distribuido es escalable si su capacidad de procesamiento puede crecer al añadir más usuariosq Aumenta el rendimiento al aumentar el número de nodosq El tiempo de respuesta no aumentaq La fiabilidad no se degrada
§ Dimensiones:q Numérica: usuarios, objetos, serviciosq Geográfica: distancia q Administrativa: número de organización involucradas
•Félix García Carballeira •22•Sistemas Distribuidos (2017-2018)
![Page 23: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/23.jpg)
Técnicas de escalabilidad
§ Replicación q Datos: múltiples copias del mismo datoq Procesos: múltiples ejecuciones de la misma computación
§ Cachingq Consistencia
§ Distribuciónq Distribución de carga en múltiples nodos
§ DNS, DHT
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •23
![Page 24: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/24.jpg)
Control de concurrencia
§ Un sistema distribuido es inherentemente concurrente§ Concurrencia: varias actividades se ejecutan simultáneamente
q Permite reducir el tiempo de ejecución de un problema§ La concurrencia introduce condiciones de carrera (los
resultados dependen de la secuencia de eventos)§ Los recursos compartidos deben protegerse (cerrojos,
semáforos, etc.) y asegurar:q Exclusión mutuaq Progresoq Espera acotada
•Félix García Carballeira •24•Sistemas Distribuidos (2017-2018)
![Page 25: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/25.jpg)
Tolerancia a fallos
§ Un sistema distribuido es inherentemente más 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 Disponibilidad: los recursos son disponibles a pesar de que
haya fallos.q Atomicidad: la consistencia de los recursos se debe asegurar
a pesar de fallos
•Félix García Carballeira •25•Sistemas Distribuidos (2017-2018)
![Page 26: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/26.jpg)
Falacias de los sistemas distribuidos
§ http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computingq La red es fiableq La latencia es ceroq El ancho de banda es infinitoq La red es seguraq La topología no cambiaq Hay un administradorq El coste de transporte es ceroq La red es homogénea
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •26
![Page 27: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/27.jpg)
El teorema CAP Brewer, PODC 2000
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •27
![Page 28: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/28.jpg)
Middelware
Sistema operativoMiddleware
Lenguajes de programaciónAplicaciones
Red de interconexión
Hardware
Sistema operativo
Hardware
§ Artículo: Midleware for distributed systemsq http://www.cs.wustl.edu/~schmidt/PDF/middleware-chapter.pdf
•Félix García Carballeira •28•Sistemas Distribuidos (2017-2018)
§ Software que soporta la ejecución de aplicaciones distribuidas. Ofrece servicios para simplificar la ejecución de aplicaciones distribuidas
![Page 29: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/29.jpg)
Funciones de un middleware
§ Permite que componentes, procesos o aplicaciones intercambien información
§ Ocultar la distribución§ Ocultar la heterogeneidad de los componentes (HW, SW,
datos, protocolos, lenguajes de programación, …)§ Ofrecer interfaces de alto nivel estándar y uniformes para el
desarrollo de aplicaciones§ Ofrecer servicios comunes para facilitar la colaboración entre
las aplicaciones
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •29
![Page 30: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/30.jpg)
Modelo genérico de middleware
§ Interfaz para los clientes§ Procesos que ofrecen servicios
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •30
![Page 31: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/31.jpg)
Tipos de middleware
§ Llamadas a procedimientos remotos (RPC)§ Modelos basados en objetos distribuidos§ Middleware orientados a mensajes§ Arqutiecturas orientadas a servicios§ Servicios web
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •31
![Page 32: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/32.jpg)
Modelos de comunicación
§ Paso de mensajes§ Modelo cliente-servidor§ Objetos distribuidos§ Servicios web§ Comunicación indirecta
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •32
![Page 33: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/33.jpg)
Comunicación basada en mensajes
§ Sockets
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •33
Punto a punto multicast
![Page 34: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/34.jpg)
Mensajes y canales de comunicación
§ Mensaje: unidad de información a intercambiar entre procesos§ Canal de comunicación: mecanismo que permite que dos
procesos se comuniquen y sincronicen mediante el paso de mensajesq send(m)q receive(m)
§ Estado de un canal de comunicación: El canal Cij entre dos procesos Pi y Pj está formado por los mensajes enviados por Piy no recibidos por Pj
§ Protocolo: conjunto finito de mensajes intercambiado entre procesos para coordinar sus acciones
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •34
![Page 35: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/35.jpg)
Comunicación cliente-servidor
§ Ejemplos: Mail, web, § Mecanismos: Sockets, RPC, RMI, Servicios Web
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •35
Mensaje de petición
ServidorCliente
Solicitar operación
(esperar)
(continúa)
Mensaje de respuesta
Recibir petición
Ejecutar servicio
Seleccioar servicio
Enviar respueta
![Page 36: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/36.jpg)
Comunicación cliente-servidor
§ Ejemplos: Mail, web, § Mecanismos: Sockets, RPC, RMI, Servicios Web
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •36
Mensaje de petición
ServidorCliente
Solicitar operación
(esperar)
(continúa)
Mensaje de respuesta
Recibir petición
Ejecutar servicio
Seleccioar servicio
Enviar respueta
•autenticación•autorización•servicio•seguridad
![Page 37: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/37.jpg)
Llamadas a procedimientos remotos
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •37
•main(){• ...• r = sumar (4, 5);• ...•}
•sumar(int a, int b)• int r;• r = a + b;• return r;
}
•Cliente
•servidor
•petición
•respuesta
![Page 38: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/38.jpg)
Llamadas a procedimientos remotos
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •38
•main(){• ...• r = sumar (4, 5);• ...•} •a
•Dir retorno
•b•c
•main(){• receive (4, 5)...• r = sumar (4, 5);• send (r)•}•sumar(int a, int b)• int r;• r = a + b;• return r;
}
•Cliente
•servidor
Stub •sumar(int a, int b)• send(a, b);• receive(r);• return(r);} •peticion
•respuesta
•Stub
![Page 39: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/39.jpg)
Evolución de las RPC
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •39
![Page 40: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/40.jpg)
Comunicación indirecta
§ Permite comunicar procesos de forma desacopladaq El emisor y receptor pueden tener ejecuciones
independientes§ Diferente a la comunicación asíncrona
q Útil en sistemas de distribución de eventos§ Ejemplos:
q Comunicación de gruposq Sistemas de publicación/suscripciónq Colas de mensajesq Memoria compartida distribuida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •40
![Page 41: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/41.jpg)
Comunicación de grupos
§ Servicio en el que un mensaje en enviado a un grupo y, posteriormente, el mensaje es entregado a todos los miembros del grupoq El emisor no conoce las identidades de los receptores
§ Utilidad:q Envío fiable de información a múltiples clientesq Aplicaciones colaborativas (juegos,…)q Soporte para técnicas de tolerancia a fallosq Sistemas monitorización y gestión
§ La comunicación de grupos implementa una comunicación multicast
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •41
![Page 42: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/42.jpg)
Gestión de grupos
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •42
Source: Coulouris, et al.
Distributed Sistems, concepts and design (5th edition), 2012.
![Page 43: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/43.jpg)
Sistemas de publicación/suscripción
§ Sistemas distribuidos basados en eventosq Sistemas financierosq Aplicaciones de tiempo realq Aplicaciones colaborativasq Aplicaciones de monitorización
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •43
Source: Coulouris, et al.
Distributed Sistems, concepts and design
![Page 44: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/44.jpg)
Colas de mensajes
§ IBM’s WebSphre MQ, Microsoft’s MSMG, Oracle’s StreamsAdvanced Queuing (AQ), JMS
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •44
![Page 45: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/45.jpg)
Memoria compartida distribuida
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •45
![Page 46: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/46.jpg)
Ejemplos de sistemas distribuidos
§ Sistemas Cliente-servidor§ Clusters /entornos HPC§ Grid Computing§ Sistemas peer to peer§ Computación voluntaria§ Cloud computing § Mobile cloud computing§ Sistemas procesamiento big data
•Félix García Carballeira •Sistemas Distribuidos (2017-2018) •46
![Page 47: Máster en Ciencia y Tecnología Informática Curso 2017-2018 · un computador virtual (guest) sobre el que ejecutar cualquier entorno. Sistema tradicional virtualización. Elementos](https://reader035.vdocumento.com/reader035/viewer/2022070623/5e4ec23a0b50016969382294/html5/thumbnails/47.jpg)
Contenido y normas
http://arcos.inf.uc3m.es/~dsd/
•Félix García Carballeira •47•Sistemas Distribuidos (2017-2018)