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
18/04/23 ı 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, …)
18/04/23 ı 3
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”
18/04/23 ı 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
18/04/23 ı 7
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
18/04/23 ı 9
• Intel Core Duo 2 Ghz• 2 GB DDR2 RAM• 5400 rpm SATA HD• MySQL 5.0.45 Database
Some performance numbers (sequential)
18/04/23 ı 10
2 ms
2 ms
3 ms
5-6 ms
Non-optimized Hibernate config: 16 ms! From 1.800.000 processes/hour 225 000 processes/hour
18/04/23 ı 12
Realistic business process: Handling a hospital report
3 msNew Report created
Check Report type
Automatic checking
Some reports needmanual verification
Complete & archive report
Remove report
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
18/04/23 ı 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)
18/04/23 ı 15
What is an ESB? (without getting too technical)
Best comparison: mailbox
18/04/23 ı 16
Destination
Protocol?
“ROUTING”
Don’t care, as Long as the messageIs delivered
What is an ESB? (without getting too technical)
18/04/23 ı 17
Destination
Protocol?
“ROUTING”
Don’t care, as Long as the messageIs delivered
TCP/IP
SOAP(Webservice)
JMS
Products- Mule ESB (customer pref)- BEA Aqualogic- JBoss ESB*
SOA platform (inc. jBPM)
* http://parleys.com/display/PARLEYS/JBoss+ESB by Johan Kumps
Advantage: applicationsonly need to communicate withthe ESB. They don’t need to use the‘language’ of the destination anymore
18/04/23 ı 20
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
MULEESB
JMS QUEUE
18/04/23 ı 21
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service(EJB 3 SLSB)
MULEESB
18/04/23 ı 22
Proof-of-Concept overview
Automatic Report Generation
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service(EJB 3 SLSB)
MULEESB
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
18/04/23 ı 25
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
18/04/23 ı 26
Business Intelligence (BI) / Business Activity Monitoring (BAM)
“What you can’t measure, you can’t manage”
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
18/04/23 ı 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
18/04/23 ı 28* http://www.seewhy.com/
SeeWhy workings
18/04/23 ı 29
EventCalculations/Aggregations
Event Queue (JMS)
e.g. Show the average numberOf reports processed the last hour
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)
18/04/23 ı 31
PoC : Complete picture
18/04/23 ı 32 18/04/23 ı 32
Report Generation
(XML)
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service(EJB 3 SLSB)
BAM
BI
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
18/04/23 ı 34