revisión de jbpm5

41
8/16/2019 Revisión de JBPM5 http://slidepdf.com/reader/full/revision-de-jbpm5 1/41 RevisióndejBPM5 Introduccion a BPM brought to you by Livescribe  jBPM nos puede servir como motor de WorkFlow interno para nuestras aplicaciones pero ya os adelanto que cualquier proyecto llevará muchas tareas de conguraci!n y me"ora #aunque eso pasa con cualquier producto más allá de una demo de preventa$% &n este art'culo solamente pretendo identicar los recursos disponibles e interpretarlos intentando que este traba"o le valga tambi(n al que se quiera iniciar% )s paso las especicaciones de mi Mac* en las que va bastante bien+ ,os vamos al Web de "boss a por el proyecto "BPM +

Upload: gerardovp777

Post on 05-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 1/41

Revisión de jBPM5

Introduccion a BPMbrought to you by Livescribe

 jBPM nos puede servir como motor de WorkFlow interno para nuestras aplicaciones pero ya

os adelanto que cualquier proyecto llevará muchas tareas de conguraci!n y me"ora

#aunque eso pasa con cualquier producto más allá de una demo de preventa$%

&n este art'culo solamente pretendo identicar los recursos disponibles e interpretarlos

intentando que este traba"o le valga tambi(n al que se quiera iniciar%

)s paso las especicaciones de mi Mac* en las que va bastante bien+

,os vamos al Web de "boss a por el proyecto "BPM +

Page 2: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 2/41

,os descargamos el instalador completo desde este enlace%

-on más de .// Megas 0 con la nueva bra !ptica en casa 0 segundos* que maravilla%

Page 3: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 3/41

1omo siempre PFLLP2 #Por Favor Leerse La P 0 2ocumentaci!n$ donde e3plican muy bien lo

que hay que hacer% &s que normalmente vamos acelerados y queremos hacer las cosas

intuitivamente%

4emos que para que 5uncione correctamente el instalador hace 5alta una versi!n de 6ava

superior a 7%8 y ant superior a 7%9%

Page 4: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 4/41

Primero verifcamos que tenemos la versión de Java correcta. Abrimos un

terminal.

 "avMacBookPro:;1anales+< rcanalesmora= "ava >version

 "ava version ?7%@%/AC

 6ava#DM$ -& ;untime &nvironment #build 7%@%/A>b/>.:.>77M9:/$

Page 5: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 5/41

 6ava Eot-pot#DM$ @.>Bit -erver 4M #build :/%>b/>.:.* mi3ed mode$

 Java correcto: Ahora, que tenemos la versión de ant.

MacBookPro:;1anales+< rcanalesmora= ant >version

Gpache Gnt#DM$ version 7%%: compiled on 6une :/77

MacBookPro:;1anales+< rcanalesmora=

Ant correcto. Con esto parece que podemos seuir.

!jecutamos el comando de instalación: ant install.demo

MacBookPro:;1anales+"bpmadictos rcanalesmora= ant install%demoBuildle+ HsersHrcanalesmoraH"bpmadictosHbuild%3ml

download%"boss%check+ JechoK 1hecking 6Boss G- download 0

download%"boss+

install%"boss+ JunipK &3panding+ HsersHrcanalesmoraH"bpmadictosHlibH"boss>as>9%/%:%Final%ip

into HsersHrcanalesmoraH"bpmadictos

download%drools%guvnor%check+ JechoK 1hecking 2rools uvnor download 0

download%drools%guvnor+

check%"boss%version+

install%guvnor%into%"boss+

JmkdirK 1reated dir+ HsersHrcanalesmoraH"bpmadictosHtarget

JunipK &3panding+ HsersHrcanalesmoraH"bpmadictosHlibHguvnor>distribution>wars>8%.%/>

:/7:/87@%war into HsersHrcanalesmoraH"bpmadictosHtarget

)6)+ leer los mensa"es de la consola% G mi me ha dado errores y he tenido que invocar varias

veces el comando porque las descargas se quedaban incompletas #de eclipse$ y daba error

de e3tracci!n%

"eintentamos hasta que obtenemos el mensaje de que todo ha ido bien

install%demo+

BIL2 -11&--FL

 Dotal time+ 8 minutes 7 seconds

MacBookPro:;1anales+"bpmadictos rcanalesmora=

-e nos instalan todos los componentes% Ghora solo tenemos que lanar todos los servicios y

eclipse 0 con el comando ant start.demo

Page 6: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 6/41

Page 7: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 7/41

0 elegimos proyectos e3istentes

Page 8: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 8/41

Page 9: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 9/41

 Oa tenemos en pantalla el proyecto que consta de dos cheros+ el 5uente "ava y el diagrama

BPM, :%/%

-i hacemos doble clik sobre el diagrama nos aparecerá el editor gráco% -in seleccionar

sobre ningn elemento* podemos ver las propiedades del diagramaHproceso BPM que

estamos modelando%

,os interesa el identicador+ com.sample.evaluation

n proceso arrastra variables que se utiliarán a lo largo de los mismos* es lo que se

denomina en algunas herramientas 2Gs #atributos denidos por el usuario$% 4emos que

están denidas .%

Page 10: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 10/41

-obre cada una de las tareas del proceso podemos ver el Actor#d que será el usuario que

recibirá la tarea una ve arrancado el proceso y llegado a ese punto%

Puede estar asignado directamente como+ mar$ #es decir* el usuario que recibirá la tarea

directamente$* o hacer re5erencia a un 2G+ %&emplo$ee' #es decir* que se asignará a uno

u otro dependiendo de un atributo arrastrado en el proceso$

&n este segundo caso* en la tareas de (el) !valuation* se asignará al valor actual de lavariable%

Page 11: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 11/41

Podemos ver el c!digo que crea una sesi!n contra el motor "BPM y crea una copia del

proceso%

Page 12: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 12/41

Page 13: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 13/41

Ghora pulsamos el bot!n derecho sobre Process*est.java y elegimos la opci!n

sobre debu as + java application

Page 14: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 14/41

 O ya hemos arrancado hasta el punto de parada% ,os aparecerá una pantalla diciendo que s

queremos ir a la perspectiva de depuraci!n% Lo podemos hacer ahora o cambiar cuando

queramos de perspectiva% 4emos como se hace+

Page 15: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 15/41

 Oo eli"o la perspectiva "BPM

 O aparece una vista especial llamada -uman *as /ie0 donde podemos interrogar a

motor de "BPM #recordad que con una sesi!n válida activa$ sobre las bande"as de tareas de

cada usuario%

Podemos ver* en el c!digo "ava* que podemos arrancar un proceso con el nombre de actor

que queramos+

Page 16: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 16/41

-i estamos en la perspectiva de depuraci!n

Podremos aQadir la vista -uman *as /ie0 manualmente%

Page 17: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 17/41

 O aparecerá "unto a la de propiedades

&ste es el aspecto de nuestra perspectiva de depuraci!n

Page 18: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 18/41

1uando creamos una copia del proceso #uso esta nomenclatura para di5erenciar lo que es la

plantilla del proceso* de una instancia concreta$ esta activa* podemos interrogar al sistema

sobre las tareas disponibles para un usuario% &l e"emplo por de5ecto se las asigna a risv

Page 19: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 19/41

2eberemos entender que una tarea con intervenci!n humana tiene un ciclo de vida% Primero

aceptarla* arrancándola* podr'amos escalarlas* suspenderla* completarla o declararla como

5allida%

)s recomiendo revisar la documentaci!n para que veáis los posibles estados%

Page 20: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 20/41

Page 21: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 21/41

&l proceso en si mismo simplemente va avanando* por lo que es tirando a poco til% Eabr'aque e"ecutar en cada paso alguna acci!n* como guardar los datos* actualiar alguna tabla*

comunicarnos con un proceso e3terno* etc% La idea es que el Ru"o BPM invoque a servicios

e3ternos reutiliables y que dentro del motor se mantenga el m'nimo de l!gica posible%

&sta llamada a c!digo o invocaci!n a servicios la podr'amos hacer de varios modos* siendo e

más sencillo aQadiendo c!digo directamente a las acciones )n&3it u )n&ntry que se

e"ecutan cuando se entra o sale respectivamente del estado% Podemos ver en las

propiedades el área para editar%

Page 22: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 22/41

Earemos algo sencillo como poner un mensa"e% -i podemos hacer esto podremos hacer

cualquier cosa% &n esto otras heramienta BPM proporcionan muchas más ayudas visuales

permitiendo mapear datos a bases de datos* accecer a servicios Web y mapeando 2Gs y

datos de servicio visualmente* etc% &so en principio parece una gran venta"a pero 0 s

queremos tener una l!gica lo menos acoplada al motor de BPM en s'* tampoco parece una

gran desventa"a+ &so si* es más laborioso%

Page 23: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 23/41

GQadir c!digo es sencillo aunque hay que tener un par de precauciones% Pinchamos en los

puntos suspensivos de la acci!n+

Para que 5uncione* no se os olvide indicar que el lengua"e es "ava #porque por de5ecto

aparece M4&L $%

 Dampoco se os olvide* en la secci!n imports* declarar las librer'as a importar% 1omo hemos

creado una clase util* debemos declarar donde está%

Page 24: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 24/41

 Dambi(n* para el mismo n* podemos crear tareas intermedias de -cript%

Page 25: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 25/41

Easta ahora hemos visto c!mo se pinta un proceso donde hay tareas a realiar por un

usuario* c!mo invocar nuestro c!digo y c!mo ver lo que está pasando dentro del motor pero

Sc!mo integramos esto con nuestras aplicacionesT

&n un entorno real* pongamos en un portal Web* un usuario e3terno entrar'a en una página

pblica y tras hacer algo #pongamos un pedido$ el portal arrancar'a un proceso contra e

motor de "BPM aportando los datos #tal como hemos visto en el c!digo 6ava$ y

posteriormente* usuarios internos de la organiaci!n ir'an recibiendo tareas% Pongamos queuna persona tiene que mirar si el pedido es válido y que pase a almac(n% Sc!mo y donde

hace estoT

)tra ve hay varios modos% n modo sencillo* ser'a disponer de una aplicaci!n gen(rica que

permita logarse a esos usuarios internos* ver las tareas que tienen en el motor de WorkRow

y* desde ese mismo punto* asignárselas* arrancarlas* que le apareciera una pantalla para ver

la in5ormaci!n #solo la necesaria$ del proceso y que pudiera aportar nuevos datos y darla por

completada% &n nuestro e"emplo del pedido* podr'a ver quien lo pide* el nivel de cr(dito

consultando el hist!rico de compras* la página web del cliente o comprando algn in5orme

de riesgo* etc% y de"ar pasar el pedido o matarlo en ese punto%

&sta aplicaci!n gen(rica se suele llamar la consola%

1omo tenemos arrancada la aplicaci!n* s!lo tenemos que ir a la siguiente ;L para acceder

a la aplicaci!n% &sta consola yo dir'a que es casi un prototipo para que veas el c!digo y

tengáis e"emplos para hacer vuestras propias integraciones en vuestras aplicaciones* que es

el segundo modo de hacer el traba"o%

4amos a esta ;L+ http+HHlocalhost+//H"bpm>consoleHapp%html

samos el usuario y contraseQa risv

-i ten(is curiosidad de saber donde se registran estos usuarios* deb(is saber que

inicialmente el e"emplo de "BPM viene congurado con autenticaci!n del servidor 6boss en

el que corre% -i quer(is crear un nuevo usuario* tendr(is que ir a los cheros+ user y roles

en HsersHtusuarioHtu2irectorioH"boss>as>9%/%:%FinalHstandaloneHconguration

Page 26: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 26/41

Igual que en cualquier otra aplicaci!n Web donde el servidor de aplicaciones se encarga de

la identicaci!n* se pueden usar otras opciones como L2GP* bases de datos* etc%

 Oa en la consola* podemos ver los mens a la iquierda+ Dask* process* reports* setting%

Lo primero que hacemos es ver las tareas que tiene nuestro usuario% 1omo hemos lanado

nuestro programa "ava* risv tendrá una tarea asignada%

Page 27: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 27/41

-i pulsamos vie0* e"ecutaremos la tarea% -i pulsamos complete* ya la tenemos terminada y

la recibirán las bande"as de los siguientes usuarios en el Ru"o%

-i nos "amos* en la parte in5erior derecha hay unas Rechas que despliegan una ventana con

las traas del sistema%

Page 28: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 28/41

Lo realmente interesante es ver* en las traas de consola "BPM* los comandos ;&-D que está

invocando y c!mo se está parseando la respuesta%

La consola puede ser válida para una pequeQa empresa que se tenga que apaQar tal cual

pero es bastante probable que sea insuciente para una gran organiaci!n que tenga

muchas más aplicaciones% ) bien la tendrá que adaptar y bien empotrar en su portal o

integrar por medios e3ternos% &sta integraci!n se hará o bien a trav(s de las GPIs 6ava o

mediante los servicios ;&-D%

Gdemás* es posible que otras aplicaciones tengan que mandar noticaciones a nuestros

Ru"os* aunque lo l!gico ser'a proporcionar unos servicios Web para ello%

-i quer(is ver la lista de todos los comandos ;&-D de "BPM pod(is acceder a este enlace%

http+HHlocalhost+//Hgwt>console>serverHrsHserverHresourcesH"bpm% Los comandos &D los

pod(is invocar desde un navegador% Para los P)-D se puede hacer a manocon Ettprl1onennection o cualquier librer'a "ava>;&-D%

4eamos un e"emplo de invocaci!n manual%

Page 29: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 29/41

Igual que podemos ver la lista de tareas* podemos arrancar un proceso cualquiera de todos

los disponibles 0

Pinchamos sobre Process 1vervie0 y podemos ver que e3iste el nuestro de &valuation%

Pulsamos start y arrancamos uno nuevo%

Page 30: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 30/41

,os aparece una plantilla de 5ormulario asociada al proceso* para lanarlo%

Page 31: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 31/41

Page 32: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 32/41

La consola nos proporciona mucha más in5ormaci!n% Gba"o a la derecha* podemos ver* de

una copia de proceso* el diagrama indicando en que punto se encuentra% 1omo le hemos

dicho que es para ;oberto* se encontrará en la primera tarea asignado al usuario ;oberto%

Page 33: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 33/41

Podemos ver tambi(n los datos de la instancia%

Page 34: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 34/41

1omo inicialmente no hay un usuario con el que me pueda logar llamado ;oberto* para ver

que es verdad* me voy a &clipse* donde todav'a tengo el proceso en depuraci!n y por lotanto con sesi!n válida* y desde el visor de tareas humanas compruebo la tarea asignada a

;oberto%

Para entender que está pasando dentro del sistema* lo me"or es conectarse a la base de

datos e interrogar el modelo%

La demo viene congurada por de5ecto con una base de datos h2% Podr'amos utiliar

cualquier editor jdbc% Para recorrerla sin salir de eclipse me voy a descargar un plugin

llamado &lipse -UL &3plorer%

Page 35: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 35/41

,os ba"amos el chero de source5orge%org #-UL &3plorer Plugin$ y lo e3pandimos en la

carpeta deseada%

Podemos arrancarlo como aplicaci!n independiente e"ecutando sqle3plorer%app o bien copiar

los cheros de las carpetas )eatures y pluin a esas carpetas de nuestra instalaci!n de

eclipse* donde nos aparecerá una nueva perspectiva al rearrancarlo%

Page 36: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 36/41

1erramos &clipse* lo volvemos a abrir y cambiamos a la perspectiva -UL &3plorer%

&n la pantalla principal tenemos que denir la cone3i!n que queremos utiliar% 4ienen

muchas de e"emplo+ simplemente reciclamos una%

Page 37: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 37/41

Page 38: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 38/41

Uuedará tal como esto+

Page 39: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 39/41

Para saber los parámetros que tenemos que poner lo me"or es espiar la denici!n del pool de

cone3iones del servidor de aplicaciones ya que la consola de "BPM se conecta a la misma

base de datos% &n mi instalaci!n es HsersHrcanalesmoraH"bpmadictosH"boss>as>

9%/%:%FinalHstandaloneHcongurationHstandalone%3ml

Ghora* s!lo tenemos que pulsar conectar y 4iew 2atabase -tructure

Page 40: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 40/41

Podemos generar automáticamente la consulta a la tabla de "BPM deseada%

 O ya tenemos las tablas internas accesibles% Podemos ver donde se encuentran registradoslos usuarios y los grupos%

Page 41: Revisión de JBPM5

8/16/2019 Revisión de JBPM5

http://slidepdf.com/reader/full/revision-de-jbpm5 41/41

)bviamente no es conveniente acceder al modelo de datos directamente porque cualquiercambio de versi!n del producto o de su modelo de datos tirará por tierra nuestros

desarrollos* por lo que es me"or utiliar el GPI adecuado% 2e todos modos* no está de más

saber siempre que está pasando* sobre todo para tunning del sistema%

Bueno* hasta aqu' ya hemos visto un mont!n de cosas para un simple art'culo% ,os quedar'a

revisar el resto de los e"emplos para entrar en más detalle con las distintas posibilidades de

BPM+

 Demporiaci!n de tareas%

Invocaci!n del motor de reglas% &nv'o y recepci!n de eventos%

1reaci!n de sub>procesos%

4amos a descargarlos%