Bejug - Activiti in Action (part 1)

4,104 views

Published on

Activiti In Action
Bejug presentation (31/03/2011)

Published in: Technology

Bejug - Activiti in Action (part 1)

  1. 1. by<br />for<br />
  2. 2. Agenda<br />Introduction<br />Live coding<br />TechTalk<br />What do you get?<br />Demo<br />
  3. 3. What is a business process?<br />3<br />A collection of related steps that produce value<br />
  4. 4. What is a business process?<br />4<br /><ul><li>Business processes are often the differentiator between two companies doing the same thing </li></li></ul><li>What is a business process?<br />5<br /><ul><li>Business processes are often the differentiator between two companies doing the same thing </li></li></ul><li>What is a business process?<br />6<br /><ul><li>Business processes are often the differentiator between two companies doing the same thing </li></li></ul><li>What is a business process?<br />7<br /><ul><li>Often visualized using some kind of flowcharts
  5. 5. Insight into business (mgmt perspective)
  6. 6. Communication IT-business
  7. 7. Business process Management is a HUGE field</li></li></ul><li>What is a business process?<br />8<br /><ul><li>Often visualized using some kind of flowcharts
  8. 8. Insight into business (mgmt perspective)
  9. 9. Communication IT-business
  10. 10. Business process Management is a HUGE field</li></ul>Suppose 250 pages/book<br />2 612 500 pages on BPM<br />*<br />313 BPM trees<br />*http://wiki.answers.com/Q/How_much_paper_can_one_tree_produce<br />
  11. 11. But technically…<br />9<br />
  12. 12. BPMN 2.0<br />OMG standard<br />Shapes<br />Execution semantics<br />File format<br />First pure play BPM standard<br />With general endorsement<br />10<br />
  13. 13. What does that mean?<br />11<br /><ul><li>Huge pool of BPMN skilled analysts
  14. 14. Any BPMN 2.0 compliant editor
  15. 15. MS Visio, Oracle, IBM, Aris, etc.
  16. 16. Executable on Activiti engine</li></li></ul><li>But technically…<br />12<br />
  17. 17. What is Activiti?<br />13<br />100% Java<br />100% oSS<br />Lightweight<br />Performant<br />Embeddable<br />
  18. 18. What is Activiti?<br />14<br />
  19. 19. Activiti<br />What is Activiti?<br />15<br />The diagram<br />API<br />runtimeService.startProcessInstance…<br />Forms<br />
  20. 20. So technically …<br />16<br />Book flight <br />through<br /> webservice<br />Generate PDF<br />Check order <br />state in SAP<br />Activiti<br />HR needs to <br />approve<br />the expense<br />Select helpdesk <br />ticket<br />Joey needs<br />to call the customer<br />
  21. 21. What does that mean for you?<br />Typical BPM attitude<br />
  22. 22. What does that mean for you?<br /><ul><li>Developers are crucial for the success of a BPM project!
  23. 23. Business processes practically always require automated steps and integrations
  24. 24. Activiti gives the developer the power and flexibility he/she needs to be extremely productive</li></ul>Activiti<br />
  25. 25. Release fast, release often<br />19<br /><ul><li>Serious # bugfixes / features every month</li></li></ul><li>Who contributes to Activiti?<br />
  26. 26. Agenda<br />Introduction<br />Live coding<br />TechTalk<br />What do you get?<br />Demo<br />
  27. 27. Live coding<br />22<br />Activiti + command line<br />Demonstrating the <br />simplicity and power <br />of Activiti<br />Activiti + Spring<br />In only 10 minutes!<br />Activiti + webapp<br />
  28. 28. TechTalk<br />23<br />
  29. 29. Unit testing business processes<br /><ul><li>With Activiti, your business processes are an integral part of your software project
  30. 30. So they should be tested the same as regular code … with unit tests!
  31. 31. Activiti supports JUnit 3 and JUnit4 style of unit tests
  32. 32. + a lot of convience for testing</li></ul>Pic from http://silverbackapp.com<br />
  33. 33. Unit testing business processes<br />Junit 3.X style<br />Pic from http://silverbackapp.com<br />
  34. 34. Unit testing business processes<br />Junit 4 style<br />Pic from http://silverbackapp.com<br />
  35. 35. Timers<br />27<br /><ul><li>Work is often time constrained
  36. 36. A timer boundary event can be attached to the boundary of any step (or subprocess)</li></li></ul><li>Method expressions and JPA<br />28<br />Update JPA entity<br />Decision based on <br />JPA entity property<br />Spring bean<br />Process variables<br />
  37. 37. Work in progress<br />29<br /><ul><li>CDI/Spring annotations</li></ul><serviceTask activiti:expression=“${myBean.doSomething()}”<br />Spring Bean<br />CDI Managed Bean<br />eg. EJB<br />
  38. 38. Work in progress<br />30<br /><ul><li>CDI/Spring annotations</li></ul>@ProcessScope<br />Public class MyBean {<br />@StartProcess(“helloWorldProcess”)<br /> public void something(@ProcessVariable(“customerId”) long custId) {<br /> ..<br /> }<br />@CompleteTask(key=“theTask”)<br /> public void somethingElse() { … }<br />@State(“confirm-receipt”)<br /> public void confirmReceipt(@ProcessVariable(“myVar”) …<br />}<br />
  39. 39. Agenda<br />Introduction<br />Live coding<br />TechTalk<br />What do you get?<br />Demo<br />
  40. 40. What do you get?<br />World-class rock-solid BPM and workflow engine <br />32<br />32<br />
  41. 41. Not only the engine?<br />Java Applications<br />Activiti Modeler<br />Activiti Designer<br />Activiti <br />Engine<br />Activiti Probe<br />Activiti Explorer<br />Activiti Cycle<br />REST interface<br />iPhone<br />Explorer<br />Android<br />Explorer<br />
  42. 42. Activiti Modeler<br />Webbased BPMN 2.0 graphical editor <br />34<br />34<br />
  43. 43. Activiti Explorer<br />Process end-users (task mgmt)<br />35<br />35<br />
  44. 44. Activiti Probe<br />System admins<br />Status overview, stuck jobs, exceptions, logs, …<br />36<br />36<br />
  45. 45. Activiti Cycle<br />Collaboration … done right<br />37<br />37<br />
  46. 46. Activiti KickStart<br />38<br />38<br />
  47. 47. Activiti REST API<br />39<br /><ul><li>Remote communication regardless of the technology</li></li></ul><li><ul><li>Activiti extension support, BPMN 2.0 validation, hierarchical modeling</li></ul>Activiti Eclipse designer<br />40<br />
  48. 48. <ul><li>Pluggable activity support</li></ul>Activiti Eclipse designer<br />41<br />
  49. 49. Mobile Activiti<br />42<br />
  50. 50. Mobile Activiti<br />43<br />
  51. 51. <ul><li>Grails convience capabilities
  52. 52. Typical configuration
  53. 53. Easy business archive deployment
  54. 54. Generate controllers/view/example app</li></ul>Activiti & Grails<br />44<br />
  55. 55. Agenda<br />Introduction<br />Live coding<br />TechTalk<br />What do you get?<br />Demo<br />
  56. 56. Real-life demo<br />46<br /><ul><li>Use case: banks shouldn’t lend money to just anybody
  57. 57. Thorough analysis is needed
  58. 58. All steps needs to be recorded in official documents
  59. 59. Decisions are done based on Excel decision tables</li></li></ul><li>The mortgage process<br />47<br />
  60. 60. The mortgage process<br />48<br />
  61. 61. The mortgage process<br />49<br />= CMIS call <br />
  62. 62. The power of Java<br />50<br />Out-of-the-box<br />Custom Java<br />
  63. 63. The power of Java<br />51<br />public class CreateLoanApplicationDocument implements JavaDelegate {<br /> public void execute(DelegateExecution execution) {<br /> Session session = CmisUtil.createCmisSession("admin", "admin", Constants.ALFRESCO_URL); <br /> Folder folder = CmisUtil.getFolder(session, Constants.LOAN_APPLICATION_STORAGE_FOLDER);<br /> Document document = createWordDocument(session, folder, execution); <br /> storeDocumentReferencesAsProcessVariables(execution, folder, document);<br /> session.save();<br /> }<br />

×