Académique Documents
Professionnel Documents
Culture Documents
1 Introduccin
El uso de las tecnologas de Workflow en la integracin de aplicaciones ha captado
gran inters en las comunidades industriales y acadmicas. Esto es evidente, de manera
particular, en el rea de los Servicios Web con la aparicin de lenguajes tales como
XLang [11] y WSFL [5] propuestos por Microsoft e IBM, respectivamente. La alianza
de estos dos industriales dio lugar a un nuevo lenguaje llamado BPEL4WS [1] (o
BPEL), que es resultado de una fusin de sus predecesores. Este lenguaje ha sido
aceptado como estndar de facto y sigue en este momento un proceso para su
estandarizacin formal por OASIS.
Uno de las deficiencias en el documento de la especificacin de BPEL es la falta de
una descripcin formal de su semntica. El documento slo hace una descripcin en
ingls, complementada por ejemplos. Se ha reconocido la expresividad de BPEL pero,
de igual manera, los problemas de ambigedad en el lenguaje. Esto se atribuye a la
combinacin de los dos lenguajes predecesores y particularmente a la
complementariedad de sus construcciones. As, se ha demostrado que un mismo
problema puede ser escrito de mltiples maneras y la equivalencia no fcil de
evidenciar. La preocupacin ms importante es, sin embargo, la falta una
2 Trabajos relacionados
Al momento, pocos han sido los trabajos que reportan algn mecanismo para la
verificacin de procesos descritos en BPEL. Christian Stahl [10] propone una
semntica operacional para BPEL basada en redes de Petri [7], misma que permite
traducir procesos BPEL a Redes de Petri siguiendo un conjunto de patrones. Los
autores reportan en [9] un caso de estudio en el que un proceso de compras descrito en
BPEL es transformado en una Red de Petri con 158 lugares y 259 transiciones. La red
resultante fue pasada a una herramienta llamada LoLA [8] en la que los autores
realizaron una verificacin del proceso.
Farahbod y col. [2] proponen usar las Mquinas de Estado Abstractas (ASM, del
ingls Abstract State Machines) como formalismo para describir la semntica
operacional de BPEL. Para su verificacin, las mquinas ASM pueden ser traducidas a
mquinas de estado finito que, a su vez, pueden ser verificadas y simuladas. El artculo
[2] describe un ejercicio en el que los autores traducen un proceso BPEL en ASM y
posteriormente la simulan en el ambiente ASML. Los autores no dan detalles sobre el
proceso de traduccin de los procesos BPEL a ASM.
A partir de estas experiencias, nos interesamos en la definicin e implementacin de
un traductor de procesos BPEL a YAWL. Consideramos que el uso de YAWL es
conveniente, ya que su notacin es compacta y el uso de la construccin cancelacin
de YAWL (que elimina los tokens en una subred de Petri) podra ofrecer una ventaja
con respecto a las redes de Petri.
3 Lenguaje YAWL
YAWL [12] (del ingls Yet Another Workfow Languaje) es un lenguaje para la
definicin de flujos de trabajo. YAWL es un lenguaje formal basado en redes de Petri.
En YAWL, toda definicin de flujo de trabajo est compuesta de tareas y condiciones:
Descripcin
Condicin de Entrada
Condicin de Salida
Tarea Atmica
Tarea AND-Split
Tarea XOR-Split
Tarea OR-Split
Tarea AND-Join
Tarea XOR-Join
Tarea OR-Join
4 Lenguaje BPEL4WS
BPEL4WS o simplemente BPEL [1] (del ingls Business Process Execution Lenguaje
for Web Services) es un lenguaje para la definicin de procesos de negocios. BPEL es
un lenguaje basado en XML. En BPEL, un proceso est compuesto de un conjunto de
actividades bsicas y/o estructuradas:
Una actividad bsica especifica una accin a realizar (e.g. invocar una
operacin de un Servicio Web).
Descripcin
<receive />
<reply/ >.
<invoke />
<assign />
<throw />
<terminate />
<wait />
<empty />
<compensate../>
Elemento XML
Descripcin
<sequence />
<flow />
<switch />
<while />
<pick />
<scope />
Secuencia en BPEL
<sequence>
<empty name=A />
<empty name=B />
</sequence>
Una actividad flujo de BPEL, con dos actividades que deben ser ejecutadas en
paralelo se puede representar en YAWL con las tareas correspondientes entre tareas
AND-Split y AND-Join, como es mostrado en la Fig. 2.
Flujo en BPEL
<flow>
<empty name=A />
<empty name=B />
</flow>
Fig. 3. Flujo de Trabajo en YAWL equivalente a una actividad flujo con ligas.
6 Mtodo de Traduccin
La traduccin de actividades bsicas BPEL a tareas YAWL se hace de manera directa,
estableciendo una correspondencia uno a uno. En cuanto a las actividades
estructuradas, se aplica de manera recursiva la traduccin de cada actividad
estructurada siguiendo el orden impuesto por la anidacin de las actividades
estructuradas.
Un aspecto crucial es el de determinar la conexin de las ligas de control de flujo en
YAWL. En el caso de una actividad BPEL SEQUENCE, las ligas se acomodan de
manera tal a forzar un flujo secuencial. Este caso es directo. En el caso de actividades
La traduccin inicia agregando dos tareas: un AND-Split para marcar el inicio del
FLOW y otra AND-Join para marcar fin. Observe que las condiciones de entrada y de
salida estn presentes y unidas a las tareas que acabamos de agregar, para completar la
definicin del flujo de trabajo.
(a)
(b)
(c)
Posteriormente, las secuencias son conectadas a las tareas que marcan la entrada y
salida de la actividad FLOW. Finalmente, se agrega la arista que describe la liga de
control explcito. La Fig. 5c corresponde al resultado de la traduccin a YAWL para el
ejemplo.
En esta seccin, se ha esbozado el mtodo de traduccin de un proceso BPEL, a un
flujo en YAWL, mediante un par de ejemplos. En [6] se pueden encontrar la
descripcin del mtodo en mayor detalle.
Proceso en
YAWL
Representacin
equivalente
rbol
DOM
Construccin de
la representacin
equivalente
Construccin
del
rbol
DOM
Generacin
de
cdigo
YAWL
8 Evaluacin cualitativa
Se hicieron varias pruebas con el traductor propuesto. Se tomaron varios procesos
descritos en BPEL, para cada proceso el traductor gener una representacin textual de
un flujo de trabajo en YAWL.
Cada flujo de trabajo generado se despleg en el motor de ejecucin de YAWL y se
simularon algunos casos de prueba. Para todos ellos el comportamiento del proceso en
YAWL fue el esperado. Cabe mencionar que no existe una herramienta para la
generacin automtica de casos de prueba, lo que facilitara la evaluacin de los flujos
de trabajo generados.
9 Referencias
[1] F. Curbera y col. Business Process Execution Language for Web Services, version 1.1.
Reporte tnico IBM 2003. Disp. en http://www106.ibm.com/developerworks/library/ws-bpel
[2] R. Farahbod, y col. A Formal Semantics for the Business Process Execution Language for
Web Services. En Web Services and Model-Driven Enterprise Information Systems, pages
144-155, Portugal, May 2005. INSTICC Press.
[3] W. Glass-Husain y col. Apache Velocity template engine, version 1.4. A. S. Foundation, Abril
2004. Disp. en http://jakarta.apache.org/velocity/index.html.
[4] P. Le Hgaret y col. Document Object Model Level 3 Specification. W3C DOM working
group, Octubre 1998. Disp. en http://www.w3.org/DOM/DOMTR#dom3.
[5] F. Leymann y col. Web Services Flow Language (WSFL), version 1.0, Reporte tcnico IBM
2001. Disp. en http://www306.ibm.com/software/solutions/webservices/pdf/WSFL.pdf.
[6] G. Lpez-Lpez. Desarrollo de un Traductor de BPEL4WS a YAWL. Tesis de Licenciatura.
Universidad Autnoma de Tlaxcala, Agosto 2005.
[7] C.A. Petri. Kommunikation mit Automaten. PhD thesis, Fakutat fur Mathematik und Physik,
Technische Hochschule Darmstadt, Darmstadt, Alemania, 1962.
[8] K. Schmidt. LoLA - A Low Level Analyser. En International Conference on Application and
Theory of Petri Nets, LNCS 1825, page 465 ff. Springer-Verlag, 2000.
[9] K. Schmidt y C. Stahl. A Petri net semantic for BPEL4WS - validation and application. En
Proceedings of the 11th Workshop on Algorithms and Tools for Petri Nets (AWPN'04).
Octubre 2004.
[10] C. Stahl. A Petri Net Semantics for BPEL. Reporte tcnico HU-188, Universidad de
Humboldt en Berlin, Julio 2005.
[11] S. Thatte. XLANG: Web Services for Business Process Design. Reporte tcnico Microsoft
2001. Disp. en http://www.gotdotnet.com/team/xml_Fwsspecs/xlang-Dc
[12] W.M.P. van der Aalst, A.H.M. ter Hofstede: YAWL: Yet Another Workflow Language,
Versin Revisada. Reporte Tcnico FIT-TR-2003-04, Universidad Tecnolgica de
Queensland, 2003.
[13] PMC. Apache Xerces XML parser versin 2.6.2. A. S. Foundation, Febrero 2004. Disp.en
http://xml.apache.org/xerces2-j/index.html.