Do & Don't of BPM The Full Stack: jBPM + ESB + BI

Download Report

Transcript Do & Don't of BPM The Full Stack: jBPM + ESB + BI

Do & Don’ts 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
17/07/2015 ı 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, …)
17/07/2015 ı 3
Content

Customer Requirements

JBPM Performance

Proof of Concept

BI/BAM

Demo
17/07/2015 ı 4
Typical architecture
17/07/2015 ı 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”
17/07/2015 ı 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
17/07/2015 ı 7
Content

Customer Requirements

JBPM Performance

Proof of Concept

BI/BAM

Demo
17/07/2015 ı 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
17/07/2015 ı 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
17/07/2015 ı 10
Some performance numbers
12 ms
5 ms
17/07/2015 ı 11
Realistic business process: Handling a hospital report
New Report created
3 ms
Check Report type
Some reports need
manual verification
Automatic checking
Complete & archive report
Remove report
17/07/2015 ı 12
Content

Customer Requirements

JBPM Performance

Proof of Concept

BI/BAM

Demo
17/07/2015 ı 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
17/07/2015 ı 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)
17/07/2015 ı 15
What is an ESB? (without getting too technical)

Best comparison: mailbox
Destination
“ROUTING”
Protocol?
Don’t care, as
Long as the message
Is delivered
17/07/2015 ı 16
What is an ESB? (without getting too technical)
Destination
“ROUTING”
Advantage: applications
only need to communicate with
the ESB. They don’t 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
Don’t care, as
Long as the message
Is delivered
* http://parleys.com/display/PARLEYS/JBoss+ESB by Johan Kumps
17/07/2015 ı 17
Proof-of-Concept overview
Automatic Report Generation
(XML)
17/07/2015 ı 18
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP
MULE
ESB
17/07/2015 ı 19
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP
TRANSFORMATION
(XSLT)
MULE
ESB
JMS MESSAGE
JMS QUEUE
17/07/2015 ı 20
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP
TRANSFORMATION
(XSLT)
MULE
ESB
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service
(EJB 3 SLSB)
17/07/2015 ı 21
Proof-of-Concept overview
Automatic Report Generation
TCP
TRANSFORMATION
(XSLT)
MULE
ESB
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service
(EJB 3 SLSB)
17/07/2015 ı 22
17/07/2015 ı 23
Content

Customer Requirements

JBPM Performance

Proof of Concept

BI/BAM

Demo
17/07/2015 ı 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
17/07/2015 ı 25
Business Intelligence (BI) /
Business Activity Monitoring (BAM)
“What you can’t measure, you can’t 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
17/07/2015 ı 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
17/07/2015 ı 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/
17/07/2015 ı 28
SeeWhy workings
Event Queue (JMS)
Event
Calculations/
Aggregations
e.g. Show the average number
Of reports processed the last hour
17/07/2015 ı 29
Combining jBPM & SeeWhy
Send an event to the queue
on the SeeWhy server
17/07/2015 ı 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)
17/07/2015 ı 31
PoC : Complete picture
Report Generation
(XML)
TCP
TRANSFORMATION
(XSLT)
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service
(EJB 3 SLSB)
17/07/2015 ı 32
17/07/2015 ı 32
BAM
BI
DEMO
TIME
17/07/2015 ı 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 aren’t fond of jBPM at first encounter
• Building business processes is not a matter of drag-and-drop!
• Business processes can’t be built without programmatic logic!
• Transactions, performance, …

BI/BAM sells!
• Defining a basic BI/BAM framework for jBPM
17/07/2015 ı 34
17/07/2015 ı 35