Introducción a CA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Facultad de Informática, curso 2000-01 Computación cliente/servidor A B I/F Servidor C Juan Pavón Mestras, UCM 2000-01 CA (1) 2 1
Computación cliente/servidor Sistemas /Servidor a 3 niveles (three-tier systems) GUI / Servidor Lógica de la aplicación Servidor Datos Juan Pavón Mestras, UCM 2000-01 CA (1) 3 Computación de objetos distribuidos Llevar el concepto de sistemas de varios niveles a su conclusión natural Los clientes pueden ser servidores y los servidores clientes Cada objeto ofrece al resto servicios a través de una interfaz Los objetos pueden estar distribuidos en distintos nodos de computación Los objetos pueden continuar existiendo después de quien los creó Los objetos distribuidos se comunican mediante un middleware Los objetos pueden estar implementados en distintos lenguajes y sobre distintos sistemas operativos Comunicación síncrona (RPC, Java RMI, CA) o asíncrona (eventos) Juan Pavón Mestras, UCM 2000-01 CA (1) 4 2
Computación de objetos distribuidos Proceso main() main() Distribución Proceso Proceso Proceso (espacio de memoria) Proceso Proceso Juan Pavón Mestras, UCM 2000-01 CA (1) 5 Computación de objetos distribuidos y CA CA es una solución para la distribución de objetos OMG ha definido CA: Un modelo de objetos Cómo interaccionan los objetos Una arquitectura del sistema que soporta la interacción de objetos Un lenguaje para definir las interacciones entre objetos Servicios básicos para aplicaciones distribuidas Juan Pavón Mestras, UCM 2000-01 CA (1) 6 3
OMG y el estándar CA Object Management Group (OMG) Alcatel DMSO Ideal Objects Nippon T&T SNI BEA Systems DNS Techs Inprise NIST Sprint BellSouth Economica AS IBM Nokia Sun Boeing Aircraft EDS IONA Nortel Telefonica I+D Bristol-Myers Ericsson Lucent NSA TIBCO Compaq Expersoft Metaphase Oracle Travelers Ins Computer Assocs Fort Motor Micro Focus Rational SW Unisys Concept 5 Fujitsu Mitre SAP AG W3C Daimler-Benz AG Deere & Co. GMD Fokus HP NEC Netscape Shell Services Sherpa Workflow Mgmt Xerox Creado en 1989, en la actualidad tiene más de 800 miembros Juan Pavón Mestras, UCM 2000-01 CA (1) 7 OMG y el estándar CA Objetivo del OMG: Interoperabilidad No habrá consenso en plataformas hardware No habrá consenso en sistemas operativos No habrá consenso en protocolos de comunicación No habrá consenso en los formatos de las aplicaciones Tiene que haber consenso en en interoperabilidad Juan Pavón Mestras, UCM 2000-01 CA (1) 8 4
OMG y el estándar CA basado en la tecnología objetos OMG cree que un planteamiento basado en tecnología de objetos simplifica el problema: Ofrece una visión sencilla de un sistema distribuido heterogéneo Claves de la OO que ayudan a la integración de sistemas distribuidos: Encapsulación Herencia Polimorfismo Juan Pavón Mestras, UCM 2000-01 CA (1) 9 CA: un bus software Todos los componentes en CA son objetos Cada objeto tiene una interfaz y una identidad única Cada objeto se puede implementar con un lenguaje de programación distinto, y ejecutarse sobre cualquier plataforma HW y sistema operativo CA define el bus software que permite la interacción de esa diversidad de objetos Bus software: Juan Pavón Mestras, UCM 2000-01 CA (1) 10 5
: Lenguaje de Definición de Interfaces separa la interfaz de la implementación Lenguaje de especificación de interfaces públicas, con herencia múltiple y fuertemente tipado Independiente de cualquier lenguaje de programación OMG define correspondencias con muchos lenguajes No es un lenguaje de programación Permite la interoperabilidad Soporta el mecanismo de invocación dinámica Object Request Broker Implementación de Objeto Juan Pavón Mestras, UCM 2000-01 CA (1) 11 : Lenguaje de Definición de Interfaces Lado C Lado Servidor COBOL C++ C Java Ada Ada Small talk Small talk C++ Otro Otro Juan Pavón Mestras, UCM 2000-01 CA (1) 12 6
: Lenguaje de Definición de Interfaces module Banca { interface Cuenta { exception SaldoInsuficiente { float balance; }; }; readonly attribute string cliente; readonly attribute float balance; void ingreso(in float suma); void reintegro(in float suma) raises (SaldoInsuficiente); interface Banco { exception Rechazada { string causa; }; exception CuentaInexistente { }; }; }; Cuenta abrircuenta (in string cliente) raises (Rechazada); void cerrarcuenta(in Cuenta c) raises (CuentaInexistente); Juan Pavón Mestras, UCM 2000-01 CA (1) 13 Componentes de la arquitectura CA Servant DII Stub I/F DSI Skeleton Object adapter Core Juan Pavón Mestras, UCM 2000-01 CA (1) 14 7
Componentes de la arquitectura CA Lado Los clientes realizan peticiones usando referencias a objetos CA Los clientes pueden realizar peticiones a través de: los stubs de las interfaces de objetos la interfaz de invocación dinámica (DII) Los clientes pueden acceder a servicios generales del : Repositorio de interfaces Gestión del contexto Referencias a servicios básicos DII Stub I/F Juan Pavón Mestras, UCM 2000-01 CA (1) 15 Componentes de la arquitectura CA Lado Implementación (servant) Las implementaciones de objetos reciben las peticiones a través de skeletons (sin conocimiento de cómo se ha hecho la invocación en el lado cliente) Servant I/F DSI Skeleton Object adapter Juan Pavón Mestras, UCM 2000-01 CA (1) 16 8
Componentes de la arquitectura CA Invocación estática el stub y el skeleton son específicos para la interfaz del objeto Servant Operación(parámetros) refobjeto.operación(parámetros) resultados Stub marshalling unmarshalling Skeleton Object adapter Core Localización del objeto y paso de la operación Juan Pavón Mestras, UCM 2000-01 CA (1) 17 Componentes de la arquitectura CA Invocación dinámica Servant construye Request invoca Request DII Interface Repository I/F DSI Skeleton Object adapter Core Juan Pavón Mestras, UCM 2000-01 CA (1) 18 9
Componentes de la arquitectura CA Entrega las peticiones a los objetos destino (locales o remotos) y devuelve las respuestas a los clientes que hicieron las peticiones El se basa en la referencia al objeto destino Transparencias soportadas: Localización de objetos Implementación de objeto Estado de ejecución del objeto Mecanismos de comunicación con el objeto Entiende y mantiene un Repositorio de Interfaces También mantiene un Repositorio de Implementaciones Puede federar esta información a través de varios sistemas: UNA WEB DE s INTERCONECTADOS Juan Pavón Mestras, UCM 2000-01 CA (1) 19 Componentes de la arquitectura CA Escalas diferentes Objetos distribuidos en Internet Tipos diferentes Objetos de BD Objetos distribuidos en red local Multiproceso, objetos locales Objetos en un mismo proceso Objetos Java Objetos C++ Juan Pavón Mestras, UCM 2000-01 CA (1) 20 10
Arquitectura de Gestión de Objetos (OMA) No estandarizados por OMG Objetos de Aplicación Business Objects Healthcare Finance Telecom CA Domains Compound Docs Object Linking Help Facilities Desktop Mgmt MOF CA Facilities Object Request Broker Lifecycle Events Naming Persistence Transactions Concurrency CA Services Externalization Security Time Properties Query Licensing Juan Pavón Mestras, UCM 2000-01 CA (1) 21 Servicios CA Lifecycle Service Events Service Naming Service Trader Service Persistence Service Transactions Service Concurrency Service Externalization Service Security Service Time Service Properties Service Query Service Licensing Service Relationship Service Collection Service Juan Pavón Mestras, UCM 2000-01 CA (1) 22 11
Interoperabilidad en CA: GIOP/IIOP BD IIOP: Internet Inter- Protocol IIOP IIOP Red TCP/IP IIOP Bridge DCE/ESIOP Red DCE Juan Pavón Mestras, UCM 2000-01 CA (1) 23 Resumen CA es una solución a la computación de objetos distribuidos, y añade interoperabilidad a Java Los elementos básicos de la arquitectura CA son el, stub y skeletons en cliente y servidor respectivamente, el repositorio de interfaces, y las interfaces de invocación y skeleton dinámicas es el lenguaje que permite especificar interfaces, y el elemento central para soportar la interoperabilidad Juan Pavón Mestras, UCM 2000-01 CA (1) 24 12