CORBA es una arquitectura y especificación para sistemas distribuidos que permite a los programas invocar métodos en objetos remotos como si fueran objetos locales. Define un Object Request Broker (ORB) como el middleware que facilita la comunicación entre clientes y servidores, manejando la localización de objetos, la invocación de métodos y la marshalling/unmarshalling de datos. Utiliza un Interface Definition Language (IDL) para describir las interfaces de los objetos, lo que permite la independencia del lenguaje de programación y del sistema operativo subyacente. Esto significa que un cliente escrito en Java puede invocar un método en un objeto servidor escrito en C++ que se ejecuta en una máquina diferente.

Aunque su pico de popularidad fue en los años 90 y principios de los 2000, CORBA fue ampliamente adoptado en sistemas empresariales complejos y de misión crítica. Ejemplos incluyen sistemas de telecomunicaciones, banca, defensa y aeroespaciales. Productos como JacORB (Java), TAO (C++) y omniORB (C++) son implementaciones de ORB que permitieron construir estos sistemas. Aunque ha sido en gran medida suplantado por tecnologías más ligeras como REST y gRPC para nuevos desarrollos, muchos sistemas legacy críticos aún dependen de CORBA para su interoperabilidad distribuida.

Para un arquitecto, CORBA representa una solución robusta para la interoperabilidad heterogénea, pero con una curva de aprendizaje y complejidad significativas. Su modelo de objetos distribuidos y la generación de stubs/skeletons a partir de IDL ofrecían una fuerte tipificación y contratos de interfaz claros, lo cual es valioso en sistemas grandes y estables. Sin embargo, los trade-offs incluyen la complejidad de la configuración, la gestión de versiones de IDL, y un rendimiento que a menudo era inferior al de soluciones más modernas debido a la sobrecarga del ORB y la serialización. La decisión de usar o mantener CORBA hoy en día suele estar ligada a la integración con sistemas legacy existentes, sopesando los costos de migración frente a los beneficios de adoptar tecnologías más ágiles y con menor huella.