CORBA(Common Object Request Broker Architecture)

¿Qué es CORBA?

CORBA define la infraestructura para la arquitectura OMA (Object Management Arquitecture) de OMG(Object Management Group), especificando los estándares necesarios para         la invocación de métodos sobre objetos en entornos heterogéneos.      

        Los entornos heterogéneos son aquellos en los que las arquitecturas que         constituyen el entorno pueden ser sistemas Microsoft Windows, máquinas Unix de         diferentes fabricantes (GNU/Linux entre otros) e inclusos sistemas como MacOS o         OS/2. Y es más, dentro de la heterogeneidad también se incluyen los sistemas         de comunicaciones (protocolos de comunicación como TCP/IP, IPX ...) o los         lenguajes de programación utilizados en las diferentes arquitecturas.      

        CORBA define su propio modelo de objetos, basado en la definición de las         interfaces de los objetos mediante el lenguaje IDL.      

        De esta forma se logra una abstracción de la heterogeneidad que permite que         el uso de CORBA no sea nada complejo. CORBA sigue una metodología         concreta y fácil de seguir.      

        CORBA ha logrado parte de su éxito a la clara separación entre la         interfaz de los objetos y la implementación de los mismos. Las interfaces se         definen utilizando el lenguaje IDL, cuya principal característica es su alto         nivel de abstracción, lo que le separa de cualquier entorno de desarrollo         específico. Para la implementación de los objetos se puede utilizar cualquier         lenguaje de programación que proporcione enlaces con el lenguaje IDL.         Para que un lenguaje de programación se pueda utilizar desde CORBA,         debe tener definida la forma de enlazarse con IDL.      

        De esta forma, y a partir de una especificación de las interfaces en IDL,         se generan unos cabos (proxies) en el lenguaje elegido que permiten el acceso a         la implementación de los objetos desde la arquitectura CORBA.      

        CORBA es un estándar creado con la idea de una distribución de         los sistemas basada en objetos. Con CORBA se pretende definir una arquitectura         que especifique cómo se crean los objetos y cómo se accede a sus funcionalidades.             

Implementaciones de CORBA

        A la hora de usar CORBA se encuentran varias opciones en la         implementación a usar. Las principales implementaciones libres son TAO, ORBit y MICO.         Después de un estudio realizado por ELSAG, que es miembro del consorcio         del proyecto, la elección fue la de usar la implementación de TAO. Conclusiones a las que llegaron:

TAO

Ventajas:

  • Gran cantidad de servicios.

  • Buena arquitectura orientada a tiempo real.

  • Limpia estructura C++.

  • Alta frecuencia de transmisión de datos CORBA.

  Inconvenientes:

  • Gran tamaño de la librería estática ORB, a causa de ACE.

  • Relativamente alta latencia de RPC.

ORBit

Ventajas:

  • Relativamente simple.

Inconvenientes:

  • Solo permite C, Construcciones basadas en estructuras y punteros, se necesitan tests explícitos para excepciones.

  • Baja frecuencia de transmisión de datos CORBA.

MICO

Ventajas:

  • Compromiso entre estructura TAO C++ y la simplicidad de ORBit.

Inconvenientes:

  • Relativamente alta latencia en RPC (como TAO).

  • Baja frecuencia de transmisión de datos CORBA.