320 likes | 513 Vues
Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822. CORBA: Un Modelo de Objetos Di stribuidos. Prof. Yudith Cardinale Sep – Dic 2001. Introducción.
E N D
Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822 CORBA:Un Modelo de ObjetosDistribuidos Prof. Yudith Cardinale Sep – Dic 2001
Introducción • CORBA (Common Object Request Broker Architecture) es un estándard para construir objetos distribuidos. • Propuesto por el Object Management Group (OMG)
Object Management Group (OMG) • Es un consorcio internacional que promueve el desarrollo de software orientado por objetos • El objetivo del OMG es proveer un marco de arquitectura común para permitir la interacción de objetos en plataformas heterogéneas y distribuidas.
Object Management Group (OMG) • Fue fundado en 1989. • Inicialmente estuvo conformado por 8 compañías: 3Com Corpotation, American Airlines, Canon Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems y Unisys Corporation. • Actualmente hay más de 500 miembros
Object Management Group (OMG) • El OMG no realiza trabajos de desarrollo e implementación, más bien se basa en la tecnología existente ofrecida por sus miembros. • Propone especificaciones para el desarrollo de computación distribuida basada en objetos: OMA (Object Management Architecture). • Los miembros pueden proponer especificaciones, luego de un proceso de revisión y votación podrán incorporarse al OMA.
Object Management Architecture (OMA) • Es un modelo conceptual y una arquitectura de referencia sobre la cual se pueden construir aplicaciones. • Define, a un nivel de abstracción alto, varias “facilidades” necesarias para el desarrollo de aplicaciones distribuidas orientadas por objetos. • Consiste de 4 componentes.
Common Facil Object Management Architecture (OMA) APP. Objects Object Request Broquer (ORB) Object Services
Object Management Architecture (OMA) • ORB es el bus de comunicación entre objetos. La tecnología del OMG para su ORB es CORBA. • Object Servicescomprenden un conjunto de interfaces de bajo nivel para la manipulación de objetos: naming, ciclo de vida y transacciones (COSS 1 y 2) • Common Facilities proveen interfaces estandarizadas para aplicaciones comunes (verticales y horizontales) • Application Objects reflejan la necesidad para el desarrollo de aplicaciones independientes.
Enfoque CORBA • Es un enfoque para desarrollar objetos distribuidos sobre múltiples plataformas y lenguajes. • Especifica protocolos básicos (GIOP/IIOP ) usados para tener acceso remoto a los objetos. • CORBA 1.1 (1991) propone implementación específica de ORB • CORBA 2.0 (1994) propone interoperabilidad entre ORBs. • CORBA 3.0 (1997) incrementa interoperabilidad y funcionalidad
INTERFACE REPOSITORY IDL COMPILER IMPLEMENTATION REPOSITORY Enfoque CORBA Componentes en el modelo de referencia In args CLIENT OPERATION() OBJECTS out args + return value DII IDL STUBS DSI ORB INTERFACE IDL SKELETON OBJECT ADAPTER ORB CORE GIOP/IIOP
Enfoque CORBA: IDL • IDL: Interface Definition Language • Es un lenguaje declarativo • Define tipos de objetos especificando sus interfaces estáticas • Provee encapsulamiento en dos niveles: tipos de datos y objetos. • Sintaxis derivada de C++
Enfoque CORBA: IDL // Ejemplo de especificación de IDL: mybank.idl Module BANK { interface BankAccount { enum account_kind {checking,saving}; //types exception account_not_available {string reason}; //exceptions exception incorrect_pin{}; readonly attribute float balance; //atributes attribute account_kind what_kind_of_account; //operations void access (in string account, in string pin) raises (account_not_available, incorrect_pin); void deposit (in float f, out float new_balance) raises (account_not_available); void withdraw (in float f, out float new_balance) raises (account_not_available); } }
Enfoque CORBA Client REQUEST DII IDL Stub ORB Core Object Implementation DSI IDL Sk ORB Interface Object Adapter ORB Core
Enfoque CORBA • IDL Stubs: • Funciones generadas desde la interfaz IDL para “enlazarlas” a los clientes • Provee una interfaz de invocación estática • Dynamic Invocation Interface (DII) • Permite especificar y construir requerimientos en tiempo de corrida. • Operaciones: create_request, invoke, send, get_response
Enfoque CORBA • IDL Skeleton: • Funciones generadas desde la interfaz IDL para “enlazarlas” a las implementaciones de objetos • Dynamic Skeleton Interface (DSI) • Análogo al DII del lado de la implementación de objetos • Puede recibir invocaciones estáticas o dinámicas desde los clientes
Enfoque CORBA • ORB Interface: • Provee funciones para acceder directamente al ORB core desde los clientes y desde las implementaciones de objetos • Su interfaz no depende de la interfaz de los clientes ni de las interfaces de las implementaciones de objetos • Object Adapter: • Provee funciones para instanciar objetos, pasar requerimientos y manipular referencias de objetos • Provee inter-operabilidad
Enfoque CORBA • Repositorio de Interfaces (Interface Repository): • Provee persistencia de objetos • Su información permite que un programa encuentre un objeto cuya interfaz no conoce en tiempo de compilación • Repositorio de Implementaciones (Implementation Repository): • Contiene información que permite al ORB core localizar y activar implementaciones de objetos
Enfoque CORBA HTTP ORB CORBA BUS CORBA BUS ORB ORB ORB ORB ORB ORB Oracle Illustra mSQL NOWs MPP
Implementaciones de ORBs • Residente en el cliente y en la implementación de objeto • Basado en un Servidor • Basado en el Sistema • Basado en Librerías
Modelos de Interacción de CORBA • Síncronas: RPC, protocolo at-most-once, soporta invocaciones estáticas y dinámicas • Asíncronas: semánticas de operaciones one-way y best-effort, soporta invocaciones estáticas y dinámicas • Síncrona diferida: protocolo at-most-once, sólo soporta invocaciones dinámicas
Estructura de un Adaptador de Objetos • Funciones: • Medio de comunicación entre implementaciones de objetos y ORB core • Generación e interpretación de referencias a objetos • Invocación de métodos y seguridad de interacción • Registro, activación y desactivación de objetos • Demultiplexar requerimientos • Pueden ser de propósito específico • Administra objetos compartidos • Provee Persistencia de objetos • Extiende los servicios del ORB core
Estructura de un Adaptador de Objetos Object Implementation Interface A methods Interface B methods Object Adapter Interface Dynamic Skeleton Interface A Skeleton Interface B Skeleton ORB core
Estructura de un Adaptador de Objetos • Tiene tres interfaces diferentes: • Una interfaz privada para el IDL skeleton • Una interfaz privada para el ORB core • Una interfaz pública para las implementaciones de objetos
Estructura de un Adaptador de Objetos • Políticas de Activación de Objetos: • Shared Server: múltiples objetos implementados en el mismo módulo • Unshared Server: un nuevo objeto se inicia cada vez que un requerimiento es ejecutado • Server-per-Method: un nuevo objeto se inicia cada vez que se invoca un método. • Persistent Server: objeto constantemente activo
Estructura de un Adaptador de Objetos • Ejemplos de Adaptadores de Objetos: • Basic Object Adapter (BOA): define un adaptaor de objeto que puede ser usado por muchos ORBs con implementaciones convencionales. Usa políticas shared, unshared y per-method. Poca capacidad de persistencia. • Library Object Adapter: usado por objetos que tienen implementaciones de librerías. Maneja persistencia pero no soporta activación ni autentificación.
Estructura de un Adaptador de Objetos • Ejemplos de Adaptadores de Objetos: • Object-Oriented Database Adapter: usa una conexión a una base de datos orientada por objetos. Provee persistencia dentro de la base de datos. • Portable Object Adapter (POA): usado para que objetos con diferentes ORBs puedan interactuar.
Estructura de un Adaptador de Objetos • Inter-operabilidad: Objects “A” Objects “B” Objects with another ORB POA Special Adap ORB core Gateway
Servicios y Facilidades • Objetos de aplicaciones: resuelven problemas particulares de usuarios particulares • CORBA Facilities: Servicios de nivel intermedio. Verticales y Horizontales • CORBA Services: Servicios básicos para aplicaiones • CORBA core e interoperabilidad
Servicios y Facilidades • CORBA Services: • Ciclo de vida de los objetos • Manejo de nombres • Persistencia • Notificación de eventos • Concurrencia y transacciones • Seguridad • Servicio de tiempo
Servicios y Facilidades • CORBA Facilities: • Horizontales: facilidades comunes • Interfaz con el usuario • Administración de la información • Administración del sistema • Administración de tareas
Servicios y Facilidades • CORBA Facilities: • Verticales: facilidades particulares • Financieras • De telecomunicaciones • Audio y video • Petroquímica
Servicios y Facilidades ORB Services Trader Security ……… Naming Persistence WorkFlow Horizontal Facilities Standard Interfaces i.e. Frameworks System Management HPcc? Vertical Facilities ………….. Oil & Gas Banking DMSO Modeling and simulation Manufacturing Imagery …… ……