Patrones2
De
<keywords content="keywords">
sincronizacion, patrones, enrutamiento
</keywords>
Contenido |
Patrones de Sincronización y Enrutamiento Avanzado
Selección Múltiple
El patrón Selección múltiple asume que una de las alternativas es seleccionada y ejecutada. Sin embargo, algunas veces es menester usar una opción en la cual se permita escoger un subconjunto de alternativas de un conjunto de opciones posibles. Por ello, se encuentra el patrón de selección múltiple (inclusiva). La selección múltiple se encuentra en un punto del flujo de trabajo en donde, basándose en una decisión o en los datos de control del mismo, se escoge una o más ramas activando uno o más caminos del proceso.
Implementación BiAgi (BPMN)
La implementación de la selección múltiple es realizada a través de una compuerta inclusiva (elemento de divergencia) o una compuerta compleja (elemento de divergencia) si aplica.
Una compuerta inclusiva (elemento de divergencia) permite tomar uno o más caminos si una o más reglas de negocio se cumplen. Es decir se basa en datos del proceso que son evaluados a través de políticas. La compuerta compleja (elemento de divergencia) permite seleccionar uno o más caminos teniendo en cuenta la decisión que toma el usuario previo a este punto. Es decir, el usuario del sistema escogerá las rutas que desea sean activadas.
Algunas reglas de negocio podrían ser:
Transición a B: “<IrActividadB>==true”
Transición a C: “<ValorPrestamo> > 50000”
Transición a D: “ReglaNegocio.EsClienteNuevo(<idCliente>)”
Las transiciones son válidas cuando al evaluar la regla el resultado es verdadero. Debe existir al menos una transición válida. Un token será generado por cada camino válido que sea activado.
Ejemplo: En el proceso de solicitud de crédito se realizará la actividad de elaborar tarjetas de crédito y desembolso solo cuando apliquen. En este caso no existe una condición por “default” dado que siempre al menos una de las dos es realizada. En este ejemplo, se pueden activar una o dos ramas. |
Mezcla Sincronizada
La mezcla sincronizada es un punto del proceso en donde múltiples caminos convergen en uno solo. Si más de un camino es tomado en un punto del proceso, la sincronización de los caminos activos debe ser realizada. Se asume que las ramas no pueden ser activadas nuevamente mientras el sincronizador está esperando por las que se activaron previamente.
Implementación BiAgi (BPMN)
Después de compuerta inclusiva (elemento de divergencia) , uno o más caminos pueden ser activados. La figura de compuerta inclusiva (elemento de convergencia) es utilizada para esperar por todos los caminos activos.
Ejemplo: En este caso, la compuerta inclusiva (elemento de convergencia) es utilizada para sincronizar los caminos que se activaron previamente (desembolso o elaboración de tarjeta de crédito, "disbursement" o "creation of credit card"). |
Mezcla Múltiple o Serialización
La Mezcla Múltiple es un patrón del flujo de trabajo en donde dos o más ramas se unen sin sincronización. Si se activa más de una rama, posiblemente de forma concurrente la actividad que sigue a la serialización se ejecuta una vez por cada rama que ha sido activada.
Implementación BiAgi (BPMN)
Una actividad podría ser activada por cada transición entrante. En Bizagi, así como BPMN, este patrón puede ser ilustrado en diferentes versiones:
Versión 1:Compuerta Exclusiva (elemento de divergencia). Es el caso simple de mezcla múltiple, en el cual solo un camino se activa y no es sincronizado. En este caso la actividad D solo se genera una vez.
Versión 2: Compuerta Paralela (elemento de divergencia). En este caso siempre se activan todas las ramas. Es importante tener en cuenta que D se activará tantas veces como caminos en paralelo existan. En Bizagi, a diferencia de BPMN, es posible configurar la actividad D para evitar la duplicación de tokens con la propiedad de singleton.
Esta misma versión puede ser utilizada cambiando la actividad D por un subproceso. En este caso la actividad no se duplica, sino el subproceso, lo cual sería correcto, sin embargo, debe tenerse en cuenta su sincronización para continuar el flujo de proceso.
Versión 3: Compuerta Inclusiva (elemento de Divergencia)(ejemplo van der Aalst). Como en el caso anterior, más de un camino puede ser activado. Debe tenerse especial cuidado con la duplicación de actividades durante el modelamiento.
Ejemplo: La actividad Enviar Seguro y Realizar Cobro (Send Inssurance, Collect), se activa cuando una de las actividades Preparar Seguro de Equipaje y/o Preparar Seguro de Cancelación es realizada (Prepare Baggage Insurance y/o Prepare Cancellation Insurance), lo que significa que si el cliente toma los dos seguros esta actividad se realizará dos veces. En Bizagi es posible configurar la actividad de enviar seguros como singleton de tal manera que solo se active una vez en el tiempo. |
Discriminador
El discriminador es un punto del proceso que espera por una de las ramas entrantes para completar la condición, antes de continuar a la actividad siguiente. A diferencia del sincronizador, las ramas restantes que lleguen serán ignoradas y hace caso omiso de las mismas.
Implementación BiAgi (BPMN)
Con el objetivo de esperar por un número específico de ramas entrantes, una compuerta compleja (elemento de convergencia)es usada. Es necesario utilizar un código a la entrada de la compuerta compleja (Join) y una regla asociada a la transición de la misma que se dirige a la siguiente actividad.
Example: El código para la regla a la entrada en la compuerta compleja es: <Counter>++ |
La condición para la transición que va a D es: “<Counter>==<ExpectedNumber>”.
Cuando el contador alcanza el número especificado, D será activado, de lo contrario el token entrante será ignorado.
Opción 2: La implementación del discriminador también puede ser realizada a través de una compuerta exclusiva (elemento de convergencia)en la cual se evalúa la condición y en caso de no cumplirse se ignora a través del evento de fin.
Mezcla de N/M casos (N out of M Join)
Este patrón puede ser visto como una generalización del discriminador. Se pretende sincronizar N caminos de M transiciones entrantes. Este patrón es un punto en el proceso en donde M ramas en paralelo convergen en una sola y la actividad siguiente es habilitada una vez que se han activado N ramas de entrada. Se ignora el resultado del resto de las M-N ramas. Semejante al discriminador, la mezcla se desbloquea una vez que se han activado las M ramas de entrada.
Implementación BiAgi (BPMN)
Cuando N ramas se activan, se utiliza una Compuerta compleja (elemento de convergencia)con el objeto de sincronizar el número de actividades requeridas. Por cada rama que llega a la compuerta compleja, el contador se incrementa. Cuando el contador alcanza el valor M, D se activará. Después de esto, los caminos que lleguen serán ignorados.
Example: La compuerta compleja (elemento de convergencia) usará un código equivalente a <Counter>++; D se activará cuando <Counter>==2 . |
<comments />