## La Arquitectura CORBA

En esta sección, obtendrás información adicional detallada sobre CORBA, IDL y el prometido Java IDL ORB.

Cualquier relación entre objetos distribuidos tiene dos lados: el cliente y el servidor. El servidor proporciona un interface remoto, y el cliente llama a un interface remoto. Estas relaciones son comunes en la mayoría de los estándares sobre objetos distribuidos, incluyendo RMI y CORBA. Observa que en este contecto, los términos cliente y servidor definen niveles de objetos en vez de niveles de aplicación -- cualquier aplicación podría ser un servidor para algunos objetos y un cliente para otros. De hecho, un sólo oobjeto podría ser el cliente para un interface proporcionado por un objeto remoto y al mismo tiempo implementar un interface para ser llamado remotamente por otros objetos.

Esta figura muestra cómo un método de un objeto distribuido es compartido entre un cliente CORBA y un servidor para implementar la clásica aplicación "Hello World".

On the client side, the application includes a reference for the remote object. The object reference has a stub method, which is a stand-in for the method being called remotely. The stub is actually wired into the ORB, so that calling it invokes the ORB's connection capabilities, which forwards the invocation to the server.

En el lado del servidor, el ORB usa código esqueleto para traducir la invocación remota en una llamada a método sobre un objeto local. El esqueleto traduce la llamada y cualquier parámetro a su forma específico de implementación y llama al método que está siendo invocado. Cuando el método retorna, el código del esqueleto transfoma los resultados o errores y los devuelve al cliente mediante los ORBs.

Entre los ORBs, la comunicación se procesa mediante el signifiado de un protocolo compartido, IIOP-- Internet Inter-ORB Protocol. IIOP, que está basado en el protocolo estándard de Internet TCP/IP, define como los ORBs compatibles con CORBA pasan la información. Como CORBA e IDL, El estándard IIOP está definido por el OMG, Object Management Group.

Además de estas sencullas capacidades de objetos distribuidos, los ORBs compatibles con CORBA pueden proporcionar un gran número de servicios opcionales definidos por el OMG. Esto incluye servicios de búsqueda de objetos por nombre, mantenimiento de la persistencia de objetos, soporte de procesamiento de transaciones, permitir mensajería, y muchas otras capacidades úitles. Varios de los ORBs Java de terceras partes soportan algunas o todas de estas capacidades adicionales. El ORB proporcionado con Java IDL sólo soporta un servicio adicional, la habilidad para localizar objetos por el nombre.

Ozito