SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?camunda services GmbH
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Sprint Review and Planning Template
Sprint Review and Planning TemplateSprint Review and Planning Template
Sprint Review and Planning TemplateMike Lally
 
Business Process Modeling with BPMN 2.0 - Second edition
Business Process Modeling with BPMN 2.0 - Second editionBusiness Process Modeling with BPMN 2.0 - Second edition
Business Process Modeling with BPMN 2.0 - Second editionGregor Polančič
 
Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Moutasm Tamimi
 
Agile project management
Agile project management Agile project management
Agile project management Bimba Pawar
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Waterfall to agile transition
Waterfall to agile transitionWaterfall to agile transition
Waterfall to agile transitionPonniA1
 
BPM Fundamentals: Develop Your Game Plan For BPM Success
BPM Fundamentals: Develop Your Game Plan For BPM SuccessBPM Fundamentals: Develop Your Game Plan For BPM Success
BPM Fundamentals: Develop Your Game Plan For BPM SuccessClay Richardson
 
Validación de Requerimientos
Validación de RequerimientosValidación de Requerimientos
Validación de RequerimientosUTPL UTPL
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber Knoldus Inc.
 

Was ist angesagt? (20)

Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?
 
Agile Metrics
Agile MetricsAgile Metrics
Agile Metrics
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Escalabilidad con SCRUM
Escalabilidad con SCRUMEscalabilidad con SCRUM
Escalabilidad con SCRUM
 
Scrum for Beginners
Scrum for BeginnersScrum for Beginners
Scrum for Beginners
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Sprint Review and Planning Template
Sprint Review and Planning TemplateSprint Review and Planning Template
Sprint Review and Planning Template
 
Business Process Modeling with BPMN 2.0 - Second edition
Business Process Modeling with BPMN 2.0 - Second editionBusiness Process Modeling with BPMN 2.0 - Second edition
Business Process Modeling with BPMN 2.0 - Second edition
 
Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3
 
Agile project management
Agile project management Agile project management
Agile project management
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Business Process Management Approach
Business Process Management Approach  Business Process Management Approach
Business Process Management Approach
 
Exposicion Scrum
Exposicion ScrumExposicion Scrum
Exposicion Scrum
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Waterfall to agile transition
Waterfall to agile transitionWaterfall to agile transition
Waterfall to agile transition
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
 
BPM Fundamentals: Develop Your Game Plan For BPM Success
BPM Fundamentals: Develop Your Game Plan For BPM SuccessBPM Fundamentals: Develop Your Game Plan For BPM Success
BPM Fundamentals: Develop Your Game Plan For BPM Success
 
Validación de Requerimientos
Validación de RequerimientosValidación de Requerimientos
Validación de Requerimientos
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 

Ähnlich wie jBPM

jBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software LibrejBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software LibrePablo 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.arMauricio (Salaboy) Salatino
 
.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
 
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.pptxAlexChavezAlaniz
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
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], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
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 LibreEQ SOFT EIRL
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUALguelo
 

Ähnlich wie 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
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería 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
 

Mehr von 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
 

Kürzlich hochgeladen

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 

Kürzlich hochgeladen (15)

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.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