JBoss jBPM
PV207 Anton Giertli
Agenda
- Challenges
- What is jBPM
- Components
- Business use cases
- Live demo
BPM Challenges
- Visibility
Difficult to know what work is where and what stage
- Agility
It takes too long to adapt the process as business neeeds change
- Consistency
Different people route work differently
BPM Solution
-
Business experts creates a model of the business process
-
BPMS automates the process - drives the work according to the model
-
BPMS tracks the status of work, provides dashboards and reports that ensure visibility
How does the jBPM come into the picture?
- Open source BPMS
- OOTB integration with Business Rule Engine
- Provides support through the whole BPM lifecycle

JBoss jBPM components
Modelling & Deployment
Web Based Data Modeler
Modelling & Deployment
Web Based Data Modeler - generates POJO behind the scenes
public class Bugzilla implements java.io.Serializable
{
static final long serialVersionUID = 1L;
private java.lang.String title;
private java.lang.String description;
private java.lang.Boolean qa_ack;
private java.lang.Boolean pm_ack;
public Bugzilla()
{
}
//getters & setters
Modelling & Deployment
Process Designer - Eclipse plugin
Modelling & Deployment
Process Designer - Web Based
Based on the same open source project (Oryx) as Signavio!
Modelling & Deployment
Web Based Form Modeler
Design vs Runtime
Embeddeble into external frontend application
Modelling & Deployment
- Asset repository

- Deployment repository

Execution
-
Persistent - wide support of known DB Systems - MS SQL, Oracle, PostgreSQL,...
- Transactional - process will rollback to latest saved state
- Two execution modes
- Embedded - jBPM libraries are packaged within your app
- Remote - processes are executed in the out of the box execution server which exposes integration points - REST, CDI, JMS..
Execution of domain specific logic - Work Items
-
Work Item Definition - WHAT - input/output parameter
[
"name" : "Email",
"parameters" : [
"From" : new StringDataType(),
"To" : new StringDataType(),
"Subject" : new StringDataType(),
"Body" : new StringDataType()
],
"displayName" : "Email",
"icon" : "defaultemailicon.gif"
]
- Work Item Handler - HOW - Java Implementation
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
try {
Email email = createEmail(workItem, connection);
SendHtml.sendHtml(email);
manager.completeWorkItem(workItem.getId(), null);
} catch (Exception e) {
handleException(e);
}}
Business Activity Monitoring
-
Pluggable DataSource - DB or CSV
-
Pluggable queries - SQL or CS
Business Activity Monitoring
Real Customer Use Case - Electronic payment provider
-
Problem - outdated systems, legacy applications difficult to update, duplication of critical data
- Goal - Reduce the turnaround time for changes, improve visibility of KPI
- Solution
- Saved resources - reduction of manual processes, increase of productivity, 360° visibility to management
- One module focusing on procurement processes provides better oversight on spending by the org
- Focus on core business activities instead of repetitive manual work
- Quicker on-boarding of merchants and servicing customers made the new business capabilities come to market quickly
Real Customer Use Case - Financial Institution
-
Context
- Serve over 4,000 business units within its family of companies, spanning 20,000+ accounts at nearly 200 banks.
- Manage billions of dollars collected from customers and paid to vendors around the globe, in over a dozen foreign currencies
- Solution - Handling complex financial transaction with proper integration of:
-
Business Processes - including custom Work Items
- Event Processing
- Business Rules
Real Customer Use Case - Mobile Network Operator
- Context - Business Rule Engine used to implement complex billing rules when generating customer invoices
- Sometimes the rules would determine that an unusual discount should be applied, and such discounts required manual approval
- In fact the rule evaluation was simply a step in a much larger business process - motivation to adopt BPM solution discovered