Tema1_introduccion

download Tema1_introduccion

of 54

description

dasd

Transcript of Tema1_introduccion

  • Tema 1Introduccin a los Sistemas Distribuidos

    F. Garca-Carballeira, M. Soledad Escolar,

    Luis Miguel Snchez, Fco. Javier Garca

    Sistemas Distribuidos

    Grado en Ingeniera Informtica

    Universidad Carlos III de Madrid

  • Contenido

    Evolucin de la informtica

    Concepto de sistema distribuido

    Ejemplos de aplicaciones distribuidas

    Ventajas e inconvenientes de los sistemas distribuidos

    Sistemas distribuidos vs. paralelos

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Principales desafos de diseo

    Concepto de middleware

    Paradigmas de computacin distribuida

    Plataformas hardware para sistemas distribuidos

    2

  • Evolucin de la Informtica

    En los aos 70: Mainframes centrales

    Sistemas de tiempo compartido

    Recursos centralizados

    Terminales simples

    Interfaces de usuario poco amigables

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Interfaces de usuario poco amigables

    Aparecen las primeras redes

    3

  • Evolucin de la Informtica

    En los aos 80: PCs y estaciones de trabajo

    Predominio de aplicaciones complejas ejecutadas localmente

    Interfaces amigables

    Redes de rea local (LAN)

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Redes de rea local (LAN)

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

    4

  • Evolucin de la informtica

    En los aos 90: Despegue de las aplicaciones cliente/servidor

    Ms descentralizacin Aplicaciones ejecutadas localmente y en red

    Enorme difusin de Internet gracias a la web

    Nuevas necesidades y aplicaciones basadas en web

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Nuevas necesidades y aplicaciones basadas en web Comercio electrnico

    Multimedia

    Sistemas de control

    Aplicaciones mdicas

    Supercomputacin en Internet

    5

  • Evolucin de la informtica

    En los aos 2000: Nuevos paradigmas de computacin distribuida

    Grid computing

    Peer-to-Peer

    Computacin ubicua

    Dispositivos mviles

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Dispositivos mviles

    Aplicaciones para Internet basadas en Web

    Tendencia: todas las aplicaciones en red

    6

    AplicacionesPuestos de trabajo

    Red

  • Evolucin de la informtica

    Infraestructura tradicional

    Clientes

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Servidores

    7

    LAN

  • Evolucin de la informtica

    Infraestructura tradicional Consolidacin de recursos

    Clientes

    LAN

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Red dealmacenamiento

    AlmacenamientoCompartido

    8

    Servidores

    LANLAN

  • Evolucin de la tecnologa

    La ley de Bell (1972): aparecer una nueva clase de computadoras (tecnologa) cada 10 aos

    l

    o

    g

    (

    p

    e

    o

    p

    l

    e

    p

    e

    r

    c

    o

    m

    p

    u

    t

    e

    r

    )

    ao

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    La ley de Moore (1965): el nmero de transistores por chip se doblar cada18-24 meses

    9

  • Infraestructura tradicional

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Sistema Operativo

    10

  • Mquinas Virtuales

    SO1 SO2

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    MV1 MV2SO1 SO2

    11

  • Sistema Distribuido

    Sistema formado por recursos de computacin (hardware y software) fsicamente distribuidos e interconectados a travs de una red, que comunican mediante paso de mensajes y cooperan para realizar una determinada tarea

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    12

    Red

  • Otras definiciones

    Un sistema distribuido es aquel en el que no puedes trabajar con tu mquina por el fallo de otra mquina que ni siquiera sabas que exista

    -Leslie Lamport

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Un sistema distribuido es aquel en el que los computadores localizados en una red comunican y coordinan sus acciones mediante paso de mensajes

    -George Coulouris

    13

  • Conceptos previos

    Un programa es un conjunto de instrucciones

    Un proceso es un programa en ejecucin

    Una red de computadores es un conjunto de computadores conectados por una red de interconexin

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Sistema distribuido Un conjunto de computadores (sin memoria ni reloj comn) conectados por una red

    Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o ms computadores que colaboran y comunican intercambiando mensajes.

    Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicacin en un sistema distribuido, es decir, el intercambio de mensajes

    14

  • Ejemplos: red de rea local

    Workstations

    Red de realocal

    PC

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    1 s

    local

    Servidores deficheros

    Conexin al exterior Otros servidores

    (impresin,...)

    15

  • Ejemplo: Web

    http://www.uc3m.es

    Pgina Web

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    navegador www.uc3m.es

    16

  • Ejemplos de aplicaciones y sistemas distribuidos

    Correo electrnico (IMAP, POP)

    Transferencia de ficheros (FTP)

    Servicios de News

    WorldWideWeb (WWW)

    Sistemas de control de trfico areo

    Aplicaciones bancarias

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Aplicaciones bancarias

    Comercio electrnico

    Aplicaciones multimedia (videoconferencias, vdeo bajo demanda , etc.)

    El ancho de banda en estas aplicaciones es un orden de magnitud mayorque en otras

    Requieren calidad de servicio (QoS)

    Aplicaciones mdicas (transferencia de imgenes)

    17

  • Objetivos de los SSDD

    Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    18

  • Sistemas distribuidos y paralelos

    Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras

    Sistemas paralelos Objetivo:

    Alto rendimiento (speedup)

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Alto rendimiento (speedup) Alta productividad

    Mquinas paralelas (arquitecturas dedicadas) Multiprocesadores Multicomputadores

    Redes de estaciones de trabajo trabajando como un multicomputador (cluster)

    Grid Computing (www.gridcomputing.com)

    19

  • Ventajas que pueden ofrecer los SSDD

    Compartir recursos (HW, SW, datos) Acceso a recursos remotos.

    Modelo cliente-servidor

    Modelo basado en objetos

    Ofrecen una buena relacin coste/rendimiento

    Capacidad de crecimiento (escalabilidad)

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Capacidad de crecimiento (escalabilidad)

    Tolerancia a fallos, disponibilidad Replicacin

    Concurrencia: servicio a mltiples usuarios simultneamente

    Velocidad: capacidad global de procesamiento disponible para: Ejecucin paralela de una aplicacin

    20

  • Desventajas de los sistemas distribuidos

    Interconexin Coste

    Fiabilidad, prdida de mensajes

    Saturacin

    Comunicaciones inseguras

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Software ms complejo

    Potencia de cada nodo no adecuada

    21

  • Topologas de red

    Grid o malla rbol

    Lineal

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    22

  • Sistemas DistribuidosDesafos de diseo

    Heterogeneidad de los componentes Nombrado Comunicacin y sincronizacin Rendimiento Concurrencia

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Concurrencia Capacidad de crecimiento Estructura de software Fiabilidad Calidad de servicio (QoS) Transparencia

    23

  • Heterogeneidad

    Heterogeneidad de los SSDD:

    Es la variedad y diferencia de los siguientes componentes:

    Redes

    HW de computadores

    Sistemas operativos

    Lenguajes de programacin

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Lenguajes de programacin

    Aplicaciones

    24

  • Cmo resolver la heterogeneidad?

    Empleo de sistemas abiertos (es la caracterstica del sistema que determina si el sistema puede ser extendido y re-implementado) Especificaciones e interfaces de acceso pblicas (ej. RFCs) Mecanismos de comunicacin uniformes Se pueden construir sobre SW y HW heterogneo

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Ejemplos de sistemas abiertos: TCP/IP NFS CORBA (www.omg.org) Globus (www.globus.org) Web services

    25

  • Nombrado

    Los usuarios designan a los objetos mediante un nombre (ej. www.uc3m.es)

    Los programas designan a los objetos mediante unidentificador (ej. 163.117.131.31)

    Resolver un nombre implica obtener el identificador a partir del nombre

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    del nombre

    Objetivo importante: los nombres deben ser independientes de su localizacin

    Consideraciones de diseo a tener en cuenta: El espacio de nombres (tamao, estructura, jerarqua, ...)

    El servicio de nombres que realiza la resolucin (ej. DNS)

    26

  • Comunicacin y sincronizacin (C y S) Forma bsica de C y S: paso de mensajes

    Mecanismos sncronos Mecanismos asncronos

    Comunicacin entre procesos: Las entidades que se comunican en distintas mquinas son procesos Primitivas bsicas de comunicacin:

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    send receive

    Llamadas a procedimientos remotos Invocacin de objetos remotos

    Comunicacin en grupos Multicast, broadcast til para el trabajo en grupo, localizar el objeto, tolerancia a fallos, mejorar el rendimiento (replicacin), asegurar la consistencia

    27

  • Capacidad de crecimiento

    Un sistema posee capacidad de crecimiento o escalabilidad si conserva su efectividad cuando se incrementa significativamente el nmero de recursos o usuarios.

    Ejemplo: crecimiento de Internet

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    020406080

    100120140

    1965 1970 1975 1980 1985 1990 1995 2000 2005 2010

    N

    m

    e

    r

    o

    d

    e

    h

    o

    s

    t

    s

    (

    m

    i

    l

    l

    i

    o

    n

    e

    s

    )

    Web

    28

  • Aspectos a considerar

    Para que un sistema con n usuarios sea escalable, la cantidad de recursos necesarios para soportarlo debera ser proporcional a n O(n)

    Empleo de algoritmos distribuidos Algoritmos que usan estructuras jerrquicos mejor que lineales

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Algoritmos que usan estructuras jerrquicos mejor que lineales

    Evitar cuellos de botella (bottleneck) en el sistema Algoritmos descentralizados

    Evitar el desbordamiento de los recursos SW Ejemplo: 32 bits para las direcciones IP

    29

  • Estructura de softwareSistema centralizado

    Estructura software tpica de un sistema centralizado:

    Sistema operativoLenguajes de programacin

    Aplicaciones

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    El sistema operativo (SO): Gestionar los recursos de hardware manera eficiente Ofrecer servicios a las aplicaciones para el acceso y la gestin de los recursos

    30

    Sistema operativoHardware

  • Estructura de software

    Sistema Distribuido

    Existen tres posibilidades para estructurar el software de un sistema distribuido Emplear sistemas operativos en red

    Utilizar un sistema operativo distribuido

    Utilizar middlewares o entornos distribuidos

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Lo importante es ofrecer un soporte para la programacin de aplicaciones distribuidas de una manera fcil y transparente.

    31

  • Sistema operativo en red (SOR)

    El usuario ve un conjunto de mquinas independientes

    Se debe acceder de forma explcita a los recursos en otras mquinas

    No hay transparencia

    Difciles de utilizar para desarrollar aplicaciones distribuidas

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    32

    Sistema operativoLenguajes de programacin

    Aplicaciones

    Red de interconexin

    Hardware

    Sistema operativoLenguajes de programacin

    Aplicaciones

    Hardware

  • Sistema operativo distribuido (SOD)

    Se comporta como un SO nico: Hace creer a los usuarios que trabajan con un nico sistema centralizado Distribucin Transparencia

    Se construyen normalmente como microncleos que ofrecen servicios bsicos de comunicacin

    Restriccin: todos los computadores deben ejecutar el mismo SODEjemplos: Mach, Amoeba, Chorus

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Ejemplos: Mach, Amoeba, Chorus

    Sistema operativo distribuidoLenguajes de programacin

    Aplicaciones

    Red de interconexin

    Hardware Hardware

    33

  • Middleware y entornos distribuidos

    Abstraccin de programacin que permite enmascarar la heterogeneidad de las redes subyacentes, HW, SO y LP

    Servicios y protocolos estandarizados: sistemas abiertos Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres, ...)

    Facilitan el desarrollo de aplicaciones distribuidas Independientes del HW y del SO subyacente

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

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

    Sistema operativoMiddleware

    Lenguajes de programacinAplicaciones

    Red de interconexin

    HardwareSistema operativo

    Hardware

    34

  • Fiabilidad

    La probabilidad de que un sistema funcione o desarrolle cierta funcin, bajo condiciones fijadas y durante un perodo de tiempo

    Para obtener fiabilidad hay que garantizar:

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Tratamiento de fallos

    Consistencia

    Seguridad

    35

  • Tratamiento de fallos

    Generalmente, en los SSDD se pueden producir fallosparciales

    Objetivo de un sistema distribuido: disponibilidad Mide la proporcin de tiempo que un sistema est disponible para su uso

    Tcnicas para mejorar la disponibilidad:

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Tcnicas para mejorar la disponibilidad: Tolerancia a fallos

    Deteccin de fallos

    Enmascaramiento de fallos

    Recuperacin ante fallos

    Redundancia

    36

  • Consistencia

    El problema de la consistencia (coherencia) surge cuando varios procesos acceden y actualizan datos de forma concurrente Coherencia de las actualizaciones

    Coherencia de la replicacin

    Coherencia de caches

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Coherencia de caches

    Coherencia ante fallos

    Relojes consistentes

    37

  • Seguridad

    Los recursos de informacin disponibles en los SSDD pueden tener un valor importante para los usuarios (ej. informacin bancaria)

    La seguridad tiene tres componentes:1. Confidencialidad:

    proteccin contra el descubrimiento de datos por individuos no autorizados

    2. Integridad

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    2. Integridad proteccin contra la alteracin o corrupcin de los datos

    3. Disponibilidad: proteccin contra la interferencia en los procedimientos de acceso a los recursos

    Otros problemas de seguridad Ataques de denegacin de servicio Seguridad del cdigo mvil

    38

  • Calidad de servicio (QoS)

    Es la habilidad de satisfacer los requerimientos de tiempo cuando se transmiten y procesan flujos de datos multimedia en tiempo real

    Rendimiento de un sistema: Tiempo de respuesta adecuado

    Latencias

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Latencias

    Tasa de transferencia de datos Velocidad en la cual los datos pueden ser transferidos entre dos computadoras de la red, usualmente medido en bits por segundo (bps)

    El rendimiento viene determinado por: La red de comunicacin Los servicios de comunicacin empleados El sistema operativo El soporte para la programacin de sistemas distribuidos

    39

  • Transparencia

    Ocultacin al usuario de los componentes que conforman un sistema distribuido: Acceso: acceso a recursos remotos y locales de igual forma Posicin: acceso a los recursos sin necesidad de conocer su situacin Concurrencia: acceso concurrente a recursos compartidos sin interferencias

    Replicacin: acceso a recursos replicados sin conocimiento de que lo

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Replicacin: acceso a recursos replicados sin conocimiento de que loson

    Fallos: mantenimiento del servicio en presencia de fallos. Migracin: permite que los recursos y objetos se muevan sin afectar a la operacin de los programas.

    Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema

    40

  • Paradigmas de computacindistribuida

    Paso de mensajes

    Cliente-servidor

    Llamadas a procedimientos remotos

    Peer-to-peer

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Peer-to-peer

    Objetos distribuidos

    Agentes mviles

    Servicios en red

    Aplicaciones colaborativas (groupware)

    41

  • Paso de mensajes

    Paradigma fundamental para aplicaciones distribuidas

    Un proceso emisor enva un mensaje de solicitud

    El mensaje llega al proceso receptor, el cual procesa la solicitud y devuelve un mensaje en respuesta

    Esta respuesta puede originar posteriores solicitudes por parte del proceso emisor

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    m1m2

    m3

    Proceso A Proceso B

    Mensaje

    Paso de mensajes

    42

  • Paso de mensajes

    Operaciones bsicas: Enviar (send)

    Recibir (receive)

    Modelos de comunicacin: Orientadas a conexin

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Operaciones para conectar y desconectar No orientadas a conexin

    Ejemplo: sockets

    43

  • Cliente-Servidor

    Asigna roles diferentes a los procesos que comunican: cliente y servidor

    Servidor:

    Ofrece un servicio

    Elemento pasivo: espera la llegada de peticiones

    Cliente:

    Solicita el servicio

    Elemento activo: invoca peticiones

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Elemento activo: invoca peticiones

    .

    .

    .

    Peticin de servicio

    Proceso servidorProceso cliente

    Servicio

    Servidor Cliente 1

    Cliente 2

    44

  • Cliente-Servidor

    Abstraccin eficiente para facilitar los servicios de red

    La asignacin de roles asimtricos simplifica la sincronizacin

    Implementacin mediante:

    Sockets

    Llamada a procedimientos remotos (RPC)

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Invocacin de mtodos remotos (RMI, CORBA, ).

    Paradigma principalmente adecuado para servicios centralizados

    Ejemplos: servicios de Internet (HTTP, FTP, DNS, )

    45

  • Llamadas a procedimientos remotos

    Idea: hacer que el software distribuido se programe igual que una aplicacin no distribuida

    Conceptualmente igual que la invocacin de un procedimiento local

    Proceso A Proceso BCualquier programa

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    proc1(arg1, arg2)

    proc2(arg1)

    proc3(arg1,arg2,arg3)

    Proceso A Proceso BCualquier programa

    funcion(1,2)

    funcion(arg1,arg2).

    return;

    46

  • Invocacin de mtodos remotos

    Modelo equivalente a las llamadas a procedimientos remotos

    Proceso invoca un mtodo local de otro proceso

    Ejemplos: CORBA, RMI de Java, Microsoft COM, DCOM, JavaBeans, .NET Remoting

    Proceso 2

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    mtodo1mtodo2

    Proceso 1Proceso 2

    Objeto remoto

    RMI

    47

  • Peer-to-Peer

    Los procesos participantes en la comunicacin asumen el mismo rol: Cliente y servidor

    Los recursos y los servicios

    Proceso 1

    RespuestaRespuesta

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Los recursos y los servicios son intercambiados entre los computadores

    Ejemplo: Napster intercambio de ficheros

    48

    SolicitudSolicitud

    Proceso 2

  • Agentes mviles Un agente mvil es un programa u objeto transportable

    El agente se lanza desde un determinado computador origeny viaja de manera autnoma de un ordenador a otro

    En cada salto de la ruta, el agente

    Computador 2

    Computador 1 Computador 3

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    En cada salto de la ruta, el agente realiza las funciones necesarias para completar su tarea

    No intercambian mensajes

    Problema de seguridad: cdigo mvil ejecutable podra ser malicioso

    49

    Computador 4

  • Servicios en red

    Los procesos solicitantes acceden un servicio a travs de una referencia que le proporciona el servidor de directorio

    Para publicar los servicios, stos deben registrarse en el servicio de directorio

    Transparencia de localizacin

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Transparencia de localizacin

    Ejemplo: SOAP

    50

    Solicitante del servicio

    Servicio de directorio

    Objeto de servicio

    1

    23

  • Aplicaciones colaborativas (groupware)

    Varios procesos participan en una sesin de trabajo colaborativo Comunicacin unicast, multicast y broadcast Dos formas:

    Basado en mensajes: usan mensajes para enviar datos a todos o parte del grupo Basado en pizarra: usan pizarras o tablones virtuales que permiten leer o escribir

    datos sobre un espacio compartido

    mensaje

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    51

    mensaje

    mensaje

    mensaje

    groupware basado en mensajes groupware basado en pizarra

  • Comunicacin de grupos

    Utiliza mensajes multicast

    til para: Ofrecer tolerancia a fallos basado en servicios replicados

    Localizar objetos en sistemas distribuidos

    Mejor rendimiento mediante datos replicados

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    Actualizaciones mltiples

    Operaciones colectivas en clculo paralelo

    52

    emisor receptor

    IPC uno-a-uno IPC grupo o multidifusin

  • Arquitecturas paralelas

    MPP (Massively parallel processing) Multiprocesador de memoria distribuida

    SMP (Symmetric multiprocessing) Multiprocesador de memoria compartida

    CC-NUMA (Cache-Coherent Non-Uniform Memory

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    CC-NUMA (Cache-Coherent Non-Uniform Memory Access) Multiprocesador con una memoria de acceso no uniforme

    Clusters

    53

  • Arquitecturas paralelas

    P1

    bus

    C

    memory

    P2

    CPn

    C

    P1

    network

    C

    memory

    P2

    $Pn

    $

    memory memory

    F. Garca-Carballeira, M. Soledad Escolar, Luis Miguel Snchez, Fco. Javier Garca

    Este obra est bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Espaa.

    memory memory memory

    interconnect

    P0

    memory

    NI

    . . .

    P1

    memory

    NI Pn

    memory

    NI

    Memoria compartida Memoria compartida distribuida

    Memoria distribuida54