Está en la página 1de 2

CORBA Vs.

RMI

CÓDIGO DE CORBA EN LENGUAJE C++

#include <iostream>
#include <corba.h>

// Interfaz del objeto remoto


class MyObject {
public:
virtual int add(int a, int b) = 0; };

// Implementación del objeto remoto


class MyObjectImpl : public MyObject {
public:
int add(int a, int b) {
return a + b; } };

int main() {
// Inicializar el ORB
CORBA::ORB_var orb = CORBA::ORB_init(nullptr, nullptr);

// Registrar el objeto remoto


CORBA::Object_var obj = orb->resolve_initial_references("MyObject");
MyObject_var my_object = MyObject::_narrow(obj);

// Invocar el método remoto


int result = my_object->add(10, 20);

// Imprimir el resultado
std::cout << "El resultado es: " << result << std::endl;

// Finalizar el ORB
orb->destroy();

return 0;
}

CÓDIGO DE RMI EN LENGUAJE JAVA

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

// Interfaz del objeto remoto


public interface MyObject {
int add(int a, int b);
}

// Implementación del objeto remoto


public class MyObjectImpl implements MyObject {
@Override
public int add(int a, int b) {
return a + b;
}

public static void main(String[] args) throws Exception {


// Registrar el objeto remoto
Registry registry = LocateRegistry.getRegistry();
registry.rebind("MyObject", new MyObjectImpl());

// Invocar el método remoto


MyObject my_object = (MyObject) registry.lookup("MyObject");
int result = my_object.add(10, 20);

// Imprimir el resultado
System.out.println("El resultado es: " + result);
}
}
DIFERENCIAS ENTRE AMBOS CÓDIGOS

CORBA y RMI son dos tecnologías de invocación remota de métodos (RMI) que permiten a los
objetos en diferentes máquinas comunicarse entre sí, sin embargo, hay algunas diferencias
clave entre el código de implementación de CORBA y RMI.

 El código de implementación de RMI es mucho más simple que el código de


implementación de CORBA ya que utiliza un único lenguaje de programación, Java, para la
interfaz y la implementación del objeto.

 CORBA utiliza el IDL para definir la interfaz de un objeto, mientras que RMI utiliza Java
para definir la interfaz de un objeto.
 CORBA genera código de implementación para el objeto en el lenguaje de programación
deseado, mientras que RMI utiliza Java para implementar el objeto.
 CORBA utiliza un ORB para gestionar la comunicación entre los objetos, mientras que RMI
no utiliza un ORB.

También podría gustarte