Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Automate workflows with leading open-source BPM
1. 1
Automate Workflows With
Leading Open Source BPM
Prakash Aradyha
Product Management Director, Red Hat
Dr Kris Verlaenen,
Principal Software Engineer, Lead BPM Architect
March 12, 2014
2. 2
Topics
● JBoss BPM Suite 6.0 Overview
● Core features of BPMS 6
● Under the hood of BPMS 6
● BPM in Action – Detailed demo
6. 6
JBoss BRMS Vs BPM Suite
JBoss BRMS 6.0JBoss BRMS 6.0
JBoss BPM Suite 6.0
Target - Realtime Decision Management
Target:
Process Automation
Service Enabled Orchestration
Intelligent Business Operations
9. 9
Core Services: Execution Server
Client
Applications
ESBs
Partner
Services
Mobile
Clients
● Centralized Execution Server
● REST, JMS and Native Java
Interfaces out of the box
● Native Java Client that
interfaces through REST
● Clusterable, Scalable Server
●
10. 10
Core Services: Development Repository
● GIT Based – Universally
accepted
● Enterprise features like tagging,
branching etc
● No repository migration hassles
● Browse any GIT repository
● Import and Export
● Indexed searching
13. 13
Core Services: Integration with FSW
Switchyard
● Defined SY task in Designer
● Direct invocation of SY
services from Process
● SY can instantiate a business
process
● SY can signal a process
● SY can execute a task
25. 25
Deploy: Packaging, Deployment Repository
● Maven Packages
● Build – Creates a kjar – Includes all assets – process
definitions, classes, forms, images etc
● Deploy – Deploy to a Maven repo
● Applications can pull from Maven Repo
● Dependency management with other libraries – Share
libraries
● Integrate with SRAMP – Governance in multi stage
● Configure Maven Repo location
27. 27
Migrating from 5.3 to 6
● Things to Consider in migration
● New development repository – JCR to GIT
● New Packaging – PKG to Maven JARs
● New APIs – Knowledge APIs to KIE
● Legacy KIE APIs are still supported
● All assets – process defs, DRLs, Decision Tables,
models work as is
40. 40
New Core Features
● RuntimeManager:
● Session + TaskService management
● CDI integration
● Execution server
● Remote API
● REST, JMS
● Deployment using kjar
41. 41
RuntimeManager
● Access to KieSession and TaskService
● Hides setup complexity
● Manages sessions
● Singleton session
● Session per request
● Session per process instance
Kie
Session
Task
Service
RuntimeManager
42. 42
RuntimeManager Example
RuntimeManager manager =
RuntimeManagerFactory.Factory.get()
.newPerProcessInstanceRuntimeManager(environment);
RuntimeEngine runtime =
manager.getRuntimeEngine(
ProcessInstanceIdContext.get(id));
KieSession ksession = runtime.getKieSession();
// do something here, e.g.
ksession.startProcess(“org.jbpm.hello”);
manager.disposeRuntimeEngine(engine);
manager.close();
44. 44
jBPM Execution Server
● Execute process and task commands
● Through UI
● Remote API
● Clustered environment
● High Availability
● Load balancing
46. 46
Remoting
● KieSession and TaskService
● Possibly more later
● Uses RuntimeManager
● Using REST or JMS
● JAXB + JSON
● Remote client using existing interfaces
47. 47
REST API
http://server.address:port/{application-id}/rest/
runtime
{id: [a-zA-Z0-9-]+} // deploymentId
process
{id: [a-zA-Z0-9-]+}
start * start process [POST]
instance
{id: d} * process instance details [GET]
signal * signal event [POST]
abort * abort process instance [POST]
signal
{id: [a-zA-Z0-9-]+} * signal event [POST]
workitem
{id: d}
complete * complete work item [POST]
abort * abort work item [POST]
execute * execute the given command [POST]
task
{id: d+} * task details [GET]
activate * activate task
claim * claim task [POST]
// etc..
execute * execute the given command [POST]
query * task query