SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
10th April 2015
Introducing Workflow
Architectures
USING GRAILS
Rubén Mondéjar
Diputació de Tarragona
Rubén Mondéjar
Diputació de Tarragona
About Me
twitter : @Ruuben4
homepage : http://deim.urv.cat/~ruben.mondejar
Working
● Groovy & Grails
● Dev-Friendly BPM
● ITIL v3 / ISO 20000
Teaching / Research
● Software Architectures
● Web Development
● Distributed Systems
[BPM RoundTable Tarragona]
Outline
(1) From BPM to Grails
(2) Dev-Friendly BPM
(3) Extending BPMS
(4) Injecting BPM
From BPM to Grails
A TRUE STORY
1
“Everything looks interesting until you do it.
Then you find it's just another job.”
Terry Pratchett
Moving Pictures
Discworld 10th Novel
Quote
Motivation
● Starting point: building software architectures
which involves business processes
● Applications perform the expected behaviour,
but implemented with different strategies
● For example, how to handle the data-flow or to
address integration
Processes
Processes
Collection of related events, activities, and
decisions, that involve a number of actors
and resources, and that collectively lead to an
outcome that is of value to an organization or
its customers
Dumas, La Rosa, Mendling, Reijers, 2013
Key Concepts
● BPM (Business Process Management) is
a discipline to automate organizational
processes
● BPMS (... System) is a software
architecture composed by different
components that allow to build and
integrate BPM and applications
● BPMN (... Notation) is a standard
collection of rules and graphical shapes
for drawing process models
BPM
BPMNBPMS
3-Tier Architecture
Client Tier
Logic Tier
Data Tier
SQL Search
Engine
NoSQL (...)
(...)Web
Framework
Web
Framework
(...) (...)(...)
3-Tier Architecture
SQL Search
Engine
NoSQL (...)
(...)Web
Framework
Web
Framework
Web
Framework
Workflow
System
(...) (...)(...)
Client Tier
Logic Tier
Data Tier
App
Scenario
App
App
App
Application
DB
Proc
Proc
Proc
Proc
Proc
Workflow
Web Framework Workflow System
App
Scenario
App
App
App
Application
Proc
Proc
Proc
Proc
Proc
Workflow
CONTROL FLOW
Web Framework
Control Flow
● Defines what to do and when
● A successor list among activities and events
● Main information represented in process models
A
B
C
D
Models
● Graphical representation of a business process
● Consists of simple diagrams constructed from a
limited set of element shapes
Models
Activity
EventSequence flow
Gateway
BPMN
Events
Activities
● Principle: not all tasks can be automated
● First step, identify each type
Automated User
21
Manual
3
Tasks
Automated
Outside
BPMN markers
Inside
Interactive
Vacation Example
Vacation Example
start > flow1 > task1 > flow2 > xor > flow3 > task2 > flow 4 > end1
BPMN.XML
<definitions ...>
<process id="example" name="Vacation Example">
<startEvent id="start"/>
<sequenceFlow id="flow1" sourceRef="start" targetRef="task1"/>
<userTask id="task1" name="Handle vacation request"
bpmn:formKey="/vacation/handle" bpmn:candidateGroups="managers">
</userTask>
<sequenceFlow id="flow2" sourceRef="task1" targetRef="xor"/>
<exclusiveGateway id="xor"/>
<sequenceFlow id="flow3" sourceRef="xor" targetRef="task2">
<conditionExpression>${approved}</conditionExpression>
</sequenceFlow>
<serviceTask id="task2" name="Send confirmation e-mail"/>
<sequenceFlow id="flow4" sourceRef="task2" targetRef="end1"/>
<endEvent id="end1" />
(...)
</process>
</definitions>
Solutions
1. Pure BPMN: designed from the ground up to
follow the spec to the letter
• jBPM, Activiti, Camunda
2. Adapted BPMN: use a BPMN skin but rely on
internal representation
• BonitaSoft, Bizagi, Intalio
3. Non BPMN: proprietary language and semantics
• BPMOne, YAWL, GrailsFlow
Solutions
Pure BPMN Grails Plugins
● jBPM Plugin
● Activiti Plugin
● Camunda Plugin
Plugin Usage
1. Quick start :
grails create-process com.greach.TestProcess
http://plexiti.github.io/camunda-grails-plugin/guide/usage.html#script-create-process
2. Easy configuration :
plugins { compile ":camunda:0.4.0" }
http://plexiti.github.io/camunda-grails-plugin/guide/configuration.html
3. Nice testing :
grails test-app integration: com.greach.TestProcess
http://plexiti.github.io/camunda-grails-plugin/guide/testing.html
Developer-Friendly
BUSINESS PROCESS MANAGEMENT
2
Motivation
if ( large and complex and monolithic ) {
}
Dev-Friendly BPM
● Leaves behind the Zero-Code Myth
○ Previous and extended BPM solutions
○ Sandboxing of processes in a suite
● Fits with MicroService Architectures
○ Enable workflow execution into existing applications
○ Embedded or remote execution modes
Workflow Engine
Embedded
(local services)
Remote
(remote services)
Engine Services
Workflow
Engine
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
(...)
Repository Service
● Naturally, it is the first service that we need
● Manages deployments and process definitions
(BPMN)
● It can also activate or suspend specific deployments
or process definitions
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [BPMN] [Process Definition] [Deployment]
Runtime Service
● Deals with starting new process instances
● Starts a new process instance in the latest version of
its process definition
● Retrieves all the visible variables from the given
execution
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Versions] [Process Instance] [Variables]
Task Service
● Querying and modifying tasks assigned to the
participants : users or groups
● Claiming a task for a specific participant
● Saving or completing a task, typically after filling the
fields of a form
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Participants] [Claim] [Save] [Complete]
Management Service
● Allows metadata information retrieval
● Exposes query capabilities and management operations
for jobs
● Used by the engine to handle timers, asynchronous
continuations, or delayed suspension/activation
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Metadata] [Jobs] [Timers]
Identify Service
● Manage users and groups, but does not do any
checking at runtime
● Tasks could be assigned to any user, but the engine
does not verify if that user is known to the system
● Synchronization mechanisms are needed
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Users] [Groups] [Synchronization]
History Service
● Exposes query capabilities to access historical data
● Log level configuration allows the engine to keep the
necessary data, like which tasks were performed by
whom
● Allows finding all historical variable values from
any given process in each of its executed tasks
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Historical data] [Execution logs] [Variables]
Form Service
● Start form is displayed to the user before the
process instance is created
● Task form is displayed when a user has to work with
an assigned task
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Start form] [Task form] [Form key] [Form data]
Form Service
● A form key is used to find the view that has to be
rendered
RepositoryService
RuntimeService ManagementService HistoryService
TaskService IdentityService FormService
Keywords: [Start form] [Task form] [Form key] [Form data]
● Alternatively, a form data can be
defined in the BPMN 2.0 process
definition using a proper extension
Extending BPMS
OCELOT PROJECT
3
Let’s Build
Components
● Modeling tool: creates and modifies executable
workflow models
● Execution Engine: instantiates executable
workflow models
● Worklist Handler: or “inbox”, offers tasks to
workflow participants
● Administration tools: manage, monitor, and
automate the entire workflow system
Architecture
Developer-Friendly BPM
Architecture
Developer-Friendly BPM
MicroServices Architecture
Implementation
Ocelot BPMS
Modeling Tool (MT)
● Based on BPMN.io and Grails
● REST API : Export BPMN models to XML / SVG
● Main goal : customization
● Custom Palette
○ Different frequency-based profiles
○ User reconfiguration
● Custom Tasks
○ Create new task types
○ Phone calls, Signatures, Approvals,
Archiving, Feedback Survey, etc.
eXecution Environment (XE)
● Based on Camunda and Grails
● REST Client : Importing Models (from diff. env.)
● Main goal : upper layer
○ Workflow Service : Unifying and extending the
process engine services with aggregated methods
○ REST API : allowing remote access
● Render forms
○ Scaffolded : formData
○ External : formKey
Demo Time
Ocelot XE
(5 minutes)
Source : https://github.com/Ocelot-BPMS/
Injecting BPM
ABOUT INTEGRATION
4
Conclusions
● Dev-Friendly BPM : nicest way to build
workflow architectures in Grails
● Extending BPMS : implementing workflow
applications or microservices with Grails
● Integration with BPM : … wait! explicitly or
implicitly?
Explicit BPM
External Services
● The aim of integration is to reach the other side of BPMS
● The aim of integration is to reach the other side of BPMS
● Detailed Knowledge + Behaviour Modification
Explicit BPM
External Services
param:taskId
callbackUrl
Implicit BPM
● What about taking advantage of the MVC pattern to
acquire knowledge and change the behaviour in
runtime?
Example
Pet Store (MVC Application, UML)1
Success
Page
Item List
Page
Show
Page
search
shopping
cart
add item
checkoutcheckout
Order
Home
Page
Find
Item
Confirm
Cart
Process
Order
Book
Balance
Save
Purchase
3
Handle
Purchase
Register
Customer
Payment?
customer?
init completed
done
verified
wrong
regular
new
Purchase Workflow (Business Process Model, BPMN 2.0)
cancelled
Accounting (MVC Application, UML)2
Book
Customer
newcustomer
manage
books
Main
Page Show
Page
List
Page
Create
Customer
Edit
Book
Example
Book
Balance
Pet Store (MVC Application, UML)
Save
Purchase
1 Accounting (MVC Application, UML)2
3
Handle
Purchase
Register
Customer
Payment?
customer?
init completed
done
verified
wrong
regular
new
Success
Page
Item Book
Customer
List
Page
Show
Page
search
shopping
cart
add item
checkoutcheckout
Order
newcustomer
manage
books
Purchase Workflow (Business Process Model, BPMN 2.0)
Home
Page
Main
Page Show
Page
List
Page
Create
Customer
Edit
Book
Find
Item
Confirm
Cart
Process
Order
A
trigger
B
render C
find
sets
D
perform
E
perform
cancelled
PurchaseWorkflow {
in PetStore :
During ”process” action from Order, trigger ”init” event
After ”Save Purchase” task, render ”success” view
in Accounting :
Before ”Book Balance” task, find ”customer” domain by ”nin”
and sets ”exists” attribute
After ”Book Balance” task, perform ”update” action from Book
After ”Register Customer” task,
perform ”create” action from Customer
}
DSL
A
B
C
D
E
Workflow Weaving
Code
MVC
Framework
Container
Instance
Weaver
Proxies
Reflection
Capabilities
AOP
Facilities
Implicit BPM
Plugin
Implicit BPM Back-End
Workflow
Engine
Weaver
Repository
Workflow
Database
Weaver
Coordinator
Platform Manager
DSL
Interpreter
BPMN
Parser
A
Application (A)
B
C
E
D
MicroServices
Architecture
Architecture
More Info
● Website : http://implicit-bpm.sf.net
● Source code : http://sf.net/p/implicit-bpm/code
● Research paper :
Implicit BPM: a Business Process Platform for
Transparent Workflow Weaving. Rubén Mondéjar, Pedro
García-López, Carles Pairot, and Enric Brull. In: BPM, pp.
168–183 (2014)
10th April 2015
THANKS!
Rubén Mondéjar
Diputació de Tarragona
Rubén Mondéjar
Diputació de Tarragona

Más contenido relacionado

La actualidad más candente

Grails Plugin Best Practices
Grails Plugin Best PracticesGrails Plugin Best Practices
Grails Plugin Best PracticesBurt Beckwith
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafIoan Eugen Stan
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in GrailsPeter Ledbrook
 
GR8Conf 2011: Grails, how to plug in
GR8Conf 2011: Grails, how to plug inGR8Conf 2011: Grails, how to plug in
GR8Conf 2011: Grails, how to plug inGR8Conf
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Eric Barroca
 
Dropwizard Introduction
Dropwizard IntroductionDropwizard Introduction
Dropwizard IntroductionAnthony Chen
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Stephen Chin
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and FriendsYun Zhi Lin
 
What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?Nuxeo
 
Dropwizard and Groovy
Dropwizard and GroovyDropwizard and Groovy
Dropwizard and Groovytomaslin
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Ryan Cuprak
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
 
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"IT Event
 
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping TechnologiesWeaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping TechnologiesVMware Tanzu
 
Where is my cache? Architectural patterns for caching microservices by example
Where is my cache? Architectural patterns for caching microservices by exampleWhere is my cache? Architectural patterns for caching microservices by example
Where is my cache? Architectural patterns for caching microservices by exampleRafał Leszko
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"IT Event
 

La actualidad más candente (20)

Grails Plugin Best Practices
Grails Plugin Best PracticesGrails Plugin Best Practices
Grails Plugin Best Practices
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache Karaf
 
Next.js with drupal, the good parts
Next.js with drupal, the good partsNext.js with drupal, the good parts
Next.js with drupal, the good parts
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
 
GR8Conf 2011: Grails, how to plug in
GR8Conf 2011: Grails, how to plug inGR8Conf 2011: Grails, how to plug in
GR8Conf 2011: Grails, how to plug in
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06
 
Dropwizard Introduction
Dropwizard IntroductionDropwizard Introduction
Dropwizard Introduction
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
 
OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta
 
What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?
 
Dropwizard and Groovy
Dropwizard and GroovyDropwizard and Groovy
Dropwizard and Groovy
 
Java 9 and Project Jigsaw
Java 9 and Project JigsawJava 9 and Project Jigsaw
Java 9 and Project Jigsaw
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
 
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping TechnologiesWeaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
Weaving Through the Mesh: Making Sense of Istio and Overlapping Technologies
 
Where is my cache? Architectural patterns for caching microservices by example
Where is my cache? Architectural patterns for caching microservices by exampleWhere is my cache? Architectural patterns for caching microservices by example
Where is my cache? Architectural patterns for caching microservices by example
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 

Destacado

Scalable web-based workflow platform
Scalable web-based workflow platformScalable web-based workflow platform
Scalable web-based workflow platformAshutosh Bijoor
 
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoSample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoTomek Kaczanowski
 
BPMN and Design Patterns for Engineering Social BPM Solutions
BPMN and Design Patterns for Engineering Social BPM SolutionsBPMN and Design Patterns for Engineering Social BPM Solutions
BPMN and Design Patterns for Engineering Social BPM SolutionsMarco Brambilla
 
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...Execution Semantics of BPMN through MDE Web Application Generation, using BPM...
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...Marco Brambilla
 
Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine camunda services GmbH
 
A BPMN-based notation for SocialBPM. BPMN workshop 2011
A BPMN-based notation for SocialBPM. BPMN workshop 2011A BPMN-based notation for SocialBPM. BPMN workshop 2011
A BPMN-based notation for SocialBPM. BPMN workshop 2011Marco Brambilla
 

Destacado (9)

Scalable web-based workflow platform
Scalable web-based workflow platformScalable web-based workflow platform
Scalable web-based workflow platform
 
Simplify BPM with Decision Management
Simplify BPM with Decision ManagementSimplify BPM with Decision Management
Simplify BPM with Decision Management
 
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoSample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and Mockito
 
BPMN and Design Patterns for Engineering Social BPM Solutions
BPMN and Design Patterns for Engineering Social BPM SolutionsBPMN and Design Patterns for Engineering Social BPM Solutions
BPMN and Design Patterns for Engineering Social BPM Solutions
 
SFScon16 - Edmund Schöpf: "Camunda BPM in Banking"
SFScon16 - Edmund Schöpf: "Camunda BPM in Banking"SFScon16 - Edmund Schöpf: "Camunda BPM in Banking"
SFScon16 - Edmund Schöpf: "Camunda BPM in Banking"
 
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...Execution Semantics of BPMN through MDE Web Application Generation, using BPM...
Execution Semantics of BPMN through MDE Web Application Generation, using BPM...
 
Java workflow engines
Java workflow enginesJava workflow engines
Java workflow engines
 
Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine Zeebe - a Microservice Orchestration Engine
Zeebe - a Microservice Orchestration Engine
 
A BPMN-based notation for SocialBPM. BPMN workshop 2011
A BPMN-based notation for SocialBPM. BPMN workshop 2011A BPMN-based notation for SocialBPM. BPMN workshop 2011
A BPMN-based notation for SocialBPM. BPMN workshop 2011
 

Similar a Introducing Workflow Architectures Using Grails - Greach 2015

Report from the trenches: Using SOA Integrated Gateway
Report from the trenches: Using SOA Integrated GatewayReport from the trenches: Using SOA Integrated Gateway
Report from the trenches: Using SOA Integrated GatewayLonneke Dikmans
 
Jdk.io cloud native business automation
Jdk.io cloud native business automationJdk.io cloud native business automation
Jdk.io cloud native business automationRyan Dawson
 
bpmEdge - Enterprise Process Automation Ecosystem
bpmEdge - Enterprise Process Automation EcosystembpmEdge - Enterprise Process Automation Ecosystem
bpmEdge - Enterprise Process Automation EcosystemPERICENT
 
jBPM5 (Argentina workshop)
jBPM5 (Argentina workshop)jBPM5 (Argentina workshop)
jBPM5 (Argentina workshop)Kris Verlaenen
 
WSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2
 
Fredrik knalstad 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik knalstad   10 ways to trigger orchestrator runbooks in the it jungleFredrik knalstad   10 ways to trigger orchestrator runbooks in the it jungle
Fredrik knalstad 10 ways to trigger orchestrator runbooks in the it junglePer Riis
 
10 ways to trigger runbooks from Orchestrator
10 ways to trigger runbooks from Orchestrator10 ways to trigger runbooks from Orchestrator
10 ways to trigger runbooks from OrchestratorFredrik Knalstad
 
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungleFredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungleNordic Infrastructure Conference
 
Copy of Silk performer - KT.pptx
Copy of Silk performer - KT.pptxCopy of Silk performer - KT.pptx
Copy of Silk performer - KT.pptxssuser20fcbe
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflowNorikkon, LLC.
 
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...WSO2
 
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorialMike Marin
 
Denver Atlassian Community 5-minute Plugins
Denver Atlassian Community 5-minute PluginsDenver Atlassian Community 5-minute Plugins
Denver Atlassian Community 5-minute Pluginsdenveraug
 
Lawson ProcessFlow
Lawson ProcessFlowLawson ProcessFlow
Lawson ProcessFlowNogalis Inc
 
WF_in_retail_banking_enterprise_systems
WF_in_retail_banking_enterprise_systemsWF_in_retail_banking_enterprise_systems
WF_in_retail_banking_enterprise_systemsOleh Zheleznyak
 
jBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesjBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesKris Verlaenen
 
Automate workflows with leading open-source BPM
Automate workflows with leading open-source BPMAutomate workflows with leading open-source BPM
Automate workflows with leading open-source BPMKris Verlaenen
 

Similar a Introducing Workflow Architectures Using Grails - Greach 2015 (20)

Report from the trenches: Using SOA Integrated Gateway
Report from the trenches: Using SOA Integrated GatewayReport from the trenches: Using SOA Integrated Gateway
Report from the trenches: Using SOA Integrated Gateway
 
Jdk.io cloud native business automation
Jdk.io cloud native business automationJdk.io cloud native business automation
Jdk.io cloud native business automation
 
What's new in jBPM6
What's new in jBPM6What's new in jBPM6
What's new in jBPM6
 
Pdf mbs workflow
Pdf mbs workflowPdf mbs workflow
Pdf mbs workflow
 
bpmEdge - Enterprise Process Automation Ecosystem
bpmEdge - Enterprise Process Automation EcosystembpmEdge - Enterprise Process Automation Ecosystem
bpmEdge - Enterprise Process Automation Ecosystem
 
jBPM5 (Argentina workshop)
jBPM5 (Argentina workshop)jBPM5 (Argentina workshop)
jBPM5 (Argentina workshop)
 
WSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product Overview
 
Fredrik knalstad 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik knalstad   10 ways to trigger orchestrator runbooks in the it jungleFredrik knalstad   10 ways to trigger orchestrator runbooks in the it jungle
Fredrik knalstad 10 ways to trigger orchestrator runbooks in the it jungle
 
10 ways to trigger runbooks from Orchestrator
10 ways to trigger runbooks from Orchestrator10 ways to trigger runbooks from Orchestrator
10 ways to trigger runbooks from Orchestrator
 
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungleFredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungle
Fredrik Knalstad - 10 ways to trigger orchestrator runbooks in the it jungle
 
172298
172298172298
172298
 
Copy of Silk performer - KT.pptx
Copy of Silk performer - KT.pptxCopy of Silk performer - KT.pptx
Copy of Silk performer - KT.pptx
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflow
 
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
 
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
 
Denver Atlassian Community 5-minute Plugins
Denver Atlassian Community 5-minute PluginsDenver Atlassian Community 5-minute Plugins
Denver Atlassian Community 5-minute Plugins
 
Lawson ProcessFlow
Lawson ProcessFlowLawson ProcessFlow
Lawson ProcessFlow
 
WF_in_retail_banking_enterprise_systems
WF_in_retail_banking_enterprise_systemsWF_in_retail_banking_enterprise_systems
WF_in_retail_banking_enterprise_systems
 
jBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesjBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processes
 
Automate workflows with leading open-source BPM
Automate workflows with leading open-source BPMAutomate workflows with leading open-source BPM
Automate workflows with leading open-source BPM
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Último (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Introducing Workflow Architectures Using Grails - Greach 2015

  • 1. 10th April 2015 Introducing Workflow Architectures USING GRAILS Rubén Mondéjar Diputació de Tarragona Rubén Mondéjar Diputació de Tarragona
  • 2. About Me twitter : @Ruuben4 homepage : http://deim.urv.cat/~ruben.mondejar Working ● Groovy & Grails ● Dev-Friendly BPM ● ITIL v3 / ISO 20000 Teaching / Research ● Software Architectures ● Web Development ● Distributed Systems [BPM RoundTable Tarragona]
  • 3. Outline (1) From BPM to Grails (2) Dev-Friendly BPM (3) Extending BPMS (4) Injecting BPM
  • 4. From BPM to Grails A TRUE STORY 1
  • 5. “Everything looks interesting until you do it. Then you find it's just another job.” Terry Pratchett Moving Pictures Discworld 10th Novel Quote
  • 6. Motivation ● Starting point: building software architectures which involves business processes ● Applications perform the expected behaviour, but implemented with different strategies ● For example, how to handle the data-flow or to address integration
  • 8. Processes Collection of related events, activities, and decisions, that involve a number of actors and resources, and that collectively lead to an outcome that is of value to an organization or its customers Dumas, La Rosa, Mendling, Reijers, 2013
  • 9. Key Concepts ● BPM (Business Process Management) is a discipline to automate organizational processes ● BPMS (... System) is a software architecture composed by different components that allow to build and integrate BPM and applications ● BPMN (... Notation) is a standard collection of rules and graphical shapes for drawing process models BPM BPMNBPMS
  • 10. 3-Tier Architecture Client Tier Logic Tier Data Tier SQL Search Engine NoSQL (...) (...)Web Framework Web Framework (...) (...)(...)
  • 11. 3-Tier Architecture SQL Search Engine NoSQL (...) (...)Web Framework Web Framework Web Framework Workflow System (...) (...)(...) Client Tier Logic Tier Data Tier
  • 14. Control Flow ● Defines what to do and when ● A successor list among activities and events ● Main information represented in process models A B C D
  • 15. Models ● Graphical representation of a business process ● Consists of simple diagrams constructed from a limited set of element shapes
  • 18. Activities ● Principle: not all tasks can be automated ● First step, identify each type Automated User 21 Manual 3
  • 21. Vacation Example start > flow1 > task1 > flow2 > xor > flow3 > task2 > flow 4 > end1
  • 22. BPMN.XML <definitions ...> <process id="example" name="Vacation Example"> <startEvent id="start"/> <sequenceFlow id="flow1" sourceRef="start" targetRef="task1"/> <userTask id="task1" name="Handle vacation request" bpmn:formKey="/vacation/handle" bpmn:candidateGroups="managers"> </userTask> <sequenceFlow id="flow2" sourceRef="task1" targetRef="xor"/> <exclusiveGateway id="xor"/> <sequenceFlow id="flow3" sourceRef="xor" targetRef="task2"> <conditionExpression>${approved}</conditionExpression> </sequenceFlow> <serviceTask id="task2" name="Send confirmation e-mail"/> <sequenceFlow id="flow4" sourceRef="task2" targetRef="end1"/> <endEvent id="end1" /> (...) </process> </definitions>
  • 23. Solutions 1. Pure BPMN: designed from the ground up to follow the spec to the letter • jBPM, Activiti, Camunda 2. Adapted BPMN: use a BPMN skin but rely on internal representation • BonitaSoft, Bizagi, Intalio 3. Non BPMN: proprietary language and semantics • BPMOne, YAWL, GrailsFlow
  • 24. Solutions Pure BPMN Grails Plugins ● jBPM Plugin ● Activiti Plugin ● Camunda Plugin
  • 25. Plugin Usage 1. Quick start : grails create-process com.greach.TestProcess http://plexiti.github.io/camunda-grails-plugin/guide/usage.html#script-create-process 2. Easy configuration : plugins { compile ":camunda:0.4.0" } http://plexiti.github.io/camunda-grails-plugin/guide/configuration.html 3. Nice testing : grails test-app integration: com.greach.TestProcess http://plexiti.github.io/camunda-grails-plugin/guide/testing.html
  • 27. Motivation if ( large and complex and monolithic ) { }
  • 28. Dev-Friendly BPM ● Leaves behind the Zero-Code Myth ○ Previous and extended BPM solutions ○ Sandboxing of processes in a suite ● Fits with MicroService Architectures ○ Enable workflow execution into existing applications ○ Embedded or remote execution modes
  • 30. Engine Services Workflow Engine RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService (...)
  • 31. Repository Service ● Naturally, it is the first service that we need ● Manages deployments and process definitions (BPMN) ● It can also activate or suspend specific deployments or process definitions RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [BPMN] [Process Definition] [Deployment]
  • 32. Runtime Service ● Deals with starting new process instances ● Starts a new process instance in the latest version of its process definition ● Retrieves all the visible variables from the given execution RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Versions] [Process Instance] [Variables]
  • 33. Task Service ● Querying and modifying tasks assigned to the participants : users or groups ● Claiming a task for a specific participant ● Saving or completing a task, typically after filling the fields of a form RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Participants] [Claim] [Save] [Complete]
  • 34. Management Service ● Allows metadata information retrieval ● Exposes query capabilities and management operations for jobs ● Used by the engine to handle timers, asynchronous continuations, or delayed suspension/activation RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Metadata] [Jobs] [Timers]
  • 35. Identify Service ● Manage users and groups, but does not do any checking at runtime ● Tasks could be assigned to any user, but the engine does not verify if that user is known to the system ● Synchronization mechanisms are needed RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Users] [Groups] [Synchronization]
  • 36. History Service ● Exposes query capabilities to access historical data ● Log level configuration allows the engine to keep the necessary data, like which tasks were performed by whom ● Allows finding all historical variable values from any given process in each of its executed tasks RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Historical data] [Execution logs] [Variables]
  • 37. Form Service ● Start form is displayed to the user before the process instance is created ● Task form is displayed when a user has to work with an assigned task RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Start form] [Task form] [Form key] [Form data]
  • 38. Form Service ● A form key is used to find the view that has to be rendered RepositoryService RuntimeService ManagementService HistoryService TaskService IdentityService FormService Keywords: [Start form] [Task form] [Form key] [Form data] ● Alternatively, a form data can be defined in the BPMN 2.0 process definition using a proper extension
  • 41. Components ● Modeling tool: creates and modifies executable workflow models ● Execution Engine: instantiates executable workflow models ● Worklist Handler: or “inbox”, offers tasks to workflow participants ● Administration tools: manage, monitor, and automate the entire workflow system
  • 46. Modeling Tool (MT) ● Based on BPMN.io and Grails ● REST API : Export BPMN models to XML / SVG ● Main goal : customization ● Custom Palette ○ Different frequency-based profiles ○ User reconfiguration ● Custom Tasks ○ Create new task types ○ Phone calls, Signatures, Approvals, Archiving, Feedback Survey, etc.
  • 47. eXecution Environment (XE) ● Based on Camunda and Grails ● REST Client : Importing Models (from diff. env.) ● Main goal : upper layer ○ Workflow Service : Unifying and extending the process engine services with aggregated methods ○ REST API : allowing remote access ● Render forms ○ Scaffolded : formData ○ External : formKey
  • 48. Demo Time Ocelot XE (5 minutes) Source : https://github.com/Ocelot-BPMS/
  • 50. Conclusions ● Dev-Friendly BPM : nicest way to build workflow architectures in Grails ● Extending BPMS : implementing workflow applications or microservices with Grails ● Integration with BPM : … wait! explicitly or implicitly?
  • 51. Explicit BPM External Services ● The aim of integration is to reach the other side of BPMS
  • 52. ● The aim of integration is to reach the other side of BPMS ● Detailed Knowledge + Behaviour Modification Explicit BPM External Services param:taskId callbackUrl
  • 53. Implicit BPM ● What about taking advantage of the MVC pattern to acquire knowledge and change the behaviour in runtime?
  • 54. Example Pet Store (MVC Application, UML)1 Success Page Item List Page Show Page search shopping cart add item checkoutcheckout Order Home Page Find Item Confirm Cart Process Order Book Balance Save Purchase 3 Handle Purchase Register Customer Payment? customer? init completed done verified wrong regular new Purchase Workflow (Business Process Model, BPMN 2.0) cancelled Accounting (MVC Application, UML)2 Book Customer newcustomer manage books Main Page Show Page List Page Create Customer Edit Book
  • 55. Example Book Balance Pet Store (MVC Application, UML) Save Purchase 1 Accounting (MVC Application, UML)2 3 Handle Purchase Register Customer Payment? customer? init completed done verified wrong regular new Success Page Item Book Customer List Page Show Page search shopping cart add item checkoutcheckout Order newcustomer manage books Purchase Workflow (Business Process Model, BPMN 2.0) Home Page Main Page Show Page List Page Create Customer Edit Book Find Item Confirm Cart Process Order A trigger B render C find sets D perform E perform cancelled
  • 56. PurchaseWorkflow { in PetStore : During ”process” action from Order, trigger ”init” event After ”Save Purchase” task, render ”success” view in Accounting : Before ”Book Balance” task, find ”customer” domain by ”nin” and sets ”exists” attribute After ”Book Balance” task, perform ”update” action from Book After ”Register Customer” task, perform ”create” action from Customer } DSL A B C D E Workflow Weaving
  • 57. Code MVC Framework Container Instance Weaver Proxies Reflection Capabilities AOP Facilities Implicit BPM Plugin Implicit BPM Back-End Workflow Engine Weaver Repository Workflow Database Weaver Coordinator Platform Manager DSL Interpreter BPMN Parser A Application (A) B C E D MicroServices Architecture Architecture
  • 58. More Info ● Website : http://implicit-bpm.sf.net ● Source code : http://sf.net/p/implicit-bpm/code ● Research paper : Implicit BPM: a Business Process Platform for Transparent Workflow Weaving. Rubén Mondéjar, Pedro García-López, Carles Pairot, and Enric Brull. In: BPM, pp. 168–183 (2014)
  • 59. 10th April 2015 THANKS! Rubén Mondéjar Diputació de Tarragona Rubén Mondéjar Diputació de Tarragona