Sistemas operativos modernos
nocido basado en objetos en tiempo de ejecución es CORBA (Arquitectura Común de Agente de Solicitud de Objetos; Common Object Request Bwker Architecturé) (Vinoski, 1997). COR BA es un sistema cliente-servidor en el que los procesos cliente en máquinas cliente pueden in vocar operaciones con objetos situados en máquinas servidoras (quizá remotas). CORBA se diseñó para un sistema heterogéneo con diversas plataformas de hardware y sistemas operativos, programado en varios lenguajes. Para que un cliente en una plataforma pueda invocar a un ser vidor en una plataforma distinta, se interponen agentes de solicitud de objetos (ORB; Object Request Brokers) entre el cliente y el servidor para hacerlos compatibles. Los ORBs desempe ñan un papel importante en CORBA, e incluso son el origen de su nombre. Cada objeto CORBA se define mediante una definición de interfaz en un lenguaje llama do IDL (Lenguaje de Definición de Interfax; Interface Definition Language), el cual indica qué métodos exporta el objeto y qué tipos de parámetros espera cada uno. La especificación IDL puede incorporarse por compilación a un procedimiento de módulo cliente y almacenarse en una biblioteca. Si un proceso cüente conoce con antelación que necesitará acceder a cierto objeto, se enlaza con el código de módulo de cliente de ese objeto. La especificación IDL tam bién puede incorporarse por compilación en un procedimiento de esqueleto que se usa en el servidor. Si no se sabe con anticipación cuáles objetos CORBA tendrá que usar un proceso, puede efectuarse una invocación dinámica, aunque el funcionamiento de esto rebasa el alcan ce de nuestra explicación. Cuando se crea un objeto CORBA, también se crea una referencia a él, misma que se de vuelve al proceso creador. Esta referencia es el mecanismo que usa el proceso para identificar el objeto en invocaciones subsiguientes de sus métodos. La referencia puede pasarse a otros pro cesos o almacenarse en un directorio de objetos. Para invocar un método y aplicarlo a un objeto, un proceso cliente deberá obtener primero una referencia al objeto. La referencia puede provenir de manera directa del proceso creador o, lo que es más común, se puede buscar por nombre o por función en algún tipo de directorio. Cuando el proceso cliente tiene la referencia al objeto, empaca los parámetros de las llamadas al método en una estructura de datos apropiada y luego se pone en contacto con el ORB clien te. A su vez, el ORB cliente envía un mensaje al ORB servidor, que invoca propiamente el mé todo y lo aplica ai objeto. El mecanismo general es similar a RPC. La función de los ORBs es que el código del cliente y del servidor no puedan ver lodos los detalles de bajo nivel de la distribución y la comunicación. En particular, los ORBs ocultan al cliente la ubicación del servidor, si éste es un programa binario o un script, en qué hardware y en qué sistema operativo se ejecuta el servidor, si el objeto está acfivo en la actualidad, y có mo se comunican entre sí los dos ORBs (por ejemplo, TCP/IP, RPC, memoria compartida, etcétera). En la primera versión de CORBA, no se especificaba el protocolo entre el ORB cliente y el ORB servidor. Por ello, cada proveedor de ORB ufilizaba un protocolo disfinto y no podía haber comunicación entre dos ORBs de disfinto fabricante. En la versión 2.0, se especificó el protocolo. Para comunicarse por Internet, el protocolo se denomina IIOP (Protocolo Inter- Orb de Internet; Internet InterOrb Protocol). Para poder usar con sistemas CORBA objetos que no fueron escritos para CORBA, cada objeto puede equiparse con un adaptador de objeto. Se trata de una envoltura que se encar-
RkJQdWJsaXNoZXIy MjI4NDcx