Introducción al Middleware

105
Introducción al Middleware Enterprise Service Bus

Transcript of Introducción al Middleware

Page 1: Introducción al Middleware

Introducción

al Middleware

Enterprise Service Bus

Page 2: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 2

Introducción

Capacidades de un ESB

Patrones ESB

o Mediación, Conectividad y Despliegue

Agenda

Page 3: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 3

Arquitectura accidental

Page 4: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 4

Arquitectura accidental

Es un tipo de arquitectura que nadie definió

Es el resultado de sucesivas integraciones

punto a punto “tecnológicamente únicas”

durante varios años

o FTP, comunicación por sockets, MOMs

propietarios, CORBA, SOAP u otras tecnologías

RPC

Page 5: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 6

Arquitectura accidental:

Resultado

Alto acoplamiento entre aplicaciones

o Comunicaciones “tecnológicamente cableadas”

Infraestructura rígida

Dificultad de adaptarse rápidamente a

nuevos requerimientos

o Un cambio en una aplicación puede impactar en

N aplicaciones

Frágil arquitectura empresarial

Page 6: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 7

Arquitectura accidental:

Resultado

No hay un modelo de seguridad corporativo

o Seguridad adhoc punto a punto

No hay una API común

No hay protocolos de comunicaciones

comunes

Comunicaciones poco confiables

Page 7: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 8

Necesitamos…

Nuevos enfoques para la integración de

aplicaciones empresariales que permitan

evitar la arquitectura accidental

Necesitamos un nuevo tipo de arquitectura

empresarial.

Page 8: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 9

Enfoques de integración

Page 9: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 10

Enfoques de integración

Servidores de aplicación:

o Interoperabilidad mediante protocolos estándares

p.ej: CORBA, SOAP, etc

o Alto acoplamiento entre lógica de negocio y

lógica de integración

Page 10: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 11

Enfoques de integración

Brokers EAI:

o Arquitectura de tipo hub-and-spoke

o Separan lógica de negocio de lógica de

integración

o Plataformas monolíticas

Instalación todo o nada

En general muy costosas

o Falta de estándares

Vendor lock-in

Mayores costos

Page 11: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 12

Enfoques de integración

MOM (Message Oriented Middleware)

o Permiten conectar aplicaciones de forma

desacoplada y asincrónica

o Alto acoplamiento entre lógica de negocio y

lógica de integración

P. ej: ruteo y transformación de mensajes en la

aplicación

o Escalabilidad dependiente del producto

Page 12: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 13

Enfoques de integración

Enterprise Service Bus (ESB)

o Configuración en lugar de programación

o Ambiente de integración altamente distribuido

o Clara separación entre lógica de negocio e

integración

Page 13: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 14

Evolución hacia el ESB

Page 14: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 15

Algunas definiciones...

Un ESB es una plataforma de integración

basada en estándares que combina mensajería,

web services, transformación de datos y ruteo

inteligente para conectar y coordinar de forma

confiable la interacción de un gran número de

aplicaciones diversas a través de empresas

extendidas (empresas + socios de negocios) con

integridad transaccional.

(Chappell 2004)

Page 15: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 16

Algunas definiciones...

El ESB es una columna vertebral de mensajería

basada en estándares abiertos y diseñada

para posibilitar la implementación, despliegue y

administración de soluciones SOA. Es un

conjunto de capacidades de infraestructura

implementadas vía tecnologías de middleware

que posibilitan una SOA y alivianan problemas

de disparidad entre aplicaciones que se

ejecutan en plataformas heterogéneas y usan

diversos formatos de datos.

(Mike P. Papazoglou 2007)

Page 16: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 17

Algunas definiciones...

Un ESB representa un ambiente para

fomentar la inter-conectividad sofisticada

entre servicios. Provee una capa de

procesamiento intermedio que puede

ayudar a solucionar problemas comunes

asociados a la confiabilidad, escalabilidad

y disparidad en la comunicación.

(Erl 2009)

Page 17: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 18

Resumiendo las

definiciones…

Plataforma de

integración

Tecnologías de

middleware

Estándares abiertos

Mensajería

Web Services

Transformación de

formatos

Ruteo inteligente

Conectividad

Integridad

transaccional

Escalabilidad

Confiabilidad

Aplicaciones

heterogéneas

Soporte a SOA

Page 18: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 19

Estilos de Integración en ESBs

Un ESB soporta tres principales estilos de

integración:

o Service-oriented architectures (SOA)

las aplicaciones se comunican via servicios

reutilizables con interfaces explícitas y bien definidas

o Message-driven architectures

las aplicaciones envían mensajes a otras aplicaciones

o Event-driven architectures (EDA)

las aplicaciones generan y consumen mensajes (para

notificar eventos) independientemente unas de otras

(Keen et al. 2004)

Page 19: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 20

Integración con un ESB

Page 20: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 21

Integración con un ESB

1

3 2

Page 21: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 22

Integración con un ESB

En lugar de interactuar directamente las

aplicaciones se comunican enviando

mensajes a través del ESB

Los mensajes que fluyen a través del ESB

son en general mensajes XML

Page 22: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 23

Integración con un ESB

El ESB puede realizar distintas operaciones

de mediación sobre los mensajes

o transformaciones, ruteo, etc

Estas operaciones permiten asegurar que las

aplicaciones se puedan conectar

correctamente

Page 23: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 24

Integración con un ESB

El ESB promueve el bajo acoplamiento entre las

aplicaciones y divide la lógica de comunicación

e integración en pequeños módulos reutilizables

Permite además una clara separación entre:

o lógica de integración y comunicación

o lógica de negocio implementada por las aplicaciones

Page 24: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 25

ESB en una SOA

En

terp

rise

Serv

ice B

us

Page 25: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 26

Introducción

Capacidades de un ESB

Patrones ESB

o Mediación, Conectividad y Despliegue

Agenda

Page 26: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 27

Conectividad / Adaptadores

Transformación de Mensajes

Ruteo Inteligente

Flujos de Mediación

Mensajería Asincrónica

Monitoreo y Administración

Otras características…

Principales capacidades

(Davis 2009) (Erl 2009)

Page 27: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 28

Conectividad /Adaptadores

Un ESB típicamente incluye varios adaptadores

que le permiten interactuar con múltiples

protocolos de comunicación o transporte

o HTTP, FTP, POP3/SMTP, sistemas de archivos, etc

En general se configuran utilizando algún

archivo de configuración o asistente

Un adaptador funciona en general como

servidor o cliente

o Por ejemplo, un HTTP listener o HTTP consumer

Page 28: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 29

Conectividad / Adaptadores

Permiten satisfacer un requerimiento de

integración común conocido como conversión

de protocolo (protocol switch).

o Dos aplicaciones que necesitan integrarse y no

manejan un protocolo de comunicación común.

(Rademakers and Dirksen 2008)

Page 29: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 30

Transformación de Mensajes

Los ESBs también incluyen capacidades de

transformación de mensajes.

Estas capacidades posibilitan, por ejemplo, que

aplicaciones que utilizan distintos formatos o

modelos de datos puedan comunicarse.

(Rademakers and Dirksen 2008)

Page 30: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 31

Transformación de Mensajes

En general, los ESB soportan transformaciones

a través de XSLT

También incluyen herramientas para

transformar mensajes no XML (ej. Smooks)

XSLT

Documento

XML

Documento

XML, HTML,

CSV, etc

Page 31: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 32

Ejemplos:

o Dar soporte a diferentes versiones de un servicio

o SOAP 1.1 SOAP 1.2

Transformación de Mensajes

(Rischbeck, 2008)

Page 32: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 33

Ruteo Inteligente

El ruteo inteligente permite determinar

dinámicamente el destino de un mensaje

(seleccionando de varios destinos posibles)

RUTEO

Page 33: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 34

Ruteo Inteligente

(Rischbeck, 2008)

Page 34: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 35

Flujos de Mediación

Los Flujos de Mediación (mediation flows,

microflows) especifican una secuencia de

operaciones de mediación (transformación,

ruteo, etc) a ejecutar en un mensaje

Page 35: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 36

Flujos de Mediación

Están pensados para procesos simples y de

corta duración, abordando principalmente

problemáticas de integración y comunicación

Los ESB permiten especificar estos flujos

utilizando herramientas gráficas, archivos de

configuración, DSLs

Page 36: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 37

Sistema de Mensajería (MOM)

Los ESBs en general se apoyan o incluyen

sistemas de mensajería (MOMs)

Posibles usos de un MOM en un ESB:

o Garantía de Entrega

o Mapeo entre estilos de interacción

o Control de carga

o Balanceo de carga

Page 37: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 41

Monitoreo y Administración

Los ESB incluyen funcionalidades de

monitoreo que proveen valores para distintas

métricas

o tiempos de respuesta,

o cantidad de mensajes procesados por servicio,

o errores en la invocación de servicios, etc

Esto permite detectar:

o cuellos de botella,

o incumplimiento de requerimientos de calidad de

servicio, etc

Page 38: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 42

También pueden proveer la capacidad de

enviar alertas si ciertos valores de esas

métricas no son adecuados, por ejemplo:

o si el tiempo de respuesta de un servicio es mayor

a un determinado valor

o si la cantidad de invocaciones a un servicio

supera un determinado valor

Monitoreo y Administración

Page 39: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 43

Monitoreo y Administración

(Rischbeck, 2008)

Page 40: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 44

Otras Características

Seguridad

o Autenticación, autorización, confidencialidad,

soporte a estándares (WS-Security, etc)

Calidad de Servicios

o Transacciones

o Confiabilidad

Registro de Servicios

o Publicación, descubrimiento, etc…

Otras ver (Keen et al. 2004)(Chappell 2004)

Page 41: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 49

Introducción

Capacidades de un ESB

Patrones ESB

o Mediación, Conectividad y Despliegue

Agenda

Page 42: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 50

Los mensajes que fluyen a través del ESB son

generalmente procesados por flujos de

mediación

Si bien las operaciones de mediación no están

restringidas en lo que pueden hacer, existen un

conjunto de operaciones, y combinaciones que

son comúnmente utilizadas y han sido

documentadas como Patrones de Mediación

Patrones de Mediación

Page 43: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 51

Patrones de Mediación Simples

o Patrones de Ruteo

o Patrones de Transformación

o Patrones de Administración

o Otros Patrones

Patrones de Mediación Compuestos

Patrones de Mediación

Page 44: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 52

Content-based router

Context-based router

Load-balancing router

Splitter

Recipient List

Aggregator

Message Filter

Patrones de Mediación: Ruteo

Page 45: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 53

Transformación de Contenido

Transformación de Modelos de Datos

Transformación de Formato de Datos

Enriquecimiento de Contenido

Filtrado de Contenido

Patrones de Mediación:

Transformación

Page 46: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 54

Otros Patrones: Cache

El patrón Cache recibe un mensaje y retorna

otro que fue previamente almacenado y

enviado como respuesta al mensaje de

solicitud.

Constituye una solución reusable para

mejorar la performance en un ambiente SOA

(Yan Fang et al. 2006)

Page 47: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 55

Cache Mediation Pattern

(Yan Fang et al. 2006)

Page 48: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 56

Ruteo basado en Itinerario

Verify Enrich Transform Operate

Patrones de mediación

compuestos

Page 49: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 57

Ruteo Basado en Itinerario

El ruteo basado en itinerario determina el

destino del mensaje en base a un itinerario.

(Hohpe and Woolf 2003)

Page 50: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 58

El itinerario es metadata que se incluye en el

propio mensaje y especifica al ESB el camino

que debe seguir el mismo.

Los itinerarios contribuyen a la naturaleza

distribuida del ESB eliminando la dependencia

de un motor de ruteo centralizado.

o Mejora sobre los Broker EAI!

También se conoce como routing slip

Ruteo Basado en Itinerario

Page 51: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 59

VETO Pattern

El patrón VETO (Validate, Enrich, Transform,

Operate) es un patrón de integración que

permite que se ruteen datos validados y

consistentes a través del ESB

(Chappell 2004)

Page 52: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 60

VETO Pattern

Validate (Validar)

o Valida que el mensaje cumpla con ciertos

requerimientos (ej. usando un XML Schema o WSDL)

Enrich (Enriquecer)

o Implica agregar datos adicionales al mensaje para

hacerlo más entendible por el servicio destino

Transform (Transformar)

o Transforma el mensaje al formato destino

Operate (Operar)

o Invoca la aplicación o servicio destino

Page 53: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 61

Introducción

Capacidades de un ESB

Patrones ESB

o Mediación, Conectividad y Despliegue

Agenda

Page 54: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 62

A través de la experiencia adquirida en varias

implementaciones reales, se han identificado

un conjunto de patrones de conectividad

basados en ESB

Estos apuntan a proveer un marco que:

o asista en la toma de decisiones relativas a

arquitectura e implementación

o facilite la selección y utilización de productos

o brinde un conjunto de enfoques de integración

recomendados y probados

Patrones de Conectividad

(Wylie, 2009)

Page 55: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 63

Virtualización de Servicios

Habilitación de Servicios

Gateway

Procesamiento de Archivos

Patrones de Conectividad

(Wylie, 2009)

Page 56: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 64

Proveen una capa de procesamiento

intermedio entre los servicios

Esto permite abordar requerimientos de

mediación (ruteo, transformación, etc) que

surjan por necesidades de conectividad

Los patrones en este grupo son: o Simple Service Proxy

o Service Selector

o Service Translator

o Service Normalizer

Virtualización de Servicios

(Wylie, 2009)

Page 57: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 65

El patrón Simple Service Proxy toma un

servicio existente y crea un nuevo servicio

virtual en el ESB

De esta forma el servicio original se accede a

través de un punto controlado y posiblemente

utilizando un protocolo diferente al del

proveedor

Simple Service Proxy

(Wylie, 2009)

Page 58: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 66

Este patrón introduce un punto de mediación

en el ESB y es la base para patrones más

elaborados

Si bien en este caso simple las operaciones

de mediación están limitadas a operaciones

de monitoreo, es posible introducir

funcionalidades de gestión:

o manejo de errores, alertas,

o gestión de tráfico, cargo por utilización de servicio

o métricas de performance

Simple Service Proxy

(Wylie, 2009)

Page 59: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 67

Este patrón simple también da soporte a la Gobernanza

de SOA

En general se utiliza en conjunto con el requerimiento de

que todos los servicios de una organización sean

accedidos únicamente a través del ESB

Este patrón también provee una forma de asegurar el

acceso y ocultar la estructura interna de una

organización

o Provee un punto de partida para ofrecer acceso a los servicios

desde fuera de la zona de seguridad de una organización

Simple Service Proxy

(Wylie, 2009)

Page 60: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 68

Estos patrones extienden el patrón anterior

introduciendo:

o Ruteos

o Transformaciones

o Ruteos y Transformaciones conjuntas

Service Selector, Translator y

Normalizer

(Wylie, 2009)

Page 61: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 69

Virtualización de Servicios

Habilitación de Servicios

Gateway

Procesamiento de Archivos

Patrones de Conectividad

(Wylie, 2009)

Page 62: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 70

Abordan el problema de encapsular

funcionalidades que no presentan una

interfaz de servicio, y exponerlas en el ESB a

través de una interfaz orientada a servicios.

o Facilitan la migración hacia una SOA!

Habilitación de Servicios

(Wylie, 2009)

Page 63: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 71

Estos patrones permiten reutilizar los activos

existentes de las organizaciones sin requerir

cambios radicales

Posibilitan además el acceso a servicios que

se construyen en base a funcionalidades

implementadas en diversas tecnologías

En este grupo de patrones se distinguen:

o Simple Service Facade

o Complex Service Facade

o Client Access

Habilitación de Servicios

(Wylie, 2009)

Page 64: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 72

Los adaptadores pueden ubicarse del lado

de la aplicación o (más comúnmente en el

ESB)

Simple Service Facade

(Wylie, 2009)

Page 65: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 73

Este patrón es similar al patrón Servicio Proxy

Simple, pero en este caso las solicitudes no son

satisfechas por servicios, sino por aplicaciones

existentes

Las aplicaciones se acceden a través de

mensajes, adaptadores u otras APIs

Este patrón puede ser extendido a través de

ruteos, transformaciones o normalizaciones.

Simple Service Facade

(Wylie, 2009)

Page 66: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 74

Complex Service Facade

(Wylie, 2009)

Page 67: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 75

El patrón Complex Service Facade incorpora

lógica de integración, en base a algunas de las

capacidades nativas de los ESB

Se utiliza generalmente para construir servicios

de más alto nivel a partir de servicios,

componentes o funcionalidades de granularidad

más fina.

Complex Service Facade

(Wylie, 2009)

Page 68: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 76

Complex Service Facade

La lógica de integración se puede

construir de varias formas, pero

generalmente consiste en:

o una secuencia de llamadas

o el envío de múltiples solicitudes con la

posterior agregación de resultados

o la distribución de información.

Page 69: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 77

Client Access

7

7 (Wylie, 2009)

Page 70: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 78

El patrón Client Access provee puntos de

entrada para clientes que no tienen la

capacidad de acceder a interfaces orientadas

a servicios

Esto en general se realiza a través de

adaptadores

Este patrón permite a aplicaciones

empaquetadas existentes, participar en una

arquitectura empresarial que incorpora el

enfoque SOA

Client Access

(Wylie, 2009)

Page 71: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 79

Virtualización de Servicios

Habilitación de Servicios

Gateway

Procesamiento de Archivos

Patrones de Conectividad

(Wylie, 2009)

Page 72: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 80

Gateway

(Wylie, 2009)

Page 73: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 81

Un Gateway es una parte del ESB que provee

funciones de borde, las cuales se aplican a

todos los mensajes entrantes al ESB.

Luego de aplicarse un patrón Gateway, se

puede ejecutar otro de los patrones o llamar

directamente a un servicio.

Gateway

(Wylie, 2009)

Page 74: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 82

Este tipo de gateway separa todo el

procesamiento “no estándar” de seguridad de

la infraestructura principal

Puede ejecutar tareas de autenticación,

autorización y posiblemente auditoría

En este caso siempre existe una

comunicación confiable entre el Gateway y el

resto de los componentes del ESB

Permite simplificar los temas de seguridad en

el ESB

Security Gateway

(Wylie, 2009)

Page 75: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 84

Virtualización de Servicios

Habilitación de Servicios

Gateway

Procesamiento de Archivos

Patrones de Conectividad

(Wylie, 2009)

Page 76: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 85

Un ESB puede proveer un ambiente de

ejecución administrado para el procesamiento

de archivos (locales o vía FTP)

Los patrones para el procesamiento de

archivos involucran actividades como:

o transformación de datos de los archivos

o división de un archivo en registros individuales

o ruteo de registros

o acumulación de registros en archivos

o ruteo de archivos a determinados procesadores

Procesamiento de Archivos

(Wylie, 2009)

Page 77: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 86

File Record Processor

Record Batcher

File Record Distributor

Procesamiento de Archivos

(Wylie, 2009)

Page 78: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 87

File Record Processor

(Wylie, 2009)

Page 79: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 88

Se procesa cada registro de un archivo y

acumula los resultados en uno o más

archivos transitorios

Luego de completada la operación, estos

archivos serán movidos a directorios destino

Soporte a procesamiento batch

File Record Processor

(Wylie, 2009)

Page 80: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 89

Record Batcher

(Wylie, 2009)

Page 81: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 90

Este patrón recibe datos como solicitudes de

servicios (p.ej: SOAP), mensajes o a través

de adaptadores y luego de procesarlos

genera archivos temporales que, una vez

completos, son movidos a directorios

destinos

Record Batcher

(Wylie, 2009)

Page 82: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 91

Este patrón da soporte a interacciones entre

sistema más nuevos y sistemas legados que

únicamente soportan interfaces tipo batch

Este patrón se puede utilizar como un primer

paso para integrar sistemas legados a una

arquitectura orientada a servicios

Record Batcher

(Wylie, 2009)

Page 83: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 92

File record Distributor

(Wylie, 2009)

Page 84: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 93

Este patrón divide un archivo en registros y

utiliza cada registro para realizar llamadas a

servicios o para pasar un mensaje

File record Distributor

(Wylie, 2009)

Page 85: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 95

Introducción

Capacidades de un ESB

Patrones ESB

o Mediación, Conectividad y Despliegue

Agenda

Page 86: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 96

Patrones de Despliegue

Principal diferencia con Brokers EAI

Posibilidad de despliegue de varios ESB en

una misma organización

o Por sector, región, fusión de empresas, etc.

Page 87: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 97

Para empresas pequeñas, un único ESB

con un único registro podría ser suficiente

Para empresas de gran tamaño es

necesario considerar patrones de

despliegue más complejos que involucren

varios ESBs con varios registros

Patrones de Despliegue

Page 88: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 98

Existen básicamente cuatro configuraciones

conocidas para desplegar ESBs:

o Global ESB

o Directly Connected ESBs

o Brokered ESBs

o Federated ESBs

Patrones de Despliegue

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 89: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 99

Global ESB

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 90: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 100

En este patrón hay un único ESB, con un

único registro, para toda la organización

Esta configuración es adecuada para una

empresas o departamentos pequeños

Los servicios están disponibles y son visibles

para todos los participantes

Global ESB

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 91: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 101

Directly Connected ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 92: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 102

Todos los servicios de los ESB interconectados

están visibles a través de un registro común de

servicios.

o En este registro se encuentra la relación de cada

servicio con uno de los ESBs

Un cliente llama a su ESB local, que consulta el

registro común y pasa la solicitud al ESB destino

Sin importar el número de ESBs, esta topología

involucra interacciones entre dos ESBs que

están directamente conectados

Directly Connected ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 93: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 103

Este patrón es adecuado para

organizaciones con múltiples divisiones

Los servicios que provee cada división se

dejan disponibles a toda la organización

listándolos en un registro común

Cada división se encarga de la seguridad de

su ESB y regula el acceso a sus servicios

También se debería controlar el acceso al

registro de servicios

Directly Connected ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 94: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 104

Este patrón soporta la virtualización de

servicios de la siguiente manera:

o Para invocar servicios de otra unidad de negocio, se

define un servicio virtual en el ESB local el cual

encapsula la búsqueda en el registro global y el ruteo

al ESB correspondiente

o De esta forma, una solicitud

de un cliente en una división

puede invocar servicios de

otra división conectando de

forma directa los dos ESBs

Directly Connected ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 95: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 105

Este patrón utiliza un ESB broker para

mediar entre los ESBs conectados

Brokered ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 96: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 106

Es adecuado para organizaciones con

múltiples divisiones

Permite que servicios locales estén

disponibles de forma global publicándolos

centralmente

Sin embargo en este caso,

la lógica de intermediación

entre los ESB está

centralizada

Brokered ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 97: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 107

En este caso el flujo de invocación de un

servicio de otro ESB es el siguiente:

1. un cliente solicita un servicio a su ESB local

2. la solicitud se rutea al ESB broker

3. el broker efectúa una segunda mediación enviando la

solicitud al ESB destino

Brokered ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 98: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 108

En este patrón existe un “ESB maestro”

(master ESB) al cual se conectan varios

“ESBs esclavos”(slaves ESBs)

Federated ESBs

(Keen et al. 2005) (Hutchison et al. 2005) (Nott and Stockton 2006)

Page 99: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 109

Los consumidores y proveedores de

servicios se conectan tanto al ESB maestro

como a los ESBs esclavos

Este patrón es utilizado por organizaciones

con departamentos moderadamente

autónomos que están

bajo la supervisión de otro

departamento

Federated ESBs

(Keen et al. 2005) (Hutchison et al. 2005)

(Nott and Stockton 2006)

Page 100: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 110

Resumen

Motivación de uso de un ESB

o Arquitectura accidental

Repasamos principales capacidades de

mediación

o Ruteo, transformación, conectores

Patrones de ESB

o Mediación, Conectividad y despliegue

Page 101: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 111

Chappell, David. 2004. Enterprise Service

Bus: Theory in Practice. O'Reilly Media.

Davis, Jeff. 2009. Open Source Soa. 1st ed.

Manning Publications.

Endrei, Mark et al. 2004. “IBM Redbooks.

Patterns: Service-Oriented Architecture and

Web Services.”

Erl, Thomas. 2009. SOA Design Patterns. 1st

ed. Prentice Hall PTR.

Referencias

Page 102: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 112

Hohpe, Gregor, and Bobby Woolf. 2003. Enterprise

Integration Patterns: Designing, Building, and Deploying

Messaging Solutions. Addison-Wesley Professional.

Hutchison, B., M.-T. Schmidt, Dan Wolfson, and Marcia

Stockton. 2005. “SOA programming model for

implementing Web services, Part 4: An introduction to

the IBM Enterprise Service Bus.”

Keen, Martin et al. 2004. “IBM Redbooks. Patterns:

Implementing an SOA using an Enterprise Service Bus.”

Referencias

Page 103: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 113

Keen, Martin et al. 2005. “IBM Redbooks |

Patterns: Integrating Enterprise Service

Buses in a Service-Oriented Architecture.”

Nott, Chris, and Marcia Stockton. 2006.

Choose an ESB topology to fit your business

model.

Papazoglou, Michael. 2007. Web Services:

Principles and Technology. 1st ed. Prentice

Hall.

Referencias

Page 105: Introducción al Middleware

INCO - Facultad de Ingeniería – Montevideo, Uruguay 115

Wylie, H., & Lambros, P. (2009, March 10).

Enterprise Connectivity Patterns:

Implementing integration solutions with IBM’s

Enterprise Service Bus products. CT316.

Yan Fang, Rao et al. 2006. “Cache mediation

pattern specification: an overview.”

Referencias