jbpm (modelado de procesos de negocio en entornos informáticos)
DESCRIPTION
Introducción a jBPM para el Máster en Ingeniería Web de la Universidad de OviedoTRANSCRIPT
![Page 1: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/1.jpg)
jBPMModelado de procesos de negocio en entornos informáticos
Vicente García Díaz ([email protected])
Juan Manuel Cueva LovelleMDE-OOTLAB Research GroupNoviembre de 2010
![Page 2: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/2.jpg)
BPM (Business Process Modeling)Introducción
![Page 3: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/3.jpg)
¿Qué es un Proceso de Negocio?Business Process Modeling
Lo que se hace para cumplir con las necesidades y expectativas de los CLIENTES Los clientes son consumidores de un producto o servicio Pueden ser internos o externos
En la Wikipedia en.wikipedia.org/wiki/Business_process “A business process is a recipe for achieving a
commercial result. Each business process has inputs, method and outputs. The inputs are a pre-requisite that must be in place before the method can be put into practice. When the method is applied to the inputs then certain outputs will be created”
![Page 4: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/4.jpg)
¿Qué aspecto tiene un BPM? Eso depende….
![Page 5: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/5.jpg)
Tecnologías BPMBPMN -- ¿Cómo se ve?
Business Process Modeling Notation (BPMN) Estándar del OMG
Notación gráfica para BPM Permite
Que las personas técnicas y las no técnicas se entiendan fácilmente
Especificar la forma en la que los elementos BPMN se mapean a WS-BPEL
![Page 6: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/6.jpg)
Tecnologías BPMXPDL -- ¿Cómo se guarda?
XML Process Definition Language (XPDL) Estándar de WfMC
Lenguaje XML para persistir diagramas BPMN Permite
Intercambiar diagramas realizados con diferentes herramientas
Almacenar incluso las coordinadas de los elementos Ampliar el lenguaje con extensiones
![Page 7: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/7.jpg)
Tecnologías BPMWS-BPEL -- ¿Cómo se ejecuta?
Web Services Business Process Execution Language (WS-BPEL) Estándar de OASIS
Lenguaje XML de ejecución de procesos de negocio mediante servicios Web
Permite Orquestar la comunicación entre diferentes servicios Web Ampliar el lenguaje con extensiones
Extensiones BPEL4People
▪ Permite que las personas formen parte del proceso de negocio
BPELJ▪ Permite ejecutar código Java sin ser expuesto como servicio Web
![Page 8: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/8.jpg)
Tecnologías BPMBPDM -- Sintaxis abstracta
Business Process Definition Metamodel (BPDM) Estándar del OMG
Metamodelo derivado de MOF para definir procesos de negocio
Permite Definir una base común para todos los BPM Utilizar el estándar XMI para persistir modelos Hacer los BPM interoperables con las herramientas ya
disponiblesMOF
BPDM
Otro tipo de modelos
M3
M2
M1BPMN …
![Page 9: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/9.jpg)
Instalación de jBPMPlataforma para ejecutar lenguajes de procesos de negocio
![Page 10: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/10.jpg)
Introducción a jBPM
Process Virtual Machine
![Page 11: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/11.jpg)
Instalación en producción La instalación comprende varios pasos
Instalación del servidor de aplicaciones JBoss
Instalación de jBPM Instalación del servidor de bases de datos Instalación de Eclipse Instalación del plugin para Eclipse
Se necesita tener instalado el JDK
![Page 12: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/12.jpg)
InstalaciónInstalación del servidor de aplicaciones jBoss (1/2)
JBoss es un servidor de aplicaciones http://sourceforge.net/projects/jboss/fil
es/JBoss/JBoss-5.1.0.GA/ Versión 5.1 jboss5-1.0.GA.zip
Se puede descomprimir por ejemplo en C:\jBoss
Para iniciar el servidor de aplicaciones C:\jBoss\jboss-5.0.1.GA\bin\run.bat
![Page 13: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/13.jpg)
InstalaciónInstalación del servidor de aplicaciones jBoss (2/2)
JBoss no funcionará si No está definida la variable JAVA_HOME
con un JDK Si hay algún puerto ocupado (e.g. 8080)▪ netstat –ao -> para detectar los PID que
utilizan cada puerto▪ Con el administrador de tareas eliminar los
procesos
![Page 14: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/14.jpg)
**InstalaciónDescarga de jBPM
http://sourceforge.net/projects/jbpm/files/ Versión 4.0 Jbpm-4.0.zip
![Page 15: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/15.jpg)
InstalaciónInstalación de Apache Ant
Facilitará la instalación de jBPM http://ant.apache.org/
Versión 1.7.1 apache-ant-1.7.1-bin.zip
Hay que incluir en la variable del sistema Path la ruta de Ant
![Page 16: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/16.jpg)
InstalaciónInstalación del servidor de bases de datos MySQL (1/2)
Lo más sencillo sería utilizar Hypersonic pero es más potente MySQL
http://dev.mysql.com/downloads/ Versión 4.1
mysql-essential-4.1.22-win32.msi Se ejecuta y se instala
Hay que configurarlo▪ Añadir al Path
![Page 17: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/17.jpg)
InstalaciónInstalación del servidor de bases de datos MySQL (2/2)
Hay que crear una base de datos
Configurar JBPM4_HOME\db\jdbc\mysql.properties
Crear el esquema de la base de datos JBPM4_HOME\db\ant -Ddatabase=mysql create.jbpm.schema
Meter información de ejemplo en la base de datos JBPM4_HOME\db\ant -Ddatabase=mysql create.jbpm.schema
![Page 18: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/18.jpg)
InstalaciónInstalación de jBPM
Configuración de JBPM4_HOME\jboss\build.xml jbpm.parent.dir jboss.version jboss.parent.dir
Instalación de jBPM en JBoss JBPM4_HOME\jboss\ant –Ddatabase=mysql
install.jbpm.into.jboss
![Page 19: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/19.jpg)
InstalaciónInstalación de Eclipse
Entorno de desarrollo Eclipse http://www.eclipse.org/downloads/
Eclipse Classic 3.5.1
![Page 20: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/20.jpg)
**InstalaciónInstalación del plugin para Eclipse
![Page 21: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/21.jpg)
**InstalaciónConfiguración del runtime jBPM para Eclipse
![Page 22: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/22.jpg)
**InstalaciónAñadir las librerías de jBPM al Build Path de Eclipse
![Page 23: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/23.jpg)
Introducción a jBPMPlataforma para ejecutar lenguajes de procesos de negocio
![Page 24: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/24.jpg)
Procesos e instancias
Process instance / Execution
Process Instanc
e
Execution
Execution
![Page 25: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/25.jpg)
ProcessEngine (1/3)
Se necesita un ProcessEngine para obtener los diferentes servicios
![Page 26: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/26.jpg)
ProcessEngine (2/3)
Jbpm.cfg.xml es el archivo en el que está la información de configuración básica
Puede haber otras fuentes
![Page 27: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/27.jpg)
ProcessEngine (3/3)
![Page 28: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/28.jpg)
RepositoryService
Métodos para trabajar con el repositorio Cada deployment es un conjunto de
recursos Cada recurso es un array de bytes
El ID es una mezcla entre una clave el nº de versión
deleteDeploymentCascade borra todas las instancias de un proceso
![Page 29: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/29.jpg)
ExecutionService
Se utiliza para comenzar una instancia de un proceso
Algunas de las alternativas son
![Page 30: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/30.jpg)
jPDLLenguaje para describir procesos
![Page 31: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/31.jpg)
Process
Elemento raíz que representa la definición de un proceso
Atributos Name Key Version
Elementos Description (0..1) Activities (1..*)
![Page 32: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/32.jpg)
Actividades de control de flujostart
Punto inicial de cualquier proceso Tiene que haber exactamente un punto inicial
Atributos Name
Elementos Transition (0..*)
![Page 33: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/33.jpg)
Actividades de control de flujostate (1/2)
Representa un estado de espera No hace nada hasta que llega un disparador
externo Atributos
Name
StateSecuence.jpdl.xmlStateSequence.java
![Page 34: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/34.jpg)
Actividades de control de flujostate (2/2)
StateChoice.jpdl.xmlStateChoice.java
![Page 35: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/35.jpg)
Actividades de control de flujodecision (1/3) - conditions
Realiza una evaluación automática para decidir el camino
Atributos Expr Lang
Comilla simple
DecisionConditions.jpdl.xmlDecisionConditions.java
![Page 36: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/36.jpg)
Actividades de control de flujodecision (2/3) - expressions
Realiza una evaluación automática para decidir el camino
Atributos Expr Lang
DecisionExpression.jpdl.xmlDecisionExpression.java
![Page 37: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/37.jpg)
Actividades de control de flujodecision (3/3) - handler
Realiza una evaluación automática para decidir el camino
Atributos Class
Cambiar según caso. e.g. jbpm.pruebas.ContentEvaluation
DecisionHandler.jpdl.xmlDecisionHandler.javaContentEvaluation.java
![Page 38: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/38.jpg)
Actividades de control de flujoconcurrency
Utiliza las actividades fork y join
Concurrency.jpdl.xmlConcurrency.java
![Page 39: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/39.jpg)
Actividades de control de flujoend (1/2)
Finaliza la ejecución de una instancia
![Page 40: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/40.jpg)
Actividades de control de flujoend (2/2) – end state
Sirve para finalizar una ejecución con diferentes estados Cancel Error
EndState.jpdl.xmlEndState.java
![Page 41: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/41.jpg)
Actividades de control de flujotask (1/3) - assignee
Crea una tarea para ser ejecutada por una persona
Atributos Type
Expression
TaskAssignee.jpdl.xmlTaskAssignee.javaOrder.java
![Page 42: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/42.jpg)
Actividades de control de flujotask (2/3) – candidate-groups
Es una tarea que alguiende un grupo puede llevar a cabo
TaskCandidates.jpdl.xmlTaskCandidates.java
![Page 43: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/43.jpg)
Actividades de control de flujotask (3/3) – assigment handler
Se utiliza para especificar programáticamente quién hace/puede hacer una tarea
Cambiar según caso
TaskAssigmentHandler.jpdl.xmlTaskAssigmentHandler.javaAssingTask.java
![Page 44: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/44.jpg)
Actividades de control de flujosub-process (1/3) - variables
Permite contener unos procesos dentro de otros
SubProcessDocument.jpdl.xmlSubProcessReview.jpdl.xmlSubProcessDocument.java
![Page 45: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/45.jpg)
Actividades de control de flujosub-process (2/3) - outcome
Permite contener unos procesos dentro de otros
![Page 46: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/46.jpg)
Actividades de control de flujosub-process (3/3) – outcome activity
Permite contener unos procesos dentro de otros
![Page 47: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/47.jpg)
Actividades de control de flujocustom
Permite “personalizar” el comportamiento delas actividades
Custom.jpdl.xmlCustom.javaPrintDots.java
![Page 48: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/48.jpg)
Actividades automáticasjava
Permite invocar métodos Java Atributos
Class Method Variable
Elementos Field Arg
Java.jpdl.xmlJava.javaSaludar.java
![Page 49: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/49.jpg)
Actividades automáticasscript - expression
Permite evaluar un script Atributos
Expr Lang Var
Elementos Text
ScriptExpression.jpdl.xmlScriptExpression.javaPerson.java
![Page 50: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/50.jpg)
Actividades automáticashql / sql
Permite hacer consultas a la base de datos
Atributos Var
Elementos Query Parameter
Hql.jpdl.xmlHql.java
![Page 51: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/51.jpg)
Actividades automáticasmail
Permite enviar correos electrónicos Atributos
Template Elementos
From To CC BCC Subject Text Html Attachments
![Page 52: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/52.jpg)
Eventos
Puntos en los que se lanzan eventos Para conseguirlo se implementa la interfaz
EventListener En una transición
En la entrada/salida de una actividad
EventListener.jpdl.xmlEventListener.javaLogListener.java
![Page 53: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/53.jpg)
Asincronismo
Por defecto, jBPM funciona de forma síncrona
Ventajas VS Desventajas Atributo continue de las actividades de los
procesos Sync Async
![Page 54: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/54.jpg)
PrácticoEjercicios
![Page 55: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/55.jpg)
Ejercicio 1
Crear un proceso de negocio con jPDL que contenga todos los diferentes tipos de elementos vistos en clase
Deberá tener al menos un evento controlado
Instalarlo en un entorno real• jBoss• MySQL• jBPM
Haga clic en el icono para agregar una imagen
![Page 56: jBPM (Modelado de procesos de negocio en entornos informáticos)](https://reader035.vdocuments.pub/reader035/viewer/2022062307/5571f9d149795991699081e7/html5/thumbnails/56.jpg)
Recursos
BPDM http://www.omg.org/spec/BPDM/
BPMN http://www.bpmn.org
jPDL http://jboss.org/jbossjbpm/jpdl/
WS-BPEL http://www.oasis-open.org/committees/tc_home.php?wg_abbr
ev=wsbpel XPDL
http://www.xpdl.org