Archivo

Archivo para la categoría ‘jBPM’

Conceptos de modelado de procesos en jBPM

Lunes, 22 de Diciembre de 2008

Aquí os dejo un poco de teoria necesaria para comprender jBPM… La mayoria de cosas las he sacado de la página de Red Hat

Process definition : Representa una especificacion formal de un proceso de negocio y esta basado en un grafo dirigido. El grafo esta compuesto por nodos y transiciones. Cada nodo en el grafo es de un tipo específico y este define su comportamiento en tiempo de ejecución.

Token : Es la ejecucion de un “camino” o “ruta”. Un token es el concepto en tiempo de ejecucion que mantiene un puntero a un nodo en el grafo.

Process Instance : Ejecucion de un process definition. Cuando una instancia se crea, lo hace tambien un token, este es llamado por el “root” token de la instancia del proceso que lo posicionara en el estado inicial.

Signal : Insta al token a continuar la ejecucion del grafo. Digamos que es la señal que ahce que avance nuestro camino por el grafo. Si hay varias transiciones el signal deberia estar acompañado de un identificador que le diga que camino seguir, sino por defecto seguira el primero definido.

Nodes : Cuando un token entra en un nodo, este se ejecuta, son los responsables ellos mismos de la continuacion de la ejecucion del grafo. Como he dicho antes cada tipo de nodo implementa un comportamiento diferente de la ejecucion del grafo. Un nodo que no propaga su ejecución se comportará como un State.

El nodo tiene dos funciones principales:

    * Ejecutar codigo java (que hará la funcion del nodo)

    * Propagar la ejecucion del grafo, y ante esto tiene varias opciones :

  • No propagarlo : Con lo que se quedaria como un estado de espera.
  • Propagarlo a través de una transición
  • Crear una nueva ruta de ejecución. Un nodo puede crear un nuevos tokens y tener nuevas rutas (como lo hace el fork)
  • Finalizar la ruta de ejecucion.

- En general, un nodo puede cambiar la estructura entera de la instancia del proceso. La estructura en tiempo de ejecucion es una instancia de proceso que contiene un arbol de tokens. Cada token representa una ruta de ejecucion. Un nodo puede crear y finalizar tokens, poner cada token en un nodo del grafo y lanzar tokens sobre transiciones.

Tipos: Ya os comentaré los tipos de nodos y su función dentro del modelado de procesos. Por ahora os nombro los que son :

    * Node Task

    * State

    * Fork and Join

    * Decision

    * Node

Transitions : Las transiciones tienen un nodo origen y uno destino, puede tener un nombre (lo mas recomendable es darle un nombre siempre, porque mas de un problema he tenido por esto :P ). En caso de que tengan el mismo nombre dos transiciones siempre cogerá la primera transición que se definió.

Actions : Codigo java que se ejecutan en los eventos producidos en la ejecución del proceso. Digamos que son los detalles tecnicos y estos no se contemplan graficamente. Hay que diferenciar entre las acciones que se disparan mediante eventos y las acciones que se colocan en un nodo. Las primeras no tienen influciencia sobre el flujo del proceso mientras que la accion que se pone en el nodo tiene la responsabilidad de propagar la ejecución.

Events : Son las ocurrencias definidas en el grafo, los principales son entrar en un nodo, dejar el nodo o coger una transicion.

Swimlanes : Representa roles y su mision principal es dar tareas a una persona o grupo de personas. No son visuales, así que no podremos ver a quien corresponde cada tarea simplemente viendo la representación del grafo.

Process Variables : Datos contextuales que una instancia de proceso construye durante su ejecución.

Process State : Usado cuando necestamos modelar subprocesos que ajusten con procesos de mas alto nivel. Permite mayor abstraccion para proyectos de gran envergadura.

Super State : Es una manera de modelar un grupo de nodos, esto nos ayudará a crear una jerarquía dentro del process definition.

Process graph : Grafo hecho con nodos y transiciones. En jBPM viene especificado por el fichero processdefinition.xml.



Categories: jBPM Tags: ,

Business Process Management with JBoss jBPM

Jueves, 20 de Noviembre de 2008

El otro dia compré un libro sobre jBPM, de hecho creo que me compré el único libro sobre jBPM que hay en la actualidad… algo que me parece un poco insólito dada la potencia de jBPM y su “futuro” dentro de las arquitecturas software.

JBoss JBPM

Un libro muy ameno e interesante, hecho para los analistas de negocio (bussiness analysts) o para programadores que empiezan a iniciarse en este mundillo.

La cosa es que el libro empieza planteandote un proyecto software, dando detalles de todo tipo, desde las personas que deberian participar en el proyecto hasta la instalación y programación del jbpm y mysql. Eso si, sin una sola línea de código, cosa que agradeceran los analistas y que igual se le queda un poco corto a los programadores, aunque cuando terminas el libro sabes usar perfectamente la interfaz jBPM y entiendes la estructura y lo que pretendian los programadores de jBPM al hacer cada pestaña del workframe.

También como he dicho se toca la parte de base de datos, hace un repasito de Hypersonic y se pone a trabajar con mySQL creando e insertando tablas,recuperando datos… vamos lo justito para que se pueda entender todo.

Y para finalizar, jugamos un poco monitorizando la aplicación, y nos presenta la plataforma SeeWhy para estas lides y para interpretar los datos que nos vienen del servidor jbpm.

En conclusion un libro muy interesante que nos presenta un proyecto muy bien elaborado y organizado, desde su etapa de recogida de requerimientos hasta la puesta en marcha y presentacion de datos finales.

Categories: jBPM Tags: ,