tema 1: sistemas distribuidos

Post on 22-Dec-2015

20 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOSTEMA 1: INTRODUCCION

Valentín Valero

Departamento de Sistemas InformáticosUniversidad de Castilla-La Mancha

Valentin.Valero@uclm.es

Tercer Curso del Grado en Informática

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

SISTEMA DISTRIBUIDO

Rack

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

LANLAN

Multiprocesador

¿SISTEMA DISTRIBUIDO?

High

Disk

Speed

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

entre las diversas CPUs.

Podemos tener computaciones distribuidas

LANLAN

Multiprocesador

¿SISTEMA DISTRIBUIDO?

High

Disk

Speed

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

SISTEMAS DISTRIBUIDOS

NOCIONES BASICAS

TRANSPARENCIA

Un aspecto importante de diseño:

Se pretende ocultar al usuario los detalles de gestión de losrecursos 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.

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.

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

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

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

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.

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

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.

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.

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.

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.

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

ESTRUCTURA DE UN CONTENEDOR

INTERCEPTOR

INVOCACIONESEXTERNAS

CONTENEDOR

LOGICA DEL

CONTENEDOR

COMPONENTES

SERVICIOS EXTERNOS

INVOCACIONES A OTROS

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.

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.

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.

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

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.

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.

SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:

1 Nociones básicas

2 Arquitectura de sistemas distribuidos.

3 Middleware.

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.

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.

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.

SISTEMAS DISTRIBUIDOS

MIDDLEWARE

VISION LOGICA DE UN MIDDLEWARE

APLICACION APLICACION

API

MIDDLEWARE

PLATAFORMAPLATAFORMA

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

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.

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

top related