Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Corba Desarrollado en Java
Corba Desarrollado en Java
Indice
1. Introducci
on
2. Primeros pasos
2.1. Fichero IDL . .
2.2. Cliente . . . . .
2.3. Implementaci
on
2.4. El servidor . .
1
1
2
3
5
. .
. .
del
. .
. . . . .
. . . . .
servant
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Ejecuci
on
1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducci
on
Este documento explica los primeros pasos para usar CORBA desde Java. Primero se
describe un ejemplo sencillo y luego se ofrece un cliente Java para el servidor visto en
C++. Con cualquier JDK se pueden realizar los ejemplos propuestos.
2.
Primeros pasos
2.1.
Fichero IDL
module prueba
{
interface Calculadora
{
double add ( in double x , in double y ) ;
double substract ( in double x , in double y ) ;
double multiply ( in double x , in double y ) ;
};
11
};
Las funciones son las normales de una calculadora, como se puede ver.
Para generar los stubs y skeletons, hay que ejecutar el compilador de IDL. Lo ejecutamos con la opci
on ((-fall)), para que genere tanto los stubs como los skeletons:
$ idlj -fall Calculadora.idl
Esto genera los ficheros de stub y skeleton dentro del subdirectorio ((prueba)):
$ ls prueba -C1
CalculadoraHelper.java
CalculadoraHolder.java
Calculadora.java
CalculadoraOperations.java
CalculadoraPOA.java
_CalculadoraStub.java
2.2.
Cliente
A continuaci
on se muestra el cliente (Cliente.java): Es un programa que es capaz
de utilizar el objeto Calculadora:
package prueba ;
2
10
12
14
16
18
20
22
24
// Usar la calculadora
System . out . println ( calc . add (2.0 ,3.0) ) ;
28
} catch ( Exception e ) {
e . printStackTrace () ;
}
30
32
}
}
34
2.3.
Implementaci
on del servant
Para implementar un objeto CORBA, esto es, para ofrecer sus servicios al mundo, se
tienen que implementar dos cosas:
El servant que contiene la implementacion de los metodos del interfaz que se ofrece
al exterior,
y un servidor, que quedar
a esperando conexiones en un puerto IP.
El servant es simplemente un objeto del lenguaje de programacion (en este caso Java)
que implementa la funcionalidad de los metodos del objeto CORBA. Este servant es
llamado por el skeleton cuando un cliente llama a un metodo del objeto CORBA implementado por ese servant. El c
odigo del servant es el que se muestra a continuacion. Se
ha implementado las funciones de la calculadora en el fichero CalculadoraImpl.java:
package prueba ;
2
public CalculadoraImpl ()
{
memory_ = 0;
}
10
12
14
16
18
20
22
24
26
28
30
try {
result = x / y ;
} catch ( Exception e )
{
}
32
34
36
return result ;
38
40
42
44
46
48
2.4.
El servidor
En cualquier aplicaci
on CORBA debe existir un servidor que quede esperando las
peticiones sobre los objetos CORBA implementados por el (servants). El servidor es un
programa Java normal que dejar
a activado un servant para el objeto CORBA.
1
package prueba ;
11
13
15
// Iniciar el ORB
org . omg . CORBA . ORB orb = org . omg . CORBA . ORB . init ( args , null ) ;
// Objeto auxiliar
org . omg . CORBA . Object o ;
17
19
21
23
// Encontrar el POA ra
z
POA rootPOA ;
o = orb . r e s o l v e _ i n i t i a l _ r e f e r e n c e s ( " RootPOA " ) ;
rootPOA = POAHelper . narrow ( o ) ;
// Activar el POA
rootPOA . the_POAManager () . activate () ;
25
29
31
33
35
37
39
41
43
} catch ( Exception e )
{
e . printStackTrace () ;
}
45
47
}
}
49
3.
Ejecuci
on
$ java prueba.Cliente
5.0