JAVA RMI

The Java Remote Method Invocation

MENU

JAVA RMI v/s JAVA

Existen algunas diferencias entre la programacion normal usando JAVA y la programacion con RMI. A continuacion se pretende destacar las diferencias y similitudes entre ambos, para poder evaluar objetivamente cuando conviene utilizar alguno de ellos:

Similitudes
  • Una referencia a un objeto, puede ser pasada como argumento o retornado como resultado de cualquier invocacion (local o remoto).
  • Un objeto remoto puede ser invocado sobre cualquier set de interfaces remotas soportadas por la implementacion, usando la sintaxis de "castear", vale decir:
    InterfaceRemota irem = (InterfaceRemota) new ClaseRemota();
  • El operador instanceof puede ser utilizado para testear la interface remota soportada por el objeto remoto.


Diferencias
  • Los clientes de objetos remotos interactuan con interfaces remotas, NUNCA con la implementacion de esas interfaces.
  • Argumentos no-remotos hacia, y resultados desde, una invocacion remota a un metodo son pasados por copia en vez de por refrencia. Esto se debe a que las referencias a objetos son utiles solo dentro de una maquina virtual individual.
  • Un objeto remoto es pasado por referencia, no copiando su actual implemetacion remota.
  • En RMI, el cliente debe manejar una major cantidad de Excepciones, debido a que aumentan los tipos de fallas al invocar objetos remotos que cuando se trabaja de manera local (seguridad, red, rmiregistry, etc)