• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
CamelOne 2012 - BPM beyond Web Services
 

CamelOne 2012 - BPM beyond Web Services

on

  • 5,926 views

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

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

Statistics

Views

Total Views
5,926
Views on SlideShare
4,961
Embed Views
965

Actions

Likes
5
Downloads
139
Comments
0

3 Embeds 965

http://www.kai-waehner.de 962
http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    CamelOne 2012 - BPM beyond Web Services CamelOne 2012 - BPM beyond Web Services Presentation Transcript

    • BPM beyond Web Services +www.mwea.de Kai Wähner
    • 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
    • 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 Seite 4
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • How to do BPM?www.mwea.de Kai Wähner 16.05.2012 Seite 11
    • Standards jPDL BPEL BPMN BPM XPDLWF-XML ARIS EPC BPEL4Peoplewww.mwea.de Kai Wähner 16.05.2012 Seite 12
    • Standards jPDL BPEL BPMN BPM XPDLWF-XML ARIS EPC BPEL4Peoplewww.mwea.de Kai Wähner 16.05.2012 Seite 13
    • 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
    • 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
    • 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 Wähner 16.05.2012 Seite 18
    • 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
    • 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
    • Alternatives for BPM BPM Suite BPM No Tool Framework Complexity of Orchestration Low Highwww.mwea.de Kai Wähner 16.05.2012 Seite 21
    • 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
    • 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
    • Tool Stack Activiti Modeler Activiti Designer Process Engine camunda fox style Activiti Explorerwww.mwea.de Kai Wähner 16.05.2012 Seite 24
    • 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
    • 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
    • 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
    • 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
    • Use CaseStart Event Service Task End Event Script Task User Task Automatic Automatic Manualwww.mwea.de Kai Wähner 16.05.2012 Seite 29
    • 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 and Apache Camelwww.mwea.de Kai Wähner 16.05.2012 Seite 31
    • 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.2012 Seite 33
    • 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
    • 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
    • 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
    • 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
    • Apache Camel + Activitiwww.mwea.de Kai Wähner 16.05.2012 Seite 38
    • 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
    • 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 16.05.2012 Seite 43
    • 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
    • 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
    • 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
    • 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
    • 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
    • Live Demo Activiti and Apache Camel combined ...www.mwea.de Kai Wähner 16.05.2012 Seite 49
    • 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! Activiti and Apache Camel are a perfect combination!www.mwea.de Kai Wähner 16.05.2012 Seite 51
    • 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 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