Analisis Bonita Workflow v3.0

Bonita Workflow

Bonita es un proyecto con bastante historia, casi data de la época en que abandoné mi viejo sistema de workflow, y, por el momento, está soportado por Bull. Hay desarrollos en España, como open cities, que la utilizan extensivamente. La version actual es la 3.0 que es la que vamos a tratar aqui.

1. Instalación

Para mis pruebas me descargué la última versión de Bonita en:

http://forge.objectweb.org/project/download.php?group_id=56&file_id=7634

Y requería descargarse la última versión del servidor de aplicaciones JoNas (4.8.6), que me descargué de:

http://download.fr.forge.objectweb.org/jonas/jonas4.8.6-tomcat5.5.17.tgz

Utilicé las instrucciones de la guía «Bonita Getting Started» que se incluye junto con el software, en mi caso ya que tenía instalado de antes java 1.5 y ant solo tuve que dar los siguientes pasos (ubuntu 6.06):

  • Descomprimir jonas en un directorio y poner la variable JONAS_ROOT apuntando a ese directorio
  • Descomprimir Bonita en otro directorio distinto
  • Crear la variable de entorno JONAS_BASE a «$JONAS_ROOT/BSOA_base»
  • Añadir al PATH $JONAS_ROOT/bin/unix
  • Crear la variable de entorno BONITA_HOME apuntando a «directorio_donde_descomprimí_bonita/bonita»
  • Asegurarse que ant y el java están en el path
  • Ejecutar ./install.sh en el directorio donde descomprimí bonita

No fue necesario tener derechos de administración y terminó la instalación sin errores.

Para comprobar que todo ha ido bien, simplemente hay que acceder a:

http:://localhost:9000/jiapAdmin con el usuario bsoa con password bsoa

2. Puesta en marcha

Mi intención inicial era poder crear y desplegar un proceso sencillo, igual para todos los motores de workflow para poder comparar el tiempo tardado en cada uno de ellos, para eso utilizaría la instalación por defecto. sin embargo, viendo que esta tarea podía ser más complicada de lo que quería inicialmente, decidí probar algún proceso ya desplegado (o que se incluyese de ejemplo) para poder ver la puesta en marcha y el funcionamiento general de la herramienta.

Me descargué un ejemplo:

Bonita_Simple_Project_Ever.zip

Y tuve problemas para compilarlo… Tras contactar con la lista de soporte de Bonita, no supieron darme una respuesta, pero finalmente encontré que el problema estaba con el client.jar que usaban que no estaba preparado para la versión de Jonas que estaba usando.

ATENCION

Parece ser que la última versión de Bonita no está preparada para corren en la versión de Jonas que instalé (4.8.6) sino que hay que instalar una anterior (4.8.4). Después de unos días dedicados a constatar este hecho (la gente de Bonita no sirvió
de mucha ayuda) decidí bajarme la versión 4.8.4 de este enlace:

http://download.fr2.forge.objectweb.org/jonas/jonas4.8.4-tomcat5.5.17.tgz

Tras lo cual tanto el ejemplo como el servidor y el editor consiguieron funcionar correctamente a la primera.

4. Primer proceso

Una vez que vi que el proceso de ejemplo se ejecutaba correctamente, pasé a crear mi propio proceso siguiendo, eso si, las instrucciones de este video:

http://wiki.bonita.objectweb.org/xwiki/bin/download/XWiki/MySkin/Approval_workflow_Demo_7Dec06_AM.htm

Donde se ve como construyen en proceso del ejemplo que había ejecutado anteriormente.

Para poder crear el proceso tal como hace el video tendremos que desplegar unos «Mappers» y «Hooks» que no están explicados en ningún sitio, así que os dejo la «receta»:

En el directorio $BONITA_HOME (con todo el entorno cargado tal como se explica en el primer paso) ejecutar lo siguiente:

ant deployMapper -DmapperClass=»AdministratorMapper»

ant deployHook -DhookClass=»MailReject»

ant deployHook -DhookClass=»MailAccept»

De esta manera aparecerán en el editor los Mappers y Hooks necesarios para completar la tarea.

Una vez hecho esto el proceso ejecutó tal como en el video de la demo… No parece demasiado complicado.

3. Enlace autenticacionUno de los requisitos que necesito cubrir con un workflow es que la autenticación sea común para el resto de aplicaciones y, por eso, necesito que se pueda integrar (a nivel de autenticación nada más) con un directorio LDAP.

Hay instrucciones precisas sobre como hacerlo en la documentación de bonita, por lo que debería bastar seguir las instrucciones para tener los usuarios de LDAP listos para usar Bonita.

5. Ejecución

9 comentarios en “Analisis Bonita Workflow v3.0

  1. Hola!

    Buen post me sirvio mucho, tambien ando provando este sistema de workflow, solo q tengo una duda y quiero ver si me puedes ayudar.

    En el paso en el que ejecutas el proceso de ejemplo, como le hiciste para compilarlo o importarlo?.

    Te estaria muy agradecida si me puedes explicar.

    De antemano gracias!

  2. Hola katti,

    Todavía estoy terminando el post, no he tenido mucho tiempo para terminar el análisis… A ver si uno de estos dias.

    Para compilar el ejemplo, simplemente has de asignar las variables de entorno (las mismas que para la instalación) y ejecutar:

    ant deploy_approval_java

    Y ya está…

  3. Hola,

    Interesante post. Estoy evaluando varias herramientas de BPM en Java libres. Estoy ahorita con ‘BONITA’.

    ¿Sabes como hacer deployment sobre Sun Java Application Server?

    Saludos desde Venezuela.

    Excelente post :)

  4. Hola Rodrigo,

    La verdad es que no lo he probado, pero en principio, la instalación por defecto está pensada para JoNas… Habría que generar un .ear de Bonita…

    Le echaré un vistazo.

  5. Hola Jose Antonio:

    Te felicito por este post antes que todo.
    Hace tiempo que estoy intentando trabajar con este Workflow, dado que no tengo conocimientos profundos en programación ni en Workflow. Sólo he tenido la oportunidad de trabajar con Ultimus, en mi Universidad. Pero en este momento debo sacar adelante la realización de un proyecto Workflow en una herramienta Opensource. Me he decidido por varias razones por Bonita, pero he tenido algunos problemas para trabajar con la Base de Datos.
    Puntualmente el proyecto es bastante simple y solo debemos contar con una base de datos de algunos productos y características, y que un usuario ingrese al sistema y solicite las características de un producto en especial. O sea debemos interactuar con la base de datos, cosa que aún no hemos logrado. Hemos leído el API y el Development Guide pero aún no nos queda claro como podemos realizar esto.
    ¿Podrías ayudarnos a entender como se realiza esto? Al menos orientarnos un poco :)

    Saludos

  6. Hola Ivan.

    No entiendo exactamente lo que necesitas, pero te comento que bonita maneja su propia base de datos donde guarda todo el flujo del proceso (es asi como sabe que ruta tomar). Podemos usar esa base para datos simples pues la tabla que representa a las actividades permite almacenar atributos, pero si deseas algo mas complejo lo mejor seria (a mi criterio) que tengas tu propia base de datos y que de alguna manera la relaciones a los procesos.

  7. Hola José Antonio.

    Te cuento que me ayudó mucho este post.
    Tengo actualmente instalado bonita 3.0 con jonas 4.8.4 y ant 1.6.5.
    Resulta que tengo el problema que cuando ejecuto una actividad me finaliza al instante y me queda registrada con inicio y fin a la misma hora. Yo necesito que la actividad la ejecute el usuario y quede ejecutándose 2 días por ejemplo.
    Otro problema que tengo es que no puedo configurar Bonita para ejecutar además exo-jcr que me permita agregar artefactos a una actividad.
    Necesito ayuda.
    Muchas gracias.

  8. Jose
    Me encuentro buscando workflow en software libre. He leido tu post y esta muy didactico.

    Podrias indicarme porque me sale este error, creo que estoy ejecutando todo lo que dice el ejemplo. Yo instale bonita para Windows XP

    Me sale este error cuando estoy ejecutando el ejemplo del video de bonia, ingreso los 4 datos que piden y le doy summit y sale este error.

    Instantiate process error Dynamic invocation of mapper failed :hero.mapper.jonas.admin#Administrador–> mapper type = 2 ///java.lang.ClassNotFoundException: hero.mapper.jonas.admin

    Has conseguido otra herramienta de worklfow aparte de Bonita Intalio y Jboss?

Los comentarios están cerrados.