YAWL ( Yet Another Workflow Language ) es un lenguaje de flujo de trabajo basado en patrones de flujo de trabajo . El lenguaje es compatible con un sistema de software que incluye un motor de ejecución, un editor gráfico y un gestor de listas de trabajo. El sistema está disponible como software de código abierto bajo la licencia LGPL .
Los usos a nivel de producción del sistema YAWL incluyen un despliegue por first: utility y first: telecom en el Reino Unido para automatizar los procesos de servicio de front-end, y por la escuela australiana de radio y televisión cinematográfica para coordinar los procesos de filmación de películas. El sistema YAWL también se ha utilizado para la docencia en más de 20 universidades. [1]
Características
- Soporte integral para los patrones de flujo de trabajo.
- Soporte para políticas avanzadas de asignación de recursos , incluido el principio de los cuatro ojos y la ejecución encadenada.
- Soporte para la adaptación dinámica de modelos de flujo de trabajo a través de la noción de worklets .
- Funciones sofisticadas de validación del modelo de flujo de trabajo (por ejemplo, detección de puntos muertos en tiempo de diseño).
- Modelo basado en XML para la definición y manipulación de datos basado en XML Schema , XPath y XQuery .
- Interfaces basadas en XML para monitorear y controlar instancias de flujo de trabajo y para acceder a los registros de ejecución.
- Interfaces de complemento basadas en XML para conectar servicios web de terceros con el sistema, incluidos controladores de listas de trabajo / tareas de terceros.
- Generación automatizada de formularios a partir de esquemas XML.
Historia
El lenguaje y su sistema de apoyo fueron desarrollados originalmente por investigadores de la Universidad Tecnológica de Eindhoven y la Universidad de Tecnología de Queensland . Posteriormente, varias organizaciones como InterContinental Hotels Group , primero: Telecom y ATOS Worldline [2] han contribuido a la iniciativa.
Los impulsores originales detrás de YAWL eran definir un lenguaje de flujo de trabajo que admitiría todos (o la mayoría) de los patrones de flujo de trabajo y que tendría una semántica formal. Al observar que las redes de Petri estuvieron cerca de 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, a saber, or-join, conjuntos de cancelación y actividades de instancias múltiples. . Estos tres conceptos están destinados a admitir cinco de los patrones de flujo de trabajo que no se admitían directamente en las redes de Petri, a saber, la combinación de sincronización , el discriminador , la combinación N-out-of-M , la instancia múltiple sin conocimiento de tiempo de ejecución a priori y el caso de cancelación .
Además, YAWL agrega algunos elementos sintácticos a las redes de Petri para capturar intuitivamente otros patrones de flujo de trabajo, como elección simple (xor-split), combinación simple (xor-join) y opción múltiple (o split). Durante el diseño del lenguaje, resultó que algunas de las extensiones que se agregaron a las redes de Petri eran difíciles o incluso imposibles de volver a codificar en redes de Petri simples. Como resultado, 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 YAWL. En particular, el sistema YAWL incluye una herramienta de análisis estático llamada WofYAWL.
YAWL vs. BPEL
YAWL a veces se ve como una alternativa a BPEL [¿ por quién? ] . Una de las principales ventajas de BPEL es que está impulsada por un comité de estandarización respaldado por varios actores de la industria de TI. Como resultado, BPEL es compatible con un número significativo de herramientas (tanto propietarias como de código abierto), mientras que YAWL tiene una implementación única en la actualidad. Además, varios investigadores han capturado la semántica formal de subconjuntos de BPEL en términos de varios formalismos, incluidas las redes de Petri , el álgebra de procesos y la máquina 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 proporcionadas por el sistema YAWL.
Por otro lado, se ha observado [¿ por quién? ] que BPEL estándar no soporta tareas humanas, es decir, tareas que se asignan a actores humanos y que requieren que estos actores completen acciones, posiblemente involucrando una actuación física. Varios motores BPEL ya proporcionan extensiones a BPEL para tareas humanas, pero estas extensiones aún no se han estandarizado. Por el contrario, 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 su propio servicio de lista de trabajo para respaldar las tareas humanas de acuerdo con sus necesidades. Además, el sistema YAWL viene con un servicio de lista de trabajo predeterminado que admite varios tipos de asignación y manejo de tareas humanas. Otra ventaja de YAWL es su soporte para patrones de flujo de trabajo, aunque la brecha entre YAWL y BPEL a este respecto puede reducirse mediante nuevas construcciones que se incluyen en la versión 2.0 de BPEL.