210 likes | 542 Views
Seminario de CORBA. Isidro Calvo Dpto de Ingeniería de Sistemas y Automática 15 - Mayo - 2001. Indice de la presentación. Objetos distribuidos Breve introducción a la arquitectura CORBA Ideas básicas Elementos de la arquitectura CORBA Servicios CORBA ¿Quién lo está usando y para qué?
E N D
Seminario de CORBA Isidro Calvo Dpto de Ingeniería de Sistemas y Automática 15 - Mayo - 2001
Indice de la presentación • Objetos distribuidos • Breve introducción a la arquitectura CORBA • Ideas básicas • Elementos de la arquitectura CORBA • Servicios CORBA • ¿Quién lo está usando y para qué? • Diferentes implementaciones disponibles • Ejemplo de uso con el ORB de VisiBroker
Objetos distribuidos (I) • Evolución de las arquitecturas cliente/servidor • Tecnología orientada a objetos (Interfaz + Mecanismo) • Mejoras en las redes de ordenadores • Justificación de las aplicaciones distribuidas • Datos distribuidos en varios ordenadores • Hardware distribuido • Usuarios de la aplicación distribuidos • Arquitecturas disponibles (CORBA, DCOM, RMI...)
Objetos distribuidos (II) • Los clientes no necesitan conocer: • la localización de los objetos distribuidos • el sistema operativo bajo el que funcionan • el lenguaje de programación empleado • cómo están implementados los objetos servidor • Todo lo que necesitan conocer es el interfaz que el servidor de objetos publica.
Process A Process B Process C Machine X Machine Y Trasparencia en la ubicación
Objetos distribuidos (III) • Ventajas: • Escalonado de aplicaciones • Replicación de servidores • Distribución de la carga computacional • Trasparencia en la ubicación • Reutilización de código • Partición de aplicaciones • Inconvenientes • Tecnología más compleja y pesada • Nuevos desafíos: gestión de accesos concurrentes, seguridad...
Arquitectura CORBA (I) • Promovida por la OMG (+800 Miembros) • Estándares abierto • CORBA (Common Object Request Broker Architecture) • CORBA define: • El interfaz de los objetos (IDL) • Cómo se comunican entre sí (IIOP) • Servicios de objeto
objectimplementation client program call method language mapping operation signatures language mapping entry points Stub Skeleton Basic Object Adapter ORB Operations Location Service ORB Transport Layer Multithreading Invocación de métodos remotos
Arquitectura CORBA (II) • CORBA trata con Interfaces, no con la implementación de los objetos • Los programadores usan referencias a objetos remotos como si fuesen locales • CORBA pone el objeto a disposición de cualquier aplicación ‘conectada’ al bus de objetos de forma trasparente • Interoperatividad entre objetos heterogéneos distribuidos. (Aplicaciones distribuidas)
El protocolo IIOP • IIOP (Internet-Inter ORB Protocol) • Permite la comunicación entre varios ORBs • Desde la implementación CORBA 2.0 • Protocolo sobre TCP/IP • Existen otras versiones más genéricas: • GIOP (General Inter-ORB Protocol) • ESIOPs (Environment-Specific Inter-ORB Protocols)
Lenguaje de definición de interfaces IDL • IDL (Interface Definition Language) Instrumento para definir las interfaces de los objetos • Lenguaje declarativo y OO que permite la abstracción del lenguaje de programación empleado en los objetos • Sintaxis similar a C++ • Compiladores de IDL a varios lenguajes de programación: • C, C++ • Java • Smalltalk • COBOL • Ada, ...
Ejemplo de fichero IDL Module ObjetosRobot { struct Posicion { double Cord_x, Cord_y, Cord_z; }; exception Unknown{}; interface Brazo { Posicion ObtenerPosicionActual(); void MoverAPosicion(in Posicion PosicionFinal) raises (Unknown); }; interface Garra { readonly attribute string tipoGarra; void CambiarGarra(in long NuevaGarra) raises (Unknown); } ;};
Object Implementation Client Interface Repository Static Skeletons Dynamic Skeleton Invocation Implementation Repository Dynamic Invocation Client IDL Stubs ORB Interface Object Adapter Object Request Broker Core Componentes arquitectura
Invocaciones a métodos estáticos vs dinámicos • Llamadas estáticas: • El código generado por el IDL se compila dentro del Cliente y Servidor • Clases definidas en tiempo de compilación • Llamadas dinámicas: • Permiten detectar nuevas clases de objetos en tiempo de ejecución • Se introduce código para detectar los nuevos interfaces • Se publica el interfaz en una BBDD • Mayor flexibilidad vs. mayor complejidad
Adaptador de Objetos • Principal mecanismo para que las implementaciones de los objetos accedan a los servicios del ORB • Servicios ofrecidos por el Adaptador de Objetos: • Registro de clases de servidor en el ‘Implementation Repository’ • Crea instancias de nuevos objetos en tiempo de ejecución • Crea y manipula referencias a objetos • Comunica la presencia de objetos servidos a otros OA • Gestiona las llamadas de los clientes remotos • BOA (Basic Object Adapter) y el POA (Portable OA) (desde CORBA 2.2)
Servicios CORBA • Aumentan la funcionalidad de CORBA • Algunos de los servicios disponibles son: • Servicio de nombres • Ciclo de vida de objetos (creación, copia, borrado...) • Servicio de eventos • Servicio de transacciones (incluso entre distintos ORBs) • Control de concurrencia (Accesos concurrentes a objetos) • Servicio de objetos persistentes • Servicios de seguridad • ...
¿Quién y para qué usa CORBA hoy? • Integración de sistemas (Encapsulado de software previo) • Internet (junto a JAVA) • Telecomunicaciones (Gestión de redes y equipos...) • Aeronaútica • Entornos industriales
Arachne (Decision Systems Group) ObjectBroker and WebLogicEnterprise (BEA) ChorusORB (Sun) Component Broker/DSOM (IBM) Cool ORB (BBN) CORBAplus (ExperSoft) DAIS (Peerlogic) TAO (University of Washington) ILU (Xerox Parc) ISP (Russian Academy of Science) JacORB (Gerald Brose) JADE (APM) JavaIDL (JavaSoft) JavaORB (Distributed Object Groups) Jbroker (ObjectEra) Jonathan (France-telecom/CNET) Jorba (Roland Turner) Krypton (TANTAU Software) MICO (University of Frankfurt) Nouveau (Roguewave) OAK (Paragon Software) ObjectDirector (Fujitsu) omniORB2 (AT&T Laboratories) ORBit (RHAD Labs, GNOME Project) Orbix (IONA) ORB Plus (HP) VisiBroker (Inprise) ... Algunos productos CORBA