TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y

Anuncio
TEMA 5. Otras arquitecturas distribuidas
II. Objetos distribuidos y CORBA
j
y
II Objetos distribuidos y CORBA
II. Objetos distribuidos y CORBA
1. Objetos Distribuidos
2. CORBA
1. Características
2. Modelo de trabajo
M d l d t b j
3. ORB
4. Arquitectura
5. Localización de objetos
6. Servicios de CORBA
7. IDL
Objetos distribuidos
y Objeto: “entidad que encapsula información de estado privada o Objeto: entidad que encapsula información de estado privada o datos y un conjunto de operaciones asociadas para manipular los datos”
y Cada instancia de un objeto en memoria es una entidad diferenciada
y Al ser una instancia tienen un ciclo de vida: se crean, usan y destruyen.
y Permiten descomponer las tareas en componentes más pequeños y reutilizables con un comportamiento bien definido.
y La aplicación de la POO en entornos distribuidos da lugar a la aparición de sistemas basados en objetos distribuidos.
y Muy similar a las LPR, sólo que se invocan operaciones sobre objetos y normalmente se transfieren no sólo parámetros, sino objetos y normalmente se transfieren no sólo parámetros
sino objetos completos.
y Los objetos siguen teniendo un estado y un ciclo de vida
y DCOM, OLE, CORBA y Jini
DCOM OLE CORBA y Jini son algunos ejemplos.
son algunos ejemplos
Arquitecturas Distribuidas 09/10
3
CORBA
y Common Object Request Broker Architecture
yC
Creado por el Object
p
j Management Group
g
p (O
(OMG) en 1989
G)
9 9
y Aboga por promover el uso de sistemas abiertos con interfaces estándar orientadas a objetos, sobre plataformas heterogéneas.
heterogéneas
y Es una especificación de una sofisticada arquitectura de objetos distribuidos. Es independiente del lenguaje de programación.
ió
y A partir de la especificación se desarrollan una serie de librerías de programación que proporcionan funcionalidad p g
q p p
común (infraestructura).
y Existen implementaciones para distintos lenguajes de programación.
programación
Arquitecturas Distribuidas 09/10
4
Características de CORBA
y Posee lenguaje específico para la definición de interfaces: IDL (Interface Definition
(
f
f
Language)
g g )
y Tipos: primitivos y estructurados
y El IDL es independiente del lenguaje de programación
y Un lenguaje de programación utiliza un compilador de U l
j d ió ili il d d interfaces específico para obtener los delegados del cliente y el servidor
y Forma de paso de parámetros:
y Primitivos y estructurados: por valor (in) o copia/restauración (out e inout)
y Objetos CORBA: se identifican por referencia ROR (Referencia a Objeto Remoto)
Arquitecturas Distribuidas 09/10
5
Características de CORBA
y Excepciones remotas (definidas en las interfaces)
yS
Semánticas:
á i
y al‐menos‐una‐vez (por defecto)
y quizás (opcionalmente) Æ
i
(
l
) Æ oneway en IDL
Arquitecturas Distribuidas 09/10
6
Características de CORBA
y Proporciona transparencia (para el programador):
y De la plataforma
D l l t f
y Del nivel de transporte
y Del sistema operativo
D l i
i
y Del lenguaje
y De la implementación
D l i l
ió
y De localización
Arquitecturas Distribuidas 09/10
7
Modelo de trabajo habitual
j
y El programador define las interfaces remotas, a través del lenguaje IDL (independiente del lenguaje de programación)
y El compilador de interfaces (CI) genera delegados para el cliente y el servidor (en un lenguaje de programación en particular)
y Pueden usarse diferentes lenguajes en cliente y servidor
y Ni el cliente ni el servidor tienen porque estar basados en un lenguaje OO
Arquitecturas Distribuidas 09/10
8
Ejemplo
Arquitecturas Distribuidas 09/10
9
Modelo de trabajo habitual
j
1.
2.
3.
4.
5.
6.
7.
El programador define las interfaces remotas, a través del lenguaje IDL
g j
Servidor: se genera el delegado mediante el CI
Servidor: Se implementa el código del objeto servidor
p
g
j
Servidor: Se compila junto con el delegado creado, da lugar a un ejecutable
Cl
Cliente: se genera el delegado mediante el CI.
l d l d d
l C
Cliente: Se implementa el código del objeto cliente
Cli t Cliente: se compila junto con el delegado creado, da il j t l d l d d d lugar a un ejecutable
Arquitecturas Distribuidas 09/10
10
ORB
y La arquitectura de CORBA se basa en el uso de un componente que hace de puente entre diferentes plataformas llamado ORB
y Object Request Broker (mediador en peticiones a objetos).
y Encargado de la comunicación transparente entre clientes y los métodos de un objeto.
y
Localizar el objeto, activarlo y pasarle la solicitud.
j
yp
y Es un servicio (programa) que se ejecuta tanto en el cliente como en el servidor.
Arquitecturas Distribuidas 09/10
11
Arquitectura
q
Objeto de
Implementación
Cliente
PETICIÓN
ORB
Arquitecturas Distribuidas 09/10
12
Arquitectura
q
y Versión inicial de CORBA aprobada en 1991
yE
En 1996: CORBA 2.0
6 CORBA y GIOP (General Inter‐ORB Protocol)
y
y
y
Normas que permiten que puedan cooperar N
i d implementaciones de diferentes fabricantes
Implementado sobre cualquier nivel de transporte
En Internet, sobre TCP/IP: IIOP (Internet IOP)
Arquitecturas Distribuidas 09/10
13
Interconexión de ORBs
Arquitecturas Distribuidas 09/10
14
Arquitectura
q
Objeto de
Implementación
p e e ac ó
Cliente
Invocación
Dinámica
Stubs
Interfaz
ORB
Interfaz
ORB
ORB
Skeletons Skeletons
dinámicos
Adaptador de Objetos
p
j
ORB
GIOP/IIOP
Arquitecturas Distribuidas 09/10
15
Localización de objetos
z
¿Cómo puede contactar un cliente con un objeto?
j
z
z
z
z
Necesita una referencia ROR a dicho objeto
Cada objeto posee ROR única
ROR es generada en el Adaptador de Objetos
Por medio de la ROR el ORB es capaz de localizar el ordenador remoto y el adaptador de objetos donde d
d t l d t d d bj t d d se encuentra. Este último es capaz de identificar el objeto concreto dentro del adaptador.
j
p
Arquitecturas Distribuidas 09/10
16
Localización de objetos
j
z
En CORBA 2.0 se definen las ROR como:
z Referencias a objetos interoperables (IOR):
NOMBRE DEL TIPO DE LA INTERFAZ IDL
IDENTIFICADOR DE DEPOSITO DE INTERFAZ
z
z
PROTOCOLO DE TRANSPORTE Y DETALLES DE LA DIRECCIÓN
IIOP
NOMBRE DEL NÚMERO DEL ORDENADOR PUERTO
CLAVE DEL OBJETO
NOMBRE DEL OA
NOMBRE DEL OBJETO
EN EL OA
IOR intercambiado a través del ORB tiene formato binario.
Es posible conseguir un IOR “modo cadena” a partir d l f
del formato binario y vicecersa:
t bi i i
string_to_object, object_to_string
Arquitecturas Distribuidas 09/10
17
Localización de objetos
j
z
¿Cómo obtener ROR de un objeto?
z A través de servicios especiales de CORBA
z A partir de una IOR modo cadena:
‐ Desde un archivo: por NFS
• A través de un protocolo de descarga de objetos: HTTP, FTP, OBEX, etc.
Arquitecturas Distribuidas 09/10
18
Servicio de Nombres
y Permite:
y Enlazar nombres a ROR (páginas blancas)
E l
b ROR ( á i bl
)
y Creación de contextos de nombramiento (CN)
y Posee estructura jerárquica (como DNS)
P
j á i (
DNS)
BIND (NOMBRE, OBJETO)
Objeto
Servidor Nombres
Arquitecturas Distribuidas 09/10
RESOLVE (NOMBRE)
Cliente
RESPUESTA CONTIENE IOR DE OBJETO
19
Servicios CORBA
y Conjunto de utilidades genéricas para cualquier aplicación distribuida
aplicación distribuida.
y Los más importantes son:
y Nombres
y Eventos
y Notificación
y Seguridad
y Comercio
y Transacciones
y Control de la Concurrencia
y Objetos persistentes
Arquitecturas Distribuidas 09/10
20
Interface Definition Language
Interface Definition Language
y Permite definir
y Módulos, interfaces, tipos, atributos y métodos.
Módulos interfaces tipos atributos y métodos
y Subconjunto de C++ con construcciones adicionales
y Módulo
y Permite agrupar interfaces y definiciones de tipos en unidades lógicas
g
y Define un espacio de nombres
Arquitecturas Distribuidas 09/10
21
Interface Definition Language
Interface Definition Language
y 15 tipos primitivos:
y octet,
t t short,
h t l
long, unsigned
i
d short,
h t unsigned
i
d
long, float, double, char, boolean
y Constantes de estos tipos: declaradas con const.
y 6 tipos estructurados
y Pasados siempre por valor
y Arrays y secuencias: siempre definidos con typedef
y any puede representar cualquier tipo primitivo o d t l i ti i iti estructurado
Arquitecturas Distribuidas 09/10
22
Tipos estructurados en IDL
Arquitecturas Distribuidas 09/10
23
Ejemplos IDL
Ejemplos IDL
//
// h
holamundo.idl
l
d idl
//
module hola {
interface holamundo {
void saludo();
};
};
Arquitecturas Distribuidas 09/10
24
Ejemplos IDL
Ejemplos IDL
//
// h
holamundo.idl
l
d idl
//
Se traduce a un package JJava
module hola {
interface holamundo {
void saludo();
};
};
Arquitecturas Distribuidas 09/10
25
Ejemplos IDL
Ejemplos IDL
//
// h
holamundo.idl
l
d idl
//
module hola {
interface holamundo {
void saludo();
};
};
Se traduce a un interface Java
Arquitecturas Distribuidas 09/10
26
Declaración de métodos en IDL
Declaración de métodos en IDL
interface nombre {
tipo metodo1(in/out/inout tipo par1,
in/out/inout tipo par2,
...);
tipo metodo2(in/out/inout
/
/
tipo par1,
in/out/inout tipo par2,
...);
);
...
tipo
p metodoM(in/out/inout
( /
/
tipo
p p
par1,
,
in/out/inout tipo par2,
...);
};
Arquitecturas Distribuidas 09/10
27
Referencias y bibliografía
y
g
y
Libros:
y
y
“Client‐server programming with Java and CORBA”, Robert Orfali, Dan Harkey, 2nd ed, John Wiley & Sons, 1998.
“
“ORBacus: User Guide v. 4.2.1”, IONA Technologies PLC.
d
”
h l
Disponible en:
y
http //labit 01 upct es/ad/manuales/CORBA/ob 421 pdf http://labit501.upct.es/ad/manuales/CORBA/ob_421.pdf Arquitecturas Distribuidas 09/10
28
Referencias y bibliografía
y
g
y
IDL: y
“AGETOR IDL guide”, AGETOR. Disponible en:
y
http://ait.upct.es/ad/manuales/IDL/IDL_guide.htm
Arquitecturas Distribuidas 09/10
29
Descargar