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

Live Demo