jBPM

1,986 views

Published on

Presentación sobre jBPM y el modelado de procesos de negocio

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,986
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
97
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

jBPM

  1. 1. Ingeniería Dirigida por Modelos jBPM Modelado de procesos de negocio Vicente García Díaz – garciavicente@uniovi.es University of Oviedo, 2013 Model Driven Engineering Research Group
  2. 2. 2Tabla de contenidos jBPM1. Business Process Modeling2. Instalación de jBPM3. Instroducción a jBPM4. jPDL5. Ejercicios
  3. 3. 4Business Process Modeling ¿Qué es un proceso de negocio? • 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”
  4. 4. 5Business Process Modeling ¿Qué aspecto tiene un BPM? • Depende…
  5. 5. 6Business Process Modeling 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
  6. 6. 7Business Process Modeling 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
  7. 7. 8Business Process Modeling 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
  8. 8. 9Business Process Modeling Tecnologías BPM BPDML – 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 disponibles MOF M3 BPDM M2 Otro tipo de BPMN … modelos M1
  9. 9. Plataforma para ejecutar lenguajes de procesos de negocio
  10. 10. 11Instalación de jBPM Introducción a jBPM Process Virtual Machine
  11. 11. 12Instalación de jBPM 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 ▫ Configuración de Eclipse • Se necesita tener instalado el JDK
  12. 12. 13Instalación de jBPM Instalación de jBPM • http://sourceforge.net/projects/jbpm/files/ ▫ Versión 4.0 ▫ Jbpm-4.0.zip • Descomprimir la carpeta en una ruta del ordeandor
  13. 13. 14Instalación de jBPM Instalación de Eclipse • En este caso estamos trabajando con Eclipse Indigo
  14. 14. 15Instalación de jBPM Instalación del plugin para Eclipse (I) • Buscar la ruta de jbpm-4.0/gpd/jpbm-gpd-site.zip
  15. 15. 16Instalación de jBPM Instalación del plugin para Eclipse (II)
  16. 16. 17Instalación de jBPM Configuración del runtime jBPM en Eclipse
  17. 17. 18Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (I)
  18. 18. 19Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (II)
  19. 19. 20Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (III)
  20. 20. 22Introducción a jBPM Procesos e instancias Process Process instance Instance / Execution Execution Execution
  21. 21. 23Introducción a jBPM ProcessEngine (I) • Se necesita un ProcessEngine para obtener los diferentes servicios que proporciona jBPM • Para hacer pruebas con jBPM vamos a crear un proyecto Java y: ▫ Añadir un paquete jbpm.pruebas ▫ Añadir la librería de usuario jBPM4 ▫ Añadir la librería jUnit4 • Las librería se añaden desde la opción del menú propiedades del proyecto
  22. 22. 24Introducción a jBPM ProcessEngine (II) • Se necesita un ProcessEngine para obtener los diferentes servicios que proporciona jBPM
  23. 23. 25Introducción a jBPM ProcessEngine (III) • Jbpm.cfg.xml es el archivo en el que está la información de configuración básica • Puede haber otras fuentes
  24. 24. 26Introducción a jBPM ProcessEngine (IV)
  25. 25. 27Introducción a jBPM RepositoryService • Es uno de los servicios más importantes (trabajo con repositorio) • Cada deployment es un conjunto de recursos • Cada recurso es un array de bytes deleteDeploymentCascade borra todas las instancias de un proceso • El ID es una mezcla entre una clave y el nº de versión
  26. 26. 28Introducción a jBPM ExecutionService • Se utiliza para comenzar una instancia de un proceso • Algunas de las alternativas son:
  27. 27. Lenguaje para describir procesos de negocio
  28. 28. 30jPDL Process • Elemento raíz que representa la definición de un proceso • Atributos ▫ Name ▫ Key ▫ Version • Elementos ▫ Description (0..1) ▫ Activities (1..*)
  29. 29. 31jPDL Actividades de control de flujo Start • Punto inicial de cualquier proceso ▫ Tiene que haber exactamente un punto inicial • Atributos ▫ Name • Elementos ▫ Transition (0..*) Cambio de tipo de vista (gráfica / XML)
  30. 30. 32jPDL Actividades de control de flujo State – Definición gráfica • Representa un estado de espera ▫ No hace nada hasta que llega un disparador externo • Atributos ▫ Name StateSecuence.jpdl.xml
  31. 31. 33jPDL Actividades de control de flujo State – Código para recorrer el proceso Obtiene de la instancia del proceso una referencia al estado actual en ejecución Se envía una señal al estado actual en ejecución para actualizar a la instancia del proceso actual StateSequence.java
  32. 32. 34jPDL Actividades de control de flujo State (elección)EJ: Crear los dos archivos (.jpdl y .java)y hacer todo el recorrido pasando por la StateChoice.jpdl.xml StateSecuence.jpdl.xmltransición de “reject” StateChoice.java
  33. 33. 35jPDL Actividades de control de flujo Decision (conditions) • Realiza una evaluación automática para decidir el camino • Atributos ▫ Expr Comilla s simples ▫ LangEJ: Crear los dosarchivos (.jpdl y .java) yhacer todo el recorridollegando finalmente alestado “try again” StateSecuence.jpdl.xml DecisionConditions.jpdl.xml DecisionConditions.java
  34. 34. 36jPDL Actividades de control de flujo Decision (expressions) • Realiza una evaluación automática para decidir el camino • Atributos ▫ Expr ▫ Lang DecisionExpression.jpdl.xml DecisionExpression.java
  35. 35. 37jPDL Actividades de control de flujo Decision (handler) • Realiza una evaluación automática para decidir el camino Cambiar según caso. • Atributos e.g. jbpm.pruebas.ContentEvaluation ▫ ClassEJ: Crear los archivos yhacer todo el recorridollegando finalmente alestado “submitdocument” DecisionHandler.jpdl.xml DecisionHandler.java ContentEvaluation.java
  36. 36. 38jPDL Actividades de control de flujo Concurrency (I) • Utiliza las actividades fork y join Concurrency.jpdl.xml Concurrency.java
  37. 37. 39jPDL Actividades de control de flujo Concurrency (II) • Utiliza las actividades fork y joinEJ: Crear los archivos yhacer todo el recorridohasta el final Concurrency.jpdl.xml Concurrency.java
  38. 38. 40jPDL Actividades de control de flujo End • Finaliza la ejecución de una instancia
  39. 39. 41jPDL Actividades de control de flujo End • Sirve para finalizar una ejecución con diferentes estados ▫ Cancel ▫ ErrorEJ: Crear losarchivos y hacertodo el recorrido,finalizando con unacancelación ycomprobándolo EndState.jpdl.xml EndState.java
  40. 40. 42jPDL Actividades de control de flujo Task (assignee) (I) • Crea una tarea para ser ejecutada por una persona • Atributos (en pestaña Assigment) ▫ Type ▫ Expression TaskAssignee.jpdl.xml TaskAssignee.java Order.java
  41. 41. 43jPDL Actividades de control de flujo Task (assignee) (II) EJ: Crear los archivos y hacer todo el recorrido del proceso que aparece TaskAssignee.jpdl.xml (review es una tarea que TaskAssignee.java tiene que hacer alguien) Order.java
  42. 42. 44jPDL Actividades de control de flujo Task (candidate-groups) • Es una tarea que alguien de un grupo puede llevar a cabo TaskCandidates.jpdl.xml TaskCandidates.java
  43. 43. 45jPDL Actividades de control de flujo Task (assigment handler) (I) • Se utiliza para especificar programáticamente quién hace/puede hacer una tarea Cambiar según caso TaskAssigmentHandler.jpdl.xml TaskAssigmentHandler.java AssingTask.java
  44. 44. 46jPDL Actividades de control de flujo Task (assigment handler) (II) TaskAssigmentHandler.jpdl.xml TaskAssigmentHandler.java AssingTask.java
  45. 45. 47jPDL Actividades de control de flujo Sub-process (variables) (I) • Permite contener unos procesos dentro de otros SubProcessDocument.jpdl.xml SubProcessReview.jpdl.xml SubProcessDocument.java
  46. 46. 48jPDL Actividades de control de flujo Sub-process (variables) (II) EJ: Crear los archivos y hacer todo el recorrido destruyendo SubProcessDocument.jpdl.xml finalmente los dos procesos con SubProcessReview.jpdl.xml el método deleteDeployment SubProcessDocument.java
  47. 47. 49jPDL Actividades de control de flujo Sub-process (outcome) • Permite contener unos procesos dentro de otros
  48. 48. 50jPDL Actividades de control de flujo Sub-process (outcome activity) • Permite contener unos procesos dentro de otros
  49. 49. 51jPDL Actividades de control de flujo Custom • Permite “personalizar” el comportamiento de las actividades Custom.jpdl.xml Custom.java PrintDots.java
  50. 50. 52jPDL Actividades automáticas Java • Permite invocar métodos Java • Atributos ▫ Class ▫ Method ▫ Variable • Elementos ▫ Field ▫ Arg Java.jpdl.xml Java.java Saludar.java
  51. 51. 53jPDL Actividades automáticas Scripts • Permite evaluar un script • Atributos ▫ Expr ▫ Lang ▫ Var • Elementos ▫ Text ScriptExpression.jpdl.xml ScriptExpression.java Person.java
  52. 52. 54jPDL Actividades automáticas HQL / SQL • Permite hacer consultas a la base de datos • Atributos ▫ Var • Elementos ▫ Query ▫ Parameter EJ: Crear los archivos y verificar mediante un assert el número de tareas que hay guardadas en ese Hql.jpdl.xml momento Hql.java
  53. 53. 55jPDL Actividades automáticas Mail • Permite enviar correos electrónicos • Atributos ▫ Template • Elementos ▫ From ▫ To ▫ CC ▫ BCC ▫ Subject ▫ Text ▫ Html ▫ Attachments
  54. 54. 56jPDL 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 Implementa EJ: Crear los archivos y mostrar un org.jbpm.api.listener.EventListener mensaje de texto mediante un evento cuando: comienza y finaliza la EventListener.jpdl.xml actividad y cuando se ejecuta una EventListener.java transición a otra actividad LogListener.java
  55. 55. 57jPDL Asincronismo • Por defecto, jBPM funciona de forma síncrona • Ventajas VS Desventajas • Atributo continue de las actividades de los procesos ▫ Sync ▫ Async
  56. 56. Tarea 1Crear un proceso de negociocon jPDL que contenga almenos:- Inicio- Decisiones- Concurrencias- Tareas- Al menos un subproceso- Una tarea Java- Un script- Diferentes tipos de finales- Al menos un eventoOPCIONAL: Instalarlo en unentorno real utilizando:• jBoss• MySQL• jBPMHacer un caso de prueba querecorra el proceso de inicio a fin
  57. 57. 60Bibliografía • 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_abbrev=wsbpel • XPDL ▫ http://www.xpdl.org

×