Tras cubrir aspectos te�ricos de CORBA vamos a afrontar el desarrollo de una aplicaci�n sencilla utilizando CORBA.
Una vez cubierto este primer ejemplo y mostrados los detalles fundamentales del desarrollo con CORBA, inicialmente utilizando el lenguaje Java en cliente y servidor, pasaremos a enfrentarnos a la aplicaci�n que ha sido analizada en anteriores cap�tulos y que b�sicamente consiste en implementar un sistema de comunicaci�n para la intranet de una empresa.
�Herramientas necesarias
En esta entrega es necesario que el lector tenga instalado el JDK (Java Development Kit) en su versi�n 1.1, a ser posible la versi�n 1.1.7, y debe de tener la implementaci�n de CORBA para Java JavaORB, ya que fundamentalmente lo que vamos a realizar es tomar un ejemplo de esta herramienta y analizarlo con detenimiento.
El JDK 1.1.7 para GNU/Linux el lector lo puede obtener de http://www.blackdown.org, el grupo que mantiene Java en la plataforma GNU/Linux y que ya ha logrado portar la versi�n JDK 1.2 a GNU/Linux.
La implementaci�n de CORBA 2.2 JavaORB se puede obtener de http://www.multimania.com/dogweb. Tuvimos algunos problemas para bajar esta herramienta de este web as� que recomendamos al lector paciencia para obtenerla.
La instalaci�n de JDK 1.1.x a partir del tar.gz obtenida de "blackdown" es muy sencilla, consistiendo b�sicamente en poner en el PATH el directorio de los binarios de JDK.
La instalaci�n de JavaORB tambi�n es muy r�pida. Basta con descomprimir el ".zip" mediante la orden unzip <fichero>.zip se crear� un directorio donde estar� todo el "JavaORB". Con a�adir a la variable de entorno "CLASSPATH" el fichero "JavaORBv1_2.jar y al "PATH" el directorio "bin" de JavaORB todo deber�a de funcionar correctamente. Se puede utilizar JavaORB con JDK 1.2 pero requiere ciertas modificaciones que complican la instalaci�n. El lector interesado puede encontrar dicha documentaci�n dentro del propio "JavaORB" en el fichero "README".
Recordamos al lector que en la anterior entrega se describ�a con detalle la instalaci�n de estos dos paquetes.
�La IDL del ejemplo
Como ya hemos ido repitiendo a lo largo del curso, el primer paso en todo desarrollo CORBA es llegar a la definici�n de las interfaces IDL de todos los componentes del sistema.
En nuestro ejemplo el sistema es muy sencillo. Vamos a tener un servidor CORBA que va a actuar como una calculadora. A este servidor acceder�n los clientes y le pedir�n que ejecute operaciones, en concreto las operaciones de "suma" y "division".
El ejemplo se ve complementado con la demostraci�n del uso de excepciones dentro de un sistema CORBA, y de un servicio CORBA fundamental: el servicio de nombres.
A continuaci�n pasamos a mostrar la IDL que vamos a seguir:
// ============================================================ // = Ejemplo de CORBA de JavaORB // = -------------------------------------------------------- = // = Una calculadora sencilla = // ============================================================ // // Descripcion de una excepcion // exception DivisionPorCero { float op1; float op2; }; // // Descripcion de la Interfaz de la calculadora // interface Calculator { // operacion de Suma float add ( in float nb1, in float nb2 ); // operacion de Division float div ( in float nb1, in float nb2 ) raises ( DivisionPorCero ); };
Despu�s de la anterior entrega esperamos que el lector no tenga ning�n problema en seguir est� descripci�n IDL. En ella hay un s�lo interfaz, el Calculator con dos operacion muy sencillas de suma y division.
Quiz�s la parte m�s "original" sea el uso de la excepci�n DivisionPorCero que lanzar� el servidor en el caso de que el cliente intente realizar un divisi�n por cero. Esta excepci�n del servidor se propagar� hasta el cliente a trav�s de CORBA.
Lo mejor para continuar con el ejemplo es que nos creemos un directorio donde ir guardando los diferentes ficheros. A partir de ahora suponemos que dicho directorio es Ejemplo.
Guardamos dentro de este directorio la interfaz IDL con el nombre Calculator.idl.
Ya contamos en la anterior entrega como se pasaba esta interfaz IDL a los "cabos" y "esqueletos" Java. Esto se lograba gracias al compilador de JavaORB idl2java que se encuentra dentro del directorio bin de JavaORB y que el lector deber�a de tener ya en el PATH de su entorno.
La orden a ejecutar dentro del directorio Ejemplo es:
idl2java Calculator.idl
Tras ello se nos crear� un directorio corba_pkg donde se van a almacenar todas las clases Java que constuyen los "cabos y esqueletos" de CORBA, necesarios para que tanto cliente como servidor se "enchufen" al ORB.