Sei sulla pagina 1di 48

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS
TEMA 1: INTRODUCCION
Valentn Valero
Departamento de Sistemas Informticos
Universidad de Castilla-La Mancha
Valentin.Valero@uclm.es

Tercer Curso del Grado en Informtica

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

INDICE:
1

Nociones bsicas

Arquitectura de sistemas distribuidos.

Middleware.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

SISTEMA DISTRIBUIDO

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

SISTEMA DISTRIBUIDO

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

SISTEMA DISTRIBUIDO

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

SISTEMA DISTRIBUIDO

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

Rack

SISTEMA DISTRIBUIDO

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

Multiprocesador

SISTEMA DISTRIBUIDO?

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

SISTEMAS DISTRIBUIDOS

High
Speed
Disk

LAN
LAN

Multiprocesador

SISTEMA DISTRIBUIDO?
Podemos tener computaciones distribuidas
entre las diversas CPUs.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

NOCIONES BASICAS

Definicin (SISTEMA DISTRIBUIDO)


No existe consenso en la definicin: pueden considerarse
sistemas distribuidos geogrficamente, o pueden incluirse
en esta denominacin los multiprocesadores.
Sistema distribuido : Coleccin de unidades de
procesamiento interconectadas cuya visin para los
usuarios es como si fuera un nico computador.
Esta definicin incluye los multiprocesadores.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

NOCIONES BASICAS

Definicin (SISTEMA DISTRIBUIDO)


No existe consenso en la definicin: pueden considerarse
sistemas distribuidos geogrficamente, o pueden incluirse
en esta denominacin los multiprocesadores.
Sistema distribuido : Coleccin de unidades de
procesamiento interconectadas cuya visin para los
usuarios es como si fuera un nico computador.
Esta definicin incluye los multiprocesadores.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Alta capacidad de cmputo con menor coste: un cluster
de 64 PCs es ms barato que un multiprocesador de 64
procesadores.
Comparticin de datos o de equipos muy caros.
Adaptacin a aplicaciones intrnsecamente distribuidas
(bancos, supermercados, reserva de billetes, etc).
Mayor fiabilidad, pues el fallo de un componente no hace
fracasar todo el sistema, slo degrada su rendimiento.
Soporte del crecimiento incremental: pueden aadirse
nuevas unidades de procesamiento sin muchos
problemas.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Alta capacidad de cmputo con menor coste: un cluster
de 64 PCs es ms barato que un multiprocesador de 64
procesadores.
Comparticin de datos o de equipos muy caros.
Adaptacin a aplicaciones intrnsecamente distribuidas
(bancos, supermercados, reserva de billetes, etc).
Mayor fiabilidad, pues el fallo de un componente no hace
fracasar todo el sistema, slo degrada su rendimiento.
Soporte del crecimiento incremental: pueden aadirse
nuevas unidades de procesamiento sin muchos
problemas.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Alta capacidad de cmputo con menor coste: un cluster
de 64 PCs es ms barato que un multiprocesador de 64
procesadores.
Comparticin de datos o de equipos muy caros.
Adaptacin a aplicaciones intrnsecamente distribuidas
(bancos, supermercados, reserva de billetes, etc).
Mayor fiabilidad, pues el fallo de un componente no hace
fracasar todo el sistema, slo degrada su rendimiento.
Soporte del crecimiento incremental: pueden aadirse
nuevas unidades de procesamiento sin muchos
problemas.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Alta capacidad de cmputo con menor coste: un cluster
de 64 PCs es ms barato que un multiprocesador de 64
procesadores.
Comparticin de datos o de equipos muy caros.
Adaptacin a aplicaciones intrnsecamente distribuidas
(bancos, supermercados, reserva de billetes, etc).
Mayor fiabilidad, pues el fallo de un componente no hace
fracasar todo el sistema, slo degrada su rendimiento.
Soporte del crecimiento incremental: pueden aadirse
nuevas unidades de procesamiento sin muchos
problemas.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Alta capacidad de cmputo con menor coste: un cluster
de 64 PCs es ms barato que un multiprocesador de 64
procesadores.
Comparticin de datos o de equipos muy caros.
Adaptacin a aplicaciones intrnsecamente distribuidas
(bancos, supermercados, reserva de billetes, etc).
Mayor fiabilidad, pues el fallo de un componente no hace
fracasar todo el sistema, slo degrada su rendimiento.
Soporte del crecimiento incremental: pueden aadirse
nuevas unidades de procesamiento sin muchos
problemas.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


La programacin de aplicaciones distribuidas es ms
compleja, basada en la programacin concurrente.
Adems, en sistemas geogrficamente distribuidos no
existe una referencia temporal comn.
Las nuevas caractersticas de los sistemas distribuidos,
como la movilidad del cdigo y datos hacen an ms difcil
la tarea de programar una aplicacin distribuida.
Un sistema distribuido puede ser heterogneo, lo cual
puede requerir nuevos elementos estructurales para
homogeneizar el interfaz entre sus componentes
(middleware ).
Mayor probabilidad de fallos.
Mayor vulnerabilidad, al ser sistemas ms abiertos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


La programacin de aplicaciones distribuidas es ms
compleja, basada en la programacin concurrente.
Adems, en sistemas geogrficamente distribuidos no
existe una referencia temporal comn.
Las nuevas caractersticas de los sistemas distribuidos,
como la movilidad del cdigo y datos hacen an ms difcil
la tarea de programar una aplicacin distribuida.
Un sistema distribuido puede ser heterogneo, lo cual
puede requerir nuevos elementos estructurales para
homogeneizar el interfaz entre sus componentes
(middleware ).
Mayor probabilidad de fallos.
Mayor vulnerabilidad, al ser sistemas ms abiertos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


La programacin de aplicaciones distribuidas es ms
compleja, basada en la programacin concurrente.
Adems, en sistemas geogrficamente distribuidos no
existe una referencia temporal comn.
Las nuevas caractersticas de los sistemas distribuidos,
como la movilidad del cdigo y datos hacen an ms difcil
la tarea de programar una aplicacin distribuida.
Un sistema distribuido puede ser heterogneo, lo cual
puede requerir nuevos elementos estructurales para
homogeneizar el interfaz entre sus componentes
(middleware ).
Mayor probabilidad de fallos.
Mayor vulnerabilidad, al ser sistemas ms abiertos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


La programacin de aplicaciones distribuidas es ms
compleja, basada en la programacin concurrente.
Adems, en sistemas geogrficamente distribuidos no
existe una referencia temporal comn.
Las nuevas caractersticas de los sistemas distribuidos,
como la movilidad del cdigo y datos hacen an ms difcil
la tarea de programar una aplicacin distribuida.
Un sistema distribuido puede ser heterogneo, lo cual
puede requerir nuevos elementos estructurales para
homogeneizar el interfaz entre sus componentes
(middleware ).
Mayor probabilidad de fallos.
Mayor vulnerabilidad, al ser sistemas ms abiertos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


La programacin de aplicaciones distribuidas es ms
compleja, basada en la programacin concurrente.
Adems, en sistemas geogrficamente distribuidos no
existe una referencia temporal comn.
Las nuevas caractersticas de los sistemas distribuidos,
como la movilidad del cdigo y datos hacen an ms difcil
la tarea de programar una aplicacin distribuida.
Un sistema distribuido puede ser heterogneo, lo cual
puede requerir nuevos elementos estructurales para
homogeneizar el interfaz entre sus componentes
(middleware ).
Mayor probabilidad de fallos.
Mayor vulnerabilidad, al ser sistemas ms abiertos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

TRANSPARENCIA

Un aspecto importante de diseo:


Se pretende ocultar al usuario los detalles de gestin de los
recursos distribuidos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

TIPOS DE TRANSPARENCIA I

- De acceso: El acceso a recursos locales y remotos debe


realizarse de la misma forma.
- De ubicacin: El usuario no tiene que conocer la ubicacin
exacta del recurso.
- De migracin: El recurso podra ser llevado de una
estacin a otra, de forma transparente al usuario.
- De replicacin: Aunque un recurso est replicado en varias
estaciones, el usuario lo ve como uno solo.
- De concurrencia: El usuario no debe preocuparse por los
problemas relativos a la posible comparticin de recursos.

SISTEMAS DISTRIBUIDOS
NOCIONES BASICAS

TIPOS DE TRANSPARENCIA II
- De paralelismo: El sistema podra paralelizar una
aplicacin para mejorar el rendimiento, de forma
transparente para el usuario.
- De fallos: Se oculta al usuario la problemtica de
tratamiento y recuperacin de fallos.
- De persistencia: El usuario no tiene que preocuparse por
la gestin del medio soporte del recurso (si es voltil o no).
- De seguridad: Debe facilitarse un acceso seguro a los
recursos de forma simple y transparente al usuario.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:
1

Nociones bsicas

Arquitectura de sistemas distribuidos.

Middleware.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS ARQUITECTONICOS

Basados en componentes: unidades modulares con


interfaces y dependencias externas bien definidas, que
pueden ser reemplazables (respetando el interface).
Pueden utilizarse los llamados conectores: elementos que
facilitan la comunicacin, coordinacin o cooperacin entre
componentes.
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 con


interfaces y dependencias externas bien definidas, que
pueden ser reemplazables (respetando el interface).
Pueden utilizarse los llamados conectores: elementos que
facilitan la comunicacin, coordinacin o cooperacin entre
componentes.
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 trminos de un contrato, que


incluye:
- Un interface, describiendo los servicios facilitados por el
componente.
- Un conjunto de interfaces de otros componentes
requeridos: son las dependencias de este componente, y
que deben estar presentes y conectadas a l para poder
utilizarlo.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

ARQUITECTURA DE COMPONENTES
INTERFAZ REQUERIDO
INTERFAZ FACILITADO
Servicio de
directorio

Servicio de
ficheros

Servicio de
bloques de disco

Servicio de
driver de disco

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS ARQUITECTONICOS

La arquitectura de componentes y sus relaciones pueden ser


implementados utilizando diferentes estilos de programacin:
1

Modelos de capas.

Arquitecturas basadas en objetos.

Arquitecturas centradas o basadas en datos.

Arquitecturas basadas en eventos.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELOS DE CAPAS
Capa N

Capa N1
Flujo
de
peticiones

Flujo
de
respuestas
Capa 2

Capa 1

Los componentes al nivel i pueden invocar a componentes de


nivel i 1.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN OBJETOS

OBJETO

Invocaciones a
mtodos

OBJETO

OBJETO

OBJETO
OBJETO

Los objetos son los componentes, y se invocan mutuamente.


Caso particular: cliente/servidor.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

COMPONENTES Y OBJETOS: CONTENEDORES


Definicin (CONTENEDOR)
Un contenedor facilita un entorno de gestin de componentes, con
las funciones siguientes:
1

Integra un conjunto de componentes de una determinada


aplicacin.

Facilita su interrelacin, realizando de forma automtica ciertos


servicios, como criptografa de datos, control de concurrencia,
seguridad, etc.

Intercepta las interfaces de los componentes, para poder


realizar correctamente sus funciones.
Ejemplo: Enterprise JavaBeans.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

ESTRUCTURA DE UN CONTENEDOR
CONTENEDOR
INVOCACIONES
EXTERNAS
INTERCEPTOR
INVOCACIONES A OTROS
SERVICIOS EXTERNOS
LOGICA DEL
CONTENEDOR

COMPONENTES

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO CENTRADO EN LOS DATOS

Dos modelos posibles:


1

Acceso directo a los datos por los componentes.

Acceso a los datos a travs 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 los


datos, sincronizndose entre ellos.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO CENTRADO EN LOS DATOS

COMPONENTE

COMPONENTE

Servidor

2.- Los componentes acceden a los datos a travs de un


servidor: Ejemplos: servidor de ficheros distribuidos, servidor
web.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

Pu

bl

ish

(r)

COMPONENTE

Publi

sh(r)

COMPONENTE
r)

h(

lis

b
Pu

Gestor del
recurso (eventos)

COMPONENTE

(1) SE PUBLICA EL RECURSO

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

Su

bs

cri

be

COMPONENTE

Subs

(e)

cribe

(e)

COMPONENTE

(e)

be

cri

s
ub

Gestor del
recurso (eventos)

COMPONENTE

(2) Los subscriptores envan mensajes de subscripcin al


gestor, sobre un evento que esperan que suceda.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

MODELO BASADO EN EVENTOS

COMPONENTE

COMPONENTE

No

tif

y(

e)

Noti

fy(e)

COMPONENTE
e)

y(

tif

No

Gestor del
recurso (eventos)

COMPONENTE

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


subscriptores.

SISTEMAS DISTRIBUIDOS
ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

INDICE:
1

Nociones bsicas

Arquitectura de sistemas distribuidos.

Middleware.

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

MIDDLEWARE

El diseo de las aplicaciones distribuidas es complejo,


particularmente en entornos heterogneos.
Solucin: Tendencia a la estandarizacin, garantizar la
interoperabilidad a nivel de aplicacin.
Acceso uniforme a los recursos de un sistema, con
independencia de la plataforma soporte. El paquete de
Middleware est por encima de los sistemas operativos.
El Middleware garantiza la transparencia de distribucin.

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

MIDDLEWARE

El diseo de las aplicaciones distribuidas es complejo,


particularmente en entornos heterogneos.
Solucin: Tendencia a la estandarizacin, garantizar la
interoperabilidad a nivel de aplicacin.
Acceso uniforme a los recursos de un sistema, con
independencia de la plataforma soporte. El paquete de
Middleware est por encima de los sistemas operativos.
El Middleware garantiza la transparencia de distribucin.

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

MIDDLEWARE

El diseo de las aplicaciones distribuidas es complejo,


particularmente en entornos heterogneos.
Solucin: Tendencia a la estandarizacin, garantizar la
interoperabilidad a nivel de aplicacin.
Acceso uniforme a los recursos de un sistema, con
independencia de la plataforma soporte. El paquete de
Middleware est por encima de los sistemas operativos.
El Middleware garantiza la transparencia de distribucin.

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

VISION LOGICA DE UN MIDDLEWARE

APLICACION

APLICACION

API

MIDDLEWARE

PLATAFORMA

PLATAFORMA

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

MIDDLEWARE
ARQUITECTURA DE UNA APLICACION MIDDLEWARE

SERVICIO DE PRESENTACION

LOGICA DE APLICACION
Interaccion

MIDDLEWARE

Middleware

MIDDLEWARE

SOFTWARE DE

Interaccion de

SOFTWARE DE

SERVICIOS DE

COMUNICACIONES

protocolos

COMUNICACIONES

APLICACION

SISTEMA OPERATIVO
DEL CLIENTE

SISTEMA OPERATIVO DEL SERVIDOR

PLATAFORMA HARDWARE

PLATAFORMA HARDWARE

ESTACION CLIENTE

SERVIDOR

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

EJEMPLOS DE MIDDLEWARE I
Un middleware puede realizarse sobre los modelos
arquitectnicos indicados (capas, objetos, datos, eventos).
RPC: Protocolos para la invocacin de cdigo remoto, como
SUN ONC-RPC o DCE/RPC.
MOM (Message-oriented middleware): Envo/recepcin de
mensajes sobre plataformas heterogneas, como AMQP
(Advanced Message Queuing Protocol) o Java JMS.
ORB (Object Request Broker): Permite la interrelacin entre una
coleccin de objetos distribuidos, fijando estndares para la
estructuracin de la informacin. Ejemplos: JAVA RMI y
CORBA.

SISTEMAS DISTRIBUIDOS
MIDDLEWARE

EJEMPLOS DE MIDDLEWARE II

Database Middleware: Facilitan la interaccin con bases de


datos de diferentes proveedores. Ejemplos: ODBC (Open
DataBase Connectivity) y JDBC (Java DataBase Connectivity).
Transaction Middleware: Facilita herramientas para la
implementacin de aplicaciones distribuidas basadas en
transacciones. Soportadas por ODBC y JDBC.
Sistemas de Ficheros Virtuales, como GVFS (Grid Virtual File
System).

Potrebbero piacerti anche