Post on 21-Jun-2015
transcript
Do & Don’ts of BPMThe 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
13/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, …)
13/04/23 ı 3
Content
Customer Requirements
JBPM Performance
Proof of Concept
BI/BAM
Demo
13/04/23 ı 4
13/04/23 ı 5
Typical architecture
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”
13/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
13/04/23 ı 7
Content
Customer Requirements
JBPM Performance
Proof of Concept
BI/BAM
Demo
13/04/23 ı 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
13/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)
13/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
Some performance numbers
13/04/23 ı 11
5 ms
12 ms
13/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
Content
Customer Requirements
JBPM Performance
Proof of Concept
BI/BAM
Demo
13/04/23 ı 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
13/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)
13/04/23 ı 15
What is an ESB? (without getting too technical)
Best comparison: mailbox
13/04/23 ı 16
Destination
Protocol?
“ROUTING”
Don’t care, as Long as the messageIs delivered
What is an ESB? (without getting too technical)
13/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
13/04/23 ı 18
Automatic Report Generation
(XML)
Proof-of-Concept overview
13/04/23 ı 19
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCPMULEESB
13/04/23 ı 20
Proof-of-Concept overview
Automatic Report Generation
(XML)
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
MULEESB
JMS QUEUE
13/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
13/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
13/04/23 ı 23
Content
Customer Requirements
JBPM Performance
Proof of Concept
BI/BAM
Demo
13/04/23 ı 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
13/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
13/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
13/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
13/04/23 ı 28* http://www.seewhy.com/
SeeWhy workings
13/04/23 ı 29
EventCalculations/Aggregations
Event Queue (JMS)
e.g. Show the average numberOf reports processed the last hour
Combining jBPM & SeeWhy
13/04/23 ı 30
Send an event to the queue on the SeeWhy server
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)
13/04/23 ı 31
PoC : Complete picture
13/04/23 ı 32 13/04/23 ı 32
Report Generation
(XML)
TCP TRANSFORMATION(XSLT)
JMS MESSAGE
JMS QUEUE
EJB 3 MDB
BPM Service(EJB 3 SLSB)
BAM
BI
13/04/23 ı 33
DEMOTIME
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
13/04/23 ı 34
13/04/23 ı 35