Documente Academic
Documente Profesional
Documente Cultură
Requisitos
Ejercicio de RMI
El objetivo es simular un ambiente de ejecucin distribuido donde una aplicacin instalada en una
mquina que acta como cliente puede invocar funcionalidad de otra aplicacin que reside en otra
mquina que acta como servidor.
Se construirn 3 componentes:
Interfaces distribuidas: contiene la interfaz Java remota con el mtodo que ser invocado
por la aplicacin cliente usando RMI.
Aplicacin cliente: contiene una clase Java que ser la que consuma el mtodo de la
interfaz remota
Aplicacin servidor: contiene una clase Java que implementa el mtodo invocado por el
cliente y otra clase Java que publica la interfaz remota al cliente por RMI
Para cada componente se crear un proyecto en Netbeans con las clases Java correspondientes y se
generar un archivo JAR que se utilizar para ejecutar el ejercicio.
Asegurarse de DESMARCAR las opciones Set as Main Project y Create Main Class y
finalizar.
Dentro del proyecto creado, posicionarse en la carpeta Source Packages y crear un nuevo
Java Package con el nombre rmi
Crear la interface Java con nombre Saludo en el package rmi y declarar un mtodo
getSaludo:
Posicionarse en el proyecto y seleccionar la opcin Clean and build del men contextual.
Luego pasar a la vista Files y verificar que en la estructura del proyecto se ha creado un
directorio dist que contiene el componente InterfacesDistribuidas.jar
Prctico 2009
Asegurarse de DESMARCAR las opciones Set as Main Project y Create Main Class y
finalizar.
Dentro del proyecto creado, posicionarse en la carpeta Libraries y seleccionar la opcin add
project del men contextual. Se abrir un dilogo de Windows donde se mostrarn los
proyectos del workspace. Seleccionar el proyecto InterfacesDistribuidas y confirmar la
seleccin. Verificar que se haya agregado a la lista de libreras el archivo JAR que contiene
la interfaz remota Saludo.
Posicionarse en la carpeta Source Packages y crear un nuevo Java Package con el nombre
com.negocio.servidor
Prctico 2009
System.err.println("Server ready");
} catch (Exception e) {
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}
}
}
Posicionarse en el proyecto y seleccionar la opcin Clean and build del men contextual.
Luego pasar a la vista Files y verificar que en la estructura del proyecto se ha creado un
directorio dist que contiene el componente AplicacionServidorRMI.jar. Ntese que
tambin se gener un subdirectorio lib con el archivo JAR de interfaces remotas que
habamos declarado en la librera del proyecto.
Asegurarse de DESMARCAR las opciones Set as Main Project y Create Main Class y
finalizar.
Dentro del proyecto creado, posicionarse en la carpeta Libraries y seleccionar la opcin add
project del men contextual. Se abrir un dilogo de Windows donde se mostrarn los
proyectos del workspace. Seleccionar el proyecto InterfacesDistribuidas y confirmar la
seleccin. Verificar que se haya agregado a la lista de libreras el archivo JAR que contiene
la interfaz remota Saludo.
Posicionarse en la carpeta Source Packages y crear un nuevo Java Package con el nombre
com.negocio.cliente
Prctico 2009
Posicionarse en el proyecto y seleccionar la opcin Clean and build del men contextual.
Luego pasar a la vista Files y verificar que en la estructura del proyecto se ha creado un
directorio dist que contiene el componente AplicacionClienteRMI.jar. Ntese que tambin
se gener un subdirectorio lib con el archivo JAR de interfaces remotas que habamos
declarado en la librera del proyecto.
Compilacin y distribucin
Verificar que la estructura del workspace haya quedado as:
Prctico 2009
Si bien se puede realizar la prueba con ambas aplicaciones Servidor y Cliente en la misma
mquina, es interesante comprobar el comportamiento de RMI distribuyendo el Cliente a otra
mquina. Para ello alcanza con copiar el contenido del directorio dist del proyecto
AplicacionClienteRMI a una mquina y el contenido del directorio dist del proyecto
AplicacionServidorRMI a otra.
Ejecucin y prueba
Prctico 2009
Prctico 2009
Ejercicio de Serializable
Extensin del Ejercicio anterior
El objetivo es mostrar el envo de parmetros en una invocacin desde un cliente remoto a una clase
en el servidor.
Compilar los proyectos nuevamente y distribuir los JARs a las mquinas correspondientes.
Prctico 2009
Ejercicio de Externalizable
El objetivo es mostrar de qu forma se puede realizar la serializacin manual de los parmetros en
una invocacin desde un cliente remoto a una clase en el servidor. Para esto, la clase que se serializa
debe implementar los mtodos writeExternal() y readExternal().
Compilar los proyectos nuevamente y distribuir los JARs a las mquinas correspondientes.
Prctico 2009