En esta página: Objetos CORBA CORBA (Common Object Request Broker Architecture) define un marco de trabajo independiente del lenguaje para que los objetos se llamen a métodos unos de otros. Antes de que un objeto pueda llamar a un método de otro objeto, primero debe obtener una referencia al objeto. El objeto destino puede usarse de diferentes formas para hacer que su referencia sea conocida por otros objetos. La forma tradicional es usar el servicio de nombres, como el Common Object Services (COS). Otra forma es publicar la referencia del objeto en un servidor LDAP que soporte el esquema definido en la RFC 2714. Usando el JNDI, el código para usar cualquiera de estas formas es el mismo. Podemos seleccionar el servicio de nombres o directorio a utilizar durante la ejecución seleccionando el contexto inicial a utilizar. El ejemplo mostrado en esta página usa un directorio LDAP. Unir una Referencia a un Objeto CORBA
El siguiente ejemplo primero define un interface, HelloApp usando "Interface Description Language" (IDL). module HelloApp { interface hello { string sayHello(); }; }; Luego define una implementación de este interface, helloServant. class helloServant extends HelloApp._helloImplBase { public String sayHello() { return "\nHello world !!\n" + new java.util.Date(); } } Después, crea un ejemplar de helloServant y lo une al directorio, asignándole el nombre "cn=CorbaHello". // Create and initialize the ORB ORB orb = ORB.init(args, null); // Create the servant and register it with the ORB helloServant helloRef = new helloServant(); orb.connect(helloRef); // Let service provider use the ORB env.put("java.naming.corba.orb", orb); // Create the initial context DirContext ctx = new InitialDirContext(env); // Bind the object to the directory ctx.bind("cn=CorbaHello", helloRef); Después de que el objeto se haya unido al directorio, una aplicación puede buscarlo usando el siguiente código. // Look up and narrow the object HelloApp.hello h2 = HelloApp.helloHelper.narrow( (org.omg.CORBA.Object)ctx.lookup("cn=CorbaHello")); // Invoke the method System.out.println(h2.sayHello()); Para ejecutar este ejemplo, debemos hacer lo siguiente.
Cuando posteriormente busquemos este objeto desde el directorio, éste devolverá el objeto CORBA helloServant unido. Puedes ir a la lección Leer Objetos desde el Directorio para ver un ejemplo.
|