domingo, julio 05, 2009

Introducción a jBPM Parte I ...

Antes de empezar a hablar de jBPM creo que sería interesante saber que es BPM y su relación con jBPM. Si acudimos a nuestra querida wikipedia BPM es:

Se llama Business Process Management (BPM) a la metodología empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio, que se deben modelar, automatizar, integrar, monitorizar y optimizar de forma continua.


En torno a estos conceptos ha surgido muchíisimas iniciativas para el soporte de los BPM, podríamos decir que lo que se lleva hoy día en el mundo empresarial de las IT es la gestión del negocio con BPM y claro todas las empresas del sector intentan sacar tajada dando soporte BPM.

Existen múltiples estándares para la definición de procesos de negocio entre los más extendidos están BPMN, XPDL y YAWL. Al mismo tiempo también han surgido herramientas que permiten modelar los procesos entornos automatizar

Como indico en el tema vamos a introducir un poco jBPM 4.0, esta herramienta nos aporta una plataforma para la gestión de procesos. Vamos hablando claro, lo que nos aporta es una Runtime para la ejecución de procesos definidos de manera gráfica. El lenguaje gráfico está basado en jPDL un lenguaje gráfico definido por al gente de jBoss.



A continuación lo que haremos será indicar como instalar la herramienta jBPM 4.0 desde cero y en siguientes entradas a este blog indicaré como se contruye un proyecto desde cero y como se crea y ejecuta un proceso completo.

Instalación de jBPM 4.0 + MySQL 5.0 (Windows)
1.- Requisitos
JDK 1.5 o superior preinstalado
Ant 1.7.0 preinstalado (variable de entorno ANT_HOME configurada)

1.1.- Descargar jBPM desde aquí (enlace jBPM de Sourceforge).

2.- Descomprimir jbpm-4.0.zip en directorio raiz. Ej: C:\jbpm-4.0

3.- Para la instalación sólo tenemos que entrar en directiorio c:\jbpm-4.0\jboss y ejecutar el script para su instalación:
c:\jbpm-4.0\jboss> ant demo.setup
3.1.- Para la instalación con otras BBDD usar, primero hay que configurar los ficheros (usaremos ejemplo MySQL):
C:\jbpm-4.0\db\jdbc\mysql.properties
C:\jbpm-4.0\db\hibernate.cfg

y ejecutar:
c:\jbpm-4.0\jboss> ant -dDatabase=mysql demo.setup
si no se usa una BBDD se usará una por defecto Hypersonic que no es más que una base de datos en memoria.
Al terminar ya tendremos instalado el servidor jboss y eclipse en el directorio jbpm-4.0.

5.- Vamos a instalar el GPD en eclipse:
5.1.- Abrimos eclipse c:\jbpm-4.0\eclipse\eclipse.exe
5.2.- Desde el menu Help -> Install New Software -> Add -> Archive
5.3.- Seleccionamos el archivo c:/jbpm-4.0/gpd/jbpm-gpd-site.zip
5.4.- En la ventana de instalación seleccionamos todos lo items y pulsamos en Install
5.5.- Tras la instalación es recomendable reiniciar eclipse

6.- Una vez reiniciado eclipse, añadiremos las librerias de jBPM
6.1.- Desde Windows->Preference->Java->User Library
6.2.- Seleccionamos New
6.3.- Introducimos el nombre jBPM_Liraries y pulsamos en Add Jars
6.4.- Las librerias a introducir son c:\jbpm-4.0\jbpm.jar y todas las que se encuentre en c:\jbpm-4.0\lib
6.5.- En jbpm.jar seleccionamos Source Attachment y le damos a Edit, luego External Folder he indicamos c:\jbpm-4.0\src
6.6.- Pulsamos en OK

7.- Ahora vamos a introducir el XSD de jpdl
7.1.- Desde Windows->Preference->XML->XML Catalog
7.2.- Le damos a Add y seleccionamos C:\jbpm-4.0\src\jpdl-4.0.xsd
7.3.- Pulsamos OK

8.- Configuraremos la runtime de jBPM
8.1.- Desde Windows->Preference->JBoss jBPM->jBPM 4-> Runtime locations
8.2.- Le damos a Add e introducimos el nombre jBPM-4.0 y seleccionamos el directorio c:\jbpm-4.0
8.3.- Le damos a Ok y luego marcamos el checkbox del runtime

9.- Reiniciar eclipse

10.- Importación de ejemplos:
10.1.- Desde el Package explorer le damos al mene File->Import->Existing Project in Workspace
10.2.- Seleccionamos el directio c:\jbpm-4.0
10.3.- Marcar la carpeta de examples
10.4.- Pulsar Finish y se importarán los ejemplos en un proyecto
10.5.- En el proyecto configuramos el Build Path y agregamos las librerias de jBPM.

11.- Ejecución de un proceso. Destacar que cada ejemplo posee normalmente 2 ficheros principales que son 'nombre_fichero.jpdl.xml' con la definición gráfica del proceso y un fichero java donde se ha programado un código de prueba en base a test JUnit. Para ejecutar estas pruebas seleccionamos la correspondiente clase java y le damos a Run As->JUnit Test
11.1.- Si no se ha configurado nada se van a usar los ficheros de configuración importados:
jbpm.cfg.xml
jbpm.hibernate.cfg.xml
jbpm.mail.properties
jbpm.mail.templates.examples.xml
loggin.properties

estos ficheros están preconfigurados para que utilicen la BBDD Hypersonic en memoria. Habrá que cambiar estos fichero si queremos usar MySQL
11.2.- Configurar la persistencia con MySQL
- jbpm.hibernate.cfg.xml sustituir las propiedades por:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpmdb4</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.format_sql">true</property>

jueves, julio 02, 2009

Androffice a la carga

Ante todo quiero trasmitir mi más sincera enhorabuena a mis amigos Borja Refoyo y Juan Vega por haber conseguido el Premio Fin de Carrera 2009 con el proyecto Androffice, otorgado en la categoría de mejor proyecto de Ingeniería Informática.

Podeis consultar el fallo del jurado en el siguiente enlace aqui

Hoy mismo aparecen en un articulo del Diario de Sevilla.

Androffice nació como un proyecto ambicioso que pretende consolidarse como un paquete ofimático completo para móviles Android. Este proyecto empezó siendo un mero proyecto informático de dos compañeros de II y parece que va acabar formando una empresa con más productos. En este proyecto se han embarcado dos personas a las que quiero mucho y que les deseo lo mejor y que ellos saben que me tendrán para lo que necesiten. Hasta ahora no les he podido aportar mucho pero algún día si tuviera el tiempo necesario me embarcaría con ellos ;).


Mientras tanto darles mi enhorabuena, y hacerles un poco de promoción:



ENHORABUENA CHAVALES!!!