BPM beyond Web Services                           +www.mwea.de   Kai Wähner
Kai Wähner                                         Main Tasks                             Evaluation of Technologies and P...
What is the Key Message?www.mwea.de   Kai Wähner    16.05.2012   Seite 3
Key Messages BPM should be used for optimizing business processes!www.mwea.de   Kai Wähner                      16.05.2012...
Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration!www.mwea...
Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration! Activit...
Agenda      1)  Business Process Management (BPM)      2)  Activiti      3)  Apache Camel      4)  Combination of Activiti...
Agenda      1)  Business Process Management (BPM)      2)  Activiti      3)  Apache Camel      4)  Combination of Activiti...
What is Business Process Management (BPM)?    BPM attempts to improve processes continuously.    It can therefore be descr...
Why BPM?                                  increase efficiency                                     better quality      Busi...
How to do BPM?www.mwea.de   Kai Wähner   16.05.2012   Seite 11
Standards                            jPDL        BPEL                          BPMN                           BPM         ...
Standards                            jPDL        BPEL                          BPMN                           BPM         ...
BPMN Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a busin...
BPMN 2.0 • BPMN is a standard notation for designing business processes       (versus: UML is a standard modeling language...
BPMN 2.0www.mwea.de   Kai Wähner   16.05.2012   Seite 16
BPMN 2.0              20-80 rulewww.mwea.de   Kai Wähner   16.05.2012   Seite 17
When to use BPM? •  long-running stateful workflows •  frequently changing processes •  human interactionwww.mwea.de   Kai...
The Four Myths of BPM Projects                1) Business analysts will create executable process models                2)...
Agenda      1)  Business Process Management (BPM)      2)  Activiti      3)  Apache Camel      4)  Combination of Activiti...
Alternatives for BPM                                        BPM Suite                               BPM     No Tool       ...
Alternatives for BPM                                                     BPM Suite                               BPM     N...
What is Activiti?   •  open source (Apache License)   •  BPMN 2.0 process engine   •  lightweight   •  easy to use   •  Ja...
Tool Stack       Activiti Modeler         Activiti Designer                      Process Engine     camunda fox style     ...
How does Activiti work? •  BPMN 2.0 process engine •  state machine with one active state •  execution progresses via tran...
Actviti Engine API        Services        RuntimeService        TaskService        FormService        HistoryService      ...
Code Example (BPMN Process)              <process id="bookorder" name="Order book">                 <startEvent id="starte...
Code Example (Activiti Java API)              ProcessEngine processEngine = ProcessEngineConfiguration                    ...
Use CaseStart Event                        Service Task                  End Event                   Script Task          ...
Live Demo                           Activiti in Actionwww.mwea.de   Kai Wähner                        16.05.2012   Seite 30
Agenda      1)  Business Process Management (BPM)      2)  Activiti      3)  Apache Camel      4)  Combination of Activiti...
Apache Camelwww.mwea.de   Kai Wähner   16.05.2012   Seite 32
Apache Camel                           Come on, guys! We are atwww.mwea.de   Kai Wähner                              16.05...
Alternatives for Systems Integration                                           Enterprise Service Bus                     ...
Alternatives for Systems Integration                                                                               Enterpr...
Why Apache Camel?                           •  Standardized Modeling                           •  Efficient Realization   ...
Agenda      1)  Business Process Management (BPM)      2)  Activiti      3)  Apache Camel      4)  Combination of Activiti...
Apache Camel + Activitiwww.mwea.de   Kai Wähner   16.05.2012   Seite 38
BPMN Integration                 Script Task    Service Task                     Groovy                 Java              ...
Reinventing the Wheel ...www.mwea.de   Kai Wähner     16.05.2012   Seite 40
Spaghetti Solutionswww.mwea.de   Kai Wähner   16.05.2012   Seite 41
Separation of Concernswww.mwea.de   Kai Wähner   16.05.2012   Seite 42
Overlappings?                       Both can realize processes. Both can integrate services.www.mwea.de   Kai Wähner      ...
Overlappings?                       Both can realize processes. Both can integrate services.•  Support for long running st...
Overlappings?                       Both can realize processes. Both can integrate services.•  Support for long running st...
Activiti + Apache Camel                                            +    Both ...              •    ... are lightweight    ...
Connecting BPMN, Activiti and Camel      BPMN - Java Service Task                    <serviceTask id="myServiceTask"      ...
Camel Route using Activiti Component          // Producer => Call Activiti process from Camel          from("direct:start"...
Live Demo                           Activiti and Apache Camel combined ...www.mwea.de   Kai Wähner                        ...
Did you get the Key Message?www.mwea.de   Kai Wähner        16.05.2012   Seite 50
Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration! Activit...
Did you get the Key Message?www.mwea.de   Kai Wähner        16.05.2012   Seite 52
Whet your appetite?www.mwea.de   Kai Wähner   16.05.2012   Seite 53
Become a Part of the Open Source Communitywww.mwea.de   Kai Wähner                      16.05.2012   Seite 54
Thank you for your Attention. Any Questions?                                +               =   BPM beyond Web Services   ...
Upcoming SlideShare
Loading in...5
×

CamelOne 2012 - BPM beyond Web Services

6,485

Published on

Business Process Management (BPM) beyond Web Services with Apache Camel and Activiti at CamelOne 2012 in Boston.

Published in: Technology, Business

CamelOne 2012 - BPM beyond Web Services

  1. 1. BPM beyond Web Services +www.mwea.de Kai Wähner
  2. 2. Kai Wähner Main Tasks Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business Process Management Architecture and Development of Applications Planning and Introduction of SOA Integration of Legacy Applications Cloud Computing Consulting Contact Developing Email: kai.waehner@mwea.de Speaking Blog: www.kai-waehner.de/blog Coaching Twitter: @KaiWaehner Writing Social Networks: Xing, LinkedInwww.mwea.de Kai Wähner 16.05.2012 Seite 2
  3. 3. What is the Key Message?www.mwea.de Kai Wähner 16.05.2012 Seite 3
  4. 4. Key Messages BPM should be used for optimizing business processes!www.mwea.de Kai Wähner 16.05.2012 Seite 4
  5. 5. Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration!www.mwea.de Kai Wähner 16.05.2012 Seite 5
  6. 6. Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration! Activiti and Apache Camel are a perfect combination!www.mwea.de Kai Wähner 16.05.2012 Seite 6
  7. 7. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 7
  8. 8. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 8
  9. 9. What is Business Process Management (BPM)? BPM attempts to improve processes continuously. It can therefore be described as a "process optimization process.“ Wikipediawww.mwea.de Kai Wähner 16.05.2012 Seite 9
  10. 10. Why BPM? increase efficiency better quality Business-IT-Alignment reduce costs enable new business modelswww.mwea.de Kai Wähner 16.05.2012 Seite 10
  11. 11. How to do BPM?www.mwea.de Kai Wähner 16.05.2012 Seite 11
  12. 12. Standards jPDL BPEL BPMN BPM XPDLWF-XML ARIS EPC BPEL4Peoplewww.mwea.de Kai Wähner 16.05.2012 Seite 12
  13. 13. Standards jPDL BPEL BPMN BPM XPDLWF-XML ARIS EPC BPEL4Peoplewww.mwea.de Kai Wähner 16.05.2012 Seite 13
  14. 14. BPMN Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. Wikipediawww.mwea.de Kai Wähner 16.05.2012 Seite 14
  15. 15. BPMN 2.0 • BPMN is a standard notation for designing business processes (versus: UML is a standard modeling language best suited for designing and implementing software) • not just flow charts! sufficient restrictions / constraints => executable! • standardized XML format • orchestration and choreography • extension points => add specific needs without breaking interoperability • optional mapping of a BPMN subset to BPEL (restricted to block-structured flows without cycles)www.mwea.de Kai Wähner 16.05.2012 Seite 15
  16. 16. BPMN 2.0www.mwea.de Kai Wähner 16.05.2012 Seite 16
  17. 17. BPMN 2.0 20-80 rulewww.mwea.de Kai Wähner 16.05.2012 Seite 17
  18. 18. When to use BPM? •  long-running stateful workflows •  frequently changing processes •  human interactionwww.mwea.de Kai Wähner 16.05.2012 Seite 18
  19. 19. The Four Myths of BPM Projects 1) Business analysts will create executable process models 2) Business analysts can create executable process models 3) Business analysts want to create executable process models 4) IT wants business analysts to create executable process models http://www.activevos.com/blog/soa/the-four-myths-of-bpm-projects-what-it-project-teams-need-to-know/2011/01/18/www.mwea.de Kai Wähner 16.05.2012 Seite 19
  20. 20. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 20
  21. 21. Alternatives for BPM BPM Suite BPM No Tool Framework Complexity of Orchestration Low Highwww.mwea.de Kai Wähner 16.05.2012 Seite 21
  22. 22. Alternatives for BPM BPM Suite BPM No Tool Framework Complexity of Orchestration Low High Activiti vs. JBoss jBPM vs. Bonita vs. ProcessMakerwww.mwea.de Kai Wähner 16.05.2012 Seite 22
  23. 23. What is Activiti? •  open source (Apache License) •  BPMN 2.0 process engine •  lightweight •  easy to use •  Java API •  developer-focused •  embeddablewww.mwea.de Kai Wähner 16.05.2012 Seite 23
  24. 24. Tool Stack Activiti Modeler Activiti Designer Process Engine camunda fox style Activiti Explorerwww.mwea.de Kai Wähner 16.05.2012 Seite 24
  25. 25. How does Activiti work? •  BPMN 2.0 process engine •  state machine with one active state •  execution progresses via transitions •  most BPMN 2.0 elements are implemented as a state •  states are connected with leaving and arriving transitions (called sequence flows) •  every state (i.e. its corresponding BPMN 2.0 element) can have a piece of logic attached (executed when the process instance enters the state)www.mwea.de Kai Wähner 16.05.2012 Seite 25
  26. 26. Actviti Engine API Services RuntimeService TaskService FormService HistoryService IdentityService Service Tasks (BPMN Standard) ManagementService Web Service Task RepositoryService Script Task (e.g. Groovy or JavaScript) User Task Business Rule Task Service Tasks (Activiti Extensions) Java Tasks Spring Service Task ... morewww.mwea.de Kai Wähner 16.05.2012 Seite 26
  27. 27. Code Example (BPMN Process) <process id="bookorder" name="Order book"> <startEvent id="startevent1" name="Start"/> <sequenceFlow id="sequenceflow1" name="Validate order" sourceRef="startevent1" targetRef="scripttask1"/> <scriptTask id="scripttask1" name="Validate order“ scriptFormat="groovy"> <script>out:println "validating order for isbn " + isbn;</script> </scriptTask> <sequenceFlow id="sequenceflow2" name="Ending process" sourceRef="usertask1" targetRef="endevent1"/> <endEvent id="endevent1" name="End"/> </process>www.mwea.de Kai Wähner 16.05.2012 Seite 27
  28. 28. Code Example (Activiti Java API) ProcessEngine processEngine = ProcessEngineConfiguration .createStandaloneInMemProcessEngineConfiguration() .buildProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addClasspathResource("bookorder.simple.bpmn20.xml") .deploy(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey( "simplebookorder"); assertNotNull(processInstance.getId()); System.out.println("id " + processInstance.getId() + " " + processInstance.getProcessDefinitionId());www.mwea.de Kai Wähner 16.05.2012 Seite 28
  29. 29. Use CaseStart Event Service Task End Event Script Task User Task Automatic Automatic Manualwww.mwea.de Kai Wähner 16.05.2012 Seite 29
  30. 30. Live Demo Activiti in Actionwww.mwea.de Kai Wähner 16.05.2012 Seite 30
  31. 31. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 31
  32. 32. Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 32
  33. 33. Apache Camel Come on, guys! We are atwww.mwea.de Kai Wähner 16.05.2012 Seite 33
  34. 34. Alternatives for Systems Integration Enterprise Service Bus Integration- (ESB) No Tool Framework Complexity of Integration Low Highwww.mwea.de Kai Wähner 16.05.2012 Seite 34
  35. 35. Alternatives for Systems Integration Enterprise Service Bus Integration- (ESB) No Tool Framework Complexity of Integration Low High Apache Camel vs. Spring Integration vs. Mule ESB http://www.kai-waehner.de/blog/2012/01/10/spoilt-for-choice-which-integration-framework-to-use-spring-integration-mule-esb-or-apache-camelwww.mwea.de Kai Wähner 16.05.2012 Seite 35
  36. 36. Why Apache Camel? •  Standardized Modeling •  Efficient Realization •  Developer-focused •  Automatic Testing •  Many Components •  Several DSLs •  Awesome Communitywww.mwea.de Kai Wähner 16.05.2012 Seite 36
  37. 37. Agenda 1)  Business Process Management (BPM) 2)  Activiti 3)  Apache Camel 4)  Combination of Activiti and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 37
  38. 38. Apache Camel + Activitiwww.mwea.de Kai Wähner 16.05.2012 Seite 38
  39. 39. BPMN Integration Script Task Service Task Groovy Java JavaScript SOAP Web Service etc. Everything (from Cobol to Ruby)www.mwea.de Kai Wähner 16.05.2012 Seite 39
  40. 40. Reinventing the Wheel ...www.mwea.de Kai Wähner 16.05.2012 Seite 40
  41. 41. Spaghetti Solutionswww.mwea.de Kai Wähner 16.05.2012 Seite 41
  42. 42. Separation of Concernswww.mwea.de Kai Wähner 16.05.2012 Seite 42
  43. 43. Overlappings? Both can realize processes. Both can integrate services.www.mwea.de Kai Wähner 16.05.2012 Seite 43
  44. 44. Overlappings? Both can realize processes. Both can integrate services.•  Support for long running stateful processes•  Human workflow integrationwww.mwea.de Kai Wähner 16.05.2012 Seite 44
  45. 45. Overlappings? Both can realize processes. Both can integrate services.•  Support for long running stateful processes•  Human workflow integration •  Connectivity / Adaptors to connect to external systems using a variety of different protocols  •  Predefined EIP for message routing http://www.pleus.net/blog/?p=1028www.mwea.de Kai Wähner 16.05.2012 Seite 45
  46. 46. Activiti + Apache Camel + Both ... •  ... are lightweight •  ... are open source •  ... are developer-focused •  ... offer combination out-of-the-boxwww.mwea.de Kai Wähner 16.05.2012 Seite 46
  47. 47. Connecting BPMN, Activiti and Camel BPMN - Java Service Task <serviceTask id="myServiceTask" activiti:delegateExpression="${camelBehaviour}" /> <sequenceFlow sourceRef="myServiceTask" targetRef="myUserTask" /> BPMN Process Instance Spring Bean <bean id="camelBehaviour" class="org.activiti.camel.CamelBehaviour"> <constructor-arg index="0"> <list> <bean class="org.activiti.camel.SimpleContextProvider"> <constructor-arg index="0" value="activitiCamelProcess" /> <constructor-arg index="1" ref="camelContext" /> </bean> </list> </constructor-arg> </bean> CamelContextwww.mwea.de Kai Wähner 16.05.2012 Seite 47
  48. 48. Camel Route using Activiti Component // Producer => Call Activiti process from Camel from("direct:start") .to("activiti:myProcess"); // Consumer => Get called from Activiti process from("activiti:myProcess:myServiceTask") .log(LoggingLevel.INFO, "Received message on service task ${property.var1}") .setProperty("var2").constant("world") .setBody().properties();www.mwea.de Kai Wähner 16.05.2012 Seite 48
  49. 49. Live Demo Activiti and Apache Camel combined ...www.mwea.de Kai Wähner 16.05.2012 Seite 49
  50. 50. Did you get the Key Message?www.mwea.de Kai Wähner 16.05.2012 Seite 50
  51. 51. Key Messages BPM should be used for optimizing business processes! BPM should NOT be used for systems integration! Activiti and Apache Camel are a perfect combination!www.mwea.de Kai Wähner 16.05.2012 Seite 51
  52. 52. Did you get the Key Message?www.mwea.de Kai Wähner 16.05.2012 Seite 52
  53. 53. Whet your appetite?www.mwea.de Kai Wähner 16.05.2012 Seite 53
  54. 54. Become a Part of the Open Source Communitywww.mwea.de Kai Wähner 16.05.2012 Seite 54
  55. 55. Thank you for your Attention. Any Questions? + = BPM beyond Web Services Kai Wähner MaibornWolff et al: www.mwea.de Email: kai.waehner@mwea.de Twitter: @KaiWaehner Blog: www.kai-waehner.de/blogwww.mwea.de Kai Wähner
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×