Java IDL

Java IDL es una tecnolog�a para objetos distribuidos -- es decir, objetos interactuando sobre diferentes plataformas a trav�s de una red. Java IDL es similar a RMI (Remote Method Invocation), que soporta objetos distribuidos escritos enteramente en Java. Sin embargo, Java IDL permite intractuar a los objetos sin importar si est�n escritos en Java o en cualquier otro lenguaje como C, C++, COBOL, etc.

Esto es posible porque Java IDL est� basado en "Common Object Request Brokerage Architecture" (CORBA), un modelo industrial estandard para objetos distribuidos. La caracter�stica principal de CORBA es IDL, (Interface Definition Language). Caa lenguaje que soporte CORBA tiene su propio mapeo IDL -- y como su nombre implica, Java IDL soporta el mapeo para Java. CORBA y los mapeos IDL son el trabajo de un consorcio industrial conocido como OMG (Object Management Group). Sun es un miembro fundacional del OMG, y el equipo Jva IDL ha jugao un papel activo en la definici�n del mapeo IDL-a-Java.

Para soportar la interacci�n entre objetos de programas separados, Java IDL proporciona un Object Request Broker, o ORB. El ORB es una librer�a de clases que permite una comunicaci�n de bajo nivel entre aplicaciones Java IDL y aplicaciones compatibles con CORBA. Esto est� empezando a parecer una sopa de letras, no te preocipes, los detalles sobre CORBA, IDL y ORB vienen en la pr�xima p�gina.

Esta secci�n camina a trav�s del dise�o y desarrollo de una sencilla pareja de aplicaciones Java IDL que interactuan. Empiza mostrando la arquitectura general de CORBA, luego contin�a con una introducci�n a los pasos para construir aplicaciones CORBA en Java IDL. Finalmente, realiza cada paso para producir un cliente y un servidor que interactuan usando CORBA.

.�La Arquitectura CORBA

En esta secci�n, obtendr�s informaci�n adicional detallada sobre CORBA, IDL y el prometido Java IDL ORB.

Cualquier relaci�n entre objetos distribuidos tiene dos lados: el cliente y el servidor. El servidor proporciona un interface remoto, y el cliente llama a un interface remoto. Estas relaciones son comunes en la mayor�a de los est�ndares sobre objetos distribuidos, incluyendo RMI y CORBA. Observa que en este contecto, los t�rminos cliente y servidor definen niveles de objetos en vez de niveles de aplicaci�n -- cualquier aplicaci�n podr�a ser un servidor para algunos objetos y un cliente para otros. De hecho, un s�lo oobjeto podr�a ser el cliente para un interface proporcionado por un objeto remoto y al mismo tiempo implementar un interface para ser llamado remotamente por otros objetos.

Esta figura muestra c�mo un m�todo de un objeto distribuido es compartido entre un cliente CORBA y un servidor para implementar la cl�sica aplicaci�n "Hello World".

En el lado del cliente, la aplicaci�n incluye una referencia para el objeto remoto. El objeto referenciando tiene un m�todo stub, que es un atajo para el m�todo que es� siendo llamado remotamente. El stub realmente es disparado dentro del ORB, por eso esta llamada invoca las capacidades de conexi�n del ORB, el que re-envia la llamada al servidor.

En el lado del servidor, el ORB usa c�digo esqueleto para traducir la invocaci�n remota en una llamada a m�todo sobre un objeto local. El esqueleto traduce la llamada y cualquier par�metro a su forma espec�fico de implementaci�n y llama al m�todo que est� siendo invocado. Cuando el m�todo retorna, el c�digo del esqueleto transfoma los resultados o errores y los devuelve al cliente mediante los ORBs.

Entre los ORBs, la comunicaci�n se procesa mediante el signifiado de un protocolo compartido, IIOP-- Internet Inter-ORB Protocol. IIOP, que est� basado en el protocolo est�ndard de Internet TCP/IP, define como los ORBs compatibles con CORBA pasan la informaci�n. Como CORBA e IDL, El est�ndard IIOP est� definido por el OMG, Object Management Group.

Adem�s de estas sencullas capacidades de objetos distribuidos, los ORBs compatibles con CORBA pueden proporcionar un gran n�mero de servicios opcionales definidos por el OMG. Esto incluye servicios de b�squeda de objetos por nombre, mantenimiento de la persistencia de objetos, soporte de procesamiento de transaciones, permitir mensajer�a, y muchas otras capacidades �itles. Varios de los ORBs Java de terceras partes soportan algunas o todas de estas capacidades adicionales. El ORB proporcionado con Java IDL s�lo soporta un servicio adicional, la habilidad para localizar objetos por el nombre.

.�El Proceso de Desarrollo de Java IDL

Ahora que hemos visto las relaciones entre cliente y servidor en CORBA, estamos preparados para ver el proceso de dise�o y desarrollo de una aplicaci�n de objetos distribuidos con Java IDL.

.�Definir el Interface Remoto

Definimos el interface para el objeto remoto usando el "Lenguaje de Definici�n de Interfaces" del OMG. Utilizamos IDL en lugar del lenguaje Java porque el compilador idltojava mapea autom�ticamente desde IDL, generando todos los ficheros fuentes del lenguaje Java y el esqueleto, junto con el c�digo de infraestructura para concectar con el ORB. Usando IDL, tambi�n hacemos posible que los desarrolladores implementen clientes y servidores en cuqlquier otro lenguaje compatible con CORBA.

Observa que si estamos implementando un cliente para un servicio CORBA existente, o un srvidor para un cliente existente, obtendremos los interfaces IDL desde el implementador--como un proveedor de servicio o vendedos.

Luego ejecutaremos el compilador idltojava sobre estos interfaces y seguimos la pasos para la creacci�n del cliente o el servidor.

.�Compilar el Interface Remoto

Cuando ejecutamos el compilador idltojava sobre nuestro fichero de definici�n de interface, genera la versi�n Java del interface, as� como los ficheros class para las clases y el esqueleto que permiten a las aplicaciones comunicarse con el ORB.

.�Implementar el Servidor

Una vez que hemos ejecutado el compilador idltojava, podemos usar los esqueletos que genera para juntarlos con nuestra aplicaci�n servidor. Adem�s de implementar los m�todos del interface remoto, nuestro c�digo servidor incluye un mecanismo para arrancar el ORB y esperar las invocaciones de los clientes remotos.

.�Implementar el Cliente

De forma similar, usamos el c�digo generado por el compilador idltojava como la base para nuestra aplicaci�n cliente. El c�digo del cliente se construye para arrancar su ORB, buscar el servidor usando el nombre de servicio proporcionado con Java IDL, obtener una referencia a un objeto remoto y llamar a sus m�todos.

.�Arrancar las Aplicaciones

Una vez que hemos implementado un servidor y un cliente, podemos arrancar el servidor de nombres, luego el servidor y por �ltimo el cliente.

COMPARTE ESTE ARTÍCULO

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