SlideShare una empresa de Scribd logo
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


Tabla de contenidos
                               jBPM
1. Business Process Modeling

2. Instalación de jBPM

3. Instroducción a jBPM

4. jPDL

5. Ejercicios
4

Business 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”
5

Business Process Modeling

    ¿Qué aspecto tiene un BPM?
 • Depende…
6

Business 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
7

Business 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
8

Business 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
9

Business 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
Plataforma para ejecutar lenguajes de procesos de negocio
11

Instalación de jBPM

    Introducción a jBPM




                          Process Virtual Machine
12

Instalació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
13

Instalació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
14

Instalación de jBPM

    Instalación de Eclipse
 • En este caso estamos trabajando con Eclipse
   Indigo
15

Instalación de jBPM

    Instalación del plugin para Eclipse (I)




 • Buscar la ruta de jbpm-4.0/gpd/jpbm-gpd-site.zip
16

Instalación de jBPM

    Instalación del plugin para Eclipse (II)
17

Instalación de jBPM

    Configuración del runtime jBPM en Eclipse
18

Instalación de jBPM

   Inserción de las librerías de jBPM en el Build Path (I)
19

Instalación de jBPM

   Inserción de las librerías de jBPM en el Build Path (II)
20

Instalación de jBPM

  Inserción de las librerías de jBPM en el Build Path (III)
22

Introducción a jBPM

    Procesos e instancias
                                                      Process
                      Process instance               Instance
                        / Execution

                                         Execution              Execution
23

Introducció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
24

Introducción a jBPM

    ProcessEngine (II)
 • Se necesita un ProcessEngine para obtener los
   diferentes servicios que proporciona jBPM
25

Introducció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
26

Introducción a jBPM

    ProcessEngine (IV)
27

Introducció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
28

Introducción a jBPM

    ExecutionService
 • Se utiliza para comenzar una instancia de un
   proceso
 • Algunas de las alternativas son:
Lenguaje para describir procesos de negocio
30

jPDL

       Process
 • Elemento raíz que representa la definición de un proceso
 • Atributos
       ▫ Name
       ▫ Key
       ▫ Version
 • Elementos
       ▫ Description (0..1)
       ▫ Activities (1..*)
31

jPDL                                      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)
32

jPDL                                    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
33

jPDL                          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
34

jPDL                                         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.xml
transición de “reject”                                                         StateChoice.java
35

jPDL                             Actividades de control de flujo



       Decision (conditions)
  • Realiza una evaluación automática para decidir el camino
  • Atributos
       ▫ Expr                                                      Comilla s simples

       ▫ Lang
EJ: Crear los dos
archivos (.jpdl y .java) y
hacer todo el recorrido
llegando finalmente al
estado “try again”




                                                               StateSecuence.jpdl.xml
                                                             DecisionConditions.jpdl.xml
                                                             DecisionConditions.java
36

jPDL                            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
37

jPDL                                       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


       ▫ Class
EJ: Crear los archivos y
hacer todo el recorrido
llegando finalmente al
estado “submit
document”




                                                                             DecisionHandler.jpdl.xml
                                                                             DecisionHandler.java
                                                                             ContentEvaluation.java
38

jPDL                                Actividades de control de flujo



       Concurrency (I)
 • Utiliza las actividades fork y join




                                                                      Concurrency.jpdl.xml
                                                                      Concurrency.java
39

jPDL                                Actividades de control de flujo



       Concurrency (II)
 • Utiliza las actividades fork y join
EJ: Crear los archivos y
hacer todo el recorrido
hasta el final




                                                                      Concurrency.jpdl.xml
                                                                      Concurrency.java
40

jPDL                              Actividades de control de flujo



       End
 • Finaliza la ejecución de una instancia
41

jPDL                             Actividades de control de flujo



       End
 • Sirve para finalizar una ejecución con diferentes estados
       ▫ Cancel
       ▫ Error
EJ: Crear los
archivos y hacer
todo el recorrido,
finalizando con una
cancelación y
comprobándolo




                                                                   EndState.jpdl.xml
                                                                   EndState.java
42

jPDL                            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
43

jPDL                              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
44

jPDL                          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
45

jPDL                            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
46

jPDL                        Actividades de control de flujo



       Task (assigment handler) (II)




                                                 TaskAssigmentHandler.jpdl.xml
                                                 TaskAssigmentHandler.java
                                                 AssingTask.java
47

jPDL                           Actividades de control de flujo



       Sub-process (variables) (I)
 • Permite contener unos procesos dentro de otros




                                                    SubProcessDocument.jpdl.xml
                                                    SubProcessReview.jpdl.xml
                                                    SubProcessDocument.java
48

jPDL                               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
49

jPDL                           Actividades de control de flujo



       Sub-process (outcome)
 • Permite contener unos procesos dentro de otros
50

jPDL                           Actividades de control de flujo



       Sub-process (outcome activity)
 • Permite contener unos procesos dentro de otros
51

jPDL                        Actividades de control de flujo



       Custom
 • Permite “personalizar”
 el comportamiento de
 las actividades




                                                              Custom.jpdl.xml
                                                              Custom.java
                                                              PrintDots.java
52

jPDL                              Actividades automáticas



       Java
 • Permite invocar métodos Java
 • Atributos
       ▫ Class
       ▫ Method
       ▫ Variable
 • Elementos
       ▫ Field
       ▫ Arg

                                                            Java.jpdl.xml
                                                            Java.java
                                                            Saludar.java
53

jPDL                           Actividades automáticas



       Scripts
 • Permite evaluar un script
 • Atributos
       ▫ Expr
       ▫ Lang
       ▫ Var
 • Elementos
       ▫ Text



                                                         ScriptExpression.jpdl.xml
                                                         ScriptExpression.java
                                                         Person.java
54

jPDL                                  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
55

jPDL                             Actividades automáticas



       Mail
 • Permite enviar correos electrónicos
 • Atributos
       ▫ Template
 • Elementos
       ▫   From
       ▫   To
       ▫   CC
       ▫   BCC
       ▫   Subject
       ▫   Text
       ▫   Html
       ▫   Attachments
56

jPDL

       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
57

jPDL

       Asincronismo
 • Por defecto, jBPM funciona de forma síncrona

 • Ventajas VS Desventajas

 • Atributo continue de las actividades de los procesos
       ▫ Sync
       ▫ Async
Tarea 1


Crear un proceso de negocio
con jPDL que contenga al
menos:
- Inicio
- Decisiones
- Concurrencias
- Tareas
- Al menos un subproceso
- Una tarea Java
- Un script
- Diferentes tipos de finales
- Al menos un evento

OPCIONAL: Instalarlo en un
entorno real utilizando:
• jBoss
• MySQL
• jBPM

Hacer un caso de prueba que
recorra el proceso de inicio a fin
60


Bibliografí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

Más contenido relacionado

La actualidad más candente

전략적 사고 : 2W1H
전략적 사고 : 2W1H전략적 사고 : 2W1H
전략적 사고 : 2W1H
JUNHEEKIM27
 
Ngrx slides
Ngrx slidesNgrx slides
Ngrx slides
Christoffer Noring
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
정민 안
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
beom kyun choi
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginners
Spin Lai
 
Introducción a Wiremock
Introducción a WiremockIntroducción a Wiremock
Introducción a Wiremock
Jose Ortiz
 
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
Amazon Web Services Korea
 
20180721 code defragment
20180721 code defragment20180721 code defragment
20180721 code defragment
Chiwon Song
 
About Programmer 2021
About Programmer 2021About Programmer 2021
About Programmer 2021
Kenu, GwangNam Heo
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8  Enterprise Java Beans (EJB)Lecture 8  Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
Fahad Golra
 
Android camera basics
Android camera basicsAndroid camera basics
Android camera basics
Choulhyouc Lee
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
Karen Broughton-Mabbitt
 
만화경 앱 개발기(iOS)
만화경 앱 개발기(iOS)만화경 앱 개발기(iOS)
만화경 앱 개발기(iOS)
ssuserb942d2
 
Apache Kafka® Delivers a Single Source of Truth for The New York Times
Apache Kafka® Delivers a Single Source of Truth for The New York TimesApache Kafka® Delivers a Single Source of Truth for The New York Times
Apache Kafka® Delivers a Single Source of Truth for The New York Times
confluent
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
Adam Paxton
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
선협 이
 
WebLogic FAQs
WebLogic FAQsWebLogic FAQs
WebLogic FAQs
Amit Sharma
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
Jason Harmon
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
Sriram Angajala
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
Massimo Bonanni
 

La actualidad más candente (20)

전략적 사고 : 2W1H
전략적 사고 : 2W1H전략적 사고 : 2W1H
전략적 사고 : 2W1H
 
Ngrx slides
Ngrx slidesNgrx slides
Ngrx slides
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginners
 
Introducción a Wiremock
Introducción a WiremockIntroducción a Wiremock
Introducción a Wiremock
 
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
 
20180721 code defragment
20180721 code defragment20180721 code defragment
20180721 code defragment
 
About Programmer 2021
About Programmer 2021About Programmer 2021
About Programmer 2021
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8  Enterprise Java Beans (EJB)Lecture 8  Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
 
Android camera basics
Android camera basicsAndroid camera basics
Android camera basics
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
 
만화경 앱 개발기(iOS)
만화경 앱 개발기(iOS)만화경 앱 개발기(iOS)
만화경 앱 개발기(iOS)
 
Apache Kafka® Delivers a Single Source of Truth for The New York Times
Apache Kafka® Delivers a Single Source of Truth for The New York TimesApache Kafka® Delivers a Single Source of Truth for The New York Times
Apache Kafka® Delivers a Single Source of Truth for The New York Times
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
WebLogic FAQs
WebLogic FAQsWebLogic FAQs
WebLogic FAQs
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 

Similar a jBPM

jBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software LibrejBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software Libre
Pablo Sepulveda P.
 
jBPM5 Introduction - Spanish - Extended Version - www.jbug.com.ar
jBPM5 Introduction - Spanish - Extended Version  - www.jbug.com.arjBPM5 Introduction - Spanish - Extended Version  - www.jbug.com.ar
jBPM5 Introduction - Spanish - Extended Version - www.jbug.com.ar
Mauricio (Salaboy) Salatino
 
Paralela10
Paralela10Paralela10
Paralela10
Abraham Zamudio
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup
 
IBM BPM
IBM BPM IBM BPM
IBM BPM
Sura Gonzalez
 
Introducción a jBPM 6
Introducción a jBPM 6Introducción a jBPM 6
Introducción a jBPM 6
Pablo Sepulveda P.
 
Generación de código sobre plataformas específicas de desarrollo de aplicacio...
Generación de código sobre plataformas específicas de desarrollo de aplicacio...Generación de código sobre plataformas específicas de desarrollo de aplicacio...
Generación de código sobre plataformas específicas de desarrollo de aplicacio...
Jose Manuel García Valladolid
 
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptxPROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
AlexChavezAlaniz
 
20.seminario ventas bpm
20.seminario ventas bpm20.seminario ventas bpm
20.seminario ventas bpm
Rodolfo Castillo
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
mat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
nelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
Marilupe
 
Clase 11
Clase 11Clase 11
Clase 11
Julieta M
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
142918
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
samantha
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
erikapoh
 
Modelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software LibreModelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software Libre
EQ SOFT EIRL
 
BPM METODOLOGIA
BPM METODOLOGIABPM METODOLOGIA
BPM METODOLOGIA
gustavotarqui
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUAL
guelo
 

Similar a jBPM (20)

jBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software LibrejBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software Libre
 
jBPM5 Introduction - Spanish - Extended Version - www.jbug.com.ar
jBPM5 Introduction - Spanish - Extended Version  - www.jbug.com.arjBPM5 Introduction - Spanish - Extended Version  - www.jbug.com.ar
jBPM5 Introduction - Spanish - Extended Version - www.jbug.com.ar
 
Paralela10
Paralela10Paralela10
Paralela10
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
IBM BPM
IBM BPM IBM BPM
IBM BPM
 
Introducción a jBPM 6
Introducción a jBPM 6Introducción a jBPM 6
Introducción a jBPM 6
 
Generación de código sobre plataformas específicas de desarrollo de aplicacio...
Generación de código sobre plataformas específicas de desarrollo de aplicacio...Generación de código sobre plataformas específicas de desarrollo de aplicacio...
Generación de código sobre plataformas específicas de desarrollo de aplicacio...
 
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptxPROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
PROCESOS DE DESARROLLO DE SOFTWARE_G.pptx
 
20.seminario ventas bpm
20.seminario ventas bpm20.seminario ventas bpm
20.seminario ventas bpm
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Modelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software LibreModelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software Libre
 
BPM METODOLOGIA
BPM METODOLOGIABPM METODOLOGIA
BPM METODOLOGIA
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUAL
 

Más de Vicente García Díaz

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
Vicente García Díaz
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
Vicente García Díaz
 
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
Vicente García Díaz
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
Vicente García Díaz
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
Vicente García Díaz
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
Vicente García Díaz
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
Vicente García Díaz
 
Iniciación a la realidad aumentada
Iniciación a la realidad aumentadaIniciación a la realidad aumentada
Iniciación a la realidad aumentada
Vicente García Díaz
 
Iniciación a ARToolKit
Iniciación a ARToolKitIniciación a ARToolKit
Iniciación a ARToolKit
Vicente García Díaz
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
Vicente García Díaz
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
Vicente García Díaz
 
LaTeX
LaTeXLaTeX
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
Vicente García Díaz
 
Árboles
ÁrbolesÁrboles
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
Vicente García Díaz
 
Grafos
GrafosGrafos

Más de Vicente García Díaz (16)

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
 
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
 
Iniciación a la realidad aumentada
Iniciación a la realidad aumentadaIniciación a la realidad aumentada
Iniciación a la realidad aumentada
 
Iniciación a ARToolKit
Iniciación a ARToolKitIniciación a ARToolKit
Iniciación a ARToolKit
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
 
LaTeX
LaTeXLaTeX
LaTeX
 
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
 
Árboles
ÁrbolesÁrboles
Árboles
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Grafos
GrafosGrafos
Grafos
 

Último

MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 

Último (20)

MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 

jBPM

  • 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 Tabla de contenidos jBPM 1. Business Process Modeling 2. Instalación de jBPM 3. Instroducción a jBPM 4. jPDL 5. Ejercicios
  • 3.
  • 4. 4 Business 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”
  • 5. 5 Business Process Modeling ¿Qué aspecto tiene un BPM? • Depende…
  • 6. 6 Business 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
  • 7. 7 Business 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
  • 8. 8 Business 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
  • 9. 9 Business 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
  • 10. Plataforma para ejecutar lenguajes de procesos de negocio
  • 11. 11 Instalación de jBPM Introducción a jBPM Process Virtual Machine
  • 12. 12 Instalació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
  • 13. 13 Instalació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
  • 14. 14 Instalación de jBPM Instalación de Eclipse • En este caso estamos trabajando con Eclipse Indigo
  • 15. 15 Instalación de jBPM Instalación del plugin para Eclipse (I) • Buscar la ruta de jbpm-4.0/gpd/jpbm-gpd-site.zip
  • 16. 16 Instalación de jBPM Instalación del plugin para Eclipse (II)
  • 17. 17 Instalación de jBPM Configuración del runtime jBPM en Eclipse
  • 18. 18 Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (I)
  • 19. 19 Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (II)
  • 20. 20 Instalación de jBPM Inserción de las librerías de jBPM en el Build Path (III)
  • 21.
  • 22. 22 Introducción a jBPM Procesos e instancias Process Process instance Instance / Execution Execution Execution
  • 23. 23 Introducció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
  • 24. 24 Introducción a jBPM ProcessEngine (II) • Se necesita un ProcessEngine para obtener los diferentes servicios que proporciona jBPM
  • 25. 25 Introducció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
  • 26. 26 Introducción a jBPM ProcessEngine (IV)
  • 27. 27 Introducció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
  • 28. 28 Introducción a jBPM ExecutionService • Se utiliza para comenzar una instancia de un proceso • Algunas de las alternativas son:
  • 29. Lenguaje para describir procesos de negocio
  • 30. 30 jPDL Process • Elemento raíz que representa la definición de un proceso • Atributos ▫ Name ▫ Key ▫ Version • Elementos ▫ Description (0..1) ▫ Activities (1..*)
  • 31. 31 jPDL 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)
  • 32. 32 jPDL 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
  • 33. 33 jPDL 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
  • 34. 34 jPDL 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.xml transición de “reject” StateChoice.java
  • 35. 35 jPDL Actividades de control de flujo Decision (conditions) • Realiza una evaluación automática para decidir el camino • Atributos ▫ Expr Comilla s simples ▫ Lang EJ: Crear los dos archivos (.jpdl y .java) y hacer todo el recorrido llegando finalmente al estado “try again” StateSecuence.jpdl.xml DecisionConditions.jpdl.xml DecisionConditions.java
  • 36. 36 jPDL 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
  • 37. 37 jPDL 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 ▫ Class EJ: Crear los archivos y hacer todo el recorrido llegando finalmente al estado “submit document” DecisionHandler.jpdl.xml DecisionHandler.java ContentEvaluation.java
  • 38. 38 jPDL Actividades de control de flujo Concurrency (I) • Utiliza las actividades fork y join Concurrency.jpdl.xml Concurrency.java
  • 39. 39 jPDL Actividades de control de flujo Concurrency (II) • Utiliza las actividades fork y join EJ: Crear los archivos y hacer todo el recorrido hasta el final Concurrency.jpdl.xml Concurrency.java
  • 40. 40 jPDL Actividades de control de flujo End • Finaliza la ejecución de una instancia
  • 41. 41 jPDL Actividades de control de flujo End • Sirve para finalizar una ejecución con diferentes estados ▫ Cancel ▫ Error EJ: Crear los archivos y hacer todo el recorrido, finalizando con una cancelación y comprobándolo EndState.jpdl.xml EndState.java
  • 42. 42 jPDL 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
  • 43. 43 jPDL 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
  • 44. 44 jPDL 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
  • 45. 45 jPDL 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
  • 46. 46 jPDL Actividades de control de flujo Task (assigment handler) (II) TaskAssigmentHandler.jpdl.xml TaskAssigmentHandler.java AssingTask.java
  • 47. 47 jPDL Actividades de control de flujo Sub-process (variables) (I) • Permite contener unos procesos dentro de otros SubProcessDocument.jpdl.xml SubProcessReview.jpdl.xml SubProcessDocument.java
  • 48. 48 jPDL 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
  • 49. 49 jPDL Actividades de control de flujo Sub-process (outcome) • Permite contener unos procesos dentro de otros
  • 50. 50 jPDL Actividades de control de flujo Sub-process (outcome activity) • Permite contener unos procesos dentro de otros
  • 51. 51 jPDL Actividades de control de flujo Custom • Permite “personalizar” el comportamiento de las actividades Custom.jpdl.xml Custom.java PrintDots.java
  • 52. 52 jPDL Actividades automáticas Java • Permite invocar métodos Java • Atributos ▫ Class ▫ Method ▫ Variable • Elementos ▫ Field ▫ Arg Java.jpdl.xml Java.java Saludar.java
  • 53. 53 jPDL Actividades automáticas Scripts • Permite evaluar un script • Atributos ▫ Expr ▫ Lang ▫ Var • Elementos ▫ Text ScriptExpression.jpdl.xml ScriptExpression.java Person.java
  • 54. 54 jPDL 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
  • 55. 55 jPDL Actividades automáticas Mail • Permite enviar correos electrónicos • Atributos ▫ Template • Elementos ▫ From ▫ To ▫ CC ▫ BCC ▫ Subject ▫ Text ▫ Html ▫ Attachments
  • 56. 56 jPDL 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
  • 57. 57 jPDL Asincronismo • Por defecto, jBPM funciona de forma síncrona • Ventajas VS Desventajas • Atributo continue de las actividades de los procesos ▫ Sync ▫ Async
  • 58.
  • 59. Tarea 1 Crear un proceso de negocio con jPDL que contenga al menos: - Inicio - Decisiones - Concurrencias - Tareas - Al menos un subproceso - Una tarea Java - Un script - Diferentes tipos de finales - Al menos un evento OPCIONAL: Instalarlo en un entorno real utilizando: • jBoss • MySQL • jBPM Hacer un caso de prueba que recorra el proceso de inicio a fin
  • 60. 60 Bibliografí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