Está en la página 1de 6

Introduccin sobre BPM

BPM es un paradigma para la administracin de procesos de negocio. El concepto es algo abstracto y en realidad engloba numerosas actitudes y tareas a desarrollar en una empresa, pero en nuestro caso lo enfocaremos a una de sus tcnicas principales: La gestin de procesos de negocio a travs de flujos, lo ue se suele denominar !or"flo!. Mediante BPM se persigue el modelado de las actividades de negocio para lograr una mejor administracin, automati#acin y optimi#acin. El sistema implantado en una empresa para lograr estos objetivos y ad$erirse al paradigma lo denominan BPM%. &lgunos ejemplos de aplicaciones de BPM o motivos de implantacin son las ue siguen: 'mplantacin o mejora del sistema de calidad (omprensin y mejora de procesos Establecimiento real de %L& )eingenier*a de procesos +ptimi#acin de tareas Establecimiento de metodolog*a a nivel de empresa (ontrol y seguimiento de los procesos organi#ativos

(omo $emos se,alado, nosotros nos centraremos en los flujos de negocio, tcnica ue permite acercar el analista al programador mejorando la comprensin y la comunicacin mediante dise,os gr-ficos de secuencias de tareas ue conjuntamente reali#an una funcin de alto nivel e importancia para los objetivos de una empresa. )epresentan una formali#acin de la ordenacin re uerida de este tipo de procesos, ue mediante las $erramientas o soft!are adecuado puede ser e.plotado para mejorar desde varias perspectivas la secuenciacin de tareas de negocio. Mediante un !or"flo! se estudian los aspectos operacionales de una actividad de trabajo: cmo se estructuran las tareas, cmo se reali#an, cual es su orden, cmo se sincroni#an o la manera en ue se relacionan unas con otras. E.isten numerosas implementaciones para establecer un !or"flo!, algunas privadas como /0 y otras p1blicas como +pen%ymp$ony o 2BPM. &lgunos est-ndares $an surgido en los 1ltimos a,os para la definicin de flujos de trabajo. 3os de los m-s importantes son: 4P3L: Para definicin de flujos de trabajo en formato 4ML BPEL: Proporciona facilidades para la or uestacin de servicios, combinacin de servicios !eb para conseguir un flujo de negocio.

Figura 1. Ejemplo bsico de un proceso de negocio con nodo de decisin

Implementacin de BPM con JBPM


BPM es una idea, un paradigma o un concepto. E.isten numerosas implementaciones de este modelo tanto libres como privadas. 5na de ellas es 2BPM, solucin de 2B+%% para java actualmente en su versin 6.7.

Breve descripcin del framework


2BPM es una implementacin en 2ava de BPM ue facilita la creacin de flujos de procesos de negocio permitiendo la integracin de procesos para la unin de personas y aplicaciones %oporta dos lenguajes de proceso: - 2P3L: Enfocado a la definicin de flujos de procesos en 2ava. - BPEL: Proporciona facilidades para la or uestacin de servicios, combinacin de servicios !eb para conseguir un flujo de negocio. El soporte BPEL se encuentra de momento en fase Beta, pero se a,adir- en un futuro a 2BPM. Las dos caracter*sticas m-s potentes o 1tiles de BPM y en concreto de 2BPM son su orientacin gr-fica y la persistencia en la B3. 2BPM enfoca su filosof*a $acia 8+&. Mediante un gr-fico se dise,a el flujo y posteriormente se le dota de la lgica necesaria mediante mapeos con clases de 2ava. 3e este modo se crea un ne.o entre el analista o dise,ador y el programador. E.isten $erramientas para dise,ar estos flujos. 5tili#aremos 8P3, un plugin para Eclipse de f-cil manejo e instalacin.

2BPM tiene la capacidad de persistir los flujos. En los lenguajes tradicionales no e.isten situaciones de parada y espera de notificacin de modo ue ese t$read pueda ser guardado en la base de datos. 3e modo ue no $ay soporte para situaciones de asincron*a sin ue el t$read contin1e corriendo. 2BPM modela flujos de negocio ue b-sicamente son ma uinas de estados, aun ue los flujos son algo m-s ue eso. 3e este modo cual uier cosa ue sea susceptible de ser una ma uina de estados finitos puede ser modelada con un BPM: navegacin !eb, procesos de bac"up, sistemas empotrados de control, autmatas totales en general. )ealmente la mayor parte de sistemas inform-ticos pueden ser modelados as*, la cuestin es si es viable o conveniente 2BPM es b-sicamente una librer*a de clases 2ava y viene distribuida en un 2&), de este modo puede uedar embebida en cual uier tipo de aplicacin: !eb, s!ing, en servidor, en cliente, etc. 3esde la p-gina de 2B+%% podemos descargarnos el pa uete entero del frame!or". Este incluye los siguientes elementos distribuidos en carpetas:

config: fic$eros de configuracin para un entorno java est-ndar db: %cripts %9L para la creacin de la base de datos en los %83B m-s comunes designer: Plugin de eclipse para dise,ar gr-ficamente los flujos de negocio doc: 8u*a de usuario y javadoc del &P' examples: Ejemplos de implementacin de flujos. lib: Binarios de la distribucin server: 5n servidor de aplicaciones 2B+%% ue contiene una implementacin 2BPM para una aplicacin de consola v*a /eb src: :uentes de la distribucin y componente de identidad de 2BPM

Perspectivas de JBPM
E.isten numerosas formas de anali#ar un frame!or". 2BPM como $emos e.plicado con anterioridad tiene como principales virtudes su orientacin a ejecucin de flujos de procesos dise,ados gr-ficamente y la persistencia en la base de datos ue soporta su estabilidad en la gestin de procesos.

Comportamiento de JBPM a nivel de base de datos


2BPM utili#a $ibernate para gestionar la persistencia de sus datos. Mediante fic$eros de mapeo ;BM preestablecidos en la configuracin del marco es capa# de almacenar todo lo relacionado a un flujo de negocio definido y ejecutado de modo transparente al programador al margen de una situacin especial en la ue se desee intervenir en esa persistencia. El frame!or" proporciona scripts de creacin de base de datos para las m-s comunes: +racle, Postgre%9L o %9L%erver.

3e este modo el modelo de datos original de 2BPM contiene 66 tablas ue gestionan datos est-ticos de definicin de flujos y datos din-micos de instancias de esos flujos.

Comportamiento de JBPM a nivel de procesos


2BPM est- implementado en 2ava, de modo ue corre sobre una 2<M. Mediante un fic$ero 4ML en 2P3L se define el flujo de negocio ue representa lo dise,ado gr-ficamente, el plugin de eclipse u otra $erramienta de dise,o se encarga de actuali#ar el fic$ero conforme modificamos el gr-fico aun ue tambin podemos editarlo manualmente. 5na ve# definido el flujo, las clases del frame!or" con 3+M02 parsean el 4ML. %e puede definir mediante un %tring en formato 4ML, empa uetado en un fic$ero .par o en un fic$ero 4ML libre. 5na ve# parseado se busca esta definicin por id en su base de datos en la tabla , si no la encuentra reali#a el deploy de toda la informacin referente al flujo, despus se ejecuta el flujo, conforme a lo definido en el grafico y a las clases java. %i el flujo se encuentra definido ya, simplemente inicia la instancia ya ue la informacin de ste ya se encuentra desplegada. En caso de ue se desee iniciar una instancia anterior, se buscarsu id= en la tabla >jbpm=process=instance? y se reiniciar- o reanudar- el flujo. (uando se ejecuta el flujo, se dan facilidades para efectuar paradas as*ncronas, abortar el proceso, controlar el runtime de ejecucin, etc. E.iste un elemento @o"en, una clase del frame!or". (ada instancia de to"en representa un $ilo de ejecucion en el flujo, de modo ue virtualmente se va despla#ando por los nodos conforme se avan#a en la ejecucin. %i se bifurca un nodo se crear- un nuevo $ilo de ejecucin y un nuevo to"en. Los elementos son los ue se pueden esperar en un grafo de este tipo: Aodos ue ejecutan acciones, transacciones ue conectan unos nodos con otros, estados de inicio y fin, bifurcaciones, decisiones, uniones, ... La ejecucin del flujo en s* no difiere de la de cual uier aplicacin en 2ava ue persista valores en la base de datos durante su ejecucin. Para poder ejecutar un flujo en nuestros proyectos nosotros utili#aremos el servicio %pring BPMService, en la capa Business Process de neoplatform. Este elemento nos da en un principio facilidades para implementar y manejar nuestros flujos de negocio. En la versin 7.B.C del frame!or" envuelve dos implementaciones BPM: 2BPM y +racle /or"flo!.

Pasos para la creacin y ejecucin de un flujo


DEste paso no es necesario pues ya $a sido reali#ado en la implementacin del servicio de neo.

Instalacin
Los pasos a reali#ar para utili#ar 2BPM son los siguientes: 3escargar la suite completa de 2BPM de la !eb de 2B+%% DE%lo 8P3F Ejecutar script para crear las tablas en la base de datos re uerida. 'nstalar el plugin 8P3 para Eclipse bien por el update site o copiando directamente las librer*as descargadas correspondientes en las carpetas feature y plugin de Eclipse &,adir el jar de jbpm al classpat$ del proyecto D

Creacin
5na ve# tengamos instalado todo lo necesario comen#aremos a dise,ar el flujo. Para ello debemos seguir los siguientes pasosEuna forma de $acerloF: Mediante el plugin 8P3, dise,ar el flujo con los tipos de nodo necesarios para las necesidades del negocio. En los nodos ue tengamos ue reali#ar alg1n trabajo de negocio definir los actions con la clase ue los implementa. %i se establecen tareas definir s!imlanes o roles de ejecucin. 'nyectar en un fic$ero de configuracin de %pring las clases definidas en los actions (onfigurar en un fic$ero de %pring el datasource para la base de datos y la configuracin general y de mapeos de $ibernate DDD E(omprobar par-metros del datasourceF (rear un testcase de 25nit ue realice una prueba del comportamiento deseado del flujo. En caso de e.istir varios caminos de ejecucin o posibles comportamientos distintos, parametri#ar el test o crear tantos mtodos de test como caminos a e.plorar. Este modo de reali#acin sigue la metodolog*a @33, de modo ue podamos pensar en el dise,o anterior antes de codificar las acciones ue ejecutar-n la lgica de negocio (rear las clases de los actions en los pat$s definidos implementando las acciones a reali#ar y las decisiones de propagacin de flujo

Ejecucin
5na ve# definido e implementado el flujo, ejecutar el testcase comprobando ue todos nuestros assert dan positivo Ebarrita verdeF. Puede ser 1til colocar tra#as simples por consola o de log0java en algunos puntos. 5na ve# $emos asegurado ue el testcase responde como esperamos, integrar el flujo con la aplicacin y reali#ar de nuevo las pruebas de su funcionamiento. %ubir el flujo y las clases de accin a nuestro sistema de control de versiones

Consideraciones y posibles errores


La intencin de BPM con su filosof*a 8+& no es la misma ue la de un diagrama de secuencias o de colaboracin de 5ML: Este modela la interaccin de una parte de la aplicacin a nivel de negocio interno, especificando al detalle las llamadas a los mtodos incluso con su signatura y los objetos involucrados de modo ue tericamente un programador no debe necesitar tomar decisiones ar uitectnicas ni pr-cticamente de dise,o y se limitara a la implementacin ya ue est-n pensados en principio para llegar a un nivel de detalle suficiente para evitarlo. BPM sin embargo est- pensado para una comprensin del negocio a alto nivel, dise,ando tareas de alto nivel y flujos de alto nivel. 5n nodo bien podr*a desembocar mensajes a cientos de objetos. 'mplementar un flujo a este nivel de detalle no es el objetivo y adem-s provocar*a un e.ceso. El control de la lgica se volver*a m-s complicado, la persistencia continua en base de datos ralenti#ar*a la ejecucin y aumentar*a dr-sticamente el n1mero de registros en la base de datos y la virtud de acercar el tcnico al responsable de negocio o al dise,ador desaparecer*a. BPM no soluciona los problemas del negocio. Puede simplificar el desarrollo o facilitar la tra#abilidad, la comprensin o la integracin pero se construye sobre lgica de negocio ya definida. Es un elemento de construccin superior ue utili#a la lgica creada para mejorar la solucin o para dise,arla a muy alto nivel, no para decidirla. BPM no es algo m-gico ni ninguna panacea. )ealmente es una apro.imacin para mejorar a muc$os niveles los procesos de negocio y pueden ser 1tiles, sin embargo no aportan algo realmente innovador y espectacular. Las revoluciones o innovaciones inform-ticas llegan a cuenta gotas y al cabo de muc$os a,os, las revoluciones de mar"eting llegan cada ve# ue abres el e.plorador o el o*do. BPM no es maleable como la plastilina. &un ue da ciertas facilidades para manejar de un modo interesante y en ocasiones m-s sencillo los flujos de negocio, la implementacin y modificacin de ste no difiere muc$o de un modelo cl-sico. 'ncluso con el soporte de una $erramienta (&%E, caracter*sticas como evolucin din-mica o mantenimientos correctivos al vuelo Eal menos en mi conocimiento y a nivel comercialF todav*a no est-n logradas.

Referencias de interes
8u*a de usuario de 2BPM en la /eb de 2B+%% disponible en formato P3: y ;@ML online: $ttp:GGdocs.jboss.comGjbpmGv6GuserguideG P-gina !eb del frame!or" neo: !eb neoplatform 3escarga de 2BPM 6.7E2B+%% 2BPM jP3L %uiteF starter "it suite 2BPM

También podría gustarte