48
SISTEMAS DISTRIBUIDOS SISTEMAS DISTRIBUIDOS TEMA 1: INTRODUCCION Valentín Valero Departamento de Sistemas Informáticos Universidad de Castilla-La Mancha [email protected] Tercer Curso del Grado en Informática

Tema 1: Sistemas distribuidos

  • Upload
    noelia

  • View
    13

  • Download
    4

Embed Size (px)

DESCRIPTION

Tema 1 de la asignatura de Sistemas distribuidos del Grado en Ingenieria Informatica

Citation preview

Page 1: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOSTEMA 1: INTRODUCCION

Valentín Valero

Departamento de Sistemas InformáticosUniversidad de Castilla-La Mancha

[email protected]

Tercer Curso del Grado en Informática

Page 2: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

Page 3: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

Page 4: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

Page 5: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

Page 6: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

Page 7: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

Rack

High

Disk

Speed

Page 8: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

Multiprocesador

¿SISTEMA DISTRIBUIDO?

High

Disk

Speed

Page 9: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

entre las diversas CPUs.

Podemos tener computaciones distribuidas

LANLAN

Multiprocesador

¿SISTEMA DISTRIBUIDO?

High

Disk

Speed

Page 10: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

NOCIONES BASICAS

Definición (SISTEMA DISTRIBUIDO)

No existe consenso en la definición: pueden considerarsesistemas distribuidos geográficamente, o pueden incluirseen esta denominación los multiprocesadores.

Sistema distribuido : Colección de unidades deprocesamiento interconectadas cuya visión para losusuarios es como si fuera un único computador.

Esta definición incluye los multiprocesadores.

Page 11: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

NOCIONES BASICAS

Definición (SISTEMA DISTRIBUIDO)

No existe consenso en la definición: pueden considerarsesistemas distribuidos geográficamente, o pueden incluirseen esta denominación los multiprocesadores.

Sistema distribuido : Colección de unidades deprocesamiento interconectadas cuya visión para losusuarios es como si fuera un único computador.

Esta definición incluye los multiprocesadores.

Page 12: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Alta capacidad de cómputo con menor coste: un clusterde 64 PCs es más barato que un multiprocesador de 64procesadores.

Compartición de datos o de equipos muy caros.

Adaptación a aplicaciones intrínsecamente distribuidas(bancos, supermercados, reserva de billetes, etc).

Mayor fiabilidad, pues el fallo de un componente no hacefracasar todo el sistema, sólo degrada su rendimiento.

Soporte del crecimiento incremental: pueden añadirsenuevas unidades de procesamiento sin muchosproblemas.

Page 13: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Alta capacidad de cómputo con menor coste: un clusterde 64 PCs es más barato que un multiprocesador de 64procesadores.

Compartición de datos o de equipos muy caros.

Adaptación a aplicaciones intrínsecamente distribuidas(bancos, supermercados, reserva de billetes, etc).

Mayor fiabilidad, pues el fallo de un componente no hacefracasar todo el sistema, sólo degrada su rendimiento.

Soporte del crecimiento incremental: pueden añadirsenuevas unidades de procesamiento sin muchosproblemas.

Page 14: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Alta capacidad de cómputo con menor coste: un clusterde 64 PCs es más barato que un multiprocesador de 64procesadores.

Compartición de datos o de equipos muy caros.

Adaptación a aplicaciones intrínsecamente distribuidas(bancos, supermercados, reserva de billetes, etc).

Mayor fiabilidad, pues el fallo de un componente no hacefracasar todo el sistema, sólo degrada su rendimiento.

Soporte del crecimiento incremental: pueden añadirsenuevas unidades de procesamiento sin muchosproblemas.

Page 15: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Alta capacidad de cómputo con menor coste: un clusterde 64 PCs es más barato que un multiprocesador de 64procesadores.

Compartición de datos o de equipos muy caros.

Adaptación a aplicaciones intrínsecamente distribuidas(bancos, supermercados, reserva de billetes, etc).

Mayor fiabilidad, pues el fallo de un componente no hacefracasar todo el sistema, sólo degrada su rendimiento.

Soporte del crecimiento incremental: pueden añadirsenuevas unidades de procesamiento sin muchosproblemas.

Page 16: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Alta capacidad de cómputo con menor coste: un clusterde 64 PCs es más barato que un multiprocesador de 64procesadores.

Compartición de datos o de equipos muy caros.

Adaptación a aplicaciones intrínsecamente distribuidas(bancos, supermercados, reserva de billetes, etc).

Mayor fiabilidad, pues el fallo de un componente no hacefracasar todo el sistema, sólo degrada su rendimiento.

Soporte del crecimiento incremental: pueden añadirsenuevas unidades de procesamiento sin muchosproblemas.

Page 17: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

La programación de aplicaciones distribuidas es máscompleja, basada en la programación concurrente.Además, en sistemas geográficamente distribuidos noexiste una referencia temporal común.

Las nuevas características de los sistemas distribuidos,como la movilidad del código y datos hacen aún más difícilla tarea de programar una aplicación distribuida.

Un sistema distribuido puede ser heterogéneo, lo cualpuede requerir nuevos elementos estructurales parahomogeneizar el interfaz entre sus componentes(middleware ).

Mayor probabilidad de fallos.

Mayor vulnerabilidad, al ser sistemas más abiertos.

Page 18: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

La programación de aplicaciones distribuidas es máscompleja, basada en la programación concurrente.Además, en sistemas geográficamente distribuidos noexiste una referencia temporal común.

Las nuevas características de los sistemas distribuidos,como la movilidad del código y datos hacen aún más difícilla tarea de programar una aplicación distribuida.

Un sistema distribuido puede ser heterogéneo, lo cualpuede requerir nuevos elementos estructurales parahomogeneizar el interfaz entre sus componentes(middleware ).

Mayor probabilidad de fallos.

Mayor vulnerabilidad, al ser sistemas más abiertos.

Page 19: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

La programación de aplicaciones distribuidas es máscompleja, basada en la programación concurrente.Además, en sistemas geográficamente distribuidos noexiste una referencia temporal común.

Las nuevas características de los sistemas distribuidos,como la movilidad del código y datos hacen aún más difícilla tarea de programar una aplicación distribuida.

Un sistema distribuido puede ser heterogéneo, lo cualpuede requerir nuevos elementos estructurales parahomogeneizar el interfaz entre sus componentes(middleware ).

Mayor probabilidad de fallos.

Mayor vulnerabilidad, al ser sistemas más abiertos.

Page 20: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

La programación de aplicaciones distribuidas es máscompleja, basada en la programación concurrente.Además, en sistemas geográficamente distribuidos noexiste una referencia temporal común.

Las nuevas características de los sistemas distribuidos,como la movilidad del código y datos hacen aún más difícilla tarea de programar una aplicación distribuida.

Un sistema distribuido puede ser heterogéneo, lo cualpuede requerir nuevos elementos estructurales parahomogeneizar el interfaz entre sus componentes(middleware ).

Mayor probabilidad de fallos.

Mayor vulnerabilidad, al ser sistemas más abiertos.

Page 21: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

La programación de aplicaciones distribuidas es máscompleja, basada en la programación concurrente.Además, en sistemas geográficamente distribuidos noexiste una referencia temporal común.

Las nuevas características de los sistemas distribuidos,como la movilidad del código y datos hacen aún más difícilla tarea de programar una aplicación distribuida.

Un sistema distribuido puede ser heterogéneo, lo cualpuede requerir nuevos elementos estructurales parahomogeneizar el interfaz entre sus componentes(middleware ).

Mayor probabilidad de fallos.

Mayor vulnerabilidad, al ser sistemas más abiertos.

Page 22: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

TRANSPARENCIA

Un aspecto importante de diseño:

Se pretende ocultar al usuario los detalles de gestión de losrecursos distribuidos.

Page 23: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

TIPOS DE TRANSPARENCIA I

- De acceso: El acceso a recursos locales y remotos deberealizarse de la misma forma.

- De ubicación: El usuario no tiene que conocer la ubicaciónexacta del recurso.

- De migración: El recurso podría ser llevado de unaestación a otra, de forma transparente al usuario.

- De replicación: Aunque un recurso esté replicado en variasestaciones, el usuario lo ve como uno solo.

- De concurrencia: El usuario no debe preocuparse por losproblemas relativos a la posible compartición de recursos.

Page 24: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

TIPOS DE TRANSPARENCIA II

- De paralelismo: El sistema podría paralelizar unaaplicación para mejorar el rendimiento, de formatransparente para el usuario.

- De fallos: Se oculta al usuario la problemática detratamiento y recuperación de fallos.

- De persistencia: El usuario no tiene que preocuparse porla gestión del medio soporte del recurso (si es volátil o no).

- De seguridad: Debe facilitarse un acceso seguro a losrecursos de forma simple y transparente al usuario.

Page 25: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

Page 26: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS ARQUITECTONICOS

Basados en componentes: unidades modulares coninterfaces y dependencias externas bien definidas, quepueden ser reemplazables (respetando el interface).

Pueden utilizarse los llamados conectores: elementos quefacilitan la comunicación, coordinación o cooperación entrecomponentes.

Ejemplos de conectores: servicios de paso de mensajes,RPC o flujos de datos (streams).

Page 27: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS ARQUITECTONICOS

Basados en componentes: unidades modulares coninterfaces y dependencias externas bien definidas, quepueden ser reemplazables (respetando el interface).

Pueden utilizarse los llamados conectores: elementos quefacilitan la comunicación, coordinación o cooperación entrecomponentes.

Ejemplos de conectores: servicios de paso de mensajes,RPC o flujos de datos (streams).

Page 28: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

COMPONENTES

Un componente se especifica en términos de un contrato, queincluye:

- Un interface, describiendo los servicios facilitados por elcomponente.

- Un conjunto de interfaces de otros componentesrequeridos: son las dependencias de este componente, yque deben estar presentes y conectadas a él para poderutilizarlo.

Page 29: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE COMPONENTES

INTERFAZ REQUERIDO

Servicio de directorio

Servicio deficheros

Servicio de bloques de disco

Servicio dedriver de disco

INTERFAZ FACILITADO

Page 30: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS ARQUITECTONICOS

La arquitectura de componentes y sus relaciones pueden serimplementados utilizando diferentes estilos de programación:

1 Modelos de capas.

2 Arquitecturas basadas en objetos.

3 Arquitecturas centradas o basadas en datos.

4 Arquitecturas basadas en eventos.

Page 31: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS DE CAPAS

Capa 1

Capa 2

Capa N

Capa N−1Flujode peticiones

Flujoderespuestas

Los componentes al nivel i pueden invocar a componentes denivel i −1.

Page 32: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN OBJETOS

OBJETO

OBJETO

OBJETO

OBJETO

OBJETO

Invocaciones a métodos

Los objetos son los componentes, y se invocan mutuamente.Caso particular: cliente/servidor.

Page 33: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

COMPONENTES Y OBJETOS: CONTENEDORES

Definición (CONTENEDOR)

Un contenedor facilita un entorno de gestión de componentes, conlas funciones siguientes:

1 Integra un conjunto de componentes de una determinadaaplicación.

2 Facilita su interrelación, realizando de forma automática ciertosservicios, como criptografía de datos, control de concurrencia,seguridad, etc.

3 Intercepta las interfaces de los componentes, para poderrealizar correctamente sus funciones.

Ejemplo: Enterprise JavaBeans.

Page 34: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

ESTRUCTURA DE UN CONTENEDOR

INTERCEPTOR

INVOCACIONESEXTERNAS

CONTENEDOR

LOGICA DEL

CONTENEDOR

COMPONENTES

SERVICIOS EXTERNOS

INVOCACIONES A OTROS

Page 35: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO CENTRADO EN LOS DATOS

Dos modelos posibles:

1 Acceso directo a los datos por los componentes.

2 Acceso a los datos a través de un servidor.

Page 36: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO CENTRADO EN LOS DATOS

COMPONENTE COMPONENTE

CON ACCESO

DIRECTO

A LOS DATOS

1.- Los componentes pueden acceder directamente a losdatos, sincronizándose entre ellos.

Page 37: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO CENTRADO EN LOS DATOS

COMPONENTE COMPONENTE

Servidor

2.- Los componentes acceden a los datos a través de unservidor: Ejemplos: servidor de ficheros distribuidos, servidorweb.

Page 38: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

COMPONENTE

COMPONENTE

COMPONENTE

Gestor del

recurso (eventos)Publish(r)

Publish(r)

Publish(r)

(1) SE PUBLICA EL RECURSO

Page 39: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

COMPONENTE

COMPONENTE

COMPONENTE

Gestor del

recurso (eventos)

Subscribe(e)

Subscribe(e)

Subscrib

e(e)

(2) Los subscriptores envían mensajes de subscripción algestor, sobre un evento que esperan que suceda.

Page 40: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

COMPONENTE

COMPONENTE

COMPONENTE

Gestor del

recurso (eventos)

Notify(e)

Notify(e)

Notify(e)

(3) Cuando se produce el evento, el gestor lo notifica a lossubscriptores.

Page 41: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

Page 42: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

MIDDLEWARE

El diseño de las aplicaciones distribuidas es complejo,particularmente en entornos heterogéneos.

Solución: Tendencia a la estandarización, garantizar lainteroperabilidad a nivel de aplicación.

Acceso uniforme a los recursos de un sistema, conindependencia de la plataforma soporte. El paquete deMiddleware está por encima de los sistemas operativos.

El Middleware garantiza la transparencia de distribución.

Page 43: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

MIDDLEWARE

El diseño de las aplicaciones distribuidas es complejo,particularmente en entornos heterogéneos.

Solución: Tendencia a la estandarización, garantizar lainteroperabilidad a nivel de aplicación.

Acceso uniforme a los recursos de un sistema, conindependencia de la plataforma soporte. El paquete deMiddleware está por encima de los sistemas operativos.

El Middleware garantiza la transparencia de distribución.

Page 44: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

MIDDLEWARE

El diseño de las aplicaciones distribuidas es complejo,particularmente en entornos heterogéneos.

Solución: Tendencia a la estandarización, garantizar lainteroperabilidad a nivel de aplicación.

Acceso uniforme a los recursos de un sistema, conindependencia de la plataforma soporte. El paquete deMiddleware está por encima de los sistemas operativos.

El Middleware garantiza la transparencia de distribución.

Page 45: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

VISION LOGICA DE UN MIDDLEWARE

APLICACION APLICACION

API

MIDDLEWARE

PLATAFORMAPLATAFORMA

Page 46: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

MIDDLEWARE

ARQUITECTURA DE UNA APLICACION MIDDLEWARE

ESTACION CLIENTE

SERVICIO DE PRESENTACION

LOGICA DE APLICACION

MIDDLEWARE

SOFTWARE DE

COMUNICACIONES

SISTEMA OPERATIVO

DEL CLIENTE

PLATAFORMA HARDWARE

SERVIDOR

MIDDLEWARE

SOFTWARE DE

COMUNICACIONES

SERVICIOS DE

APLICACION

SISTEMA OPERATIVO DEL SERVIDOR

PLATAFORMA HARDWARE

Interaccion

Middleware

Interaccion de

protocolos

Page 47: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

EJEMPLOS DE MIDDLEWARE I

Un middleware puede realizarse sobre los modelosarquitectónicos indicados (capas, objetos, datos, eventos).

RPC: Protocolos para la invocación de código remoto, comoSUN ONC-RPC o DCE/RPC.

MOM (Message-oriented middleware): Envío/recepción demensajes sobre plataformas heterogéneas, como AMQP(Advanced Message Queuing Protocol) o Java JMS.

ORB (Object Request Broker): Permite la interrelación entre unacolección de objetos distribuidos, fijando estándares para laestructuración de la información. Ejemplos: JAVA RMI yCORBA.

Page 48: Tema 1: Sistemas distribuidos

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

EJEMPLOS DE MIDDLEWARE II

Database Middleware: Facilitan la interacción con bases dedatos de diferentes proveedores. Ejemplos: ODBC (OpenDataBase Connectivity) y JDBC (Java DataBase Connectivity).

Transaction Middleware: Facilita herramientas para laimplementación de aplicaciones distribuidas basadas entransacciones. Soportadas por ODBC y JDBC.

Sistemas de Ficheros Virtuales, como GVFS (Grid Virtual FileSystem).