Practica3 Rmi
Practica3 Rmi
Practica3 Rmi
FACULTAD DE INGENIERA
INGENIERA EN SISTEMAS
RMI: PRACTICA #3
DESARROLLO DE SISTEMAS DISTRIBUIDOS
PROFESOR: ING. JOHNNY SOLRZANO
REALIZADO POR: JOS MOYANO
RMI: Prctica 3
Objetivos
-
Marco Terico
Java RMI
Es un mecanismo ofrecido por Java para invocar un mtodo
manera remota. Forma parte del entorno estndar de ejecucin
Java y provee de un mecanismo simple para la comunicacin
servidores en aplicaciones distribuidas basadas exclusivamente
Java.
de
de
de
en
Capas De RMI
La primera capa es la de aplicacin y se corresponde con la implementacin real de las
aplicaciones cliente y servidor
La segunda capa es la capa proxy, o capa stub-skeleton. Esta capa es la que interacta
directamente con la capa de aplicacin. Todas las llamadas a objetos remotos y acciones
junto con sus parmetros y retorno de objetos tienen lugar en esta capa.
La tercera capa es la de referencia remota, y es responsable del manejo de la parte
semntica de las invocaciones remotas.
La cuarta capa es la de transporte. Es la responsable de realizar las conexiones
necesarias y manejo del transporte de los datos de una mquina a otra. El protocolo de
transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que
solamente es "comprendido" por programas Java.
Caractersticas
RMI se caracteriza por la facilidad de su uso en la programacin por
estar especficamente diseado para Java;
Proporciona paso de objetos por referencia (no permitido por SOAP),
Recoleccin de basura distribuida (Garbage Collector distribuido) y
paso de tipos arbitrarios (funcionalidad no provista por CORBA).
Por medio de RMI, un programa Java puede exportar un objeto, lo que
significa que ste queda accesible a travs de la red y el programa
permanece a la espera de peticiones en un puerto TCP. A partir de
este momento, un cliente puede conectarse e invocar los mtodos
proporcionados por el objeto.
Limitaciones
RMI tiene algunas limitaciones debido a su estrecha integracin con Java, la principal
de ellas es que esta tecnologa no permite la interaccin con aplicaciones escritas en otro
lenguaje.
La Invocacin se compone de:
Encapsulado (marshalling) de los
funcionalidad de serializacon de Java).
parmetros
(utilizando
la
1. EcoRMI.java
2. EcoRMICliente.java
3. EcoRMISirviente.java
4. EcoRMIServidor.java
5. generaEcoRMI.sh
6. registra.sh
7. servidor.sh
8. cliente.sh
9. policy.all
Estos archivos contienen un programa distribuido escrito en Java. Es
decir, consiste en un cliente, un servidor y una definicin de interfaz.
Deber compilarlo y ejecutarlo como sigue:
1. Ejecute el script generaEcoRMI.sh (Acurdese de ponerle los
adecuados permisos de ejecucin!).
2. Arranque el servidor de nombres (registry) en mi- mquina,
mediante el script:
./registra.sh
Si se produjese el error cuya primera lnea es la siguiente:
RegistryImpl.main: an exception occurred: Port already in use: 4000
significa que alguien ha arrancado previamente el registry.
Modifique el script registra.sh y los programas EcoRMICliente.java y
EcoRMIServidor.java, haciendo que, en vez de usar el puerto 4000
usen otro de su eleccin.
3. Lance en mi- mquina el servidor de eco, mediante el script:
servidor.bat
4. En una ventana, haga ssh otra- mquina para conectarse a
otra- mquina.
5. Ejecute en otra-mquina el cliente de eco, mediante el script:
cliente.bat mi-mquina
Servidor
Cliente
Conclusiones y Recomendaciones:
Como recomendacin, al momento de ejecutar los archivos .bat es