jBPM (Modelado de procesos de negocio en entornos informáticos)
-
Upload
vicente-garcia-diaz -
Category
Documents
-
view
1.481 -
download
1
description
Transcript of jBPM (Modelado de procesos de negocio en entornos informáticos)
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
BPM (Business Process Modeling)Introducción
¿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”
¿Qué aspecto tiene un BPM? Eso depende….
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
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
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
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 …
Instalación de jBPMPlataforma para ejecutar lenguajes de procesos de negocio
Introducción a jBPM
Process Virtual Machine
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
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
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
**InstalaciónDescarga de jBPM
http://sourceforge.net/projects/jbpm/files/ Versión 4.0 Jbpm-4.0.zip
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
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
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
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
InstalaciónInstalación de Eclipse
Entorno de desarrollo Eclipse http://www.eclipse.org/downloads/
Eclipse Classic 3.5.1
**InstalaciónInstalación del plugin para Eclipse
**InstalaciónConfiguración del runtime jBPM para Eclipse
**InstalaciónAñadir las librerías de jBPM al Build Path de Eclipse
Introducción a jBPMPlataforma para ejecutar lenguajes de procesos de negocio
Procesos e instancias
Process instance / Execution
Process Instanc
e
Execution
Execution
ProcessEngine (1/3)
Se necesita un ProcessEngine para obtener los diferentes servicios
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
ProcessEngine (3/3)
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
ExecutionService
Se utiliza para comenzar una instancia de un proceso
Algunas de las alternativas son
jPDLLenguaje para describir procesos
Process
Elemento raíz que representa la definición de un proceso
Atributos Name Key Version
Elementos Description (0..1) Activities (1..*)
Actividades de control de flujostart
Punto inicial de cualquier proceso Tiene que haber exactamente un punto inicial
Atributos Name
Elementos Transition (0..*)
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
Actividades de control de flujostate (2/2)
StateChoice.jpdl.xmlStateChoice.java
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
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
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
Actividades de control de flujoconcurrency
Utiliza las actividades fork y join
Concurrency.jpdl.xmlConcurrency.java
Actividades de control de flujoend (1/2)
Finaliza la ejecución de una instancia
Actividades de control de flujoend (2/2) – end state
Sirve para finalizar una ejecución con diferentes estados Cancel Error
EndState.jpdl.xmlEndState.java
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
Actividades de control de flujotask (2/3) – candidate-groups
Es una tarea que alguiende un grupo puede llevar a cabo
TaskCandidates.jpdl.xmlTaskCandidates.java
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
Actividades de control de flujosub-process (1/3) - variables
Permite contener unos procesos dentro de otros
SubProcessDocument.jpdl.xmlSubProcessReview.jpdl.xmlSubProcessDocument.java
Actividades de control de flujosub-process (2/3) - outcome
Permite contener unos procesos dentro de otros
Actividades de control de flujosub-process (3/3) – outcome activity
Permite contener unos procesos dentro de otros
Actividades de control de flujocustom
Permite “personalizar” el comportamiento delas actividades
Custom.jpdl.xmlCustom.javaPrintDots.java
Actividades automáticasjava
Permite invocar métodos Java Atributos
Class Method Variable
Elementos Field Arg
Java.jpdl.xmlJava.javaSaludar.java
Actividades automáticasscript - expression
Permite evaluar un script Atributos
Expr Lang Var
Elementos Text
ScriptExpression.jpdl.xmlScriptExpression.javaPerson.java
Actividades automáticashql / sql
Permite hacer consultas a la base de datos
Atributos Var
Elementos Query Parameter
Hql.jpdl.xmlHql.java
Actividades automáticasmail
Permite enviar correos electrónicos Atributos
Template Elementos
From To CC BCC Subject Text Html Attachments
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
Asincronismo
Por defecto, jBPM funciona de forma síncrona
Ventajas VS Desventajas Atributo continue de las actividades de los
procesos Sync Async
PrácticoEjercicios
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
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