Your SlideShare is downloading. ×

jBPM

1,213

Published on

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

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,213
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
77
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 2Tabla de contenidos jBPM1. Business Process Modeling2. Instalación de jBPM3. Instroducción a jBPM4. jPDL5. Ejercicios
  • 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. 5Business Process Modeling ¿Qué aspecto tiene un BPM? • Depende…
  • 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. 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. 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. 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. Plataforma para ejecutar lenguajes de procesos de negocio
  • 10. 11Instalación de jBPM Introducción a jBPM Process Virtual Machine
  • 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. 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. 14Instalación de jBPM Instalación de Eclipse • En este caso estamos trabajando con Eclipse Indigo
  • 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. 16Instalación de jBPM Instalación del plugin para Eclipse (II)
  • 16. 17Instalación de jBPM Configuración del runtime jBPM en Eclipse
  • 17. 18Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (I)
  • 18. 19Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (II)
  • 19. 20Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (III)
  • 20. 22Introducción a jBPM Procesos e instancias Process Process instance Instance / Execution Execution Execution
  • 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. 24Introducción a jBPM ProcessEngine (II) • Se necesita un ProcessEngine para obtener los diferentes servicios que proporciona jBPM
  • 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. 26Introducción a jBPM ProcessEngine (IV)
  • 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. 28Introducción a jBPM ExecutionService • Se utiliza para comenzar una instancia de un proceso • Algunas de las alternativas son:
  • 27. Lenguaje para describir procesos de negocio
  • 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. 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. 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. 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. 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. 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. 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. 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. 38jPDL Actividades de control de flujo Concurrency (I) • Utiliza las actividades fork y join Concurrency.jpdl.xml Concurrency.java
  • 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. 40jPDL Actividades de control de flujo End • Finaliza la ejecución de una instancia
  • 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. 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. 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. 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. 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. 46jPDL Actividades de control de flujo Task (assigment handler) (II) TaskAssigmentHandler.jpdl.xml TaskAssigmentHandler.java AssingTask.java
  • 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. 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. 49jPDL Actividades de control de flujo Sub-process (outcome) • Permite contener unos procesos dentro de otros
  • 48. 50jPDL Actividades de control de flujo Sub-process (outcome activity) • Permite contener unos procesos dentro de otros
  • 49. 51jPDL Actividades de control de flujo Custom • Permite “personalizar” el comportamiento de las actividades Custom.jpdl.xml Custom.java PrintDots.java
  • 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. 53jPDL Actividades automáticas Scripts • Permite evaluar un script • Atributos ▫ Expr ▫ Lang ▫ Var • Elementos ▫ Text ScriptExpression.jpdl.xml ScriptExpression.java Person.java
  • 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. 55jPDL Actividades automáticas Mail • Permite enviar correos electrónicos • Atributos ▫ Template • Elementos ▫ From ▫ To ▫ CC ▫ BCC ▫ Subject ▫ Text ▫ Html ▫ Attachments
  • 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. 57jPDL Asincronismo • Por defecto, jBPM funciona de forma síncrona • Ventajas VS Desventajas • Atributo continue de las actividades de los procesos ▫ Sync ▫ Async
  • 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. 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

×