Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.1 Motivacin
Los sistemas distribuidos suponen un paso ms en la evolucin de los sistemas
informticos, entendidos desde el punto de vista de las necesidades que las
aplicaciones plantean y las posibilidades que la tecnologa ofrece. Antes de
proporcionar una definicin de sistema distribuido resultar interesante
presentar, a travs de la evolucin histrica, los conceptos que han
desembocado en los sistemas distribuidos actuales, caracterizados por la
distribucin fsica de los recursos en mquinas interconectadas.
Utilizaremos aqu el trmino recurso con carcter general para referirnos a
cualquier dispositivo o servicio, hardware o software, susceptible de ser
compartido.
1.1.1
Tipos de sistemas
Sistemas Distribuidos
Pate I: Fundamentos
Este tipo de sistemas se conoca en los 90 como estaciones de trabajo o work-stations. Hoy en
da cualquier ordenador personal es capaz de soportarlos y ya no se hace est distincin. El PC
se ha convertido en un componente estndar que, como veremos, se usa indistintamente como
sistema personal, como servidor de recursos compartidos, o incluso como elemento de un
sistema de alto rendimiento (cluster).
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
Desde la dcada de 1980 estn apareciendo soluciones parciales que han ido
acercando las redes de ordenadores al concepto de sistemas distribuido. El
sistemas de ficheros es quizs el primer recurso que se intent distribuir de
forma transparente, como es el caso de NFS (Network File System) de Sun
Microsystems. Aunque no todos los tipos de recursos han alcanzado a nivel
comercial la misma integracin, la tendencia es clara a favor de los sistemas
plenamente distribuidos. Una fuerte motivacin es la relacin de costes a la que
ha llevado la evolucin tecnolgica en los ltimos aos. Hoy en da existe un
hardware estndar de bajo coste, los ordenadores personales, que son los
componentes bsicos del sistema. Por otra parte, la red de comunicacin, a no
ser que se requieran grandes prestaciones, tampoco constituye un gran
problema econmico, pudindose utilizar infraestructura cableada ya existente
(Ethernet, la red telefnica, o incluso la red elctrica) o inalmbrica.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
1.1.2
Pate I: Fundamentos
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
http://:www.jini.org
http://www.upnp.org
5 Deben entenderse como propiedades deseables. Como veremos reiteradamente, el
compromiso con el rendimiento provoca en la prctica que algunas de las propiedades se
relajen.
4
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
1.2.1 Transparencia
El objetivo esencial de un sistema distribuido es proporcionar al usuario y a las
aplicaciones una visin de los recursos del sistema como gestionados por una
sola mquina virtual. La distribucin fsica de los recursos es transparente.
Pueden describirse diferentes aspectos de la transparencia:
SI
N3
Transparencia de ubicacin
N1
N3:/usr/R
N3
N1
N3:/R
N4: usr/ R
NO
N4:/R
N4
N2
N4:/users/R
N4
N2
N4:/R
N3
N1
SI
/usr/R
R
R
N4
/users/R
R
N3
N1
/usr/R
N2
N4
N2
R
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
1.2.2 Escalabilidad
Una de las caractersticas de los sistemas distribuidos es su modularidad, lo que
le permite una gran flexibilidad y posibilita su escalabilidad, definida como la
capacidad del sistema para crecer sin aumentar su complejidad ni disminuir su
rendimiento. Uno de los objetivos del diseo de un sistema distribuido es
extender la escalabilidad a la integracin de servicios.
La escalabilidad presenta dos aspectos. El sistema distribuido debe (1)
proporcionar espacios de nombres suficientemente amplios, de forma que no
supongan una limitacin inherente, y (2) mantener un buen nivel de
rendimiento en el acceso a los recursos cuando el sistema crece.
1.2.3
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
Sobre nuestro ejemplo cabe decir que, al carecer de replicacin del servicio, NFS
no proporciona tolerancia a fallos. En cambio, se han propuesto otros sistemas
de fichero que s tienen la tolerancia a fallos como objetivo de diseo, como es el
caso de AFS [SAT90].
Esto debe matizarse: por una parte, puede haber correlacin en el fallo de los componentes
individuales debida a varias causas, como errores de diseo o catstrofes naturales; por otra
parte, la interconexin de los componentes es una fuente de fallos adicional.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
1.2.4
Pate I: Fundamentos
10
Consistencia
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
11
http://www.mosix.cs.huji.ac.il/
http://www.globus.org
10
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
12
Internet
Indudablemente, la World-Wide-Web (para abreviar, WWW o Web) es la
aplicacin estrella de Internet, hasta el punto de que hoy en da es tambin la
forma de acceso comn a otras aplicaciones de Internet, como el correo
electrnico y la transferencia de ficheros. Se basa en la existencia de una fuerte
estructura de comunicaciones, que incluye una infraestructura de enlaces
troncales de gran capacidad (backbones) donde se conectan las subredes y los ISP
(proveedores de servicios de Internet), que proporcionan el acceso a esta
infraestructura a los usuarios particulares utilizando medios diversos (por
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
13
Intranets
Una intranet es bsicamente un entorno Internet restringido. Se utilizan los
mismos protocolos y los mismos medios de acceso que en Internet, si bien el
acceso se circunscribe a un dominio administrativo concreto o un conjunto de
ellos (por ejemplo, en una empresa). Una intranet puede estar compuesta por
varias subredes, y estas pueden estar integradas en Internet, si bien el acceso
desde el exterior o la salida desde la intranet pueden estar restringidos por
servidores especficos (firewalls), que actan como filtros aplicando criterios a
diferentes niveles de la pila de protocolos.
Una intranet admite en principio el mismo tipo de aplicaciones que las que se
puedan desplegar en Internet. Adems, las aplicaciones de alto rendimiento,
como es el caso del la computacin en cluster, o las de tolerancia a fallos, suelen
tener ms sentido sobre una intranet, (o sobre una LAN de la intranet), ya que,
en general, los costes de comunicacin pueden acotarse.
Entornos ubicuos
En un sistema ubicuo las aplicaciones no estn sujetas a mbitos administrativos
o de red concretos, como las intranets, pero tampoco operan de manera
ilimitada en el mbito de Internet. As, el dispositivo de un usuario (por ejemplo
el telfono mvil de un futuro cercano) opera en el entorno fsico concreto en el
que se encuentra (por ejemplo, el domicilio del usuario o un aeropuerto) de
acuerdo a los servicios que descubre en ese entorno, y se adapta a la
infraestructura disponible de la forma ms eficiente posible. Por ejemplo, una
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
14
11
A los sistemas que proporcionan este tipo de transparencia se les denomina sin costuras
(seamless).
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
una instruccin
simultneamente
mltiples instrucciones
simultneamente
15
un dato
simultneamente
mltiples datos
simultneamente
SISD
SIMD
arquitecturas Von
Neumann clsicas
procesadores
vectoriales
MISD
MIMD
no hay
implementaciones
multiprocesadores,
multicomputadores,
redes
bus compartido
red de interconexin
espacio de memoria
fsica compartido
espacios de memoria
fsica independientes
servidores
multiprocesador
tpicos
multicomputadores,
redes LAN
multiprocesadores
UMA y NUMA
multicomputadores,
redes WAN
12
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
16
De nuevo, sobre esta clasificacin cabe plantear si todos los subgrupos admiten
en general distribucin de recursos. Para afinar un poco ms, identificaremos
tres grupos de elementos susceptibles de distribuirse entre los nodos:
Proceso
Espacio de memoria
13
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
17
Redes
cableadas
Redes
inalmbricas
Tipo
Ejemplo
Rango tpico
Ancho de banda
PAN
USB
1m
12 480 Mbps
LAN
Ethernet
1 Km
10 1000 Mbps
MAN
ATM
10 Km
1 150 Mbps
WAN
Internet
Todo el mundo
PAN
Bluetooth
10 m
0,5 2 Mbps
LAN
WiFi
100 m
2 54 Mbps
MAN
WiMAX
10 Km
1,5 20 Mbps
WAN
HDSPA
Todo el mundo
hasta 14 Mbps
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
18
15
En la prctica esto implica que se pueden abrir varias ventanas con diferentes sistemas
operativos en un mismo terminal.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
19
16
http://www.tinyos.net
La generalizacin de las memorias cache locales a cada procesador hace que, hoy en da, todas
las mquinas MIMD presenten alguna forma de distribucin fsica de la memoria, si bien los
multiprocesadores, donde la coherencia cache est garantizada por el hardware, los estamos
considerando como de memoria compartida.
17
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
20
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
21
Espacio de memoria
fsica compartido
Espacios de memoria
fsica independientes
Memoria compartida
Variables compartidas
Memoria compartida
distribuida (DSM)
Paso de mensajes
Sockets
Semnticas de
lenguajes de alto nivel
Llamadas a funciones o
procedimientos,
invocacin de mtodos
sobre objetos
RPC, RMI
RPC
RMI
DSM
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
22
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
23
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
24
(1)
(2)
(3)
(4)
Cliente
Servidor
res=servicio_rpc(parm)
Mecanismo
RPC cliente
Mecanismo
RPC servidor
(1)
(13)
param=
deserial()
(6)
serial(res)
(9)
Recibir
Enviar
serial(param)
res=deserial()
(12)
Recibir
Desbloquear
(4)
(2)
Enviar
(3)
(11)
(5) Desbloquear
(10)
Llamada al
Sistema
SO
Recibir
datos
Enviar
datos
Recibir
datos
(8)
Enviar
datos
Red
(6)
18
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
25
(7)
(8)
(9)
(10)
(11)
(12)
(13)
1.6.5
El modelo de objetos
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
26
20
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
27
Cada objeto remoto posee una interfaz remota que especifica cules de sus
mtodos pueden invocarse remotamente. Estos mtodos estarn
implementados por la clase del objeto remoto. En Java RMI, las interfaces
remotas se definen como cualquier otra interfaz de Java, sin ms que extender
la interfaz Remote. CORBA proporciona un lenguaje de definicin de interfaces
(CORBA IDL) que permite que las clases de los objetos remotos y los programas
clientes estn programados en lenguajes diferentes.
En una invocacin remota pueden producirse, adems de las del modelo
general, excepciones relacionadas con la naturaleza remota de la invocacin,
como time-outs.
Figura 1.4. Invocacin de mtodos remotos (tomado de [TAN02]).
La implementacin del modelo de invocaciones de objetos remotos es anloga
al de RPCs (Figura 1.4). En el cliente, un representante local de la clase del
objeto invocado (proxy) implementa de manera transparente la serializacin y la
comunicacin con el servidor que contiene el receptor. En el servidor, la
implementacin de la clase del receptor (skeleton) gestiona la comunicacin con
el cliente y la serializacin, e invoca el mtodo correspondiente, tratando las
eventuales excepciones.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
28
tratar las excepciones remotas y el servidor definir como Remote la interfaz del
objeto remoto.
Las interfaces remotas se definen extendiendo la interfaz Remote, proporcionada
por el paquete java.rmi. Los parmetros de un mtodo son de entrada, y la
salida se proporciona en el resultado de la invocacin. Los objetos remotos se
pasan por referencia y los locales por valor, mediante serializacin. Cuando el
receptor no dispone de la implementacin del objeto que se le pasa por valor, la
mquina virtual Java proporciona la descarga automtica de la clase
correspondiente.
Los nodos que albergan objetos remotos proporcionan un servicio de nombres
que almacena las referencias de objetos remotos, el registro de objetos remotos
(rmiregistry).
En una aplicacin distribuida en Java RMI, hay que definir las interfaces
remotas e implementar los objetos remotos y los clientes. Una vez compilados
los ficheros fuente, la aplicacin se monta de la siguiente forma:
1. Se crean los proxies (stubs, en terminologa Java-RMI) de las clases
remotas mediante el compilador de RMI (rmic).
2. Se especifica el acceso a las clases para su descarga y se establece una
poltica de seguridad.
3. Se pone en marcha el registro de objetos remotos como un proceso del
servidor (rmiregistry).
4. Se pone en marcha el servicio remoto y se lanzan los clientes.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
29
21
Obsrvese que las aplicaciones Java son transportables con independencia del sistema
operativo, gracias a que una capa de middleware sobre el sistema operativo (la JVM)
proporciona la interfaz estndar a las aplicaciones.
Master SIA
KAT/ATC UPV/EHU
Sistemas Distribuidos
Pate I: Fundamentos
30
1.8 Resumen
El objetivo de un sistema distribuido es integrar los recursos y servicios
conectados por una red de comunicacin. Desde el punto de vista del usuario y
de las aplicaciones, un sistema distribuido proporciona una visin de mquina
nica y no difiere de uno centralizado (Figura 1.5). En cambio, el punto de vista
del diseador (el sistema como gestor de los recursos) la estructura interna est
condicionada por la distribucin fsica de los recursos (Figura 1.6).
Aplicaciones
Servicios del sistema
Hardware (distribuido)
Aplicaciones
Aplicaciones
Servicios
Middleware
Servicios
Middleware
Master SIA
...
Aplicaciones
Servicios
Middleware
KAT/ATC UPV/EHU
Sistemas Distribuidos
Sistema operativo
y protocolos de
red
Pate I: Fundamentos
Sistema operativo
y protocolos de
red
31
Sistema operativo
y protocolos de
red
Master SIA
KAT/ATC UPV/EHU