Your SlideShare is downloading. ×
0
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Sneak Preview of jBPM 4 at JAX conference
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sneak Preview of jBPM 4 at JAX conference

4,133

Published on

After a general introduction to BPM and jBPM, a couple of concrete examples show what jBPM can do.

After a general introduction to BPM and jBPM, a couple of concrete examples show what jBPM can do.

Published in: Business, Technology
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,133
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
185
Comments
1
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. jBPM 4 Sneak Preview Tom Baeyens JBoss, Red Hat
    • 2. JBoss jBPM <ul><li>Business Process Management </li></ul><ul><ul><li>BPM as a discipline </li></ul></ul><ul><ul><li>BPM as software engineering </li></ul></ul><ul><li>What is jBPM </li></ul><ul><li>jBPM 4 Overview </li></ul>
    • 3. Tom Baeyens <ul><li>Lead and founder of JBoss jBPM </li></ul><ul><li>Consulting for numerous BPM projects </li></ul><ul><li>Bringing BPM mainstream </li></ul><ul><li>Articles </li></ul><ul><ul><li>InfoQ, TSS, Dzone, OnJava,… </li></ul></ul><ul><li>Blogs </li></ul><ul><ul><li>http://processdevelopments.blogspot.com/ </li></ul></ul><ul><li>Talks </li></ul><ul><ul><li>JavaOne, JBossWorld, JAOO, TSS,… </li></ul></ul>
    • 4. BPM as a Discipline <ul><li>Management discipline </li></ul><ul><li>Business processes grow organic </li></ul><ul><ul><li>Understand </li></ul></ul><ul><ul><li>Describe </li></ul></ul><ul><ul><li>Optimise </li></ul></ul><ul><li>Non technical </li></ul><ul><li>People to people </li></ul><ul><ul><li>What, not how </li></ul></ul><ul><ul><li>Can be vague </li></ul></ul><ul><li>Unrelated to software architecture </li></ul><ul><li>Often include diagrams </li></ul>
    • 5. BPM as Software Engineering <ul><li>Aspect of software expressed as a graph </li></ul><ul><li>Specifies execution flow </li></ul><ul><li>BPMS ‘runs’ process executions </li></ul><ul><li>It’s software </li></ul><ul><ul><li>DSL </li></ul></ul><ul><ul><li>Executes on one system </li></ul></ul><ul><ul><li>Central dispatcher </li></ul></ul><ul><ul><li>Multiple participants </li></ul></ul><ul><ul><li>Wait states </li></ul></ul>
    • 6. Traditional BPM Vendors <ul><li>Stack Integrators </li></ul><ul><ul><li>Oracle, IBM, SAP </li></ul></ul><ul><ul><li>XML basis for BPM ?! </li></ul></ul><ul><ul><li>BPEL, WSDL </li></ul></ul><ul><ul><li>Lots of tooling required to hide clumsy basics </li></ul></ul><ul><ul><li>Deprecating BPEL in favour of BPMN </li></ul></ul><ul><li>Pure plays </li></ul><ul><ul><li>Monolithic server </li></ul></ul><ul><ul><li>Automagical </li></ul></ul><ul><ul><li>Hard to integrate in your project </li></ul></ul>
    • 7. jBPM ! <ul><li>Bottom Up </li></ul><ul><ul><li>No magic </li></ul></ul><ul><li>Server or embedded </li></ul><ul><ul><li>Not monolithic </li></ul></ul><ul><ul><li>Just a library </li></ul></ul><ul><li>Freedom </li></ul><ul><ul><li>Use the most appropriate tech </li></ul></ul><ul><ul><ul><li>Java, groovy, web services, SQL </li></ul></ul></ul><ul><ul><li>Java excellent dispatcher technology </li></ul></ul>
    • 8. jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer
    • 9. jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer
    • 10. jBPM Overview <ul><li>Process Virtual Machine </li></ul><ul><ul><li>Java state machine library </li></ul></ul><ul><ul><li>Pluggable Activities </li></ul></ul><ul><li>jPDL </li></ul><ul><ul><li>BPM as a discipline </li></ul></ul><ul><ul><li>Orchestrating Human Tasks & Services </li></ul></ul><ul><ul><li>Transactional Script </li></ul></ul><ul><ul><li>Execution modes </li></ul></ul><ul><li>SEAM Pageflow </li></ul><ul><li>… </li></ul>
    • 11. jPDL Activities <ul><li>Control flow </li></ul><ul><ul><li>transition </li></ul></ul><ul><ul><li>start </li></ul></ul><ul><ul><li>end </li></ul></ul><ul><ul><li>end-cancel </li></ul></ul><ul><ul><li>end-error </li></ul></ul><ul><ul><li>decision </li></ul></ul><ul><ul><li>fork </li></ul></ul><ul><ul><li>join </li></ul></ul><ul><ul><li>super-state </li></ul></ul><ul><ul><li>sub-process </li></ul></ul><ul><li>Functional </li></ul><ul><ul><li>state </li></ul></ul><ul><ul><li>sub-process </li></ul></ul><ul><ul><li>task </li></ul></ul><ul><ul><li>java </li></ul></ul><ul><ul><li>script </li></ul></ul><ul><ul><li>esb </li></ul></ul><ul><ul><li>hql </li></ul></ul><ul><ul><li>sql </li></ul></ul>
    • 12. jPDL Features <ul><li>Lots of functional activities </li></ul><ul><ul><li>mail, java, esb, task,… </li></ul></ul><ul><li>Concurrency </li></ul><ul><li>Event listeners </li></ul><ul><li>Timers </li></ul><ul><li>Asynchronous continuations </li></ul><ul><li>Transactional exception handlers </li></ul>
    • 13. State Choice
    • 14. State Choice <ul><li>< process name = &quot;StateChoice&quot; > </li></ul><ul><li>< start > </li></ul><ul><li>< transition to = &quot;wait for response&quot; /> </li></ul><ul><li></ start > </li></ul><ul><li>< state name = &quot;wait for response&quot; > </li></ul><ul><li>< transition name = &quot;accept&quot; to = &quot;submit document&quot; /> </li></ul><ul><li>< transition name = &quot;reject&quot; to = &quot;try again&quot; /> </li></ul><ul><li></ state > </li></ul><ul><li>< state name = &quot;submit document&quot; /> </li></ul><ul><li>< state name = &quot;try again&quot; /> </li></ul><ul><li></ process > </li></ul>
    • 15. State Choice <ul><li>repositoryService .createDeployment() </li></ul><ul><li>.addResourceFromClasspath( </li></ul><ul><li>&quot;org/jbpm/examples/state/choice/process.jpdl.xml“ ) </li></ul><ul><li>.deploy(); </li></ul>
    • 16. State Choice <ul><li>ProcessInstance processInstance = executionService </li></ul><ul><li>.startProcessInstanceByKey( &quot;StateChoice&quot; ); </li></ul><ul><li>String executionId = processInstance </li></ul><ul><li>.findActiveExecutionIn( &quot;wait for response&quot; ) </li></ul><ul><li>.getId(); </li></ul><ul><li>processInstance = executionService </li></ul><ul><li>.signalExecutionById(executionId, &quot;accept&quot; ); </li></ul><ul><li>assertEquals( &quot;submit document&quot; , </li></ul><ul><li>processInstance.getActivityName()); </li></ul>
    • 17. Human Task
    • 18. Human Task <ul><li>< process name = &quot;TaskCandidates&quot; > </li></ul><ul><li>< start > </li></ul><ul><li>< transition to = &quot;review&quot; /> </li></ul><ul><li></ start > </li></ul><ul><li>< task name = &quot;review&quot; </li></ul><ul><li>candidate-groups = &quot;sales-dept&quot; > </li></ul><ul><li>< transition to = &quot;wait&quot; /> </li></ul><ul><li></ task > </li></ul><ul><li>< state name = &quot;wait&quot; /> </li></ul><ul><li></ process > </li></ul>
    • 19. Identity Component LDAP jBPM Identity Component Interface jBPM build-in JBoss IDM Your own custom implementation 3 10
    • 20. Identity Component johndoe joesmoe sales-dept membership membership
    • 21. Human Task <ul><li>executionService </li></ul><ul><li>.startProcessInstanceByKey( &quot;TaskCandidates&quot; ); </li></ul><ul><li>List<Task> johnsTakableTasks = </li></ul><ul><li>taskService .findTakableTasks( &quot;johndoe&quot; ); </li></ul><ul><li>List<Task> joesTakableTasks = </li></ul><ul><li>taskService .findTakableTasks( &quot;joesmoe&quot; ); </li></ul><ul><li>taskService .takeTask(task.getDbid(), &quot;johndoe&quot; ); </li></ul><ul><li>List<Task> johnsPersonalTasks = taskService .findAssignedTasks( &quot;johndoe&quot; ); </li></ul><ul><li>taskService .completeTask(task.getDbid()); </li></ul>
    • 22. Timer Transition
    • 23. Timer Transition <ul><li>< process name = &quot;TimerTransition&quot; > </li></ul><ul><li>< start > </li></ul><ul><li>< transition to = &quot;guardedWait&quot; /> </li></ul><ul><li></ start > </li></ul><ul><li>< state name = &quot;guardedWait&quot; > </li></ul><ul><li>< transition name = &quot;go on&quot; to = &quot;next step&quot; /> </li></ul><ul><li>< transition name = &quot;timeout&quot; to = &quot;escalation&quot; > </li></ul><ul><li>< timer duedate = &quot;2 business days&quot; /> </li></ul><ul><li></ transition > </li></ul><ul><li></ state > </li></ul><ul><li>< state name = &quot;next step&quot; /> </li></ul><ul><li>< state name = &quot;escalation&quot; /> </li></ul><ul><li></ process > </li></ul>
    • 24. Asynchronous Continuations <ul><li>Automatic activities in sequence </li></ul><ul><li>One takes a long time </li></ul><ul><li>Don’t block the client thread </li></ul><ul><li>async=“true” </li></ul>Transaction 1 Transaction 2 Job Executor
    • 25. Designer
    • 26. Console
    • 27. Console
    • 28. Conclusion <ul><li>jBPM provides overview of application </li></ul><ul><ul><li>External triggers </li></ul></ul><ul><ul><li>Wait states </li></ul></ul><ul><ul><li>Business view </li></ul></ul><ul><li>jBPM adds a layer on top of TX basics </li></ul><ul><ul><li>Transactional timers </li></ul></ul><ul><ul><li>Asynchronous messages </li></ul></ul><ul><li>Integrates with </li></ul><ul><ul><li>Standard & Enterprise Java </li></ul></ul><ul><ul><li>JBoss and other app servers </li></ul></ul><ul><ul><li>SEAM </li></ul></ul><ul><ul><li>Spring </li></ul></ul>
    • 29. Q&A
    • 30. Execution Modes
    • 31. Execution Modes Processes Executions History JVM BPM Engine (1) Persistent Dynamic
    • 32. Execution Modes Executions History JVM BPM Engine Process Resources (2) Persistent Process resource
    • 33. Execution Modes Executions History JVM BPM Engine Process Resources (3) Persistent Embedded Referenced INSURANCE_CLAIMS ID … STATE …
    • 34. Execution Modes History JVM BPM Engine Process Resources (4) Persistent Embedded Included “ review” INSURANCE_CLAIMS ID … STATE …
    • 35. Execution Modes History JVM BPM Engine Process Resources Execution Objects (5) Memory With Persistent History
    • 36. Execution Modes JVM BPM Engine Process Resources Execution Objects (6) Memory
    • 37. Process Concurrency

    ×