Grails: integración de Bpm


Hace unos cuatro años trabajé como consultor en un proyecto (grande) de implantación de un sistema de manejo de procesos de negocio para una entidad estatal centroamericana, en ese momento los motores de gestión de procesos libres no estaban maduros y mi comprensión del proyecto entero y de mi participación (como desarrollador de aplicaciones cliente integrables al motor) era muy oscura y (admitamoslo) lenta.

Sin embargo, gracias a ese proyecto conocí a muchas personas muy brillantes – incluso a un par que diseñaron e implementaron sus propias versiones de motores de gestión de procesos de negocios (tanto en Java como en .Net) – y empecé a hacerle seguimiento a los BPMS Libres.

Hace un año encontré que la versión de Bonita Open Solution 5 tenía un importantes mejoras y que la nueva versión de jBpm estaba a punto de salir, así que intenté (sin mucho éxito) iniciar un acercamiento a Bonita, incluso promoví la investigación al respecto en mi empresa y obtuvimos algunas victorias.

Ahora con Grails como framework principal y después de un laaargo año en un proyecto importante que hubiera sido mucho mas sencillo de manejar si se hubiera modelado como procesos estamos trabajando en la integración de un motor de procesos en nuestro producto.

Después de evaluar de nuevo los motores libres más populares (jBpm, Bonita y Activiti) nos decidimos por Activiti, no solo porque es una implementación basada con licencia Apache sino que además tiene un gran modelador e integración nativa con grails mediante el plugin desarrollado por Lim Chee Kin.

Un punto crucial de la integración se encuentra en la autenticación y autorización (mantener la sincronización de dos bases con los usuarios y roles es una violación flagrante del principio DRY) para lo cual Lim Chee Kin ha desarrollado un plugin que integra activiti con spring security en grails.

Hasta aquí todo perfecto, tenemos un excelente framework web, un motor Bpm libre y un framework de seguridad estable integrados, sin embargo…en nuestro proyecto usamos Shiro Security (principalmente porque tiene un manejo propio de sesiones que es agnóstico del tipo de tecnología en el que se use).

La buena noticia es que grails también tiene un plugin que hace la tarea de integración con shiro algo ultra sencillo, el problema es que no hay una forma obvia (aka plugin) o documentada de integrar shiro con activiti en grails.

Entonces…para eso..he trabajado en un plugin de integración entre Activiti y Shiro sobre grails (1.3.7) basado en el plugin de Lim Chee Kin, solo inicializa el identityService de activiti con los SecurityUtils de shiro, la forma (primitiva y no recomendada) de probarlo es a través de la aplicación de ejemplo VacationRequest del plugin de Activiti para grails (sin usar la integración con spring security).

Por ahora el plugin y la documentación (tbd) de la versión 0.1 están alojados en bitbucket (larga vida a Mercurial), en un futuro cercano espero que se publique en el repositorio central de grails (actualmente están haciendo mantenimiento al sitio de codehaus y no se puede hacer registro de nuevos usuarios).

Acerca de Nickman

Aunque crítico e Ingeniero (especializado en software), piloto de aeroplano soy (seré).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s