tema 1 - — ocw - uc3mocw.uc3m.es/ingenieria-informatica/sistemas-distribuidos-2013/tema... ·...

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

Upload: ledung

Post on 11-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Tema 1Introducció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

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.

� Principales desafíos de diseño

� Concepto de middleware

� Paradigmas de computación distribuida

� Plataformas hardware para sistemas distribuidos

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

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.

� Interfaces de usuario poco amigables

� Aparecen las primeras redes

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)

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.

� Redes de área local (LAN)

� Aparecen los primeros sistemas operativos distribuidos� Mach, Sprite, Chorus, ...

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

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.

� Nuevas necesidades y aplicaciones basadas en web� Comercio electrónico

� Multimedia

� Sistemas de control

� Aplicaciones médicas

� Supercomputación en Internet

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

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.

� Dispositivos móviles

� Aplicaciones para Internet basadas en Web

� Tendencia: todas las aplicaciones en red

6

AplicacionesPuestos de trabajo

Red

Evolución de la informática

� Infraestructura tradicional

Clientes

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.

Servidores

7

LAN

Evolución de la informática

� Infraestructura tradicional � Consolidación de recursos

Clientes

LAN

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.

Red de

almacenamiento

Almacenamiento

Compartido

8

Servidores

LANLAN

Evolución de la tecnología

� La ley de Bell (1972):� “aparecerá una nueva clase de computadoras (tecnología) cada 10 años” lo

g (people per

computer)

año

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.

� La ley de Moore (1965):� “el número de transistores por chip se doblará cada18-24 meses”

9

Infraestructura tradicional

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.

Sistema Operativo

10

Máquinas Virtuales

SO1 SO2

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.

MV1 MV2SO1 SO2

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

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

Red

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

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.

“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 ejecución

� Una red de computadores es un conjunto de computadores conectados por una 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.

� 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

14

Ejemplos: red de área local

Workstations

Red de árealocal

PC

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.

1 s

local

Servidores deficheros

Conexión al exterior Otros servidores

(impresión,...)

15

Ejemplo: Web

http://www.uc3m.es

Página Web

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.

navegador www.uc3m.es

16

Ejemplos de aplicaciones y sistemas distribuidos

� Correo electrónico (IMAP, POP)

� Transferencia de ficheros (FTP)

� Servicios de News

� WorldWideWeb (WWW)

� Sistemas de control de tráfico aéreo

� Aplicaciones bancarias

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.

� 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 mayorque en otras

� Requieren calidad de servicio (QoS)

� Aplicaciones médicas (transferencia de imágenes)

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:

� Alto rendimiento (speedup)

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.

� 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)

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 relación coste/rendimiento

� Capacidad de crecimiento (escalabilidad)

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.

� 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

20

Desventajas de los sistemas distribuidos

� Interconexión� Coste

� Fiabilidad, pérdida de mensajes

� Saturación

� Comunicaciones inseguras

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.

� Software más complejo

� Potencia de cada nodo no adecuada

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 DistribuidosDesafíos de diseño

� Heterogeneidad de los componentes � Nombrado� Comunicación y sincronización� Rendimiento� Concurrencia

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.

� 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 programació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.

� Lenguajes de programación

� Aplicaciones

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 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

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.

� 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. 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.

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)

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:

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.

� 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

27

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

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.

0

20

40

60

80

100

120

140

1965 1970 1975 1980 1985 1990 1995 2000 2005 2010

Núm

ero

de

host

s(m

illio

nes)

Web

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

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.

� 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

29

Estructura de softwareSistema centralizado

� Estructura software típica de un sistema centralizado:

Sistema operativo

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.

� 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

30

Sistema operativo

Hardware

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. 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.

� Lo importante es ofrecer un soporte para la programación de aplicaciones distribuidas de una manera fácil y transparente.

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

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

Lenguajes de programación

Aplicaciones

Red de interconexión

Hardware

Sistema operativo

Lenguajes de programación

Aplicaciones

Hardware

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 SODEjemplos: Mach, Amoeba, 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.

� Ejemplos: Mach, Amoeba, Chorus

Sistema operativo distribuido

Lenguajes de programación

Aplicaciones

Red de interconexión

Hardware Hardware

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

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.

� Independientes del HW y del SO subyacente� Ejemplos: DCE, CORBA, DCOM, WebOS, Globus, .NET

Sistema operativo

Middleware

Lenguajes de programación

Aplicaciones

Red de interconexión

Hardware

Sistema operativo

Hardware

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:

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.

� 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 proporción de tiempo que un sistema está disponible para su uso

Técnicas para mejorar la disponibilidad:

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.

� Técnicas para mejorar la disponibilidad:� Tolerancia a fallos

� Detección de fallos

� Enmascaramiento de fallos

� Recuperación 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 replicación

� Coherencia de caches

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.

� Coherencia de caches

� Coherencia ante fallos

� Relojes consistentes

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:

� protección contra el descubrimiento de datos por individuos no autorizados

2. Integridad

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. 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

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. 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.

� 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

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

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.

� Replicación: acceso a recursos replicados sin conocimiento de que loson

� 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

40

Paradigmas de computacióndistribuida

� Paso de mensajes

� Cliente-servidor

� Llamadas a procedimientos remotos

� Peer-to-peer

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.

� Peer-to-peer

� Objetos distribuidos

� Agentes móviles

� Servicios en red

� Aplicaciones colaborativas (groupware)

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

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.

m1

m2

m3

Proceso A Proceso B

Mensaje

Paso de mensajes

42

Paso de mensajes

� Operaciones básicas:� Enviar (send)

� Recibir (receive)

� Modelos de comunicación:� Orientadas a conexió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.

� Operaciones para conectar y desconectar� No orientadas a conexión

� 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. 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.

� Elemento activo: invoca peticiones

...

Petición de servicio

Proceso servidorProceso cliente

Servicio

Servidor Cliente 1

Cliente 2

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)

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.

� Invocación de métodos 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 aplicación no distribuida

� Conceptualmente igual que la invocación de un procedimiento local

Proceso A Proceso BCualquier programa

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.

proc1(arg1, arg2)

proc2(arg1)

proc3(arg1,arg2,arg3)

Proceso A Proceso BCualquier programa

funcion(1,2)

funcion(arg1,arg2)

….

return;

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, JavaBeans, .NET Remoting

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.

método1método2

Proceso 1Proceso 2

Objeto remoto

RMI

47

Peer-to-Peer

� Los procesos participantes en la comunicación asumen el mismo rol: � Cliente y servidor

� Los recursos y los servicios

Proceso 1

RespuestaRespuesta

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.

� Los recursos y los servicios son intercambiados entre los computadores

� Ejemplo: � Napster → intercambio de ficheros

48

SolicitudSolicitud

Proceso 2

Agentes móviles� Un agente móvil es un programa u objeto transportable

� El agente se lanza desde un determinado computador origeny “viaja” de manera autónoma de un ordenador a otro

� En cada salto de la ruta, el agente

Computador 2

Computador 1 Computador 3

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.

� 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

49

Computador 4

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

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.

� Transparencia de localización

� Ejemplo: SOAP

50

Solicitante del servicio

Servicio de directorio

Objeto de servicio

1

23

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

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

mensaje

mensaje

mensaje

groupware basado en mensajes groupware basado en pizarra

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

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.

� Actualizaciones múltiples

� Operaciones colectivas en cálculo paralelo

52

emisor receptor

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

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. 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.

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

C

Pn

C

P1

network

C

memory

P2

$

Pn

$

memory memory

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.

memory memory memory

interconnect

P0

memory

NI

. . .

P1

memory

NI Pn

memory

NI

Memoria compartida Memoria compartida distribuida

Memoria distribuida54