You are on page 1of 10

Tutorial para CORBA Hola Mundo usando Java

Publicado por Imed Bouchrikael 10 de noviembre 2013en CORBA , Programacin13


Comentarios

El CORBA (CORBA) es un estndar desarrollado por el Object Management Group


(OMG) para proporcionar interoperabilidad entre objetos distribuidos. CORBA es la
solucin de middleware lder en el mundo que permite el intercambio de
informacin, independiente de plataformas de hardware, lenguajes de
programacin y sistemas operativos. CORBA es esencialmente una especificacin
de diseo para un agente de peticin de objetos (ORB), donde un ORB proporciona
el mecanismo requerido para objetos distribuidos para comunicarse uno con el
otro, ya sea localmente o en los dispositivos remotos, escritos en diferentes
idiomas, o en diferentes ubicaciones en una red .
En este tutorial CORBA Programacin, vamos a aprender a crear:
o

Simple Object remoto.

Server para crear una instancia (crear) y enlazar un objeto remoto.

Cliente invocar remotamente un objeto

Necesita instalar el Java Development Kit (JDK), as como un editor de


programacin (IDE), como Eclipse. Para ms detalles de cmo instalar JDK y
Eclipse, utilice el siguiente tutorial:
Programacin Java: Crear un proyecto java simple utilizando Eclipse
La estructura de los archivos de los proyectos creados con Eclipse en toda esta
tutoriales se muestra a continuacin:

1. Server Side

1 Vamos a crear un nuevo proyecto Java usando Eclipse (o NetBeans u otro editor
lo prefiere), y lo llaman: CorbaAdditionServer -> Haga clic en Finalizar una vez
hecho
2 En el marco del proyecto CorbaAdditionServer , cree un nuevo archivo
llamado Addition.idl .Copie el cdigo siguiente en el nuevo archivo.
1
2
3
4
5
6
7
8
9
10
11
12

/ **
*
*author Imed
*/
mdulo AdditionApp
{
interfaz de adicin
{
larga complemento ( en largo una , en largo b );
unidireccional vaco apagado ();
};
};

3 Abra la consola CMD, Cambie el directorio (cd) a src carpeta dentro de la


ubicacin del proyecto. La ubicacin de su proyecto puede ser conocido a travs de
clic: Selecciona el CorbaAdditionServer proyecto, haga clic en: Archivo > Propiedades
cd C: \ Users \ imed \ workspace \ CorbaAdditionServer \ src

4 Compile el archivo IDL con el comando idlj como a continuacin:


idlj -otoo Addition.idl
Usted ver que el interior de la carpeta src , nuevo directorio
llamado AdditionApp se crea con un nmero de archivos de Java dentro.

5 Haga clic derecho sobre el src carpeta y seleccione Actualizar

6 En el marco del proyecto CorbaAdditionServer , crear una


nueva clase llamada AdditionObj .Copie el cdigo de abajo en la nueva clase.
1
2

/ **
*

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

*author Imed
*/
importacin AdditionApp . *;
importacin org . omg . CosNaming . *;
importacin org . omg . CosNaming . NamingContextPackage . *;
importacin org . omg . CORBA . *;
importacin org . omg . PortableServer . *;
importacin org . omg . PortableServer . POA ;
import java . util . Propiedades ;
clase AdditionObj extiende AdditionPOA {
privado orbe ORB ;
pblico vaco setORB ( orb_val ORB ) {
orbe = orb_val ;
}
Mtodo // implementar add ()
pblica int add ( int a , int b ) {
int r = a + b ;
volver r ;
}
// Implementar shutdown () mtodo
pblico vaco apagado () {
orbe . apagado ( false );
}
}

7 En el marco del proyecto CorbaAdditionServer , crear una


nueva clase llamada StartServer .Copie el cdigo de abajo en la nueva clase.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

/ **
*
*author Imed
*/
importacin AdditionApp . *;
importacin org . omg . CosNaming . *;
importacin org . omg . CosNaming . NamingContextPackage . *;
importacin org . omg . CORBA . *;
importacin org . omg . PortableServer . *;
importacin org . omg . PortableServer . POA ;
import java . util . Propiedades ;
pblica clase StartServer {
pblicas estticas void principales ( Cuerda args []) {
tratar {
// Crear e inicializar el ORB //// llegar referencia a rootpoa & amp; activar el POAManager
Orbe ORB = ORB . init ( args , nulo );
POA rootpoa = POAHelper . angosta ( orbe . resolve_initial_references ( "RootPOA" ));
rootpoa . the_POAManager (). activar ();
// Crear siervo y registrarlo con el ORB

24
25
26
27
28
29
30
31

AdditionObj addobj = nuevo AdditionObj ();


addobj . setORB ( orbe );
// Obtener referencia de objeto del siervo
org . omg . CORBA . Objeto ref = rootpoa . servant_to_reference ( addobj );
Adems href = AdditionHelper . angosta ( ref );

org . omg . CORBA . Objeto objRef = orbe . resolve_initial_references


( "NameService" );
32
NamingContextExt ncRef = NamingContextExtHelper . angosta ( objRef );
33
34
NameComponent ruta [] = ncRef . TO_NAME ( "ABC" );
35
ncRef . rebind ( ruta , href );
36
37
Sistema . cabo . println ( "Adicin servidor listo y esperando ..." );
38
39
// Espera para las invocaciones de los clientes
40
para (;;) {
41
orbe . correr ();
42
}
43
}
44
45
captura ( Exception e ) {
46
Sistema . errar . println ( "ERROR:" + e );
47
e . printStackTrace ( Sistema . cabo );
48
}
49
50
Sistema . cabo . println ( "HelloServer Salir ..." );
51
52 }
53 }

8 Abra una ventana nueva de consola CMD, escriba el siguiente comando para
iniciar el ORB
iniciar orbd -ORBInitialPort 1050
9 En Eclipse ahora, haga clic en el proyecto CorbaAdditionServer, entonces
Haga clic en Ejecutar -> Ejecutar configuracin como se muestra a
continuacin:

10 Asegrese de seleccionar el StartServer para el CorbaAdditionServer.

Si no aparece, haga doble clic en la aplicacin Java

11 Haga clic en Argumentos y tipo en los siguientes argumentos dentro de los .


argumentos de programa Haga clic en Aplicar una vez hecho:
-ORBInitialPort 1050 -ORBInitialHost localhost

12 Esto es todo por el servidor, debe estar en ejecucin.

Del lado del cliente.


1 Vamos a crear un nuevo proyecto Java usando Eclipse y lo
llaman: CorbaAdditionClient -> Haga clic en Finalizar una vez hecho
2 Haga clic derecho sobre AdditionApp paquete bajo CorbaAdditionServer y
haga clic en Copiar

3 Haga clic derecho sobre src paquete bajo CorbaAdditionClient y haga clic
en Pegar

4 En el marco del proyecto CorbaAdditionClient , crear una


nueva clase llamada StartClient .Copie el cdigo de abajo en la nueva clase.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

/ **
*
*author Imed
*/
importacin AdditionApp . *;
importacin org . omg . CosNaming . *;
importacin org . omg . CosNaming . NamingContextPackage . *;
importacin org . omg . CORBA . *;
import java . io . *;
import java . util . *;
pblica clase StartClient {

/ **
*param Args los argumentos de la lnea de comandos
*/
pblicas estticas void principales ( Cuerda [] args ) {
tratar {
Orbe ORB = ORB . init ( args , nulo );
org . omg . CORBA . Objeto objRef = orbe . resolve_initial_references
( "NameService" );
22
NamingContextExt ncRef = NamingContextExtHelper . angosta ( objRef );
23
Adems addobj = ( Suma ) AdditionHelper . angosta ( ncRef . resolve_str ( "ABC" ));
24
25
Scanner c = nuevo escner ( Sistema . en );
26
Sistema . cabo . println ( "Bienvenido al sistema de adicin:" );
27
28
29
30
31

para (;;) {
Sistema . cabo . println ( "Introduzca un:" );
Cadena aa = c . nextLine ();
Sistema . cabo . println ( "Enter b:" );
Cadena bb = c . nextLine ();

32
int a = Entero . parseInt ( aa );
33
int b = Entero . parseInt ( bb );
34
int r = addobj . aadir ( un , b );
35
Sistema . cabo . println ( "El resultado de la adicin es:" + r );
36
Sistema . cabo . println ( "-----------------------------------" );
37
}
38
}
39
captura ( Exception e ) {
40
Sistema . cabo . println ( "Hola excepcin Cliente:" + e );
41
e . printStackTrace ();
42
}
43
44
}
45
46 }

5 Haga clic en Ejecutar -> Configuracin Run , Asegrese de que selecciona


el StartClient para la CorbaAdditionClient.

6 Haga clic en Argumentos, entonces bajo los argumentos de programa, escriba lo


siguiente:
-ORBInitialPort 1050 -ORBInitialHost localhost

7 Haga clic en Aplicar y luego en Ejecutar . Eso es todo por el cliente, que deben
estar en ejecucin.

You might also like