jueves, 2 de julio de 2009

Modelado de procesos en jBPM

Antes de seguir adelante voy a hablar de los elementos que definen un proceso en jBPM.

Un proceso está definidido a partir de sus nodos, transiciones y acciones:
  • Nodos: Definen los pasos por los que que se tienen que dar durante la ejecución de un proceso, y pueden ser de los siguientes tipos:

    • Nodo de tarea (task-node): Representa una o varias tareas que deben ser ejecutadas por una persona. Cuando la ejecución del proceso llega a un nodo de tarea, se crea una instancia de una tarea (task) en la lista de los miembros del workflow. El nodo se quedará en estado de espera hasta que el usuario informe de la realización de la tarea.
    • Nodo de estado (state): Es un estado de espera que no requiere de la ejecución de ninguna tarea. Permanece a la espera de una señal que lance la continuación del proceso.
    • Nodo de decisión (decision): Una decisión se puede modelar de dos formas distintas, en función de si es el proceso o una entidad externa quien debe tomar la decisión.
      • Si es el propio proceso quien debe tomar la decisión se debe uasr un nodo de decisión. Los criterios de la decisión se pueden especificar añadiendo condiciones a las transiciones, mediante beanshell scripts que devuelven un boolean. Los nodos recorreran sus transiciones examinando las condiciones hasta encontrar la primera transición que cumpla las condiciones. Tambien se pueden expresar condiciones en un DecissionHandler que devuelve la transición a seguir.
      • Si es una entidad externa quien debe tomar la decisión se deberían usar varias transiciones que salgan de un estado de espera. A este estado de espera se le indicará cual es la transición a seguir cuando se relance la ejecución del proceso.
    • Nodo fork y join: Un nodo fork divide la ejecución de un proceso en múltiples ejecuciones concurrentes. Los nodos join recogen todas estas ejecuciones concurrentes antes de continuar con la ejecución del proceso.
    • Nodo node: Permite definir el comportamiento de nuestros propios nodos. Contienen un subelemento Action que se ejecuta cuando el proceso llega al nodo.

  • Transiciones: Van de un nodo a otro e indican el camino a seguir desde un nodo.

  • Acciones: Son código que se va a ajecutar cuando ocurren determinados eventos en la ejecución de un proceso. Principalmente cuando se entra o se sale de un nodo y cuando se toma una transición. Estas acciones no tienen influencia sobre el flujo de control del proceso.

Con estos elementos, veremos en el siguiente post un ejemplo de modelado de un sencillo proceso.

Referencias:
jBPM user guide

No hay comentarios:

Publicar un comentario