Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
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:
◦ Active BPEL
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
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
IPersistenceManage
r IDeposit
IApplicationEngin IProcessEngine
e
IDeposit
XAM XPM Persistence Cumbia Deposit
Manager
Cumbia
Cumbia XVM
37
AXIS2 Importer Client
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
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
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