JAVA RMI

The Java Remote Method Invocation

MENU

Alternativas

¿RMI, IDL, RPC, CORBA, COM, DCOM?
Como era de esperar, existen muchas alternativas a RMI, algunas simplemente son capaces de reemplazar a RMI propiamente tal, mientras que otras siguen una linea paralela y complementan las falencias de RMI.

En esta sección hablaré de algunas de las alternativas mas conocidas presentes en el mercado actual.



CORBA (Common Object Request Broker Arquitecture)
Es, en resumen, un estandar para la comunicación de objetos a través de procedimientos/métodos remotos. Fue creado por un consorcio conocido como OGM (Object Management Group).

La diferencia principal entre RMI y CORBA, es que RMI es un sistema puramente JAVA, mientras que CORBA es un standar capaz de comunicar diferentes lenguajes. La parte medular de CORBA es conocida como ORB ("Object Request Broker"), y es quien produce la conectividad en un sistema CORBA.

CORBA es claramente un sistema estandar para comunicacion remota, por lo que las compañias crean sus propios ORB, que traducen sus propios objetos en Objetos Estandar. Algunos ejemplos son:
  • Visibroker de Borland.
  • Component Broker de IBM.
  • Java IDL / ORB de Sun.
Este ultimo, por tratarse de un hermano mayor de RMI, será tratado a continuacón



IDL (Interface Definition Language)
Es la version JAVA de CORBA, y tal como su nombre lo indica, define interfaces que seran utilizadas en un ambiente CORBA. Para soportar la interaccion entre objetos de diferentes programas, Java IDL provee su propio ORB, que encarga de traducir los objetos java al estandar. Un ejemplo de una sentencia IDL (tomado de la pagina de sun), seria:

module unejemplo {
    interface Saludos {
        string decirHola();
    };
};

Desde luego en IDL también pueden ser definidos cualquier estructura esperada en un lenguaje de programación: arreglos, funciones con parámetros, secuencias,etc.

Actualmente IDL, esta disponible en todas las versiones de JDK, y cada vez se amplia su uso, dando la posibilidad a JAVA de ingresar en un mundo cada vez mas heterogeneo.



DCOM (Distributed Component Object Model)
Originalmente existia lo que se denominaba Component Object Model (COM), que permitia comunicacion entre los procesos/objetos, pero estaba acotado a los limites de una sola maquina. DCOM nace como una extension de COM, y permite la misma comunicacion, pero esta vez acotado a los limites de una red.

Es un producto desarrollado por una compañia llamada Microsoft, que utiliza RPC para permitir la comunicacion de objetos COM, transparentemente, a traves de una red. Estuvo disponible por primera vez en 1995 con el "release" inicial de Windows NT 4.

DCOM, posee las ventajas de los sistemas descritos anteriormente ya que esta basado en CORBA para trabajar en ambientes heterogeneos, sin embargo, diferencia de CORBA, quien puede correr en cualquier sistema operativo, DCOM esta implementado solo para Windows... ¬_¬