SISTEMAS DISTRIBUIDOS
SISTEMAS DISTRIBUIDOSTEMA 1: INTRODUCCION
Valentín Valero
Departamento de Sistemas InformáticosUniversidad de Castilla-La Mancha
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