1 Ejemplo CORBA: Java IDL
2 Java IDL (I): introducciónAñade capacidades de CORBA a la plataforma Java. Se utiliza IDL (Interface Definition Language) para la definición las interfaces a los objetos CORBA. Características de los objetos CORBA: Pueden estar en cualquier sitio de la red. Pueden interoperar con objetos en otras plataformas. Pueden escribirse en cualquier lenguaje de programación que tenga un mapeo de OMG IDL (Java, C++, C, Smalltalk, COBOL, Ada). Sistemas Distribuidos - Nebrija - Justo Hidalgo
3 Java IDL (II): qué es JavaIDLEs un Object Request Broker CORBA/IIOP 2.0 Specification. IDL-to-Java Language Mapping. CORBAServices: Common Object Services Specification (naming service). No interface repository. Sistemas Distribuidos - Nebrija - Justo Hidalgo
4 Java IDL (III): más introducciónEl cliente no conoce: La localización del objeto. Detalles de la implementación del objeto. Qué ORB se utiliza para localizar el objeto. IDL compiler: Transforma el IDL en un lenguaje de programación concreto (Java en este caso). Genera client stubs y server skeletons. Sistemas Distribuidos - Nebrija - Justo Hidalgo
5 Sistemas Distribuidos - Nebrija - Justo HidalgoJava IDL (IV): IDL Declara un conjunto de métodos públicos (operaciones), atributos y excepciones. Cada operación se identifica mediante una firma que contiene el nombre, parámetros, valor de retorno y excepciones que “levanta” (raises). module HelloApp { interface Hello { string sayHello(); }; Sistemas Distribuidos - Nebrija - Justo Hidalgo
6 Java IDL (V): ejemplo (i)Definición de la interfaz (visto antes). Compilación: idlj -fall
7 Java IDL (VI): ejemplo (ii)Implementación del servidor Servant: implementación de la interfaz IDL. Subclase de FichImplBase Server: método main: Crea la instancia ORB. Crea un sirviente, y se lo dice al ORB. Obtiene una CORBA Object Reference de un contexto de nombrado. Registra el objeto CORBA en el s. De nombrado. Espera invocaciones. Sistemas Distribuidos - Nebrija - Justo Hidalgo
8 Java IDL (VII): ejemplo (iii)Implementación del cliente Crear un ORB. Obtener una referencia al contexto de nombrado. Buscar el objeto CORBA deseado en el contexto, recibiendo una referencia. Invocar el objeto. Sistemas Distribuidos - Nebrija - Justo Hidalgo
9 Java IDL (VIII): compilación y ejecuciónInterfaz: idlj –fall Hello.idl Compilar los ficheros Java: javac *.java HelloApp\*.java Arrancar el servidor de nombrado: tnameserv –ORBInitialPort