Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Indice
1. Ejercicio 1: Compilaci
on y uso de objetos remotos CORBA
1.1. Compilaci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Ejecuci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Documentaci
on a entregar
1.
Ejercicio 1: Compilaci
on y uso de objetos remotos CORBA
Se mostrar
a el un ejemplo simple de creaci
on de objetos remotos en CORBA.
Se usar
a el c
odigo de ejemplo que implementa una calculadora remota comentado en los apuntes de la asignatura.
Descarga: corba1.tar.gz
corba1.zip
El c
odigo de partida incluye:
calculadora.idl: Especificaci
on IDL del interfaz de la calculadora remota
Define el m
odulo ejemplo y el interfaz Calculadora
ejemplo/*: Directorio con las clases e interfaces Java del paquete ejemplo generado con el compilador IDL (idlj
-fall)
CalculadoraImpl.java: Implementaci
on (servant) del interfaz IDL
Hereda de la clase CalculadoraPOA generada por el compilador idlj
EjemploServidor.java: Proceso servidor simple que crea un objeto servant de tipo CalculadoraImpl, lo registra
en el POA y almacena el IOR resultante en el servidor de nombres con el nombre Calculadora
EjempoCliente.java: Cliente simple que obtiene del servidor de nombres de CORBA una referencia a un objeto
CORBA calculadora remota y ejecutas sus metodos
1.1.
Compilaci
on
1. Descomprimir el paquete.
$ tar xzvf corba1.tar.gz
$ cd corba1
2. Compilar el interfaz IDL (ya est
a hecho)
$ idlj -fall calculadora.idl
Comprobar los ficheros Java generados en el directorio ejemplo
3. Compilar el servant y el servidor
$ javac CalculadoraImpl.java
$ javac EjemploServidor.java
4. Compilar el servidor
$ javac EjemploCliente.java
1.2.
Ejecuci
on
1.3.
Tareas a realizar
Se recomienda inspeccionar los ficheros Java proporcionados y comprobar su relacion con los ficheros generador autom
aticamente por el compilador idlj
Prestad especial atenci
on a las implementaciones del servidor y el cliente para ver la dinamica tpica que se debe seguir
a la hora de crear y hacer disponibles objetos CORBA y a la hora de recuperarlos del servidor de nombres y lanzar
invocaciones sobre ellos.
2.
Se ver
a un ejemplo del uso de retrollamadas entre objetos CORBA.
De forma general el mecanismo de retrollamadas (callback ) permite que se pase un comprotamiento (codigo) como
argumento a otra pieza de c
odigo distinta
2
2.1.
Pasos a seguir
Descomprimir el paquete.
$ tar xzvf corba2.tar.gz
$ cd corba2
Contenido
subasta.idl: Interfaces IDL para los objetos Subastador y Pujador
subasta/*: Directorio con las clases e interfaces Java del paquete subasts generado con el compilador IDL
(idlj -fall)
SubastadorImpl.java: Implementaci
on (servant) del interfaz IDL Subastador
Hereda de la clase SubastadorPOA generada por el compilador idlj
PujadorImpl.java: Implementaci
on del objeto (servant) del interfaz IDL Pujador
Hereda de la clase PujadorPOA generada por el compilador idlj
ServidorSubastas.java: Servidor vaco
ClienteSubastas.java: Cliente vaco
3
2.2.
Tareas a realizar
Se pide implementar un servidor y un cliente que hagan uso de los objetos CORBA implementados en una peque
na
subasta.
Se subastar
a un peluche rojo, con importe mnimo de 100 euros y que admite un maximo de 3 pujas
Habr
a 4 pujadores, por ejemplo:
Pepe que puja con 50 euros
Luis que puja con 95 euros
Ana que puja con 80 euros
Pedro que puja con 85 euros
Tomad como base los ejemplos de servidor y cliente vistos en el ejercicio 1.
Implementaci
on del servidor
1. Iniciar el ORB de CORBA
2. Instanciar un servant de la clase SubastadorImpl con los parametros que correspondan a la subasta del
peluche rojo, registrarlo en el POA y obtener su IOR (referencia remota)
3. Registrar esa referencia en el servidor de nombres de CORBA con el nombre SubastadorPeluche
4. Quedar a la espera
Implementaci
on del cliente
1. Iniciar el ORB de CORBA
2. Obtener del servidor de nombres la referencia asociada al nombre SubastadorPeluche y hacer el narrow del
objeto CORBA generico a un objeto de tipo Subastador
3. Instanciar un servant de la clase PujadorImpl tomando los parametros que correspondan de la entrada est
andar
(metodos leerNombre(), leerCantidad()), registrarlo en el POA y obtener su IORs (referencia remota)
4. Una vez registrado, convertir (narrow ) esa referencia a una referencia de tipo Pujador para pas
arlas como
par
ametro en la invocaci
on del metodo anadirPuja() del objeto Subastador
Pasos para compilaci
on (una vez implementado):
1. Compilar el interfaz IDL (ya est
a hecho)
$ idlj -fall subasta.idl
2. Compilar implementaciones y compilar el servidor
$ javac SubastadorImpl.java
$ javac PujadorImpl.java
$ javac ServidorSubastas.java
3. Compilar el cliente
$ javac ClienteSubastas.java
Pasos para ejecuci
on (una vez compilado):
1. Lanzar el demonio orbd (si no estaba lanzado ya)
$ orbd -ORBInitialHost localhost -ORBInitialPort 1111
4
3.
Documentaci
on a entregar
Para el ejercicio 2 se entregar
an impresos los framentos de codigo fuente con el cliente y el servidor implementados.
Comentar en el c
odigo cada uno de los pasos realizados
Se debe incluir una peque
na explicaci
on del flujo de llamadas entre objetos en el ejemplo de la puja del peluche
rojo, describiendo los par
ametros que se pasan y quien los recibe.