The Full Stack

streakconvertingΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

66 εμφανίσεις

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



13/12/2013

ı


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/12/2013

ı


3

Content


Customer

Requirements



JBPM Performance



Proof

of Concept



BI/BAM



Demo



13/12/2013

ı


4


13/12/2013

ı


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/12/2013

ı


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/12/2013

ı


7

Content


Customer

Requirements



JBPM Performance



Proof

of Concept



BI/BAM



Demo



13/12/2013

ı


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/12/2013

ı


9



Intel Core Duo 2 Ghz



2 GB DDR2 RAM



5400 rpm SATA HD



MySQL 5.0.45 Database

Some performance numbers (sequential)


13/12/2013

ı


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/12/2013

ı


11

5 ms

12 ms


13/12/2013

ı


12

Realistic business process: Handling a hospital report

3 ms

New Report created

Check Report type

Automatic checking

Some reports need

manual verification

Complete & archive report

Remove report

Content


Customer

Requirements



JBPM Performance



Proof

of Concept



BI/BAM



Demo



13/12/2013

ı


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/12/2013

ı


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/12/2013

ı


15

What is an ESB?
(without getting too technical)


Best comparison: mailbox


13/12/2013

ı


16

Destination

Protocol?

“ROUTING”

Don’t care, as

Long as the message

Is delivered

What is an ESB?
(without getting too technical)


13/12/2013

ı


17

Destination

Protocol?

“ROUTING”

Don’t care, as

Long as the message

Is 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:

applications

only need to communicate with

the ESB. They don’t need to use the

‘language’ of the destination anymore


13/12/2013

ı


18

Automatic Report Generation

(XML)

Proof
-
of
-
Concept overview


13/12/2013

ı


19

Proof
-
of
-
Concept overview

Automatic Report Generation

(XML)

TCP

MULE

ESB


13/12/2013

ı


20

Proof
-
of
-
Concept overview

Automatic Report Generation

(XML)

TCP

TRANSFORMATION

(XSLT)

JMS MESSAGE

MULE

ESB

JMS QUEUE


13/12/2013

ı


21

Proof
-
of
-
Concept overview

Automatic Report Generation

(XML)

TCP

TRANSFORMATION

(XSLT)

JMS MESSAGE

JMS QUEUE

EJB 3 MDB

BPM Service

(EJB 3 SLSB)

MULE

ESB


13/12/2013

ı


22

Proof
-
of
-
Concept overview

Automatic Report Generation

TCP

TRANSFORMATION

(XSLT)

JMS MESSAGE

JMS QUEUE

EJB 3 MDB

BPM Service

(EJB 3 SLSB)

MULE

ESB


13/12/2013

ı


23

Content


Customer

Requirements



JBPM Performance



Proof

of Concept



BI/BAM



Demo



13/12/2013

ı


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/12/2013

ı


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/12/2013

ı


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/12/2013

ı


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/12/2013

ı


28

* http://www.seewhy.com/

SeeWhy workings


13/12/2013

ı


29

Event

Calculations/

Aggregations

Event Queue (JMS)

e.g. Show the average number

Of reports processed the last hour

Combining jBPM & SeeWhy


13/12/2013

ı


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/12/2013

ı


31

PoC : Complete picture


13/12/2013

ı


32


13/12/2013

ı


32

Report Generation

(XML)

TCP

TRANSFORMATION

(XSLT)

JMS MESSAGE

JMS QUEUE

EJB 3 MDB

BPM Service

(EJB 3 SLSB)

BAM

BI


13/12/2013

ı


33

DEMO

TIME

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/12/2013

ı


34


13/12/2013

ı


35