200 likes | 319 Views
Fluent Logic Workflow Analyser. Validación de propiedades de Workflow. Alumno: Fernando Villar. Director: Dr. Germán Regis. Universidad Nacional de Río Cuarto. Nociones Generales. Motivación Fundamentos Modelos YAWL Especificaciones de negocio Verificación de propiedades
E N D
FluentLogicWorkflowAnalyser Validación de propiedades de Workflow Alumno: Fernando Villar Director: Dr. Germán Regis Universidad Nacional de Río Cuarto
Nociones Generales • Motivación • Fundamentos • Modelos YAWL • Especificaciones de negocio • Verificación de propiedades • Demostración de uso • Conclusión • Trabajo Futuro
Motivación ¿Cuales son los beneficios del modelado de negocio? • Permiteentender y organizardichosprocesos. • Permitemejorarsueficiencia y el control del mismo. ¿Para que analizarlos? • Para garantizar el cumplimiento de restricciones. ¿Para queespecificarlaspropiedades? • Para lograr el análisis automático.
Modelos YAWL • Poderoso lenguaje de modelado de Workflows. • Basado en patrones de Workflow. • Construido por el formalismo de Redes de Petri. • Importante motor gráfico para el modelado de procesos de negocio. • Un lenguaje como resultado a especificaciones FSP.
Modelos YAWL MultipleTask Simple Task CompositeTask Composite-MultipleTask Input Condition Condition Output Condition
Modelos YAWL Las regiones de cancelación permiten hacer invalidas otras tareas o flujos que ejecuten estas
Propiedades de los Workflows YAWL provee el análisis de algunas propiedades: • Detección de Deadlock • Sincronización de Workflows • Soundness
Propiedades de los Workflows Consideremos las siguientes tareas A, B ,C y D A B C D Consideremos las siguientes preguntas: ¿Puede A ser ejecutada antes que B? ¿Pueden A y Bser ejecutadas simultáneamente? ¿Pueden las ejecuciones de las trazas entre A-B y C-D solaparse?
Propiedades de Workflows Podríamos especificar este tipo de propiedades usando: • Usando Logica Temporal Lineal con Fluentes (FLTL) • Bajo el formalismo Sistema de Transición de estados (LTS) • Analizarlas automáticamente por medio de ModelChecking
Lógica Temporal Lineal • Unpropiedadpuedetener los operadorestemporales • Es un formalismoapropiado para la verificación y especificación de propiedadessobresistemasreactivos. • Es una extensión de la lógica proposicional orientado a razonar sobre una secuencia infinita de estado. • El tiempo es lineal, cada instante de tiempo tiene un único sucesor. • Una propiedad es una formula lógica temporal que describe un conjunto de secuencias infinitas que la hacen verdadera. • next ( X ) • eventually(F) • always( G) • until(U)
Lógica Temporal Lineal con Fluentes • Contiene lo necesario para describir propiedades sobre sistemas basados en eventos. • Permite describir estados abstractos llamados “Fluentes” • Estos fluentes tienen un conjunto de eventos en los que se activa, otros en los que permanece desactivado y un valor por defecto que puede ser opcional. 1 l1.on l2.off On= ({ l1.on , l2.on }.{ l2.off , l1.off }) 2 0 l2.on 3 l1.off
Sistemas de Transición de Estados • Es un tipo de maquina abstracta utilizada para el estudiode la computación para modelar el comportamiento de sistemas o procesosbasados en eventos. • Consta de un conjunto de estados y transiciones entre ellos. Estas a suvezestanetiquetadas con valores de un conjunto dado. • Las transiciones pueden contener un conjunto de valores por lo cual puede tener un comportamiento no-deterministico.
FSP • Una especificación en FSP contiene dos tipos de definiciones de procesos: primitivas o compuestas. • Son un calculo de procesos que permiten describir y razonar sobre sistemas concurrentes. • Estas descripciones pueden ser representadas por el uso de un LTS. • Un proceso primitivo esta expresado por event(->), recursión y disyunción. • Un procesocompuestopermite la ejecución de mas de un proceso en paralelo o en secuencial. Prefijo de acciones: Composición paralela: ||P = ( Q || R ). P = ( a -> b -> END ). Composición Secuencial: Recursión: P = ( a -> Q ), Q = ( b -> P ). ||P = ( Q ; R ). Elección: P = ( a -> Q | b -> R ).
LTS - FSP MAKE = ( make -> ready -> MAKE). USE= ( ready -> use -> MAKE). || MAKE_USE = ( MAKE || USE ). make ready make use use
LTSA • La verificación de propiedades se realiza mediante modelchecking de manera automática mediante LTSA (LabelledTransitionSystemAnalyzer). • Permite verificar propiedades sobre especificaciones FSP de sistemas concurrentes. • Posee compatibilidad con la Lógica Temporal de Tiempo Lineal con fluentes. • Permite componer los procesos y verificar la presencia de deadlock. • LTSA arroja un contraejemplo para las propiedades que sean invalidas.
Traducción de YAWL a FSP • La herramienta yawl2fsp realiza la traducción YNET YNET = i_cond -> o_cond -> YNET. TASK TASK = start -> end -> TASK. CONDITION CONDITION (IN=2,OUT=2) = STATE[0], STATE[i:0..IN] = (when(i<IN) in[i:1..IN]->STATE[i+1] | when(i>0) out[j:1..OUT]->STATE[i-1]).
Traducción de YAWL a FSP AND Join AND_JOIN_COMPONENT(I=1)=(in[I]->out->AND_JOIN_COMPONENT). || AND_JOIN(N=2) = (forall[i:1..N] AND_JOIN_COMPONENT(i)). OR Join OR_JOIN(N=2) = OR_JOIN_DEF[0], OR_JOIN_DEF[b:0..1] = ( in[1..N] -> OR_JOIN_DEF[1] | when (b!=0) out ->OR_JOIN ). XOR Join XOR_JOIN(N=2)= (in[I] -> out -> XOR_JOIN).
LTSA FluentLogicWorkflowAnalyzer (T1 -> A) Propiedad Modelo YAWL P = ( a -> Q) ||S = (P || Q) Especificación FSP
Conclusiones • FLWA contribuye al análisis de los procesos de negocios. Combina las funcionalidades de yawl2fsp y LTSA como modelchecker de propiedades. • El framework desarrollado permite la definición de propiedades sobre workflows mediante un editor gráfico y la definición de fluentes. • Uso y definición de templates como complemento a la definición de propiedades. • Los resultados son representados gráficamente. En caso de contra-ejemplo las trazas son representadas en el modelo.
Trabajo Futuros • Mejoras gráficas, como la representación de los modelos y la definición automática de templates. • Agente de configuración para la definición de comandos que faciliten el uso de fluentes y/o propiedades. • Optimizar el proceso de detección de las traza de ejecución que invalidad una propiedad. • Incluir las modificaciones realizadas en los modelos en el salvado de archivos.