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)
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