YAWL ( Yet Another Workflow Language ) es un lenguaje de flujo de trabajo basado en patrones de flujo de trabajo . Cuenta con el respaldo de un sistema de software que incluye un motor de ejecución, un editor gráfico y un gestor de listas de tareas. Está disponible como software de código abierto bajo la licencia LGPL .
Entre las implementaciones de YAWL a nivel de producción se incluyen su uso por first:utility y first:telecom en el Reino Unido para automatizar los procesos de servicio de interfaz, y por la escuela australiana de cine, televisión y radio para coordinar los procesos de rodaje. También se ha utilizado para la enseñanza en más de 20 universidades. [ 1 ]
Características
- Soporte integral para los patrones de flujo de trabajo.
- Compatibilidad con políticas avanzadas de asignación de recursos , incluido el principio de doble verificación y la ejecución encadenada.
- Soporte para la adaptación dinámica de modelos de flujo de trabajo mediante el concepto de worklets .
- Funcionalidades sofisticadas de validación de modelos de flujo de trabajo (por ejemplo, detección de interbloqueos en la fase de diseño).
- Modelo basado en XML para la definición y manipulación de datos mediante XML Schema , XPath y XQuery .
- Interfaces basadas en XML para la monitorización y el control de instancias de flujo de trabajo y para el acceso a los registros de ejecución.
- Interfaces de complemento basadas en XML para conectar servicios web de terceros con el sistema, incluidos gestores de listas de trabajo/tareas de terceros.
- Generación automatizada de formularios a partir de esquemas XML.
Historia
El lenguaje y su sistema de soporte fueron desarrollados originalmente por investigadores de la Universidad Tecnológica de Eindhoven y la Universidad Tecnológica de Queensland . Posteriormente, varias organizaciones como InterContinental Hotels Group , first:telecom y ATOS Worldline [ 2 ] han contribuido a la iniciativa.
Los objetivos originales de YAWL eran definir un lenguaje de flujo de trabajo que soportara todos (o la mayoría) de los patrones de flujo de trabajo y que tuviera una semántica formal. Al observar que las redes de Petri se acercaban a soportar la mayoría de los patrones de flujo de trabajo, los diseñadores de YAWL decidieron tomar las redes de Petri como punto de partida y extender este formalismo con tres construcciones principales: unión OR, conjuntos de cancelación y actividades de instancias múltiples. Estos tres conceptos están dirigidos a soportar cinco de los patrones de flujo de trabajo que no eran soportados directamente en las redes de Petri: fusión sincronizada , discriminador , unión N de M , instancias múltiples sin conocimiento previo en tiempo de ejecución y caso de cancelación .
Además, YAWL añade algunos elementos sintácticos a las redes de Petri para capturar intuitivamente otros patrones de flujo de trabajo, como la elección simple (xor-split), la fusión simple (xor-join) y la elección múltiple (or-split). Durante el diseño del lenguaje, se descubrió que algunas de las extensiones añadidas a las redes de Petri eran difíciles, o incluso imposibles, de volver a codificar en redes de Petri simples. Por consiguiente, la semántica formal original de YAWL se define como un sistema de transición etiquetado y no en términos de redes de Petri. El hecho de que YAWL se base en la semántica formal ha permitido la implementación de varias técnicas para analizar los procesos de YAWL. En particular, el sistema YAWL incluye una herramienta de análisis estático llamada WofYAWL.
YAWL contra BPEL
A veces se considera a YAWL como una alternativa a BPEL . Una ventaja importante de BPEL es que está impulsado por un comité de estandarización respaldado por varios actores de la industria de TI. Como resultado, BPEL cuenta con el respaldo de un número significativo de herramientas (tanto propietarias como de código abierto), mientras que YAWL actualmente solo tiene una implementación. Además, varios investigadores han capturado la semántica formal de subconjuntos de BPEL en términos de diversos formalismos, incluyendo redes de Petri , álgebra de procesos y máquinas de estados finitos . Esto ha allanado el camino para el desarrollo de herramientas de análisis estático para BPEL que pueden competir con las capacidades de análisis estático que ofrece el sistema YAWL.
Por otro lado, se ha observado que el estándar BPEL no admite tareas humanas, es decir, tareas asignadas a actores humanos que requieren que estos completen acciones, posiblemente con una ejecución física. Si bien varios motores BPEL ya ofrecen extensiones para tareas humanas, estas aún no están estandarizadas. En contraste, YAWL proporciona una interfaz unificada para servicios de listas de trabajo basada en estándares de servicios web . Esta interfaz permite a los desarrolladores crear sus propios servicios de listas de trabajo para admitir tareas humanas según sus necesidades. Además, el sistema YAWL incluye un servicio de listas de trabajo predeterminado que admite varios tipos de asignación y gestión de tareas humanas. Otra ventaja de YAWL es su compatibilidad con patrones de flujo de trabajo, aunque la brecha entre YAWL y BPEL en este aspecto podría reducirse con las nuevas construcciones incluidas en la versión 2.0 de BPEL.
Véase también
Referencias
Enlaces externos
- Sitio web oficial
- Lenguajes de flujo de trabajo
- Lenguajes de modelado