
Este software debe ser independiente de las aplicaciones que llevan a cabo las tareas propiamente dichas para que las reglas de ruteo y asignación no estén acopladas a ellas y poder así cambiarlas fácilmente siguiendo la dinámica de las organizaciones modernas. kbee.workflow es un administrador de procesos de negocio (BPM) simple y versátil. Ofrece las herramientas necesarias para generar una sofisticada y flexible capa de procesos en una aplicación de negocios. Se trata de una plataforma sólida y probada en aplicaciones con miles de usuarios y procesos en ejecución, desarrollada en tecnología Java, basada en estándares abiertos. Cuenta con componentes integrados al entorno de desarrollo Eclipse para la definición de procesos y tareas; herramientas para el monitoreo de los procesos en ejecución, infraestructura de tipo OLAP-Multidimensional para reportes analíticos, más un lenguaje de consulta sobre el motor de procesos de tipo OQL (Object Query Language) que hace simple la integración con consolas de trabajo y otras aplicaciones. Esta compuesto por:
BPM
Un programa para la administración de procesos de negocio (BPM software, por su sigla en inglés: Business Process Management software ) es un software de infraestructura que permite automatizar la ejecución y el control de los procesos decidiendo en base reglas gráficamente especificadas quién (o que aplicación) y en qué momento debe ejecutar una tarea para resolver un problema. También incluye herramientas de monitoreo que brindan indicadores sobre la cantidad, historia y estado de los procesos
kbee.workflow
El producto está diseñado para ser una herramienta potente y simple para desarrolladores de aplicaciones complejas. Para esto, se centra en hacer muy bien lo esencial, concentrándose en lo indispensable y dejando en manos de los desarrolladores la extensión de las funcionalidades para distintos dominios mediante bibliotecas.
Sus componentes fundamentales son un lenguaje de especificación gráfica sencillo y potente, que ofrece el mayor poder de expresión posible para definir procesos con líneas de ejecución paralelizables (basado en la abstracción matemática conocida como Redes de Petri), una aplicación integrada al Framework Eclipse para la definición gráfica de procesos, un motor de ejecución y control de los procesos simple y robusto, un lenguaje de consulta de tipo OQL para la obtención de indicadores para monitoreo, y un servidor de tipo OLAP para reportes e inteligencia analítica. Al estar enteramente escrito en Java y en forma de Framework, sus componentes básicos son fácilmente extensibles. Se pueden adjuntar fácilmente cualquier registro u operación ante los eventos propagados por el motor de workflow ante cualquier cambio de estado en los procesos. kbee.workflow ofrece un lenguaje de consulta de tipo OQL (Object Query Language) que permite la obtención de indicadores para el monitoreo del estado de los procesos en tiempos óptimos. Puede aplicar criterios de selección tanto sobre atributos nativos de un BPM (como puede ser el estado o tiempo de ejecución de un proceso) o sobre atributos llamados ?extendidos? propios de un dominio particular (como puede ser el número de un expediente). Por ejemplo, se pede obtener indicadores como la cantidad de procesos en determinado estado o las tareas realizadas sobre un determinado expediente. Tiene toda la comunidad Open Source de respaldo. Al ser con licencia GPL ofrece libertad total a quien lo usa y garantiza que no se degradará con el tiempo. Por ser su lenguaje de especificación gráfica potente y sencillo y solamente compuesto por una pocas primitivas su motor de procesos es pequeño y eficiente. Por otro lado, su lenguaje de consulta WQL escala eficientemente hasta con decenas de miles de procesos activos. Construido e integrado a estándares como JNDI, JTA, JMS, JDBC, etcétera.
Aplicación para la especificación gráfica de procedimientos, con sus tareas y reglas de ruteo.
Es un Plug-In de la plataforma de desarrollo Eclipse (http://www.eclipse.org) que permite un ambiente de trabajo integrado donde se pueden especificar procedimientos, tareas en código Java, HTML, JSP o lo que sea necesario Para la definición de procesos (workflow) es necesario especificar qué tarea tiene qué ser ejecutada y en qué orden. La herramienta más potente para esto son las Redes de Petri, inventadas por el matemático Carl Adam Petri en 1962 como parte de su tesis doctoral en la Universidad de Bonn.
La características principales son:
Es el motor de ejecución de procesos, responsable de la ejecución y control de cada uno. Es pequeño y especializado. También tiene la responsabilidad de la persistencia de cada cambio de estado de cada proceso. Además, incluye un mecanismo de propagación de eventos que puede notificar cada cambio de estado a las aplicaciones que se registren con la capacidad de propagar esos eventos a colas de mensajes JMS.
Como complemento incluye un mecanismo de programación y registro de alarmas mediante el cual es posible activar alarmas en caso de que indicadores superen umbrales de control y ejecutar acciones en consecuencia. Por ejemplo, se podría querer activar alguna señal en un tablero de control cuando la cantidad de procesos activos superara un cierto número, o cuando la demora promedio de la ejecución superara lo esperado, o procesos con tareas fallidas, etcétera.Alarmas
Características:
kbee WQL (Workflow Query Language) es un lenguaje de consulta, con una sintaxis similar a los lenguajes OQL (Object Query Language), que permite la selección y proyección de atributos nativos o extendidos de las entidades del workflow.
El lenguaje permite realizar consultas sobre el motor de workflow en forma análoga a como se llevan a cabo consultas sobre un motor de Base de Datos Relacional. Es posible hacer consultas sobre las variables propias del motor de procesos (Modelo Nativo), y también sobre atributos específicos del problema mediante la extensión del sistema de información asociado a los procesos, lo que se llama Modelo extendido. Se define como modelo nativo del workflow a aquel que incluye las entidades que implementan sus conceptos básicos. Estas son, los procesos propiamente dichos, las actividades y los work ítems. Cada una de estas entidades contiene una serie de atributos propios e independientes del domino del problema donde se ejecutan los procesos. Por ejemplo, el estado, el momento de comienzo (timestamp) y el momento del fin de una actividad. kbee workflow permite extender el modelo de las entidades nativas con entidades propias de los contextos donde se ejecutan los procesos. Cada token que circula por la red contiene una entidad extendida del modelo nativo con una estructura descrita por un conjunto de atributos (color del token). Estos atributos se pueden sumar a los atributos de las entidades nativas. Por ejemplo, si una entidad extendida incluye un atributo que contiene un número de expediente, este atributo se suma a los atributos propios de las actividades que se ejecutan sobre la misma. Así, sobre una actividad, además de la posibilidad de consultar su momento de comienzo o de fin se agrega la posibilidad de consultar por el número de expediente sobre el que actúa.
Sintaxis:
kbee WQL es un lenguaje de consulta, con una sintaxis similar al OQL, que permite la selección y proyección de atributos nativos o extendidos de las entidades del workflow. Una sentencia del lenguaje tiene la siguiente forma: SELECT
activity | workitem | process | attribute 1, attribute2 ?, attribute n | count
[FROM
activity | process | workitem ]
[WHERE
search condition 1
[AND search condition 2 ?. ]
[OR search condition 3 ?. ] ]
[GROUP BY attribute 1, attribute 2 ? , attribute n]
[ORDER BY attribute 1, attribute 2 ? , attribute n [desc] ]
[OFFSET number ] [LIMIT number ]Modelos nativo y extendido
kbee.workflow permite realizar logging de cada cambio de estado de cada proceso en ejecución en forma asincrónica en una Base de Datos integrada a un servidor OLAP.
El Servidor kbee.OLAP (basado en el software Open Source Mondrian) contiene un motor desarrollado en Java que ejecuta consultas escritas en el Standard MDX creado por Microsoft en 1998 (Multi Dimensional eXpressions), toma información de una Base de Datos Relacional (típicamente una o más tablas pivot donde cada una de las dimensiones tiene una entrada), y presenta el resultado en un formato multidimensional usando un API en Java. Los datos que muestre kbee.OLAP son tomados de la mencionada Base de Datos que se actualiza en forma asincrónica con cada cambio de estado en los procesos que ejecuta el motor de workflow. Tanto el OLAP como la Base de Datos pueden correr en otro servidor, a fin de no degradar la performance de las aplicaciones de gestión. A través del kbee.OLAP es posible definir las variables (dimensiones) del negocio, y realizar complejas consultas estadísticas sin necesidad de programar (permite a un usuario no especializado armar otras consultas especificando las dimensiones visibles por fila y columna más los criterios de selección y filtrado que se considere necesario).
kbee.workflow presenta una arquitectura de cuatro capas: capa de aplicaciones y componentes clientes, capa de servicios a los clientes, capa del servidor de workflow y capa conectores.
La primera capa es la de las aplicaciones clientes. El diseñador gráfico de procesos, la consola de monitoreo de procesos y toda aplicación que utilice algunos de los servicios del workflow están incluidas en esta capa. Ejemplos de aplicaciones pueden ser consolas personalizadas de trabajo, consolas de monitoreo o tableros personalizados de control.
En esta capa, una serie de componentes Java (Web Services, Servlets, Páginas Jsp, etc) implementan una bien definida interfase de todos los servicios del servidor del workflow para que sean accedidos vía HTTP.
En caso de que las aplicaciones cliente funcionen en el mismos servidor y máquina virtual que las aplicaciones del servidor del workflow, tienen las alternativa de acceder directamente a sus servicios a través de la API Java que define su interfase.
El motor central y el analítico residen en una capa llamada BPM (o simplemente Server). El motor central controla la ejecución de los procesos, su persistencia y la propagación de los eventos generados por los cambios de estados de cada proceso en ejecución. El motor analítico tiene la capacidad de recolectar los eventos generados por el motor central para mostrar estadísticas de funcionamiento en forma de cubos OLAP. El almacenamiento en el servidor OLAP es asincrónico, de forma de no degradar la performance del motor de workflow.
La última capa contiene una biblioteca de conectores que permite interactuar con sistemas externos. La biblioteca incluye conectores para acceder a bases relacionales vía JDBC, a aplicaciones Java vía JNI o JMS, a servicios de directorios (LDAP) y a aplicaciones montadas sobre el servidor de contenidos de kbee.cms. También incluye una API para el desarrollo de conectores específicos.
kbee.workflow es un software que se distribuye con licencia Open Source LGPL v2.1.
Por favor lea los términos de la licencia en http://www.fsf.org/licensing/licenses/lgpl.html
Sólo en el caso que usted acepte los términos de la licencia puede descargar los archivos más abajo en esta página.
Documentación kbee.workflow
Versiones estables liberadas
La versiones estables que se liberan se pueden encontrar en la página de descarga del kbee.workflow en Sourceforge. O se puede tomar directamente desde el siguiente repositorio maven: <repository> <id>novamens</id> <name>Novamens Repository</name> <url>http://maven.novamens.com</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> Incluyendo las siguientes dependencias en los proyectos donde sean necesarias: <dependency> <groupId>com.novamens</groupId> <artifactId>novamens-workflow-server</artifactId> <version>1.2.0</version> </dependency>
" es muy simple y focalizado en las necesidades del desarrollador. Está diseñado para ser una herramienta potente y simple para desarrolladores de aplicaciones complejas. Para esto, se centra en hacer muy bien lo esencial, concentrándose en lo indispensable y dejando en manos de los desarrolladores la extensión de las funcionalidades para distintos dominios mediante bibliotecas."