ÍNDICE DEL CURSO ■ CORBA ➨ ■ Antecedentes históricos. Introducción a CORBA, OMG y OMA. Arquitectura CORBA. Angel García Baños Escuela de Ingeniería de Sistemas y Computación Universidad del Valle 27 de Noviembre de 2002 CORBA 3 AGB 2 INTRODUCCIÓN A CORBA, OMG y OMA ■ INTRODUCCIÓN A CORBA, OMG Y OMA ■ ■ ¿Qué es CORBA? ¿Quién es OMG? OMA (Object Management Architecture). – Core Object Model. – Reference Model. ■ ■ ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB ¿Qué es CORBA? INTRODUCCIÓN A CORBA, OMG y OMA ➨ ■ ■ ■ ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). ■ ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB 5 CORBA es la especificación de una arquitectura, diseñada por el grupo OMG, para facilitar la interacción remota de aplicaciones. – Es una especificación. OMG no ofrece implementaciones (código). – Es una arquitectura. Está basada en un modelo de programación orientado a objetos (OMA). – Core Object Model. – Reference Model. ■ 4 ■ Ya salió la versión 3.0 de CORBA. – La especificación completa ocupa muchos libros y es difícil de entender. Está en continua evolución. – Después de obtener una visión global, nos centraremos en los aspectos mas importantes que permiten empezar a crear aplicaciones. 6 AGB ¿Quién es OMG? INTRODUCCIÓN A CORBA, OMG y OMA ■ ➨ ■ ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). ■ ■ – Core Object Model. – Reference Model. ■ ■ ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB 7 ¿Quién es OMG? ■ ■ AGB ■ Organizado en grupos internos: Estándares aprobados por votación (RFI, RFP). Se chequean inconsistencias internas. AGB ■ ■ AGB ■ – Promoción del uso de tecnología OO para desarrollo de software en general. – Definición de un modelo y una interfase para el desarrollo y uso de grandes aplicaciones distribuidas (procesamiento distribuido abierto) basadas en tecnología OO. – Promover cooperación para implantar estándares. – Otros objetivos son crear consenso acerca de: ■ – La producción modular de software. – La reutilización del software. – La integración del software realizado por diferentes personas, sobre distinto hardware y para distintos sistemas operativos. – El mantenimiento de ese software. – La portabilidad e interoperatividad entre aplicaciones. 10 INTRODUCCIÓN A CORBA, OMG y OMA Objetivos de OMG: ■ El grupo OMG llegó a la conclusión de que la tecnología OO facilita: 9 ¿Quién es OMG? ■ 8 ¿Quién es OMG? – OMG Board. – Architecture Board. – Platform Technology Comittee (Object Services, Common Facilities, Object Analysis and Design, Internet, Japan & Internationalization, Real-Time). – Domain Technology Comittee (Medical, Financial, Telecommunications, Manufacturing, Multimedia & Electronic Commerce, Business). – Special Interest Groups (End User, Security, Metrics). ■ OMG = Object Management Group Creado en 1989. Actualmente conformado por alrededor de 800 compañías de software, hardware y telecomunicaciones (Sun, IBM, 3Com, American Airlines, Hewlett-Packard, Microsoft, Philips, Canon, Data General, Unisys...). El OMG no desarrolla software, sino que se limita a definir y publicar estándares. El desarrollo del software se realiza en cada compañía independientemente. Los términos técnicos relacionados con los objetos. Un modelo de referencia común. Interfases y protocolos normalizados. AGB ■ ➨ – Core Object Model. – Reference Model. ■ ■ ■ 11 ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB 12 OMA (Object Management Architecture) ■ ■ INTRODUCCIÓN A CORBA, OMG y OMA Toda la tecnología definida por OMG (incluyendo CORBA) hace referencia a un modelo de manejo de objetos: el OMA. A su vez, el OMA comprende dos temas: – Core Object Model: define los conceptos que facilitan el desarrollo de aplicaciones distribuidas. Es importante para quien diseña o implementa ORBs. – Reference Model: Define grupos de objetos alrededor del ORB. Es importante para quien diseña aplicaciones CORBA. AGB – Las acciones se consiguen enviando mensajes a los objetos. – Firma (signature) de una acción: el nombre de la operación, los parámetros de entrada y los de salida. – Interfase de un objeto: su conjunto de firmas (las operaciones ofrecidas por el objeto). – Sustituibilidad: un objeto que ofrece una interfase puede sustituirse por otro objeto ofreciendo “similar” interfase. – Herencia: un objeto puede heredar la interfase de otro. AGB ■ ■ » Core Object Model: define como se describen los objetos. – Reference Model: define como interactúan los objetos. ■ ■ ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). ■ Por ejemplo, CORBA extiende la firma incluyendo contexto y excepciones. ■ ■ Profile define extiende (usando herencia) 16 AGB Reference Model (interacción entre objetos) ■ ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). CORBAfacilities (horizontal) Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB Core Object Model Component – Core Object Model: define como se definen los objetos. » Reference Model: define como interactúan los objetos. ■ 14 AGB 15 INTRODUCCIÓN A CORBA, OMG y OMA ■ ■ ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). Core Object Model Su principal objetivo es proporcionar portabilidad e interoperabilidad. Es un modelo clásico OO: ■ ■ 13 Core Object Model (descripción de objetos) ■ ■ 17 Domain Interfaces (vertical industries) Object Request Broker (ORB) CORBAservices ■ ■ ■ Application Objects (nonstandard) AGB ■ El ORB es el núcleo de las comunicaciones. Las aplicaciones no se van a estandarizar. Los servicios son para los desarrolladores de aplicaciones. Las facilidades son para los usuarios finales, para todos los dominios. Las interfases para dominios estandarizan áreas de aplicación. 18 Reference Model ■ Reference Model (CORBAservices) Servicios para los objetos (CORBAservices, COSS): – – – – – – – – – – – – – – – Nombres. Eventos. Ciclo de vida. Relaciones. Externalización. Transacciones. Concurrencia. ■ Licencias. Interrogación. Propiedades. Seguridad. Tiempo. Colecciones. Negocios (páginas amarillas). Persistencia. AGB ■ ■ 19 Reference Model (CORBAservices) ■ Reference Model (CORBAservices) Relaciones (Relationships): permite crear relaciones entre objetos, destruirlas y navegar por ellas. Lo logra definiendo dos nuevas clases de objetos: relaciones y roles. Un rol representa un objeto CORBA en una relación. Una relación se crea pasando un conjunto de roles a una factoría de relaciones. Se definen tres niveles de servicio: – El nivel básico maneja relaciones y roles. – Cuando los objetos están relacionados, forman un grafo. En el grafo aparecen nodos y objetos intermedios. – A un tercer nivel se definen relaciones mas específicas de contenido y de referencia. ■ ■ ■ ■ ■ ■ Externalización (Externalisation): define protocolos y convenciones para externalizar (almacenar) el estado de un objeto e internalizarlo (recuperarlo) dentro del mismo ORB o en otro. Define el formato de los datos externalizados. 21 AGB Reference Model (CORBAservices) ■ Ciclo de vida (Life Cycle): proporciona un marco para la creación, copiado, movimiento y destrucción de objetos. Los objetos que pueden crear otros objetos se llaman factorías. La operación de copia duplica el objeto sin cambiarlo de computador. La operación de movimiento produce la migración de un objeto de un computador a otro (realmente ello solo se puede conseguir en escenarios muy restringidos). Transacciones (Transactions): cuando un cliente hace una serie de peticiones a un servidor, este servicio las dota de propiedades ACID (Atomicidad, Consistencia, aIslamiento y Durabilidad). Las transacciones pueden ser planas o anidadas (es decir, formadas a su vez de varias transacciones internas). Necesita los servicios de concurrencia y de persistencia, 22 AGB para funcionar. Reference Model (CORBAservices) Concurrencia (Concurrency): permite a un servidor ser accedido por varios clientes simultáneamente, de una manera consistente y coherente. Asegura que tanto los clientes transaccionales como los no-transaccionales sean serializados uno respecto al otro (asegura acceso sin interrupciones). Licencias (Licensing): proporciona facilidades para el manejo de licencias de usuario, para medir el tiempo que el usuario utiliza los objetos bajo licencia y para cobrarle costos. Propiedades (Properties): las propiedades son valores con nombre y tipo, que se pueden asociar dinámicamente a objetos. Colecciones (Collections): proporciona una manera uniforme de agrupar objetos como conjuntos, colas, listas, stacks, etc. AGB Nombres (Naming): permite buscar objetos por su nombre. Ofrece estándares para nombrar objetos, usando contextos y ámbitos. Permite crear federaciones distribuidas de espacios de nombres. Páginas amarillas (Trading): permite buscar objetos por el servicio que prestan. Eventos (Events): se encarga de notificar eventos a los objetos que se hayan suscrito previamente a un canal de eventos. A cada canal pueden estar conectados múltiples productores de eventos y múltiples consumidores de eventos. Cada canal funciona según una política push (el productor comienza la transferencia de un evento hacia el canal) o pull (el consumidor es el que comienza pidiendo un evento). 20 AGB 23 ■ Seguridad (Security): proporciona a la comunicación entre objetos: – Confidencialidad: la información solo puede ser leída por el objeto destinatario. – Integridad: la información no puede ser alterada mientras va en tránsito. – Contabilidad: se guarda registro de las acciones de seguridad realizadas por los usuarios (uso de passwords con éxito y fallidos, uso de protocolos de seguridad, firmas de los mensajes emitidos, etc). – Disponibilidad: los usuarios autorizados no deben ser rechazados por el sistema. AGB 24 Reference Model (CORBAservices) ■ ■ ■ Reference Model Tiempo (Time): proporciona mecanismos para sincronizar relojes en un sistema distribuido. Soporta la noción de tiempo compatible con el tiempo coordinado universal (UTC). Necesita de los servicios de seguridad para funcionar. Interrogación (Query): define interfases para realizar operaciones en colecciones de objetos que tienen una especificación declarativa basada en predicados y cuyo resultado puede ser otra colección de objetos. Permite usar SQL. Persistencia (Persistence): proporciona mecanismos para que los objetos almacenen su estado interno en una memoria no-volátil (disco duro) de una manera independiente del objeto. NOTA: este servicio no está bien ■ – Interfaz de usuario: para acceso del usuario a las aplicaciones y para su presentación (ventanas, imprimir). – Gestión de información: para el modelado, almacenamiento, recuperación e intercambio de información. ■ ■ ■ 26 Aplicaciones: – Las aplicaciones son los clientes y los objetos. Los clientes solicitan servicios a los objetos, que a su vez pueden comunicarse con otros objetos. – No hay ningún estándar en cuanto a la forma de diseñar la aplicación. – Si OMG identifica nuevos dominios de interés, podría estandarizar nuevos servicios para esas aplicaciones (en las interfases de dominios). 27 Reference Model AGB 28 INTRODUCCIÓN A CORBA, OMG y OMA Objetivos del ORB: ■ – Transparencia en la ubicación de los objetos. – Transparencia en la implementación de cada objeto (lenguaje de programación, sistema operativo y hardware). ■ ■ Telecomunicaciones (CORBAtelecoms). Internet (CORBAnet). Negocios, bancos, financieras (CORBAfinance). Fabricación (CROBAmanufacturing). Medicina (CORBAmed). AGB ■ AGB Reference Model Interfases de dominio (orientadas al tipo de aplicación): – – – – – Manejo de agentes estáticos y móviles. 25 Reference Model ■ Internacionalización y manejo del tiempo. Documentos distribuidos (basada en OpenDoc de Apple). – Gestión de sistemas: control, monitoreo, seguridad, configuración, políticas de operación (adición de usuarios, permisos, instalación de programas...). – Gestión de tareas: para la automatización del trabajo. pensado. Se sustituirá por otro que está diseñandose. AGB Facilidades comunes (CORBAfacilities): ■ ■ – Core Object Model. – Reference Model. De este modo, los objetos que ofrecen la misma interfase son sustituibles (aunque puede haber variaciones en rapidez, costo, calidad e incluso semántica). El servicio de negocios (TRADING) permite a los clientes encontrar los objetos mas adecuados según estos criterios. AGB ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). ➨ ■ ■ 29 Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). AGB 30 Ventajas de los objetos distribuidos Ventajas de los objetos distribuidos – Compartir información entre aplicaciones y/o usuarios. – Sincronizar actividades entre diversos computadores. – Aumentar el rendimiento de una aplicación, al ejecutarse en paralelo entre varios computadores. – Que los PCs puedan acceder a información (usualmente bases de datos) de ambientes UNIX o Mainframes. – Que gente en diferentes localidades pueda colaborar. – Ser reemplazados por versiones mejoradas sin tener que modificar las aplicaciones que los usen. – Tener una gran potencia de cómputo accesible desde el propio computador. – Las aplicaciones crecen sin colapsarse (escalabilidad). INTRODUCCIÓN A CORBA, OMG y OMA ■ ■ ➨ ■ ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). ■ ■ ■ ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). Compañías que ofrecen CORBA Licencia Orbix IONA Visibroker MICO ORBacus JacORB ORBit TAO Borland X X GNU X IONA X X GNU X GNU X GNU X OpenORB DOG X X X X X X X X XX X X X X X ■ ■ ■ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X AGB X X X X X X ■ X X X X X X X XX X ATT: omniORB Iona: Orbix DOG: OpenORB OOC: ORBacus Inprise-Borland: VisiBroker (demo de 60 días) GNU: TAO, ORBit, MICO y JacORB (gratis) Hay varias decenas, y cada día aparecen mas. AGB Servicios (CORBAservices) XX XX X X 32 34 Compañías que ofrecen CORBA C C++ Java Cobol SmallT Ada Linux Solaris WinNT/ Namin Life Events Tradin Concu Transa Time Proper Securit Relatio Extern Collect Persist Real Ti /Q ORB Sistem as Operati vos ■ 33 AGB Lenguajes AGB Compañías que ofrecen CORBA – Core Object Model. – Reference Model. ■ – Manejo automático del envío/recepción de parámetros (tipos, marshalling/demarshalling, orden de bytes). – El cliente puede averiguar los servicios ofrecidos por los objetos: están en el depósito de interfases (IR). – Se puede usar cualquier lenguaje de programación para cliente y objetos, en cualquier sistema operativo, en cualquier tipo de computador. – El objeto puede estar dormido (en disco) y el ORB lo activará antes de pasarle la llamada, de manera transparente al cliente. – El objeto llamado puede devolver como resultado una referencia (puntero) a otro objeto. 31 AGB ■ Ventajas específicas de CORBA: ■ X X ORBacus, MICO, JacORB, OpenORB, ORBit y TAO se consiguen gratis en internet. Visibroker se consigue gratis en versión demo de 60 días. TAO es un sistema experimental donde se investiga en servicios de Tiempo Real y de QoS (Quality of Service, Calidad de Servicio). Las QoS definen prioridades de unas comunicaciones sobre otras o reservas de anchos de banda extremo a extremo. De esta manera se podrá especificar, por ejemplo para videoconferencia, la calidad de las transmisiones de imágen y de sonido. X X 35 AGB 36 Compañías que ofrecen CORBA ■ ■ INTRODUCCIÓN A CORBA, OMG y OMA Si la aplicación distribuida a diseñar corre en varios computadores y todos tienen el mismo sistema operativo y tanto los clientes como los servidores los va a escribir en el mismo lenguaje, entonces la tabla anterior le servirá para elegir un único ORB. En caso de que el entorno de trabajo sea heterogéneo, deberá seleccionar varios ORB, de modo que cubran todas las necesidades. Todos los ORB de CORBA son compatibles entre sí, ya que siguen una especificación de comunicación general llamada GIOP que está estandarizada. Si la comunicación entre computadores se hace a través de Internet (que es lo mas habitual) entonces usan una especificación particular llamada IIOP. AGB ■ ■ ■ ■ ■ ■ ■ ■ ■ ➨ AGB ➨ ■ ■ ■ ■ ■ – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling 39 RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: AGB 40 Otras tecnologías MIDDLEWARE Características generales: – Es una extensión de la especificación del lenguaje Java. – Permite descubrir servicios remotos (nombres de funciones y tipos de parámetros). – Permite el OBV (paso de objetos por valor) y no solo por referencia. ■ 38 – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling RMI de Sun ■ Ventajas de desarrollar aplicaciones conformadas por objetos distribuidos. Compañías que ofrecen CORBA. Otras tecnologías de soporte de objetos distribuidos (Middleware). Otras tecnologías MIDDLEWARE RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: AGB ¿Qué es CORBA? ¿Quien es OMG? OMA (Object Management Architecture). – Core Object Model. – Reference Model. 37 Otras tecnologías MIDDLEWARE ■ ■ Desventajas: – El modelo de seguridad de Java impide comunicación directa entre applets en equipos arbitrarios (se rompe la transparencia en la ubicación). Hay que usar túneles (Gatekeepers). – Solo funciona con Java (no hay transparencia en el lenguaje, aunque si en el SO y en el HW). AGB 41 ■ ➨ ■ ■ ■ ■ RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling AGB 42 DCE de OSF ■ ■ ■ ■ DCE de OSF Es orientado a procedimientos. Su IDL está basado en C. Al no ser OO, no soporta herencia ni excepciones. Tampoco tiene tipo any. Puede crear un “contexto” entre cliente y servidor, manejar pipes y pasar punteros de una máquina a otra. Tiene un número de identificación único para cada interfase y versión. Los identificadores (UUIDs) existen en un espacio plano (en CORBA hay un espacio de nombres estructurado). Solo permite una interfase por cada archivo IDL. AGB ■ ➨ ■ ■ ■ ■ ■ Proporciona una implementación de referencia (CORBA proporciona una especificación). Solo proporciona una interfase estática. Proporciona threads (en CORBA es opcional, a través de los servicios de concurrencia). 43 AGB 44 DCOM (ActiveX) de Microsoft Otras tecnologías MIDDLEWARE ■ ■ RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: ■ Ventajas: – Dicen que es mas eficiente que CORBA. ■ Desventajas: – No es de dominio público (freeware). – Solo trabaja con sistemas operativos de Microsoft (Win95, Win98, WinNT). – Solo trabaja con Visual Basic. – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling AGB 45 ■ ■ ➨ ■ ■ RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: ■ Ventajas: – La herramienta es muy poderosa y fácil de usar para el programador. – Maneja el concepto de WebServices. – Trabaja con sistemas operativos de Microsoft, pero también está saliendo una versión para Linux. – Soporta muchos lenguajes: C, C++, JScript, C#, Visual Basic... – Usa los siguientes protocolos: – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling ■ ■ ■ AGB 46 .NET de Microsoft Otras tecnologías MIDDLEWARE ■ AGB 47 SOAP: envuelve cualquier objeto en XML. Es sencillo y no tiene problemas con los firewall, puesto que funciona sobre HTTP. WSDL: describe lo que hay en cada contenedor SOAP. UDDI: para descubrir e invocar servicios. AGB 48 .NET de Microsoft ■ Otras tecnologías MIDDLEWARE Desventajas: ■ – No es de dominio público (freeware). – Todos los lenguajes de programación son interpretados (lentitud de ejecución), aunque hay un compilador “just in time”. ■ ■ ■ ➨ ■ RMI-Java de Sun DCE de OSF DCOM (ActiveX) de Microsoft .NET de Microsoft SOAP De bajo nivel: – Sockets – RPC (remote procedure calls) – Database tables, triggers and polling AGB 49 SOAP ■ ■ SOAP no va a reemplazar a COM o a CORBA porque no son la misma cosa. COM es un modelo de componentes. CORBA es una especificación que incluye muchos servicios de alto nivel (nombres, trading, eventos...). SOAP compite con los protocolos de cable de DCOM y de CORBA (DCR de IIOP). No está atado a ningún lenguaje ni a ningún sistema operativo. Funciona sobre HTTP y admite transparentemente SSL y HTTPS. Puede portarse fácilmente a otros mecanismos de transporte distintos a HTTP. ■ 51 ■ Otras tecnologías MIDDLEWARE ■ – Transmite mas bytes (etiquetas XML). – Corre sobre HTTP. ■ SOAP no soporta en principio comunicación bidireccional (callbacks, eventos...). Tampoco ofrece facilidades para comunicación entre dos servidores (solo entre cliente y servidor) como garbage collector. Tampoco ofrece servicios de alto nivel como activación remota de objetos, ciclo de vida (mover y copiar objetos), etc. SOAP depende de XML. AGBNo es todavía un estándar.52 ■ Las grandes ventajas de CORBA: – Soportado por 800 fabricantes de software, hardware y telecomunicaciones. – Existe interoperabilidad (es un objetivo de OMG) entre: ■ ■ Costo de las herramientas. Conocimientos previos de los ingenieros de sistemas. Expectativas de crecimiento de la empresa. Soporte a aplicaciones antiguas. Soporte a nuevos lenguajes, sistemas operativos, hardware... AGB ■ .NET usa SOAP. CORBA podría usarlo en un futuro (aunque todavía no hay ninguna decisión al respecto). SOAP es algo mas ineficiente que DCOM o que IIOP: Otras tecnologías MIDDLEWARE Se discute mucho cual es la mejor (mas rápida, mas escalable, mas eficiente en recursos de memoria y ancho de banda...). Sin embargo, la razón de utilizar una u otra es administrativa y no técnica: – – – – – 50 SOAP AGB ■ AGB ■ ■ DCOM y CORBA. DCE y CORBA: Environment Specific Interoperability Protocol (DCE-ESIOP). RMI y CORBA. XML y CORBA. – Existe la manera de integrar aplicaciones viejas (legacy code) a CORBA, “envolviéndolas” de modo que presenten una interfase IDL. 53 AGB 54