Tecnologías Middleware

Anuncio
Tecnologías Middleware
José Merseguer
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
1
Bibliografía y Evaluación
 
The Essential Distributed Objects Survival
Guide
R. Orfali, D. Harkey, J. Edwards
Wiley, 1996
 
 
Seguimiento clases teóricas.
Seguimiento prácticas laboratorio.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
2
1
Contenidos
 
TEORIA (6 horas)
 
 
 
 
Conceptos de Orientación a Objetos (1 hora)
Introducción al Middleware (1 hora)
CORBA (4 horas)
LABORATORIO (6 horas)
 
 
 
RMI (2 horas)
CORBA (2 horas)
EJERCICIOS (2 horas)
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
3
Conceptos de OO
 
 
 
 
 
 
 
Introducción
Concepto de objeto
Clases
Instanciación
Envío de mensajes
Herencia
Polimorfismo
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
4
2
Introducción OO
 
Hasta la aparición del primer lenguaje
orientado a objetos (Simula 67) dentro de un
programa subsistían como entidades
separadas los datos y los procedimientos o
funciones que manipulan esos datos:
 
 
Programas = Algoritmos + Estructuras de Datos.
Aparece el concepto de objeto: entidad de
programación que encapsula datos y
procedimientos que los manipulan.
5
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Concepto de Objeto
 
Entidad de programación con dos componentes:
 
 
 
Parte estática: datos.
Parte dinámica: métodos, procedimientos o funciones que
manipulan en exclusividad esos datos.
Cada objeto posee una interfase que contiene los
servicios que ofrece al mundo exterior.
Encapsulación
I
N
T
E
R
F
A
S
E
métodos
(procedimientos
o funciones)
atribut os
(dat os)
Oc ultación de información
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
6
3
Concepto de Objeto ...
 
 
 
En un lenguaje orientado a objetos, con
ocultación de información, no se puede
acceder libremente a los campos de un
objeto.
Los objetos modelan entidades o conceptos,
reales o abstractos del dominio de discurso
como facturas, coches, personas, colas de
tareas, etc.
Un objeto viene caracterizado por un número
de operaciones y por un estado que recuerda
el efecto de esas operaciones.
7
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Concepto de Objeto ...
EMPLEADO
EMPLEADO
REGISTRO
NOMBRE
FEC_NAC
DNI
EMPLEO
SUELDO
ENDREGISTR O
MODIFICAR _EMPLEO
MODIFICAR _SUELD O
CALCULAR_EDAD
DATOS
NOMBRE
FEC_NAC
DNI
EMPLEO
SUELDO
OPERACIONES
MODIFICAR _EMPLEO
MODIFICAR _SUELD O
CALCULAR_EDAD
INTERFACE
PROGRAMA
PRINCIPAL
 
PROGRAMA
PRINCIPAL
Acceso a los datos: lenguaje convencional vs lenguaje OO.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
8
4
Concepto de Objeto ...
Estado compartido
Función
3
Función
2
Función
1
Función
4
Función
5
Flujo de datos
Flujo de control
 
Los átomos de computación en los sistemas orientados a
funciones son las funciones que operan sobre un estado
compartido.
9
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Concepto de Objeto ...
#1
dibujar
imprim ir
atribut os
actualizar
atribut os
eliminar
#3
inserta r
Flujo de control
#4
limpiar
atribut os
atribut os
eliminar
 
#2
inserta r
dibujar
Flujo de datos
El mecanismo de comunicación se llama paso o envío de mensajes.
Un mensaje origina que un objeto lleve a cabo las oportunas
operaciones.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
10
5
Clases
 
 
 
Muchos objetos similares pueden ser descritos por
una misma definición o esquema general, a esta
definición o descripción se le llama clase.
Una clase es una definición, plantilla o molde que
permite la creación de objetos, y contiene la
descripción de las características comunes de esos
objetos.
Una clase, posee por tanto, dos componentes:
  Parte estática: Campos con nombres, atributos.
 
Parte dinámica: Procedimientos o funciones,
métodos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
11
Clases ...
 
Una definición de clase debe incluir como
mínimo:
 
 
 
 
El nombre de la clase.
Las operaciones públicas, interfase de la misma.
La representación interna de los atributos.
La implementación de la interfase.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
12
6
Instanciación
 
 
 
Operación que permite la creación de
representantes físicos de las clases,
llamados instancias o ejemplares.
Cada objeto o ejemplar es una instancia de
una clase determinada.
Las clases existen en tiempo de compilación
mientras que los objetos existen en tiempo
de ejecución.
13
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Instanciación ...
Articulo
10156
camisa
4567.90
200
Instancia de
 
referencia
descripcion
precio
cantidad
40256
TV porta.
35670
Inicializar
precioTotal
precioTransporte
Retirar
Añadir
30
Instancia de
Instanciación de la clase Artículo.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
14
7
Instanciación ...
 
Atributos de clase:
Compartidos por todas las instancias de esa
clase.
Aquellos atributos cuyo valor reside en la propia
clase .
Difieren de las variables globales en el alcance,
sólo pueden ser utilizadas por las instancias.
 
 
 
15
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Instanciación ...
10156
camisa
4567.90
200
Articulo
referencia
descripcion
precio
cantidad
clase Artículo
....
variable de clase
Ca ntidadMinim a:Integer
....
fin Artículo
50
40256
TV porta.
35670
30
 
Inicializar
precioTot al
precioTransporte
Retirar
Añadir
Instanciación de la clase Artículo con atributos de
clase.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
16
8
Envío de mensajes
 
 
 
A los objetos se puede acceder únicamente a
través de su interfase pública: un objeto puede
acceder a otro mediante el envío de un mensaje .
Paso de mensajes: Proceso de presentar a un
objeto una solicitud para realizar una acción
específica.
Contiene: destinatario del mismo, nombre de la
operación a invocar y una posible lista de
argumentos.
MENSAJE
OBJETO
EMISOR
NOMBRE Y ARGUMENTOS
OBJETO
RECEPTOR
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
17
Envío de mensajes ...
 
 
 
Para que un objeto pueda responder a un
mensaje, éste debe ser parte de su interfase
pública.
Al conjunto de mensajes a los que puede
responder un objeto dado se le llama
comportamiento del objeto.
Cuando el receptor recibe el mensaje, realiza
la operación en la forma que él solo conoce
(y que puede ser cualquiera, con tal de que
haga lo establecido: el emisor nunca
especifica cómo debe llevarse a cabo esa
operación).
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
18
9
Herencia
 
 
 
Relación transitiva entre clases que permite a
una nueva clase utilizar los métodos y
atributos definidos en otra clase como si
fuesen propios.
Mecanismo de reutilización de código.
Permite a los programadores crear nuevas
clases a partir de clases existentes.
19
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Herencia ...
A
Superclase
A
(Clase Padre)
Hereda_de
Hereda_de
C
Hereda_de
B
Subclase
B
(Clase descendiente)
 
Una subclase consta de dos partes:
 
 
Parte derivada: Atributos o métodos que hereda
directamente de su superclase.
Parte emergente: Atributos o métodos que le son propios,
creados especialmente para esa clase.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
20
10
Polimorfismo
 
Un objeto polimórfico es una entidad (por
ejemplo una variable) que puede contener
valores de diferente tipo durante la ejecución
de un programa.
AD-HOC
UNIVERSAL
Sobrecarga
Paramétrico o Genericidad
Coerción
Inclusión
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
21
Polimorfismo ...
 
Sobrecarga: utilizar el mismo símbolo para denotar
operaciones con distinto significado.
 
Coerción: Las operaciones pueden trabajar con tipos
mezclados.
 
Genericidad: Sustitución de argumentos dentro de
un rango de tipos en la llamada a una función.
Definición de clases paramétricas, que son aquellas
que admiten uno o varios tipos como parámetro.
 
Inclusión o controlado por herencia: Variables de un
tipo determinado pueden referirse a instancias de
clases descendientes.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
22
11
Introducción al Middleware
 
 
 
 
Motivación
Software distribuido
Evaluación de Middleware
Componentes
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
23
Motivación
 
Dos hechos
 
 
 
El bajo precio de los servicios de las WAN (Wide
Area Networks).
El bajo precio de los s.o. válidos para red,
multitarea, … (OS/2, Windows, Linux, …).
Cualquier máquina puede ser cliente y
servidor en las “autopistas de la
información”.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
24
12
Software distribuido
 
Rico en procesamiento de Transacciones
 
 
Necesario transacciones anidadas a través de
múltiples servidores, transacciones de larga
duración, transacciones encoladas, …
Capacidad para manejar gran cantidad de
información
 
 
Documentos multimedia.
Superservidores que almacenan y distribuyen la
información.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
25
Software distribuido …
 
Tecnología de agentes
 
 
Todo tipo de agentes: gestión sistema, venta,
estadísticas, …
Software inteligente
 
 
Con s.o. baratos no podemos tener
“administradores de sistemas”.
El software debe saber cómo configurarse y
gestionarse.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
26
13
Software distribuido …
 
Middleware
 
 
Software que reside en el cliente y en el servidor.
Hay tres tipos:
 
 
 
Protocolos de transporte (TCP/IP, AppleTalk, ...)
Sistema Operativo en Red (Netware, LANServer, …)
Service-Specific: gestión de los mensajes entre
procesos u objetos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
27
Middleware Cliente/Servidor
 
 
 
 
Bases de Datos Relacionales
Monitores Transaccionales
Groupware
Objetos Distribuidos
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
28
14
C/S con BDR
 
 
 
Modelo más extendido.
Lanzar sentencias SQL a través de la Red da
bajas prestaciones.
Solución:
 
 
Almacenar en un procedimiento varias sentencias
SQL, el procedimiento reside en el mismo servidor
que la BD à “stored procedures”.
Pero,
 
 
El lenguaje para programar stored precedures
varía de un fabricante a otro à no standard.
También varía la forma de Administrar la BD,
replicar los datos, etc.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
29
C/S con BDR …
 
Ventaja
 
 
 
Existen muchas GUI Tools que hacen fácil crear
aplicaciones C/S à pero “single vendor environments”.
Puentes con entornos visuales.
Desventajas
 
 
SQL es muy pobre manejando procesos.
No existe Middleware SQL standard
 
 
SQL no es lo más adecuado para gestionar información rica
 
 
No hay protocolos estándar para intercambiar mensajes a
trevés de la Red entre productos diferentes.
Sí es interesante para tipos simples, pero NO para multimedia.
Bases de Datos Federadas: entornos de BD
heterogéneas.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
30
15
C/S con Monitores Transac.
 
 
Transaction Processing Monitors (Tuxedo,
Encina, …)
Gozan de buena reputación: robustos.
 
 
Se utilizan para aplicaciones que dan servicio
a miles de clientes.
 
 
Bancos/Mainframes, …
Sistemas de gestión críticos.
Gestión transacciones: balanceo de carga,
levantándolas de posibles caídas, …
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
31
C/S con Monitores Transac…
 
 
Utilizan arquitectura C/S de tres niveles:
interfaz, proceso, datos.
Futuro: matrimonio con los objetos
distribuidos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
32
16
C/S con Groupware
 
 
 
Conjunto de tecnologías que permite representar
procesos complejos centrados alrededor de
actividades humanas colaborativas.
Ejemplo: Lotus Notes.
Cinco tecnologías:
 
 
 
Multimedia, e-mail, Conferencing, Scheduling,
Workflow: se utiliza para dirigir automáticamente eventos
de un programa al siguiente.
Utiliza el concepto de “documento” para referirse a
texto, imágenes, faxes, mail, …(tabla en SQL).
 
Un documento puede ser: mostrado, almacenado,
replicado, enviado a través de la red.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
33
C/S con Groupware …
 
Ventajas
 
 
Es una tecnología flexible que se adapta a la
forma en que la gente hace negocios.
Desventajas
 
 
Es propietario.
No se adapta bien al mundo de las
Transacciones.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
34
17
C/S con Objetos Distribuidos
 
 
Los objetos encapsulan información y
comportamiento.
¿Porqué objetos para C/S?
 
 
 
 
 
Los objetos permiten dividir las aplicaciones en
“componentes”, haciéndolas más manejables.
Se puede modificar un objeto sin afectar al resto
de componentes.
Los objetos pueden viajar a través de la Red,
diferentes máquinas, sistemas operativos, …
Construir aplicaciones C/S ensamblando
componentes.
Pero, necesitamos un estándar …
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
35
Componentes
“Pieza de Sw lo suficientemente pequeña para ser
creada y mantenida, lo suficientemente grande
para ser vendida y soportada, y con interfaces
definidos para comunicarse”
 
A diferencia de los objetos tradicionales pueden
interoperar a través de lenguajes, herramientas,
sistemas operativos y redes.
 
Al igual que los objetos tradicionales soportan
herencia, polimorfismo y encapsulación.
 
Los componentes que no soportan herencia se les
llama “black box components” (COM)
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
36
18
Componentes (características)
 
Es una entidad que se puede vender
 
 
No es una aplicación completa
 
 
 
Es una pieza de Sw binario.
Se diseña para que realice tareas en un “Dominio
de Aplicación”.
Combinando con otros componentes se obtienen
aplicaciones completas.
Se puede utilizar en combinaciones
impredecibles
 
El desarrollador del componente no sabe de qué
aplicaciones finales formará parte.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
37
Componentes (características)
 
Tiene una interfaz bien definida
 
 
Al igual que los objetos tradicionales los
componentes sólo pueden ser manipulados a
través de su interfaz.
Es un objeto interoperable
 
 
Es una entidad Sw independiente del sistema.
Puede ser invocado a través de la red, desde
cualquier sistema operativo, con cualquier
lenguaje o herramienta.
Pieza de Software autocontenida e
independiente de cualquier aplicación.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
38
19
Componentes y objetos
distribuidos
 
 
 
Los objetos distribuidos son por definición
componentes.
En los sistemas de objetos distribuidos la
unidad de trabajo y distribución es el
componente.
Pero, no todos los componentes son objetos.
Ni tampoco distribuidos.
 
Ejemplo: un control OLE (OCX) es un componente
que no es un objeto ni es distribuido.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
39
Supercomponentes
 
Seguridad
 
 
Manejo del ciclo de vida
 
 
Drag and drop.
Notificación de eventos
 
 
Debe gestionar su instanciación, destrucción y archivo.
Soporte para paletas
 
 
Debe ser capaz de autentificarse ante sus clientes y
viceversa.
Debe notificar cuándo le ha sucedido algo de interés.
Gestión de configuración
 
Debe proporcionar una interfaz para configurar sus
propiedades
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
40
20
Supercomponentes …
 
Control de transacciones
 
 
Persistencia
 
 
Debe ser capaz de salvar su estado en un almacenamiento
persistente y recuperarlo posteriormente.
Relaciones
 
 
Debe proteger sus recursos transaccionalmente y cooperar
con otros componentes.
Debe ser capaz de soportar asociaciones con otros
componentes.
Facilidad de uso, autoinstalable, versionado,
…
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
41
CORBA
 
 
 
 
CORBA
OMG
OMA
ORB
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
42
21
¿Qué es CORBA?
 
 
 
Common Object Request Broker
Architecture.
Estándar para objetos distribuidos.
Un estándar para interoperabilidad entre
diferentes fabricantes de hardware y
software:
 
 
 
 
 
Una especificación para objetos remotos e interoperables.
Las comunicaciones entre objetos utilizan un Object
Request Broker.
Puede ser soportado por cualquier plataforma.
Los objetos se especifican en IDL.
Cada fabricante implementa su propio producto CORBA
compliant.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
43
¿Qué es un objeto CORBA?
 
 
Un objeto que puede vivir en cualquier lugar
de una red.
Un objeto empaquetado como un
“componente binario”, de modo que
cualquier cliente puede invocar sus métodos:
 
 
 
No necesita saber dónde está el objeto servidor,
ni sobre qué sistema operativo corre, ni cómo
está implementado.
Lo único que necesita conocer el objeto
cliente es la interfaz del objeto servidor.
Un objeto distribuido CORBA es un
componente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
44
22
Existen otros estándares …
 
COM (Common Object Model):
 
 
 
 
Es de Microsoft
Es un estándar binario
OpenDoc.
RMI.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
45
¿Qué es OMG?
 
 
 
 
Object Management Group.
Un comité responsable de especificar los
estándares CORBA.
Más de 600 compañías (IBM, HP, Sun, …).
Muchas compañías en OMG también
soportan COM.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
46
23
Todo es IDL
 
 
Lenguaje declarativo.
Se utiliza para especificar componentes:
 
 
Atributos, métodos, clases padre, …
La implementación de los métodos puede hacerse en
cualquier lenguaje que tenga “binding” con IDL:
 
La invocación a los métodos se hará en este lenguaje.
 
IDL es independiente del sistema operativo y del
lenguaje de programación.
 
Permite que objetos clientes y servidores
implementados en diferentes lenguajes y sistemas
operativos puedan interoperar.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
47
OMA
 
 
OMG Management Architecture para C/S.
Tres grandes segmentos:
 
1. Application Objects
 
 
2. System Oriented (ORB, Object Services)
 
 
Componentes cercanos al usuario final.
Se refiere a los aspectos de infraestructura de la
computación distribuida.
3. Common Facilities
 
3.1. Horizontales.
 
3.2. Verticales (Domain Interfaces): objetos para
“dominios de aplicación” específicos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
48
24
OMA
Application
Objects
Domain
Interfaces
Common Facilities
Information
Task
User
Interface Management System Management
Management
Object Request Broker
Naming
Persistence
Externalization
Life Cycle
Events
Properties
Transactions
Concurrency
Query
Collections
Relationships
Time
Security
Trader
Change Licensing
Management
Object Services
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
49
ORB
 
 
 
 
Comercialmente CORBA™.
Permite a los objetos hacer peticiones (y
recibir respuestas) de otros objetos.
Invocación dinámica y estática de métodos.
Peticiones transparentes (Local y Remota):
 
ORB puede manejar llamadas entre objetos en un
único proceso, en muchos procesos corriendo en
la misma máquina, en muchos procesos
corriendo en diferentes máquinas con diferentes
sistemas operativos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
50
25
ORB …
 
Enlaces con lenguajes de alto nivel
 
 
 
Seguridad y Transacciones
 
 
Permite invocar métodos de objetos servidores
desde tu lenguaje de programación.
Lenguajes soportados: C, C++, Cobol, Ada, Java
El ORB incluye en los mensajes información de
contexto para manejar seguridad y transacciones.
Mensajes polimórficos
 
El ORB no sólo invoca una función remota sino
que lo hace sobre un objeto determinado. Por
tanto la misma función puede tener efectos
diferentes (diferencia con RPC).
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
51
ORB …
 
Self-describing system
 
 
 
 
CORBA proporciona metainformación en tiempo de
ejecución para describir cualquier objeto servidor conocido
por el sistema (Interface Repository).
Interface Repository: contiene información describiendo
las funciones (y sus parámetros) de los objetos servidores.
Los clientes usan la metainformación en tiempo de
ejecución para saber qué servicios pueden utilizar.
La metainformación ha sido generada por el precompilador
IDL o por el compilador del lenguaje.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
52
26
Object Services
 
 
 
Son componentes que
proporcionan servicios, para
los objetos, a nivel de
sistema.
Aumentan la funcionalidad
del ORB.
Se crean utilizando IDL.
 
 
 
 
 
 
 
 
 
 
 
 
Naming
Persistence
Events
Transactions
 
 
 
 
Externalization
Life Cycle
Properties
Query
Concurrency
Relationships
Collections
Time
Security
Change Management
Trader
Licensing
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
53
Object Services …
 
Persistence
 
 
Naming
 
 
Permite a los componentes localizar a otros por su nombre.
Events
 
 
Proporciona una interfaz “única” para almacenar
componentes en diferentes tipos de almacenamiento (RDB,
ODB, ficheros, …).
Permite a los componentes registrarse o borrarse en
eventos especificos.
Transactions
 
Proporciona un protocolo que permite a los componentes
manejar transacciones normales y anidadas.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
54
27
Object Services …
 
Externalization
 
 
Life Cycle
 
 
Define operaciones para crear, copiar, mover y borrar
componentes en el ORB.
Properties
 
 
Proporciona una forma estándar (stream-like) de introducir y
sacar información de los componentes.
Proporciona operaciones que permiten poner propiedades al
componente (fecha, hora, …).
Query
 
Permite operaciones de query a los componentes. Basado
en SQL3 y en el OQL de OMG.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
55
Object Services …
 
Concurrency
 
 
Relationships
 
 
Proporciona un manejador de bloqueos para transacciones.
Permite crear dinámicamente asociaciones entre los
componentes y recorrerlas.
Licensing, Collections,Time,Security,Change
Management,Trader.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
56
28
Object Services …
 
Los Object Services permiten la creación de
middleware “bajo demanda”
 
 
El programador CORBA programa sin preocuparse
de los Object Services.
Ejem: el programador CORBA programa un
componente y quiere que éste sea persistente y
soporte transacciones.
¿Cómo lo hace?
Hace que su componente sea herencia múltiple de
los componentes Persistence y Transaction.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
57
Common Facilities (Horizont.)
 
 
Comercialmente CORBAfacilities.
Colecciones de componentes (definidos con
IDL) que proporcionan servicios a los
Application Objects.
 
 
Ejemplos: utilidades de impresión, gestión de
documentos, gestión de BD, correo electrónico.
La estandarización de operaciones genéricas
produce facilidad a los usuarios finales para
configurar sus entornos de trabajo.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
58
29
Common Facilities (Horizont.)
 
Tipos:
 
 
User Interface.
Information Management.
 
 
System Management.
 
 
Ejem: gestión de documentos
Ejem: configuración, instalación de objetos distribuidos
Task Management.
 
Ejem: correo electrónico
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
59
Common Facilities (Verticales)
 
Domain Interfaces.
 
Combinan las Common Facilities y los Object
Services pero dirigidos a un mercado vertical.
 
OMG ha estandarizado interfaces para
Telecomunicaciones, Mercados Financieros y
Servicios Médicos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
60
30
Application Objects
 
 
 
 
 
Componentes específicos para aplicaciones
finales.
Se crean utilizando IDL.
Se construyen utilizando los servicios del
ORB, Object Services, Common Facilities y
Domain Interfaces.
No estandarizados por OMG.
No son aplicaciones finales.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
61
ORB Características
 
Middleware que establece mecanismos
básicos para comunicar objetos de forma
transparente.
 
 
 
Transparente ya que el objeto cliente invoca
métodos del objeto servidor sin preocuparse de
dónde está, en qué lenguaje ha sido
implementado, …
El ORB intercepta la llamada, busca un objeto
con un método que la pueda resolver, le pasa
los parámetros y devuelve los resultados.
ORB permite que la invocación de métodos
sea estática o dinámica.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
62
31
Arquitectura del ORB
Object
Implementation
Cliente
Almacen
de
Interfaces
Interfaz
Esquemas
para la
invocación IDL para el
dinámica Cliente
Interfaz
del
ORB
Esquemas
Estáticos
Invocación
Almacen
Esquemas Adaptador
de
Dinámicos de
Implemenobjetos
taciones
ORB Core
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
63
Parte Cliente
 
Esquemas IDL para el Cliente
 
 
 
Son esquemas compilados que definen cómo los
objetos cliente invocan los servicios de los
objetos servidores.
El esquema actúa como una llamada local.
Un esquema por interfaz.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
64
32
Parte Cliente …
 
Interfaz para la invocación dinámica
 
 
Permite descubrir el método a invocar en tiempo
de ejecución.
CORBA define APIs estándar (API de Invocación
Dinámica) para:
 
 
 
 
Buscar (en el AI) la metainformación que describe la
interfaz del objeto servidor.
Generar los parámetros.
Lanzar la llamada remota.
Conseguir los resultados.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
65
Parte Cliente …
 
Almacén de Interfaces
 
 
Es una Base de Datos en tiempo de ejecución que
contiene las interfaces IDL de los objetos
servidores.
APIs del Almacén de Interfaces
 
Permiten obtener y modificar las interfaces
(métodos y sus parámetros) de todos los objetos
registrados.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
66
33
Parte Cliente y Servidora
 
Interfaz del ORB
 
 
APIs para servicios locales que pueden ser de
interés a una aplicación.
Ejemplos:
 
 
 
Convertir una referencia a un objeto en un string y
viceversa (string_to_object, object_to_string).
Connect, disconnect, init, ..
Las llamadas no son parte del mecanismo de
invocación C/S.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
67
Parte Servidora
 
Esquemas IDL estáticos para el servidor
 
 
 
Se generan utilizando el compilador de IDL.
Proporcionan interfaces estáticas para cada
servicio exportado por el servidor.
Son el equivalente en la parte servidora a los
Esquemas IDL para el Cliente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
68
34
Parte Servidora …
 
Invocación de Esquemas dinámicos
 
 
 
 
Proporciona un mecanismo de “enlazado” en
tiempo de ejecución para manejar llamadas a
métodos que no tienen esquemas IDL
compilados.
Mira los valores de los parámetros en el mensaje
recibido para descubrir el objeto y el método al
que va destinado.
Son útiles para implementar puentes entre ORBs.
Es análogo al Interfaz de Invocación Dinámica en
la parte cliente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
69
Parte Servidora …
 
Adaptador de Objetos
 
 
 
Interfaz con los servicios de comunicación que
ofrece el ORB Core.
Acepta peticiones sobre los métodos de los
objetos servidores.
Proporciona un entorno en tiempo de ejecución
para instanciar objetos servidores, asignarles
“referencias” y pasarles peticiones de servicios.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
70
35
Parte Servidora …
 
Adaptador de Objetos …
 
 
Registra las clases que soporta y sus objetos en
tiempo de ejecución en el Almacen de
Implementaciones.
CORBA especifica que cada ORB debe soportar
un adaptador estándar, llamado Adaptador Básico
de Objetos.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
71
Parte Servidora …
 
Almacén de Implementaciones
 
Es un almacén de información sobre:
 
 
 
Las clases que soporta el servidor.
Los objetos que están instanciados y sus
identificadores.
Información adicional asociada con la implementación
de ORBs.
  Ejem: seguridad, auditorias, ...
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
72
36
CORBA ...
 
 
 
 
 
Invocación Estática vs. Dinámica.
Adaptador de Objetos.
Adaptador de Objetos Básico.
Inicialización de un objeto en un ORB.
Interoperabilidad de ORBs.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
73
Invocación Dinámica/Estática
 
Invocación estática
 
 
Ventajas (invocación estática):
 
 
 
 
Generada en forma de esqueletos por el compilador de IDL.
Es útil para programas que en tiempo de compilación
conocen las particularidades de las operaciones que
necesitarán invocar.
Chequeo de tipos robusto (compilador).
Buenas prestaciones.
Ventajas (invocación dinámica):
 
Flexible (permite añadir clases al sistema sin cambios en el
código del cliente).
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
74
37
CORBA: Invocación Estática
 
1. Declarar las clases
 
 
2. Precompilar los ficheros IDL
 
 
Con IDL declararemos el nombre de la clase, los
atributos, los métodos y sus parámetros.
Con un precompilador CORBA-compliant
precompilamos y generamos los esquemas de las
clases.
3. Añadir la implementación a los esquemas
 
Implementar en el lenguaje objetivo los métodos
declarados en los esquemas.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
75
CORBA: Invoc. Estática …
 
4. Compilar el código
 
Un compilador CORBA-compliant generará
cuatro tipos de ficheros:
 
 
 
 
 
Código que implementa las clases servidoras.
Esquemas para el Cliente (Client stub): esquemas que serán
invocados por un programa cliente que necesite acceder
estáticamente.
Esquemas para el Servidor (Server stub): llama a los métodos
en el servidor.
Ficheros a Importar (Import Files): describen los objetos en el
Almacen de Interfaces.
5. Enlazar las definiciones de las clases al
Almacen de Interfaces.
 
Hay una utilidad que lo hace.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
76
38
CORBA: Invoc. Estática …
 
6. Instanciar los objetos en el servidor.
 
 
Misión del Adaptador de Objetos.
7. Registrar los objetos en ejecución en el
Almacen de Implementaciones.
 
 
El Adaptador de Objetos graba en el Almacen de
Implementaciones la referencia y el tipo de
cualquier objeto instanciado en el servidor.
El Almacen de Implementaciones también sabe
qué clases son soportadas en un servidor
particular. El ORB utiliza esta información para
localizar objetos activos o peticiones de
activación de objetos en un servidor particular.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
77
CORBA: Invocación Dinámica
 
 
La API de invocación dinámica permite a los
objetos cliente construir e invocar
dinámicamente peticiones a los objetos
servidores.
Pasos para invocar un método dinámico:
 
1. Obtener del AI la descripción del método.
 
 
CORBA proporciona unas 10 llamadas para localizar y
describir los objetos del Almacen de Interfaces. Ejem:
lookup_name(), describe(), …
2. Crear la lista de argumentos.
 
CORBA especifica una estructura de datos para pasar
parámetros NamedValueList y operaciones create_list()
y add_arg()
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
78
39
CORBA: Invoc. Dinámica …
 
3. Crear la solicitud.
 
 
Se crea con create_request() y se especifica la referencia
del objeto, el nombre del método y la lista de
argumentos.
4. Lanzar la solicitud. Tres formas:
  1. Invoque envía la solicitud y obtiene los
resultados.
  2. Send devuelve el control al programa que
debe lanzar un get_response o un
get_next_response.
  3. Send sin esperar respuesta.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
79
Parte Servidora: Adp. Objetos
 
¿Qué necesita un Componente del ORB en la
parte servidora?
 
 
 
 
 
 
Que se registren las clases de la aplicación.
Instanciar nuevos objetos y darles identificadores.
Informar de la existencia de estos.
Invocar sus métodos a petición de los clientes
(posiblemente concurrentes).
Balanceo de carga, gestión de transacciones, etc.
Adaptador de Objetos.
 
Proporciona un entorno para ejecutar la aplicación
servidora.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
80
40
Estructura del AO
Object Implementation
6.Pasar llamada
al método
Esquema
Interfaz A
ID
ID
ID
Esquema
Interfaz B
1.Registrar
nuevas clases
3.Referencias
a objetos
2.Crear nuevos
Almacen de
objetos
Adaptador de Objetos
5.Gestionar
peticiones
Implementaciones
4.Informar de
los servicios
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
81
Adaptador de Objetos
 
Servicios del Adaptador de Objetos:
 
1. Registra y almacena las clases del servidor en
el Almacén de Implementaciones.
 
 
2. Instancia objetos servidores en tiempo de
ejecución.
 
 
El AO gestiona las clases del servidor en el AI.
Lo hace en el Almacén de Implementaciones, las instancias se
crean en función de las peticiones de los clientes.
3. Crea y gestiona referencias a los objetos.
 
A cada nuevo objeto el Adaptador le crea y asigna una nueva
referencia (ID).
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
82
41
Adaptador de Objetos …
 
4. Da a conocer la existencia de los objetos
servidores.
 
 
5. Gestiona las llamadas de los objetos clientes.
 
 
 
Puede propagar al ORB Core los servicios que
proporciona o puede responder a querys del ORB Core.
El Adaptador de Objetos interactúa con el nivel más alto
del ORB Core , desgrana la petición y se la pasa al
Esquema del objeto.
El Esquema es responsable de interpretar los
parámetros y presentarlos de forma adecuada al objeto
servidor que invocará el método.
6. Direcciona la llamada al método apropiado.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
83
Adaptador de Objetos Básico
 
 
Un servidor podría soportar diferentes tipos
de Adaptadores de Objetos para satisfacer
diferentes tipos de peticiones.
Ejemplo:
 
un ODBMS podría querer registrar implicitamente
todos los objetos que contiene sin lanzar
llamadas al AO. En este caso no tendría sentido
que el AO mantuviese un estado para cada objeto.
El ODBMS podría querer un AO de propósito
específico, que no sólo interactuase con el ORB
Core sino que también satisfaga sus intereses.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
84
42
Adaptador Objetos Básico …
 
 
 
CORBA prefiere que no proliferen diferentes
tipos de Adaptadores de Objetos.
Para evitarlo especifica el Adaptador de
Objetos Básico.
Servicios:
 
 
 
El Almacen de Implementaciones debe proporcionar la
información que describe a los objetos servidores.
Mecanismos para generar e interpretar referencias de
objetos; activar y desactivar objetos servidores; invocar
métodos y pasar sus parámetros a través de los esquemas.
Mecanismo para autentificar al Cliente que hace la llamada.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
85
Adaptador Objetos Básico …
 
 
No especifica cómo se localizan los
métodos.
Políticas para activación (planificación)
de objetos servidores:
 
 
 
 
Servidor compartido.
Servidor no compartido.
Servidor por método.
Servidor persistente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
86
43
AOB (Servidor compartido) …
Proceso
Aplicación
Primera llamada
entra.
Las demás esperan
Esquema
Interfaz A
Esquema
Interfaz B
Adaptador Objetos Básico
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
87
AOB (Servidor compartido) …
 
 
 
Crear un proceso por clase, todas las
peticiones se dirijen a él.
Muchos objetos residen en el mismo
proceso.
La primera vez que llega una petición para
algún objeto del tipo se crea el proceso:
 
 
impl_is_ready: el proceso indica que puede
manejar peticiones.
El proceso maneja una petición a la vez:
 
 
deactivate_obj: fin de procesar una petición.
deactivate_impl: el proceso puede terminar.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
88
44
AOB (Serv. no compartido) …
Proceso
Proceso
Aplicación
Proceso
Esquema
Interfaz A
Proceso
Esquema
Interfaz B
Adaptador
Objetos
Básico
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
89
AOB (Serv. no compartido) …
 
 
Cada objeto reside en un proceso.
La primera vez que llega una petición para un
objeto se crea el proceso.
 
 
 
obj_is_ready, el proceso indica que puede
manejar peticiones.
Cuando llega una petición para un objeto no
activo se crea un proceso, aunque haya uno
creado para algún objeto del mismo tipo.
deactivate_obj, deja de procesar peticiones.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
90
45
AOB (Serv. por método) …
Proceso
El proceso
termina con
la ejecución
del método.
Proceso
Proceso
Aplicación
Esquema
Interfaz A
Esquema
Interfaz B
Adaptador
Objetos
Básico
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
91
AOB (Serv. por método) …
 
 
 
Se crea un proceso por petición à no es
necesario indicar cuándo se está activo y
cuándo no .
Diferentes procesos para el mismo objeto (e
incluso el mismo método) pueden estar
activos concurrentemente.
El proceso se destruye cuando concluye la
ejecución para la que había sido creado à no
hace falta notificaciones.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
92
46
AOB (Serv. persistente) …
Proceso
Proceso
Proceso
Aplicación
específica.
Aplicación
Planificador
Esquema
Interfaz A
Esquema
Interfaz B
Adaptador
Objetos
Básico
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
93
AOB (Serv. persistente) …
 
 
 
Los procesos no son activados por el ABO.
impl_is_ready, notifica al ABO que está
preparado para aceptar peticiones.
El ABO trata las siguientes peticiones como
llamadas a servidor compartido.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
94
47
Inicialización
 
¿Cómo encuentra un Componente su ORB?
 
CORBA define un conjunto de APIs de
inicialización que permiten a un objeto insertarse
en el entorno de un ORB.
 
 
 
Descubrir su ORB, ABO y Almacén de Interfaces.
Pseudo-objeto:objeto creado directamente
por un ORB.
Operaciones para insertarse:
 
1. Obtener una referencia al ORB.
 
Lanzar la llamada ORB_init para informar al ORB de su
presencia y obtener la referencia al ORB.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
95
Inicialización …
 
2. Obtener una referencia al Adaptador de
Objetos.
 
 
3. Descubrir qué servicios iniciales están
disponibles.
 
 
Invocar el método BOA_init del ORB para decir al AOB
que está ahí y obtener su referencia.
Invocar el método list_initial_services del ORB para
obtener la lista de objetos conocidos.
4. Obtener referencias a los objetos cuyos
servicios desee invocar.
 
Invocar el método resolve_initial_references.
El objeto ya es un ciudadano en el ORB.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
96
48
Inicialización …
Objeto
Nuevo
CORBA
API
ORB
ORB_init
BOA_init
list_initial_services
resolve_initial_references
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
97
Interoperabilidad ORBs
 
 
 
 
Objetivo: transferir peticiones de un ORB a
otro à Comunicaciones ORB-to-ORB.
Las primeras versiones de CORBA no
estandarizaron interoperabilidad entre ORBs.
Es necesario que exista interoperabilidad
entre los ORBs de diferentes fabricantes.
CORBA especifica los protocolos:
 
 
IIOP (Internet Inter-ORB Protocol).
GIOP (General Inter-ORB Protocol).
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
98
49
Interoperabilidad ORBs ...
Modelo OSI
CORBA
Aplicación
ORB
Presentación
GIOP
Sesión
IIOP
Transporte
TCP
Red
IP
Enlace
Enlace
Físico
Físico
99
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Arquitectura Inter-ORB
Sintaxis de
mensajes y
transferencia
Transporte
Obligatorio
CORBA
IDL
Petición
General Inter-ORB
Protocol (GIOP)
Internet
Inter-ORB
Protocol
(IIOP)
...
TCP/IP
Otros
por ejemplo
OSI
IPX/SPX
Opcional
Environment Specific
Inter-ORB Protocols (ESIOP)
DCE/ESIOP
DCE RPC
sobre
TCP/IP
DCE RPC
sobre
OSI
etc.
...
Internet
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
100
50
GIOP
 
 
 
 
 
General Inter-ORB Protocol.
General por ser independiente del protocolo
de transporte.
Específico para interacciones ORB-to-ORB.
Diseñado para protocolos de transporte
orientados a conexión.
Especifica un conjunto de formatos de
mensajes y representación de datos para
comunicaciones entre ORBs.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
101
GIOP (Objetivos Diseño)
 
Mayor accesibilidad posible.
 
 
Simple.
 
 
 
GIOP/IIOP está asociado a TCP/IP, utiliza Internet
(mecanismo de transporte más accesible).
Sólo tiene en cuenta interacciones ORB-to-ORB.
Escalable.
Bajo coste.
 
 
Internet.
Ejemplo: comunicación CORBA con EJB.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
102
51
GIOP (Objetivos Diseño...)
 
General.
 
 
El formato de mensaje es independiente del
medio de transporte.
Independiente de la arquitectura.
 
No hace suposiciones sobre la arquitectura del
ORB.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
103
GIOP (Elementos)
 
Requerimientos de interoperabilidad entre
ORBs:
 
 
 
Encapsulación: dos ORBs que se comunican
desconocen los mecanismos internos.
El protocolo de transporte proporciona soporte
total a la funcionalidad de CORBA.
Para ello es necesario:
 
 
 
Common Data Representation (CDR): cómo se
representan los datos en el transporte.
Formato de los mensajes.
Suposiciones de transporte.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
104
52
GIOP (CDR)
 
Objetivo: transformar los tipos de datos de
IDL en una representación de mensajes de
red.
 
 
El cliente envía el mensaje en su arquitectura
nativa.
 
 
Eficiente y segura.
En el mensaje se indica la codificación (bigendian/little endian).
El servidor se encarga de transformarlo a su
arquitectura.
105
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
GIOP (Mensajes)
 
Sólo 8 formatos de
mensaje:
 
 
 
Sencillez.
Proporcionan toda la
funcionalidad necesaria
que dos ORBs
necesitan para
comunicarse.
Proporcionan el soporte
necesario para toda la
funcionalidad de
CORBA.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Request
Cliente
LocateRequest
Cliente
CancelRequest
Cliente
CloseConnection
Cliente y Servidor
MessageError
Cliente y Servidor
Fragment
Cliente y Servidor
Reply
Servidor
LocateReply
Servidor
106
53
GIOP (Suposiciones)
 
Soporte bidireccional (full duplex).
 
 
 
 
El cliente abre la conexión.
El servidor sólo puede enviar mensajes en una
conexión ya abierta à No necesita conocer la
dirección del cliente.
Cualquiera de las dos partes puede terminar la
conexión.
El ORB puede multiplexar mensajes.
 
 
En una única conexión muchos clientes pueden
comunicar con un único objeto servidor.
Es posible porque en la petición queda
identificado el objeto.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
107
GIOP (Suposiciones...)
 
El protocolo de transporte es orientado a
conexión.
 
 
El cliente puede tener abierta una conexión con el
servidor para más de una transmisión.
Si ocurre un error durante la transmisión
ambas partes son informadas.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
108
54
IIOP
 
 
 
 
 
Es la implementación de GIOP sobre TCP/IP.
Especifica cómo deben ser intercambiados
los mensajes GIOP en una red TCP/IP.
IIOP hace posible el uso de Internet como el
armazón ORB a través del cual otros ORBs
pueden puentear.
Define un perfil para ser incluido en una IOR.
Para instanciar GIOP, IIOP define cómo el
perfil codifica TCP/IP info en una IOR, así el
servidor puede comunicar con el cliente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
109
IIOP ...
 
IOR:
 
 
 
ID de repositorio: el tipo del objeto.
Perfiles: cada perfil encapsula info para localizar
y comunicar con un objeto.
Perfil IIOP:
 
 
 
Versión IIOP.
Identificación del host servidor (dirección IP) y
número de puerto.
Identificador del objeto servidor.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
110
55
ESIOPs
 
 
 
 
Environment-Specific Inter-ORB Protocols.
Existen varios, son opcionales, CORBA
señala DCE como el primero.
DCE soporta IOR usando CDCE tagged
profile.
DCE utiliza GIOP CDR para representar los
tipos IDL sobre DCE RPC, por tanto DCE IDL
no es necesario. En cambio los tipos de OMG
IDL y CDR son mapeados en DCE´s native
Network Data Representation.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
111
ESIOPs …
 
 
DCE proporciona un robusto entorno para
ORBs con misiones críticas.
Características:
 
 
 
 
 
Seguridad Kerberos.
Directorios globales.
Tiempo distribuido.
Múltiples protocolos de transporte (TCP/IP, …).
Permite transmitir gran cantidad de información
de forma eficiente.
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
112
56
Puentes ORB-to-ORB
 
CORBA proporciona los mecanismos necesarios
para crear puentes ORB-to-ORB (también utilizados
para crear pasarelas a OLE/COM).
Cliente
Operación lógica de solicitud C/S
Interfaz
invocación
dinámica
Puente
ORB A
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
Servidor
Invocación
Esquemas
Dinámicos
ORB B
113
ORBs Federados
 
 
Se pueden utilizar puentes entre ORB y IIOPs
para crear topologías más flexibles.
Se pueden segmentar ORBs en dominios
basados en necesidades administrativas,
protocolos de red, carga en el tráfico, tipos
de servicio, seguridad, …
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
114
57
ORBs Federados …
Esqueleto ORB (DCCE/ESIOP)
ORB A
ORB B
Esqueleto ORB (IIOP)
ORB A
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
ORB B
115
Para saber más
 
The Common Object Request Broker: Architecture
and Specification
OMG Document
Revision 3.0.2
Disponible: http://www.omg.org
5007437 Tecnologías Middleware. Doctorado de Ingeniería de Sistemas e Informática
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
José Merseguer
116
58
Descargar