jBPM At Riviera JUG

1,668 views

Published on

jBPM Presentation Given At The Riviera JUG In Nice October 2nd 2009

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,668
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
144
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

jBPM At Riviera JUG

  1. 1. Simplified BPM Power In The Hands Of The Developer 4
  2. 2. Agenda <ul><li>Business Process Management </li></ul><ul><li>jBPM Introduction </li></ul><ul><ul><li>Developer Value </li></ul></ul><ul><ul><li>Business Value </li></ul></ul><ul><li>Train ticket system </li></ul><ul><li>Roadmap </li></ul>
  3. 3. <ul><li>BPM as a management discipline </li></ul><ul><ul><li>Not an IT concept </li></ul></ul><ul><li>William Edwards Deming </li></ul><ul><ul><li>Plan </li></ul></ul><ul><ul><li>Do </li></ul></ul><ul><ul><li>Check </li></ul></ul><ul><ul><li>Act </li></ul></ul>BPM Business Value
  4. 4. Assembly Lines <ul><li>1723-1790, Adam Smith: The pin factory </li></ul><ul><li>1863-1947, Henry Ford: mass production </li></ul>
  5. 5. Government Tax Collection
  6. 6. Library Lending A Book
  7. 7. Selling A Ticket For A Concert
  8. 8. Even Getting Up In The Morning
  9. 9. Business Processes <ul><li>Business process </li></ul><ul><ul><li>Organized way of doing things </li></ul></ul><ul><ul><li>Reach certain goal </li></ul></ul><ul><li>Any company - any product - any service </li></ul><ul><ul><li>They all have business processes </li></ul></ul>
  10. 10. Business Processes Need To Be Managed <ul><li>BUT… doesn’t mean that </li></ul><ul><ul><li>People are aware </li></ul></ul><ul><ul><li>They are controlled or guided </li></ul></ul><ul><ul><li>Everyone is using the same process </li></ul></ul><ul><li>Managing a process requires </li></ul><ul><ul><li>Everyone knows what to do </li></ul></ul><ul><ul><li>Enforcement </li></ul></ul><ul><ul><li>Organizational changes </li></ul></ul><ul><ul><li>Measuring key performance indicators </li></ul></ul><ul><li>jBPM can help </li></ul>
  11. 11. <ul><li>BPM System (aka BPM engine or workflow engine) </li></ul><ul><li>Executable business process </li></ul><ul><ul><li>Diagram </li></ul></ul><ul><ul><li><tech-details /> </li></ul></ul><ul><li>Deploy, run, collect history </li></ul>BPM System Introduction
  12. 12. General BPMS Advantages <ul><li>Process diagram understandable by business people </li></ul><ul><li>Audit </li></ul><ul><ul><li>Who did what and when ? </li></ul></ul><ul><li>History statistics </li></ul><ul><ul><li>Where are the bottlenecks ? </li></ul></ul>
  13. 13. jBPM Advantages <ul><li>Embeds into your application </li></ul><ul><ul><li>Integrates with your transaction </li></ul></ul><ul><ul><li>Integrates with your database </li></ul></ul><ul><ul><li>Integrates with your domain model </li></ul></ul><ul><li>Deploy as </li></ul><ul><ul><li>Simple library </li></ul></ul><ul><ul><li>Standalone server </li></ul></ul>
  14. 14. Process Language Flavours <ul><li>Business Process Management </li></ul><ul><li>Pageflow </li></ul><ul><li>Orchestrating web services (BPEL) </li></ul><ul><li>Transactional scripts </li></ul>
  15. 15. jBPM 4 Process Virtual Machine jPDL BPMN2 BPEL XPDL Page Flow …
  16. 16. jPDL <ul><li>jBPM’s original process language </li></ul><ul><li>Clean and easy Java integration </li></ul><ul><li>Task management out of the box </li></ul><ul><li>Developers like it </li></ul><ul><ul><li>Transactional control flow </li></ul></ul><ul><ul><li>Compact, readable XML </li></ul></ul>
  17. 17. jPDL <ul><li>Non technical business analysts like it </li></ul><ul><ul><li>Diagram decoupled from execution semantics </li></ul></ul><ul><ul><ul><li>Listeners do not change the diagram </li></ul></ul></ul><ul><ul><ul><li>Developers can code custom activity </li></ul></ul></ul><ul><ul><ul><li>Direct connection with Java  Agile </li></ul></ul></ul><ul><ul><li>Free graph modelling </li></ul></ul><ul><ul><li>Boxes and arrows </li></ul></ul>
  18. 18. BPMN 2.0 <ul><li>New process language next to jPDL </li></ul><ul><li>Standard </li></ul><ul><li>Technical business analysts like it </li></ul><ul><ul><li>Focus on modelling </li></ul></ul><ul><ul><li>Precise execution semantics </li></ul></ul><ul><ul><li>Directly coupled with diagram </li></ul></ul><ul><li>Now in incubation </li></ul><ul><li>Target for in H2 2010 </li></ul>
  19. 19. jBPM Technical Perspective <ul><li>API for application integration </li></ul><ul><ul><li>Start new process instances </li></ul></ul><ul><ul><li>Provide external signals </li></ul></ul><ul><ul><li>Get task lists </li></ul></ul><ul><ul><li>Get history </li></ul></ul><ul><ul><ul><li>Audit </li></ul></ul></ul><ul><ul><ul><li>Statistics </li></ul></ul></ul><ul><li>Same API for all environments </li></ul>
  20. 20. Processes As Part Of Software Development Software Project Executable Business Process Non-tech Business Analyst Developer <details /> Java, XML, Buildscripts, Tests, … EAP SOA-P JBoss Tomcat JDK 5 Oracle, MySQL, PostgreSQL jBPM Your App Abstract Business Process
  21. 21. A jPDL Process
  22. 22. A jPDL Process <ul><li>< process name = &quot;DecisionExpression&quot; > </li></ul><ul><li>< start > </li></ul><ul><li>< transition to = &quot;evaluate document&quot; /> </li></ul><ul><li></ start > </li></ul><ul><li>< decision name = &quot;evaluate document&quot; expr = &quot;#{content}&quot; > </li></ul><ul><li>< transition name = &quot;good&quot; to = &quot;submit document&quot; /> </li></ul><ul><li>< transition name = &quot;bad&quot; to = &quot;try again&quot; /> </li></ul><ul><li>< transition name = &quot;ugly&quot; to = &quot;give up&quot; /> </li></ul><ul><li></ decision > </li></ul><ul><li>< state name = &quot;submit document&quot; /> </li></ul><ul><li>< state name = &quot;try again&quot; /> </li></ul><ul><li>< state name = &quot;give up&quot; /> </li></ul><ul><li></ process > </li></ul>
  23. 23. Deployment <ul><li>Deploy this process to the jBPM DB </li></ul><ul><ul><li><jbpm-deploy file= &quot;target/examples.bar&quot; /> </li></ul></ul><ul><ul><li>Programmatic </li></ul></ul><ul><li>jBPM DB Tables </li></ul><ul><li>Deployments </li></ul><ul><li>Runtime state </li></ul><ul><li>History </li></ul>
  24. 24. Start A Process Instance <ul><li>Configuration cfg = new Configuration(); </li></ul><ul><li>ProcessEngine processEngine = cfg .buildProcessEngine(); </li></ul><ul><li>processEngine .getExecutionService() </li></ul><ul><li>.startProcessInstanceByKey( &quot;ticketProcess&quot; ); </li></ul>
  25. 25. A Process In Your Architecture User clicks button in your webapp JMS message arrives from some other app Transaction Transaction Receive Click Calc Avg Receive Message Invoke A WS
  26. 26. Let jBPM Do The TX Juggling <ul><li>Extract state management from your code </li></ul><ul><li>Decorate your process with POJO java logic </li></ul><ul><li>Let jBPM deal with </li></ul><ul><ul><li>Transactions </li></ul></ul><ul><ul><li>Async messages </li></ul></ul><ul><ul><li>Timers </li></ul></ul>
  27. 27. The Train Ticket Demo
  28. 28. Taking The Train NEEDS SHOW REQUIRES WANTS BUY
  29. 29. Taking The Train 2.0 <ul><li>The Problem </li></ul><ul><ul><li>Using coins, ticket machines, conductors, ... sooooo 2008 </li></ul></ul><ul><li>The solution </li></ul>JBPM on Rails
  30. 30. Train Ticket jPDL Use Case 1. Ticket request 2. Price Quote 3. Accept Other Train System (EJB)
  31. 31. Modeling the process <ul><li>Business analyst (BA) </li></ul><ul><ul><li>Weapons: Word, Excel, Browser </li></ul></ul><ul><ul><li>Eclipse designer is 'a bridge too far' </li></ul></ul><ul><li>jBPM solution </li></ul><ul><ul><li>Collaboration with Signavio </li></ul></ul><ul><ul><ul><li>http://www.signavio.com </li></ul></ul></ul><ul><ul><li>Webbased BPMN editor </li></ul></ul><ul><ul><ul><li>Stored as a jPDL process </li></ul></ul></ul>BA Dev import
  32. 32. Getting started <ul><li>I just know you're excited to give jBPM a try </li></ul><ul><li>You can do it tonight </li></ul><ul><ul><li>Just before you go to sleep </li></ul></ul><ul><ul><li>Or in your bed? </li></ul></ul><ul><li>Last demo movie </li></ul><ul><ul><li>jBPM demo setup in less than a minute! </li></ul></ul><ul><ul><li>Install server, jBPM, example processes </li></ul></ul><ul><ul><li>jBPM-console, signavio, ... </li></ul></ul>
  33. 33. Questions ? <ul><li>http://jbpm.org </li></ul><ul><li>http://processdevelopments.blogspot.com </li></ul>

×