JBoss jBPM


PV207 Anton Giertli

Agenda

 

  • Challenges
  • What is jBPM
  • Components
  • Real customer's issues

 

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

Business Activity Monitoring

Process does not seem to continue

Suggested solution

Feasibility inquiry

  • There are three tasks executed in parallel

  • Any of these tasks can re-start the parallel execution while others two are still being active

  • Remaining two tasks must be terminated

Suggested solution

  • OpenSource

  • Java based

  • Supported (by me)

THE

END