viernes, 28 de marzo de 2008

Workflow - Scarab

Hola, muchas veces en las empresas en que trabajamos es necesario implementar un sistema que haga un seguimiento a distintos casos o actividades, es decir la construcción o implementación de un workflow. Ahora ustedes se preguntaran ¿Que es un Workflow? , en simples palabras, un workflow es el seguimiento a un flujo de trabajo ver aquí para más información.

Los Workflow deben cumplir con los siguientes objetivos (copiado de wikipedia):
  • Reflejar, mecanizar y automatizar los métodos y organización en el sistema de información
  • Establecer los mecanismos de control y seguimiento de los procedimientos organizativos
  • Independizar el método y flujo de trabajo de las personas que lo ejecutan
  • Facilitar la movilidad del personal
  • Soportar procesos de reingeniería de negocio
  • Agilizar el proceso de intercambio de información y agilizar la toma de decisiones de una organización, empresa o institución

Ahora que ya sabemos lo que es un workflow, y que además necesitamos implementar uno, veremos como lo haremos.
Existen muchos workflow en el mercado, en el siguiente link hay una lista de ellos, son proyectos Open Source - Workflow Engine in Java.

Nos centraremos en una aplicación Open Source llamada Scarab de tigris.org, escrita en Java y altamente configurable, trabaja con distintas bases de datos como Oracle, Postgre, Mysql, Hipersonic, etc., Prototype como librería de Ajax, y los mejores estándares abiertos de tecnología J2EE, como base de Workflow ocupa WfmOpen, La meta de este proyecto (WfmOpen) es proporcionar una puesta en práctica ligera basada en un motor del worflow J2EE. el cual funcionará en una variedad de plataformas y con licencia GPL.

Tambien el código fuente se integra fácilmente con ides como eclipse y netbeans, trabajando con ant y maven a gusto del desarrollador, velocity Macro para las paginas y turbine como motor.

Bueno pongamos manos a la obra y descarguemos el proyecto desde este link

bajemos la ultima versión estable, la 0.21, en formato tar.gz o zip, y lo descomprimimos en el directorio donde tengamos nuestros desarrollos, esto nos generara un árbol de archivos como el siguiente:

slack@ulinux:~/desarrollo/scarab-0.21$ ls -la

total 364
drwxr-xr-x 10 slack slack 4096 2008-03-28 10:26 .
drwxr-xr-x 45 slack slack 4096 2008-03-24 10:06 ..
drwxr-xr-x 3 slack slack 4096 2008-03-27 16:06 bin
drwxr-xr-x 2 slack slack 4096 2008-03-28 09:40 build
-rwxr-xr-x 1 slack slack 10104 2008-03-12 22:38 .classpath
drwxr-xr-x 8 slack slack 4096 2008-03-12 22:36 extensions
-rwxr-xr-x 1 slack slack 9646 2007-02-09 16:28 INSTALL
drwxr-xr-x 2 slack slack 4096 2008-03-12 22:36 lib
-rwxr-xr-x 1 slack slack 175 2007-02-09 16:28 LICENSE
-rwxr-xr-x 1 slack slack 28373 2007-02-09 16:28 maven.xml
-rwxr-xr-x 1 slack slack 18837 2007-02-09 16:28 MIGRATION
-rwxr-xr-x 1 slack slack 14209 2008-03-27 11:44 minimal.properties
-rwxr-xr-x 1 slack slack 3868 2007-02-09 16:28 minimal.xsl
-rwxr-xr-x 1 slack slack 370 2008-03-12 22:38 .project
-rwxr-xr-x 1 slack slack 55009 2008-03-27 15:07 project.properties
-rwxr-xr-x 1 slack slack 28509 2007-02-09 16:28 project.xml
-rwxr-xr-x 1 slack slack 4139 2007-02-09 16:28 project.xsl
-rwxr-xr-x 1 slack slack 3194 2007-02-09 16:28 README
drwxr-xr-x 9 slack slack 4096 2007-02-09 16:34 src
drwxr-xr-x 9 slack slack 4096 2007-02-09 16:34 tomcat
-rwxr-xr-x 1 slack slack 98872 2007-02-09 16:31 velocity.log
-rwxr-xr-x 1 slack slack 14120 2007-02-09 16:28 wizzard.properties
-rwxr-xr-x 1 slack slack 3956 2007-02-09 16:28 wizzard.xsl
drwxr-xr-x 3 slack slack 4096 2007-02-09 16:34 www
drwxr-xr-x 7 slack slack 4096 2008-03-12 22:36 xdocs

y al montarlo el eclipse quedaría así este proyecto:



Entonces ahora tendremos que tener instalada y arriba Mysql la cual ocupa por defecto para el arranque inicial, la podriamos cambiar modificando el archivo minimal.properties de la raiz del proyecto, si ocupamos ANT debemos ir a la carpeta build del proyecto y correr con ant el archivo buid.xml, como muestra la siguiente imagen:



Antes de comenzar a deployar la aplicación debemos crear una base de datos llamada scarab en mysql con usuario root por default, luego en el navegador derecho de opciones de ant hacemos doble click en la opción por defecto marcada como deploy [default] y luego que termine en la consola de hacer este deploy si todo va bien debemos generar el war con la opcion war de ant, esto nos generara una carpeta con el nombre target en la raiz del proyecto y dentro de esta el archivo scarab.war que debemos llevar al webapp de tomcat.

Saludos y mucha suerte !!

No hay comentarios: