RMI permite manejar objetos de manera remota para usar recursos de un servidor de forma transparente. RMI usa el RMI Registry para registrar objetos y asignarlos a servidores. Fue diseñado por Sun Microsystems para hacer llamadas a procedimientos remotos entre objetos en máquinas virtuales Java de forma independiente de plataforma.
1. UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES
“UNIANDES”
FACULTAD DE SISTEMAS
CARRERA: INGENIERÍA EN SISTEMAS
OCTAVO NIVEL
Tema: RMI
Asignatura: Cliente Servidor 2
Nombre: Jonathan Llerena
Docente: Ing. Bernabé Ortega
2015
2. RMI es un paquete de JAVA que permite manejar objetos y sus respectivos métodos
de manera remota, para utilizar los recursos de un servidor de manera transparente
para el usuario local.
La conectividad de RMI se ocupa una herramienta de JAVA, llamada RMI Registry. El
RMI Registry puede estar localizado en un lugar distinto al servidor, y se encarga de
registrar un determinado objeto y asignarle un servidor que se encargará de procesar
dicho objeto.
Fue diseñada por Javasoft Javasoft para soportar llamadas a procedimientos remotos
entre objetos que se ejecutan sobre Máquinas Virtuales Java (JVM).
Se trata de una implementación independiente de la plataforma, lo que permite que
tanto los objetos remotos como las aplicaciones cliente, residan en sistemas
heterogéneos. Sin embargo no es independiente del lenguaje, tanto el objeto servidor
Java/RMI como el objeto cliente tienen que ser escritos en Java.
Objetivos:
Permitir invocación de métodos de un objeto por objetos que residen en
diferentes máquinas virtuales (en particular, a través de la red).
Integrar el modelo de objetos distribuidos al lenguaje Java de modo natural,
preservando en lo posible la semántica de objetos en Java.
Preservar la seguridad de tipos (type safety) dada por el ambiente de ejecución
Java.
Mantener la seguridad del ambiente dada por los Security Managers, en
particular, en presencia de carga dinámica de clases.
Facilitar el desarrollo de aplicaciones distribuidas.
Ventajas
Es realmente fácil de usar si ya se conoce JAVA.
Portable a través de plataformas con soporte JAVA.
Bajo costo al convertir sistema existente.
Soporta paso de objetos por referencia y/o valor.
Desventajas
A veces, no es tan intuitivo.
No soportado por otros lenguajes
Disminuye el rendimiento con el crecimiento del sistema
Conclusiones:
Como conclusión general, se debe tener en cuenta el uso de RMI para
aplicaciones tipo cliente/servidor a mediana escala, en donde los clientes estén
muy distribuidos y sea difícil la diversificación de los códigos o el trabajo en
equipo.
La posibilidad de separar el trabajo, encapsulándolo en aplicaciones cliente
servidor, en donde el cliente y el servidor se desligan a tal grado que no deben
saber nada sobre el trabajo del uno y del otro. Esto es sumamente útil en los
tiempos actuales en donde las aplicaciones cliente servidor son cada vez más
3. abundantes y la complejidad de ellas hace fundamental la separación del
código en módulos independientes.
Sin embargo, también es una muy buena alternativa, el considerar IDL, frente a
escenarios heterogéneos, en donde se trabaja con "legacy systems", los cuales
son muy difíciles de cambiar y sin embargo pueden representar una fuerza
importante dentro de una compañía. También se puede recurrir a IDL cuando
la escalabilidad del sistema crece tanto que es imposible poder manejarla con
un sistema tan básico como es RMI.
Bibliografía:
Dan Harkey, Robert Orfali, Client/Server. Programming with Java and CORBA,
2nd Edition 2nd. Edition (1998) John Wiley & Sons, Inc. ISBN: 0-471-24578-X.
Cay S. Horstmann, Gary Cornell. Core Java 2, Volume 2: Advanced. Features
4 edition Vol 2 (December 27, 1999) Prentice Hall PTR; ISBN: 0130819344.
Qusay H. Mahmoud, Distributed. Programming with Java (September 1999)
Manning Publications Company; ISBN: 1884777651.
Jim Farley, Java: Distributed. Computing (January 1998). O'Reilly & Associates;
ISBN: 1565922069
www.tamps.cinvestav.mx/~vjsosa/clases/sd/DAAI_RMI.pdf
www.it.uc3m.es