22.02.2015 Views

Curso 5007437 - Grupo de sistemas de información avanzados (IAAA)

Curso 5007437 - Grupo de sistemas de información avanzados (IAAA)

Curso 5007437 - Grupo de sistemas de información avanzados (IAAA)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Curso</strong> <strong>5007437</strong><br />

Conceptos y estándares <strong>de</strong> arquitecturas<br />

orientadas a servicios Web<br />

<strong>Curso</strong> 2006/2007<br />

Capítulo 3:<br />

Integración <strong>de</strong> Aplicaciones <strong>de</strong> Empresa<br />

(Enterprise Application Integratión, EAI)<br />

Pedro Álvarez<br />

alvaper@unizar.es<br />

José Ángel Bañares<br />

banares@unizar.es<br />

http://diis.unizar.es/PostWeb/<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas


Índice - Capítulo 3<br />

<br />

<br />

<br />

<br />

<br />

EAI (Enterprise Application Integration)<br />

De los Middleware a la EAI<br />

Integración <strong>de</strong> aplicaciones<br />

Broker <strong>de</strong> Mensajes<br />

Limitación <strong>de</strong> los MOM<br />

Broker <strong>de</strong> Mensajes = Extensión <strong>de</strong> los MOM<br />

Mo<strong>de</strong>lo Publicación/Suscripción<br />

Ventajas/Desventajas<br />

Workflow Management Systems<br />

Workflow Management Systems (WfMS)<br />

Definición <strong>de</strong> un Workflow<br />

Ejecución e un Workflow<br />

EAI y WfMSs<br />

Ventajas y Desventajas<br />

Arquitectura/Software/Framework/SW<br />

Arquitecturas Orientadas a Servicios<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

2


EAI<br />

De los Middleware a la EAI<br />

Integración <strong>de</strong> aplicaciones<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

3


De los Middleware a la EAI<br />

<br />

<br />

<br />

Middleware<br />

Infraestructura básica para <strong>de</strong>sarrollar <strong>sistemas</strong> distribuidos<br />

Cuando los <strong>sistemas</strong> a integrar son <strong>de</strong> distinta naturaleza es costosa<br />

la integración<br />

EAI (Enterprise Application Integration), son un paso en la evolución <strong>de</strong><br />

los middleware abordando aspectos <strong>de</strong> integración.<br />

En arquitecturas <strong>de</strong> 3-niveles se facilita la integración <strong>de</strong> gestores <strong>de</strong><br />

recursos diferentes, <strong>de</strong>sarrollando la lógica <strong>de</strong> la nueva aplicación en el<br />

middleware. La funcionalidad resultante pue<strong>de</strong> ser expuesta como un<br />

nuevo servicio, que pue<strong>de</strong> ser integrado por servicios <strong>de</strong> más alto nivel,<br />

y así sucesivamente.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

4


Problema <strong>de</strong> los Middleware<br />

<br />

La integración ió ya no es sólo <strong>de</strong> gestores <strong>de</strong> recursos, sino también <strong>de</strong><br />

servicios<br />

Mientras que ha habido un esfuerzo en la estandarización <strong>de</strong> los<br />

estándares <strong>de</strong> gestores <strong>de</strong> recursos (bases <strong>de</strong> datos, gestores <strong>de</strong><br />

documentos XML, etc.), no se pue<strong>de</strong> <strong>de</strong>cir lo mismo <strong>de</strong> los servicios<br />

genéricos.<br />

La integración <strong>de</strong> diferentes plataformas middleware no es fácil.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

5


Ejemplo <strong>de</strong> Integración <strong>de</strong> Aplicaciones<br />

Ca<strong>de</strong>na <strong>de</strong> suministros<br />

i proveedor y<br />

Gestión <strong>de</strong><br />

clientes<br />

presupuesto<br />

Procesado<br />

Gestión<br />

adquisición<br />

Or<strong>de</strong>n<br />

Envío<br />

financiación<br />

•Precio<br />

•Disponibilidad<br />

•Fecha entrega<br />

•Verificar presupuesto<br />

•Planificar fabricación<br />

•Comprar componentes<br />

•Adquisición componentes<br />

•Fabricación<br />

•Facturación<br />

•Pago a proveedores<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

6


Ejemplo <strong>de</strong> Integración <strong>de</strong> Aplicaciones<br />

Ca<strong>de</strong>na <strong>de</strong> suministros<br />

i <br />

<br />

proveedor y<br />

Gestión <strong>de</strong><br />

clientes<br />

presupuesto<br />

Procesado<br />

Or<strong>de</strong>n<br />

adquisición<br />

Gestión<br />

Envío<br />

financiación<br />

Cada sistema tiene sus propias características<br />

Se ejecutan sobre diferentes S.O. SO (Lynux, Solaris, Windows, HP-UX)<br />

Cada sistema pue<strong>de</strong> soportar diferentes interfaces y funcionalidad<br />

• Algunos utilizan IDL, otros interfaces propietarias, algunos serán transaccionales,<br />

otros no, etc. ...<br />

Cada sistema tiene diferente formato <strong>de</strong> datos o produce información que no pue<strong>de</strong><br />

ser fácilmente enviada como parámetros (p.e. Complejos documentos multimedia)<br />

Cada sistema tiene diferentes requisitos <strong>de</strong> seguridad (basados en certificados X.509,<br />

o simples username/password).<br />

Cada sistema pue<strong>de</strong> utilizar diferente infraestructura y mo<strong>de</strong>los <strong>de</strong> interacción<br />

diferentes (CORBA, DCOM, etc.)<br />

Cada <strong>de</strong>partamento es gestionado autónomamente. La integración no figura en sus<br />

priorida<strong>de</strong>s.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

7


Broker <strong>de</strong> Mensajes<br />

Limitación <strong>de</strong> los<br />

MOM<br />

Broker <strong>de</strong> Mensajes =<br />

Extensión <strong>de</strong> los MOM<br />

Mo<strong>de</strong>lo<br />

Publicación/Suscripción<br />

Ventajas/Desventajas<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

8


Middleware EAI: Broker <strong>de</strong> Mensajes<br />

<br />

<br />

Los <strong>sistemas</strong> basados en RPC o MOM crean enlaces uno a uno entre las<br />

aplicaciones. Son enlaces estáticos e inflexibles en lo referente a la<br />

sección <strong>de</strong> colas a las que se envían los mensajes.<br />

Lo que se precisa para integrar aplicaciones i es:<br />

Flexibilidad a la hora <strong>de</strong> dirigir los mensajes<br />

Comunicación Asíncrona<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

9


Limitación <strong>de</strong> los MOM<br />

proveedor y<br />

Gestión <strong>de</strong><br />

clientes<br />

presupuesto<br />

Procesado<br />

Or<strong>de</strong>n<br />

adquisición<br />

Gestión<br />

Envío<br />

financiación<br />

Gestión<br />

inventario<br />

ERP<br />

organizador<br />

envíos<br />

Cierre<br />

mes<br />

Nueva OC Nueva OC Nueva OC<br />

Nueva OC<br />

Middleware orientado a mensajes<br />

<br />

<br />

Se requiere referencia (estática o dinámica) a las aplicaciones usadas<br />

Las aplicaciones <strong>de</strong>ben cambiarse si se interacciona con un nuevo<br />

sistema<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

10


Limitación <strong>de</strong> los MOM<br />

<br />

<br />

Imposibilidad d <strong>de</strong> tratar t con escenarios más dinámicos<br />

i<br />

Mercado <strong>de</strong> productos que interopera con aplicaciones interesadas en<br />

cambios <strong>de</strong> precios<br />

El número <strong>de</strong> aplicaciones con las que interactuar cambia<br />

constantemente<br />

La evolución <strong>de</strong> los MOM para soportar la integración <strong>de</strong> <strong>sistemas</strong><br />

heterogéneos como ERP, o CRM lleva a los broker <strong>de</strong> mensajes<br />

MOM no da soporte para <strong>de</strong>finir lógica sofisticada para dirigir<br />

mensajes<br />

MOM no ayuda a abordar la heterogeneidad<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

11


Extensión <strong>de</strong> los MOM<br />

<br />

El principal i problema es que en un sistema MOM, la responsabilidad<br />

d<br />

para <strong>de</strong>finir el receptor <strong>de</strong>l mensaje resi<strong>de</strong> en el que lo envía.<br />

La primera extensión será <strong>de</strong>splazar esta responsabilidad al<br />

Middleware<br />

Se <strong>de</strong>fine la lógica <strong>de</strong> la aplicación que i<strong>de</strong>ntifica, para cada mensaje,<br />

las colas que pue<strong>de</strong>n recibirlo. El broker <strong>de</strong> mensajes i<strong>de</strong>ntifica los<br />

receptores ejecutando reglas <strong>de</strong>finidas por el usuario.<br />

Sólo en el middleware hay que modificar la lógica para dirigir los<br />

mensajes. La lógica <strong>de</strong> direccionamiento se basa en<br />

• la i<strong>de</strong>ntidad <strong>de</strong>l emisor,<br />

• el tipo <strong>de</strong> mensaje,<br />

• el contenido <strong>de</strong>l mensaje.<br />

Se suele programar en lenguajes “basados en reglas”<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

12


Lógica <strong>de</strong> direccionamiento<br />

En MOM básicos es el<br />

emisor quien especifica<br />

la i<strong>de</strong>ntidad <strong>de</strong> los<br />

receptores<br />

emisor<br />

receptor<br />

broker <strong>de</strong> mensajes<br />

Núcleo <strong>de</strong>l broker <strong>de</strong> mensajes<br />

En los broker <strong>de</strong><br />

mensajes, la lógica <strong>de</strong><br />

direccionamiento se<br />

pue<strong>de</strong> <strong>de</strong>finir en el<br />

broker <strong>de</strong> mensajes, a<br />

nivel <strong>de</strong> mensaje, o a<br />

nivel <strong>de</strong> cola <strong>de</strong> mensaje<br />

<br />

<br />

<br />

Lógica <strong>de</strong>finida a nivel <strong>de</strong>l broker: Se aplica a todos los mensajes<br />

Lógica a nivel <strong>de</strong> cola: Se indica el tipo <strong>de</strong> mensajes que <strong>de</strong>be recibir la<br />

cola.<br />

Es posible la <strong>de</strong>finición <strong>de</strong> reglas <strong>de</strong> transformación <strong>de</strong> datos asociadas<br />

con la lógica <strong>de</strong> la regla.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

13


Broker <strong>de</strong> Mensajes<br />

<br />

<br />

Un Broker <strong>de</strong> mensajes extien<strong>de</strong> los MOM:<br />

con capacidad <strong>de</strong> <strong>de</strong>finir lógica para los mensajes ,<br />

procesar los mensajes directamente a nivel <strong>de</strong> middleware,<br />

y ofrece adaptadores d que enmascaran la heterogeneidad dy permiten<br />

acce<strong>de</strong>r a todos los <strong>sistemas</strong> con el mismo mo<strong>de</strong>lo <strong>de</strong> programación<br />

y formato <strong>de</strong> intercambio <strong>de</strong> datos.<br />

Ejemplos<br />

JMS (Java Message Service), un API Java estándar para la<br />

funcionalidad básica <strong>de</strong> un broker <strong>de</strong> mensajes<br />

Implementaciones comerciales en plataformas EAI<br />

• Tibco ActiveEnterprise, BEA WebLogic Integration,<br />

WebMethods Enterprise, WebSphere MQ.<br />

• JBOSS (Open Source)<br />

JBI (Java Bussines Integration),basado en una arquitectura <strong>de</strong><br />

servicios, en el que el núcleo es un router <strong>de</strong> mensajes.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

14


Problemas <strong>de</strong> los Broker <strong>de</strong> Mensajes<br />

<br />

Colocar lo lógica <strong>de</strong> la aplicación ió en un broker <strong>de</strong> mensajes da algunos<br />

problemas. Las aplicaciones son más genéricas y robustas frente a<br />

cambios, pero<br />

Es difícil il <strong>de</strong>purar y mantener,<br />

Cada vez que se recibe un mensaje se <strong>de</strong>ben ejecutar reglas. Hay un<br />

nivel <strong>de</strong> indirección más.<br />

Otra limitación es que los broker <strong>de</strong> mensajes están pensados para<br />

soportar interacciones OLTP (On Line Transaction Processing).<br />

Cuando se usan para enviar mensajes gran<strong>de</strong>s, sus prestaciones se<br />

ven afectadas.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

15


Mo<strong>de</strong>lo <strong>de</strong> interacción<br />

Publicación/suscripción<br />

<br />

<br />

La lógica <strong>de</strong> direccionamiento i i <strong>de</strong> los broker <strong>de</strong> mensajes permite <strong>de</strong>finir<br />

i<br />

distintos mo<strong>de</strong>los <strong>de</strong> interacción.<br />

Uno <strong>de</strong> los mo<strong>de</strong>los más utilizado es el publicación/suscripción<br />

Las aplicaciones comunican intercambiando mensajes caracterizados<br />

por tipo y un conjunto <strong>de</strong> parámetros<br />

Las aplicaciones que envían mensajes, los “publican “ en el<br />

middleware, que se encarga <strong>de</strong> redirigirlos.<br />

Las aplicaciones que están interesadas en recibir mensajes <strong>de</strong> un<br />

<strong>de</strong>terminado tipo se subscriben, registrando su interés.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

16


Mo<strong>de</strong>lo Publicación/suscripción<br />

i i i<br />

Gestión<br />

inventario<br />

(suscriptor)<br />

ERP<br />

(suscriptor)<br />

organizador<br />

(publicador)<br />

envíos<br />

(suscriptor)<br />

Cierre<br />

mes<br />

(suscriptor)<br />

Nueva OC Nueva OC Nueva OC Nueva OC<br />

Nueva OC<br />

broker <strong>de</strong> mensajes<br />

<br />

Suscripción por tipo <strong>de</strong> mensaje<br />

Pue<strong>de</strong> haber una estructura <strong>de</strong> tipos tipo.subtipo.subsubtipo...<br />

• Suscripción Ca<strong>de</strong>naSuministros.NuevaOC<br />

Ca<strong>de</strong>naSuministros.*<br />

Suscripción basada en parámetros (condiciones booleanas sobre los<br />

parámetros:<br />

• Tipo =“NuevaOC” AND Cliente=ACME AND cantidad >100<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

17


Administración i ió <strong>de</strong>l Broker <strong>de</strong> Mensajes<br />

<br />

Administrador, usuario distinguido que tiene autoridad para<br />

Definir tipos <strong>de</strong> mensajes<br />

Definir que usuarios pue<strong>de</strong>n enviar y/o recibir mensajes<br />

Definir la lógica <strong>de</strong> redireccionamiento<br />

dominio administración A<br />

dominio administración C<br />

admin<br />

client client … admin<br />

client client …<br />

broker <strong>de</strong> mensajes<br />

BM-A<br />

broker <strong>de</strong> mensajes<br />

BM-C<br />

broker <strong>de</strong> mensajes<br />

BM-B<br />

admin client client …<br />

dominio i administración i ió B<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

18


EAI con un Broker <strong>de</strong> Mensajes<br />

Adaptadores: mapean formatos, interfaces, y protocolos heterogéneos en un mo<strong>de</strong>lo y formato<br />

común.<br />

Broker <strong>de</strong> Mensajes: Facilitan la interacción entre los adaptadores<br />

aplicación integradora<br />

(contiene la lógica <strong>de</strong> composición)<br />

broker <strong>de</strong> mensajes<br />

adaptador<br />

presupuestos<br />

adaptador<br />

bases <strong>de</strong> datos<br />

adaptador<br />

Pronóstico<br />

adaptador<br />

e-mail<br />

adaptador<br />

XYZ<br />

Presupuestos<br />

Aplicaciones<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

GBdD<br />

Pronóstico<br />

XYZ<br />

19


Ejemplo Facturación<br />

Procesamiento <strong>de</strong> PdP<br />

A 1 5<br />

6<br />

Broker <strong>de</strong> mensajes<br />

B 2 4<br />

C 7<br />

adaptador<br />

presupuestos<br />

3 8<br />

presupuestos<br />

Adaptador<br />

Pronóstico<br />

pronósticos<br />

Cuando se inicia el sistema (pue<strong>de</strong> ocurrir en<br />

cualquier or<strong>de</strong>n, pero antes <strong>de</strong> que haya una<br />

petición <strong>de</strong> presupuesto (PdP))<br />

A: suscripción al mensaje presupuesto<br />

B: suscripción al mensaje peticionPresupuesto<br />

C: suscripción al mensaje nuevoPresupuesto<br />

En tiempo <strong>de</strong> ejecución: procesamiento <strong>de</strong> una<br />

Petición <strong>de</strong> Presupuesto<br />

1: publicación <strong>de</strong> un mensaje<br />

peticionPresupuesto<br />

2: entrega <strong>de</strong>l mensaje peticionPresupuesto<br />

3: invocación síncrona <strong>de</strong> la función<br />

obtenPresupuesto<br />

st<br />

4: publicación <strong>de</strong> un mensaje presupuesto<br />

5: entrega <strong>de</strong>l mensaje presupuesto<br />

6: publicación <strong>de</strong>l mensaje nuevoPresupuesto<br />

7: entrega <strong>de</strong>l mensaje nuevoPresupuesto<br />

8: invocación <strong>de</strong>l procedimiento<br />

creaEntradaPronostico<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

20


Ejemplo Facturación<br />

Procesamiento <strong>de</strong> PdP<br />

A 1 5<br />

Broker <strong>de</strong> mensajes<br />

B 2 4<br />

C 7<br />

adaptador<br />

presupuestos<br />

3 8<br />

Adaptador<br />

Pronóstico<br />

Cuando se inicia el sistema (pue<strong>de</strong> ocurrir en<br />

cualquier or<strong>de</strong>n, pero antes <strong>de</strong> que haya una<br />

petición <strong>de</strong> presupuesto (PdP))<br />

A: suscripción al mensaje presupuesto<br />

B: suscripción al mensaje peticionPresupuesto<br />

C: suscripción al mensaje presupuesto<br />

En tiempo <strong>de</strong> ejecución: procesamiento <strong>de</strong> una<br />

Petición <strong>de</strong> Presupuesto<br />

1: publicación <strong>de</strong> un mensaje<br />

peticionPresupuesto<br />

2: entrega <strong>de</strong>l mensaje peticionPresupuesto<br />

3: invocación síncrona <strong>de</strong> la función<br />

obtenPresupuesto<br />

st<br />

4: publicación <strong>de</strong> un mensaje presupuesto<br />

5: entrega <strong>de</strong>l mensaje presupuesto<br />

presupuestos<br />

pronósticos<br />

7: entrega <strong>de</strong>l mensaje presupuesto<br />

8: invocación <strong>de</strong>l procedimiento<br />

creaEntradaPronostico<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

21


Revisión crítica <strong>de</strong> los broker <strong>de</strong><br />

mensajes como plataformas <strong>de</strong> EAI<br />

<br />

<br />

<br />

Bj Bajo coste <strong>de</strong> <strong>de</strong>sarrollo<br />

Integración más sencilla<br />

Componentes <strong>de</strong>sacopladas<br />

Esfuerzo focalizado en el <strong>de</strong>sarrollo <strong>de</strong> adaptadores<br />

Mayores oportunida<strong>de</strong>s<br />

Mayores posibilida<strong>de</strong>s <strong>de</strong> expansión <strong>de</strong>l sistema<br />

Reacción más rápida a nuevas posibilida<strong>de</strong>s<br />

Menores esfuerzos <strong>de</strong> mantenimiento<br />

El uso <strong>de</strong> adaptadores tiene el efecto <strong>de</strong> extraer la interacción con los<br />

<strong>sistemas</strong> externos como un aspecto ortogonal y localizado en el<br />

adaptador correspondiente.<br />

La aplicación que ejecuta la lógica <strong>de</strong> integración no se ve alterada<br />

sustancialmente si se introducen nuevos <strong>sistemas</strong>.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

22


Revisión crítica <strong>de</strong> los broker <strong>de</strong><br />

mensajes como plataformas <strong>de</strong> EAI<br />

<br />

<br />

Licencias i software <strong>de</strong> soluciones EAI son caras<br />

Un bus <strong>de</strong> mensajes, con sus herramientas <strong>de</strong> <strong>de</strong>sarrollo y gestión es<br />

muy costoso<br />

Formación <strong>de</strong>l personal<br />

Queda <strong>de</strong>sarrollar la lógica <strong>de</strong> integración, configurar adaptadores, y<br />

<strong>de</strong>sarrollar nuevos adaptadores.<br />

Sólo son abordables por gran<strong>de</strong>s empresas<br />

La adopción <strong>de</strong> los estándares <strong>de</strong> servicios Web, pue<strong>de</strong> cambiar este<br />

panorama...<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

23


Workflow Management Systems<br />

Workflow Management Systems<br />

(WfMS)<br />

Definición <strong>de</strong> un Workflow<br />

Ejecución e un Workflow<br />

EAI y WfMSs<br />

Ventajas y Desventajas<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

24


Workflow Management Systems<br />

<br />

<br />

Los broker <strong>de</strong> mensajes permiten ocultar la heterogeneidad d<strong>de</strong> los<br />

<strong>sistemas</strong> a integrar<br />

Workflow Management Systems (WfMSs) facilitan la <strong>de</strong>finición y<br />

mantenimiento i <strong>de</strong> la lógica <strong>de</strong> integración.<br />

i<br />

Tienen su origen en la automatización <strong>de</strong> trabajos <strong>de</strong> oficina<br />

(automatización <strong>de</strong> procesos administrativos)<br />

• Workflows administrativos: Control y gestión <strong>de</strong> documentos<br />

(basados en e-mail o formularios Web)<br />

WfMSs que implementan la lógica <strong>de</strong>l negocio se <strong>de</strong>nominan<br />

Workfows <strong>de</strong> producción.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

25


Workflow Management Systems<br />

<br />

<br />

Son útiles para “gestionar” el direccionamiento <strong>de</strong> la información, pero<br />

no soportan la heterogeneidad <strong>de</strong> las aplicaciones.<br />

Permiten expresar la lógica <strong>de</strong> la aplicación <strong>de</strong> forma explícita y<br />

expresada en un lenguaje <strong>de</strong> alto nivel (normalmente gráfico).<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

26


Workflow Management Systems<br />

<br />

<br />

Ejemplos <strong>de</strong> <strong>sistemas</strong> WFM comerciales:<br />

WebSphere MQ Workflow <strong>de</strong> IBM<br />

Vititria Business-Ware<br />

Tibco BMP<br />

BEA WebLogic Integration<br />

Microsoft BizTalk Orchestration<br />

Ha sido objeto <strong>de</strong> esfuerzos <strong>de</strong> estandarización. A mediados <strong>de</strong> los noventa<br />

<strong>de</strong>staca la Workflow Management Coalition. El interés <strong>de</strong>cayó<br />

consi<strong>de</strong>rablemente. El interés ha revivido en el campo <strong>de</strong> la composición <strong>de</strong><br />

servicios Web.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

27


Definición <strong>de</strong> un Workflow<br />

<br />

<br />

<br />

Proceso <strong>de</strong> negocio: Colección <strong>de</strong> activida<strong>de</strong>s id d <strong>de</strong>sarrolladas d por<br />

personas o aplicaciones que realizan <strong>de</strong> forma conjunta un objetivo <strong>de</strong><br />

negocio<br />

Or<strong>de</strong>nes <strong>de</strong> compra <strong>de</strong> clientes, contratación <strong>de</strong> personal, etc.<br />

Workflow, workflow process, process: <strong>de</strong>scripción formal y ejecutable <strong>de</strong><br />

un proceso <strong>de</strong> negocio. Se suele especificar mediante un grafo con<br />

nodos <strong>de</strong> los siguientes tipos:<br />

Nodo <strong>de</strong> trabajo: Representa elementos <strong>de</strong> trabajo a <strong>de</strong>sarrollar por<br />

una persona o una aplicación<br />

Nodo <strong>de</strong> ruta: <strong>de</strong>fine el or<strong>de</strong>n en que se realiza los elementos <strong>de</strong><br />

trabajo, y permiten la <strong>de</strong>finición <strong>de</strong> trabajos en paralelo o<br />

activaciones condicionadas.<br />

Nodos principio y fin<br />

Una instancia <strong>de</strong> workflow es una ejecución <strong>de</strong> éste.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

28


comprueba si<br />

Ejemplo <strong>de</strong> Workflow<br />

es producto ofertado<br />

Ofertado =falso<br />

Diferentes Mo<strong>de</strong>los<br />

•Diagramas <strong>de</strong> Actividad (UML)<br />

•Re<strong>de</strong>s <strong>de</strong> Petri<br />

•State Charts<br />

else<br />

comprueba si<br />

merece la pena<br />

Proce<strong>de</strong>=verdad<br />

Ofertado=verdad<br />

obtener presupuesto<br />

sistema presupuestos<br />

variables:<br />

NumeroReferenciaPresupuesto: integer<br />

Cliente: String<br />

Producto: String<br />

Cantidad: int<br />

FechaEntregaSolicitada: Fecha<br />

DireccionEntrega: String<br />

Proce<strong>de</strong>: Bool<br />

ExisteContrato : Booleano<br />

ofertado: Booleano<br />

ExisteContrato=falso<br />

obtener presupuesto<br />

<strong>de</strong>l suministrador<br />

actualizar<br />

sistema presupuestos<br />

ExisteContrato = verdad<br />

enviar presupuesto<br />

A cliente<br />

enviar presupuesto<br />

a sistema pronóstico<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

29


Ejecución <strong>de</strong> un Workflow<br />

<br />

<br />

Intérprete: Planificador (Scheduler). hdl )Planifica el ltrabajo bj y lo asigna a un<br />

ejecutor (recurso).<br />

Broker <strong>de</strong> recursos: Ejecuta alguna política <strong>de</strong> selección <strong>de</strong>l recurso<br />

broker recursos<br />

recurso 1<br />

Elementos <strong>de</strong> trabajo<br />

completados<br />

1<br />

3<br />

4 5<br />

Intérprete workflow<br />

recurso 2<br />

cola entrada<br />

2<br />

colas recursos<br />

recurso n<br />

diseñador<br />

workflow<br />

Definiciones workflow<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

30


WfMS como Lenguajes Programación<br />

<br />

Diferencias i <strong>de</strong> los WfMS con los lenguajes <strong>de</strong> programación clásicos<br />

De escala:WfMS invocan activida<strong>de</strong>s <strong>de</strong> grano grueso y aplicaciones que<br />

pue<strong>de</strong>n durar horas o días.<br />

La granularidad d <strong>de</strong> los componentes: aplicaciones i o complejos sitemas <strong>de</strong><br />

N-niveles (megamodulos). El lenguaje <strong>de</strong> programación <strong>de</strong> EAI.<br />

Deben contar con técnicas <strong>de</strong> manejo <strong>de</strong> fallos sofisticadas<br />

• Forward recovery: Dar persistencia al estado <strong>de</strong> la instancia <strong>de</strong>l workflow.<br />

• Backward recovery:Cuando hay que recuperarse <strong>de</strong> tareas que no se pue<strong>de</strong>n<br />

llevar a cabo. La i<strong>de</strong>a es asociar con cada nodo <strong>de</strong> trabajo activida<strong>de</strong>s<br />

compensatorias cuya ejecución semántica supone <strong>de</strong>shacer lo hecho. Se ejecutan<br />

las acciones en or<strong>de</strong>n inverso.<br />

• Lenguajes <strong>de</strong> manejo <strong>de</strong> excepciones: Por ejemplo, tratar eventos <strong>de</strong> cancelación<br />

<strong>de</strong> peticiones <strong>de</strong> clientes que pue<strong>de</strong>n ocurrir asícronamente. Se representan<br />

mediante reglas Evento Condición Acción (ECA), try-cath-throw throw al estilo <strong>de</strong><br />

java, nodos evento, etc.<br />

• Deadlines: Se toma una acción correctiva si la or<strong>de</strong>n no se ejecuta en un periodo<br />

<strong>de</strong> tiempo.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

31


EAI = WfMS + Broker Mensajes<br />

WfMS<br />

Adaptador WfMS<br />

message broker<br />

adaptador<br />

presupuestos<br />

adaptador<br />

base <strong>de</strong> datos<br />

adaptador<br />

pronóstico<br />

adaptador<br />

e-mail<br />

adaptador<br />

XYZ<br />

Presupuestos<br />

Aplicaciones<br />

GBdD<br />

Pronóstico<br />

XYZ<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

32


Ventajas/Desventajas WfMSs<br />

<br />

Ventajas<br />

<br />

Problemas<br />

Proceso <strong>de</strong> diseño rápido<br />

Coste <strong>de</strong> licencias caras<br />

Fácil Mantenimiento<br />

Complejas operaciones <strong>de</strong><br />

Manejo excepciones y fallos<br />

instalación<br />

ió<br />

Entorno <strong>de</strong> <strong>de</strong>sarrollo gráfico Ciclos <strong>de</strong> <strong>de</strong>sarrollo largos para<br />

automatizar procesos <strong>de</strong><br />

negocio reales<br />

Deben implementar una<br />

plataforma middleware<br />

completa para ofrecer el<br />

entorno con la funcionalidad<br />

requerida.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

33


Resumen<br />

<br />

<br />

<br />

El tipo <strong>de</strong> integración ió discutido hasta ahora se limita it al ámbito <strong>de</strong> re<strong>de</strong>s<br />

<strong>de</strong> área local<br />

LOS PROBLEMAS SE AMPLIFICAN SI TRATAMOS REDES<br />

DE AREA GLOBAL, O SOBRE INTERNET<br />

La “sencillez” en la integración está lejos <strong>de</strong> lo que prometen los<br />

ven<strong>de</strong>dores<br />

El principal problema es la falta <strong>de</strong> estandarización, en el middleware y a<br />

nivel <strong>de</strong> componentes.<br />

<strong>Curso</strong> <strong>5007437</strong> Conceptos y estándares <strong>de</strong> arquitecturas orientadas a servicios Web<br />

Departamento <strong>de</strong> Informática e Ingeniería <strong>de</strong> Sistemas (Univ. Zaragoza)<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!