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.
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:
Ventajas:
Gran cantidad de servicios.
Buena arquitectura orientada a tiempo real.
Limpia estructura C++.
Alta frecuencia de transmisión de datos CORBA.
Gran tamaño de la librería estática ORB, a causa de ACE.
Relativamente alta latencia de RPC.
Ventajas:
Relativamente simple.
Solo permite C, Construcciones basadas en estructuras y punteros, se necesitan tests explícitos para excepciones.
Baja frecuencia de transmisión de datos CORBA.
Ventajas:
Compromiso entre estructura TAO C++ y la simplicidad de ORBit.
Relativamente alta latencia en RPC (como TAO).
Baja frecuencia de transmisión de datos CORBA.