Java IDL

Java IDL es una tecnologa para objetos distribuidos -- es decir, objetos interactuando sobre diferentes plataformas a travs 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 estn 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 caracterstica 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 definicin del mapeo IDL-a-Java.

Para soportar la interaccin entre objetos de programas separados, Java IDL proporciona un Object Request Broker, o ORB. El ORB es una librera de clases que permite una comunicacin 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 prxima pgina.

Esta seccin camina a travs del diseo y desarrollo de una sencilla pareja de aplicaciones Java IDL que interactuan. Empiza mostrando la arquitectura general de CORBA, luego contina con una introduccin 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 seccin, obtendrs informacin adicional detallada sobre CORBA, IDL y el prometido Java IDL ORB.

Cualquier relacin 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 mayora de los estndares sobre objetos distribuidos, incluyendo RMI y CORBA. Observa que en este contecto, los trminos cliente y servidor definen niveles de objetos en vez de niveles de aplicacin -- cualquier aplicacin podra ser un servidor para algunos objetos y un cliente para otros. De hecho, un slo oobjeto podra 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 cmo un mtodo de un objeto distribuido es compartido entre un cliente CORBA y un servidor para implementar la clsica aplicacin "Hello World".

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

En el lado del servidor, el ORB usa cdigo esqueleto para traducir la invocacin remota en una llamada a mtodo sobre un objeto local. El esqueleto traduce la llamada y cualquier parmetro a su forma especfico de implementacin y llama al mtodo que est siendo invocado. Cuando el mtodo retorna, el cdigo del esqueleto transfoma los resultados o errores y los devuelve al cliente mediante los ORBs.

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

Adems de estas sencullas capacidades de objetos distribuidos, los ORBs compatibles con CORBA pueden proporcionar un gran nmero de servicios opcionales definidos por el OMG. Esto incluye servicios de bsqueda de objetos por nombre, mantenimiento de la persistencia de objetos, soporte de procesamiento de transaciones, permitir mensajera, 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 slo 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 diseo y desarrollo de una aplicacin de objetos distribuidos con Java IDL.

.Definir el Interface Remoto

Definimos el interface para el objeto remoto usando el "Lenguaje de Definicin de Interfaces" del OMG. Utilizamos IDL en lugar del lenguaje Java porque el compilador idltojava mapea automticamente desde IDL, generando todos los ficheros fuentes del lenguaje Java y el esqueleto, junto con el cdigo de infraestructura para concectar con el ORB. Usando IDL, tambin 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 creaccin del cliente o el servidor.

.Compilar el Interface Remoto

Cuando ejecutamos el compilador idltojava sobre nuestro fichero de definicin de interface, genera la versin 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 aplicacin servidor. Adems de implementar los mtodos del interface remoto, nuestro cdigo servidor incluye un mecanismo para arrancar el ORB y esperar las invocaciones de los clientes remotos.

.Implementar el Cliente

De forma similar, usamos el cdigo generado por el compilador idltojava como la base para nuestra aplicacin cliente. El cdigo 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 mtodos.

.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

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.