jBPM (Modelado de procesos de negocio en entornos informáticos)

56
jBPM Modelado de procesos de negocio en entornos informáticos Vicente García Díaz ([email protected]) Juan Manuel Cueva Lovelle MDE-OOTLAB Research Group Noviembre de 2010

description

Introducción a jBPM para el Máster en Ingeniería Web de la Universidad de Oviedo

Transcript of jBPM (Modelado de procesos de negocio en entornos informáticos)

Page 1: 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

Page 2: jBPM (Modelado de procesos de negocio en entornos informáticos)

BPM (Business Process Modeling)Introducción

Page 3: jBPM (Modelado de procesos de negocio en entornos informáticos)

¿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)

¿Qué aspecto tiene un BPM? Eso depende….

Page 5: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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)

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)

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)

Instalación de jBPMPlataforma para ejecutar lenguajes de procesos de negocio

Page 10: jBPM (Modelado de procesos de negocio en entornos informáticos)

Introducción a jBPM

Process Virtual Machine

Page 11: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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)

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)

**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)

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)

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)

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)

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)

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)

**InstalaciónInstalación del plugin para Eclipse

Page 21: jBPM (Modelado de procesos de negocio en entornos informáticos)

**InstalaciónConfiguración del runtime jBPM para Eclipse

Page 22: jBPM (Modelado de procesos de negocio en entornos informáticos)

**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)

Introducción a jBPMPlataforma para ejecutar lenguajes de procesos de negocio

Page 24: jBPM (Modelado de procesos de negocio en entornos informáticos)

Procesos e instancias

Process instance / Execution

Process Instanc

e

Execution

Execution

Page 25: jBPM (Modelado de procesos de negocio en entornos informáticos)

ProcessEngine (1/3)

Se necesita un ProcessEngine para obtener los diferentes servicios

Page 26: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

ProcessEngine (3/3)

Page 28: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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)

jPDLLenguaje para describir procesos

Page 31: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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)

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)

Actividades de control de flujostate (2/2)

StateChoice.jpdl.xmlStateChoice.java

Page 35: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

PrácticoEjercicios

Page 55: jBPM (Modelado de procesos de negocio en entornos informáticos)

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)

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