Curso práctico de Corba en GNU/Linux

Figura 3: Distributed Object Group

JavaORB, desarrollado por el DOG, es una herramienta que nos permite desarrollar utilizando CORBA 2.2, por lo que tiene implementados sistemas como POA.

Lo primero que debemos tener en nuestra m�quina GNU/Linux es tener instalada la versi�n de JDK 1.1.x, siendo recomendable la JDK 1.1.7.

El JDK para GNU/Linux se puede obtener de http://www.blackdown.org. Es importante no utilizar la versi�n JDK 1.2 ya que esta incluye su propio ORB y hay que configurar JavaORB de una forma especial para que no colisionen ambos ORBs. Esto es posible y se detalla dentro de la p�gina web de JavaORB, pero no se va a cubrir en este art�culo.

Una vez instalado el JDK 1.1 en nuestro sistema la instalaci�n de JavaORB es muy sencilla. Lo primero que debemos hacer es ir al servidor de web del grupo que lo ha desarrollado (http://www.multimania.com/dogweb) y obtener el fichero "JavaORB_1.2.4.zip" que constituye la implementaci�n de CORBA. Atenci�n que cuando el lector acceda a este web pueden existir versiones nuevas, y su instalaci�n aunque muy parecida a la que aqu� se describe, puede diferir.

Tras ello ejecutamos la orden:

unzip JavaORB_1.2.4.zip

Una vez descomprimido el fichero nos vamos al directorio "Release/JavaORB" y dentro de �l tenemos en el fichero "README.txt" las instrucciones de instalaci�n. B�sicamente, si no utilizamos JDK 1.2, en cuyo caso el lector debe leer dicho fichero, lo �nico que hay que hacer es a�adir al CLASSPATH el fichero "JavaORBv1_2_4.jar". El CLASSPATH es una variable de entorno que utiliza el JDK para encontrar las clases.

Una vez hecho esto ya disponemos de todo lo necesario para desarrollar aplicaciones CORBA basadas en Java.

En nuestro caso lo �nico que vamos a hacer de momento es utilizar el compilador de IDL que proporciona la herramienta, para que el lector pueda empezar a trabajar con el lenguaje IDL y comprobar que utiliza de forma correcta el lenguaje.

Para utilizar dicho compilador encontramos dentro del directorio "Release/JavaORB/bin" el ejecutable "idl2java" (al ser una distribuci�n para entornos MSDOS estos ficheros no tienen permiso de ejecuci�n. El lector debe modificar esto con la orden "chmod 755 idl2java").

Este ejecutable lo que hace es lanzar un programa Java que es el que pasa del lenguaje IDL a Java. El compilador genera tanto los cabos (stubs) del cliente como los esqueletos (skeletons) del servidor. Tambi�n genera las interfaces que debe implementar el servidor.

Pero de momento no vamos a entrar en estos detalles y nos vamos a centrar en el compilador "idl2java". Para su uso, definimos nuestras interfaces en un fichero ".idl", en nuestro caso "Mensajes.idl", y ejecutamos:

idl2java Mensajes.idl

Para ello puede el lector crearse un directorio "idl" dentro de su cuenta, copiar all� el fichero Mensajes.idl y poner en el PATH el directorio donde se encuentra el ejecutable "idl2java".

Si no utilizamos ning�n par�metro del compilador, el resultado de dicha invocaci�n es la creaci�n de un directorio "corba_pkg" con todas las clases necesarias para los clientes y servidores CORBA.

Todas las opciones disponibles del compilador son:

bash-2.01$ idl2java             


#################################################
#                     Java ORB                  #
#                -----------------              #
#              (c) 1997, 1998, 1999             #
#################################################
# Java IDL Compiler, Release 1.6                #
#################################################


Options
-------
        -release
                Show version number
        -nopackage
                Don't use corba_pkg directory as a package
        -outdir:
                Provide a way to specify the ouput dir. This option
                will not use the corba_pkg directory.
                For example :
                        idl demo.idl -outdir:/home/me/
        -package: package_name
                Generate files in package_name
                Example:
                        idl demo.idl -package:exemple
        -I
                Allow specification of include directory
                Example:
                  idl demo.idl -I/home/me/idl -I../autre
        -D
                Define a symbole. It is equivalent to #define
        -nostub
                Don't generate stub.
        -noskeleton
                Don't generate skeleton.
        -tie
                Generate TIE files to delegation mode.
        -user
                Generate code for user
        -pidl
                Consider the IDL file as PIDL description. It generates
                mapping but no stub, no skeleton.
        -native: native name = native mapping 
                Define native type mapping.
                For example : 
                        idl     demo.idl -native:cookie=java.lang.Object
                        this command implies the mapping of
                        cookie in java.lang.Object.
        -poa
                Generate skeleton for POA

De ellas destacar el parametro "-poa" que generar� los esqueletos necesarios para utilizar POA como adaptador de objetos de CORBA. Las dem�s opciones ser�n descritas a lo largo de las pr�ximas entregas del curso.

Quiz�s el lector quiera comenzar a utilizar un interfaz m�s sencillo e ir poco a poco complic�ndolo. Un buen punto de partida es:

interface echo {
        string repite (in string mensaje);
};

Para el lector avanzado podemos indicarle que consulte el fichero "corba_pkg/echoOperations.java" donde encontrar� la interfaz Java que es traducci�n directa de la interfaz OMG/IDL.

.�Conclusiones

A lo largo de estos cap�tulos hemos podido ver la importancia del lenguaje OMG/IDL.

Todo proceso de dise�o software orientado a objetos debe acabar definiendo de forma clara las interfaces de comunicaci�n de los objetos de la aplicaci�n. Y estas se describen en el mundo CORBA utilizando el leguaje OMG/IDL.

OMG/IDL es un lenguaje sencillo, basado fundamentalmente en Java, y con algunas extensiones para reflejar mecanismos de comunicaci�n. A partir de �l se obtiene de forma autom�tica los cabos (stubs) y esqueletos (skeletons) que permitir�n a nuestros clientes y servidores comunicarse a trav�s del ORB.

Hemos visto por �ltimo la herramienta JavaORB, una implementaci�n de CORBA 2.2 que incluye un compilador de IDL a Java con el que podemos empezar a trabajar.

.�Referencias

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO