Está en la página 1de 25

Introduccin

al middleware
Introduccin

Temario


Introduccin

Web Services

Middleware basado en Mensajes

Portales y mashups

Enterprise Service Bus (ESB)

INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin


Qu es el middleware?
o

Es el pegamento (glue) que ayuda a la conexin entre


programas (o bases de datos).
Ms formalmente:


Es el soft-sistema que permite las interacciones a nivel de


aplicacin entre programas en un ambiente distribuido.
Por soft-sistema (system software) se entiende el software
posicionado entre una aplicacin y un sistema de menor nivel
(S.Op, DBMS, Servicio Red).
Un ambiente computacional se dice distribuido cuando sus
programas o BDs estn ubicados en dos o ms computadores.

INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin


Para qu usar middleware ?


o

Dadas dos aplicaciones que se quieren conectar, se usa


para resolver la comunicacin entre los procesos.


Si las aplicaciones se conectan directamente a soft de red,


entonces no se necesita middleware.
Si no hay middleware se complica el desarrollo de aplicaciones:



Se debe programar mdulos de bajo nivel.


Este desarrollo se repite para cada aplicacin a conectar.

El soft de middleware permite realizar esta conexin a


travs de interfases de alto nivel, que permiten, por ej.,
ver un procedimiento remoto como si fuera local.
INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin
Escenarios de uso:

Cliente/Servidor en la misma mquina.




C/S a pequea escala.





Aplicacin clsica en una LAN con un nico servidor.


Es la forma predominante de C/S.

C/S a gran escala.




Se usa en sistemas de un computador, por ej. pequeas oficinas,


en casa, o en portables.

Esquema multiservidor, que dan imagen de un nico sistema.

C/S altamente distribuido.




Cada mquina es cliente y servidor, y negocia con las otras


mquinas mediante agentes.
INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin


Esquema de conexin sin middleware.


o

Los programas deben resolver la conexin usando


medios de bajo nivel, cercanos al Sistema de Red.

Programa

Programa

Sistema
de Red

Sistema
de Red

INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin


Esquema de conexin con middleware.


o

La capa de Middleware permite programar la comunicacin


mediante herramientas de alto nivel.
Por ejemplo: procedimientos, mensajes, acceso a objetos.
Programa

Programa

Middleware

Middleware

Sistema
de Red

Sistema
de Red

INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin: Arquitectura (1)




Aplicacin en Arquitectura +3 niveles.


Cliente

Cliente

Servidor WEB

TPM
?

Servidor
Aplicaciones

Servidor
Aplicaciones

Conexin
a DBMS

Cliente

Cliente

TPM
?
Servidor
DBMS

INCO - Facultad de Ingeniera Montevideo, Uruguay

Cliente

Servidor
Aplicaciones

Servidor
Aplicaciones

Servidor
DBMS

RMI
Conexin
a DBMS

Introduccin: Tipos Middl. (1)




Comunican 2 sistemas:
o

Drivers a DBMSs.

Remote Procedure Call (RPC, RMI, Remoting).

Web Services.

Acceso a DBMS desde un programa u otro DBMS.


Invocacin a procedimientos remotos como si fueran locales al programa.
Invocacin a procedimientos a travs de HTTP.

Comunican mltiples sistemas:


o

Message Oriented Middleware (MOM).




Envo de mensajes entre aplicaciones.

Object Request Brokers (ORB).




Invocacin a procedimientos y propiedades de objetos.

INCO - Facultad de Ingeniera Montevideo, Uruguay

Introduccin: Tipos Middl. (2)




Comunican mltiples sistemas:


o

Intregration brokers:



Comunican n aplicaciones en base a mensajes.


El Integration broker centraliza las comunicaciones:



Recibe mensajes de las aplicaciones.


Aplica reglas para determinar a qu aplicaciones deben enviarse.

Enterprise Service Bus:




Implementa mecanismos de comunicacin:





Basado en invocaciones (de tipo RMI, Remoting, WS).


Basado en mensajes.

Son la evolucin de los ORBs e Integration Brokers.

INCO - Facultad de Ingeniera Montevideo, Uruguay

10

Introduccin: Arquitectura (2)




Aplicacin en Arquitectura +3 niveles.


Cliente

Cliente

Servidor WEB

MOM

TPM
ESB

Servidor
Aplicaciones

Servidor
Aplicaciones

Conexin
a DBMS

Cliente

Cliente

TPM
Servidor
DBMS

Cliente

Servidor
Aplicaciones

Servidor
Aplicaciones

Servidor
DBMS

RPC
Conexin
a DBMS

INCO - Facultad de Ingeniera Montevideo, Uruguay

11

Introduccin: Tipos Middl. (3)




Portal servers.
o

Integrar aplicaciones (modularizadas) que se ejecutan en


Portales.



Son integrables a travs del protocolo WSRP:




Java: Servidores JSR 168 y JSR 286: portlets.


Microsoft: Sharepoint: webparts.
Web Service for Remote Portal.

Mashup servers.
o
o

Integran aplicaciones heterogeneas.


Por ejemplo: Mapas, portlets/webparts, email, etc.
INCO - Facultad de Ingeniera Montevideo, Uruguay

12

Introd.: caractersticas (1)




Los middleware se caracterizan por implementar la


interaccin entre las aplicaciones de diferentes
formas:
o

Interaccin sincrnica:


Interaccin (sincrnica) bloqueante:




Cuando una aplicacin es invocada por otra, se ejecuta


inmediatamente.
Cuando una aplicacin invoca a otra, la primera queda esperando
la respuesta de la segunda.

Interaccin (sincrnica) no-bloqueante:




como sera ?
INCO - Facultad de Ingeniera Montevideo, Uruguay

13

Introd.: caractersticas (2)


o

Interaccin asncrona:


Una aplicacin invoca otra pero no espera su ejecucin


inmediata.
Se implementa en base a mensajes.

Asegurando consistencia en los datos:






Transaccionalidad (2PC).
Consistencia en ambiente debilmente acoplado.
Mensajes persistentes.

INCO - Facultad de Ingeniera Montevideo, Uruguay

14

Evolucin Middleware

Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006.


INCO - Facultad de Ingeniera Montevideo, Uruguay

15

Basic Middleware


Caractersticas:
o
o

Resuelven la comunicacin entre 2 programas.


Cubre de las capas 5 a la 7 del stack OSI.

Ejemplos:
o

RPC, MOM, Data Middleware.


Application

Programa
Comm
Middleware
Sistema
de Red

Presentation

Programa

Session
Transport
Network

Comm
Middleware

Link
Physical
SQL
o API

INCO - Facultad de Ingeniera Montevideo, Uruguay

Sistema
de Red
16

RPC: Remote Procedure Call




Esconde la red, invocando procedimientos.


o

Cliente invoca a una funcin del servidor remoto y se bloquea


hasta tener el resultado.
Se pasan parmetros de la forma normal.

Componentes:
o
o

Aplicaciones: cliente y servidor se programan como locales.


Stub: Empaqueta, convierte...
 Lenguaje IDL (Interface Definition Language).
 Compilador IDL genera Stubs (C y S), que se linkeditan al prog.
Runtime:
 En cliente invoca el RPC y se bloquea.
 En servidor, recibe invocaciones (prioridades, seguridad... )
INCO - Facultad de Ingeniera Montevideo, Uruguay

17

RPC
Ejecuta aplicacin,
llama a funcin.
Sigue la ejecucin.

cliente

servidor

aplicacin

aplicacin
10

Empaqueta, convierte.
Llama al runtime.
Desempaqueta,
convierte.
2

Invoca RPC.
Se bloquea.
Recibe resultado.

stub

Ejecuta funcin.
Enva resultado.

Desempaqueta,
convierte.
Empaqueta, convierte.

stub
9

runtime

runtime
8

Recibe RPC.
Levanta servicio.
Enva resultado.

3
INCO - Facultad de Ingeniera Montevideo, Uruguay

18

RPC
Consideraciones:

o
o

Conversin de datos:
 XDR: External Data Representation (cannica).
 NDR: Network Data Representation (en C o en S).
Seguridad: autenticacin, encriptacin,
Tolerancia a fallos:
 reintentos, semntica de slo una vez.
Servicio de directorio:
 Cliente puede invocar a un servidor conocido (hard-coded) o
preguntar quien corre el servicio (binding).
Runtime en servidor:


Segn el servidor, se podra priorizar llamados, controlar seguridad, manejar


threads, controlar acceso a recursos compartidos.
INCO - Facultad de Ingeniera Montevideo, Uruguay

19

Asynchronous Middleware


Permiten activar un proceso sin que el


invocador quede bloqueado
o

Facilita la integracin de aplicaciones en contextos


de acoplamiento dbil.

Basado en envio de mensajes.


o

Por eso se les conoce como Message Oriented


Middleware (MOM).

INCO - Facultad de Ingeniera Montevideo, Uruguay

20

MOM: Message Oriented Middleware


Comunicacin usando colas de mensajes:

o
o
o

Aplicaciones slo ponen y sacan mensajes de colas.


No se conectan. C y S pueden correr en diferentes tiempos.
No necesariamente se requiere respuesta.
cola1

Consideraciones:

o
o

cola2

Se pueden implementar esquemas 1-N o N-1


 Muchos clientes, varias instancias del servidor.
Colas pueden estar en disco o en memoria.
Pueden ser FIFO, por prioridades, balance de carga...
INCO - Facultad de Ingeniera Montevideo, Uruguay

21

RPC vs. MOM




RPC:
o
o
o
o

Sncrono: Se requiere una conexin. Cliente se bloquea.


Respuesta inmediata. Se asegura tiempo de respuesta.
Ideal para aplicaciones que sincronizar acciones.
Ejemplo: Aplicaciones interactivas, transacciones.

MOM:
o
o

Asncrono: Clente y servidor operan en diferentes tiempos.


Respuesta (eventualmente) lenta. No se asegura totalmente un
tiempo de respuesta.
Ideal para informar, para aplicaciones poco conectadas.
INCO - Facultad de Ingeniera Montevideo, Uruguay

22

Data Middleware


Caractersticas:
o

o
o

Conectan programas con DBMS o DBMSs entre si a travs de un


API, con uso opcional de lenguaje de consulta.
Fuertemente asociados a tecnologas de DBMS.
Incluyen un componente cliente y otro servidor.

Ejemplos:
o

ODBC, OLEDB, JDBC


SQL o API

Programa

DBMS

Middleware
DBMS (cli)

Middleware
DBMS (srv)

Sistema
de Red

Sistema
de Red

INCO - Facultad de Ingeniera Montevideo, Uruguay

23

SQL Middleware


Objetivo ideal:
o

Diferentes DBMS, que dan la ilusin de ser un nico sistema: sistema


federado.
Diferentes clientes accediendo al sistema federado.

Problema:
o

SQL no es tan estandar: SQL (86), SQL2 (92), SQL3 (99).


 Cada vendedor tiene sus propias extensiones (dialectos).
Diferencias en:
 APIs (Application Programming Interface).
 Driver: Runtime que acepta llamadas, formatea mensajes (FAP:
Format and Protocols) y maneja el intercambio.
 Stacks. Slo algunos usan transp standard: sockets, named pipes
INCO - Facultad de Ingeniera Montevideo, Uruguay

24

JDBC
2 niveles

3 niveles

JDBC
Driver Manager

Driver

Driver

JDBC
Driver Manager

Driver

Driver

INCO - Facultad de Ingeniera Montevideo, Uruguay

25

Platform Middleware


Caractersticas:
o

Permiten la comunicacin entre programas a travs de


mecanismos de mayor nivel que los otros Basic Middleware.
Combinan tcnicas de los Basic Middleware.
Programa
Programa
Platform
Middleware
Sistema
de Red
INCO - Facultad de Ingeniera Montevideo, Uruguay

Programa
Platform
Middleware
Sistema
de Red
26

Platform Middleware


Adems proveen funciones tales como:


o
o
o

Gestin de memoria y procesos del S. Op.


Carga de programas, inicio y fin, pasaje de mensajes.
A veces balance de carga y gestin de transacciones.

Ejemplos:
o
o
o
o

Application Servers y ORBs (CORBA, JEE, .NET.)


TPM (Tuxedo, CICS, Encina )
Integration Brokers (IBM MQSeries, MS Biztalk).
Enterprise Service Bus.
INCO - Facultad de Ingeniera Montevideo, Uruguay

27

ORBs: Object Request Broker




Permiten:
o

Programar ensamblando componentes (building blocks).


 Empaquetados como piezas de cdigo indep y
autocontenidas.


No est asociado a un programa, lenguaje o implementacin.

Accedidos por invocaciones a mtodos.


 Interfase bien definida (IDL: Interface Definition Language).
Portabilidad e Interoperabilidad:
 Transparentes al lenguaje, compilador, ubicacin, s.
operativo.
 Se importan dentro de paletas o toolbars.
 Puede ser invocado a travs de espacios de direcciones,
redes, lenguajes, sist operativos y herramientas.


INCO - Facultad de Ingeniera Montevideo, Uruguay

28

ORB: Object Request Broker


Es un bus de comunicacin entre objetos:

Permite hacer/recibir requerimientos en forma transparente:

Objetos locales o remotos.

Funcionamiento:




Objeto cliente invoca un mtodo en un objeto remoto.


ORB:




Localiza una instancia del objeto servidor.


Invoca el mtodo.
Retorna el resultado al cliente.

Applic

Applic

Applic

ORB
INCO - Facultad de Ingeniera Montevideo, Uruguay

29

ORB: Object Request Broker




Funcionalidades:
o

Control de transacciones y bloqueo:





o
o

Persistencia.
Relacionamiento:


Relaciones dinmicas o permanentes con otros componentes.

Auto-testeo:


Integridad todo o nada.


Locks para serializar acceso a recursos.

Correr programas de diagnstico para determinar problemas.

Auto-instalacin:



Instalarse y registrarse con S.O y/o registry.


Des-instalarse.

INCO - Facultad de Ingeniera Montevideo, Uruguay

30

Procesamiento de
Transacciones


Flat transactions: todo o nada


o

Problemas con:



Validaciones / anulaciones parciales:


Interaccin con humanos:



Transacciones grandes:


Se debe poder guardar contexto, para luego retomar.

Operaciones masivas:


Presentacin de opciones en pantalla, usuario debe elegir.


Cunto tiempo quedan los locks?

Actualizaciones de millones de registros. Y si falla?

Operaciones en grandes redes o internet:




No sirve tenerlas sincronizadas en el commit.

INCO - Facultad de Ingeniera Montevideo, Uruguay

31

Monitores Transaccionales


Objetivo:
o

Es un sistema especializado en la creacin, ejecucin y


manejo de aplicaciones de procesamiento de transacciones.

Caractersticas:
o

Sistemas transaccionales tienen:


 Muchas transacciones pequeas.
 Muchos usuarios concurrentes.
Coordinan las transacciones con:
 Subsistemas ACID locales.
 Manejadores de recursos.


aplicacin

aplicacin

aplicacin

TPM

DBMS

DBMS

DBMS, manejadores de colas, objetos persistentes, transporte de


mensajes.

INCO - Facultad de Ingeniera Montevideo, Uruguay

32

Monitores Transaccionales


OTM: Object Transaction Monitors


o

Combinan ORBs con monitores de transacciones.




Maneja contenedores que corren los componentes que


brindan los servicios.

Maneja objetos logrando: transaccionalidad,


robustez, persistencia, seguridad, performance.

Carga un conjunto de objetos (pool), distribuye la


carga, provee tolerancia a fallos, y coordina
transacciones multi-componentes.
INCO - Facultad de Ingeniera Montevideo, Uruguay

33

Monitores Transaccionales
OTM

TPM

INCO - Facultad de Ingeniera Montevideo, Uruguay

34

Servidores de Aplicaciones
Contexto:

Arquitecturas en mltiples capas:





Cliente: interface usuario.


Servidor Web:









Acceso HTTP, interface usuario.

Servidor de Aplicaciones:
Lgica del negocio.
Lgica de los datos.
Gestin de Transacciones.
Acceso a la BD.
Balance de carga en configuraciones paralelas.

Servidor de Base de Datos: almacenamiento.

INCO - Facultad de Ingeniera Montevideo, Uruguay

35

Servidores de Aplicaciones


Cubren:
o
o
o

Nivel Servidor de Aplicaciones.


Casi seguro: Gestin de Transacciones.
Web Server.

Grandes familias:
o
o

JEE: Propuesta de Java.


COM/DCOM/COM+ .NET: Propuestas de MS

INCO - Facultad de Ingeniera Montevideo, Uruguay

36

Gateways


Caractersticas:
o
o

Realizan la traduccin entre 2 o ms protocolos.


Existen gateways para:



DBMS, MOM.
Platform Midd: CorbaCOM, .NETJEE.
Programa

Programa

Middleware A

Gateway

Gateway

Middleware A

Middleware B
Sistema
de Red

Prot. B

Sistema
de Red

Mid A Mid B
Sistema Prot. B
de Red

INCO - Facultad de Ingeniera Montevideo, Uruguay

37

Platform Middleware


Middleware que permite integrar aplicaciones a escala


empresarial.
Provee al menos:
o

Capacidad para integrar aplicaciones:





Syncrnica y asincrnicamente
En equipos distribuidos.

Control de transacciones.

Incluye:
o
o
o

Application Servers.
Integration Brokers.
Enterprise Service Bus.

INCO - Facultad de Ingeniera Montevideo, Uruguay

38

Integration Broker
Caractersticas:

Son intermediarios que facilitan la interaccin entre


programas.


Principalmente orientados a mensajes.

Proveen dos funciones de inters:




Transformation:



Transforma mensajes o contenidos de archivos.


Transforma modelos de datos de diferentes aplicaciones a un modelo
comn.

Flow automation (or flow control):




Son tratamientos inteligentes de flujos, por ejemplo: ruteo inteligente


y/o basado en contenidos.

INCO - Facultad de Ingeniera Montevideo, Uruguay

39

Integration Broker


Caractersticas:
o

Tambin pueden ofrecer:




Business process management (p.ej, workflow)







Interpretan reglas de negocio y responden a eventos de negocio


y excepciones. Ayudan a automatizar tareas.

Message warehousing.
Administrative monitoring.

Algunos requieren un MOM en especial (ej. IBM


MQSeries),otros tienen interfases a una gran
variedad de productos.
INCO - Facultad de Ingeniera Montevideo, Uruguay

40

Integration Brokers


Arquitec. Hub & Spoke:


o

Altamente centralizada.





o
o

Centrada en el HUB (message


broker) es una pieza monoltica
de software.
Realiza las operaciones de
transformacin y ruteo de
mensejes.
Estas funcionalidades no puede
ser conectadas a otro HUB.
Estos servicios son propietarios.

Los Spokes son aplicaciones a


integrar.
La excesiva centralizacin
complica la escalabilidad.

INCO - Facultad de Ingeniera Montevideo, Uruguay

41

ESB


Arquitectura de BUS.
o Incluye procesos que ejecutan las
funcionalidades tales como ruteo,
transformaciones, transacciones, etc.
o

Estos servicios son conectables a


otros ESB.

Varios ESB pueden conectarse y


hacer visibles los servicios
publicados: favorece la escalabilidad.

Estn basados en estndares y/o


facilitan la interoperabilidad entre
aplicaciones.
 Por ejemplo: Web Services.
INCO - Facultad de Ingeniera Montevideo, Uruguay

42

ESB, SOA, Applic. Server y


eventos


ESB como Bus de Servicios:


o

ESB interactuando con Applic. Servers


o

Fuertemente asociados a la implementacin de arquitecturas orientadas a


servicios.
 Las aplicaciones a integrar se publican como ofreciendo y/o
consumiendo servicios.

Se construyeron pensando en integrar aplicaciones ejecutndose en


Applic. Servers.

Las funcionalidades asncronas:


o
o

Basadas en colas de mensajes.


Incluyen gestin de eventos para la suscripcin (a mensajes
publicados en colas o canales)

INCO - Facultad de Ingeniera Montevideo, Uruguay

43

ESB vs. Integration Brokers


o
o
o

Los ESB resultan ms abiertos y escalables.


Tambin ms interoperables con otros productos.
Las ventajas se deben en gran parte:


La historia y evolucin de los productos.




Los ESB surgieron posteriormente a los Integration Brokers, y


corrigieron muchas de sus defectos.

Varios ESB se basan en Integration Brokers:





Biztalk Server de Microsoft.


Productos de IBM WebSphere.

INCO - Facultad de Ingeniera Montevideo, Uruguay

44

Middleware para User interaction




Las aplicaciones que interactuan con el usuario


tambin deben integrarse:
o

Con los procesos de back-end, que implementan


funcionalidades de negocio.
Con otros aplicaciones que implementan interaccin con
el usuario.
Con servicios utilitarios:


Por ejemplo: mapas, gestin de videos, etc.

Como hacer posible esta integracin ?


INCO - Facultad de Ingeniera Montevideo, Uruguay

45

User interaction Middleware


o

Modularizacin de aplicaciones.


Estandarizacin de protocolos.


Las aplicaciones que implementan la User Interaction


deben implementarse basadas en componentes:

Estas componentes deben poder interoperar entre si lo


ms posible.

Orientacin a servicios.


La interaccin entre estos componentes y los otros


externos debe seguir los mismos modelos que con los
otros middleware.
INCO - Facultad de Ingeniera Montevideo, Uruguay

46

User interaction Middleware




Portales (Portal Servers).


o

Son servidores de:





La interaccin entre ellos es posible:





portlets en plataforma Java.


webparts en plataforma Microsoft (Sharepoint).

Dentro de la misma plataforma.


Utilizando WSRP (Web Service for Remote Portal) en
plataformas diferentes.

Se integran con las Platform Middleware.


INCO - Facultad de Ingeniera Montevideo, Uruguay

47

User Interaction Middleware




Mashup.
o

Apuntan a facilitar el desarrollo de aplicaciones que


combinan multiples funcionalidades con User
Interaction.
Por ej:


o
o
o

Mapas + portlets + email + chat + videos.

Menos estandarizado que los Portal Server.


Compatibles con los Portal Servers.
Tratan de ser ms livianos que los Portal Servers.

INCO - Facultad de Ingeniera Montevideo, Uruguay

48

En este curso

INCO - Facultad de Ingeniera Montevideo, Uruguay

49