Corba Con Java E IDL Programación
Corba con Java e IDL – Programación
(http://www.programacion.com.py)
Inicio (http://www.programacion.com.py) » Escritorio (http://www.programacion.com.py/categoria/escritorio) »
Java (http://www.programacion.com.py/categoria/escritorio/java-escritorio) » Corba con Java e IDL
Corba con Java e IDL
Rodrigo Paszniuk (http://www.programacion.com.py/author/raps) | 2014-05-25 | No haycomentarios »
(http://www.programacion.com.py/escritorio/java-escritorio/corba-con-java-e-idl#respond)
0
Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management
Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de
programación y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita eldesarrollo de
aplicaciones distribuidas en entornos heterogéneos.
IDL es un lenguaje de definición de interfaces que utiliza CORBA, el cual le permitirá definir las interfaces para los
servicios que ofrecerá, de estas interfaces parten las implementaciones de la parte servidor y cliente en cualquiera
de los diversos lenguajes que implementan CORBA (Ada, C, C++, Smalltalk, Java, Python, Perl). Comenzamos con la implementación (El ejemplo es para realizar una suma):
PASO 1: Preparar la aplicación
Crear una carpeta donde prefieran para trabajar las clases dentro de ella.
PASO 2: Definir la interfaz IDL
http://www.programacion.com.py/escritorio/javaescritorio/corbaconjavaeidl
1/11
5/10/2015
Corba con Java e IDL – Programación
ya dentro de la carpeta crearemos un archivo llamadoSuma.idl con cualquier editor de texto:
module sumaApp{
interface suma{
long sumar(in long primernumero, in long segundonumero);
oneway void shutdown();
};
};
Esta definición es parecida a la definición que se hace con RPC (con xdr), lo que se hace es definir los métodos que
se van a utilizan.
PASO 3: Generar las clases CORBA
Para generar las clases corba utilizaremos el compilador deinterfaces que viene con el sdk de java se llama idlj, al
ejecutar esta aplicación en conjunto con la definición suma.idl creara para nosotros todas las clases necesarias para
poder utilizarla. El procedimiento es como sigue:
idlj -fall suma.idl (ejecutar dentro de la carpeta de la aplicación)
Esto generara la carpeta sumaApp y dentro de ella las clases _SumaStub.java, Suma.java, SumaHelper.java,SumaHolder.java, SumaOperations.java, SumaPOA.java
* Si no les reconoce el idlj tendrán que agregar el sdk de java al path del sistema operativo que tengan.
Solo queda escribir la clase cliente y la clase servidor dentro de carpeta de la aplicación
PASO 4: La clase servidor: SumaServer.java
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
import sumaApp.*;import org.omg.CosNaming.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
class SumaImpl extends sumaPOA{
private ORB orb;
public void setORB(ORB orb_val){
orb=orb_val;
}
public int sumar(int primernumero, int segundonumero){
return primernumero+segundonumero;
}
public void shutdown(){
orb.shutdown(false);
}
}
public class SumaServer {
public static void main(String args[]){
try{
ORB orb= ORB.init(args,null);
27
POA rootpoa=POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
http://www.programacion.com.py/escritorio/javaescritorio/corbaconjavaeidl
2/11
5/10/2015
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Corba con Java e IDL – Programación POA rootpoa=POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
SumaImpl sumaImpl=new SumaImpl();
sumaImpl.setORB(orb);
org.omg.CORBA.Object ref=rootpoa.servant_to_reference(sumaImpl);
suma href=sumaHelper.narrow(ref);
org.omg.CORBA.Object objRef=orb.resolve_initial_references("NameService");
NamingContextExt ncRef=NamingContextExtHelper.narrow(objRef);
String name="Suma";...
Regístrate para leer el documento completo.