2. jBPM Community Day 2009
WHOAMI
./whoami
• jBPM consultant at
• Co-founder of
• jBPM blog: http://www.jorambarrez.be
3. jBPM Community Day 2009
GOALS
./Goals
• Tech demo: demonstration of new jBPM4 API
• Showing how easy it is to use jBPM in your application
• Extracting business insight from the new history tables
• Community discussion?
• All in the next 20 minutes or so …
4. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
Managing deployments
RepositoryService Deployment createDeployment()
deployment.addResourceFromClasspath(“quot;)
ProcessDefinitionQuery
createProcessDefinitionQuery();
Process engine
5. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
RepositoryService
Managing runtime executions
ExecutionService startProcessInstanceById(pd_id)
signalExecutionByXXX
Get/setVariable(s)
Process engine
6. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
RepositoryService
ExecutionService
Managing tasks
TaskService takeTask(actor)
completeTask(outcom)
cancelTask(task)
AssignTask(actor)
findTaskXXX
Process engine
7. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
RepositoryService
ExecutionService
TaskService
Managing past runtime data
HistoryService HistoryActivityInstanceQuery query
= historyService.createHistoryActivityInstanceQuery()
.activityName(quot;Waitquot;)
.executionId(“123quot;);
Query.execute
avgDurationPerActivity(pd_id);
Process engine
8. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
RepositoryService
ExecutionService
TaskService
HistoryService
ManagementService Process engine maintenance
executeJob(long jobDbid)
Process engine
9. jBPM Community Day 2009
JBPM4 CONCEPTS
./jBPM4 API
RepositoryService
ExecutionService
TaskService Your app
HistoryService
Only communication with engine
ManagementService through interfaces!
Process engine
10. jBPM Community Day 2009
FEATURES
./Features on first sight
• Clean client API (ideally you shouldn't be using anything else)
• Simplified DB schema
• runtime vs historical data separation!
• eg process instance is in DB only during execution, afterwards it is
deleted and stored in a history table
• Performance boost (and no method-chaining)
• Fancy web console (GWT)
12. jBPM Community Day 2009
DEMO
./Demo use case
• Problem: using coins for parking is sooooo 90's
• The solution
+ =
13. jBPM Community Day 2009
DEMO
./The process
Ask for customer
Bill customer
approval on
machine
Check blacklist Wait until customer
And subscription returns
And send second sms