Arquitectura de CORBA
Arquitectura de CORBA
Arquitectura de CORBA
Introduccin
CORBA (Common Object Request Broker Architecture) es un estndar definido por Object Management Group (OMG). Es un diseo de middleware que permite que los programas de aplicacin se comuniquen unos con otros con independencia de sus lenguajes de programacin, sus plataformas hardware y software, las redes sobre las que se comunican y sus implementadores.
Permite la invocacin de mtodos de un objeto por objetos que residen en diferentes mquinas en entornos heterogneos. Estos objetos pueden estar desarrollados en diferentes lenguajes.
Objetivos
Portabilidad
Hardware distinto Redes distintas Sistemas operativos distintos Lenguajes de programacin distintos
Objetivos
Transparencia de distribucin
Transparencia de localizacin
El cliente no necesita saber donde ejecuta el servicio. El servicio no necesita saber donde ejecuta el cliente.
Objetivos
Activacin de Objetos
Objetos
remotos no tienen que estar en memoria permanentemente. Se hace de manera invisible para el cliente.
Comunicacin flexible
tipo invocacin de mtodos / RPC Asncrona: sin respuesta Mltiples modelos de comunicacin Invocacin esttica Invocacin dinmica
Arquitectura de CORBA
Arquitectura - DII
Dinamic Invocation Interface
Es una Interfaz CORBA que permite la construccin dinmica de invocaciones en tiempo de ejecucin para un determinado objeto remoto. Sirve para dar ms flexibilidad al cliente, ya que no necesita conocer el interfaz de los objetos a los que va a invocar en tiempo de compilacin puede:
Descubrir el interfaz de los objetos Construir la invocacin en tiempo de ejecucin
Arquitectura - DII
Dinamic Invocation Interface
En vez de utilizar una llamada a una funcin determinada de un objeto concreto, que el cliente puede especificar a travs de una llamada o conjunto de ellas:
El
Arquitectura - DII
Dinamic Invocation Interface
de Interfaces (IR) De cara al servidor la invocacin es idntica a una que llega a travs de la interfaz esttica, pero dentro del cliente se logra una flexibilidad fundamental en arquitecturas complejas y dinmicas.
Es una interfaz esttica a los servicios declarados en las interfaces IDL. Para el cliente todas las llamadas parecen locales. El cliente puede tener tantos stubs como interfaces IDL existan. Generado a partir del IDL en el lenguaje de programacin del cliente (C, C++, Java, Smalltalk, ADA, ) por un compilador IDL.
Acta como proxy (representante) del objeto remoto, realizando las siguientes funciones:
La invocacin de mtodos remotos, incluyendo el marshalling (Convertir las estructuras de datos en un flujo de bytes, conservando el orden de los bytes entre distintas arquitecturas). La recepcin de respuestas, incluyendo el unmarshalling. (Proceso opuesto al Marshalling).
Es un conjunto de libreras o APIs que definen funciones del ncleo de ORB y que pueden ser accedidas por el cdigo cliente. Algunas de las funciones que define son las siguientes: Brinda acceso al repositorio de interfaces
Recuperar
la informacin sobre una interfaz (metadatos) Permite descubrir en run-time los mtodos que ha de ser invocados
Repositorio de Interfaces
Base de datos en tiempo de ejecucin con versiones mquina de las interfaces IDL (y posiblemente informacin asociada). Permite obtener y modificar dinmicamente las descripciones (interfaces, mtodos y parmetros) de todos los objetos registrados. Es un mecanismo de auto-descripcin (metadatos) de los objetos.
Repositorio de Interfaces
Repositorios de Interfaces de distintos ORBs pueden formar federaciones. El Repositorio de Interfaces en si es un objeto ms, accesible a travs de un ORB.
Conjunto de libreras o APIs que da soporte local, idntico al que proporciona esta interfaz en el lado del cliente.
Arquitectura - Skeleton
Skeleton (Lado del Servidor)
Es el representante esttico del cliente en el servidor. Se encarga de hacerle creer al servidor que todas las llamadas que recibe son locales. Es generado a partir del IDL por un compilador seleccionado capaz de interpretar IDL. Es el encargado de realizar el unmarshalling de las invocaciones del cliente.
Arquitectura - DSI
Dinamic Skeleton Interface
Da mecanismos de asociacin en run-time a servidores que necesitan manejar peticiones de componentes que no tienen stubs.
Arquitectura - DSI
Dinamic Skeleton Interface
Son muy utilizados en la construccin de Bridges o Puentes entre los Object Request Brokers (ORB).
Se pueden usar para generar dinmicamente diferentes objetos. Es el equivalente en el servidor al DII del cliente.
Arquitectura - OA
Object Adapter
Cumple la funcion de ser el intermediario entre el ncleo del ORB y los diferentes objetos. Se encarga de instanciar y activar los objetos servidores, y de crear las referencias del objeto.
Mapea referencias de objetos a IDs de implementaciones de objetos.
Arquitectura - OA
Invoca el mtodo apropiado cuando llega una peticin remota (upcall). Registra objetos en el repositorio de implementaciones. ortable Object Adapter: adaptador de objetos P estndar desde 98.
Su proposito prinicipal es brindar portabilidad. Introduce la nocin de Gestor de Sirvientes (Servant Manager)
Repositorio de Implementaciones
Proporciona un registro en run-time de las clases, los objetos instanciados y los IDs que un servidor soporta. Tambin puede almacenar otro tipo de informacin (trazas, datos administrativos).
ORB (Object Request Broker) se encarga de proporcionar una interfaz que incluye las funcionalidades:
Operaciones
que permiten su arranque y parada. Operaciones para la conversin entre referencias a objetos remotos y cadenas de texto. Operaciones para obtener listas de argumentos para las llamadas que emplean invocacin dinmica.
Arquitectura de CORBA