CORBA David Jesús Horat Flotats ÍNDICE 1 Introducción a CORBA 2 Interface Definition Language (IDL) 3 Servicio de nombres 4 Object Request Broker (ORB) 5 Ejemplo 6 CORBA vs RMI 1. Introducción a CORBA Common Object Request Broker Architecture Llamada a Procedimiento Remoto (RPC) Estándar internacional – OMG: Object Management Group Tecnología de integración de objetos – No un aspecto del lenguaje Independencia del lenguaje – Es necesario un compilador IDL al lenguaje especificado 1. Introducción a CORBA Object Management Architecture – Core Object Model Semántica común de objetos – Interfaz, operaciones, etc... Definida a través de IDL CORBA es un mejoramiento de COM – OMA Reference Architecture Infraestructura de servicios Incluye el ORB (Object Request Broker) Incluye Object Services (CORBA Services) 2. Interface Definition Language Forma independiente del lenguaje de especificar tipos de datos, atributos, operaciones, interfaces, módulos, .... Sintaxis similar a C++ y Java Soporta el conceto de herencia usando “:” como en C++ Se compila de IDL al lenguaje especificado – Ejemplo: IDL/Java 2. Interface Definition Language CORBA IDL Módulo JAVA Paquete C++ Espacio de nombre Interfaz Interfaz Clase abstracta pura Método Método Función miembro module unejemplo { interface Saludos { string decirHola(); }; }; 2. Interface Definition Language IDL define además: Implementación Servidor Petición Petición – Stubs: Crea y envía las solicitudes del cliente al ORB – Skeleton: Entrega las solicitudes procedentes del ORB a la implementación del objeto CORBA Implementación Cliente Stub Red Skeleton IDL Compilación Compilación 3. Servicio de nombres Servicio fundamental de CORBA Encadena referencias – Parecido a DNS – Convierte cadenas a referencias 4. Object Request Broker Parte principal Canal de comunicación entre Stubs y Skeletons Es transparente – – – Oculta la implementación del objeto Ocultado el estado de ejecución Oculta los mecanismos de comunicación ORB Interface: Para asegurar la compatibilidad entre diferentes ORB se establece una interfaz común 4. Object Request Broker Implementaciones: – – – – – – MICO : implementación Open-Source de un ORB ORBacus de Object Orientated Concepts Visibroker de Borland OrbixWeb de Iona Component Broker de IBM Java IDL / ORB de Sun, ya incluido en todo JDK 5. Ejemplo 5.1 IDL fuente – Compilación 5.2 Implementación del servidor 5.3 Implementación del cliente 5.4 Ejecución 6. CORBA vs RMI RMI es sólo para Java, CORBA es independiente RMI es más sencillo que CORBA Se puede usar RMI como cliente de código no Java usando JNI – Complejo – Se evita usar un ORB de terceros Le elección depende de las necesidades