Title: Seminario de CORBA
1Seminario de CORBA
- Isidro Calvo
- Dpto de IngenierÃa de Sistemas y Automática
- 15 - Mayo - 2001
2Indice 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
3Objetos 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...)
4Objetos 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.
5Trasparencia en la ubicación
6Objetos 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...
7Arquitectura 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
8Invocación de métodos remotos
9Arquitectura 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)
10Aplicación basada en Obj Distrib
11El 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)
12Lenguaje 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, ...
13Invocaciones IDL estáticas
14Ejemplo 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)
15Equivalencia de términos
16Componentes arquitectura
17Invocaciones 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
18Adaptador 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)
19Servicios 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
- ...
20Quié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
21Algunos productos CORBA
- Arachne (Decision Systems Group)
- ObjectBroker and WebLogic Enterprise (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 (ATT Laboratories)
- ORBit (RHAD Labs, GNOME Project)
- Orbix (IONA)
- ORB Plus (HP)
- VisiBroker (Inprise)
- ...