Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 Middleware
2 Middleware
Curso 2006/2007
Capítulo 2:
Middleware
Pedro Álvarez
alvaper@unizar.es
José Ángel Bañares
banares@unizar.es
http://diis.unizar.es/PostWeb/
Departamento de Informática e Ingeniería de Sistemas
Í di - Capítulo
Índice C ít l 2
o Entendiendo el papel de un middleware
Þ Middleware como abstracción de programación
Þ Middleware como infraestructura
o Una rápida revisión de las plataformas middleware
convencionales
Þ RPC
Þ TP Monitors
M it
Þ Object brokers
Þ Middleware Orientados a Mensajes
o Convergencia Middleware
Þ La evolución hacia los servicios Web
Þ Los Middleware hoy, y la convergencia hacia el “Ideal”
Þ Mitos alrededor de los servicios Web
Object Message
TP-Monitors brokers brokers
fuentes
IDL
Llamada al interface Llamada al interface
específica del lenguaje específica del lenguaje
Stub del cliente Compilador IDL Stub del servidor
Servicio de
Protocolos Servicio Servicio
Servicios de celda distribución de
RPC de seguridad
g procesos
p
fi h
ficheros
ABSTRACCIONES DE INFRAESTRUCTURA
PROGRAMACIÓN
o Recoge todo lo necesario para
desarrollar y ejecutar sistemas
o Pretenden ocultar los detalles de bajo distribuidos complejos
nivel del hardware, redes y distribución o La tendencia es hacia arquitecturas
o La evolución es hacia primitivas más orientadas a servicios a una escala
potentes que se basan en el concepto global y a la estandarización de
bá i de
básico d RPC,
RPC añadiendo
ñ di d propiedades
i d d interfaces
adicionales o permitiendo un uso más o Otra tendencia importante es hacia
flexible del concepto una única infraestructura para
minimizar la complejidad y las
o Su “aspecto” viene dictado por la interacciones
evolución de los lenguajes de o La evolución es hacia la integración
programación (RPC y C, CORBA y de plataformas y la flexibilidad en la
C++, RMI y Java, SOAP-XML y configuración
Servicios Web))
Web
W bSServices
i A
Architecture
hit t
W3C Working Group Note 11 February 2004
http://www.w3.org/TR/ws-arch/wsa.pdf
S
Servicio
i i dde nombres
b y directorio
di t i (bi
(binder)
d )
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
19
¿Qué puede ir mal? CLIENTE DEL
CONTROL
INVENTARIO
busca_producto
o RPC es un protocolo punto a punto,punto en el comprueba inventario
comprueba_inventario
sentido de que soporta la interacción de dos IF provisiones_bajo
entidades (el cliente y el servidor) THEN
o Cuando hay más de dos entidades realiza_orden
i t
interactuando
t d (
(un cliente
li t con dos
d actualiza inventario
actualiza_inventario
servidores, un cliente con un servidor y el ...
servidor con la base de datos), RPC trata
las llamadas de forma independiente. Sin
embargo
b l
las ll
llamadas
d no son Servidor2 (productos) Servidor 3 (inventario)
independientes
Nuevo_producto Realiza_orden
o La recuperación de fallos parciales es muy busca_producto Cancela_orden
p j Por ejemplo,
compleja. j p , se envió la orden,, Borra producto
Borra_producto actualiza inventario
actualiza_inventario
pero el inventario no ha sido actualizado, o Actualiza_producto comprueba_inventario
se ha hecho el pago pero no se ha
registrado …
o Evitar estos problemas utilizando sólo
sistemas RPC es muy costoso BdD
BdD Inventario
productos y ordenes
Gestor recursos
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
24
CORBA Cliente
(objeto
Servidor
(objeto
CORBA) CORBA)
o CORBA (Common Object Request
Broker Architecture) es parte de la
arquitectura de gestión de objetos stub stub
estándar (Object Management Interfaz
Architecture, OMA), una arquitectura de cliente servidor
(
(proxy) ) Llamadas remotas ((skeleton)
k l )
referencia para el desarrollo basado en
componentes
o Las partes clave de CORBA son:
Þ El ORB (Object Request Broker): librería CORBA
1
se encarga de la interacción entre Marshalling
M h lli B i
Basic
CORBA Object
componentes serialization2
Þ Los servicios CORBA: Servicios Adaptor
estándar soportados
p
Þ Un lenguaje IDL estándar para la
publicación de interfaces
Þ Protocolos que permiten a los ORB Object Request Broker (ORB)
dialogar entre sí
o CORBA es un intento de actualizar los
RPC integrándolo con el modelo de
objetos y desarrollando un estándar servicios
CORBA
1Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Marshalling: es empaquetar datos en un formato de mensaje antes de transmitir el mensaje por el canal de
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
comunicación 25
2
Serializaction: Transforma el mensaje en cadenas de bytes antes de enviar el mensaje por el canal de comunicación
Un sistema en capas
(Distintos esfuerzos de estandarización)
CORBA facilities
Servicios básicos verticales:
finanzas telecomunicaciones …
CORBAservices
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
26
CORBA sigue el modelo RPC
o CORBA comparte el mismo modelo que o El desarrollo es similar a RPC:
RPC : Þ se definen servicios ofrecidos por el
Þ Intentan resolver el mismo problema servidor utilizando IDL (define el
Þ CORBA se implementa con objeto servidor)
frecuencia sobre RPC Þ Se compila la definición utilizando
o A diferencia de RPC, CORBA propone un compilador IDL. . El resultado es
una arquitectura completa e identifica el stub del cliente (proxy, server
partes del sistema en mucho más detalle proxy,
p y pproxyy object)
j ) y el stub del
que RPC (RPC es un mecanismo de servidor (skeleton). Las signaturas
comunicación, mientras que CORBA es del método (servicios que pueden ser
una arquitectura de referencia que incluye invocados) se almacenan en el
un mecanismo de comunicación) p
repositorio de interfaces.
o CORBA propone una arquitectura Þ Se programa el cliente y se enlaza
estándar basada en componentes, pero las con el stub
ideas no son nuevas Þ Se programa el servidor y se enlaza
con ell stub
t b
o A diferencia de RPC, los stubs hacen que
el cliente y el servidor sean
independientes del sistema operativo y
del lenguaje
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
27
Desarrollo con CORBA (Modelo RPC)
1 Crea tus
D fi i i i
Defininiciones IDL
2
Precompilador
Skeletons
3
Añade Implementación Servidor
4
Compila
5
Client IDL Server IDL
Interface Stubs Implementación
Skeletons
R
Repository
it Objetos
Cliente
Servidor
Herramienta
Herramienta aplicación cliente
aplicación
p cliente p
presupuestos
p
presupuestos
Transacciones
seguras: Java Objetos
•SSL •Componentes distribuidos
•S-HTTP
S HTTP móviles •Documentos
F
5 ORB
CORBA
Muestra
Resultados
Objeto
j
servidor
Cliente Web 1 Instala HTML
• cliente.html Servidor Web
• Applet CliApplet.class
• Stub y Orblet
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
36
Middle are + Java
Middleware Ja a + Internet
o Modelo Cliente/servidor en tres capas
Documentos HTML
HTPP HTPP
CGI
Internet
TCP/ IP
Aplicaciones
CORBA
CORBA IIOP CORBA
IIOP
Objetos
Servidor
Cliente Web Tradicional
Servidor Web
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
37
¿Q é puede
¿Qué p ede ir mal? (1)
o Los protocolos de los middleware no pueden atravesar firewall,
firewall
salvo...
Entorno
Internet servidor
Applet
Firewall
Entorno
li t
cliente Visible
Vi ibl all applet
l t
Invisible al applet Entorno de
otros servidores
Documentos HTML
SOAP
HTPP HTPP
CGI
HTPP
Internet
TCP/ IP
Aplicaciones
CORBA
CORBA IIOP CORBA
IIOP
Objetos Servidor
Cliente Web ad c o a
Tradicional
Servidor Web
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
39
¿Q é puede
¿Qué p ede ir mal? (2)
Convergencia de los middleware
o En la práctica, siempre se precisa más de un tipo de middleware. Hay
que ver que ofrece cada producto.
o Existen implementaciones de una gran variedad de funcionalidades que
se solapan:
l Lo
L que en CORBA se denominan
d i Servicios
S i i CORBA
runtime App.
pp wrappers
pp
engine platform
support
pp
N
Name
RPC services repository
rrepositoryy
platform
support
enngine
servicces
Namme
RPC
o Que haya combinaciones posibles, no quiere decir que todas tengan sentido
o En un entorno integrado, la funcionalidad integrada no debería llevarse a cabo incorporando
p
componentes externos,, sino diseñándolo de forma coherente desde el principio.
p p Esto no
siempre es posible hoy en día.
Curso 5007437 Conceptos y estándares de arquitecturas orientadas a servicios Web
Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza)
41
Sistema “Ideal”
gestión gestión
transacciones objetos
j
gestión
procesos
gestión gestión
mensajes datos
INFRAESTRUCTURA COMÚN