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

Post on 30-Jun-2015

1.474 views 1 download

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)

jBPMModelado de procesos de negocio en entornos informáticos

Vicente García Díaz (garciavicente@uniovi.es)

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