UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
SISTEMAS DISTRIBUIDOS
PROGRAMA
DE INGENIERIA DE SISTEMAS
ING. DANIEL EDUARDO PAZ PERAFÁN
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
OMG
Historia.
OMG (Object Management Group)
• Consorcio creado en 1989, primer “producto”: CORBA
• inicialmente 8 empresas (Sun, HP, 3Com,...)
- Hoy: más de 800 socios
- Proveedores de SW y equipos, operadores de telecomunicaciones, empresas,
universidades,...
OMG Proporcionar interoperabilidad entre aplicaciones
en un entorno distribuido y heterogéneo.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
OMG
BPMN
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
CORBA
Common Object Request Broker Architecture
Concepto ¿Qué es?
Arquitectura diseñada para alcanzar la máxima interoperabilidad.
Conjunto de protocolos que permiten que los programas de aplicación interoperen, con
independencia de sus lenguajes de programación, plataformas hardware y software, redes
sobre las cuales se comunican y sistemas operativos donde se ejecutan.
• Distintos sistemas operativos (Unix, Windows, MacOS, OS/2)
• Distintos protocolos de comunicación (TCP/IP, IPX, …)
• Distintos lenguajes de programación (Java, C, C++, …)
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
CORBA
¿Para qué sirve?
Permite la invocación de métodos de un objeto distribuido por objetos que residen en diferentes
máquinas en entornos heterogéneos
Los objetos pueden estar desarrollados en diferentes lenguajes.
Los equipos pueden tener diferente:
• Hardware
• Sistema operativo
Los equipos pueden estar conectados entre sí usando distintos protocolos de comunicación
Su objetivo es facilitar el desarrollo de aplicaciones distribuidas
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
CORBA
Propiedades deseadas
Transparencia de distribución
• Ni cliente ni servidor necesitan saber si la aplicación está distribuida o centralizado
Transparencia de localización (caso distribuido)
• El cliente no necesita saber donde se encuentra el objeto de implementación
• El servicio que presta el objeto de implementación no necesita saber donde se ejecuta
el cliente
Integración de software existente
• Amortizar inversión previa sistemas heredados (legacy systems)
Transparencia de mecanismos de comunicación
• Se ocupa de abstraer los protocolos de red utilizados en la comunicación.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
CORBA
Propiedades deseadas
Activación de objetos
• Objetos remotos no tienen que estar en memoria permanentemente
• Se hace de manera invisible para el cliente
Comunicación flexible
Múltiples modos de comunicación
Síncrona: tipo invocación de métodos / RPC
Asíncrona: sin respuesta
Múltiples modelos de comunicación
Invocación estática
Invocación dinámica
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
ELEMENTOS DE LA ARQUITECTURA OMA
ORB
Object Request Broker
Intermediario de petición de Objetos
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
ELEMENTOS DE OMA
ORB
Proporciona transparencia de implementación
• El cliente no conoce el lenguaje de implementación de los objetos corba
Proporciona transparencia de distribución
• Comportamiento igual en centralizado o distribuido
Proporciona transparencia de estado de ejecución
• Se ocupa de la activación y desactivación de objetos
Proporciona servicios para construir peticiones dinámicamente
• Construye en tiempo de ejecución el stub y skeleton.
Proporciona transparencia de mecanismos de comunicación
• Se ocupa de abstraer los protocolos de red utilizados en la comunicación.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
ELEMENTOS DE LA ARQUITECTURA OMA
ORB
Object Request Broker
Intermediario de petición de Objetos
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
ARQUITECTURA BASE DE CORBA
Servant
POA
Object Request Broker
Intermediario de petición
de Objetos
Servant: Entidad desarrollada en un lenguaje que implementa las operaciones definidas en la interface.
Stub: Crea y emite los pedidos en nombre del cliente al ORB
Skeleton: entrega el pedido a la implementación del objeto CORBA
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
ELEMENTOS DE LA ARQUITECTURA DE CORBA
Protocolos utilizados entre ORB Diferentes ORB utilizan
un protocol comun
General Inter-ORB Protocol (GIOP)
• GIOP es un protocolo estándar de alto nivel para la comunicación entre ORBs.
• GIOP es un protocolo generalizado, no se usa directamente, sino que es especializado por un
protocolo particular para poder usarse
Internet Inter-ORB Protocol (IIOP)
• Una especialización del GIOP
• Protocolo estándar para la comunicación entre ORBs en redes basadas en TCP/IP.
• Un ORB debe soportar IIOP para ser considerado CORBA 2.0 compatible
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
CORBA
Para cada lenguaje de programación existe un estandar OMG que especifica
como mapear los tipos e invocaciones para convertirlos en tipos y funciones
en un lenguaje.
Las invocaciones pueden ser: dinámicas o estáticas.
Invocaciones estáticas: Son encaminadas al ORB del cliente vía el stub.
Invocaciones dinámicas: Son ensambladas en tiempo de ejecución por el
cliente. (DII proporcionan una gran flexibilidad).
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
CLIENTE SERVANT
SIRVIENTE
IR SDI ImplR
OA
SS
DII CIS
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR ESTÁTICO
CLIENTE ESTATICO
NS
S.O SERVANT
C.O
SKELETON
STUB
INTERFACE DEL INTERFACE DEL
ORB ORB POA
ORB ORB
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado cliente (1/5)
Stub IDL
Interfaz estática a los servicios declarados en las interfaces IDL
Permite que para el cliente todas las llamadas parezcan locales.
Actúa como proxy (representante) del objeto remoto
• La invocación de métodos remotos, incluyendo el marshalling
• Recepción de respuestas, incluyendo el unmarshalling
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado cliente (2/5)
Interfaz de Invocación Dinámica (DII)
Permite descubrir en run-time las interfaces de Objetos CORBA que no poseen stubs estáticos.
CORBA define API's para buscar los métodos y sus parámetros de una interfaz (“metadatos”).
Utilizado para hacer una invocación dinámica después de construida mediante la interfaz del
ORB
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado cliente (3/5)
Interfaz ORB
Permite acceder a un conjunto de librerías o APIs que definen funciones del ORB y que pueden
ser accedidas por el código cliente.
Acceso a servicios iniciales como el servicio de nombrado
Conversión de referencias de objetos en cadenas y viceversa
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado cliente (5/5)
Repositorio de interfaces
Base de datos en tiempo de ejecución con versiones máquina de las interfaces IDL
(y posiblemente información asociada).
Permite obtener y modificar dinámicamente las descripciones (interfaces, métodos y
parámetros) de todos los objetos registrados.
Es un mecanismo de auto-descripción (metadatos) de los objetos
El repositorio de interfaces en si es un objeto más, accesible a través de un ORB.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado del servidor(1/3)
Skeleton estático IDL
Representante estático del cliente en el servidor.
Generado en tiempo de compilación a partir de la interfaz IDL del servidor.
Permite realizar el unmarshalling de las invocaciones del cliente.
Para el servidor todas las llamadas son locales
Interfaz de esqueletos dinámicos (DSI)
Da mecanismos de asociación en run-time a servidores que necesitan
manejar peticiones de componentes que no tienen stubs
Recibe las peticiones y averigua a que objetos van dirigidas.
Son muy utilizados en la construcción de “Bridges” entre ORB’s.
Se pueden usar para generar dinámicamente objetos.
Es el equivalente en el servidor al DII del cliente.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado del servidor(2/3)
Adaptador de objetos
Intermediario entre el núcleo del ORB y los objetos
Instancia y activa objetos servidores, y crea referencias de objeto
Mapea referencias de objetos a IDs de implementaciones de objetos
Invoca el método apropiado cuando llega una petición remota (upcall).
Registra objetos en el repositorio de implementaciones.
POA (Portable Object Adapter): adaptador de objetos estándar (desde ’98).
La interfaz ORB
API que da soporte local, idéntico al proporcionado en el lado del
cliente, permite que el cliente y servidor interactúen con el ORB.
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
Lado del servidor(3/3)
Repositorio de implementaciones
Proporciona un registro en run-time de las clases, los
objetos instanciados y los ID’s que un servidor soporta.
También puede almacenar otro tipo de información
(trazas, datos administrativos)
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR ESTÁTICO
CLIENTE ESTATICO
NS
S.O SERVANT
C.O
SKELETON
STUB
INTERFACE DEL INTERFACE DEL
ORB ORB POA
ORB ORB
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR DINÁMICO
CLIENTE DINÁMICO
NS
S.O SERVANT
C.O
SKELETON
INTERFACE DE DINAMICO
INVOCACIÓN INTERFACE DEL INTERFACE DEL
DINÁMICA ORB ORB POA
ORB ORB
REPOSITORIO
DE INTERFACES
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR DINÁMICO
CLIENTE DINÁMICO
NS
S.O SERVANT
C.O
SKELETON
INTERFACE DE DINAMICO
INVOCACIÓN INTERFACE DEL INTERFACE DEL
DINÁMICA ORB ORB POA
ORB ORB
REPOSITORIO DE
REPOSITORIO
IMPLEMENTACIONES
DE INTERFACES
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR DINÁMICO
CLIENTE ESTÁTICO
NS
S.O SERVANT
C.O
SKELETON
DINAMICO
STUB
INTERFACE DEL INTERFACE DEL
ORB ORB POA
ORB ORB
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA SERVIDOR DINÁMICO
CLIENTE ESTÁTICO
NS
S.O SERVANT
C.O
SKELETON
DINAMICO
STUB
INTERFACE DEL INTERFACE DEL
ORB ORB POA
ORB ORB
REPOSITORIO DE
IMPLEMENTACIONES
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
CLIENTE DINÁMICO SERVIDOR ESTÁTICO
NS
S.O SERVANT
C.O
INTERFACE DE SKELETON
INVOCACIÓN INTERFACE DEL INTERFACE DEL
DINÁMICA ORB ORB POA
ORB ORB
REPOSITORIO
DE INTERFACES
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Arquitectura de CORBA
CLIENTE DINÁMICO SERVIDOR ESTÁTICO
NS
S.O SERVANT
C.O
INTERFACE DE SKELETON
INVOCACIÓN INTERFACE DEL INTERFACE DEL
DINÁMICA ORB ORB POA
ORB ORB
REPOSITORIO
DE INTERFACES REPOSITORIO DE
IMPLEMENTACIONES
UNIVERSIDAD DEL CAUCA – FIET
Universidad del Cauca DEPARTAMENTO DE SISTEMAS
Referencias
Siegel Jon, OMG OVERVIEW: Corba and the OMA in Enterprise Computing.
Venoski Steve, New Features for CORBA 3.0.
Martinez, José Fernan, Introducción a CORBA, III Jornadas Ibero americanas en
Telecomunicaciones y Telemática, 27-29 Agosto de 2001.
Orfali, Robert; Harley, Dan; Client/Server Programming with Java and CORBA, Second
Edition, WILEY Computer Publishing.
Vinoski, Steve (1997). CORBA: Integrating Diverse Applications Within Distributed
Heterogeneous Environments. IEEE Communications Magazine. Febrero 1997.