Professional Documents
Culture Documents
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.
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)
Conceptos de OO
Introduccin
Concepto de objeto
Clases
Instanciacin
Envo de mensajes
Herencia
Polimorfismo
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.
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
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
REGISTRO
NOMBRE DATOS
FEC_NAC NOMBRE
DNI FEC_NAC
EMPLEO DNI
SUELDO EMPLEO
ENDREGISTR O SUELDO
INTERFACE
PROGRAMA PROGRAMA
PRINCIPAL PRINCIPAL
4
Concepto de Objeto ...
Estado compartido
Funcin Funcin
4 5
actualizar eliminar
inserta r #3 limpiar #4
atribut os atribut os
eliminar dibujar
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.
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.
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.
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
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.
Instanciacin ...
10156
camisa
40256 Inicializar
precioTot al
TV porta.
precioTransporte
35670 Retirar
Aadir
30
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
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.
Herencia ...
A Superclase A
(Clase Padre)
Hereda_de
C
Hereda_de
Hereda_de
Subclase
B
B
(Clase descendiente)
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
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.
11
Introduccin al Middleware
Motivacin
Software distribuido
Evaluacin de Middleware
Componentes
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.
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.
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.
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.
Middleware Cliente/Servidor
Bases de Datos Relacionales
Monitores Transaccionales
Groupware
Objetos Distribuidos
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.
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,
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.
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.
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,
CORBA
CORBA
OMG
OMA
ORB
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.
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.
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
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.
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.
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
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.
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.
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.
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
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.
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
ORB Core
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.
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.
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.
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.
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.
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.
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.
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.
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, ...
36
CORBA ...
Invocacin Esttica vs. Dinmica.
Adaptador de Objetos.
Adaptador de Objetos Bsico.
Inicializacin de un objeto en un ORB.
Interoperabilidad de ORBs.
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).
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.
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
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.
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).
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.
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.
43
AOB (Servidor compartido)
Proceso
Aplicacin
Primera llamada
entra.
Las dems esperan
Esquema Esquema
Interfaz A Interfaz B
44
AOB (Serv. no compartido)
Proceso Proceso
Aplicacin
Proceso Proceso
Esquema Esquema
Interfaz A Interfaz B Adaptador
Objetos
Bsico
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
46
AOB (Serv. persistente)
Proceso Proceso Proceso
Aplicacin
especfica. Aplicacin
Planificador
Esquema Esquema
Interfaz A Interfaz B Adaptador
Objetos
Bsico
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.
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
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).
49
Interoperabilidad ORBs ...
Modelo OSI CORBA
Aplicacin ORB
Presentacin GIOP
Sesin IIOP
Transporte TCP
Red IP
Enlace Enlace
Fsico Fsico
Arquitectura Inter-ORB
Obligatorio
Peticin
CORBA
IDL
Opcional
Internet
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.
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.
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
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.
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.
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.
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.
56
Puentes ORB-to-ORB
CORBA proporciona los mecanismos necesarios
para crear puentes ORB-to-ORB (tambin utilizados
para crear pasarelas a OLE/COM).
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,
57
ORBs Federados
Esqueleto ORB (DCCE/ESIOP)
ORB A ORB B
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
58