Programación en castellano
Inicio > Tutoriales > J2EE > Java IDL
-Tutoriales

Java IDL


Java IDL

. ¿Qué es 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.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados