Paso de objetos en RMI Paso de parámetros en RMI

Anuncio
Paso de objetos en RMI
Desarrollo de aplicaciones
distribuidas
Paso de parámetros en RMI
Los tipos atómicos se pasan por valor (copia)
Los objetos se pueden pasar como argumentos o
como resultado de invocación de métodos:
X.método1(objeto);
Objeto = X.método2();
¿De que manera se pasan los objetos?
Paso de objetos
Existen 2 posibilidades:
• Los objetos de una clase serializable se
pasan por valor.
• Los objetos de una clase remota se pasan
por referencia.
Paso de objetos por valor
• Deben implementar la interfaz java.io.Serializable
• La definición de la clase debe existir tanto en el cliente
como en el servidor.
X
C
X
C
ANTES
S
S
DESPUES
2 objetos completamente
independientes, los
cambios de uno no se
reflejan en el otro
X
Paso de objetos por referencia
• Los objetos remotos se pasan por referencia.
ANTES
C
X
S
El cliente conoce la
interfaz remota y la
clase Stub
El servidor conoce
la interfaz remota y
la clase remota
DESPUES
C
Stub
X
S
Los cambios se
reflejan en el objeto
original.
Usos del paso por valor
• Se pueden accesar los atributos públicos
de los objetos, no solo los métodos.
• Las invocaciones son locales, por lo tanto
el desempeño se puede mejorar.
Ejemplo Integral Numérica
Solicitud de integración
Servidor de
integrales
Cliente
Stub
f(x)
Las invocaciones son remotas
Si se pasa f(x) por referencia !
Ejemplo Integral Numérica
Solicitud de integración
Servidor de
integrales
Cliente
f(x)
f(x)
f(x)
Las invocaciones son locales
Si se pasa f(x) por valor !
Usos del paso por referencia
• Al no copiar los objetos completos, no
representa una sobrecarga muy grande.
• Suponga que un servidor RMI debe actualizar a
varios clientes. Esto se puede implementar de 2
maneras:
– Polling
– Callback
Polling
C
Pregunta
C
Pregunta
S
Respuesta
C
Respuesta
C
Los clientes preguntan al servidor el valor de la variable.
Puede leerse varias veces el mismo valor
Efectivo solo si la frecuencia de cambios es muy alta
Callback
• Los clientes se registran:
C
Registrar
C
Registrar
S
C
C
Callback
• El servidor les notifica los cambios cada vez que ocurren
C
C
Actualizar
S
Actualizar
C
C
Efectivo solo si la frecuencia de cambios es baja
Descargar