Está en la página 1de 50

Daniel Francisco Romero

Director: Jorge Villalobos

Proyecto Cumbia
Universidad de los Andes
2007 1
▸ Introducción
▸ BPEL: BUSINESS PROCESS EXECUTION

LANGUAGE
▸ Cumbia: Modelos Ejecutables, herramientas y

lenguajes de composición
▸ Caffeine: BPEL sobre Cumbia
▸ Conclusiones

2
▸ Importancia de los lenguajes y los productos de
workflow
◦ Mejoramiento del control sobre los procesos
◦ Monitoreo de procesos
◦ Mejoramiento continuo
◦ Toma de decisiones estratégicas

3
▸ Debido a la existencia de diversos contextos, se
tienen diferentes lenguajes de workflow:
◦ XPDL
◦ BPMN
◦ JPDL
◦ BPEL

4
▸ Construcción de motores de workflow
◦ Problemas con los contextos cambiantes
◦ Se requiere que los motores y lenguajes sean flexibles
◦ Varias alternativas:
Desarrollar motores desde cero
Extender algún motor existente
Desarrollar un super lenguaje
Construir una fábrica de motores

5
▸ ¿Cuál es el problema a resolver?
◦ Construcción de motores de workflow en corto tiempo, a
bajo costo, y que sean fácilmente extensibles
▸ ¿Cómo se va a resolver?
◦ Con la construcción de una fábrica de motores de
workflow
▸ ¿Para qué?
◦ Para contar rápidamente con motores a la medida
requeridos debido a los contextos cambiantes
▸ Resultados
◦ Desarrollo de un motor para un lenguaje industrial

6
▸ Introducción
▸ BPEL: BUSINESS PROCESS EXECUTION

LANGUAGE
▸ Cumbia: Modelos Ejecutables, herramientas y

lenguajes de composición
▸ Caffeine: BPEL sobre Cumbia
▸ Conclusiones

7
▸ Creado por IBM, BEA, SAP, Siebel y Microsoft en
agosto de 2002
▸ Mezcla de dos lenguajes:

◦ WSFL (Web Service Flow Language)


◦ XLANG
▸ Empleado para la orquestación de servicios Web
▸ Especicación actual: 2.0

8
Servicios
Clientes Web

Editor
• Descriptor proceso
• WSDL
• Archivos de deploy del
motor

Usuario
Analista de Negocio

Repositorio
Persistencia
Instancias

9
▸ Motores más utilizados:

◦ Oracle BPEL Process Manager (OBPM)

◦ Active BPEL

◦ Orchestration Director Engine (ODE)

10
11
▸ Actividad receiveInput
◦ Actividad receive
◦ Actividad inicial proceso
◦ Datos de entrada:
Correo del estudiante
Nombre del estudiante

12
▸ Actividad prepararVariableEnvioCorreo
◦ Actividad assign
◦ Preparar la variable para notificar al
estudiante que debe entregar la tesis

13
▸ Actividad
enviarCorreoSolicitudEntrega
◦ Actividad invoke
◦ Consume el servicio que se encarga del
envío de correos

14
▸ Actividad
recibirNotificacionEntrega
◦ Actividad receive
◦ Recibe la información indicando que el
estudiante entregó el documento

15
▸ Actividad solicitudCalificacionJuradosAsesor
◦ Actividad flow
◦ Cada actividad a ejecutar en paralelo es una
secuencia

16
▸ Actividad
prepararVariableCalcularNota
◦ Actividad assign
◦ Prepara la variable con las dos notas de
los jurados y la del asesor para calcular
la definitiva

17
▸ Actividad calcularNota
◦ Actividad invoke
◦ Consume el servicio que se encarga
de calcular la nota

18
▸ Actividad pasa?
◦ Actividad if
◦ Prepara el mensaje de respuesta de
acuerdo a la nota final
◦ Compuesta por dos secuencias

19
▸ Actividad callbackClient
◦ Actividad invoke
◦ Envía la respuesta al cliente

20
▸ Introducción
▸ BPEL: BUSINESS PROCESS EXECUTION

LANGUAGE
▸ Cumbia: Modelos Ejecutables, herramientas y

lenguajes de composición
▸ Caffeine: BPEL sobre Cumbia
▸ Conclusiones

21
▸ Tiene como propósito estudiar los elementos de
fábricas de software basadas en workflow
▸ Activos Principales:

◦ Modelos Ejecutables
◦ Herramientas de Soporte
◦ Lenguajes de Composición

22
Recursos

Control Lenguajes de Composición Tiempo

Aplicación Documentos

Herramientas de
Soporte

Modelo
= Elementos+Autómatas+Eventos
Ejecutable

Herramientas
= Motores, clientes web, depósitos, consolas, etc.
de Soporte
23
Dominio 1 Dominio 2
ED1 ED2

Lenguaje de
Composición

24
D3 Motor D3

D2
D1 Motor D1

Depósito
D1 D2 Lenguaje de
= + Composición
+
D4 D3

25
▸ Materializa el dominio de procesos
▸ Elementos:

26
27
▸ Introducción
▸ BPEL: BUSINESS PROCESS EXECUTION

LANGUAGE
▸ Cumbia: Modelos Ejecutables, herramientas y

lenguajes de composición
▸ Caffeine: BPEL sobre Cumbia
▸ Conclusiones

28
▸ Problema a resolver:
◦ Construcción de motores de para lenguajes de workflow
En un corto tiempo
A un bajo costo
Que sean extensibles
▸ El problema se presenta por contextos cambiantes
▸ Solución:
◦ Creación de una fábrica usando como activos los elementos de
Cumbia
▸ Resultado:
Motor para la ejecución de procesos BPEL: Caffeine

29
Servicios
Clientes Web

Editor

• Descriptor proceso
• WSDL
• Archivos de deploy del
motor
Usuario
Analista de Negocio

Importador

Cumbia-Deposit
30
BPEL
70 Construcciones aproximadamente: básicas, declarativas, estructuradoras, administrativas

Divididos en
tres capas para Control
la traducción
BPEL

Depósito
Control Lenguaje de
= + Composición +
Visualización

31
▸ Esquema de traducción:
Actividad BPEL Traducción
Assign

Receive

32
Actividad BPEL Traducción
Invoke

a) Sincrónico, b) Asincrónico

Flow

33
Actividad BPEL Traducción
If

Sequence

34
Actividad BPEL Traducción
Scope

Pick

35
BPEL
70 Construcciones aproximadamente: declarativas, básicas, estructuradoras, administrativas

Caffeine
traducidas
Control Funcionalidad
Motor XVM Complementaria
BPEL

Visualización

Depósito
Control Lenguaje de
= + Composición +
Visualización

36
Engine Client AXIS2 Importer Client

IMessageCenter IWsdlService
* IBPELImporter

Caffeine Engine BPEL Importer

IPersistenceManage
r IDeposit
IApplicationEngin IProcessEngine
e
IDeposit
XAM XPM Persistence Cumbia Deposit
Manager
Cumbia
Cumbia XVM

37
AXIS2 Importer Client

1 Recepción del archivo comprimido


IBPELImporter con la información del proceso

BPEL Importer 2 Procesamiento del archivo


4 Publicación del
servicio Web
Almacenamiento del Cumbiar y la
3 información original del proceso
IDeposit

Cumbia Deposit
Cumbia

38
IBPELImporter

ImporterTools
Importer Cumbia XPM Generator
Starter

IGenerator
IBpelDeploye
r
GeneratorTools
Deployer Generator Axis2 Velocity Ant

IDeposit

AXIS2

39
1 El servicio Web recibe
1una invocación

IMessageCente IWsdlService 2 El mensaje es


r transmitido al motor AXIS2
ws
3 Se crea la instancia
del proceso Caffeine Engine
4 El proceso es El mensaje es entregado a
inicializado 5
IApplicationEngine la actividad del proceso que
lo espera
Crea la instancia en
XAM XPM
XPM Px

Crea la instancia en
XVM XVM Pv
Cumbia
2 Solicita la invocación del AXIS2
partnerLink al ws asociado ws
con el proceso
IMessageCente IWsdlService
r

Caffeine Engine
1 Actividad invoque solicita la
invocación de un partnerLink

XPM Ai

Cumbia

41
IMessageCenter
Axis2
Message Center ws ws ws ws
Starter

BPEL Process Spaces IPersistenceManager


Engine Kernel

Process Space

XPM
Instantiator Caffeine
Engine Cumbia

IApplicationEngin
e
42
▸ Pruebas funcionales con tres escenarios:
◦ Proceso de consulta bolsa de empleo
◦ Proceso de admisión a la universidad
◦ Proceso de fabricación de champú

43
▸ Escenario 1: Proceso Bolsa Empleo
◦ Sincrónico
◦ 24 Actividades
◦ 4 partnerLinks

44
▸ Escenario 2: Proceso de Admisión a la
Universidad
◦ Asincrónico
◦ 21 Actividades
◦ 2 partnerLinks

45
▸ Escenario 3: Proceso de Fabricación de Champú
◦ Asincrónico
◦ El proceso principal usa dos procesos BPEL como
partnerLinks
◦ 76 Actividades
◦ 12 partnerLinks

46
Motor LOC Cantidad de Recursos Externos
Recursos Externos Empleados
Empleados
Caffeine 23034 4 Velocity, Ant, Axis2,
JXPATH
Apache ODE 53113 25 Bom, bpel-compiler,
bpel-elxpath10, bpel-
obj, dao-hibernate,
pxe-tools, x-sp-
contrib
ActiveBPEL 189090 26 Axis, wsdl4j, castor,
xml-apis,
xmlParserAPIs

47
▸ Introducción
▸ BPEL: BUSINESS PROCESS EXECUTION

LANGUAGE
▸ Cumbia: Modelos Ejecutables
▸ Caffeine: BPEL sobre Cumbia
▸ Conclusiones

48
Es posible construir un motor de workflow para un lenguaje
industrial usando los activos de Cumbia
El motor Caffeine se puede emplear como un activo más de
Cumbia
Se pueden desarrollar activos en un corto tiempo y a un bajo
costo
El desarrollo de motores usando una fábrica de software es una
excelente alternativa para obtener motores a la medida,
rápidamente y a un costo reducido
El desarrollo del motor Caffeine abre la posibilidad para desarrollar
motores para otros lenguajes usando los activos de Cumbia
Los motores desarrollados pueden ser empleados como activos,
para obtener motores que soporten lenguajes extendidos

49
50

También podría gustarte