Actualizado el 21 de Marzo del 2018 (Publicado el 30 de Diciembre del 2017)
526 visualizaciones desde el 30 de Diciembre del 2017
758,8 KB
29 paginas
Creado hace 14a (16/12/2009)
TEMA 5. Otras arquitecturas distribuidas
II. Objetos distribuidos y CORBA
y
j
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
4. Arquitectura
5. Localización de objetos
6. Servicios de CORBA
7.
IDL
Objetos distribuidos
(cid:121) 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”
(cid:121) Cada instancia de un objeto en memoria es una entidad
(cid:121) Cada instancia de un objeto en memoria es una entidad
diferenciada
(cid:121) Al ser una instancia tienen un ciclo de vida: se crean, usan y
destruyen.
destruyen.
(cid:121) Permiten descomponer las tareas en componentes más pequeños
y reutilizables con un comportamiento bien definido.
(cid:121) La aplicación de la POO en entornos distribuidos da lugar a la
(cid:121) La aplicación de la POO en entornos distribuidos da lugar a la
aparición de sistemas basados en objetos distribuidos.
(cid:121) 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.
(cid:121) Los objetos siguen teniendo un estado y un ciclo de vida
(cid:121) DCOM OLE CORBA y Jini son algunos ejemplos
(cid:121) DCOM, OLE, CORBA y Jini son algunos ejemplos.
Arquitecturas Distribuidas 09/10
3
CORBA
(cid:121) Common Object Request Broker Architecture
(cid:121) Creado por el Object Management Group (OMG) en 1989
9 9
(cid:121) Aboga por promover el uso de sistemas abiertos con
p (O G)
C
p
g
j
interfaces estándar orientadas a objetos, sobre plataformas
heterogéneas
heterogéneas.
(cid:121) Es una especificación de una sofisticada arquitectura de
objetos distribuidos. Es independiente del lenguaje de
programación.
ió
(cid:121) A partir de la especificación se desarrollan una serie de
librerías de programación que proporcionan funcionalidad
común (infraestructura).
p p
p g
q
(cid:121) Existen implementaciones para distintos lenguajes de
programación
programación.
Arquitecturas Distribuidas 09/10
4
Características de CORBA
(cid:121) Posee lenguaje específico para la definición de
interfaces: IDL (Interface Definition Language)
g )
f
(cid:121) Tipos: primitivos y estructurados
g
(
f
(cid:121) El IDL es independiente del lenguaje de programación
(cid:121) Un lenguaje de programación utiliza un compilador de
il d d
U l
interfaces específico para obtener los delegados del cliente
y el servidor
j d
ió
ili
(cid:121) Forma de paso de parámetros:
copia/restauración (out e inout)
copia/restauración (out e inout)
(cid:121) Primitivos y estructurados: por valor (in) o
(cid:121) Objetos CORBA: se identifican por referencia ROR
(Referencia a Objeto Remoto)
Arquitecturas Distribuidas 09/10
5
Características de CORBA
á i
(cid:121) Excepciones remotas (definidas en las interfaces)
(cid:121) Semánticas:
S
(cid:121) al‐menos‐una‐vez (por defecto)
(cid:121) quizás (opcionalmente) (cid:198) oneway en IDL
i
(
l
) (cid:198)
Arquitecturas Distribuidas 09/10
6
Características de CORBA
(cid:121) Proporciona transparencia (para el programador):
D l i
D l l t f
(cid:121) De la plataforma
(cid:121) Del nivel de transporte
(cid:121) Del sistema operativo
(cid:121) Del lenguaje
ió
(cid:121) De la implementación
(cid:121) De localización
i
D l i
l
Arquitecturas Distribuidas 09/10
7
Modelo de trabajo habitual
(cid:121) El programador define las interfaces remotas, a través
j
del lenguaje IDL (independiente del lenguaje de
del lenguaje IDL (independiente del lenguaje de
programación)
(cid:121) El compilador de interfaces (CI) genera delegados para
(cid:121) El compilador de interfaces (CI) genera delegados para
el cliente y el servidor (en un lenguaje de
programación en particular)
programación en particular)
(cid:121) Pueden usarse diferentes lenguajes en cliente y servidor
(cid:121) Ni el cliente ni el servidor tienen porque estar basados
(cid:121) 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
g
j
Modelo de trabajo habitual
1.
j
El programador define las interfaces remotas, a través
del lenguaje IDL
Servidor: se genera el delegado mediante el CI
Servidor: Se implementa el código del objeto servidor
Servidor: Se compila junto con el delegado creado, da
lugar a un ejecutable
l C
Cliente: se genera el delegado mediante el CI.
Cl
5.
6. Cliente: Se implementa el código del objeto cliente
7. Cliente: se compila junto con el delegado creado, da
d d
l d l
l d l
2.
3.
4.
d
d
d
p
g
j
t
Cli
il j
lugar a un ejecutable
t
Arquitecturas Distribuidas 09/10
10
ORB
(cid:121) La arquitectura de CORBA se basa en el uso de un
componente que hace de puente entre diferentes
componente que hace de puente entre diferentes
plataformas llamado ORB
(cid:121) Object Request Broker (mediador en peticiones a
(cid:121) Object Request Broker (mediador en peticiones a
objetos).
(cid:121) Encargado de la comunicación transparente entre
(cid:121) Encargado de la comunicación transparente entre
clientes y los métodos de un objeto.
(cid:121) Localizar el objeto, activarlo y pasarle la solicitud.
y p
j
(cid:121) Es un servicio (programa) que se ejecuta tanto en el
cliente como en el servidor.
Arquitecturas Distribuidas 09/10
11
Arquitectura
q
Cliente
Cliente
PETICIÓN
ORB
Objeto de
Implementación
Implementación
Arquitecturas Distribuidas 09/10
12
q
Arquitectura
(cid:121) Versión inicial de CORBA aprobada en 1991
(cid:121) En 1996: CORBA 2.0
E
(cid:121) GIOP (General Inter‐ORB Protocol)
6 CORBA
i
N
(cid:121) Normas que permiten que puedan cooperar
implementaciones de diferentes fabricantes
(cid:121) Implementado sobre cualquier nivel de transporte
Implementado sobre cualquier nivel de transporte
(cid:121) En Internet, sobre TCP/IP: IIOP (Internet IOP)
d
Arquitecturas Distribuidas 09/10
13
Interconexión de ORBs
Arquitecturas Distribuidas 09/10
14
Arquitectura
q
Cliente
Objeto de
Implementación
p e e ac ó
Invocación
Dinámica
Stubs
Interfaz
ORB
Interfaz
ORB
Skeletons
dinámicos
Skeletons
Adaptador de Objetos
p
j
ORB
ORB
GIOP/IIOP
Arquitecturas Distribuidas 09/10
15
Localización de objetos
(cid:122) ¿Cómo puede contactar un cliente con un
j
d
j
objeto?
(cid:122) Necesita una referencia ROR a dicho objeto
(cid:122) Cada objeto posee ROR única
(cid:122) ROR es generada en el Adaptador de Objetos
(cid:122) Por medio de la ROR el ORB es capaz de localizar el
ordenador remoto y el adaptador de objetos donde
d d
se encuentra. Este último es capaz de identificar el
objeto concreto dentro del adaptador.
t l d t d d bj t
d
p
Arquitecturas Distribuidas 09/10
16
Localización de objetos
j
(cid:122) En CORBA 2.0 se definen las ROR como:
(cid:122) Referencias a objetos interoperables (IOR):
(cid:122) Referencias a objetos interoperables (IOR):
NOMBRE DEL TIPO DE LA
INTERFAZ IDL
IDENTIFICADOR DE
DEPOSITO DE INTERFAZ
PROTOCOLO DE TRANSPORTE
Y DETALLES DE LA DIRECCIÓN
IIOP NOMBRE DEL
ORDENADOR
NÚMERO DEL
PUERTO
CLAVE DEL OBJETO
NOMBRE DEL OA
NOMBRE DEL OBJETO
EN EL OA
(cid:122) IOR intercambiado a través del ORB tiene formato
binario.
(cid:122) Es posible conseguir un IOR “modo cadena” a partir
t bi
d l f
del formato binario y vicecersa:
string_to_object, object_to_string
i i
Arquitecturas Distribuidas 09/10
17
Localización de objetos
j
(cid:122) ¿Cómo obtener ROR de un objeto?
(cid:122) A través de servicios especiales de CORBA
(cid:122) A través de servicios especiales de CORBA
(cid:122) A partir de una IOR modo cadena:
‐ Desde un archivo: por NFS
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
(cid:121) Permite:
b
bl
E l
(cid:121) Enlazar nombres a ROR (páginas blancas)
)
(cid:121) Creación de contextos de nombramiento (CN)
P
(cid:121) Posee estructura jerárquica (como DNS)
DNS)
ROR ( á i
j á
i
(
BIND (NOMBRE, OBJETO)
Objeto
Objeto
Servidor
Servidor
Nombres
Nombres
RESOLVE (NOMBRE)
RESPUESTA CONTIENE IOR
RESPUESTA CONTIENE IOR
DE OBJETO
Cliente
Cliente
Arquitecturas Distribuidas 09/10
19
Servicios CORBA
(cid:121) Conjunto de utilidades genéricas para cualquier
aplicación distribuida
aplicación distribuida.
(cid:121) Los más importantes son:
(cid:121) Nombres
(cid:121) Nombres
(cid:121) Eventos
(cid:121) Notificación
(cid:121) Seguridad
(cid:121) Comercio
(cid:121) Transacciones
Transacciones
(cid:121) Control de la Concurrencia
(cid:121) Objetos persistentes
Arquitecturas Distribuidas 09/10
20
Interface Definition Language
Interface Definition Language
(cid:121) Permite definir
(cid:121) Módulos interfaces tipos atributos y métodos
(cid:121) Módulos, interfaces, tipos, atributos y métodos.
(cid:121) Subconjunto de C++ con construcciones adicionales
(cid:121) Módulo
(cid:121) Módulo
(cid:121) Permite agrupar interfaces y definiciones de tipos en
unidades lógicas
g
(cid:121) Define un espacio de nombres
Arquitecturas Distribuidas 09/10
21
Interface Definition Language
Interface Definition Language
(cid:121) 15 tipos primitivos:
l
t t
i
h
t
(cid:121) octet, short, long, unsigned short, unsigned
d
t
long, float, double, char, boolean
(cid:121) Constantes de estos tipos: declaradas con const.
Constantes de estos tipos: declaradas con const.
h
d
i
(cid:121) 6 tipos estructurados
(cid:121) Pasados siempre por valor
(cid:121) Pasados siempre por valor
(cid:121)
Comentarios de: TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA (0)
No hay comentarios