CORBA

CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones.

El Object Request Broker (ORB), es un componente fundamental de la arquitectura CORBA y su misión es facilitar la comunicación entre objetos.

OMG ha definido bastantes correspondencias con lenguajes de programación populares, como: C, C++, COBOL, Java, Smalltalk o Ada.

Si el OBV ha sido recibido desde el lado remoto, el código necesario debe ser conocido a priori por ambas partes o descargado dinámicamente por el emisor.

Estos campos pueden ser los OBVs por sí mismos, formando listas, árboles o gráficos arbitrarios.

Por otro lado el cliente obtiene una referencia de uno o más objetos remotos en el servidor e invoca a sus métodos.

Describiendo las interfaces IDL, un ORB genera automáticamente código en el lenguaje seleccionado para realizar la integración de las aplicaciones distribuidas.

Una vez completada la invocación, el control y los valores de retorno son devueltos al cliente.

Algunos de los fallos se deben a la implementación y el proceso por el que CORBA fue concebido como un estándar y los problemas que se surgieron en referencia a la política de negocio al implementar un software estandarizado.

La especificación inicial de CORBA definía tan solo el IDL, y no la interoperabilidad entre los lenguajes.

Esto hace que los accesos locales sean tan complicados como serían en el escenario remoto más complejo.

Aunque cabe decir que CORBA no ofrece restricciones en la complejidad de las llamadas.

La creación del estándar CORBA es citado a menudo por su proceso de diseño por comité.

Así, el estándar se creó teniendo en cuenta todas las propuestas sin importar la coherencia entre estas.

Esto hizo que la especificación fuera muy compleja, cara de implementar y a menudo ambigua.

A su vez las implementaciones se vieron obstaculizadas por la tendencia general para detallar las normas y la práctica común de comprometerse a adoptar todas ellas, lo que normalmente generaba APIs incoherentes y de difícil utilización.

Sin embargo, si el cliente está detrás de un cortafuegos muy restrictivo o un entorno con servidor proxy transparente que sólo permite conexiones HTTP hacia el exterior por el puerto 80, la comunicación puede llegar a ser imposible, salvo que el servidor proxy en cuestión permita el método CONNECT HTTP o conexiones con sockets.

Implementaciones CORBA recientes, sin embargo, soportan SSL y pueden ser fácilmente configurados para trabajar en un solo puerto.