Vous êtes sur la page 1sur 38

Patterns & Practices

How to

Q-flow Patrones bsicos de Workflow


Versin: 2.0 Fecha de publicacin 28-03-2011 Aplica a: Q-flow 3.0 y Q-flow 3.1

Patterns & Practices

ndice
Introduccin .................................................................................................................................................. 3 Patrones de control....................................................................................................................................... 4 Patrn: Secuencia ..................................................................................................................................... 4 Patrn: Separacin en paralelo (tambin llamado AND/split) ................................................................. 4 Patrn: Sincronizacin .............................................................................................................................. 5 Patrn: Opcin exclusiva (XOR-Split) ........................................................................................................ 6 Patrn: Fusin simple ............................................................................................................................... 7 Patrones avanzados de paralelismo y sincronizacin ................................................................................... 9 Patrn: Mltiple Opcin (Or-Split) ............................................................................................................ 9 Patrn: Fusin Sincronizada.................................................................................................................... 10 Patrn: Fusin Mltiple .......................................................................................................................... 12 Patrn: Discriminador ............................................................................................................................. 13 Patrn: Unin, N-de-los-M...................................................................................................................... 16 Patrones Estructurales ................................................................................................................................ 19 Patrn: Ciclos Arbitrarios ........................................................................................................................ 19 Patrn: Terminacin Implcita ................................................................................................................ 20 Patrones de tareas con mltiples instancias .............................................................................................. 22 Patrn: Mltiples instancias sin sincronizacin. ..................................................................................... 22 Patrn: Mltiples instancias con conocimiento a priori en tiempo de diseo ....................................... 24 Patrn: Mltiples instancias con conocimiento a priori en tiempo de ejecucin. ................................. 26 Patrn: Mltiples instancias sin conocimiento a priori en tiempo de ejecucin.................................... 28 Patrones basados en estado ....................................................................................................................... 30 Patrn: Seleccin Diferida....................................................................................................................... 30 Patrn: Enrutamiento en paralelo entrelazado. ..................................................................................... 31 Patrn: Hito ............................................................................................................................................. 33 Patrones de Cancelacin ............................................................................................................................. 36 Patrn: Cancelar Actividad...................................................................................................................... 36 Patrn: Cancelar Caso. ............................................................................................................................ 37

Patterns & Practices


Introduccin
El departamento de Technology Management de la Technische Universiteit Eindhoven ha identificado y publicado un conjunto de patrones bsicos que se encuentran en forma recurrente dentro de la implementacin de sistemas de Workflow (http://is.tm.tue.nl/research/patterns/patterns.htm). Este tipo de patrones capturan los aspectos elementales para el control de procesos y son equivalentes a la definicin de conceptos inicialmente definida por la Workflow Management Coalition (WfMC) [Wor99]. Estos patrones se han convertido en un estndar, no solo como formas normalizadas de encarar la solucin de las situaciones que estos patrones atacan, sino tambin como una forma de evaluar la capacidad de las herramientas de Workflow, de acuerdo a su capacidad para implementar en forma natural dichos patrones. El presente documento describe el cumplimiento de los patrones bsicos de Workflow por parte de Qflow. Se presentar la descripcin de cada patrn junto con la forma en que el mismo puede ser realizado utilizando Q-flow.

Patterns & Practices


Patrones de control
Patrn: Secuencia
Una actividad en un proceso de Workflow es habilitada despus de ser completada otra actividad en el mismo proceso. http://is.tm.tue.nl/research/patterns/download/swf/pat_1.swf Implementacin con Q-flow

Los diagramas de proceso de Q-flow implementan este patrn por defecto en cada actividad. O sea, por defecto, los conectores entre tareas implican precedencia, salvo que se explicite lo contrario.

Patrn: Separacin en paralelo (tambin llamado AND/split)


Dos o ms actividades de un proceso se ejecutan en paralelo. En un punto del proceso de Workflow, el hilo de control se divide en mltiples hilos de control, habilitando la ejecucin de las tareas en paralelo y sin restricciones de orden entre ellas. http://is.tm.tue.nl/research/patterns/download/swf/pat_2.swf Implementacin con Q-flow

Patterns & Practices

Este patrn se implementa en Q-flow utilizando el paso de separacin, el cual separa el hilo de ejecucin en mltiples caminos de ejecucin paralelos. Q-flow permite la ejecucin de mltiples caminos en paralelo (sin lmite en cuanto al nivel de anidaciones o contenido de los hilos internos).

Patrn: Sincronizacin
Una actividad es iniciada cuando dos o ms hilos completan la ejecucin de sus actividades. En un punto del proceso, dos o ms hilos de control convergen en un solo hilo. http://is.tm.tue.nl/research/patterns/download/swf/pat_3.swf Implementacin con Q-flow

Patterns & Practices

El paso de unin de Q-flow implementa entre otros este patrn. Al ser ste el patrn ms comn de sincronizacin, el paso de unin se comporta por defecto de acuerdo al mismo, sincronizando todos los hilos de entrada antes de activar la siguiente actividad.

Patrn: Opcin exclusiva (XOR-Split)


En un punto del proceso, una o ms de sus ramas son seleccionadas en base a los datos de control del proceso. http://is.tm.tue.nl/research/patterns/download/swf/pat_4.swf Implementacin con Q-flow

Patterns & Practices

El patrn de seleccin exclusiva de camino es implementado en Q-flow por medio del paso de evaluacin, donde es evaluada una condicin (basada en respuestas dadas a preguntas o tareas, votaciones, evaluacin de datos relevantes del workflow o valores de propiedades de los usuarios participantes del workflow) y de acuerdo al valor de la evaluacin se selecciona uno u otro camino de ejecucin.

Patrn: Fusin simple


Se mezclan varios hilos de control en uno solo, en determinado punto del proceso. http://is.tm.tue.nl/research/patterns/download/swf/pat_5.swf Implementacin con Q-flow

Patterns & Practices

La fusin simple en Q-flow no utiliza ningn constructor especfico, sino que la simple unin de los caminos o hilos de ejecucin sobre una tarea determina que cualquiera de ellos que llegue a la tarea la active.

Patterns & Practices


Patrones avanzados de paralelismo y sincronizacin
Patrn: Mltiple Opcin (Or-Split)
En un punto del proceso, basado en los datos de control del proceso, uno o ms caminos o ramas son seleccionados. http://is.tm.tue.nl/research/patterns/download/swf/pat_6.swf Implementacin con Q-flow

El paso de Separacin de Q-flow implementa este patrn incluyendo una evaluacin opcional en cada camino de ejecucin en que abre el proceso, permitiendo que cada camino sea activado opcionalmente, de acuerdo con el resultado de la evaluacin correspondiente (verdadero o falso).

Patterns & Practices

Patrn: Fusin Sincronizada


Se trata de un punto en el proceso de Workflow donde mltiples caminos convergen en un nico hilo de control. Si ms de un camino haba sido tomado, entonces debe producirse una sincronizacin entre los hilos de control. Si haba sido tomado slo uno, los dems hilos deben converger. http://is.tm.tue.nl/research/patterns/download/swf/pat_7.swf Implementacin con Q-flow

Patterns & Practices

El paso de unin de Q-flow implementa este patrn. El mismo, en su configuracin, permite que se seleccione la espera por todos los hilos iniciados en el fork/split correspondiente, de forma de que espere la finalizacin de todos los hilos antes de activar la siguiente tarea.

Patterns & Practices

Patrn: Fusin Mltiple


En un una actividad convergen distintas ramas o caminos en los que se abri el hilo de control en una bifurcacin anterior. La actividad donde convergen los hilos ser activada una vez por cada hilo de la rama que se activ en la separacin. http://is.tm.tue.nl/research/patterns/download/swf/pat_8.swf

Patterns & Practices


Implementacin con Q-flow

Este patrn est implementado en Q-flow por medio de una separacin con condicin en la cual los hilos se separan condicionalmente y continuando la ejecucin de cada hilo en un paso en comn. Se mantienen uno o dos hilos dependiendo de la separacin y cada uno de los hilos puede estar en el mismo paso del proceso.

Patrn: Discriminador
Es un punto del proceso que espera por una rama o hilo de control antes de activar la siguiente actividad. Los siguientes hilos de control que lleguen a ella luego de activada la tarea siguiente son ignorados, hasta que al llegar el ltimo la tarea finaliza. http://is.tm.tue.nl/research/patterns/download/swf/pat_9.swf

Patterns & Practices


Implementacin con Q-flow

Este patrn es implementado en Q-flow por medio del paso de Unin, en el cual varios hilos de ejecucin se fusionan, permitiendo que se active la siguiente actividad en base a la cantidad de hilos o caminos de ejecucin que alcanzan el paso de unin. Para implementar este patrn, en las propiedades del paso de unin se selecciona la opcin continuar cuando ha llegado el primer hilo.

Patterns & Practices

Patterns & Practices


Patrn: Unin, N-de-los-M
Unin N-de-los-M , es un punto en el proceso de workflow donde M caminos de ejecucin paralelos convergen en uno. La siguiente actividad es activada slo cuando N caminos se han completado. La complecin de los siguientes M-N caminos es ignorada.

Patterns & Practices


Implementacin con Q-flow

Este patrn es implementado en Q-flow por medio del paso de Unin, en el cual varios hilos de ejecucin se fusionan, permitiendo que se active la siguiente actividad en base a la cantidad de hilos o caminos de ejecucin que alcanzan el paso de unin. Para implementar este patrn, en las propiedades del paso de unin se selecciona la opcin continuar cuando han llegado N hilos.

Patterns & Practices

Patterns & Practices


Patrones Estructurales
Patrn: Ciclos Arbitrarios
Se trata de un punto en el proceso donde una o ms actividades pueden ser realizadas en forma repetitiva. Este patrn existe para diferenciar los Workflows que necesitan de un constructor explcito de repeticin (como lo sugiere el WPDL). http://is.tm.tue.nl/research/patterns/download/swf/pat_10.swf

Patterns & Practices


Implementacin con Q-flow

Al igual que lo que sucede con el patrn de Fusin Simple, el modelo de grafo que implementa Q-flow no necesita de un constructor especfico para implementar la repeticin o el patrn de Ciclos Arbitrarios. La simple unin de una bifurcacin con el punto de entrada de una tarea o actividad de Qflow es una implementacin de este patrn.

Patrn: Terminacin Implcita


Un proceso debe terminar cuando no quedan actividades pendientes y cuando no est en deadlock. Se evita un terminador explcito que cancela las actividades pendientes. http://is.tm.tue.nl/research/patterns/download/swf/pat_11.swf

Patterns & Practices


Implementacin con Q-flow

Las propiedades de los pasos de unin y de terminacin muestran la capacidad del sistema para mantener activas las tareas en los hilos o caminos activos luego de haberse procesado los pasos de unin y/o de cancelacin o de lo contrario finalizarlas implcitamente.

Patterns & Practices


Patrones de tareas con mltiples instancias
Existen mltiples formas de abordar estos patrones. Durante el presente anlisis, se abordar la forma ms comn de implementarlos, que es con pasos de tarea, o sea, con actividades asignadas a usuarios.

Patrn: Mltiples instancias sin sincronizacin.


Una actividad es instanciada mltiples veces, desconocindose en tiempo de diseo el nmero de instancias a ser habilitadas. Cuando todas las instancias creadas finalizan, se ejecuta la siguiente actividad. http://is.tm.tue.nl/research/patterns/download/swf/pat_12.swf Implementacin con Q-flow Dicho patrn puede ser implementado con Q-flow utilizando una tarea con un destinatario multivaluado. El destinatario multivaluado puede ser cargado, generndose automticamente las correspondientes instancias de la tarea en el momento de instanciarse la misma.

Patterns & Practices


Asignacin del rol en tiempo de ejecucin:

Configuracin del paso de tarea para que espere a que se completen todas las instancias entes de ejecutar la siguiente actividad:

Patterns & Practices


Patrn: Mltiples instancias con conocimiento a priori en tiempo de diseo
Se soporta que una actividad sea habilitada o invocada muchas veces, con la cantidad de veces conocida en tiempo de diseo. http://is.tm.tue.nl/research/patterns/download/swf/pat_13.swf Implementacin con Q-flow Este patrn tambin es de simple implementacin en Q-flow, ya que la configuracin natural de los pasos permite que se determinen en tiempo de diseo la cantidad de instancias de la actividad a ser instanciada en tiempo de ejecucin.

El paso de pregunta es configurado con la lista de destinatarios (tomadas de diversas fuentes) a quienes se dirigir la pregunta o tarea.

Patterns & Practices

En la configuracin del paso, se especifica que debe esperar a que se completen las actividades antes de continuar con la siguiente actividad.

Patterns & Practices

Patrn: Mltiples instancias con conocimiento a priori en tiempo de ejecucin.


Una actividad es instanciada ms de una vez, dependiendo de informacin disponible en tiempo de diseo, antes de invocar la actividad. Esta informacin puede provenir de los datos de control del proceso o de los recursos del sistema, etc. http://is.tm.tue.nl/research/patterns/download/swf/pat_14.swf Implementacin con Q-flow Dicho patrn puede ser implementado con Q-flow utilizando una tarea con un destinatario multivaluado, donde la tarea es asignada en tiempo de ejecucin de acuerdo a la informacin disponible en ese momento.

Patterns & Practices

En este patrn, antes de instanciarse la actividad, se analiza el valor de un dato de aplicacin del proceso y mediante el script especificado en la siguiente imagen se generan tantas instancias del destinatario de la tarea como sean necesarias, asignndose cada instancia a la cola de trabajo.

Patterns & Practices


Patrn: Mltiples instancias sin conocimiento a priori en tiempo de ejecucin.
Una actividad es instanciada muchas veces en tiempo de ejecucin, sin conocimiento de cuntas instancias se crearn ni en tiempo de diseo ni en tiempo de ejecucin, hasta que se ha terminado de crear las instancias. Es el caso de un bucle en tiempo de ejecucin que instancia una actividad. http://is.tm.tue.nl/research/patterns/download/swf/pat_15.swf Implementacin con Q-flow Este patrn se implementa abriendo en dos el hilo de ejecucin en un paso de separacin (Separar) para que la tarea se active y continuando la ejecucin luego del paso de unin , configurando el mismo para que contine al llegar el primer hilo de ejecucin (patrn discriminador), de forma que la tarea contina activa y cuando termina simplemente se detiene su hilo de ejecucin al llegar al paso de union. El evaluador implementa el patrn X-OR, permitiendo que se activen tantas instancias de la misma tarea como sean necesarias, hasta que la condicin de evaluacin del X-OR determine que se debe activar la tarea B.

Patterns & Practices


Nota: Si se debe esperar por todas las instancias de A para activar B, entonces se debe utilizar un contador en el hilo de A, incrementndolo antes de entrar a A y disminuyndolo al salir, condicionndose el pasaje a B slo cuando ese contador llegue a cero. La evaluacin del mismo puede dispararse con un paso de espera, para sincronizarse con las novedades de parte del workflow.

Patterns & Practices


Patrones basados en estado
Patrn: Seleccin Diferida
Se trata de un punto en el proceso donde uno o mltiples caminos son seleccionados.

En contraste con el XOR-Split, la seleccin no es explcita (basada en datos o decisiones) pero mltiples alternativas son ofrecidas por el entorno. En contraste con el AND-Split, slo una de las opciones es seleccionada.

Supongamos que en un punto del proceso se debe completar una actividad u otra basada en la disponibilidad de los recursos, pero ninguno de los recursos utilizables est disponible, por lo que se debe esperar a que uno de los recursos est disponible para decidir cul alternativa seleccionar. http://is.tm.tue.nl/research/patterns/download/swf/pat_16.swf Implementacin con Q-flow El paso de pregunta con evaluacin permite seleccionar la opcin a ser tomada en tiempo de ejecucin.

En base a la respuesta dada, selecciona el camino a tomar o la tarea a activar.

Patterns & Practices

Patrn: Enrutamiento en paralelo entrelazado.


Un conjunto de actividades es ejecutado en un orden arbitrario, decidido en tiempo de ejecucin. Es el caso de actividades que pueden ejecutarse en cualquier orden pero no en paralelo. http://is.tm.tue.nl/research/patterns/download/swf/pat_17.swf Implementacin con Q-flow El paso de separacin de Q-flow, si bien no permite directamente implementar un modelo en el cual se seleccione por s solo un camino de ejecucin, s permite que cada hilo disponga de un evaluador implcito, por lo cual a cada uno de los tres hilos que se muestran en el siguiente diagrama se le puede dar una condicin de inicio. Una vez establecido un criterio de seleccin que permita que slo uno de los hilos acte en cada iteracin, alcanza con implementar un bucle por medio del patrn x-or de forma que cierre el ciclo de ejecucin repitindolo hasta que todas las tareas se hayan completado.

Patterns & Practices

La siguiente figura muestra las propiedades a colocar en el paso de evaluacin para que contine ejecutando otra tarea mientras no se han completado o instanciado las tres tareas especificadas.

Patterns & Practices

Patrn: Hito
Permite testear si un proceso de Workflow ha alcanzado determinada fase o etapa. http://is.tm.tue.nl/research/patterns/download/swf/pat_18.swf Implementacin con Q-flow Este patrn es implementado en forma nativa por Q-flow. En el siguiente diagrama, se abren dos hilos de ejecucin paralela y en el primero de los hilos se espera por la ejecucin del hito (paso Sincronizacin) para activar la tarea A. Se contina inmediatamente con la tarea C (con dos hitos y esperas se puede hacer una sincronizacin cruzada). Al llegar al paso de unin, la ejecucin contina.

Patterns & Practices

En la configuracin del paso de sincronizacin se muestra que se esperar por el hito contenido en el otro hilo.

Patterns & Practices

El paso de unin puede ser configurado para que la ejecucin contine cuando se ha completado el segundo hilo de ejecucin, independizndose la continuacin del workflow de la terminacin o de la ejecucin de la tarea A, la cual, segn diversos caminos que podra tomar el segundo hilo, podra no ejecutarse nunca.

Patterns & Practices


Patrones de Cancelacin
Patrn: Cancelar Actividad
El sistema permite que al completarse una actividad otra actividad sea cancelada o deshabilitada (una actividad que una vez completada hace innecesaria otra que se encuentra activada). http://is.tm.tue.nl/research/patterns/download/swf/pat_19.swf Implementacin con Q-flow Se inicia el proceso, hasta que en un punto nos encontramos con un paso de fork que divide el mismo en dos hilos: uno que representa el hilo de ejecucin normal del proceso y el otro que representa el hilo de cancelacin.

Patterns & Practices


La unin del los hilos cancela las tareas definidas. Se muestra como se debe configurar el paso de unin.

Patrn: Cancelar Caso.


Una instancia completa del proceso es cancelada. Por ejemplo, en un proceso de evaluacin y seleccin, uno de los participantes se retira, teniendo que cancelarse todas las actividades relacionadas con la evaluacin de este participante. http://is.tm.tue.nl/research/patterns/download/swf/pat_20.swf Implementacin con Q-flow Se inicia el proceso con un paso de fork que divide el mismo en dos hilos: uno que representa el hilo de ejecucin normal del proceso y el otro que representa el hilo de cancelacin.

Patterns & Practices

El paso de finalizacin cancela el proceso en su conjunto. Se muestra la configuracin del paso de fin.

Vous aimerez peut-être aussi