Publicado el 12 de Enero del 2019
1.070 visualizaciones desde el 12 de Enero del 2019
2,3 MB
24 paginas
Sesión
5:
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
SISTEMAS
DISTRIBUIDOS
GRADO
EN
INGENIERÍA
INFORMÁTICA
UNED
Introducción
(1/2)
Índice
• Modelos
de
programación
de
aplicaciones
distribuidas.
• Extensiones
de
modelos
clásicos:
– Llamada
a
procedimiento
remoto
(RPC).
– Invocación
a
métodos
remotos
(RMI).
– Basado
en
eventos.
• Hoy
trataremos:
– La
comunicaciópn
entre
objetos
distribuidos.
– Diseño
e
implementación
de
RMI.
– Java
RMI
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
2
• Middleware.
Capa
soYware
que
nos
proporciona:
Introducción
(2/2)
Índice
– Transparencia
frente
a
la
ubicación.
– Protocolos
de
comunicación.
– Hardware.
– Sistemas
Opera\vos.
– Lenguajes
de
Programación.
Applications
RMI, RPC and events
Request reply protocol
External data representation
Operating System
Middleware
layers
• Interfaces.
Conjunto
de
métodos,
eventos
y
propiedades
que
expone
una
clase
o
módulo,
permi\endo
modificar
la
implementación
sin
afectar
a
los
usuarios
de
la
clase
o
módulo.
• Interfaces
de
servicio
e
Interfaces
remotas.
• Lenguajes
de
definición
de
interfaces.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
3
Comunicación
entre
objetos
remotos
RMI
(1/8)
Índice
• El
modelo
de
objetos.
– Referencias
a
objetos.
– Interfaces.
– Acciones.
– Excepciones.
throw/catch
– Compactación
automá\ca
de
memoria.
• Objetos
Distribuidos.
– Estado
de
un
objeto.
– Estado
de
un
sistema
distribuido.
– Arquitectura
cliente-‐servidor.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
4
Índice
Comunicación
entre
objetos
remotos
RMI
(2/8)
• El
modelo
de
objetos
distribuido.
– Extensión
del
modelo
de
objetos.
– Objeto
Remoto:
Puede
recibir
invocación
de
métodos
remotos,
que
son
aquellas
realizadas
desde
objetos
en
otros
procesos.
– Conceptos
fundamentales
para
este
modelo:
• Referencia
a
objeto
remoto.
• Interfaz
remota.
• Acciones
en
un
sistema
distribuido.
• Compactación
de
memoria
en
un
sistema
distribuido.
• Excepciones.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
5
Comunicación
entre
objetos
remotos
RMI
(3/8)
Índice
• Cues\ones
de
diseño
para
RMI.
– Semán\ca
Invocación
remota
frente
a
Invocación
local.
• Pudiera
ser.
Se
ejecuta
una
vez
o
ninguna.
• Al
menos
una
vez.
Puede
haberse
ejecutado
varias
veces.
Operaciones
idempotentes.
• Máximo
una
vez.
Se
recibe
o
el
resultado
o
una
excepción.
Usada
en
Java
RMI.
– Nivel
de
transparencia.
• ¿Invocaciones
locales
iguales
a
RMI?
• RMI
más
vulnerables
a
fallos
y
mayor
latencia.
• Java
RMI:
misma
sintaxis
pero
implementan
la
interfaz
Remote
y
lanzan
RemoteExcep\ons
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
6
Índice
Comunicación
entre
objetos
remotos
RMI
(4/8)
• Implementación
de
RMI.
- Módulo
de
comunicación.
En
cada
proceso
cliente
y
servidor.
- Man\enen
la
seman\ca
de
invocación.
- El
del
servidor,
en
respuesta
al
iden\ficador
de
objeto
remoto
en
la
pe\ción,
selecciona
el
distribuidor
para
la
clase
del
objeto
invocado,
devolviendo
la
referencia
obtenida
del
módulo
de
referencia
remota.
- Módulo
de
referencia
remota.
- En
cada
proceso
será
responsable
de
traducir
las
referencias
entre
objetos
locales
y
remotos.
- Usa
una
tabla
de
objetos
remotos
con
los
objetos
remotos
del
proceso
y
los
proxys
locales.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
7
Índice
Comunicación
entre
objetos
remotos
RMI
(5/8)
- SoYware
RMI.
Capa
entre
los
objetos
de
nivel
aplicación
y
los
módulos
de
comunicación
y
referencia
remota.
-‐Proxy.
Hace
transparente
al
cliente
la
RMI.
-‐Distribuidor.
Selecciona
el
método
apropiado
del
esqueleto
del
objeto
remoto.
-‐Esqueleto.
Clase
que
implementa
los
métodos
de
la
interfaz
remota.
- Generación
de
las
clases
para
cada
proxy,
distribuidor
y
esqueleto.
- Automá\camente
mediante
un
compilador
de
interfaces.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
8
Índice
- Programas
cliente
y
servidor.
Comunicación
entre
objetos
remotos
RMI
(6/8)
-‐ Servidor:
Distribuidores,
esqueletos
y
clases
servidoras.
Inicialización
en
clases
serv.:
Al
menos
crear
uno
de
los
objetos
remotos,
y
registrarlo
en
un
enlazador.
-‐ Cliente:
Proxy
de
cada
objeto
remoto
al
que
invoque.
-‐ Métodos
factoria.
Las
interfaces
no
pueden
tener
constructores.
Los
objetos
remotos
se
crean
en
la
seccion
de
inicialización
o
a
través
de
metodos
factoria
incluidos
en
la
interfaz
remota.
- El
enlazador.
- Servicio
que
facilita
las
referencia
a
objetos
remotos.
Servidores
registran
y
clientes
busca
los
objetos
remotos.
En
Java
RMIRegistry.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
9
Índice
Comunicación
entre
objetos
remotos
RMI
(7/8)
- Hilos
del
servidor.
Cada
ejecución
de
una
invocación
remota
correrá
en
un
hilo
o
hebra
separada.
- Ac\vación
de
objetos
remotos.
- Objeto
remoto
podrá
estar
Ác\vo
o
Pasivo.
- Objeto
pasivo:
Implementación
y
estado
empaquetado.
- Proceso
ac\vador:
Registrár
y
ac\var
los
objetos
pasivos,
y
controlar
los
objetos
ac\vados.
- Almacenes
de
objetos
persistentes.
- Existencia
garan\zada
cuando
esta
pasivo.
Persistent
Java
- Contendrá
grandes
can\dades
de
objetos
en
disco.
- Ubicación
de
objetos.
Referencia
y
dirección
de
Objeto
Remoto.
- Servicio
de
localización.
A
par\r
de
referencias.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
10
Comunicación
entre
objetos
remotos
RMI
(8/8)
• Compactación
automá\ca
de
memoria.
Índice
– Recuperar
la
memoria
cuando
no
existan
referencias
a
un
objeto
local
o
remoto.
– Algoritmo
distribuido
basado
en
recuento
de
referencias:
• El
servidor
controla
el
nº
de
proxys
existentes
• Si
no
existen
puede
liberar
la
memoria
mientras
no
existan
referencia
locales.
• Seman\ca
de
invocación
‘al
menos
una
vez’
y
periodos
de
concesión
renovables
por
los
clientes.
• Java
RMI.
Concesiones
con
‘Lease’.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
11
Eventos
y
No\ficaciones
(1/3)
• Objetos
reaccionan
de
forma
asincrona
a
Índice
no\ficaciones
asociadas
a
eventos
originados
en
objetos
remotos.
• Paradigma
Publica-‐Subscribe.
• Sistemas
distribuidos
basados
en
eventos:
– Heterogéneos.
Sólo
se
requiere
que
los
objetos
generadores
de
eventos
publiquen
los
\pos
de
eventos
que
ofrecen
y
que
los
otros
objetos
se
subscriban
a
los
eventos
y
proporciones
una
interfaz
para
recibir
las
no\ficaciones.
– Asíncronos.
No\ficaciones
asíncronas.
Desacoplados.
Sistemas
Distribuidos.
Tema
8:
Objetos
Distribuidos
e
Invocación
Remota.
Java
RMI
12
• Par\cipantes
en
no\ficación
de
eventos
Eventos
y
No\ficaciones
(2/3)
Índice
distribuida.
Comentarios de: Tema 8: Objetos Distribuidos e Invocación Remota - Java RMI (0)
No hay comentarios