revisión de jbpm5
TRANSCRIPT
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 +
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%
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%
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:/$
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
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 6/41
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 7/41
0 elegimos proyectos e3istentes
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 8/41
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 .%
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%
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%
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 12/41
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
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+
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+
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%
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
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
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%
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 20/41
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%
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%
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á%
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%
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
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%
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%
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%
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%
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%
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 31/41
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%
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%
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%
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%
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%
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 37/41
8/16/2019 Revisión de JBPM5
http://slidepdf.com/reader/full/revision-de-jbpm5 38/41
Uuedará tal como esto+
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
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%
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%