July 1, 2010 by huionn
This week I have unexplainable interest in BPM. So, I am basically doing nothing, just surfing for BPM during (most of) working hours.
These are random finding about BPM:
- Beats Per Minute (BPM) is a unit typically used as measure of tempo in music. (ref: http://en.wikipedia.org/wiki/Tempo#Beats_per_minute)
- Business Process Management (BPM) will be among the fastest growing software market (ref: http://www.gartner.com/it/page.jsp?id=502645). So, BPM skill can be a hot skill in coming years.
- I am totally ignorant about BPMS vendors. It seem the leading BPMS are Pegasystems and Lombardi Software. (Lombardi Software was acquired by IBM end of last year.)
- I am quite aware of open source BPM in Java (jBPM, OSWorkflow, Apache ODE etc) http://java-source.net/open-source/workflow-engines
- There are two ways of using/deploying BPM(S) – embedded or standalone BPMS.
- There are two ways of implementing BPM – process oriented (Lombardi, jBPM) or rule based (Pegasystems, Drools Flow). Rule based BPM seems to be more flexible – Drools Flow supports Unstructured, Ad-Hoc Processes, and it integrates business rules with business process.
- Java developers hate BPM products. So BPM suites target at business people, promising that no technical programming skills are required to use BPMS.
- As a exercise of learning Drools Flow, I do a simplistic performance testing.
The script action prints “Hello World”.
After 100 times of warm ups, invoking 10,000 times of StatefulKnowledgeSession.startProcess() took ~350ms (0.035ms per process execution). As comparison, 10,000 times of System.out.println(“Hello World”) took ~0.0125ms per execution.
So in other words, the overhead of process execution in Drools Flow is about 2 System.out.println(…) statement, which is considerably fast.
Which to use? jBPM or Drools Flow? Both are from JBoss and possibly somehow merged in jBPM 5…