You are on page 1of 58

Tecnologas Middleware

Jos Merseguer

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
1
Jos Merseguer

Bibliografa y Evaluacin
The Essential Distributed Objects Survival
Guide
R. Orfali, D. Harkey, J. Edwards
Wiley, 1996
Seguimiento clases tericas.
Seguimiento prcticas laboratorio.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
2
Jos Merseguer

1
Contenidos
TEORIA (6 horas)
Conceptos de Orientacin a Objetos (1 hora)
Introduccin al Middleware (1 hora)
CORBA (4 horas)

LABORATORIO (6 horas)
RMI (2 horas)
CORBA (2 horas)
EJERCICIOS (2 horas)

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
3
Jos Merseguer

Conceptos de OO
Introduccin
Concepto de objeto
Clases
Instanciacin
Envo de mensajes
Herencia
Polimorfismo

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
4
Jos Merseguer

2
Introduccin OO
Hasta la aparicin del primer lenguaje
orientado a objetos (Simula 67) dentro de un
programa subsistan 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
programacin que encapsula datos y
procedimientos que los manipulan.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
5
Jos Merseguer

Concepto de Objeto
Entidad de programacin con dos componentes:
Parte esttica: datos.
Parte dinmica: mtodos, procedimientos o funciones que
manipulan en exclusividad esos datos.
Cada objeto posee una interfase que contiene los
servicios que ofrece al mundo exterior. Encapsulacin

I
N
T
E mtodos atribut os
R (procedimientos
(dat os)

F o funciones)
A
S
E

Oc ultacin de informacin

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
6
Jos Merseguer

3
Concepto de Objeto ...
En un lenguaje orientado a objetos, con
ocultacin de informacin, 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 nmero
de operaciones y por un estado que recuerda
el efecto de esas operaciones.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
7
Jos Merseguer

Concepto de Objeto ...


EMPLEADO EMPLEADO

REGISTRO
NOMBRE DATOS
FEC_NAC NOMBRE
DNI FEC_NAC
EMPLEO DNI
SUELDO EMPLEO
ENDREGISTR O SUELDO

MODIFICAR _EMPLEO OPERACIONES


MODIFICAR _SUELD O
CALCULAR_EDAD MODIFICAR _EMPLEO
MODIFICAR _SUELD O
CALCULAR_EDAD

INTERFACE

PROGRAMA PROGRAMA
PRINCIPAL PRINCIPAL

Acceso a los datos: lenguaje convencional vs lenguaje OO.


5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
8
Jos Merseguer

4
Concepto de Objeto ...
Estado compartido

Funcin Funcin Funcin


1 2 3

Funcin Funcin
4 5

Flujo de control Flujo de datos

Los tomos de computacin en los sistemas orientados a


funciones son las funciones que operan sobre un estado
compartido.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
9
Jos Merseguer

Concepto de Objeto ...


dibujar #1 inserta r #2

imprim ir atribut os atribut os

actualizar eliminar

inserta r #3 limpiar #4

atribut os atribut os

eliminar dibujar

Flujo de control Flujo de datos

El mecanismo de comunicacin se llama paso o envo de mensajes.


Un mensaje origina que un objeto lleve a cabo las oportunas
operaciones.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
10
Jos Merseguer

5
Clases
Muchos objetos similares pueden ser descritos por
una misma definicin o esquema general, a esta
definicin o descripcin se le llama clase.
Una clase es una definicin, plantilla o molde que
permite la creacin de objetos, y contiene la
descripcin de las caractersticas comunes de esos
objetos.
Una clase, posee por tanto, dos componentes:
Parte esttica: Campos con nombres, atributos.
Parte dinmica: Procedimientos o funciones,
mtodos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
11
Jos Merseguer

Clases ...
Una definicin de clase debe incluir como
mnimo:
El nombre de la clase.
Las operaciones pblicas, interfase de la misma.
La representacin interna de los atributos.
La implementacin de la interfase.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
12
Jos Merseguer

6
Instanciacin
Operacin que permite la creacin de
representantes fsicos de las clases,
llamados instancias o ejemplares.
Cada objeto o ejemplar es una instancia de
una clase determinada.
Las clases existen en tiempo de compilacin
mientras que los objetos existen en tiempo
de ejecucin.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
13
Jos Merseguer

Instanciacin ...
Articulo

referencia
10156 descripcion
40256
precio
camisa cantidad TV porta.

4567.90 35670
Inicializar
200 precioTotal 30
precioTransporte
Retirar
Aadir
Instancia de Instancia de

Instanciacin de la clase Artculo.


5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
14
Jos Merseguer

7
Instanciacin ...
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,
slo pueden ser utilizadas por las instancias.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
15
Jos Merseguer

Instanciacin ...
10156

camisa

4567.90 Articulo clase Artculo


....
200 referencia variable de clase
descripcion Ca ntidadMinim a:Integer
....
precio
cantidad
fin Artculo
50

40256 Inicializar
precioTot al
TV porta.
precioTransporte
35670 Retirar
Aadir
30

Instanciacin de la clase Artculo con atributos de


clase.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
16
Jos Merseguer

8
Envo de mensajes
A los objetos se puede acceder nicamente a
travs de su interfase pblica: un objeto puede
acceder a otro mediante el envo de un mensaje .
Paso de mensajes: Proceso de presentar a un
objeto una solicitud para realizar una accin
especfica.
Contiene: destinatario del mismo, nombre de la
operacin a invocar y una posible lista de
argumentos.
MENSAJE

OBJETO OBJETO
NOMBRE Y ARGUMENTOS
EMISOR RECEPTOR

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
17
Jos Merseguer

Envo de mensajes ...


Para que un objeto pueda responder a un
mensaje, ste debe ser parte de su interfase
pblica.
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 operacin en la forma que l solo conoce
(y que puede ser cualquiera, con tal de que
haga lo establecido: el emisor nunca
especifica cmo debe llevarse a cabo esa
operacin).
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
18
Jos Merseguer

9
Herencia
Relacin transitiva entre clases que permite a
una nueva clase utilizar los mtodos y
atributos definidos en otra clase como si
fuesen propios.
Mecanismo de reutilizacin de cdigo.
Permite a los programadores crear nuevas
clases a partir de clases existentes.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
19
Jos Merseguer

Herencia ...
A Superclase A

(Clase Padre)
Hereda_de

C
Hereda_de

Hereda_de

Subclase
B
B
(Clase descendiente)

Una subclase consta de dos partes:


Parte derivada: Atributos o mtodos que hereda
directamente de su superclase.
Parte emergente: Atributos o mtodos que le son propios,
creados especialmente para esa clase.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
20
Jos Merseguer

10
Polimorfismo
Un objeto polimrfico es una entidad (por
ejemplo una variable) que puede contener
valores de diferente tipo durante la ejecucin
de un programa.

AD-HOC UNIVERSAL
Sobrecarga Paramtrico o Genericidad
Coercin Inclusin

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
21
Jos Merseguer

Polimorfismo ...
Sobrecarga: utilizar el mismo smbolo para denotar
operaciones con distinto significado.
Coercin: Las operaciones pueden trabajar con tipos
mezclados.
Genericidad: Sustitucin de argumentos dentro de
un rango de tipos en la llamada a una funcin.
Definicin de clases paramtricas, que son aquellas
que admiten uno o varios tipos como parmetro.
Inclusin o controlado por herencia: Variables de un
tipo determinado pueden referirse a instancias de
clases descendientes.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
22
Jos Merseguer

11
Introduccin al Middleware
Motivacin
Software distribuido
Evaluacin de Middleware
Componentes

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
23
Jos Merseguer

Motivacin
Dos hechos
El bajo precio de los servicios de las WAN (Wide
Area Networks).
El bajo precio de los s.o. vlidos para red,
multitarea, (OS/2, Windows, Linux, ).
Cualquier mquina puede ser cliente y
servidor en las autopistas de la
informacin.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
24
Jos Merseguer

12
Software distribuido
Rico en procesamiento de Transacciones
Necesario transacciones anidadas a travs de
mltiples servidores, transacciones de larga
duracin, transacciones encoladas,
Capacidad para manejar gran cantidad de
informacin
Documentos multimedia.
Superservidores que almacenan y distribuyen la
informacin.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
25
Jos Merseguer

Software distribuido
Tecnologa de agentes
Todo tipo de agentes: gestin sistema, venta,
estadsticas,
Software inteligente
Con s.o. baratos no podemos tener
administradores de sistemas.
El software debe saber cmo configurarse y
gestionarse.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
26
Jos Merseguer

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: gestin de los mensajes entre
procesos u objetos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
27
Jos Merseguer

Middleware Cliente/Servidor
Bases de Datos Relacionales
Monitores Transaccionales
Groupware
Objetos Distribuidos

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
28
Jos Merseguer

14
C/S con BDR
Modelo ms extendido.
Lanzar sentencias SQL a travs de la Red da
bajas prestaciones.
Solucin:
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
vara de un fabricante a otro no standard.
Tambin vara la forma de Administrar la BD,
replicar los datos, etc.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
29
Jos Merseguer

C/S con BDR


Ventaja
Existen muchas GUI Tools que hacen fcil crear
aplicaciones C/S pero single vendor environments.
Puentes con entornos visuales.
Desventajas
SQL es muy pobre manejando procesos.
No existe Middleware SQL standard
No hay protocolos estndar para intercambiar mensajes a
trevs de la Red entre productos diferentes.
SQL no es lo ms adecuado para gestionar informacin rica
S es interesante para tipos simples, pero NO para multimedia.
Bases de Datos Federadas: entornos de BD
heterogneas.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
30
Jos Merseguer

15
C/S con Monitores Transac.
Transaction Processing Monitors (Tuxedo,
Encina, )
Gozan de buena reputacin: robustos.
Bancos/Mainframes,
Se utilizan para aplicaciones que dan servicio
a miles de clientes.
Sistemas de gestin crticos.
Gestin transacciones: balanceo de carga,
levantndolas de posibles cadas,

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
31
Jos Merseguer

C/S con Monitores Transac


Utilizan arquitectura C/S de tres niveles:
interfaz, proceso, datos.
Futuro: matrimonio con los objetos
distribuidos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
32
Jos Merseguer

16
C/S con Groupware
Conjunto de tecnologas que permite representar
procesos complejos centrados alrededor de
actividades humanas colaborativas.
Ejemplo: Lotus Notes.
Cinco tecnologas:
Multimedia, e-mail, Conferencing, Scheduling,
Workflow: se utiliza para dirigir automticamente eventos
de un programa al siguiente.
Utiliza el concepto de documento para referirse a
texto, imgenes, faxes, mail, (tabla en SQL).
Un documento puede ser: mostrado, almacenado,
replicado, enviado a travs de la red.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
33
Jos Merseguer

C/S con Groupware


Ventajas
Es una tecnologa 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
34
Jos Merseguer

17
C/S con Objetos Distribuidos
Los objetos encapsulan informacin y
comportamiento.
Porqu objetos para C/S?
Los objetos permiten dividir las aplicaciones en
componentes, hacindolas ms manejables.
Se puede modificar un objeto sin afectar al resto
de componentes.
Los objetos pueden viajar a travs de la Red,
diferentes mquinas, sistemas operativos,
Construir aplicaciones C/S ensamblando
componentes.
Pero, necesitamos un estndar
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
35
Jos Merseguer

Componentes
Pieza de Sw lo suficientemente pequea 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 travs de lenguajes, herramientas,
sistemas operativos y redes.
Al igual que los objetos tradicionales soportan
herencia, polimorfismo y encapsulacin.
Los componentes que no soportan herencia se les
llama black box components (COM)
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
36
Jos Merseguer

18
Componentes (caractersticas)
Es una entidad que se puede vender
Es una pieza de Sw binario.
No es una aplicacin completa
Se disea para que realice tareas en un Dominio
de Aplicacin.
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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
37
Jos Merseguer

Componentes (caractersticas)
Tiene una interfaz bien definida
Al igual que los objetos tradicionales los
componentes slo pueden ser manipulados a
travs de su interfaz.
Es un objeto interoperable
Es una entidad Sw independiente del sistema.
Puede ser invocado a travs de la red, desde
cualquier sistema operativo, con cualquier
lenguaje o herramienta.
Pieza de Software autocontenida e
independiente de cualquier aplicacin.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
38
Jos Merseguer

19
Componentes y objetos
distribuidos
Los objetos distribuidos son por definicin
componentes.
En los sistemas de objetos distribuidos la
unidad de trabajo y distribucin 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
39
Jos Merseguer

Supercomponentes
Seguridad
Debe ser capaz de autentificarse ante sus clientes y
viceversa.
Manejo del ciclo de vida
Debe gestionar su instanciacin, destruccin y archivo.
Soporte para paletas
Drag and drop.
Notificacin de eventos
Debe notificar cundo le ha sucedido algo de inters.
Gestin de configuracin
Debe proporcionar una interfaz para configurar sus
propiedades
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
40
Jos Merseguer

20
Supercomponentes
Control de transacciones
Debe proteger sus recursos transaccionalmente y cooperar
con otros componentes.
Persistencia
Debe ser capaz de salvar su estado en un almacenamiento
persistente y recuperarlo posteriormente.
Relaciones
Debe ser capaz de soportar asociaciones con otros
componentes.
Facilidad de uso, autoinstalable, versionado,

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
41
Jos Merseguer

CORBA
CORBA
OMG
OMA
ORB

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
42
Jos Merseguer

21
Qu es CORBA?
Common Object Request Broker
Architecture.
Estndar para objetos distribuidos.
Un estndar para interoperabilidad entre
diferentes fabricantes de hardware y
software:
Una especificacin 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
43
Jos Merseguer

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 mtodos:
No necesita saber dnde est el objeto servidor,
ni sobre qu sistema operativo corre, ni cmo
est implementado.
Lo nico que necesita conocer el objeto
cliente es la interfaz del objeto servidor.
Un objeto distribuido CORBA es un
componente.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
44
Jos Merseguer

22
Existen otros estndares
COM (Common Object Model):
Es de Microsoft
Es un estndar binario
OpenDoc.
RMI.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
45
Jos Merseguer

Qu es OMG?
Object Management Group.
Un comit responsable de especificar los
estndares CORBA.
Ms de 600 compaas (IBM, HP, Sun, ).
Muchas compaas en OMG tambin
soportan COM.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
46
Jos Merseguer

23
Todo es IDL
Lenguaje declarativo.
Se utiliza para especificar componentes:
Atributos, mtodos, clases padre,
La implementacin de los mtodos puede hacerse en
cualquier lenguaje que tenga binding con IDL:
La invocacin a los mtodos se har en este lenguaje.
IDL es independiente del sistema operativo y del
lenguaje de programacin.
Permite que objetos clientes y servidores
implementados en diferentes lenguajes y sistemas
operativos puedan interoperar.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
47
Jos Merseguer

OMA
OMG Management Architecture para C/S.
Tres grandes segmentos:
1. Application Objects
Componentes cercanos al usuario final.
2. System Oriented (ORB, Object Services)
Se refiere a los aspectos de infraestructura de la
computacin distribuida.
3. Common Facilities
3.1. Horizontales.
3.2. Verticales (Domain Interfaces): objetos para
dominios de aplicacin especficos.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
48
Jos Merseguer

24
OMA
Application Domain Common Facilities
Objects Interfaces User Information Task
Interface Management System Management
Management

Object Request Broker

Naming Persistence Life Cycle Properties Concurrency Collections Security Trader

Change Licensing
Externalization Events Transactions Query Relationships Time
Management

Object Services
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
49
Jos Merseguer

ORB
Comercialmente CORBA.
Permite a los objetos hacer peticiones (y
recibir respuestas) de otros objetos.
Invocacin dinmica y esttica de mtodos.
Peticiones transparentes (Local y Remota):
ORB puede manejar llamadas entre objetos en un
nico proceso, en muchos procesos corriendo en
la misma mquina, en muchos procesos
corriendo en diferentes mquinas con diferentes
sistemas operativos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
50
Jos Merseguer

25
ORB
Enlaces con lenguajes de alto nivel
Permite invocar mtodos de objetos servidores
desde tu lenguaje de programacin.
Lenguajes soportados: C, C++, Cobol, Ada, Java
Seguridad y Transacciones
El ORB incluye en los mensajes informacin de
contexto para manejar seguridad y transacciones.
Mensajes polimrficos
El ORB no slo invoca una funcin remota sino
que lo hace sobre un objeto determinado. Por
tanto la misma funcin puede tener efectos
diferentes (diferencia con RPC).
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
51
Jos Merseguer

ORB
Self-describing system
CORBA proporciona metainformacin en tiempo de
ejecucin para describir cualquier objeto servidor conocido
por el sistema (Interface Repository).
Interface Repository: contiene informacin describiendo
las funciones (y sus parmetros) de los objetos servidores.
Los clientes usan la metainformacin en tiempo de
ejecucin para saber qu servicios pueden utilizar.
La metainformacin ha sido generada por el precompilador
IDL o por el compilador del lenguaje.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
52
Jos Merseguer

26
Object Services
Son componentes que Externalization
proporcionan servicios, para Life Cycle
los objetos, a nivel de Properties
sistema. Query
Aumentan la funcionalidad Concurrency
del ORB. Relationships
Se crean utilizando IDL. Collections
Time
Naming Security
Persistence Change Management
Events Trader
Transactions Licensing

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
53
Jos Merseguer

Object Services
Persistence
Proporciona una interfaz nica para almacenar
componentes en diferentes tipos de almacenamiento (RDB,
ODB, ficheros, ).
Naming
Permite a los componentes localizar a otros por su nombre.
Events
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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
54
Jos Merseguer

27
Object Services
Externalization
Proporciona una forma estndar (stream-like) de introducir y
sacar informacin de los componentes.
Life Cycle
Define operaciones para crear, copiar, mover y borrar
componentes en el ORB.
Properties
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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
55
Jos Merseguer

Object Services
Concurrency
Proporciona un manejador de bloqueos para transacciones.
Relationships
Permite crear dinmicamente asociaciones entre los
componentes y recorrerlas.
Licensing, Collections,Time,Security,Change
Management,Trader.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
56
Jos Merseguer

28
Object Services
Los Object Services permiten la creacin 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.
Cmo lo hace?
Hace que su componente sea herencia mltiple de
los componentes Persistence y Transaction.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
57
Jos Merseguer

Common Facilities (Horizont.)


Comercialmente CORBAfacilities.
Colecciones de componentes (definidos con
IDL) que proporcionan servicios a los
Application Objects.
Ejemplos: utilidades de impresin, gestin de
documentos, gestin de BD, correo electrnico.
La estandarizacin de operaciones genricas
produce facilidad a los usuarios finales para
configurar sus entornos de trabajo.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
58
Jos Merseguer

29
Common Facilities (Horizont.)
Tipos:
User Interface.
Information Management.
Ejem: gestin de documentos
System Management.
Ejem: configuracin, instalacin de objetos distribuidos
Task Management.
Ejem: correo electrnico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
59
Jos Merseguer

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 Mdicos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
60
Jos Merseguer

30
Application Objects
Componentes especficos 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
61
Jos Merseguer

ORB Caractersticas
Middleware que establece mecanismos
bsicos para comunicar objetos de forma
transparente.
Transparente ya que el objeto cliente invoca
mtodos del objeto servidor sin preocuparse de
dnde est, en qu lenguaje ha sido
implementado,
El ORB intercepta la llamada, busca un objeto
con un mtodo que la pueda resolver, le pasa
los parmetros y devuelve los resultados.
ORB permite que la invocacin de mtodos
sea esttica o dinmica.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
62
Jos Merseguer

31
Arquitectura del ORB
Cliente Object
Implementation

Interfaz Esque- Invocacin


Esquemas Interfaz mas Almacen
para la Esquemas Adaptador de
Almacen invocacin IDL para el del Estti- Dinmicos de Implemen-
de dinmica Cliente ORB
cos
objetos taciones
Interfaces

ORB Core

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
63
Jos Merseguer

Parte Cliente
Esquemas IDL para el Cliente
Son esquemas compilados que definen cmo los
objetos cliente invocan los servicios de los
objetos servidores.
El esquema acta como una llamada local.
Un esquema por interfaz.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
64
Jos Merseguer

32
Parte Cliente
Interfaz para la invocacin dinmica
Permite descubrir el mtodo a invocar en tiempo
de ejecucin.
CORBA define APIs estndar (API de Invocacin
Dinmica) para:
Buscar (en el AI) la metainformacin que describe la
interfaz del objeto servidor.
Generar los parmetros.
Lanzar la llamada remota.
Conseguir los resultados.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
65
Jos Merseguer

Parte Cliente
Almacn de Interfaces
Es una Base de Datos en tiempo de ejecucin que
contiene las interfaces IDL de los objetos
servidores.
APIs del Almacn de Interfaces
Permiten obtener y modificar las interfaces
(mtodos y sus parmetros) de todos los objetos
registrados.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
66
Jos Merseguer

33
Parte Cliente y Servidora
Interfaz del ORB
APIs para servicios locales que pueden ser de
inters a una aplicacin.
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
invocacin C/S.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
67
Jos Merseguer

Parte Servidora
Esquemas IDL estticos para el servidor
Se generan utilizando el compilador de IDL.
Proporcionan interfaces estticas para cada
servicio exportado por el servidor.
Son el equivalente en la parte servidora a los
Esquemas IDL para el Cliente.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
68
Jos Merseguer

34
Parte Servidora
Invocacin de Esquemas dinmicos
Proporciona un mecanismo de enlazado en
tiempo de ejecucin para manejar llamadas a
mtodos que no tienen esquemas IDL
compilados.
Mira los valores de los parmetros en el mensaje
recibido para descubrir el objeto y el mtodo al
que va destinado.
Son tiles para implementar puentes entre ORBs.
Es anlogo al Interfaz de Invocacin Dinmica en
la parte cliente.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
69
Jos Merseguer

Parte Servidora
Adaptador de Objetos
Interfaz con los servicios de comunicacin que
ofrece el ORB Core.
Acepta peticiones sobre los mtodos de los
objetos servidores.
Proporciona un entorno en tiempo de ejecucin
para instanciar objetos servidores, asignarles
referencias y pasarles peticiones de servicios.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
70
Jos Merseguer

35
Parte Servidora
Adaptador de Objetos
Registra las clases que soporta y sus objetos en
tiempo de ejecucin en el Almacen de
Implementaciones.
CORBA especifica que cada ORB debe soportar
un adaptador estndar, llamado Adaptador Bsico
de Objetos.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
71
Jos Merseguer

Parte Servidora
Almacn de Implementaciones
Es un almacn de informacin sobre:
Las clases que soporta el servidor.
Los objetos que estn instanciados y sus
identificadores.
Informacin adicional asociada con la implementacin
de ORBs.
Ejem: seguridad, auditorias, ...

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
72
Jos Merseguer

36
CORBA ...
Invocacin Esttica vs. Dinmica.
Adaptador de Objetos.
Adaptador de Objetos Bsico.
Inicializacin de un objeto en un ORB.
Interoperabilidad de ORBs.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
73
Jos Merseguer

Invocacin Dinmica/Esttica
Invocacin esttica
Generada en forma de esqueletos por el compilador de IDL.
Ventajas (invocacin esttica):
Es til para programas que en tiempo de compilacin
conocen las particularidades de las operaciones que
necesitarn invocar.
Chequeo de tipos robusto (compilador).
Buenas prestaciones.
Ventajas (invocacin dinmica):
Flexible (permite aadir clases al sistema sin cambios en el
cdigo del cliente).

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
74
Jos Merseguer

37
CORBA: Invocacin Esttica
1. Declarar las clases
Con IDL declararemos el nombre de la clase, los
atributos, los mtodos y sus parmetros.
2. Precompilar los ficheros IDL
Con un precompilador CORBA-compliant
precompilamos y generamos los esquemas de las
clases.
3. Aadir la implementacin a los esquemas
Implementar en el lenguaje objetivo los mtodos
declarados en los esquemas.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
75
Jos Merseguer

CORBA: Invoc. Esttica


4. Compilar el cdigo
Un compilador CORBA-compliant generar
cuatro tipos de ficheros:
Cdigo que implementa las clases servidoras.
Esquemas para el Cliente (Client stub): esquemas que sern
invocados por un programa cliente que necesite acceder
estticamente.
Esquemas para el Servidor (Server stub): llama a los mtodos
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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
76
Jos Merseguer

38
CORBA: Invoc. Esttica
6. Instanciar los objetos en el servidor.
Misin del Adaptador de Objetos.
7. Registrar los objetos en ejecucin 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 tambin sabe
qu clases son soportadas en un servidor
particular. El ORB utiliza esta informacin para
localizar objetos activos o peticiones de
activacin de objetos en un servidor particular.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
77
Jos Merseguer

CORBA: Invocacin Dinmica


La API de invocacin dinmica permite a los
objetos cliente construir e invocar
dinmicamente peticiones a los objetos
servidores.
Pasos para invocar un mtodo dinmico:
1. Obtener del AI la descripcin del mtodo.
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
parmetros NamedValueList y operaciones create_list()
y add_arg()
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
78
Jos Merseguer

39
CORBA: Invoc. Dinmica
3. Crear la solicitud.
Se crea con create_request() y se especifica la referencia
del objeto, el nombre del mtodo y la lista de
argumentos.
4. Lanzar la solicitud. Tres formas:
1. Invoque enva 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
79
Jos Merseguer

Parte Servidora: Adp. Objetos


Qu necesita un Componente del ORB en la
parte servidora?
Que se registren las clases de la aplicacin.
Instanciar nuevos objetos y darles identificadores.
Informar de la existencia de estos.
Invocar sus mtodos a peticin de los clientes
(posiblemente concurrentes).
Balanceo de carga, gestin de transacciones, etc.
Adaptador de Objetos.
Proporciona un entorno para ejecutar la aplicacin
servidora.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
80
Jos Merseguer

40
Estructura del AO
Object Implementation 1.Registrar
nuevas clases
ID ID
ID
6.Pasar llamada 3.Referencias
al mtodo a objetos

Esquema Esquema
Interfaz A Interfaz B 2.Crear nuevos
objetos Almacen de
Implemen-
Adaptador de Objetos taciones

5.Gestionar 4.Informar de
peticiones los servicios
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
81
Jos Merseguer

Adaptador de Objetos
Servicios del Adaptador de Objetos:
1. Registra y almacena las clases del servidor en
el Almacn de Implementaciones.
El AO gestiona las clases del servidor en el AI.
2. Instancia objetos servidores en tiempo de
ejecucin.
Lo hace en el Almacn de Implementaciones, las instancias se
crean en funcin 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
82
Jos Merseguer

41
Adaptador de Objetos
4. Da a conocer la existencia de los objetos
servidores.
Puede propagar al ORB Core los servicios que
proporciona o puede responder a querys del ORB Core.
5. Gestiona las llamadas de los objetos clientes.
El Adaptador de Objetos interacta con el nivel ms alto
del ORB Core , desgrana la peticin y se la pasa al
Esquema del objeto.
El Esquema es responsable de interpretar los
parmetros y presentarlos de forma adecuada al objeto
servidor que invocar el mtodo.
6. Direcciona la llamada al mtodo apropiado.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
83
Jos Merseguer

Adaptador de Objetos Bsico


Un servidor podra soportar diferentes tipos
de Adaptadores de Objetos para satisfacer
diferentes tipos de peticiones.
Ejemplo:
un ODBMS podra querer registrar implicitamente
todos los objetos que contiene sin lanzar
llamadas al AO. En este caso no tendra sentido
que el AO mantuviese un estado para cada objeto.
El ODBMS podra querer un AO de propsito
especfico, que no slo interactuase con el ORB
Core sino que tambin satisfaga sus intereses.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
84
Jos Merseguer

42
Adaptador Objetos Bsico
CORBA prefiere que no proliferen diferentes
tipos de Adaptadores de Objetos.
Para evitarlo especifica el Adaptador de
Objetos Bsico.
Servicios:
El Almacen de Implementaciones debe proporcionar la
informacin que describe a los objetos servidores.
Mecanismos para generar e interpretar referencias de
objetos; activar y desactivar objetos servidores; invocar
mtodos y pasar sus parmetros a travs de los esquemas.
Mecanismo para autentificar al Cliente que hace la llamada.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
85
Jos Merseguer

Adaptador Objetos Bsico


No especifica cmo se localizan los
mtodos.
Polticas para activacin (planificacin)
de objetos servidores:
Servidor compartido.
Servidor no compartido.
Servidor por mtodo.
Servidor persistente.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
86
Jos Merseguer

43
AOB (Servidor compartido)
Proceso
Aplicacin

Primera llamada
entra.
Las dems esperan

Esquema Esquema
Interfaz A Interfaz B

Adaptador Objetos Bsico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
87
Jos Merseguer

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 peticin para
algn objeto del tipo se crea el proceso:
impl_is_ready: el proceso indica que puede
manejar peticiones.
El proceso maneja una peticin a la vez:
deactivate_obj: fin de procesar una peticin.
deactivate_impl: el proceso puede terminar.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
88
Jos Merseguer

44
AOB (Serv. no compartido)
Proceso Proceso

Aplicacin
Proceso Proceso

Esquema Esquema
Interfaz A Interfaz B Adaptador
Objetos
Bsico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
89
Jos Merseguer

AOB (Serv. no compartido)


Cada objeto reside en un proceso.
La primera vez que llega una peticin para un
objeto se crea el proceso.
obj_is_ready, el proceso indica que puede
manejar peticiones.
Cuando llega una peticin para un objeto no
activo se crea un proceso, aunque haya uno
creado para algn objeto del mismo tipo.
deactivate_obj, deja de procesar peticiones.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
90
Jos Merseguer

45
AOB (Serv. por mtodo)
Proceso Proceso Proceso
El proceso
termina con Aplicacin
la ejecucin
del mtodo.

Esquema Esquema
Interfaz A Interfaz B Adaptador
Objetos
Bsico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
91
Jos Merseguer

AOB (Serv. por mtodo)


Se crea un proceso por peticin no es
necesario indicar cundo se est activo y
cundo no .
Diferentes procesos para el mismo objeto (e
incluso el mismo mtodo) pueden estar
activos concurrentemente.
El proceso se destruye cuando concluye la
ejecucin para la que haba sido creado no
hace falta notificaciones.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
92
Jos Merseguer

46
AOB (Serv. persistente)
Proceso Proceso Proceso
Aplicacin
especfica. Aplicacin

Planificador

Esquema Esquema
Interfaz A Interfaz B Adaptador
Objetos
Bsico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
93
Jos Merseguer

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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
94
Jos Merseguer

47
Inicializacin
Cmo encuentra un Componente su ORB?
CORBA define un conjunto de APIs de
inicializacin que permiten a un objeto insertarse
en el entorno de un ORB.
Descubrir su ORB, ABO y Almacn 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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
95
Jos Merseguer

Inicializacin
2. Obtener una referencia al Adaptador de
Objetos.
Invocar el mtodo BOA_init del ORB para decir al AOB
que est ah y obtener su referencia.
3. Descubrir qu servicios iniciales estn
disponibles.
Invocar el mtodo list_initial_services del ORB para
obtener la lista de objetos conocidos.
4. Obtener referencias a los objetos cuyos
servicios desee invocar.
Invocar el mtodo resolve_initial_references.
El objeto ya es un ciudadano en el ORB.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
96
Jos Merseguer

48
Inicializacin
Objeto CORBA ORB
Nuevo API

ORB_init

BOA_init

list_initial_services

resolve_initial_references

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
97
Jos Merseguer

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 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
98
Jos Merseguer

49
Interoperabilidad ORBs ...
Modelo OSI CORBA
Aplicacin ORB
Presentacin GIOP
Sesin IIOP
Transporte TCP
Red IP
Enlace Enlace
Fsico Fsico

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
99
Jos Merseguer

Arquitectura Inter-ORB
Obligatorio
Peticin
CORBA
IDL
Opcional

Sintaxis de Environment Specific


mensajes y General Inter-ORB
Protocol (GIOP) Inter-ORB Protocols (ESIOP)
transferencia
DCE/ESIOP

Internet DCE RPC DCE RPC


Otros
Inter-ORB sobre sobre
por ejemplo etc.
Protocol
(IIOP) ... TCP/IP OSI ...
Transporte OSI
IPX/SPX
TCP/IP

Internet

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
100
Jos Merseguer

50
GIOP
General Inter-ORB Protocol.
General por ser independiente del protocolo
de transporte.
Especfico para interacciones ORB-to-ORB.
Diseado para protocolos de transporte
orientados a conexin.
Especifica un conjunto de formatos de
mensajes y representacin de datos para
comunicaciones entre ORBs.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
101
Jos Merseguer

GIOP (Objetivos Diseo)


Mayor accesibilidad posible.
GIOP/IIOP est asociado a TCP/IP, utiliza Internet
(mecanismo de transporte ms accesible).
Simple.
Slo tiene en cuenta interacciones ORB-to-ORB.
Escalable.
Bajo coste.
Internet.
Ejemplo: comunicacin CORBA con EJB.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
102
Jos Merseguer

51
GIOP (Objetivos Diseo...)
General.
El formato de mensaje es independiente del
medio de transporte.
Independiente de la arquitectura.
No hace suposiciones sobre la arquitectura del
ORB.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
103
Jos Merseguer

GIOP (Elementos)
Requerimientos de interoperabilidad entre
ORBs:
Encapsulacin: 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): cmo se
representan los datos en el transporte.
Formato de los mensajes.
Suposiciones de transporte.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
104
Jos Merseguer

52
GIOP (CDR)
Objetivo: transformar los tipos de datos de
IDL en una representacin de mensajes de
red.
Eficiente y segura.
El cliente enva el mensaje en su arquitectura
nativa.
En el mensaje se indica la codificacin (big-
endian/little endian).
El servidor se encarga de transformarlo a su
arquitectura.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
105
Jos Merseguer

GIOP (Mensajes)
Slo 8 formatos de
mensaje:
Request Cliente
Sencillez. LocateRequest Cliente
Proporcionan toda la CancelRequest Cliente
funcionalidad necesaria CloseConnection Cliente y Servidor

que dos ORBs MessageError Cliente y Servidor

necesitan para Fragment Cliente y Servidor

comunicarse. Reply Servidor


LocateReply Servidor
Proporcionan el soporte
necesario para toda la
funcionalidad de
CORBA.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
106
Jos Merseguer

53
GIOP (Suposiciones)
Soporte bidireccional (full duplex).
El cliente abre la conexin.
El servidor slo puede enviar mensajes en una
conexin ya abierta No necesita conocer la
direccin del cliente.
Cualquiera de las dos partes puede terminar la
conexin.
El ORB puede multiplexar mensajes.
En una nica conexin muchos clientes pueden
comunicar con un nico objeto servidor.
Es posible porque en la peticin queda
identificado el objeto.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
107
Jos Merseguer

GIOP (Suposiciones...)
El protocolo de transporte es orientado a
conexin.
El cliente puede tener abierta una conexin con el
servidor para ms de una transmisin.
Si ocurre un error durante la transmisin
ambas partes son informadas.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
108
Jos Merseguer

54
IIOP
Es la implementacin de GIOP sobre TCP/IP.
Especifica cmo deben ser intercambiados
los mensajes GIOP en una red TCP/IP.
IIOP hace posible el uso de Internet como el
armazn ORB a travs del cual otros ORBs
pueden puentear.
Define un perfil para ser incluido en una IOR.
Para instanciar GIOP, IIOP define cmo el
perfil codifica TCP/IP info en una IOR, as el
servidor puede comunicar con el cliente.
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
109
Jos Merseguer

IIOP ...
IOR:
ID de repositorio: el tipo del objeto.
Perfiles: cada perfil encapsula info para localizar
y comunicar con un objeto.
Perfil IIOP:
Versin IIOP.
Identificacin del host servidor (direccin IP) y
nmero de puerto.
Identificador del objeto servidor.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
110
Jos Merseguer

55
ESIOPs
Environment-Specific Inter-ORB Protocols.
Existen varios, son opcionales, CORBA
seala 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 DCEs native
Network Data Representation.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
111
Jos Merseguer

ESIOPs
DCE proporciona un robusto entorno para
ORBs con misiones crticas.
Caractersticas:
Seguridad Kerberos.
Directorios globales.
Tiempo distribuido.
Mltiples protocolos de transporte (TCP/IP, ).
Permite transmitir gran cantidad de informacin
de forma eficiente.

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
112
Jos Merseguer

56
Puentes ORB-to-ORB
CORBA proporciona los mecanismos necesarios
para crear puentes ORB-to-ORB (tambin utilizados
para crear pasarelas a OLE/COM).

Operacin lgica de solicitud C/S


Cliente Servidor
Interfaz Puente Invocacin
invocacin Esquemas
dinmica Dinmicos

ORB A ORB B
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
113
Jos Merseguer

ORBs Federados
Se pueden utilizar puentes entre ORB y IIOPs
para crear topologas ms flexibles.
Se pueden segmentar ORBs en dominios
basados en necesidades administrativas,
protocolos de red, carga en el trfico, tipos
de servicio, seguridad,

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
114
Jos Merseguer

57
ORBs Federados
Esqueleto ORB (DCCE/ESIOP)

ORB A ORB B

Esqueleto ORB (IIOP)

ORB A ORB B
5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica
Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
115
Jos Merseguer

Para saber ms
The Common Object Request Broker: Architecture
and Specification
OMG Document
Revision 3.0.2
Disponible: http://www.omg.org

5007437 Tecnologas Middleware. Doctorado de Ingeniera de Sistemas e Informtica


Departamento de Informtica e Ingeniera de Sistemas (Univ. Zaragoza)
116
Jos Merseguer

58

You might also like