Vous êtes sur la page 1sur 35

Do & Donts of BPM The Full Stack

13/03/2008 Joram Barrez - Dolmen

About
Software engineer at Dolmen Computer Applications
Using jBPM from Monday to Friday
Before january 08 business processes on a small scale Since january 08, in a team of 3 people building a large scale back-end using jBPM for process orchestration in a departement of the Flemish governement

Other fields of interest:


Agile development & (J)Ruby on Rails

21/02/2014 2

Goals

jBPM in some real-life action Demonstration use case: PoC jBPM orchestration
Revitalization of mainframe architecture PoC built to show feasability of project Using some cool technologies (jBPM, ESB, EJB3, )

21/02/2014 3

Content
Customer Requirements
JBPM Performance

Proof of Concept
BI/BAM Demo

21/02/2014 4

Typical architecture

21/02/2014 5

Requirements
Every application talks directly to its dependent applications
Mediation required to keep it manageable

Workflow logic is scattered across different applications


Centralisation needed

Reporting functionality is a must

It must be fast enough

21/02/2014 6

Why jBPM?
Previous experience Embeddable
jBPM is Yet Another Java Library jBPM can be used in any application (web, desktop, enterprise, ) on any database

Openness
Extremely extensible, what often is needed in business processes

Convenient for developers

21/02/2014 7

Content
Customer Requirements
JBPM Performance

Proof of Concept
BI/BAM Demo

21/02/2014 8

jBPM Performance
We knew jBPM could tackle the workflow requirements
But is it fast enough?
Simple measurement used (e.g. no dedicated server) 2500 runs of an automated jBPM process (jpdl 3.2.2) Timings are average between start en stop time of the processes

Intel Core Duo 2 Ghz 2 GB DDR2 RAM 5400 rpm SATA HD MySQL 5.0.45 Database
21/02/2014 9

Some performance numbers (sequential)

2 ms

2 ms

3 ms
Non-optimized Hibernate config: 16 ms! From 1.800.000 processes/hour 225 000 processes/hour

5-6 ms
21/02/2014 10

Some performance numbers

12 ms
5 ms

21/02/2014 11

Realistic business process: Handling a hospital report


New Report created Check Report type

3 ms

Some reports need manual verification

Automatic checking

Complete & archive report

Remove report
21/02/2014 12

Content
Customer Requirements
JBPM Performance

Proof of Concept
BI/BAM Demo

21/02/2014 13

Proof of Concept (PoC)


Goal: build a small scale application that proofs the feasibility of the project
But easily can be mapped to a larger scale

Only one business process (Handling a hospital report) Only two applications need communication
Report generator Client application

21/02/2014 14

Application mediation
Problem: applications talk to each other directly, resulting in a cobweb of dependent applications
Enterprise Application Integration (EAI) problem Topic on its own

Solution (for this PoC)


Enterprise Service Bus (ESB)

21/02/2014 15

What is an ESB? (without getting too technical)

Best comparison: mailbox

Destination

ROUTING

Protocol?

Dont care, as Long as the message Is delivered


21/02/2014 16

What is an ESB? (without getting too technical)


Destination

ROUTING Advantage: applications only need to communicate with the ESB. They dont need to use the language of the destination anymore Products - Mule ESB (customer pref) - BEA Aqualogic - JBoss ESB* SOA platform (inc. jBPM) TCP/IP SOAP(Webservice) Protocol? JMS

Dont care, as Long as the message Is delivered


21/02/2014 17

* http://parleys.com/display/PARLEYS/JBoss+ESB by Johan Kumps

Proof-of-Concept overview
Automatic Report Generation

(XML)

21/02/2014 18

Proof-of-Concept overview
Automatic Report Generation

(XML)

TCP

MULE ESB

21/02/2014 19

Proof-of-Concept overview
Automatic Report Generation

(XML)

TCP

TRANSFORMATION (XSLT)
JMS MESSAGE

MULE ESB

JMS QUEUE

21/02/2014 20

Proof-of-Concept overview
Automatic Report Generation

(XML)

TCP

TRANSFORMATION (XSLT)
JMS MESSAGE

MULE ESB

JMS QUEUE

EJB 3 MDB

BPM Service (EJB 3 SLSB)


21/02/2014 21

Proof-of-Concept overview
Automatic Report Generation

TCP

TRANSFORMATION (XSLT)
JMS MESSAGE

MULE ESB

JMS QUEUE

EJB 3 MDB

BPM Service (EJB 3 SLSB)


21/02/2014 22

21/02/2014 23

Content
Customer Requirements
JBPM Performance

Proof of Concept
BI/BAM Demo

21/02/2014 24

Business Intelligence (BI) / Business Activity Monitoring (BAM)

BI ~ BAM
BAM real-time monitoring/analysing metrics BI historical monitoring/analysing metrics e.g. stock trade buy/sell according to metrics

Extracting extra business information for taking business decisions


Simple example Car repair Availability of car history (malfunctions,) Better judgement when fixing the car

21/02/2014 25

Business Intelligence (BI) / Business Activity Monitoring (BAM)


What you cant measure, you cant manage
BI/BAM is an art
Tailoring to business is always needed Research field on its own (even academical) Data mining, OLAP, KPI, data warehousing, slice/dice analysis, ETL,

Managers

BI/BAM
21/02/2014 26

BI/BAM & jBPM


BI/BAM often integrated in BPM products jBPM does not offer such functionality
Discussions about BI/BAM and jBPM can be tracked online, so it will be only a matter of time (hopefully)

So, why should we choose jBPM if BI/BAM is missing?


BI/BAM is extremely business-specific, so there will always be need for custom implementations Openness of jBPM allows extremely business-specific BI/BAM, which could be impossible with pre-made BI/BAM solutions

21/02/2014 27

PoC: BAM with SeeWhy*


Young & enthousiastic, UK based software company Extremely well documented (hundreds of pages)
74 pages SeeWhy with jBPM

SeeWhy Community/Enterprise Edition


Realtime metrics, real time alerts, real time actions

* http://www.seewhy.com/

21/02/2014 28

SeeWhy workings

Event Queue (JMS)

Event
Calculations/ Aggregations

e.g. Show the average number Of reports processed the last hour

21/02/2014 29

Combining jBPM & SeeWhy


Send an event to the queue on the SeeWhy server

21/02/2014 30

Business Intelligence with jBPM

All historical data is stored in the database by the jBPM engine


So, BI is a matter of writing the right queries

PoC
Simple BI app (JRuby on Rails)

21/02/2014 31

PoC : Complete picture


Report Generation
(XML)

TCP

TRANSFORMATION (XSLT)
JMS MESSAGE

JMS QUEUE

EJB 3 MDB

BPM Service (EJB 3 SLSB)

BAM

21/02/2014 32 21/02/2014 32

BI

DEMO TIME

21/02/2014 33

Lessons learned
jBPM allows us to implement a wide range of business processes, since we have the power of Java at disposal
Business analysts arent fond of jBPM at first encounter
Building business processes is not a matter of drag-and-drop! Business processes cant be built without programmatic logic! Transactions, performance,

BI/BAM sells!
Defining a basic BI/BAM framework for jBPM

21/02/2014 34

21/02/2014 35

Vous aimerez peut-être aussi