Sei sulla pagina 1di 3

IMPLEMENTACION DE IDL.

Interfaz IDL:
El primer paso al crear una aplicacin CORBA es especificar todos tus objetos y tus interfaces usando el la interfaz IDL de OMG. IDL tiene sintaxis similar a C++ y puede ser usada al definir modulos, interfaces, estructuras de datos y ms. El siguiente cdigo esta escrito en IDL, y descibr un objeto CORBA que dice hola (sayHello()), esta operacin regresa una cadena y un mtodo que apaga el ORB (shutdown()). Hello.idl
module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); }; };

NOTA: Cuando escribimos la interfaz no usamos el mismo nombre del modulo. Esto puede llevar a obtener resultados inconsistentes cuando compilamos con herramientas de diferentes proveedores.

Programa servidor:
EL ejemplo del servidor consiste de dos clases, el sirviente (servant) y el servidor (server). El sirviente, HelloImpl, es la implementacin de la interfaz IDL "hello"; cada instancia Hello e implementada por una instancia HelloImpl. El sirviente es una subclase de HelloPOA, que es generado por el compilador idlj del ejemplo IDL. El sirviente contiene un mtodo para cada operacin IDL, en este ejemplo, los mtodos sayHello() y shutdown(). Los mtodos del sirviente son como mtodos ordinarios de java. La clase HelloServer, en su mtodo main():

Crea e inicializa una instancia ORB Obtiene una referencia a la raz POA y activa el POAManager Crea una instancia del sirviente y llama al ORB a travs de l Obtiene un objeto CORBA de referencia para llamado contexto en que registra el nuevo objeto CORBA

Obtiene la raz del llamado contexo Registra el nuevo objeto en el llamado contexto bajo el nombre "Hello" Espera para la invoacin del nuevo objeto de el cliente.

bloPaso 1: Declarar el Mdulo CORBA IDL. Un mdulo CORBA es un nombre que acta como contenedor para interfaces y declaraciones relacionados. Corresponde casi con un paquete java. Cada sentencia mdulo en un fichero IDL se mapea en una sentencia de paquete Java. Arrancamos nuestro editor de texto favorito y creamos un fichero llamado Hello.idl. En nuestro fichero, introducimos la sentencia mdulo. module HelloApp { }; Grabamos el fichero. Cuando ejecutemos idltojava sobre el IDL, esta sentencia generar una sentencia de paquete en cdigo Java. // Add subsequent lines of code here.

Paso 2: Declarar el Interface Al igual que los interfaces Java, los interfaces CORBA declaran el contrato API que un objeto tiene con otros objetos. Cada sentencia interface en el IDL se mapea a una sentencia de interface Java. En nuestro fichero Hello.idl, introduce la sentencia de interface. module HelloApp { interface Hello // Add { // these // four }; }; Cuando compilamoe el IDL, esta sentencia generar una sentencia interface en cdigo Java. Nuestras clases cliente y servidor implemetarn el interface Hello de formas diferente // lines.

Paso 3: Declarar las Operaciones Las operaciones CORBA son el comportamiento que el servidor promete realizar sobre los clientes que lo invocan. Cada sentencia operacin en el IDL genera su corresponiente sentencia mtodo el interface Java generado. En nuestro fichero Hello.idl, introducimos la sentencia de operacin. module HelloApp { }; Cmo nuestra peque aplicacin Hello World slo tiene una operacin, Hello.idl ya est completo. }; interface Hello { string sayHello(); // Add this line.

Mapear Hello.idl desde IDL a Java La herramienta idltojava lee los ficheros OMG IDL y crea los ficheros Java necesarios. La configuracin por defecto de idltojava necesita un fichero cliente y servidor (como hicimos para nuestro programa Hello World), simplemente introducimos el nombre de la herramienta y el nombre de nuestro fichero IDL. Ir al prompt de la lnea de comandos. Cambiar al directorio donde est nuestro fichero Hello.idl. Introducimos el comando de compilador. idltojava Hello.idl

Potrebbero piacerti anche