Sunteți pe pagina 1din 56

Modelado de procesos de negocio en entornos informáticos

jBPM

Vicente García Díaz


(garciavicente@uniovi.es)
Juan Manuel Cueva Lovelle
MDE - OOTLAB Research Group
Noviembre 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 BPM
BPMN -- ¿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 BPM
XPDL -- ¿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 BPM
WS-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 BPM
BPDM -- 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
MOF M3
disponibles


BPDM M2


BPMN Otro tipo de modelosM1


Instalación de jBPM
 Plataforma para ejecutar lenguajes de procesos de negocio
Introducción a jBPM

Pro ce ss V irtu a lM a ch in e
Instalación en
producción
 Lainstalació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ón
Instalación del servidor de aplicaciones jBoss (1/2)

 JBoss es un servidor de aplicaciones


 http://sourceforge.net/projects/jboss/file
 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ón
Instalació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ón
Descarga de jBPM

 http://sourceforge.net/projects/jbpm/file

 Versión 4.0
 Jbpm-4.0.zip
Instalación
Instalació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ón
Instalació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ón
Instalació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
Instalación
Instalació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ón
Instalación de Eclipse

 Entorno de desarrollo Eclipse


 http://www.eclipse.org/downloads/
 Eclipse Classic 3.5.1

**Instalación
Instalación del plugin para Eclipse
**Instalación
Configuración del runtime jBPM para Eclipse
**Instalación
Añadir las librerías de jBPM al Build Path de Eclipse
Introducción a jBPM
 Plataforma para ejecutar lenguajes de procesos de negocio
Procesos e instancias
Pro ce ss In sta n ce
Pro ce ss in sta n ce / E xe cu tio n

E xe cu tio n E xe cu tio n
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

deleteDeploymentCascade b o rra to d a s la s in sta n cia s d e


 El ID es una mezcla entre una clave el nº
de versión
ExecutionService

 Se utiliza para comenzar una instancia de


un proceso
 Algunas de las alternativas son
jPDL
 Lenguaje 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 flujo
start

 Punto inicial de cualquier proceso


 Tiene que haber exactamente un punto
inicial
 Atributos
 Name
 Elementos
 Transition (0..*)

Actividades de control
de flujo
state (1/2)

 Representa un estado de espera


 No hace nada hasta que llega un disparador
externo
 Atributos
 Name

StateSecuence.jpdl.xml
StateSequence.java
Actividades de control
de flujo
state (2/2)

StateChoice.jpdl.xml
StateChoice.java
Actividades de control
de flujo
decision (1/3) - conditions

 Realiza una evaluación automática para


decidir el camino
 Atributos Comilla simple

 Expr
 Lang

DecisionConditions.jpdl.xml
DecisionConditions.java
Actividades de control
de flujo
decision (2/3) - expressions

 Realiza una evaluación automática para


decidir el camino
 Atributos
 Expr
 Lang

DecisionExpression.jpdl.xml
DecisionExpression.java
Actividades de control
de flujo
decision (3/3) - handler

 Realiza una evaluación automática para


decidir el camino Cambiar según caso.
e.g. jbpm.pruebas.ContentEvaluation

 Atributos
 Class

DecisionHandler.jpdl.xml
DecisionHandler.java
ContentEvaluation.java
Actividades de control
de flujo
concurrency

 Utiliza las actividades fork y join

Concurrency.jpdl.xml
Concurrency.java
Actividades de control
de flujo
end (1/2)

 Finaliza la ejecución de una instancia


Actividades de control
de flujo
end (2/2) – end state

 Sirve para finalizar una ejecución con


diferentes estados
 Cancel
 Error

EndState.jpdl.xml
EndState.java
Actividades de control
de flujo
task (1/3) - assignee

 Crea una tarea para ser ejecutada por una


persona
 Atributos
 Type

 Expression

TaskAssignee.jpdl.xml
TaskAssignee.java
Order.java
Actividades de control
de flujo
task (2/3) – candidate-groups

 Es una tarea que alguien


 de un grupo puede
 llevar a cabo

TaskCandidates.jpdl.xml
TaskCandidates.java
Actividades de control
de flujo
task (3/3) – assigment handler

 Se utiliza para especificar


programáticamente quién hace/puede
hacer una tarea

Cambiar según caso

TaskAssigmentHandler.jpdl.xml
TaskAssigmentHandler.java
AssingTask.java
Actividades de control
de flujo
sub-process (1/3) - variables
 Permite contener unos procesos dentro de
otros

SubProcessDocument.jpdl.xml
SubProcessReview.jpdl.xml
SubProcessDocument.java
Actividades de control
de flujo
sub-process (2/3) - outcome
 Permite contener unos procesos dentro de
otros
Actividades de control
de flujo
sub-process (3/3) – outcome activity
 Permite contener unos procesos dentro de
otros
Actividades de control
de flujo
custom

 Permite “personalizar”
el comportamiento de

las actividades

Custom.jpdl.xml
Custom.java
PrintDots.java
Actividades automáticas
java

 Permite invocar métodos Java


 Atributos
 Class
 Method
 Variable
 Elementos
 Field
 Arg


Java.jpdl.xml
Java.java
Saludar.java
Actividades automáticas
script - expression

 Permite evaluar un script


 Atributos
 Expr
 Lang
 Var
 Elementos
 Text

ScriptExpression.jpdl.xml
ScriptExpression.java
Person.java
Actividades automáticas
hql / sql

 Permite hacer consultas a la base de


datos
 Atributos
 Var
 Elementos
 Query
 Parameter

Hql.jpdl.xml
Hql.java
Actividades automáticas
mail

 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.xml
EventListener.java
LogListener.java
Asincronismo

 Por defecto, jBPM funciona de forma


síncrona
 Ventajas VS Desventajas
 Atributo continue de las actividades de los
procesos
 Sync
 Async


Práctico
 Ejercicios
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
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
 XPDL
 http://www.xpdl.org


S-ar putea să vă placă și